@eui/ecl 22.0.0-alpha.14 → 22.0.0-alpha.16
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 +20 -0
- package/docs/components/EclModalBodyComponent.html +4 -45
- package/docs/components/EclModalComponent.html +5 -178
- package/docs/components/EclModalFooterComponent.html +4 -45
- package/docs/components/EclModalHeaderComponent.html +5 -76
- package/docs/directives/EclModalBodyFixedContentDirective.html +0 -61
- package/docs/directives/EclModalCloseDirective.html +1 -90
- package/docs/directives/EclModalTriggerDirective.html +1 -90
- package/docs/js/search/search_index.js +2 -2
- package/docs/json/documentation.json +98 -344
- package/docs/llms.txt +4 -5
- package/docs/properties.html +1 -1
- package/fesm2022/eui-ecl-components-ecl-modal.mjs +82 -87
- package/fesm2022/eui-ecl-components-ecl-modal.mjs.map +1 -1
- package/package.json +1 -1
- package/types/eui-ecl-components-ecl-modal.d.ts +9 -9
- package/types/eui-ecl-components-ecl-modal.d.ts.map +1 -1
package/docs/llms.txt
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# eui documentation
|
|
2
2
|
|
|
3
|
-
> Generated by compodoc 2.0.0 at 2026-09-
|
|
3
|
+
> Generated by compodoc 2.0.0 at 2026-09-23T08:37:30.056Z, llm-md export.
|
|
4
4
|
|
|
5
5
|
## Modules
|
|
6
6
|
|
|
@@ -1690,8 +1690,7 @@ Outputs:
|
|
|
1690
1690
|
|
|
1691
1691
|
Properties:
|
|
1692
1692
|
- `closeButton: unknown = viewChild.required<EclButtonComponent>('closeButton')` — Reference to the close button component.
|
|
1693
|
-
- `
|
|
1694
|
-
- `variant: unknown = signal<'information' | 'success' | 'warning' | 'error' | string>(undefined)` — Defines the visual variant of the modal. Determines which icon is shown in the header. Possible values: 'information', 'success', 'warning', 'error', or any custom string.
|
|
1693
|
+
- `variant: unknown = signal<'information' | 'success' | 'warning' | 'error' | string | undefined>(undefined)` — Defines the visual variant of the modal. Determines which icon is shown in the header. Possible values: 'information', 'success', 'warning', 'error', or any custom string.
|
|
1695
1694
|
|
|
1696
1695
|
Methods:
|
|
1697
1696
|
- `getIcon(): "information" | "check-filled" | "warning" | "error" | null` — Returns the name of the icon associated with the current variant.
|
|
@@ -5104,7 +5103,7 @@ Outputs:
|
|
|
5104
5103
|
- `modalClose` — Event emitted when the element is clicked and the modal should be closed.
|
|
5105
5104
|
|
|
5106
5105
|
Methods:
|
|
5107
|
-
- `onClick(
|
|
5106
|
+
- `onClick(): void` — Handles click events and emits the modalClose event.
|
|
5108
5107
|
- `getCssClasses(rootClass: string): string`
|
|
5109
5108
|
|
|
5110
5109
|
### EclModalTriggerDirective
|
|
@@ -5121,7 +5120,7 @@ Inputs:
|
|
|
5121
5120
|
- `tabindex: number`
|
|
5122
5121
|
|
|
5123
5122
|
Methods:
|
|
5124
|
-
- `onClick(
|
|
5123
|
+
- `onClick(): void` — Handles click event and opens the target modal.
|
|
5125
5124
|
- `getCssClasses(rootClass: string): string`
|
|
5126
5125
|
|
|
5127
5126
|
### EclMultiselectOptionDirective
|
package/docs/properties.html
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { input, output,
|
|
3
|
-
import { ECLBaseDirective, EclBaseEvent
|
|
2
|
+
import { input, output, Directive, signal, viewChild, Component, contentChild, forwardRef, contentChildren, inject, DOCUMENT, PLATFORM_ID } from '@angular/core';
|
|
3
|
+
import { ECLBaseDirective, EclBaseEvent } from '@eui/ecl/core';
|
|
4
4
|
import { TranslatePipe } from '@ngx-translate/core';
|
|
5
5
|
import * as i2 from '@eui/ecl/components/ecl-button';
|
|
6
6
|
import { EUI_ECL_BUTTON, EclButtonComponent } from '@eui/ecl/components/ecl-button';
|
|
@@ -36,21 +36,21 @@ class EclModalCloseDirective extends ECLBaseDirective {
|
|
|
36
36
|
/**
|
|
37
37
|
* Handles click events and emits the `modalClose` event.
|
|
38
38
|
*/
|
|
39
|
-
onClick(
|
|
39
|
+
onClick() {
|
|
40
40
|
this.modalClose.emit(null);
|
|
41
41
|
}
|
|
42
42
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EclModalCloseDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
|
|
43
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.1.2", type: EclModalCloseDirective, isStandalone: true, selector: "[eclModalClose]", inputs: { eclModalResult: { classPropertyName: "eclModalResult", publicName: "eclModalClose", isSignal: true, isRequired: false, transformFunction: null }, eclModalRole: { classPropertyName: "eclModalRole", publicName: "eclModalRole", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { modalClose: "modalClose" }, host: { listeners: { "click": "onClick(
|
|
43
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.1.2", type: EclModalCloseDirective, isStandalone: true, selector: "[eclModalClose]", inputs: { eclModalResult: { classPropertyName: "eclModalResult", publicName: "eclModalClose", isSignal: true, isRequired: false, transformFunction: null }, eclModalRole: { classPropertyName: "eclModalRole", publicName: "eclModalRole", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { modalClose: "modalClose" }, host: { listeners: { "click": "onClick()" } }, usesInheritance: true, ngImport: i0 }); }
|
|
44
44
|
}
|
|
45
45
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EclModalCloseDirective, decorators: [{
|
|
46
46
|
type: Directive,
|
|
47
47
|
args: [{
|
|
48
48
|
selector: '[eclModalClose]',
|
|
49
|
+
host: {
|
|
50
|
+
'(click)': 'onClick()',
|
|
51
|
+
},
|
|
49
52
|
}]
|
|
50
|
-
}], propDecorators: { eclModalResult: [{ type: i0.Input, args: [{ isSignal: true, alias: "eclModalClose", required: false }] }], eclModalRole: [{ type: i0.Input, args: [{ isSignal: true, alias: "eclModalRole", required: false }] }], modalClose: [{ type: i0.Output, args: ["modalClose"] }]
|
|
51
|
-
type: HostListener,
|
|
52
|
-
args: ['click', ['$event']]
|
|
53
|
-
}] } });
|
|
53
|
+
}], propDecorators: { eclModalResult: [{ type: i0.Input, args: [{ isSignal: true, alias: "eclModalClose", required: false }] }], eclModalRole: [{ type: i0.Input, args: [{ isSignal: true, alias: "eclModalRole", required: false }] }], modalClose: [{ type: i0.Output, args: ["modalClose"] }] } });
|
|
54
54
|
|
|
55
55
|
class EclModalOpenEvent extends EclBaseEvent {
|
|
56
56
|
}
|
|
@@ -73,7 +73,6 @@ class EclModalCloseEvent extends EclBaseEvent {
|
|
|
73
73
|
class EclModalHeaderComponent extends ECLBaseDirective {
|
|
74
74
|
constructor() {
|
|
75
75
|
super(...arguments);
|
|
76
|
-
this.eclThemeService = inject(EclThemeService);
|
|
77
76
|
/**
|
|
78
77
|
* Defines the visual variant of the modal.
|
|
79
78
|
* Determines which icon is shown in the header.
|
|
@@ -128,7 +127,7 @@ class EclModalHeaderComponent extends ECLBaseDirective {
|
|
|
128
127
|
}
|
|
129
128
|
}
|
|
130
129
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EclModalHeaderComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
131
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.2", type: EclModalHeaderComponent, isStandalone: true, selector: "[eclModalHeader]", outputs: { modalClose: "modalClose" }, host: { properties: { "class": "
|
|
130
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.2", type: EclModalHeaderComponent, isStandalone: true, selector: "[eclModalHeader]", outputs: { modalClose: "modalClose" }, host: { properties: { "class": "cssClasses" } }, viewQueries: [{ propertyName: "closeButton", first: true, predicate: ["closeButton"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"ecl-modal__header-content\">\n @if(getIcon()) {\n @if(variant() === 'warning') {\n <span class=\"ecl-modal__icon-background\"></span>\n }\n <ecl-icon [icon]=\"getIcon()\" size=\"l\" class=\"ecl-modal__icon\" [title]=\"variant()\"></ecl-icon>\n }\n <ng-content></ng-content>\n</div>\n<button #closeButton eclButton variant=\"tertiary\" size=\"m\" eclStyle=\"neutral\" isIconOnly class=\"ecl-modal__close\" type=\"button\"\n (click)=\"onCloseClick()\">\n <span eclButtonLabel>{{ 'ecl.common.CLOSE' | translate }}</span>\n <ecl-icon icon=\"close\" size=\"m\"></ecl-icon>\n</button>", dependencies: [{ kind: "component", type: i1.EclIconComponent, selector: "ecl-icon", inputs: ["iconSet", "icon", "size", "color", "transform", "ariaLabelledby", "role", "title", "ariaHidden", "focusable", "isFlipHorizontal"] }, { kind: "component", type: i2.EclButtonComponent, selector: "button[eclButton], button[ecl-button], a[eclButton]", inputs: ["isIconOnly", "variant", "eclStyle", "size", "containerStyleClass"] }, { kind: "directive", type: i2.EclButtonLabelDirective, selector: "[eclButtonLabel]" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
|
|
132
131
|
}
|
|
133
132
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EclModalHeaderComponent, decorators: [{
|
|
134
133
|
type: Component,
|
|
@@ -136,11 +135,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.2", ngImpor
|
|
|
136
135
|
...EUI_ECL_ICON,
|
|
137
136
|
TranslatePipe,
|
|
138
137
|
...EUI_ECL_BUTTON,
|
|
139
|
-
],
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
}] } });
|
|
138
|
+
], host: {
|
|
139
|
+
'[class]': 'cssClasses',
|
|
140
|
+
}, template: "<div class=\"ecl-modal__header-content\">\n @if(getIcon()) {\n @if(variant() === 'warning') {\n <span class=\"ecl-modal__icon-background\"></span>\n }\n <ecl-icon [icon]=\"getIcon()\" size=\"l\" class=\"ecl-modal__icon\" [title]=\"variant()\"></ecl-icon>\n }\n <ng-content></ng-content>\n</div>\n<button #closeButton eclButton variant=\"tertiary\" size=\"m\" eclStyle=\"neutral\" isIconOnly class=\"ecl-modal__close\" type=\"button\"\n (click)=\"onCloseClick()\">\n <span eclButtonLabel>{{ 'ecl.common.CLOSE' | translate }}</span>\n <ecl-icon icon=\"close\" size=\"m\"></ecl-icon>\n</button>" }]
|
|
141
|
+
}], propDecorators: { modalClose: [{ type: i0.Output, args: ["modalClose"] }], closeButton: [{ type: i0.ViewChild, args: ['closeButton', { isSignal: true }] }] } });
|
|
144
142
|
|
|
145
143
|
/**
|
|
146
144
|
* Body component used inside the ECL Modal.
|
|
@@ -167,20 +165,19 @@ class EclModalBodyComponent extends ECLBaseDirective {
|
|
|
167
165
|
].join(' ').trim();
|
|
168
166
|
}
|
|
169
167
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EclModalBodyComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
170
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.1.2", type: EclModalBodyComponent, isStandalone: true, selector: "[eclModalBody]", host: { properties: { "class": "
|
|
168
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.1.2", type: EclModalBodyComponent, isStandalone: true, selector: "[eclModalBody]", host: { properties: { "class": "cssClasses" } }, usesInheritance: true, ngImport: i0, template: "<div class=\"ecl-modal__body-scroll\" [id]=\"eclModalBodyId()\">\n <ng-content></ng-content>\n</div>\n<div class=\"ecl-modal__body-overflow\" aria-hidden=\"true\"></div>\n<ng-content select=\"[eclModalBodyFixedContent]\"></ng-content>" }); }
|
|
171
169
|
}
|
|
172
170
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EclModalBodyComponent, decorators: [{
|
|
173
171
|
type: Component,
|
|
174
|
-
args: [{ selector: '[eclModalBody]',
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
}] } });
|
|
172
|
+
args: [{ selector: '[eclModalBody]', host: {
|
|
173
|
+
'[class]': 'cssClasses',
|
|
174
|
+
}, template: "<div class=\"ecl-modal__body-scroll\" [id]=\"eclModalBodyId()\">\n <ng-content></ng-content>\n</div>\n<div class=\"ecl-modal__body-overflow\" aria-hidden=\"true\"></div>\n<ng-content select=\"[eclModalBodyFixedContent]\"></ng-content>" }]
|
|
175
|
+
}] });
|
|
179
176
|
|
|
180
177
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
181
178
|
class EclModalComponent extends ECLBaseDirective {
|
|
182
179
|
constructor() {
|
|
183
|
-
super();
|
|
180
|
+
super(...arguments);
|
|
184
181
|
/**
|
|
185
182
|
* Defines the visual variant of the modal.
|
|
186
183
|
* Possible values: 'information', 'success', 'warning', 'error', or a custom string.
|
|
@@ -227,15 +224,36 @@ class EclModalComponent extends ECLBaseDirective {
|
|
|
227
224
|
*/
|
|
228
225
|
this.eclModalBody = contentChild(EclModalBodyComponent, /* @ts-ignore */
|
|
229
226
|
...(ngDevMode ? [{ debugName: "eclModalBody" }] : /* istanbul ignore next */ []));
|
|
230
|
-
this.previousOverflow =
|
|
227
|
+
this.previousOverflow = '';
|
|
231
228
|
this.document = inject(DOCUMENT);
|
|
232
229
|
this.platformId = inject(PLATFORM_ID);
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
230
|
+
}
|
|
231
|
+
/**
|
|
232
|
+
* Wires the projected header and close directives, and passes the body id to
|
|
233
|
+
* the projected body, once content is initialized. The projected content is
|
|
234
|
+
* static for the modal's lifetime, so a one-time setup is sufficient.
|
|
235
|
+
*/
|
|
236
|
+
ngAfterContentInit() {
|
|
237
|
+
const header = this.eclModalHeader();
|
|
238
|
+
if (header) {
|
|
239
|
+
header.variant.set(this.variant());
|
|
240
|
+
header.modalClose.subscribe(() => {
|
|
241
|
+
this.closeModal({ eclModalRole: 'cancel' });
|
|
242
|
+
});
|
|
243
|
+
}
|
|
244
|
+
// Wire every projected close directive to close the modal with its
|
|
245
|
+
// configured role and result. `modalClose` is an `output()`, so its
|
|
246
|
+
// subscription is cleaned up automatically when this component is destroyed.
|
|
247
|
+
this.eclModalCloseComponents().forEach((closeCmp) => {
|
|
248
|
+
closeCmp.modalClose.subscribe(() => {
|
|
249
|
+
this.closeModal({
|
|
250
|
+
eclModalData: closeCmp.eclModalResult(),
|
|
251
|
+
eclModalRole: closeCmp.eclModalRole(),
|
|
252
|
+
});
|
|
253
|
+
});
|
|
238
254
|
});
|
|
255
|
+
// Pass the modal body id to the projected body for aria-describedby wiring.
|
|
256
|
+
this.eclModalBody()?.eclModalBodyId.set(this.eclModalBodyId);
|
|
239
257
|
}
|
|
240
258
|
/**
|
|
241
259
|
* Binds the `open` attribute to the modal element.
|
|
@@ -266,45 +284,30 @@ class EclModalComponent extends ECLBaseDirective {
|
|
|
266
284
|
onEscapeKeydownHandler() {
|
|
267
285
|
this.closeModal({ eclModalRole: 'cancel' });
|
|
268
286
|
}
|
|
269
|
-
/**
|
|
270
|
-
* Subscribes to close events from header and close directives after content is initialized.
|
|
271
|
-
*/
|
|
272
|
-
ngAfterContentInit() {
|
|
273
|
-
const header = this.eclModalHeader();
|
|
274
|
-
if (header) {
|
|
275
|
-
header.variant.set(this.variant());
|
|
276
|
-
header.modalClose.subscribe(() => {
|
|
277
|
-
this.closeModal({ eclModalRole: 'cancel' });
|
|
278
|
-
});
|
|
279
|
-
}
|
|
280
|
-
this.eclModalCloseComponents()?.forEach((eclModalCloseCmp) => {
|
|
281
|
-
eclModalCloseCmp.modalClose.subscribe(() => {
|
|
282
|
-
this.closeModal({
|
|
283
|
-
eclModalData: eclModalCloseCmp.eclModalResult(),
|
|
284
|
-
eclModalRole: eclModalCloseCmp.eclModalRole(),
|
|
285
|
-
});
|
|
286
|
-
});
|
|
287
|
-
});
|
|
288
|
-
this.eclModalBody().eclModalBodyId.set(this.eclModalBodyId);
|
|
289
|
-
}
|
|
290
287
|
/**
|
|
291
288
|
* Opens the modal and emits a `modalOpen` event.
|
|
292
289
|
* If the event is not prevented, the modal will be displayed.
|
|
293
290
|
*/
|
|
294
291
|
openModal() {
|
|
292
|
+
// Ignore repeated open calls so the saved overflow value is not overwritten
|
|
293
|
+
// with the already-hidden value while the modal is open.
|
|
294
|
+
if (this.isOpen()) {
|
|
295
|
+
return;
|
|
296
|
+
}
|
|
295
297
|
const event = new EclModalOpenEvent();
|
|
296
298
|
this.modalOpen.emit(event);
|
|
297
|
-
if (
|
|
298
|
-
|
|
299
|
+
if (event.defaultPrevented) {
|
|
300
|
+
return;
|
|
299
301
|
}
|
|
302
|
+
this.isOpen.set(true);
|
|
300
303
|
const header = this.eclModalHeader();
|
|
301
304
|
if (header) {
|
|
302
305
|
setTimeout(() => header.closeButton().el.nativeElement.focus(), 100);
|
|
303
306
|
}
|
|
304
307
|
// To prevent scrolling in main document
|
|
305
308
|
if (isPlatformBrowser(this.platformId)) {
|
|
306
|
-
this.previousOverflow = document.body.style.overflow;
|
|
307
|
-
document.body.style.overflow = 'hidden';
|
|
309
|
+
this.previousOverflow = this.document.body.style.overflow;
|
|
310
|
+
this.document.body.style.overflow = 'hidden';
|
|
308
311
|
}
|
|
309
312
|
}
|
|
310
313
|
/**
|
|
@@ -322,29 +325,22 @@ class EclModalComponent extends ECLBaseDirective {
|
|
|
322
325
|
this.isOpen.set(false);
|
|
323
326
|
}
|
|
324
327
|
if (isPlatformBrowser(this.platformId)) {
|
|
325
|
-
document.body.style.overflow = this.previousOverflow;
|
|
328
|
+
this.document.body.style.overflow = this.previousOverflow;
|
|
326
329
|
}
|
|
327
330
|
}
|
|
328
331
|
}
|
|
329
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EclModalComponent, deps:
|
|
330
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "22.1.2", type: EclModalComponent, isStandalone: true, selector: "dialog[eclModal]", inputs: { variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { modalClose: "modalClose", modalOpen: "modalOpen" }, host: { listeners: { "document:keydown.escape": "onEscapeKeydownHandler()" }, properties: { "attr.open": "
|
|
332
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EclModalComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
333
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "22.1.2", type: EclModalComponent, isStandalone: true, selector: "dialog[eclModal]", inputs: { variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { modalClose: "modalClose", modalOpen: "modalOpen" }, host: { listeners: { "document:keydown.escape": "onEscapeKeydownHandler()" }, properties: { "attr.open": "isModalOpened", "attr.aria-describedby": "hostAriaDescribedBy", "class": "cssClasses" } }, queries: [{ propertyName: "eclModalHeader", first: true, predicate: i0.forwardRef(() => EclModalHeaderComponent), descendants: true, isSignal: true }, { propertyName: "eclModalCloseComponents", predicate: i0.forwardRef(() => EclModalCloseDirective), descendants: true, isSignal: true }, { propertyName: "eclModalBody", first: true, predicate: EclModalBodyComponent, descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"ecl-modal__container\">\n <div class=\"ecl-modal__content ecl-container\" cdkTrapFocus cdkTrapFocusAutoCapture>\n <ng-content></ng-content>\n </div>\n</div>\n", dependencies: [{ kind: "ngmodule", type: A11yModule }, { kind: "directive", type: i1$1.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }] }); }
|
|
331
334
|
}
|
|
332
335
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EclModalComponent, decorators: [{
|
|
333
336
|
type: Component,
|
|
334
|
-
args: [{ selector: 'dialog[eclModal]', imports: [A11yModule],
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
}], cssClasses: [{
|
|
342
|
-
type: HostBinding,
|
|
343
|
-
args: ['class']
|
|
344
|
-
}], onEscapeKeydownHandler: [{
|
|
345
|
-
type: HostListener,
|
|
346
|
-
args: ['document:keydown.escape']
|
|
347
|
-
}] } });
|
|
337
|
+
args: [{ selector: 'dialog[eclModal]', imports: [A11yModule], host: {
|
|
338
|
+
'[attr.open]': 'isModalOpened',
|
|
339
|
+
'[attr.aria-describedby]': 'hostAriaDescribedBy',
|
|
340
|
+
'[class]': 'cssClasses',
|
|
341
|
+
'(document:keydown.escape)': 'onEscapeKeydownHandler()',
|
|
342
|
+
}, template: "<div class=\"ecl-modal__container\">\n <div class=\"ecl-modal__content ecl-container\" cdkTrapFocus cdkTrapFocusAutoCapture>\n <ng-content></ng-content>\n </div>\n</div>\n" }]
|
|
343
|
+
}], propDecorators: { variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], modalClose: [{ type: i0.Output, args: ["modalClose"] }], modalOpen: [{ type: i0.Output, args: ["modalOpen"] }], eclModalHeader: [{ type: i0.ContentChild, args: [forwardRef(() => EclModalHeaderComponent), { isSignal: true }] }], eclModalCloseComponents: [{ type: i0.ContentChildren, args: [forwardRef(() => EclModalCloseDirective), { ...{ descendants: true }, isSignal: true }] }], eclModalBody: [{ type: i0.ContentChild, args: [i0.forwardRef(() => EclModalBodyComponent), { isSignal: true }] }] } });
|
|
348
344
|
|
|
349
345
|
/**
|
|
350
346
|
* Footer component used within the ECL Modal.
|
|
@@ -380,15 +376,14 @@ class EclModalFooterComponent extends ECLBaseDirective {
|
|
|
380
376
|
}
|
|
381
377
|
}
|
|
382
378
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EclModalFooterComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
383
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "22.1.2", type: EclModalFooterComponent, isStandalone: true, selector: "[eclModalFooter]", host: { properties: { "class": "
|
|
379
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "22.1.2", type: EclModalFooterComponent, isStandalone: true, selector: "[eclModalFooter]", host: { properties: { "class": "cssClasses" } }, queries: [{ propertyName: "buttonComponents", predicate: i0.forwardRef(() => EclButtonComponent), descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"ecl-modal__footer-content\">\n <ng-content></ng-content>\n</div>\n" }); }
|
|
384
380
|
}
|
|
385
381
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EclModalFooterComponent, decorators: [{
|
|
386
382
|
type: Component,
|
|
387
|
-
args: [{ selector: '[eclModalFooter]',
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
}] } });
|
|
383
|
+
args: [{ selector: '[eclModalFooter]', host: {
|
|
384
|
+
'[class]': 'cssClasses',
|
|
385
|
+
}, template: "<div class=\"ecl-modal__footer-content\">\n <ng-content></ng-content>\n</div>\n" }]
|
|
386
|
+
}], propDecorators: { buttonComponents: [{ type: i0.ContentChildren, args: [forwardRef(() => EclButtonComponent), { ...{ descendants: true }, isSignal: true }] }] } });
|
|
392
387
|
|
|
393
388
|
/**
|
|
394
389
|
* Directive for styling fixed content inside the modal body.
|
|
@@ -404,17 +399,17 @@ class EclModalBodyFixedContentDirective extends ECLBaseDirective {
|
|
|
404
399
|
this.className = true;
|
|
405
400
|
}
|
|
406
401
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EclModalBodyFixedContentDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
|
|
407
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.2", type: EclModalBodyFixedContentDirective, isStandalone: true, selector: "[eclModalBodyFixedContent]", host: { properties: { "class.ecl-modal__body-fixed": "
|
|
402
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.2", type: EclModalBodyFixedContentDirective, isStandalone: true, selector: "[eclModalBodyFixedContent]", host: { properties: { "class.ecl-modal__body-fixed": "className" } }, usesInheritance: true, ngImport: i0 }); }
|
|
408
403
|
}
|
|
409
404
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EclModalBodyFixedContentDirective, decorators: [{
|
|
410
405
|
type: Directive,
|
|
411
406
|
args: [{
|
|
412
407
|
selector: '[eclModalBodyFixedContent]',
|
|
408
|
+
host: {
|
|
409
|
+
'[class.ecl-modal__body-fixed]': 'className',
|
|
410
|
+
},
|
|
413
411
|
}]
|
|
414
|
-
}]
|
|
415
|
-
type: HostBinding,
|
|
416
|
-
args: ['class.ecl-modal__body-fixed']
|
|
417
|
-
}] } });
|
|
412
|
+
}] });
|
|
418
413
|
|
|
419
414
|
/**
|
|
420
415
|
* Directive used to trigger opening of a target ECL modal on click.
|
|
@@ -432,21 +427,21 @@ class EclModalTriggerDirective extends ECLBaseDirective {
|
|
|
432
427
|
/**
|
|
433
428
|
* Handles click event and opens the target modal.
|
|
434
429
|
*/
|
|
435
|
-
onClick(
|
|
430
|
+
onClick() {
|
|
436
431
|
this.eclModalTriggerFor()?.openModal();
|
|
437
432
|
}
|
|
438
433
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EclModalTriggerDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
|
|
439
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.1.2", type: EclModalTriggerDirective, isStandalone: true, selector: "[eclModalTriggerFor]", inputs: { eclModalTriggerFor: { classPropertyName: "eclModalTriggerFor", publicName: "eclModalTriggerFor", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "click": "onClick(
|
|
434
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.1.2", type: EclModalTriggerDirective, isStandalone: true, selector: "[eclModalTriggerFor]", inputs: { eclModalTriggerFor: { classPropertyName: "eclModalTriggerFor", publicName: "eclModalTriggerFor", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "click": "onClick()" } }, usesInheritance: true, ngImport: i0 }); }
|
|
440
435
|
}
|
|
441
436
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EclModalTriggerDirective, decorators: [{
|
|
442
437
|
type: Directive,
|
|
443
438
|
args: [{
|
|
444
439
|
selector: '[eclModalTriggerFor]',
|
|
440
|
+
host: {
|
|
441
|
+
'(click)': 'onClick()',
|
|
442
|
+
},
|
|
445
443
|
}]
|
|
446
|
-
}], propDecorators: { eclModalTriggerFor: [{ type: i0.Input, args: [{ isSignal: true, alias: "eclModalTriggerFor", required: false }] }]
|
|
447
|
-
type: HostListener,
|
|
448
|
-
args: ['click', ['$event']]
|
|
449
|
-
}] } });
|
|
444
|
+
}], propDecorators: { eclModalTriggerFor: [{ type: i0.Input, args: [{ isSignal: true, alias: "eclModalTriggerFor", required: false }] }] } });
|
|
450
445
|
|
|
451
446
|
const EUI_ECL_MODAL = [
|
|
452
447
|
EclModalComponent,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eui-ecl-components-ecl-modal.mjs","sources":["../../components/ecl-modal/ecl-modal-close.directive.ts","../../components/ecl-modal/events/ecl-modal-open.event.ts","../../components/ecl-modal/events/ecl-modal-close.event.ts","../../components/ecl-modal/ecl-modal-header.component.ts","../../components/ecl-modal/ecl-modal-header.component.html","../../components/ecl-modal/ecl-modal-body.component.ts","../../components/ecl-modal/ecl-modal-body.component.html","../../components/ecl-modal/ecl-modal.component.ts","../../components/ecl-modal/ecl-modal.component.html","../../components/ecl-modal/ecl-modal-footer.component.ts","../../components/ecl-modal/ecl-modal-footer.component.html","../../components/ecl-modal/ecl-modal-body-fixed.directive.ts","../../components/ecl-modal/ecl-modal-trigger.directive.ts","../../components/ecl-modal/index.ts","../../components/ecl-modal/eui-ecl-components-ecl-modal.ts"],"sourcesContent":["import { Directive, HostListener, input, output } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Directive that allows an element to close the modal on click.\n *\n * Can emit a result and indicate the role (e.g., confirm, cancel).\n */\n@Directive({\n selector: '[eclModalClose]',\n})\nexport class EclModalCloseDirective<T> extends ECLBaseDirective {\n /**\n * Optional result value to emit when modal is closed.\n */\n eclModalResult = input<T>(undefined, { alias: 'eclModalClose' });\n \n /**\n * Optional role associated with the modal close action (e.g., confirm, cancel).\n */\n eclModalRole = input<'confirm' | 'cancel' | string>();\n \n /**\n * Event emitted when the element is clicked and the modal should be closed.\n */\n modalClose = output();\n\n /**\n * Handles click events and emits the `modalClose` event.\n */\n @HostListener('click', ['$event'])\n onClick(evt: MouseEvent): void {\n this.modalClose.emit(null);\n }\n}\n","import { EclBaseEvent } from '@eui/ecl/core';\nexport class EclModalOpenEvent extends EclBaseEvent {}","import { EclBaseEvent } from '@eui/ecl/core';\nimport { EclModalResult } from '../models/ecl-modal-result.model';\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport class EclModalCloseEvent<T = any> extends EclBaseEvent {\n constructor(public eclModalResult?: EclModalResult<T>) {\n super();\n }\n}","import { Component, HostBinding, output, viewChild, inject, signal } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclThemeService } from '@eui/ecl/core';\nimport { EclModalCloseEvent } from './events';\nimport { EclButtonComponent } from '@eui/ecl/components/ecl-button';\nimport { TranslatePipe } from '@ngx-translate/core';\nimport { EUI_ECL_BUTTON } from '@eui/ecl/components/ecl-button';\nimport { EUI_ECL_ICON } from '@eui/ecl/components/ecl-icon';\n\n/**\n * Header component used within the ECL Modal.\n *\n * Displays an icon depending on the modal variant, user-defined content,\n * and a close button that emits a close event.\n */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[eclModalHeader]',\n templateUrl: './ecl-modal-header.component.html',\n imports: [\n ...EUI_ECL_ICON,\n TranslatePipe,\n ...EUI_ECL_BUTTON,\n ],\n})\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport class EclModalHeaderComponent<T = any> extends ECLBaseDirective {\n eclThemeService = inject(EclThemeService);\n \n /**\n * Defines the visual variant of the modal.\n * Determines which icon is shown in the header.\n * Possible values: 'information', 'success', 'warning', 'error', or any custom string.\n */\n variant = signal<'information' | 'success' | 'warning' | 'error' | string>(undefined);\n \n /**\n * Event emitted when the close button is clicked.\n * Emits an `EclModalCloseEvent` object.\n */\n modalClose = output<EclModalCloseEvent<T>>();\n \n /**\n * Reference to the close button component.\n */\n closeButton = viewChild.required<EclButtonComponent>('closeButton');\n \n /**\n * Applies the ECL CSS class for modal header container.\n */\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-modal__header')].join(' ').trim();\n }\n\n /**\n * Handles the click event on the close button.\n * Emits a `modalClose` event with no payload.\n */\n onCloseClick(): void {\n this.modalClose.emit(new EclModalCloseEvent());\n }\n\n /**\n * Returns the name of the icon associated with the current variant.\n * @returns The icon name, or `null` if no matching variant exists.\n */\n getIcon(): 'information' | 'check-filled' | 'warning' | 'error' | null {\n const v = this.variant();\n if (v === 'information') {\n return 'information';\n } else if (v === 'success') {\n return 'check-filled';\n } else if (v === 'warning') {\n return 'warning';\n } else if (v === 'error') {\n return 'error';\n } else {\n return null;\n }\n }\n}\n","<div class=\"ecl-modal__header-content\">\n @if(getIcon()) {\n @if(variant() === 'warning') {\n <span class=\"ecl-modal__icon-background\"></span>\n }\n <ecl-icon [icon]=\"getIcon()\" size=\"l\" class=\"ecl-modal__icon\" [title]=\"variant()\"></ecl-icon>\n }\n <ng-content></ng-content>\n</div>\n<button #closeButton eclButton variant=\"tertiary\" size=\"m\" eclStyle=\"neutral\" isIconOnly class=\"ecl-modal__close\" type=\"button\"\n (click)=\"onCloseClick()\">\n <span eclButtonLabel>{{ 'ecl.common.CLOSE' | translate }}</span>\n <ecl-icon icon=\"close\" size=\"m\"></ecl-icon>\n</button>","import { Component, HostBinding, signal } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { NgTemplateOutlet } from '@angular/common';\n\n/**\n * Body component used inside the ECL Modal.\n *\n * Optionally allows scrollable content inside the modal body.\n */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[eclModalBody]',\n templateUrl: './ecl-modal-body.component.html',\n})\nexport class EclModalBodyComponent extends ECLBaseDirective {\n /**\n * Unique ID for the modal body, used for accessibility (`aria-describedby`).\n * This ID is passed from the parent `EclModalComponent`.\n */\n eclModalBodyId = signal<string>('');\n\n /**\n * Applies CSS classes for the modal body and scrollable modifier if enabled.\n */\n @HostBinding('class')\n get cssClasses(): string {\n return [\n super.getCssClasses('ecl-modal__body'),\n 'ecl-modal__body--has-scroll',\n ].join(' ').trim();\n }\n}\n","<div class=\"ecl-modal__body-scroll\" [id]=\"eclModalBodyId()\">\n <ng-content></ng-content>\n</div>\n<div class=\"ecl-modal__body-overflow\" aria-hidden=\"true\"></div>\n<ng-content select=\"[eclModalBodyFixedContent]\"></ng-content>","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport {\n AfterContentInit,\n Component,\n contentChild,\n contentChildren,\n forwardRef,\n HostBinding,\n HostListener,\n input,\n output,\n signal,\n effect,\n inject,\n DOCUMENT,\n PLATFORM_ID,\n} from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclModalCloseDirective } from './ecl-modal-close.directive';\nimport { EclModalHeaderComponent } from './ecl-modal-header.component';\nimport { EclModalResult } from './models/ecl-modal-result.model';\nimport { EclModalCloseEvent } from './events';\nimport { EclModalOpenEvent } from './events';\nimport { A11yModule } from '@angular/cdk/a11y';\nimport { uniqueId } from '@eui/core';\nimport { EclModalBodyComponent } from './ecl-modal-body.component';\nimport { isPlatformBrowser } from '@angular/common';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'dialog[eclModal]',\n templateUrl: './ecl-modal.component.html',\n imports: [A11yModule],\n})\n \nexport class EclModalComponent<T = any> extends ECLBaseDirective implements AfterContentInit {\n /**\n * Defines the visual variant of the modal.\n * Possible values: 'information', 'success', 'warning', 'error', or a custom string.\n */\n variant = input<'information' | 'success' | 'warning' | 'error' | string>();\n \n /**\n * Defines the size of the modal.\n * Possible values: 's', 'm', 'l' (default), 'full'.\n */\n size = input<'s' | 'm' | 'l' | 'full' | string>('l');\n \n /**\n * Unique ID for the modal body.\n * Used for accessibility (`aria-describedby` on the modal container).\n */\n eclModalBodyId = `ecl-modal-body-${uniqueId()}`;\n \n /**\n * Controls whether the modal is open.\n */\n isOpen = signal(false);\n \n /**\n * Emits when the modal is closed.\n * Carries an instance of `EclModalCloseEvent`.\n */\n modalClose = output<EclModalCloseEvent<T>>();\n \n /**\n * Emits when the modal is opened.\n * Carries an instance of `EclModalOpenEvent`.\n */\n modalOpen = output<EclModalOpenEvent>();\n \n /**\n * Header component projected into the modal.\n */\n eclModalHeader = contentChild(forwardRef(() => EclModalHeaderComponent));\n \n /**\n * All close directives projected inside the modal.\n */\n eclModalCloseComponents = contentChildren(forwardRef(() => EclModalCloseDirective), { descendants: true });\n \n /**\n * Body component projected into the modal.\n */\n eclModalBody = contentChild(EclModalBodyComponent);\n\n private previousOverflow = null;\n private readonly document = inject<Document>(DOCUMENT);\n private readonly platformId = inject(PLATFORM_ID);\n\n constructor() {\n super();\n effect(() => {\n const header = this.eclModalHeader();\n if (header) {\n header.variant.set(this.variant());\n }\n });\n }\n\n /**\n * Binds the `open` attribute to the modal element.\n * Used by the native `<dialog>` element.\n */\n @HostBinding('attr.open')\n get isModalOpened(): boolean | null {\n return this.isOpen() || null;\n }\n\n /**\n * Binds the `aria-describedby` attribute to the modal element.\n * Connects the dialog with the modal body via its unique ID for accessibility.\n */\n @HostBinding('attr.aria-describedby')\n get hostAriaDescribedBy(): string {\n return this.eclModalBodyId;\n }\n\n /**\n * Applies base and variant CSS classes to the modal element.\n */\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-modal'),\n this.variant() ? `ecl-modal--${this.variant()}` : '',\n `ecl-modal--${this.size()}`,\n ].join(' ').trim();\n }\n\n /**\n * Handles ESC key press to close the modal with `cancel` role.\n */\n @HostListener('document:keydown.escape')\n onEscapeKeydownHandler(): void {\n this.closeModal({ eclModalRole: 'cancel' });\n }\n\n /**\n * Subscribes to close events from header and close directives after content is initialized.\n */\n ngAfterContentInit(): void {\n const header = this.eclModalHeader();\n if (header) {\n header.variant.set(this.variant());\n header.modalClose.subscribe(() => {\n this.closeModal({ eclModalRole: 'cancel' });\n });\n }\n\n this.eclModalCloseComponents()?.forEach((eclModalCloseCmp) => {\n eclModalCloseCmp.modalClose.subscribe(() => {\n this.closeModal({\n eclModalData: eclModalCloseCmp.eclModalResult(),\n eclModalRole: eclModalCloseCmp.eclModalRole(),\n });\n });\n });\n this.eclModalBody().eclModalBodyId.set(this.eclModalBodyId);\n }\n\n /**\n * Opens the modal and emits a `modalOpen` event.\n * If the event is not prevented, the modal will be displayed.\n */\n openModal(): void {\n const event = new EclModalOpenEvent();\n this.modalOpen.emit(event);\n\n if (!event.defaultPrevented) {\n this.isOpen.set(true);\n }\n const header = this.eclModalHeader();\n if (header) {\n setTimeout(() => header.closeButton().el.nativeElement.focus(), 100);\n }\n // To prevent scrolling in main document\n if (isPlatformBrowser(this.platformId)) {\n this.previousOverflow = document.body.style.overflow;\n document.body.style.overflow = 'hidden';\n }\n }\n\n /**\n * Closes the modal and emits a `modalClose` event with optional result data.\n * If the event is not prevented, the modal will be hidden.\n */\n closeModal(result?: EclModalResult<T>): void {\n if (this.isOpen()) {\n const event = new EclModalCloseEvent({\n eclModalData: result?.eclModalData,\n eclModalRole: result?.eclModalRole,\n });\n this.modalClose.emit(event);\n\n if (!event.defaultPrevented) {\n this.isOpen.set(false);\n }\n\n if (isPlatformBrowser(this.platformId)) {\n document.body.style.overflow = this.previousOverflow;\n }\n }\n }\n}\n","<div class=\"ecl-modal__container\">\n <div class=\"ecl-modal__content ecl-container\" cdkTrapFocus cdkTrapFocusAutoCapture>\n <ng-content></ng-content>\n </div>\n</div>\n","import { AfterContentInit, Component, contentChildren, forwardRef, HostBinding } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclButtonComponent } from '@eui/ecl/components/ecl-button';\n\n/**\n * Footer component used within the ECL Modal.\n *\n * Automatically applies styling to buttons projected into the footer.\n */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[eclModalFooter]',\n templateUrl: './ecl-modal-footer.component.html',\n})\nexport class EclModalFooterComponent extends ECLBaseDirective implements AfterContentInit {\n /**\n * Queries all button components projected into the footer.\n */\n buttonComponents = contentChildren(forwardRef(() => EclButtonComponent), { descendants: true });\n\n /**\n * Applies the ECL CSS class for modal footer container.\n */\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-modal__footer')].join(' ').trim();\n }\n\n /**\n * Lifecycle hook that runs after content projection.\n * Applies `ecl-modal__button` class to each projected button component.\n */\n ngAfterContentInit(): void {\n const buttons = this.buttonComponents();\n if (buttons) {\n setTimeout(() => {\n buttons.forEach((btn) => {\n btn.class = 'ecl-modal__button';\n });\n });\n }\n }\n}\n","<div class=\"ecl-modal__footer-content\">\n <ng-content></ng-content>\n</div>\n","import { Directive, HostBinding } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Directive for styling fixed content inside the modal body.\n *\n * Applies the appropriate CSS class to mark the element as fixed inside the modal body.\n */\n@Directive({\n selector: '[eclModalBodyFixedContent]',\n})\nexport class EclModalBodyFixedContentDirective extends ECLBaseDirective {\n /**\n * Applies the `ecl-modal__body-fixed` class to the host element.\n */\n @HostBinding('class.ecl-modal__body-fixed') className = true;\n}\n","import { Directive, HostListener, input } from '@angular/core';\nimport { EclModalComponent } from './ecl-modal.component';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Directive used to trigger opening of a target ECL modal on click.\n */\n@Directive({\n selector: '[eclModalTriggerFor]',\n})\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport class EclModalTriggerDirective<T = any> extends ECLBaseDirective {\n /**\n * Reference to the modal component that should be opened on click.\n */\n eclModalTriggerFor = input<EclModalComponent<T>>();\n\n /**\n * Handles click event and opens the target modal.\n */\n @HostListener('click', ['$event'])\n onClick(evt: MouseEvent): void {\n this.eclModalTriggerFor()?.openModal();\n }\n}\n","import { EclModalComponent } from './ecl-modal.component';\nimport { EclModalHeaderComponent } from './ecl-modal-header.component';\nimport { EclModalFooterComponent } from './ecl-modal-footer.component';\nimport { EclModalBodyComponent } from './ecl-modal-body.component';\nimport { EclModalBodyFixedContentDirective } from './ecl-modal-body-fixed.directive';\nimport { EclModalTriggerDirective } from './ecl-modal-trigger.directive';\nimport { EclModalCloseDirective } from './ecl-modal-close.directive';\n\nexport * from './ecl-modal.component';\nexport * from './ecl-modal-header.component';\nexport * from './ecl-modal-footer.component';\nexport * from './ecl-modal-body.component';\nexport * from './ecl-modal-body-fixed.directive';\nexport * from './ecl-modal-trigger.directive';\nexport * from './ecl-modal-close.directive';\nexport * from './events/index';\nexport * from './models/ecl-modal-result.model';\n\nexport const EUI_ECL_MODAL = [\n EclModalComponent,\n EclModalHeaderComponent,\n EclModalFooterComponent,\n EclModalBodyComponent,\n EclModalBodyFixedContentDirective,\n EclModalTriggerDirective,\n EclModalCloseDirective,\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"eui-ecl-components-ecl-modal.mjs","sources":["../../components/ecl-modal/ecl-modal-close.directive.ts","../../components/ecl-modal/events/ecl-modal-open.event.ts","../../components/ecl-modal/events/ecl-modal-close.event.ts","../../components/ecl-modal/ecl-modal-header.component.ts","../../components/ecl-modal/ecl-modal-header.component.html","../../components/ecl-modal/ecl-modal-body.component.ts","../../components/ecl-modal/ecl-modal-body.component.html","../../components/ecl-modal/ecl-modal.component.ts","../../components/ecl-modal/ecl-modal.component.html","../../components/ecl-modal/ecl-modal-footer.component.ts","../../components/ecl-modal/ecl-modal-footer.component.html","../../components/ecl-modal/ecl-modal-body-fixed.directive.ts","../../components/ecl-modal/ecl-modal-trigger.directive.ts","../../components/ecl-modal/index.ts","../../components/ecl-modal/eui-ecl-components-ecl-modal.ts"],"sourcesContent":["import { Directive, input, output } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Directive that allows an element to close the modal on click.\n *\n * Can emit a result and indicate the role (e.g., confirm, cancel).\n */\n@Directive({\n selector: '[eclModalClose]',\n host: {\n '(click)': 'onClick()',\n },\n})\nexport class EclModalCloseDirective<T> extends ECLBaseDirective {\n /**\n * Optional result value to emit when modal is closed.\n */\n eclModalResult = input<T>(undefined, { alias: 'eclModalClose' });\n \n /**\n * Optional role associated with the modal close action (e.g., confirm, cancel).\n */\n eclModalRole = input<'confirm' | 'cancel' | string>();\n \n /**\n * Event emitted when the element is clicked and the modal should be closed.\n */\n modalClose = output();\n\n /**\n * Handles click events and emits the `modalClose` event.\n */\n onClick(): void {\n this.modalClose.emit(null);\n }\n}\n","import { EclBaseEvent } from '@eui/ecl/core';\nexport class EclModalOpenEvent extends EclBaseEvent {}","import { EclBaseEvent } from '@eui/ecl/core';\nimport { EclModalResult } from '../models/ecl-modal-result.model';\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport class EclModalCloseEvent<T = any> extends EclBaseEvent {\n constructor(public eclModalResult?: EclModalResult<T>) {\n super();\n }\n}","import { Component, output, viewChild, signal } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclModalCloseEvent } from './events';\nimport { EclButtonComponent } from '@eui/ecl/components/ecl-button';\nimport { TranslatePipe } from '@ngx-translate/core';\nimport { EUI_ECL_BUTTON } from '@eui/ecl/components/ecl-button';\nimport { EUI_ECL_ICON } from '@eui/ecl/components/ecl-icon';\n\n/**\n * Header component used within the ECL Modal.\n *\n * Displays an icon depending on the modal variant, user-defined content,\n * and a close button that emits a close event.\n */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[eclModalHeader]',\n templateUrl: './ecl-modal-header.component.html',\n imports: [\n ...EUI_ECL_ICON,\n TranslatePipe,\n ...EUI_ECL_BUTTON,\n ],\n host: {\n '[class]': 'cssClasses',\n },\n})\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport class EclModalHeaderComponent<T = any> extends ECLBaseDirective {\n /**\n * Defines the visual variant of the modal.\n * Determines which icon is shown in the header.\n * Possible values: 'information', 'success', 'warning', 'error', or any custom string.\n */\n variant = signal<'information' | 'success' | 'warning' | 'error' | string | undefined>(undefined);\n \n /**\n * Event emitted when the close button is clicked.\n * Emits an `EclModalCloseEvent` object.\n */\n modalClose = output<EclModalCloseEvent<T>>();\n \n /**\n * Reference to the close button component.\n */\n closeButton = viewChild.required<EclButtonComponent>('closeButton');\n \n /**\n * Applies the ECL CSS class for modal header container.\n */\n get cssClasses(): string {\n return [super.getCssClasses('ecl-modal__header')].join(' ').trim();\n }\n\n /**\n * Handles the click event on the close button.\n * Emits a `modalClose` event with no payload.\n */\n onCloseClick(): void {\n this.modalClose.emit(new EclModalCloseEvent());\n }\n\n /**\n * Returns the name of the icon associated with the current variant.\n * @returns The icon name, or `null` if no matching variant exists.\n */\n getIcon(): 'information' | 'check-filled' | 'warning' | 'error' | null {\n const v = this.variant();\n if (v === 'information') {\n return 'information';\n } else if (v === 'success') {\n return 'check-filled';\n } else if (v === 'warning') {\n return 'warning';\n } else if (v === 'error') {\n return 'error';\n } else {\n return null;\n }\n }\n}\n","<div class=\"ecl-modal__header-content\">\n @if(getIcon()) {\n @if(variant() === 'warning') {\n <span class=\"ecl-modal__icon-background\"></span>\n }\n <ecl-icon [icon]=\"getIcon()\" size=\"l\" class=\"ecl-modal__icon\" [title]=\"variant()\"></ecl-icon>\n }\n <ng-content></ng-content>\n</div>\n<button #closeButton eclButton variant=\"tertiary\" size=\"m\" eclStyle=\"neutral\" isIconOnly class=\"ecl-modal__close\" type=\"button\"\n (click)=\"onCloseClick()\">\n <span eclButtonLabel>{{ 'ecl.common.CLOSE' | translate }}</span>\n <ecl-icon icon=\"close\" size=\"m\"></ecl-icon>\n</button>","import { Component, signal } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Body component used inside the ECL Modal.\n *\n * Optionally allows scrollable content inside the modal body.\n */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[eclModalBody]',\n templateUrl: './ecl-modal-body.component.html',\n host: {\n '[class]': 'cssClasses',\n },\n})\nexport class EclModalBodyComponent extends ECLBaseDirective {\n /**\n * Unique ID for the modal body, used for accessibility (`aria-describedby`).\n * This ID is passed from the parent `EclModalComponent`.\n */\n eclModalBodyId = signal<string>('');\n\n /**\n * Applies CSS classes for the modal body and scrollable modifier if enabled.\n */\n get cssClasses(): string {\n return [\n super.getCssClasses('ecl-modal__body'),\n 'ecl-modal__body--has-scroll',\n ].join(' ').trim();\n }\n}\n","<div class=\"ecl-modal__body-scroll\" [id]=\"eclModalBodyId()\">\n <ng-content></ng-content>\n</div>\n<div class=\"ecl-modal__body-overflow\" aria-hidden=\"true\"></div>\n<ng-content select=\"[eclModalBodyFixedContent]\"></ng-content>","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport {\n AfterContentInit,\n Component,\n contentChild,\n contentChildren,\n forwardRef,\n input,\n output,\n signal,\n inject,\n DOCUMENT,\n PLATFORM_ID,\n} from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclModalCloseDirective } from './ecl-modal-close.directive';\nimport { EclModalHeaderComponent } from './ecl-modal-header.component';\nimport { EclModalResult } from './models/ecl-modal-result.model';\nimport { EclModalCloseEvent } from './events';\nimport { EclModalOpenEvent } from './events';\nimport { A11yModule } from '@angular/cdk/a11y';\nimport { uniqueId } from '@eui/core';\nimport { EclModalBodyComponent } from './ecl-modal-body.component';\nimport { isPlatformBrowser } from '@angular/common';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'dialog[eclModal]',\n templateUrl: './ecl-modal.component.html',\n imports: [A11yModule],\n host: {\n '[attr.open]': 'isModalOpened',\n '[attr.aria-describedby]': 'hostAriaDescribedBy',\n '[class]': 'cssClasses',\n '(document:keydown.escape)': 'onEscapeKeydownHandler()',\n },\n})\n \nexport class EclModalComponent<T = any> extends ECLBaseDirective implements AfterContentInit {\n /**\n * Defines the visual variant of the modal.\n * Possible values: 'information', 'success', 'warning', 'error', or a custom string.\n */\n variant = input<'information' | 'success' | 'warning' | 'error' | string>();\n \n /**\n * Defines the size of the modal.\n * Possible values: 's', 'm', 'l' (default), 'full'.\n */\n size = input<'s' | 'm' | 'l' | 'full' | string>('l');\n \n /**\n * Unique ID for the modal body.\n * Used for accessibility (`aria-describedby` on the modal container).\n */\n eclModalBodyId = `ecl-modal-body-${uniqueId()}`;\n \n /**\n * Controls whether the modal is open.\n */\n isOpen = signal(false);\n \n /**\n * Emits when the modal is closed.\n * Carries an instance of `EclModalCloseEvent`.\n */\n modalClose = output<EclModalCloseEvent<T>>();\n \n /**\n * Emits when the modal is opened.\n * Carries an instance of `EclModalOpenEvent`.\n */\n modalOpen = output<EclModalOpenEvent>();\n \n /**\n * Header component projected into the modal.\n */\n eclModalHeader = contentChild(forwardRef(() => EclModalHeaderComponent));\n \n /**\n * All close directives projected inside the modal.\n */\n eclModalCloseComponents = contentChildren(forwardRef(() => EclModalCloseDirective), { descendants: true });\n \n /**\n * Body component projected into the modal.\n */\n eclModalBody = contentChild(EclModalBodyComponent);\n\n private previousOverflow = '';\n private readonly document = inject<Document>(DOCUMENT);\n private readonly platformId = inject(PLATFORM_ID);\n\n /**\n * Wires the projected header and close directives, and passes the body id to\n * the projected body, once content is initialized. The projected content is\n * static for the modal's lifetime, so a one-time setup is sufficient.\n */\n ngAfterContentInit(): void {\n const header = this.eclModalHeader();\n if (header) {\n header.variant.set(this.variant());\n header.modalClose.subscribe(() => {\n this.closeModal({ eclModalRole: 'cancel' });\n });\n }\n\n // Wire every projected close directive to close the modal with its\n // configured role and result. `modalClose` is an `output()`, so its\n // subscription is cleaned up automatically when this component is destroyed.\n this.eclModalCloseComponents().forEach((closeCmp) => {\n closeCmp.modalClose.subscribe(() => {\n this.closeModal({\n eclModalData: closeCmp.eclModalResult(),\n eclModalRole: closeCmp.eclModalRole(),\n });\n });\n });\n\n // Pass the modal body id to the projected body for aria-describedby wiring.\n this.eclModalBody()?.eclModalBodyId.set(this.eclModalBodyId);\n }\n\n /**\n * Binds the `open` attribute to the modal element.\n * Used by the native `<dialog>` element.\n */\n get isModalOpened(): boolean | null {\n return this.isOpen() || null;\n }\n\n /**\n * Binds the `aria-describedby` attribute to the modal element.\n * Connects the dialog with the modal body via its unique ID for accessibility.\n */\n get hostAriaDescribedBy(): string {\n return this.eclModalBodyId;\n }\n\n /**\n * Applies base and variant CSS classes to the modal element.\n */\n get cssClasses(): string {\n return [super.getCssClasses('ecl-modal'),\n this.variant() ? `ecl-modal--${this.variant()}` : '',\n `ecl-modal--${this.size()}`,\n ].join(' ').trim();\n }\n\n /**\n * Handles ESC key press to close the modal with `cancel` role.\n */\n onEscapeKeydownHandler(): void {\n this.closeModal({ eclModalRole: 'cancel' });\n }\n\n /**\n * Opens the modal and emits a `modalOpen` event.\n * If the event is not prevented, the modal will be displayed.\n */\n openModal(): void {\n // Ignore repeated open calls so the saved overflow value is not overwritten\n // with the already-hidden value while the modal is open.\n if (this.isOpen()) {\n return;\n }\n\n const event = new EclModalOpenEvent();\n this.modalOpen.emit(event);\n\n if (event.defaultPrevented) {\n return;\n }\n\n this.isOpen.set(true);\n\n const header = this.eclModalHeader();\n if (header) {\n setTimeout(() => header.closeButton().el.nativeElement.focus(), 100);\n }\n // To prevent scrolling in main document\n if (isPlatformBrowser(this.platformId)) {\n this.previousOverflow = this.document.body.style.overflow;\n this.document.body.style.overflow = 'hidden';\n }\n }\n\n /**\n * Closes the modal and emits a `modalClose` event with optional result data.\n * If the event is not prevented, the modal will be hidden.\n */\n closeModal(result?: EclModalResult<T>): void {\n if (this.isOpen()) {\n const event = new EclModalCloseEvent({\n eclModalData: result?.eclModalData,\n eclModalRole: result?.eclModalRole,\n });\n this.modalClose.emit(event);\n\n if (!event.defaultPrevented) {\n this.isOpen.set(false);\n }\n\n if (isPlatformBrowser(this.platformId)) {\n this.document.body.style.overflow = this.previousOverflow;\n }\n }\n }\n}\n","<div class=\"ecl-modal__container\">\n <div class=\"ecl-modal__content ecl-container\" cdkTrapFocus cdkTrapFocusAutoCapture>\n <ng-content></ng-content>\n </div>\n</div>\n","import { AfterContentInit, Component, contentChildren, forwardRef } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclButtonComponent } from '@eui/ecl/components/ecl-button';\n\n/**\n * Footer component used within the ECL Modal.\n *\n * Automatically applies styling to buttons projected into the footer.\n */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[eclModalFooter]',\n templateUrl: './ecl-modal-footer.component.html',\n host: {\n '[class]': 'cssClasses',\n },\n})\nexport class EclModalFooterComponent extends ECLBaseDirective implements AfterContentInit {\n /**\n * Queries all button components projected into the footer.\n */\n buttonComponents = contentChildren(forwardRef(() => EclButtonComponent), { descendants: true });\n\n /**\n * Applies the ECL CSS class for modal footer container.\n */\n get cssClasses(): string {\n return [super.getCssClasses('ecl-modal__footer')].join(' ').trim();\n }\n\n /**\n * Lifecycle hook that runs after content projection.\n * Applies `ecl-modal__button` class to each projected button component.\n */\n ngAfterContentInit(): void {\n const buttons = this.buttonComponents();\n if (buttons) {\n setTimeout(() => {\n buttons.forEach((btn) => {\n btn.class = 'ecl-modal__button';\n });\n });\n }\n }\n}\n","<div class=\"ecl-modal__footer-content\">\n <ng-content></ng-content>\n</div>\n","import { Directive } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Directive for styling fixed content inside the modal body.\n *\n * Applies the appropriate CSS class to mark the element as fixed inside the modal body.\n */\n@Directive({\n selector: '[eclModalBodyFixedContent]',\n host: {\n '[class.ecl-modal__body-fixed]': 'className',\n },\n})\nexport class EclModalBodyFixedContentDirective extends ECLBaseDirective {\n /**\n * Applies the `ecl-modal__body-fixed` class to the host element.\n */\n className = true;\n}\n","import { Directive, input } from '@angular/core';\nimport { EclModalComponent } from './ecl-modal.component';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Directive used to trigger opening of a target ECL modal on click.\n */\n@Directive({\n selector: '[eclModalTriggerFor]',\n host: {\n '(click)': 'onClick()',\n },\n})\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport class EclModalTriggerDirective<T = any> extends ECLBaseDirective {\n /**\n * Reference to the modal component that should be opened on click.\n */\n eclModalTriggerFor = input<EclModalComponent<T>>();\n\n /**\n * Handles click event and opens the target modal.\n */\n onClick(): void {\n this.eclModalTriggerFor()?.openModal();\n }\n}\n","import { EclModalComponent } from './ecl-modal.component';\nimport { EclModalHeaderComponent } from './ecl-modal-header.component';\nimport { EclModalFooterComponent } from './ecl-modal-footer.component';\nimport { EclModalBodyComponent } from './ecl-modal-body.component';\nimport { EclModalBodyFixedContentDirective } from './ecl-modal-body-fixed.directive';\nimport { EclModalTriggerDirective } from './ecl-modal-trigger.directive';\nimport { EclModalCloseDirective } from './ecl-modal-close.directive';\n\nexport * from './ecl-modal.component';\nexport * from './ecl-modal-header.component';\nexport * from './ecl-modal-footer.component';\nexport * from './ecl-modal-body.component';\nexport * from './ecl-modal-body-fixed.directive';\nexport * from './ecl-modal-trigger.directive';\nexport * from './ecl-modal-close.directive';\nexport * from './events/index';\nexport * from './models/ecl-modal-result.model';\n\nexport const EUI_ECL_MODAL = [\n EclModalComponent,\n EclModalHeaderComponent,\n EclModalFooterComponent,\n EclModalBodyComponent,\n EclModalBodyFixedContentDirective,\n EclModalTriggerDirective,\n EclModalCloseDirective,\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as _angular_core from '@angular/core';
|
|
2
2
|
import { AfterContentInit } from '@angular/core';
|
|
3
|
-
import { EclBaseEvent, ECLBaseDirective
|
|
3
|
+
import { EclBaseEvent, ECLBaseDirective } from '@eui/ecl/core';
|
|
4
4
|
import { EclButtonComponent } from '@eui/ecl/components/ecl-button';
|
|
5
5
|
|
|
6
6
|
interface EclModalResult<T = any> {
|
|
@@ -80,7 +80,12 @@ declare class EclModalComponent<T = any> extends ECLBaseDirective implements Aft
|
|
|
80
80
|
private previousOverflow;
|
|
81
81
|
private readonly document;
|
|
82
82
|
private readonly platformId;
|
|
83
|
-
|
|
83
|
+
/**
|
|
84
|
+
* Wires the projected header and close directives, and passes the body id to
|
|
85
|
+
* the projected body, once content is initialized. The projected content is
|
|
86
|
+
* static for the modal's lifetime, so a one-time setup is sufficient.
|
|
87
|
+
*/
|
|
88
|
+
ngAfterContentInit(): void;
|
|
84
89
|
/**
|
|
85
90
|
* Binds the `open` attribute to the modal element.
|
|
86
91
|
* Used by the native `<dialog>` element.
|
|
@@ -99,10 +104,6 @@ declare class EclModalComponent<T = any> extends ECLBaseDirective implements Aft
|
|
|
99
104
|
* Handles ESC key press to close the modal with `cancel` role.
|
|
100
105
|
*/
|
|
101
106
|
onEscapeKeydownHandler(): void;
|
|
102
|
-
/**
|
|
103
|
-
* Subscribes to close events from header and close directives after content is initialized.
|
|
104
|
-
*/
|
|
105
|
-
ngAfterContentInit(): void;
|
|
106
107
|
/**
|
|
107
108
|
* Opens the modal and emits a `modalOpen` event.
|
|
108
109
|
* If the event is not prevented, the modal will be displayed.
|
|
@@ -124,7 +125,6 @@ declare class EclModalComponent<T = any> extends ECLBaseDirective implements Aft
|
|
|
124
125
|
* and a close button that emits a close event.
|
|
125
126
|
*/
|
|
126
127
|
declare class EclModalHeaderComponent<T = any> extends ECLBaseDirective {
|
|
127
|
-
eclThemeService: EclThemeService;
|
|
128
128
|
/**
|
|
129
129
|
* Defines the visual variant of the modal.
|
|
130
130
|
* Determines which icon is shown in the header.
|
|
@@ -206,7 +206,7 @@ declare class EclModalTriggerDirective<T = any> extends ECLBaseDirective {
|
|
|
206
206
|
/**
|
|
207
207
|
* Handles click event and opens the target modal.
|
|
208
208
|
*/
|
|
209
|
-
onClick(
|
|
209
|
+
onClick(): void;
|
|
210
210
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<EclModalTriggerDirective<any>, never>;
|
|
211
211
|
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<EclModalTriggerDirective<any>, "[eclModalTriggerFor]", never, { "eclModalTriggerFor": { "alias": "eclModalTriggerFor"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
212
212
|
}
|
|
@@ -232,7 +232,7 @@ declare class EclModalCloseDirective<T> extends ECLBaseDirective {
|
|
|
232
232
|
/**
|
|
233
233
|
* Handles click events and emits the `modalClose` event.
|
|
234
234
|
*/
|
|
235
|
-
onClick(
|
|
235
|
+
onClick(): void;
|
|
236
236
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<EclModalCloseDirective<any>, never>;
|
|
237
237
|
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<EclModalCloseDirective<any>, "[eclModalClose]", never, { "eclModalResult": { "alias": "eclModalClose"; "required": false; "isSignal": true; }; "eclModalRole": { "alias": "eclModalRole"; "required": false; "isSignal": true; }; }, { "modalClose": "modalClose"; }, never, never, true, never>;
|
|
238
238
|
}
|