@eui/ecl 21.0.0-alpha.30 → 21.0.0-alpha.32
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/assets/i18n-ecl/bg.json +1 -0
- package/assets/i18n-ecl/cs.json +1 -0
- package/assets/i18n-ecl/da.json +1 -0
- package/assets/i18n-ecl/de.json +1 -0
- package/assets/i18n-ecl/el.json +1 -0
- package/assets/i18n-ecl/en.json +1 -0
- package/assets/i18n-ecl/es.json +1 -0
- package/assets/i18n-ecl/et.json +1 -0
- package/assets/i18n-ecl/fi.json +1 -0
- package/assets/i18n-ecl/fr.json +1 -0
- package/assets/i18n-ecl/ga.json +1 -0
- package/assets/i18n-ecl/hr.json +1 -0
- package/assets/i18n-ecl/hu.json +1 -0
- package/assets/i18n-ecl/it.json +1 -0
- package/assets/i18n-ecl/lt.json +1 -0
- package/assets/i18n-ecl/lv.json +1 -0
- package/assets/i18n-ecl/mt.json +1 -0
- package/assets/i18n-ecl/nl.json +1 -0
- package/assets/i18n-ecl/pl.json +1 -0
- package/assets/i18n-ecl/pt.json +1 -0
- package/assets/i18n-ecl/ro.json +1 -0
- package/assets/i18n-ecl/sk.json +1 -0
- package/assets/i18n-ecl/sl.json +1 -0
- package/assets/i18n-ecl/sv.json +1 -0
- package/components/ecl-accordion/index.d.ts +8 -4
- package/components/ecl-accordion/index.d.ts.map +1 -1
- package/components/ecl-banner/index.d.ts +8 -1
- package/components/ecl-banner/index.d.ts.map +1 -1
- package/components/ecl-divider/index.d.ts +31 -0
- package/components/ecl-divider/index.d.ts.map +1 -0
- package/components/ecl-divider/package.json +3 -0
- package/components/ecl-featured/index.d.ts +13 -35
- package/components/ecl-featured/index.d.ts.map +1 -1
- package/components/ecl-feedback-message/index.d.ts.map +1 -1
- package/components/ecl-mega-menu/index.d.ts +7 -3
- package/components/ecl-mega-menu/index.d.ts.map +1 -1
- package/components/ecl-menu/index.d.ts +12 -4
- package/components/ecl-menu/index.d.ts.map +1 -1
- package/components/ecl-popover/index.d.ts +17 -12
- package/components/ecl-popover/index.d.ts.map +1 -1
- package/components/ecl-site-footer/index.d.ts +61 -32
- package/components/ecl-site-footer/index.d.ts.map +1 -1
- package/components/ecl-site-header/index.d.ts +6 -3
- package/components/ecl-site-header/index.d.ts.map +1 -1
- package/components/ecl-social-media-follow/index.d.ts +3 -1
- package/components/ecl-social-media-follow/index.d.ts.map +1 -1
- package/core/index.d.ts +7 -1
- package/core/index.d.ts.map +1 -1
- package/docs/changelog.html +152 -0
- package/docs/components/EclAccordionComponent.html +43 -2
- package/docs/components/EclAccordionItemComponent.html +3 -3
- package/docs/components/EclAppComponent.html +2 -2
- package/docs/components/EclBannerComponent.html +33 -2
- package/docs/components/EclBlockquoteComponent.html +2 -2
- package/docs/components/EclBreadcrumbComponent.html +2 -2
- package/docs/components/EclBreadcrumbSegmentComponent.html +2 -2
- package/docs/components/EclButtonComponent.html +2 -2
- package/docs/components/EclCardBodyComponent.html +2 -2
- package/docs/components/EclCardComponent.html +2 -2
- package/docs/components/EclCarouselComponent.html +2 -2
- package/docs/components/EclCarouselItemComponent.html +2 -2
- package/docs/components/EclCategoryFilterComponent.html +2 -2
- package/docs/components/EclCategoryFilterItemComponent.html +2 -2
- package/docs/components/EclCategoryFilterListComponent.html +2 -2
- package/docs/components/EclCheckboxHelpComponent.html +2 -2
- package/docs/components/EclCheckboxLabelComponent.html +3 -3
- package/docs/components/EclContentBlockComponent.html +2 -2
- package/docs/components/EclContentItemComponent.html +2 -2
- package/docs/components/EclDateBlockComponent.html +2 -2
- package/docs/components/EclDescriptionListDefinitionComponent.html +2 -2
- package/docs/components/EclExpandableComponent.html +2 -2
- package/docs/components/EclFactFiguresComponent.html +2 -2
- package/docs/components/EclFactFiguresDescriptionComponent.html +2 -2
- package/docs/components/EclFactFiguresItemComponent.html +2 -2
- package/docs/components/EclFactFiguresTitleComponent.html +2 -2
- package/docs/components/EclFactFiguresValueComponent.html +2 -2
- package/docs/components/EclFactFiguresViewAllComponent.html +2 -2
- package/docs/components/EclFeaturedComponent.html +33 -15
- package/docs/components/EclFeaturedItemComponent.html +27 -3
- package/docs/components/EclFeaturedItemDescriptionComponent.html +2 -2
- package/docs/components/EclFileComponent.html +2 -2
- package/docs/components/EclFileItemComponent.html +2 -2
- package/docs/components/EclFileItemsComponent.html +2 -2
- package/docs/components/EclFileTaxonomyComponent.html +2 -2
- package/docs/components/EclFormGroupComponent.html +2 -2
- package/docs/components/EclFormLabelComponent.html +3 -3
- package/docs/components/EclGalleryComponent.html +3 -3
- package/docs/components/EclGalleryFooterComponent.html +2 -2
- package/docs/components/EclGalleryItemComponent.html +3 -3
- package/docs/components/EclIconComponent.html +2 -2
- package/docs/components/EclInpageNavigationComponent.html +2 -2
- package/docs/components/EclInpageNavigationItemComponent.html +2 -2
- package/docs/components/EclListIllustrationComponent.html +2 -2
- package/docs/components/EclListIllustrationItemComponent.html +2 -2
- package/docs/components/EclLoadingIndicatorComponent.html +2 -2
- package/docs/components/EclMediaContainerComponent.html +2 -2
- package/docs/components/EclMegaMenuComponent.html +46 -2
- package/docs/components/EclMegaMenuFeaturedComponent.html +2 -2
- package/docs/components/EclMegaMenuInfoComponent.html +2 -2
- package/docs/components/EclMegaMenuItemComponent.html +2 -2
- package/docs/components/EclMegaMenuSubitemComponent.html +2 -2
- package/docs/components/EclMenuComponent.html +194 -14
- package/docs/components/EclMenuItemComponent.html +3 -3
- package/docs/components/EclMenuMegaComponent.html +2 -2
- package/docs/components/EclMenuMegaItemComponent.html +2 -2
- package/docs/components/EclModalBodyComponent.html +2 -2
- package/docs/components/EclModalComponent.html +2 -2
- package/docs/components/EclModalFooterComponent.html +2 -2
- package/docs/components/EclModalHeaderComponent.html +2 -2
- package/docs/components/EclMultiselectComponent.html +2 -2
- package/docs/components/EclMultiselectDropdownComponent.html +2 -2
- package/docs/components/EclMultiselectInputComponent.html +2 -2
- package/docs/components/EclMultiselectOptgroupComponent.html +2 -2
- package/docs/components/EclMultiselectOptionComponent.html +2 -2
- package/docs/components/EclNavigationListComponent.html +2 -2
- package/docs/components/EclNavigationListItemComponent.html +2 -2
- package/docs/components/EclNewsTickerComponent.html +2 -2
- package/docs/components/EclNewsTickerItemComponent.html +2 -2
- package/docs/components/EclNotificationComponent.html +3 -3
- package/docs/components/EclPageHeaderComponent.html +2 -2
- package/docs/components/EclPaginationComponent.html +2 -2
- package/docs/components/EclPaginationItemComponent.html +2 -2
- package/docs/components/EclPopoverComponent.html +96 -27
- package/docs/components/EclRadioHelpComponent.html +2 -2
- package/docs/components/EclRadioLabelComponent.html +2 -2
- package/docs/components/EclRangeBubbleComponent.html +2 -2
- package/docs/components/EclRangeValueComponent.html +2 -2
- package/docs/components/EclRatingFieldComponent.html +2 -2
- package/docs/components/EclSearchFormComponent.html +3 -3
- package/docs/components/EclSelectContainerComponent.html +2 -2
- package/docs/components/EclSiteFooterComponent.html +47 -5
- package/docs/components/{EclSocialMediaShareComponent.html → EclSiteFooterCoreComponent.html} +31 -40
- package/docs/components/EclSiteFooterFixedContentEUComponent.html +2 -2
- package/docs/components/EclSiteFooterRowCommonComponent.html +647 -0
- package/docs/components/EclSiteHeaderActionComponent.html +2 -2
- package/docs/components/EclSiteHeaderBannerTopComponent.html +2 -2
- package/docs/components/EclSiteHeaderComponent.html +33 -3
- package/docs/components/EclSiteHeaderCustomActionComponent.html +2 -2
- package/docs/components/EclSiteHeaderEnvironmentComponent.html +2 -2
- package/docs/components/EclSiteHeaderLanguageComponent.html +3 -3
- package/docs/components/EclSiteHeaderLanguagePopoverComponent.html +3 -3
- package/docs/components/EclSiteHeaderLoginComponent.html +3 -3
- package/docs/components/EclSiteHeaderNotificationComponent.html +2 -2
- package/docs/components/EclSiteHeaderSearchComponent.html +2 -2
- package/docs/components/EclSocialMediaFollowComponent.html +2 -2
- package/docs/components/EclSocialMediaFollowItemComponent.html +16 -3
- package/docs/components/EclSplashPageComponent.html +2 -2
- package/docs/components/EclSplashPageLanguageCategoryComponent.html +2 -2
- package/docs/components/EclSplashPageLanguageContainerComponent.html +2 -2
- package/docs/components/EclSplashPageLanguageLinkComponent.html +2 -2
- package/docs/components/EclStickyContainerComponent.html +2 -2
- package/docs/components/EclTabComponent.html +2 -2
- package/docs/components/EclTabLabelComponent.html +2 -2
- package/docs/components/EclTabMoreComponent.html +2 -2
- package/docs/components/EclTableSortButtonComponent.html +2 -2
- package/docs/components/EclTabsComponent.html +2 -2
- package/docs/components/EclTagComponent.html +2 -2
- package/docs/components/EclTimelineComponent.html +2 -2
- package/docs/components/EclTimelineItemComponent.html +2 -2
- package/docs/components/EclTimelineItemTogglerComponent.html +2 -2
- package/docs/directives/EclBannerDescriptionLinkDirective.html +65 -1
- package/docs/directives/EclBannerTitleLinkDirective.html +64 -1
- package/docs/directives/{EclSeparatorDirective.html → EclDividerDirective.html} +4 -4
- package/docs/directives/EclSiteFooterColumnDirective.html +1 -1
- package/docs/directives/{EclSiteFooterContentDirective.html → EclSiteFooterDescriptionNameDirective.html} +10 -18
- package/docs/directives/EclSiteFooterRowDirective.html +1 -1
- package/docs/directives/EclSiteFooterSectionDirective.html +341 -8
- package/docs/directives/{EclFeaturedItemFooterLinkDirective.html → EclSiteFooterSocialMediaDirective.html} +14 -14
- package/docs/js/menu-wc.js +45 -112
- package/docs/js/menu-wc_es5.js +1 -1
- package/docs/js/search/search_index.js +2 -2
- package/docs/{classes/EclSocialMediaShareItemClickEvent.html → miscellaneous/functions.html} +56 -80
- package/docs/miscellaneous/variables.html +100 -104
- package/docs/modules/{EclSeparatorModule.html → EclDividerModule.html} +6 -6
- package/docs/modules.html +12 -24
- package/docs/overview.html +4 -4
- package/docs/properties.html +1 -1
- package/fesm2022/eui-ecl-components-ecl-accordion.mjs +63 -45
- package/fesm2022/eui-ecl-components-ecl-accordion.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-app.mjs +2 -2
- package/fesm2022/eui-ecl-components-ecl-app.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-banner.mjs +22 -6
- package/fesm2022/eui-ecl-components-ecl-banner.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-checkbox.mjs +2 -2
- package/fesm2022/eui-ecl-components-ecl-checkbox.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-divider.mjs +57 -0
- package/fesm2022/eui-ecl-components-ecl-divider.mjs.map +1 -0
- package/fesm2022/eui-ecl-components-ecl-featured.mjs +21 -83
- package/fesm2022/eui-ecl-components-ecl-featured.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-feedback-message.mjs +1 -0
- package/fesm2022/eui-ecl-components-ecl-feedback-message.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-form-label.mjs +2 -2
- package/fesm2022/eui-ecl-components-ecl-form-label.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-gallery.mjs +4 -4
- package/fesm2022/eui-ecl-components-ecl-gallery.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-mega-menu.mjs +45 -18
- package/fesm2022/eui-ecl-components-ecl-mega-menu.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-menu.mjs +57 -22
- package/fesm2022/eui-ecl-components-ecl-menu.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-notification.mjs +2 -2
- package/fesm2022/eui-ecl-components-ecl-notification.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-popover.mjs +169 -98
- package/fesm2022/eui-ecl-components-ecl-popover.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-search-form.mjs +2 -2
- package/fesm2022/eui-ecl-components-ecl-search-form.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-site-footer.mjs +251 -161
- package/fesm2022/eui-ecl-components-ecl-site-footer.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-site-header.mjs +43 -43
- package/fesm2022/eui-ecl-components-ecl-site-header.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-social-media-follow.mjs +7 -3
- package/fesm2022/eui-ecl-components-ecl-social-media-follow.mjs.map +1 -1
- package/fesm2022/eui-ecl-core.mjs +153 -139
- package/fesm2022/eui-ecl-core.mjs.map +1 -1
- package/fesm2022/eui-ecl.mjs +46 -49
- package/fesm2022/eui-ecl.mjs.map +1 -1
- package/index.d.ts +44 -45
- package/index.d.ts.map +1 -1
- package/package.json +43 -47
- package/components/ecl-separator/index.d.ts +0 -31
- package/components/ecl-separator/index.d.ts.map +0 -1
- package/components/ecl-separator/package.json +0 -3
- package/components/ecl-social-media-share/index.d.ts +0 -54
- package/components/ecl-social-media-share/index.d.ts.map +0 -1
- package/components/ecl-social-media-share/package.json +0 -3
- package/docs/components/EclFeaturedItemFooterComponent.html +0 -560
- package/docs/components/EclSiteFooterFixedContentECComponent.html +0 -591
- package/docs/components/EclSocialMediaShareItemComponent.html +0 -829
- package/docs/directives/EclFeaturedItemFooterPictureDirective.html +0 -502
- package/docs/directives/EclSocialMediaShareLinkDirective.html +0 -553
- package/docs/modules/EclSocialMediaShareModule.html +0 -321
- package/fesm2022/eui-ecl-components-ecl-separator.mjs +0 -57
- package/fesm2022/eui-ecl-components-ecl-separator.mjs.map +0 -1
- package/fesm2022/eui-ecl-components-ecl-social-media-share.mjs +0 -136
- package/fesm2022/eui-ecl-components-ecl-social-media-share.mjs.map +0 -1
package/docs/overview.html
CHANGED
|
@@ -113,7 +113,7 @@
|
|
|
113
113
|
<div class="card-block">
|
|
114
114
|
<h4 class="card-title"><span class="icon ion-ios-archive"></span></h4>
|
|
115
115
|
<p class="card-text">
|
|
116
|
-
<a href="./modules.html">
|
|
116
|
+
<a href="./modules.html">61 Modules</a>
|
|
117
117
|
</p>
|
|
118
118
|
</div>
|
|
119
119
|
</div>
|
|
@@ -122,7 +122,7 @@
|
|
|
122
122
|
<div class="card text-center">
|
|
123
123
|
<div class="card-block">
|
|
124
124
|
<h4 class="card-title"><span class="icon ion-md-cog"></span></h4>
|
|
125
|
-
<p class="card-text">
|
|
125
|
+
<p class="card-text">111 Components</p>
|
|
126
126
|
</div>
|
|
127
127
|
</div>
|
|
128
128
|
</div>
|
|
@@ -130,7 +130,7 @@
|
|
|
130
130
|
<div class="card text-center">
|
|
131
131
|
<div class="card-block">
|
|
132
132
|
<h4 class="card-title"><span class="icon ion-md-code-working"></span></h4>
|
|
133
|
-
<p class="card-text">
|
|
133
|
+
<p class="card-text">161 Directives</p>
|
|
134
134
|
</div>
|
|
135
135
|
</div>
|
|
136
136
|
</div>
|
|
@@ -154,7 +154,7 @@
|
|
|
154
154
|
<div class="card text-center">
|
|
155
155
|
<div class="card-block">
|
|
156
156
|
<h4 class="card-title"><span class="icon ion-ios-paper"></span></h4>
|
|
157
|
-
<p class="card-text">
|
|
157
|
+
<p class="card-text">58 Classes</p>
|
|
158
158
|
</div>
|
|
159
159
|
</div>
|
|
160
160
|
</div>
|
package/docs/properties.html
CHANGED
|
@@ -1,53 +1,12 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { inject, HostBinding,
|
|
2
|
+
import { inject, EventEmitter, ChangeDetectorRef, booleanAttribute, HostBinding, Output, Input, ChangeDetectionStrategy, Component, Renderer2, ElementRef, ContentChildren, NgModule } from '@angular/core';
|
|
3
3
|
import { CommonModule } from '@angular/common';
|
|
4
4
|
import * as i1 from '@eui/ecl/core';
|
|
5
|
-
import {
|
|
5
|
+
import { EclBaseEvent, ECLBaseDirective } from '@eui/ecl/core';
|
|
6
6
|
import { TranslateModule } from '@ngx-translate/core';
|
|
7
7
|
import * as i2 from '@eui/ecl/components/ecl-icon';
|
|
8
8
|
import { EUI_ECL_ICON } from '@eui/ecl/components/ecl-icon';
|
|
9
9
|
|
|
10
|
-
/**
|
|
11
|
-
* Accordion component that manages the expansion and collapsing state of accordion items.
|
|
12
|
-
* Uses the `ECLBaseDirective` to apply appropriate CSS classes and manage the visual styling.
|
|
13
|
-
*
|
|
14
|
-
* @description
|
|
15
|
-
* This is the main component for the accordion container, responsible for managing the expansion
|
|
16
|
-
* of individual items within the accordion. It provides the functionality to group and organize content
|
|
17
|
-
* in expandable sections.
|
|
18
|
-
*
|
|
19
|
-
* @property {string} cssClasses - Returns a string of CSS classes applied to the host element.
|
|
20
|
-
* The main class is `ecl-accordion`, which can be extended with additional classes.
|
|
21
|
-
*/
|
|
22
|
-
class EclAccordionComponent {
|
|
23
|
-
constructor() {
|
|
24
|
-
this.baseDirective = inject(ECLBaseDirective);
|
|
25
|
-
}
|
|
26
|
-
/**
|
|
27
|
-
* @description
|
|
28
|
-
* Retrieves and returns the CSS classes for the component based on its current state.
|
|
29
|
-
* Uses `baseDirective` to fetch the appropriate CSS classes.
|
|
30
|
-
*
|
|
31
|
-
* @returns {string} - A string of CSS class names.
|
|
32
|
-
*/
|
|
33
|
-
get cssClasses() {
|
|
34
|
-
return [this.baseDirective.getCssClasses('ecl-accordion')].join(' ').trim();
|
|
35
|
-
}
|
|
36
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0-next.5", ngImport: i0, type: EclAccordionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
37
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.0.0-next.5", type: EclAccordionComponent, isStandalone: true, selector: "ecl-accordion", host: { properties: { "class": "this.cssClasses" } }, hostDirectives: [{ directive: i1.ECLBaseDirective }], ngImport: i0, template: "<ng-content></ng-content>\n", styles: [":host{display:block}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: TranslateModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
38
|
-
}
|
|
39
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0-next.5", ngImport: i0, type: EclAccordionComponent, decorators: [{
|
|
40
|
-
type: Component,
|
|
41
|
-
args: [{ selector: 'ecl-accordion', changeDetection: ChangeDetectionStrategy.OnPush, imports: [CommonModule, ...EUI_ECL_ICON, TranslateModule], hostDirectives: [
|
|
42
|
-
{
|
|
43
|
-
directive: ECLBaseDirective,
|
|
44
|
-
},
|
|
45
|
-
], template: "<ng-content></ng-content>\n", styles: [":host{display:block}\n"] }]
|
|
46
|
-
}], propDecorators: { cssClasses: [{
|
|
47
|
-
type: HostBinding,
|
|
48
|
-
args: ['class']
|
|
49
|
-
}] } });
|
|
50
|
-
|
|
51
10
|
class EclAccordionToggleEvent extends EclBaseEvent {
|
|
52
11
|
constructor(isExpanded) {
|
|
53
12
|
super();
|
|
@@ -101,7 +60,7 @@ class EclAccordionItemComponent {
|
|
|
101
60
|
}
|
|
102
61
|
}
|
|
103
62
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0-next.5", ngImport: i0, type: EclAccordionItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
104
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "21.0.0-next.5", type: EclAccordionItemComponent, isStandalone: true, selector: "ecl-accordion-item", inputs: { label: "label", isExpanded: ["isExpanded", "isExpanded", booleanAttribute] }, outputs: { toggle: "toggle" }, host: { properties: { "class": "this.cssClasses" } }, hostDirectives: [{ directive: i1.ECLBaseDirective }], ngImport: i0, template: "<
|
|
63
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "21.0.0-next.5", type: EclAccordionItemComponent, isStandalone: true, selector: "ecl-accordion-item", inputs: { label: "label", isExpanded: ["isExpanded", "isExpanded", booleanAttribute] }, outputs: { toggle: "toggle" }, host: { properties: { "class": "this.cssClasses" } }, hostDirectives: [{ directive: i1.ECLBaseDirective }], ngImport: i0, template: "<div class=\"ecl-accordion__title\" [id]=\"titleId\">\n <button\n type=\"button\"\n (click)=\"onItemClick($event)\"\n [attr.aria-expanded]=\"isExpanded\"\n class=\"ecl-accordion__toggle\"\n [attr.aria-controls]=\"contentId\">\n <span class=\"ecl-accordion__toggle-flex\">\n <span class=\"ecl-accordion__toggle-title\">{{ label }}</span>\n <span class=\"ecl-accordion__toggle-indicator\">\n <ecl-icon icon=\"plus\" size=\"s\" class=\"ecl-accordion__toggle-icon\" ariaHidden=\"true\">\n </ecl-icon>\n <ecl-icon icon=\"minus\" size=\"s\" class=\"ecl-accordion__toggle-icon\" ariaHidden=\"true\">\n </ecl-icon>\n </span>\n </span>\n </button>\n</div>\n<div class=\"ecl-accordion__content\" [hidden]=\"!isExpanded\" role=\"region\" [attr.aria-labelledby]=\"titleId\" [id]=\"contentId\">\n <ng-content></ng-content>\n</div>\n", styles: [":host{display:block}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: i2.EclIconComponent, selector: "ecl-icon", inputs: ["iconSet", "icon", "size", "color", "transform", "ariaLabelledby", "role", "title", "ariaHidden", "focusable", "isFlipHorizontal"] }, { kind: "ngmodule", type: TranslateModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
105
64
|
}
|
|
106
65
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0-next.5", ngImport: i0, type: EclAccordionItemComponent, decorators: [{
|
|
107
66
|
type: Component,
|
|
@@ -109,7 +68,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0-next.5",
|
|
|
109
68
|
{
|
|
110
69
|
directive: ECLBaseDirective,
|
|
111
70
|
},
|
|
112
|
-
], template: "<
|
|
71
|
+
], template: "<div class=\"ecl-accordion__title\" [id]=\"titleId\">\n <button\n type=\"button\"\n (click)=\"onItemClick($event)\"\n [attr.aria-expanded]=\"isExpanded\"\n class=\"ecl-accordion__toggle\"\n [attr.aria-controls]=\"contentId\">\n <span class=\"ecl-accordion__toggle-flex\">\n <span class=\"ecl-accordion__toggle-title\">{{ label }}</span>\n <span class=\"ecl-accordion__toggle-indicator\">\n <ecl-icon icon=\"plus\" size=\"s\" class=\"ecl-accordion__toggle-icon\" ariaHidden=\"true\">\n </ecl-icon>\n <ecl-icon icon=\"minus\" size=\"s\" class=\"ecl-accordion__toggle-icon\" ariaHidden=\"true\">\n </ecl-icon>\n </span>\n </span>\n </button>\n</div>\n<div class=\"ecl-accordion__content\" [hidden]=\"!isExpanded\" role=\"region\" [attr.aria-labelledby]=\"titleId\" [id]=\"contentId\">\n <ng-content></ng-content>\n</div>\n", styles: [":host{display:block}\n"] }]
|
|
113
72
|
}], propDecorators: { label: [{
|
|
114
73
|
type: Input
|
|
115
74
|
}], isExpanded: [{
|
|
@@ -122,6 +81,65 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0-next.5",
|
|
|
122
81
|
args: ['class']
|
|
123
82
|
}] } });
|
|
124
83
|
|
|
84
|
+
/**
|
|
85
|
+
* Accordion component that manages the expansion and collapsing state of accordion items.
|
|
86
|
+
* Uses the `ECLBaseDirective` to apply appropriate CSS classes and manage the visual styling.
|
|
87
|
+
*
|
|
88
|
+
* @description
|
|
89
|
+
* This is the main component for the accordion container, responsible for managing the expansion
|
|
90
|
+
* of individual items within the accordion. It provides the functionality to group and organize content
|
|
91
|
+
* in expandable sections.
|
|
92
|
+
*
|
|
93
|
+
* @property {string} cssClasses - Returns a string of CSS classes applied to the host element.
|
|
94
|
+
* The main class is `ecl-accordion`, which can be extended with additional classes.
|
|
95
|
+
*/
|
|
96
|
+
class EclAccordionComponent {
|
|
97
|
+
constructor() {
|
|
98
|
+
this.baseDirective = inject(ECLBaseDirective);
|
|
99
|
+
this.renderer = inject(Renderer2);
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* @description
|
|
103
|
+
* Retrieves and returns the CSS classes for the component based on its current state.
|
|
104
|
+
* Uses `baseDirective` to fetch the appropriate CSS classes.
|
|
105
|
+
*
|
|
106
|
+
* @returns {string} - A string of CSS class names.
|
|
107
|
+
*/
|
|
108
|
+
get cssClasses() {
|
|
109
|
+
return [this.baseDirective.getCssClasses('ecl-accordion')].join(' ').trim();
|
|
110
|
+
}
|
|
111
|
+
ngAfterContentInit() {
|
|
112
|
+
this.setFirstAndLastClasses();
|
|
113
|
+
}
|
|
114
|
+
setFirstAndLastClasses() {
|
|
115
|
+
const elements = this.items.toArray();
|
|
116
|
+
if (elements.length === 0)
|
|
117
|
+
return;
|
|
118
|
+
elements.forEach((el) => {
|
|
119
|
+
this.renderer.removeClass(el.nativeElement, 'is-first');
|
|
120
|
+
this.renderer.removeClass(el.nativeElement, 'is-last');
|
|
121
|
+
});
|
|
122
|
+
this.renderer.addClass(elements[0].nativeElement, 'is-first');
|
|
123
|
+
this.renderer.addClass(elements[elements.length - 1].nativeElement, 'is-last');
|
|
124
|
+
}
|
|
125
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0-next.5", ngImport: i0, type: EclAccordionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
126
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.0.0-next.5", type: EclAccordionComponent, isStandalone: true, selector: "ecl-accordion", host: { properties: { "class": "this.cssClasses" } }, queries: [{ propertyName: "items", predicate: EclAccordionItemComponent, read: ElementRef }], hostDirectives: [{ directive: i1.ECLBaseDirective }], ngImport: i0, template: "<ng-content></ng-content>\n", styles: [":host{display:block}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: TranslateModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
127
|
+
}
|
|
128
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0-next.5", ngImport: i0, type: EclAccordionComponent, decorators: [{
|
|
129
|
+
type: Component,
|
|
130
|
+
args: [{ selector: 'ecl-accordion', changeDetection: ChangeDetectionStrategy.OnPush, imports: [CommonModule, ...EUI_ECL_ICON, TranslateModule], hostDirectives: [
|
|
131
|
+
{
|
|
132
|
+
directive: ECLBaseDirective,
|
|
133
|
+
},
|
|
134
|
+
], template: "<ng-content></ng-content>\n", styles: [":host{display:block}\n"] }]
|
|
135
|
+
}], propDecorators: { items: [{
|
|
136
|
+
type: ContentChildren,
|
|
137
|
+
args: [EclAccordionItemComponent, { read: ElementRef }]
|
|
138
|
+
}], cssClasses: [{
|
|
139
|
+
type: HostBinding,
|
|
140
|
+
args: ['class']
|
|
141
|
+
}] } });
|
|
142
|
+
|
|
125
143
|
/**
|
|
126
144
|
* @description
|
|
127
145
|
* Module that provides the EclAccordion component and its dependencies.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eui-ecl-components-ecl-accordion.mjs","sources":["../../components/ecl-accordion/ecl-accordion.component.ts","../../components/ecl-accordion/ecl-accordion.component.html","../../components/ecl-accordion/events/ecl-accordion-toggle.event.ts","../../components/ecl-accordion/ecl-accordion-item.component.ts","../../components/ecl-accordion/ecl-accordion-item.component.html","../../components/ecl-accordion/ecl-accordion.module.ts","../../components/ecl-accordion/index.ts","../../components/ecl-accordion/eui-ecl-components-ecl-accordion.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n HostBinding,\n inject,\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { EUI_ECL_ICON } from '@eui/ecl/components/ecl-icon';\n\n/**\n * Accordion component that manages the expansion and collapsing state of accordion items.\n * Uses the `ECLBaseDirective` to apply appropriate CSS classes and manage the visual styling.\n *\n * @description\n * This is the main component for the accordion container, responsible for managing the expansion\n * of individual items within the accordion. It provides the functionality to group and organize content\n * in expandable sections.\n *\n * @property {string} cssClasses - Returns a string of CSS classes applied to the host element.\n * The main class is `ecl-accordion`, which can be extended with additional classes.\n */\n@Component({\n selector: 'ecl-accordion',\n templateUrl: './ecl-accordion.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [CommonModule, ...EUI_ECL_ICON, TranslateModule],\n styles: [\n `\n :host {\n display: block;\n }\n `,\n ],\n hostDirectives: [\n {\n directive: ECLBaseDirective,\n },\n ],\n})\nexport class EclAccordionComponent {\n baseDirective = inject(ECLBaseDirective);\n\n /**\n * @description\n * Retrieves and returns the CSS classes for the component based on its current state.\n * Uses `baseDirective` to fetch the appropriate CSS classes.\n *\n * @returns {string} - A string of CSS class names.\n */\n @HostBinding('class')\n get cssClasses(): string {\n return [this.baseDirective.getCssClasses('ecl-accordion')].join(' ').trim();\n }\n}\n","<ng-content></ng-content>\n","import { EclBaseEvent } from '@eui/ecl/core';\n\nexport class EclAccordionToggleEvent extends EclBaseEvent {\n\tconstructor(public isExpanded: boolean) {\n\t\tsuper();\n\t}\n}","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n HostBinding,\n Input,\n OnInit,\n Output,\n booleanAttribute,\n ChangeDetectorRef,\n inject,\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclAccordionToggleEvent } from './events/ecl-accordion-toggle.event';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { EUI_ECL_ICON } from '@eui/ecl/components/ecl-icon';\n\n/**\n * Represents an individual item within an ECL Accordion.\n * This component allows for expand/collapse behavior and emits toggle events on interaction.\n */\n@Component({\n selector: 'ecl-accordion-item',\n templateUrl: './ecl-accordion-item.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [CommonModule, ...EUI_ECL_ICON, TranslateModule],\n styles: [\n `\n :host {\n display: block;\n }\n `,\n ],\n hostDirectives: [\n {\n directive: ECLBaseDirective,\n },\n ],\n})\nexport class EclAccordionItemComponent implements OnInit {\n baseDirective = inject(ECLBaseDirective);\n /**\n * The label for the accordion header.\n * This value is displayed as the clickable title of the item.\n */\n @Input() label: string;\n\n /**\n * Whether the accordion item is expanded by default.\n * Can be controlled externally.\n * @default false\n */\n @Input({ transform: booleanAttribute }) isExpanded = false;\n\n /**\n * Event emitted when the item is toggled (expanded/collapsed).\n * The emitted value contains the next expanded state.\n */\n // eslint-disable-next-line\n @Output() toggle = new EventEmitter<EclAccordionToggleEvent>();\n\n contentId = '';\n titleId = '';\n private cd = inject(ChangeDetectorRef);\n\n @HostBinding('class')\n get cssClasses(): string {\n return [this.baseDirective.getCssClasses('ecl-accordion__item')].join(' ').trim();\n }\n\n ngOnInit(): void {\n this.titleId = crypto.randomUUID();\n this.contentId = crypto.randomUUID();\n }\n\n /**\n * Handles click on the accordion item header.\n * Toggles the item and emits a toggle event.\n * If the event is not prevented, the item's state is updated.\n *\n * @param evt - The mouse click event\n */\n onItemClick(evt: MouseEvent): void {\n const nextExpandedState = !this.isExpanded;\n const event = new EclAccordionToggleEvent(nextExpandedState);\n\n this.toggle.next(event);\n\n if (!event.defaultPrevented) {\n this.isExpanded = nextExpandedState;\n }\n }\n}\n","<h3 class=\"ecl-accordion__title\" [id]=\"titleId\">\n <button\n type=\"button\"\n (click)=\"onItemClick($event)\"\n [attr.aria-expanded]=\"isExpanded\"\n class=\"ecl-accordion__toggle\"\n [attr.aria-controls]=\"contentId\">\n <span class=\"ecl-accordion__toggle-flex\">\n <span class=\"ecl-accordion__toggle-title\">{{ label }}</span>\n <span class=\"ecl-accordion__toggle-indicator\">\n <ecl-icon icon=\"plus\" size=\"s\" class=\"ecl-accordion__toggle-icon\" ariaHidden=\"true\">\n </ecl-icon>\n <ecl-icon icon=\"minus\" size=\"s\" class=\"ecl-accordion__toggle-icon\" ariaHidden=\"true\">\n </ecl-icon>\n </span>\n </span>\n </button>\n</h3>\n<div class=\"ecl-accordion__content\" [hidden]=\"!isExpanded\" role=\"region\" [attr.aria-labelledby]=\"titleId\" [id]=\"contentId\">\n <ng-content></ng-content>\n</div>\n","import { NgModule } from '@angular/core';\nimport { EclAccordionComponent } from './ecl-accordion.component';\nimport { EclAccordionItemComponent } from './ecl-accordion-item.component';\n\n/**\n * @description\n * Module that provides the EclAccordion component and its dependencies.\n *\n * @deprecated Use {@link EUI_ECL_ACCORDION} instead.\n */\n@NgModule({\n imports: [EclAccordionComponent, EclAccordionItemComponent],\n exports: [EclAccordionComponent, EclAccordionItemComponent],\n})\nexport class EclAccordionModule {}\n","import { EclAccordionComponent } from './ecl-accordion.component';\nimport { EclAccordionItemComponent } from './ecl-accordion-item.component';\n\nexport * from './ecl-accordion.module';\nexport * from './ecl-accordion.component';\nexport * from './ecl-accordion-item.component';\nexport * from './events/ecl-accordion-toggle.event';\n\nexport const EUI_ECL_ACCORDION = [\n EclAccordionComponent,\n EclAccordionItemComponent,\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-accordion.mjs","sources":["../../components/ecl-accordion/events/ecl-accordion-toggle.event.ts","../../components/ecl-accordion/ecl-accordion-item.component.ts","../../components/ecl-accordion/ecl-accordion-item.component.html","../../components/ecl-accordion/ecl-accordion.component.ts","../../components/ecl-accordion/ecl-accordion.component.html","../../components/ecl-accordion/ecl-accordion.module.ts","../../components/ecl-accordion/index.ts","../../components/ecl-accordion/eui-ecl-components-ecl-accordion.ts"],"sourcesContent":["import { EclBaseEvent } from '@eui/ecl/core';\n\nexport class EclAccordionToggleEvent extends EclBaseEvent {\n\tconstructor(public isExpanded: boolean) {\n\t\tsuper();\n\t}\n}","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n HostBinding,\n Input,\n OnInit,\n Output,\n booleanAttribute,\n ChangeDetectorRef,\n inject,\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclAccordionToggleEvent } from './events/ecl-accordion-toggle.event';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { EUI_ECL_ICON } from '@eui/ecl/components/ecl-icon';\n\n/**\n * Represents an individual item within an ECL Accordion.\n * This component allows for expand/collapse behavior and emits toggle events on interaction.\n */\n@Component({\n selector: 'ecl-accordion-item',\n templateUrl: './ecl-accordion-item.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [CommonModule, ...EUI_ECL_ICON, TranslateModule],\n styles: [\n `\n :host {\n display: block;\n }\n `,\n ],\n hostDirectives: [\n {\n directive: ECLBaseDirective,\n },\n ],\n})\nexport class EclAccordionItemComponent implements OnInit {\n baseDirective = inject(ECLBaseDirective);\n /**\n * The label for the accordion header.\n * This value is displayed as the clickable title of the item.\n */\n @Input() label: string;\n\n /**\n * Whether the accordion item is expanded by default.\n * Can be controlled externally.\n * @default false\n */\n @Input({ transform: booleanAttribute }) isExpanded = false;\n\n /**\n * Event emitted when the item is toggled (expanded/collapsed).\n * The emitted value contains the next expanded state.\n */\n // eslint-disable-next-line\n @Output() toggle = new EventEmitter<EclAccordionToggleEvent>();\n\n contentId = '';\n titleId = '';\n private cd = inject(ChangeDetectorRef);\n\n @HostBinding('class')\n get cssClasses(): string {\n return [this.baseDirective.getCssClasses('ecl-accordion__item')].join(' ').trim();\n }\n\n ngOnInit(): void {\n this.titleId = crypto.randomUUID();\n this.contentId = crypto.randomUUID();\n }\n\n /**\n * Handles click on the accordion item header.\n * Toggles the item and emits a toggle event.\n * If the event is not prevented, the item's state is updated.\n *\n * @param evt - The mouse click event\n */\n onItemClick(evt: MouseEvent): void {\n const nextExpandedState = !this.isExpanded;\n const event = new EclAccordionToggleEvent(nextExpandedState);\n\n this.toggle.next(event);\n\n if (!event.defaultPrevented) {\n this.isExpanded = nextExpandedState;\n }\n }\n}\n","<div class=\"ecl-accordion__title\" [id]=\"titleId\">\n <button\n type=\"button\"\n (click)=\"onItemClick($event)\"\n [attr.aria-expanded]=\"isExpanded\"\n class=\"ecl-accordion__toggle\"\n [attr.aria-controls]=\"contentId\">\n <span class=\"ecl-accordion__toggle-flex\">\n <span class=\"ecl-accordion__toggle-title\">{{ label }}</span>\n <span class=\"ecl-accordion__toggle-indicator\">\n <ecl-icon icon=\"plus\" size=\"s\" class=\"ecl-accordion__toggle-icon\" ariaHidden=\"true\">\n </ecl-icon>\n <ecl-icon icon=\"minus\" size=\"s\" class=\"ecl-accordion__toggle-icon\" ariaHidden=\"true\">\n </ecl-icon>\n </span>\n </span>\n </button>\n</div>\n<div class=\"ecl-accordion__content\" [hidden]=\"!isExpanded\" role=\"region\" [attr.aria-labelledby]=\"titleId\" [id]=\"contentId\">\n <ng-content></ng-content>\n</div>\n","import {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n ElementRef,\n HostBinding,\n QueryList,\n Renderer2,\n inject,\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { EUI_ECL_ICON } from '@eui/ecl/components/ecl-icon';\nimport { EclAccordionItemComponent } from './ecl-accordion-item.component';\n\n/**\n * Accordion component that manages the expansion and collapsing state of accordion items.\n * Uses the `ECLBaseDirective` to apply appropriate CSS classes and manage the visual styling.\n *\n * @description\n * This is the main component for the accordion container, responsible for managing the expansion\n * of individual items within the accordion. It provides the functionality to group and organize content\n * in expandable sections.\n *\n * @property {string} cssClasses - Returns a string of CSS classes applied to the host element.\n * The main class is `ecl-accordion`, which can be extended with additional classes.\n */\n@Component({\n selector: 'ecl-accordion',\n templateUrl: './ecl-accordion.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [CommonModule, ...EUI_ECL_ICON, TranslateModule],\n styles: [\n `\n :host {\n display: block;\n }\n `,\n ],\n hostDirectives: [\n {\n directive: ECLBaseDirective,\n },\n ],\n})\nexport class EclAccordionComponent implements AfterContentInit {\n baseDirective = inject(ECLBaseDirective);\n private renderer = inject(Renderer2);\n\n @ContentChildren(EclAccordionItemComponent, { read: ElementRef })\n items!: QueryList<ElementRef>;\n\n /**\n * @description\n * Retrieves and returns the CSS classes for the component based on its current state.\n * Uses `baseDirective` to fetch the appropriate CSS classes.\n *\n * @returns {string} - A string of CSS class names.\n */\n @HostBinding('class')\n get cssClasses(): string {\n return [this.baseDirective.getCssClasses('ecl-accordion')].join(' ').trim();\n }\n\n ngAfterContentInit(): void {\n this.setFirstAndLastClasses();\n }\n\n private setFirstAndLastClasses(): void {\n const elements = this.items.toArray();\n\n if (elements.length === 0) return;\n\n elements.forEach((el) => {\n this.renderer.removeClass(el.nativeElement, 'is-first');\n this.renderer.removeClass(el.nativeElement, 'is-last');\n });\n\n this.renderer.addClass(elements[0].nativeElement, 'is-first');\n this.renderer.addClass(elements[elements.length - 1].nativeElement, 'is-last');\n }\n}\n","<ng-content></ng-content>\n","import { NgModule } from '@angular/core';\nimport { EclAccordionComponent } from './ecl-accordion.component';\nimport { EclAccordionItemComponent } from './ecl-accordion-item.component';\n\n/**\n * @description\n * Module that provides the EclAccordion component and its dependencies.\n *\n * @deprecated Use {@link EUI_ECL_ACCORDION} instead.\n */\n@NgModule({\n imports: [EclAccordionComponent, EclAccordionItemComponent],\n exports: [EclAccordionComponent, EclAccordionItemComponent],\n})\nexport class EclAccordionModule {}\n","import { EclAccordionComponent } from './ecl-accordion.component';\nimport { EclAccordionItemComponent } from './ecl-accordion-item.component';\n\nexport * from './ecl-accordion.module';\nexport * from './ecl-accordion.component';\nexport * from './ecl-accordion-item.component';\nexport * from './events/ecl-accordion-toggle.event';\n\nexport const EUI_ECL_ACCORDION = [\n EclAccordionComponent,\n EclAccordionItemComponent,\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -30,8 +30,8 @@ class EclAppComponent extends ECLBaseDirective {
|
|
|
30
30
|
this.document = inject(DOCUMENT);
|
|
31
31
|
}
|
|
32
32
|
ngAfterViewInit() {
|
|
33
|
-
// Adds global class, which is used to apply the correct styling for eui-
|
|
34
|
-
CssUtils.setHtmlClass('eui-
|
|
33
|
+
// Adds global class, which is used to apply the correct styling for eui-21.
|
|
34
|
+
CssUtils.setHtmlClass('eui-21', this.document);
|
|
35
35
|
this.handleRtlChangeState();
|
|
36
36
|
this.handleUIEvents();
|
|
37
37
|
}
|
|
@@ -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/ecl-app.module.ts","../../components/ecl-app/index.ts","../../components/ecl-app/eui-ecl-components-ecl-app.ts"],"sourcesContent":["import { DOCUMENT } from '@angular/common';\nimport { AfterViewInit, Component, ContentChild, EventEmitter, HostBinding, OnDestroy, Output, inject } from '@angular/core';\nimport { CssUtils } 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 { Subject } from 'rxjs';\nimport { 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})\nexport class EclAppComponent extends ECLBaseDirective implements 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 @HostBinding('attr.dir') textDirection = 'ltr';\n\n @ContentChild(EclSiteHeaderLanguageComponent) eclSiteHeaderLanguage: EclSiteHeaderLanguageComponent;\n\n @Output() languageDismiss = new EventEmitter<EclAppLanguageDismissEvent>();\n\n protected destroy$: Subject<boolean> = new Subject<boolean>();\n private eclRtlService = inject(EclRtlService);\n private document = inject<Document>(DOCUMENT);\n\n ngAfterViewInit(): void {\n // Adds global class, which is used to apply the correct styling for eui-
|
|
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/ecl-app.module.ts","../../components/ecl-app/index.ts","../../components/ecl-app/eui-ecl-components-ecl-app.ts"],"sourcesContent":["import { DOCUMENT } from '@angular/common';\nimport { AfterViewInit, Component, ContentChild, EventEmitter, HostBinding, OnDestroy, Output, inject } from '@angular/core';\nimport { CssUtils } 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 { Subject } from 'rxjs';\nimport { 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})\nexport class EclAppComponent extends ECLBaseDirective implements 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 @HostBinding('attr.dir') textDirection = 'ltr';\n\n @ContentChild(EclSiteHeaderLanguageComponent) eclSiteHeaderLanguage: EclSiteHeaderLanguageComponent;\n\n @Output() languageDismiss = new EventEmitter<EclAppLanguageDismissEvent>();\n\n protected destroy$: Subject<boolean> = new Subject<boolean>();\n private eclRtlService = inject(EclRtlService);\n private document = inject<Document>(DOCUMENT);\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 = 'rtl';\n } else {\n this.textDirection = 'ltr';\n }\n });\n }\n\n private handleUIEvents(): void {\n this.eclSiteHeaderLanguage?.languageSelected\n .pipe(takeUntil(this.destroy$))\n .subscribe((evt: EclSiteHeaderLanguageSelectedEvent) => {\n this.languageDismiss.next(new EclAppLanguageDismissEvent(evt.language));\n });\n }\n}\n","<ng-content></ng-content>\n","import { NgModule } from '@angular/core';\nimport { EclAppComponent } from './ecl-app.component';\n\n/**\n * Module that provides the EclAppComponent.\n *\n * @deprecated Use {@link EUI_ECL_APP} instead.\n */\n@NgModule({\n imports: [EclAppComponent],\n exports: [EclAppComponent],\n})\nexport class EclAppModule {}\n","import { EclAppComponent } from './ecl-app.component';\n\nexport * from './ecl-app.module';\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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"}
|
|
@@ -94,6 +94,7 @@ class EclBannerComponent extends ECLBaseDirective {
|
|
|
94
94
|
`ecl-banner--v-${this.verticalAlignment}`,
|
|
95
95
|
`ecl-banner--color-${this.fontColor}`,
|
|
96
96
|
this.isFullWidth ? 'ecl-banner--full-width' : '',
|
|
97
|
+
!this.hasMedia ? 'ecl-banner--no-media' : '',
|
|
97
98
|
]
|
|
98
99
|
.join(' ')
|
|
99
100
|
.trim();
|
|
@@ -150,7 +151,7 @@ class EclBannerComponent extends ECLBaseDirective {
|
|
|
150
151
|
this.isPlaying = false;
|
|
151
152
|
this.BANNER_PADDING = 16;
|
|
152
153
|
this.destroy$ = new Subject();
|
|
153
|
-
this.breakpoint =
|
|
154
|
+
this.breakpoint = 1140;
|
|
154
155
|
this.bannerVPadding = 8;
|
|
155
156
|
this.isTabletBreakpoint = true;
|
|
156
157
|
this.TIMEOUT_INTERVAL = 200;
|
|
@@ -204,6 +205,12 @@ class EclBannerComponent extends ECLBaseDirective {
|
|
|
204
205
|
get hasVideo() {
|
|
205
206
|
return !!this.eclBannerVideo;
|
|
206
207
|
}
|
|
208
|
+
/**
|
|
209
|
+
* Indicates whether the banner contains any media (image or video).
|
|
210
|
+
*/
|
|
211
|
+
get hasMedia() {
|
|
212
|
+
return this.hasImage || this.hasVideo;
|
|
213
|
+
}
|
|
207
214
|
/**
|
|
208
215
|
* Handles keyboard activation (Enter key) to play video.
|
|
209
216
|
* Moves focus to pause button after playing starts.
|
|
@@ -266,7 +273,7 @@ class EclBannerComponent extends ECLBaseDirective {
|
|
|
266
273
|
}
|
|
267
274
|
}
|
|
268
275
|
setBannerHeight() {
|
|
269
|
-
if (this.
|
|
276
|
+
if (this.hasMedia) {
|
|
270
277
|
this.waitForAspectRatioToBeDefined(0);
|
|
271
278
|
}
|
|
272
279
|
else {
|
|
@@ -325,7 +332,7 @@ class EclBannerComponent extends ECLBaseDirective {
|
|
|
325
332
|
observeBreakpointChanges() {
|
|
326
333
|
this.cdkBreakpointObserver
|
|
327
334
|
.observe([
|
|
328
|
-
'(min-width:
|
|
335
|
+
'(min-width: 1140px)',
|
|
329
336
|
])
|
|
330
337
|
.pipe(takeUntil(this.destroy$), delay(this.TIMEOUT_INTERVAL))
|
|
331
338
|
.subscribe((result) => {
|
|
@@ -438,15 +445,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0-next.5",
|
|
|
438
445
|
}] } });
|
|
439
446
|
/**
|
|
440
447
|
* Directive applied to the link element within the banner title.
|
|
441
|
-
* Adds
|
|
448
|
+
* Adds link classes and marks the link as standalone.
|
|
442
449
|
*/
|
|
443
450
|
class EclBannerTitleLinkDirective extends ECLBaseDirective {
|
|
444
451
|
constructor() {
|
|
445
452
|
super(...arguments);
|
|
446
453
|
this.className = 'ecl-link ecl-banner__title-link';
|
|
454
|
+
this.isStandalone = true;
|
|
447
455
|
}
|
|
448
456
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0-next.5", ngImport: i0, type: EclBannerTitleLinkDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
|
|
449
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.0-next.5", type: EclBannerTitleLinkDirective, isStandalone: true, selector: "[eclBannerTitleLink]", host: { properties: { "class": "this.className" } }, usesInheritance: true, ngImport: i0 }); }
|
|
457
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.0-next.5", type: EclBannerTitleLinkDirective, isStandalone: true, selector: "[eclBannerTitleLink]", host: { properties: { "class": "this.className", "class.ecl-link--standalone": "this.isStandalone" } }, usesInheritance: true, ngImport: i0 }); }
|
|
450
458
|
}
|
|
451
459
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0-next.5", ngImport: i0, type: EclBannerTitleLinkDirective, decorators: [{
|
|
452
460
|
type: Directive,
|
|
@@ -456,6 +464,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0-next.5",
|
|
|
456
464
|
}], propDecorators: { className: [{
|
|
457
465
|
type: HostBinding,
|
|
458
466
|
args: ['class']
|
|
467
|
+
}], isStandalone: [{
|
|
468
|
+
type: HostBinding,
|
|
469
|
+
args: ['class.ecl-link--standalone']
|
|
459
470
|
}] } });
|
|
460
471
|
|
|
461
472
|
/**
|
|
@@ -500,14 +511,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0-next.5",
|
|
|
500
511
|
}] } });
|
|
501
512
|
/**
|
|
502
513
|
* Directive for a link inside the banner description.
|
|
514
|
+
* Adds link classes and marks the link as standalone.
|
|
503
515
|
*/
|
|
504
516
|
class EclBannerDescriptionLinkDirective extends ECLBaseDirective {
|
|
505
517
|
constructor() {
|
|
506
518
|
super(...arguments);
|
|
507
519
|
this.className = 'ecl-link ecl-banner__description-link';
|
|
520
|
+
this.isStandalone = true;
|
|
508
521
|
}
|
|
509
522
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0-next.5", ngImport: i0, type: EclBannerDescriptionLinkDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
|
|
510
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.0-next.5", type: EclBannerDescriptionLinkDirective, isStandalone: true, selector: "[eclBannerDescriptionLink]", host: { properties: { "class": "this.className" } }, usesInheritance: true, ngImport: i0 }); }
|
|
523
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.0-next.5", type: EclBannerDescriptionLinkDirective, isStandalone: true, selector: "[eclBannerDescriptionLink]", host: { properties: { "class": "this.className", "class.ecl-link--standalone": "this.isStandalone" } }, usesInheritance: true, ngImport: i0 }); }
|
|
511
524
|
}
|
|
512
525
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0-next.5", ngImport: i0, type: EclBannerDescriptionLinkDirective, decorators: [{
|
|
513
526
|
type: Directive,
|
|
@@ -517,6 +530,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0-next.5",
|
|
|
517
530
|
}], propDecorators: { className: [{
|
|
518
531
|
type: HostBinding,
|
|
519
532
|
args: ['class']
|
|
533
|
+
}], isStandalone: [{
|
|
534
|
+
type: HostBinding,
|
|
535
|
+
args: ['class.ecl-link--standalone']
|
|
520
536
|
}] } });
|
|
521
537
|
|
|
522
538
|
const COMPONENTS = [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eui-ecl-components-ecl-banner.mjs","sources":["../../components/ecl-banner/ecl-banner-picture.directive.ts","../../components/ecl-banner/ecl-banner-video.directive.ts","../../components/ecl-banner/ecl-banner.component.ts","../../components/ecl-banner/ecl-banner.component.html","../../components/ecl-banner/ecl-banner-title.directive.ts","../../components/ecl-banner/ecl-banner-description.directive.ts","../../components/ecl-banner/ecl-banner.module.ts","../../components/ecl-banner/index.ts","../../components/ecl-banner/eui-ecl-components-ecl-banner.ts"],"sourcesContent":["import { Directive, HostBinding, ElementRef, inject } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Directive applied to the <picture> element within the banner.\n * Adds the appropriate classes for styling the banner picture.\n */\n@Directive({\n selector: 'picture[eclBannerPicture]',\n})\nexport class EclBannerPictureDirective extends ECLBaseDirective {\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-picture ecl-banner__picture')].join(' ').trim();\n }\n}\n\n/**\n * Directive applied to the <img> element inside the banner.\n * Enables class binding and exposes the element reference.\n */\n@Directive({\n selector: 'img[eclBannerImage]',\n})\nexport class EclBannerImageDirective extends ECLBaseDirective {\n el = inject(ElementRef);\n\n @HostBinding('class.ecl-banner__image') className = true;\n}\n","import { Directive, HostBinding, ElementRef, inject } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Directive applied to the video element used in the banner.\n * Adds appropriate styling classes to the host element.\n */\n@Directive({\n selector: 'video[eclBannerVideo]',\n})\nexport class EclBannerVideoDirective extends ECLBaseDirective {\n el = inject(ElementRef);\n\n /**\n * CSS classes applied to the host video element.\n */\n @HostBinding('class') videoClasses = 'ecl-video ecl-banner__video';\n}\n","import { BreakpointObserver } from '@angular/cdk/layout';\nimport {\n AfterContentInit,\n Component,\n ContentChild,\n ContentChildren,\n ElementRef,\n HostBinding,\n HostListener,\n Input,\n OnDestroy,\n QueryList,\n Renderer2,\n ViewChild,\n afterNextRender,\n booleanAttribute,\n forwardRef,\n inject,\n} from '@angular/core';\nimport { Subject, delay, takeUntil } from 'rxjs';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclLinkDirective } from '@eui/ecl/components/ecl-link';\nimport { EclBannerImageDirective } from './ecl-banner-picture.directive';\nimport { EclBannerVideoDirective } from './ecl-banner-video.directive';\nimport { EUI_ECL_ICON } from '@eui/ecl/components/ecl-icon';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { EclButtonComponent, EUI_ECL_BUTTON } from '@eui/ecl/components/ecl-button';\n\nconst enum DefaultRatio {\n XS = '6/1',\n S = '5/1',\n M = '4/1',\n L = '3/1',\n}\n\n/**\n * Component representing a banner, which can contain image, video and call-to-action (CTA) links.\n * Allows customization of layout, alignment, and appearance through inputs.\n */\n@Component({\n selector: 'ecl-banner',\n templateUrl: './ecl-banner.component.html',\n imports: [\n ...EUI_ECL_ICON,\n ...EUI_ECL_BUTTON,\n NgTemplateOutlet,\n ],\n})\nexport class EclBannerComponent extends ECLBaseDirective implements AfterContentInit, OnDestroy {\n el = inject(ElementRef);\n /**\n * Defines the size of the banner. Affects its height-to-width aspect ratio.\n * Allowed values: 'xs' | 's' | 'm' | 'l'.\n * Default: 'm'.\n */\n @Input() eclSize: 'xs'| 's' | 'm' | 'l' | string = 'm';\n\n /**\n * Defines the color of the font inside the banner content box.\n * Allowed values: 'light' | 'dark'.\n * Default: 'dark'.\n */\n @Input() fontColor: 'light' | 'dark' | string = 'dark';\n\n /**\n * Defines the font size inside the banner content box.\n * Allowed values: 'm' | 'l'.\n * Default: 'm'.\n */\n @Input() fontSize: 's' | 'm' | 'l' | string = 'm';\n\n /**\n * Defines the background color of the banner content box.\n * Allowed values: 'none' | 'light' | 'dark'.\n * Default: 'light'.\n */\n @Input() boxBackground: 'none' | 'light' | 'dark' | string = 'light';\n\n /**\n * Sets the horizontal alignment of the content inside the banner.\n * Allowed values: 'left' | 'center' | 'right'.\n * Default: 'left'.\n */\n @Input() horizontalAlignment: 'right' | 'left' | 'center' | string = 'left';\n\n /**\n * Sets the vertical alignment of the content inside the banner.\n * Allowed values: 'top' | 'center' | 'bottom'.\n * Default: 'center'.\n */\n @Input() verticalAlignment: 'top' | 'center' | 'bottom' | string = 'center';\n\n /**\n * Sets the copyright text displayed in the banner.\n */\n @Input() copyright = '';\n\n /**\n * When true, the banner stretches to full width of its container.\n * Default: false.\n */\n @Input({ transform: booleanAttribute }) isFullWidth = false;\n\n @ContentChildren(forwardRef(() => EclLinkDirective)) eclLinkComponents: QueryList<EclLinkDirective>;\n @ContentChild(EclBannerImageDirective) eclBannerImage: EclBannerImageDirective;\n @ContentChild(EclBannerVideoDirective) eclBannerVideo: EclBannerVideoDirective;\n\n @ViewChild('bannerFooter') bannerFooter: ElementRef;\n @ViewChild('bannerContainer') bannerContainer: ElementRef;\n @ViewChild('playBtn') playBtn: EclButtonComponent;\n @ViewChild('pauseBtn') pauseBtn: EclButtonComponent;\n\n @HostBinding('style.--banner-footer-height.px') bannerFooterHeight = null;\n @HostBinding('class')\n get cssClasses(): string {\n return [\n super.getCssClasses('ecl-banner'),\n `ecl-banner--${this.eclSize}`,\n `ecl-banner--font-${this.fontSize}`,\n `ecl-banner--box-bg-${this.boxBackground}`,\n `ecl-banner--h-${this.horizontalAlignment}`,\n `ecl-banner--v-${this.verticalAlignment}`,\n `ecl-banner--color-${this.fontColor}`,\n this.isFullWidth ? 'ecl-banner--full-width' : '',\n ]\n .join(' ')\n .trim();\n }\n\n isPlaying = false;\n private readonly BANNER_PADDING = 16;\n private destroy$: Subject<boolean> = new Subject<boolean>();\n private breakpoint = 996;\n private bannerVPadding = 8;\n private isTabletBreakpoint = true;\n private readonly TIMEOUT_INTERVAL = 200;\n private renderer = inject(Renderer2);\n private cdkBreakpointObserver = inject(BreakpointObserver);\n private maxIterations = 10;\n\n constructor() {\n super();\n afterNextRender(() => {\n this.observeBreakpointChanges();\n this.observeElementSizeChanges();\n });\n }\n\n ngAfterContentInit(): void {\n if (this.eclLinkComponents) {\n this.eclLinkComponents.forEach((link) => {\n link.class = 'ecl-banner__link-cta';\n });\n }\n\n if (this.hasVideo) {\n const videoEl : HTMLVideoElement = this.eclBannerVideo.el.nativeElement;\n videoEl.addEventListener('play', () => {\n this.isPlaying = true;\n });\n videoEl.addEventListener('pause', () => {\n this.isPlaying = false;\n });\n this.renderer.setProperty(videoEl, 'muted', true);\n this.renderer.setProperty(videoEl, 'loop', true);\n this.renderer.setProperty(videoEl, 'autoplay', true);\n this.renderer.removeAttribute(videoEl, 'controls');\n }\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n }\n\n /**\n * Indicates whether the banner contains at least one call-to-action link.\n */\n get hasCtaLink(): boolean {\n return this.eclLinkComponents.length > 0;\n }\n\n /**\n * Indicates whether the banner contains an image.\n */\n get hasImage(): boolean {\n return !!this.eclBannerImage;\n }\n\n /**\n * Indicates whether the banner contains a video.\n */\n get hasVideo(): boolean {\n return !!this.eclBannerVideo;\n }\n\n /**\n * Handles keyboard activation (Enter key) to play video.\n * Moves focus to pause button after playing starts.\n */\n onKeydownEnterPlay(): void {\n this.onVideoPlay();\n setTimeout(() => this.pauseBtn.onFocus());\n }\n\n @HostListener('window:resize')\n onWindowResize(): void {\n this.observeElementSizeChanges();\n }\n\n /**\n * Handles keyboard activation (Enter key) to pause video.\n * Moves focus to play button after pausing.\n */\n onKeydownEnterPause(): void {\n this.onVideoPause();\n setTimeout(() => this.playBtn.onFocus());\n }\n\n /**\n * Plays the embedded banner video.\n * Triggered via interaction (e.g., button).\n */\n onVideoPlay(): void {\n const videoEl : HTMLVideoElement = this.eclBannerVideo.el.nativeElement;\n videoEl.play();\n }\n\n /**\n * Pauses the embedded banner video.\n * Triggered via interaction (e.g., button).\n */\n onVideoPause(): void {\n const videoEl : HTMLVideoElement = this.eclBannerVideo.el.nativeElement;\n videoEl.pause();\n }\n\n private observeElementSizeChanges(): void {\n // new ResizeObserver(() => { // Removing this for now , because it is causing problems (infinite loop). Observing window:resize.\n setTimeout(() => {\n this.checkViewport();\n }, this.TIMEOUT_INTERVAL);\n // }).observe(this.bannerContainer.nativeElement);\n }\n\n private checkViewport() {\n if (window.innerWidth > this.breakpoint) {\n this.setBannerHeight();\n } else {\n this.resetBannerHeight();\n }\n }\n\n private waitForAspectRatioToBeDefined(attemptCounter: number) {\n attemptCounter = attemptCounter + 1;\n const aspectRatio = window.getComputedStyle(this.el.nativeElement).getPropertyValue('--css-aspect-ratio');\n\n if (\n (typeof aspectRatio === 'undefined' || aspectRatio === '') &&\n this.maxIterations > attemptCounter\n ) {\n setTimeout(() => this.waitForAspectRatioToBeDefined(attemptCounter), 100);\n } else {\n this.setHeight(aspectRatio);\n }\n }\n\n private setBannerHeight(): void {\n if (this.eclBannerImage || this.eclBannerVideo) {\n this.waitForAspectRatioToBeDefined(0);\n } else {\n this.setHeight(this.getDefaultRatio());\n }\n }\n\n private setHeight(ratio) {\n if (this.bannerContainer) {\n const bannerHeight = this.bannerContainer.nativeElement.offsetHeight + 2*this.bannerVPadding;\n const bannerWidth = parseInt(window.getComputedStyle(this.el.nativeElement).getPropertyValue('width'), 10);\n const [denominator, numerator] = ratio.split('/').map(Number);\n const currentHeight = (bannerWidth * numerator) / denominator;\n if (bannerHeight > currentHeight) {\n this.renderer.setStyle(this.el.nativeElement, 'aspect-ratio', 'auto');\n this.renderer.setStyle(this.el.nativeElement, 'height', `${bannerHeight}px`);\n } else {\n this.resetBannerHeight();\n }\n }\n\n // Add margin to the banner container when there is a footer\n // This is needed to keep the vertical alignment\n if (this.bannerFooter) {\n this.bannerFooterHeight = this.bannerFooter.nativeElement.offsetHeight;\n // this.renderer.setStyle(this.el.nativeElement, '--banner-footer-height', `${this.bannerFooter.nativeElement.offsetHeight}px`);\n }\n }\n\n private resetBannerHeight(): void {\n // remove aspect-ratio\n this.renderer.removeStyle(this.el.nativeElement, 'aspect-ratio');\n\n // set height to auto\n this.renderer.setStyle(this.el.nativeElement, 'height', 'auto');\n\n // update footer height if bannerFooter exists\n if (this.bannerFooter) {\n // const footerHeight = `${this.bannerFooter.nativeElement.offsetHeight}px`;\n this.bannerFooterHeight = this.bannerFooter.nativeElement.offsetHeight;\n // this.renderer.setStyle(this.el.nativeElement, '--banner-footer-height', footerHeight);\n }\n }\n\n private getDefaultRatio(): string {\n switch(this.eclSize) {\n case 'xs': {\n return DefaultRatio.XS;\n }\n case 's': {\n return DefaultRatio.S;\n }\n case 'l': {\n return DefaultRatio.L;\n }\n default: {\n return DefaultRatio.M;\n }\n }\n }\n\n private observeBreakpointChanges(): void {\n this.cdkBreakpointObserver\n .observe([\n '(min-width: 997px)',\n ])\n .pipe(takeUntil(this.destroy$), delay(this.TIMEOUT_INTERVAL))\n .subscribe((result) => {\n this.isTabletBreakpoint = result.breakpoints['(min-width: 997px)'];\n if ( !this.isTabletBreakpoint) {\n this.setBannerHeight();\n }\n });\n }\n\n}\n","@if(hasImage) {\n<figure class=\"ecl-banner__picture-container\">\n <ng-content select=\"[eclBannerPicture]\"></ng-content>\n @if(copyright) {\n <ng-container *ngTemplateOutlet=\"bannerFooterTemplate\"></ng-container>\n }\n</figure>\n}\n\n@if(hasVideo) {\n<div class=\"ecl-banner__video-container\">\n <ng-content select=\"[eclBannerVideo]\"></ng-content>\n @if(copyright) {\n <ng-container *ngTemplateOutlet=\"bannerFooterTemplate\"></ng-container>\n }\n <button #playBtn eclButton variant=\"tertiary\" isIconOnly class=\"ecl-banner__play\" (click)=\"onVideoPlay()\"\n [style.display]=\"isPlaying ? 'none' : 'block'\" (keydown.enter)=\"onKeydownEnterPlay()\">\n <span eclButtonLabel>Play video</span>\n <ecl-icon icon=\"play-outline\" size=\"m\"></ecl-icon>\n </button>\n <button #pauseBtn eclButton variant=\"tertiary\" isIconOnly class=\"ecl-banner__pause\" (click)=\"onVideoPause()\"\n [style.display]=\"isPlaying ? 'block' : 'none'\" (keydown.enter)=\"onKeydownEnterPause()\">\n <span eclButtonLabel>Pause video</span>\n <ecl-icon icon=\"pause-outline\" size=\"m\"></ecl-icon>\n </button>\n</div>\n}\n<div class=\"ecl-container ecl-banner__info\">\n <div #bannerContainer class=\"ecl-banner__container \">\n <div class=\"ecl-banner__content\">\n <ng-content select=\"[eclBannerTitle]\"></ng-content>\n <ng-content select=\"[eclBannerDescription]\"></ng-content>\n @if (hasCtaLink) {\n <div class=\"ecl-banner__cta\">\n <ng-content select=\"[eclLink]\"></ng-content>\n </div>\n }\n <ng-content></ng-content>\n </div>\n </div>\n</div>\n\n<ng-template #bannerFooterTemplate>\n <footer #bannerFooter class=\"ecl-banner__credit\"><div class=\"ecl-container\">© {{copyright}}</div></footer>\n</ng-template>","import { Directive, HostBinding } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Directive applied to the banner title container element.\n * Adds appropriate styling class to the host element.\n */\n@Directive({\n selector: '[eclBannerTitle]',\n})\nexport class EclBannerTitleDirective extends ECLBaseDirective {\n @HostBinding('class') className = 'ecl-banner__title';\n}\n\n/**\n * Directive applied to the text element within the banner title.\n * Adds appropriate styling class to the host element.\n */\n@Directive({\n selector: '[eclBannerTitleText]',\n})\nexport class EclBannerTitleTextDirective extends ECLBaseDirective {\n @HostBinding('class') className = 'ecl-banner__title-text';\n}\n\n/**\n * Directive applied to the link element within the banner title.\n * Adds appropriate link styling classes to the host element.\n */\n@Directive({\n selector: '[eclBannerTitleLink]',\n})\nexport class EclBannerTitleLinkDirective extends ECLBaseDirective {\n @HostBinding('class') className = 'ecl-link ecl-banner__title-link';\n}\n","import { Directive, HostBinding } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Directive for the main banner description container.\n */\n@Directive({\n selector: '[eclBannerDescription]',\n})\nexport class EclBannerDescriptionDirective extends ECLBaseDirective {\n @HostBinding('class') className = 'ecl-banner__description';\n}\n\n/**\n * Directive for the textual content inside the banner description.\n */\n@Directive({\n selector: '[eclBannerDescriptionText]',\n})\nexport class EclBannerDescriptionTextDirective extends ECLBaseDirective {\n @HostBinding('class') className = 'ecl-banner__description-text';\n}\n\n/**\n * Directive for a link inside the banner description.\n */\n@Directive({\n selector: '[eclBannerDescriptionLink]',\n})\nexport class EclBannerDescriptionLinkDirective extends ECLBaseDirective {\n @HostBinding('class') className = 'ecl-link ecl-banner__description-link';\n}\n","import { NgModule } from '@angular/core';\nimport { EclBannerTitleDirective, EclBannerTitleLinkDirective, EclBannerTitleTextDirective } from './ecl-banner-title.directive';\nimport { EclBannerDescriptionDirective, EclBannerDescriptionLinkDirective, EclBannerDescriptionTextDirective } from './ecl-banner-description.directive';\nimport { EclBannerComponent } from './ecl-banner.component';\nimport { EclBannerImageDirective, EclBannerPictureDirective } from './ecl-banner-picture.directive';\nimport { EclBannerVideoDirective } from './ecl-banner-video.directive';\n\nconst COMPONENTS = [\n EclBannerComponent,\n EclBannerTitleDirective,\n EclBannerTitleTextDirective,\n EclBannerDescriptionDirective,\n EclBannerDescriptionTextDirective,\n EclBannerPictureDirective,\n EclBannerImageDirective,\n EclBannerTitleLinkDirective,\n EclBannerVideoDirective,\n EclBannerDescriptionLinkDirective,\n];\n\n/**\n * @description\n * Module that provides the EclBanner component and its dependencies.\n *\n * @deprecated Use {@link EUI_ECL_BANNER} instead.\n */\n@NgModule({\n imports: [...COMPONENTS],\n exports: [...COMPONENTS],\n})\nexport class EclBannerModule {}\n","import { EclBannerComponent } from './ecl-banner.component';\nimport { EclBannerTitleDirective, EclBannerTitleTextDirective, EclBannerTitleLinkDirective } from './ecl-banner-title.directive';\nimport { EclBannerDescriptionDirective, EclBannerDescriptionTextDirective, EclBannerDescriptionLinkDirective } from './ecl-banner-description.directive';\nimport { EclBannerImageDirective, EclBannerPictureDirective } from './ecl-banner-picture.directive';\nimport { EclBannerVideoDirective } from './ecl-banner-video.directive';\n\nexport * from './ecl-banner.module';\nexport * from './ecl-banner.component';\nexport * from './ecl-banner-title.directive';\nexport * from './ecl-banner-description.directive';\nexport * from './ecl-banner-picture.directive';\nexport * from './ecl-banner-video.directive';\n\nexport const EUI_ECL_BANNER = [\n EclBannerComponent,\n EclBannerTitleDirective,\n EclBannerTitleTextDirective,\n EclBannerTitleLinkDirective,\n EclBannerDescriptionDirective,\n EclBannerDescriptionTextDirective,\n EclBannerDescriptionLinkDirective,\n EclBannerPictureDirective,\n EclBannerImageDirective,\n EclBannerVideoDirective,\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-banner.mjs","sources":["../../components/ecl-banner/ecl-banner-picture.directive.ts","../../components/ecl-banner/ecl-banner-video.directive.ts","../../components/ecl-banner/ecl-banner.component.ts","../../components/ecl-banner/ecl-banner.component.html","../../components/ecl-banner/ecl-banner-title.directive.ts","../../components/ecl-banner/ecl-banner-description.directive.ts","../../components/ecl-banner/ecl-banner.module.ts","../../components/ecl-banner/index.ts","../../components/ecl-banner/eui-ecl-components-ecl-banner.ts"],"sourcesContent":["import { Directive, HostBinding, ElementRef, inject } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Directive applied to the <picture> element within the banner.\n * Adds the appropriate classes for styling the banner picture.\n */\n@Directive({\n selector: 'picture[eclBannerPicture]',\n})\nexport class EclBannerPictureDirective extends ECLBaseDirective {\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-picture ecl-banner__picture')].join(' ').trim();\n }\n}\n\n/**\n * Directive applied to the <img> element inside the banner.\n * Enables class binding and exposes the element reference.\n */\n@Directive({\n selector: 'img[eclBannerImage]',\n})\nexport class EclBannerImageDirective extends ECLBaseDirective {\n el = inject(ElementRef);\n\n @HostBinding('class.ecl-banner__image') className = true;\n}\n","import { Directive, HostBinding, ElementRef, inject } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Directive applied to the video element used in the banner.\n * Adds appropriate styling classes to the host element.\n */\n@Directive({\n selector: 'video[eclBannerVideo]',\n})\nexport class EclBannerVideoDirective extends ECLBaseDirective {\n el = inject(ElementRef);\n\n /**\n * CSS classes applied to the host video element.\n */\n @HostBinding('class') videoClasses = 'ecl-video ecl-banner__video';\n}\n","import { BreakpointObserver } from '@angular/cdk/layout';\nimport {\n AfterContentInit,\n Component,\n ContentChild,\n ContentChildren,\n ElementRef,\n HostBinding,\n HostListener,\n Input,\n OnDestroy,\n QueryList,\n Renderer2,\n ViewChild,\n afterNextRender,\n booleanAttribute,\n forwardRef,\n inject,\n} from '@angular/core';\nimport { Subject, delay, takeUntil } from 'rxjs';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclLinkDirective } from '@eui/ecl/components/ecl-link';\nimport { EclBannerImageDirective } from './ecl-banner-picture.directive';\nimport { EclBannerVideoDirective } from './ecl-banner-video.directive';\nimport { EUI_ECL_ICON } from '@eui/ecl/components/ecl-icon';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { EclButtonComponent, EUI_ECL_BUTTON } from '@eui/ecl/components/ecl-button';\n\nconst enum DefaultRatio {\n XS = '6/1',\n S = '5/1',\n M = '4/1',\n L = '3/1',\n}\n\n/**\n * Component representing a banner, which can contain image, video and call-to-action (CTA) links.\n * Allows customization of layout, alignment, and appearance through inputs.\n */\n@Component({\n selector: 'ecl-banner',\n templateUrl: './ecl-banner.component.html',\n imports: [\n ...EUI_ECL_ICON,\n ...EUI_ECL_BUTTON,\n NgTemplateOutlet,\n ],\n})\nexport class EclBannerComponent extends ECLBaseDirective implements AfterContentInit, OnDestroy {\n el = inject(ElementRef);\n /**\n * Defines the size of the banner. Affects its height-to-width aspect ratio.\n * Allowed values: 'xs' | 's' | 'm' | 'l'.\n * Default: 'm'.\n */\n @Input() eclSize: 'xs'| 's' | 'm' | 'l' | string = 'm';\n\n /**\n * Defines the color of the font inside the banner content box.\n * Allowed values: 'light' | 'dark'.\n * Default: 'dark'.\n */\n @Input() fontColor: 'light' | 'dark' | string = 'dark';\n\n /**\n * Defines the font size inside the banner content box.\n * Allowed values: 'm' | 'l'.\n * Default: 'm'.\n */\n @Input() fontSize: 's' | 'm' | 'l' | string = 'm';\n\n /**\n * Defines the background color of the banner content box.\n * Allowed values: 'none' | 'light' | 'dark'.\n * Default: 'light'.\n */\n @Input() boxBackground: 'none' | 'light' | 'dark' | string = 'light';\n\n /**\n * Sets the horizontal alignment of the content inside the banner.\n * Allowed values: 'left' | 'center' | 'right'.\n * Default: 'left'.\n */\n @Input() horizontalAlignment: 'right' | 'left' | 'center' | string = 'left';\n\n /**\n * Sets the vertical alignment of the content inside the banner.\n * Allowed values: 'top' | 'center' | 'bottom'.\n * Default: 'center'.\n */\n @Input() verticalAlignment: 'top' | 'center' | 'bottom' | string = 'center';\n\n /**\n * Sets the copyright text displayed in the banner.\n */\n @Input() copyright = '';\n\n /**\n * When true, the banner stretches to full width of its container.\n * Default: false.\n */\n @Input({ transform: booleanAttribute }) isFullWidth = false;\n\n @ContentChildren(forwardRef(() => EclLinkDirective)) eclLinkComponents: QueryList<EclLinkDirective>;\n @ContentChild(EclBannerImageDirective) eclBannerImage: EclBannerImageDirective;\n @ContentChild(EclBannerVideoDirective) eclBannerVideo: EclBannerVideoDirective;\n\n @ViewChild('bannerFooter') bannerFooter: ElementRef;\n @ViewChild('bannerContainer') bannerContainer: ElementRef;\n @ViewChild('playBtn') playBtn: EclButtonComponent;\n @ViewChild('pauseBtn') pauseBtn: EclButtonComponent;\n\n @HostBinding('style.--banner-footer-height.px') bannerFooterHeight = null;\n @HostBinding('class')\n get cssClasses(): string {\n return [\n super.getCssClasses('ecl-banner'),\n `ecl-banner--${this.eclSize}`,\n `ecl-banner--font-${this.fontSize}`,\n `ecl-banner--box-bg-${this.boxBackground}`,\n `ecl-banner--h-${this.horizontalAlignment}`,\n `ecl-banner--v-${this.verticalAlignment}`,\n `ecl-banner--color-${this.fontColor}`,\n this.isFullWidth ? 'ecl-banner--full-width' : '',\n !this.hasMedia ? 'ecl-banner--no-media' : '',\n ]\n .join(' ')\n .trim();\n }\n\n isPlaying = false;\n private readonly BANNER_PADDING = 16;\n private destroy$: Subject<boolean> = new Subject<boolean>();\n private breakpoint = 1140;\n private bannerVPadding = 8;\n private isTabletBreakpoint = true;\n private readonly TIMEOUT_INTERVAL = 200;\n private renderer = inject(Renderer2);\n private cdkBreakpointObserver = inject(BreakpointObserver);\n private maxIterations = 10;\n\n constructor() {\n super();\n afterNextRender(() => {\n this.observeBreakpointChanges();\n this.observeElementSizeChanges();\n });\n }\n\n ngAfterContentInit(): void {\n if (this.eclLinkComponents) {\n this.eclLinkComponents.forEach((link) => {\n link.class = 'ecl-banner__link-cta';\n });\n }\n\n if (this.hasVideo) {\n const videoEl : HTMLVideoElement = this.eclBannerVideo.el.nativeElement;\n videoEl.addEventListener('play', () => {\n this.isPlaying = true;\n });\n videoEl.addEventListener('pause', () => {\n this.isPlaying = false;\n });\n this.renderer.setProperty(videoEl, 'muted', true);\n this.renderer.setProperty(videoEl, 'loop', true);\n this.renderer.setProperty(videoEl, 'autoplay', true);\n this.renderer.removeAttribute(videoEl, 'controls');\n }\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n }\n\n /**\n * Indicates whether the banner contains at least one call-to-action link.\n */\n get hasCtaLink(): boolean {\n return this.eclLinkComponents.length > 0;\n }\n\n /**\n * Indicates whether the banner contains an image.\n */\n get hasImage(): boolean {\n return !!this.eclBannerImage;\n }\n\n /**\n * Indicates whether the banner contains a video.\n */\n get hasVideo(): boolean {\n return !!this.eclBannerVideo;\n }\n\n /**\n * Indicates whether the banner contains any media (image or video).\n */\n get hasMedia(): boolean {\n return this.hasImage || this.hasVideo;\n }\n\n /**\n * Handles keyboard activation (Enter key) to play video.\n * Moves focus to pause button after playing starts.\n */\n onKeydownEnterPlay(): void {\n this.onVideoPlay();\n setTimeout(() => this.pauseBtn.onFocus());\n }\n\n @HostListener('window:resize')\n onWindowResize(): void {\n this.observeElementSizeChanges();\n }\n\n /**\n * Handles keyboard activation (Enter key) to pause video.\n * Moves focus to play button after pausing.\n */\n onKeydownEnterPause(): void {\n this.onVideoPause();\n setTimeout(() => this.playBtn.onFocus());\n }\n\n /**\n * Plays the embedded banner video.\n * Triggered via interaction (e.g., button).\n */\n onVideoPlay(): void {\n const videoEl : HTMLVideoElement = this.eclBannerVideo.el.nativeElement;\n videoEl.play();\n }\n\n /**\n * Pauses the embedded banner video.\n * Triggered via interaction (e.g., button).\n */\n onVideoPause(): void {\n const videoEl : HTMLVideoElement = this.eclBannerVideo.el.nativeElement;\n videoEl.pause();\n }\n\n private observeElementSizeChanges(): void {\n // new ResizeObserver(() => { // Removing this for now , because it is causing problems (infinite loop). Observing window:resize.\n setTimeout(() => {\n this.checkViewport();\n }, this.TIMEOUT_INTERVAL);\n // }).observe(this.bannerContainer.nativeElement);\n }\n\n private checkViewport() {\n if (window.innerWidth > this.breakpoint) {\n this.setBannerHeight();\n } else {\n this.resetBannerHeight();\n }\n }\n\n private waitForAspectRatioToBeDefined(attemptCounter: number) {\n attemptCounter = attemptCounter + 1;\n const aspectRatio = window.getComputedStyle(this.el.nativeElement).getPropertyValue('--css-aspect-ratio');\n\n if (\n (typeof aspectRatio === 'undefined' || aspectRatio === '') &&\n this.maxIterations > attemptCounter\n ) {\n setTimeout(() => this.waitForAspectRatioToBeDefined(attemptCounter), 100);\n } else {\n this.setHeight(aspectRatio);\n }\n }\n\n private setBannerHeight(): void {\n if (this.hasMedia) {\n this.waitForAspectRatioToBeDefined(0);\n } else {\n this.setHeight(this.getDefaultRatio());\n }\n }\n\n private setHeight(ratio) {\n if (this.bannerContainer) {\n const bannerHeight = this.bannerContainer.nativeElement.offsetHeight + 2*this.bannerVPadding;\n const bannerWidth = parseInt(window.getComputedStyle(this.el.nativeElement).getPropertyValue('width'), 10);\n const [denominator, numerator] = ratio.split('/').map(Number);\n const currentHeight = (bannerWidth * numerator) / denominator;\n if (bannerHeight > currentHeight) {\n this.renderer.setStyle(this.el.nativeElement, 'aspect-ratio', 'auto');\n this.renderer.setStyle(this.el.nativeElement, 'height', `${bannerHeight}px`);\n } else {\n this.resetBannerHeight();\n }\n }\n\n // Add margin to the banner container when there is a footer\n // This is needed to keep the vertical alignment\n if (this.bannerFooter) {\n this.bannerFooterHeight = this.bannerFooter.nativeElement.offsetHeight;\n // this.renderer.setStyle(this.el.nativeElement, '--banner-footer-height', `${this.bannerFooter.nativeElement.offsetHeight}px`);\n }\n }\n\n private resetBannerHeight(): void {\n // remove aspect-ratio\n this.renderer.removeStyle(this.el.nativeElement, 'aspect-ratio');\n\n // set height to auto\n this.renderer.setStyle(this.el.nativeElement, 'height', 'auto');\n\n // update footer height if bannerFooter exists\n if (this.bannerFooter) {\n // const footerHeight = `${this.bannerFooter.nativeElement.offsetHeight}px`;\n this.bannerFooterHeight = this.bannerFooter.nativeElement.offsetHeight;\n // this.renderer.setStyle(this.el.nativeElement, '--banner-footer-height', footerHeight);\n }\n }\n\n private getDefaultRatio(): string {\n switch(this.eclSize) {\n case 'xs': {\n return DefaultRatio.XS;\n }\n case 's': {\n return DefaultRatio.S;\n }\n case 'l': {\n return DefaultRatio.L;\n }\n default: {\n return DefaultRatio.M;\n }\n }\n }\n\n private observeBreakpointChanges(): void {\n this.cdkBreakpointObserver\n .observe([\n '(min-width: 1140px)',\n ])\n .pipe(takeUntil(this.destroy$), delay(this.TIMEOUT_INTERVAL))\n .subscribe((result) => {\n this.isTabletBreakpoint = result.breakpoints['(min-width: 997px)'];\n if ( !this.isTabletBreakpoint) {\n this.setBannerHeight();\n }\n });\n }\n\n}\n","@if(hasImage) {\n<figure class=\"ecl-banner__picture-container\">\n <ng-content select=\"[eclBannerPicture]\"></ng-content>\n @if(copyright) {\n <ng-container *ngTemplateOutlet=\"bannerFooterTemplate\"></ng-container>\n }\n</figure>\n}\n\n@if(hasVideo) {\n<div class=\"ecl-banner__video-container\">\n <ng-content select=\"[eclBannerVideo]\"></ng-content>\n @if(copyright) {\n <ng-container *ngTemplateOutlet=\"bannerFooterTemplate\"></ng-container>\n }\n <button #playBtn eclButton variant=\"tertiary\" isIconOnly class=\"ecl-banner__play\" (click)=\"onVideoPlay()\"\n [style.display]=\"isPlaying ? 'none' : 'block'\" (keydown.enter)=\"onKeydownEnterPlay()\">\n <span eclButtonLabel>Play video</span>\n <ecl-icon icon=\"play-outline\" size=\"m\"></ecl-icon>\n </button>\n <button #pauseBtn eclButton variant=\"tertiary\" isIconOnly class=\"ecl-banner__pause\" (click)=\"onVideoPause()\"\n [style.display]=\"isPlaying ? 'block' : 'none'\" (keydown.enter)=\"onKeydownEnterPause()\">\n <span eclButtonLabel>Pause video</span>\n <ecl-icon icon=\"pause-outline\" size=\"m\"></ecl-icon>\n </button>\n</div>\n}\n<div class=\"ecl-container ecl-banner__info\">\n <div #bannerContainer class=\"ecl-banner__container \">\n <div class=\"ecl-banner__content\">\n <ng-content select=\"[eclBannerTitle]\"></ng-content>\n <ng-content select=\"[eclBannerDescription]\"></ng-content>\n @if (hasCtaLink) {\n <div class=\"ecl-banner__cta\">\n <ng-content select=\"[eclLink]\"></ng-content>\n </div>\n }\n <ng-content></ng-content>\n </div>\n </div>\n</div>\n\n<ng-template #bannerFooterTemplate>\n <footer #bannerFooter class=\"ecl-banner__credit\"><div class=\"ecl-container\">© {{copyright}}</div></footer>\n</ng-template>","import { Directive, HostBinding } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Directive applied to the banner title container element.\n * Adds appropriate styling class to the host element.\n */\n@Directive({\n selector: '[eclBannerTitle]',\n})\nexport class EclBannerTitleDirective extends ECLBaseDirective {\n @HostBinding('class') className = 'ecl-banner__title';\n}\n\n/**\n * Directive applied to the text element within the banner title.\n * Adds appropriate styling class to the host element.\n */\n@Directive({\n selector: '[eclBannerTitleText]',\n})\nexport class EclBannerTitleTextDirective extends ECLBaseDirective {\n @HostBinding('class') className = 'ecl-banner__title-text';\n}\n\n/**\n * Directive applied to the link element within the banner title.\n * Adds link classes and marks the link as standalone.\n */\n@Directive({\n selector: '[eclBannerTitleLink]',\n})\nexport class EclBannerTitleLinkDirective extends ECLBaseDirective {\n @HostBinding('class') className = 'ecl-link ecl-banner__title-link';\n @HostBinding('class.ecl-link--standalone') isStandalone = true;\n}\n","import { Directive, HostBinding } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Directive for the main banner description container.\n */\n@Directive({\n selector: '[eclBannerDescription]',\n})\nexport class EclBannerDescriptionDirective extends ECLBaseDirective {\n @HostBinding('class') className = 'ecl-banner__description';\n}\n\n/**\n * Directive for the textual content inside the banner description.\n */\n@Directive({\n selector: '[eclBannerDescriptionText]',\n})\nexport class EclBannerDescriptionTextDirective extends ECLBaseDirective {\n @HostBinding('class') className = 'ecl-banner__description-text';\n}\n\n/**\n * Directive for a link inside the banner description.\n * Adds link classes and marks the link as standalone.\n */\n@Directive({\n selector: '[eclBannerDescriptionLink]',\n})\nexport class EclBannerDescriptionLinkDirective extends ECLBaseDirective {\n @HostBinding('class') className = 'ecl-link ecl-banner__description-link';\n @HostBinding('class.ecl-link--standalone') isStandalone = true;\n}\n","import { NgModule } from '@angular/core';\nimport { EclBannerTitleDirective, EclBannerTitleLinkDirective, EclBannerTitleTextDirective } from './ecl-banner-title.directive';\nimport { EclBannerDescriptionDirective, EclBannerDescriptionLinkDirective, EclBannerDescriptionTextDirective } from './ecl-banner-description.directive';\nimport { EclBannerComponent } from './ecl-banner.component';\nimport { EclBannerImageDirective, EclBannerPictureDirective } from './ecl-banner-picture.directive';\nimport { EclBannerVideoDirective } from './ecl-banner-video.directive';\n\nconst COMPONENTS = [\n EclBannerComponent,\n EclBannerTitleDirective,\n EclBannerTitleTextDirective,\n EclBannerDescriptionDirective,\n EclBannerDescriptionTextDirective,\n EclBannerPictureDirective,\n EclBannerImageDirective,\n EclBannerTitleLinkDirective,\n EclBannerVideoDirective,\n EclBannerDescriptionLinkDirective,\n];\n\n/**\n * @description\n * Module that provides the EclBanner component and its dependencies.\n *\n * @deprecated Use {@link EUI_ECL_BANNER} instead.\n */\n@NgModule({\n imports: [...COMPONENTS],\n exports: [...COMPONENTS],\n})\nexport class EclBannerModule {}\n","import { EclBannerComponent } from './ecl-banner.component';\nimport { EclBannerTitleDirective, EclBannerTitleTextDirective, EclBannerTitleLinkDirective } from './ecl-banner-title.directive';\nimport { EclBannerDescriptionDirective, EclBannerDescriptionTextDirective, EclBannerDescriptionLinkDirective } from './ecl-banner-description.directive';\nimport { EclBannerImageDirective, EclBannerPictureDirective } from './ecl-banner-picture.directive';\nimport { EclBannerVideoDirective } from './ecl-banner-video.directive';\n\nexport * from './ecl-banner.module';\nexport * from './ecl-banner.component';\nexport * from './ecl-banner-title.directive';\nexport * from './ecl-banner-description.directive';\nexport * from './ecl-banner-picture.directive';\nexport * from './ecl-banner-video.directive';\n\nexport const EUI_ECL_BANNER = [\n EclBannerComponent,\n EclBannerTitleDirective,\n EclBannerTitleTextDirective,\n EclBannerTitleLinkDirective,\n EclBannerDescriptionDirective,\n EclBannerDescriptionTextDirective,\n EclBannerDescriptionLinkDirective,\n EclBannerPictureDirective,\n EclBannerImageDirective,\n EclBannerVideoDirective,\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|