@eui/ecl 22.0.0-alpha.3 → 22.0.0-alpha.5
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 +239 -0
- package/docs/components/EclDateBlockComponent.html +0 -9
- package/docs/components/EclIconComponent.html +1 -1
- package/docs/components/EclMenuItemComponent.html +46 -0
- package/docs/components/EclSiteFooterRowCommonComponent.html +1 -1
- package/docs/components/EclSiteHeaderLanguageComponent.html +5 -627
- package/docs/components/EclSiteHeaderLanguagePopoverComponent.html +99 -440
- package/docs/components/EclSiteHeaderLoginComponent.html +9 -453
- package/docs/components/EclSiteHeaderSearchComponent.html +18 -470
- package/docs/components/EclSocialMediaFollowComponent.html +28 -39
- package/docs/components/EclSocialMediaFollowItemComponent.html +26 -129
- package/docs/components/EclStoryCardComponent.html +1 -1
- package/docs/directives/ECLClickOutsideDirective.html +3 -0
- package/docs/directives/EclDividerDirective.html +0 -116
- package/docs/directives/EclFileUploadDirective.html +2 -390
- package/docs/directives/EclLinkDirective.html +0 -39
- package/docs/js/search/search_index.js +2 -2
- package/docs/json/EclIconComponent.md +1 -1
- package/docs/json/EclSiteHeaderLanguagePopoverComponent.md +6 -6
- package/docs/json/EclSiteHeaderSearchComponent.md +1 -0
- package/docs/json/EclSocialMediaFollowComponent.md +1 -0
- package/docs/json/documentation.json +725 -1234
- package/docs/llms.txt +22 -46
- package/docs/miscellaneous/variables.html +222 -41
- package/docs/properties.html +1 -1
- package/fesm2022/eui-ecl-components-ecl-date-block.mjs +2 -2
- package/fesm2022/eui-ecl-components-ecl-date-block.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-divider.mjs +6 -13
- package/fesm2022/eui-ecl-components-ecl-divider.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-file-upload.mjs +13 -27
- package/fesm2022/eui-ecl-components-ecl-file-upload.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-icon.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-inpage-navigation.mjs +53 -9
- package/fesm2022/eui-ecl-components-ecl-inpage-navigation.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-link.mjs +10 -13
- package/fesm2022/eui-ecl-components-ecl-link.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-menu.mjs +16 -3
- package/fesm2022/eui-ecl-components-ecl-menu.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-site-footer.mjs +2 -2
- package/fesm2022/eui-ecl-components-ecl-site-footer.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-site-header.mjs +326 -261
- package/fesm2022/eui-ecl-components-ecl-site-header.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-social-media-follow.mjs +17 -17
- package/fesm2022/eui-ecl-components-ecl-social-media-follow.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-story-card.mjs +2 -2
- package/fesm2022/eui-ecl-components-ecl-story-card.mjs.map +1 -1
- package/package.json +1 -1
- package/types/eui-ecl-components-ecl-date-block.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-divider.d.ts +0 -4
- package/types/eui-ecl-components-ecl-divider.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-file-upload.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-inpage-navigation.d.ts +25 -0
- package/types/eui-ecl-components-ecl-inpage-navigation.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-link.d.ts +2 -4
- package/types/eui-ecl-components-ecl-link.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-menu.d.ts +12 -1
- package/types/eui-ecl-components-ecl-menu.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-site-header.d.ts +240 -216
- package/types/eui-ecl-components-ecl-site-header.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-social-media-follow.d.ts +5 -3
- package/types/eui-ecl-components-ecl-social-media-follow.d.ts.map +1 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { input, booleanAttribute,
|
|
2
|
+
import { input, booleanAttribute, Component, output, inject, contentChild, HostBinding, Directive } from '@angular/core';
|
|
3
3
|
import { ECLBaseDirective, EclBaseEvent } from '@eui/ecl/core';
|
|
4
4
|
import { NgTemplateOutlet } from '@angular/common';
|
|
5
5
|
import * as i1 from '@eui/ecl/components/ecl-icon';
|
|
@@ -13,6 +13,7 @@ class EclSocialMediaFollowComponent extends ECLBaseDirective {
|
|
|
13
13
|
super(...arguments);
|
|
14
14
|
this.description = input(undefined, /* @ts-ignore */
|
|
15
15
|
...(ngDevMode ? [{ debugName: "description" }] : /* istanbul ignore next */ []));
|
|
16
|
+
this.isIconOnly = input(false, { ...(ngDevMode ? { debugName: "isIconOnly" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
16
17
|
this.isVertical = input(false, { ...(ngDevMode ? { debugName: "isVertical" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
17
18
|
this.horizontalAlignment = input('left', /* @ts-ignore */
|
|
18
19
|
...(ngDevMode ? [{ debugName: "horizontalAlignment" }] : /* istanbul ignore next */ []));
|
|
@@ -27,15 +28,14 @@ class EclSocialMediaFollowComponent extends ECLBaseDirective {
|
|
|
27
28
|
.trim();
|
|
28
29
|
}
|
|
29
30
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EclSocialMediaFollowComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
30
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.2", type: EclSocialMediaFollowComponent, isStandalone: true, selector: "ecl-social-media-follow", inputs: { description: { classPropertyName: "description", publicName: "description", isSignal: true, isRequired: false, transformFunction: null }, isVertical: { classPropertyName: "isVertical", publicName: "isVertical", isSignal: true, isRequired: false, transformFunction: null }, horizontalAlignment: { classPropertyName: "horizontalAlignment", publicName: "horizontalAlignment", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "
|
|
31
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.2", type: EclSocialMediaFollowComponent, isStandalone: true, selector: "ecl-social-media-follow", inputs: { description: { classPropertyName: "description", publicName: "description", isSignal: true, isRequired: false, transformFunction: null }, isIconOnly: { classPropertyName: "isIconOnly", publicName: "isIconOnly", isSignal: true, isRequired: false, transformFunction: null }, isVertical: { classPropertyName: "isVertical", publicName: "isVertical", isSignal: true, isRequired: false, transformFunction: null }, horizontalAlignment: { classPropertyName: "horizontalAlignment", publicName: "horizontalAlignment", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "cssClasses" } }, usesInheritance: true, ngImport: i0, template: "@if (description()) {\n <p class=\"ecl-social-media-follow__description\">{{ description() }}</p>\n}\n<ul class=\"ecl-social-media-follow__list\">\n <ng-content></ng-content>\n</ul>\n" }); }
|
|
31
32
|
}
|
|
32
33
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EclSocialMediaFollowComponent, decorators: [{
|
|
33
34
|
type: Component,
|
|
34
|
-
args: [{ selector: 'ecl-social-media-follow',
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
}] } });
|
|
35
|
+
args: [{ selector: 'ecl-social-media-follow', host: {
|
|
36
|
+
'[class]': 'cssClasses',
|
|
37
|
+
}, template: "@if (description()) {\n <p class=\"ecl-social-media-follow__description\">{{ description() }}</p>\n}\n<ul class=\"ecl-social-media-follow__list\">\n <ng-content></ng-content>\n</ul>\n" }]
|
|
38
|
+
}], propDecorators: { description: [{ type: i0.Input, args: [{ isSignal: true, alias: "description", required: false }] }], isIconOnly: [{ type: i0.Input, args: [{ isSignal: true, alias: "isIconOnly", required: false }] }], isVertical: [{ type: i0.Input, args: [{ isSignal: true, alias: "isVertical", required: false }] }], horizontalAlignment: [{ type: i0.Input, args: [{ isSignal: true, alias: "horizontalAlignment", required: false }] }] } });
|
|
39
39
|
|
|
40
40
|
class EclSocialMediaFollowItemClickEvent extends EclBaseEvent {
|
|
41
41
|
}
|
|
@@ -43,7 +43,6 @@ class EclSocialMediaFollowItemComponent extends ECLBaseDirective {
|
|
|
43
43
|
constructor() {
|
|
44
44
|
super(...arguments);
|
|
45
45
|
this.isInverted = input(undefined, { ...(ngDevMode ? { debugName: "isInverted" } : /* istanbul ignore next */ {}), transform: (booleanAttribute) });
|
|
46
|
-
this.role = 'listitem';
|
|
47
46
|
this.icon = input(/* @ts-ignore */
|
|
48
47
|
...(ngDevMode ? [undefined, { debugName: "icon" }] : /* istanbul ignore next */ []));
|
|
49
48
|
this.iconSet = input('social-media', /* @ts-ignore */
|
|
@@ -59,10 +58,14 @@ class EclSocialMediaFollowItemComponent extends ECLBaseDirective {
|
|
|
59
58
|
this.extraAttributes = input(undefined, /* @ts-ignore */
|
|
60
59
|
...(ngDevMode ? [{ debugName: "extraAttributes" }] : /* istanbul ignore next */ []));
|
|
61
60
|
this.itemClick = output();
|
|
61
|
+
this.parent = inject(EclSocialMediaFollowComponent);
|
|
62
62
|
}
|
|
63
63
|
get cssClasses() {
|
|
64
64
|
return [super.getCssClasses('ecl-social-media-follow__item')].join(' ').trim();
|
|
65
65
|
}
|
|
66
|
+
get isIconOnly() {
|
|
67
|
+
return this.parent?.isIconOnly() ?? false;
|
|
68
|
+
}
|
|
66
69
|
onItemClick(evt) {
|
|
67
70
|
this.itemClick.emit(new EclSocialMediaFollowItemClickEvent());
|
|
68
71
|
if (!this.href() && !this.routerLink()) {
|
|
@@ -70,18 +73,15 @@ class EclSocialMediaFollowItemComponent extends ECLBaseDirective {
|
|
|
70
73
|
}
|
|
71
74
|
}
|
|
72
75
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EclSocialMediaFollowItemComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
73
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.2", type: EclSocialMediaFollowItemComponent, isStandalone: true, selector: "ecl-social-media-follow-item", inputs: { isInverted: { classPropertyName: "isInverted", publicName: "isInverted", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, iconSet: { classPropertyName: "iconSet", publicName: "iconSet", isSignal: true, isRequired: false, transformFunction: null }, href: { classPropertyName: "href", publicName: "href", isSignal: true, isRequired: false, transformFunction: null }, routerLink: { classPropertyName: "routerLink", publicName: "routerLink", isSignal: true, isRequired: false, transformFunction: null }, target: { classPropertyName: "target", publicName: "target", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, extraAttributes: { classPropertyName: "extraAttributes", publicName: "extraAttributes", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { itemClick: "itemClick" }, host: {
|
|
76
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.2", type: EclSocialMediaFollowItemComponent, isStandalone: true, selector: "ecl-social-media-follow-item", inputs: { isInverted: { classPropertyName: "isInverted", publicName: "isInverted", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, iconSet: { classPropertyName: "iconSet", publicName: "iconSet", isSignal: true, isRequired: false, transformFunction: null }, href: { classPropertyName: "href", publicName: "href", isSignal: true, isRequired: false, transformFunction: null }, routerLink: { classPropertyName: "routerLink", publicName: "routerLink", isSignal: true, isRequired: false, transformFunction: null }, target: { classPropertyName: "target", publicName: "target", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, extraAttributes: { classPropertyName: "extraAttributes", publicName: "extraAttributes", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { itemClick: "itemClick" }, host: { attributes: { "role": "listitem" }, properties: { "class": "cssClasses" } }, usesInheritance: true, ngImport: i0, template: "@if(href()) {\n<a eclLink (click)=\"onItemClick($event)\" variant=\"standalone\" [href]=\"href()\" [attr.target]=\"target()\"\n class=\"ecl-social-media-follow__link\" [isInverted]=\"isInverted()\" [isIconOnly]=\"isIconOnly\" [extraAttributes]=\"extraAttributes()\">\n @if(icon()) {\n <ecl-icon [iconSet]=\"iconSet()\" icon=\"{{ icon() }}\" [size]=\"size()\" class=\"ecl-social-media-follow__icon\"> </ecl-icon>\n }\n <span eclLinkLabel>\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </span>\n</a>\n}\n\n@if(!href() && routerLink()) {\n<a eclLink (click)=\"onItemClick($event)\" variant=\"standalone\" [routerLink]=\"routerLink()\" [attr.target]=\"target()\"\n class=\"ecl-social-media-follow__link\" [isInverted]=\"isInverted()\" [isIconOnly]=\"isIconOnly\" [extraAttributes]=\"extraAttributes()\">\n @if(icon()) {\n <ecl-icon [iconSet]=\"iconSet()\" icon=\"{{ icon() }}\" [size]=\"size()\" class=\"ecl-social-media-follow__icon\"> </ecl-icon>\n }\n <span eclLinkLabel>\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </span>\n</a>\n}\n\n@if(!href() && !routerLink()) {\n<ng-container *ngTemplateOutlet=\"content\"></ng-container>\n}\n\n<ng-template #content>\n <ng-content></ng-content>\n</ng-template>\n", dependencies: [{ kind: "component", type: i1.EclIconComponent, selector: "ecl-icon", inputs: ["iconSet", "icon", "size", "color", "transform", "ariaLabelledby", "role", "title", "ariaHidden", "focusable", "isFlipHorizontal"] }, { kind: "directive", type: i2.EclLinkDirective, selector: "[eclLink]", inputs: ["extraAttributes", "isInverted", "isIconOnly", "isHighlight", "isNoVisited", "isBranded", "variant"] }, { kind: "directive", type: i2.EclLinkLabelDirective, selector: "[eclLinkLabel]" }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "browserUrl", "routerLink"] }] }); }
|
|
74
77
|
}
|
|
75
78
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EclSocialMediaFollowItemComponent, decorators: [{
|
|
76
79
|
type: Component,
|
|
77
|
-
args: [{ selector: 'ecl-social-media-follow-item', imports: [...EUI_ECL_ICON, ...EUI_ECL_LINK, NgTemplateOutlet, RouterLink, RouterLinkWithHref],
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
type: HostBinding,
|
|
83
|
-
args: ['class']
|
|
84
|
-
}], itemClick: [{ type: i0.Output, args: ["itemClick"] }] } });
|
|
80
|
+
args: [{ selector: 'ecl-social-media-follow-item', imports: [...EUI_ECL_ICON, ...EUI_ECL_LINK, NgTemplateOutlet, RouterLink, RouterLinkWithHref], host: {
|
|
81
|
+
role: 'listitem',
|
|
82
|
+
'[class]': 'cssClasses',
|
|
83
|
+
}, template: "@if(href()) {\n<a eclLink (click)=\"onItemClick($event)\" variant=\"standalone\" [href]=\"href()\" [attr.target]=\"target()\"\n class=\"ecl-social-media-follow__link\" [isInverted]=\"isInverted()\" [isIconOnly]=\"isIconOnly\" [extraAttributes]=\"extraAttributes()\">\n @if(icon()) {\n <ecl-icon [iconSet]=\"iconSet()\" icon=\"{{ icon() }}\" [size]=\"size()\" class=\"ecl-social-media-follow__icon\"> </ecl-icon>\n }\n <span eclLinkLabel>\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </span>\n</a>\n}\n\n@if(!href() && routerLink()) {\n<a eclLink (click)=\"onItemClick($event)\" variant=\"standalone\" [routerLink]=\"routerLink()\" [attr.target]=\"target()\"\n class=\"ecl-social-media-follow__link\" [isInverted]=\"isInverted()\" [isIconOnly]=\"isIconOnly\" [extraAttributes]=\"extraAttributes()\">\n @if(icon()) {\n <ecl-icon [iconSet]=\"iconSet()\" icon=\"{{ icon() }}\" [size]=\"size()\" class=\"ecl-social-media-follow__icon\"> </ecl-icon>\n }\n <span eclLinkLabel>\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </span>\n</a>\n}\n\n@if(!href() && !routerLink()) {\n<ng-container *ngTemplateOutlet=\"content\"></ng-container>\n}\n\n<ng-template #content>\n <ng-content></ng-content>\n</ng-template>\n" }]
|
|
84
|
+
}], propDecorators: { isInverted: [{ type: i0.Input, args: [{ isSignal: true, alias: "isInverted", required: false }] }], icon: [{ type: i0.Input, args: [{ isSignal: true, alias: "icon", required: false }] }], iconSet: [{ type: i0.Input, args: [{ isSignal: true, alias: "iconSet", required: false }] }], href: [{ type: i0.Input, args: [{ isSignal: true, alias: "href", required: false }] }], routerLink: [{ type: i0.Input, args: [{ isSignal: true, alias: "routerLink", required: false }] }], target: [{ type: i0.Input, args: [{ isSignal: true, alias: "target", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], extraAttributes: [{ type: i0.Input, args: [{ isSignal: true, alias: "extraAttributes", required: false }] }], itemClick: [{ type: i0.Output, args: ["itemClick"] }] } });
|
|
85
85
|
|
|
86
86
|
class EclSocialMediaFollowLinkDirective extends ECLBaseDirective {
|
|
87
87
|
constructor() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eui-ecl-components-ecl-social-media-follow.mjs","sources":["../../components/ecl-social-media-follow/ecl-social-media-follow.component.ts","../../components/ecl-social-media-follow/ecl-social-media-follow.component.html","../../components/ecl-social-media-follow/ecl-social-media-follow-item.component.ts","../../components/ecl-social-media-follow/ecl-social-media-follow-item.component.html","../../components/ecl-social-media-follow/ecl-social-media-follow-link.directive.ts","../../components/ecl-social-media-follow/index.ts","../../components/ecl-social-media-follow/eui-ecl-components-ecl-social-media-follow.ts"],"sourcesContent":["import { Component, HostBinding, booleanAttribute, input } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n@Component({\n selector: 'ecl-social-media-follow',\n templateUrl: './ecl-social-media-follow.component.html',\n})\nexport class EclSocialMediaFollowComponent extends ECLBaseDirective {\n readonly description = input<string>(undefined);\n readonly isVertical = input(false, { transform: booleanAttribute });\n readonly horizontalAlignment = input<'right' | 'left' | string>('left');\n\n @HostBinding('class')\n get cssClasses(): string {\n return [\n super.getCssClasses('ecl-social-media-follow'),\n this.isVertical() ? 'ecl-social-media-follow--vertical' : '',\n `ecl-social-media-follow--${this.horizontalAlignment()}`,\n ]\n .join(' ')\n .trim();\n }\n}\n","@if (description()) {\n <p class=\"ecl-social-media-follow__description\">{{ description() }}</p>\n}\n<ul class=\"ecl-social-media-follow__list\">\n <ng-content></ng-content>\n</ul>\n","import { booleanAttribute, Component, HostBinding, input, output } from '@angular/core';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { EUI_ECL_ICON } from '@eui/ecl/components/ecl-icon';\nimport { EclBaseEvent } from '@eui/ecl/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EUI_ECL_LINK } from '@eui/ecl/components/ecl-link';\nimport { RouterLink, RouterLinkWithHref } from '@angular/router';\n\nexport class EclSocialMediaFollowItemClickEvent extends EclBaseEvent {}\n\n@Component({\n selector: 'ecl-social-media-follow-item',\n templateUrl: './ecl-social-media-follow-item.component.html',\n imports: [...EUI_ECL_ICON, ...EUI_ECL_LINK, NgTemplateOutlet, RouterLink, RouterLinkWithHref],\n})\nexport class EclSocialMediaFollowItemComponent extends ECLBaseDirective {\n readonly isInverted = input<false, unknown>(undefined, { transform: (booleanAttribute) as any });\n @HostBinding('attr.role') role = 'listitem';\n icon = input<string>();\n iconSet = input<string>('social-media');\n readonly href = input('');\n readonly routerLink = input('');\n readonly target = input<string>(undefined);\n readonly size = input('m');\n readonly extraAttributes = input<{\n name: string;\n value?: string | null;\n }[]>(undefined);\n\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-social-media-follow__item')].join(' ').trim();\n }\n\n readonly itemClick = output<EclSocialMediaFollowItemClickEvent>();\n\n onItemClick(evt): void {\n this.itemClick.emit(new EclSocialMediaFollowItemClickEvent());\n if (!this.href() && !this.routerLink()) {\n evt.preventDefault();\n }\n }\n}\n","@if(href()) {\n<a eclLink (click)=\"onItemClick($event)\" variant=\"standalone\" [href]=\"href()\" [attr.target]=\"target()\"\n class=\"ecl-social-media-follow__link\" [isInverted]=\"isInverted()\" [extraAttributes]=\"extraAttributes()\">\n @if(icon()) {\n <ecl-icon [iconSet]=\"iconSet()\" icon=\"{{ icon() }}\" [size]=\"size()\" class=\"ecl-social-media-follow__icon\"> </ecl-icon>\n }\n <span eclLinkLabel>\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </span>\n</a>\n}\n\n@if(!href() && routerLink()) {\n<a eclLink (click)=\"onItemClick($event)\" variant=\"standalone\" [routerLink]=\"routerLink()\" [attr.target]=\"target()\"\n class=\"ecl-social-media-follow__link\" [isInverted]=\"isInverted()\" [extraAttributes]=\"extraAttributes()\">\n @if(icon()) {\n <ecl-icon [iconSet]=\"iconSet()\" icon=\"{{ icon() }}\" [size]=\"size()\" class=\"ecl-social-media-follow__icon\"> </ecl-icon>\n }\n <span eclLinkLabel>\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </span>\n</a>\n}\n\n@if(!href() && !routerLink()) {\n<ng-container *ngTemplateOutlet=\"content\"></ng-container>\n}\n\n<ng-template #content>\n <ng-content></ng-content>\n</ng-template>\n","import { Directive, HostBinding, AfterContentInit, contentChild } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclIconComponent } from '@eui/ecl/components/ecl-icon';\n\n@Directive({\n selector: '[eclSocialMediaFollowLink]',\n})\nexport class EclSocialMediaFollowLinkDirective extends ECLBaseDirective implements AfterContentInit {\n readonly eclIcon = contentChild(EclIconComponent);\n\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-social-media-follow__link')].join(' ').trim();\n }\n\n ngAfterContentInit(): void {\n if (this.eclIcon()) {\n setTimeout(() => (this.eclIcon().baseDirective.class = [this.eclIcon().baseDirective.class, 'ecl-social-media-follow__icon'].join(' ')));\n }\n }\n}\n","import { EclSocialMediaFollowComponent } from './ecl-social-media-follow.component';\nimport { EclSocialMediaFollowItemComponent } from './ecl-social-media-follow-item.component';\nimport { EclSocialMediaFollowLinkDirective } from './ecl-social-media-follow-link.directive';\n\nexport * from './ecl-social-media-follow.component';\nexport * from './ecl-social-media-follow-item.component';\nexport * from './ecl-social-media-follow-link.directive';\n\nexport const EUI_ECL_SOCIAL_MEDIA_FOLLOW = [\n EclSocialMediaFollowComponent,\n EclSocialMediaFollowItemComponent,\n EclSocialMediaFollowLinkDirective,\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-social-media-follow.mjs","sources":["../../components/ecl-social-media-follow/ecl-social-media-follow.component.ts","../../components/ecl-social-media-follow/ecl-social-media-follow.component.html","../../components/ecl-social-media-follow/ecl-social-media-follow-item.component.ts","../../components/ecl-social-media-follow/ecl-social-media-follow-item.component.html","../../components/ecl-social-media-follow/ecl-social-media-follow-link.directive.ts","../../components/ecl-social-media-follow/index.ts","../../components/ecl-social-media-follow/eui-ecl-components-ecl-social-media-follow.ts"],"sourcesContent":["import { Component, booleanAttribute, input } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n@Component({\n selector: 'ecl-social-media-follow',\n templateUrl: './ecl-social-media-follow.component.html',\n host: {\n '[class]': 'cssClasses',\n },\n})\nexport class EclSocialMediaFollowComponent extends ECLBaseDirective {\n readonly description = input<string>(undefined);\n readonly isIconOnly = input(false, { transform: booleanAttribute });\n readonly isVertical = input(false, { transform: booleanAttribute });\n readonly horizontalAlignment = input<'right' | 'left' | string>('left');\n\n get cssClasses(): string {\n return [\n super.getCssClasses('ecl-social-media-follow'),\n this.isVertical() ? 'ecl-social-media-follow--vertical' : '',\n `ecl-social-media-follow--${this.horizontalAlignment()}`,\n ]\n .join(' ')\n .trim();\n }\n}\n","@if (description()) {\n <p class=\"ecl-social-media-follow__description\">{{ description() }}</p>\n}\n<ul class=\"ecl-social-media-follow__list\">\n <ng-content></ng-content>\n</ul>\n","import { booleanAttribute, Component, inject, input, output } from '@angular/core';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { EUI_ECL_ICON } from '@eui/ecl/components/ecl-icon';\nimport { EclBaseEvent } from '@eui/ecl/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EUI_ECL_LINK } from '@eui/ecl/components/ecl-link';\nimport { RouterLink, RouterLinkWithHref } from '@angular/router';\nimport { EclSocialMediaFollowComponent } from './ecl-social-media-follow.component';\n\nexport class EclSocialMediaFollowItemClickEvent extends EclBaseEvent {}\n\n@Component({\n selector: 'ecl-social-media-follow-item',\n templateUrl: './ecl-social-media-follow-item.component.html',\n imports: [...EUI_ECL_ICON, ...EUI_ECL_LINK, NgTemplateOutlet, RouterLink, RouterLinkWithHref],\n host: {\n role: 'listitem',\n '[class]': 'cssClasses',\n },\n})\nexport class EclSocialMediaFollowItemComponent extends ECLBaseDirective {\n readonly isInverted = input<false, unknown>(undefined, { transform: (booleanAttribute) as any });\n icon = input<string>();\n iconSet = input<string>('social-media');\n readonly href = input('');\n readonly routerLink = input('');\n readonly target = input<string>(undefined);\n readonly size = input('m');\n readonly extraAttributes = input<{\n name: string;\n value?: string | null;\n }[]>(undefined);\n\n get cssClasses(): string {\n return [super.getCssClasses('ecl-social-media-follow__item')].join(' ').trim();\n }\n\n readonly itemClick = output<EclSocialMediaFollowItemClickEvent>();\n\n private parent = inject(EclSocialMediaFollowComponent);\n\n get isIconOnly(): boolean {\n return this.parent?.isIconOnly() ?? false;\n }\n\n onItemClick(evt: Event): void {\n this.itemClick.emit(new EclSocialMediaFollowItemClickEvent());\n if (!this.href() && !this.routerLink()) {\n evt.preventDefault();\n }\n }\n}\n","@if(href()) {\n<a eclLink (click)=\"onItemClick($event)\" variant=\"standalone\" [href]=\"href()\" [attr.target]=\"target()\"\n class=\"ecl-social-media-follow__link\" [isInverted]=\"isInverted()\" [isIconOnly]=\"isIconOnly\" [extraAttributes]=\"extraAttributes()\">\n @if(icon()) {\n <ecl-icon [iconSet]=\"iconSet()\" icon=\"{{ icon() }}\" [size]=\"size()\" class=\"ecl-social-media-follow__icon\"> </ecl-icon>\n }\n <span eclLinkLabel>\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </span>\n</a>\n}\n\n@if(!href() && routerLink()) {\n<a eclLink (click)=\"onItemClick($event)\" variant=\"standalone\" [routerLink]=\"routerLink()\" [attr.target]=\"target()\"\n class=\"ecl-social-media-follow__link\" [isInverted]=\"isInverted()\" [isIconOnly]=\"isIconOnly\" [extraAttributes]=\"extraAttributes()\">\n @if(icon()) {\n <ecl-icon [iconSet]=\"iconSet()\" icon=\"{{ icon() }}\" [size]=\"size()\" class=\"ecl-social-media-follow__icon\"> </ecl-icon>\n }\n <span eclLinkLabel>\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </span>\n</a>\n}\n\n@if(!href() && !routerLink()) {\n<ng-container *ngTemplateOutlet=\"content\"></ng-container>\n}\n\n<ng-template #content>\n <ng-content></ng-content>\n</ng-template>\n","import { Directive, HostBinding, AfterContentInit, contentChild } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclIconComponent } from '@eui/ecl/components/ecl-icon';\n\n@Directive({\n selector: '[eclSocialMediaFollowLink]',\n})\nexport class EclSocialMediaFollowLinkDirective extends ECLBaseDirective implements AfterContentInit {\n readonly eclIcon = contentChild(EclIconComponent);\n\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-social-media-follow__link')].join(' ').trim();\n }\n\n ngAfterContentInit(): void {\n if (this.eclIcon()) {\n setTimeout(() => (this.eclIcon().baseDirective.class = [this.eclIcon().baseDirective.class, 'ecl-social-media-follow__icon'].join(' ')));\n }\n }\n}\n","import { EclSocialMediaFollowComponent } from './ecl-social-media-follow.component';\nimport { EclSocialMediaFollowItemComponent } from './ecl-social-media-follow-item.component';\nimport { EclSocialMediaFollowLinkDirective } from './ecl-social-media-follow-link.directive';\n\nexport * from './ecl-social-media-follow.component';\nexport * from './ecl-social-media-follow-item.component';\nexport * from './ecl-social-media-follow-link.directive';\n\nexport const EUI_ECL_SOCIAL_MEDIA_FOLLOW = [\n EclSocialMediaFollowComponent,\n EclSocialMediaFollowItemComponent,\n EclSocialMediaFollowLinkDirective,\n] as const;","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -472,7 +472,7 @@ class EclStoryCardComponent extends ECLBaseDirective {
|
|
|
472
472
|
return Array.from({ length: this.totalSlides() }, (_, i) => i);
|
|
473
473
|
}
|
|
474
474
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EclStoryCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
475
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.2", type: EclStoryCardComponent, isStandalone: true, selector: "section[eclStoryCard]", inputs: { eclTitle: { classPropertyName: "eclTitle", publicName: "eclTitle", isSignal: true, isRequired: false, transformFunction: null }, eclDescription: { classPropertyName: "eclDescription", publicName: "eclDescription", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, isAutoplay: { classPropertyName: "isAutoplay", publicName: "isAutoplay", isSignal: true, isRequired: false, transformFunction: null }, autoplayDelay: { classPropertyName: "autoplayDelay", publicName: "autoplayDelay", isSignal: true, isRequired: false, transformFunction: null }, eclId: { classPropertyName: "eclId", publicName: "id", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selectionChange: "selectionChange" }, host: { properties: { "id": "componentId()", "class": "cssClasses()", "attr.aria-labelledby": "titleId()", "style.--ecl-story-card-slide-duration": "slideDuration()" } }, queries: [{ propertyName: "items", predicate: EclStoryCardItemComponent, descendants: true, isSignal: true }, { propertyName: "detailsPanels", predicate: EclStoryCardGridDetailsComponent, descendants: true, isSignal: true }], viewQueries: [{ propertyName: "emblaRef", first: true, predicate: EmblaCarouselDirective, descendants: true, isSignal: true }, { propertyName: "carouselImageWrappers", predicate: ["carouselImageWrapper"], descendants: true, isSignal: true }, { propertyName: "carouselContentWrappers", predicate: ["carouselContentWrapper"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "@if (eclTitle() || eclDescription()) {\n<div class=\"ecl-story-card__header\">\n @if (eclTitle()) {\n <div class=\"ecl-story-card__title\" [attr.id]=\"titleId()\">{{ eclTitle() }}</div>\n }\n @if (eclDescription()) {\n <div class=\"ecl-story-card__description\">{{ eclDescription() }}</div>\n }\n</div>\n}\n\n<!-- Mobile: Embla Carousel (auto-generated from items + details) -->\n<div class=\"ecl-story-card__carousel\">\n <div class=\"ecl-story-card__carousel-viewport\"\n role=\"region\"\n [attr.aria-label]=\"'ecl.story-card.SLIDER-LABEL' | translate\"\n emblaCarousel\n [options]=\"emblaOptions\"\n [subscribeToEvents]=\"subscribeToEvents\"\n (emblaChange)=\"onEmblaChange($event)\">\n <ul class=\"ecl-story-card__carousel-container\">\n @for (item of items(); track i; let i = $index) {\n <li class=\"ecl-story-card__carousel-slide\"\n [attr.aria-hidden]=\"i !== activeSlideIndex() ? true : null\">\n <article class=\"ecl-story-card__card\">\n <div class=\"ecl-story-card__image-wrapper\" #carouselImageWrapper>\n </div>\n <div class=\"ecl-story-card__content\" #carouselContentWrapper>\n @if (detailsPanels()[i]; as panel) {\n @if (panel.eclTitle()) {\n <div class=\"ecl-story-card__card-title\">{{ panel.eclTitle() }}</div>\n }\n @if (panel.description()) {\n <div class=\"ecl-story-card__card-description\">{{ panel.description() }}</div>\n }\n }\n </div>\n </article>\n </li>\n }\n </ul>\n </div>\n\n <!-- Carousel Controls -->\n @if (totalSlides() > 1) {\n <div class=\"ecl-story-card__pager\">\n <button class=\"ecl-story-card__prev\"\n [disabled]=\"prevDisabled()\"\n (click)=\"onCarouselPrevClick()\"\n [attr.aria-label]=\"'ecl.story-card.SHOW-PREV-SLIDE' | translate\">\n <ecl-icon icon=\"corner-arrow\" size=\"s\" transform=\"rotate-270\"></ecl-icon>\n <span class=\"ecl-story-card__prev-label\">\n {{ 'ecl.story-card.PREVIOUS' | translate }}\n </span>\n </button>\n\n <div class=\"ecl-story-card__dots\">\n @for (dotIndex of getDotIndices(); track dotIndex) {\n <button\n #dotButton\n class=\"ecl-story-card__dot\"\n [class.ecl-story-card__dot--active]=\"dotIndex === activeSlideIndex()\"\n [class.is-prev]=\"dotIndex === activeSlideIndex() - 1\"\n [attr.aria-label]=\"'ecl.story-card.GO-TO-SLIDE' | translate: { current: dotIndex + 1, total: totalSlides() }\"\n (click)=\"goToSlide(dotIndex)\">\n </button>\n }\n </div>\n\n <button class=\"ecl-story-card__next\"\n [disabled]=\"nextDisabled()\"\n (click)=\"onCarouselNextClick()\"\n [attr.aria-label]=\"'ecl.story-card.SHOW-NEXT-SLIDE' | translate\">\n <span class=\"ecl-story-card__next-label\">\n {{ 'ecl.story-card.NEXT' | translate }}\n </span>\n <ecl-icon icon=\"corner-arrow\" size=\"s\" transform=\"rotate-90\"></ecl-icon>\n </button>\n </div>\n }\n</div>\n\n<!-- Desktop: Grid with Accordion (user-authored content projected here) -->\n<div class=\"ecl-story-card__grid\">\n <ng-content select=\"ul[eclStoryCardList]\"></ng-content>\n <ng-content select=\"[eclStoryCardGridDetails]\"></ng-content>\n\n <!-- Grid Controls -->\n @if (totalSlides() > 1) {\n <div class=\"ecl-story-card__grid-controls\">\n <button class=\"ecl-button ecl-button--tertiary ecl-button--neutral ecl-story-card__grid-prev ecl-button--icon-only\"\n type=\"button\"\n (click)=\"onGridPrevClick()\"\n [attr.aria-label]=\"'ecl.story-card.PREVIOUS' | translate\">\n <span class=\"ecl-button__container\">\n <span class=\"ecl-button__label\"
|
|
475
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.2", type: EclStoryCardComponent, isStandalone: true, selector: "section[eclStoryCard]", inputs: { eclTitle: { classPropertyName: "eclTitle", publicName: "eclTitle", isSignal: true, isRequired: false, transformFunction: null }, eclDescription: { classPropertyName: "eclDescription", publicName: "eclDescription", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, isAutoplay: { classPropertyName: "isAutoplay", publicName: "isAutoplay", isSignal: true, isRequired: false, transformFunction: null }, autoplayDelay: { classPropertyName: "autoplayDelay", publicName: "autoplayDelay", isSignal: true, isRequired: false, transformFunction: null }, eclId: { classPropertyName: "eclId", publicName: "id", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selectionChange: "selectionChange" }, host: { properties: { "id": "componentId()", "class": "cssClasses()", "attr.aria-labelledby": "titleId()", "style.--ecl-story-card-slide-duration": "slideDuration()" } }, queries: [{ propertyName: "items", predicate: EclStoryCardItemComponent, descendants: true, isSignal: true }, { propertyName: "detailsPanels", predicate: EclStoryCardGridDetailsComponent, descendants: true, isSignal: true }], viewQueries: [{ propertyName: "emblaRef", first: true, predicate: EmblaCarouselDirective, descendants: true, isSignal: true }, { propertyName: "carouselImageWrappers", predicate: ["carouselImageWrapper"], descendants: true, isSignal: true }, { propertyName: "carouselContentWrappers", predicate: ["carouselContentWrapper"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "@if (eclTitle() || eclDescription()) {\n<div class=\"ecl-story-card__header\">\n @if (eclTitle()) {\n <div class=\"ecl-story-card__title\" [attr.id]=\"titleId()\">{{ eclTitle() }}</div>\n }\n @if (eclDescription()) {\n <div class=\"ecl-story-card__description\">{{ eclDescription() }}</div>\n }\n</div>\n}\n\n<!-- Mobile: Embla Carousel (auto-generated from items + details) -->\n<div class=\"ecl-story-card__carousel\">\n <div class=\"ecl-story-card__carousel-viewport\"\n role=\"region\"\n [attr.aria-label]=\"'ecl.story-card.SLIDER-LABEL' | translate\"\n emblaCarousel\n [options]=\"emblaOptions\"\n [subscribeToEvents]=\"subscribeToEvents\"\n (emblaChange)=\"onEmblaChange($event)\">\n <ul class=\"ecl-story-card__carousel-container\">\n @for (item of items(); track i; let i = $index) {\n <li class=\"ecl-story-card__carousel-slide\"\n [attr.aria-hidden]=\"i !== activeSlideIndex() ? true : null\">\n <article class=\"ecl-story-card__card\">\n <div class=\"ecl-story-card__image-wrapper\" #carouselImageWrapper>\n </div>\n <div class=\"ecl-story-card__content\" #carouselContentWrapper>\n @if (detailsPanels()[i]; as panel) {\n @if (panel.eclTitle()) {\n <div class=\"ecl-story-card__card-title\">{{ panel.eclTitle() }}</div>\n }\n @if (panel.description()) {\n <div class=\"ecl-story-card__card-description\">{{ panel.description() }}</div>\n }\n }\n </div>\n </article>\n </li>\n }\n </ul>\n </div>\n\n <!-- Carousel Controls -->\n @if (totalSlides() > 1) {\n <div class=\"ecl-story-card__pager\">\n <button class=\"ecl-story-card__prev\"\n [disabled]=\"prevDisabled()\"\n (click)=\"onCarouselPrevClick()\"\n [attr.aria-label]=\"'ecl.story-card.SHOW-PREV-SLIDE' | translate\">\n <ecl-icon icon=\"corner-arrow\" size=\"s\" transform=\"rotate-270\"></ecl-icon>\n <span class=\"ecl-story-card__prev-label\">\n {{ 'ecl.story-card.PREVIOUS' | translate }}\n </span>\n </button>\n\n <div class=\"ecl-story-card__dots\">\n @for (dotIndex of getDotIndices(); track dotIndex) {\n <button\n #dotButton\n class=\"ecl-story-card__dot\"\n [class.ecl-story-card__dot--active]=\"dotIndex === activeSlideIndex()\"\n [class.is-prev]=\"dotIndex === activeSlideIndex() - 1\"\n [attr.aria-label]=\"'ecl.story-card.GO-TO-SLIDE' | translate: { current: dotIndex + 1, total: totalSlides() }\"\n (click)=\"goToSlide(dotIndex)\">\n </button>\n }\n </div>\n\n <button class=\"ecl-story-card__next\"\n [disabled]=\"nextDisabled()\"\n (click)=\"onCarouselNextClick()\"\n [attr.aria-label]=\"'ecl.story-card.SHOW-NEXT-SLIDE' | translate\">\n <span class=\"ecl-story-card__next-label\">\n {{ 'ecl.story-card.NEXT' | translate }}\n </span>\n <ecl-icon icon=\"corner-arrow\" size=\"s\" transform=\"rotate-90\"></ecl-icon>\n </button>\n </div>\n }\n</div>\n\n<!-- Desktop: Grid with Accordion (user-authored content projected here) -->\n<div class=\"ecl-story-card__grid\">\n <ng-content select=\"ul[eclStoryCardList]\"></ng-content>\n <ng-content select=\"[eclStoryCardGridDetails]\"></ng-content>\n\n <!-- Grid Controls -->\n @if (totalSlides() > 1) {\n <div class=\"ecl-story-card__grid-controls\">\n <button class=\"ecl-button ecl-button--tertiary ecl-button--neutral ecl-story-card__grid-prev ecl-button--icon-only\"\n type=\"button\"\n (click)=\"onGridPrevClick()\"\n [attr.aria-label]=\"'ecl.story-card.PREVIOUS' | translate\">\n <span class=\"ecl-button__container\">\n <span class=\"ecl-button__label\">\n {{ 'ecl.story-card.PREVIOUS' | translate }}\n </span>\n <ecl-icon iconSet=\"phosphor\" icon=\"caret-left\" size=\"l\"></ecl-icon>\n </span>\n </button>\n\n <button class=\"ecl-button ecl-button--secondary ecl-button--neutral ecl-story-card__grid-play ecl-button--icon-only\"\n type=\"button\"\n [style.display]=\"isAutoPlaying() ? 'none' : 'flex'\"\n (click)=\"onPlayClick()\"\n [attr.aria-label]=\"'ecl.story-card.PLAY' | translate\">\n <span class=\"ecl-button__container\">\n <span class=\"ecl-button__label\">\n {{ 'ecl.story-card.PLAY' | translate }}\n </span>\n <ecl-icon iconSet=\"phosphor-fill\" icon=\"play\" size=\"l\"></ecl-icon>\n </span>\n </button>\n\n <button class=\"ecl-button ecl-button--secondary ecl-button--neutral ecl-story-card__grid-pause ecl-button--icon-only\"\n type=\"button\"\n [style.display]=\"isAutoPlaying() ? 'flex' : 'none'\"\n (click)=\"onPauseClick()\"\n [attr.aria-label]=\"'ecl.story-card.PAUSE' | translate\">\n <span class=\"ecl-button__container\">\n <span class=\"ecl-button__label\">\n {{ 'ecl.story-card.PAUSE' | translate }}\n </span>\n <ecl-icon iconSet=\"phosphor-fill\" icon=\"pause\" size=\"l\"></ecl-icon>\n </span>\n </button>\n\n <button class=\"ecl-button ecl-button--tertiary ecl-button--neutral ecl-story-card__grid-next ecl-button--icon-only\"\n type=\"button\"\n (click)=\"onGridNextClick()\"\n [attr.aria-label]=\"'ecl.story-card.NEXT' | translate\">\n <span class=\"ecl-button__container\">\n <span class=\"ecl-button__label\">\n {{ 'ecl.story-card.NEXT' | translate }}\n </span>\n <ecl-icon iconSet=\"phosphor\" icon=\"caret-right\" size=\"l\"></ecl-icon>\n </span>\n </button>\n </div>\n }\n</div>\n", dependencies: [{ kind: "component", type: EclIconComponent, selector: "ecl-icon", inputs: ["iconSet", "icon", "size", "color", "transform", "ariaLabelledby", "role", "title", "ariaHidden", "focusable", "isFlipHorizontal"] }, { kind: "directive", type: EmblaCarouselDirective, selector: "[emblaCarousel]", inputs: ["options", "plugins", "subscribeToEvents", "eventsThrottleTime"], outputs: ["emblaChange"], exportAs: ["emblaCarousel"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
476
476
|
}
|
|
477
477
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EclStoryCardComponent, decorators: [{
|
|
478
478
|
type: Component,
|
|
@@ -485,7 +485,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.2", ngImpor
|
|
|
485
485
|
TranslatePipe,
|
|
486
486
|
EclIconComponent,
|
|
487
487
|
EmblaCarouselDirective,
|
|
488
|
-
], changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (eclTitle() || eclDescription()) {\n<div class=\"ecl-story-card__header\">\n @if (eclTitle()) {\n <div class=\"ecl-story-card__title\" [attr.id]=\"titleId()\">{{ eclTitle() }}</div>\n }\n @if (eclDescription()) {\n <div class=\"ecl-story-card__description\">{{ eclDescription() }}</div>\n }\n</div>\n}\n\n<!-- Mobile: Embla Carousel (auto-generated from items + details) -->\n<div class=\"ecl-story-card__carousel\">\n <div class=\"ecl-story-card__carousel-viewport\"\n role=\"region\"\n [attr.aria-label]=\"'ecl.story-card.SLIDER-LABEL' | translate\"\n emblaCarousel\n [options]=\"emblaOptions\"\n [subscribeToEvents]=\"subscribeToEvents\"\n (emblaChange)=\"onEmblaChange($event)\">\n <ul class=\"ecl-story-card__carousel-container\">\n @for (item of items(); track i; let i = $index) {\n <li class=\"ecl-story-card__carousel-slide\"\n [attr.aria-hidden]=\"i !== activeSlideIndex() ? true : null\">\n <article class=\"ecl-story-card__card\">\n <div class=\"ecl-story-card__image-wrapper\" #carouselImageWrapper>\n </div>\n <div class=\"ecl-story-card__content\" #carouselContentWrapper>\n @if (detailsPanels()[i]; as panel) {\n @if (panel.eclTitle()) {\n <div class=\"ecl-story-card__card-title\">{{ panel.eclTitle() }}</div>\n }\n @if (panel.description()) {\n <div class=\"ecl-story-card__card-description\">{{ panel.description() }}</div>\n }\n }\n </div>\n </article>\n </li>\n }\n </ul>\n </div>\n\n <!-- Carousel Controls -->\n @if (totalSlides() > 1) {\n <div class=\"ecl-story-card__pager\">\n <button class=\"ecl-story-card__prev\"\n [disabled]=\"prevDisabled()\"\n (click)=\"onCarouselPrevClick()\"\n [attr.aria-label]=\"'ecl.story-card.SHOW-PREV-SLIDE' | translate\">\n <ecl-icon icon=\"corner-arrow\" size=\"s\" transform=\"rotate-270\"></ecl-icon>\n <span class=\"ecl-story-card__prev-label\">\n {{ 'ecl.story-card.PREVIOUS' | translate }}\n </span>\n </button>\n\n <div class=\"ecl-story-card__dots\">\n @for (dotIndex of getDotIndices(); track dotIndex) {\n <button\n #dotButton\n class=\"ecl-story-card__dot\"\n [class.ecl-story-card__dot--active]=\"dotIndex === activeSlideIndex()\"\n [class.is-prev]=\"dotIndex === activeSlideIndex() - 1\"\n [attr.aria-label]=\"'ecl.story-card.GO-TO-SLIDE' | translate: { current: dotIndex + 1, total: totalSlides() }\"\n (click)=\"goToSlide(dotIndex)\">\n </button>\n }\n </div>\n\n <button class=\"ecl-story-card__next\"\n [disabled]=\"nextDisabled()\"\n (click)=\"onCarouselNextClick()\"\n [attr.aria-label]=\"'ecl.story-card.SHOW-NEXT-SLIDE' | translate\">\n <span class=\"ecl-story-card__next-label\">\n {{ 'ecl.story-card.NEXT' | translate }}\n </span>\n <ecl-icon icon=\"corner-arrow\" size=\"s\" transform=\"rotate-90\"></ecl-icon>\n </button>\n </div>\n }\n</div>\n\n<!-- Desktop: Grid with Accordion (user-authored content projected here) -->\n<div class=\"ecl-story-card__grid\">\n <ng-content select=\"ul[eclStoryCardList]\"></ng-content>\n <ng-content select=\"[eclStoryCardGridDetails]\"></ng-content>\n\n <!-- Grid Controls -->\n @if (totalSlides() > 1) {\n <div class=\"ecl-story-card__grid-controls\">\n <button class=\"ecl-button ecl-button--tertiary ecl-button--neutral ecl-story-card__grid-prev ecl-button--icon-only\"\n type=\"button\"\n (click)=\"onGridPrevClick()\"\n [attr.aria-label]=\"'ecl.story-card.PREVIOUS' | translate\">\n <span class=\"ecl-button__container\">\n <span class=\"ecl-button__label\"
|
|
488
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (eclTitle() || eclDescription()) {\n<div class=\"ecl-story-card__header\">\n @if (eclTitle()) {\n <div class=\"ecl-story-card__title\" [attr.id]=\"titleId()\">{{ eclTitle() }}</div>\n }\n @if (eclDescription()) {\n <div class=\"ecl-story-card__description\">{{ eclDescription() }}</div>\n }\n</div>\n}\n\n<!-- Mobile: Embla Carousel (auto-generated from items + details) -->\n<div class=\"ecl-story-card__carousel\">\n <div class=\"ecl-story-card__carousel-viewport\"\n role=\"region\"\n [attr.aria-label]=\"'ecl.story-card.SLIDER-LABEL' | translate\"\n emblaCarousel\n [options]=\"emblaOptions\"\n [subscribeToEvents]=\"subscribeToEvents\"\n (emblaChange)=\"onEmblaChange($event)\">\n <ul class=\"ecl-story-card__carousel-container\">\n @for (item of items(); track i; let i = $index) {\n <li class=\"ecl-story-card__carousel-slide\"\n [attr.aria-hidden]=\"i !== activeSlideIndex() ? true : null\">\n <article class=\"ecl-story-card__card\">\n <div class=\"ecl-story-card__image-wrapper\" #carouselImageWrapper>\n </div>\n <div class=\"ecl-story-card__content\" #carouselContentWrapper>\n @if (detailsPanels()[i]; as panel) {\n @if (panel.eclTitle()) {\n <div class=\"ecl-story-card__card-title\">{{ panel.eclTitle() }}</div>\n }\n @if (panel.description()) {\n <div class=\"ecl-story-card__card-description\">{{ panel.description() }}</div>\n }\n }\n </div>\n </article>\n </li>\n }\n </ul>\n </div>\n\n <!-- Carousel Controls -->\n @if (totalSlides() > 1) {\n <div class=\"ecl-story-card__pager\">\n <button class=\"ecl-story-card__prev\"\n [disabled]=\"prevDisabled()\"\n (click)=\"onCarouselPrevClick()\"\n [attr.aria-label]=\"'ecl.story-card.SHOW-PREV-SLIDE' | translate\">\n <ecl-icon icon=\"corner-arrow\" size=\"s\" transform=\"rotate-270\"></ecl-icon>\n <span class=\"ecl-story-card__prev-label\">\n {{ 'ecl.story-card.PREVIOUS' | translate }}\n </span>\n </button>\n\n <div class=\"ecl-story-card__dots\">\n @for (dotIndex of getDotIndices(); track dotIndex) {\n <button\n #dotButton\n class=\"ecl-story-card__dot\"\n [class.ecl-story-card__dot--active]=\"dotIndex === activeSlideIndex()\"\n [class.is-prev]=\"dotIndex === activeSlideIndex() - 1\"\n [attr.aria-label]=\"'ecl.story-card.GO-TO-SLIDE' | translate: { current: dotIndex + 1, total: totalSlides() }\"\n (click)=\"goToSlide(dotIndex)\">\n </button>\n }\n </div>\n\n <button class=\"ecl-story-card__next\"\n [disabled]=\"nextDisabled()\"\n (click)=\"onCarouselNextClick()\"\n [attr.aria-label]=\"'ecl.story-card.SHOW-NEXT-SLIDE' | translate\">\n <span class=\"ecl-story-card__next-label\">\n {{ 'ecl.story-card.NEXT' | translate }}\n </span>\n <ecl-icon icon=\"corner-arrow\" size=\"s\" transform=\"rotate-90\"></ecl-icon>\n </button>\n </div>\n }\n</div>\n\n<!-- Desktop: Grid with Accordion (user-authored content projected here) -->\n<div class=\"ecl-story-card__grid\">\n <ng-content select=\"ul[eclStoryCardList]\"></ng-content>\n <ng-content select=\"[eclStoryCardGridDetails]\"></ng-content>\n\n <!-- Grid Controls -->\n @if (totalSlides() > 1) {\n <div class=\"ecl-story-card__grid-controls\">\n <button class=\"ecl-button ecl-button--tertiary ecl-button--neutral ecl-story-card__grid-prev ecl-button--icon-only\"\n type=\"button\"\n (click)=\"onGridPrevClick()\"\n [attr.aria-label]=\"'ecl.story-card.PREVIOUS' | translate\">\n <span class=\"ecl-button__container\">\n <span class=\"ecl-button__label\">\n {{ 'ecl.story-card.PREVIOUS' | translate }}\n </span>\n <ecl-icon iconSet=\"phosphor\" icon=\"caret-left\" size=\"l\"></ecl-icon>\n </span>\n </button>\n\n <button class=\"ecl-button ecl-button--secondary ecl-button--neutral ecl-story-card__grid-play ecl-button--icon-only\"\n type=\"button\"\n [style.display]=\"isAutoPlaying() ? 'none' : 'flex'\"\n (click)=\"onPlayClick()\"\n [attr.aria-label]=\"'ecl.story-card.PLAY' | translate\">\n <span class=\"ecl-button__container\">\n <span class=\"ecl-button__label\">\n {{ 'ecl.story-card.PLAY' | translate }}\n </span>\n <ecl-icon iconSet=\"phosphor-fill\" icon=\"play\" size=\"l\"></ecl-icon>\n </span>\n </button>\n\n <button class=\"ecl-button ecl-button--secondary ecl-button--neutral ecl-story-card__grid-pause ecl-button--icon-only\"\n type=\"button\"\n [style.display]=\"isAutoPlaying() ? 'flex' : 'none'\"\n (click)=\"onPauseClick()\"\n [attr.aria-label]=\"'ecl.story-card.PAUSE' | translate\">\n <span class=\"ecl-button__container\">\n <span class=\"ecl-button__label\">\n {{ 'ecl.story-card.PAUSE' | translate }}\n </span>\n <ecl-icon iconSet=\"phosphor-fill\" icon=\"pause\" size=\"l\"></ecl-icon>\n </span>\n </button>\n\n <button class=\"ecl-button ecl-button--tertiary ecl-button--neutral ecl-story-card__grid-next ecl-button--icon-only\"\n type=\"button\"\n (click)=\"onGridNextClick()\"\n [attr.aria-label]=\"'ecl.story-card.NEXT' | translate\">\n <span class=\"ecl-button__container\">\n <span class=\"ecl-button__label\">\n {{ 'ecl.story-card.NEXT' | translate }}\n </span>\n <ecl-icon iconSet=\"phosphor\" icon=\"caret-right\" size=\"l\"></ecl-icon>\n </span>\n </button>\n </div>\n }\n</div>\n" }]
|
|
489
489
|
}], ctorParameters: () => [], propDecorators: { eclTitle: [{ type: i0.Input, args: [{ isSignal: true, alias: "eclTitle", required: false }] }], eclDescription: [{ type: i0.Input, args: [{ isSignal: true, alias: "eclDescription", required: false }] }], variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], isAutoplay: [{ type: i0.Input, args: [{ isSignal: true, alias: "isAutoplay", required: false }] }], autoplayDelay: [{ type: i0.Input, args: [{ isSignal: true, alias: "autoplayDelay", required: false }] }], eclId: [{ type: i0.Input, args: [{ isSignal: true, alias: "id", required: false }] }], selectionChange: [{ type: i0.Output, args: ["selectionChange"] }], items: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => EclStoryCardItemComponent), { ...{ descendants: true }, isSignal: true }] }], detailsPanels: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => EclStoryCardGridDetailsComponent), { ...{ descendants: true }, isSignal: true }] }], emblaRef: [{ type: i0.ViewChild, args: [i0.forwardRef(() => EmblaCarouselDirective), { isSignal: true }] }], carouselImageWrappers: [{ type: i0.ViewChildren, args: ['carouselImageWrapper', { isSignal: true }] }], carouselContentWrappers: [{ type: i0.ViewChildren, args: ['carouselContentWrapper', { isSignal: true }] }] } });
|
|
490
490
|
|
|
491
491
|
const EUI_ECL_STORY_CARD = [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eui-ecl-components-ecl-story-card.mjs","sources":["../../components/ecl-story-card/ecl-story-card-directives.ts","../../components/ecl-story-card/ecl-story-card-item/ecl-story-card-item.component.ts","../../components/ecl-story-card/ecl-story-card-item/ecl-story-card-item.component.html","../../components/ecl-story-card/ecl-story-card-grid-details/ecl-story-card-grid-details.component.ts","../../components/ecl-story-card/ecl-story-card-grid-details/ecl-story-card-grid-details.component.html","../../components/ecl-story-card/ecl-story-card.component.ts","../../components/ecl-story-card/ecl-story-card.component.html","../../components/ecl-story-card/index.ts","../../components/ecl-story-card/eui-ecl-components-ecl-story-card.ts"],"sourcesContent":["import { Directive } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Directive applied to the <ul> element that holds the story card items.\n * Adds the grid container class and tablist role.\n *\n * @example\n * <ul eclStoryCardList>...</ul>\n */\n@Directive({\n selector: 'ul[eclStoryCardList]',\n host: {\n role: 'tablist',\n '[class]': 'getCssClasses(\"ecl-story-card__grid-container\")',\n },\n})\nexport class EclStoryCardListDirective extends ECLBaseDirective {}\n\n/**\n * Directive applied to <picture> elements inside a story card item.\n * Adds the ECL picture classes.\n *\n * @example\n * <picture eclStoryCardPicture>\n * <source srcset=\"...\" media=\"(max-width: 50rem)\">\n * <img src=\"...\" alt=\"...\">\n * </picture>\n */\n@Directive({\n selector: 'picture[eclStoryCardPicture]',\n host: {\n '[class]': 'getCssClasses(\"ecl-picture ecl-story-card__picture\")',\n },\n})\nexport class EclStoryCardPictureDirective extends ECLBaseDirective {}\n\n/**\n * Directive applied to <a> elements inside story card grid details.\n * Adds the ECL link classes for the \"Read more\" link.\n *\n * @example\n * <a eclStoryCardLink href=\"/example\">Read more</a>\n */\n@Directive({\n selector: '[eclStoryCardLink]',\n host: {\n '[class]': 'getCssClasses(\"ecl-link ecl-link--standalone ecl-link--icon ecl-story-card__link\")',\n },\n})\nexport class EclStoryCardLinkDirective extends ECLBaseDirective {}\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n contentChild,\n ElementRef,\n input,\n output,\n signal,\n} from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclStoryCardPictureDirective } from '../ecl-story-card-directives';\n\n/**\n * Component for a single story card grid item (tab).\n * Applied to <li> elements within the story card list.\n *\n * The user provides:\n * - `gridTitle`: the short label shown in the accordion tab button\n * - A <picture eclStoryCardPicture> as projected content\n *\n * The component internally renders the button with role=\"tab\",\n * the loading bar, and the title wrapper.\n *\n * @example\n * <li eclStoryCardItem gridTitle=\"why twelve\">\n * <picture eclStoryCardPicture>\n * <img src=\"example.jpg\" alt=\"Example\">\n * </picture>\n * </li>\n */\n@Component({\n selector: 'li[eclStoryCardItem]',\n templateUrl: './ecl-story-card-item.component.html',\n host: {\n role: 'presentation',\n '[class]': 'cssClasses()',\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class EclStoryCardItemComponent extends ECLBaseDirective {\n\n /** Short title displayed in the accordion tab button. */\n gridTitle = input<string>('');\n\n /** Whether this item is currently expanded/selected. Set by parent. */\n isExpanded = signal(false);\n\n /** Whether autoplay is active (controls loading bar animation). Set by parent. */\n isAutoPlaying = signal(false);\n\n /** The index of this item within the list. Set by parent. */\n index = signal(0);\n\n /** The generated ID for the tab button. Set by parent. */\n tabId = signal('');\n\n /** The ID of the controlled tabpanel. Set by parent. */\n panelId = signal('');\n\n /** Emitted when the item's button is clicked. */\n itemClick = output<number>();\n\n /** Emitted when the loading bar animation ends. */\n loadingBarAnimationEnd = output<void>();\n\n /** Reference to the projected picture element for cloning into carousel. */\n pictureRef = contentChild(EclStoryCardPictureDirective, { read: ElementRef });\n\n readonly cssClasses = computed(() => [\n super.getCssClasses('ecl-story-card__grid-item'),\n this.isExpanded() ? 'ecl-story-card__grid-item--expanded' : '',\n ].join(' ').trim());\n\n protected onButtonClick(): void {\n this.itemClick.emit(this.index());\n }\n\n protected onAnimationEnd(): void {\n this.loadingBarAnimationEnd.emit();\n }\n}\n","<button class=\"ecl-story-card__grid-card\"\n type=\"button\"\n [attr.id]=\"tabId()\"\n role=\"tab\"\n [attr.aria-selected]=\"isExpanded()\"\n [attr.aria-controls]=\"panelId()\"\n (click)=\"onButtonClick()\">\n <div class=\"ecl-story-card__grid-image\">\n <ng-content select=\"picture[eclStoryCardPicture]\"></ng-content>\n <div class=\"ecl-story-card__grid-loading-bar\">\n <div class=\"ecl-story-card__grid-loading-bar-completion\"\n [class.is-paused]=\"!isExpanded() || !isAutoPlaying()\"\n (animationend)=\"onAnimationEnd()\">\n </div>\n </div>\n </div>\n <div class=\"ecl-story-card__grid-title-wrapper\">\n @if (gridTitle()) {\n <div class=\"ecl-story-card__grid-title\">{{ gridTitle() }}</div>\n }\n </div>\n</button>\n","import {\n ChangeDetectionStrategy,\n Component,\n contentChild,\n ElementRef,\n input,\n signal,\n} from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclStoryCardLinkDirective } from '../ecl-story-card-directives';\n\n/**\n * Component for a story card grid details panel (tabpanel).\n * Contains the expanded content: title, description, and optional link.\n *\n * For the 'testimonial' variant, additional inputs are available:\n * - `author`: name of the author\n * - `role`: role/position of the author\n * - `source`: publication source\n *\n * @example\n * <div eclStoryCardGridDetails\n * eclTitle=\"The European flag...\"\n * description=\"It appears on official documents...\"\n * author=\"John Doe\"\n * role=\"Commissioner\"\n * source=\"Published on The Guardian\">\n * <a eclStoryCardLink eclLink variant=\"standalone\" href=\"/example\">\n * <span eclLinkLabel>Read more</span>\n * <ecl-icon icon=\"arrow-right\" size=\"xs\"></ecl-icon>\n * </a>\n * </div>\n */\n@Component({\n selector: '[eclStoryCardGridDetails]',\n templateUrl: './ecl-story-card-grid-details.component.html',\n host: {\n '[class]': 'getCssClasses(\"ecl-story-card__grid-details\")',\n '[attr.id]': 'panelId()',\n '[attr.role]': '\"tabpanel\"',\n '[attr.aria-labelledby]': 'tabId()',\n '[hidden]': '!isActive()',\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class EclStoryCardGridDetailsComponent extends ECLBaseDirective {\n\n /** Title shown in the details panel. */\n eclTitle = input<string>('');\n\n /** Description shown in the details panel. */\n description = input<string>('');\n\n /** Author name (testimonial variant). */\n author = input<string>('');\n\n /** Author role/position (testimonial variant). */\n role = input<string>('');\n\n /** Publication source (testimonial variant). */\n source = input<string>('');\n\n /** Whether this panel is currently visible. Set by parent. */\n isActive = signal(false);\n\n /** Whether the parent is in testimonial variant. Set by parent. */\n isTestimonial = signal(false);\n\n /** Index of this panel. Set by parent. */\n index = signal(0);\n\n /** Generated panel ID. Set by parent. */\n panelId = signal('');\n\n /** ID of the controlling tab. Set by parent. */\n tabId = signal('');\n\n /** Reference to the projected link element for cloning into carousel. */\n linkRef = contentChild(EclStoryCardLinkDirective, { read: ElementRef });\n}\n","<article class=\"ecl-story-card__grid-details-content\">\n <div class=\"ecl-story-card__content\">\n @if (isTestimonial()) {\n <div class=\"ecl-story-card__content-icon\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"22\" height=\"45\" viewBox=\"0 0 22 45\" fill=\"none\">\n <path d=\"M0 0H22V23.3143L0 44.5714V0Z\" fill=\"currentColor\"/>\n </svg>\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"22\" height=\"45\" viewBox=\"0 0 22 45\" fill=\"none\">\n <path d=\"M0 0H22V23.3143L0 44.5714V0Z\" fill=\"currentColor\"/>\n </svg>\n </div>\n }\n @if (eclTitle()) {\n <div class=\"ecl-story-card__card-title\">{{ eclTitle() }}</div>\n }\n @if (author() || role() || source()) {\n <div class=\"ecl-story-card__testimonial\">\n @if (author()) {\n <span class=\"ecl-story-card__author\">{{ author() }}</span>\n }\n @if (role()) {\n <span class=\"ecl-story-card__role\">{{ role() }}</span>\n }\n @if (source()) {\n <cite class=\"ecl-story-card__source\">{{ source() }}</cite>\n }\n </div>\n }\n @if (description()) {\n <div class=\"ecl-story-card__card-description\">{{ description() }}</div>\n }\n <ng-content select=\"[eclStoryCardLink]\"></ng-content>\n </div>\n</article>\n","import {\n afterNextRender,\n booleanAttribute,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n computed,\n contentChildren,\n effect,\n ElementRef,\n inject,\n input,\n OnDestroy,\n output,\n signal,\n untracked,\n viewChild,\n viewChildren,\n} from '@angular/core';\nimport { EclIconComponent } from '@eui/ecl/components/ecl-icon';\nimport { ECLBaseDirective, EclRtlService } from '@eui/ecl/core';\nimport { TranslatePipe } from '@ngx-translate/core';\nimport { EmblaCarouselDirective } from 'embla-carousel-angular';\nimport { Subject, takeUntil } from 'rxjs';\nimport { outputToObservable } from '@angular/core/rxjs-interop';\n\nimport { EclStoryCardItemComponent } from './ecl-story-card-item/ecl-story-card-item.component';\nimport { EclStoryCardGridDetailsComponent } from './ecl-story-card-grid-details/ecl-story-card-grid-details.component';\nimport { EmblaCarouselType, EmblaEventType } from 'embla-carousel';\n\nexport interface EclStoryCardSelectionEvent {\n index: number;\n}\n\n/**\n * ECL Story Card component.\n *\n * Renders a desktop grid accordion (user-authored) and automatically\n * generates a mobile carousel from the same data.\n *\n * Desktop: tablist/tab/tabpanel pattern with autoplay loading bar.\n * Mobile: Embla carousel with prev/next and dot navigation.\n *\n * @example\n * <section eclStoryCard isAutoplay [autoplayDelay]=\"10000\"\n * [eclTitle]=\"'Stories'\" [eclDescription]=\"'...'\">\n * <ul eclStoryCardList>\n * <li eclStoryCardItem gridTitle=\"why twelve\">\n * <picture eclStoryCardPicture>...</picture>\n * </li>\n * </ul>\n * <div eclStoryCardGridDetails eclTitle=\"...\" description=\"...\">\n * <a eclStoryCardLink href=\"...\">Read more</a>\n * </div>\n * </section>\n */\n@Component({\n selector: 'section[eclStoryCard]',\n templateUrl: './ecl-story-card.component.html',\n host: {\n '[id]': 'componentId()',\n '[class]': 'cssClasses()',\n '[attr.aria-labelledby]': 'titleId()',\n '[style.--ecl-story-card-slide-duration]': 'slideDuration()',\n },\n imports: [\n TranslatePipe,\n EclIconComponent,\n EmblaCarouselDirective,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class EclStoryCardComponent extends ECLBaseDirective implements OnDestroy {\n\n /** Title displayed in the story card header. */\n eclTitle = input<string>('');\n\n /** Description displayed below the title. */\n eclDescription = input<string>('');\n\n /** Variant of the story card: 'story' (default) or 'testimonial'. */\n variant = input<'story' | 'testimonial'>('story');\n\n /** Whether autoplay is enabled for the grid accordion. */\n isAutoplay = input(false, { transform: booleanAttribute });\n\n /** Autoplay delay in milliseconds. Default: 10000. */\n autoplayDelay = input<number>(10000);\n\n /** ID for the component. All internal IDs derive from it. If not provided, auto-generated. */\n eclId = input<string>('', { alias: 'id' });\n\n /** Emitted when the active grid item changes. */\n selectionChange = output<EclStoryCardSelectionEvent>();\n\n private generatedId = `story-card-${crypto.randomUUID().slice(0, 8)}`;\n protected componentId = computed(() => this.eclId() || this.generatedId);\n protected titleId = computed(() => `${this.componentId()}-title`);\n\n /** Embla carousel options. */\n protected emblaOptions: { loop: boolean; direction: 'ltr' | 'rtl' } = { loop: true, direction: 'ltr' };\n\n /** Subscribed Embla events. */\n protected subscribeToEvents: EmblaEventType[] = ['select', 'init', 'reInit'];\n\n /** Current carousel snap index. */\n protected activeSlideIndex = signal(0);\n\n /** Total number of items. */\n protected totalSlides = computed(() => this.items().length);\n\n /** Previous button disabled state (carousel). */\n protected prevDisabled = signal(false);\n\n /** Next button disabled state (carousel). */\n protected nextDisabled = signal(false);\n\n /** Currently expanded grid item index. */\n protected expandedIndex = signal(0);\n\n /** Whether grid autoplay is currently playing. */\n protected isAutoPlaying = signal(false);\n\n protected items = contentChildren(EclStoryCardItemComponent, { descendants: true });\n\n protected detailsPanels = contentChildren(EclStoryCardGridDetailsComponent, { descendants: true });\n\n private emblaRef = viewChild(EmblaCarouselDirective);\n private carouselImageWrappers = viewChildren<ElementRef>('carouselImageWrapper');\n private carouselContentWrappers = viewChildren<ElementRef>('carouselContentWrapper');\n\n private cd = inject(ChangeDetectorRef);\n private eclRtlService = inject(EclRtlService);\n private destroy$ = new Subject<void>();\n private setupTeardown$ = new Subject<void>();\n private emblaApi: EmblaCarouselType | undefined;\n\n constructor() {\n super();\n afterNextRender(() => {\n setTimeout(() => this.clonePicturesToCarousel());\n });\n\n effect(() => {\n const itemsArray = this.items();\n const detailsArray = this.detailsPanels();\n\n untracked(() => {\n this.setupGrid(itemsArray, detailsArray);\n });\n }, { allowSignalWrites: true });\n\n this.eclRtlService.currentRtlState$.pipe(takeUntil(this.destroy$)).subscribe((isRtl) => {\n const direction = isRtl ? 'rtl' : 'ltr';\n if (this.emblaOptions.direction !== direction) {\n this.emblaOptions = { ...this.emblaOptions, direction };\n this.cd.detectChanges();\n }\n });\n }\n\n readonly cssClasses = computed(() => [\n super.getCssClasses('ecl-story-card'),\n this.eclDescription() ? 'ecl-story-card--has-description' : '',\n this.variant() === 'testimonial' ? 'ecl-story-card--testimonial' : '',\n ].join(' ').trim());\n\n readonly slideDuration = computed(() => `${this.autoplayDelay()}ms`);\n\n ngOnDestroy(): void {\n this.setupTeardown$.next();\n this.setupTeardown$.complete();\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n /**\n * Configures the grid accordion: assigns IDs, indices, and initial state\n * to each item and details panel, subscribes to item interaction events,\n * and starts autoplay if enabled.\n */\n private setupGrid(\n itemsArray: readonly EclStoryCardItemComponent[],\n detailsArray: readonly EclStoryCardGridDetailsComponent[],\n ): void {\n this.setupTeardown$.next();\n const id = this.componentId();\n\n itemsArray.forEach((item, i) => {\n item.index.set(i);\n item.tabId.set(`${id}-tab-${i}`);\n item.panelId.set(`${id}-details-${i}`);\n item.isExpanded.set(i === this.expandedIndex());\n item.isAutoPlaying.set(this.isAutoPlaying());\n\n outputToObservable(item.itemClick).pipe(\n takeUntil(this.setupTeardown$),\n ).subscribe((index: number) => this.onGridItemClick(index));\n\n outputToObservable(item.loadingBarAnimationEnd).pipe(\n takeUntil(this.setupTeardown$),\n ).subscribe(() => this.onLoadingBarAnimationEnd());\n });\n\n detailsArray.forEach((panel, i) => {\n panel.index.set(i);\n panel.panelId.set(`${id}-details-${i}`);\n panel.tabId.set(`${id}-tab-${i}`);\n panel.isActive.set(i === this.expandedIndex());\n panel.isTestimonial.set(this.variant() === 'testimonial');\n });\n\n if (this.isAutoplay()) {\n this.playAutoplay();\n }\n }\n\n /** Set the expanded grid item by index. */\n private setGridItem(index: number): void {\n const itemsArray = this.items();\n const detailsArray = this.detailsPanels();\n if (itemsArray.length === 0) return;\n\n const nextIndex = ((index % itemsArray.length) + itemsArray.length) % itemsArray.length;\n\n itemsArray.forEach((item, i) => {\n item.isExpanded.set(i === nextIndex);\n item.isAutoPlaying.set(this.isAutoPlaying());\n });\n\n detailsArray.forEach((panel, i) => {\n panel.isActive.set(i === nextIndex);\n });\n\n this.expandedIndex.set(nextIndex);\n this.selectionChange.emit({ index: nextIndex });\n }\n\n /** Handle click on a grid item button. */\n private onGridItemClick(index: number): void {\n const itemsArray = this.items();\n const isCurrentlyExpanded = itemsArray[index]?.isExpanded();\n\n if (isCurrentlyExpanded && !this.isAutoPlaying()) {\n this.playAutoplay();\n } else {\n this.pauseAutoplay();\n }\n\n this.setGridItem(index);\n }\n\n /** Go to the previous grid item. */\n protected onGridPrevClick(): void {\n this.setGridItem(this.expandedIndex() - 1);\n }\n\n /** Go to the next grid item. */\n protected onGridNextClick(): void {\n this.setGridItem(this.expandedIndex() + 1);\n }\n\n /** Handle animation end on the loading bar (advance to next). */\n private onLoadingBarAnimationEnd(): void {\n if (this.isAutoPlaying()) {\n this.setGridItem(this.expandedIndex() + 1);\n }\n }\n\n /** Start autoplay. */\n protected playAutoplay(): void {\n if (this.items().length < 2) return;\n this.isAutoPlaying.set(true);\n this.items().forEach(item => item.isAutoPlaying.set(true));\n }\n\n protected pauseAutoplay(): void {\n this.isAutoPlaying.set(false);\n this.items().forEach(item => item.isAutoPlaying.set(false));\n }\n\n /** Play button click. */\n protected onPlayClick(): void {\n this.playAutoplay();\n }\n\n /** Pause button click. */\n protected onPauseClick(): void {\n this.pauseAutoplay();\n }\n\n /** Clone each item's projected picture and link into the corresponding carousel slide. */\n private clonePicturesToCarousel(): void {\n const imageWrappers = this.carouselImageWrappers();\n const contentWrappers = this.carouselContentWrappers();\n const itemsArray = this.items();\n const detailsArray = this.detailsPanels();\n\n itemsArray.forEach((item, i) => {\n const pictureEl = item.pictureRef();\n if (pictureEl && imageWrappers[i]) {\n const clone = pictureEl.nativeElement.cloneNode(true) as HTMLElement;\n imageWrappers[i].nativeElement.appendChild(clone);\n }\n });\n\n detailsArray.forEach((panel, i) => {\n const linkEl = panel.linkRef();\n if (linkEl && contentWrappers[i]) {\n const clone = linkEl.nativeElement.cloneNode(true) as HTMLElement;\n contentWrappers[i].nativeElement.appendChild(clone);\n }\n });\n }\n\n protected onEmblaChange(eventName: string): void {\n if (!this.emblaApi) {\n this.emblaApi = this.emblaRef()?.emblaApi;\n }\n if (!this.emblaApi) return;\n\n if (eventName === 'select' || eventName === 'init' || eventName === 'reInit') {\n this.syncCarouselState();\n }\n }\n\n /** Sync carousel state from Embla API. */\n private syncCarouselState(): void {\n if (!this.emblaApi) return;\n\n this.activeSlideIndex.set(this.emblaApi.selectedScrollSnap());\n this.prevDisabled.set(!this.emblaApi.canScrollPrev());\n this.nextDisabled.set(!this.emblaApi.canScrollNext());\n }\n\n /** Navigate carousel to previous slide. */\n protected onCarouselPrevClick(): void {\n this.emblaRef()?.scrollPrev();\n }\n\n /** Navigate carousel to next slide. */\n protected onCarouselNextClick(): void {\n this.emblaRef()?.scrollNext();\n }\n\n /** Navigate carousel to a specific slide. */\n protected goToSlide(index: number): void {\n this.emblaRef()?.scrollTo(index);\n }\n\n /** Returns dot indices for rendering. */\n protected getDotIndices(): number[] {\n return Array.from({ length: this.totalSlides() }, (_, i) => i);\n }\n}\n","@if (eclTitle() || eclDescription()) {\n<div class=\"ecl-story-card__header\">\n @if (eclTitle()) {\n <div class=\"ecl-story-card__title\" [attr.id]=\"titleId()\">{{ eclTitle() }}</div>\n }\n @if (eclDescription()) {\n <div class=\"ecl-story-card__description\">{{ eclDescription() }}</div>\n }\n</div>\n}\n\n<!-- Mobile: Embla Carousel (auto-generated from items + details) -->\n<div class=\"ecl-story-card__carousel\">\n <div class=\"ecl-story-card__carousel-viewport\"\n role=\"region\"\n [attr.aria-label]=\"'ecl.story-card.SLIDER-LABEL' | translate\"\n emblaCarousel\n [options]=\"emblaOptions\"\n [subscribeToEvents]=\"subscribeToEvents\"\n (emblaChange)=\"onEmblaChange($event)\">\n <ul class=\"ecl-story-card__carousel-container\">\n @for (item of items(); track i; let i = $index) {\n <li class=\"ecl-story-card__carousel-slide\"\n [attr.aria-hidden]=\"i !== activeSlideIndex() ? true : null\">\n <article class=\"ecl-story-card__card\">\n <div class=\"ecl-story-card__image-wrapper\" #carouselImageWrapper>\n </div>\n <div class=\"ecl-story-card__content\" #carouselContentWrapper>\n @if (detailsPanels()[i]; as panel) {\n @if (panel.eclTitle()) {\n <div class=\"ecl-story-card__card-title\">{{ panel.eclTitle() }}</div>\n }\n @if (panel.description()) {\n <div class=\"ecl-story-card__card-description\">{{ panel.description() }}</div>\n }\n }\n </div>\n </article>\n </li>\n }\n </ul>\n </div>\n\n <!-- Carousel Controls -->\n @if (totalSlides() > 1) {\n <div class=\"ecl-story-card__pager\">\n <button class=\"ecl-story-card__prev\"\n [disabled]=\"prevDisabled()\"\n (click)=\"onCarouselPrevClick()\"\n [attr.aria-label]=\"'ecl.story-card.SHOW-PREV-SLIDE' | translate\">\n <ecl-icon icon=\"corner-arrow\" size=\"s\" transform=\"rotate-270\"></ecl-icon>\n <span class=\"ecl-story-card__prev-label\">\n {{ 'ecl.story-card.PREVIOUS' | translate }}\n </span>\n </button>\n\n <div class=\"ecl-story-card__dots\">\n @for (dotIndex of getDotIndices(); track dotIndex) {\n <button\n #dotButton\n class=\"ecl-story-card__dot\"\n [class.ecl-story-card__dot--active]=\"dotIndex === activeSlideIndex()\"\n [class.is-prev]=\"dotIndex === activeSlideIndex() - 1\"\n [attr.aria-label]=\"'ecl.story-card.GO-TO-SLIDE' | translate: { current: dotIndex + 1, total: totalSlides() }\"\n (click)=\"goToSlide(dotIndex)\">\n </button>\n }\n </div>\n\n <button class=\"ecl-story-card__next\"\n [disabled]=\"nextDisabled()\"\n (click)=\"onCarouselNextClick()\"\n [attr.aria-label]=\"'ecl.story-card.SHOW-NEXT-SLIDE' | translate\">\n <span class=\"ecl-story-card__next-label\">\n {{ 'ecl.story-card.NEXT' | translate }}\n </span>\n <ecl-icon icon=\"corner-arrow\" size=\"s\" transform=\"rotate-90\"></ecl-icon>\n </button>\n </div>\n }\n</div>\n\n<!-- Desktop: Grid with Accordion (user-authored content projected here) -->\n<div class=\"ecl-story-card__grid\">\n <ng-content select=\"ul[eclStoryCardList]\"></ng-content>\n <ng-content select=\"[eclStoryCardGridDetails]\"></ng-content>\n\n <!-- Grid Controls -->\n @if (totalSlides() > 1) {\n <div class=\"ecl-story-card__grid-controls\">\n <button class=\"ecl-button ecl-button--tertiary ecl-button--neutral ecl-story-card__grid-prev ecl-button--icon-only\"\n type=\"button\"\n (click)=\"onGridPrevClick()\"\n [attr.aria-label]=\"'ecl.story-card.PREVIOUS' | translate\">\n <span class=\"ecl-button__container\">\n <span class=\"ecl-button__label\" data-ecl-label=\"true\">\n {{ 'ecl.story-card.PREVIOUS' | translate }}\n </span>\n <ecl-icon iconSet=\"phosphor\" icon=\"caret-left\" size=\"l\"></ecl-icon>\n </span>\n </button>\n\n <button class=\"ecl-button ecl-button--secondary ecl-button--neutral ecl-story-card__grid-play ecl-button--icon-only\"\n type=\"button\"\n [style.display]=\"isAutoPlaying() ? 'none' : 'flex'\"\n (click)=\"onPlayClick()\"\n [attr.aria-label]=\"'ecl.story-card.PLAY' | translate\">\n <span class=\"ecl-button__container\">\n <span class=\"ecl-button__label\" data-ecl-label=\"true\">\n {{ 'ecl.story-card.PLAY' | translate }}\n </span>\n <ecl-icon iconSet=\"phosphor-fill\" icon=\"play\" size=\"l\"></ecl-icon>\n </span>\n </button>\n\n <button class=\"ecl-button ecl-button--secondary ecl-button--neutral ecl-story-card__grid-pause ecl-button--icon-only\"\n type=\"button\"\n [style.display]=\"isAutoPlaying() ? 'flex' : 'none'\"\n (click)=\"onPauseClick()\"\n [attr.aria-label]=\"'ecl.story-card.PAUSE' | translate\">\n <span class=\"ecl-button__container\">\n <span class=\"ecl-button__label\" data-ecl-label=\"true\">\n {{ 'ecl.story-card.PAUSE' | translate }}\n </span>\n <ecl-icon iconSet=\"phosphor-fill\" icon=\"pause\" size=\"l\"></ecl-icon>\n </span>\n </button>\n\n <button class=\"ecl-button ecl-button--tertiary ecl-button--neutral ecl-story-card__grid-next ecl-button--icon-only\"\n type=\"button\"\n (click)=\"onGridNextClick()\"\n [attr.aria-label]=\"'ecl.story-card.NEXT' | translate\">\n <span class=\"ecl-button__container\">\n <span class=\"ecl-button__label\" data-ecl-label=\"true\">\n {{ 'ecl.story-card.NEXT' | translate }}\n </span>\n <ecl-icon iconSet=\"phosphor\" icon=\"caret-right\" size=\"l\"></ecl-icon>\n </span>\n </button>\n </div>\n }\n</div>\n","import { EclStoryCardComponent } from './ecl-story-card.component';\nimport { EclStoryCardItemComponent } from './ecl-story-card-item/ecl-story-card-item.component';\nimport { EclStoryCardGridDetailsComponent } from './ecl-story-card-grid-details/ecl-story-card-grid-details.component';\nimport {\n EclStoryCardListDirective,\n EclStoryCardPictureDirective,\n EclStoryCardLinkDirective,\n} from './ecl-story-card-directives';\n\nexport * from './ecl-story-card.component';\nexport * from './ecl-story-card-item/ecl-story-card-item.component';\nexport * from './ecl-story-card-grid-details/ecl-story-card-grid-details.component';\nexport * from './ecl-story-card-directives';\n\nexport const EUI_ECL_STORY_CARD = [\n EclStoryCardComponent,\n EclStoryCardItemComponent,\n EclStoryCardGridDetailsComponent,\n EclStoryCardListDirective,\n EclStoryCardPictureDirective,\n EclStoryCardLinkDirective,\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-story-card.mjs","sources":["../../components/ecl-story-card/ecl-story-card-directives.ts","../../components/ecl-story-card/ecl-story-card-item/ecl-story-card-item.component.ts","../../components/ecl-story-card/ecl-story-card-item/ecl-story-card-item.component.html","../../components/ecl-story-card/ecl-story-card-grid-details/ecl-story-card-grid-details.component.ts","../../components/ecl-story-card/ecl-story-card-grid-details/ecl-story-card-grid-details.component.html","../../components/ecl-story-card/ecl-story-card.component.ts","../../components/ecl-story-card/ecl-story-card.component.html","../../components/ecl-story-card/index.ts","../../components/ecl-story-card/eui-ecl-components-ecl-story-card.ts"],"sourcesContent":["import { Directive } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Directive applied to the <ul> element that holds the story card items.\n * Adds the grid container class and tablist role.\n *\n * @example\n * <ul eclStoryCardList>...</ul>\n */\n@Directive({\n selector: 'ul[eclStoryCardList]',\n host: {\n role: 'tablist',\n '[class]': 'getCssClasses(\"ecl-story-card__grid-container\")',\n },\n})\nexport class EclStoryCardListDirective extends ECLBaseDirective {}\n\n/**\n * Directive applied to <picture> elements inside a story card item.\n * Adds the ECL picture classes.\n *\n * @example\n * <picture eclStoryCardPicture>\n * <source srcset=\"...\" media=\"(max-width: 50rem)\">\n * <img src=\"...\" alt=\"...\">\n * </picture>\n */\n@Directive({\n selector: 'picture[eclStoryCardPicture]',\n host: {\n '[class]': 'getCssClasses(\"ecl-picture ecl-story-card__picture\")',\n },\n})\nexport class EclStoryCardPictureDirective extends ECLBaseDirective {}\n\n/**\n * Directive applied to <a> elements inside story card grid details.\n * Adds the ECL link classes for the \"Read more\" link.\n *\n * @example\n * <a eclStoryCardLink href=\"/example\">Read more</a>\n */\n@Directive({\n selector: '[eclStoryCardLink]',\n host: {\n '[class]': 'getCssClasses(\"ecl-link ecl-link--standalone ecl-link--icon ecl-story-card__link\")',\n },\n})\nexport class EclStoryCardLinkDirective extends ECLBaseDirective {}\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n contentChild,\n ElementRef,\n input,\n output,\n signal,\n} from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclStoryCardPictureDirective } from '../ecl-story-card-directives';\n\n/**\n * Component for a single story card grid item (tab).\n * Applied to <li> elements within the story card list.\n *\n * The user provides:\n * - `gridTitle`: the short label shown in the accordion tab button\n * - A <picture eclStoryCardPicture> as projected content\n *\n * The component internally renders the button with role=\"tab\",\n * the loading bar, and the title wrapper.\n *\n * @example\n * <li eclStoryCardItem gridTitle=\"why twelve\">\n * <picture eclStoryCardPicture>\n * <img src=\"example.jpg\" alt=\"Example\">\n * </picture>\n * </li>\n */\n@Component({\n selector: 'li[eclStoryCardItem]',\n templateUrl: './ecl-story-card-item.component.html',\n host: {\n role: 'presentation',\n '[class]': 'cssClasses()',\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class EclStoryCardItemComponent extends ECLBaseDirective {\n\n /** Short title displayed in the accordion tab button. */\n gridTitle = input<string>('');\n\n /** Whether this item is currently expanded/selected. Set by parent. */\n isExpanded = signal(false);\n\n /** Whether autoplay is active (controls loading bar animation). Set by parent. */\n isAutoPlaying = signal(false);\n\n /** The index of this item within the list. Set by parent. */\n index = signal(0);\n\n /** The generated ID for the tab button. Set by parent. */\n tabId = signal('');\n\n /** The ID of the controlled tabpanel. Set by parent. */\n panelId = signal('');\n\n /** Emitted when the item's button is clicked. */\n itemClick = output<number>();\n\n /** Emitted when the loading bar animation ends. */\n loadingBarAnimationEnd = output<void>();\n\n /** Reference to the projected picture element for cloning into carousel. */\n pictureRef = contentChild(EclStoryCardPictureDirective, { read: ElementRef });\n\n readonly cssClasses = computed(() => [\n super.getCssClasses('ecl-story-card__grid-item'),\n this.isExpanded() ? 'ecl-story-card__grid-item--expanded' : '',\n ].join(' ').trim());\n\n protected onButtonClick(): void {\n this.itemClick.emit(this.index());\n }\n\n protected onAnimationEnd(): void {\n this.loadingBarAnimationEnd.emit();\n }\n}\n","<button class=\"ecl-story-card__grid-card\"\n type=\"button\"\n [attr.id]=\"tabId()\"\n role=\"tab\"\n [attr.aria-selected]=\"isExpanded()\"\n [attr.aria-controls]=\"panelId()\"\n (click)=\"onButtonClick()\">\n <div class=\"ecl-story-card__grid-image\">\n <ng-content select=\"picture[eclStoryCardPicture]\"></ng-content>\n <div class=\"ecl-story-card__grid-loading-bar\">\n <div class=\"ecl-story-card__grid-loading-bar-completion\"\n [class.is-paused]=\"!isExpanded() || !isAutoPlaying()\"\n (animationend)=\"onAnimationEnd()\">\n </div>\n </div>\n </div>\n <div class=\"ecl-story-card__grid-title-wrapper\">\n @if (gridTitle()) {\n <div class=\"ecl-story-card__grid-title\">{{ gridTitle() }}</div>\n }\n </div>\n</button>\n","import {\n ChangeDetectionStrategy,\n Component,\n contentChild,\n ElementRef,\n input,\n signal,\n} from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclStoryCardLinkDirective } from '../ecl-story-card-directives';\n\n/**\n * Component for a story card grid details panel (tabpanel).\n * Contains the expanded content: title, description, and optional link.\n *\n * For the 'testimonial' variant, additional inputs are available:\n * - `author`: name of the author\n * - `role`: role/position of the author\n * - `source`: publication source\n *\n * @example\n * <div eclStoryCardGridDetails\n * eclTitle=\"The European flag...\"\n * description=\"It appears on official documents...\"\n * author=\"John Doe\"\n * role=\"Commissioner\"\n * source=\"Published on The Guardian\">\n * <a eclStoryCardLink eclLink variant=\"standalone\" href=\"/example\">\n * <span eclLinkLabel>Read more</span>\n * <ecl-icon icon=\"arrow-right\" size=\"xs\"></ecl-icon>\n * </a>\n * </div>\n */\n@Component({\n selector: '[eclStoryCardGridDetails]',\n templateUrl: './ecl-story-card-grid-details.component.html',\n host: {\n '[class]': 'getCssClasses(\"ecl-story-card__grid-details\")',\n '[attr.id]': 'panelId()',\n '[attr.role]': '\"tabpanel\"',\n '[attr.aria-labelledby]': 'tabId()',\n '[hidden]': '!isActive()',\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class EclStoryCardGridDetailsComponent extends ECLBaseDirective {\n\n /** Title shown in the details panel. */\n eclTitle = input<string>('');\n\n /** Description shown in the details panel. */\n description = input<string>('');\n\n /** Author name (testimonial variant). */\n author = input<string>('');\n\n /** Author role/position (testimonial variant). */\n role = input<string>('');\n\n /** Publication source (testimonial variant). */\n source = input<string>('');\n\n /** Whether this panel is currently visible. Set by parent. */\n isActive = signal(false);\n\n /** Whether the parent is in testimonial variant. Set by parent. */\n isTestimonial = signal(false);\n\n /** Index of this panel. Set by parent. */\n index = signal(0);\n\n /** Generated panel ID. Set by parent. */\n panelId = signal('');\n\n /** ID of the controlling tab. Set by parent. */\n tabId = signal('');\n\n /** Reference to the projected link element for cloning into carousel. */\n linkRef = contentChild(EclStoryCardLinkDirective, { read: ElementRef });\n}\n","<article class=\"ecl-story-card__grid-details-content\">\n <div class=\"ecl-story-card__content\">\n @if (isTestimonial()) {\n <div class=\"ecl-story-card__content-icon\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"22\" height=\"45\" viewBox=\"0 0 22 45\" fill=\"none\">\n <path d=\"M0 0H22V23.3143L0 44.5714V0Z\" fill=\"currentColor\"/>\n </svg>\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"22\" height=\"45\" viewBox=\"0 0 22 45\" fill=\"none\">\n <path d=\"M0 0H22V23.3143L0 44.5714V0Z\" fill=\"currentColor\"/>\n </svg>\n </div>\n }\n @if (eclTitle()) {\n <div class=\"ecl-story-card__card-title\">{{ eclTitle() }}</div>\n }\n @if (author() || role() || source()) {\n <div class=\"ecl-story-card__testimonial\">\n @if (author()) {\n <span class=\"ecl-story-card__author\">{{ author() }}</span>\n }\n @if (role()) {\n <span class=\"ecl-story-card__role\">{{ role() }}</span>\n }\n @if (source()) {\n <cite class=\"ecl-story-card__source\">{{ source() }}</cite>\n }\n </div>\n }\n @if (description()) {\n <div class=\"ecl-story-card__card-description\">{{ description() }}</div>\n }\n <ng-content select=\"[eclStoryCardLink]\"></ng-content>\n </div>\n</article>\n","import {\n afterNextRender,\n booleanAttribute,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n computed,\n contentChildren,\n effect,\n ElementRef,\n inject,\n input,\n OnDestroy,\n output,\n signal,\n untracked,\n viewChild,\n viewChildren,\n} from '@angular/core';\nimport { EclIconComponent } from '@eui/ecl/components/ecl-icon';\nimport { ECLBaseDirective, EclRtlService } from '@eui/ecl/core';\nimport { TranslatePipe } from '@ngx-translate/core';\nimport { EmblaCarouselDirective } from 'embla-carousel-angular';\nimport { Subject, takeUntil } from 'rxjs';\nimport { outputToObservable } from '@angular/core/rxjs-interop';\n\nimport { EclStoryCardItemComponent } from './ecl-story-card-item/ecl-story-card-item.component';\nimport { EclStoryCardGridDetailsComponent } from './ecl-story-card-grid-details/ecl-story-card-grid-details.component';\nimport { EmblaCarouselType, EmblaEventType } from 'embla-carousel';\n\nexport interface EclStoryCardSelectionEvent {\n index: number;\n}\n\n/**\n * ECL Story Card component.\n *\n * Renders a desktop grid accordion (user-authored) and automatically\n * generates a mobile carousel from the same data.\n *\n * Desktop: tablist/tab/tabpanel pattern with autoplay loading bar.\n * Mobile: Embla carousel with prev/next and dot navigation.\n *\n * @example\n * <section eclStoryCard isAutoplay [autoplayDelay]=\"10000\"\n * [eclTitle]=\"'Stories'\" [eclDescription]=\"'...'\">\n * <ul eclStoryCardList>\n * <li eclStoryCardItem gridTitle=\"why twelve\">\n * <picture eclStoryCardPicture>...</picture>\n * </li>\n * </ul>\n * <div eclStoryCardGridDetails eclTitle=\"...\" description=\"...\">\n * <a eclStoryCardLink href=\"...\">Read more</a>\n * </div>\n * </section>\n */\n@Component({\n selector: 'section[eclStoryCard]',\n templateUrl: './ecl-story-card.component.html',\n host: {\n '[id]': 'componentId()',\n '[class]': 'cssClasses()',\n '[attr.aria-labelledby]': 'titleId()',\n '[style.--ecl-story-card-slide-duration]': 'slideDuration()',\n },\n imports: [\n TranslatePipe,\n EclIconComponent,\n EmblaCarouselDirective,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class EclStoryCardComponent extends ECLBaseDirective implements OnDestroy {\n\n /** Title displayed in the story card header. */\n eclTitle = input<string>('');\n\n /** Description displayed below the title. */\n eclDescription = input<string>('');\n\n /** Variant of the story card: 'story' (default) or 'testimonial'. */\n variant = input<'story' | 'testimonial'>('story');\n\n /** Whether autoplay is enabled for the grid accordion. */\n isAutoplay = input(false, { transform: booleanAttribute });\n\n /** Autoplay delay in milliseconds. Default: 10000. */\n autoplayDelay = input<number>(10000);\n\n /** ID for the component. All internal IDs derive from it. If not provided, auto-generated. */\n eclId = input<string>('', { alias: 'id' });\n\n /** Emitted when the active grid item changes. */\n selectionChange = output<EclStoryCardSelectionEvent>();\n\n private generatedId = `story-card-${crypto.randomUUID().slice(0, 8)}`;\n protected componentId = computed(() => this.eclId() || this.generatedId);\n protected titleId = computed(() => `${this.componentId()}-title`);\n\n /** Embla carousel options. */\n protected emblaOptions: { loop: boolean; direction: 'ltr' | 'rtl' } = { loop: true, direction: 'ltr' };\n\n /** Subscribed Embla events. */\n protected subscribeToEvents: EmblaEventType[] = ['select', 'init', 'reInit'];\n\n /** Current carousel snap index. */\n protected activeSlideIndex = signal(0);\n\n /** Total number of items. */\n protected totalSlides = computed(() => this.items().length);\n\n /** Previous button disabled state (carousel). */\n protected prevDisabled = signal(false);\n\n /** Next button disabled state (carousel). */\n protected nextDisabled = signal(false);\n\n /** Currently expanded grid item index. */\n protected expandedIndex = signal(0);\n\n /** Whether grid autoplay is currently playing. */\n protected isAutoPlaying = signal(false);\n\n protected items = contentChildren(EclStoryCardItemComponent, { descendants: true });\n\n protected detailsPanels = contentChildren(EclStoryCardGridDetailsComponent, { descendants: true });\n\n private emblaRef = viewChild(EmblaCarouselDirective);\n private carouselImageWrappers = viewChildren<ElementRef>('carouselImageWrapper');\n private carouselContentWrappers = viewChildren<ElementRef>('carouselContentWrapper');\n\n private cd = inject(ChangeDetectorRef);\n private eclRtlService = inject(EclRtlService);\n private destroy$ = new Subject<void>();\n private setupTeardown$ = new Subject<void>();\n private emblaApi: EmblaCarouselType | undefined;\n\n constructor() {\n super();\n afterNextRender(() => {\n setTimeout(() => this.clonePicturesToCarousel());\n });\n\n effect(() => {\n const itemsArray = this.items();\n const detailsArray = this.detailsPanels();\n\n untracked(() => {\n this.setupGrid(itemsArray, detailsArray);\n });\n }, { allowSignalWrites: true });\n\n this.eclRtlService.currentRtlState$.pipe(takeUntil(this.destroy$)).subscribe((isRtl) => {\n const direction = isRtl ? 'rtl' : 'ltr';\n if (this.emblaOptions.direction !== direction) {\n this.emblaOptions = { ...this.emblaOptions, direction };\n this.cd.detectChanges();\n }\n });\n }\n\n readonly cssClasses = computed(() => [\n super.getCssClasses('ecl-story-card'),\n this.eclDescription() ? 'ecl-story-card--has-description' : '',\n this.variant() === 'testimonial' ? 'ecl-story-card--testimonial' : '',\n ].join(' ').trim());\n\n readonly slideDuration = computed(() => `${this.autoplayDelay()}ms`);\n\n ngOnDestroy(): void {\n this.setupTeardown$.next();\n this.setupTeardown$.complete();\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n /**\n * Configures the grid accordion: assigns IDs, indices, and initial state\n * to each item and details panel, subscribes to item interaction events,\n * and starts autoplay if enabled.\n */\n private setupGrid(\n itemsArray: readonly EclStoryCardItemComponent[],\n detailsArray: readonly EclStoryCardGridDetailsComponent[],\n ): void {\n this.setupTeardown$.next();\n const id = this.componentId();\n\n itemsArray.forEach((item, i) => {\n item.index.set(i);\n item.tabId.set(`${id}-tab-${i}`);\n item.panelId.set(`${id}-details-${i}`);\n item.isExpanded.set(i === this.expandedIndex());\n item.isAutoPlaying.set(this.isAutoPlaying());\n\n outputToObservable(item.itemClick).pipe(\n takeUntil(this.setupTeardown$),\n ).subscribe((index: number) => this.onGridItemClick(index));\n\n outputToObservable(item.loadingBarAnimationEnd).pipe(\n takeUntil(this.setupTeardown$),\n ).subscribe(() => this.onLoadingBarAnimationEnd());\n });\n\n detailsArray.forEach((panel, i) => {\n panel.index.set(i);\n panel.panelId.set(`${id}-details-${i}`);\n panel.tabId.set(`${id}-tab-${i}`);\n panel.isActive.set(i === this.expandedIndex());\n panel.isTestimonial.set(this.variant() === 'testimonial');\n });\n\n if (this.isAutoplay()) {\n this.playAutoplay();\n }\n }\n\n /** Set the expanded grid item by index. */\n private setGridItem(index: number): void {\n const itemsArray = this.items();\n const detailsArray = this.detailsPanels();\n if (itemsArray.length === 0) return;\n\n const nextIndex = ((index % itemsArray.length) + itemsArray.length) % itemsArray.length;\n\n itemsArray.forEach((item, i) => {\n item.isExpanded.set(i === nextIndex);\n item.isAutoPlaying.set(this.isAutoPlaying());\n });\n\n detailsArray.forEach((panel, i) => {\n panel.isActive.set(i === nextIndex);\n });\n\n this.expandedIndex.set(nextIndex);\n this.selectionChange.emit({ index: nextIndex });\n }\n\n /** Handle click on a grid item button. */\n private onGridItemClick(index: number): void {\n const itemsArray = this.items();\n const isCurrentlyExpanded = itemsArray[index]?.isExpanded();\n\n if (isCurrentlyExpanded && !this.isAutoPlaying()) {\n this.playAutoplay();\n } else {\n this.pauseAutoplay();\n }\n\n this.setGridItem(index);\n }\n\n /** Go to the previous grid item. */\n protected onGridPrevClick(): void {\n this.setGridItem(this.expandedIndex() - 1);\n }\n\n /** Go to the next grid item. */\n protected onGridNextClick(): void {\n this.setGridItem(this.expandedIndex() + 1);\n }\n\n /** Handle animation end on the loading bar (advance to next). */\n private onLoadingBarAnimationEnd(): void {\n if (this.isAutoPlaying()) {\n this.setGridItem(this.expandedIndex() + 1);\n }\n }\n\n /** Start autoplay. */\n protected playAutoplay(): void {\n if (this.items().length < 2) return;\n this.isAutoPlaying.set(true);\n this.items().forEach(item => item.isAutoPlaying.set(true));\n }\n\n protected pauseAutoplay(): void {\n this.isAutoPlaying.set(false);\n this.items().forEach(item => item.isAutoPlaying.set(false));\n }\n\n /** Play button click. */\n protected onPlayClick(): void {\n this.playAutoplay();\n }\n\n /** Pause button click. */\n protected onPauseClick(): void {\n this.pauseAutoplay();\n }\n\n /** Clone each item's projected picture and link into the corresponding carousel slide. */\n private clonePicturesToCarousel(): void {\n const imageWrappers = this.carouselImageWrappers();\n const contentWrappers = this.carouselContentWrappers();\n const itemsArray = this.items();\n const detailsArray = this.detailsPanels();\n\n itemsArray.forEach((item, i) => {\n const pictureEl = item.pictureRef();\n if (pictureEl && imageWrappers[i]) {\n const clone = pictureEl.nativeElement.cloneNode(true) as HTMLElement;\n imageWrappers[i].nativeElement.appendChild(clone);\n }\n });\n\n detailsArray.forEach((panel, i) => {\n const linkEl = panel.linkRef();\n if (linkEl && contentWrappers[i]) {\n const clone = linkEl.nativeElement.cloneNode(true) as HTMLElement;\n contentWrappers[i].nativeElement.appendChild(clone);\n }\n });\n }\n\n protected onEmblaChange(eventName: string): void {\n if (!this.emblaApi) {\n this.emblaApi = this.emblaRef()?.emblaApi;\n }\n if (!this.emblaApi) return;\n\n if (eventName === 'select' || eventName === 'init' || eventName === 'reInit') {\n this.syncCarouselState();\n }\n }\n\n /** Sync carousel state from Embla API. */\n private syncCarouselState(): void {\n if (!this.emblaApi) return;\n\n this.activeSlideIndex.set(this.emblaApi.selectedScrollSnap());\n this.prevDisabled.set(!this.emblaApi.canScrollPrev());\n this.nextDisabled.set(!this.emblaApi.canScrollNext());\n }\n\n /** Navigate carousel to previous slide. */\n protected onCarouselPrevClick(): void {\n this.emblaRef()?.scrollPrev();\n }\n\n /** Navigate carousel to next slide. */\n protected onCarouselNextClick(): void {\n this.emblaRef()?.scrollNext();\n }\n\n /** Navigate carousel to a specific slide. */\n protected goToSlide(index: number): void {\n this.emblaRef()?.scrollTo(index);\n }\n\n /** Returns dot indices for rendering. */\n protected getDotIndices(): number[] {\n return Array.from({ length: this.totalSlides() }, (_, i) => i);\n }\n}\n","@if (eclTitle() || eclDescription()) {\n<div class=\"ecl-story-card__header\">\n @if (eclTitle()) {\n <div class=\"ecl-story-card__title\" [attr.id]=\"titleId()\">{{ eclTitle() }}</div>\n }\n @if (eclDescription()) {\n <div class=\"ecl-story-card__description\">{{ eclDescription() }}</div>\n }\n</div>\n}\n\n<!-- Mobile: Embla Carousel (auto-generated from items + details) -->\n<div class=\"ecl-story-card__carousel\">\n <div class=\"ecl-story-card__carousel-viewport\"\n role=\"region\"\n [attr.aria-label]=\"'ecl.story-card.SLIDER-LABEL' | translate\"\n emblaCarousel\n [options]=\"emblaOptions\"\n [subscribeToEvents]=\"subscribeToEvents\"\n (emblaChange)=\"onEmblaChange($event)\">\n <ul class=\"ecl-story-card__carousel-container\">\n @for (item of items(); track i; let i = $index) {\n <li class=\"ecl-story-card__carousel-slide\"\n [attr.aria-hidden]=\"i !== activeSlideIndex() ? true : null\">\n <article class=\"ecl-story-card__card\">\n <div class=\"ecl-story-card__image-wrapper\" #carouselImageWrapper>\n </div>\n <div class=\"ecl-story-card__content\" #carouselContentWrapper>\n @if (detailsPanels()[i]; as panel) {\n @if (panel.eclTitle()) {\n <div class=\"ecl-story-card__card-title\">{{ panel.eclTitle() }}</div>\n }\n @if (panel.description()) {\n <div class=\"ecl-story-card__card-description\">{{ panel.description() }}</div>\n }\n }\n </div>\n </article>\n </li>\n }\n </ul>\n </div>\n\n <!-- Carousel Controls -->\n @if (totalSlides() > 1) {\n <div class=\"ecl-story-card__pager\">\n <button class=\"ecl-story-card__prev\"\n [disabled]=\"prevDisabled()\"\n (click)=\"onCarouselPrevClick()\"\n [attr.aria-label]=\"'ecl.story-card.SHOW-PREV-SLIDE' | translate\">\n <ecl-icon icon=\"corner-arrow\" size=\"s\" transform=\"rotate-270\"></ecl-icon>\n <span class=\"ecl-story-card__prev-label\">\n {{ 'ecl.story-card.PREVIOUS' | translate }}\n </span>\n </button>\n\n <div class=\"ecl-story-card__dots\">\n @for (dotIndex of getDotIndices(); track dotIndex) {\n <button\n #dotButton\n class=\"ecl-story-card__dot\"\n [class.ecl-story-card__dot--active]=\"dotIndex === activeSlideIndex()\"\n [class.is-prev]=\"dotIndex === activeSlideIndex() - 1\"\n [attr.aria-label]=\"'ecl.story-card.GO-TO-SLIDE' | translate: { current: dotIndex + 1, total: totalSlides() }\"\n (click)=\"goToSlide(dotIndex)\">\n </button>\n }\n </div>\n\n <button class=\"ecl-story-card__next\"\n [disabled]=\"nextDisabled()\"\n (click)=\"onCarouselNextClick()\"\n [attr.aria-label]=\"'ecl.story-card.SHOW-NEXT-SLIDE' | translate\">\n <span class=\"ecl-story-card__next-label\">\n {{ 'ecl.story-card.NEXT' | translate }}\n </span>\n <ecl-icon icon=\"corner-arrow\" size=\"s\" transform=\"rotate-90\"></ecl-icon>\n </button>\n </div>\n }\n</div>\n\n<!-- Desktop: Grid with Accordion (user-authored content projected here) -->\n<div class=\"ecl-story-card__grid\">\n <ng-content select=\"ul[eclStoryCardList]\"></ng-content>\n <ng-content select=\"[eclStoryCardGridDetails]\"></ng-content>\n\n <!-- Grid Controls -->\n @if (totalSlides() > 1) {\n <div class=\"ecl-story-card__grid-controls\">\n <button class=\"ecl-button ecl-button--tertiary ecl-button--neutral ecl-story-card__grid-prev ecl-button--icon-only\"\n type=\"button\"\n (click)=\"onGridPrevClick()\"\n [attr.aria-label]=\"'ecl.story-card.PREVIOUS' | translate\">\n <span class=\"ecl-button__container\">\n <span class=\"ecl-button__label\">\n {{ 'ecl.story-card.PREVIOUS' | translate }}\n </span>\n <ecl-icon iconSet=\"phosphor\" icon=\"caret-left\" size=\"l\"></ecl-icon>\n </span>\n </button>\n\n <button class=\"ecl-button ecl-button--secondary ecl-button--neutral ecl-story-card__grid-play ecl-button--icon-only\"\n type=\"button\"\n [style.display]=\"isAutoPlaying() ? 'none' : 'flex'\"\n (click)=\"onPlayClick()\"\n [attr.aria-label]=\"'ecl.story-card.PLAY' | translate\">\n <span class=\"ecl-button__container\">\n <span class=\"ecl-button__label\">\n {{ 'ecl.story-card.PLAY' | translate }}\n </span>\n <ecl-icon iconSet=\"phosphor-fill\" icon=\"play\" size=\"l\"></ecl-icon>\n </span>\n </button>\n\n <button class=\"ecl-button ecl-button--secondary ecl-button--neutral ecl-story-card__grid-pause ecl-button--icon-only\"\n type=\"button\"\n [style.display]=\"isAutoPlaying() ? 'flex' : 'none'\"\n (click)=\"onPauseClick()\"\n [attr.aria-label]=\"'ecl.story-card.PAUSE' | translate\">\n <span class=\"ecl-button__container\">\n <span class=\"ecl-button__label\">\n {{ 'ecl.story-card.PAUSE' | translate }}\n </span>\n <ecl-icon iconSet=\"phosphor-fill\" icon=\"pause\" size=\"l\"></ecl-icon>\n </span>\n </button>\n\n <button class=\"ecl-button ecl-button--tertiary ecl-button--neutral ecl-story-card__grid-next ecl-button--icon-only\"\n type=\"button\"\n (click)=\"onGridNextClick()\"\n [attr.aria-label]=\"'ecl.story-card.NEXT' | translate\">\n <span class=\"ecl-button__container\">\n <span class=\"ecl-button__label\">\n {{ 'ecl.story-card.NEXT' | translate }}\n </span>\n <ecl-icon iconSet=\"phosphor\" icon=\"caret-right\" size=\"l\"></ecl-icon>\n </span>\n </button>\n </div>\n }\n</div>\n","import { EclStoryCardComponent } from './ecl-story-card.component';\nimport { EclStoryCardItemComponent } from './ecl-story-card-item/ecl-story-card-item.component';\nimport { EclStoryCardGridDetailsComponent } from './ecl-story-card-grid-details/ecl-story-card-grid-details.component';\nimport {\n EclStoryCardListDirective,\n EclStoryCardPictureDirective,\n EclStoryCardLinkDirective,\n} from './ecl-story-card-directives';\n\nexport * from './ecl-story-card.component';\nexport * from './ecl-story-card-item/ecl-story-card-item.component';\nexport * from './ecl-story-card-grid-details/ecl-story-card-grid-details.component';\nexport * from './ecl-story-card-directives';\n\nexport const EUI_ECL_STORY_CARD = [\n EclStoryCardComponent,\n EclStoryCardItemComponent,\n EclStoryCardGridDetailsComponent,\n EclStoryCardListDirective,\n EclStoryCardPictureDirective,\n EclStoryCardLinkDirective,\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eui-ecl-components-ecl-date-block.d.ts","sources":["../../components/ecl-date-block/ecl-date-block.component.ts","../../components/ecl-date-block/index.ts"],"mappings":";;;AA6BA;;;AAGG;AACH,
|
|
1
|
+
{"version":3,"file":"eui-ecl-components-ecl-date-block.d.ts","sources":["../../components/ecl-date-block/ecl-date-block.component.ts","../../components/ecl-date-block/index.ts"],"mappings":";;;AA6BA;;;AAGG;AACH,cAMa,qBAAsB,SAAQ,gBAAgB;AACvD;;AAEG;mBACU,aAAA,CAAA,WAAA,CAAA,IAAA;AAEb;;;AAGG;yBACgB,aAAA,CAAA,WAAA;AAEnB;;;;;AAKG;sBACa,aAAA,CAAA,WAAA;AAEhB;;;AAGG;kBACS,aAAA,CAAA,WAAA;AAEZ;;;AAGG;oBACW,aAAA,CAAA,WAAA;AAEd;;AAEG;yBACgB,aAAA,CAAA,WAAA;AAEnB;;;AAGG;mBACU,aAAA,CAAA,WAAA;AAEb;;AAOA;;;AAGG;;AAMH;;;;AAaA;AAIA;oDA5ES,qBAAqB;sDAArB,qBAAqB;AAmFjC;;ACtHD,cAAa,kBAAkB,mBAAA,qBAAA;;;;","names":[]}
|
|
@@ -6,10 +6,6 @@ import * as i0 from '@angular/core';
|
|
|
6
6
|
* Adds the `ecl-separator` CSS class to the host element.
|
|
7
7
|
*/
|
|
8
8
|
declare class EclDividerDirective extends ECLBaseDirective {
|
|
9
|
-
/**
|
|
10
|
-
* Binds the `ecl-separator` CSS class to the host `<hr>` element.
|
|
11
|
-
*/
|
|
12
|
-
hasClass: boolean;
|
|
13
9
|
static ɵfac: i0.ɵɵFactoryDeclaration<EclDividerDirective, never>;
|
|
14
10
|
static ɵdir: i0.ɵɵDirectiveDeclaration<EclDividerDirective, "hr[eclDivider]", never, {}, {}, never, never, true, never>;
|
|
15
11
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eui-ecl-components-ecl-divider.d.ts","sources":["../../components/ecl-divider/ecl-divider.directive.ts","../../components/ecl-divider/index.ts"],"mappings":";;;AAGA;;;AAGG;AACH,
|
|
1
|
+
{"version":3,"file":"eui-ecl-components-ecl-divider.d.ts","sources":["../../components/ecl-divider/ecl-divider.directive.ts","../../components/ecl-divider/index.ts"],"mappings":";;;AAGA;;;AAGG;AACH,cAMa,mBAAoB,SAAQ,gBAAgB;yCAA5C,mBAAmB;2CAAnB,mBAAmB;AAA4B;;ACT5D,cAAa,eAAe,mBAAA,mBAAA;;;;","names":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eui-ecl-components-ecl-file-upload.d.ts","sources":["../../components/ecl-file-upload/models/ecl-file-upload.model.ts","../../components/ecl-file-upload/events/ecl-file-upload-file-selected.event.ts","../../components/ecl-file-upload/ecl-file-upload.directive.ts","../../components/ecl-file-upload/index.ts"],"mappings":";;;;;UAAiB,aAAa;;;;AAI7B;;ACDD;;;AAGG;AACH,cAAa,8BAA+B,SAAQ,YAAY;AAKzC,WAAO,KAAK,CAAC,aAAa;AAJ7C;;;AAGG;AACgB,uBAAO,KAAK,CAAC,aAAa;AAGhD;;
|
|
1
|
+
{"version":3,"file":"eui-ecl-components-ecl-file-upload.d.ts","sources":["../../components/ecl-file-upload/models/ecl-file-upload.model.ts","../../components/ecl-file-upload/events/ecl-file-upload-file-selected.event.ts","../../components/ecl-file-upload/ecl-file-upload.directive.ts","../../components/ecl-file-upload/index.ts"],"mappings":";;;;;UAAiB,aAAa;;;;AAI7B;;ACDD;;;AAGG;AACH,cAAa,8BAA+B,SAAQ,YAAY;AAKzC,WAAO,KAAK,CAAC,aAAa;AAJ7C;;;AAGG;AACgB,uBAAO,KAAK,CAAC,aAAa;AAGhD;;ACOD;;;AAGG;AACH,cAaa,sBAAuB,SAAQ,gBAAiB,YAAW,MAAM,EAAE,SAAS,EAAE,OAAO;yBAC3E,SAAA;AAEnB;;AAEG;sBACa,aAAA,CAAA,WAAA;AAEhB;;AAEG;wBACe,aAAA,CAAA,wBAAA;AAElB;;AAEG;iBACQ,aAAA,CAAA,WAAA;AAEX;;AAEG;uBACc,aAAA,CAAA,wBAAA;AAEjB;;AAEG;uBACc,aAAA,CAAA,wBAAA;AAEjB;;AAEG;4BACmB,aAAA,CAAA,gBAAA,CAAA,8BAAA;AAEtB;;AAEG;AACH;;;;;;AAQA;;;;;AAMA;;AAEG;;AAKH;;;AAGG;;AASH;;AAEG;AACH;AAOA;;AAEG;AACH;AAKA;;AAEG;AACH;AAQA;;;AAGG;AACH,iBAAa,KAAK;AAMlB;;;AAGG;AACH,yBAAqB,KAAK;AAc1B;AAaA;AAoBA;AAQA;AAWA;AAIA;AAaA;AAIA;AAQA;AAsBA;AAQA;AAIA;oDAjPS,sBAAsB;sDAAtB,sBAAsB;AA8PlC;;AC/RD,cAAa,mBAAmB,mBAAA,sBAAA;;;;","names":[]}
|