@eui/ecl 22.0.0-alpha.45 → 22.0.0-alpha.47
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.
- package/docs/changelog.html +60 -0
- package/docs/components/EclMenuItemComponent.html +203 -161
- package/docs/components/EclMenuMegaItemComponent.html +3 -3
- package/docs/interfaces/EclMenuItem.html +4 -4
- package/docs/js/search/search_index.js +2 -2
- package/docs/json/documentation.json +152 -124
- package/docs/llms.txt +13 -7
- package/docs/properties.html +1 -1
- package/fesm2022/eui-ecl-components-ecl-accordion.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-add-to-calendar.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-animated-numbers.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-app.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-banner.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-blockquote.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-breadcrumb.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-button.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-card.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-carousel.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-category-filter.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-checkbox.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-content-block.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-content-item.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-date-block.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-date-picker.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-divider.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-expandable.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-fact-figures.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-featured.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-feedback-message.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-file-upload.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-file.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-form-group.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-form-label.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-gallery.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-help-block.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-highlight-box.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-highlighted-search.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-icon.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-inpage-navigation.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-label.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-layout-wrapper.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-link.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-list-illustration.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-list.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-loading-indicator.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-media-container.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-mega-menu.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-menu.mjs +67 -49
- package/fesm2022/eui-ecl-components-ecl-menu.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-modal.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-multiselect.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-navigation-list.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-news-ticker.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-notification.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-page-header.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-page-information.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-page-summary.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-pagination.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-popover.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-quiz.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-radio.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-range.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-rating-field.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-search-form.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-select.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-site-footer.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-site-header.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-slogan-ticker.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-social-media-follow.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-splash-page.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-spotlight.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-sticky-container.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-story-card.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-table.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-tabs.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-tag.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-text-area.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-text-input.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-text-media.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-timeline.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-tooltip.mjs.map +1 -1
- package/fesm2022/eui-ecl-core.mjs.map +1 -1
- package/fesm2022/eui-ecl-shared.mjs.map +1 -1
- package/package.json +1 -1
- package/types/eui-ecl-components-ecl-accordion.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-add-to-calendar.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-animated-numbers.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-app.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-banner.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-blockquote.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-breadcrumb.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-button.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-card.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-carousel.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-category-filter.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-checkbox.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-content-block.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-content-item.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-date-block.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-date-picker.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-divider.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-expandable.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-fact-figures.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-featured.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-feedback-message.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-file-upload.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-file.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-form-group.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-form-label.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-gallery.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-help-block.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-highlight-box.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-highlighted-search.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-icon.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-inpage-navigation.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-label.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-layout-wrapper.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-link.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-list-illustration.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-list.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-loading-indicator.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-media-container.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-mega-menu.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-menu.d.ts +16 -11
- package/types/eui-ecl-components-ecl-menu.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-modal.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-multiselect.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-navigation-list.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-news-ticker.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-notification.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-page-header.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-page-information.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-page-summary.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-pagination.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-popover.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-quiz.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-radio.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-range.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-rating-field.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-search-form.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-select.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-site-footer.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-site-header.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-slogan-ticker.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-social-media-follow.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-splash-page.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-spotlight.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-sticky-container.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-story-card.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-table.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-tabs.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-tag.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-text-area.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-text-input.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-text-media.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-timeline.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-tooltip.d.ts.map +1 -1
- package/types/eui-ecl-core.d.ts.map +1 -1
- package/types/eui-ecl-shared.d.ts.map +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eui-ecl-components-ecl-multiselect.mjs","sources":["../../components/ecl-multiselect/boldText.pipe.ts","../../components/ecl-multiselect/events/ecl-multiselect-main-input-click.event.ts","../../components/ecl-multiselect/events/ecl-multiselect-option.event.ts","../../components/ecl-multiselect/ecl-multiselect-input/ecl-multiselect-input.component.ts","../../components/ecl-multiselect/ecl-multiselect-input/ecl-multiselect-input.component.html","../../components/ecl-multiselect/ecl-multiselect-option/ecl-multiselect-option.component.ts","../../components/ecl-multiselect/ecl-multiselect-option/ecl-multiselect-option.component.html","../../components/ecl-multiselect/ecl-multiselect-optgroup/ecl-multiselect-optgroup.component.ts","../../components/ecl-multiselect/ecl-multiselect-optgroup/ecl-multiselect-optgroup.component.html","../../components/ecl-multiselect/ecl-multiselect-dropdown/ecl-multiselect-dropdown.component.ts","../../components/ecl-multiselect/ecl-multiselect-dropdown/ecl-multiselect-dropdown.component.html","../../components/ecl-multiselect/ecl-multiselect-option.directive.ts","../../components/ecl-multiselect/ecl-multiselect.component.ts","../../components/ecl-multiselect/ecl-multiselect.component.html","../../components/ecl-multiselect/index.ts","../../components/ecl-multiselect/eui-ecl-components-ecl-multiselect.ts"],"sourcesContent":["import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'boldText',\n})\nexport class BoldTextPipe implements PipeTransform {\n private BOLD_TAG_OPEN = '<b>';\n\n transform(value: string, keyword: string): string {\n if (keyword !== '') {\n return this.replace(value, keyword);\n } else {\n if (value.indexOf(this.BOLD_TAG_OPEN) > -1) {\n return this.clearBoldText(value);\n } else {\n return value;\n }\n }\n }\n\n replace(str: string, keyword: string): string {\n const re = new RegExp(keyword, 'gi');\n return str.replace(re, '<b>$&</b>');\n }\n\n clearBoldText(str: string): string {\n return str.replace(/<[/]?b>/g, '');\n }\n}\n","export class EclMultiselectMainInputClickEvent {\n constructor(public event: Event) {}\n}","import { EclMultiselectOption } from '../models/ecl-multiselect-option.model';\n\nexport class EclMultiselectOptionClickEvent {\n constructor(public multiselectOption: EclMultiselectOption) {}\n}\n\nexport class EclMultiselectOptionKeydownEvent {\n constructor(\n public multiselectOption: EclMultiselectOption,\n public keyboardEvent: KeyboardEvent,\n ) {}\n}","import { Component, ElementRef, Renderer2, booleanAttribute, computed, inject, input, signal, output, viewChild } from '@angular/core';\nimport { TranslatePipe } from '@ngx-translate/core';\nimport { KeyCode } from '@eui/ecl/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclThemeService } from '@eui/ecl/core';\nimport { EclMultiselectMainInputClickEvent } from '../events';\nimport { EUI_ECL_BUTTON } from '@eui/ecl/components/ecl-button';\nimport { EUI_ECL_ICON } from '@eui/ecl/components/ecl-icon';\n\n/**\n * Component representing the main input of a multiselect component.\n * Handles displaying selected items, opening the dropdown, and managing accessibility.\n */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'div[eclMultiselectInput]',\n templateUrl: './ecl-multiselect-input.component.html',\n imports: [TranslatePipe, ...EUI_ECL_BUTTON, ...EUI_ECL_ICON],\n host: {\n '[class]': 'cssClasses()',\n '[class.ecl-select__container--disabled]': 'isDisabled()',\n '[class.ecl-select__container--invalid]': 'isInvalid()',\n },\n})\nexport class EclMultiselectInputComponent extends ECLBaseDirective {\n\n /**\n * Size modifier for the multiselect input (e.g., 's', 'm', 'l').\n */\n eclSize = input('m');\n\n /**\n * Label for the selections counter, read by screen readers.\n */\n counterLabel = input('ecl.multiselect.SELECTED');\n\n /**\n * ID of the toggle button element (used for accessibility).\n */\n toggleId = input<string>('');\n\n /**\n * Label for the toggle button (optional).\n */\n toggleLabel = input<string | undefined>(undefined);\n\n /**\n * Marks the component as disabled.\n */\n isDisabled = input(false, { transform: booleanAttribute });\n\n /**\n * Marks the component as being in an invalid state.\n */\n isInvalid = input(false, { transform: booleanAttribute });\n\n /**\n * Placeholder text for the input when no items are selected.\n */\n inputPlaceholder = input('');\n\n /**\n * Array of currently selected item labels.\n */\n selectedItemsLabels = input<string[]>([]);\n\n /**\n * Indicates that the dropdown is currently expanded.\n */\n isDropdownExpanded = input(false, { transform: booleanAttribute });\n\n /**\n * ARIA controls attribute for accessibility.\n */\n ariaControls = input<string | undefined>(undefined);\n\n /**\n * ARIA describedby attribute for accessibility.\n */\n ariaDescribedby = input<string | undefined>(undefined);\n\n /**\n * Event emitted when the input is clicked.\n */\n readonly mainInputClick = output<EclMultiselectMainInputClickEvent>();\n\n /**\n * Event emitted when a key is pressed on the input.\n */\n readonly mainInputKeydown = output<Event>();\n\n /**\n * Unique ID for the counter element.\n */\n protected counterId = signal(crypto.randomUUID());\n\n /**\n * Reference to the internal input element.\n */\n protected readonly inputMultiselect = viewChild<ElementRef>('inputMultiselect');\n\n /**\n * Computed ARIA describedby combining the input value with the counter ID.\n */\n protected ariaDescribedbyFull = computed(() => {\n const describedby = this.ariaDescribedby();\n const counter = this.counterId();\n return [describedby, counter].filter(Boolean).join(' ') || undefined;\n });\n\n /**\n * Returns the label text shown inside the button.\n */\n protected buttonText = computed(() => {\n const items = this.selectedItemsLabels();\n return items.length === 0 ? this.inputPlaceholder() : items.join(',');\n });\n\n /**\n * Returns the count of selected items.\n */\n protected selectedItemsCount = computed(() => this.selectedItemsLabels().length);\n\n /**\n * Displays a count badge when items are selected.\n */\n protected isShowCounter = computed(() => this.selectedItemsLabels().length > 0);\n\n /**\n * Indicates that the dropdown is expanded (active).\n */\n protected isActive = computed(() => this.isDropdownExpanded());\n\n /**\n * CSS classes for the component, including size and inherited classes.\n */\n protected readonly cssClasses = computed<string>(() =>\n [\n super.getCssClasses('ecl-select__container'),\n `ecl-select__container--${this.eclSize()}`,\n ].join(' ').trim());\n\n /**\n * Returns icon size depending on the theme.\n */\n protected get sizeIcon(): string {\n if (this.eclThemeService.isECTheme()) {\n return this.ICON_SIZE_FOR_EC_THEME_ON;\n } else {\n return this.ICON_SIZE_FOR_EU_THEME_ON;\n }\n }\n\n private readonly ICON_SIZE_FOR_EC_THEME_ON = 'xs';\n private readonly ICON_SIZE_FOR_EU_THEME_ON = 's';\n private eclThemeService = inject(EclThemeService);\n private renderer = inject(Renderer2);\n\n /**\n * Focuses the multiselect input element.\n */\n onFocus(): void {\n this.renderer.selectRootElement(this.inputMultiselect().nativeElement, true).focus();\n }\n\n /**\n * Handles click on the input container. Emits custom event with original DOM event.\n */\n protected onClick(evt: Event): void {\n this.mainInputClick.emit(new EclMultiselectMainInputClickEvent(evt));\n }\n\n /**\n * Handles keydown events on the input.\n * Only emits event on ArrowDown, Enter, or Space keys.\n */\n protected onKeydown(evt: KeyboardEvent): void {\n switch (evt.key) {\n case KeyCode.ARROW_DOWN:\n case KeyCode.ENTER:\n case KeyCode.SPACE:\n {\n this.mainInputKeydown.emit(evt);\n break;\n }\n default: {\n break;\n }\n }\n }\n}\n","<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","import {\n Component,\n computed,\n ElementRef,\n OnInit,\n Renderer2,\n booleanAttribute,\n inject,\n input,\n model,\n output,\n signal,\n viewChild,\n} from '@angular/core';\nimport { EclCheckboxDirective, EUI_ECL_CHECKBOX } from '@eui/ecl/components/ecl-checkbox';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { BoldTextPipe } from '../boldText.pipe';\nimport {\n EclMultiselectOptionClickEvent,\n EclMultiselectOptionKeydownEvent,\n} from '../events/ecl-multiselect-option.event';\nimport { EclMultiselectOption } from '../models/ecl-multiselect-option.model';\n\n/**\n * Component representing a single selectable option in the multiselect dropdown.\n */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'div[eclMultiselectOption]',\n templateUrl: './ecl-multiselect-option.component.html',\n imports: [BoldTextPipe, ...EUI_ECL_CHECKBOX],\n hostDirectives: [EclCheckboxDirective],\n host: {\n '[class]': 'cssClasses()',\n '[class.ecl-checkbox--disabled]': 'disabled()',\n '[attr.disabled]': 'disabled() || null',\n '[style.display]': 'display()',\n },\n})\nexport class EclMultiselectOptionComponent extends ECLBaseDirective implements EclMultiselectOption, OnInit {\n\n /**\n * Value assigned to the option.\n */\n readonly value = input<string>('');\n\n /**\n * Display label for the option.\n */\n readonly label = input<string>('');\n\n /**\n * Disables the option when true.\n */\n readonly disabled = input(false, { transform: booleanAttribute });\n\n /**\n * Indicates whether the option is selected.\n */\n readonly isChecked = model(false);\n\n /**\n * Emits when the option is clicked.\n */\n readonly optionClick = output<EclMultiselectOptionClickEvent>();\n\n /**\n * Emits when a key is pressed while focused on the option.\n */\n readonly optionKeydown = output<EclMultiselectOptionKeydownEvent>();\n\n /**\n * Reference to the checkbox input element.\n */\n protected readonly eclCheckboxInput = viewChild<ElementRef>('checkboxInput');\n\n /**\n * Keyword used by the boldText pipe to highlight matching text.\n */\n protected keyword = '';\n\n /**\n * Controls the host element visibility (`display` style).\n */\n protected readonly display = signal('flex');\n\n private readonly renderer = inject(Renderer2);\n private _id = '';\n\n /**\n * Returns the unique identifier for the option.\n */\n get id(): string {\n return this._id;\n }\n\n /**\n * Indicates whether the option is active (visible and not disabled).\n */\n get isActive(): boolean {\n return this.display() === 'flex' && !this.disabled();\n }\n\n ngOnInit(): void {\n this._id = this.createId();\n }\n\n /**\n * Focuses the checkbox input.\n */\n onFocus(): void {\n this.renderer.selectRootElement(this.eclCheckboxInput().nativeElement, true).focus();\n }\n\n /**\n * Makes the option visible.\n */\n show(): void {\n this.display.set('flex');\n }\n\n /**\n * Hides the option from view.\n */\n hide(): void {\n this.display.set('none');\n }\n\n /**\n * Sets the keyword used by the boldText pipe to highlight matching text.\n */\n highlightSearchText(keyword: string): void {\n this.keyword = keyword;\n }\n\n /**\n * Applies ECL checkbox styling class to the option.\n */\n protected readonly cssClasses = computed<string>(() =>\n super.getCssClasses('ecl-checkbox'));\n\n /**\n * Toggles the selected state and emits the optionClick event.\n */\n protected onOptionClick(): void {\n this.isChecked.set(!this.isChecked());\n this.optionClick.emit(new EclMultiselectOptionClickEvent(this));\n }\n\n /**\n * Emits the optionKeydown event when a key is pressed.\n */\n protected onOptionKeydown(evt: KeyboardEvent): void {\n this.optionKeydown.emit(new EclMultiselectOptionKeydownEvent(this, evt));\n }\n\n private createId(): string {\n return crypto.randomUUID();\n }\n}\n","<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","import { Component, computed, input } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Component representing an option group (fieldset) in a multiselect component.\n * Used to group related options under a common label.\n */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'fieldset[eclMultiselectOptgroup]',\n templateUrl: './ecl-multiselect-optgroup.component.html',\n host: {\n '[class]': 'cssClasses()',\n },\n})\nexport class EclMultiselectOptgroupComponent extends ECLBaseDirective {\n\n /**\n * The visible label for the option group.\n */\n readonly label = input<string>(undefined);\n\n /**\n * Returns the computed CSS classes for the optgroup container.\n */\n protected readonly cssClasses = computed<string>(() => super.getCssClasses('ecl-select__multiple-group'));\n}\n","<legend class=\"ecl-select__multiple-group__title\">{{ label() }}</legend>\n<ng-content></ng-content>\n","import { Component, computed, DoCheck, effect, ElementRef, forwardRef, OnDestroy, OnInit, Renderer2, signal, untracked, inject, output, viewChild, viewChildren } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { Subject } from 'rxjs';\nimport { TranslatePipe } from '@ngx-translate/core';\nimport { KeyCode } from '@eui/ecl/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclMultiselectInputComponent } from '../ecl-multiselect-input/ecl-multiselect-input.component';\nimport { EclMultiselectOptionDirective } from '../ecl-multiselect-option.directive';\nimport { EclMultiselectOptionComponent } from '../ecl-multiselect-option/ecl-multiselect-option.component';\nimport { EclMultiselectOption } from '../models/ecl-multiselect-option.model';\nimport { EclMultiselectMainInputClickEvent, EclMultiselectOptionClickEvent, EclMultiselectOptionKeydownEvent } from '../events';\nimport { EUI_ECL_BUTTON } from '@eui/ecl/components/ecl-button';\nimport { EclMultiselectOptgroupComponent } from '../ecl-multiselect-optgroup/ecl-multiselect-optgroup.component';\nimport { EUI_ECL_CHECKBOX } from '@eui/ecl/components/ecl-checkbox';\n\n/**\n * Component that renders a dropdown-style multiselect UI element.\n * Used internally by the `EclMultiselectComponent`.\n */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'div[eclMultiselectDropdown]',\n templateUrl: 'ecl-multiselect-dropdown.component.html',\n imports: [\n ...EUI_ECL_BUTTON, EclMultiselectOptionComponent, EclMultiselectOptgroupComponent,\n EclMultiselectInputComponent, ...EUI_ECL_CHECKBOX, TranslatePipe,\n ],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => EclMultiselectDropdownComponent),\n multi: true,\n },\n ],\n host: {\n '[class]': 'cssClasses()',\n '(keyup.escape)': 'onEscapeKey()',\n '(document:click)': 'onKeyUp($event)',\n '[attr.disabled]': 'disabled() || undefined',\n },\n})\nexport class EclMultiselectDropdownComponent extends ECLBaseDirective implements OnInit, ControlValueAccessor, DoCheck, OnDestroy {\n\n /**\n * Emits the list of selected values whenever the selection changes.\n */\n readonly eclChange = output<string[]>();\n\n /**\n * State configured imperatively by the parent `EclMultiselectComponent`.\n * This dropdown is created dynamically and is never bound in a template, so these\n * are writable signals set through their `.set()` accessor rather than inputs.\n */\n readonly isInvalid = signal<boolean | undefined>(undefined);\n\n /**\n * Placeholder for the main multiselect input.\n */\n readonly mainInputPlaceholder = signal('Select an item');\n\n /**\n * Placeholder for the search field input.\n */\n readonly searchFieldPlaceholder = signal('Enter filter keyword');\n\n /**\n * Size of the multiselect dropdown (e.g., 'm', 'l').\n */\n readonly eclSize = signal('m');\n\n /**\n * Disables the component when true.\n * Set by the parent and by `ControlValueAccessor.setDisabledState`.\n */\n readonly disabled = signal<boolean | undefined>(undefined);\n\n /**\n * Optional ARIA description used for accessibility purposes.\n */\n readonly ariaDescribedby = signal<string | undefined>(undefined);\n\n /**\n * Label displayed for the toggle button to assist screen readers.\n */\n readonly toggleLabel = signal<string | undefined>(undefined);\n\n /**\n * Enables the search box in the dropdown interface.\n */\n readonly hasSearchBox = signal(true);\n\n /**\n * Displays the \"Select all\" checkbox above the list of options.\n */\n readonly hasSelectAll = signal(true);\n\n /**\n * When true, the Apply button acts as a submit button (type=\"submit\") instead of a regular button.\n */\n readonly isSubmitOnApply = signal(false);\n\n /**\n * Label for the selections counter, read by screen readers.\n */\n readonly counterLabel = signal('ecl.multiselect.SELECTED');\n\n /**\n * Optional identifier used for the dropdown element.\n */\n readonly id = signal('');\n\n /**\n * List of option directives currently rendered in the dropdown.\n */\n multiOptionDirectives = signal<EclMultiselectOptionDirective[]>([]);\n\n protected readonly searchInput = viewChild<ElementRef>('searchInput');\n protected readonly eclMultiselectInput = viewChild<EclMultiselectInputComponent>('eclMultiselectInput');\n protected readonly selectAllCheckbox = viewChild<ElementRef>('selectAllCheckbox');\n protected readonly closeBtn = viewChild('closeBtn', { read: ElementRef });\n protected readonly clearAllBtn = viewChild('clearAllBtn', { read: ElementRef });\n protected readonly multiOptionComponents = viewChildren(EclMultiselectOptionComponent);\n\n /**\n * Gets labels of currently selected options.\n */\n protected selectedItemsLabels = computed(() => this._selectedItems().map((item) => item.label()));\n\n /**\n * Controls the visibility of the multiselect toolbar.\n * Always visible when isSubmitOnApply is true so the user can submit the form.\n */\n protected isShowToolbar = computed(() => this.isSubmitOnApply() || this._selectedItems().length > 0);\n\n /**\n * Indicates that the \"no results found\" message should be displayed.\n */\n protected isShowNoResultsFound = false;\n\n /**\n * Controls the visibility of the multiselect dropdown.\n */\n protected isShowMultiselectDropdown = false;\n\n /**\n * Total number of options available in the dropdown list.\n */\n protected optionsCount = 0;\n\n protected dropdownId = '';\n protected isSelectAllDisabled: boolean | null = null;\n protected selectAllId = '';\n protected toggleId = '';\n\n private _selectedItems = signal<EclMultiselectOption[]>([]);\n private destroy$: Subject<boolean> = new Subject<boolean>();\n private isWriteValueCalled = false;\n private values = [];\n private elRef = inject(ElementRef);\n private renderer = inject(Renderer2);\n\n constructor() {\n super();\n // Re-apply the selection state whenever the rendered set of option components\n // changes. This replaces the previous QueryList.changes subscription: the option\n // components arrive asynchronously (the parent publishes the option directives via\n // a setTimeout, then the @for renders them), and their arrival does not always emit\n // a change event. Only the identity of the option list is tracked here; the option\n // state reads/writes inside applyOptionState run untracked so toggling an option\n // does not re-trigger this effect.\n effect(() => {\n const options = this.multiOptionComponents();\n if (options.length > 0) {\n untracked(() => this.applyOptionState());\n }\n });\n }\n\n ngDoCheck(): void {\n this.optionsCount = this.getAvailableOptions() ? this.getAvailableOptions().length : 0;\n }\n\n ngOnInit(): void {\n this.selectAllId = this.getSelectAllId();\n this.dropdownId = this.getDropdownId();\n this.toggleId = this.getToggleId();\n setTimeout(() => {\n this.modifyParentLabelForAttribute();\n });\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n }\n\n /**\n * Writes a new value to the component from the outside (e.g., form model).\n * Required by ControlValueAccessor.\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n writeValue(values: any): void {\n if (this.multiOptionComponents() && this.multiOptionComponents().length > 0) {\n this.resetComponent();\n this.writeValues(values);\n } else {\n this.values = values;\n this.isWriteValueCalled = true;\n }\n }\n\n /**\n * Registers a callback function to be called when the value changes.\n * Required by ControlValueAccessor.\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n registerOnChange(fn: any): void {\n this.propagateChange = fn;\n }\n\n /**\n * Registers a callback function to be called when the component is touched.\n * Required by ControlValueAccessor.\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n registerOnTouched(fn: any): void {\n this.propagateTouched = fn;\n }\n\n /**\n * Enables or disables the component.\n * Required by ControlValueAccessor.\n */\n setDisabledState(isDisabled: boolean): void {\n this.disabled.set(isDisabled);\n }\n\n /**\n * Adds the ECL base CSS class for multiselect dropdowns.\n */\n protected readonly cssClasses = computed<string>(() =>\n super.getCssClasses('ecl-select__multiple'));\n\n protected onEscapeKey(): void {\n this.hideMultiselectDropdown();\n this.eclMultiselectInput()?.onFocus();\n }\n\n protected onKeyUp(event: MouseEvent): void {\n if (!this.elRef.nativeElement.contains(event.target)) {\n this.hideMultiselectDropdown();\n }\n }\n\n protected onClickClearAll(evt: Event): void {\n evt.stopPropagation();\n this.unselectAllActiveOptions();\n this.eclChange.emit([]);\n this.propagateChange([]);\n }\n\n protected onEnterClear(evt: Event): void {\n this.onClickClearAll(evt);\n this.eclMultiselectInput()?.onFocus();\n }\n\n protected onClickClose(evt: Event): void {\n if (!this.isSubmitOnApply()) {\n evt.preventDefault();\n }\n this.hideMultiselectDropdown();\n }\n\n protected onArrowUpClose(evt: Event): void {\n evt.preventDefault();\n const currentOptions = this.getActiveOptions();\n currentOptions[currentOptions.length - 1].onFocus();\n }\n\n protected onArrowDownClose(evt: Event): void {\n evt.preventDefault();\n this.renderer.selectRootElement(this.clearAllBtn().nativeElement, true).focus();\n }\n\n protected onTabClose(evt: Event): void {\n if (!(evt as KeyboardEvent).shiftKey) {\n evt.preventDefault();\n this.renderer.selectRootElement(this.clearAllBtn()?.nativeElement, true).focus();\n }\n }\n\n protected onArrowUpClear(evt: Event): void {\n evt.preventDefault();\n this.renderer.selectRootElement(this.closeBtn()?.nativeElement, true).focus();\n }\n\n protected onArrowDownClear(evt: Event): void {\n evt.preventDefault();\n this.eclMultiselectInput().onFocus();\n }\n\n protected onTabClear(evt: Event): void {\n if (!(evt as KeyboardEvent).shiftKey) {\n evt.preventDefault();\n this.hideMultiselectDropdown();\n this.eclMultiselectInput().onFocus();\n }\n }\n\n protected onEnterSearch(evt: Event): void {\n evt.preventDefault();\n }\n\n protected onArrowDownSearch(evt: Event): void {\n evt.preventDefault();\n const currentOptions = this.getActiveOptions();\n if (this.hasSelectAll()) {\n this.renderer.selectRootElement(this.selectAllCheckbox()?.nativeElement, true).focus();\n } else {\n currentOptions[0].onFocus();\n }\n }\n\n protected onArrowUpSearch(evt: Event): void {\n evt.preventDefault();\n this.hideMultiselectDropdown();\n this.eclMultiselectInput().onFocus();\n }\n\n protected onKeydownMainInput(evt: Event): void {\n evt.preventDefault();\n this.showMultiselectDropdown();\n if (this.hasSearchBox()) {\n setTimeout(() => this.renderer.selectRootElement(this.searchInput()?.nativeElement, true).focus());\n } else {\n this.onArrowDownSearch(evt);\n }\n }\n\n protected onClickMainInput(evt: EclMultiselectMainInputClickEvent): void {\n evt.event.preventDefault();\n this.toggleDropdown();\n }\n\n protected onArrowDownSelectAll(evt: Event): void {\n evt.preventDefault();\n const currentOptions = this.getActiveOptions();\n if (currentOptions.length > 0) {\n currentOptions[0].onFocus();\n }\n }\n\n protected onArrowUpSelectAll(evt: Event): void {\n evt.preventDefault();\n if (this.hasSearchBox()) {\n this.renderer.selectRootElement(this.searchInput()?.nativeElement, true).focus();\n } else {\n this.onArrowUpSearch(evt);\n }\n }\n\n protected onEnterSelectAll(evt: Event): void {\n evt.preventDefault();\n (evt.target as HTMLInputElement).click();\n }\n\n /**\n * Handles search input, filters options, and updates their visibility.\n */\n protected onSearch(input: EventTarget): void {\n const keyword = (input as HTMLInputElement).value;\n let isMatchFound = false;\n if (keyword === '') {\n this.enableSelectAll();\n isMatchFound = true;\n this.multiOptionComponents().forEach((item) => {\n item.highlightSearchText('');\n item.show();\n });\n } else {\n this.multiOptionComponents().forEach((item) => {\n if (item.label().toLowerCase().indexOf(keyword.toLowerCase()) < 0) {\n item.hide();\n } else {\n isMatchFound = true;\n item.highlightSearchText(keyword.toLowerCase());\n item.show();\n }\n });\n this.disableSelectAll();\n }\n if (!isMatchFound) {\n this.showNoResultsFound();\n } else {\n this.hideNoResultsFound();\n }\n }\n\n /**\n * Toggles all visible options based on the \"Select All\" checkbox.\n */\n protected onSelectAll(): void {\n if (this.selectAllCheckbox()?.nativeElement.checked) {\n this.selectAllActiveOptions();\n } else {\n this.unselectAllActiveOptions();\n }\n this.propagateTouched();\n this.eclChange.emit(this._selectedItems().map((item) => item.value()));\n this.propagateChange(this._selectedItems().map((item) => item.value()));\n }\n\n /**\n * Handles keyboard interaction on option items.\n * Supports arrow keys, tab, escape, and enter.\n */\n protected onKeydownOption(evt: EclMultiselectOptionKeydownEvent): void {\n switch (evt.keyboardEvent.key) {\n case KeyCode.ARROW_DOWN: {\n this.onArrowDownAndTabOption(evt.keyboardEvent, evt.multiselectOption);\n break;\n }\n case KeyCode.ARROW_UP: {\n this.onArrowUpOption(evt.keyboardEvent, evt.multiselectOption);\n break;\n }\n case KeyCode.ENTER: {\n (evt.keyboardEvent.target as HTMLInputElement).click();\n break;\n }\n case KeyCode.TAB: {\n if (!evt.keyboardEvent.shiftKey) {\n this.onArrowDownAndTabOption(evt.keyboardEvent, evt.multiselectOption);\n }\n break;\n }\n default: {\n break;\n }\n }\n }\n\n /**\n * Triggered when a single option is clicked/selected.\n * Updates selected items, emits changes.\n */\n protected onOptionSelected(evt: EclMultiselectOptionClickEvent): void {\n const selectAllCheckbox = this.selectAllCheckbox();\n if (selectAllCheckbox && selectAllCheckbox.nativeElement.checked) {\n this.renderer.setProperty(selectAllCheckbox.nativeElement, 'checked', false);\n }\n const currOption = evt.multiselectOption;\n if (currOption.isChecked()) {\n this._selectedItems.update((items) => [...items, currOption]);\n } else {\n this._selectedItems.update((items) => items.filter((item) => item !== currOption));\n }\n this.propagateChange(this._selectedItems().map((item) => item.value()));\n this.propagateTouched();\n this.eclChange.emit(this._selectedItems().map((item) => item.value()));\n }\n\n private applyOptionState(): void {\n if (this.isWriteValueCalled) {\n this.resetComponent();\n this.writeValues(this.values);\n this.isWriteValueCalled = false;\n } else {\n this.initSelectedOptions();\n }\n this.optionsCount = this.getAvailableOptions() ? this.getAvailableOptions().length : 0;\n }\n\n private initSelectedOptions(): void {\n const items: EclMultiselectOption[] = [];\n this.multiOptionComponents()\n .filter((elem) => elem.isChecked())\n .forEach((item) => {\n items.push(item);\n });\n this._selectedItems.set(items);\n }\n\n private selectAllActiveOptions(): void {\n const newItems: EclMultiselectOption[] = [...this._selectedItems()];\n this.getActiveOptions().forEach((item) => {\n if (!item.isChecked()) {\n item.isChecked.set(true);\n newItems.push(item);\n }\n });\n this._selectedItems.set(newItems);\n }\n\n private unselectAllActiveOptions(): void {\n const selectAllCheckbox = this.selectAllCheckbox();\n if (selectAllCheckbox) {\n this.renderer.setProperty(selectAllCheckbox.nativeElement, 'checked', false);\n }\n this._selectedItems.set([]);\n this.getAvailableOptions().forEach((item) => {\n item.isChecked.set(false);\n });\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private propagateChange = (_: any): void => {\n /* empty */\n };\n\n private propagateTouched = (): void => {\n /* empty */\n };\n\n private showMultiselectDropdown(): void {\n this.isShowMultiselectDropdown = true;\n }\n\n private hideMultiselectDropdown(): void {\n this.isShowMultiselectDropdown = false;\n }\n\n private disableSelectAll(): void {\n this.isSelectAllDisabled = true;\n }\n\n private enableSelectAll(): void {\n this.isSelectAllDisabled = null;\n }\n\n private showNoResultsFound(): void {\n this.isShowNoResultsFound = true;\n }\n\n private hideNoResultsFound(): void {\n this.isShowNoResultsFound = false;\n }\n\n private resetComponent(): void {\n this.multiOptionComponents().forEach((item) => {\n item.isChecked.set(false);\n });\n const selectAllCheckbox = this.selectAllCheckbox();\n if (selectAllCheckbox) {\n this.renderer.setProperty(selectAllCheckbox.nativeElement, 'checked', false);\n }\n this._selectedItems.set([]);\n }\n\n private writeValues(values: string[]): void {\n if (values) {\n const newItems: EclMultiselectOption[] = [...this._selectedItems()];\n if (this.multiOptionComponents() && this.multiOptionComponents().length > 0) {\n this.multiOptionComponents()\n .filter((item) => values.includes(item.value()) && !item.disabled())\n .forEach((el) => {\n el.isChecked.set(true);\n newItems.push(el);\n });\n }\n this._selectedItems.set(newItems);\n }\n }\n\n private toggleDropdown(): void {\n this.isShowMultiselectDropdown = !this.isShowMultiselectDropdown;\n }\n\n private onArrowDownAndTabOption(evt: KeyboardEvent, option: EclMultiselectOption): void {\n (evt as KeyboardEvent).preventDefault();\n const index = this.getOptionIndexByIdFromActiveOptions(option.id);\n const currentOptions = this.getActiveOptions();\n const closeBtn = this.closeBtn();\n if (index !== currentOptions.length - 1) {\n const nextSiblingCheckbox = currentOptions[index + 1];\n nextSiblingCheckbox.onFocus();\n } else if (closeBtn) {\n this.renderer.selectRootElement(closeBtn.nativeElement, true).focus();\n }\n }\n\n private onArrowUpOption(evt: KeyboardEvent, option: EclMultiselectOption): void {\n (evt as KeyboardEvent).preventDefault();\n const index = this.getOptionIndexByIdFromActiveOptions(option.id);\n const selectAllCheckbox = this.selectAllCheckbox();\n if (index !== 0) {\n const prevSiblingCheckbox = this.getActiveOptions()[index - 1];\n prevSiblingCheckbox.onFocus();\n } else if (!this.hasSelectAll() || selectAllCheckbox.nativeElement.disabled) {\n if (this.hasSearchBox()) {\n this.renderer.selectRootElement(this.searchInput()?.nativeElement, true).focus();\n } else {\n this.onArrowUpSearch(evt);\n }\n } else {\n this.renderer.selectRootElement(selectAllCheckbox.nativeElement, true).focus();\n }\n }\n\n private getActiveOptions(): EclMultiselectOptionComponent[] {\n return this.multiOptionComponents() ? this.multiOptionComponents().filter((item) => item.isActive) : [];\n }\n\n private getAvailableOptions(): EclMultiselectOptionComponent[] {\n return this.multiOptionComponents() ? this.multiOptionComponents().filter((item) => !item.disabled()) : [];\n }\n\n private getOptionIndexByIdFromActiveOptions(id: string): number {\n return this.getActiveOptions().findIndex((option) => option.id === id);\n }\n\n private getSelectAllId(): string {\n return crypto.randomUUID();\n }\n\n private getDropdownId(): string {\n return this.id() !== '' ? `${this.id()}-dropdown` : crypto.randomUUID();\n }\n\n private getToggleId(): string {\n return this.id() !== '' ? `${this.id()}-toggle` : crypto.randomUUID();\n }\n\n private modifyParentLabelForAttribute(): void {\n const form = this.renderer.parentNode(this.elRef.nativeElement);\n const label = form?.querySelector('.ecl-form-label');\n if (label) {\n this.renderer.setAttribute(label, 'for', this.toggleId);\n }\n }\n}\n","<div eclMultiselectInput #eclMultiselectInput [inputPlaceholder]=\"mainInputPlaceholder()\" [selectedItemsLabels]=\"selectedItemsLabels()\"\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]=\"isSubmitOnApply() ? 'submit' : '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","import { computed, Directive, ElementRef, booleanAttribute, forwardRef, inject, input, contentChildren } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Directive used to decorate <option> and <optgroup> elements within a multiselect.\n * Adds support for value, label, disabled, selected states and styling.\n */\n@Directive({\n selector: 'optgroup[eclMultiselectOptgroup], option[eclMultiselectOption]',\n host: {\n '[attr.disabled]': 'disabled() || null',\n '[attr.selected]': 'selected() || null',\n '[class]': 'cssClasses()',\n },\n})\nexport class EclMultiselectOptionDirective extends ECLBaseDirective {\n\n /**\n * Nested option directives (used for optgroups).\n */\n readonly eclOptionItems = contentChildren(forwardRef(() => EclMultiselectOptionDirective));\n\n /**\n * Value assigned to the option.\n */\n readonly value = input<string>(undefined);\n\n /**\n * Label displayed for the option.\n */\n readonly label = input<string>(undefined);\n\n /**\n * Indicates that the option is disabled.\n */\n readonly disabled = input(false, { transform: booleanAttribute });\n\n /**\n * Indicates that the option is selected.\n */\n readonly selected = input(false, { transform: booleanAttribute });\n\n /**\n * Applies ECL checkbox styling class to the option.\n */\n protected readonly cssClasses = computed<string>(() =>\n super.getCssClasses('ecl-checkbox'));\n\n private readonly elRef = inject(ElementRef);\n\n /**\n * Returns true if this directive is applied to an <optgroup> element.\n */\n isOptGroup(): boolean {\n return this.elRef.nativeElement.nodeName === 'OPTGROUP';\n }\n}\n","import { isPlatformBrowser } from '@angular/common';\nimport { Component, computed, DoCheck, effect, ElementRef, Injector, IterableDiffer, IterableDiffers, OnDestroy, OnInit, PLATFORM_ID, Renderer2, ViewContainerRef, ViewEncapsulation, afterNextRender, booleanAttribute, forwardRef, inject, output, input, contentChildren } from '@angular/core';\nimport { NG_VALUE_ACCESSOR, NgControl } from '@angular/forms';\nimport { Subject } from 'rxjs';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclMultiselectDropdownComponent } from './ecl-multiselect-dropdown/ecl-multiselect-dropdown.component';\nimport { EclMultiselectOptionDirective } from './ecl-multiselect-option.directive';\n\n/**\n * Component representing a custom multiselect input using the ECL design system.\n *\n * Should be used on a native <select> element to enhance it with ECL multiselect behavior.\n * Replaces the original element with a custom dropdown rendered dynamically.\n */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'select[eclMultiselect]',\n templateUrl: 'ecl-multiselect.component.html',\n encapsulation: ViewEncapsulation.None,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => EclMultiselectComponent),\n multi: true,\n },\n ],\n host: {\n '[class]': 'cssClasses()',\n '[attr.disabled]': 'disabled() || null',\n },\n})\nexport class EclMultiselectComponent extends ECLBaseDirective implements DoCheck, OnInit, OnDestroy {\n\n /**\n * List of option directives projected into the component.\n */\n readonly eclOptionItems = contentChildren(forwardRef(() => EclMultiselectOptionDirective));\n\n /**\n * Defines the `aria-describedby` attribute for accessibility.\n */\n readonly ariaDescribedby = input<string | undefined>(undefined);\n\n /**\n * Sets the `id` attribute of the multiselect component.\n */\n readonly id = input<string | undefined>(undefined);\n\n /**\n * Label used for the toggle button that expands or collapses the dropdown.\n */\n readonly toggleLabel = input<string | undefined>(undefined);\n\n /**\n * Marks the multiselect as invalid.\n */\n readonly isInvalid = input(false, { transform: booleanAttribute });\n\n /**\n * Disables the multiselect component when set to true.\n */\n readonly disabled = input(false, { transform: booleanAttribute });\n\n /**\n * Emits an array of selected option values when the selection changes.\n */\n readonly eclChange = output<string[]>();\n\n /**\n * Enables the search box within the dropdown.\n */\n readonly hasSearchBox = input(true, { transform: booleanAttribute });\n\n /**\n * Displays the \"Select all\" option in the dropdown.\n */\n readonly hasSelectAll = input(true, { transform: booleanAttribute });\n\n /**\n * When true, the Apply button in the dropdown acts as a submit button (type=\"submit\").\n */\n readonly isSubmitOnApply = input(false, { transform: booleanAttribute });\n\n /**\n * Placeholder text to show in the multiselect input field when no options are selected.\n */\n readonly eclPlaceholder = input('Select item');\n\n /**\n * Multiselect size: 's' | 'm' | 'l'. Default is 'm'.\n */\n readonly eclSize = input('m');\n\n /**\n * Label for the selections counter, read by screen readers.\n * Accepts a translation key or plain text. Default: 'ecl.multiselect.SELECTED'.\n */\n readonly counterLabel = input('ecl.multiselect.SELECTED');\n\n private readonly SELECT_CONTAINER_CLASS = 'ecl-select__container';\n private readonly SELECT_CONTAINER_HIDDEN_CLASS = 'ecl-select__container--hidden';\n private readonly injector = inject(Injector);\n private readonly el = inject(ElementRef);\n private readonly viewContainerRef = inject(ViewContainerRef);\n private readonly differs = inject(IterableDiffers);\n private readonly renderer = inject(Renderer2);\n private readonly platformId = inject(PLATFORM_ID);\n private differ: IterableDiffer<EclMultiselectOptionDirective>;\n private multiselectComponent: EclMultiselectDropdownComponent;\n private hostEl: HTMLSelectElement;\n private hostParentEl: HTMLElement;\n private hostWrapperEl: HTMLElement;\n private multiselectComponentHtml: HTMLDivElement;\n private destroy$: Subject<boolean> = new Subject<boolean>();\n\n constructor() {\n super();\n this.differ = this.differs.find([]).create();\n // Keep the dynamically created dropdown in sync with this component's inputs.\n // The dropdown is created lazily in ngOnInit, so the sync is guarded on its\n // instance; once created, this effect re-applies whenever any of the inputs change.\n effect(() => {\n const dropdown = this.multiselectComponent;\n if (!dropdown) {\n return;\n }\n dropdown.mainInputPlaceholder.set(this.eclPlaceholder());\n dropdown.eclSize.set(this.eclSize());\n dropdown.disabled.set(this.disabled());\n dropdown.isInvalid.set(this.isInvalid());\n dropdown.hasSearchBox.set(this.hasSearchBox());\n dropdown.hasSelectAll.set(this.hasSelectAll());\n dropdown.isSubmitOnApply.set(this.isSubmitOnApply());\n dropdown.counterLabel.set(this.counterLabel());\n });\n afterNextRender(() => {\n this.attachOptions();\n if (this.hostParentEl != null) {\n this.hideOriginalSelectComponent();\n this.renderer.insertBefore(this.hostParentEl, this.multiselectComponentHtml, this.hostWrapperEl);\n this.setAriaLabelledBy();\n }\n });\n }\n\n ngDoCheck(): void {\n const diff = this.differ.diff(this.eclOptionItems());\n\n if (diff) {\n if (this.multiselectComponent) {\n this.multiselectComponent.multiOptionDirectives.set(Array.from(this.eclOptionItems()));\n }\n }\n }\n\n ngOnInit(): void {\n if (isPlatformBrowser(this.platformId)) {\n this.hostEl = this.getHostElement();\n this.hostParentEl = this.getHostParentElement(this.hostEl);\n this.hostWrapperEl = this.createHostWrapperContainer();\n this.multiselectComponentHtml = this.createMultiselectComponent();\n }\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n }\n\n /**\n * CSS classes applied to the host element.\n */\n protected readonly cssClasses = computed<string>(() =>\n super.getCssClasses('ecl-select'));\n\n private hideOriginalSelectComponent(): void {\n this.hostParentEl.replaceChild(this.hostWrapperEl, this.hostEl);\n this.hostWrapperEl.appendChild(this.hostEl);\n this.renderer.addClass(this.hostWrapperEl, this.SELECT_CONTAINER_HIDDEN_CLASS);\n this.renderer.setAttribute(this.hostWrapperEl, 'tabindex', '-1');\n this.renderer.setAttribute(this.hostEl, 'tabindex', '-1');\n }\n\n private createHostWrapperContainer(): HTMLElement {\n const wrapperContainer = this.renderer.createElement('div');\n this.renderer.addClass(wrapperContainer, this.SELECT_CONTAINER_CLASS);\n this.renderer.addClass(wrapperContainer, `${this.SELECT_CONTAINER_CLASS}--${this.eclSize()}`);\n return wrapperContainer;\n }\n\n private getHostElement(): HTMLSelectElement {\n return this.el.nativeElement;\n }\n\n private getHostParentElement(hostEl: HTMLSelectElement): HTMLElement {\n return hostEl.parentElement;\n }\n\n private createMultiselectComponent(): HTMLDivElement {\n const ngControl = this.injector.get(NgControl, undefined, { optional: true });\n const multiselect = this.viewContainerRef.createComponent(EclMultiselectDropdownComponent);\n const dropdown = multiselect.instance;\n this.multiselectComponent = dropdown;\n dropdown.eclChange.subscribe((evt) => {\n this.eclChange.emit(evt);\n });\n dropdown.mainInputPlaceholder.set(this.eclPlaceholder());\n\n const ariaDescribedby = this.ariaDescribedby();\n if (ariaDescribedby !== undefined) {\n dropdown.ariaDescribedby.set(ariaDescribedby);\n }\n const toggleLabel = this.toggleLabel();\n if (toggleLabel !== undefined) {\n dropdown.toggleLabel.set(toggleLabel);\n }\n const id = this.id();\n if (id !== undefined) {\n dropdown.id.set(id);\n }\n dropdown.eclSize.set(this.eclSize());\n if (ngControl) {\n ngControl.valueAccessor = dropdown;\n }\n dropdown.disabled.set(this.disabled());\n dropdown.isInvalid.set(this.isInvalid());\n dropdown.hasSearchBox.set(this.hasSearchBox());\n dropdown.hasSelectAll.set(this.hasSelectAll());\n dropdown.isSubmitOnApply.set(this.isSubmitOnApply());\n dropdown.counterLabel.set(this.counterLabel());\n return (multiselect.location as ElementRef<HTMLDivElement>).nativeElement;\n }\n\n private setAriaLabelledBy(): void {\n const hostSelect: HTMLElement = this.el.nativeElement;\n const formGroup = hostSelect.closest('.ecl-form-group') as HTMLElement | null;\n if (!formGroup) return;\n\n const label = formGroup.querySelector('.ecl-form-label') as HTMLElement | null;\n if (!label) return;\n\n if (!label.id) {\n const newLabelId = `ecl-select-label-${crypto.randomUUID()}`;\n this.renderer.setAttribute(label, 'id', newLabelId);\n }\n\n if (!hostSelect.id) {\n const newSelectId = `ecl-select-input-${crypto.randomUUID()}`;\n this.renderer.setAttribute(hostSelect, 'id', newSelectId);\n }\n\n const labelledBy = `${label.id} ${hostSelect.id}`.trim();\n this.renderer.setAttribute(hostSelect, 'aria-labelledby', labelledBy);\n }\n\n private attachOptions(): void {\n setTimeout(() => {\n this.multiselectComponent.multiOptionDirectives.set(Array.from(this.eclOptionItems()));\n });\n }\n}\n","<ng-content></ng-content>\n","import { BoldTextPipe } from './boldText.pipe';\nimport { EclMultiselectDropdownComponent } from './ecl-multiselect-dropdown/ecl-multiselect-dropdown.component';\nimport { EclMultiselectInputComponent } from './ecl-multiselect-input/ecl-multiselect-input.component';\nimport { EclMultiselectOptgroupComponent } from './ecl-multiselect-optgroup/ecl-multiselect-optgroup.component';\nimport { EclMultiselectOptionDirective } from './ecl-multiselect-option.directive';\nimport { EclMultiselectOptionComponent } from './ecl-multiselect-option/ecl-multiselect-option.component';\nimport { EclMultiselectComponent } from './ecl-multiselect.component';\n\nexport * from './ecl-multiselect.component';\nexport * from './ecl-multiselect-dropdown/ecl-multiselect-dropdown.component';\nexport * from './ecl-multiselect-input/ecl-multiselect-input.component';\nexport * from './ecl-multiselect-optgroup/ecl-multiselect-optgroup.component';\nexport * from './ecl-multiselect-option/ecl-multiselect-option.component';\nexport * from './ecl-multiselect-option.directive';\nexport * from './models/ecl-multiselect-option.model';\nexport * from './events/index';\nexport * from './boldText.pipe';\n\nexport const EUI_ECL_MULTISELECT = [\n EclMultiselectComponent,\n EclMultiselectOptionDirective,\n EclMultiselectOptionComponent,\n EclMultiselectInputComponent,\n EclMultiselectDropdownComponent,\n EclMultiselectOptgroupComponent,\n BoldTextPipe,\n] as const;","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"eui-ecl-components-ecl-multiselect.mjs","sources":["../../components/ecl-multiselect/boldText.pipe.ts","../../components/ecl-multiselect/events/ecl-multiselect-main-input-click.event.ts","../../components/ecl-multiselect/events/ecl-multiselect-option.event.ts","../../components/ecl-multiselect/ecl-multiselect-input/ecl-multiselect-input.component.ts","../../components/ecl-multiselect/ecl-multiselect-input/ecl-multiselect-input.component.html","../../components/ecl-multiselect/ecl-multiselect-option/ecl-multiselect-option.component.ts","../../components/ecl-multiselect/ecl-multiselect-option/ecl-multiselect-option.component.html","../../components/ecl-multiselect/ecl-multiselect-optgroup/ecl-multiselect-optgroup.component.ts","../../components/ecl-multiselect/ecl-multiselect-optgroup/ecl-multiselect-optgroup.component.html","../../components/ecl-multiselect/ecl-multiselect-dropdown/ecl-multiselect-dropdown.component.ts","../../components/ecl-multiselect/ecl-multiselect-dropdown/ecl-multiselect-dropdown.component.html","../../components/ecl-multiselect/ecl-multiselect-option.directive.ts","../../components/ecl-multiselect/ecl-multiselect.component.ts","../../components/ecl-multiselect/ecl-multiselect.component.html","../../components/ecl-multiselect/index.ts","../../components/ecl-multiselect/eui-ecl-components-ecl-multiselect.ts"],"sourcesContent":["import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'boldText',\n})\nexport class BoldTextPipe implements PipeTransform {\n private BOLD_TAG_OPEN = '<b>';\n\n transform(value: string, keyword: string): string {\n if (keyword !== '') {\n return this.replace(value, keyword);\n } else {\n if (value.indexOf(this.BOLD_TAG_OPEN) > -1) {\n return this.clearBoldText(value);\n } else {\n return value;\n }\n }\n }\n\n replace(str: string, keyword: string): string {\n const re = new RegExp(keyword, 'gi');\n return str.replace(re, '<b>$&</b>');\n }\n\n clearBoldText(str: string): string {\n return str.replace(/<[/]?b>/g, '');\n }\n}\n","export class EclMultiselectMainInputClickEvent {\n constructor(public event: Event) {}\n}","import { EclMultiselectOption } from '../models/ecl-multiselect-option.model';\n\nexport class EclMultiselectOptionClickEvent {\n constructor(public multiselectOption: EclMultiselectOption) {}\n}\n\nexport class EclMultiselectOptionKeydownEvent {\n constructor(\n public multiselectOption: EclMultiselectOption,\n public keyboardEvent: KeyboardEvent,\n ) {}\n}","import { Component, ElementRef, Renderer2, booleanAttribute, computed, inject, input, signal, output, viewChild } from '@angular/core';\nimport { TranslatePipe } from '@ngx-translate/core';\nimport { KeyCode } from '@eui/ecl/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclThemeService } from '@eui/ecl/core';\nimport { EclMultiselectMainInputClickEvent } from '../events';\nimport { EUI_ECL_BUTTON } from '@eui/ecl/components/ecl-button';\nimport { EUI_ECL_ICON } from '@eui/ecl/components/ecl-icon';\n\n/**\n * Component representing the main input of a multiselect component.\n * Handles displaying selected items, opening the dropdown, and managing accessibility.\n */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'div[eclMultiselectInput]',\n templateUrl: './ecl-multiselect-input.component.html',\n imports: [TranslatePipe, ...EUI_ECL_BUTTON, ...EUI_ECL_ICON],\n host: {\n '[class]': 'cssClasses()',\n '[class.ecl-select__container--disabled]': 'isDisabled()',\n '[class.ecl-select__container--invalid]': 'isInvalid()',\n },\n})\nexport class EclMultiselectInputComponent extends ECLBaseDirective {\n\n /**\n * Size modifier for the multiselect input (e.g., 's', 'm', 'l').\n */\n eclSize = input('m');\n\n /**\n * Label for the selections counter, read by screen readers.\n */\n counterLabel = input('ecl.multiselect.SELECTED');\n\n /**\n * ID of the toggle button element (used for accessibility).\n */\n toggleId = input<string>('');\n\n /**\n * Label for the toggle button (optional).\n */\n toggleLabel = input<string | undefined>(undefined);\n\n /**\n * Marks the component as disabled.\n */\n isDisabled = input(false, { transform: booleanAttribute });\n\n /**\n * Marks the component as being in an invalid state.\n */\n isInvalid = input(false, { transform: booleanAttribute });\n\n /**\n * Placeholder text for the input when no items are selected.\n */\n inputPlaceholder = input('');\n\n /**\n * Array of currently selected item labels.\n */\n selectedItemsLabels = input<string[]>([]);\n\n /**\n * Indicates that the dropdown is currently expanded.\n */\n isDropdownExpanded = input(false, { transform: booleanAttribute });\n\n /**\n * ARIA controls attribute for accessibility.\n */\n ariaControls = input<string | undefined>(undefined);\n\n /**\n * ARIA describedby attribute for accessibility.\n */\n ariaDescribedby = input<string | undefined>(undefined);\n\n /**\n * Event emitted when the input is clicked.\n */\n readonly mainInputClick = output<EclMultiselectMainInputClickEvent>();\n\n /**\n * Event emitted when a key is pressed on the input.\n */\n readonly mainInputKeydown = output<Event>();\n\n /**\n * Unique ID for the counter element.\n */\n protected counterId = signal(crypto.randomUUID());\n\n /**\n * Reference to the internal input element.\n */\n protected readonly inputMultiselect = viewChild<ElementRef>('inputMultiselect');\n\n /**\n * Computed ARIA describedby combining the input value with the counter ID.\n */\n protected ariaDescribedbyFull = computed(() => {\n const describedby = this.ariaDescribedby();\n const counter = this.counterId();\n return [describedby, counter].filter(Boolean).join(' ') || undefined;\n });\n\n /**\n * Returns the label text shown inside the button.\n */\n protected buttonText = computed(() => {\n const items = this.selectedItemsLabels();\n return items.length === 0 ? this.inputPlaceholder() : items.join(',');\n });\n\n /**\n * Returns the count of selected items.\n */\n protected selectedItemsCount = computed(() => this.selectedItemsLabels().length);\n\n /**\n * Displays a count badge when items are selected.\n */\n protected isShowCounter = computed(() => this.selectedItemsLabels().length > 0);\n\n /**\n * Indicates that the dropdown is expanded (active).\n */\n protected isActive = computed(() => this.isDropdownExpanded());\n\n /**\n * CSS classes for the component, including size and inherited classes.\n */\n protected readonly cssClasses = computed<string>(() =>\n [\n super.getCssClasses('ecl-select__container'),\n `ecl-select__container--${this.eclSize()}`,\n ].join(' ').trim());\n\n /**\n * Returns icon size depending on the theme.\n */\n protected get sizeIcon(): string {\n if (this.eclThemeService.isECTheme()) {\n return this.ICON_SIZE_FOR_EC_THEME_ON;\n } else {\n return this.ICON_SIZE_FOR_EU_THEME_ON;\n }\n }\n\n private readonly ICON_SIZE_FOR_EC_THEME_ON = 'xs';\n private readonly ICON_SIZE_FOR_EU_THEME_ON = 's';\n private eclThemeService = inject(EclThemeService);\n private renderer = inject(Renderer2);\n\n /**\n * Focuses the multiselect input element.\n */\n onFocus(): void {\n this.renderer.selectRootElement(this.inputMultiselect().nativeElement, true).focus();\n }\n\n /**\n * Handles click on the input container. Emits custom event with original DOM event.\n */\n protected onClick(evt: Event): void {\n this.mainInputClick.emit(new EclMultiselectMainInputClickEvent(evt));\n }\n\n /**\n * Handles keydown events on the input.\n * Only emits event on ArrowDown, Enter, or Space keys.\n */\n protected onKeydown(evt: KeyboardEvent): void {\n switch (evt.key) {\n case KeyCode.ARROW_DOWN:\n case KeyCode.ENTER:\n case KeyCode.SPACE:\n {\n this.mainInputKeydown.emit(evt);\n break;\n }\n default: {\n break;\n }\n }\n }\n}\n","<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","import {\n Component,\n computed,\n ElementRef,\n OnInit,\n Renderer2,\n booleanAttribute,\n inject,\n input,\n model,\n output,\n signal,\n viewChild,\n} from '@angular/core';\nimport { EclCheckboxDirective, EUI_ECL_CHECKBOX } from '@eui/ecl/components/ecl-checkbox';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { BoldTextPipe } from '../boldText.pipe';\nimport {\n EclMultiselectOptionClickEvent,\n EclMultiselectOptionKeydownEvent,\n} from '../events/ecl-multiselect-option.event';\nimport { EclMultiselectOption } from '../models/ecl-multiselect-option.model';\n\n/**\n * Component representing a single selectable option in the multiselect dropdown.\n */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'div[eclMultiselectOption]',\n templateUrl: './ecl-multiselect-option.component.html',\n imports: [BoldTextPipe, ...EUI_ECL_CHECKBOX],\n hostDirectives: [EclCheckboxDirective],\n host: {\n '[class]': 'cssClasses()',\n '[class.ecl-checkbox--disabled]': 'disabled()',\n '[attr.disabled]': 'disabled() || null',\n '[style.display]': 'display()',\n },\n})\nexport class EclMultiselectOptionComponent extends ECLBaseDirective implements EclMultiselectOption, OnInit {\n\n /**\n * Value assigned to the option.\n */\n readonly value = input<string>('');\n\n /**\n * Display label for the option.\n */\n readonly label = input<string>('');\n\n /**\n * Disables the option when true.\n */\n readonly disabled = input(false, { transform: booleanAttribute });\n\n /**\n * Indicates whether the option is selected.\n */\n readonly isChecked = model(false);\n\n /**\n * Emits when the option is clicked.\n */\n readonly optionClick = output<EclMultiselectOptionClickEvent>();\n\n /**\n * Emits when a key is pressed while focused on the option.\n */\n readonly optionKeydown = output<EclMultiselectOptionKeydownEvent>();\n\n /**\n * Reference to the checkbox input element.\n */\n protected readonly eclCheckboxInput = viewChild<ElementRef>('checkboxInput');\n\n /**\n * Keyword used by the boldText pipe to highlight matching text.\n */\n protected keyword = '';\n\n /**\n * Controls the host element visibility (`display` style).\n */\n protected readonly display = signal('flex');\n\n private readonly renderer = inject(Renderer2);\n private _id = '';\n\n /**\n * Returns the unique identifier for the option.\n */\n get id(): string {\n return this._id;\n }\n\n /**\n * Indicates whether the option is active (visible and not disabled).\n */\n get isActive(): boolean {\n return this.display() === 'flex' && !this.disabled();\n }\n\n ngOnInit(): void {\n this._id = this.createId();\n }\n\n /**\n * Focuses the checkbox input.\n */\n onFocus(): void {\n this.renderer.selectRootElement(this.eclCheckboxInput().nativeElement, true).focus();\n }\n\n /**\n * Makes the option visible.\n */\n show(): void {\n this.display.set('flex');\n }\n\n /**\n * Hides the option from view.\n */\n hide(): void {\n this.display.set('none');\n }\n\n /**\n * Sets the keyword used by the boldText pipe to highlight matching text.\n */\n highlightSearchText(keyword: string): void {\n this.keyword = keyword;\n }\n\n /**\n * Applies ECL checkbox styling class to the option.\n */\n protected readonly cssClasses = computed<string>(() =>\n super.getCssClasses('ecl-checkbox'));\n\n /**\n * Toggles the selected state and emits the optionClick event.\n */\n protected onOptionClick(): void {\n this.isChecked.set(!this.isChecked());\n this.optionClick.emit(new EclMultiselectOptionClickEvent(this));\n }\n\n /**\n * Emits the optionKeydown event when a key is pressed.\n */\n protected onOptionKeydown(evt: KeyboardEvent): void {\n this.optionKeydown.emit(new EclMultiselectOptionKeydownEvent(this, evt));\n }\n\n private createId(): string {\n return crypto.randomUUID();\n }\n}\n","<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","import { Component, computed, input } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Component representing an option group (fieldset) in a multiselect component.\n * Used to group related options under a common label.\n */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'fieldset[eclMultiselectOptgroup]',\n templateUrl: './ecl-multiselect-optgroup.component.html',\n host: {\n '[class]': 'cssClasses()',\n },\n})\nexport class EclMultiselectOptgroupComponent extends ECLBaseDirective {\n\n /**\n * The visible label for the option group.\n */\n readonly label = input<string>(undefined);\n\n /**\n * Returns the computed CSS classes for the optgroup container.\n */\n protected readonly cssClasses = computed<string>(() => super.getCssClasses('ecl-select__multiple-group'));\n}\n","<legend class=\"ecl-select__multiple-group__title\">{{ label() }}</legend>\n<ng-content></ng-content>\n","import { Component, computed, DoCheck, effect, ElementRef, forwardRef, OnDestroy, OnInit, Renderer2, signal, untracked, inject, output, viewChild, viewChildren } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { Subject } from 'rxjs';\nimport { TranslatePipe } from '@ngx-translate/core';\nimport { KeyCode } from '@eui/ecl/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclMultiselectInputComponent } from '../ecl-multiselect-input/ecl-multiselect-input.component';\nimport { EclMultiselectOptionDirective } from '../ecl-multiselect-option.directive';\nimport { EclMultiselectOptionComponent } from '../ecl-multiselect-option/ecl-multiselect-option.component';\nimport { EclMultiselectOption } from '../models/ecl-multiselect-option.model';\nimport { EclMultiselectMainInputClickEvent, EclMultiselectOptionClickEvent, EclMultiselectOptionKeydownEvent } from '../events';\nimport { EUI_ECL_BUTTON } from '@eui/ecl/components/ecl-button';\nimport { EclMultiselectOptgroupComponent } from '../ecl-multiselect-optgroup/ecl-multiselect-optgroup.component';\nimport { EUI_ECL_CHECKBOX } from '@eui/ecl/components/ecl-checkbox';\n\n/**\n * Component that renders a dropdown-style multiselect UI element.\n * Used internally by the `EclMultiselectComponent`.\n */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'div[eclMultiselectDropdown]',\n templateUrl: 'ecl-multiselect-dropdown.component.html',\n imports: [\n ...EUI_ECL_BUTTON, EclMultiselectOptionComponent, EclMultiselectOptgroupComponent,\n EclMultiselectInputComponent, ...EUI_ECL_CHECKBOX, TranslatePipe,\n ],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => EclMultiselectDropdownComponent),\n multi: true,\n },\n ],\n host: {\n '[class]': 'cssClasses()',\n '(keyup.escape)': 'onEscapeKey()',\n '(document:click)': 'onKeyUp($event)',\n '[attr.disabled]': 'disabled() || undefined',\n },\n})\nexport class EclMultiselectDropdownComponent extends ECLBaseDirective implements OnInit, ControlValueAccessor, DoCheck, OnDestroy {\n\n /**\n * Emits the list of selected values whenever the selection changes.\n */\n readonly eclChange = output<string[]>();\n\n /**\n * State configured imperatively by the parent `EclMultiselectComponent`.\n * This dropdown is created dynamically and is never bound in a template, so these\n * are writable signals set through their `.set()` accessor rather than inputs.\n */\n readonly isInvalid = signal<boolean | undefined>(undefined);\n\n /**\n * Placeholder for the main multiselect input.\n */\n readonly mainInputPlaceholder = signal('Select an item');\n\n /**\n * Placeholder for the search field input.\n */\n readonly searchFieldPlaceholder = signal('Enter filter keyword');\n\n /**\n * Size of the multiselect dropdown (e.g., 'm', 'l').\n */\n readonly eclSize = signal('m');\n\n /**\n * Disables the component when true.\n * Set by the parent and by `ControlValueAccessor.setDisabledState`.\n */\n readonly disabled = signal<boolean | undefined>(undefined);\n\n /**\n * Optional ARIA description used for accessibility purposes.\n */\n readonly ariaDescribedby = signal<string | undefined>(undefined);\n\n /**\n * Label displayed for the toggle button to assist screen readers.\n */\n readonly toggleLabel = signal<string | undefined>(undefined);\n\n /**\n * Enables the search box in the dropdown interface.\n */\n readonly hasSearchBox = signal(true);\n\n /**\n * Displays the \"Select all\" checkbox above the list of options.\n */\n readonly hasSelectAll = signal(true);\n\n /**\n * When true, the Apply button acts as a submit button (type=\"submit\") instead of a regular button.\n */\n readonly isSubmitOnApply = signal(false);\n\n /**\n * Label for the selections counter, read by screen readers.\n */\n readonly counterLabel = signal('ecl.multiselect.SELECTED');\n\n /**\n * Optional identifier used for the dropdown element.\n */\n readonly id = signal('');\n\n /**\n * List of option directives currently rendered in the dropdown.\n */\n multiOptionDirectives = signal<EclMultiselectOptionDirective[]>([]);\n\n protected readonly searchInput = viewChild<ElementRef>('searchInput');\n protected readonly eclMultiselectInput = viewChild<EclMultiselectInputComponent>('eclMultiselectInput');\n protected readonly selectAllCheckbox = viewChild<ElementRef>('selectAllCheckbox');\n protected readonly closeBtn = viewChild('closeBtn', { read: ElementRef });\n protected readonly clearAllBtn = viewChild('clearAllBtn', { read: ElementRef });\n protected readonly multiOptionComponents = viewChildren(EclMultiselectOptionComponent);\n\n /**\n * Gets labels of currently selected options.\n */\n protected selectedItemsLabels = computed(() => this._selectedItems().map((item) => item.label()));\n\n /**\n * Controls the visibility of the multiselect toolbar.\n * Always visible when isSubmitOnApply is true so the user can submit the form.\n */\n protected isShowToolbar = computed(() => this.isSubmitOnApply() || this._selectedItems().length > 0);\n\n /**\n * Indicates that the \"no results found\" message should be displayed.\n */\n protected isShowNoResultsFound = false;\n\n /**\n * Controls the visibility of the multiselect dropdown.\n */\n protected isShowMultiselectDropdown = false;\n\n /**\n * Total number of options available in the dropdown list.\n */\n protected optionsCount = 0;\n\n protected dropdownId = '';\n protected isSelectAllDisabled: boolean | null = null;\n protected selectAllId = '';\n protected toggleId = '';\n\n private _selectedItems = signal<EclMultiselectOption[]>([]);\n private destroy$: Subject<boolean> = new Subject<boolean>();\n private isWriteValueCalled = false;\n private values = [];\n private elRef = inject(ElementRef);\n private renderer = inject(Renderer2);\n\n constructor() {\n super();\n // Re-apply the selection state whenever the rendered set of option components\n // changes. This replaces the previous QueryList.changes subscription: the option\n // components arrive asynchronously (the parent publishes the option directives via\n // a setTimeout, then the @for renders them), and their arrival does not always emit\n // a change event. Only the identity of the option list is tracked here; the option\n // state reads/writes inside applyOptionState run untracked so toggling an option\n // does not re-trigger this effect.\n effect(() => {\n const options = this.multiOptionComponents();\n if (options.length > 0) {\n untracked(() => this.applyOptionState());\n }\n });\n }\n\n ngDoCheck(): void {\n this.optionsCount = this.getAvailableOptions() ? this.getAvailableOptions().length : 0;\n }\n\n ngOnInit(): void {\n this.selectAllId = this.getSelectAllId();\n this.dropdownId = this.getDropdownId();\n this.toggleId = this.getToggleId();\n setTimeout(() => {\n this.modifyParentLabelForAttribute();\n });\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n }\n\n /**\n * Writes a new value to the component from the outside (e.g., form model).\n * Required by ControlValueAccessor.\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n writeValue(values: any): void {\n if (this.multiOptionComponents() && this.multiOptionComponents().length > 0) {\n this.resetComponent();\n this.writeValues(values);\n } else {\n this.values = values;\n this.isWriteValueCalled = true;\n }\n }\n\n /**\n * Registers a callback function to be called when the value changes.\n * Required by ControlValueAccessor.\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n registerOnChange(fn: any): void {\n this.propagateChange = fn;\n }\n\n /**\n * Registers a callback function to be called when the component is touched.\n * Required by ControlValueAccessor.\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n registerOnTouched(fn: any): void {\n this.propagateTouched = fn;\n }\n\n /**\n * Enables or disables the component.\n * Required by ControlValueAccessor.\n */\n setDisabledState(isDisabled: boolean): void {\n this.disabled.set(isDisabled);\n }\n\n /**\n * Adds the ECL base CSS class for multiselect dropdowns.\n */\n protected readonly cssClasses = computed<string>(() =>\n super.getCssClasses('ecl-select__multiple'));\n\n protected onEscapeKey(): void {\n this.hideMultiselectDropdown();\n this.eclMultiselectInput()?.onFocus();\n }\n\n protected onKeyUp(event: MouseEvent): void {\n if (!this.elRef.nativeElement.contains(event.target)) {\n this.hideMultiselectDropdown();\n }\n }\n\n protected onClickClearAll(evt: Event): void {\n evt.stopPropagation();\n this.unselectAllActiveOptions();\n this.eclChange.emit([]);\n this.propagateChange([]);\n }\n\n protected onEnterClear(evt: Event): void {\n this.onClickClearAll(evt);\n this.eclMultiselectInput()?.onFocus();\n }\n\n protected onClickClose(evt: Event): void {\n if (!this.isSubmitOnApply()) {\n evt.preventDefault();\n }\n this.hideMultiselectDropdown();\n }\n\n protected onArrowUpClose(evt: Event): void {\n evt.preventDefault();\n const currentOptions = this.getActiveOptions();\n currentOptions[currentOptions.length - 1].onFocus();\n }\n\n protected onArrowDownClose(evt: Event): void {\n evt.preventDefault();\n this.renderer.selectRootElement(this.clearAllBtn().nativeElement, true).focus();\n }\n\n protected onTabClose(evt: Event): void {\n if (!(evt as KeyboardEvent).shiftKey) {\n evt.preventDefault();\n this.renderer.selectRootElement(this.clearAllBtn()?.nativeElement, true).focus();\n }\n }\n\n protected onArrowUpClear(evt: Event): void {\n evt.preventDefault();\n this.renderer.selectRootElement(this.closeBtn()?.nativeElement, true).focus();\n }\n\n protected onArrowDownClear(evt: Event): void {\n evt.preventDefault();\n this.eclMultiselectInput().onFocus();\n }\n\n protected onTabClear(evt: Event): void {\n if (!(evt as KeyboardEvent).shiftKey) {\n evt.preventDefault();\n this.hideMultiselectDropdown();\n this.eclMultiselectInput().onFocus();\n }\n }\n\n protected onEnterSearch(evt: Event): void {\n evt.preventDefault();\n }\n\n protected onArrowDownSearch(evt: Event): void {\n evt.preventDefault();\n const currentOptions = this.getActiveOptions();\n if (this.hasSelectAll()) {\n this.renderer.selectRootElement(this.selectAllCheckbox()?.nativeElement, true).focus();\n } else {\n currentOptions[0].onFocus();\n }\n }\n\n protected onArrowUpSearch(evt: Event): void {\n evt.preventDefault();\n this.hideMultiselectDropdown();\n this.eclMultiselectInput().onFocus();\n }\n\n protected onKeydownMainInput(evt: Event): void {\n evt.preventDefault();\n this.showMultiselectDropdown();\n if (this.hasSearchBox()) {\n setTimeout(() => this.renderer.selectRootElement(this.searchInput()?.nativeElement, true).focus());\n } else {\n this.onArrowDownSearch(evt);\n }\n }\n\n protected onClickMainInput(evt: EclMultiselectMainInputClickEvent): void {\n evt.event.preventDefault();\n this.toggleDropdown();\n }\n\n protected onArrowDownSelectAll(evt: Event): void {\n evt.preventDefault();\n const currentOptions = this.getActiveOptions();\n if (currentOptions.length > 0) {\n currentOptions[0].onFocus();\n }\n }\n\n protected onArrowUpSelectAll(evt: Event): void {\n evt.preventDefault();\n if (this.hasSearchBox()) {\n this.renderer.selectRootElement(this.searchInput()?.nativeElement, true).focus();\n } else {\n this.onArrowUpSearch(evt);\n }\n }\n\n protected onEnterSelectAll(evt: Event): void {\n evt.preventDefault();\n (evt.target as HTMLInputElement).click();\n }\n\n /**\n * Handles search input, filters options, and updates their visibility.\n */\n protected onSearch(input: EventTarget): void {\n const keyword = (input as HTMLInputElement).value;\n let isMatchFound = false;\n if (keyword === '') {\n this.enableSelectAll();\n isMatchFound = true;\n this.multiOptionComponents().forEach((item) => {\n item.highlightSearchText('');\n item.show();\n });\n } else {\n this.multiOptionComponents().forEach((item) => {\n if (item.label().toLowerCase().indexOf(keyword.toLowerCase()) < 0) {\n item.hide();\n } else {\n isMatchFound = true;\n item.highlightSearchText(keyword.toLowerCase());\n item.show();\n }\n });\n this.disableSelectAll();\n }\n if (!isMatchFound) {\n this.showNoResultsFound();\n } else {\n this.hideNoResultsFound();\n }\n }\n\n /**\n * Toggles all visible options based on the \"Select All\" checkbox.\n */\n protected onSelectAll(): void {\n if (this.selectAllCheckbox()?.nativeElement.checked) {\n this.selectAllActiveOptions();\n } else {\n this.unselectAllActiveOptions();\n }\n this.propagateTouched();\n this.eclChange.emit(this._selectedItems().map((item) => item.value()));\n this.propagateChange(this._selectedItems().map((item) => item.value()));\n }\n\n /**\n * Handles keyboard interaction on option items.\n * Supports arrow keys, tab, escape, and enter.\n */\n protected onKeydownOption(evt: EclMultiselectOptionKeydownEvent): void {\n switch (evt.keyboardEvent.key) {\n case KeyCode.ARROW_DOWN: {\n this.onArrowDownAndTabOption(evt.keyboardEvent, evt.multiselectOption);\n break;\n }\n case KeyCode.ARROW_UP: {\n this.onArrowUpOption(evt.keyboardEvent, evt.multiselectOption);\n break;\n }\n case KeyCode.ENTER: {\n (evt.keyboardEvent.target as HTMLInputElement).click();\n break;\n }\n case KeyCode.TAB: {\n if (!evt.keyboardEvent.shiftKey) {\n this.onArrowDownAndTabOption(evt.keyboardEvent, evt.multiselectOption);\n }\n break;\n }\n default: {\n break;\n }\n }\n }\n\n /**\n * Triggered when a single option is clicked/selected.\n * Updates selected items, emits changes.\n */\n protected onOptionSelected(evt: EclMultiselectOptionClickEvent): void {\n const selectAllCheckbox = this.selectAllCheckbox();\n if (selectAllCheckbox && selectAllCheckbox.nativeElement.checked) {\n this.renderer.setProperty(selectAllCheckbox.nativeElement, 'checked', false);\n }\n const currOption = evt.multiselectOption;\n if (currOption.isChecked()) {\n this._selectedItems.update((items) => [...items, currOption]);\n } else {\n this._selectedItems.update((items) => items.filter((item) => item !== currOption));\n }\n this.propagateChange(this._selectedItems().map((item) => item.value()));\n this.propagateTouched();\n this.eclChange.emit(this._selectedItems().map((item) => item.value()));\n }\n\n private applyOptionState(): void {\n if (this.isWriteValueCalled) {\n this.resetComponent();\n this.writeValues(this.values);\n this.isWriteValueCalled = false;\n } else {\n this.initSelectedOptions();\n }\n this.optionsCount = this.getAvailableOptions() ? this.getAvailableOptions().length : 0;\n }\n\n private initSelectedOptions(): void {\n const items: EclMultiselectOption[] = [];\n this.multiOptionComponents()\n .filter((elem) => elem.isChecked())\n .forEach((item) => {\n items.push(item);\n });\n this._selectedItems.set(items);\n }\n\n private selectAllActiveOptions(): void {\n const newItems: EclMultiselectOption[] = [...this._selectedItems()];\n this.getActiveOptions().forEach((item) => {\n if (!item.isChecked()) {\n item.isChecked.set(true);\n newItems.push(item);\n }\n });\n this._selectedItems.set(newItems);\n }\n\n private unselectAllActiveOptions(): void {\n const selectAllCheckbox = this.selectAllCheckbox();\n if (selectAllCheckbox) {\n this.renderer.setProperty(selectAllCheckbox.nativeElement, 'checked', false);\n }\n this._selectedItems.set([]);\n this.getAvailableOptions().forEach((item) => {\n item.isChecked.set(false);\n });\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private propagateChange = (_: any): void => {\n /* empty */\n };\n\n private propagateTouched = (): void => {\n /* empty */\n };\n\n private showMultiselectDropdown(): void {\n this.isShowMultiselectDropdown = true;\n }\n\n private hideMultiselectDropdown(): void {\n this.isShowMultiselectDropdown = false;\n }\n\n private disableSelectAll(): void {\n this.isSelectAllDisabled = true;\n }\n\n private enableSelectAll(): void {\n this.isSelectAllDisabled = null;\n }\n\n private showNoResultsFound(): void {\n this.isShowNoResultsFound = true;\n }\n\n private hideNoResultsFound(): void {\n this.isShowNoResultsFound = false;\n }\n\n private resetComponent(): void {\n this.multiOptionComponents().forEach((item) => {\n item.isChecked.set(false);\n });\n const selectAllCheckbox = this.selectAllCheckbox();\n if (selectAllCheckbox) {\n this.renderer.setProperty(selectAllCheckbox.nativeElement, 'checked', false);\n }\n this._selectedItems.set([]);\n }\n\n private writeValues(values: string[]): void {\n if (values) {\n const newItems: EclMultiselectOption[] = [...this._selectedItems()];\n if (this.multiOptionComponents() && this.multiOptionComponents().length > 0) {\n this.multiOptionComponents()\n .filter((item) => values.includes(item.value()) && !item.disabled())\n .forEach((el) => {\n el.isChecked.set(true);\n newItems.push(el);\n });\n }\n this._selectedItems.set(newItems);\n }\n }\n\n private toggleDropdown(): void {\n this.isShowMultiselectDropdown = !this.isShowMultiselectDropdown;\n }\n\n private onArrowDownAndTabOption(evt: KeyboardEvent, option: EclMultiselectOption): void {\n (evt as KeyboardEvent).preventDefault();\n const index = this.getOptionIndexByIdFromActiveOptions(option.id);\n const currentOptions = this.getActiveOptions();\n const closeBtn = this.closeBtn();\n if (index !== currentOptions.length - 1) {\n const nextSiblingCheckbox = currentOptions[index + 1];\n nextSiblingCheckbox.onFocus();\n } else if (closeBtn) {\n this.renderer.selectRootElement(closeBtn.nativeElement, true).focus();\n }\n }\n\n private onArrowUpOption(evt: KeyboardEvent, option: EclMultiselectOption): void {\n (evt as KeyboardEvent).preventDefault();\n const index = this.getOptionIndexByIdFromActiveOptions(option.id);\n const selectAllCheckbox = this.selectAllCheckbox();\n if (index !== 0) {\n const prevSiblingCheckbox = this.getActiveOptions()[index - 1];\n prevSiblingCheckbox.onFocus();\n } else if (!this.hasSelectAll() || selectAllCheckbox.nativeElement.disabled) {\n if (this.hasSearchBox()) {\n this.renderer.selectRootElement(this.searchInput()?.nativeElement, true).focus();\n } else {\n this.onArrowUpSearch(evt);\n }\n } else {\n this.renderer.selectRootElement(selectAllCheckbox.nativeElement, true).focus();\n }\n }\n\n private getActiveOptions(): EclMultiselectOptionComponent[] {\n return this.multiOptionComponents() ? this.multiOptionComponents().filter((item) => item.isActive) : [];\n }\n\n private getAvailableOptions(): EclMultiselectOptionComponent[] {\n return this.multiOptionComponents() ? this.multiOptionComponents().filter((item) => !item.disabled()) : [];\n }\n\n private getOptionIndexByIdFromActiveOptions(id: string): number {\n return this.getActiveOptions().findIndex((option) => option.id === id);\n }\n\n private getSelectAllId(): string {\n return crypto.randomUUID();\n }\n\n private getDropdownId(): string {\n return this.id() !== '' ? `${this.id()}-dropdown` : crypto.randomUUID();\n }\n\n private getToggleId(): string {\n return this.id() !== '' ? `${this.id()}-toggle` : crypto.randomUUID();\n }\n\n private modifyParentLabelForAttribute(): void {\n const form = this.renderer.parentNode(this.elRef.nativeElement);\n const label = form?.querySelector('.ecl-form-label');\n if (label) {\n this.renderer.setAttribute(label, 'for', this.toggleId);\n }\n }\n}\n","<div eclMultiselectInput #eclMultiselectInput [inputPlaceholder]=\"mainInputPlaceholder()\" [selectedItemsLabels]=\"selectedItemsLabels()\"\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]=\"isSubmitOnApply() ? 'submit' : '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","import { computed, Directive, ElementRef, booleanAttribute, forwardRef, inject, input, contentChildren } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Directive used to decorate <option> and <optgroup> elements within a multiselect.\n * Adds support for value, label, disabled, selected states and styling.\n */\n@Directive({\n selector: 'optgroup[eclMultiselectOptgroup], option[eclMultiselectOption]',\n host: {\n '[attr.disabled]': 'disabled() || null',\n '[attr.selected]': 'selected() || null',\n '[class]': 'cssClasses()',\n },\n})\nexport class EclMultiselectOptionDirective extends ECLBaseDirective {\n\n /**\n * Nested option directives (used for optgroups).\n */\n readonly eclOptionItems = contentChildren(forwardRef(() => EclMultiselectOptionDirective));\n\n /**\n * Value assigned to the option.\n */\n readonly value = input<string>(undefined);\n\n /**\n * Label displayed for the option.\n */\n readonly label = input<string>(undefined);\n\n /**\n * Indicates that the option is disabled.\n */\n readonly disabled = input(false, { transform: booleanAttribute });\n\n /**\n * Indicates that the option is selected.\n */\n readonly selected = input(false, { transform: booleanAttribute });\n\n /**\n * Applies ECL checkbox styling class to the option.\n */\n protected readonly cssClasses = computed<string>(() =>\n super.getCssClasses('ecl-checkbox'));\n\n private readonly elRef = inject(ElementRef);\n\n /**\n * Returns true if this directive is applied to an <optgroup> element.\n */\n isOptGroup(): boolean {\n return this.elRef.nativeElement.nodeName === 'OPTGROUP';\n }\n}\n","import { isPlatformBrowser } from '@angular/common';\nimport { Component, computed, DoCheck, effect, ElementRef, Injector, IterableDiffer, IterableDiffers, OnDestroy, OnInit, PLATFORM_ID, Renderer2, ViewContainerRef, ViewEncapsulation, afterNextRender, booleanAttribute, forwardRef, inject, output, input, contentChildren } from '@angular/core';\nimport { NG_VALUE_ACCESSOR, NgControl } from '@angular/forms';\nimport { Subject } from 'rxjs';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclMultiselectDropdownComponent } from './ecl-multiselect-dropdown/ecl-multiselect-dropdown.component';\nimport { EclMultiselectOptionDirective } from './ecl-multiselect-option.directive';\n\n/**\n * Component representing a custom multiselect input using the ECL design system.\n *\n * Should be used on a native <select> element to enhance it with ECL multiselect behavior.\n * Replaces the original element with a custom dropdown rendered dynamically.\n */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'select[eclMultiselect]',\n templateUrl: 'ecl-multiselect.component.html',\n encapsulation: ViewEncapsulation.None,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => EclMultiselectComponent),\n multi: true,\n },\n ],\n host: {\n '[class]': 'cssClasses()',\n '[attr.disabled]': 'disabled() || null',\n },\n})\nexport class EclMultiselectComponent extends ECLBaseDirective implements DoCheck, OnInit, OnDestroy {\n\n /**\n * List of option directives projected into the component.\n */\n readonly eclOptionItems = contentChildren(forwardRef(() => EclMultiselectOptionDirective));\n\n /**\n * Defines the `aria-describedby` attribute for accessibility.\n */\n readonly ariaDescribedby = input<string | undefined>(undefined);\n\n /**\n * Sets the `id` attribute of the multiselect component.\n */\n readonly id = input<string | undefined>(undefined);\n\n /**\n * Label used for the toggle button that expands or collapses the dropdown.\n */\n readonly toggleLabel = input<string | undefined>(undefined);\n\n /**\n * Marks the multiselect as invalid.\n */\n readonly isInvalid = input(false, { transform: booleanAttribute });\n\n /**\n * Disables the multiselect component when set to true.\n */\n readonly disabled = input(false, { transform: booleanAttribute });\n\n /**\n * Emits an array of selected option values when the selection changes.\n */\n readonly eclChange = output<string[]>();\n\n /**\n * Enables the search box within the dropdown.\n */\n readonly hasSearchBox = input(true, { transform: booleanAttribute });\n\n /**\n * Displays the \"Select all\" option in the dropdown.\n */\n readonly hasSelectAll = input(true, { transform: booleanAttribute });\n\n /**\n * When true, the Apply button in the dropdown acts as a submit button (type=\"submit\").\n */\n readonly isSubmitOnApply = input(false, { transform: booleanAttribute });\n\n /**\n * Placeholder text to show in the multiselect input field when no options are selected.\n */\n readonly eclPlaceholder = input('Select item');\n\n /**\n * Multiselect size: 's' | 'm' | 'l'. Default is 'm'.\n */\n readonly eclSize = input('m');\n\n /**\n * Label for the selections counter, read by screen readers.\n * Accepts a translation key or plain text. Default: 'ecl.multiselect.SELECTED'.\n */\n readonly counterLabel = input('ecl.multiselect.SELECTED');\n\n private readonly SELECT_CONTAINER_CLASS = 'ecl-select__container';\n private readonly SELECT_CONTAINER_HIDDEN_CLASS = 'ecl-select__container--hidden';\n private readonly injector = inject(Injector);\n private readonly el = inject(ElementRef);\n private readonly viewContainerRef = inject(ViewContainerRef);\n private readonly differs = inject(IterableDiffers);\n private readonly renderer = inject(Renderer2);\n private readonly platformId = inject(PLATFORM_ID);\n private differ: IterableDiffer<EclMultiselectOptionDirective>;\n private multiselectComponent: EclMultiselectDropdownComponent;\n private hostEl: HTMLSelectElement;\n private hostParentEl: HTMLElement;\n private hostWrapperEl: HTMLElement;\n private multiselectComponentHtml: HTMLDivElement;\n private destroy$: Subject<boolean> = new Subject<boolean>();\n\n constructor() {\n super();\n this.differ = this.differs.find([]).create();\n // Keep the dynamically created dropdown in sync with this component's inputs.\n // The dropdown is created lazily in ngOnInit, so the sync is guarded on its\n // instance; once created, this effect re-applies whenever any of the inputs change.\n effect(() => {\n const dropdown = this.multiselectComponent;\n if (!dropdown) {\n return;\n }\n dropdown.mainInputPlaceholder.set(this.eclPlaceholder());\n dropdown.eclSize.set(this.eclSize());\n dropdown.disabled.set(this.disabled());\n dropdown.isInvalid.set(this.isInvalid());\n dropdown.hasSearchBox.set(this.hasSearchBox());\n dropdown.hasSelectAll.set(this.hasSelectAll());\n dropdown.isSubmitOnApply.set(this.isSubmitOnApply());\n dropdown.counterLabel.set(this.counterLabel());\n });\n afterNextRender(() => {\n this.attachOptions();\n if (this.hostParentEl != null) {\n this.hideOriginalSelectComponent();\n this.renderer.insertBefore(this.hostParentEl, this.multiselectComponentHtml, this.hostWrapperEl);\n this.setAriaLabelledBy();\n }\n });\n }\n\n ngDoCheck(): void {\n const diff = this.differ.diff(this.eclOptionItems());\n\n if (diff) {\n if (this.multiselectComponent) {\n this.multiselectComponent.multiOptionDirectives.set(Array.from(this.eclOptionItems()));\n }\n }\n }\n\n ngOnInit(): void {\n if (isPlatformBrowser(this.platformId)) {\n this.hostEl = this.getHostElement();\n this.hostParentEl = this.getHostParentElement(this.hostEl);\n this.hostWrapperEl = this.createHostWrapperContainer();\n this.multiselectComponentHtml = this.createMultiselectComponent();\n }\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n }\n\n /**\n * CSS classes applied to the host element.\n */\n protected readonly cssClasses = computed<string>(() =>\n super.getCssClasses('ecl-select'));\n\n private hideOriginalSelectComponent(): void {\n this.hostParentEl.replaceChild(this.hostWrapperEl, this.hostEl);\n this.hostWrapperEl.appendChild(this.hostEl);\n this.renderer.addClass(this.hostWrapperEl, this.SELECT_CONTAINER_HIDDEN_CLASS);\n this.renderer.setAttribute(this.hostWrapperEl, 'tabindex', '-1');\n this.renderer.setAttribute(this.hostEl, 'tabindex', '-1');\n }\n\n private createHostWrapperContainer(): HTMLElement {\n const wrapperContainer = this.renderer.createElement('div');\n this.renderer.addClass(wrapperContainer, this.SELECT_CONTAINER_CLASS);\n this.renderer.addClass(wrapperContainer, `${this.SELECT_CONTAINER_CLASS}--${this.eclSize()}`);\n return wrapperContainer;\n }\n\n private getHostElement(): HTMLSelectElement {\n return this.el.nativeElement;\n }\n\n private getHostParentElement(hostEl: HTMLSelectElement): HTMLElement {\n return hostEl.parentElement;\n }\n\n private createMultiselectComponent(): HTMLDivElement {\n const ngControl = this.injector.get(NgControl, undefined, { optional: true });\n const multiselect = this.viewContainerRef.createComponent(EclMultiselectDropdownComponent);\n const dropdown = multiselect.instance;\n this.multiselectComponent = dropdown;\n dropdown.eclChange.subscribe((evt) => {\n this.eclChange.emit(evt);\n });\n dropdown.mainInputPlaceholder.set(this.eclPlaceholder());\n\n const ariaDescribedby = this.ariaDescribedby();\n if (ariaDescribedby !== undefined) {\n dropdown.ariaDescribedby.set(ariaDescribedby);\n }\n const toggleLabel = this.toggleLabel();\n if (toggleLabel !== undefined) {\n dropdown.toggleLabel.set(toggleLabel);\n }\n const id = this.id();\n if (id !== undefined) {\n dropdown.id.set(id);\n }\n dropdown.eclSize.set(this.eclSize());\n if (ngControl) {\n ngControl.valueAccessor = dropdown;\n }\n dropdown.disabled.set(this.disabled());\n dropdown.isInvalid.set(this.isInvalid());\n dropdown.hasSearchBox.set(this.hasSearchBox());\n dropdown.hasSelectAll.set(this.hasSelectAll());\n dropdown.isSubmitOnApply.set(this.isSubmitOnApply());\n dropdown.counterLabel.set(this.counterLabel());\n return (multiselect.location as ElementRef<HTMLDivElement>).nativeElement;\n }\n\n private setAriaLabelledBy(): void {\n const hostSelect: HTMLElement = this.el.nativeElement;\n const formGroup = hostSelect.closest('.ecl-form-group') as HTMLElement | null;\n if (!formGroup) return;\n\n const label = formGroup.querySelector('.ecl-form-label') as HTMLElement | null;\n if (!label) return;\n\n if (!label.id) {\n const newLabelId = `ecl-select-label-${crypto.randomUUID()}`;\n this.renderer.setAttribute(label, 'id', newLabelId);\n }\n\n if (!hostSelect.id) {\n const newSelectId = `ecl-select-input-${crypto.randomUUID()}`;\n this.renderer.setAttribute(hostSelect, 'id', newSelectId);\n }\n\n const labelledBy = `${label.id} ${hostSelect.id}`.trim();\n this.renderer.setAttribute(hostSelect, 'aria-labelledby', labelledBy);\n }\n\n private attachOptions(): void {\n setTimeout(() => {\n this.multiselectComponent.multiOptionDirectives.set(Array.from(this.eclOptionItems()));\n });\n }\n}\n","<ng-content></ng-content>\n","import { BoldTextPipe } from './boldText.pipe';\nimport { EclMultiselectDropdownComponent } from './ecl-multiselect-dropdown/ecl-multiselect-dropdown.component';\nimport { EclMultiselectInputComponent } from './ecl-multiselect-input/ecl-multiselect-input.component';\nimport { EclMultiselectOptgroupComponent } from './ecl-multiselect-optgroup/ecl-multiselect-optgroup.component';\nimport { EclMultiselectOptionDirective } from './ecl-multiselect-option.directive';\nimport { EclMultiselectOptionComponent } from './ecl-multiselect-option/ecl-multiselect-option.component';\nimport { EclMultiselectComponent } from './ecl-multiselect.component';\n\nexport * from './ecl-multiselect.component';\nexport * from './ecl-multiselect-dropdown/ecl-multiselect-dropdown.component';\nexport * from './ecl-multiselect-input/ecl-multiselect-input.component';\nexport * from './ecl-multiselect-optgroup/ecl-multiselect-optgroup.component';\nexport * from './ecl-multiselect-option/ecl-multiselect-option.component';\nexport * from './ecl-multiselect-option.directive';\nexport * from './models/ecl-multiselect-option.model';\nexport * from './events/index';\nexport * from './boldText.pipe';\n\nexport const EUI_ECL_MULTISELECT = [\n EclMultiselectComponent,\n EclMultiselectOptionDirective,\n EclMultiselectOptionComponent,\n EclMultiselectInputComponent,\n EclMultiselectDropdownComponent,\n EclMultiselectOptgroupComponent,\n BoldTextPipe,\n] as const;","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eui-ecl-components-ecl-navigation-list.mjs","sources":["../../components/ecl-navigation-list/ecl-navigation-list.component.ts","../../components/ecl-navigation-list/ecl-navigation-list.component.html","../../components/ecl-navigation-list/ecl-navigation-list-item.component.ts","../../components/ecl-navigation-list/ecl-navigation-list-item.component.html","../../components/ecl-navigation-list/ecl-navigation-list-picture.directive.ts","../../components/ecl-navigation-list/index.ts","../../components/ecl-navigation-list/eui-ecl-components-ecl-navigation-list.ts"],"sourcesContent":["import { Component, booleanAttribute, computed, numberAttribute, input } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Navigation lists provide users with a quick way to scan through items and access the information they are looking for.\n * It can offer a quick description of the parent page and/or display child pages that belong to it.\n */\n@Component({\n selector: 'ecl-navigation-list',\n templateUrl: 'ecl-navigation-list.component.html',\n host: {\n '[class]': 'cssClasses()',\n },\n})\nexport class EclNavigationListComponent extends ECLBaseDirective {\n\n /**\n * Property that describes how many columns the navigation list has. Default value is 2.\n */\n readonly columns = input(2, { transform: numberAttribute });\n /**\n * Property that describes if each item will have a border. Default is 'true'.\n */\n readonly hasBorders = input(true, { transform: booleanAttribute });\n\n protected readonly cssClasses = computed<string>(() =>\n [super.getCssClasses('ecl-navigation-list'), this.columns() > 1 ? `ecl-navigation-list--col-${this.columns()}` : ''].join(' ').trim());\n}\n","<ng-content></ng-content>\n","import { AfterContentInit, Component, computed, forwardRef, inject, input, contentChild } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclContentBlockComponent } from '@eui/ecl/components/ecl-content-block';\nimport { EclNavigationListComponent } from './ecl-navigation-list.component';\n\n/**\n * Component that represents one navigation list item, has title and image and/or list of links/secondary links.\n */\n@Component({\n selector: 'ecl-navigation-list-item',\n templateUrl: 'ecl-navigation-list-item.component.html',\n host: {\n '[attr.role]': 'role',\n '[class]': 'cssClasses()',\n },\n})\nexport class EclNavigationListItemComponent extends ECLBaseDirective implements AfterContentInit {\n\n /**\n * The role of the underlying HTML element is 'article', should not be changed.\n */\n role = 'article';\n /**\n * Different variants, that add styling for different type of displaing the picture, used in the list item.\n */\n readonly variant = input<'illustration' | 'image-as-illustration' | ''>('');\n\n /**\n * Whether this item renders a border. Derived from the parent navigation list's\n * 'hasBorders' input; defaults to 'true' when the item is used without a parent.\n */\n readonly hasBorder = computed(() => this.parent?.hasBorders() ?? true);\n\n readonly eclContentBlock = contentChild(forwardRef(() => EclContentBlockComponent));\n\n protected readonly cssClasses = computed<string>(() => {\n const variant = this.variant();\n return [\n super.getCssClasses('ecl-navigation-list__item'),\n this.hasBorder() ? '' : 'ecl-navigation-list__item--no-border',\n variant !== '' ? `ecl-navigation-list__item--${variant}` : '',\n ].join(' ').trim();\n });\n\n private readonly parent = inject(EclNavigationListComponent, { optional: true });\n\n ngAfterContentInit(): void {\n // Adds specific class to the conten-block content child, if it exists. \n const eclContentBlock = this.eclContentBlock();\n if (eclContentBlock) {\n eclContentBlock.class.set('ecl-navigation-list__content-block');\n }\n }\n}\n","<ng-content></ng-content>\n","import { computed, Directive } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * This directive adds specific class to the picture element, used in 'ecl-navigation-list-item'.\n */\n@Directive({\n selector: 'picture[eclNavigationListPicture]',\n host: {\n '[class]': 'cssClasses()',\n },\n})\nexport class EclNavigationListPictureDirective extends ECLBaseDirective {\n protected readonly cssClasses = computed<string>(() =>\n super.getCssClasses('ecl-picture ecl-navigation-list__picture'));\n}\n\n/**\n * This directive adds specific class to the image element, used in 'ecl-navigation-list-item'.\n */\n@Directive({\n selector: 'img[eclNavigationListImage]',\n host: {\n '[class]': 'cssClasses()',\n },\n})\nexport class EclNavigationListImageDirective extends ECLBaseDirective {\n protected readonly cssClasses = computed<string>(() =>\n super.getCssClasses('ecl-navigation-list__image'));\n}\n","import { EclNavigationListItemComponent } from './ecl-navigation-list-item.component';\nimport { EclNavigationListImageDirective, EclNavigationListPictureDirective } from './ecl-navigation-list-picture.directive';\nimport { EclNavigationListComponent } from './ecl-navigation-list.component';\n\nexport * from './ecl-navigation-list.component';\nexport * from './ecl-navigation-list-item.component';\nexport * from './ecl-navigation-list-picture.directive';\n\nexport const EUI_ECL_NAVIGATION_LIST = [\n EclNavigationListComponent,\n EclNavigationListItemComponent,\n EclNavigationListImageDirective,\n EclNavigationListPictureDirective,\n] as const;","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"eui-ecl-components-ecl-navigation-list.mjs","sources":["../../components/ecl-navigation-list/ecl-navigation-list.component.ts","../../components/ecl-navigation-list/ecl-navigation-list.component.html","../../components/ecl-navigation-list/ecl-navigation-list-item.component.ts","../../components/ecl-navigation-list/ecl-navigation-list-item.component.html","../../components/ecl-navigation-list/ecl-navigation-list-picture.directive.ts","../../components/ecl-navigation-list/index.ts","../../components/ecl-navigation-list/eui-ecl-components-ecl-navigation-list.ts"],"sourcesContent":["import { Component, booleanAttribute, computed, numberAttribute, input } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Navigation lists provide users with a quick way to scan through items and access the information they are looking for.\n * It can offer a quick description of the parent page and/or display child pages that belong to it.\n */\n@Component({\n selector: 'ecl-navigation-list',\n templateUrl: 'ecl-navigation-list.component.html',\n host: {\n '[class]': 'cssClasses()',\n },\n})\nexport class EclNavigationListComponent extends ECLBaseDirective {\n\n /**\n * Property that describes how many columns the navigation list has. Default value is 2.\n */\n readonly columns = input(2, { transform: numberAttribute });\n /**\n * Property that describes if each item will have a border. Default is 'true'.\n */\n readonly hasBorders = input(true, { transform: booleanAttribute });\n\n protected readonly cssClasses = computed<string>(() =>\n [super.getCssClasses('ecl-navigation-list'), this.columns() > 1 ? `ecl-navigation-list--col-${this.columns()}` : ''].join(' ').trim());\n}\n","<ng-content></ng-content>\n","import { AfterContentInit, Component, computed, forwardRef, inject, input, contentChild } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclContentBlockComponent } from '@eui/ecl/components/ecl-content-block';\nimport { EclNavigationListComponent } from './ecl-navigation-list.component';\n\n/**\n * Component that represents one navigation list item, has title and image and/or list of links/secondary links.\n */\n@Component({\n selector: 'ecl-navigation-list-item',\n templateUrl: 'ecl-navigation-list-item.component.html',\n host: {\n '[attr.role]': 'role',\n '[class]': 'cssClasses()',\n },\n})\nexport class EclNavigationListItemComponent extends ECLBaseDirective implements AfterContentInit {\n\n /**\n * The role of the underlying HTML element is 'article', should not be changed.\n */\n role = 'article';\n /**\n * Different variants, that add styling for different type of displaing the picture, used in the list item.\n */\n readonly variant = input<'illustration' | 'image-as-illustration' | ''>('');\n\n /**\n * Whether this item renders a border. Derived from the parent navigation list's\n * 'hasBorders' input; defaults to 'true' when the item is used without a parent.\n */\n readonly hasBorder = computed(() => this.parent?.hasBorders() ?? true);\n\n readonly eclContentBlock = contentChild(forwardRef(() => EclContentBlockComponent));\n\n protected readonly cssClasses = computed<string>(() => {\n const variant = this.variant();\n return [\n super.getCssClasses('ecl-navigation-list__item'),\n this.hasBorder() ? '' : 'ecl-navigation-list__item--no-border',\n variant !== '' ? `ecl-navigation-list__item--${variant}` : '',\n ].join(' ').trim();\n });\n\n private readonly parent = inject(EclNavigationListComponent, { optional: true });\n\n ngAfterContentInit(): void {\n // Adds specific class to the conten-block content child, if it exists. \n const eclContentBlock = this.eclContentBlock();\n if (eclContentBlock) {\n eclContentBlock.class.set('ecl-navigation-list__content-block');\n }\n }\n}\n","<ng-content></ng-content>\n","import { computed, Directive } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * This directive adds specific class to the picture element, used in 'ecl-navigation-list-item'.\n */\n@Directive({\n selector: 'picture[eclNavigationListPicture]',\n host: {\n '[class]': 'cssClasses()',\n },\n})\nexport class EclNavigationListPictureDirective extends ECLBaseDirective {\n protected readonly cssClasses = computed<string>(() =>\n super.getCssClasses('ecl-picture ecl-navigation-list__picture'));\n}\n\n/**\n * This directive adds specific class to the image element, used in 'ecl-navigation-list-item'.\n */\n@Directive({\n selector: 'img[eclNavigationListImage]',\n host: {\n '[class]': 'cssClasses()',\n },\n})\nexport class EclNavigationListImageDirective extends ECLBaseDirective {\n protected readonly cssClasses = computed<string>(() =>\n super.getCssClasses('ecl-navigation-list__image'));\n}\n","import { EclNavigationListItemComponent } from './ecl-navigation-list-item.component';\nimport { EclNavigationListImageDirective, EclNavigationListPictureDirective } from './ecl-navigation-list-picture.directive';\nimport { EclNavigationListComponent } from './ecl-navigation-list.component';\n\nexport * from './ecl-navigation-list.component';\nexport * from './ecl-navigation-list-item.component';\nexport * from './ecl-navigation-list-picture.directive';\n\nexport const EUI_ECL_NAVIGATION_LIST = [\n EclNavigationListComponent,\n EclNavigationListItemComponent,\n EclNavigationListImageDirective,\n EclNavigationListPictureDirective,\n] as const;","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|