@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 {
|
|
2
|
+
import { signal, Directive, input, contentChildren, viewChild, inject, ElementRef, ApplicationRef, DestroyRef, computed, afterNextRender, effect, Component, HostBinding, booleanAttribute, numberAttribute, ChangeDetectorRef } from '@angular/core';
|
|
3
3
|
import { ECLBaseDirective } from '@eui/ecl/core';
|
|
4
4
|
import * as i1 from '@eui/ecl/components/ecl-link';
|
|
5
5
|
import { EUI_ECL_LINK } from '@eui/ecl/components/ecl-link';
|
|
@@ -16,11 +16,13 @@ class EclDescriptionListDefinitionItemDirective extends ECLBaseDirective {
|
|
|
16
16
|
/**
|
|
17
17
|
* Internal state used to hide the item when exceeding the visible limit.
|
|
18
18
|
*/
|
|
19
|
-
this.isHidden = false
|
|
19
|
+
this.isHidden = signal(false, /* @ts-ignore */
|
|
20
|
+
...(ngDevMode ? [{ debugName: "isHidden" }] : /* istanbul ignore next */ []));
|
|
20
21
|
/**
|
|
21
22
|
* Indicates whether this is the last item visible before the "see all" action is triggered.
|
|
22
23
|
*/
|
|
23
|
-
this.isLastVisible = false
|
|
24
|
+
this.isLastVisible = signal(false, /* @ts-ignore */
|
|
25
|
+
...(ngDevMode ? [{ debugName: "isLastVisible" }] : /* istanbul ignore next */ []));
|
|
24
26
|
}
|
|
25
27
|
/**
|
|
26
28
|
* Applies appropriate ECL classes based on visibility state.
|
|
@@ -28,47 +30,40 @@ class EclDescriptionListDefinitionItemDirective extends ECLBaseDirective {
|
|
|
28
30
|
get cssClasses() {
|
|
29
31
|
return [
|
|
30
32
|
super.getCssClasses('ecl-description-list__definition-item'),
|
|
31
|
-
this.isHidden ? 'ecl-description-list__definition-item--hidden' : '',
|
|
32
|
-
this.isLastVisible ? 'ecl-description-list__definition-item--last-visible' : '',
|
|
33
|
+
this.isHidden() ? 'ecl-description-list__definition-item--hidden' : '',
|
|
34
|
+
this.isLastVisible() ? 'ecl-description-list__definition-item--last-visible' : '',
|
|
33
35
|
].join(' ');
|
|
34
36
|
}
|
|
35
37
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EclDescriptionListDefinitionItemDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
|
|
36
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.2", type: EclDescriptionListDefinitionItemDirective, isStandalone: true, selector: "[eclDescriptionListDefinitionItem]", host: { properties: { "class": "
|
|
38
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.2", type: EclDescriptionListDefinitionItemDirective, isStandalone: true, selector: "[eclDescriptionListDefinitionItem]", host: { properties: { "class": "cssClasses" } }, usesInheritance: true, ngImport: i0 }); }
|
|
37
39
|
}
|
|
38
40
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EclDescriptionListDefinitionItemDirective, decorators: [{
|
|
39
41
|
type: Directive,
|
|
40
42
|
args: [{
|
|
41
43
|
selector: '[eclDescriptionListDefinitionItem]',
|
|
44
|
+
host: {
|
|
45
|
+
'[class]': 'cssClasses',
|
|
46
|
+
},
|
|
42
47
|
}]
|
|
43
|
-
}]
|
|
44
|
-
type: HostBinding,
|
|
45
|
-
args: ['class']
|
|
46
|
-
}] } });
|
|
48
|
+
}] });
|
|
47
49
|
/**
|
|
48
50
|
* Directive representing a container for definition list items within an ECL description list.
|
|
49
51
|
*
|
|
50
52
|
* Applies the ECL-specific class for the list wrapper.
|
|
51
53
|
*/
|
|
52
54
|
class EclDescriptionListDefinitionListDirective extends ECLBaseDirective {
|
|
53
|
-
constructor() {
|
|
54
|
-
super(...arguments);
|
|
55
|
-
/**
|
|
56
|
-
* Applies the ECL list container class.
|
|
57
|
-
*/
|
|
58
|
-
this.cmpClass = true;
|
|
59
|
-
}
|
|
60
55
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EclDescriptionListDefinitionListDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
|
|
61
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.2", type: EclDescriptionListDefinitionListDirective, isStandalone: true, selector: "[eclDescriptionListDefinitionList]", host: {
|
|
56
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.2", type: EclDescriptionListDefinitionListDirective, isStandalone: true, selector: "[eclDescriptionListDefinitionList]", host: { classAttribute: "ecl-description-list__definition-list" }, usesInheritance: true, ngImport: i0 }); }
|
|
62
57
|
}
|
|
63
58
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EclDescriptionListDefinitionListDirective, decorators: [{
|
|
64
59
|
type: Directive,
|
|
65
60
|
args: [{
|
|
66
61
|
selector: '[eclDescriptionListDefinitionList]',
|
|
62
|
+
host: {
|
|
63
|
+
class: 'ecl-description-list__definition-list',
|
|
64
|
+
},
|
|
67
65
|
}]
|
|
68
|
-
}]
|
|
69
|
-
type: HostBinding,
|
|
70
|
-
args: ['class.ecl-description-list__definition-list']
|
|
71
|
-
}] } });
|
|
66
|
+
}] });
|
|
72
67
|
|
|
73
68
|
/**
|
|
74
69
|
* Component for a definition item within an ECL description list.
|
|
@@ -104,10 +99,10 @@ class EclDescriptionListDefinitionComponent extends ECLBaseDirective {
|
|
|
104
99
|
this.appRef = inject(ApplicationRef);
|
|
105
100
|
this.destroyRef = inject(DestroyRef);
|
|
106
101
|
this.appended = false;
|
|
107
|
-
// we use this to defer "append into <ul>" until the DOM exists
|
|
108
102
|
/**
|
|
109
103
|
* Signal indicating whether the DOM is ready for manipulation.
|
|
110
|
-
* Set to true after first render to ensure projected
|
|
104
|
+
* Set to true after first render to ensure the projected <ul> exists before
|
|
105
|
+
* the see-more link is inserted into it. Defers DOM writes in the effect.
|
|
111
106
|
*/
|
|
112
107
|
this.domReady = signal(false, /* @ts-ignore */
|
|
113
108
|
...(ngDevMode ? [{ debugName: "domReady" }] : /* istanbul ignore next */ []));
|
|
@@ -128,9 +123,18 @@ class EclDescriptionListDefinitionComponent extends ECLBaseDirective {
|
|
|
128
123
|
...(ngDevMode ? [{ debugName: "hasSeeAll" }] : /* istanbul ignore next */ []));
|
|
129
124
|
// Mark DOM ready AFTER first render (projected <ul> will exist)
|
|
130
125
|
afterNextRender(() => this.domReady.set(true));
|
|
131
|
-
//
|
|
132
|
-
//
|
|
133
|
-
//
|
|
126
|
+
// The "See more" link must render as a sibling <li> INSIDE the consumer-authored
|
|
127
|
+
// <ul eclDescriptionListDefinitionList>, because ECL's CSS targets it as a direct
|
|
128
|
+
// child of that list. Angular has no declarative way to project content into an
|
|
129
|
+
// element the consumer owns (ng-content only projects into this component's own
|
|
130
|
+
// template), so the link is inserted into the projected <ul> via controlled DOM
|
|
131
|
+
// manipulation. This is intentional: keeping the natural <ul><li> markup in the
|
|
132
|
+
// consumer template is preferred over an API that would force bare <li> authoring.
|
|
133
|
+
//
|
|
134
|
+
// This effect keeps two things in sync with reactive state:
|
|
135
|
+
// 1. Per-item visibility (isHidden / isLastVisible signals) based on maxVisibleItems.
|
|
136
|
+
// 2. Presence of the "See more" <li> in the projected <ul>, driven by hasSeeAll().
|
|
137
|
+
// DOM writes are deferred until domReady() so the projected <ul> exists.
|
|
134
138
|
effect(() => {
|
|
135
139
|
const items = this.eclListItems();
|
|
136
140
|
// If DOM not ready yet, only do state updates (no DOM querying/appending)
|
|
@@ -138,8 +142,8 @@ class EclDescriptionListDefinitionComponent extends ECLBaseDirective {
|
|
|
138
142
|
if (!this.hasSeeAll()) {
|
|
139
143
|
// show all items
|
|
140
144
|
items.forEach((it) => {
|
|
141
|
-
it.isHidden
|
|
142
|
-
it.isLastVisible
|
|
145
|
+
it.isHidden.set(false);
|
|
146
|
+
it.isLastVisible.set(false);
|
|
143
147
|
});
|
|
144
148
|
if (ready)
|
|
145
149
|
this.removeSeeMoreFromDom();
|
|
@@ -148,12 +152,12 @@ class EclDescriptionListDefinitionComponent extends ECLBaseDirective {
|
|
|
148
152
|
// "See all" needed → hide beyond max
|
|
149
153
|
const max = this.maxVisibleItems();
|
|
150
154
|
items.forEach((it, idx) => {
|
|
151
|
-
it.isHidden
|
|
152
|
-
it.isLastVisible
|
|
155
|
+
it.isHidden.set(idx >= max);
|
|
156
|
+
it.isLastVisible.set(false);
|
|
153
157
|
});
|
|
154
158
|
const last = items[max - 1];
|
|
155
159
|
if (last)
|
|
156
|
-
last.isLastVisible
|
|
160
|
+
last.isLastVisible.set(true);
|
|
157
161
|
if (ready)
|
|
158
162
|
this.ensureSeeMoreInsideProjectedUl();
|
|
159
163
|
});
|
|
@@ -173,8 +177,8 @@ class EclDescriptionListDefinitionComponent extends ECLBaseDirective {
|
|
|
173
177
|
*/
|
|
174
178
|
showAllInternal() {
|
|
175
179
|
const items = this.eclListItems();
|
|
176
|
-
items.forEach((item) =>
|
|
177
|
-
items.forEach((item) =>
|
|
180
|
+
items.forEach((item) => item.isHidden.set(false));
|
|
181
|
+
items.forEach((item) => item.isLastVisible.set(false));
|
|
178
182
|
}
|
|
179
183
|
/**
|
|
180
184
|
* Ensures the "See all" link is appended inside the projected <ul> element.
|
|
@@ -223,21 +227,20 @@ class EclDescriptionListDefinitionComponent extends ECLBaseDirective {
|
|
|
223
227
|
* Returns null if not found.
|
|
224
228
|
*/
|
|
225
229
|
findProjectedUl() {
|
|
226
|
-
//
|
|
230
|
+
// The consumer-authored list carries the eclDescriptionListDefinitionList directive.
|
|
227
231
|
return this.host.nativeElement.querySelector('ul[eclDescriptionListDefinitionList]');
|
|
228
232
|
}
|
|
229
233
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EclDescriptionListDefinitionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
230
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "22.1.2", type: EclDescriptionListDefinitionComponent, isStandalone: true, selector: "[eclDescriptionListDefinition]", inputs: { variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "
|
|
234
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "22.1.2", type: EclDescriptionListDefinitionComponent, isStandalone: true, selector: "[eclDescriptionListDefinition]", inputs: { variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "cssClasses" } }, queries: [{ propertyName: "eclListItems", predicate: EclDescriptionListDefinitionItemDirective, descendants: true, isSignal: true }], viewQueries: [{ propertyName: "seeMoreTpl", first: true, predicate: ["seeMoreTpl"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<ng-content></ng-content>\n\n<ng-template #seeMoreTpl>\n <li class=\"ecl-description-list__see_more\">\n <a eclLink variant=\"standalone\" href (click)=\"onShowAllItems($event)\">\n {{ 'ecl.SHOW-MORE-ITEMS' | translate }}\n </a>\n </li>\n</ng-template>", dependencies: [{ kind: "directive", type: i1.EclLinkDirective, selector: "[eclLink]", inputs: ["extraAttributes", "isInverted", "isIconOnly", "isHighlight", "isNoVisited", "isBranded", "variant"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
|
|
231
235
|
}
|
|
232
236
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EclDescriptionListDefinitionComponent, decorators: [{
|
|
233
237
|
type: Component,
|
|
234
|
-
args: [{ selector: '[eclDescriptionListDefinition]',
|
|
238
|
+
args: [{ selector: '[eclDescriptionListDefinition]', imports: [...EUI_ECL_LINK, TranslatePipe], host: {
|
|
239
|
+
'[class]': 'cssClasses',
|
|
240
|
+
}, template: "<ng-content></ng-content>\n\n<ng-template #seeMoreTpl>\n <li class=\"ecl-description-list__see_more\">\n <a eclLink variant=\"standalone\" href (click)=\"onShowAllItems($event)\">\n {{ 'ecl.SHOW-MORE-ITEMS' | translate }}\n </a>\n </li>\n</ng-template>" }]
|
|
235
241
|
}], ctorParameters: () => [], propDecorators: { variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], eclListItems: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => EclDescriptionListDefinitionItemDirective), { ...{
|
|
236
242
|
descendants: true,
|
|
237
|
-
}, isSignal: true }] }], seeMoreTpl: [{ type: i0.ViewChild, args: ['seeMoreTpl', { isSignal: true }] }]
|
|
238
|
-
type: HostBinding,
|
|
239
|
-
args: ['class']
|
|
240
|
-
}] } });
|
|
243
|
+
}, isSignal: true }] }], seeMoreTpl: [{ type: i0.ViewChild, args: ['seeMoreTpl', { isSignal: true }] }] } });
|
|
241
244
|
|
|
242
245
|
/**
|
|
243
246
|
* Directive representing an ordered list using ECL styles.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eui-ecl-components-ecl-list.mjs","sources":["../../components/ecl-list/ecl-description-list-definition-item.directive.ts","../../components/ecl-list/ecl-description-list-definition/ecl-description-list-definition.component.ts","../../components/ecl-list/ecl-description-list-definition/ecl-description-list-definition.component.html","../../components/ecl-list/ecl-list.directive.ts","../../components/ecl-list/index.ts","../../components/ecl-list/eui-ecl-components-ecl-list.ts"],"sourcesContent":["import { Directive, HostBinding } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Directive representing a single item in an ECL description list definition.\n *\n * Applies the appropriate styling classes and allows visibility control for \"see all\" behavior.\n */\n@Directive({\n selector: '[eclDescriptionListDefinitionItem]',\n})\nexport class EclDescriptionListDefinitionItemDirective extends ECLBaseDirective {\n /**\n * Applies appropriate ECL classes based on visibility state.\n */\n @HostBinding('class')\n get cssClasses(): string {\n return [\n super.getCssClasses('ecl-description-list__definition-item'),\n this.isHidden ? 'ecl-description-list__definition-item--hidden' : '',\n this.isLastVisible ? 'ecl-description-list__definition-item--last-visible' : '',\n ].join(' ');\n }\n\n /**\n * Internal state used to hide the item when exceeding the visible limit.\n */\n isHidden = false;\n\n /**\n * Indicates whether this is the last item visible before the \"see all\" action is triggered.\n */\n isLastVisible = false;\n}\n\n/**\n * Directive representing a container for definition list items within an ECL description list.\n *\n * Applies the ECL-specific class for the list wrapper.\n */\n@Directive({\n selector: '[eclDescriptionListDefinitionList]',\n})\nexport class EclDescriptionListDefinitionListDirective extends ECLBaseDirective {\n /**\n * Applies the ECL list container class.\n */\n @HostBinding('class.ecl-description-list__definition-list') cmpClass = true;\n}\n","import {\n ApplicationRef,\n Component,\n DestroyRef,\n ElementRef,\n EmbeddedViewRef,\n HostBinding,\n TemplateRef,\n afterNextRender,\n computed,\n contentChildren,\n effect,\n inject,\n input,\n signal,\n viewChild,\n} from '@angular/core';\n\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclDescriptionListDefinitionItemDirective } from '../ecl-description-list-definition-item.directive';\nimport { EUI_ECL_LINK } from '@eui/ecl/components/ecl-link';\nimport { TranslatePipe } from '@ngx-translate/core';\n\n/**\n * Component for a definition item within an ECL description list.\n * Supports variants (link, inline, taxonomy, tag) and collapsible functionality\n * with maxVisibleItems control.\n */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[eclDescriptionListDefinition]',\n standalone: true,\n templateUrl: './ecl-description-list-definition.component.html',\n imports: [...EUI_ECL_LINK, TranslatePipe],\n})\nexport class EclDescriptionListDefinitionComponent extends ECLBaseDirective {\n\n /**\n * Visual variant of the definition list item.\n * Options: 'link', 'inline', 'taxonomy', 'tag'.\n */\n variant = input<'link' | 'inline' | 'taxonomy' | 'tag' | null>(null);\n\n /**\n * Maximum number of items to display before showing \"See all\" link.\n * Controlled by parent EclDescriptionListDirective.\n */\n maxVisibleItems = signal<number | null>(null);\n\n private readonly eclListItems = contentChildren(EclDescriptionListDefinitionItemDirective, {\n descendants: true,\n });\n\n private readonly seeMoreTpl = viewChild.required<TemplateRef<unknown>>('seeMoreTpl');\n\n private readonly host = inject(ElementRef<HTMLElement>);\n private readonly appRef = inject(ApplicationRef);\n private readonly destroyRef = inject(DestroyRef);\n\n private seeMoreView?: EmbeddedViewRef<unknown>;\n private appended = false;\n\n @HostBinding('class')\n get cssClasses(): string {\n const v = this.variant();\n return [\n super.getCssClasses('ecl-description-list__definition'),\n v ? `ecl-description-list__definition--${v}` : '',\n ].join(' ');\n }\n // we use this to defer \"append into <ul>\" until the DOM exists\n /**\n * Signal indicating whether the DOM is ready for manipulation.\n * Set to true after first render to ensure projected content exists.\n */\n readonly domReady = signal(false);\n \n /**\n * Computed signal that returns the total number of list items.\n */\n private readonly currentItemsNumber = computed(() => this.eclListItems().length);\n\n /**\n * Computed signal that determines if \"See all\" link should be shown.\n * Returns true when maxVisibleItems is set and less than total items.\n */\n readonly hasSeeAll = computed(() => {\n const max = this.maxVisibleItems();\n const total = this.currentItemsNumber();\n return !!max && total > 0 && max < total;\n });\n\n constructor() {\n super();\n // Mark DOM ready AFTER first render (projected <ul> will exist)\n afterNextRender(() => this.domReady.set(true));\n // TODO: This needs to be refactored in the next version (v22/v23). I am adding this solution, for adding /removing the\n // 'See all' link now, to be dynamically handled via DOM manipulation, to avoid breaking changes. Can be done in an easier way,\n // but with minimal change in the way the component is used. To be refactored.\n effect(() => {\n const items = this.eclListItems();\n // If DOM not ready yet, only do state updates (no DOM querying/appending)\n const ready = this.domReady();\n\n if (!this.hasSeeAll()) {\n // show all items\n items.forEach((it) => {\n it.isHidden = false;\n it.isLastVisible = false;\n });\n\n if (ready) this.removeSeeMoreFromDom();\n return;\n }\n\n // \"See all\" needed → hide beyond max\n const max = this.maxVisibleItems()!;\n items.forEach((it, idx) => {\n it.isHidden = idx >= max;\n it.isLastVisible = false;\n });\n const last = items[max - 1];\n if (last) last.isLastVisible = true;\n\n if (ready) this.ensureSeeMoreInsideProjectedUl();\n });\n\n this.destroyRef.onDestroy(() => this.removeSeeMoreFromDom());\n }\n\n /**\n * Handles the \"Show all items\" link click event.\n * Expands all hidden items and removes the \"See all\" link from DOM.\n */\n onShowAllItems(evt: Event): void {\n evt.preventDefault();\n this.showAllInternal();\n this.removeSeeMoreFromDom();\n }\n\n /**\n * Shows all items by setting isHidden to false for all items.\n */\n private showAllInternal(): void {\n const items = this.eclListItems();\n items.forEach((item) => (item.isHidden = false));\n items.forEach((item) => (item.isLastVisible = false));\n }\n\n /**\n * Ensures the \"See all\" link is appended inside the projected <ul> element.\n * Creates and attaches the embedded view if needed.\n */\n private ensureSeeMoreInsideProjectedUl(): void {\n if (!this.hasSeeAll()) return;\n\n const ul = this.findProjectedUl();\n if (!ul) return;\n\n // If it's already in there (e.g. reruns), do nothing\n if (ul.querySelector(':scope > li.ecl-description-list__see_more')) return;\n\n // Create the embedded view once and append its root <li> into the projected <ul>\n if (!this.seeMoreView) {\n this.seeMoreView = this.seeMoreTpl().createEmbeddedView({});\n this.appRef.attachView(this.seeMoreView);\n this.seeMoreView.detectChanges();\n }\n\n const [liNode] = this.seeMoreView.rootNodes as HTMLElement[];\n if (liNode && !this.appended) {\n ul.appendChild(liNode);\n this.appended = true;\n } else if (liNode && liNode.parentElement !== ul) {\n // if it was moved/removed, re-append\n ul.appendChild(liNode);\n }\n }\n\n /**\n * Removes the \"See all\" link from the DOM and cleans up the embedded view.\n */\n private removeSeeMoreFromDom(): void {\n const ul = this.findProjectedUl();\n ul?.querySelector(':scope > li.ecl-description-list__see_more')?.remove();\n\n this.appended = false;\n\n if (this.seeMoreView) {\n this.appRef.detachView(this.seeMoreView);\n this.seeMoreView.destroy();\n this.seeMoreView = undefined;\n }\n }\n\n /**\n * Finds the projected <ul> element with eclDescriptionListDefinitionList directive.\n * Returns null if not found.\n */\n private findProjectedUl(): HTMLUListElement | null {\n // your projected UL uses this attribute directive\n return this.host.nativeElement.querySelector(\n 'ul[eclDescriptionListDefinitionList]'\n ) as HTMLUListElement | null;\n }\n}","<ng-content></ng-content>\n\n<ng-template #seeMoreTpl>\n <li class=\"ecl-description-list__see_more\">\n <a eclLink variant=\"standalone\" href (click)=\"onShowAllItems($event)\">\n {{ 'ecl.SHOW-MORE-ITEMS' | translate }}\n </a>\n </li>\n</ng-template>","import { AfterContentInit, ChangeDetectorRef, Directive, HostBinding, booleanAttribute, numberAttribute, inject, input, contentChildren } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclDescriptionListDefinitionComponent } from './ecl-description-list-definition/ecl-description-list-definition.component';\n\n/**\n * Directive representing an ordered list using ECL styles.\n */\n@Directive({\n selector: '[eclOrderedList]',\n})\nexport class EclOrderedListDirective extends ECLBaseDirective {\n /**\n * Applies the ECL class for ordered lists.\n */\n @HostBinding('class.ecl-ordered-list') cmpClass = true;\n}\n\n/**\n * Directive for a single item within an ECL ordered list.\n */\n@Directive({\n selector: '[eclOrderedListItem]',\n})\nexport class EclOrderedListItemDirective extends ECLBaseDirective {\n /**\n * Applies the ECL class for ordered list items.\n */\n @HostBinding('class.ecl-ordered-list__item') cmpClass = true;\n}\n\n/**\n * Directive representing an unordered list using ECL styles.\n *\n * Supports optional variants like divider and no-marker.\n */\n@Directive({\n selector: '[eclUnorderedList]',\n})\nexport class EclUnorderedListDirective extends ECLBaseDirective {\n /**\n * Applies the ECL class for unordered lists.\n */\n @HostBinding('class.ecl-unordered-list') cmpClass = true;\n\n /**\n * Adds a divider between list items.\n */\n isDivider = input(false, { transform: booleanAttribute });\n\n @HostBinding('class.ecl-unordered-list--divider')\n get dividerClass() {\n return this.isDivider();\n }\n\n /**\n * Removes markers from list items.\n */\n isNoMarker = input(false, { transform: booleanAttribute });\n\n @HostBinding('class.ecl-unordered-list--no-marker')\n get noMarkerClass() {\n return this.isNoMarker();\n }\n}\n\n/**\n * Directive for a single item within an ECL unordered list.\n */\n@Directive({\n selector: '[eclUnorderedListItem]',\n})\nexport class EclUnorderedListItemDirective extends ECLBaseDirective {\n /**\n * Applies the ECL class for unordered list items.\n */\n @HostBinding('class.ecl-unordered-list__item') cmpClass = true;\n}\n\n/**\n * Directive for a description list using ECL styles.\n *\n * Supports horizontal layout and maxVisibleItems functionality\n * passed down to nested definition components.\n */\n@Directive({\n selector: '[eclDescriptionList]',\n})\nexport class EclDescriptionListDirective extends ECLBaseDirective implements AfterContentInit {\n /**\n * Enables horizontal layout.\n */\n isHorizontal = input(false, { transform: booleanAttribute });\n\n @HostBinding('class.ecl-description-list--horizontal')\n get horizontalClass() {\n return this.isHorizontal();\n }\n\n /**\n * Maximum number of visible items before collapsing.\n * Applied to nested `eclDescriptionListDefinition` components.\n */\n maxVisibleItems = input(0, { transform: numberAttribute });\n\n readonly eclListItems = contentChildren(EclDescriptionListDefinitionComponent);\n\n /**\n * Applies the base ECL class for description lists.\n */\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-description-list')].join(' ');\n }\n private cd = inject(ChangeDetectorRef);\n\n /**\n * Assigns `maxVisibleItems` to child definition components if needed.\n */\n ngAfterContentInit(): void {\n if (!this.isHorizontal() && this.maxVisibleItems() > 0) {\n this.eclListItems().forEach((item) => (item.maxVisibleItems.set(this.maxVisibleItems())));\n }\n this.cd.detectChanges();\n }\n}\n\n/**\n * Directive representing a term within an ECL description list.\n */\n@Directive({\n selector: '[eclDescriptionListTerm]',\n})\nexport class EclDescriptionListTermDirective extends ECLBaseDirective {\n /**\n * Applies the ECL class for description list terms.\n */\n @HostBinding('class.ecl-description-list__term') cmpClass = true;\n}\n","import { EclDescriptionListDefinitionItemDirective, EclDescriptionListDefinitionListDirective } from './ecl-description-list-definition-item.directive';\nimport { EclDescriptionListDefinitionComponent } from './ecl-description-list-definition/ecl-description-list-definition.component';\nimport {\n EclDescriptionListDirective,\n EclDescriptionListTermDirective,\n EclOrderedListDirective,\n EclOrderedListItemDirective,\n EclUnorderedListDirective,\n EclUnorderedListItemDirective,\n} from './ecl-list.directive';\n\nexport * from './ecl-list.directive';\nexport * from './ecl-description-list-definition-item.directive';\nexport * from './ecl-description-list-definition/ecl-description-list-definition.component';\n\nexport const EUI_ECL_LIST = [\n EclOrderedListDirective,\n EclOrderedListItemDirective,\n EclUnorderedListDirective,\n EclUnorderedListItemDirective,\n EclDescriptionListDirective,\n EclDescriptionListTermDirective,\n EclDescriptionListDefinitionComponent,\n EclDescriptionListDefinitionItemDirective,\n EclDescriptionListDefinitionListDirective,\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-list.mjs","sources":["../../components/ecl-list/ecl-description-list-definition-item.directive.ts","../../components/ecl-list/ecl-description-list-definition/ecl-description-list-definition.component.ts","../../components/ecl-list/ecl-description-list-definition/ecl-description-list-definition.component.html","../../components/ecl-list/ecl-list.directive.ts","../../components/ecl-list/index.ts","../../components/ecl-list/eui-ecl-components-ecl-list.ts"],"sourcesContent":["import { Directive, signal } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Directive representing a single item in an ECL description list definition.\n *\n * Applies the appropriate styling classes and allows visibility control for \"see all\" behavior.\n */\n@Directive({\n selector: '[eclDescriptionListDefinitionItem]',\n host: {\n '[class]': 'cssClasses',\n },\n})\nexport class EclDescriptionListDefinitionItemDirective extends ECLBaseDirective {\n /**\n * Internal state used to hide the item when exceeding the visible limit.\n */\n readonly isHidden = signal(false);\n\n /**\n * Indicates whether this is the last item visible before the \"see all\" action is triggered.\n */\n readonly isLastVisible = signal(false);\n\n /**\n * Applies appropriate ECL classes based on visibility state.\n */\n get cssClasses(): string {\n return [\n super.getCssClasses('ecl-description-list__definition-item'),\n this.isHidden() ? 'ecl-description-list__definition-item--hidden' : '',\n this.isLastVisible() ? 'ecl-description-list__definition-item--last-visible' : '',\n ].join(' ');\n }\n}\n\n/**\n * Directive representing a container for definition list items within an ECL description list.\n *\n * Applies the ECL-specific class for the list wrapper.\n */\n@Directive({\n selector: '[eclDescriptionListDefinitionList]',\n host: {\n class: 'ecl-description-list__definition-list',\n },\n})\nexport class EclDescriptionListDefinitionListDirective extends ECLBaseDirective {}\n","import {\n ApplicationRef,\n Component,\n DestroyRef,\n ElementRef,\n EmbeddedViewRef,\n TemplateRef,\n afterNextRender,\n computed,\n contentChildren,\n effect,\n inject,\n input,\n signal,\n viewChild,\n} from '@angular/core';\n\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclDescriptionListDefinitionItemDirective } from '../ecl-description-list-definition-item.directive';\nimport { EUI_ECL_LINK } from '@eui/ecl/components/ecl-link';\nimport { TranslatePipe } from '@ngx-translate/core';\n\n/**\n * Component for a definition item within an ECL description list.\n * Supports variants (link, inline, taxonomy, tag) and collapsible functionality\n * with maxVisibleItems control.\n */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[eclDescriptionListDefinition]',\n templateUrl: './ecl-description-list-definition.component.html',\n imports: [...EUI_ECL_LINK, TranslatePipe],\n host: {\n '[class]': 'cssClasses',\n },\n})\nexport class EclDescriptionListDefinitionComponent extends ECLBaseDirective {\n\n /**\n * Visual variant of the definition list item.\n * Options: 'link', 'inline', 'taxonomy', 'tag'.\n */\n variant = input<'link' | 'inline' | 'taxonomy' | 'tag' | null>(null);\n\n /**\n * Maximum number of items to display before showing \"See all\" link.\n * Controlled by parent EclDescriptionListDirective.\n */\n maxVisibleItems = signal<number | null>(null);\n\n private readonly eclListItems = contentChildren(EclDescriptionListDefinitionItemDirective, {\n descendants: true,\n });\n\n private readonly seeMoreTpl = viewChild.required<TemplateRef<unknown>>('seeMoreTpl');\n\n private readonly host = inject(ElementRef<HTMLElement>);\n private readonly appRef = inject(ApplicationRef);\n private readonly destroyRef = inject(DestroyRef);\n\n private seeMoreView?: EmbeddedViewRef<unknown>;\n private appended = false;\n\n get cssClasses(): string {\n const v = this.variant();\n return [\n super.getCssClasses('ecl-description-list__definition'),\n v ? `ecl-description-list__definition--${v}` : '',\n ].join(' ');\n }\n /**\n * Signal indicating whether the DOM is ready for manipulation.\n * Set to true after first render to ensure the projected <ul> exists before\n * the see-more link is inserted into it. Defers DOM writes in the effect.\n */\n readonly domReady = signal(false);\n \n /**\n * Computed signal that returns the total number of list items.\n */\n private readonly currentItemsNumber = computed(() => this.eclListItems().length);\n\n /**\n * Computed signal that determines if \"See all\" link should be shown.\n * Returns true when maxVisibleItems is set and less than total items.\n */\n readonly hasSeeAll = computed(() => {\n const max = this.maxVisibleItems();\n const total = this.currentItemsNumber();\n return !!max && total > 0 && max < total;\n });\n\n constructor() {\n super();\n // Mark DOM ready AFTER first render (projected <ul> will exist)\n afterNextRender(() => this.domReady.set(true));\n\n // The \"See more\" link must render as a sibling <li> INSIDE the consumer-authored\n // <ul eclDescriptionListDefinitionList>, because ECL's CSS targets it as a direct\n // child of that list. Angular has no declarative way to project content into an\n // element the consumer owns (ng-content only projects into this component's own\n // template), so the link is inserted into the projected <ul> via controlled DOM\n // manipulation. This is intentional: keeping the natural <ul><li> markup in the\n // consumer template is preferred over an API that would force bare <li> authoring.\n //\n // This effect keeps two things in sync with reactive state:\n // 1. Per-item visibility (isHidden / isLastVisible signals) based on maxVisibleItems.\n // 2. Presence of the \"See more\" <li> in the projected <ul>, driven by hasSeeAll().\n // DOM writes are deferred until domReady() so the projected <ul> exists.\n effect(() => {\n const items = this.eclListItems();\n // If DOM not ready yet, only do state updates (no DOM querying/appending)\n const ready = this.domReady();\n\n if (!this.hasSeeAll()) {\n // show all items\n items.forEach((it) => {\n it.isHidden.set(false);\n it.isLastVisible.set(false);\n });\n\n if (ready) this.removeSeeMoreFromDom();\n return;\n }\n\n // \"See all\" needed → hide beyond max\n const max = this.maxVisibleItems()!;\n items.forEach((it, idx) => {\n it.isHidden.set(idx >= max);\n it.isLastVisible.set(false);\n });\n const last = items[max - 1];\n if (last) last.isLastVisible.set(true);\n\n if (ready) this.ensureSeeMoreInsideProjectedUl();\n });\n\n this.destroyRef.onDestroy(() => this.removeSeeMoreFromDom());\n }\n\n /**\n * Handles the \"Show all items\" link click event.\n * Expands all hidden items and removes the \"See all\" link from DOM.\n */\n onShowAllItems(evt: Event): void {\n evt.preventDefault();\n this.showAllInternal();\n this.removeSeeMoreFromDom();\n }\n\n /**\n * Shows all items by setting isHidden to false for all items.\n */\n private showAllInternal(): void {\n const items = this.eclListItems();\n items.forEach((item) => item.isHidden.set(false));\n items.forEach((item) => item.isLastVisible.set(false));\n }\n\n /**\n * Ensures the \"See all\" link is appended inside the projected <ul> element.\n * Creates and attaches the embedded view if needed.\n */\n private ensureSeeMoreInsideProjectedUl(): void {\n if (!this.hasSeeAll()) return;\n\n const ul = this.findProjectedUl();\n if (!ul) return;\n\n // If it's already in there (e.g. reruns), do nothing\n if (ul.querySelector(':scope > li.ecl-description-list__see_more')) return;\n\n // Create the embedded view once and append its root <li> into the projected <ul>\n if (!this.seeMoreView) {\n this.seeMoreView = this.seeMoreTpl().createEmbeddedView({});\n this.appRef.attachView(this.seeMoreView);\n this.seeMoreView.detectChanges();\n }\n\n const [liNode] = this.seeMoreView.rootNodes as HTMLElement[];\n if (liNode && !this.appended) {\n ul.appendChild(liNode);\n this.appended = true;\n } else if (liNode && liNode.parentElement !== ul) {\n // if it was moved/removed, re-append\n ul.appendChild(liNode);\n }\n }\n\n /**\n * Removes the \"See all\" link from the DOM and cleans up the embedded view.\n */\n private removeSeeMoreFromDom(): void {\n const ul = this.findProjectedUl();\n ul?.querySelector(':scope > li.ecl-description-list__see_more')?.remove();\n\n this.appended = false;\n\n if (this.seeMoreView) {\n this.appRef.detachView(this.seeMoreView);\n this.seeMoreView.destroy();\n this.seeMoreView = undefined;\n }\n }\n\n /**\n * Finds the projected <ul> element with eclDescriptionListDefinitionList directive.\n * Returns null if not found.\n */\n private findProjectedUl(): HTMLUListElement | null {\n // The consumer-authored list carries the eclDescriptionListDefinitionList directive.\n return this.host.nativeElement.querySelector(\n 'ul[eclDescriptionListDefinitionList]'\n ) as HTMLUListElement | null;\n }\n}","<ng-content></ng-content>\n\n<ng-template #seeMoreTpl>\n <li class=\"ecl-description-list__see_more\">\n <a eclLink variant=\"standalone\" href (click)=\"onShowAllItems($event)\">\n {{ 'ecl.SHOW-MORE-ITEMS' | translate }}\n </a>\n </li>\n</ng-template>","import { AfterContentInit, ChangeDetectorRef, Directive, HostBinding, booleanAttribute, numberAttribute, inject, input, contentChildren } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclDescriptionListDefinitionComponent } from './ecl-description-list-definition/ecl-description-list-definition.component';\n\n/**\n * Directive representing an ordered list using ECL styles.\n */\n@Directive({\n selector: '[eclOrderedList]',\n})\nexport class EclOrderedListDirective extends ECLBaseDirective {\n /**\n * Applies the ECL class for ordered lists.\n */\n @HostBinding('class.ecl-ordered-list') cmpClass = true;\n}\n\n/**\n * Directive for a single item within an ECL ordered list.\n */\n@Directive({\n selector: '[eclOrderedListItem]',\n})\nexport class EclOrderedListItemDirective extends ECLBaseDirective {\n /**\n * Applies the ECL class for ordered list items.\n */\n @HostBinding('class.ecl-ordered-list__item') cmpClass = true;\n}\n\n/**\n * Directive representing an unordered list using ECL styles.\n *\n * Supports optional variants like divider and no-marker.\n */\n@Directive({\n selector: '[eclUnorderedList]',\n})\nexport class EclUnorderedListDirective extends ECLBaseDirective {\n /**\n * Applies the ECL class for unordered lists.\n */\n @HostBinding('class.ecl-unordered-list') cmpClass = true;\n\n /**\n * Adds a divider between list items.\n */\n isDivider = input(false, { transform: booleanAttribute });\n\n @HostBinding('class.ecl-unordered-list--divider')\n get dividerClass() {\n return this.isDivider();\n }\n\n /**\n * Removes markers from list items.\n */\n isNoMarker = input(false, { transform: booleanAttribute });\n\n @HostBinding('class.ecl-unordered-list--no-marker')\n get noMarkerClass() {\n return this.isNoMarker();\n }\n}\n\n/**\n * Directive for a single item within an ECL unordered list.\n */\n@Directive({\n selector: '[eclUnorderedListItem]',\n})\nexport class EclUnorderedListItemDirective extends ECLBaseDirective {\n /**\n * Applies the ECL class for unordered list items.\n */\n @HostBinding('class.ecl-unordered-list__item') cmpClass = true;\n}\n\n/**\n * Directive for a description list using ECL styles.\n *\n * Supports horizontal layout and maxVisibleItems functionality\n * passed down to nested definition components.\n */\n@Directive({\n selector: '[eclDescriptionList]',\n})\nexport class EclDescriptionListDirective extends ECLBaseDirective implements AfterContentInit {\n /**\n * Enables horizontal layout.\n */\n isHorizontal = input(false, { transform: booleanAttribute });\n\n @HostBinding('class.ecl-description-list--horizontal')\n get horizontalClass() {\n return this.isHorizontal();\n }\n\n /**\n * Maximum number of visible items before collapsing.\n * Applied to nested `eclDescriptionListDefinition` components.\n */\n maxVisibleItems = input(0, { transform: numberAttribute });\n\n readonly eclListItems = contentChildren(EclDescriptionListDefinitionComponent);\n\n /**\n * Applies the base ECL class for description lists.\n */\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-description-list')].join(' ');\n }\n private cd = inject(ChangeDetectorRef);\n\n /**\n * Assigns `maxVisibleItems` to child definition components if needed.\n */\n ngAfterContentInit(): void {\n if (!this.isHorizontal() && this.maxVisibleItems() > 0) {\n this.eclListItems().forEach((item) => (item.maxVisibleItems.set(this.maxVisibleItems())));\n }\n this.cd.detectChanges();\n }\n}\n\n/**\n * Directive representing a term within an ECL description list.\n */\n@Directive({\n selector: '[eclDescriptionListTerm]',\n})\nexport class EclDescriptionListTermDirective extends ECLBaseDirective {\n /**\n * Applies the ECL class for description list terms.\n */\n @HostBinding('class.ecl-description-list__term') cmpClass = true;\n}\n","import { EclDescriptionListDefinitionItemDirective, EclDescriptionListDefinitionListDirective } from './ecl-description-list-definition-item.directive';\nimport { EclDescriptionListDefinitionComponent } from './ecl-description-list-definition/ecl-description-list-definition.component';\nimport {\n EclDescriptionListDirective,\n EclDescriptionListTermDirective,\n EclOrderedListDirective,\n EclOrderedListItemDirective,\n EclUnorderedListDirective,\n EclUnorderedListItemDirective,\n} from './ecl-list.directive';\n\nexport * from './ecl-list.directive';\nexport * from './ecl-description-list-definition-item.directive';\nexport * from './ecl-description-list-definition/ecl-description-list-definition.component';\n\nexport const EUI_ECL_LIST = [\n EclOrderedListDirective,\n EclOrderedListItemDirective,\n EclUnorderedListDirective,\n EclUnorderedListItemDirective,\n EclDescriptionListDirective,\n EclDescriptionListTermDirective,\n EclDescriptionListDefinitionComponent,\n EclDescriptionListDefinitionItemDirective,\n EclDescriptionListDefinitionListDirective,\n] as const;","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { input, booleanAttribute,
|
|
2
|
+
import { input, booleanAttribute, Component, Directive } from '@angular/core';
|
|
3
3
|
import { ECLBaseDirective } from '@eui/ecl/core';
|
|
4
4
|
|
|
5
5
|
/**
|
|
@@ -63,18 +63,15 @@ class EclLoadingIndicatorComponent extends ECLBaseDirective {
|
|
|
63
63
|
.trim();
|
|
64
64
|
}
|
|
65
65
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EclLoadingIndicatorComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
66
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.1.2", type: EclLoadingIndicatorComponent, isStandalone: true, selector: "ecl-loading-indicator", inputs: { size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, isCentered: { classPropertyName: "isCentered", publicName: "isCentered", isSignal: true, isRequired: false, transformFunction: null }, isVisible: { classPropertyName: "isVisible", publicName: "isVisible", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.role": "
|
|
66
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.1.2", type: EclLoadingIndicatorComponent, isStandalone: true, selector: "ecl-loading-indicator", inputs: { size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, isCentered: { classPropertyName: "isCentered", publicName: "isCentered", isSignal: true, isRequired: false, transformFunction: null }, isVisible: { classPropertyName: "isVisible", publicName: "isVisible", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.role": "role", "class": "cssClasses" } }, usesInheritance: true, ngImport: i0, template: "<svg class=\"ecl-spinner__loader\" viewBox=\"25 25 50 50\">\n <circle\n class=\"ecl-spinner__circle\"\n cx=\"50\"\n cy=\"50\"\n r=\"20\"\n fill=\"none\"\n stroke-width=\"4px\"\n stroke-miterlimit=\"10\"\n vector-effect=\"non-scaling-stroke\"></circle>\n</svg>\n<ng-content></ng-content>\n" }); }
|
|
67
67
|
}
|
|
68
68
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EclLoadingIndicatorComponent, decorators: [{
|
|
69
69
|
type: Component,
|
|
70
|
-
args: [{ selector: 'ecl-loading-indicator',
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
type: HostBinding,
|
|
76
|
-
args: ['class']
|
|
77
|
-
}] } });
|
|
70
|
+
args: [{ selector: 'ecl-loading-indicator', host: {
|
|
71
|
+
'[attr.role]': 'role',
|
|
72
|
+
'[class]': 'cssClasses',
|
|
73
|
+
}, template: "<svg class=\"ecl-spinner__loader\" viewBox=\"25 25 50 50\">\n <circle\n class=\"ecl-spinner__circle\"\n cx=\"50\"\n cy=\"50\"\n r=\"20\"\n fill=\"none\"\n stroke-width=\"4px\"\n stroke-miterlimit=\"10\"\n vector-effect=\"non-scaling-stroke\"></circle>\n</svg>\n<ng-content></ng-content>\n" }]
|
|
74
|
+
}], propDecorators: { size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], isCentered: [{ type: i0.Input, args: [{ isSignal: true, alias: "isCentered", required: false }] }], isVisible: [{ type: i0.Input, args: [{ isSignal: true, alias: "isVisible", required: false }] }] } });
|
|
78
75
|
|
|
79
76
|
/**
|
|
80
77
|
* Directive for styling the label text of an ECL loading indicator.
|
|
@@ -89,17 +86,17 @@ class EclLoadingIndicatorLabelDirective {
|
|
|
89
86
|
this.className = true;
|
|
90
87
|
}
|
|
91
88
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EclLoadingIndicatorLabelDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
92
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.2", type: EclLoadingIndicatorLabelDirective, isStandalone: true, selector: "[eclLoadingIndicatorLabel]", host: { properties: { "class.ecl-spinner__text": "
|
|
89
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.2", type: EclLoadingIndicatorLabelDirective, isStandalone: true, selector: "[eclLoadingIndicatorLabel]", host: { properties: { "class.ecl-spinner__text": "className" } }, ngImport: i0 }); }
|
|
93
90
|
}
|
|
94
91
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EclLoadingIndicatorLabelDirective, decorators: [{
|
|
95
92
|
type: Directive,
|
|
96
93
|
args: [{
|
|
97
94
|
selector: '[eclLoadingIndicatorLabel]',
|
|
95
|
+
host: {
|
|
96
|
+
'[class.ecl-spinner__text]': 'className',
|
|
97
|
+
},
|
|
98
98
|
}]
|
|
99
|
-
}]
|
|
100
|
-
type: HostBinding,
|
|
101
|
-
args: ['class.ecl-spinner__text']
|
|
102
|
-
}] } });
|
|
99
|
+
}] });
|
|
103
100
|
|
|
104
101
|
/**
|
|
105
102
|
* Directive that adds an overlay layer to an ECL loading indicator.
|
|
@@ -114,17 +111,17 @@ class EclLoadingIndicatorOverlayDirective extends ECLBaseDirective {
|
|
|
114
111
|
return [super.getCssClasses('ecl-spinner__overlay ecl-spinner__overlay--visible')].join(' ').trim();
|
|
115
112
|
}
|
|
116
113
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EclLoadingIndicatorOverlayDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
|
|
117
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.2", type: EclLoadingIndicatorOverlayDirective, isStandalone: true, selector: "[eclLoadingIndicatorOverlay]", host: { properties: { "class": "
|
|
114
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.2", type: EclLoadingIndicatorOverlayDirective, isStandalone: true, selector: "[eclLoadingIndicatorOverlay]", host: { properties: { "class": "cssClasses" } }, usesInheritance: true, ngImport: i0 }); }
|
|
118
115
|
}
|
|
119
116
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EclLoadingIndicatorOverlayDirective, decorators: [{
|
|
120
117
|
type: Directive,
|
|
121
118
|
args: [{
|
|
122
119
|
selector: '[eclLoadingIndicatorOverlay]',
|
|
120
|
+
host: {
|
|
121
|
+
'[class]': 'cssClasses',
|
|
122
|
+
},
|
|
123
123
|
}]
|
|
124
|
-
}]
|
|
125
|
-
type: HostBinding,
|
|
126
|
-
args: ['class']
|
|
127
|
-
}] } });
|
|
124
|
+
}] });
|
|
128
125
|
|
|
129
126
|
const EUI_ECL_LOADING_INDICATOR = [
|
|
130
127
|
EclLoadingIndicatorComponent,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eui-ecl-components-ecl-loading-indicator.mjs","sources":["../../components/ecl-loading-indicator/ecl-loading-indicator.component.ts","../../components/ecl-loading-indicator/ecl-loading-indicator.component.html","../../components/ecl-loading-indicator/ecl-loading-indicator-label.directive.ts","../../components/ecl-loading-indicator/ecl-loading-indicator-overlay.directive.ts","../../components/ecl-loading-indicator/index.ts","../../components/ecl-loading-indicator/eui-ecl-components-ecl-loading-indicator.ts"],"sourcesContent":["import { Component,
|
|
1
|
+
{"version":3,"file":"eui-ecl-components-ecl-loading-indicator.mjs","sources":["../../components/ecl-loading-indicator/ecl-loading-indicator.component.ts","../../components/ecl-loading-indicator/ecl-loading-indicator.component.html","../../components/ecl-loading-indicator/ecl-loading-indicator-label.directive.ts","../../components/ecl-loading-indicator/ecl-loading-indicator-overlay.directive.ts","../../components/ecl-loading-indicator/index.ts","../../components/ecl-loading-indicator/eui-ecl-components-ecl-loading-indicator.ts"],"sourcesContent":["import { Component, booleanAttribute, input } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Component representing a loading indicator (spinner) using ECL styles.\n *\n * Supports different sizes, color variants, centering and visibility options.\n */\n@Component({\n selector: 'ecl-loading-indicator',\n templateUrl: './ecl-loading-indicator.component.html',\n host: {\n '[attr.role]': 'role',\n '[class]': 'cssClasses',\n },\n})\nexport class EclLoadingIndicatorComponent extends ECLBaseDirective {\n /**\n * Size of the spinner.\n *\n * Possible values:\n * - `'s'` – small\n * - `'m'` – medium (default)\n * - `'l'` – large\n */\n readonly size = input<'s' | 'm' | 'l'>('m');\n\n /**\n * Variant of the spinner color.\n *\n * Possible values:\n * - `'primary'` – default appearance\n * - `'inverted'` – used on dark backgrounds\n */\n readonly variant = input<'primary' | 'inverted'>('primary');\n\n /**\n * Controls whether the spinner should be centered.\n *\n * Defaults to `true`.\n */\n readonly isCentered = input(true, { transform: booleanAttribute });\n\n /**\n * Controls visibility of the spinner.\n *\n * When set to `false`, the spinner will be hidden via CSS.\n *\n * Defaults to `true`.\n */\n readonly isVisible = input(true, { transform: booleanAttribute });\n\n /**\n * Applies ARIA role for accessibility.\n */\n role = 'alert';\n\n /**\n * Applies CSS classes based on size, variant and visibility settings.\n */\n get cssClasses(): string {\n return [\n super.getCssClasses('ecl-spinner'),\n `ecl-spinner--${this.size()}`,\n `ecl-spinner--${this.variant()}`,\n this.isCentered() ? 'ecl-spinner--centered' : '',\n this.isVisible() ? 'ecl-spinner--visible' : '',\n ]\n .join(' ')\n .trim();\n }\n}\n","<svg class=\"ecl-spinner__loader\" viewBox=\"25 25 50 50\">\n <circle\n class=\"ecl-spinner__circle\"\n cx=\"50\"\n cy=\"50\"\n r=\"20\"\n fill=\"none\"\n stroke-width=\"4px\"\n stroke-miterlimit=\"10\"\n vector-effect=\"non-scaling-stroke\"></circle>\n</svg>\n<ng-content></ng-content>\n","import { Directive } from '@angular/core';\n\n/**\n * Directive for styling the label text of an ECL loading indicator.\n *\n * Adds the `ecl-spinner__text` class to the host element.\n */\n@Directive({\n selector: '[eclLoadingIndicatorLabel]',\n host: {\n '[class.ecl-spinner__text]': 'className',\n },\n})\nexport class EclLoadingIndicatorLabelDirective {\n /**\n * Applies the ECL class for spinner label text.\n */\n className = true;\n}\n","import { Directive } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Directive that adds an overlay layer to an ECL loading indicator.\n *\n * Automatically applies the ECL spinner overlay classes.\n */\n@Directive({\n selector: '[eclLoadingIndicatorOverlay]',\n host: {\n '[class]': 'cssClasses',\n },\n})\nexport class EclLoadingIndicatorOverlayDirective extends ECLBaseDirective {\n /**\n * Applies the CSS classes for the spinner overlay.\n */\n get cssClasses(): string {\n return [super.getCssClasses('ecl-spinner__overlay ecl-spinner__overlay--visible')].join(' ').trim();\n }\n}\n","import { EclLoadingIndicatorComponent } from './ecl-loading-indicator.component';\nimport { EclLoadingIndicatorLabelDirective } from './ecl-loading-indicator-label.directive';\nimport { EclLoadingIndicatorOverlayDirective } from './ecl-loading-indicator-overlay.directive';\n\nexport * from './ecl-loading-indicator.component';\nexport * from './ecl-loading-indicator-label.directive';\nexport * from './ecl-loading-indicator-overlay.directive';\n\nexport const EUI_ECL_LOADING_INDICATOR = [\n EclLoadingIndicatorComponent,\n EclLoadingIndicatorLabelDirective,\n EclLoadingIndicatorOverlayDirective,\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;AAGA;;;;AAIG;AASG,MAAO,4BAA6B,SAAQ,gBAAgB,CAAA;AARlE,IAAA,WAAA,GAAA;;AASI;;;;;;;AAOG;QACM,IAAA,CAAA,IAAI,GAAG,KAAK,CAAkB,GAAG;iFAAC;AAE3C;;;;;;AAMG;QACM,IAAA,CAAA,OAAO,GAAG,KAAK,CAAyB,SAAS;oFAAC;AAE3D;;;;AAIG;QACM,IAAA,CAAA,UAAU,GAAG,KAAK,CAAC,IAAI,kFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AAElE;;;;;;AAMG;QACM,IAAA,CAAA,SAAS,GAAG,KAAK,CAAC,IAAI,iFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AAEjE;;AAEG;QACH,IAAA,CAAA,IAAI,GAAG,OAAO;AAgBjB,IAAA;AAdG;;AAEG;AACH,IAAA,IAAI,UAAU,GAAA;QACV,OAAO;AACH,YAAA,KAAK,CAAC,aAAa,CAAC,aAAa,CAAC;AAClC,YAAA,CAAA,aAAA,EAAgB,IAAI,CAAC,IAAI,EAAE,CAAA,CAAE;AAC7B,YAAA,CAAA,aAAA,EAAgB,IAAI,CAAC,OAAO,EAAE,CAAA,CAAE;YAChC,IAAI,CAAC,UAAU,EAAE,GAAG,uBAAuB,GAAG,EAAE;YAChD,IAAI,CAAC,SAAS,EAAE,GAAG,sBAAsB,GAAG,EAAE;AACjD;aACI,IAAI,CAAC,GAAG;AACR,aAAA,IAAI,EAAE;IACf;8GAtDS,4BAA4B,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA5B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,4BAA4B,wrBChBzC,6VAYA,EAAA,CAAA,CAAA;;2FDIa,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBARxC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,uBAAuB,EAAA,IAAA,EAE3B;AACF,wBAAA,aAAa,EAAE,MAAM;AACrB,wBAAA,SAAS,EAAE,YAAY;AAC1B,qBAAA,EAAA,QAAA,EAAA,6VAAA,EAAA;;;AEZL;;;;AAIG;MAOU,iCAAiC,CAAA;AAN9C,IAAA,WAAA,GAAA;AAOI;;AAEG;QACH,IAAA,CAAA,SAAS,GAAG,IAAI;AACnB,IAAA;8GALY,iCAAiC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAjC,iCAAiC,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,4BAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,yBAAA,EAAA,WAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAjC,iCAAiC,EAAA,UAAA,EAAA,CAAA;kBAN7C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,4BAA4B;AACtC,oBAAA,IAAI,EAAE;AACF,wBAAA,2BAA2B,EAAE,WAAW;AAC3C,qBAAA;AACJ,iBAAA;;;ACTD;;;;AAIG;AAOG,MAAO,mCAAoC,SAAQ,gBAAgB,CAAA;AACrE;;AAEG;AACH,IAAA,IAAI,UAAU,GAAA;AACV,QAAA,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,oDAAoD,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE;IACvG;8GANS,mCAAmC,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAnC,mCAAmC,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,8BAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,YAAA,EAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAnC,mCAAmC,EAAA,UAAA,EAAA,CAAA;kBAN/C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,8BAA8B;AACxC,oBAAA,IAAI,EAAE;AACF,wBAAA,SAAS,EAAE,YAAY;AAC1B,qBAAA;AACJ,iBAAA;;;ACLM,MAAM,yBAAyB,GAAG;IACrC,4BAA4B;IAC5B,iCAAiC;IACjC,mCAAmC;;;ACXvC;;AAEG;;;;"}
|