@eui/ecl 23.0.0-alpha.6 → 23.0.0-alpha.8

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 (215) hide show
  1. package/docs/changelog.html +86 -0
  2. package/docs/classes/EclLanguageService.html +8 -8
  3. package/docs/components/EclBannerComponent.html +28 -56
  4. package/docs/components/EclCardComponent.html +12 -24
  5. package/docs/components/EclCarouselComponent.html +33 -65
  6. package/docs/components/EclCarouselItemComponent.html +4 -8
  7. package/docs/components/EclCategoryFilterComponent.html +4 -8
  8. package/docs/components/EclCategoryFilterItemComponent.html +5 -9
  9. package/docs/components/EclCategoryFilterListComponent.html +5 -9
  10. package/docs/components/EclContentItemComponent.html +20 -40
  11. package/docs/components/EclFactFiguresItemComponent.html +4 -8
  12. package/docs/components/EclFactFiguresViewAllComponent.html +4 -8
  13. package/docs/components/EclFeaturedItemComponent.html +4 -10
  14. package/docs/components/EclFileComponent.html +4 -8
  15. package/docs/components/EclFileItemsComponent.html +4 -8
  16. package/docs/components/EclFormGroupComponent.html +4 -8
  17. package/docs/components/EclGalleryComponent.html +21 -41
  18. package/docs/components/EclGalleryItemComponent.html +8 -16
  19. package/docs/components/EclIconComponent.html +4 -8
  20. package/docs/components/EclInpageNavigationComponent.html +20 -40
  21. package/docs/components/EclInpageNavigationItemComponent.html +4 -8
  22. package/docs/components/EclListIllustrationComponent.html +4 -8
  23. package/docs/components/EclListIllustrationItemComponent.html +9 -17
  24. package/docs/components/EclMediaContainerComponent.html +21 -41
  25. package/docs/components/EclMegaMenuComponent.html +4 -8
  26. package/docs/components/EclMegaMenuFeaturedComponent.html +12 -24
  27. package/docs/components/EclMegaMenuInfoComponent.html +4 -8
  28. package/docs/components/EclMegaMenuItemComponent.html +37 -73
  29. package/docs/components/EclMegaMenuSubitemComponent.html +21 -43
  30. package/docs/components/EclMenuComponent.html +20 -40
  31. package/docs/components/EclMenuItemComponent.html +12 -24
  32. package/docs/components/EclMenuMegaItemComponent.html +12 -24
  33. package/docs/components/EclModalComponent.html +1 -1
  34. package/docs/components/EclMultiselectComponent.html +4 -8
  35. package/docs/components/EclMultiselectDropdownComponent.html +21 -41
  36. package/docs/components/EclMultiselectInputComponent.html +4 -8
  37. package/docs/components/EclMultiselectOptionComponent.html +4 -8
  38. package/docs/components/EclNavigationListComponent.html +4 -8
  39. package/docs/components/EclNavigationListItemComponent.html +4 -8
  40. package/docs/components/EclNewsTickerComponent.html +28 -48
  41. package/docs/components/EclNewsTickerItemComponent.html +4 -8
  42. package/docs/components/EclPageHeaderComponent.html +8 -16
  43. package/docs/components/EclPaginationComponent.html +4 -8
  44. package/docs/components/EclPopoverComponent.html +12 -24
  45. package/docs/components/EclSiteHeaderComponent.html +44 -88
  46. package/docs/components/EclSiteHeaderCustomActionComponent.html +8 -16
  47. package/docs/components/EclSiteHeaderLanguageComponent.html +10 -18
  48. package/docs/components/EclSiteHeaderLanguagePopoverComponent.html +6 -10
  49. package/docs/components/EclSiteHeaderLoginComponent.html +4 -8
  50. package/docs/components/EclSiteHeaderSearchComponent.html +4 -8
  51. package/docs/components/EclTabComponent.html +12 -24
  52. package/docs/components/EclTabsComponent.html +29 -57
  53. package/docs/components/EclTimelineComponent.html +4 -8
  54. package/docs/components/EclTimelineItemComponent.html +16 -32
  55. package/docs/directives/EclCheckboxDirective.html +16 -32
  56. package/docs/directives/EclDescriptionListDirective.html +4 -8
  57. package/docs/directives/EclGalleryMediaDirective.html +2 -2
  58. package/docs/directives/EclGalleryPictureDirective.html +1 -1
  59. package/docs/directives/EclListIllustrationPictureDirective.html +4 -8
  60. package/docs/directives/EclMediaContainerItemDirective.html +4 -8
  61. package/docs/directives/EclMegaMenuSublistDirective.html +8 -16
  62. package/docs/directives/EclMultiselectOptionDirective.html +4 -8
  63. package/docs/directives/EclPageHeaderMetaItemDirective.html +9 -0
  64. package/docs/directives/EclRadioDirective.html +8 -16
  65. package/docs/directives/EclSocialMediaFollowLinkDirective.html +4 -8
  66. package/docs/directives/EclTableDirective.html +4 -8
  67. package/docs/directives/EclTableHeadDirective.html +4 -8
  68. package/docs/injectables/EclDefaultLanguageService.html +7 -7
  69. package/docs/injectables/EclMegaMenuService.html +2 -2
  70. package/docs/interfaces/EclMegaMenuItem.html +2 -2
  71. package/docs/interfaces/EclMenuItem.html +2 -2
  72. package/docs/js/search/search_index.js +2 -2
  73. package/docs/json/EclMegaMenuItemComponent.md +1 -1
  74. package/docs/json/EclMegaMenuSubitemComponent.md +1 -1
  75. package/docs/json/EclSiteHeaderLanguagePopoverComponent.md +2 -2
  76. package/docs/json/documentation.json +1365 -2133
  77. package/docs/llms.txt +182 -182
  78. package/docs/miscellaneous/variables.html +16 -16
  79. package/docs/properties.html +1 -1
  80. package/fesm2022/eui-ecl-components-ecl-banner.mjs +37 -40
  81. package/fesm2022/eui-ecl-components-ecl-banner.mjs.map +1 -1
  82. package/fesm2022/eui-ecl-components-ecl-card.mjs +23 -17
  83. package/fesm2022/eui-ecl-components-ecl-card.mjs.map +1 -1
  84. package/fesm2022/eui-ecl-components-ecl-carousel.mjs +105 -82
  85. package/fesm2022/eui-ecl-components-ecl-carousel.mjs.map +1 -1
  86. package/fesm2022/eui-ecl-components-ecl-category-filter.mjs +36 -29
  87. package/fesm2022/eui-ecl-components-ecl-category-filter.mjs.map +1 -1
  88. package/fesm2022/eui-ecl-components-ecl-checkbox.mjs +30 -20
  89. package/fesm2022/eui-ecl-components-ecl-checkbox.mjs.map +1 -1
  90. package/fesm2022/eui-ecl-components-ecl-content-item.mjs +46 -27
  91. package/fesm2022/eui-ecl-components-ecl-content-item.mjs.map +1 -1
  92. package/fesm2022/eui-ecl-components-ecl-date-picker.mjs.map +1 -1
  93. package/fesm2022/eui-ecl-components-ecl-fact-figures.mjs +25 -15
  94. package/fesm2022/eui-ecl-components-ecl-fact-figures.mjs.map +1 -1
  95. package/fesm2022/eui-ecl-components-ecl-featured.mjs +10 -9
  96. package/fesm2022/eui-ecl-components-ecl-featured.mjs.map +1 -1
  97. package/fesm2022/eui-ecl-components-ecl-file.mjs +17 -13
  98. package/fesm2022/eui-ecl-components-ecl-file.mjs.map +1 -1
  99. package/fesm2022/eui-ecl-components-ecl-form-group.mjs +12 -7
  100. package/fesm2022/eui-ecl-components-ecl-form-group.mjs.map +1 -1
  101. package/fesm2022/eui-ecl-components-ecl-gallery.mjs +44 -49
  102. package/fesm2022/eui-ecl-components-ecl-gallery.mjs.map +1 -1
  103. package/fesm2022/eui-ecl-components-ecl-icon.mjs +7 -8
  104. package/fesm2022/eui-ecl-components-ecl-icon.mjs.map +1 -1
  105. package/fesm2022/eui-ecl-components-ecl-inpage-navigation.mjs +48 -50
  106. package/fesm2022/eui-ecl-components-ecl-inpage-navigation.mjs.map +1 -1
  107. package/fesm2022/eui-ecl-components-ecl-link.mjs.map +1 -1
  108. package/fesm2022/eui-ecl-components-ecl-list-illustration.mjs +19 -24
  109. package/fesm2022/eui-ecl-components-ecl-list-illustration.mjs.map +1 -1
  110. package/fesm2022/eui-ecl-components-ecl-list.mjs +6 -7
  111. package/fesm2022/eui-ecl-components-ecl-list.mjs.map +1 -1
  112. package/fesm2022/eui-ecl-components-ecl-loading-indicator.mjs.map +1 -1
  113. package/fesm2022/eui-ecl-components-ecl-media-container.mjs +31 -34
  114. package/fesm2022/eui-ecl-components-ecl-media-container.mjs.map +1 -1
  115. package/fesm2022/eui-ecl-components-ecl-mega-menu.mjs +237 -197
  116. package/fesm2022/eui-ecl-components-ecl-mega-menu.mjs.map +1 -1
  117. package/fesm2022/eui-ecl-components-ecl-menu.mjs +108 -86
  118. package/fesm2022/eui-ecl-components-ecl-menu.mjs.map +1 -1
  119. package/fesm2022/eui-ecl-components-ecl-modal.mjs +0 -1
  120. package/fesm2022/eui-ecl-components-ecl-modal.mjs.map +1 -1
  121. package/fesm2022/eui-ecl-components-ecl-multiselect.mjs +70 -67
  122. package/fesm2022/eui-ecl-components-ecl-multiselect.mjs.map +1 -1
  123. package/fesm2022/eui-ecl-components-ecl-navigation-list.mjs +16 -14
  124. package/fesm2022/eui-ecl-components-ecl-navigation-list.mjs.map +1 -1
  125. package/fesm2022/eui-ecl-components-ecl-news-ticker.mjs +67 -51
  126. package/fesm2022/eui-ecl-components-ecl-news-ticker.mjs.map +1 -1
  127. package/fesm2022/eui-ecl-components-ecl-page-header.mjs +17 -12
  128. package/fesm2022/eui-ecl-components-ecl-page-header.mjs.map +1 -1
  129. package/fesm2022/eui-ecl-components-ecl-pagination.mjs +9 -7
  130. package/fesm2022/eui-ecl-components-ecl-pagination.mjs.map +1 -1
  131. package/fesm2022/eui-ecl-components-ecl-popover.mjs +44 -38
  132. package/fesm2022/eui-ecl-components-ecl-popover.mjs.map +1 -1
  133. package/fesm2022/eui-ecl-components-ecl-radio.mjs +22 -14
  134. package/fesm2022/eui-ecl-components-ecl-radio.mjs.map +1 -1
  135. package/fesm2022/eui-ecl-components-ecl-site-footer.mjs +1 -1
  136. package/fesm2022/eui-ecl-components-ecl-site-footer.mjs.map +1 -1
  137. package/fesm2022/eui-ecl-components-ecl-site-header.mjs +123 -118
  138. package/fesm2022/eui-ecl-components-ecl-site-header.mjs.map +1 -1
  139. package/fesm2022/eui-ecl-components-ecl-slogan-ticker.mjs +2 -2
  140. package/fesm2022/eui-ecl-components-ecl-slogan-ticker.mjs.map +1 -1
  141. package/fesm2022/eui-ecl-components-ecl-social-media-follow.mjs +10 -8
  142. package/fesm2022/eui-ecl-components-ecl-social-media-follow.mjs.map +1 -1
  143. package/fesm2022/eui-ecl-components-ecl-table.mjs +17 -15
  144. package/fesm2022/eui-ecl-components-ecl-table.mjs.map +1 -1
  145. package/fesm2022/eui-ecl-components-ecl-tabs.mjs +101 -81
  146. package/fesm2022/eui-ecl-components-ecl-tabs.mjs.map +1 -1
  147. package/fesm2022/eui-ecl-components-ecl-timeline.mjs +47 -37
  148. package/fesm2022/eui-ecl-components-ecl-timeline.mjs.map +1 -1
  149. package/fesm2022/eui-ecl-components-ecl-tooltip.mjs.map +1 -1
  150. package/fesm2022/eui-ecl-core.mjs +1 -1
  151. package/fesm2022/eui-ecl-core.mjs.map +1 -1
  152. package/package.json +1 -1
  153. package/types/eui-ecl-components-ecl-banner.d.ts +42 -43
  154. package/types/eui-ecl-components-ecl-banner.d.ts.map +1 -1
  155. package/types/eui-ecl-components-ecl-card.d.ts +34 -35
  156. package/types/eui-ecl-components-ecl-card.d.ts.map +1 -1
  157. package/types/eui-ecl-components-ecl-carousel.d.ts +10 -11
  158. package/types/eui-ecl-components-ecl-carousel.d.ts.map +1 -1
  159. package/types/eui-ecl-components-ecl-category-filter.d.ts +6 -6
  160. package/types/eui-ecl-components-ecl-category-filter.d.ts.map +1 -1
  161. package/types/eui-ecl-components-ecl-checkbox.d.ts +47 -49
  162. package/types/eui-ecl-components-ecl-checkbox.d.ts.map +1 -1
  163. package/types/eui-ecl-components-ecl-content-item.d.ts +16 -18
  164. package/types/eui-ecl-components-ecl-content-item.d.ts.map +1 -1
  165. package/types/eui-ecl-components-ecl-fact-figures.d.ts +3 -3
  166. package/types/eui-ecl-components-ecl-fact-figures.d.ts.map +1 -1
  167. package/types/eui-ecl-components-ecl-featured.d.ts +2 -2
  168. package/types/eui-ecl-components-ecl-featured.d.ts.map +1 -1
  169. package/types/eui-ecl-components-ecl-file.d.ts +42 -43
  170. package/types/eui-ecl-components-ecl-file.d.ts.map +1 -1
  171. package/types/eui-ecl-components-ecl-form-group.d.ts +1 -3
  172. package/types/eui-ecl-components-ecl-form-group.d.ts.map +1 -1
  173. package/types/eui-ecl-components-ecl-gallery.d.ts +12 -12
  174. package/types/eui-ecl-components-ecl-gallery.d.ts.map +1 -1
  175. package/types/eui-ecl-components-ecl-icon.d.ts +1 -1
  176. package/types/eui-ecl-components-ecl-icon.d.ts.map +1 -1
  177. package/types/eui-ecl-components-ecl-inpage-navigation.d.ts +8 -8
  178. package/types/eui-ecl-components-ecl-inpage-navigation.d.ts.map +1 -1
  179. package/types/eui-ecl-components-ecl-list-illustration.d.ts +44 -44
  180. package/types/eui-ecl-components-ecl-list-illustration.d.ts.map +1 -1
  181. package/types/eui-ecl-components-ecl-list.d.ts +2 -2
  182. package/types/eui-ecl-components-ecl-list.d.ts.map +1 -1
  183. package/types/eui-ecl-components-ecl-media-container.d.ts +33 -33
  184. package/types/eui-ecl-components-ecl-media-container.d.ts.map +1 -1
  185. package/types/eui-ecl-components-ecl-mega-menu.d.ts +185 -191
  186. package/types/eui-ecl-components-ecl-mega-menu.d.ts.map +1 -1
  187. package/types/eui-ecl-components-ecl-menu.d.ts +126 -128
  188. package/types/eui-ecl-components-ecl-menu.d.ts.map +1 -1
  189. package/types/eui-ecl-components-ecl-modal.d.ts.map +1 -1
  190. package/types/eui-ecl-components-ecl-multiselect.d.ts +10 -10
  191. package/types/eui-ecl-components-ecl-multiselect.d.ts.map +1 -1
  192. package/types/eui-ecl-components-ecl-navigation-list.d.ts +3 -4
  193. package/types/eui-ecl-components-ecl-navigation-list.d.ts.map +1 -1
  194. package/types/eui-ecl-components-ecl-news-ticker.d.ts +18 -18
  195. package/types/eui-ecl-components-ecl-news-ticker.d.ts.map +1 -1
  196. package/types/eui-ecl-components-ecl-page-header.d.ts +3 -3
  197. package/types/eui-ecl-components-ecl-page-header.d.ts.map +1 -1
  198. package/types/eui-ecl-components-ecl-pagination.d.ts +1 -1
  199. package/types/eui-ecl-components-ecl-pagination.d.ts.map +1 -1
  200. package/types/eui-ecl-components-ecl-popover.d.ts +3 -3
  201. package/types/eui-ecl-components-ecl-popover.d.ts.map +1 -1
  202. package/types/eui-ecl-components-ecl-radio.d.ts +28 -28
  203. package/types/eui-ecl-components-ecl-radio.d.ts.map +1 -1
  204. package/types/eui-ecl-components-ecl-site-header.d.ts +48 -48
  205. package/types/eui-ecl-components-ecl-site-header.d.ts.map +1 -1
  206. package/types/eui-ecl-components-ecl-social-media-follow.d.ts +1 -1
  207. package/types/eui-ecl-components-ecl-social-media-follow.d.ts.map +1 -1
  208. package/types/eui-ecl-components-ecl-table.d.ts +3 -3
  209. package/types/eui-ecl-components-ecl-table.d.ts.map +1 -1
  210. package/types/eui-ecl-components-ecl-tabs.d.ts +12 -12
  211. package/types/eui-ecl-components-ecl-tabs.d.ts.map +1 -1
  212. package/types/eui-ecl-components-ecl-timeline.d.ts +27 -28
  213. package/types/eui-ecl-components-ecl-timeline.d.ts.map +1 -1
  214. package/types/eui-ecl-core.d.ts +11 -11
  215. package/types/eui-ecl-core.d.ts.map +1 -1
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Pipe, input, signal, booleanAttribute, computed, output, inject, Renderer2, ViewChild, HostBinding, Component, Input, EventEmitter, ElementRef, forwardRef, HostListener, Output, ViewChildren, ContentChildren, Directive, Injector, ViewContainerRef, IterableDiffers, PLATFORM_ID, afterNextRender, ViewEncapsulation } from '@angular/core';
2
+ import { Pipe, input, signal, booleanAttribute, computed, viewChild, output, inject, Renderer2, HostBinding, Component, Input, ElementRef, EventEmitter, forwardRef, HostListener, Output, ViewChildren, contentChildren, Directive, Injector, ViewContainerRef, IterableDiffers, PLATFORM_ID, afterNextRender, ViewEncapsulation } from '@angular/core';
3
3
  import { NG_VALUE_ACCESSOR, NgControl } from '@angular/forms';
4
4
  import { Subject, takeUntil } from 'rxjs';
5
5
  import { TranslatePipe } from '@ngx-translate/core';
@@ -138,6 +138,11 @@ class EclMultiselectInputComponent extends ECLBaseDirective {
138
138
  return [describedby, counter].filter(Boolean).join(' ') || undefined;
139
139
  }, /* @ts-ignore */
140
140
  ...(ngDevMode ? [{ debugName: "ariaDescribedbyFull" }] : /* istanbul ignore next */ []));
141
+ /**
142
+ * Reference to the internal input element.
143
+ */
144
+ this.inputMultiselect = viewChild('inputMultiselect', /* @ts-ignore */
145
+ ...(ngDevMode ? [{ debugName: "inputMultiselect" }] : /* istanbul ignore next */ []));
141
146
  /**
142
147
  * Event emitted when the input is clicked.
143
148
  */
@@ -222,10 +227,10 @@ class EclMultiselectInputComponent extends ECLBaseDirective {
222
227
  * Focuses the multiselect input element.
223
228
  */
224
229
  onFocus() {
225
- this.renderer.selectRootElement(this.inputMultiselect.nativeElement, true).focus();
230
+ this.renderer.selectRootElement(this.inputMultiselect().nativeElement, true).focus();
226
231
  }
227
232
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: EclMultiselectInputComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
228
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.5", type: EclMultiselectInputComponent, isStandalone: true, selector: "div[eclMultiselectInput]", inputs: { eclSize: { classPropertyName: "eclSize", publicName: "eclSize", isSignal: true, isRequired: false, transformFunction: null }, counterLabel: { classPropertyName: "counterLabel", publicName: "counterLabel", isSignal: true, isRequired: false, transformFunction: null }, toggleId: { classPropertyName: "toggleId", publicName: "toggleId", isSignal: true, isRequired: false, transformFunction: null }, toggleLabel: { classPropertyName: "toggleLabel", publicName: "toggleLabel", isSignal: true, isRequired: false, transformFunction: null }, isDisabled: { classPropertyName: "isDisabled", publicName: "isDisabled", isSignal: true, isRequired: false, transformFunction: null }, isInvalid: { classPropertyName: "isInvalid", publicName: "isInvalid", isSignal: true, isRequired: false, transformFunction: null }, inputPlaceholder: { classPropertyName: "inputPlaceholder", publicName: "inputPlaceholder", isSignal: true, isRequired: false, transformFunction: null }, selectedItems: { classPropertyName: "selectedItems", publicName: "selectedItems", isSignal: true, isRequired: false, transformFunction: null }, isDropdownExpanded: { classPropertyName: "isDropdownExpanded", publicName: "isDropdownExpanded", isSignal: true, isRequired: false, transformFunction: null }, ariaControls: { classPropertyName: "ariaControls", publicName: "ariaControls", isSignal: true, isRequired: false, transformFunction: null }, ariaDescribedby: { classPropertyName: "ariaDescribedby", publicName: "ariaDescribedby", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { mainInputClick: "mainInputClick", mainInputKeydown: "mainInputKeydown" }, host: { properties: { "class.ecl-select__container--disabled": "isDisabled()", "class.ecl-select__container--invalid": "isInvalid()", "class": "this.cssClasses" } }, viewQueries: [{ propertyName: "inputMultiselect", first: true, predicate: ["inputMultiselect"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div [class.ecl-select-multiple-selections-counter--visible]=\"isShowCounter()\"\n class=\"ecl-select-multiple-selections-counter\" [id]=\"counterId()\">\n <div class=\"ecl-select-multiple-selections-counter__label\">{{ counterLabel() | translate }}</div>\n <span>{{ selectedItemsCount() }}</span>\n</div>\n<button\n class=\"ecl-select ecl-select__multiple-toggle\"\n [class.ecl-select--active]=\"isActive()\"\n #inputMultiselect\n type=\"button\"\n [id]=\"toggleId()\"\n [attr.aria-expanded]=\"isDropdownExpanded()\"\n [attr.aria-controls]=\"ariaControls()\"\n [attr.disabled]=\"isDisabled() ? true : undefined\"\n [attr.aria-describedby]=\"ariaDescribedbyFull()\"\n (keydown)=\"onKeydown($event)\"\n (click)=\"onClick($event)\"> {{ buttonText() }}\n</button>\n<div class=\"ecl-select__icon\">\n <button eclButton isIconOnly variant=\"tertiary\" tabindex=\"-1\">\n <span eclButtonLabel>\n {{ toggleLabel() || 'ecl.multiselect.TOGGLE.DROPDOWN' | translate }}\n </span>\n <ecl-icon icon=\"corner-arrow\" [size]=\"sizeIcon\" transform=\"rotate-180\"></ecl-icon>\n </button>\n</div>\n", dependencies: [{ kind: "component", type: i1.EclButtonComponent, selector: "button[eclButton], button[ecl-button], a[eclButton]", inputs: ["isIconOnly", "variant", "eclStyle", "size", "containerStyleClass"] }, { kind: "directive", type: i1.EclButtonLabelDirective, selector: "[eclButtonLabel]" }, { kind: "component", type: i2.EclIconComponent, selector: "ecl-icon", inputs: ["iconSet", "icon", "size", "color", "transform", "ariaLabelledby", "role", "title", "ariaHidden", "focusable", "isFlipHorizontal"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
233
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "22.0.5", type: EclMultiselectInputComponent, isStandalone: true, selector: "div[eclMultiselectInput]", inputs: { eclSize: { classPropertyName: "eclSize", publicName: "eclSize", isSignal: true, isRequired: false, transformFunction: null }, counterLabel: { classPropertyName: "counterLabel", publicName: "counterLabel", isSignal: true, isRequired: false, transformFunction: null }, toggleId: { classPropertyName: "toggleId", publicName: "toggleId", isSignal: true, isRequired: false, transformFunction: null }, toggleLabel: { classPropertyName: "toggleLabel", publicName: "toggleLabel", isSignal: true, isRequired: false, transformFunction: null }, isDisabled: { classPropertyName: "isDisabled", publicName: "isDisabled", isSignal: true, isRequired: false, transformFunction: null }, isInvalid: { classPropertyName: "isInvalid", publicName: "isInvalid", isSignal: true, isRequired: false, transformFunction: null }, inputPlaceholder: { classPropertyName: "inputPlaceholder", publicName: "inputPlaceholder", isSignal: true, isRequired: false, transformFunction: null }, selectedItems: { classPropertyName: "selectedItems", publicName: "selectedItems", isSignal: true, isRequired: false, transformFunction: null }, isDropdownExpanded: { classPropertyName: "isDropdownExpanded", publicName: "isDropdownExpanded", isSignal: true, isRequired: false, transformFunction: null }, ariaControls: { classPropertyName: "ariaControls", publicName: "ariaControls", isSignal: true, isRequired: false, transformFunction: null }, ariaDescribedby: { classPropertyName: "ariaDescribedby", publicName: "ariaDescribedby", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { mainInputClick: "mainInputClick", mainInputKeydown: "mainInputKeydown" }, host: { properties: { "class.ecl-select__container--disabled": "isDisabled()", "class.ecl-select__container--invalid": "isInvalid()", "class": "this.cssClasses" } }, viewQueries: [{ propertyName: "inputMultiselect", first: true, predicate: ["inputMultiselect"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<div [class.ecl-select-multiple-selections-counter--visible]=\"isShowCounter()\"\n class=\"ecl-select-multiple-selections-counter\" [id]=\"counterId()\">\n <div class=\"ecl-select-multiple-selections-counter__label\">{{ counterLabel() | translate }}</div>\n <span>{{ selectedItemsCount() }}</span>\n</div>\n<button\n class=\"ecl-select ecl-select__multiple-toggle\"\n [class.ecl-select--active]=\"isActive()\"\n #inputMultiselect\n type=\"button\"\n [id]=\"toggleId()\"\n [attr.aria-expanded]=\"isDropdownExpanded()\"\n [attr.aria-controls]=\"ariaControls()\"\n [attr.disabled]=\"isDisabled() ? true : undefined\"\n [attr.aria-describedby]=\"ariaDescribedbyFull()\"\n (keydown)=\"onKeydown($event)\"\n (click)=\"onClick($event)\"> {{ buttonText() }}\n</button>\n<div class=\"ecl-select__icon\">\n <button eclButton isIconOnly variant=\"tertiary\" tabindex=\"-1\">\n <span eclButtonLabel>\n {{ toggleLabel() || 'ecl.multiselect.TOGGLE.DROPDOWN' | translate }}\n </span>\n <ecl-icon icon=\"corner-arrow\" [size]=\"sizeIcon\" transform=\"rotate-180\"></ecl-icon>\n </button>\n</div>\n", dependencies: [{ kind: "component", type: i1.EclButtonComponent, selector: "button[eclButton], button[ecl-button], a[eclButton]", inputs: ["isIconOnly", "variant", "eclStyle", "size", "containerStyleClass"] }, { kind: "directive", type: i1.EclButtonLabelDirective, selector: "[eclButtonLabel]" }, { kind: "component", type: i2.EclIconComponent, selector: "ecl-icon", inputs: ["iconSet", "icon", "size", "color", "transform", "ariaLabelledby", "role", "title", "ariaHidden", "focusable", "isFlipHorizontal"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
229
234
  }
230
235
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: EclMultiselectInputComponent, decorators: [{
231
236
  type: Component,
@@ -236,10 +241,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
236
241
  }], propDecorators: { eclSize: [{ type: i0.Input, args: [{ isSignal: true, alias: "eclSize", required: false }] }], counterLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "counterLabel", required: false }] }], toggleId: [{ type: i0.Input, args: [{ isSignal: true, alias: "toggleId", required: false }] }], toggleLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "toggleLabel", required: false }] }], isDisabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "isDisabled", required: false }] }], isInvalid: [{ type: i0.Input, args: [{ isSignal: true, alias: "isInvalid", required: false }] }], cssClasses: [{
237
242
  type: HostBinding,
238
243
  args: ['class']
239
- }], inputPlaceholder: [{ type: i0.Input, args: [{ isSignal: true, alias: "inputPlaceholder", required: false }] }], selectedItems: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectedItems", required: false }] }], isDropdownExpanded: [{ type: i0.Input, args: [{ isSignal: true, alias: "isDropdownExpanded", required: false }] }], ariaControls: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaControls", required: false }] }], ariaDescribedby: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaDescribedby", required: false }] }], inputMultiselect: [{
240
- type: ViewChild,
241
- args: ['inputMultiselect']
242
- }], mainInputClick: [{ type: i0.Output, args: ["mainInputClick"] }], mainInputKeydown: [{ type: i0.Output, args: ["mainInputKeydown"] }] } });
244
+ }], inputPlaceholder: [{ type: i0.Input, args: [{ isSignal: true, alias: "inputPlaceholder", required: false }] }], selectedItems: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectedItems", required: false }] }], isDropdownExpanded: [{ type: i0.Input, args: [{ isSignal: true, alias: "isDropdownExpanded", required: false }] }], ariaControls: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaControls", required: false }] }], ariaDescribedby: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaDescribedby", required: false }] }], inputMultiselect: [{ type: i0.ViewChild, args: ['inputMultiselect', { isSignal: true }] }], mainInputClick: [{ type: i0.Output, args: ["mainInputClick"] }], mainInputKeydown: [{ type: i0.Output, args: ["mainInputKeydown"] }] } });
243
245
 
244
246
  /**
245
247
  * Component representing a single selectable option in the multiselect dropdown.
@@ -247,6 +249,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
247
249
  class EclMultiselectOptionComponent extends ECLBaseDirective {
248
250
  constructor() {
249
251
  super(...arguments);
252
+ this.eclCheckboxInput = viewChild('checkboxInput', /* @ts-ignore */
253
+ ...(ngDevMode ? [{ debugName: "eclCheckboxInput" }] : /* istanbul ignore next */ []));
250
254
  this.keyword = '';
251
255
  this.changes = new Subject();
252
256
  /**
@@ -323,7 +327,7 @@ class EclMultiselectOptionComponent extends ECLBaseDirective {
323
327
  * Focuses the checkbox input.
324
328
  */
325
329
  onFocus() {
326
- this.renderer.selectRootElement(this.eclCheckboxInput.nativeElement, true).focus();
330
+ this.renderer.selectRootElement(this.eclCheckboxInput().nativeElement, true).focus();
327
331
  }
328
332
  /**
329
333
  * Makes the option visible.
@@ -349,15 +353,12 @@ class EclMultiselectOptionComponent extends ECLBaseDirective {
349
353
  return crypto.randomUUID();
350
354
  }
351
355
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: EclMultiselectOptionComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
352
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "22.0.5", type: EclMultiselectOptionComponent, isStandalone: true, selector: "div[eclMultiselectOption]", inputs: { value: "value", label: "label", disabled: ["disabled", "disabled", booleanAttribute], isChecked: "isChecked" }, outputs: { optionClick: "optionClick", optionKeydown: "optionKeydown" }, host: { properties: { "class.ecl-checkbox--disabled": "this.disabled", "attr.disabled": "this.disabled", "style.display": "this.display", "class": "this.cssClasses" } }, viewQueries: [{ propertyName: "eclCheckboxInput", first: true, predicate: ["checkboxInput"], descendants: true }], usesInheritance: true, usesOnChanges: true, hostDirectives: [{ directive: i1$1.EclCheckboxDirective }], ngImport: i0, template: "<input\n eclCheckboxInput\n type=\"checkbox\"\n [id]=\"id\"\n [value]=\"value\"\n (click)=\"onOptionClick()\"\n (keydown)=\"onOptionKeydown($event)\"\n [checked]=\"isChecked\"\n [disabled]=\"disabled\"\n #checkboxInput />\n<label [for]=\"id\" eclCheckboxLabel><span [innerHTML]=\"label | boldText: keyword\"></span></label>\n", dependencies: [{ kind: "component", type: i1$1.EclCheckboxLabelComponent, selector: "label[eclCheckboxLabel]", inputs: ["isInvalid", "isDisabled", "isRequired"] }, { kind: "directive", type: i1$1.EclCheckboxInputDirective, selector: "input[eclCheckboxInput]" }, { kind: "pipe", type: BoldTextPipe, name: "boldText" }] }); }
356
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "22.0.5", type: EclMultiselectOptionComponent, isStandalone: true, selector: "div[eclMultiselectOption]", inputs: { value: "value", label: "label", disabled: ["disabled", "disabled", booleanAttribute], isChecked: "isChecked" }, outputs: { optionClick: "optionClick", optionKeydown: "optionKeydown" }, host: { properties: { "class.ecl-checkbox--disabled": "this.disabled", "attr.disabled": "this.disabled", "style.display": "this.display", "class": "this.cssClasses" } }, viewQueries: [{ propertyName: "eclCheckboxInput", first: true, predicate: ["checkboxInput"], descendants: true, isSignal: true }], usesInheritance: true, usesOnChanges: true, hostDirectives: [{ directive: i1$1.EclCheckboxDirective }], ngImport: i0, template: "<input\n eclCheckboxInput\n type=\"checkbox\"\n [id]=\"id\"\n [value]=\"value\"\n (click)=\"onOptionClick()\"\n (keydown)=\"onOptionKeydown($event)\"\n [checked]=\"isChecked\"\n [disabled]=\"disabled\"\n #checkboxInput />\n<label [for]=\"id\" eclCheckboxLabel><span [innerHTML]=\"label | boldText: keyword\"></span></label>\n", dependencies: [{ kind: "component", type: i1$1.EclCheckboxLabelComponent, selector: "label[eclCheckboxLabel]", inputs: ["isInvalid", "isDisabled", "isRequired"] }, { kind: "directive", type: i1$1.EclCheckboxInputDirective, selector: "input[eclCheckboxInput]" }, { kind: "pipe", type: BoldTextPipe, name: "boldText" }] }); }
353
357
  }
354
358
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: EclMultiselectOptionComponent, decorators: [{
355
359
  type: Component,
356
360
  args: [{ selector: 'div[eclMultiselectOption]', imports: [BoldTextPipe, ...EUI_ECL_CHECKBOX], hostDirectives: [EclCheckboxDirective], template: "<input\n eclCheckboxInput\n type=\"checkbox\"\n [id]=\"id\"\n [value]=\"value\"\n (click)=\"onOptionClick()\"\n (keydown)=\"onOptionKeydown($event)\"\n [checked]=\"isChecked\"\n [disabled]=\"disabled\"\n #checkboxInput />\n<label [for]=\"id\" eclCheckboxLabel><span [innerHTML]=\"label | boldText: keyword\"></span></label>\n" }]
357
- }], propDecorators: { eclCheckboxInput: [{
358
- type: ViewChild,
359
- args: ['checkboxInput']
360
- }], value: [{
361
+ }], propDecorators: { eclCheckboxInput: [{ type: i0.ViewChild, args: ['checkboxInput', { isSignal: true }] }], value: [{
361
362
  type: Input
362
363
  }], label: [{
363
364
  type: Input
@@ -441,6 +442,14 @@ class EclMultiselectDropdownComponent extends ECLBaseDirective {
441
442
  }
442
443
  constructor() {
443
444
  super();
445
+ this.searchInput = viewChild('searchInput', /* @ts-ignore */
446
+ ...(ngDevMode ? [{ debugName: "searchInput" }] : /* istanbul ignore next */ []));
447
+ this.eclMultiselectInput = viewChild('eclMultiselectInput', /* @ts-ignore */
448
+ ...(ngDevMode ? [{ debugName: "eclMultiselectInput" }] : /* istanbul ignore next */ []));
449
+ this.selectAllCheckbox = viewChild('selectAllCheckbox', /* @ts-ignore */
450
+ ...(ngDevMode ? [{ debugName: "selectAllCheckbox" }] : /* istanbul ignore next */ []));
451
+ this.closeBtn = viewChild('closeBtn', { ...(ngDevMode ? { debugName: "closeBtn" } : /* istanbul ignore next */ {}), read: ElementRef });
452
+ this.clearAllBtn = viewChild('clearAllBtn', { ...(ngDevMode ? { debugName: "clearAllBtn" } : /* istanbul ignore next */ {}), read: ElementRef });
444
453
  /**
445
454
  * Emits the list of selected values whenever the selection changes.
446
455
  */
@@ -629,7 +638,7 @@ class EclMultiselectDropdownComponent extends ECLBaseDirective {
629
638
  }
630
639
  onEnterClear(evt) {
631
640
  this.onClickClearAll(evt);
632
- this.eclMultiselectInput.onFocus();
641
+ this.eclMultiselectInput().onFocus();
633
642
  }
634
643
  onClickClose(evt) {
635
644
  evt.preventDefault();
@@ -648,27 +657,27 @@ class EclMultiselectDropdownComponent extends ECLBaseDirective {
648
657
  }
649
658
  onArrowDownClose(evt) {
650
659
  evt.preventDefault();
651
- this.renderer.selectRootElement(this.clearAllBtn.nativeElement, true).focus();
660
+ this.renderer.selectRootElement(this.clearAllBtn().nativeElement, true).focus();
652
661
  }
653
662
  onTabClose(evt) {
654
663
  if (!evt.shiftKey) {
655
664
  evt.preventDefault();
656
- this.renderer.selectRootElement(this.clearAllBtn.nativeElement, true).focus();
665
+ this.renderer.selectRootElement(this.clearAllBtn().nativeElement, true).focus();
657
666
  }
658
667
  }
659
668
  onArrowUpClear(evt) {
660
669
  evt.preventDefault();
661
- this.renderer.selectRootElement(this.closeBtn.nativeElement, true).focus();
670
+ this.renderer.selectRootElement(this.closeBtn().nativeElement, true).focus();
662
671
  }
663
672
  onArrowDownClear(evt) {
664
673
  evt.preventDefault();
665
- this.eclMultiselectInput.onFocus();
674
+ this.eclMultiselectInput().onFocus();
666
675
  }
667
676
  onTabClear(evt) {
668
677
  if (!evt.shiftKey) {
669
678
  evt.preventDefault();
670
679
  this.hideMultiselectDropdown();
671
- this.eclMultiselectInput.onFocus();
680
+ this.eclMultiselectInput().onFocus();
672
681
  }
673
682
  }
674
683
  onEnterSearch(evt) {
@@ -678,7 +687,7 @@ class EclMultiselectDropdownComponent extends ECLBaseDirective {
678
687
  evt.preventDefault();
679
688
  const currentOptions = this.getActiveOptions();
680
689
  if (this.hasSelectAll) {
681
- this.renderer.selectRootElement(this.selectAllCheckbox.nativeElement, true).focus();
690
+ this.renderer.selectRootElement(this.selectAllCheckbox().nativeElement, true).focus();
682
691
  }
683
692
  else {
684
693
  currentOptions[0].onFocus();
@@ -687,13 +696,13 @@ class EclMultiselectDropdownComponent extends ECLBaseDirective {
687
696
  onArrowUpSearch(evt) {
688
697
  evt.preventDefault();
689
698
  this.hideMultiselectDropdown();
690
- this.eclMultiselectInput.onFocus();
699
+ this.eclMultiselectInput().onFocus();
691
700
  }
692
701
  onKeydownMainInput(evt) {
693
702
  evt.preventDefault();
694
703
  this.showMultiselectDropdown();
695
704
  if (this.hasSearchBox) {
696
- setTimeout(() => this.renderer.selectRootElement(this.searchInput.nativeElement, true).focus());
705
+ setTimeout(() => this.renderer.selectRootElement(this.searchInput().nativeElement, true).focus());
697
706
  }
698
707
  else {
699
708
  this.onArrowDownSearch(evt);
@@ -713,7 +722,7 @@ class EclMultiselectDropdownComponent extends ECLBaseDirective {
713
722
  onArrowUpSelectAll(evt) {
714
723
  evt.preventDefault();
715
724
  if (this.hasSearchBox) {
716
- this.renderer.selectRootElement(this.searchInput.nativeElement, true).focus();
725
+ this.renderer.selectRootElement(this.searchInput().nativeElement, true).focus();
717
726
  }
718
727
  else {
719
728
  this.onArrowUpSearch(evt);
@@ -761,7 +770,7 @@ class EclMultiselectDropdownComponent extends ECLBaseDirective {
761
770
  * Toggles all visible options based on the "Select All" checkbox.
762
771
  */
763
772
  onSelectAll() {
764
- if (this.selectAllCheckbox.nativeElement.checked) {
773
+ if (this.selectAllCheckbox().nativeElement.checked) {
765
774
  this.selectAllActiveOptions();
766
775
  }
767
776
  else {
@@ -809,8 +818,9 @@ class EclMultiselectDropdownComponent extends ECLBaseDirective {
809
818
  * Updates selected items, emits changes.
810
819
  */
811
820
  onOptionSelected(evt) {
812
- if (this.selectAllCheckbox && this.selectAllCheckbox.nativeElement.checked) {
813
- this.renderer.setProperty(this.selectAllCheckbox.nativeElement, 'checked', false);
821
+ const selectAllCheckbox = this.selectAllCheckbox();
822
+ if (selectAllCheckbox && selectAllCheckbox.nativeElement.checked) {
823
+ this.renderer.setProperty(selectAllCheckbox.nativeElement, 'checked', false);
814
824
  }
815
825
  const currOption = evt.multiselectOption;
816
826
  if (currOption.isChecked) {
@@ -834,8 +844,9 @@ class EclMultiselectDropdownComponent extends ECLBaseDirective {
834
844
  this._selectedItems.set(newItems);
835
845
  }
836
846
  unselectAllActiveOptions() {
837
- if (this.selectAllCheckbox) {
838
- this.renderer.setProperty(this.selectAllCheckbox.nativeElement, 'checked', false);
847
+ const selectAllCheckbox = this.selectAllCheckbox();
848
+ if (selectAllCheckbox) {
849
+ this.renderer.setProperty(selectAllCheckbox.nativeElement, 'checked', false);
839
850
  }
840
851
  this._selectedItems.set([]);
841
852
  this.getAvailableOptions().forEach((item) => {
@@ -864,8 +875,9 @@ class EclMultiselectDropdownComponent extends ECLBaseDirective {
864
875
  this.multiOptionComponents.forEach((item) => {
865
876
  item.isChecked = false;
866
877
  });
867
- if (this.selectAllCheckbox) {
868
- this.renderer.setProperty(this.selectAllCheckbox.nativeElement, 'checked', false);
878
+ const selectAllCheckbox = this.selectAllCheckbox();
879
+ if (selectAllCheckbox) {
880
+ this.renderer.setProperty(selectAllCheckbox.nativeElement, 'checked', false);
869
881
  }
870
882
  this._selectedItems.set([]);
871
883
  }
@@ -890,31 +902,33 @@ class EclMultiselectDropdownComponent extends ECLBaseDirective {
890
902
  evt.preventDefault();
891
903
  const index = this.getOptionIndexByIdFromActiveOptions(option.id);
892
904
  const currentOptions = this.getActiveOptions();
905
+ const closeBtn = this.closeBtn();
893
906
  if (index !== currentOptions.length - 1) {
894
907
  const nextSiblingCheckbox = currentOptions[index + 1];
895
908
  nextSiblingCheckbox.onFocus();
896
909
  }
897
- else if (this.closeBtn) {
898
- this.renderer.selectRootElement(this.closeBtn.nativeElement, true).focus();
910
+ else if (closeBtn) {
911
+ this.renderer.selectRootElement(closeBtn.nativeElement, true).focus();
899
912
  }
900
913
  }
901
914
  onArrowUpOption(evt, option) {
902
915
  evt.preventDefault();
903
916
  const index = this.getOptionIndexByIdFromActiveOptions(option.id);
917
+ const selectAllCheckbox = this.selectAllCheckbox();
904
918
  if (index !== 0) {
905
919
  const prevSiblingCheckbox = this.getActiveOptions()[index - 1];
906
920
  prevSiblingCheckbox.onFocus();
907
921
  }
908
- else if (!this.hasSelectAll || this.selectAllCheckbox.nativeElement.disabled) {
922
+ else if (!this.hasSelectAll || selectAllCheckbox.nativeElement.disabled) {
909
923
  if (this.hasSearchBox) {
910
- this.renderer.selectRootElement(this.searchInput.nativeElement, true).focus();
924
+ this.renderer.selectRootElement(this.searchInput().nativeElement, true).focus();
911
925
  }
912
926
  else {
913
927
  this.onArrowUpSearch(evt);
914
928
  }
915
929
  }
916
930
  else {
917
- this.renderer.selectRootElement(this.selectAllCheckbox.nativeElement, true).focus();
931
+ this.renderer.selectRootElement(selectAllCheckbox.nativeElement, true).focus();
918
932
  }
919
933
  }
920
934
  getActiveOptions() {
@@ -949,7 +963,7 @@ class EclMultiselectDropdownComponent extends ECLBaseDirective {
949
963
  useExisting: forwardRef(() => EclMultiselectDropdownComponent),
950
964
  multi: true,
951
965
  },
952
- ], viewQueries: [{ propertyName: "searchInput", first: true, predicate: ["searchInput"], descendants: true }, { propertyName: "eclMultiselectInput", first: true, predicate: ["eclMultiselectInput"], descendants: true }, { propertyName: "selectAllCheckbox", first: true, predicate: ["selectAllCheckbox"], descendants: true }, { propertyName: "closeBtn", first: true, predicate: ["closeBtn"], descendants: true, read: ElementRef }, { propertyName: "clearAllBtn", first: true, predicate: ["clearAllBtn"], descendants: true, read: ElementRef }, { propertyName: "multiOptionComponents", predicate: EclMultiselectOptionComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<div eclMultiselectInput #eclMultiselectInput [inputPlaceholder]=\"mainInputPlaceholder\" [selectedItems]=\"selectedItems()\"\n (mainInputClick)=\"onClickMainInput($event)\" (mainInputKeydown)=\"onKeydownMainInput($event)\" [isDisabled]=\"disabled\"\n [ariaDescribedby]=\"ariaDescribedby\" [toggleLabel]=\"toggleLabel\" [ariaControls]=\"dropdownId\" [isInvalid]=\"isInvalid\"\n [isDropdownExpanded]=\"isShowMultiselectDropdown\" [eclSize]=\"eclSize\" [toggleId]=\"toggleId\" [counterLabel]=\"counterLabel\"></div>\n<div\n [style.display]=\"isShowMultiselectDropdown ? 'block' : 'none'\"\n class=\"ecl-select__multiple-dropdown ecl-select__container ecl-select__container--{{eclSize}}\"\n [id]=\"dropdownId\">\n @if(hasSearchBox) {\n <input class=\"ecl-text-input\" type=\"search\" #searchInput [placeholder]=\"searchFieldPlaceholder()\"\n (input)=\"onSearch($event.target)\" (keydown.enter)=\"onEnterSearch($event)\" [attr.aria-label]=\"searchFieldPlaceholder\"\n (keydown.arrowup)=\"onArrowUpSearch($event)\" (keydown.arrowdown)=\"onArrowDownSearch($event)\" />\n }\n @if(hasSelectAll) {\n <div eclCheckbox [isDisabled]=\"isSelectAllDisabled\" class=\"ecl-select__multiple-all\">\n <input eclCheckboxInput #selectAllCheckbox [id]=\"selectAllId\" type=\"checkbox\" [attr.disabled]=\"isSelectAllDisabled\"\n (click)=\"onSelectAll()\" (keydown.arrowup)=\"onArrowUpSelectAll($event)\"\n (keydown.arrowdown)=\"onArrowDownSelectAll($event)\" (keydown.enter)=\"onEnterSelectAll($event)\" />\n <label [for]=\"selectAllId\" eclCheckboxLabel> {{ 'ecl.multiselect.SELECT-ALL' | translate }} ({{ optionsCount }})\n </label>\n </div>\n }\n <div class=\"ecl-select__multiple-options\" aria-live=\"polite\">\n @for (item of multiOptionDirectives; track item.label()) {\n @if (item.isOptGroup()) {\n <fieldset eclMultiselectOptgroup [label]=\"item.label()\">\n @for (elem of item.eclOptionItems; track elem.label()) {\n <div\n eclMultiselectOption\n [value]=\"elem.value()\"\n [label]=\"elem.label()\"\n [disabled]=\"elem.disabled\"\n [isChecked]=\"elem.selected\"\n [class]=\"elem.class\"\n (optionClick)=\"onOptionSelected($event)\"\n (optionKeydown)=\"onKeydownOption($event)\"></div>\n }\n </fieldset>\n } @else if (!item.isOptGroup()) {\n <div\n eclMultiselectOption\n [value]=\"item.value()\"\n [label]=\"item.label()\"\n [disabled]=\"item.disabled\"\n [isChecked]=\"item.selected\"\n [class]=\"item.class\"\n (optionClick)=\"onOptionSelected($event)\"\n (optionKeydown)=\"onKeydownOption($event)\"></div>\n }\n }\n\n\n @if (isShowNoResultsFound) {\n <div class=\"ecl-select__multiple-no-results\">\n <span>{{ 'ecl.multiselect.NO-RESULTS-FOUND' | translate }}</span>\n </div>\n }\n\n </div>\n @if (isShowToolbar()) {\n <div class=\"ecl-select-multiple-toolbar\">\n <button\n eclButton\n variant=\"primary\"\n #closeBtn\n type=\"button\"\n (keydown.arrowup)=\"onArrowUpClose($event)\"\n (keydown.arrowDown)=\"onArrowDownClose($event)\"\n (keydown.tab)=\"onTabClose($event)\"\n (click)=\"onClickClose($event)\">\n {{ 'ecl.common.APPLY' | translate }}\n </button>\n <button\n eclButton\n variant=\"tertiary\"\n #clearAllBtn\n (keydown.arrowup)=\"onArrowUpClear($event)\"\n (keydown.arrowDown)=\"onArrowDownClear($event)\"\n (keydown.tab)=\"onTabClear($event)\"\n (keydown.enter)=\"onEnterClear($event)\"\n (click)=\"onClickClearAll($event)\">\n {{ 'ecl.multiselect.CLEAR-ALL' | translate }}\n </button>\n </div>\n }\n</div>\n", dependencies: [{ kind: "component", type: i1.EclButtonComponent, selector: "button[eclButton], button[ecl-button], a[eclButton]", inputs: ["isIconOnly", "variant", "eclStyle", "size", "containerStyleClass"] }, { kind: "component", type: EclMultiselectOptionComponent, selector: "div[eclMultiselectOption]", inputs: ["value", "label", "disabled", "isChecked"], outputs: ["optionClick", "optionKeydown"] }, { kind: "component", type: EclMultiselectOptgroupComponent, selector: "fieldset[eclMultiselectOptgroup]", inputs: ["label"] }, { kind: "component", type: EclMultiselectInputComponent, selector: "div[eclMultiselectInput]", inputs: ["eclSize", "counterLabel", "toggleId", "toggleLabel", "isDisabled", "isInvalid", "inputPlaceholder", "selectedItems", "isDropdownExpanded", "ariaControls", "ariaDescribedby"], outputs: ["mainInputClick", "mainInputKeydown"] }, { kind: "component", type: i1$1.EclCheckboxLabelComponent, selector: "label[eclCheckboxLabel]", inputs: ["isInvalid", "isDisabled", "isRequired"] }, { kind: "directive", type: i1$1.EclCheckboxInputDirective, selector: "input[eclCheckboxInput]" }, { kind: "directive", type: i1$1.EclCheckboxDirective, selector: "[eclCheckbox]", inputs: ["isDisabled", "isInvalid", "isSingle"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
966
+ ], viewQueries: [{ propertyName: "searchInput", first: true, predicate: ["searchInput"], descendants: true, isSignal: true }, { propertyName: "eclMultiselectInput", first: true, predicate: ["eclMultiselectInput"], descendants: true, isSignal: true }, { propertyName: "selectAllCheckbox", first: true, predicate: ["selectAllCheckbox"], descendants: true, isSignal: true }, { propertyName: "closeBtn", first: true, predicate: ["closeBtn"], descendants: true, read: ElementRef, isSignal: true }, { propertyName: "clearAllBtn", first: true, predicate: ["clearAllBtn"], descendants: true, read: ElementRef, isSignal: true }, { propertyName: "multiOptionComponents", predicate: EclMultiselectOptionComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<div eclMultiselectInput #eclMultiselectInput [inputPlaceholder]=\"mainInputPlaceholder\" [selectedItems]=\"selectedItems()\"\n (mainInputClick)=\"onClickMainInput($event)\" (mainInputKeydown)=\"onKeydownMainInput($event)\" [isDisabled]=\"disabled\"\n [ariaDescribedby]=\"ariaDescribedby\" [toggleLabel]=\"toggleLabel\" [ariaControls]=\"dropdownId\" [isInvalid]=\"isInvalid\"\n [isDropdownExpanded]=\"isShowMultiselectDropdown\" [eclSize]=\"eclSize\" [toggleId]=\"toggleId\" [counterLabel]=\"counterLabel\"></div>\n<div\n [style.display]=\"isShowMultiselectDropdown ? 'block' : 'none'\"\n class=\"ecl-select__multiple-dropdown ecl-select__container ecl-select__container--{{eclSize}}\"\n [id]=\"dropdownId\">\n @if(hasSearchBox) {\n <input class=\"ecl-text-input\" type=\"search\" #searchInput [placeholder]=\"searchFieldPlaceholder()\"\n (input)=\"onSearch($event.target)\" (keydown.enter)=\"onEnterSearch($event)\" [attr.aria-label]=\"searchFieldPlaceholder\"\n (keydown.arrowup)=\"onArrowUpSearch($event)\" (keydown.arrowdown)=\"onArrowDownSearch($event)\" />\n }\n @if(hasSelectAll) {\n <div eclCheckbox [isDisabled]=\"isSelectAllDisabled\" class=\"ecl-select__multiple-all\">\n <input eclCheckboxInput #selectAllCheckbox [id]=\"selectAllId\" type=\"checkbox\" [attr.disabled]=\"isSelectAllDisabled\"\n (click)=\"onSelectAll()\" (keydown.arrowup)=\"onArrowUpSelectAll($event)\"\n (keydown.arrowdown)=\"onArrowDownSelectAll($event)\" (keydown.enter)=\"onEnterSelectAll($event)\" />\n <label [for]=\"selectAllId\" eclCheckboxLabel> {{ 'ecl.multiselect.SELECT-ALL' | translate }} ({{ optionsCount }})\n </label>\n </div>\n }\n <div class=\"ecl-select__multiple-options\" aria-live=\"polite\">\n @for (item of multiOptionDirectives; track item.label()) {\n @if (item.isOptGroup()) {\n <fieldset eclMultiselectOptgroup [label]=\"item.label()\">\n @for (elem of item.eclOptionItems(); track elem.label()) {\n <div\n eclMultiselectOption\n [value]=\"elem.value()\"\n [label]=\"elem.label()\"\n [disabled]=\"elem.disabled\"\n [isChecked]=\"elem.selected\"\n [class]=\"elem.class\"\n (optionClick)=\"onOptionSelected($event)\"\n (optionKeydown)=\"onKeydownOption($event)\"></div>\n }\n </fieldset>\n } @else if (!item.isOptGroup()) {\n <div\n eclMultiselectOption\n [value]=\"item.value()\"\n [label]=\"item.label()\"\n [disabled]=\"item.disabled\"\n [isChecked]=\"item.selected\"\n [class]=\"item.class\"\n (optionClick)=\"onOptionSelected($event)\"\n (optionKeydown)=\"onKeydownOption($event)\"></div>\n }\n }\n\n\n @if (isShowNoResultsFound) {\n <div class=\"ecl-select__multiple-no-results\">\n <span>{{ 'ecl.multiselect.NO-RESULTS-FOUND' | translate }}</span>\n </div>\n }\n\n </div>\n @if (isShowToolbar()) {\n <div class=\"ecl-select-multiple-toolbar\">\n <button\n eclButton\n variant=\"primary\"\n #closeBtn\n type=\"button\"\n (keydown.arrowup)=\"onArrowUpClose($event)\"\n (keydown.arrowDown)=\"onArrowDownClose($event)\"\n (keydown.tab)=\"onTabClose($event)\"\n (click)=\"onClickClose($event)\">\n {{ 'ecl.common.APPLY' | translate }}\n </button>\n <button\n eclButton\n variant=\"tertiary\"\n #clearAllBtn\n (keydown.arrowup)=\"onArrowUpClear($event)\"\n (keydown.arrowDown)=\"onArrowDownClear($event)\"\n (keydown.tab)=\"onTabClear($event)\"\n (keydown.enter)=\"onEnterClear($event)\"\n (click)=\"onClickClearAll($event)\">\n {{ 'ecl.multiselect.CLEAR-ALL' | translate }}\n </button>\n </div>\n }\n</div>\n", dependencies: [{ kind: "component", type: i1.EclButtonComponent, selector: "button[eclButton], button[ecl-button], a[eclButton]", inputs: ["isIconOnly", "variant", "eclStyle", "size", "containerStyleClass"] }, { kind: "component", type: EclMultiselectOptionComponent, selector: "div[eclMultiselectOption]", inputs: ["value", "label", "disabled", "isChecked"], outputs: ["optionClick", "optionKeydown"] }, { kind: "component", type: EclMultiselectOptgroupComponent, selector: "fieldset[eclMultiselectOptgroup]", inputs: ["label"] }, { kind: "component", type: EclMultiselectInputComponent, selector: "div[eclMultiselectInput]", inputs: ["eclSize", "counterLabel", "toggleId", "toggleLabel", "isDisabled", "isInvalid", "inputPlaceholder", "selectedItems", "isDropdownExpanded", "ariaControls", "ariaDescribedby"], outputs: ["mainInputClick", "mainInputKeydown"] }, { kind: "component", type: i1$1.EclCheckboxLabelComponent, selector: "label[eclCheckboxLabel]", inputs: ["isInvalid", "isDisabled", "isRequired"] }, { kind: "directive", type: i1$1.EclCheckboxInputDirective, selector: "input[eclCheckboxInput]" }, { kind: "directive", type: i1$1.EclCheckboxDirective, selector: "[eclCheckbox]", inputs: ["isDisabled", "isInvalid", "isSingle"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
953
967
  }
954
968
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: EclMultiselectDropdownComponent, decorators: [{
955
969
  type: Component,
@@ -962,23 +976,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
962
976
  useExisting: forwardRef(() => EclMultiselectDropdownComponent),
963
977
  multi: true,
964
978
  },
965
- ], template: "<div eclMultiselectInput #eclMultiselectInput [inputPlaceholder]=\"mainInputPlaceholder\" [selectedItems]=\"selectedItems()\"\n (mainInputClick)=\"onClickMainInput($event)\" (mainInputKeydown)=\"onKeydownMainInput($event)\" [isDisabled]=\"disabled\"\n [ariaDescribedby]=\"ariaDescribedby\" [toggleLabel]=\"toggleLabel\" [ariaControls]=\"dropdownId\" [isInvalid]=\"isInvalid\"\n [isDropdownExpanded]=\"isShowMultiselectDropdown\" [eclSize]=\"eclSize\" [toggleId]=\"toggleId\" [counterLabel]=\"counterLabel\"></div>\n<div\n [style.display]=\"isShowMultiselectDropdown ? 'block' : 'none'\"\n class=\"ecl-select__multiple-dropdown ecl-select__container ecl-select__container--{{eclSize}}\"\n [id]=\"dropdownId\">\n @if(hasSearchBox) {\n <input class=\"ecl-text-input\" type=\"search\" #searchInput [placeholder]=\"searchFieldPlaceholder()\"\n (input)=\"onSearch($event.target)\" (keydown.enter)=\"onEnterSearch($event)\" [attr.aria-label]=\"searchFieldPlaceholder\"\n (keydown.arrowup)=\"onArrowUpSearch($event)\" (keydown.arrowdown)=\"onArrowDownSearch($event)\" />\n }\n @if(hasSelectAll) {\n <div eclCheckbox [isDisabled]=\"isSelectAllDisabled\" class=\"ecl-select__multiple-all\">\n <input eclCheckboxInput #selectAllCheckbox [id]=\"selectAllId\" type=\"checkbox\" [attr.disabled]=\"isSelectAllDisabled\"\n (click)=\"onSelectAll()\" (keydown.arrowup)=\"onArrowUpSelectAll($event)\"\n (keydown.arrowdown)=\"onArrowDownSelectAll($event)\" (keydown.enter)=\"onEnterSelectAll($event)\" />\n <label [for]=\"selectAllId\" eclCheckboxLabel> {{ 'ecl.multiselect.SELECT-ALL' | translate }} ({{ optionsCount }})\n </label>\n </div>\n }\n <div class=\"ecl-select__multiple-options\" aria-live=\"polite\">\n @for (item of multiOptionDirectives; track item.label()) {\n @if (item.isOptGroup()) {\n <fieldset eclMultiselectOptgroup [label]=\"item.label()\">\n @for (elem of item.eclOptionItems; track elem.label()) {\n <div\n eclMultiselectOption\n [value]=\"elem.value()\"\n [label]=\"elem.label()\"\n [disabled]=\"elem.disabled\"\n [isChecked]=\"elem.selected\"\n [class]=\"elem.class\"\n (optionClick)=\"onOptionSelected($event)\"\n (optionKeydown)=\"onKeydownOption($event)\"></div>\n }\n </fieldset>\n } @else if (!item.isOptGroup()) {\n <div\n eclMultiselectOption\n [value]=\"item.value()\"\n [label]=\"item.label()\"\n [disabled]=\"item.disabled\"\n [isChecked]=\"item.selected\"\n [class]=\"item.class\"\n (optionClick)=\"onOptionSelected($event)\"\n (optionKeydown)=\"onKeydownOption($event)\"></div>\n }\n }\n\n\n @if (isShowNoResultsFound) {\n <div class=\"ecl-select__multiple-no-results\">\n <span>{{ 'ecl.multiselect.NO-RESULTS-FOUND' | translate }}</span>\n </div>\n }\n\n </div>\n @if (isShowToolbar()) {\n <div class=\"ecl-select-multiple-toolbar\">\n <button\n eclButton\n variant=\"primary\"\n #closeBtn\n type=\"button\"\n (keydown.arrowup)=\"onArrowUpClose($event)\"\n (keydown.arrowDown)=\"onArrowDownClose($event)\"\n (keydown.tab)=\"onTabClose($event)\"\n (click)=\"onClickClose($event)\">\n {{ 'ecl.common.APPLY' | translate }}\n </button>\n <button\n eclButton\n variant=\"tertiary\"\n #clearAllBtn\n (keydown.arrowup)=\"onArrowUpClear($event)\"\n (keydown.arrowDown)=\"onArrowDownClear($event)\"\n (keydown.tab)=\"onTabClear($event)\"\n (keydown.enter)=\"onEnterClear($event)\"\n (click)=\"onClickClearAll($event)\">\n {{ 'ecl.multiselect.CLEAR-ALL' | translate }}\n </button>\n </div>\n }\n</div>\n" }]
966
- }], ctorParameters: () => [], propDecorators: { searchInput: [{
967
- type: ViewChild,
968
- args: ['searchInput']
969
- }], eclMultiselectInput: [{
970
- type: ViewChild,
971
- args: ['eclMultiselectInput']
972
- }], selectAllCheckbox: [{
973
- type: ViewChild,
974
- args: ['selectAllCheckbox']
975
- }], closeBtn: [{
976
- type: ViewChild,
977
- args: ['closeBtn', { read: ElementRef }]
978
- }], clearAllBtn: [{
979
- type: ViewChild,
980
- args: ['clearAllBtn', { read: ElementRef }]
981
- }], multiOptionComponents: [{
979
+ ], template: "<div eclMultiselectInput #eclMultiselectInput [inputPlaceholder]=\"mainInputPlaceholder\" [selectedItems]=\"selectedItems()\"\n (mainInputClick)=\"onClickMainInput($event)\" (mainInputKeydown)=\"onKeydownMainInput($event)\" [isDisabled]=\"disabled\"\n [ariaDescribedby]=\"ariaDescribedby\" [toggleLabel]=\"toggleLabel\" [ariaControls]=\"dropdownId\" [isInvalid]=\"isInvalid\"\n [isDropdownExpanded]=\"isShowMultiselectDropdown\" [eclSize]=\"eclSize\" [toggleId]=\"toggleId\" [counterLabel]=\"counterLabel\"></div>\n<div\n [style.display]=\"isShowMultiselectDropdown ? 'block' : 'none'\"\n class=\"ecl-select__multiple-dropdown ecl-select__container ecl-select__container--{{eclSize}}\"\n [id]=\"dropdownId\">\n @if(hasSearchBox) {\n <input class=\"ecl-text-input\" type=\"search\" #searchInput [placeholder]=\"searchFieldPlaceholder()\"\n (input)=\"onSearch($event.target)\" (keydown.enter)=\"onEnterSearch($event)\" [attr.aria-label]=\"searchFieldPlaceholder\"\n (keydown.arrowup)=\"onArrowUpSearch($event)\" (keydown.arrowdown)=\"onArrowDownSearch($event)\" />\n }\n @if(hasSelectAll) {\n <div eclCheckbox [isDisabled]=\"isSelectAllDisabled\" class=\"ecl-select__multiple-all\">\n <input eclCheckboxInput #selectAllCheckbox [id]=\"selectAllId\" type=\"checkbox\" [attr.disabled]=\"isSelectAllDisabled\"\n (click)=\"onSelectAll()\" (keydown.arrowup)=\"onArrowUpSelectAll($event)\"\n (keydown.arrowdown)=\"onArrowDownSelectAll($event)\" (keydown.enter)=\"onEnterSelectAll($event)\" />\n <label [for]=\"selectAllId\" eclCheckboxLabel> {{ 'ecl.multiselect.SELECT-ALL' | translate }} ({{ optionsCount }})\n </label>\n </div>\n }\n <div class=\"ecl-select__multiple-options\" aria-live=\"polite\">\n @for (item of multiOptionDirectives; track item.label()) {\n @if (item.isOptGroup()) {\n <fieldset eclMultiselectOptgroup [label]=\"item.label()\">\n @for (elem of item.eclOptionItems(); track elem.label()) {\n <div\n eclMultiselectOption\n [value]=\"elem.value()\"\n [label]=\"elem.label()\"\n [disabled]=\"elem.disabled\"\n [isChecked]=\"elem.selected\"\n [class]=\"elem.class\"\n (optionClick)=\"onOptionSelected($event)\"\n (optionKeydown)=\"onKeydownOption($event)\"></div>\n }\n </fieldset>\n } @else if (!item.isOptGroup()) {\n <div\n eclMultiselectOption\n [value]=\"item.value()\"\n [label]=\"item.label()\"\n [disabled]=\"item.disabled\"\n [isChecked]=\"item.selected\"\n [class]=\"item.class\"\n (optionClick)=\"onOptionSelected($event)\"\n (optionKeydown)=\"onKeydownOption($event)\"></div>\n }\n }\n\n\n @if (isShowNoResultsFound) {\n <div class=\"ecl-select__multiple-no-results\">\n <span>{{ 'ecl.multiselect.NO-RESULTS-FOUND' | translate }}</span>\n </div>\n }\n\n </div>\n @if (isShowToolbar()) {\n <div class=\"ecl-select-multiple-toolbar\">\n <button\n eclButton\n variant=\"primary\"\n #closeBtn\n type=\"button\"\n (keydown.arrowup)=\"onArrowUpClose($event)\"\n (keydown.arrowDown)=\"onArrowDownClose($event)\"\n (keydown.tab)=\"onTabClose($event)\"\n (click)=\"onClickClose($event)\">\n {{ 'ecl.common.APPLY' | translate }}\n </button>\n <button\n eclButton\n variant=\"tertiary\"\n #clearAllBtn\n (keydown.arrowup)=\"onArrowUpClear($event)\"\n (keydown.arrowDown)=\"onArrowDownClear($event)\"\n (keydown.tab)=\"onTabClear($event)\"\n (keydown.enter)=\"onEnterClear($event)\"\n (click)=\"onClickClearAll($event)\">\n {{ 'ecl.multiselect.CLEAR-ALL' | translate }}\n </button>\n </div>\n }\n</div>\n" }]
980
+ }], ctorParameters: () => [], propDecorators: { searchInput: [{ type: i0.ViewChild, args: ['searchInput', { isSignal: true }] }], eclMultiselectInput: [{ type: i0.ViewChild, args: ['eclMultiselectInput', { isSignal: true }] }], selectAllCheckbox: [{ type: i0.ViewChild, args: ['selectAllCheckbox', { isSignal: true }] }], closeBtn: [{ type: i0.ViewChild, args: ['closeBtn', { ...{ read: ElementRef }, isSignal: true }] }], clearAllBtn: [{ type: i0.ViewChild, args: ['clearAllBtn', { ...{ read: ElementRef }, isSignal: true }] }], multiOptionComponents: [{
982
981
  type: ViewChildren,
983
982
  args: [EclMultiselectOptionComponent]
984
983
  }], eclChange: [{
@@ -1014,6 +1013,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
1014
1013
  class EclMultiselectOptionDirective extends ECLBaseDirective {
1015
1014
  constructor() {
1016
1015
  super(...arguments);
1016
+ /**
1017
+ * Nested option directives (used for optgroups).
1018
+ */
1019
+ this.eclOptionItems = contentChildren(forwardRef(() => EclMultiselectOptionDirective), /* @ts-ignore */
1020
+ ...(ngDevMode ? [{ debugName: "eclOptionItems" }] : /* istanbul ignore next */ []));
1017
1021
  /**
1018
1022
  * Value assigned to the option.
1019
1023
  */
@@ -1063,17 +1067,14 @@ class EclMultiselectOptionDirective extends ECLBaseDirective {
1063
1067
  return this.elRef.nativeElement.nodeName === 'OPTGROUP';
1064
1068
  }
1065
1069
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: EclMultiselectOptionDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
1066
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0.5", type: EclMultiselectOptionDirective, isStandalone: true, selector: "optgroup[eclMultiselectOptgroup], option[eclMultiselectOption]", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: false, isRequired: false, transformFunction: null }, selected: { classPropertyName: "selected", publicName: "selected", isSignal: false, isRequired: false, transformFunction: null } }, host: { properties: { "attr.disabled": "this.disabled", "attr.selected": "this.selected", "class": "this.cssClasses" } }, queries: [{ propertyName: "eclOptionItems", predicate: i0.forwardRef(() => EclMultiselectOptionDirective) }], usesInheritance: true, ngImport: i0 }); }
1070
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "22.0.5", type: EclMultiselectOptionDirective, isStandalone: true, selector: "optgroup[eclMultiselectOptgroup], option[eclMultiselectOption]", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: false, isRequired: false, transformFunction: null }, selected: { classPropertyName: "selected", publicName: "selected", isSignal: false, isRequired: false, transformFunction: null } }, host: { properties: { "attr.disabled": "this.disabled", "attr.selected": "this.selected", "class": "this.cssClasses" } }, queries: [{ propertyName: "eclOptionItems", predicate: i0.forwardRef(() => EclMultiselectOptionDirective), isSignal: true }], usesInheritance: true, ngImport: i0 }); }
1067
1071
  }
1068
1072
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: EclMultiselectOptionDirective, decorators: [{
1069
1073
  type: Directive,
1070
1074
  args: [{
1071
1075
  selector: 'optgroup[eclMultiselectOptgroup], option[eclMultiselectOption]',
1072
1076
  }]
1073
- }], propDecorators: { eclOptionItems: [{
1074
- type: ContentChildren,
1075
- args: [forwardRef(() => EclMultiselectOptionDirective)]
1076
- }], value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }], label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], disabled: [{
1077
+ }], propDecorators: { eclOptionItems: [{ type: i0.ContentChildren, args: [forwardRef(() => EclMultiselectOptionDirective), { isSignal: true }] }], value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }], label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], disabled: [{
1077
1078
  type: Input
1078
1079
  }, {
1079
1080
  type: HostBinding,
@@ -1177,6 +1178,11 @@ class EclMultiselectComponent extends ECLBaseDirective {
1177
1178
  constructor() {
1178
1179
  super();
1179
1180
  this.injector = inject(Injector);
1181
+ /**
1182
+ * List of option directives projected into the component.
1183
+ */
1184
+ this.eclOptionItems = contentChildren(forwardRef(() => EclMultiselectOptionDirective), /* @ts-ignore */
1185
+ ...(ngDevMode ? [{ debugName: "eclOptionItems" }] : /* istanbul ignore next */ []));
1180
1186
  /**
1181
1187
  * Defines the `aria-describedby` attribute for accessibility.
1182
1188
  */
@@ -1227,10 +1233,10 @@ class EclMultiselectComponent extends ECLBaseDirective {
1227
1233
  });
1228
1234
  }
1229
1235
  ngDoCheck() {
1230
- const diff = this.differ.diff(this.eclOptionItems);
1236
+ const diff = this.differ.diff(this.eclOptionItems());
1231
1237
  if (diff) {
1232
1238
  if (this.multiselectComponent) {
1233
- this.multiselectComponent.multiOptionDirectives = this.eclOptionItems.toArray();
1239
+ this.multiselectComponent.multiOptionDirectives = Array.from(this.eclOptionItems());
1234
1240
  }
1235
1241
  }
1236
1242
  }
@@ -1318,17 +1324,17 @@ class EclMultiselectComponent extends ECLBaseDirective {
1318
1324
  }
1319
1325
  attachOptions() {
1320
1326
  setTimeout(() => {
1321
- this.multiselectComponent.multiOptionDirectives = this.eclOptionItems.toArray();
1327
+ this.multiselectComponent.multiOptionDirectives = Array.from(this.eclOptionItems());
1322
1328
  });
1323
1329
  }
1324
1330
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: EclMultiselectComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1325
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.5", type: EclMultiselectComponent, isStandalone: true, selector: "select[eclMultiselect]", inputs: { ariaDescribedby: { classPropertyName: "ariaDescribedby", publicName: "ariaDescribedby", isSignal: true, isRequired: false, transformFunction: null }, id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, toggleLabel: { classPropertyName: "toggleLabel", publicName: "toggleLabel", isSignal: true, isRequired: false, transformFunction: null }, isInvalid: { classPropertyName: "isInvalid", publicName: "isInvalid", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: false, isRequired: false, transformFunction: null }, hasSearchBox: { classPropertyName: "hasSearchBox", publicName: "hasSearchBox", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, hasSelectAll: { classPropertyName: "hasSelectAll", publicName: "hasSelectAll", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, isSubmitOnApply: { classPropertyName: "isSubmitOnApply", publicName: "isSubmitOnApply", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, eclPlaceholder: { classPropertyName: "eclPlaceholder", publicName: "eclPlaceholder", isSignal: false, isRequired: false, transformFunction: null }, eclSize: { classPropertyName: "eclSize", publicName: "eclSize", isSignal: true, isRequired: false, transformFunction: null }, counterLabel: { classPropertyName: "counterLabel", publicName: "counterLabel", isSignal: false, isRequired: false, transformFunction: null } }, outputs: { eclChange: "eclChange" }, host: { properties: { "attr.disabled": "this.disabled", "class": "this.cssClasses" } }, providers: [
1331
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "22.0.5", type: EclMultiselectComponent, isStandalone: true, selector: "select[eclMultiselect]", inputs: { ariaDescribedby: { classPropertyName: "ariaDescribedby", publicName: "ariaDescribedby", isSignal: true, isRequired: false, transformFunction: null }, id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, toggleLabel: { classPropertyName: "toggleLabel", publicName: "toggleLabel", isSignal: true, isRequired: false, transformFunction: null }, isInvalid: { classPropertyName: "isInvalid", publicName: "isInvalid", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: false, isRequired: false, transformFunction: null }, hasSearchBox: { classPropertyName: "hasSearchBox", publicName: "hasSearchBox", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, hasSelectAll: { classPropertyName: "hasSelectAll", publicName: "hasSelectAll", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, isSubmitOnApply: { classPropertyName: "isSubmitOnApply", publicName: "isSubmitOnApply", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, eclPlaceholder: { classPropertyName: "eclPlaceholder", publicName: "eclPlaceholder", isSignal: false, isRequired: false, transformFunction: null }, eclSize: { classPropertyName: "eclSize", publicName: "eclSize", isSignal: true, isRequired: false, transformFunction: null }, counterLabel: { classPropertyName: "counterLabel", publicName: "counterLabel", isSignal: false, isRequired: false, transformFunction: null } }, outputs: { eclChange: "eclChange" }, host: { properties: { "attr.disabled": "this.disabled", "class": "this.cssClasses" } }, providers: [
1326
1332
  {
1327
1333
  provide: NG_VALUE_ACCESSOR,
1328
1334
  useExisting: forwardRef(() => EclMultiselectComponent),
1329
1335
  multi: true,
1330
1336
  },
1331
- ], queries: [{ propertyName: "eclOptionItems", predicate: i0.forwardRef(() => EclMultiselectOptionDirective) }], usesInheritance: true, ngImport: i0, template: "<ng-content></ng-content>\n", encapsulation: i0.ViewEncapsulation.None }); }
1337
+ ], queries: [{ propertyName: "eclOptionItems", predicate: i0.forwardRef(() => EclMultiselectOptionDirective), isSignal: true }], usesInheritance: true, ngImport: i0, template: "<ng-content></ng-content>\n", encapsulation: i0.ViewEncapsulation.None }); }
1332
1338
  }
1333
1339
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: EclMultiselectComponent, decorators: [{
1334
1340
  type: Component,
@@ -1339,10 +1345,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
1339
1345
  multi: true,
1340
1346
  },
1341
1347
  ], template: "<ng-content></ng-content>\n" }]
1342
- }], ctorParameters: () => [], propDecorators: { eclOptionItems: [{
1343
- type: ContentChildren,
1344
- args: [forwardRef(() => EclMultiselectOptionDirective)]
1345
- }], ariaDescribedby: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaDescribedby", required: false }] }], id: [{ type: i0.Input, args: [{ isSignal: true, alias: "id", required: false }] }], toggleLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "toggleLabel", required: false }] }], isInvalid: [{
1348
+ }], ctorParameters: () => [], propDecorators: { eclOptionItems: [{ type: i0.ContentChildren, args: [forwardRef(() => EclMultiselectOptionDirective), { isSignal: true }] }], ariaDescribedby: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaDescribedby", required: false }] }], id: [{ type: i0.Input, args: [{ isSignal: true, alias: "id", required: false }] }], toggleLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "toggleLabel", required: false }] }], isInvalid: [{
1346
1349
  type: Input,
1347
1350
  args: [{ transform: booleanAttribute }]
1348
1351
  }], disabled: [{