/*
 * Copyright (C) 2019 Robert Bosch GmbH Copyright (C) 2019 Robert Bosch Manufacturing Solutions GmbH, Germany. All rights reserved.
 */

import { Injectable } from '@angular/core';
import { Subject } from 'rxjs';

@Injectable()
export class BciSharedIntl {
  /** Use this to notify the component on labels that have changed since initialization. **/
  readonly changes = new Subject();

  /** CommandBar **/

  /** A label used if only one item exists **/
  item = 'item';

  /** A label used if multiple items exist*/
  items = 'items';

  /** A label to between the selected and existing amount of items **/
  of = 'of';

  /** A label for the quick search filter **/
  search = 'Search';

  /** A label for the detailed filter **/
  filter = 'Filter';

  /** A label for the sort button **/
  sort = 'Sort';

  /** A label for the add button **/
  add = 'Add';

  /** A label for more actions button **/
  moreActions = 'more actions';

  /** Filter **/

  /** The dialog title for filter*/
  title = 'Filter';

  /** A label for the button to apply filters. **/
  apply = 'Apply';

  /** A label for the button to select filter management. **/
  select = 'Select';

  /** A label for the button to cancel filter management. **/
  cancel = 'Cancel';

  /** A label to remove a filter **/
  removeFilter = 'remove filter';

  /** A label for the button to apply filters. **/
  resetAll = 'Reset all';

  /** Commandbar Filter empty state */
  filterEmptyState = `No items to display.<br />   Remove or change search parameters <br />  to show available filter items.`;

  /** Chip **/

  remove = 'remove';

  /** A label used if only one item exists **/
  oneMoreItem = 'more item';

  /** A label used if multiple items exist*/
  moreItems = 'more items';

  /** Product Info **/

  goToDocumentationButton = 'Go to documentation';

  /** Loading screen **/

  /** Loading screen title **/
  loadingTitle = 'Loading';

  /** Loading screen status text **/
  loadingStatus = 'Please wait';

  showMoreLabel = (title: string): string => `Show more about ${title}`;
}

export const BCI_SHARED_INTL_PROVIDER = {
  provide: BciSharedIntl,
  useClass: BciSharedIntl,
};
