@eui/ecl 22.0.0-alpha.34 → 22.0.0-alpha.35
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 +11 -0
- package/docs/components/EclIconComponent.html +3 -2
- package/docs/components/EclSiteHeaderActionComponent.html +4 -104
- package/docs/components/EclSiteHeaderBannerTopComponent.html +4 -104
- package/docs/components/EclSiteHeaderComponent.html +55 -101
- package/docs/components/EclSiteHeaderCustomActionComponent.html +6 -330
- package/docs/components/EclSiteHeaderEnvironmentComponent.html +4 -39
- package/docs/components/EclSiteHeaderLanguageComponent.html +3 -364
- package/docs/components/EclSiteHeaderLanguagePopoverComponent.html +3 -58
- package/docs/components/EclSiteHeaderLoginComponent.html +8 -8
- package/docs/components/EclSiteHeaderNotificationComponent.html +4 -68
- package/docs/components/EclSiteHeaderSearchComponent.html +42 -23
- package/docs/components/EclSocialMediaFollowItemComponent.html +1 -1
- package/docs/directives/EclSiteHeaderCtaDirective.html +0 -104
- package/docs/directives/EclSiteHeaderCustomActionContentDirective.html +0 -104
- package/docs/directives/EclSiteHeaderCustomActionLinkDirective.html +16 -253
- package/docs/directives/EclSiteHeaderCustomActionTitleDirective.html +0 -104
- package/docs/directives/EclSiteHeaderImageDirective.html +0 -39
- package/docs/directives/EclSiteHeaderLinkDirective.html +0 -104
- package/docs/directives/EclSiteHeaderLoginDescriptionDirective.html +0 -104
- package/docs/directives/EclSiteHeaderLoginSeparatorDirective.html +0 -104
- package/docs/directives/EclSiteHeaderPictureDirective.html +0 -104
- package/docs/js/search/search_index.js +2 -2
- package/docs/json/EclIconComponent.md +1 -1
- package/docs/json/EclSiteHeaderComponent.md +3 -2
- package/docs/json/EclSiteHeaderCustomActionLinkDirective.md +2 -1
- package/docs/json/EclSiteHeaderLanguageComponent.md +2 -2
- package/docs/json/EclSiteHeaderLoginComponent.md +1 -1
- package/docs/json/EclSiteHeaderSearchComponent.md +3 -2
- package/docs/json/EclSocialMediaFollowItemComponent.md +1 -1
- package/docs/json/documentation.json +662 -1092
- package/docs/llms.txt +20 -68
- package/docs/miscellaneous/typealiases.html +28 -0
- package/docs/miscellaneous/variables.html +20 -20
- package/docs/properties.html +1 -1
- package/fesm2022/eui-ecl-components-ecl-app.mjs +5 -1
- package/fesm2022/eui-ecl-components-ecl-app.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-icon.mjs +2 -1
- package/fesm2022/eui-ecl-components-ecl-icon.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-site-header.mjs +168 -224
- package/fesm2022/eui-ecl-components-ecl-site-header.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-social-media-follow.mjs.map +1 -1
- package/package.json +1 -1
- package/types/eui-ecl-components-ecl-app.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-icon.d.ts +8 -2
- package/types/eui-ecl-components-ecl-icon.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-site-header.d.ts +87 -90
- package/types/eui-ecl-components-ecl-site-header.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-social-media-follow.d.ts +2 -2
- package/types/eui-ecl-components-ecl-social-media-follow.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-30T17:55:26.914Z, llm-md export.
|
|
4
4
|
|
|
5
5
|
## Modules
|
|
6
6
|
|
|
@@ -992,7 +992,7 @@ Inputs:
|
|
|
992
992
|
- `color: 'inverted' | 'primary' | null = null` — Applies color styling to the icon. Use 'inverted' for icons on dark backgrounds, or 'primary' for emphasis.
|
|
993
993
|
- `focusable: boolean = false` — Controls whether the icon is focusable via keyboard. Defaults to false .
|
|
994
994
|
- `icon: string` — Name of the icon to render from the selected set.
|
|
995
|
-
- `iconSet:
|
|
995
|
+
- `iconSet: EclIconSet = 'default'` — Defines the icon set to use. Available sets: default , social , social-media , social-media-color , flag , flag-non-members , phosphor , phosphor-fill . Defaults to 'default' .
|
|
996
996
|
- `isFlipHorizontal: boolean = false` — Flips the icon horizontally if set to true .
|
|
997
997
|
- `role: string = undefined` — ARIA role of the icon. If a title is provided and no role is defined, defaults to 'img' .
|
|
998
998
|
- `size: '2xs' | 'xs' | 's' | 'm' | 'l' | 'xl' | '2xl' | 'fluid' | string = 'xs'` — Size of the icon. Supported values: '2xs' , 'xs' , 's' , 'm' , 'l' , 'xl' , '2xl' , 'fluid' . Defaults to 'xs' .
|
|
@@ -2530,9 +2530,6 @@ Inputs:
|
|
|
2530
2530
|
- `e2eAttr: any`
|
|
2531
2531
|
- `tabindex: number`
|
|
2532
2532
|
|
|
2533
|
-
Properties:
|
|
2534
|
-
- `class: string = 'ecl-site-header__action'`
|
|
2535
|
-
|
|
2536
2533
|
Methods:
|
|
2537
2534
|
- `getCssClasses(rootClass: string): string`
|
|
2538
2535
|
|
|
@@ -2549,9 +2546,6 @@ Inputs:
|
|
|
2549
2546
|
- `e2eAttr: any`
|
|
2550
2547
|
- `tabindex: number`
|
|
2551
2548
|
|
|
2552
|
-
Properties:
|
|
2553
|
-
- `className: unknown = true`
|
|
2554
|
-
|
|
2555
2549
|
Methods:
|
|
2556
2550
|
- `getCssClasses(rootClass: string): string`
|
|
2557
2551
|
|
|
@@ -2563,16 +2557,17 @@ Selector: `ecl-site-header`
|
|
|
2563
2557
|
Description: The Site header offers easily recognisable elements (such as the logo) and the most essential functionality of every site (such as Language switcher or Search form). Additionally it can host the name of the site, the class name to which it belongs and the main navigation. The header is always placed at the top of the page. The elements required in the site header are different depending wether it is the corporate, standardised or an harmonised website.
|
|
2564
2558
|
|
|
2565
2559
|
Inputs:
|
|
2566
|
-
- `languageCode: string = 'en'` — Language code of the current language of the site.
|
|
2567
|
-
- `siteName: string` — The name of the site, to be added in the header, next to the logo.
|
|
2568
2560
|
- `isSiteNameMobileOnly: boolean = false` — Determines if the site name should be displayed only on mobile devices.
|
|
2561
|
+
- `languageCode: string = 'en'` — Language code of the current language of the site.
|
|
2569
2562
|
- `logoSize: "s" | "m" | "l" = 'm'` — The size of the logo, 's', 'm' or 'l', default to 'm'.
|
|
2563
|
+
- `siteName: string` — The name of the site, to be added in the header, next to the logo.
|
|
2570
2564
|
- `class: string`
|
|
2571
2565
|
- `e2eAttr: any`
|
|
2572
2566
|
- `tabindex: number`
|
|
2573
2567
|
|
|
2574
2568
|
Outputs:
|
|
2575
2569
|
- `languageClick: EclSiteHeaderLanguageClickEvent`
|
|
2570
|
+
- `languageCode: string = 'en'` — Language code of the current language of the site.
|
|
2576
2571
|
- `logoClick: EclSiteHeaderLogoClickEvent`
|
|
2577
2572
|
|
|
2578
2573
|
Properties:
|
|
@@ -2585,7 +2580,6 @@ Properties:
|
|
|
2585
2580
|
- `eclMenuComponent: unknown = contentChild(EclMenuComponent)`
|
|
2586
2581
|
- `eclNotificationComponent: unknown = contentChild(EclSiteHeaderNotificationComponent)`
|
|
2587
2582
|
- `eclSearchComponent: unknown = contentChild(EclSiteHeaderSearchComponent)`
|
|
2588
|
-
- `eclThemeService: unknown = inject(EclThemeService)`
|
|
2589
2583
|
- `siteHeaderHeader: unknown = viewChild<ElementRef>('siteHeaderHeader')`
|
|
2590
2584
|
- `topContainerElement: unknown = viewChild<ElementRef>('topContainer')`
|
|
2591
2585
|
|
|
@@ -2606,13 +2600,6 @@ Inputs:
|
|
|
2606
2600
|
- `e2eAttr: any`
|
|
2607
2601
|
- `tabindex: number`
|
|
2608
2602
|
|
|
2609
|
-
Properties:
|
|
2610
|
-
- `class: string = 'ecl-site-header__custom-action'`
|
|
2611
|
-
- `eclSiteHeaderCustomActionLink: unknown = contentChild(EclSiteHeaderCustomActionLinkDirective)`
|
|
2612
|
-
- `isOverlayExpanded: unknown = false` — Used to expand/collapse the dropdown, if any.
|
|
2613
|
-
- `title: unknown = contentChild(EclSiteHeaderCustomActionTitleDirective)`
|
|
2614
|
-
- `titleId: string`
|
|
2615
|
-
|
|
2616
2603
|
Methods:
|
|
2617
2604
|
- `onClickOutsideHandler(): void` — Close the overlay, when clicking outside of it.
|
|
2618
2605
|
- `onCustomActionOverlayClose(): void` — Close the overlay.
|
|
@@ -2647,23 +2634,11 @@ Inputs:
|
|
|
2647
2634
|
- `tabindex: number`
|
|
2648
2635
|
|
|
2649
2636
|
Outputs:
|
|
2650
|
-
- `languageClick:
|
|
2651
|
-
- `languageSelected:
|
|
2637
|
+
- `languageClick: EclSiteHeaderLanguageClickEvent` — Thie event is emited, when language link, showing the current language is clicked.
|
|
2638
|
+
- `languageSelected: EclSiteHeaderLanguageSelectedEvent` — Thie event is emited, when user selects a new language from the dropdown.
|
|
2652
2639
|
|
|
2653
2640
|
Properties:
|
|
2654
|
-
- `
|
|
2655
|
-
- `euLanguages: EuiLanguage[] = []` — Array of EU languages, that can be selected for the current site.
|
|
2656
|
-
- `isFull: boolean` — This property is used for dropdown positioning on the screen.
|
|
2657
|
-
- `isLanguagesDropdownVisible: unknown = false`
|
|
2658
|
-
- `isPushLeft: boolean` — This property is used for dropdown positioning on the screen.
|
|
2659
|
-
- `isPushRight: boolean` — This property is used for dropdown positioning on the screen.
|
|
2660
|
-
- `isStack: boolean` — This property is used for dropdown positioning on the screen.
|
|
2661
|
-
- `languageArrowPosition: string` — This property is used for dropdown positioning on the screen.
|
|
2662
|
-
- `languageCode: string = 'en'`
|
|
2663
|
-
- `leftPosition: number`
|
|
2664
|
-
- `nonEuColumnsCount: number = 1`
|
|
2665
|
-
- `nonEuLanguages: EuiLanguage[] = []` — Array of non-EU languages, that can be selected for the current site.
|
|
2666
|
-
- `rightPosition: number`
|
|
2641
|
+
- `languageCode: string = 'en'` — Current language code. Read and written by the parent ecl-site-header .
|
|
2667
2642
|
|
|
2668
2643
|
Methods:
|
|
2669
2644
|
- `hasLanguageCodes(): boolean`
|
|
@@ -2699,9 +2674,7 @@ Outputs:
|
|
|
2699
2674
|
- `languageSelected: EclSiteHeaderLanguageSelectedEvent`
|
|
2700
2675
|
|
|
2701
2676
|
Properties:
|
|
2702
|
-
- `el: unknown = inject(ElementRef)`
|
|
2703
|
-
- `languageContent: unknown = viewChild<ElementRef>('languageContent')` — The div, that wraps all the languages.
|
|
2704
|
-
- `languageContentMaxHeight: number`
|
|
2677
|
+
- `el: unknown = inject(ElementRef)` — Host element reference. Read by the parent ecl-site-header-language for positioning.
|
|
2705
2678
|
|
|
2706
2679
|
Methods:
|
|
2707
2680
|
- `onCloseClick(): void`
|
|
@@ -2723,8 +2696,8 @@ Inputs:
|
|
|
2723
2696
|
- `tabindex: number`
|
|
2724
2697
|
|
|
2725
2698
|
Outputs:
|
|
2726
|
-
- `loginBoxToggle: EventEmitter = new EventEmitter<EclSiteHeaderLoginBoxToggleEvent>()`
|
|
2727
2699
|
- `login: EclSiteHeaderLoginEvent`
|
|
2700
|
+
- `loginBoxToggle: EclSiteHeaderLoginBoxToggleEvent`
|
|
2728
2701
|
|
|
2729
2702
|
Properties:
|
|
2730
2703
|
- `isLoginBoxActive: unknown = false` — If login popover is open (true) or closed (false). Kept public because the parent ecl-site-header resets it directly when the search box opens.
|
|
@@ -2757,16 +2730,17 @@ Selector: `ecl-site-header-search`
|
|
|
2757
2730
|
Description: This component builds the search box in the ecl-site-header component. Adds specific style and functionality, emits events on search and search toggle.
|
|
2758
2731
|
|
|
2759
2732
|
Inputs:
|
|
2760
|
-
- `searchInputText: string`
|
|
2761
2733
|
- `searchButtonLabel: string = undefined`
|
|
2762
2734
|
- `searchInputPlaceholder: string = undefined`
|
|
2735
|
+
- `searchInputText: string`
|
|
2763
2736
|
- `class: string`
|
|
2764
2737
|
- `e2eAttr: any`
|
|
2765
2738
|
- `tabindex: number`
|
|
2766
2739
|
|
|
2767
2740
|
Outputs:
|
|
2768
|
-
- `searchToggle: EventEmitter = new EventEmitter<EclSiteHeaderSearchToggleEvent>()`
|
|
2769
2741
|
- `searchEvent: EclSiteHeaderSearchEvent`
|
|
2742
|
+
- `searchInputText: string`
|
|
2743
|
+
- `searchToggle: EclSiteHeaderSearchToggleEvent`
|
|
2770
2744
|
|
|
2771
2745
|
Properties:
|
|
2772
2746
|
- `isSearchBoxActive: unknown = false` — Whether the search dropdown is open. Kept public because the parent ecl-site-header resets it directly when the login box opens.
|
|
@@ -2820,7 +2794,7 @@ Inputs:
|
|
|
2820
2794
|
- `extraAttributes: { name: string; value?: string | null; }[] = undefined`
|
|
2821
2795
|
- `href: string = ''`
|
|
2822
2796
|
- `icon: string`
|
|
2823
|
-
- `iconSet:
|
|
2797
|
+
- `iconSet: EclIconSet = 'social-media'`
|
|
2824
2798
|
- `isInverted: false = undefined`
|
|
2825
2799
|
- `routerLink: string = ''`
|
|
2826
2800
|
- `size: string = 'm'`
|
|
@@ -5754,9 +5728,6 @@ Inputs:
|
|
|
5754
5728
|
- `e2eAttr: any`
|
|
5755
5729
|
- `tabindex: number`
|
|
5756
5730
|
|
|
5757
|
-
Properties:
|
|
5758
|
-
- `className: unknown = true`
|
|
5759
|
-
|
|
5760
5731
|
Methods:
|
|
5761
5732
|
- `getCssClasses(rootClass: string): string`
|
|
5762
5733
|
|
|
@@ -5770,9 +5741,6 @@ Inputs:
|
|
|
5770
5741
|
- `e2eAttr: any`
|
|
5771
5742
|
- `tabindex: number`
|
|
5772
5743
|
|
|
5773
|
-
Properties:
|
|
5774
|
-
- `className: unknown = true`
|
|
5775
|
-
|
|
5776
5744
|
Methods:
|
|
5777
5745
|
- `getCssClasses(rootClass: string): string`
|
|
5778
5746
|
|
|
@@ -5789,13 +5757,11 @@ Inputs:
|
|
|
5789
5757
|
- `tabindex: number`
|
|
5790
5758
|
|
|
5791
5759
|
Outputs:
|
|
5792
|
-
- `customActionOverlayToggle:
|
|
5760
|
+
- `customActionOverlayToggle: boolean`
|
|
5761
|
+
- `href: string`
|
|
5793
5762
|
|
|
5794
5763
|
Properties:
|
|
5795
|
-
- `
|
|
5796
|
-
- `className: string = 'ecl-site-header__custom-action-toggle ecl-button ecl-button--tertiary ecl-button--neutral ecl-button--icon-only'`
|
|
5797
|
-
- `eclIconComponent: unknown = contentChild<EclIconComponent>(forwardRef(() => EclIconComponent), { descendants: true })`
|
|
5798
|
-
- `isOverlayExpanded: boolean`
|
|
5764
|
+
- `isOverlayExpanded: boolean` — Whether the overlay is expanded. Set by the parent ecl-site-header-custom-action .
|
|
5799
5765
|
|
|
5800
5766
|
Methods:
|
|
5801
5767
|
- `hasLink(): boolean`
|
|
@@ -5813,9 +5779,6 @@ Inputs:
|
|
|
5813
5779
|
- `e2eAttr: any`
|
|
5814
5780
|
- `tabindex: number`
|
|
5815
5781
|
|
|
5816
|
-
Properties:
|
|
5817
|
-
- `className: unknown = true`
|
|
5818
|
-
|
|
5819
5782
|
Methods:
|
|
5820
5783
|
- `getCssClasses(rootClass: string): string`
|
|
5821
5784
|
|
|
@@ -5849,9 +5812,6 @@ Inputs:
|
|
|
5849
5812
|
- `e2eAttr: any`
|
|
5850
5813
|
- `tabindex: number`
|
|
5851
5814
|
|
|
5852
|
-
Properties:
|
|
5853
|
-
- `className: string = 'ecl-link ecl-link--standalone ecl-site-header__logo-link'`
|
|
5854
|
-
|
|
5855
5815
|
Methods:
|
|
5856
5816
|
- `getCssClasses(rootClass: string): string`
|
|
5857
5817
|
|
|
@@ -5867,9 +5827,6 @@ Inputs:
|
|
|
5867
5827
|
- `e2eAttr: any`
|
|
5868
5828
|
- `tabindex: number`
|
|
5869
5829
|
|
|
5870
|
-
Properties:
|
|
5871
|
-
- `className: string = 'ecl-site-header__login-description'`
|
|
5872
|
-
|
|
5873
5830
|
Methods:
|
|
5874
5831
|
- `getCssClasses(rootClass: string): string`
|
|
5875
5832
|
|
|
@@ -5885,9 +5842,6 @@ Inputs:
|
|
|
5885
5842
|
- `e2eAttr: any`
|
|
5886
5843
|
- `tabindex: number`
|
|
5887
5844
|
|
|
5888
|
-
Properties:
|
|
5889
|
-
- `className: string = 'ecl-site-header__login-separator'`
|
|
5890
|
-
|
|
5891
5845
|
Methods:
|
|
5892
5846
|
- `getCssClasses(rootClass: string): string`
|
|
5893
5847
|
|
|
@@ -5903,9 +5857,6 @@ Inputs:
|
|
|
5903
5857
|
- `e2eAttr: any`
|
|
5904
5858
|
- `tabindex: number`
|
|
5905
5859
|
|
|
5906
|
-
Properties:
|
|
5907
|
-
- `className: string = 'ecl-site-header__picture ecl-picture'`
|
|
5908
|
-
|
|
5909
5860
|
Methods:
|
|
5910
5861
|
- `getCssClasses(rootClass: string): string`
|
|
5911
5862
|
|
|
@@ -7402,6 +7353,7 @@ Properties:
|
|
|
7402
7353
|
- `type DuetEl = HTMLElement & literal type`
|
|
7403
7354
|
- `type DuetLocalization = { buttonLabel: string; selectedDateMessage: string; prevMonthLabel: string; nextMonthLabel: string; monthSelectLabel: string; yearSelectLabel: string; closeLabe…`
|
|
7404
7355
|
- `type EclDuetDateAdapter = { parse: Date | undefined; format: string }`
|
|
7356
|
+
- `type EclIconSet = "default" | "social" | "social-media" | "social-media-color" | "flag" | "flag-non-members" | "phosphor" | "phosphor-fill"` — Available icon sets supported by EclIconComponent.
|
|
7405
7357
|
- `type ModelValue = Date | null`
|
|
7406
7358
|
- `type ModelValue = Date | null`
|
|
7407
7359
|
|
|
@@ -7444,10 +7396,10 @@ Properties:
|
|
|
7444
7396
|
|
|
7445
7397
|
## Public variables
|
|
7446
7398
|
|
|
7447
|
-
- `ARROW_SIZE: string = '0.5rem'` — Half the arrow's own width, matching ECL's arrowSize .
|
|
7448
|
-
Defined in `packages/ecl/components/ecl-site-header/language/ecl-site-header-language.component.ts`
|
|
7449
7399
|
- `ARROW_SIZE: string = '0.5rem'` — Half the arrow's own width, matching ECL's arrowSize .
|
|
7450
7400
|
Defined in `packages/ecl/components/ecl-site-header/login/ecl-site-header-login.component.ts`
|
|
7401
|
+
- `ARROW_SIZE: string = '0.5rem'` — Half the arrow's own width, matching ECL's arrowSize .
|
|
7402
|
+
Defined in `packages/ecl/components/ecl-site-header/language/ecl-site-header-language.component.ts`
|
|
7451
7403
|
- `ARROW_SIZE: string = '0.5rem'` — Half the arrow's own width, matching ECL's arrowSize .
|
|
7452
7404
|
Defined in `packages/ecl/components/ecl-site-header/search/ecl-site-header-search.component.ts`
|
|
7453
7405
|
- `AVAILABLE_NON_EU_LOGO_COUNTRY_CODES: string[] = ['ar', 'ca', 'is', 'jp', 'lb', 'no', 'ru', 'sw', 'tr', 'uk', 'zh'] as const`
|
|
@@ -158,6 +158,9 @@
|
|
|
158
158
|
<li>
|
|
159
159
|
<a href="#EclDuetDateAdapter" title="packages/ecl/components/ecl-date-picker/ecl-date-picker-adapter.ts" class="reference-link "><span class="reference-badge reference-badge--typealias" aria-hidden="true">T</span><span class="reference-link-label"><b>EclDuetDateAdapter</b> (packages/.../ecl-date-picker-adapter.ts)</span></a>
|
|
160
160
|
</li>
|
|
161
|
+
<li>
|
|
162
|
+
<a href="#EclIconSet" title="packages/ecl/components/ecl-icon/ecl-icon.component.ts" class="reference-link "><span class="reference-badge reference-badge--typealias" aria-hidden="true">T</span><span class="reference-link-label"><b>EclIconSet</b> (packages/.../ecl-icon.component.ts)</span></a>
|
|
163
|
+
</li>
|
|
161
164
|
<li>
|
|
162
165
|
<a href="#ModelValue" title="packages/ecl/components/ecl-date-picker/ecl-date-picker-duet.directive.ts" class="reference-link "><span class="reference-badge reference-badge--typealias" aria-hidden="true">T</span><span class="reference-link-label"><b>ModelValue</b> (packages/.../ecl-date-picker-duet.directive.ts)</span></a>
|
|
163
166
|
</li>
|
|
@@ -327,6 +330,31 @@
|
|
|
327
330
|
</tbody>
|
|
328
331
|
</table>
|
|
329
332
|
</section>
|
|
333
|
+
<h3>packages/ecl/components/ecl-icon/ecl-icon.component.ts</h3>
|
|
334
|
+
<section data-compodoc="block-typealias">
|
|
335
|
+
<table class="table table-sm table-bordered">
|
|
336
|
+
<tbody>
|
|
337
|
+
<tr>
|
|
338
|
+
<td class="col-md-4">
|
|
339
|
+
<a name="EclIconSet"></a>
|
|
340
|
+
<span class="name "><b>EclIconSet</b><a href="#EclIconSet"><span class="icon ion-ios-link"></span></a></span>
|
|
341
|
+
</td>
|
|
342
|
+
</tr>
|
|
343
|
+
<tr>
|
|
344
|
+
<td class="col-md-4">
|
|
345
|
+
<div class="io-description"><p>Available icon sets supported by <a href="../components/EclIconComponent.html">EclIconComponent</a>.</p>
|
|
346
|
+
</div>
|
|
347
|
+
</td>
|
|
348
|
+
</tr>
|
|
349
|
+
<tr>
|
|
350
|
+
<td class="col-md-4">
|
|
351
|
+
<code> <code>"default" | "social" | "social-media" | "social-media-color" | "flag" | "flag-non-members" | "phosphor" | "phosphor-fill"</code>
|
|
352
|
+
</code>
|
|
353
|
+
</td>
|
|
354
|
+
</tr>
|
|
355
|
+
</tbody>
|
|
356
|
+
</table>
|
|
357
|
+
</section>
|
|
330
358
|
|
|
331
359
|
|
|
332
360
|
|
|
@@ -138,10 +138,10 @@
|
|
|
138
138
|
<td class="col-md-4">
|
|
139
139
|
<ul class="index-list">
|
|
140
140
|
<li>
|
|
141
|
-
<a href="#ARROW_SIZE" title="packages/ecl/components/ecl-site-header/
|
|
141
|
+
<a href="#ARROW_SIZE" title="packages/ecl/components/ecl-site-header/login/ecl-site-header-login.component.ts" class="reference-link "><span class="reference-badge reference-badge--variable" aria-hidden="true">V</span><span class="reference-link-label"><b>ARROW_SIZE</b> (packages/.../ecl-site-header-login.component.ts)</span></a>
|
|
142
142
|
</li>
|
|
143
143
|
<li>
|
|
144
|
-
<a href="#ARROW_SIZE" title="packages/ecl/components/ecl-site-header/
|
|
144
|
+
<a href="#ARROW_SIZE" title="packages/ecl/components/ecl-site-header/language/ecl-site-header-language.component.ts" class="reference-link "><span class="reference-badge reference-badge--variable" aria-hidden="true">V</span><span class="reference-link-label"><b>ARROW_SIZE</b> (packages/.../ecl-site-header-language.component.ts)</span></a>
|
|
145
145
|
</li>
|
|
146
146
|
<li>
|
|
147
147
|
<a href="#ARROW_SIZE" title="packages/ecl/components/ecl-site-header/search/ecl-site-header-search.component.ts" class="reference-link "><span class="reference-badge reference-badge--variable" aria-hidden="true">V</span><span class="reference-link-label"><b>ARROW_SIZE</b> (packages/.../ecl-site-header-search.component.ts)</span></a>
|
|
@@ -411,7 +411,7 @@
|
|
|
411
411
|
</table>
|
|
412
412
|
</section>
|
|
413
413
|
|
|
414
|
-
<h3>packages/ecl/components/ecl-site-header/
|
|
414
|
+
<h3>packages/ecl/components/ecl-site-header/login/ecl-site-header-login.component.ts</h3>
|
|
415
415
|
<section data-compodoc="block-properties">
|
|
416
416
|
<h3></h3> <table class="table table-sm table-bordered">
|
|
417
417
|
<tbody>
|
|
@@ -445,67 +445,67 @@
|
|
|
445
445
|
|
|
446
446
|
</tbody>
|
|
447
447
|
</table>
|
|
448
|
-
|
|
449
|
-
<h3>packages/ecl/components/ecl-site-header/login/ecl-site-header-login.component.ts</h3>
|
|
450
|
-
<section data-compodoc="block-properties">
|
|
451
|
-
<h3></h3> <table class="table table-sm table-bordered">
|
|
448
|
+
<table class="table table-sm table-bordered">
|
|
452
449
|
<tbody>
|
|
453
450
|
<tr>
|
|
454
451
|
<td class="col-md-4">
|
|
455
|
-
<a name="
|
|
452
|
+
<a name="RESIZE_DEBOUNCE"></a>
|
|
456
453
|
<span class="name">
|
|
457
|
-
<span ><b>
|
|
458
|
-
<a href="#
|
|
454
|
+
<span ><b>RESIZE_DEBOUNCE</b></span>
|
|
455
|
+
<a href="#RESIZE_DEBOUNCE"><span class="icon ion-ios-link"></span></a>
|
|
459
456
|
</span>
|
|
460
457
|
</td>
|
|
461
458
|
</tr>
|
|
462
459
|
<tr>
|
|
463
460
|
<td class="col-md-4">
|
|
464
|
-
<i>Type : </i> <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/
|
|
461
|
+
<i>Type : </i> <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/number" target="_blank" >number</a></code>
|
|
465
462
|
|
|
466
463
|
</td>
|
|
467
464
|
</tr>
|
|
468
465
|
<tr>
|
|
469
466
|
<td class="col-md-4">
|
|
470
|
-
<i>Default value : </i><code
|
|
467
|
+
<i>Default value : </i><code>200</code>
|
|
471
468
|
</td>
|
|
472
469
|
</tr>
|
|
473
470
|
|
|
474
471
|
<tr>
|
|
475
472
|
<td class="col-md-4">
|
|
476
|
-
<div class="io-description"><p>
|
|
473
|
+
<div class="io-description"><p>Debounce for the resize recomputation, matching ECL's <code>handleResize</code>.</p>
|
|
477
474
|
</div>
|
|
478
475
|
</td>
|
|
479
476
|
</tr>
|
|
480
477
|
|
|
481
478
|
</tbody>
|
|
482
479
|
</table>
|
|
483
|
-
|
|
480
|
+
</section>
|
|
481
|
+
<h3>packages/ecl/components/ecl-site-header/language/ecl-site-header-language.component.ts</h3>
|
|
482
|
+
<section data-compodoc="block-properties">
|
|
483
|
+
<h3></h3> <table class="table table-sm table-bordered">
|
|
484
484
|
<tbody>
|
|
485
485
|
<tr>
|
|
486
486
|
<td class="col-md-4">
|
|
487
|
-
<a name="
|
|
487
|
+
<a name="ARROW_SIZE"></a>
|
|
488
488
|
<span class="name">
|
|
489
|
-
<span ><b>
|
|
490
|
-
<a href="#
|
|
489
|
+
<span ><b>ARROW_SIZE</b></span>
|
|
490
|
+
<a href="#ARROW_SIZE"><span class="icon ion-ios-link"></span></a>
|
|
491
491
|
</span>
|
|
492
492
|
</td>
|
|
493
493
|
</tr>
|
|
494
494
|
<tr>
|
|
495
495
|
<td class="col-md-4">
|
|
496
|
-
<i>Type : </i> <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/
|
|
496
|
+
<i>Type : </i> <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
|
|
497
497
|
|
|
498
498
|
</td>
|
|
499
499
|
</tr>
|
|
500
500
|
<tr>
|
|
501
501
|
<td class="col-md-4">
|
|
502
|
-
<i>Default value : </i><code
|
|
502
|
+
<i>Default value : </i><code>'0.5rem'</code>
|
|
503
503
|
</td>
|
|
504
504
|
</tr>
|
|
505
505
|
|
|
506
506
|
<tr>
|
|
507
507
|
<td class="col-md-4">
|
|
508
|
-
<div class="io-description"><p>
|
|
508
|
+
<div class="io-description"><p>Half the arrow's own width, matching ECL's <code>arrowSize</code>.</p>
|
|
509
509
|
</div>
|
|
510
510
|
</td>
|
|
511
511
|
</tr>
|
package/docs/properties.html
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { DOCUMENT, isPlatformBrowser } from '@angular/common';
|
|
2
2
|
import * as i0 from '@angular/core';
|
|
3
3
|
import { signal, contentChild, output, inject, PLATFORM_ID, Component } from '@angular/core';
|
|
4
|
+
import { outputToObservable } from '@angular/core/rxjs-interop';
|
|
4
5
|
import { EuiAppShellService, CssUtils } from '@eui/core';
|
|
5
6
|
import { EclSiteHeaderLanguageComponent } from '@eui/ecl/components/ecl-site-header';
|
|
6
7
|
import { EclBaseEvent, ECLBaseDirective, EclRtlService } from '@eui/ecl/core';
|
|
@@ -91,7 +92,10 @@ class EclAppComponent extends ECLBaseDirective {
|
|
|
91
92
|
});
|
|
92
93
|
}
|
|
93
94
|
handleUIEvents() {
|
|
94
|
-
this.eclSiteHeaderLanguage()
|
|
95
|
+
const eclSiteHeaderLanguage = this.eclSiteHeaderLanguage();
|
|
96
|
+
if (!eclSiteHeaderLanguage)
|
|
97
|
+
return;
|
|
98
|
+
outputToObservable(eclSiteHeaderLanguage.languageSelected)
|
|
95
99
|
.pipe(takeUntil(this.destroy$))
|
|
96
100
|
.subscribe((evt) => {
|
|
97
101
|
this.languageDismiss.emit(new EclAppLanguageDismissEvent(evt.language));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eui-ecl-components-ecl-app.mjs","sources":["../../components/ecl-app/ecl-app.component.ts","../../components/ecl-app/ecl-app.component.html","../../components/ecl-app/index.ts","../../components/ecl-app/eui-ecl-components-ecl-app.ts"],"sourcesContent":["import { DOCUMENT, isPlatformBrowser } from '@angular/common';\nimport { AfterViewInit, Component, contentChild, OnDestroy, OnInit, PLATFORM_ID, inject, output, signal } from '@angular/core';\nimport { CssUtils, EuiAppShellService } from '@eui/core';\nimport { EuiLanguage } from '@eui/base';\nimport { EclSiteHeaderLanguageComponent, EclSiteHeaderLanguageSelectedEvent } from '@eui/ecl/components/ecl-site-header';\nimport { ECLBaseDirective, EclBaseEvent, EclRtlService } from '@eui/ecl/core';\nimport { fromEvent, Subject } from 'rxjs';\nimport { debounceTime, takeUntil } from 'rxjs/operators';\n\n/**\n * The wrapper component for an ecl application. Has some important global properties.\n */\nexport class EclAppLanguageDismissEvent extends EclBaseEvent {\n constructor(public language?: EuiLanguage) {\n super();\n }\n}\n\n@Component({\n selector: 'ecl-app',\n templateUrl: './ecl-app.component.html',\n host: {\n '[attr.dir]': 'textDirection()',\n },\n})\nexport class EclAppComponent extends ECLBaseDirective implements OnInit, AfterViewInit, OnDestroy {\n /**\n * Text direction, by default is 'ltr' - left-to-write. Can also be 'rtl' - right-to-left, which will\n * make all components within <ecl-app> to lign to the right, and apply some special styling and functionality.\n */\n readonly textDirection = signal('ltr');\n\n readonly eclSiteHeaderLanguage = contentChild(EclSiteHeaderLanguageComponent);\n\n readonly languageDismiss = output<EclAppLanguageDismissEvent>();\n\n protected destroy$: Subject<boolean> = new Subject<boolean>();\n private readonly eclRtlService = inject(EclRtlService);\n private readonly document = inject<Document>(DOCUMENT);\n private readonly platformId = inject(PLATFORM_ID);\n private readonly appShellService = inject(EuiAppShellService);\n\n ngOnInit(): void {\n\n // Only initialize CSS vars if no parent app shell is already active\n const isNestedInAppShell = this.appShellService.state.hasHeader || this.appShellService.state.hasSidebar || this.appShellService.state.hasToolbar;\n if (!isNestedInAppShell) {\n CssUtils.initCssVars(this.document, this.platformId);\n }\n if (isPlatformBrowser(this.platformId)) {\n const browserAgent = window.navigator.userAgent.toLowerCase();\n\n this.appShellService.setState({\n ...this.appShellService.state,\n windowHeight: window.innerHeight,\n windowWidth: window.innerWidth,\n deviceInfo: {\n isChrome: browserAgent.indexOf('chrome') > -1,\n isIE: browserAgent.indexOf('trident') > -1,\n isFF: browserAgent.indexOf('firefox') > -1,\n },\n appBaseFontSize: this.appShellService.getBaseFontSize(),\n });\n }\n\n if (isPlatformBrowser(this.platformId)) {\n fromEvent(window, 'resize')\n .pipe(debounceTime(50), takeUntil(this.destroy$))\n .subscribe(() => {\n this.appShellService?.setState({\n ...this.appShellService.state,\n windowHeight: window.innerHeight,\n windowWidth: window.innerWidth,\n });\n CssUtils.setAppViewportCssVars(this.platformId);\n });\n }\n }\n\n ngAfterViewInit(): void {\n // Adds global class, which is used to apply the correct styling for eui-21.\n CssUtils.setHtmlClass('eui-21', this.document);\n this.handleRtlChangeState();\n this.handleUIEvents();\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n }\n\n /**\n * Changes the text direction from 'ltr' to 'rtl' and vice versa.\n */\n private handleRtlChangeState(): void {\n this.eclRtlService.currentRtlState$.pipe(takeUntil(this.destroy$)).subscribe((rtlState) => {\n if (rtlState) {\n this.textDirection.set('rtl');\n } else {\n this.textDirection.set('ltr');\n }\n });\n }\n\n private handleUIEvents(): void {\n this.eclSiteHeaderLanguage()
|
|
1
|
+
{"version":3,"file":"eui-ecl-components-ecl-app.mjs","sources":["../../components/ecl-app/ecl-app.component.ts","../../components/ecl-app/ecl-app.component.html","../../components/ecl-app/index.ts","../../components/ecl-app/eui-ecl-components-ecl-app.ts"],"sourcesContent":["import { DOCUMENT, isPlatformBrowser } from '@angular/common';\nimport { AfterViewInit, Component, contentChild, OnDestroy, OnInit, PLATFORM_ID, inject, output, signal } from '@angular/core';\nimport { outputToObservable } from '@angular/core/rxjs-interop';\nimport { CssUtils, EuiAppShellService } from '@eui/core';\nimport { EuiLanguage } from '@eui/base';\nimport { EclSiteHeaderLanguageComponent, EclSiteHeaderLanguageSelectedEvent } from '@eui/ecl/components/ecl-site-header';\nimport { ECLBaseDirective, EclBaseEvent, EclRtlService } from '@eui/ecl/core';\nimport { fromEvent, Subject } from 'rxjs';\nimport { debounceTime, takeUntil } from 'rxjs/operators';\n\n/**\n * The wrapper component for an ecl application. Has some important global properties.\n */\nexport class EclAppLanguageDismissEvent extends EclBaseEvent {\n constructor(public language?: EuiLanguage) {\n super();\n }\n}\n\n@Component({\n selector: 'ecl-app',\n templateUrl: './ecl-app.component.html',\n host: {\n '[attr.dir]': 'textDirection()',\n },\n})\nexport class EclAppComponent extends ECLBaseDirective implements OnInit, AfterViewInit, OnDestroy {\n /**\n * Text direction, by default is 'ltr' - left-to-write. Can also be 'rtl' - right-to-left, which will\n * make all components within <ecl-app> to lign to the right, and apply some special styling and functionality.\n */\n readonly textDirection = signal('ltr');\n\n readonly eclSiteHeaderLanguage = contentChild(EclSiteHeaderLanguageComponent);\n\n readonly languageDismiss = output<EclAppLanguageDismissEvent>();\n\n protected destroy$: Subject<boolean> = new Subject<boolean>();\n private readonly eclRtlService = inject(EclRtlService);\n private readonly document = inject<Document>(DOCUMENT);\n private readonly platformId = inject(PLATFORM_ID);\n private readonly appShellService = inject(EuiAppShellService);\n\n ngOnInit(): void {\n\n // Only initialize CSS vars if no parent app shell is already active\n const isNestedInAppShell = this.appShellService.state.hasHeader || this.appShellService.state.hasSidebar || this.appShellService.state.hasToolbar;\n if (!isNestedInAppShell) {\n CssUtils.initCssVars(this.document, this.platformId);\n }\n if (isPlatformBrowser(this.platformId)) {\n const browserAgent = window.navigator.userAgent.toLowerCase();\n\n this.appShellService.setState({\n ...this.appShellService.state,\n windowHeight: window.innerHeight,\n windowWidth: window.innerWidth,\n deviceInfo: {\n isChrome: browserAgent.indexOf('chrome') > -1,\n isIE: browserAgent.indexOf('trident') > -1,\n isFF: browserAgent.indexOf('firefox') > -1,\n },\n appBaseFontSize: this.appShellService.getBaseFontSize(),\n });\n }\n\n if (isPlatformBrowser(this.platformId)) {\n fromEvent(window, 'resize')\n .pipe(debounceTime(50), takeUntil(this.destroy$))\n .subscribe(() => {\n this.appShellService?.setState({\n ...this.appShellService.state,\n windowHeight: window.innerHeight,\n windowWidth: window.innerWidth,\n });\n CssUtils.setAppViewportCssVars(this.platformId);\n });\n }\n }\n\n ngAfterViewInit(): void {\n // Adds global class, which is used to apply the correct styling for eui-21.\n CssUtils.setHtmlClass('eui-21', this.document);\n this.handleRtlChangeState();\n this.handleUIEvents();\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n }\n\n /**\n * Changes the text direction from 'ltr' to 'rtl' and vice versa.\n */\n private handleRtlChangeState(): void {\n this.eclRtlService.currentRtlState$.pipe(takeUntil(this.destroy$)).subscribe((rtlState) => {\n if (rtlState) {\n this.textDirection.set('rtl');\n } else {\n this.textDirection.set('ltr');\n }\n });\n }\n\n private handleUIEvents(): void {\n const eclSiteHeaderLanguage = this.eclSiteHeaderLanguage();\n if (!eclSiteHeaderLanguage) return;\n\n outputToObservable(eclSiteHeaderLanguage.languageSelected)\n .pipe(takeUntil(this.destroy$))\n .subscribe((evt: EclSiteHeaderLanguageSelectedEvent) => {\n this.languageDismiss.emit(new EclAppLanguageDismissEvent(evt.language));\n });\n }\n}\n","<ng-content></ng-content>\n","import { EclAppComponent } from './ecl-app.component';\n\nexport * from './ecl-app.component';\n\nexport const EUI_ECL_APP = [\n EclAppComponent,\n] as const;","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -18,7 +18,8 @@ class EclIconComponent {
|
|
|
18
18
|
constructor() {
|
|
19
19
|
/**
|
|
20
20
|
* Defines the icon set to use.
|
|
21
|
-
* Available sets: `default`, `social`, `social-media`, `flag`,
|
|
21
|
+
* Available sets: `default`, `social`, `social-media`, `social-media-color`, `flag`,
|
|
22
|
+
* `flag-non-members`, `phosphor`, `phosphor-fill`.
|
|
22
23
|
* Defaults to `'default'`.
|
|
23
24
|
*/
|
|
24
25
|
this.iconSet = input('default', /* @ts-ignore */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eui-ecl-components-ecl-icon.mjs","sources":["../../components/ecl-icon/ecl-icon.component.ts","../../components/ecl-icon/ecl-icon.component.html","../../components/ecl-icon/index.ts","../../components/ecl-icon/eui-ecl-components-ecl-icon.ts"],"sourcesContent":["import { isPlatformBrowser, NgClass } from '@angular/common';\nimport {\n afterNextRender,\n booleanAttribute,\n Component,\n computed,\n ElementRef,\n HostBinding,\n inject,\n input,\n OnChanges,\n OnDestroy,\n OnInit,\n PLATFORM_ID,\n Renderer2,\n signal,\n SimpleChanges,\n viewChild,\n} from '@angular/core';\nimport { ECLBaseDirective, EclThemeService } from '@eui/ecl/core';\n\n/**\n * ECL icon component – renders SVG icons from various sets depending on current theme.\n * Integrates with ECL theming and supports accessibility options.\n */\n@Component({\n selector: 'ecl-icon',\n templateUrl: './ecl-icon.component.html',\n hostDirectives: [\n {\n directive: ECLBaseDirective,\n },\n ],\n imports: [NgClass],\n providers: [EclThemeService],\n host: {\n '[class.ecl-icon--flip-horizontal]': 'isFlipHorizontal()',\n },\n})\nexport class EclIconComponent implements OnInit, OnChanges, OnDestroy {\n /**\n * Defines the icon set to use.\n * Available sets: `default`, `social`, `social-media`, `flag`, or a custom URL prefix.\n * Defaults to `'default'`.\n */\n iconSet = input<'default' | 'social' | 'social-media' | 'social-media-color' | 'flag' | 'flag-non-members' |\n 'phosphor' | 'phosphor-fill' | string>('default');\n\n /**\n * Name of the icon to render from the selected set.\n */\n icon = input<string>();\n\n /**\n * Size of the icon.\n * Supported values: `'2xs'`, `'xs'`, `'s'`, `'m'`, `'l'`, `'xl'`, `'2xl'`, `'fluid'`.\n * Defaults to `'xs'`.\n */\n size = input<'2xs' | 'xs' | 's' | 'm' | 'l' | 'xl' | '2xl' | 'fluid' | string>('xs');\n\n /**\n * Applies color styling to the icon.\n * Use `'inverted'` for icons on dark backgrounds, or `'primary'` for emphasis.\n */\n color = input<'inverted' | 'primary' | null>(null);\n\n /**\n * Adds a transformation modifier to the icon (e.g., rotation).\n */\n transform = input<string>();\n\n /**\n * ID reference for an external element that labels this icon for screen readers.\n */\n readonly ariaLabelledby = input<string>(undefined);\n\n /**\n * ARIA role of the icon. If a `title` is provided and no role is defined, defaults to `'img'`.\n */\n readonly role = input<string>(undefined);\n\n /**\n * Title used for accessibility. Also affects `aria-hidden` and `role`.\n */\n readonly title = input<string>(undefined);\n\n /**\n * Determines whether the icon should be hidden from assistive technologies.\n * Defaults to `true` unless a title is provided.\n */\n readonly ariaHidden = input<boolean, unknown>(undefined, { transform: booleanAttribute });\n\n /**\n * Controls whether the icon is focusable via keyboard.\n * Defaults to `false`.\n */\n readonly focusable = input(false, { transform: booleanAttribute });\n\n /**\n * Resolved role: uses the explicit `role` input if provided,\n * otherwise defaults to `'img'` when a `title` is set.\n */\n readonly effectiveRole = computed<string | undefined>(() => {\n const explicit = this.role();\n if (explicit !== undefined) return explicit;\n return this.title() !== undefined ? 'img' : undefined;\n });\n\n /**\n * Resolved aria-hidden: uses the explicit `ariaHidden` input if provided,\n * otherwise hides the icon unless a `title` is set.\n */\n readonly effectiveAriaHidden = computed<boolean>(() => {\n const explicit = this.ariaHidden();\n if (explicit !== undefined) return explicit;\n return this.title() === undefined;\n });\n\n /**\n * Flips the icon horizontally if set to `true`.\n */\n readonly isFlipHorizontal = input(false, { transform: booleanAttribute });\n\n /**\n * Adds a dark background utility class if the color is set to `'inverted'`.\n */\n @HostBinding('class.ecl-u-bg-grey')\n get isColorInverted(): boolean {\n return this.color() === 'inverted';\n }\n\n readonly svgEl = viewChild<ElementRef>('svg');\n\n iconUrl = signal<string>('');\n baseDirective = inject(ECLBaseDirective);\n el = inject(ElementRef);\n private renderer = inject(Renderer2);\n private platformId = inject(PLATFORM_ID);\n\n /**\n * Extra classes added programmatically by parent components\n * (button, link, etc.)\n */\n readonly extraClasses = signal<string>('');\n\n /**\n * Real classes currently present on <ecl-icon>.\n * To support [class.foo] / [ngClass].\n */\n readonly hostClasses = signal<string>('');\n\n readonly svgClasses = computed<Record<string, boolean>>(() => {\n return {\n [this.baseDirective.getCssClasses('ecl-icon')]: true,\n [`ecl-icon--${this.size()}`]: !!this.size(),\n [`ecl-icon--${this.transform()}`]: !!this.transform(),\n [`ecl-icon--${this.color()}`]: !!this.color(),\n ...this.toClassRecord(this.hostClasses()),\n ...this.toClassRecord(this.extraClasses()),\n };\n });\n\n private classObserver?: MutationObserver;\n\n constructor() {\n afterNextRender(() => {\n this.detachHostAndPromoteSvg();\n this.syncHostClassesFromDom();\n this.observeHostClassChanges();\n });\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['icon']) {\n this.initiateIconUrl();\n }\n }\n\n ngOnInit(): void {\n this.initiateIconUrl();\n }\n\n ngOnDestroy(): void {\n this.classObserver?.disconnect();\n if (!isPlatformBrowser(this.platformId)) return;\n\n try {\n const svgNative = this.svgEl()?.nativeElement as SVGElement | null;\n const parent = svgNative?.parentElement;\n if (svgNative && parent) parent.removeChild(svgNative);\n } catch {\n /* ignore */\n }\n }\n\n addExtraClass(className: string): void {\n const classes = new Set([\n ...this.tokenize(this.extraClasses()),\n ...this.tokenize(className),\n ]);\n this.extraClasses.set(Array.from(classes).join(' '));\n }\n\n removeExtraClass(className: string): void {\n const classes = this.tokenize(this.extraClasses()).filter((c) => c !== className);\n this.extraClasses.set(classes.join(' '));\n }\n\n setExtraClasses(classes: string): void {\n this.extraClasses.set(classes ?? '');\n }\n\n private syncHostClassesFromDom(): void {\n const host = this.el.nativeElement;\n this.hostClasses.set(host.className || '');\n }\n\n private observeHostClassChanges(): void {\n const host = this.el.nativeElement;\n\n this.classObserver = new MutationObserver(() => {\n this.hostClasses.set(host.className || '');\n });\n\n this.classObserver.observe(host, {\n attributes: true,\n attributeFilter: ['class'],\n });\n }\n\n private toClassRecord(classes?: string | null): Record<string, boolean> {\n return Object.fromEntries(\n this.tokenize(classes).map(c => [c, true])\n );\n }\n\n private tokenize(classes: string | null | undefined): string[] {\n return (classes ?? '')\n .split(/\\s+/)\n .filter(Boolean);\n }\n\n private detachHostAndPromoteSvg(): void {\n const hostEl = this.el.nativeElement as HTMLElement | null;\n const svgNative = this.svgEl()?.nativeElement as SVGElement | null;\n if (!hostEl || !svgNative) return;\n\n const hostParentEl = hostEl.parentElement;\n if (!hostParentEl) return;\n\n // add the svg and remove the parent from the DOM\n this.renderer.setStyle(hostEl, 'visibility', 'hidden');\n hostEl.after(svgNative);\n this.renderer.removeChild(hostParentEl, hostEl);\n }\n\n private initiateIconUrl(): void {\n switch (this.iconSet()) {\n case 'default':\n this.iconUrl.set(`assets/images/ecl/icons/sprite.svg#${this.icon()}`);\n break;\n case 'social': // TODO: Remove this in the next version.\n this.iconUrl.set(`assets/images/ecl/networks/sprite.svg#${this.icon()}`);\n break;\n case 'social-media':\n this.iconUrl.set(`assets/images/ecl/networks/sprite.svg#${this.icon()}`);\n break;\n case 'social-media-color':\n this.iconUrl.set(`assets/images/ecl/networks-color/sprite.svg#${this.icon()}`);\n break;\n case 'flag':\n this.iconUrl.set(`assets/images/ecl/icons-flag/sprites/icons-flag.svg#${this.icon()}`);\n break;\n case 'flag-non-members':\n this.iconUrl.set(`assets/images/ecl/icons-flag/sprites/icons-flag-non-members.svg#${this.icon()}`);\n break;\n case 'phosphor':\n this.iconUrl.set(`assets/icons/sprites/regular.svg#${this.icon()}`);\n break;\n case 'phosphor-fill':\n this.iconUrl.set(`assets/icons/sprites/fill.svg#${this.icon()}`);\n break;\n default:\n this.iconUrl.set(`assets/images/ecl/icons/sprite.svg#${this.icon()}`);\n }\n }\n}\n","<svg\n #svg\n [ngClass]=\"svgClasses()\"\n [attr.aria-hidden]=\"effectiveAriaHidden()\"\n [attr.aria-labelledby]=\"ariaLabelledby() || null\"\n [attr.role]=\"effectiveRole() || null\"\n [attr.focusable]=\"focusable()\">\n @if (title()) {\n <title>{{title()}}</title>\n }\n <use [attr.href]=\"iconUrl()\"></use>\n <ng-content></ng-content>\n</svg>\n","import { EclIconComponent } from './ecl-icon.component';\n\nexport * from './ecl-icon.component';\n\nexport const EUI_ECL_ICON = [\n EclIconComponent,\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-icon.mjs","sources":["../../components/ecl-icon/ecl-icon.component.ts","../../components/ecl-icon/ecl-icon.component.html","../../components/ecl-icon/index.ts","../../components/ecl-icon/eui-ecl-components-ecl-icon.ts"],"sourcesContent":["import { isPlatformBrowser, NgClass } from '@angular/common';\nimport {\n afterNextRender,\n booleanAttribute,\n Component,\n computed,\n ElementRef,\n HostBinding,\n inject,\n input,\n OnChanges,\n OnDestroy,\n OnInit,\n PLATFORM_ID,\n Renderer2,\n signal,\n SimpleChanges,\n viewChild,\n} from '@angular/core';\nimport { ECLBaseDirective, EclThemeService } from '@eui/ecl/core';\n\n/**\n * Available icon sets supported by {@link EclIconComponent}.\n */\nexport type EclIconSet =\n | 'default'\n | 'social'\n | 'social-media'\n | 'social-media-color'\n | 'flag'\n | 'flag-non-members'\n | 'phosphor'\n | 'phosphor-fill';\n\n/**\n * ECL icon component – renders SVG icons from various sets depending on current theme.\n * Integrates with ECL theming and supports accessibility options.\n */\n@Component({\n selector: 'ecl-icon',\n templateUrl: './ecl-icon.component.html',\n hostDirectives: [\n {\n directive: ECLBaseDirective,\n },\n ],\n imports: [NgClass],\n providers: [EclThemeService],\n host: {\n '[class.ecl-icon--flip-horizontal]': 'isFlipHorizontal()',\n },\n})\nexport class EclIconComponent implements OnInit, OnChanges, OnDestroy {\n /**\n * Defines the icon set to use.\n * Available sets: `default`, `social`, `social-media`, `social-media-color`, `flag`,\n * `flag-non-members`, `phosphor`, `phosphor-fill`.\n * Defaults to `'default'`.\n */\n iconSet = input<EclIconSet>('default');\n\n /**\n * Name of the icon to render from the selected set.\n */\n icon = input<string>();\n\n /**\n * Size of the icon.\n * Supported values: `'2xs'`, `'xs'`, `'s'`, `'m'`, `'l'`, `'xl'`, `'2xl'`, `'fluid'`.\n * Defaults to `'xs'`.\n */\n size = input<'2xs' | 'xs' | 's' | 'm' | 'l' | 'xl' | '2xl' | 'fluid' | string>('xs');\n\n /**\n * Applies color styling to the icon.\n * Use `'inverted'` for icons on dark backgrounds, or `'primary'` for emphasis.\n */\n color = input<'inverted' | 'primary' | null>(null);\n\n /**\n * Adds a transformation modifier to the icon (e.g., rotation).\n */\n transform = input<string>();\n\n /**\n * ID reference for an external element that labels this icon for screen readers.\n */\n readonly ariaLabelledby = input<string>(undefined);\n\n /**\n * ARIA role of the icon. If a `title` is provided and no role is defined, defaults to `'img'`.\n */\n readonly role = input<string>(undefined);\n\n /**\n * Title used for accessibility. Also affects `aria-hidden` and `role`.\n */\n readonly title = input<string>(undefined);\n\n /**\n * Determines whether the icon should be hidden from assistive technologies.\n * Defaults to `true` unless a title is provided.\n */\n readonly ariaHidden = input<boolean, unknown>(undefined, { transform: booleanAttribute });\n\n /**\n * Controls whether the icon is focusable via keyboard.\n * Defaults to `false`.\n */\n readonly focusable = input(false, { transform: booleanAttribute });\n\n /**\n * Resolved role: uses the explicit `role` input if provided,\n * otherwise defaults to `'img'` when a `title` is set.\n */\n readonly effectiveRole = computed<string | undefined>(() => {\n const explicit = this.role();\n if (explicit !== undefined) return explicit;\n return this.title() !== undefined ? 'img' : undefined;\n });\n\n /**\n * Resolved aria-hidden: uses the explicit `ariaHidden` input if provided,\n * otherwise hides the icon unless a `title` is set.\n */\n readonly effectiveAriaHidden = computed<boolean>(() => {\n const explicit = this.ariaHidden();\n if (explicit !== undefined) return explicit;\n return this.title() === undefined;\n });\n\n /**\n * Flips the icon horizontally if set to `true`.\n */\n readonly isFlipHorizontal = input(false, { transform: booleanAttribute });\n\n /**\n * Adds a dark background utility class if the color is set to `'inverted'`.\n */\n @HostBinding('class.ecl-u-bg-grey')\n get isColorInverted(): boolean {\n return this.color() === 'inverted';\n }\n\n readonly svgEl = viewChild<ElementRef>('svg');\n\n iconUrl = signal<string>('');\n baseDirective = inject(ECLBaseDirective);\n el = inject(ElementRef);\n private renderer = inject(Renderer2);\n private platformId = inject(PLATFORM_ID);\n\n /**\n * Extra classes added programmatically by parent components\n * (button, link, etc.)\n */\n readonly extraClasses = signal<string>('');\n\n /**\n * Real classes currently present on <ecl-icon>.\n * To support [class.foo] / [ngClass].\n */\n readonly hostClasses = signal<string>('');\n\n readonly svgClasses = computed<Record<string, boolean>>(() => {\n return {\n [this.baseDirective.getCssClasses('ecl-icon')]: true,\n [`ecl-icon--${this.size()}`]: !!this.size(),\n [`ecl-icon--${this.transform()}`]: !!this.transform(),\n [`ecl-icon--${this.color()}`]: !!this.color(),\n ...this.toClassRecord(this.hostClasses()),\n ...this.toClassRecord(this.extraClasses()),\n };\n });\n\n private classObserver?: MutationObserver;\n\n constructor() {\n afterNextRender(() => {\n this.detachHostAndPromoteSvg();\n this.syncHostClassesFromDom();\n this.observeHostClassChanges();\n });\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['icon']) {\n this.initiateIconUrl();\n }\n }\n\n ngOnInit(): void {\n this.initiateIconUrl();\n }\n\n ngOnDestroy(): void {\n this.classObserver?.disconnect();\n if (!isPlatformBrowser(this.platformId)) return;\n\n try {\n const svgNative = this.svgEl()?.nativeElement as SVGElement | null;\n const parent = svgNative?.parentElement;\n if (svgNative && parent) parent.removeChild(svgNative);\n } catch {\n /* ignore */\n }\n }\n\n addExtraClass(className: string): void {\n const classes = new Set([\n ...this.tokenize(this.extraClasses()),\n ...this.tokenize(className),\n ]);\n this.extraClasses.set(Array.from(classes).join(' '));\n }\n\n removeExtraClass(className: string): void {\n const classes = this.tokenize(this.extraClasses()).filter((c) => c !== className);\n this.extraClasses.set(classes.join(' '));\n }\n\n setExtraClasses(classes: string): void {\n this.extraClasses.set(classes ?? '');\n }\n\n private syncHostClassesFromDom(): void {\n const host = this.el.nativeElement;\n this.hostClasses.set(host.className || '');\n }\n\n private observeHostClassChanges(): void {\n const host = this.el.nativeElement;\n\n this.classObserver = new MutationObserver(() => {\n this.hostClasses.set(host.className || '');\n });\n\n this.classObserver.observe(host, {\n attributes: true,\n attributeFilter: ['class'],\n });\n }\n\n private toClassRecord(classes?: string | null): Record<string, boolean> {\n return Object.fromEntries(\n this.tokenize(classes).map(c => [c, true])\n );\n }\n\n private tokenize(classes: string | null | undefined): string[] {\n return (classes ?? '')\n .split(/\\s+/)\n .filter(Boolean);\n }\n\n private detachHostAndPromoteSvg(): void {\n const hostEl = this.el.nativeElement as HTMLElement | null;\n const svgNative = this.svgEl()?.nativeElement as SVGElement | null;\n if (!hostEl || !svgNative) return;\n\n const hostParentEl = hostEl.parentElement;\n if (!hostParentEl) return;\n\n // add the svg and remove the parent from the DOM\n this.renderer.setStyle(hostEl, 'visibility', 'hidden');\n hostEl.after(svgNative);\n this.renderer.removeChild(hostParentEl, hostEl);\n }\n\n private initiateIconUrl(): void {\n switch (this.iconSet()) {\n case 'default':\n this.iconUrl.set(`assets/images/ecl/icons/sprite.svg#${this.icon()}`);\n break;\n case 'social': // TODO: Remove this in the next version.\n this.iconUrl.set(`assets/images/ecl/networks/sprite.svg#${this.icon()}`);\n break;\n case 'social-media':\n this.iconUrl.set(`assets/images/ecl/networks/sprite.svg#${this.icon()}`);\n break;\n case 'social-media-color':\n this.iconUrl.set(`assets/images/ecl/networks-color/sprite.svg#${this.icon()}`);\n break;\n case 'flag':\n this.iconUrl.set(`assets/images/ecl/icons-flag/sprites/icons-flag.svg#${this.icon()}`);\n break;\n case 'flag-non-members':\n this.iconUrl.set(`assets/images/ecl/icons-flag/sprites/icons-flag-non-members.svg#${this.icon()}`);\n break;\n case 'phosphor':\n this.iconUrl.set(`assets/icons/sprites/regular.svg#${this.icon()}`);\n break;\n case 'phosphor-fill':\n this.iconUrl.set(`assets/icons/sprites/fill.svg#${this.icon()}`);\n break;\n default:\n this.iconUrl.set(`assets/images/ecl/icons/sprite.svg#${this.icon()}`);\n }\n }\n}\n","<svg\n #svg\n [ngClass]=\"svgClasses()\"\n [attr.aria-hidden]=\"effectiveAriaHidden()\"\n [attr.aria-labelledby]=\"ariaLabelledby() || null\"\n [attr.role]=\"effectiveRole() || null\"\n [attr.focusable]=\"focusable()\">\n @if (title()) {\n <title>{{title()}}</title>\n }\n <use [attr.href]=\"iconUrl()\"></use>\n <ng-content></ng-content>\n</svg>\n","import { EclIconComponent } from './ecl-icon.component';\n\nexport * from './ecl-icon.component';\n\nexport const EUI_ECL_ICON = [\n EclIconComponent,\n] as const;","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|