@eui/ecl 22.0.0-alpha.32 → 22.0.0-alpha.34
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 +50 -0
- package/docs/components/EclAccordionSummaryComponent.html +1 -1
- package/docs/components/EclAddToCalendarComponent.html +1 -1
- package/docs/components/EclAnimatedNumbersComponent.html +1 -1
- package/docs/components/EclAnimatedNumbersItemComponent.html +1 -1
- package/docs/components/EclAppComponent.html +1 -1
- package/docs/components/EclBannerComponent.html +1 -1
- package/docs/components/EclBlockquoteComponent.html +1 -1
- package/docs/components/EclBreadcrumbComponent.html +1 -1
- package/docs/components/EclBreadcrumbSegmentComponent.html +1 -1
- package/docs/components/EclButtonComponent.html +1 -1
- package/docs/components/EclCardBodyComponent.html +1 -1
- package/docs/components/EclCardComponent.html +1 -1
- package/docs/components/EclCarouselComponent.html +1 -1
- package/docs/components/EclCarouselItemComponent.html +1 -1
- package/docs/components/EclCategoryFilterComponent.html +1 -1
- package/docs/components/EclCategoryFilterItemComponent.html +1 -1
- package/docs/components/EclCategoryFilterListComponent.html +1 -1
- package/docs/components/EclCheckboxHelpComponent.html +1 -1
- package/docs/components/EclCheckboxLabelComponent.html +1 -1
- package/docs/components/EclContentBlockComponent.html +1 -1
- package/docs/components/EclContentItemComponent.html +1 -1
- package/docs/components/EclDateBlockComponent.html +1 -1
- package/docs/components/EclDescriptionListDefinitionComponent.html +1 -1
- package/docs/components/EclExpandableComponent.html +1 -1
- package/docs/components/EclFactFiguresComponent.html +1 -1
- package/docs/components/EclFactFiguresItemComponent.html +1 -1
- package/docs/components/EclFactFiguresViewAllComponent.html +1 -1
- package/docs/components/EclFeaturedComponent.html +1 -1
- package/docs/components/EclFeaturedItemComponent.html +1 -1
- package/docs/components/EclFeaturedItemDescriptionComponent.html +1 -1
- package/docs/components/EclFileComponent.html +1 -1
- package/docs/components/EclFileItemComponent.html +1 -1
- package/docs/components/EclFileItemsComponent.html +1 -1
- package/docs/components/EclFileListsComponent.html +1 -1
- package/docs/components/EclFormGroupComponent.html +1 -1
- package/docs/components/EclFormLabelComponent.html +1 -1
- package/docs/components/EclGalleryComponent.html +1 -1
- package/docs/components/EclGalleryFooterComponent.html +1 -1
- package/docs/components/EclGalleryItemComponent.html +1 -1
- package/docs/components/EclHighlightBoxComponent.html +1 -1
- package/docs/components/EclHighlightedSearchComponent.html +1 -1
- package/docs/components/EclIconComponent.html +1 -1
- package/docs/components/EclIndicatorComponent-1.html +1 -1
- package/docs/components/EclIndicatorComponent.html +1 -1
- package/docs/components/EclInpageNavigationComponent.html +1 -1
- package/docs/components/EclInpageNavigationItemComponent.html +1 -1
- package/docs/components/EclLayoutWrapperComponent.html +1 -1
- package/docs/components/EclListIllustrationComponent.html +1 -1
- package/docs/components/EclListIllustrationItemComponent.html +1 -1
- package/docs/components/EclLoadingIndicatorComponent.html +1 -1
- package/docs/components/EclMediaContainerComponent.html +1 -1
- package/docs/components/EclMegaMenuComponent.html +1 -1
- package/docs/components/EclMegaMenuFeaturedComponent.html +1 -1
- package/docs/components/EclMegaMenuInfoComponent.html +1 -1
- package/docs/components/EclMegaMenuItemComponent.html +1 -1
- package/docs/components/EclMegaMenuSubitemComponent.html +1 -1
- package/docs/components/EclMenuComponent.html +1 -1
- package/docs/components/EclMenuItemComponent.html +1 -1
- package/docs/components/EclMenuMegaComponent.html +1 -1
- package/docs/components/EclMenuMegaItemComponent.html +1 -1
- package/docs/components/EclModalBodyComponent.html +1 -1
- package/docs/components/EclModalComponent.html +1 -1
- package/docs/components/EclModalFooterComponent.html +1 -1
- package/docs/components/EclModalHeaderComponent.html +1 -1
- package/docs/components/EclMultiselectComponent.html +1 -1
- package/docs/components/EclMultiselectDropdownComponent.html +1 -1
- package/docs/components/EclMultiselectInputComponent.html +1 -1
- package/docs/components/EclMultiselectOptgroupComponent.html +1 -1
- package/docs/components/EclMultiselectOptionComponent.html +1 -1
- package/docs/components/EclNavigationListComponent.html +1 -1
- package/docs/components/EclNavigationListItemComponent.html +1 -1
- package/docs/components/EclNewsTickerComponent.html +1 -1
- package/docs/components/EclNewsTickerItemComponent.html +1 -1
- package/docs/components/EclNotificationComponent.html +1 -1
- package/docs/components/EclPageHeaderComponent.html +1 -1
- package/docs/components/EclPageHeaderDescriptionContainerComponent.html +1 -1
- package/docs/components/EclPageHeaderExpandableComponent.html +1 -1
- package/docs/components/EclPageHeaderNextComponent.html +1 -1
- package/docs/components/EclPageHeaderSectionComponent.html +1 -1
- package/docs/components/EclPageHeaderSectionInfoComponent.html +1 -1
- package/docs/components/EclPageSummaryComponent.html +1 -1
- package/docs/components/EclPaginationComponent.html +1 -1
- package/docs/components/EclPaginationItemComponent.html +1 -1
- package/docs/components/EclPopoverComponent.html +1 -1
- package/docs/components/EclQuizCardComponent.html +1 -1
- package/docs/components/EclQuizComponent.html +1 -1
- package/docs/components/EclRadioHelpComponent.html +1 -1
- package/docs/components/EclRadioLabelComponent.html +1 -1
- package/docs/components/EclRangeBubbleComponent.html +1 -1
- package/docs/components/EclRangeValueComponent.html +1 -1
- package/docs/components/EclRatingFieldComponent.html +1 -1
- package/docs/components/EclSearchFormComponent.html +1 -1
- package/docs/components/EclSelectContainerComponent.html +5 -78
- package/docs/components/EclSiteFooterComponent.html +2 -2
- package/docs/components/EclSiteFooterCoownerComponent.html +5 -40
- package/docs/components/EclSiteFooterCoreComponent.html +5 -40
- package/docs/components/EclSiteFooterFeedbackComponent.html +1 -1
- package/docs/components/EclSiteFooterFixedContentEUComponent.html +1 -1
- package/docs/components/EclSiteFooterRowCommonComponent.html +5 -40
- package/docs/components/EclSiteHeaderActionComponent.html +1 -1
- package/docs/components/EclSiteHeaderBannerTopComponent.html +1 -1
- package/docs/components/EclSiteHeaderComponent.html +1 -1
- package/docs/components/EclSiteHeaderCustomActionComponent.html +1 -1
- package/docs/components/EclSiteHeaderEnvironmentComponent.html +1 -1
- package/docs/components/EclSiteHeaderLanguageComponent.html +1 -1
- package/docs/components/EclSiteHeaderLanguagePopoverComponent.html +1 -1
- package/docs/components/EclSiteHeaderLoginComponent.html +1 -1
- package/docs/components/EclSiteHeaderNotificationComponent.html +1 -1
- package/docs/components/EclSiteHeaderSearchComponent.html +1 -1
- package/docs/components/EclSloganTickerComponent.html +1 -1
- package/docs/components/EclSocialMediaFollowComponent.html +1 -1
- package/docs/components/EclSocialMediaFollowItemComponent.html +1 -1
- package/docs/components/EclSplashPageComponent.html +1 -1
- package/docs/components/EclSplashPageLanguageCategoryComponent.html +1 -1
- package/docs/components/EclSplashPageLanguageContainerComponent.html +1 -1
- package/docs/components/EclSplashPageLanguageLinkComponent.html +1 -1
- package/docs/components/EclSpotlightComponent.html +1 -1
- package/docs/components/EclSpotlightLinkComponent.html +1 -1
- package/docs/components/EclStickyContainerComponent.html +1 -1
- package/docs/components/EclStoryCardComponent.html +1 -1
- package/docs/components/EclStoryCardGridDetailsComponent.html +1 -1
- package/docs/components/EclStoryCardItemComponent.html +1 -1
- package/docs/components/EclTabComponent.html +1 -1
- package/docs/components/EclTabLabelComponent.html +1 -1
- package/docs/components/EclTableSortButtonComponent.html +1 -1
- package/docs/components/EclTabsComponent.html +1 -1
- package/docs/components/EclTagComponent.html +1 -1
- package/docs/components/EclTextMediaComponent.html +1 -1
- package/docs/components/EclTimelineComponent.html +1 -1
- package/docs/components/EclTimelineItemComponent.html +1 -1
- package/docs/components/EclTimelineItemTogglerComponent.html +1 -1
- package/docs/directives/EclSelectDirective.html +0 -122
- package/docs/directives/EclSiteFooterColumnDirective.html +0 -104
- package/docs/directives/EclSiteFooterCoownerItemDirective.html +0 -39
- package/docs/directives/EclSiteFooterCoownerListDirective.html +0 -85
- package/docs/directives/EclSiteFooterDescriptionDirective.html +0 -104
- package/docs/directives/EclSiteFooterDescriptionNameDirective.html +0 -104
- package/docs/directives/EclSiteFooterListItemDirective.html +0 -104
- package/docs/directives/EclSiteFooterRowDirective.html +0 -104
- package/docs/directives/EclSiteFooterSectionDirective.html +0 -39
- package/docs/directives/EclSiteFooterSocialMediaDirective.html +0 -104
- package/docs/directives/EclSiteFooterTitleDirective.html +0 -133
- package/docs/directives/EclSiteFooterTitleLinkDirective.html +0 -104
- package/docs/js/search/search_index.js +2 -2
- package/docs/json/EclSiteFooterComponent.md +1 -1
- package/docs/json/documentation.json +138 -621
- package/docs/llms.txt +2 -27
- package/docs/properties.html +1 -1
- package/fesm2022/eui-ecl-components-ecl-select.mjs +16 -22
- package/fesm2022/eui-ecl-components-ecl-select.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-site-footer.mjs +48 -116
- package/fesm2022/eui-ecl-components-ecl-site-footer.mjs.map +1 -1
- package/package.json +1 -1
- package/types/eui-ecl-components-ecl-select.d.ts +1 -1
- package/types/eui-ecl-components-ecl-select.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-site-footer.d.ts +1 -10
- package/types/eui-ecl-components-ecl-site-footer.d.ts.map +1 -1
package/docs/llms.txt
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# eui documentation
|
|
2
2
|
|
|
3
|
-
> Generated by compodoc 2.0.0 at 2026-09-
|
|
3
|
+
> Generated by compodoc 2.0.0 at 2026-09-30T12:12:20.132Z, llm-md export.
|
|
4
4
|
|
|
5
5
|
## Modules
|
|
6
6
|
|
|
@@ -2413,7 +2413,7 @@ Methods:
|
|
|
2413
2413
|
### EclSiteFooterComponent
|
|
2414
2414
|
|
|
2415
2415
|
File: `packages/ecl/components/ecl-site-footer/ecl-site-footer.component.ts`
|
|
2416
|
-
Selector: `footer[eclSiteFooter]
|
|
2416
|
+
Selector: `footer[eclSiteFooter]`
|
|
2417
2417
|
|
|
2418
2418
|
Description: The site footer component content provides supplementary information such as a sitemap, copyright and legal notices, privacy and accessibility statements, social media and contact information as well as various links to other important sections within the EC ecosystem.
|
|
2419
2419
|
|
|
@@ -5537,9 +5537,6 @@ Inputs:
|
|
|
5537
5537
|
- `e2eAttr: any`
|
|
5538
5538
|
- `tabindex: number`
|
|
5539
5539
|
|
|
5540
|
-
Properties:
|
|
5541
|
-
- `cmpClass: unknown = true`
|
|
5542
|
-
|
|
5543
5540
|
Methods:
|
|
5544
5541
|
- `getCssClasses(rootClass: string): string`
|
|
5545
5542
|
|
|
@@ -5574,7 +5571,6 @@ Inputs:
|
|
|
5574
5571
|
- `tabindex: number`
|
|
5575
5572
|
|
|
5576
5573
|
Properties:
|
|
5577
|
-
- `className: unknown = true`
|
|
5578
5574
|
- `eclFooterCoownerListItems: unknown = contentChildren(forwardRef(() => EclSiteFooterCoownerItemDirective))`
|
|
5579
5575
|
|
|
5580
5576
|
Methods:
|
|
@@ -5592,9 +5588,6 @@ Inputs:
|
|
|
5592
5588
|
- `e2eAttr: any`
|
|
5593
5589
|
- `tabindex: number`
|
|
5594
5590
|
|
|
5595
|
-
Properties:
|
|
5596
|
-
- `cmpClass: unknown = true`
|
|
5597
|
-
|
|
5598
5591
|
Methods:
|
|
5599
5592
|
- `getCssClasses(rootClass: string): string`
|
|
5600
5593
|
|
|
@@ -5610,9 +5603,6 @@ Inputs:
|
|
|
5610
5603
|
- `e2eAttr: any`
|
|
5611
5604
|
- `tabindex: number`
|
|
5612
5605
|
|
|
5613
|
-
Properties:
|
|
5614
|
-
- `cmpClass: unknown = true`
|
|
5615
|
-
|
|
5616
5606
|
Methods:
|
|
5617
5607
|
- `getCssClasses(rootClass: string): string`
|
|
5618
5608
|
|
|
@@ -5651,9 +5641,6 @@ Inputs:
|
|
|
5651
5641
|
- `e2eAttr: any`
|
|
5652
5642
|
- `tabindex: number`
|
|
5653
5643
|
|
|
5654
|
-
Properties:
|
|
5655
|
-
- `cmpClass: unknown = true`
|
|
5656
|
-
|
|
5657
5644
|
Methods:
|
|
5658
5645
|
- `getCssClasses(rootClass: string): string`
|
|
5659
5646
|
|
|
@@ -5690,9 +5677,6 @@ Inputs:
|
|
|
5690
5677
|
- `e2eAttr: any`
|
|
5691
5678
|
- `tabindex: number`
|
|
5692
5679
|
|
|
5693
|
-
Properties:
|
|
5694
|
-
- `cmpClass: unknown = true`
|
|
5695
|
-
|
|
5696
5680
|
Methods:
|
|
5697
5681
|
- `getCssClasses(rootClass: string): string`
|
|
5698
5682
|
|
|
@@ -5724,9 +5708,6 @@ Inputs:
|
|
|
5724
5708
|
- `e2eAttr: any`
|
|
5725
5709
|
- `tabindex: number`
|
|
5726
5710
|
|
|
5727
|
-
Properties:
|
|
5728
|
-
- `cmpClass: unknown = true`
|
|
5729
|
-
|
|
5730
5711
|
Methods:
|
|
5731
5712
|
- `getCssClasses(rootClass: string): string`
|
|
5732
5713
|
|
|
@@ -5743,9 +5724,6 @@ Inputs:
|
|
|
5743
5724
|
- `e2eAttr: any`
|
|
5744
5725
|
- `tabindex: number`
|
|
5745
5726
|
|
|
5746
|
-
Properties:
|
|
5747
|
-
- `cmpClass: unknown = true`
|
|
5748
|
-
|
|
5749
5727
|
Methods:
|
|
5750
5728
|
- `getCssClasses(rootClass: string): string`
|
|
5751
5729
|
|
|
@@ -5761,9 +5739,6 @@ Inputs:
|
|
|
5761
5739
|
- `e2eAttr: any`
|
|
5762
5740
|
- `tabindex: number`
|
|
5763
5741
|
|
|
5764
|
-
Properties:
|
|
5765
|
-
- `cmpClass: unknown = true`
|
|
5766
|
-
|
|
5767
5742
|
Methods:
|
|
5768
5743
|
- `getCssClasses(rootClass: string): string`
|
|
5769
5744
|
|
package/docs/properties.html
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { model, inject,
|
|
2
|
+
import { model, inject, Component, input, booleanAttribute, ElementRef, Injector, ViewContainerRef, Renderer2, PLATFORM_ID, runInInjectionContext, afterNextRender, Directive } from '@angular/core';
|
|
3
3
|
import { ECLBaseDirective, EclThemeService } from '@eui/ecl/core';
|
|
4
4
|
import * as i1 from '@eui/ecl/components/ecl-icon';
|
|
5
5
|
import { EUI_ECL_ICON } from '@eui/ecl/components/ecl-icon';
|
|
@@ -60,7 +60,7 @@ class EclSelectContainerComponent extends ECLBaseDirective {
|
|
|
60
60
|
}
|
|
61
61
|
}
|
|
62
62
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EclSelectContainerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
63
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.1.2", type: EclSelectContainerComponent, isStandalone: true, selector: "ecl-select-container", inputs: { eclSize: { classPropertyName: "eclSize", publicName: "eclSize", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, isInvalid: { classPropertyName: "isInvalid", publicName: "isInvalid", isSignal: true, isRequired: false, transformFunction: null }, toggleLabel: { classPropertyName: "toggleLabel", publicName: "toggleLabel", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { eclSize: "eclSizeChange", disabled: "disabledChange", isInvalid: "isInvalidChange", toggleLabel: "toggleLabelChange" }, host: { properties: { "class": "
|
|
63
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.1.2", type: EclSelectContainerComponent, isStandalone: true, selector: "ecl-select-container", inputs: { eclSize: { classPropertyName: "eclSize", publicName: "eclSize", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, isInvalid: { classPropertyName: "isInvalid", publicName: "isInvalid", isSignal: true, isRequired: false, transformFunction: null }, toggleLabel: { classPropertyName: "toggleLabel", publicName: "toggleLabel", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { eclSize: "eclSizeChange", disabled: "disabledChange", isInvalid: "isInvalidChange", toggleLabel: "toggleLabelChange" }, host: { properties: { "class": "cssClasses" } }, usesInheritance: true, ngImport: i0, template: "<div class=\"ecl-select__icon\">\n <button eclButton variant=\"tertiary\" tabindex=\"-1\" isIconOnly>\n <span eclButtonLabel>{{ toggleLabel() || 'ecl.multiselect.TOGGLE.DROPDOWN' | translate }}</span>\n <ecl-icon icon=\"corner-arrow\" [size]=\"iconSize\" transform=\"rotate-180\"></ecl-icon>\n </button>\n</div>\n", dependencies: [{ kind: "component", type: i1.EclIconComponent, selector: "ecl-icon", inputs: ["iconSet", "icon", "size", "color", "transform", "ariaLabelledby", "role", "title", "ariaHidden", "focusable", "isFlipHorizontal"] }, { kind: "component", type: i2.EclButtonComponent, selector: "button[eclButton], button[ecl-button], a[eclButton]", inputs: ["isIconOnly", "variant", "eclStyle", "size", "containerStyleClass"] }, { kind: "directive", type: i2.EclButtonLabelDirective, selector: "[eclButtonLabel]" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
|
|
64
64
|
}
|
|
65
65
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EclSelectContainerComponent, decorators: [{
|
|
66
66
|
type: Component,
|
|
@@ -68,11 +68,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.2", ngImpor
|
|
|
68
68
|
...EUI_ECL_ICON,
|
|
69
69
|
TranslatePipe,
|
|
70
70
|
...EUI_ECL_BUTTON,
|
|
71
|
-
],
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
}] } });
|
|
71
|
+
], host: {
|
|
72
|
+
'[class]': 'cssClasses',
|
|
73
|
+
}, template: "<div class=\"ecl-select__icon\">\n <button eclButton variant=\"tertiary\" tabindex=\"-1\" isIconOnly>\n <span eclButtonLabel>{{ toggleLabel() || 'ecl.multiselect.TOGGLE.DROPDOWN' | translate }}</span>\n <ecl-icon icon=\"corner-arrow\" [size]=\"iconSize\" transform=\"rotate-180\"></ecl-icon>\n </button>\n</div>\n" }]
|
|
74
|
+
}], propDecorators: { eclSize: [{ type: i0.Input, args: [{ isSignal: true, alias: "eclSize", required: false }] }, { type: i0.Output, args: ["eclSizeChange"] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }, { type: i0.Output, args: ["disabledChange"] }], isInvalid: [{ type: i0.Input, args: [{ isSignal: true, alias: "isInvalid", required: false }] }, { type: i0.Output, args: ["isInvalidChange"] }], toggleLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "toggleLabel", required: false }] }, { type: i0.Output, args: ["toggleLabelChange"] }] } });
|
|
76
75
|
|
|
77
76
|
/**
|
|
78
77
|
* Directive that enhances a native <select> element with ECL styling
|
|
@@ -204,24 +203,19 @@ class EclSelectDirective extends ECLBaseDirective {
|
|
|
204
203
|
});
|
|
205
204
|
}
|
|
206
205
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EclSelectDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
|
|
207
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.1.2", type: EclSelectDirective, isStandalone: true, selector: "select[eclSelect]", inputs: { disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, isInvalid: { classPropertyName: "isInvalid", publicName: "isInvalid", isSignal: true, isRequired: false, transformFunction: null }, toggleLabel: { classPropertyName: "toggleLabel", publicName: "toggleLabel", isSignal: true, isRequired: false, transformFunction: null }, eclSize: { classPropertyName: "eclSize", publicName: "eclSize", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "
|
|
206
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.1.2", type: EclSelectDirective, isStandalone: true, selector: "select[eclSelect]", inputs: { disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, isInvalid: { classPropertyName: "isInvalid", publicName: "isInvalid", isSignal: true, isRequired: false, transformFunction: null }, toggleLabel: { classPropertyName: "toggleLabel", publicName: "toggleLabel", isSignal: true, isRequired: false, transformFunction: null }, eclSize: { classPropertyName: "eclSize", publicName: "eclSize", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "cssClasses", "attr.disabled": "isDisabled", "class.ecl-select--invalid": "isInvalidState" } }, usesInheritance: true, ngImport: i0 }); }
|
|
208
207
|
}
|
|
209
208
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EclSelectDirective, decorators: [{
|
|
210
209
|
type: Directive,
|
|
211
|
-
args: [{
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
args: ['attr.disabled']
|
|
221
|
-
}], isInvalidState: [{
|
|
222
|
-
type: HostBinding,
|
|
223
|
-
args: ['class.ecl-select--invalid']
|
|
224
|
-
}] } });
|
|
210
|
+
args: [{
|
|
211
|
+
selector: 'select[eclSelect]',
|
|
212
|
+
host: {
|
|
213
|
+
'[class]': 'cssClasses',
|
|
214
|
+
'[attr.disabled]': 'isDisabled',
|
|
215
|
+
'[class.ecl-select--invalid]': 'isInvalidState',
|
|
216
|
+
},
|
|
217
|
+
}]
|
|
218
|
+
}], propDecorators: { disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], isInvalid: [{ type: i0.Input, args: [{ isSignal: true, alias: "isInvalid", required: false }] }], toggleLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "toggleLabel", required: false }] }], eclSize: [{ type: i0.Input, args: [{ isSignal: true, alias: "eclSize", required: false }] }] } });
|
|
225
219
|
|
|
226
220
|
const EUI_ECL_SELECT = [
|
|
227
221
|
EclSelectDirective,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eui-ecl-components-ecl-select.mjs","sources":["../../components/ecl-select/ecl-select-container.component.ts","../../components/ecl-select/ecl-select-container.component.html","../../components/ecl-select/ecl-select.directive.ts","../../components/ecl-select/index.ts","../../components/ecl-select/eui-ecl-components-ecl-select.ts"],"sourcesContent":["import { Component, HostBinding, inject, model } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclThemeService } from '@eui/ecl/core';\nimport { EUI_ECL_ICON } from '@eui/ecl/components/ecl-icon';\nimport { EUI_ECL_BUTTON } from '@eui/ecl/components/ecl-button';\nimport { TranslatePipe } from '@ngx-translate/core';\n\n/**\n * Container component, which wraps the <select> component. Ataches custom select button with dropdown arrow.\n */\n@Component({\n selector: 'ecl-select-container',\n templateUrl: './ecl-select-container.component.html',\n imports: [\n ...EUI_ECL_ICON,\n TranslatePipe,\n ...EUI_ECL_BUTTON,\n ],\n})\nexport class EclSelectContainerComponent extends ECLBaseDirective {\n /**\n * Size/length of the field and the dropdown, can be 's', 'm' or 'l'. Default is 'm'.\n * Same as the size of the main host element.\n */\n readonly eclSize = model('m');\n readonly disabled = model<boolean>(undefined);\n readonly isInvalid = model<boolean>(undefined);\n /**\n * Custom label for the arrow-down button. Set from the main host element.\n */\n readonly toggleLabel = model<string | undefined>(undefined);\n\n /**\n * Adds specific classes for the container.\n */\n @HostBinding('class')\n get cssClasses(): string {\n const eclSize = this.eclSize();\n return [\n super.getCssClasses('ecl-select__container'),\n eclSize ? `ecl-select__container--${eclSize}` : '',\n this.disabled() ? 'ecl-select__container--disabled' : '',\n this.isInvalid() ? 'ecl-select__container--invalid' : '',\n ]\n .join(' ')\n .trim();\n }\n\n private ICON_SIZE_EC = 'xs';\n private ICON_SIZE_EU = 's'\n private eclThemeService = inject(EclThemeService);\n\n /**\n * Returns different icon sizes, depending if it's EU (s) or EC (xs) theme.\n */\n get iconSize(): string {\n if (this.eclThemeService.isECTheme()) {\n return this.ICON_SIZE_EC;\n } else {\n return this.ICON_SIZE_EU;\n }\n }\n}\n","<div class=\"ecl-select__icon\">\n <button eclButton variant=\"tertiary\" tabindex=\"-1\" isIconOnly>\n <span eclButtonLabel>{{ toggleLabel() || 'ecl.multiselect.TOGGLE.DROPDOWN' | translate }}</span>\n <ecl-icon icon=\"corner-arrow\" [size]=\"iconSize\" transform=\"rotate-180\"></ecl-icon>\n </button>\n</div>\n","import {\n AfterContentInit,\n ComponentRef,\n Directive,\n DoCheck,\n ElementRef,\n HostBinding,\n Injector,\n OnDestroy,\n OnInit,\n PLATFORM_ID,\n Renderer2,\n ViewContainerRef,\n afterNextRender,\n booleanAttribute,\n inject,\n runInInjectionContext,\n input,\n} from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclSelectContainerComponent } from './ecl-select-container.component';\nimport { NgControl } from '@angular/forms';\nimport { isPlatformBrowser } from '@angular/common';\n\n/**\n * Directive that enhances a native <select> element with ECL styling\n * by wrapping it inside an {@link EclSelectContainerComponent}.\n */\n@Directive({ selector: 'select[eclSelect]' })\nexport class EclSelectDirective extends ECLBaseDirective\n implements OnInit, DoCheck, AfterContentInit, OnDestroy {\n\n /** Disables the select element. */\n @HostBinding('attr.disabled')\n readonly disabled = input(false, { transform: booleanAttribute });\n\n /** Marks the select element as invalid. */\n readonly isInvalid = input(false, { transform: booleanAttribute });\n\n /** Accessible label for the toggle button. */\n readonly toggleLabel = input<string>(undefined);\n\n /** Size of the select component. */\n readonly eclSize = input<'s' | 'm' | 'l'>('m');\n\n private ngControl = inject(NgControl, { optional: true, self: true });\n private el = inject(ElementRef<HTMLElement>);\n private injector = inject(Injector);\n private vcr = inject(ViewContainerRef);\n private renderer = inject(Renderer2);\n private platformId = inject(PLATFORM_ID);\n private isBrowser = isPlatformBrowser(this.platformId);\n private containerRef!: ComponentRef<EclSelectContainerComponent>;\n private readonly OPTGROUP_TAG_NAME = 'OPTGROUP';\n\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-select')].join(' ').trim();\n }\n\n @HostBinding('attr.disabled')\n get isDisabled(): boolean {\n return this.ngControl ? (this.ngControl.disabled || null) : (this.disabled() || null);\n }\n\n @HostBinding('class.ecl-select--invalid')\n get isInvalidState(): boolean {\n return this.ngControl\n ? (this.ngControl.status === 'INVALID' && this.ngControl.touched)\n : this.isInvalid();\n }\n\n /**\n * Initializes the directive.\n * - Creates the {@link EclSelectContainerComponent} wrapper.\n * - Synchronizes initial input values.\n * - Moves the <select> element inside the wrapper.\n *\n * Skipped on the server to avoid SSR hydration mismatch (NG0500).\n */\n ngOnInit(): void {\n if (!this.isBrowser) return;\n\n this.containerRef = this.vcr.createComponent(EclSelectContainerComponent);\n this.syncContainerInputs();\n\n const containerEl = this.containerRef.location.nativeElement as any;\n const selectEl = this.el.nativeElement as any;\n\n if (selectEl.parentNode !== containerEl) {\n runInInjectionContext(this.injector, () => {\n afterNextRender(() => {\n if (selectEl.parentNode === containerEl) return;\n const firstChild = containerEl.firstChild ?? null;\n this.renderer.insertBefore(containerEl, selectEl, firstChild, true);\n });\n });\n }\n }\n\n /**\n * Processes any <optgroup> elements inside the <select> and\n * enhances them with appropriate accessibility attributes.\n */\n ngAfterContentInit(): void {\n const childrenElements: Element[] =\n Array.from(this.el.nativeElement.children);\n\n this.handleOptgroup(childrenElements);\n }\n\n /**\n * Keeps the wrapper component synchronized with the directive’s\n * current inputs and form control state.\n *\n * This is used to reflect runtime changes such as:\n * - Disabled state\n * - Validation status\n * - Size changes\n */\n ngDoCheck(): void {\n this.syncContainerInputs();\n }\n\n /**\n * Destroys the dynamically created wrapper component to prevent\n * memory leaks when the directive is removed.\n */\n ngOnDestroy(): void {\n this.containerRef?.destroy();\n }\n\n /**\n * Synchronizes directive inputs and control state\n * with the wrapper component instance.\n */\n private syncContainerInputs(): void {\n const c = this.containerRef?.instance;\n if (!c) return;\n\n c.eclSize.set(this.eclSize());\n c.disabled.set(this.isDisabled);\n c.toggleLabel.set(this.toggleLabel());\n c.isInvalid.set(this.isInvalidState);\n }\n\n /**\n * Enhances <optgroup> and <option> elements with\n * accessible aria-label attributes.\n *\n * - Applies the optgroup label to the group container.\n * - Combines option and group labels for child options.\n *\n * This improves screen reader support for grouped options.\n *\n * @param childrenElements List of direct children of the <select> element.\n */\n private handleOptgroup(childrenElements: Element[]): void {\n childrenElements\n .filter(el =>\n el.tagName === this.OPTGROUP_TAG_NAME &&\n el.getAttribute('label') !== null\n )\n .forEach(optGroup => {\n const optGroupLabel = optGroup.getAttribute('label');\n\n this.renderer.setAttribute(\n optGroup,\n 'aria-label',\n optGroupLabel\n );\n\n Array.from(optGroup.children).forEach(option => {\n const optionLabel =\n option.getAttribute('label') || option.textContent;\n\n if (optionLabel) {\n this.renderer.setAttribute(\n option,\n 'aria-label',\n `${optionLabel} - ${optGroupLabel}`\n );\n }\n });\n });\n }\n}\n","import { EclSelectDirective } from './ecl-select.directive';\nimport { EclSelectContainerComponent } from './ecl-select-container.component';\n\nexport * from './ecl-select.directive';\nexport * from './ecl-select-container.component';\n\nexport const EUI_ECL_SELECT = [\n EclSelectDirective,\n EclSelectContainerComponent,\n] as const;\n","/**\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-select.mjs","sources":["../../components/ecl-select/ecl-select-container.component.ts","../../components/ecl-select/ecl-select-container.component.html","../../components/ecl-select/ecl-select.directive.ts","../../components/ecl-select/index.ts","../../components/ecl-select/eui-ecl-components-ecl-select.ts"],"sourcesContent":["import { Component, inject, model } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclThemeService } from '@eui/ecl/core';\nimport { EUI_ECL_ICON } from '@eui/ecl/components/ecl-icon';\nimport { EUI_ECL_BUTTON } from '@eui/ecl/components/ecl-button';\nimport { TranslatePipe } from '@ngx-translate/core';\n\n/**\n * Container component, which wraps the <select> component. Ataches custom select button with dropdown arrow.\n */\n@Component({\n selector: 'ecl-select-container',\n templateUrl: './ecl-select-container.component.html',\n imports: [\n ...EUI_ECL_ICON,\n TranslatePipe,\n ...EUI_ECL_BUTTON,\n ],\n host: {\n '[class]': 'cssClasses',\n },\n})\nexport class EclSelectContainerComponent extends ECLBaseDirective {\n /**\n * Size/length of the field and the dropdown, can be 's', 'm' or 'l'. Default is 'm'.\n * Same as the size of the main host element.\n */\n readonly eclSize = model('m');\n readonly disabled = model<boolean>(undefined);\n readonly isInvalid = model<boolean>(undefined);\n /**\n * Custom label for the arrow-down button. Set from the main host element.\n */\n readonly toggleLabel = model<string | undefined>(undefined);\n\n /**\n * Adds specific classes for the container.\n */\n get cssClasses(): string {\n const eclSize = this.eclSize();\n return [\n super.getCssClasses('ecl-select__container'),\n eclSize ? `ecl-select__container--${eclSize}` : '',\n this.disabled() ? 'ecl-select__container--disabled' : '',\n this.isInvalid() ? 'ecl-select__container--invalid' : '',\n ]\n .join(' ')\n .trim();\n }\n\n private ICON_SIZE_EC = 'xs';\n private ICON_SIZE_EU = 's'\n private eclThemeService = inject(EclThemeService);\n\n /**\n * Returns different icon sizes, depending if it's EU (s) or EC (xs) theme.\n */\n protected get iconSize(): string {\n if (this.eclThemeService.isECTheme()) {\n return this.ICON_SIZE_EC;\n } else {\n return this.ICON_SIZE_EU;\n }\n }\n}\n","<div class=\"ecl-select__icon\">\n <button eclButton variant=\"tertiary\" tabindex=\"-1\" isIconOnly>\n <span eclButtonLabel>{{ toggleLabel() || 'ecl.multiselect.TOGGLE.DROPDOWN' | translate }}</span>\n <ecl-icon icon=\"corner-arrow\" [size]=\"iconSize\" transform=\"rotate-180\"></ecl-icon>\n </button>\n</div>\n","import {\n AfterContentInit,\n ComponentRef,\n Directive,\n DoCheck,\n ElementRef,\n Injector,\n OnDestroy,\n OnInit,\n PLATFORM_ID,\n Renderer2,\n ViewContainerRef,\n afterNextRender,\n booleanAttribute,\n inject,\n runInInjectionContext,\n input,\n} from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclSelectContainerComponent } from './ecl-select-container.component';\nimport { NgControl } from '@angular/forms';\nimport { isPlatformBrowser } from '@angular/common';\n\n/**\n * Directive that enhances a native <select> element with ECL styling\n * by wrapping it inside an {@link EclSelectContainerComponent}.\n */\n@Directive({\n selector: 'select[eclSelect]',\n host: {\n '[class]': 'cssClasses',\n '[attr.disabled]': 'isDisabled',\n '[class.ecl-select--invalid]': 'isInvalidState',\n },\n})\nexport class EclSelectDirective extends ECLBaseDirective\n implements OnInit, DoCheck, AfterContentInit, OnDestroy {\n\n /** Disables the select element. */\n readonly disabled = input(false, { transform: booleanAttribute });\n\n /** Marks the select element as invalid. */\n readonly isInvalid = input(false, { transform: booleanAttribute });\n\n /** Accessible label for the toggle button. */\n readonly toggleLabel = input<string>(undefined);\n\n /** Size of the select component. */\n readonly eclSize = input<'s' | 'm' | 'l'>('m');\n\n private ngControl = inject(NgControl, { optional: true, self: true });\n private el = inject(ElementRef<HTMLElement>);\n private injector = inject(Injector);\n private vcr = inject(ViewContainerRef);\n private renderer = inject(Renderer2);\n private platformId = inject(PLATFORM_ID);\n private isBrowser = isPlatformBrowser(this.platformId);\n private containerRef!: ComponentRef<EclSelectContainerComponent>;\n private readonly OPTGROUP_TAG_NAME = 'OPTGROUP';\n\n get cssClasses(): string {\n return [super.getCssClasses('ecl-select')].join(' ').trim();\n }\n\n get isDisabled(): boolean {\n return this.ngControl ? (this.ngControl.disabled || null) : (this.disabled() || null);\n }\n\n get isInvalidState(): boolean {\n return this.ngControl\n ? (this.ngControl.status === 'INVALID' && this.ngControl.touched)\n : this.isInvalid();\n }\n\n /**\n * Initializes the directive.\n * - Creates the {@link EclSelectContainerComponent} wrapper.\n * - Synchronizes initial input values.\n * - Moves the <select> element inside the wrapper.\n *\n * Skipped on the server to avoid SSR hydration mismatch (NG0500).\n */\n ngOnInit(): void {\n if (!this.isBrowser) return;\n\n this.containerRef = this.vcr.createComponent(EclSelectContainerComponent);\n this.syncContainerInputs();\n\n const containerEl = this.containerRef.location.nativeElement as any;\n const selectEl = this.el.nativeElement as any;\n\n if (selectEl.parentNode !== containerEl) {\n runInInjectionContext(this.injector, () => {\n afterNextRender(() => {\n if (selectEl.parentNode === containerEl) return;\n const firstChild = containerEl.firstChild ?? null;\n this.renderer.insertBefore(containerEl, selectEl, firstChild, true);\n });\n });\n }\n }\n\n /**\n * Processes any <optgroup> elements inside the <select> and\n * enhances them with appropriate accessibility attributes.\n */\n ngAfterContentInit(): void {\n const childrenElements: Element[] =\n Array.from(this.el.nativeElement.children);\n\n this.handleOptgroup(childrenElements);\n }\n\n /**\n * Keeps the wrapper component synchronized with the directive’s\n * current inputs and form control state.\n *\n * This is used to reflect runtime changes such as:\n * - Disabled state\n * - Validation status\n * - Size changes\n */\n ngDoCheck(): void {\n this.syncContainerInputs();\n }\n\n /**\n * Destroys the dynamically created wrapper component to prevent\n * memory leaks when the directive is removed.\n */\n ngOnDestroy(): void {\n this.containerRef?.destroy();\n }\n\n /**\n * Synchronizes directive inputs and control state\n * with the wrapper component instance.\n */\n private syncContainerInputs(): void {\n const c = this.containerRef?.instance;\n if (!c) return;\n\n c.eclSize.set(this.eclSize());\n c.disabled.set(this.isDisabled);\n c.toggleLabel.set(this.toggleLabel());\n c.isInvalid.set(this.isInvalidState);\n }\n\n /**\n * Enhances <optgroup> and <option> elements with\n * accessible aria-label attributes.\n *\n * - Applies the optgroup label to the group container.\n * - Combines option and group labels for child options.\n *\n * This improves screen reader support for grouped options.\n *\n * @param childrenElements List of direct children of the <select> element.\n */\n private handleOptgroup(childrenElements: Element[]): void {\n childrenElements\n .filter(el =>\n el.tagName === this.OPTGROUP_TAG_NAME &&\n el.getAttribute('label') !== null\n )\n .forEach(optGroup => {\n const optGroupLabel = optGroup.getAttribute('label');\n\n this.renderer.setAttribute(\n optGroup,\n 'aria-label',\n optGroupLabel\n );\n\n Array.from(optGroup.children).forEach(option => {\n const optionLabel =\n option.getAttribute('label') || option.textContent;\n\n if (optionLabel) {\n this.renderer.setAttribute(\n option,\n 'aria-label',\n `${optionLabel} - ${optGroupLabel}`\n );\n }\n });\n });\n }\n}\n","import { EclSelectDirective } from './ecl-select.directive';\nimport { EclSelectContainerComponent } from './ecl-select-container.component';\n\nexport * from './ecl-select.directive';\nexport * from './ecl-select-container.component';\n\nexport const EUI_ECL_SELECT = [\n EclSelectDirective,\n EclSelectContainerComponent,\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|