@eui/ecl 15.0.0-next.18 → 15.0.0-next.19

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (65) hide show
  1. package/assets/i18n-ecl/bg.json +4 -0
  2. package/assets/i18n-ecl/cs.json +4 -0
  3. package/assets/i18n-ecl/da.json +4 -0
  4. package/assets/i18n-ecl/de.json +4 -0
  5. package/assets/i18n-ecl/el.json +4 -0
  6. package/assets/i18n-ecl/en.json +4 -0
  7. package/assets/i18n-ecl/es.json +4 -0
  8. package/assets/i18n-ecl/et.json +4 -0
  9. package/assets/i18n-ecl/fi.json +4 -0
  10. package/assets/i18n-ecl/fr.json +4 -0
  11. package/assets/i18n-ecl/ga.json +4 -0
  12. package/assets/i18n-ecl/hr.json +4 -0
  13. package/assets/i18n-ecl/hu.json +4 -0
  14. package/assets/i18n-ecl/it.json +4 -0
  15. package/assets/i18n-ecl/lt.json +4 -0
  16. package/assets/i18n-ecl/lv.json +4 -0
  17. package/assets/i18n-ecl/mt.json +4 -0
  18. package/assets/i18n-ecl/nl.json +4 -0
  19. package/assets/i18n-ecl/pl.json +4 -0
  20. package/assets/i18n-ecl/pt.json +4 -0
  21. package/assets/i18n-ecl/ro.json +4 -0
  22. package/assets/i18n-ecl/sk.json +4 -0
  23. package/assets/i18n-ecl/sl.json +4 -0
  24. package/assets/i18n-ecl/sv.json +4 -0
  25. package/docs/classes/EclLanguageService.html +255 -0
  26. package/docs/components/EclAppComponent.html +81 -25
  27. package/docs/components/EclMultiselectComponent.html +13 -1
  28. package/docs/components/EclNewsTickerComponent.html +1 -1
  29. package/docs/components/EclNewsTickerItemComponent.html +0 -67
  30. package/docs/components/EclPaginationItemComponent.html +1 -1
  31. package/docs/dependencies.html +1 -1
  32. package/docs/directives/EclDatePickerDirective.html +13 -1
  33. package/docs/injectables/EclDefaultLanguageService.html +303 -0
  34. package/docs/interfaces/EclLanguage.html +45 -0
  35. package/docs/js/search/search_index.js +2 -2
  36. package/esm2020/lib/components/ecl-app/ecl-app.component.mjs +18 -28
  37. package/esm2020/lib/components/ecl-date-picker/ecl-date-picker.directive.mjs +15 -7
  38. package/esm2020/lib/components/ecl-multiselect/ecl-multiselect.component.mjs +20 -8
  39. package/esm2020/lib/components/ecl-news-ticker/ecl-news-ticker-item.component.mjs +2 -6
  40. package/esm2020/lib/components/ecl-news-ticker/ecl-news-ticker.component.mjs +13 -3
  41. package/esm2020/lib/components/ecl-pagination/ecl-pagination-item.component.mjs +3 -3
  42. package/esm2020/lib/model/ecl-language.model.mjs +1 -1
  43. package/esm2020/lib/services/ecl-default-language.service.mjs +45 -9
  44. package/esm2020/lib/services/ecl-language.service.mjs +1 -1
  45. package/fesm2015/eui-ecl.mjs +102 -54
  46. package/fesm2015/eui-ecl.mjs.map +1 -1
  47. package/fesm2020/eui-ecl.mjs +99 -51
  48. package/fesm2020/eui-ecl.mjs.map +1 -1
  49. package/lib/components/ecl-app/ecl-app.component.d.ts +3 -6
  50. package/lib/components/ecl-app/ecl-app.component.d.ts.map +1 -1
  51. package/lib/components/ecl-date-picker/ecl-date-picker.directive.d.ts +3 -1
  52. package/lib/components/ecl-date-picker/ecl-date-picker.directive.d.ts.map +1 -1
  53. package/lib/components/ecl-multiselect/ecl-multiselect.component.d.ts +6 -2
  54. package/lib/components/ecl-multiselect/ecl-multiselect.component.d.ts.map +1 -1
  55. package/lib/components/ecl-news-ticker/ecl-news-ticker-item.component.d.ts +0 -1
  56. package/lib/components/ecl-news-ticker/ecl-news-ticker-item.component.d.ts.map +1 -1
  57. package/lib/components/ecl-news-ticker/ecl-news-ticker.component.d.ts +1 -0
  58. package/lib/components/ecl-news-ticker/ecl-news-ticker.component.d.ts.map +1 -1
  59. package/lib/model/ecl-language.model.d.ts +1 -0
  60. package/lib/model/ecl-language.model.d.ts.map +1 -1
  61. package/lib/services/ecl-default-language.service.d.ts +14 -1
  62. package/lib/services/ecl-default-language.service.d.ts.map +1 -1
  63. package/lib/services/ecl-language.service.d.ts +6 -0
  64. package/lib/services/ecl-language.service.d.ts.map +1 -1
  65. package/package.json +1 -1
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Directive, Input, HostBinding, Component, ViewChild, EventEmitter, ChangeDetectionStrategy, Output, NgModule, ContentChildren, forwardRef, HostListener, Injectable, Optional, Self, ContentChild, Inject, ViewEncapsulation, ElementRef } from '@angular/core';
2
+ import { Directive, Input, HostBinding, Component, ViewChild, EventEmitter, ChangeDetectionStrategy, Output, NgModule, ContentChildren, forwardRef, HostListener, Injectable, Optional, Inject, Self, ContentChild, ViewEncapsulation, ElementRef } from '@angular/core';
3
3
  import * as i1 from '@angular/common';
4
4
  import { CommonModule, formatDate } from '@angular/common';
5
5
  import * as i2 from '@ngx-translate/core';
@@ -543,6 +543,25 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0-next.4",
543
543
  }] } });
544
544
 
545
545
  class EclDefaultLanguageService {
546
+ constructor(config, i18nService) {
547
+ this.config = config;
548
+ this.i18nService = i18nService;
549
+ this.currentLanguage$ = new Subject();
550
+ this.FALLBACK_LANGUAGE = { code: 'en', label: 'English' };
551
+ this.handleActiveLanguageChangeState();
552
+ }
553
+ getCurrentLanguage() {
554
+ return this.currentLanguage;
555
+ }
556
+ updateCurrentLanguage(lang) {
557
+ this.i18nService.updateState({
558
+ activeLang: lang.code
559
+ });
560
+ }
561
+ getConfiguredLanguages() {
562
+ const languages = this.config?.i18n?.i18nService?.languages || [];
563
+ return languages.map((code) => this.getLanguageByCode(code));
564
+ }
546
565
  getEULanguageCodes() {
547
566
  return [
548
567
  'bg', 'cs', 'da', 'de', 'et', 'el', 'en', 'es',
@@ -565,6 +584,9 @@ class EclDefaultLanguageService {
565
584
  isEuLanguage(code) {
566
585
  return this.getEULanguageCodes().includes(code);
567
586
  }
587
+ isRtlLanguage(code) {
588
+ return this.getLanguageByCode(code).isRtl;
589
+ }
568
590
  getAllLanguages() {
569
591
  return [
570
592
  { code: 'ab', label: 'аҧсуа' },
@@ -573,7 +595,7 @@ class EclDefaultLanguageService {
573
595
  { code: 'ak', label: 'Akan' },
574
596
  { code: 'sq', label: 'Shqip' },
575
597
  { code: 'am', label: 'አማርኛ' },
576
- { code: 'ar', label: 'العربية' },
598
+ { code: 'ar', label: 'العربية', isRtl: true },
577
599
  { code: 'an', label: 'Aragonés' },
578
600
  { code: 'hy', label: 'Հայերեն' },
579
601
  { code: 'as', label: 'অসমীয়া' },
@@ -623,7 +645,7 @@ class EclDefaultLanguageService {
623
645
  { code: 'gu', label: 'ગુજરાતી' },
624
646
  { code: 'ht', label: 'Kreyòl ayisyen' },
625
647
  { code: 'ha', label: 'Hausa, هَوُسَ' },
626
- { code: 'he', label: 'עברית' },
648
+ { code: 'he', label: 'עברית', isRtl: true },
627
649
  { code: 'hz', label: 'Otjiherero' },
628
650
  { code: 'hi', label: 'हिन्दी, हिंदी' },
629
651
  { code: 'ho', label: 'Hiri Motu' },
@@ -652,7 +674,7 @@ class EclDefaultLanguageService {
652
674
  { code: 'kv', label: 'коми кыв' },
653
675
  { code: 'kg', label: 'KiKongo' },
654
676
  { code: 'ko', label: '한국어 (韓國語), 조선말 (朝鮮語)' },
655
- { code: 'ku', label: 'Kurdî, كوردی‎' },
677
+ { code: 'ku', label: 'Kurdî, كوردی‎', isRtl: true },
656
678
  { code: 'kj', label: 'Kuanyama' },
657
679
  { code: 'la', label: 'latine' },
658
680
  { code: 'lb', label: 'Lëtzebuergesch' },
@@ -691,7 +713,7 @@ class EclDefaultLanguageService {
691
713
  { code: 'os', label: 'ирон æвзаг' },
692
714
  { code: 'pa', label: 'ਪੰਜਾਬੀ, پنجابی‎' },
693
715
  { code: 'pi', label: 'पाऴि' },
694
- { code: 'fa', label: 'فارسی' },
716
+ { code: 'fa', label: 'فارسی', isRtl: true },
695
717
  { code: 'pl', label: 'polski' },
696
718
  { code: 'ps', label: 'پښتو' },
697
719
  { code: 'pt', label: 'Português' },
@@ -736,7 +758,7 @@ class EclDefaultLanguageService {
736
758
  { code: 'ty', label: 'Reo Tahiti' },
737
759
  { code: 'ug', label: 'Uyƣurqə, ئۇيغۇرچە‎' },
738
760
  { code: 'uk', label: 'українська' },
739
- { code: 'ur', label: 'اردو' },
761
+ { code: 'ur', label: 'اردو', isRtl: true },
740
762
  { code: 'uz', label: 'zbek, Ўзбек, أۇزبېك‎' },
741
763
  { code: 've', label: 'Tshivenḓa' },
742
764
  { code: 'vi', label: 'Tiếng Việt' },
@@ -751,13 +773,24 @@ class EclDefaultLanguageService {
751
773
  { code: 'za', label: 'Saɯ cueŋƅ, Saw cuengh' }
752
774
  ];
753
775
  }
776
+ handleActiveLanguageChangeState() {
777
+ this.i18nService.getState().subscribe(state => {
778
+ this.currentLanguage = this.getLanguageByCode(state.activeLang) || this.FALLBACK_LANGUAGE;
779
+ this.currentLanguage$.next(this.currentLanguage);
780
+ });
781
+ }
754
782
  }
755
- /** @nocollapse */ EclDefaultLanguageService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0-next.4", ngImport: i0, type: EclDefaultLanguageService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
783
+ /** @nocollapse */ EclDefaultLanguageService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0-next.4", ngImport: i0, type: EclDefaultLanguageService, deps: [{ token: GLOBAL_CONFIG_TOKEN, optional: true }, { token: i2$1.I18nService }], target: i0.ɵɵFactoryTarget.Injectable });
756
784
  /** @nocollapse */ EclDefaultLanguageService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.0-next.4", ngImport: i0, type: EclDefaultLanguageService, providedIn: 'root' });
757
785
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0-next.4", ngImport: i0, type: EclDefaultLanguageService, decorators: [{
758
786
  type: Injectable,
759
787
  args: [{ providedIn: 'root' }]
760
- }] });
788
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
789
+ type: Optional
790
+ }, {
791
+ type: Inject,
792
+ args: [GLOBAL_CONFIG_TOKEN]
793
+ }] }, { type: i2$1.I18nService }]; } });
761
794
 
762
795
  class EclLanguageService {
763
796
  }
@@ -2651,16 +2684,14 @@ class EclAppLanguageDismissEvent extends EclBaseEvent {
2651
2684
  }
2652
2685
  }
2653
2686
  class EclAppComponent extends ECLBaseDirective {
2654
- constructor(config, eclLanguageService, i18nService, cd) {
2687
+ constructor(eclLanguageService, cd) {
2655
2688
  super();
2656
- this.config = config;
2657
2689
  this.eclLanguageService = eclLanguageService;
2658
- this.i18nService = i18nService;
2659
2690
  this.cd = cd;
2691
+ this.textDirection = 'ltr';
2660
2692
  this.languageDismiss = new EventEmitter();
2661
2693
  this.languages = [];
2662
2694
  this.destroy$ = new Subject();
2663
- this.FALLBACK_LANGUAGE = { code: 'en', label: 'English' };
2664
2695
  }
2665
2696
  ngAfterViewInit() {
2666
2697
  this.handleAppLanguagesState();
@@ -2673,13 +2704,11 @@ class EclAppComponent extends ECLBaseDirective {
2673
2704
  this.destroy$.unsubscribe();
2674
2705
  }
2675
2706
  handleAppLanguagesState() {
2676
- const languages = this.config?.i18n?.i18nService?.languages || [];
2677
- this.languages = languages.map((code) => this.eclLanguageService.getLanguageByCode(code));
2707
+ this.languages = this.eclLanguageService.getConfiguredLanguages();
2678
2708
  this.cd.detectChanges();
2679
2709
  }
2680
2710
  handleActiveLanguageChangeState() {
2681
- this.i18nService.getState().subscribe(state => {
2682
- const lang = this.eclLanguageService.getLanguageByCode(state.activeLang) || this.FALLBACK_LANGUAGE;
2711
+ this.eclLanguageService.currentLanguage$.subscribe(lang => {
2683
2712
  this.syncLanguageDataWithUI(lang);
2684
2713
  this.hideLanguageListUI();
2685
2714
  });
@@ -2697,11 +2726,8 @@ class EclAppComponent extends ECLBaseDirective {
2697
2726
  this.languageDismiss.next(new EclAppLanguageDismissEvent());
2698
2727
  });
2699
2728
  this.eclLanguageList.languageSelected.pipe(takeUntil(this.destroy$)).subscribe((evt) => {
2700
- const lang = evt.language;
2701
- this.i18nService.updateState({
2702
- activeLang: lang.code
2703
- });
2704
- this.languageDismiss.next(new EclAppLanguageDismissEvent(lang));
2729
+ this.eclLanguageService.updateCurrentLanguage(evt.language);
2730
+ this.languageDismiss.next(new EclAppLanguageDismissEvent(evt.language));
2705
2731
  this.cd.detectChanges();
2706
2732
  });
2707
2733
  }
@@ -2721,19 +2747,18 @@ class EclAppComponent extends ECLBaseDirective {
2721
2747
  this.eclSiteHeader.eclLanguageComponent.languageLabel = lang.label;
2722
2748
  }
2723
2749
  this.eclLanguageList.selectedLanguageCode = lang.code;
2750
+ this.textDirection = lang.isRtl ? 'rtl' : 'ltr';
2724
2751
  }
2725
2752
  }
2726
- /** @nocollapse */ EclAppComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0-next.4", ngImport: i0, type: EclAppComponent, deps: [{ token: GLOBAL_CONFIG_TOKEN, optional: true }, { token: EclLanguageService }, { token: i2$1.I18nService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
2727
- /** @nocollapse */ EclAppComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.0-next.4", type: EclAppComponent, selector: "ecl-app", outputs: { languageDismiss: "languageDismiss" }, queries: [{ propertyName: "eclSiteHeader", first: true, predicate: EclSiteHeaderComponent, descendants: true }], viewQueries: [{ propertyName: "eclLanguageList", first: true, predicate: EclLanguageListComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-content></ng-content>\n\n<ecl-language-list \n [isHidden]=\"true\"\n [isOverlay]=\"true\">\n <ecl-language-list-item \n *ngFor=\"let lang of languages\" \n [languageCode]=\"lang.code\" \n [languageLabel]=\"lang.label\">\n </ecl-language-list-item>\n</ecl-language-list>", dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: EclLanguageListComponent, selector: "ecl-language-list", inputs: ["isOverlay", "selectedLanguageCode", "isHidden"], outputs: ["languageSelected", "close"] }, { kind: "component", type: EclLanguageListItemComponent, selector: "ecl-language-list-item", inputs: ["isActive", "languageCode", "languageLabel"], outputs: ["itemClick"] }] });
2753
+ /** @nocollapse */ EclAppComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0-next.4", ngImport: i0, type: EclAppComponent, deps: [{ token: EclLanguageService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
2754
+ /** @nocollapse */ EclAppComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.0-next.4", type: EclAppComponent, selector: "ecl-app", outputs: { languageDismiss: "languageDismiss" }, host: { properties: { "attr.dir": "this.textDirection" } }, queries: [{ propertyName: "eclSiteHeader", first: true, predicate: EclSiteHeaderComponent, descendants: true }], viewQueries: [{ propertyName: "eclLanguageList", first: true, predicate: EclLanguageListComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-content></ng-content>\n\n<ecl-language-list \n [isHidden]=\"true\"\n [isOverlay]=\"true\">\n <ecl-language-list-item \n *ngFor=\"let lang of languages\" \n [languageCode]=\"lang.code\" \n [languageLabel]=\"lang.label\">\n </ecl-language-list-item>\n</ecl-language-list>", dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: EclLanguageListComponent, selector: "ecl-language-list", inputs: ["isOverlay", "selectedLanguageCode", "isHidden"], outputs: ["languageSelected", "close"] }, { kind: "component", type: EclLanguageListItemComponent, selector: "ecl-language-list-item", inputs: ["isActive", "languageCode", "languageLabel"], outputs: ["itemClick"] }] });
2728
2755
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0-next.4", ngImport: i0, type: EclAppComponent, decorators: [{
2729
2756
  type: Component,
2730
2757
  args: [{ selector: 'ecl-app', template: "<ng-content></ng-content>\n\n<ecl-language-list \n [isHidden]=\"true\"\n [isOverlay]=\"true\">\n <ecl-language-list-item \n *ngFor=\"let lang of languages\" \n [languageCode]=\"lang.code\" \n [languageLabel]=\"lang.label\">\n </ecl-language-list-item>\n</ecl-language-list>" }]
2731
- }], ctorParameters: function () { return [{ type: undefined, decorators: [{
2732
- type: Optional
2733
- }, {
2734
- type: Inject,
2735
- args: [GLOBAL_CONFIG_TOKEN]
2736
- }] }, { type: EclLanguageService }, { type: i2$1.I18nService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { eclSiteHeader: [{
2758
+ }], ctorParameters: function () { return [{ type: EclLanguageService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { textDirection: [{
2759
+ type: HostBinding,
2760
+ args: ['attr.dir']
2761
+ }], eclSiteHeader: [{
2737
2762
  type: ContentChild,
2738
2763
  args: [EclSiteHeaderComponent]
2739
2764
  }], eclLanguageList: [{
@@ -5019,11 +5044,12 @@ const ECL_DATE_PICKER_VALUE_ACCESSOR = {
5019
5044
  };
5020
5045
  const noop = () => { };
5021
5046
  class EclDatePickerDirective extends ECLBaseDirective {
5022
- constructor(el, viewContainerRef, translateService) {
5047
+ constructor(el, viewContainerRef, translateService, eclLanguageService) {
5023
5048
  super();
5024
5049
  this.el = el;
5025
5050
  this.viewContainerRef = viewContainerRef;
5026
5051
  this.translateService = translateService;
5052
+ this.eclLanguageService = eclLanguageService;
5027
5053
  this.yearRange = 40;
5028
5054
  this.format = 'DD-MM-YYYY';
5029
5055
  this.type = 'text';
@@ -5074,6 +5100,8 @@ class EclDatePickerDirective extends ECLBaseDirective {
5074
5100
  initPikaday() {
5075
5101
  const i18nKey = 'ecl.date-picker.PIKADAY';
5076
5102
  let i18nTranslation = this.translateService.instant(i18nKey);
5103
+ const isRtl = this.eclLanguageService.getCurrentLanguage().isRtl;
5104
+ const position = isRtl ? 'bottom right' : 'bottom left';
5077
5105
  if (!i18nTranslation || i18nTranslation === i18nKey) {
5078
5106
  i18nTranslation = pikadayDefaultI18n;
5079
5107
  }
@@ -5084,16 +5112,20 @@ class EclDatePickerDirective extends ECLBaseDirective {
5084
5112
  yearRange: this.yearRange,
5085
5113
  reposition: false,
5086
5114
  i18n: i18nTranslation,
5115
+ isRtl: isRtl,
5116
+ position: position,
5087
5117
  showDaysInNextAndPreviousMonths: true,
5088
5118
  enableSelectionDaysInNextAndPreviousMonths: true,
5089
5119
  onSelect: this.onSelectDate.bind(this),
5090
5120
  onOpen() {
5091
- // Fix picker size that exceeds vw on mobile
5121
+ // Extend picker size on mobile
5092
5122
  const vw = Math.max(document.documentElement.clientWidth || 0, window.innerWidth || 0);
5093
5123
  const elRect = this.el.getBoundingClientRect();
5094
- if (elRect.width >= vw) {
5124
+ const pickerMargin = isRtl ? vw - elRect.right : elRect.left;
5125
+ if (vw < 768) {
5095
5126
  this.el.style.width = 'auto';
5096
- this.el.style.right = `${elRect.left}px`;
5127
+ this.el.style.left = `${pickerMargin}px`;
5128
+ this.el.style.right = `${pickerMargin}px`;
5097
5129
  }
5098
5130
  },
5099
5131
  });
@@ -5139,7 +5171,7 @@ class EclDatePickerDirective extends ECLBaseDirective {
5139
5171
  return eclIconComponent.location.nativeElement;
5140
5172
  }
5141
5173
  }
5142
- /** @nocollapse */ EclDatePickerDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0-next.4", ngImport: i0, type: EclDatePickerDirective, deps: [{ token: i0.ElementRef }, { token: i0.ViewContainerRef }, { token: i2.TranslateService }], target: i0.ɵɵFactoryTarget.Directive });
5174
+ /** @nocollapse */ EclDatePickerDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0-next.4", ngImport: i0, type: EclDatePickerDirective, deps: [{ token: i0.ElementRef }, { token: i0.ViewContainerRef }, { token: i2.TranslateService }, { token: EclLanguageService }], target: i0.ɵɵFactoryTarget.Directive });
5143
5175
  /** @nocollapse */ EclDatePickerDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.0-next.4", type: EclDatePickerDirective, selector: "input[eclDatePicker]", inputs: { yearRange: "yearRange", format: "format" }, outputs: { datePicked: "datePicked" }, host: { listeners: { "click": "onClick()", "blur": "onBlur()" }, properties: { "attr.type": "this.type", "class": "this.cssClasses", "attr.disabled": "this.isDisabled" } }, providers: [ECL_DATE_PICKER_VALUE_ACCESSOR], usesInheritance: true, ngImport: i0 });
5144
5176
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0-next.4", ngImport: i0, type: EclDatePickerDirective, decorators: [{
5145
5177
  type: Directive,
@@ -5147,7 +5179,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0-next.4",
5147
5179
  selector: 'input[eclDatePicker]',
5148
5180
  providers: [ECL_DATE_PICKER_VALUE_ACCESSOR]
5149
5181
  }]
5150
- }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ViewContainerRef }, { type: i2.TranslateService }]; }, propDecorators: { yearRange: [{
5182
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ViewContainerRef }, { type: i2.TranslateService }, { type: EclLanguageService }]; }, propDecorators: { yearRange: [{
5151
5183
  type: Input
5152
5184
  }], format: [{
5153
5185
  type: Input
@@ -8237,12 +8269,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0-next.4",
8237
8269
  }] } });
8238
8270
 
8239
8271
  class EclMultiselectComponent extends ECLBaseDirective {
8240
- constructor(ngControl, el, viewContainerRef, differs) {
8272
+ constructor(ngControl, el, viewContainerRef, differs, translate) {
8241
8273
  super();
8242
8274
  this.ngControl = ngControl;
8243
8275
  this.el = el;
8244
8276
  this.viewContainerRef = viewContainerRef;
8245
8277
  this.differs = differs;
8278
+ this.translate = translate;
8246
8279
  this.isInvalid = false;
8247
8280
  this._disabled = false;
8248
8281
  this.eclSize = 'm';
@@ -8292,6 +8325,7 @@ class EclMultiselectComponent extends ECLBaseDirective {
8292
8325
  this.createHtmlElements();
8293
8326
  this.buildMultiselectDropdown(false);
8294
8327
  }
8328
+ this.handleTranslations();
8295
8329
  }
8296
8330
  ngDoCheck() {
8297
8331
  this.multiselectContainer.classList.toggle('ecl-select__container--disabled', this.disabled);
@@ -8518,8 +8552,8 @@ class EclMultiselectComponent extends ECLBaseDirective {
8518
8552
  this.selectAll();
8519
8553
  };
8520
8554
  checkboxDiv.appendChild(this.checkboxSelectAll);
8521
- const checkboxLabel = this.createCheckboxLabel('Select all', 'select-multiple-all' + idStr.substring(idStr.lastIndexOf('.') + 1));
8522
- checkboxDiv.appendChild(checkboxLabel);
8555
+ this.checkboxLabel = this.createCheckboxLabel('Select all', 'select-multiple-all' + idStr.substring(idStr.lastIndexOf('.') + 1));
8556
+ checkboxDiv.appendChild(this.checkboxLabel);
8523
8557
  return checkboxDiv;
8524
8558
  }
8525
8559
  createOptionsWrapper() {
@@ -8561,14 +8595,14 @@ class EclMultiselectComponent extends ECLBaseDirective {
8561
8595
  selectIconContainer.classList.add('ecl-select__icon');
8562
8596
  return selectIconContainer;
8563
8597
  }
8564
- searchOptions(keyword) {
8598
+ searchOptions(keyword = '') {
8565
8599
  if (keyword === '') {
8566
8600
  this.multiSelectOptions.forEach(item => {
8567
8601
  item.style.display = 'flex';
8568
8602
  });
8569
8603
  }
8570
8604
  this.multiSelectOptions.forEach((item, cnt) => {
8571
- if (item.textContent.toLowerCase().indexOf(keyword) < 0) {
8605
+ if (item.textContent.toLowerCase().indexOf(keyword.toLowerCase()) < 0) {
8572
8606
  item.style.display = 'none';
8573
8607
  }
8574
8608
  });
@@ -8584,8 +8618,17 @@ class EclMultiselectComponent extends ECLBaseDirective {
8584
8618
  this.selectedValues = [];
8585
8619
  this.multiSelectInput.value = null;
8586
8620
  }
8621
+ handleTranslations() {
8622
+ this.translate
8623
+ .stream('ecl.multiselect.SELECT-ALL')
8624
+ .pipe(takeUntil$1(this.destroy$)).subscribe((translation) => {
8625
+ if (this.checkboxLabel) {
8626
+ this.checkboxLabel.textContent = translation;
8627
+ }
8628
+ });
8629
+ }
8587
8630
  }
8588
- /** @nocollapse */ EclMultiselectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0-next.4", ngImport: i0, type: EclMultiselectComponent, deps: [{ token: i1$1.NgControl, optional: true, self: true }, { token: i0.ElementRef }, { token: i0.ViewContainerRef }, { token: i0.IterableDiffers }], target: i0.ɵɵFactoryTarget.Component });
8631
+ /** @nocollapse */ EclMultiselectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0-next.4", ngImport: i0, type: EclMultiselectComponent, deps: [{ token: i1$1.NgControl, optional: true, self: true }, { token: i0.ElementRef }, { token: i0.ViewContainerRef }, { token: i0.IterableDiffers }, { token: i2.TranslateService }], target: i0.ɵɵFactoryTarget.Component });
8589
8632
  /** @nocollapse */ EclMultiselectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.0-next.4", type: EclMultiselectComponent, selector: "select[eclMultiselect]", inputs: { isInvalid: "isInvalid", eclPlaceholder: "eclPlaceholder", disabled: "disabled", eclSize: "eclSize" }, outputs: { eclChange: "eclChange" }, host: { listeners: { "document:click": "onKeyUp($event)" }, properties: { "attr.disabled": "this.disabled", "class": "this.cssClasses" } }, queries: [{ propertyName: "eclOptionItems", predicate: EclMultiselectOptionDirective }], usesInheritance: true, ngImport: i0, template: "<ng-content></ng-content>" });
8590
8633
  __decorate([
8591
8634
  coerceBoolean
@@ -8597,7 +8640,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0-next.4",
8597
8640
  type: Optional
8598
8641
  }, {
8599
8642
  type: Self
8600
- }] }, { type: i0.ElementRef }, { type: i0.ViewContainerRef }, { type: i0.IterableDiffers }]; }, propDecorators: { eclOptionItems: [{
8643
+ }] }, { type: i0.ElementRef }, { type: i0.ViewContainerRef }, { type: i0.IterableDiffers }, { type: i2.TranslateService }]; }, propDecorators: { eclOptionItems: [{
8601
8644
  type: ContentChildren,
8602
8645
  args: [EclMultiselectOptionDirective]
8603
8646
  }], isInvalid: [{
@@ -8773,7 +8816,6 @@ class EclNewsTickerItemComponent extends ECLBaseDirective {
8773
8816
  super();
8774
8817
  this.el = el;
8775
8818
  this.ariaHidden = true;
8776
- this.tabindex = '-1';
8777
8819
  this.role = 'listitem';
8778
8820
  }
8779
8821
  get cssClasses() {
@@ -8788,7 +8830,7 @@ class EclNewsTickerItemComponent extends ECLBaseDirective {
8788
8830
  }
8789
8831
  }
8790
8832
  /** @nocollapse */ EclNewsTickerItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0-next.4", ngImport: i0, type: EclNewsTickerItemComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
8791
- /** @nocollapse */ EclNewsTickerItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.0-next.4", type: EclNewsTickerItemComponent, selector: "ecl-news-ticker-item", host: { properties: { "class": "this.cssClasses", "attr.aria-hidden": "this.ariaHidden", "attr.tabindex": "this.tabindex", "attr.role": "this.role" } }, queries: [{ propertyName: "eclLink", first: true, predicate: EclLinkDirective, descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-content></ng-content>\n" });
8833
+ /** @nocollapse */ EclNewsTickerItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.0-next.4", type: EclNewsTickerItemComponent, selector: "ecl-news-ticker-item", host: { properties: { "class": "this.cssClasses", "attr.aria-hidden": "this.ariaHidden", "attr.role": "this.role" } }, queries: [{ propertyName: "eclLink", first: true, predicate: EclLinkDirective, descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-content></ng-content>\n" });
8792
8834
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0-next.4", ngImport: i0, type: EclNewsTickerItemComponent, decorators: [{
8793
8835
  type: Component,
8794
8836
  args: [{ selector: 'ecl-news-ticker-item', template: "<ng-content></ng-content>\n" }]
@@ -8801,9 +8843,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0-next.4",
8801
8843
  }], ariaHidden: [{
8802
8844
  type: HostBinding,
8803
8845
  args: ['attr.aria-hidden']
8804
- }], tabindex: [{
8805
- type: HostBinding,
8806
- args: ['attr.tabindex']
8807
8846
  }], role: [{
8808
8847
  type: HostBinding,
8809
8848
  args: ['attr.role']
@@ -8903,6 +8942,7 @@ class EclNewsTickerComponent extends ECLBaseDirective {
8903
8942
  this._contentHeight = newHeight;
8904
8943
  this.transitionDuration = withTransition ? 0.4 : 0;
8905
8944
  this.slidesTransform = `translate3d(0px, -${newOffset}px, 0px)`;
8945
+ this.setCurrentSlide(item);
8906
8946
  }
8907
8947
  }
8908
8948
  initContainer() {
@@ -8954,15 +8994,23 @@ class EclNewsTickerComponent extends ECLBaseDirective {
8954
8994
  getAllItemsArray() {
8955
8995
  return [...[this.firstHiddenItem], ...this.newsTickerItems.toArray(), ...[this.lastHiddenItem]];
8956
8996
  }
8997
+ setCurrentSlide(currentItem) {
8998
+ this.newsTickerItems.forEach(item => {
8999
+ item.ariaHidden = true;
9000
+ if (item === currentItem) {
9001
+ item.ariaHidden = false;
9002
+ }
9003
+ });
9004
+ }
8957
9005
  }
8958
9006
  /** @nocollapse */ EclNewsTickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0-next.4", ngImport: i0, type: EclNewsTickerComponent, deps: [{ token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
8959
- /** @nocollapse */ EclNewsTickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.0-next.4", type: EclNewsTickerComponent, selector: "ecl-news-ticker", outputs: { itemSwitch: "itemSwitch" }, host: { listeners: { "window:resize": "onResize($event)" }, properties: { "class": "this.cssClasses" } }, queries: [{ propertyName: "newsTickerItems", predicate: EclNewsTickerItemComponent }], viewQueries: [{ propertyName: "firstHiddenItem", first: true, predicate: ["firstHiddenItem"], descendants: true }, { propertyName: "lastHiddenItem", first: true, predicate: ["lastHiddenItem"], descendants: true }, { propertyName: "slidesContainer", first: true, predicate: ["slidesContainer"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"ecl-news-ticker__container\"\n [style.height.px]=\"containerHeight\">\n <div class=\"ecl-news-ticker__content\"\n [style.height.px]=\"contentHeight\">\n <ul class=\"ecl-news-ticker__slides\"\n [style.transition-duration.s]=\"transitionDuration\"\n [style.transform]=\"slidesTransform\"\n #slidesContainer >\n <ecl-news-ticker-item #firstHiddenItem></ecl-news-ticker-item>\n <ng-content></ng-content>\n <ecl-news-ticker-item #lastHiddenItem></ecl-news-ticker-item>\n </ul>\n </div>\n</div>\n<ecl-icon icon=\"information\"\n size=\"m\"\n class=\"ecl-news-ticker__icon\"></ecl-icon>\n<div class=\"ecl-news-ticker__counter\">\n <span class=\"ecl-news-ticker__counter--current\">{{ itemIndex }}</span> of {{ itemsCount }}\n</div>\n<div class=\"ecl-news-ticker__controls\">\n <button eclButton\n variant=\"primary\"\n tabindex=\"-1\"\n class=\"ecl-news-ticker__prev\"\n (click)=\"onPrevious()\">\n <ecl-icon icon=\"corner-arrow\"\n size=\"m\"\n transform=\"rotate-270\"></ecl-icon>\n </button>\n <button eclButton\n variant=\"primary\"\n tabindex=\"-1\"\n class=\"ecl-news-ticker__toggle\"\n (click)=\"togglePlay()\">\n <ecl-icon [icon]=\"playing ? 'pause' : 'play'\"\n size=\"m\"></ecl-icon>\n </button>\n <button eclButton\n variant=\"primary\"\n tabindex=\"-1\"\n class=\"ecl-news-ticker__next\"\n (click)=\"onNext()\">\n <ecl-icon icon=\"corner-arrow\"\n size=\"m\"\n transform=\"rotate-90\">\n </ecl-icon>\n </button>\n</div>\n", dependencies: [{ kind: "component", type: EclButtonComponent, selector: "button[eclButton], button[ecl-button], a[eclButton]", inputs: ["variant", "containerStyleClass"] }, { kind: "component", type: EclIconComponent, selector: "ecl-icon", inputs: ["iconSet", "icon", "size", "color", "transform", "ariaLabelledby", "role", "isInverted", "ariaHidden", "focusable"] }, { kind: "component", type: EclNewsTickerItemComponent, selector: "ecl-news-ticker-item" }] });
9007
+ /** @nocollapse */ EclNewsTickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.0-next.4", type: EclNewsTickerComponent, selector: "ecl-news-ticker", outputs: { itemSwitch: "itemSwitch" }, host: { listeners: { "window:resize": "onResize($event)" }, properties: { "class": "this.cssClasses" } }, queries: [{ propertyName: "newsTickerItems", predicate: EclNewsTickerItemComponent }], viewQueries: [{ propertyName: "firstHiddenItem", first: true, predicate: ["firstHiddenItem"], descendants: true }, { propertyName: "lastHiddenItem", first: true, predicate: ["lastHiddenItem"], descendants: true }, { propertyName: "slidesContainer", first: true, predicate: ["slidesContainer"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"ecl-news-ticker__container\"\n [style.height.px]=\"containerHeight\">\n <div class=\"ecl-news-ticker__content\"\n [style.height.px]=\"contentHeight\">\n <ul class=\"ecl-news-ticker__slides\"\n [style.transition-duration.s]=\"transitionDuration\"\n [style.transform]=\"slidesTransform\"\n #slidesContainer >\n <ecl-news-ticker-item #firstHiddenItem></ecl-news-ticker-item>\n <ng-content></ng-content>\n <ecl-news-ticker-item #lastHiddenItem></ecl-news-ticker-item>\n </ul>\n </div>\n</div>\n<ecl-icon icon=\"information\"\n size=\"m\"\n class=\"ecl-news-ticker__icon\"></ecl-icon>\n<div class=\"ecl-news-ticker__counter\">\n <span class=\"ecl-news-ticker__counter--current\"> {{ itemIndex }}</span> \n {{ 'ecl.common.OF' | translate }}\n <span class=\"ecl-news-ticker__counter--max\">{{ itemsCount }}</span>\n</div>\n<div class=\"ecl-news-ticker__controls\">\n <button eclButton\n variant=\"primary\"\n class=\"ecl-news-ticker__prev\"\n (click)=\"onPrevious()\">\n <span class=\"ecl-u-sr-only\">\n {{ 'ecl.news-ticker.PREV-NEWS' | translate }}\n </span>\n <ecl-icon icon=\"corner-arrow\"\n size=\"m\"\n transform=\"rotate-270\"></ecl-icon>\n </button>\n <button eclButton\n variant=\"primary\"\n class=\"ecl-news-ticker__toggle\"\n (click)=\"togglePlay()\">\n <span class=\"ecl-u-sr-only\">\n {{ 'ecl.news-ticker.AUTO-PLAY' | translate }}\n </span>\n <ecl-icon [icon]=\"playing ? 'pause' : 'play'\" size=\"m\"></ecl-icon>\n </button>\n <button eclButton\n variant=\"primary\"\n class=\"ecl-news-ticker__next\"\n (click)=\"onNext()\">\n <span class=\"ecl-u-sr-only\">\n {{ 'ecl.news-ticker.NEXT-NEWS' | translate }}\n </span>\n <ecl-icon icon=\"corner-arrow\"\n size=\"m\"\n transform=\"rotate-90\">\n </ecl-icon>\n </button>\n</div>\n", dependencies: [{ kind: "component", type: EclButtonComponent, selector: "button[eclButton], button[ecl-button], a[eclButton]", inputs: ["variant", "containerStyleClass"] }, { kind: "component", type: EclIconComponent, selector: "ecl-icon", inputs: ["iconSet", "icon", "size", "color", "transform", "ariaLabelledby", "role", "isInverted", "ariaHidden", "focusable"] }, { kind: "component", type: EclNewsTickerItemComponent, selector: "ecl-news-ticker-item" }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }] });
8960
9008
  __decorate([
8961
9009
  coerceElement
8962
9010
  ], EclNewsTickerComponent.prototype, "slidesContainer", void 0);
8963
9011
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0-next.4", ngImport: i0, type: EclNewsTickerComponent, decorators: [{
8964
9012
  type: Component,
8965
- args: [{ selector: 'ecl-news-ticker', template: "<div class=\"ecl-news-ticker__container\"\n [style.height.px]=\"containerHeight\">\n <div class=\"ecl-news-ticker__content\"\n [style.height.px]=\"contentHeight\">\n <ul class=\"ecl-news-ticker__slides\"\n [style.transition-duration.s]=\"transitionDuration\"\n [style.transform]=\"slidesTransform\"\n #slidesContainer >\n <ecl-news-ticker-item #firstHiddenItem></ecl-news-ticker-item>\n <ng-content></ng-content>\n <ecl-news-ticker-item #lastHiddenItem></ecl-news-ticker-item>\n </ul>\n </div>\n</div>\n<ecl-icon icon=\"information\"\n size=\"m\"\n class=\"ecl-news-ticker__icon\"></ecl-icon>\n<div class=\"ecl-news-ticker__counter\">\n <span class=\"ecl-news-ticker__counter--current\">{{ itemIndex }}</span> of {{ itemsCount }}\n</div>\n<div class=\"ecl-news-ticker__controls\">\n <button eclButton\n variant=\"primary\"\n tabindex=\"-1\"\n class=\"ecl-news-ticker__prev\"\n (click)=\"onPrevious()\">\n <ecl-icon icon=\"corner-arrow\"\n size=\"m\"\n transform=\"rotate-270\"></ecl-icon>\n </button>\n <button eclButton\n variant=\"primary\"\n tabindex=\"-1\"\n class=\"ecl-news-ticker__toggle\"\n (click)=\"togglePlay()\">\n <ecl-icon [icon]=\"playing ? 'pause' : 'play'\"\n size=\"m\"></ecl-icon>\n </button>\n <button eclButton\n variant=\"primary\"\n tabindex=\"-1\"\n class=\"ecl-news-ticker__next\"\n (click)=\"onNext()\">\n <ecl-icon icon=\"corner-arrow\"\n size=\"m\"\n transform=\"rotate-90\">\n </ecl-icon>\n </button>\n</div>\n" }]
9013
+ args: [{ selector: 'ecl-news-ticker', template: "<div class=\"ecl-news-ticker__container\"\n [style.height.px]=\"containerHeight\">\n <div class=\"ecl-news-ticker__content\"\n [style.height.px]=\"contentHeight\">\n <ul class=\"ecl-news-ticker__slides\"\n [style.transition-duration.s]=\"transitionDuration\"\n [style.transform]=\"slidesTransform\"\n #slidesContainer >\n <ecl-news-ticker-item #firstHiddenItem></ecl-news-ticker-item>\n <ng-content></ng-content>\n <ecl-news-ticker-item #lastHiddenItem></ecl-news-ticker-item>\n </ul>\n </div>\n</div>\n<ecl-icon icon=\"information\"\n size=\"m\"\n class=\"ecl-news-ticker__icon\"></ecl-icon>\n<div class=\"ecl-news-ticker__counter\">\n <span class=\"ecl-news-ticker__counter--current\"> {{ itemIndex }}</span> \n {{ 'ecl.common.OF' | translate }}\n <span class=\"ecl-news-ticker__counter--max\">{{ itemsCount }}</span>\n</div>\n<div class=\"ecl-news-ticker__controls\">\n <button eclButton\n variant=\"primary\"\n class=\"ecl-news-ticker__prev\"\n (click)=\"onPrevious()\">\n <span class=\"ecl-u-sr-only\">\n {{ 'ecl.news-ticker.PREV-NEWS' | translate }}\n </span>\n <ecl-icon icon=\"corner-arrow\"\n size=\"m\"\n transform=\"rotate-270\"></ecl-icon>\n </button>\n <button eclButton\n variant=\"primary\"\n class=\"ecl-news-ticker__toggle\"\n (click)=\"togglePlay()\">\n <span class=\"ecl-u-sr-only\">\n {{ 'ecl.news-ticker.AUTO-PLAY' | translate }}\n </span>\n <ecl-icon [icon]=\"playing ? 'pause' : 'play'\" size=\"m\"></ecl-icon>\n </button>\n <button eclButton\n variant=\"primary\"\n class=\"ecl-news-ticker__next\"\n (click)=\"onNext()\">\n <span class=\"ecl-u-sr-only\">\n {{ 'ecl.news-ticker.NEXT-NEWS' | translate }}\n </span>\n <ecl-icon icon=\"corner-arrow\"\n size=\"m\"\n transform=\"rotate-90\">\n </ecl-icon>\n </button>\n</div>\n" }]
8966
9014
  }], ctorParameters: function () { return [{ type: i0.Renderer2 }]; }, propDecorators: { itemSwitch: [{
8967
9015
  type: Output
8968
9016
  }], newsTickerItems: [{
@@ -10044,7 +10092,7 @@ class EclPaginationItemComponent extends ECLBaseDirective {
10044
10092
  }
10045
10093
  }
10046
10094
  /** @nocollapse */ EclPaginationItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0-next.4", ngImport: i0, type: EclPaginationItemComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
10047
- /** @nocollapse */ EclPaginationItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.0-next.4", type: EclPaginationItemComponent, selector: "ecl-pagination-item", inputs: { label: "label", ariaLabel: "ariaLabel", isCurrent: "isCurrent", isNext: "isNext", isPrevious: "isPrevious", href: "href" }, outputs: { pageClick: "pageClick" }, host: { properties: { "class": "this.cssClasses" } }, usesInheritance: true, ngImport: i0, template: "<a *ngIf=\"!isCurrent\"\n eclLink\n (click)=\"onPageClick($event)\"\n variant=\"standalone\"\n attr.aria-label=\"{{ ariaLabel || geti18nPageAriaLabelKey() | translate:{ pageNumber: label} }}\"\n [href]=\"href\"\n class=\"ecl-pagination__link\">\n <ng-container *ngIf=\"isPrevious\">\n <ecl-icon icon=\"corner-arrow\" size=\"xs\" transform=\"rotate-270\"></ecl-icon>\n </ng-container>\n <span eclLinkLabel>{{ label || geti18nPageLabelKey() | translate }}</span>\n <ng-container *ngIf=\"isNext\">\n <ecl-icon icon=\"corner-arrow\" size=\"xs\" transform=\"rotate-90\"></ecl-icon>\n </ng-container>\n</a>\n\n<ng-container *ngIf=\"isCurrent\">\n <span class=\"ecl-pagination__text ecl-pagination__text--summary\"\n attr.aria-label=\"{{ ariaLabel || 'ecl.pagination.PAGE' | translate:{ pageNumber: label} }}\"\n aria-current=\"true\">\n {{ label }}\n </span>\n <span class=\"ecl-pagination__text ecl-pagination__text--full\"\n aria-current=\"true\">\n {{ 'ecl.pagination.PAGE' | translate:{ pageNumber: label} }}\n </span>\n</ng-container>\n", dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: EclIconComponent, selector: "ecl-icon", inputs: ["iconSet", "icon", "size", "color", "transform", "ariaLabelledby", "role", "isInverted", "ariaHidden", "focusable"] }, { kind: "directive", type: EclLinkDirective, selector: "[eclLink]", inputs: ["variant", "isNegative", "isNoVisited"] }, { kind: "directive", type: EclLinkLabelDirective, selector: "[eclLinkLabel]" }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }] });
10095
+ /** @nocollapse */ EclPaginationItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.0-next.4", type: EclPaginationItemComponent, selector: "ecl-pagination-item", inputs: { label: "label", ariaLabel: "ariaLabel", isCurrent: "isCurrent", isNext: "isNext", isPrevious: "isPrevious", href: "href" }, outputs: { pageClick: "pageClick" }, host: { properties: { "class": "this.cssClasses" } }, usesInheritance: true, ngImport: i0, template: "<a *ngIf=\"!isCurrent\"\n eclLink\n (click)=\"onPageClick($event)\"\n variant=\"standalone\"\n attr.aria-label=\"{{ ariaLabel || geti18nPageAriaLabelKey() | translate:{ pageNumber: label} }}\"\n [href]=\"href\"\n class=\"ecl-pagination__link\">\n <ng-container *ngIf=\"isPrevious\">\n <ecl-icon icon=\"corner-arrow\" size=\"xs\" transform=\"rotate-270\"></ecl-icon>\n </ng-container>\n <span eclLinkLabel>{{ label || geti18nPageLabelKey() | translate }}</span>\n <ng-container *ngIf=\"isNext\">\n <ecl-icon icon=\"corner-arrow\" size=\"xs\" transform=\"rotate-90\"></ecl-icon>\n </ng-container>\n</a>\n\n<ng-container *ngIf=\"isCurrent\">\n <span class=\"ecl-pagination__text ecl-pagination__text--summary\"\n aria-current=\"true\">\n {{ label }}\n </span>\n <span class=\"ecl-pagination__text ecl-pagination__text--full\"\n aria-current=\"true\">\n {{ 'ecl.pagination.PAGE' | translate:{ pageNumber: label} }}\n </span>\n</ng-container>\n", dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: EclIconComponent, selector: "ecl-icon", inputs: ["iconSet", "icon", "size", "color", "transform", "ariaLabelledby", "role", "isInverted", "ariaHidden", "focusable"] }, { kind: "directive", type: EclLinkDirective, selector: "[eclLink]", inputs: ["variant", "isNegative", "isNoVisited"] }, { kind: "directive", type: EclLinkLabelDirective, selector: "[eclLinkLabel]" }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }] });
10048
10096
  __decorate([
10049
10097
  coerceBoolean
10050
10098
  ], EclPaginationItemComponent.prototype, "isCurrent", void 0);
@@ -10056,7 +10104,7 @@ __decorate([
10056
10104
  ], EclPaginationItemComponent.prototype, "isPrevious", void 0);
10057
10105
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0-next.4", ngImport: i0, type: EclPaginationItemComponent, decorators: [{
10058
10106
  type: Component,
10059
- args: [{ selector: 'ecl-pagination-item', template: "<a *ngIf=\"!isCurrent\"\n eclLink\n (click)=\"onPageClick($event)\"\n variant=\"standalone\"\n attr.aria-label=\"{{ ariaLabel || geti18nPageAriaLabelKey() | translate:{ pageNumber: label} }}\"\n [href]=\"href\"\n class=\"ecl-pagination__link\">\n <ng-container *ngIf=\"isPrevious\">\n <ecl-icon icon=\"corner-arrow\" size=\"xs\" transform=\"rotate-270\"></ecl-icon>\n </ng-container>\n <span eclLinkLabel>{{ label || geti18nPageLabelKey() | translate }}</span>\n <ng-container *ngIf=\"isNext\">\n <ecl-icon icon=\"corner-arrow\" size=\"xs\" transform=\"rotate-90\"></ecl-icon>\n </ng-container>\n</a>\n\n<ng-container *ngIf=\"isCurrent\">\n <span class=\"ecl-pagination__text ecl-pagination__text--summary\"\n attr.aria-label=\"{{ ariaLabel || 'ecl.pagination.PAGE' | translate:{ pageNumber: label} }}\"\n aria-current=\"true\">\n {{ label }}\n </span>\n <span class=\"ecl-pagination__text ecl-pagination__text--full\"\n aria-current=\"true\">\n {{ 'ecl.pagination.PAGE' | translate:{ pageNumber: label} }}\n </span>\n</ng-container>\n" }]
10107
+ args: [{ selector: 'ecl-pagination-item', template: "<a *ngIf=\"!isCurrent\"\n eclLink\n (click)=\"onPageClick($event)\"\n variant=\"standalone\"\n attr.aria-label=\"{{ ariaLabel || geti18nPageAriaLabelKey() | translate:{ pageNumber: label} }}\"\n [href]=\"href\"\n class=\"ecl-pagination__link\">\n <ng-container *ngIf=\"isPrevious\">\n <ecl-icon icon=\"corner-arrow\" size=\"xs\" transform=\"rotate-270\"></ecl-icon>\n </ng-container>\n <span eclLinkLabel>{{ label || geti18nPageLabelKey() | translate }}</span>\n <ng-container *ngIf=\"isNext\">\n <ecl-icon icon=\"corner-arrow\" size=\"xs\" transform=\"rotate-90\"></ecl-icon>\n </ng-container>\n</a>\n\n<ng-container *ngIf=\"isCurrent\">\n <span class=\"ecl-pagination__text ecl-pagination__text--summary\"\n aria-current=\"true\">\n {{ label }}\n </span>\n <span class=\"ecl-pagination__text ecl-pagination__text--full\"\n aria-current=\"true\">\n {{ 'ecl.pagination.PAGE' | translate:{ pageNumber: label} }}\n </span>\n</ng-container>\n" }]
10060
10108
  }], propDecorators: { cssClasses: [{
10061
10109
  type: HostBinding,
10062
10110
  args: ['class']