@eui/ecl 22.0.0-alpha.4 → 22.0.0-alpha.6
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 +274 -0
- package/docs/components/EclDescriptionListDefinitionComponent.html +6 -44
- package/docs/components/EclIconComponent.html +1 -1
- package/docs/components/EclListIllustrationComponent.html +0 -171
- package/docs/components/EclListIllustrationItemComponent.html +77 -83
- package/docs/components/EclLoadingIndicatorComponent.html +4 -91
- package/docs/components/EclSocialMediaFollowItemComponent.html +10 -10
- package/docs/components/EclStoryCardComponent.html +1 -1
- package/docs/directives/EclDescriptionListDefinitionItemDirective.html +6 -47
- package/docs/directives/EclDescriptionListDefinitionListDirective.html +0 -116
- package/docs/directives/EclLabelDirective.html +0 -46
- package/docs/directives/EclLinkDirective.html +0 -39
- package/docs/directives/EclLoadingIndicatorLabelDirective.html +0 -61
- package/docs/directives/EclLoadingIndicatorOverlayDirective.html +0 -45
- package/docs/directives/EclMediaContainerCaptionDirective.html +0 -39
- package/docs/directives/EclMediaContainerCreditDirective.html +0 -39
- package/docs/directives/EclMediaContainerIframeDirective.html +13 -19
- package/docs/directives/EclMediaContainerItemAudioDescriptionDirective.html +0 -39
- package/docs/directives/EclMediaContainerItemDirective.html +0 -39
- package/docs/directives/EclMediaContainerPictureDirective.html +0 -39
- package/docs/js/search/search_index.js +2 -2
- package/docs/json/EclIconComponent.md +1 -1
- package/docs/json/EclMediaContainerIframeDirective.md +0 -1
- package/docs/json/documentation.json +242 -561
- package/docs/llms.txt +8 -12
- package/docs/properties.html +1 -1
- package/fesm2022/eui-ecl-components-ecl-icon.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-label.mjs +6 -6
- package/fesm2022/eui-ecl-components-ecl-label.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-list-illustration.mjs +19 -30
- package/fesm2022/eui-ecl-components-ecl-list-illustration.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-list.mjs +44 -41
- package/fesm2022/eui-ecl-components-ecl-list.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-loading-indicator.mjs +17 -20
- package/fesm2022/eui-ecl-components-ecl-loading-indicator.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-media-container.mjs +36 -33
- package/fesm2022/eui-ecl-components-ecl-media-container.mjs.map +1 -1
- 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-social-media-follow.mjs +6 -6
- 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-label.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-list-illustration.d.ts +3 -3
- package/types/eui-ecl-components-ecl-list-illustration.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-list.d.ts +9 -12
- package/types/eui-ecl-components-ecl-list.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-loading-indicator.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-media-container.d.ts +7 -2
- package/types/eui-ecl-components-ecl-media-container.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-social-media-follow.d.ts +3 -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, inject, ElementRef,
|
|
2
|
+
import { input, inject, ElementRef, Directive, contentChild, PLATFORM_ID, afterNextRender, booleanAttribute, signal, viewChildren, viewChild, DOCUMENT, computed, Renderer2, Component } from '@angular/core';
|
|
3
3
|
import { ECLBaseDirective } from '@eui/ecl/core';
|
|
4
4
|
import { isPlatformBrowser } from '@angular/common';
|
|
5
5
|
import * as i1 from '@eui/ecl/components/ecl-button';
|
|
@@ -22,6 +22,11 @@ class EclMediaContainerIframeDirective extends ECLBaseDirective {
|
|
|
22
22
|
this.hasCustomRatio = false;
|
|
23
23
|
this.elem = inject(ElementRef);
|
|
24
24
|
}
|
|
25
|
+
/**
|
|
26
|
+
* Aspect ratio applied as a host style binding. Derived from the
|
|
27
|
+
* `width`/`height` inputs (falling back to the element's measured size),
|
|
28
|
+
* and only produced when a custom ratio is requested.
|
|
29
|
+
*/
|
|
25
30
|
get ratio() {
|
|
26
31
|
return this.hasCustomRatio ? this.calculateCustomRatio() : null;
|
|
27
32
|
}
|
|
@@ -35,19 +40,17 @@ class EclMediaContainerIframeDirective extends ECLBaseDirective {
|
|
|
35
40
|
return `${iframeWidth}/${iframeHeight}`;
|
|
36
41
|
}
|
|
37
42
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EclMediaContainerIframeDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
|
|
38
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.1.2", type: EclMediaContainerIframeDirective, isStandalone: true, selector: "iframe[eclMediaContainerIframe]", inputs: { width: { classPropertyName: "width", publicName: "width", isSignal: true, isRequired: false, transformFunction: null }, height: { classPropertyName: "height", publicName: "height", isSignal: true, isRequired: false, transformFunction: null }
|
|
43
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.1.2", type: EclMediaContainerIframeDirective, isStandalone: true, selector: "iframe[eclMediaContainerIframe]", inputs: { width: { classPropertyName: "width", publicName: "width", isSignal: true, isRequired: false, transformFunction: null }, height: { classPropertyName: "height", publicName: "height", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "style.aspect-ratio": "ratio" } }, usesInheritance: true, ngImport: i0 }); }
|
|
39
44
|
}
|
|
40
45
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EclMediaContainerIframeDirective, decorators: [{
|
|
41
46
|
type: Directive,
|
|
42
47
|
args: [{
|
|
43
48
|
selector: 'iframe[eclMediaContainerIframe]',
|
|
49
|
+
host: {
|
|
50
|
+
'[style.aspect-ratio]': 'ratio',
|
|
51
|
+
},
|
|
44
52
|
}]
|
|
45
|
-
}], propDecorators: { width: [{ type: i0.Input, args: [{ isSignal: true, alias: "width", required: false }] }], height: [{ type: i0.Input, args: [{ isSignal: true, alias: "height", required: false }] }]
|
|
46
|
-
type: Input
|
|
47
|
-
}, {
|
|
48
|
-
type: HostBinding,
|
|
49
|
-
args: ['style.aspect-ratio']
|
|
50
|
-
}] } });
|
|
53
|
+
}], propDecorators: { width: [{ type: i0.Input, args: [{ isSignal: true, alias: "width", required: false }] }], height: [{ type: i0.Input, args: [{ isSignal: true, alias: "height", required: false }] }] } });
|
|
51
54
|
|
|
52
55
|
/**
|
|
53
56
|
* Adds styling to the media container description.
|
|
@@ -57,17 +60,17 @@ class EclMediaContainerItemAudioDescriptionDirective extends ECLBaseDirective {
|
|
|
57
60
|
return [super.getCssClasses('ecl-media-container__media-audio')].join(' ').trim();
|
|
58
61
|
}
|
|
59
62
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EclMediaContainerItemAudioDescriptionDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
|
|
60
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.2", type: EclMediaContainerItemAudioDescriptionDirective, isStandalone: true, selector: "[eclMediaContainerItemAudioDescription]", host: { properties: { "class": "
|
|
63
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.2", type: EclMediaContainerItemAudioDescriptionDirective, isStandalone: true, selector: "[eclMediaContainerItemAudioDescription]", host: { properties: { "class": "cssClasses" } }, usesInheritance: true, ngImport: i0 }); }
|
|
61
64
|
}
|
|
62
65
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EclMediaContainerItemAudioDescriptionDirective, decorators: [{
|
|
63
66
|
type: Directive,
|
|
64
67
|
args: [{
|
|
65
68
|
selector: '[eclMediaContainerItemAudioDescription]',
|
|
69
|
+
host: {
|
|
70
|
+
'[class]': 'cssClasses',
|
|
71
|
+
},
|
|
66
72
|
}]
|
|
67
|
-
}]
|
|
68
|
-
type: HostBinding,
|
|
69
|
-
args: ['class']
|
|
70
|
-
}] } });
|
|
73
|
+
}] });
|
|
71
74
|
|
|
72
75
|
/**
|
|
73
76
|
* Adds styling and functionality to the media container item /image.
|
|
@@ -117,17 +120,17 @@ class EclMediaContainerItemDirective extends ECLBaseDirective {
|
|
|
117
120
|
}
|
|
118
121
|
}
|
|
119
122
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EclMediaContainerItemDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
120
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "22.1.2", type: EclMediaContainerItemDirective, isStandalone: true, selector: "[eclMediaContainerItem], img[eclMediaContainerImage]", inputs: { ratio: { classPropertyName: "ratio", publicName: "ratio", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "
|
|
123
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "22.1.2", type: EclMediaContainerItemDirective, isStandalone: true, selector: "[eclMediaContainerItem], img[eclMediaContainerImage]", inputs: { ratio: { classPropertyName: "ratio", publicName: "ratio", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "cssClasses" } }, queries: [{ propertyName: "contentIframe", first: true, predicate: EclMediaContainerIframeDirective, descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0 }); }
|
|
121
124
|
}
|
|
122
125
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EclMediaContainerItemDirective, decorators: [{
|
|
123
126
|
type: Directive,
|
|
124
127
|
args: [{
|
|
125
128
|
selector: '[eclMediaContainerItem], img[eclMediaContainerImage]',
|
|
129
|
+
host: {
|
|
130
|
+
'[class]': 'cssClasses',
|
|
131
|
+
},
|
|
126
132
|
}]
|
|
127
|
-
}], ctorParameters: () => [], propDecorators: { ratio: [{ type: i0.Input, args: [{ isSignal: true, alias: "ratio", required: false }] }], contentIframe: [{ type: i0.ContentChild, args: [i0.forwardRef(() => EclMediaContainerIframeDirective), { isSignal: true }] }]
|
|
128
|
-
type: HostBinding,
|
|
129
|
-
args: ['class']
|
|
130
|
-
}] } });
|
|
133
|
+
}], ctorParameters: () => [], propDecorators: { ratio: [{ type: i0.Input, args: [{ isSignal: true, alias: "ratio", required: false }] }], contentIframe: [{ type: i0.ContentChild, args: [i0.forwardRef(() => EclMediaContainerIframeDirective), { isSignal: true }] }] } });
|
|
131
134
|
|
|
132
135
|
/**
|
|
133
136
|
* Applies styles for the picture element.
|
|
@@ -137,17 +140,17 @@ class EclMediaContainerPictureDirective extends ECLBaseDirective {
|
|
|
137
140
|
return [super.getCssClasses('ecl-picture ecl-media-container__picture')].join(' ').trim();
|
|
138
141
|
}
|
|
139
142
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EclMediaContainerPictureDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
|
|
140
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.2", type: EclMediaContainerPictureDirective, isStandalone: true, selector: "picture[eclMediaContainerPicture]", host: { properties: { "class": "
|
|
143
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.2", type: EclMediaContainerPictureDirective, isStandalone: true, selector: "picture[eclMediaContainerPicture]", host: { properties: { "class": "cssClasses" } }, usesInheritance: true, ngImport: i0 }); }
|
|
141
144
|
}
|
|
142
145
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EclMediaContainerPictureDirective, decorators: [{
|
|
143
146
|
type: Directive,
|
|
144
147
|
args: [{
|
|
145
148
|
selector: 'picture[eclMediaContainerPicture]',
|
|
149
|
+
host: {
|
|
150
|
+
'[class]': 'cssClasses',
|
|
151
|
+
},
|
|
146
152
|
}]
|
|
147
|
-
}]
|
|
148
|
-
type: HostBinding,
|
|
149
|
-
args: ['class']
|
|
150
|
-
}] } });
|
|
153
|
+
}] });
|
|
151
154
|
|
|
152
155
|
/**
|
|
153
156
|
* Adds styling and attributes to the media container caption element.
|
|
@@ -157,17 +160,17 @@ class EclMediaContainerCaptionDirective extends ECLBaseDirective {
|
|
|
157
160
|
return [super.getCssClasses('ecl-media-container__caption')].join(' ').trim();
|
|
158
161
|
}
|
|
159
162
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EclMediaContainerCaptionDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
|
|
160
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.2", type: EclMediaContainerCaptionDirective, isStandalone: true, selector: "figcaption[eclMediaContainerCaption]", host: { properties: { "class": "
|
|
163
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.2", type: EclMediaContainerCaptionDirective, isStandalone: true, selector: "figcaption[eclMediaContainerCaption]", host: { properties: { "class": "cssClasses" } }, usesInheritance: true, ngImport: i0 }); }
|
|
161
164
|
}
|
|
162
165
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EclMediaContainerCaptionDirective, decorators: [{
|
|
163
166
|
type: Directive,
|
|
164
167
|
args: [{
|
|
165
168
|
selector: 'figcaption[eclMediaContainerCaption]',
|
|
169
|
+
host: {
|
|
170
|
+
'[class]': 'cssClasses',
|
|
171
|
+
},
|
|
166
172
|
}]
|
|
167
|
-
}]
|
|
168
|
-
type: HostBinding,
|
|
169
|
-
args: ['class']
|
|
170
|
-
}] } });
|
|
173
|
+
}] });
|
|
171
174
|
|
|
172
175
|
/**
|
|
173
176
|
* Adds styling and attributes to the media container credit element.
|
|
@@ -177,17 +180,17 @@ class EclMediaContainerCreditDirective extends ECLBaseDirective {
|
|
|
177
180
|
return [super.getCssClasses('ecl-media-container__credit')].join(' ').trim();
|
|
178
181
|
}
|
|
179
182
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EclMediaContainerCreditDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
|
|
180
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.2", type: EclMediaContainerCreditDirective, isStandalone: true, selector: "footer[eclMediaContainerCredit]", host: { properties: { "class": "
|
|
183
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.2", type: EclMediaContainerCreditDirective, isStandalone: true, selector: "footer[eclMediaContainerCredit]", host: { properties: { "class": "cssClasses" } }, usesInheritance: true, ngImport: i0 }); }
|
|
181
184
|
}
|
|
182
185
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EclMediaContainerCreditDirective, decorators: [{
|
|
183
186
|
type: Directive,
|
|
184
187
|
args: [{
|
|
185
188
|
selector: 'footer[eclMediaContainerCredit]',
|
|
189
|
+
host: {
|
|
190
|
+
'[class]': 'cssClasses',
|
|
191
|
+
},
|
|
186
192
|
}]
|
|
187
|
-
}]
|
|
188
|
-
type: HostBinding,
|
|
189
|
-
args: ['class']
|
|
190
|
-
}] } });
|
|
193
|
+
}] });
|
|
191
194
|
|
|
192
195
|
/**
|
|
193
196
|
* A media container is used to display media items (video, audio, image or other data) with a caption.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eui-ecl-components-ecl-media-container.mjs","sources":["../../components/ecl-media-container/ecl-media-container-iframe.directive.ts","../../components/ecl-media-container/ecl-media-container-item-audio-description.directive.ts","../../components/ecl-media-container/ecl-media-container-item.directive.ts","../../components/ecl-media-container/ecl-media-container-picture.directive.ts","../../components/ecl-media-container/ecl-media-container-caption.directive.ts","../../components/ecl-media-container/ecl-media-container-credit.directive.ts","../../components/ecl-media-container/ecl-media-container.component.ts","../../components/ecl-media-container/ecl-media-container.component.html","../../components/ecl-media-container/index.ts","../../components/ecl-media-container/eui-ecl-components-ecl-media-container.ts"],"sourcesContent":["import { Directive, ElementRef, HostBinding, Input, inject, input } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Adds styling and attributes to the iframe element.\n */\n@Directive({\n selector: 'iframe[eclMediaContainerIframe]',\n})\nexport class EclMediaContainerIframeDirective extends ECLBaseDirective {\n readonly width = input(undefined);\n readonly height = input(undefined);\n @Input()\n @HostBinding('style.aspect-ratio')\n get ratio(): string {\n return this.hasCustomRatio ? this.calculateCustomRatio() : null;\n }\n\n hasCustomRatio = false;\n private elem = inject(ElementRef);\n\n calculateCustomRatio(): string {\n let iframeHeight = this.height();\n let iframeWidth = this.width();\n if (!iframeWidth || !iframeHeight) {\n iframeWidth = this.elem.nativeElement.offsetWidth;\n iframeHeight = this.elem.nativeElement.offsetHeight;\n }\n return `${iframeWidth}/${iframeHeight}`;\n }\n}\n","import { Directive, HostBinding } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Adds styling to the media container description.\n */\n@Directive({\n selector: '[eclMediaContainerItemAudioDescription]',\n})\nexport class EclMediaContainerItemAudioDescriptionDirective extends ECLBaseDirective {\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-media-container__media-audio')].join(' ').trim();\n }\n}\n","import { AfterContentInit, Directive, ElementRef, HostBinding, PLATFORM_ID, afterNextRender, inject, input, contentChild } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclMediaContainerIframeDirective } from './ecl-media-container-iframe.directive';\nimport { isPlatformBrowser } from '@angular/common';\n\n/**\n * Adds styling and functionality to the media container item /image.\n */\n@Directive({\n selector: '[eclMediaContainerItem], img[eclMediaContainerImage]',\n})\nexport class EclMediaContainerItemDirective extends ECLBaseDirective implements AfterContentInit {\n el = inject(ElementRef);\n\n readonly ratio = input<string>(undefined);\n readonly contentIframe = contentChild(EclMediaContainerIframeDirective);\n\n @HostBinding('class')\n get cssClasses(): string {\n const ratio = this.ratio();\n return [\n super.getCssClasses('ecl-media-container__media'),\n ratio ? `ecl-media-container__media--ratio-${ratio}` : '',\n this.isVideo ? 'ecl-video' : '',\n ]\n .join(' ')\n .trim();\n }\n\n public isVideo = false;\n private platformId = inject(PLATFORM_ID);\n\n constructor() {\n super();\n afterNextRender(() => {\n this.setIframeUrl();\n });\n }\n\n ngAfterContentInit(): void {\n const contentIframe = this.contentIframe();\n if (contentIframe) {\n contentIframe.hasCustomRatio = this.ratio() ? false : true;\n }\n if (isPlatformBrowser(this.platformId)) {\n const selector = this.el.nativeElement.tagName;\n this.isVideo = selector === 'VIDEO';\n }\n }\n\n // TODO: is this really needed?\n setIframeUrl(): void {\n if (this.el.nativeElement.lastChild && this.el.nativeElement.lastChild.nodeName === 'IFRAME') {\n const iframe = this.el.nativeElement.lastChild;\n const iframeUrl = new URL(iframe.src);\n if (iframeUrl.host.includes('youtube')) {\n iframe.src = iframeUrl;\n }\n }\n }\n}\n","import { Directive, HostBinding } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Applies styles for the picture element.\n */\n@Directive({\n selector: 'picture[eclMediaContainerPicture]',\n})\nexport class EclMediaContainerPictureDirective extends ECLBaseDirective {\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-picture ecl-media-container__picture')].join(' ').trim();\n }\n}\n","import { Directive, HostBinding } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Adds styling and attributes to the media container caption element.\n */\n@Directive({\n selector: 'figcaption[eclMediaContainerCaption]',\n})\nexport class EclMediaContainerCaptionDirective extends ECLBaseDirective {\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-media-container__caption')].join(' ').trim();\n }\n}\n","import { Directive, HostBinding } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Adds styling and attributes to the media container credit element.\n */\n@Directive({\n selector: 'footer[eclMediaContainerCredit]',\n})\nexport class EclMediaContainerCreditDirective extends ECLBaseDirective {\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-media-container__credit')].join(' ').trim();\n }\n}\n","import { isPlatformBrowser } from '@angular/common';\nimport { AfterContentInit, booleanAttribute, Component, computed, contentChild, DOCUMENT, ElementRef, inject, input, OnDestroy, PLATFORM_ID, Renderer2, signal, viewChildren, viewChild } from '@angular/core';\nimport { EclButtonComponent, EUI_ECL_BUTTON } from '@eui/ecl/components/ecl-button';\nimport { EclExpandableComponent } from '@eui/ecl/components/ecl-expandable';\nimport { EUI_ECL_ICON } from '@eui/ecl/components/ecl-icon';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { auditTime, fromEvent, Subject, take, takeUntil, timer } from 'rxjs';\nimport { EclMediaContainerCreditDirective } from './ecl-media-container-credit.directive';\nimport { EclMediaContainerItemDirective } from './ecl-media-container-item.directive';\n\n/**\n * A media container is used to display media items (video, audio, image or other data) with a caption.\n */\n@Component({\n selector: 'ecl-media-container',\n templateUrl: './ecl-media-container.component.html',\n imports: [...EUI_ECL_BUTTON, ...EUI_ECL_ICON],\n host: {\n '[class]': 'cssClasses()',\n },\n styles: [\n `\n :host {\n display: block;\n }\n `,\n ],\n})\n\nexport class EclMediaContainerComponent extends ECLBaseDirective implements AfterContentInit, OnDestroy {\n readonly isFullWidth = input(false, { transform: booleanAttribute });\n /**\n * Used for a video only - if the video should play immediately.\n */\n readonly eclAutoplay = input(false, { transform: booleanAttribute });\n\n captionPosition = input<'over' | 'bottom' | 'hidden'>('bottom');\n\n /**\n * Allows a parent component to override the caption position programmatically.\n */\n captionPositionOverride = signal<'over' | 'bottom' | 'hidden' | null>(null);\n\n readonly expandable = contentChild(EclExpandableComponent);\n readonly eclMediaContainerItem = contentChild(EclMediaContainerItemDirective);\n readonly eclButtons = viewChildren(EclButtonComponent);\n readonly pauseButton = viewChild<EclButtonComponent>('pauseButton');\n readonly playButton = viewChild<EclButtonComponent>('playButton');\n private creditEl = contentChild(EclMediaContainerCreditDirective, { read: ElementRef });\n private readonly document = inject<Document>(DOCUMENT);\n private readonly window = this.document.defaultView;\n\n captionBottomOffset = signal<string | null>(null);\n\n /**\n * Resolved caption position considering the override.\n */\n resolvedCaptionPosition = computed(() => this.captionPositionOverride() ?? this.captionPosition());\n\n /**\n * Applies specific classes for the component.\n */\n cssClasses = computed(() => {\n const position = this.resolvedCaptionPosition();\n return [super.getCssClasses('ecl-media-container'),\n position !== 'bottom' ? `ecl-media-container--caption-${position}` : '',\n ].join(' ').trim();\n });\n\n hasVideo = signal(false);\n\n public isPlaying = false;\n private readonly DELAY = 0;\n private renderer = inject(Renderer2);\n private removeVideoListeners: (() => void)[] = [];\n private platformId = inject(PLATFORM_ID);\n private destroy$: Subject<boolean> = new Subject<boolean>();\n\n ngAfterContentInit(): void {\n if (isPlatformBrowser(this.platformId)) {\n const eclMediaContainerItem = this.eclMediaContainerItem();\n this.hasVideo.set(eclMediaContainerItem?.isVideo ?? false);\n\n if (this.hasVideo() && this.eclAutoplay()) {\n const videoEl = eclMediaContainerItem?.el?.nativeElement as HTMLVideoElement | undefined;\n if (videoEl) {\n this.removeVideoListeners.push(\n this.renderer.listen(videoEl, 'play', () => (this.isPlaying = true)),\n this.renderer.listen(videoEl, 'pause', () => (this.isPlaying = false)),\n );\n\n this.renderer.setAttribute(videoEl, 'loop', '');\n this.renderer.setAttribute(videoEl, 'muted', '');\n this.renderer.setProperty(videoEl, 'muted', true);\n this.renderer.removeAttribute(videoEl, 'controls');\n }\n }\n this.setCaptionBottom();\n fromEvent(this.window, 'resize').pipe(\n auditTime(50),\n takeUntil(this.destroy$)).subscribe(() => {\n this.setCaptionBottom();\n });\n }\n\n const expandable = this.expandable();\n if (expandable) {\n expandable.class = [expandable.class, 'ecl-media-container__expandable'].join(' ');\n }\n }\n\n ngOnDestroy(): void {\n for (const unlisten of this.removeVideoListeners) unlisten();\n this.removeVideoListeners = [];\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n }\n\n /**\n * When user clicks on 'play' button -> start the video and move the focus to the 'pause' button.\n */\n onVideoPlay(): void {\n const videoEl = this.eclMediaContainerItem().el.nativeElement;\n videoEl.play();\n\n timer(this.DELAY).pipe(take(1)).subscribe(() => {\n const pauseButton = this.eclButtons().find(\n button => button === this.pauseButton());\n this.focusOnButton(pauseButton);\n });\n }\n\n /**\n * When user clicks on 'pause' button -> pause the video and move the focus to the 'play' button.\n */\n onVideoPause(): void {\n const videoEl = this.eclMediaContainerItem().el.nativeElement;\n videoEl.pause();\n\n timer(this.DELAY).pipe(take(1)).subscribe(() => {\n const playButton = this.eclButtons().find(\n button => button === this.playButton());\n this.focusOnButton(playButton);\n });\n }\n\n private focusOnButton(button: EclButtonComponent): void {\n if (!button) {\n return;\n }\n button.onFocus();\n }\n\n private setCaptionBottom(): void {\n if (!this.creditEl() || this.resolvedCaptionPosition() !== 'over') {\n this.captionBottomOffset.set(null);\n return;\n }\n this.captionBottomOffset.set(`${this.creditEl().nativeElement.offsetHeight}px`);\n }\n}\n","<figure class=\"ecl-media-container__figure\" [class.ecl-media-container--full-width]=\"isFullWidth()\" [style.--ecl-caption-bottom]=\"captionBottomOffset()\">\n @if (hasVideo()) {\n <div class=\"ecl-media-container__video-wrapper\">\n <ng-content select=\"video[eclMediaContainerItem]\"></ng-content>\n @if (eclAutoplay()) {\n <button #playButton eclButton variant=\"tertiary\" isIconOnly class=\"ecl-media-container__play\" (click)=\"onVideoPlay()\"\n [style.display]=\"isPlaying ? 'none' : 'flex'\" type=\"button\">\n <span eclButtonLabel>Play</span>\n <ecl-icon icon=\"play-outline\" size=\"m\"></ecl-icon>\n </button>\n <button #pauseButton eclButton variant=\"tertiary\" isIconOnly class=\"ecl-media-container__pause\" (click)=\"onVideoPause()\"\n [style.display]=\"isPlaying ? 'flex' : 'none'\" type=\"button\">\n <span eclButtonLabel>Pause</span>\n <ecl-icon icon=\"pause-outline\" size=\"m\"></ecl-icon>\n </button>\n }\n </div>\n }\n <ng-content select=\"div[eclMediaContainerItem]\"></ng-content>\n <ng-content select=\"picture[eclMediaContainerPicture]\"></ng-content>\n\n <ng-content select=\"figcaption[eclMediaContainerCaption]\"></ng-content>\n <ng-content select=\"footer[eclMediaContainerCredit]\"></ng-content>\n <ng-content select=\"ecl-expandable\"></ng-content>\n</figure>\n","import { EclMediaContainerIframeDirective } from './ecl-media-container-iframe.directive';\nimport { EclMediaContainerItemAudioDescriptionDirective } from './ecl-media-container-item-audio-description.directive';\nimport { EclMediaContainerItemDirective } from './ecl-media-container-item.directive';\nimport { EclMediaContainerPictureDirective } from './ecl-media-container-picture.directive';\nimport { EclMediaContainerCaptionDirective } from './ecl-media-container-caption.directive';\nimport { EclMediaContainerCreditDirective } from './ecl-media-container-credit.directive';\nimport { EclMediaContainerComponent } from './ecl-media-container.component';\n\nexport * from './ecl-media-container.component';\nexport * from './ecl-media-container-item.directive';\nexport * from './ecl-media-container-iframe.directive';\nexport * from './ecl-media-container-picture.directive';\nexport * from './ecl-media-container-item-audio-description.directive';\nexport * from './ecl-media-container-caption.directive';\nexport * from './ecl-media-container-credit.directive';\n\nexport const EUI_ECL_MEDIA_CONTAINER = [\n EclMediaContainerComponent,\n EclMediaContainerItemDirective,\n EclMediaContainerIframeDirective,\n EclMediaContainerPictureDirective,\n EclMediaContainerItemAudioDescriptionDirective,\n EclMediaContainerCaptionDirective,\n EclMediaContainerCreditDirective,\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-media-container.mjs","sources":["../../components/ecl-media-container/ecl-media-container-iframe.directive.ts","../../components/ecl-media-container/ecl-media-container-item-audio-description.directive.ts","../../components/ecl-media-container/ecl-media-container-item.directive.ts","../../components/ecl-media-container/ecl-media-container-picture.directive.ts","../../components/ecl-media-container/ecl-media-container-caption.directive.ts","../../components/ecl-media-container/ecl-media-container-credit.directive.ts","../../components/ecl-media-container/ecl-media-container.component.ts","../../components/ecl-media-container/ecl-media-container.component.html","../../components/ecl-media-container/index.ts","../../components/ecl-media-container/eui-ecl-components-ecl-media-container.ts"],"sourcesContent":["import { Directive, ElementRef, inject, input } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Adds styling and attributes to the iframe element.\n */\n@Directive({\n selector: 'iframe[eclMediaContainerIframe]',\n host: {\n '[style.aspect-ratio]': 'ratio',\n },\n})\nexport class EclMediaContainerIframeDirective extends ECLBaseDirective {\n readonly width = input(undefined);\n readonly height = input(undefined);\n\n hasCustomRatio = false;\n private elem = inject(ElementRef);\n\n /**\n * Aspect ratio applied as a host style binding. Derived from the\n * `width`/`height` inputs (falling back to the element's measured size),\n * and only produced when a custom ratio is requested.\n */\n get ratio(): string | null {\n return this.hasCustomRatio ? this.calculateCustomRatio() : null;\n }\n\n calculateCustomRatio(): string {\n let iframeHeight = this.height();\n let iframeWidth = this.width();\n if (!iframeWidth || !iframeHeight) {\n iframeWidth = this.elem.nativeElement.offsetWidth;\n iframeHeight = this.elem.nativeElement.offsetHeight;\n }\n return `${iframeWidth}/${iframeHeight}`;\n }\n}\n","import { Directive } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Adds styling to the media container description.\n */\n@Directive({\n selector: '[eclMediaContainerItemAudioDescription]',\n host: {\n '[class]': 'cssClasses',\n },\n})\nexport class EclMediaContainerItemAudioDescriptionDirective extends ECLBaseDirective {\n get cssClasses(): string {\n return [super.getCssClasses('ecl-media-container__media-audio')].join(' ').trim();\n }\n}\n","import { AfterContentInit, Directive, ElementRef, PLATFORM_ID, afterNextRender, inject, input, contentChild } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclMediaContainerIframeDirective } from './ecl-media-container-iframe.directive';\nimport { isPlatformBrowser } from '@angular/common';\n\n/**\n * Adds styling and functionality to the media container item /image.\n */\n@Directive({\n selector: '[eclMediaContainerItem], img[eclMediaContainerImage]',\n host: {\n '[class]': 'cssClasses',\n },\n})\nexport class EclMediaContainerItemDirective extends ECLBaseDirective implements AfterContentInit {\n el = inject(ElementRef);\n\n readonly ratio = input<string>(undefined);\n readonly contentIframe = contentChild(EclMediaContainerIframeDirective);\n\n get cssClasses(): string {\n const ratio = this.ratio();\n return [\n super.getCssClasses('ecl-media-container__media'),\n ratio ? `ecl-media-container__media--ratio-${ratio}` : '',\n this.isVideo ? 'ecl-video' : '',\n ]\n .join(' ')\n .trim();\n }\n\n public isVideo = false;\n private platformId = inject(PLATFORM_ID);\n\n constructor() {\n super();\n afterNextRender(() => {\n this.setIframeUrl();\n });\n }\n\n ngAfterContentInit(): void {\n const contentIframe = this.contentIframe();\n if (contentIframe) {\n contentIframe.hasCustomRatio = this.ratio() ? false : true;\n }\n if (isPlatformBrowser(this.platformId)) {\n const selector = this.el.nativeElement.tagName;\n this.isVideo = selector === 'VIDEO';\n }\n }\n\n // TODO: is this really needed?\n setIframeUrl(): void {\n if (this.el.nativeElement.lastChild && this.el.nativeElement.lastChild.nodeName === 'IFRAME') {\n const iframe = this.el.nativeElement.lastChild;\n const iframeUrl = new URL(iframe.src);\n if (iframeUrl.host.includes('youtube')) {\n iframe.src = iframeUrl;\n }\n }\n }\n}\n","import { Directive } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Applies styles for the picture element.\n */\n@Directive({\n selector: 'picture[eclMediaContainerPicture]',\n host: {\n '[class]': 'cssClasses',\n },\n})\nexport class EclMediaContainerPictureDirective extends ECLBaseDirective {\n get cssClasses(): string {\n return [super.getCssClasses('ecl-picture ecl-media-container__picture')].join(' ').trim();\n }\n}\n","import { Directive } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Adds styling and attributes to the media container caption element.\n */\n@Directive({\n selector: 'figcaption[eclMediaContainerCaption]',\n host: {\n '[class]': 'cssClasses',\n },\n})\nexport class EclMediaContainerCaptionDirective extends ECLBaseDirective {\n get cssClasses(): string {\n return [super.getCssClasses('ecl-media-container__caption')].join(' ').trim();\n }\n}\n","import { Directive } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Adds styling and attributes to the media container credit element.\n */\n@Directive({\n selector: 'footer[eclMediaContainerCredit]',\n host: {\n '[class]': 'cssClasses',\n },\n})\nexport class EclMediaContainerCreditDirective extends ECLBaseDirective {\n get cssClasses(): string {\n return [super.getCssClasses('ecl-media-container__credit')].join(' ').trim();\n }\n}\n","import { isPlatformBrowser } from '@angular/common';\nimport { AfterContentInit, booleanAttribute, Component, computed, contentChild, DOCUMENT, ElementRef, inject, input, OnDestroy, PLATFORM_ID, Renderer2, signal, viewChildren, viewChild } from '@angular/core';\nimport { EclButtonComponent, EUI_ECL_BUTTON } from '@eui/ecl/components/ecl-button';\nimport { EclExpandableComponent } from '@eui/ecl/components/ecl-expandable';\nimport { EUI_ECL_ICON } from '@eui/ecl/components/ecl-icon';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { auditTime, fromEvent, Subject, take, takeUntil, timer } from 'rxjs';\nimport { EclMediaContainerCreditDirective } from './ecl-media-container-credit.directive';\nimport { EclMediaContainerItemDirective } from './ecl-media-container-item.directive';\n\n/**\n * A media container is used to display media items (video, audio, image or other data) with a caption.\n */\n@Component({\n selector: 'ecl-media-container',\n templateUrl: './ecl-media-container.component.html',\n imports: [...EUI_ECL_BUTTON, ...EUI_ECL_ICON],\n host: {\n '[class]': 'cssClasses()',\n },\n styles: [\n `\n :host {\n display: block;\n }\n `,\n ],\n})\n\nexport class EclMediaContainerComponent extends ECLBaseDirective implements AfterContentInit, OnDestroy {\n readonly isFullWidth = input(false, { transform: booleanAttribute });\n /**\n * Used for a video only - if the video should play immediately.\n */\n readonly eclAutoplay = input(false, { transform: booleanAttribute });\n\n captionPosition = input<'over' | 'bottom' | 'hidden'>('bottom');\n\n /**\n * Allows a parent component to override the caption position programmatically.\n */\n captionPositionOverride = signal<'over' | 'bottom' | 'hidden' | null>(null);\n\n readonly expandable = contentChild(EclExpandableComponent);\n readonly eclMediaContainerItem = contentChild(EclMediaContainerItemDirective);\n readonly eclButtons = viewChildren(EclButtonComponent);\n readonly pauseButton = viewChild<EclButtonComponent>('pauseButton');\n readonly playButton = viewChild<EclButtonComponent>('playButton');\n private creditEl = contentChild(EclMediaContainerCreditDirective, { read: ElementRef });\n private readonly document = inject<Document>(DOCUMENT);\n private readonly window = this.document.defaultView;\n\n captionBottomOffset = signal<string | null>(null);\n\n /**\n * Resolved caption position considering the override.\n */\n resolvedCaptionPosition = computed(() => this.captionPositionOverride() ?? this.captionPosition());\n\n /**\n * Applies specific classes for the component.\n */\n cssClasses = computed(() => {\n const position = this.resolvedCaptionPosition();\n return [super.getCssClasses('ecl-media-container'),\n position !== 'bottom' ? `ecl-media-container--caption-${position}` : '',\n ].join(' ').trim();\n });\n\n hasVideo = signal(false);\n\n public isPlaying = false;\n private readonly DELAY = 0;\n private renderer = inject(Renderer2);\n private removeVideoListeners: (() => void)[] = [];\n private platformId = inject(PLATFORM_ID);\n private destroy$: Subject<boolean> = new Subject<boolean>();\n\n ngAfterContentInit(): void {\n if (isPlatformBrowser(this.platformId)) {\n const eclMediaContainerItem = this.eclMediaContainerItem();\n this.hasVideo.set(eclMediaContainerItem?.isVideo ?? false);\n\n if (this.hasVideo() && this.eclAutoplay()) {\n const videoEl = eclMediaContainerItem?.el?.nativeElement as HTMLVideoElement | undefined;\n if (videoEl) {\n this.removeVideoListeners.push(\n this.renderer.listen(videoEl, 'play', () => (this.isPlaying = true)),\n this.renderer.listen(videoEl, 'pause', () => (this.isPlaying = false)),\n );\n\n this.renderer.setAttribute(videoEl, 'loop', '');\n this.renderer.setAttribute(videoEl, 'muted', '');\n this.renderer.setProperty(videoEl, 'muted', true);\n this.renderer.removeAttribute(videoEl, 'controls');\n }\n }\n this.setCaptionBottom();\n fromEvent(this.window, 'resize').pipe(\n auditTime(50),\n takeUntil(this.destroy$)).subscribe(() => {\n this.setCaptionBottom();\n });\n }\n\n const expandable = this.expandable();\n if (expandable) {\n expandable.class = [expandable.class, 'ecl-media-container__expandable'].join(' ');\n }\n }\n\n ngOnDestroy(): void {\n for (const unlisten of this.removeVideoListeners) unlisten();\n this.removeVideoListeners = [];\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n }\n\n /**\n * When user clicks on 'play' button -> start the video and move the focus to the 'pause' button.\n */\n onVideoPlay(): void {\n const videoEl = this.eclMediaContainerItem().el.nativeElement;\n videoEl.play();\n\n timer(this.DELAY).pipe(take(1)).subscribe(() => {\n const pauseButton = this.eclButtons().find(\n button => button === this.pauseButton());\n this.focusOnButton(pauseButton);\n });\n }\n\n /**\n * When user clicks on 'pause' button -> pause the video and move the focus to the 'play' button.\n */\n onVideoPause(): void {\n const videoEl = this.eclMediaContainerItem().el.nativeElement;\n videoEl.pause();\n\n timer(this.DELAY).pipe(take(1)).subscribe(() => {\n const playButton = this.eclButtons().find(\n button => button === this.playButton());\n this.focusOnButton(playButton);\n });\n }\n\n private focusOnButton(button: EclButtonComponent): void {\n if (!button) {\n return;\n }\n button.onFocus();\n }\n\n private setCaptionBottom(): void {\n if (!this.creditEl() || this.resolvedCaptionPosition() !== 'over') {\n this.captionBottomOffset.set(null);\n return;\n }\n this.captionBottomOffset.set(`${this.creditEl().nativeElement.offsetHeight}px`);\n }\n}\n","<figure class=\"ecl-media-container__figure\" [class.ecl-media-container--full-width]=\"isFullWidth()\" [style.--ecl-caption-bottom]=\"captionBottomOffset()\">\n @if (hasVideo()) {\n <div class=\"ecl-media-container__video-wrapper\">\n <ng-content select=\"video[eclMediaContainerItem]\"></ng-content>\n @if (eclAutoplay()) {\n <button #playButton eclButton variant=\"tertiary\" isIconOnly class=\"ecl-media-container__play\" (click)=\"onVideoPlay()\"\n [style.display]=\"isPlaying ? 'none' : 'flex'\" type=\"button\">\n <span eclButtonLabel>Play</span>\n <ecl-icon icon=\"play-outline\" size=\"m\"></ecl-icon>\n </button>\n <button #pauseButton eclButton variant=\"tertiary\" isIconOnly class=\"ecl-media-container__pause\" (click)=\"onVideoPause()\"\n [style.display]=\"isPlaying ? 'flex' : 'none'\" type=\"button\">\n <span eclButtonLabel>Pause</span>\n <ecl-icon icon=\"pause-outline\" size=\"m\"></ecl-icon>\n </button>\n }\n </div>\n }\n <ng-content select=\"div[eclMediaContainerItem]\"></ng-content>\n <ng-content select=\"picture[eclMediaContainerPicture]\"></ng-content>\n\n <ng-content select=\"figcaption[eclMediaContainerCaption]\"></ng-content>\n <ng-content select=\"footer[eclMediaContainerCredit]\"></ng-content>\n <ng-content select=\"ecl-expandable\"></ng-content>\n</figure>\n","import { EclMediaContainerIframeDirective } from './ecl-media-container-iframe.directive';\nimport { EclMediaContainerItemAudioDescriptionDirective } from './ecl-media-container-item-audio-description.directive';\nimport { EclMediaContainerItemDirective } from './ecl-media-container-item.directive';\nimport { EclMediaContainerPictureDirective } from './ecl-media-container-picture.directive';\nimport { EclMediaContainerCaptionDirective } from './ecl-media-container-caption.directive';\nimport { EclMediaContainerCreditDirective } from './ecl-media-container-credit.directive';\nimport { EclMediaContainerComponent } from './ecl-media-container.component';\n\nexport * from './ecl-media-container.component';\nexport * from './ecl-media-container-item.directive';\nexport * from './ecl-media-container-iframe.directive';\nexport * from './ecl-media-container-picture.directive';\nexport * from './ecl-media-container-item-audio-description.directive';\nexport * from './ecl-media-container-caption.directive';\nexport * from './ecl-media-container-credit.directive';\n\nexport const EUI_ECL_MEDIA_CONTAINER = [\n EclMediaContainerComponent,\n EclMediaContainerItemDirective,\n EclMediaContainerIframeDirective,\n EclMediaContainerPictureDirective,\n EclMediaContainerItemAudioDescriptionDirective,\n EclMediaContainerCaptionDirective,\n EclMediaContainerCreditDirective,\n] as const;","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|