@skyux/modals 12.3.0 → 12.5.0
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/fesm2022/skyux-modals-testing.mjs +11 -11
- package/fesm2022/skyux-modals.mjs +62 -62
- package/fesm2022/skyux-modals.mjs.map +1 -1
- package/package.json +11 -11
|
@@ -418,11 +418,11 @@ function provideConfirmTesting() {
|
|
|
418
418
|
* Configures the `SkyConfirmTestingController` as the backend for the `SkyConfirmService`.
|
|
419
419
|
*/
|
|
420
420
|
class SkyConfirmTestingModule {
|
|
421
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
422
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.
|
|
423
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.
|
|
421
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkyConfirmTestingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
422
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.7", ngImport: i0, type: SkyConfirmTestingModule }); }
|
|
423
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkyConfirmTestingModule, providers: [provideConfirmTesting()] }); }
|
|
424
424
|
}
|
|
425
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
425
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkyConfirmTestingModule, decorators: [{
|
|
426
426
|
type: NgModule,
|
|
427
427
|
args: [{
|
|
428
428
|
providers: [provideConfirmTesting()],
|
|
@@ -486,10 +486,10 @@ class SkyModalTestingService extends SkyModalTestingController {
|
|
|
486
486
|
#getTopmostModal() {
|
|
487
487
|
return Array.from(this.#modals.values()).pop();
|
|
488
488
|
}
|
|
489
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
490
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.
|
|
489
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkyModalTestingService, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
490
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkyModalTestingService }); }
|
|
491
491
|
}
|
|
492
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
492
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkyModalTestingService, decorators: [{
|
|
493
493
|
type: Injectable
|
|
494
494
|
}] });
|
|
495
495
|
|
|
@@ -514,11 +514,11 @@ function provideModalTesting() {
|
|
|
514
514
|
* Configures the `SkyModalTestingController` as the implementation for the `SkyModalService`.
|
|
515
515
|
*/
|
|
516
516
|
class SkyModalTestingModule {
|
|
517
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
518
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.
|
|
519
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.
|
|
517
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkyModalTestingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
518
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.7", ngImport: i0, type: SkyModalTestingModule }); }
|
|
519
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkyModalTestingModule, providers: [provideModalTesting()] }); }
|
|
520
520
|
}
|
|
521
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
521
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkyModalTestingModule, decorators: [{
|
|
522
522
|
type: NgModule,
|
|
523
523
|
args: [{
|
|
524
524
|
providers: [provideModalTesting()],
|
|
@@ -70,11 +70,11 @@ var SkyConfirmType;
|
|
|
70
70
|
* @internal
|
|
71
71
|
*/
|
|
72
72
|
class SkyConfirmModule {
|
|
73
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
74
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.
|
|
75
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.
|
|
73
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkyConfirmModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
74
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.7", ngImport: i0, type: SkyConfirmModule }); }
|
|
75
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkyConfirmModule }); }
|
|
76
76
|
}
|
|
77
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
77
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkyConfirmModule, decorators: [{
|
|
78
78
|
type: NgModule,
|
|
79
79
|
args: [{}]
|
|
80
80
|
}] });
|
|
@@ -88,10 +88,10 @@ const SKY_CONFIRM_CONFIG = new InjectionToken('SkyConfirmConfig');
|
|
|
88
88
|
* Specifies content to display in the modal's body.
|
|
89
89
|
*/
|
|
90
90
|
class SkyModalContentComponent {
|
|
91
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
92
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.
|
|
91
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkyModalContentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
92
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.7", type: SkyModalContentComponent, isStandalone: true, selector: "sky-modal-content", hostDirectives: [{ directive: i1.SkyResponsiveHostDirective }], ngImport: i0, template: "<ng-content />\n", styles: ["sky-modal-content{display:block;min-height:100%}.sky-theme-modern sky-modal-content{padding:10px 30px 30px}\n"], encapsulation: i0.ViewEncapsulation.None }); }
|
|
93
93
|
}
|
|
94
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
94
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkyModalContentComponent, decorators: [{
|
|
95
95
|
type: Component,
|
|
96
96
|
args: [{ hostDirectives: [SkyResponsiveHostDirective], standalone: true, selector: 'sky-modal-content', encapsulation: ViewEncapsulation.None, template: "<ng-content />\n", styles: ["sky-modal-content{display:block;min-height:100%}.sky-theme-modern sky-modal-content{padding:10px 30px 30px}\n"] }]
|
|
97
97
|
}] });
|
|
@@ -288,11 +288,11 @@ SkyLibResourcesService.addResources(RESOURCES);
|
|
|
288
288
|
* Import into any component library module that needs to use resource strings.
|
|
289
289
|
*/
|
|
290
290
|
class SkyModalsResourcesModule {
|
|
291
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
292
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.
|
|
293
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.
|
|
291
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkyModalsResourcesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
292
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.7", ngImport: i0, type: SkyModalsResourcesModule, exports: [SkyI18nModule] }); }
|
|
293
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkyModalsResourcesModule, imports: [SkyI18nModule] }); }
|
|
294
294
|
}
|
|
295
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
295
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkyModalsResourcesModule, decorators: [{
|
|
296
296
|
type: NgModule,
|
|
297
297
|
args: [{
|
|
298
298
|
exports: [SkyI18nModule],
|
|
@@ -361,10 +361,10 @@ class SkyModalComponentAdapterService {
|
|
|
361
361
|
fullPageModalEl.style.height = fullPageModalHeight;
|
|
362
362
|
fullPageModalEl.style.maxHeight = fullPageModalHeight;
|
|
363
363
|
}
|
|
364
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
365
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.
|
|
364
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkyModalComponentAdapterService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
365
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkyModalComponentAdapterService }); }
|
|
366
366
|
}
|
|
367
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
367
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkyModalComponentAdapterService, decorators: [{
|
|
368
368
|
type: Injectable
|
|
369
369
|
}] });
|
|
370
370
|
|
|
@@ -375,10 +375,10 @@ class SkyModalConfiguration {
|
|
|
375
375
|
constructor() {
|
|
376
376
|
this.size = 'medium';
|
|
377
377
|
}
|
|
378
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
379
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.
|
|
378
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkyModalConfiguration, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
379
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkyModalConfiguration }); }
|
|
380
380
|
}
|
|
381
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
381
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkyModalConfiguration, decorators: [{
|
|
382
382
|
type: Injectable
|
|
383
383
|
}], ctorParameters: () => [] });
|
|
384
384
|
|
|
@@ -393,10 +393,10 @@ class SkyModalErrorsService {
|
|
|
393
393
|
updateErrors(value) {
|
|
394
394
|
this.#formErrors.next(value);
|
|
395
395
|
}
|
|
396
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
397
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.
|
|
396
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkyModalErrorsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
397
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkyModalErrorsService }); }
|
|
398
398
|
}
|
|
399
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
399
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkyModalErrorsService, decorators: [{
|
|
400
400
|
type: Injectable
|
|
401
401
|
}], ctorParameters: () => [] });
|
|
402
402
|
|
|
@@ -404,10 +404,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImpor
|
|
|
404
404
|
* Specifies a header for the modal.
|
|
405
405
|
*/
|
|
406
406
|
class SkyModalHeaderComponent {
|
|
407
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
408
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.
|
|
407
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkyModalHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
408
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.7", type: SkyModalHeaderComponent, isStandalone: true, selector: "sky-modal-header", ngImport: i0, template: "<h2\n class=\"sky-modal-heading sky-font-emphasized\"\n skyTrim\n [skyThemeClass]=\"{\n 'sky-font-heading-4': 'default',\n 'sky-font-display-3': 'modern'\n }\"\n>\n <ng-content />\n</h2>\n<span class=\"sky-control-help-container\" skyTrim\n ><ng-content select=\".sky-control-help\"></ng-content\n></span>\n", styles: ["h2{margin:0;line-height:1.2;display:inline}:host-context(.sky-theme-modern.sky-theme-mode-dark) h2{color:#fbfcfe}.sky-theme-modern.sky-theme-mode-dark h2{color:#fbfcfe}\n"], dependencies: [{ kind: "ngmodule", type: SkyThemeModule }, { kind: "directive", type: i1$1.λ2, selector: "[skyThemeClass]", inputs: ["class", "skyThemeClass"] }, { kind: "ngmodule", type: SkyTrimModule }, { kind: "directive", type: i1.λ4, selector: "[skyTrim]" }] }); }
|
|
409
409
|
}
|
|
410
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
410
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkyModalHeaderComponent, decorators: [{
|
|
411
411
|
type: Component,
|
|
412
412
|
args: [{ selector: 'sky-modal-header', imports: [SkyThemeModule, SkyTrimModule], template: "<h2\n class=\"sky-modal-heading sky-font-emphasized\"\n skyTrim\n [skyThemeClass]=\"{\n 'sky-font-heading-4': 'default',\n 'sky-font-display-3': 'modern'\n }\"\n>\n <ng-content />\n</h2>\n<span class=\"sky-control-help-container\" skyTrim\n ><ng-content select=\".sky-control-help\"></ng-content\n></span>\n", styles: ["h2{margin:0;line-height:1.2;display:inline}:host-context(.sky-theme-modern.sky-theme-mode-dark) h2{color:#fbfcfe}.sky-theme-modern.sky-theme-mode-dark h2{color:#fbfcfe}\n"] }]
|
|
413
413
|
}] });
|
|
@@ -493,11 +493,11 @@ class SkyModalHostService {
|
|
|
493
493
|
#notifyBackdropZIndex() {
|
|
494
494
|
backdropZIndex.next(_a.backdropZIndex);
|
|
495
495
|
}
|
|
496
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
497
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.
|
|
496
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkyModalHostService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
497
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkyModalHostService, providedIn: 'root' }); }
|
|
498
498
|
}
|
|
499
499
|
_a = SkyModalHostService;
|
|
500
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
500
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkyModalHostService, decorators: [{
|
|
501
501
|
type: Injectable,
|
|
502
502
|
args: [{
|
|
503
503
|
providedIn: 'root',
|
|
@@ -697,14 +697,14 @@ class SkyModalComponent {
|
|
|
697
697
|
viewkeeperEnabled() {
|
|
698
698
|
return this.#componentAdapter.modalContentHasDirectChildViewkeeper(this.#elRef);
|
|
699
699
|
}
|
|
700
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
701
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.
|
|
700
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkyModalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
701
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.7", type: SkyModalComponent, isStandalone: true, selector: "sky-modal", inputs: { formErrors: { classPropertyName: "formErrors", publicName: "formErrors", isSignal: false, isRequired: false, transformFunction: null }, headingText: { classPropertyName: "headingText", publicName: "headingText", isSignal: false, isRequired: false, transformFunction: null }, helpKey: { classPropertyName: "helpKey", publicName: "helpKey", isSignal: false, isRequired: false, transformFunction: null }, helpPopoverContent: { classPropertyName: "helpPopoverContent", publicName: "helpPopoverContent", isSignal: false, isRequired: false, transformFunction: null }, helpPopoverTitle: { classPropertyName: "helpPopoverTitle", publicName: "helpPopoverTitle", isSignal: false, isRequired: false, transformFunction: null }, ariaRole: { classPropertyName: "ariaRole", publicName: "ariaRole", isSignal: false, isRequired: false, transformFunction: null }, tiledBody: { classPropertyName: "tiledBody", publicName: "tiledBody", isSignal: false, isRequired: false, transformFunction: null }, ariaDescribedBy: { classPropertyName: "ariaDescribedBy", publicName: "ariaDescribedBy", isSignal: false, isRequired: false, transformFunction: null }, ariaLabelledBy: { classPropertyName: "ariaLabelledBy", publicName: "ariaLabelledBy", isSignal: false, isRequired: false, transformFunction: null }, layout: { classPropertyName: "layout", publicName: "layout", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "document:keyup": "onDocumentKeyUp($event)", "document:keydown": "onDocumentKeyDown($event)" }, properties: { "class": "this.wrapperClass" } }, providers: [
|
|
702
702
|
SkyModalComponentAdapterService,
|
|
703
703
|
SkyModalErrorsService,
|
|
704
704
|
SkyDockService,
|
|
705
|
-
], viewQueries: [{ propertyName: "modalContentWrapperElement", first: true, predicate: ["modalContentWrapper"], descendants: true, read: ElementRef }], ngImport: i0, template: "<div\n class=\"sky-modal-dialog\"\n aria-modal=\"true\"\n [attr.aria-describedby]=\"ariaDescribedBy || modalContentId.id\"\n [attr.aria-labelledby]=\"ariaLabelledBy || headerId.id\"\n [attr.aria-owns]=\"ariaOwns\"\n [attr.role]=\"ariaRoleOrDefault\"\n (window:resize)=\"windowResize()\"\n>\n <div\n
|
|
705
|
+
], viewQueries: [{ propertyName: "modalContentWrapperElement", first: true, predicate: ["modalContentWrapper"], descendants: true, read: ElementRef }], ngImport: i0, template: "<div\n class=\"sky-modal-dialog\"\n aria-modal=\"true\"\n [attr.aria-describedby]=\"ariaDescribedBy || modalContentId.id\"\n [attr.aria-labelledby]=\"ariaLabelledBy || headerId.id\"\n [attr.aria-owns]=\"ariaOwns\"\n [attr.role]=\"ariaRoleOrDefault\"\n (window:resize)=\"windowResize()\"\n>\n <div\n class=\"sky-modal sky-shadow sky-box sky-elevation-16 sky-modal-{{ size }}\"\n tabindex=\"-1\"\n [ngClass]=\"{\n 'sky-modal-tiled': tiledBody,\n 'sky-modal-viewkeeper': viewkeeperEnabled()\n }\"\n [ngStyle]=\"{\n zIndex: modalZIndex\n }\"\n >\n <div\n class=\"sky-modal-header\"\n [ngStyle]=\"{\n 'box-shadow': scrollShadow?.topShadow\n }\"\n >\n <div\n #headerId=\"skyId\"\n class=\"sky-modal-header-content\"\n skyId\n [ngClass]=\"{\n 'sky-font-heading-2': size === 'full-page'\n }\"\n >\n @if (headingText) {\n <sky-modal-header>\n {{ headingText }}\n @if (helpKey || helpPopoverContent) {\n <sky-help-inline\n class=\"sky-control-help\"\n [helpKey]=\"helpKey\"\n [labelText]=\"headingText\"\n [popoverContent]=\"helpPopoverContent\"\n [popoverTitle]=\"helpPopoverTitle\"\n />\n }\n </sky-modal-header>\n } @else {\n <ng-content select=\"sky-modal-header\" />\n }\n </div>\n <div class=\"sky-modal-header-buttons\">\n @if (legacyHelpKey) {\n <button\n class=\"sky-btn sky-modal-btn-help\"\n name=\"help-button\"\n type=\"button\"\n [attr.aria-label]=\"'skyux_modal_open_help' | skyLibResources\"\n (click)=\"helpButtonClick()\"\n >\n <sky-icon iconName=\"question-circle\" />\n </button>\n }\n\n <button\n type=\"button\"\n class=\"sky-btn sky-modal-btn-close\"\n [attr.aria-label]=\"'skyux_modal_close' | skyLibResources\"\n (click)=\"closeButtonClick()\"\n >\n <sky-icon iconName=\"close\" />\n </button>\n </div>\n </div>\n <div\n #modalContentId=\"skyId\"\n #modalContentWrapper\n class=\"sky-modal-content sky-padding-even-large\"\n role=\"region\"\n tabindex=\"0\"\n skyId\n skyLayoutHost\n [layout]=\"layout()\"\n [attr.aria-labelledby]=\"headerId.id\"\n [skyScrollShadowEnabled]=\"scrollShadowEnabled\"\n (skyScrollShadow)=\"scrollShadowChange($event)\"\n >\n <ng-content select=\"sky-modal-content\" />\n </div>\n <div\n class=\"sky-modal-footer\"\n [ngStyle]=\"{\n 'box-shadow': scrollShadow?.bottomShadow\n }\"\n >\n <ng-content select=\"sky-modal-footer\" />\n </div>\n </div>\n</div>\n", styles: [":host{--sky-viewport-top: 0;--sky-viewport-bottom: 0;--sky-viewport-left: 0;--sky-viewport-right: 0}.sky-modal{border-top:1px solid #cdcfd2;border-bottom:1px solid #cdcfd2;border-left:1px solid #cdcfd2;border-right:1px solid #cdcfd2;position:fixed;width:auto;left:0;right:0;top:20px;margin:10px;display:flex;flex-direction:column;overflow:hidden}.sky-modal:has(.sky-modal-content.sky-layout-host-fit){height:var(--sky-modal-content-max-height, 100%)}.sky-modal:focus{outline:none}.sky-modal-header:has(.sky-modal-header-content:empty){display:none}@media (min-width: 768px){.sky-modal:not(.sky-modal-large){margin:0 auto}.sky-modal-small{width:300px}.sky-modal-small .sky-modal-content,.sky-modal-small .sky-modal-header,.sky-modal-small .sky-modal-footer{max-width:300px}.sky-modal-medium{width:600px}.sky-modal-medium .sky-modal-content,.sky-modal-medium .sky-modal-header,.sky-modal-medium .sky-modal-footer{max-width:600px}}@media (min-width: 920px){.sky-modal-large{margin:0 auto;width:900px}.sky-modal-large .sky-modal-content,.sky-modal-large .sky-modal-header,.sky-modal-large .sky-modal-footer{max-width:900px}}.sky-modal-content{background-color:#fff;--sky-background-color-page-default: #fff}.sky-modal-content:focus{outline-style:dotted;outline-width:thin;outline-offset:-1px}.sky-modal-content.sky-layout-host-fit{flex-grow:1;position:relative}.sky-modal-tiled .sky-modal-content{background-color:#eeeeef;--sky-background-color-page-default: $sky-background-color-neutral-light}.sky-modal-tiled .sky-modal-content ::ng-deep .sky-tile-title{font-family:BLKB Sans,Helvetica Neue,Arial,sans-serif;color:var(--sky-text-color-deemphasized);font-weight:300;font-size:19px}.sky-modal-header{padding:9px 3px 9px 15px;background-color:#fff;display:flex;align-items:baseline;border-bottom:1px solid #e2e3e4}.sky-modal-header-buttons{flex-shrink:.0001}.sky-modal-header-buttons .sky-btn{border:none;color:#686c73;cursor:pointer}.sky-modal-header-buttons .sky-btn:hover{color:#383a3d;transition:color .15s}.sky-modal-header-content{flex-grow:1}.sky-modal-header{flex-shrink:0;z-index:2}.sky-modal-content{overflow-y:auto}.sky-modal-footer{flex-shrink:0;z-index:2}.sky-modal-full-page{width:100%;top:0;margin:0}.sky-modal-full-page .sky-modal-content{flex-grow:1}.sky-modal-content>::ng-deep sky-dock{bottom:-15px;margin-left:-15px;margin-right:-15px;margin-bottom:-15px;padding-top:15px;width:calc(100% + 30px)}:host-context(.sky-theme-modern) .sky-modal-header{border:none;padding:20px 30px}:host-context(.sky-theme-modern) .sky-modal-btn-help,:host-context(.sky-theme-modern) .sky-modal-btn-close{display:none}:host-context(.sky-theme-modern) .sky-modal-content{padding:0}:host-context(.sky-theme-modern) .sky-modal-full-page{width:calc(100% - 60px);margin:30px}:host-context(.sky-theme-modern) .sky-modal-content>::ng-deep sky-dock{bottom:0;margin-left:initial;margin-right:initial;margin-bottom:initial;padding-top:initial;width:100%}:host-context(.sky-theme-modern) .sky-modal-viewkeeper .sky-modal-header{box-shadow:none!important}:host-context(.sky-theme-modern) .sky-modal-viewkeeper .sky-modal-content ::ng-deep sky-modal-content>.sky-viewkeeper-fixed{box-shadow:0 4px 8px -4px #0000004d}:host-context(.sky-theme-modern) .sky-modal-viewkeeper .sky-modal-content ::ng-deep sky-modal-content>.sky-viewkeeper-fixed>sky-toolbar .sky-toolbar-container{background-color:#fff;--sky-background-color-page-default: #fff;padding-left:30px;padding-right:30px}.sky-theme-modern .sky-modal-header{border:none;padding:20px 30px}.sky-theme-modern .sky-modal-btn-help,.sky-theme-modern .sky-modal-btn-close{display:none}.sky-theme-modern .sky-modal-content{padding:0}.sky-theme-modern .sky-modal-full-page{width:calc(100% - 60px);margin:30px}.sky-theme-modern .sky-modal-content>::ng-deep sky-dock{bottom:0;margin-left:initial;margin-right:initial;margin-bottom:initial;padding-top:initial;width:100%}.sky-theme-modern .sky-modal-viewkeeper .sky-modal-header{box-shadow:none!important}.sky-theme-modern .sky-modal-viewkeeper .sky-modal-content ::ng-deep sky-modal-content>.sky-viewkeeper-fixed{box-shadow:0 4px 8px -4px #0000004d}.sky-theme-modern .sky-modal-viewkeeper .sky-modal-content ::ng-deep sky-modal-content>.sky-viewkeeper-fixed>sky-toolbar .sky-toolbar-container{background-color:#fff;--sky-background-color-page-default: #fff;padding-left:30px;padding-right:30px}:host-context(.sky-theme-modern.sky-theme-mode-dark) .sky-modal{border-color:#121212}:host-context(.sky-theme-modern.sky-theme-mode-dark) .sky-modal-header{color:#fbfcfe}:host-context(.sky-theme-modern.sky-theme-mode-dark) .sky-modal-header,:host-context(.sky-theme-modern.sky-theme-mode-dark) .sky-modal-content{background-color:transparent;--sky-background-color-page-default: $sky-theme-modern-mode-dark-background-color-page-default}.sky-theme-modern.sky-theme-mode-dark .sky-modal{border-color:#121212}.sky-theme-modern.sky-theme-mode-dark .sky-modal-header{color:#fbfcfe}.sky-theme-modern.sky-theme-mode-dark .sky-modal-header,.sky-theme-modern.sky-theme-mode-dark .sky-modal-content{background-color:transparent;--sky-background-color-page-default: $sky-theme-modern-mode-dark-background-color-page-default}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: SkyHelpInlineModule }, { kind: "component", type: i2.λ1, selector: "sky-help-inline", inputs: ["ariaControls", "ariaExpanded", "ariaLabel", "helpKey", "labelledBy", "labelText", "popoverContent", "popoverTitle"], outputs: ["actionClick"] }, { kind: "ngmodule", type: SkyIconModule }, { kind: "component", type: i3.λ1, selector: "sky-icon", inputs: ["icon", "iconName", "iconType", "size", "fixedWidth", "variant", "iconSize"] }, { kind: "ngmodule", type: SkyIdModule }, { kind: "directive", type: i1.λ2, selector: "[skyId]", exportAs: ["skyId"] }, { kind: "component", type: SkyModalHeaderComponent, selector: "sky-modal-header" }, { kind: "directive", type: SkyScrollShadowDirective, selector: "[skyScrollShadow]", inputs: ["skyScrollShadowEnabled"], outputs: ["skyScrollShadow"] }, { kind: "ngmodule", type: SkyModalsResourcesModule }, { kind: "pipe", type: i5.SkyLibResourcesPipe, name: "skyLibResources" }, { kind: "directive", type: SkyLayoutHostDirective, selector: "[skyLayoutHost]", inputs: ["layout"] }] }); }
|
|
706
706
|
}
|
|
707
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
707
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkyModalComponent, decorators: [{
|
|
708
708
|
type: Component,
|
|
709
709
|
args: [{ selector: 'sky-modal', providers: [
|
|
710
710
|
SkyModalComponentAdapterService,
|
|
@@ -719,7 +719,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImpor
|
|
|
719
719
|
SkyScrollShadowDirective,
|
|
720
720
|
SkyModalsResourcesModule,
|
|
721
721
|
SkyLayoutHostDirective,
|
|
722
|
-
], template: "<div\n class=\"sky-modal-dialog\"\n aria-modal=\"true\"\n [attr.aria-describedby]=\"ariaDescribedBy || modalContentId.id\"\n [attr.aria-labelledby]=\"ariaLabelledBy || headerId.id\"\n [attr.aria-owns]=\"ariaOwns\"\n [attr.role]=\"ariaRoleOrDefault\"\n (window:resize)=\"windowResize()\"\n>\n <div\n
|
|
722
|
+
], template: "<div\n class=\"sky-modal-dialog\"\n aria-modal=\"true\"\n [attr.aria-describedby]=\"ariaDescribedBy || modalContentId.id\"\n [attr.aria-labelledby]=\"ariaLabelledBy || headerId.id\"\n [attr.aria-owns]=\"ariaOwns\"\n [attr.role]=\"ariaRoleOrDefault\"\n (window:resize)=\"windowResize()\"\n>\n <div\n class=\"sky-modal sky-shadow sky-box sky-elevation-16 sky-modal-{{ size }}\"\n tabindex=\"-1\"\n [ngClass]=\"{\n 'sky-modal-tiled': tiledBody,\n 'sky-modal-viewkeeper': viewkeeperEnabled()\n }\"\n [ngStyle]=\"{\n zIndex: modalZIndex\n }\"\n >\n <div\n class=\"sky-modal-header\"\n [ngStyle]=\"{\n 'box-shadow': scrollShadow?.topShadow\n }\"\n >\n <div\n #headerId=\"skyId\"\n class=\"sky-modal-header-content\"\n skyId\n [ngClass]=\"{\n 'sky-font-heading-2': size === 'full-page'\n }\"\n >\n @if (headingText) {\n <sky-modal-header>\n {{ headingText }}\n @if (helpKey || helpPopoverContent) {\n <sky-help-inline\n class=\"sky-control-help\"\n [helpKey]=\"helpKey\"\n [labelText]=\"headingText\"\n [popoverContent]=\"helpPopoverContent\"\n [popoverTitle]=\"helpPopoverTitle\"\n />\n }\n </sky-modal-header>\n } @else {\n <ng-content select=\"sky-modal-header\" />\n }\n </div>\n <div class=\"sky-modal-header-buttons\">\n @if (legacyHelpKey) {\n <button\n class=\"sky-btn sky-modal-btn-help\"\n name=\"help-button\"\n type=\"button\"\n [attr.aria-label]=\"'skyux_modal_open_help' | skyLibResources\"\n (click)=\"helpButtonClick()\"\n >\n <sky-icon iconName=\"question-circle\" />\n </button>\n }\n\n <button\n type=\"button\"\n class=\"sky-btn sky-modal-btn-close\"\n [attr.aria-label]=\"'skyux_modal_close' | skyLibResources\"\n (click)=\"closeButtonClick()\"\n >\n <sky-icon iconName=\"close\" />\n </button>\n </div>\n </div>\n <div\n #modalContentId=\"skyId\"\n #modalContentWrapper\n class=\"sky-modal-content sky-padding-even-large\"\n role=\"region\"\n tabindex=\"0\"\n skyId\n skyLayoutHost\n [layout]=\"layout()\"\n [attr.aria-labelledby]=\"headerId.id\"\n [skyScrollShadowEnabled]=\"scrollShadowEnabled\"\n (skyScrollShadow)=\"scrollShadowChange($event)\"\n >\n <ng-content select=\"sky-modal-content\" />\n </div>\n <div\n class=\"sky-modal-footer\"\n [ngStyle]=\"{\n 'box-shadow': scrollShadow?.bottomShadow\n }\"\n >\n <ng-content select=\"sky-modal-footer\" />\n </div>\n </div>\n</div>\n", styles: [":host{--sky-viewport-top: 0;--sky-viewport-bottom: 0;--sky-viewport-left: 0;--sky-viewport-right: 0}.sky-modal{border-top:1px solid #cdcfd2;border-bottom:1px solid #cdcfd2;border-left:1px solid #cdcfd2;border-right:1px solid #cdcfd2;position:fixed;width:auto;left:0;right:0;top:20px;margin:10px;display:flex;flex-direction:column;overflow:hidden}.sky-modal:has(.sky-modal-content.sky-layout-host-fit){height:var(--sky-modal-content-max-height, 100%)}.sky-modal:focus{outline:none}.sky-modal-header:has(.sky-modal-header-content:empty){display:none}@media (min-width: 768px){.sky-modal:not(.sky-modal-large){margin:0 auto}.sky-modal-small{width:300px}.sky-modal-small .sky-modal-content,.sky-modal-small .sky-modal-header,.sky-modal-small .sky-modal-footer{max-width:300px}.sky-modal-medium{width:600px}.sky-modal-medium .sky-modal-content,.sky-modal-medium .sky-modal-header,.sky-modal-medium .sky-modal-footer{max-width:600px}}@media (min-width: 920px){.sky-modal-large{margin:0 auto;width:900px}.sky-modal-large .sky-modal-content,.sky-modal-large .sky-modal-header,.sky-modal-large .sky-modal-footer{max-width:900px}}.sky-modal-content{background-color:#fff;--sky-background-color-page-default: #fff}.sky-modal-content:focus{outline-style:dotted;outline-width:thin;outline-offset:-1px}.sky-modal-content.sky-layout-host-fit{flex-grow:1;position:relative}.sky-modal-tiled .sky-modal-content{background-color:#eeeeef;--sky-background-color-page-default: $sky-background-color-neutral-light}.sky-modal-tiled .sky-modal-content ::ng-deep .sky-tile-title{font-family:BLKB Sans,Helvetica Neue,Arial,sans-serif;color:var(--sky-text-color-deemphasized);font-weight:300;font-size:19px}.sky-modal-header{padding:9px 3px 9px 15px;background-color:#fff;display:flex;align-items:baseline;border-bottom:1px solid #e2e3e4}.sky-modal-header-buttons{flex-shrink:.0001}.sky-modal-header-buttons .sky-btn{border:none;color:#686c73;cursor:pointer}.sky-modal-header-buttons .sky-btn:hover{color:#383a3d;transition:color .15s}.sky-modal-header-content{flex-grow:1}.sky-modal-header{flex-shrink:0;z-index:2}.sky-modal-content{overflow-y:auto}.sky-modal-footer{flex-shrink:0;z-index:2}.sky-modal-full-page{width:100%;top:0;margin:0}.sky-modal-full-page .sky-modal-content{flex-grow:1}.sky-modal-content>::ng-deep sky-dock{bottom:-15px;margin-left:-15px;margin-right:-15px;margin-bottom:-15px;padding-top:15px;width:calc(100% + 30px)}:host-context(.sky-theme-modern) .sky-modal-header{border:none;padding:20px 30px}:host-context(.sky-theme-modern) .sky-modal-btn-help,:host-context(.sky-theme-modern) .sky-modal-btn-close{display:none}:host-context(.sky-theme-modern) .sky-modal-content{padding:0}:host-context(.sky-theme-modern) .sky-modal-full-page{width:calc(100% - 60px);margin:30px}:host-context(.sky-theme-modern) .sky-modal-content>::ng-deep sky-dock{bottom:0;margin-left:initial;margin-right:initial;margin-bottom:initial;padding-top:initial;width:100%}:host-context(.sky-theme-modern) .sky-modal-viewkeeper .sky-modal-header{box-shadow:none!important}:host-context(.sky-theme-modern) .sky-modal-viewkeeper .sky-modal-content ::ng-deep sky-modal-content>.sky-viewkeeper-fixed{box-shadow:0 4px 8px -4px #0000004d}:host-context(.sky-theme-modern) .sky-modal-viewkeeper .sky-modal-content ::ng-deep sky-modal-content>.sky-viewkeeper-fixed>sky-toolbar .sky-toolbar-container{background-color:#fff;--sky-background-color-page-default: #fff;padding-left:30px;padding-right:30px}.sky-theme-modern .sky-modal-header{border:none;padding:20px 30px}.sky-theme-modern .sky-modal-btn-help,.sky-theme-modern .sky-modal-btn-close{display:none}.sky-theme-modern .sky-modal-content{padding:0}.sky-theme-modern .sky-modal-full-page{width:calc(100% - 60px);margin:30px}.sky-theme-modern .sky-modal-content>::ng-deep sky-dock{bottom:0;margin-left:initial;margin-right:initial;margin-bottom:initial;padding-top:initial;width:100%}.sky-theme-modern .sky-modal-viewkeeper .sky-modal-header{box-shadow:none!important}.sky-theme-modern .sky-modal-viewkeeper .sky-modal-content ::ng-deep sky-modal-content>.sky-viewkeeper-fixed{box-shadow:0 4px 8px -4px #0000004d}.sky-theme-modern .sky-modal-viewkeeper .sky-modal-content ::ng-deep sky-modal-content>.sky-viewkeeper-fixed>sky-toolbar .sky-toolbar-container{background-color:#fff;--sky-background-color-page-default: #fff;padding-left:30px;padding-right:30px}:host-context(.sky-theme-modern.sky-theme-mode-dark) .sky-modal{border-color:#121212}:host-context(.sky-theme-modern.sky-theme-mode-dark) .sky-modal-header{color:#fbfcfe}:host-context(.sky-theme-modern.sky-theme-mode-dark) .sky-modal-header,:host-context(.sky-theme-modern.sky-theme-mode-dark) .sky-modal-content{background-color:transparent;--sky-background-color-page-default: $sky-theme-modern-mode-dark-background-color-page-default}.sky-theme-modern.sky-theme-mode-dark .sky-modal{border-color:#121212}.sky-theme-modern.sky-theme-mode-dark .sky-modal-header{color:#fbfcfe}.sky-theme-modern.sky-theme-mode-dark .sky-modal-header,.sky-theme-modern.sky-theme-mode-dark .sky-modal-content{background-color:transparent;--sky-background-color-page-default: $sky-theme-modern-mode-dark-background-color-page-default}\n"] }]
|
|
723
723
|
}], ctorParameters: () => [], propDecorators: { wrapperClass: [{
|
|
724
724
|
type: HostBinding,
|
|
725
725
|
args: ['class']
|
|
@@ -870,10 +870,10 @@ class SkyConfirmComponent {
|
|
|
870
870
|
autofocus: config.autofocus || false,
|
|
871
871
|
}));
|
|
872
872
|
}
|
|
873
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
874
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.
|
|
873
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkyConfirmComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
874
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.7", type: SkyConfirmComponent, isStandalone: true, selector: "sky-confirm", ngImport: i0, template: "<div class=\"sky-confirm\" [ngClass]=\"{ 'sky-confirm-type-ok': isOkType }\">\n <sky-modal\n ariaRole=\"alertdialog\"\n [ariaLabelledBy]=\"confirmMessage.id\"\n [ariaDescribedBy]=\"body ? bodyId : undefined\"\n >\n <sky-modal-content class=\"sky-confirm-content\">\n <!--\n The following \"magic comment\" keeps Prettier from adding line breaks\n inside the div and causing leading and trailing whitespace when\n `preserveWhiteSpace` is `true`.\n https://prettier.io/blog/2018/11/07/1.15.0.html#whitespace-sensitive-formatting\n -->\n <!-- display: inline -->\n <div\n #confirmMessage=\"skyId\"\n class=\"sky-confirm-message\"\n skyId\n [ngClass]=\"{\n 'sky-confirm-preserve-white-space': preserveWhiteSpace\n }\"\n [skyThemeClass]=\"{\n 'sky-font-display-4': 'default',\n 'sky-font-heading-1 sky-font-display-3': 'modern'\n }\"\n >{{ message }}</div\n >\n\n @if (body) {\n <!--\n The following \"magic comment\" keeps Prettier from adding line breaks\n inside the div and causing leading and trailing whitespace when\n `preserveWhiteSpace` is `true`.\n https://prettier.io/blog/2018/11/07/1.15.0.html#whitespace-sensitive-formatting\n -->\n <!-- display: inline -->\n <div\n class=\"sky-confirm-body\"\n [id]=\"bodyId\"\n [ngClass]=\"{\n 'sky-confirm-preserve-white-space': preserveWhiteSpace\n }\"\n >{{ body }}</div\n >\n }\n\n <div class=\"sky-confirm-buttons\">\n @for (button of buttons; track button) {\n <button\n type=\"button\"\n class=\"sky-btn\"\n [ngClass]=\"'sky-btn-' + button.styleType\"\n [skyThemeClass]=\"{\n 'sky-margin-inline-sm': 'modern',\n 'sky-margin-inline-compact': 'default'\n }\"\n [attr.autofocus]=\"button.autofocus ? 'autofocus' : null\"\n (click)=\"close(button)\"\n >\n {{ button.text }}\n </button>\n }\n </div>\n </sky-modal-content>\n </sky-modal>\n</div>\n", styles: [".sky-confirm{--sky-confirm-body-margin-top: var(--sky-margin-stacked-sm);--sky-confirm-buttons-margin-top: var(--sky-margin-stacked-xl);--sky-confirm-content-padding: 0;--sky-confirm-message-padding-bottom: 0}:host-context(.sky-theme-modern) .sky-confirm{--sky-confirm-body-margin-top: 0;--sky-confirm-buttons-margin-top: var(--sky-margin-stacked-lg);--sky-confirm-content-padding: var(--sky-margin-stacked-lg) var(--sky-margin-inline-xl);--sky-confirm-message-padding-bottom: var(--sky-margin-stacked-lg)}.sky-theme-modern .sky-confirm{--sky-confirm-body-margin-top: 0;--sky-confirm-buttons-margin-top: var(--sky-margin-stacked-lg);--sky-confirm-content-padding: var(--sky-margin-stacked-lg) var(--sky-margin-inline-xl);--sky-confirm-message-padding-bottom: var(--sky-margin-stacked-lg)}.sky-confirm-content{padding:var(--sky-confirm-content-padding)}.sky-confirm-message{margin-top:var(--sky-margin-stacked-xs);padding-bottom:var(--sky-confirm-message-padding-bottom)}.sky-confirm-body{margin-top:var(--sky-confirm-body-margin-top)}.sky-confirm-buttons{margin-top:var(--sky-confirm-buttons-margin-top)}.sky-confirm-preserve-white-space{white-space:pre-wrap}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: SkyIdModule }, { kind: "directive", type: i1.λ2, selector: "[skyId]", exportAs: ["skyId"] }, { kind: "component", type: SkyModalComponent, selector: "sky-modal", inputs: ["formErrors", "headingText", "helpKey", "helpPopoverContent", "helpPopoverTitle", "ariaRole", "tiledBody", "ariaDescribedBy", "ariaLabelledBy", "layout"] }, { kind: "component", type: SkyModalContentComponent, selector: "sky-modal-content" }, { kind: "ngmodule", type: SkyModalsResourcesModule }, { kind: "ngmodule", type: SkyThemeModule }, { kind: "directive", type: i1$1.λ2, selector: "[skyThemeClass]", inputs: ["class", "skyThemeClass"] }] }); }
|
|
875
875
|
}
|
|
876
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
876
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkyConfirmComponent, decorators: [{
|
|
877
877
|
type: Component,
|
|
878
878
|
args: [{ selector: 'sky-confirm', imports: [
|
|
879
879
|
CommonModule,
|
|
@@ -894,10 +894,10 @@ class SkyModalHostContext {
|
|
|
894
894
|
constructor(args) {
|
|
895
895
|
this.args = args;
|
|
896
896
|
}
|
|
897
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
898
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.
|
|
897
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkyModalHostContext, deps: [{ token: 'SkyModalHostContextArgs' }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
898
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkyModalHostContext }); }
|
|
899
899
|
}
|
|
900
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
900
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkyModalHostContext, decorators: [{
|
|
901
901
|
type: Injectable
|
|
902
902
|
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
903
903
|
type: Inject,
|
|
@@ -1015,10 +1015,10 @@ class SkyModalAdapterService {
|
|
|
1015
1015
|
topModal.nativeElement.previousElementSibling.removeAttribute('aria-hidden');
|
|
1016
1016
|
}
|
|
1017
1017
|
}
|
|
1018
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
1019
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.
|
|
1018
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkyModalAdapterService, deps: [{ token: i1.SkyAppWindowRef }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
1019
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkyModalAdapterService }); }
|
|
1020
1020
|
}
|
|
1021
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
1021
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkyModalAdapterService, decorators: [{
|
|
1022
1022
|
type: Injectable
|
|
1023
1023
|
}], ctorParameters: () => [{ type: i1.SkyAppWindowRef }] });
|
|
1024
1024
|
|
|
@@ -1156,10 +1156,10 @@ class SkyModalHostComponent {
|
|
|
1156
1156
|
instance.close();
|
|
1157
1157
|
}
|
|
1158
1158
|
}
|
|
1159
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
1160
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.
|
|
1159
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkyModalHostComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1160
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.7", type: SkyModalHostComponent, isStandalone: true, selector: "sky-modal-host", viewQueries: [{ propertyName: "target", first: true, predicate: ["target"], descendants: true, read: ViewContainerRef, static: true }], ngImport: i0, template: "<div\n class=\"sky-modal-host-backdrop\"\n [hidden]=\"modalCount() === 0\"\n [ngStyle]=\"{\n zIndex: backdropZIndex()\n }\"\n></div>\n<div #target></div>\n", styles: [".sky-modal-host-backdrop{background-color:#00000080;position:fixed;inset:0}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: RouterModule }, { kind: "ngmodule", type: SkyModalsResourcesModule }], viewProviders: [SkyModalAdapterService] }); }
|
|
1161
1161
|
}
|
|
1162
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
1162
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkyModalHostComponent, decorators: [{
|
|
1163
1163
|
type: Component,
|
|
1164
1164
|
args: [{ selector: 'sky-modal-host', viewProviders: [SkyModalAdapterService], imports: [CommonModule, RouterModule, SkyModalsResourcesModule], template: "<div\n class=\"sky-modal-host-backdrop\"\n [hidden]=\"modalCount() === 0\"\n [ngStyle]=\"{\n zIndex: backdropZIndex()\n }\"\n></div>\n<div #target></div>\n", styles: [".sky-modal-host-backdrop{background-color:#00000080;position:fixed;inset:0}\n"] }]
|
|
1165
1165
|
}], propDecorators: { target: [{
|
|
@@ -1250,10 +1250,10 @@ class SkyModalService {
|
|
|
1250
1250
|
});
|
|
1251
1251
|
return componentRef;
|
|
1252
1252
|
}
|
|
1253
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
1254
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.
|
|
1253
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkyModalService, deps: [{ token: i1.SkyDynamicComponentService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
1254
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkyModalService, providedIn: 'root' }); }
|
|
1255
1255
|
}
|
|
1256
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
1256
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkyModalService, decorators: [{
|
|
1257
1257
|
type: Injectable,
|
|
1258
1258
|
args: [{
|
|
1259
1259
|
providedIn: 'root',
|
|
@@ -1269,10 +1269,10 @@ class SkyModalLegacyService extends SkyModalService {
|
|
|
1269
1269
|
constructor(dynamicComponentSvc) {
|
|
1270
1270
|
super(dynamicComponentSvc);
|
|
1271
1271
|
}
|
|
1272
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
1273
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.
|
|
1272
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkyModalLegacyService, deps: [{ token: i1.SkyDynamicComponentLegacyService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
1273
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkyModalLegacyService, providedIn: 'any' }); }
|
|
1274
1274
|
}
|
|
1275
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
1275
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkyModalLegacyService, decorators: [{
|
|
1276
1276
|
type: Injectable,
|
|
1277
1277
|
args: [{
|
|
1278
1278
|
// Must be 'any' so that the modal component is created in the context of its module's injector.
|
|
@@ -1310,10 +1310,10 @@ class SkyConfirmService {
|
|
|
1310
1310
|
});
|
|
1311
1311
|
return confirmInstance;
|
|
1312
1312
|
}
|
|
1313
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
1314
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.
|
|
1313
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkyConfirmService, deps: [{ token: SkyModalService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
1314
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkyConfirmService, providedIn: 'root' }); }
|
|
1315
1315
|
}
|
|
1316
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
1316
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkyConfirmService, decorators: [{
|
|
1317
1317
|
type: Injectable,
|
|
1318
1318
|
args: [{
|
|
1319
1319
|
providedIn: 'root',
|
|
@@ -1327,10 +1327,10 @@ class SkyModalFooterComponent {
|
|
|
1327
1327
|
constructor() {
|
|
1328
1328
|
this.errorsSvc = inject(SkyModalErrorsService);
|
|
1329
1329
|
}
|
|
1330
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
1331
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.
|
|
1330
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkyModalFooterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1331
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.7", type: SkyModalFooterComponent, isStandalone: true, selector: "sky-modal-footer", hostDirectives: [{ directive: i1.SkyResponsiveHostDirective }], ngImport: i0, template: "<div class=\"sky-modal-footer-container sky-padding-even-large\">\n <div aria-live=\"polite\">\n @if (errorsSvc.formErrors | async; as formErrors) {\n @if (formErrors.length > 0) {\n <div class=\"sky-modal-footer-errors sky-margin-stacked-lg\" tabindex=\"0\">\n @for (formError of formErrors; track formError) {\n <sky-status-indicator\n descriptionType=\"error\"\n indicatorType=\"danger\"\n [ngClass]=\"{\n 'sky-margin-stacked-lg':\n formErrors.indexOf(formError) < formErrors.length - 1,\n 'footer-error': true\n }\"\n >\n {{ formError.message }}\n </sky-status-indicator>\n }\n </div>\n }\n }\n </div>\n <ng-content />\n</div>\n", styles: ["sky-modal-footer{display:block}.sky-modal-footer-container{background-color:#fff;border-top:1px solid #e2e3e4}.sky-modal-footer-container .sky-btn-link:first-child{margin-left:-12px}.sky-modal-footer-container .sky-btn+.sky-btn{margin-left:10px}.sky-modal-footer-container .sky-btn+.sky-btn-link{margin-left:-2px}.sky-modal-footer-container .sky-modal-footer-errors{max-height:100px;overflow-y:auto}.sky-modal-footer-container .sky-modal-footer-errors .footer-error{display:block}.sky-theme-modern .sky-modal-footer-container{border-top:none;padding:20px 30px}.sky-theme-modern .sky-modal-footer-container .sky-btn-link:first-child{margin-left:0}.sky-theme-modern .sky-modal-footer-container .sky-btn+.sky-btn-link{margin-left:10px}.sky-theme-modern-dark .sky-modal-footer-container{background-color:transparent}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: i1$2.AsyncPipe, name: "async" }, { kind: "ngmodule", type: SkyStatusIndicatorModule }, { kind: "component", type: i3$1.λ10, selector: "sky-status-indicator", inputs: ["indicatorType", "descriptionType", "customDescription", "helpPopoverContent", "helpPopoverTitle", "helpKey"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
1332
1332
|
}
|
|
1333
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
1333
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkyModalFooterComponent, decorators: [{
|
|
1334
1334
|
type: Component,
|
|
1335
1335
|
args: [{ hostDirectives: [SkyResponsiveHostDirective], selector: 'sky-modal-footer', encapsulation: ViewEncapsulation.None, imports: [CommonModule, SkyStatusIndicatorModule], template: "<div class=\"sky-modal-footer-container sky-padding-even-large\">\n <div aria-live=\"polite\">\n @if (errorsSvc.formErrors | async; as formErrors) {\n @if (formErrors.length > 0) {\n <div class=\"sky-modal-footer-errors sky-margin-stacked-lg\" tabindex=\"0\">\n @for (formError of formErrors; track formError) {\n <sky-status-indicator\n descriptionType=\"error\"\n indicatorType=\"danger\"\n [ngClass]=\"{\n 'sky-margin-stacked-lg':\n formErrors.indexOf(formError) < formErrors.length - 1,\n 'footer-error': true\n }\"\n >\n {{ formError.message }}\n </sky-status-indicator>\n }\n </div>\n }\n }\n </div>\n <ng-content />\n</div>\n", styles: ["sky-modal-footer{display:block}.sky-modal-footer-container{background-color:#fff;border-top:1px solid #e2e3e4}.sky-modal-footer-container .sky-btn-link:first-child{margin-left:-12px}.sky-modal-footer-container .sky-btn+.sky-btn{margin-left:10px}.sky-modal-footer-container .sky-btn+.sky-btn-link{margin-left:-2px}.sky-modal-footer-container .sky-modal-footer-errors{max-height:100px;overflow-y:auto}.sky-modal-footer-container .sky-modal-footer-errors .footer-error{display:block}.sky-theme-modern .sky-modal-footer-container{border-top:none;padding:20px 30px}.sky-theme-modern .sky-modal-footer-container .sky-btn-link:first-child{margin-left:0}.sky-theme-modern .sky-modal-footer-container .sky-btn+.sky-btn-link{margin-left:10px}.sky-theme-modern-dark .sky-modal-footer-container{background-color:transparent}\n"] }]
|
|
1336
1336
|
}] });
|
|
@@ -1405,10 +1405,10 @@ class SkyModalIsDirtyDirective {
|
|
|
1405
1405
|
handler.closeModal();
|
|
1406
1406
|
}
|
|
1407
1407
|
}
|
|
1408
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
1409
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.
|
|
1408
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkyModalIsDirtyDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
1409
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.7", type: SkyModalIsDirtyDirective, isStandalone: true, selector: "sky-modal[isDirty]", inputs: { isDirty: "isDirty" }, host: { properties: { "attr.data-sky-modal-is-dirty": "this.isDirty" } }, ngImport: i0 }); }
|
|
1410
1410
|
}
|
|
1411
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
1411
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkyModalIsDirtyDirective, decorators: [{
|
|
1412
1412
|
type: Directive,
|
|
1413
1413
|
args: [{
|
|
1414
1414
|
standalone: true,
|
|
@@ -1425,8 +1425,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImpor
|
|
|
1425
1425
|
}] } });
|
|
1426
1426
|
|
|
1427
1427
|
class SkyModalModule {
|
|
1428
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
1429
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.
|
|
1428
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkyModalModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
1429
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.7", ngImport: i0, type: SkyModalModule, imports: [SkyModalComponent,
|
|
1430
1430
|
SkyModalContentComponent,
|
|
1431
1431
|
SkyModalFooterComponent,
|
|
1432
1432
|
SkyModalHeaderComponent,
|
|
@@ -1435,11 +1435,11 @@ class SkyModalModule {
|
|
|
1435
1435
|
SkyModalFooterComponent,
|
|
1436
1436
|
SkyModalHeaderComponent,
|
|
1437
1437
|
SkyModalIsDirtyDirective] }); }
|
|
1438
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.
|
|
1438
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkyModalModule, imports: [SkyModalComponent,
|
|
1439
1439
|
SkyModalFooterComponent,
|
|
1440
1440
|
SkyModalHeaderComponent] }); }
|
|
1441
1441
|
}
|
|
1442
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
1442
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkyModalModule, decorators: [{
|
|
1443
1443
|
type: NgModule,
|
|
1444
1444
|
args: [{
|
|
1445
1445
|
imports: [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skyux-modals.mjs","sources":["../../../../../libs/components/modals/src/lib/modules/confirm/confirm-instance.ts","../../../../../libs/components/modals/src/lib/modules/confirm/confirm-type.ts","../../../../../libs/components/modals/src/lib/modules/confirm/confirm.module.ts","../../../../../libs/components/modals/src/lib/modules/confirm/confirm-config-token.ts","../../../../../libs/components/modals/src/lib/modules/modal/modal-content.component.ts","../../../../../libs/components/modals/src/lib/modules/modal/modal-content.component.html","../../../../../libs/components/modals/src/lib/modules/modal/modal-before-close-handler.ts","../../../../../libs/components/modals/src/lib/modules/modal/modal-close-args.ts","../../../../../libs/components/modals/src/lib/modules/modal/modal-instance.ts","../../../../../libs/components/modals/src/lib/modules/shared/sky-modals-resources.module.ts","../../../../../libs/components/modals/src/lib/modules/modal/modal-component-adapter.service.ts","../../../../../libs/components/modals/src/lib/modules/modal/modal-configuration.ts","../../../../../libs/components/modals/src/lib/modules/modal/modal-errors.service.ts","../../../../../libs/components/modals/src/lib/modules/modal/modal-header.component.ts","../../../../../libs/components/modals/src/lib/modules/modal/modal-header.component.html","../../../../../libs/components/modals/src/lib/modules/modal/modal-host.service.ts","../../../../../libs/components/modals/src/lib/modules/modal/modal.component.ts","../../../../../libs/components/modals/src/lib/modules/modal/modal.component.html","../../../../../libs/components/modals/src/lib/modules/confirm/confirm.component.ts","../../../../../libs/components/modals/src/lib/modules/confirm/confirm.component.html","../../../../../libs/components/modals/src/lib/modules/modal/modal-host-context.ts","../../../../../libs/components/modals/src/lib/modules/modal/modal-adapter.service.ts","../../../../../libs/components/modals/src/lib/modules/modal/modal-host.component.ts","../../../../../libs/components/modals/src/lib/modules/modal/modal-host.component.html","../../../../../libs/components/modals/src/lib/modules/modal/modal.service.ts","../../../../../libs/components/modals/src/lib/modules/confirm/confirm.service.ts","../../../../../libs/components/modals/src/lib/modules/modal/modal-footer.component.ts","../../../../../libs/components/modals/src/lib/modules/modal/modal-footer.component.html","../../../../../libs/components/modals/src/lib/modules/modal/modal-is-dirty.directive.ts","../../../../../libs/components/modals/src/lib/modules/modal/modal.module.ts","../../../../../libs/components/modals/src/skyux-modals.ts"],"sourcesContent":["import { Observable, ReplaySubject } from 'rxjs';\n\nimport { SkyConfirmCloseEventArgs } from './confirm-closed-event-args';\n\nexport class SkyConfirmInstance {\n /**\n * Fires when users select an action to close the dialog. This event\n * returns a `SkyConfirmCloseEventArgs` object with information about the button that\n * users select. It returns the `'cancel'` action when users press the <kbd>Escape</kbd> key.\n */\n public get closed(): Observable<SkyConfirmCloseEventArgs> {\n return this.#closedObs;\n }\n\n readonly #closed = new ReplaySubject<SkyConfirmCloseEventArgs>();\n readonly #closedObs = this.#closed.asObservable();\n\n /**\n * Closes the confirm instance.\n * @param args Specifies an object to emit to subscribers of the `closed` event\n * of the confirm instance.\n */\n public close(args: SkyConfirmCloseEventArgs): void {\n this.#closed.next(args);\n this.#closed.complete();\n }\n}\n","export enum SkyConfirmType {\n /**\n * Allows you to define your own buttons using the `buttons` property of `SkyConfirmConfig`.\n */\n Custom = 0,\n /**\n * Displays one button with an **OK** label and an `'ok'` action.\n */\n OK = 1,\n /**\n * Displays two buttons with **Yes** and **Cancel** labels.\n * @deprecated Use the `Custom` type to follow the guidance that labels\n * should clearly indicate the actions that occur when users select buttons.\n */\n YesCancel = 2,\n /**\n * Displays three buttons with **Yes**, **No**, and **Cancel** labels.\n * @deprecated Use the `Custom` type to follow the guidance that labels\n * should clearly indicate the actions that occur when users select buttons.\n */\n YesNoCancel = 3,\n}\n","import { NgModule } from '@angular/core';\n\n/**\n * @deprecated The `SkyConfirmModule` is no longer needed and can be removed from your application.\n * @internal\n */\n@NgModule({})\nexport class SkyConfirmModule {}\n","import { InjectionToken } from '@angular/core';\n\nimport { SkyConfirmConfig } from './confirm-config';\n\n/**\n * @internal\n */\nexport const SKY_CONFIRM_CONFIG = new InjectionToken<SkyConfirmConfig>(\n 'SkyConfirmConfig',\n);\n","import { Component, ViewEncapsulation } from '@angular/core';\nimport { SkyResponsiveHostDirective } from '@skyux/core';\n\n/**\n * Specifies content to display in the modal's body.\n */\n@Component({\n hostDirectives: [SkyResponsiveHostDirective],\n standalone: true,\n selector: 'sky-modal-content',\n templateUrl: './modal-content.component.html',\n styleUrls: ['./modal-content.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class SkyModalContentComponent {}\n","<ng-content />\n","import { SkyModalCloseArgs } from './modal-close-args';\n\n/**\n * Properties about the modal close action and a method to close the modal.\n */\nexport class SkyModalBeforeCloseHandler {\n /**\n * The object that would be emitted by a modal's `closed` event. This object\n * can be used to determine whether to prompt the user for confirmation, such\n * as when the user closes a modal form after entering data.\n */\n public readonly closeArgs: SkyModalCloseArgs;\n\n /**\n * Function to call to close the modal. Neglecting to call this function\n * effectively cancels the close modal action.\n */\n public readonly closeModal: () => void;\n\n constructor(closeModal: () => void, closeArgs: SkyModalCloseArgs) {\n this.closeArgs = closeArgs;\n this.closeModal = closeModal;\n }\n}\n","/**\n * Contains an object with the data passed from users when\n * a modal is closed and the reason that the modal was closed.\n */\nexport class SkyModalCloseArgs {\n /**\n * The reason the modal was closed.\n * Options include `\"close\"`, `\"save\"`, and `\"cancel\"`.\n */\n public reason: string | undefined;\n /**\n * The data passed from users when the modal is closed.\n */\n public data: any;\n}\n","import { ComponentRef, ElementRef } from '@angular/core';\n\nimport { Observable, Subject } from 'rxjs';\n\nimport { SkyModalAdapterService } from './modal-adapter.service';\nimport { SkyModalBeforeCloseHandler } from './modal-before-close-handler';\nimport { SkyModalCloseArgs } from './modal-close-args';\n\nexport class SkyModalInstance {\n /**\n * An event that the modal instance emits when it is about to close.\n * It emits a `SkyModalBeforeCloseHandler` object with a `closeModal` method\n * that closes the modal. If a subscription exists for this event,\n * the modal does not close until the subscriber calls the `closeModal` method.\n */\n public get beforeClose(): Observable<SkyModalBeforeCloseHandler> {\n return this.#_beforeClose;\n }\n\n /**\n * An event that the modal instance emits when it closes.\n * It emits a `SkyModalCloseArgs` object with a `data` property that includes\n * data passed from users on close or save and a `reason` property that indicates\n * whether the modal was saved or closed without saving.\n * The `reason` property accepts any string value.\n * Common examples include `\"cancel\"`, `\"close\"`, and `\"save\"`.\n */\n public get closed(): Observable<SkyModalCloseArgs> {\n return this.#_closed;\n }\n\n /**\n * An event that the modal instance emits when users click\n * the <i class=\"fa fa-question-circle\" aria-hidden=\"true\"></i> button.\n * If a `helpKey` parameter was specified, the `helpOpened` event broadcasts the `helpKey`.\n * @deprecated\n */\n public get helpOpened(): Observable<string> {\n return this.#_helpOpened;\n }\n\n /**\n * A direct reference to the provided component's class.\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public componentInstance: any;\n\n /**\n * Sets the component adapter for the instance. This is used internally for actions such as scrolling the content.\n * @internal\n */\n public set adapter(value: SkyModalAdapterService) {\n this.#adapter = value;\n }\n\n /**\n * Sets the component ref for the instance. This is used to extract the component instance for the public API and the element ref for internal use.\n * @internal\n */\n public set componentRef(value: ComponentRef<any>) {\n this.componentInstance = value.instance;\n this.#elementRef = value.location;\n }\n\n #_beforeClose = new Subject<SkyModalBeforeCloseHandler>();\n\n #_closed = new Subject<SkyModalCloseArgs>();\n\n /**\n * @deprecated\n */\n #_helpOpened = new Subject<string>();\n\n #adapter: SkyModalAdapterService | undefined;\n #elementRef: ElementRef | undefined;\n\n /**\n * Closes the modal instance.\n * @param result Specifies an object to emit to subscribers of the `closed` event of the\n * modal instance. The `SkyModalInstance` provider can be injected into a component's constructor\n * so that this `close` function can be called from a button in the `sky-modal-footer`.\n * @param reason Specifies the reason for the modal closing, with the default reason of `\"close\"`.\n * @param ignoreBeforeClose Indicates whether to ignore the modal instance's `beforeClose` event.\n */\n public close(\n result?: any,\n reason?: string,\n ignoreBeforeClose?: boolean,\n ): void {\n if (reason === undefined) {\n reason = 'close';\n }\n\n this.#closeModal(reason, result, ignoreBeforeClose);\n }\n\n /**\n * Closes the modal instance with `reason=\"cancel\"`.\n * @param result Specifies an object to emit to subscribers of the `closed` event of the modal\n * instance. The `SkyModalInstance` provider can be injected into a component's constructor so\n * that this cancel function can be called from a button in the `sky-modal-footer`.\n */\n public cancel(result?: any): void {\n this.#closeModal('cancel', result);\n }\n\n /**\n * Closes the modal instance with `reason=\"save\"`.\n * @param result Specifies an object to emit to subscribers of the `closed` event of the modal\n * instance. The `SkyModalInstance` provider can be injected into a component's constructor so\n * that this `save` function can be called from a button in `the sky-modal-footer`.\n */\n public save(result?: any): void {\n this.#closeModal('save', result);\n }\n\n /**\n * Scrolls the modal content area to the top of its scrollable area.\n */\n public scrollContentToTop(): void {\n if (this.#adapter && this.#elementRef) {\n this.#adapter.scrollContentToTop(this.#elementRef);\n }\n }\n\n /**\n * Triggers the `helpOpened` event that broadcasts a `helpKey` parameter to open\n * when users click the <i class=\"fa fa-question-circle\" aria-hidden=\"true\"></i> button.\n * @param helpKey Specifies a string to emit to subscribers of\n * the modal instance's `helpOpened` event. Consumers can inject the `SkyModalInstance` provider\n * into a component's constructor to call the `openHelp` function in the modal template.\n * @deprecated\n */\n public openHelp(helpKey: string): void {\n this.#_helpOpened.next(helpKey);\n }\n\n #closeModal(type: string, result?: any, ignoreBeforeClose = false): void {\n const args = new SkyModalCloseArgs();\n\n args.reason = type;\n args.data = result;\n\n if (this.#_beforeClose.observers.length === 0 || ignoreBeforeClose) {\n this.#notifyClosed(args);\n } else {\n this.#_beforeClose.next(\n new SkyModalBeforeCloseHandler(() => {\n this.#notifyClosed(args);\n }, args),\n );\n }\n }\n\n #notifyClosed(args: SkyModalCloseArgs): void {\n this.#_closed.next(args);\n this.#_closed.complete();\n this.#_beforeClose.complete();\n this.#_helpOpened.complete();\n }\n}\n","/* istanbul ignore file */\n/**\n * NOTICE: DO NOT MODIFY THIS FILE!\n * The contents of this file were automatically generated by\n * the 'ng generate @skyux/i18n:lib-resources-module lib/modules/shared/sky-modals' schematic.\n * To update this file, simply rerun the command.\n */\nimport { NgModule } from '@angular/core';\nimport {\n SkyI18nModule,\n SkyLibResources,\n SkyLibResourcesService,\n} from '@skyux/i18n';\n\nconst RESOURCES: Record<string, SkyLibResources> = {\n 'EN-US': {\n skyux_confirm_dialog_default_ok_text: { message: 'OK' },\n skyux_confirm_dialog_default_yes_text: { message: 'Yes' },\n skyux_confirm_dialog_default_no_text: { message: 'No' },\n skyux_confirm_dialog_default_cancel_text: { message: 'Cancel' },\n skyux_modal_close: { message: 'Close modal' },\n skyux_modal_open_help: { message: 'Open Help' },\n skyux_modal_footer_cancel_button: { message: 'Cancel' },\n skyux_modal_footer_primary_button: { message: 'Save' },\n skyux_modal_dirty_default_message: {\n message: 'Are you sure you want to discard your changes?',\n },\n skyux_modal_dirty_default_discard_changes_text: {\n message: 'Discard changes',\n },\n skyux_modal_dirty_default_keep_working_text: { message: 'Keep working' },\n },\n 'FR-CA': {\n skyux_confirm_dialog_default_ok_text: { message: 'OK' },\n skyux_confirm_dialog_default_yes_text: { message: 'Oui' },\n skyux_confirm_dialog_default_no_text: { message: 'Non' },\n skyux_confirm_dialog_default_cancel_text: { message: 'Annuler' },\n skyux_modal_close: { message: 'Fermer le modal' },\n skyux_modal_open_help: { message: 'Ouvrir l’aide' },\n skyux_modal_footer_cancel_button: { message: 'Annuler' },\n skyux_modal_footer_primary_button: { message: 'Sauvegarder' },\n skyux_modal_dirty_default_message: {\n message: 'Êtes-vous certain de vouloir supprimer ces changements?',\n },\n skyux_modal_dirty_default_discard_changes_text: {\n message: 'Supprimer les changements',\n },\n skyux_modal_dirty_default_keep_working_text: {\n message: 'Continuer à travailler',\n },\n },\n};\n\nSkyLibResourcesService.addResources(RESOURCES);\n\n/**\n * Import into any component library module that needs to use resource strings.\n */\n@NgModule({\n exports: [SkyI18nModule],\n})\nexport class SkyModalsResourcesModule {}\n","import { ElementRef, Injectable } from '@angular/core';\n\n/**\n * @internal\n */\n@Injectable()\nexport class SkyModalComponentAdapterService {\n public handleWindowChange(modalEl: ElementRef): void {\n const boundedHeightEl = modalEl.nativeElement.querySelector('.sky-modal');\n const fullPageModalEl = modalEl.nativeElement.querySelector(\n '.sky-modal-full-page',\n );\n /*\n Set modal height equal to max height of window (accounting for padding above and below modal)\n */\n const newHeight = window.innerHeight - 40;\n\n boundedHeightEl.style.maxHeight = newHeight.toString() + 'px';\n boundedHeightEl.style.setProperty(\n '--sky-modal-content-max-height',\n boundedHeightEl.style.maxHeight,\n );\n if (fullPageModalEl) {\n this.#setFullPageHeight(fullPageModalEl);\n }\n }\n\n public isFocusInFirstItem(\n event: KeyboardEvent,\n list: HTMLElement[],\n ): boolean {\n /* istanbul ignore next */\n /* sanity check */\n const eventTarget = event.target || event.srcElement;\n return list.length > 0 && eventTarget === list[0];\n }\n\n public isFocusInLastItem(event: KeyboardEvent, list: HTMLElement[]): boolean {\n /* istanbul ignore next */\n /* sanity check */\n const eventTarget = event.target || event.srcElement;\n return list.length > 0 && eventTarget === list[list.length - 1];\n }\n\n public isModalFocused(event: KeyboardEvent, modalEl: ElementRef): boolean {\n /* istanbul ignore next */\n /* sanity check */\n const eventTarget = event.target || event.srcElement;\n return (\n modalEl &&\n eventTarget === modalEl.nativeElement.querySelector('.sky-modal-dialog')\n );\n }\n\n public focusLastElement(list: HTMLElement[]): boolean {\n if (list.length > 0) {\n list[list.length - 1].focus();\n return true;\n }\n return false;\n }\n\n public focusFirstElement(list: HTMLElement[]): boolean {\n if (list.length > 0) {\n list[0].focus();\n return true;\n }\n return false;\n }\n\n public modalContentHasDirectChildViewkeeper(\n modalContentEl: ElementRef,\n ): boolean {\n return !!modalContentEl.nativeElement.querySelector(\n 'sky-modal-content > .sky-viewkeeper-fixed',\n );\n }\n\n #setFullPageHeight(fullPageModalEl: HTMLElement): void {\n const windowHeight = window.innerHeight;\n const fullPageModalStyle = getComputedStyle(fullPageModalEl);\n\n const marginTopBottom =\n parseInt(fullPageModalStyle.marginTop, 10) +\n parseInt(fullPageModalStyle.marginBottom, 10);\n\n const fullPageModalHeight = windowHeight - marginTopBottom + 'px';\n\n fullPageModalEl.style.height = fullPageModalHeight;\n fullPageModalEl.style.maxHeight = fullPageModalHeight;\n }\n}\n","import { Injectable } from '@angular/core';\n\n/**\n * @internal\n */\n@Injectable()\nexport class SkyModalConfiguration {\n public fullPage?: boolean;\n public size?: string;\n /**\n * @deprecated\n */\n public ariaDescribedBy?: string;\n /**\n * @deprecated\n */\n public ariaLabelledBy?: string;\n public ariaRole?: string;\n /**\n * @deprecated\n */\n public tiledBody?: boolean;\n /**\n * @deprecated\n */\n public helpKey?: string;\n public wrapperClass?: string;\n\n constructor() {\n this.size = 'medium';\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { BehaviorSubject, Observable } from 'rxjs';\n\nimport { SkyModalError } from './modal-error';\n\n/**\n * @internal\n */\n@Injectable()\nexport class SkyModalErrorsService {\n public formErrors: Observable<SkyModalError[] | undefined>;\n\n #formErrors = new BehaviorSubject<SkyModalError[] | undefined>(undefined);\n\n constructor() {\n this.formErrors = this.#formErrors.asObservable();\n }\n\n public updateErrors(value: SkyModalError[] | undefined): void {\n this.#formErrors.next(value);\n }\n}\n","import { Component } from '@angular/core';\nimport { SkyTrimModule } from '@skyux/core';\nimport { SkyThemeModule } from '@skyux/theme';\n\n/**\n * Specifies a header for the modal.\n */\n@Component({\n selector: 'sky-modal-header',\n templateUrl: './modal-header.component.html',\n styleUrls: ['./modal-header.component.scss'],\n imports: [SkyThemeModule, SkyTrimModule],\n})\nexport class SkyModalHeaderComponent {}\n","<h2\n class=\"sky-modal-heading sky-font-emphasized\"\n skyTrim\n [skyThemeClass]=\"{\n 'sky-font-heading-4': 'default',\n 'sky-font-display-3': 'modern'\n }\"\n>\n <ng-content />\n</h2>\n<span class=\"sky-control-help-container\" skyTrim\n ><ng-content select=\".sky-control-help\"></ng-content\n></span>\n","import { Injectable } from '@angular/core';\n\nimport { BehaviorSubject, Observable, Subject } from 'rxjs';\n\nconst BASE_Z_INDEX = 1040;\nconst modalHosts: SkyModalHostService[] = [];\n\nconst backdropZIndex = new BehaviorSubject<number>(0);\nconst backdropZIndexObs = backdropZIndex.asObservable();\n\nconst openModalCount = new BehaviorSubject<number>(0);\nconst openModalCountObs = openModalCount.asObservable();\n\n/**\n * @internal\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class SkyModalHostService {\n public static get openModalCountChange(): Observable<number> {\n return openModalCountObs;\n }\n\n public static get backdropZIndexChange(): Observable<number> {\n return backdropZIndexObs;\n }\n\n /**\n * @deprecated Subscribe to `openModalCountChange` instead.\n */\n public static get openModalCount(): number {\n return modalHosts.length;\n }\n\n public static get fullPageModalCount(): number {\n const fullPageModals = modalHosts.filter((modal) => modal.fullPage);\n return fullPageModals.length;\n }\n\n /**\n * @deprecated Subscribe to `backdropZIndexChange` instead.\n */\n public static get backdropZIndex(): number {\n return BASE_Z_INDEX + modalHosts.length * 10;\n }\n\n public static get topModal(): SkyModalHostService {\n return modalHosts[modalHosts.length - 1];\n }\n\n public close = new Subject<void>();\n public fullPage = false;\n /**\n * @deprecated\n */\n public openHelp = new Subject<string>();\n public zIndex: number;\n\n constructor() {\n this.zIndex = this.#calculateZIndex();\n modalHosts.push(this);\n this.#notifyBackdropZIndex();\n this.#notifyOpenModalCount();\n }\n\n public getModalZIndex(): number {\n return this.zIndex;\n }\n\n public onClose(): void {\n this.close.next();\n }\n\n /**\n * @deprecated\n */\n public onOpenHelp(helpKey: string): void {\n this.openHelp.next(helpKey);\n }\n\n public destroy(): void {\n modalHosts.splice(modalHosts.indexOf(this), 1);\n this.#notifyBackdropZIndex();\n this.#notifyOpenModalCount();\n }\n\n #calculateZIndex(): number {\n const zIndexArray = modalHosts.map((hostService) => hostService.zIndex);\n if (zIndexArray.length === 0) {\n return BASE_Z_INDEX + 11;\n } else {\n const currentMaxZIndex = Math.max(...zIndexArray);\n return currentMaxZIndex + 10;\n }\n }\n\n #notifyOpenModalCount(): void {\n openModalCount.next(modalHosts.length);\n }\n\n #notifyBackdropZIndex(): void {\n backdropZIndex.next(SkyModalHostService.backdropZIndex);\n }\n}\n","import { CommonModule } from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ElementRef,\n HostBinding,\n HostListener,\n Input,\n OnDestroy,\n OnInit,\n TemplateRef,\n ViewChild,\n inject,\n input,\n} from '@angular/core';\nimport {\n SkyCoreAdapterService,\n SkyDockLocation,\n SkyDockService,\n SkyIdModule,\n SkyLayoutHostDirective,\n SkyLiveAnnouncerService,\n SkyScrollShadowDirective,\n SkyScrollShadowEventArgs,\n} from '@skyux/core';\nimport { SkyHelpInlineModule } from '@skyux/help-inline';\nimport { SkyIconModule } from '@skyux/icon';\nimport { SkyTheme, SkyThemeService } from '@skyux/theme';\n\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { SkyModalsResourcesModule } from '../shared/sky-modals-resources.module';\n\nimport { SkyModalComponentAdapterService } from './modal-component-adapter.service';\nimport { SkyModalConfiguration } from './modal-configuration';\nimport { SkyModalError } from './modal-error';\nimport { SkyModalErrorsService } from './modal-errors.service';\nimport { SkyModalHeaderComponent } from './modal-header.component';\nimport { SkyModalHostService } from './modal-host.service';\n\nconst ARIA_ROLE_DEFAULT = 'dialog';\n\n/**\n * Provides a common look-and-feel for modal content with options to display\n * a common modal header, specify body content, and display a common modal footer\n * and buttons.\n */\n@Component({\n selector: 'sky-modal',\n templateUrl: './modal.component.html',\n styleUrls: ['./modal.component.scss'],\n providers: [\n SkyModalComponentAdapterService,\n SkyModalErrorsService,\n SkyDockService,\n ],\n imports: [\n CommonModule,\n SkyHelpInlineModule,\n SkyIconModule,\n SkyIdModule,\n SkyModalHeaderComponent,\n SkyScrollShadowDirective,\n SkyModalsResourcesModule,\n SkyLayoutHostDirective,\n ],\n})\nexport class SkyModalComponent implements AfterViewInit, OnDestroy, OnInit {\n @HostBinding('class')\n public wrapperClass: string | undefined;\n\n /**\n * A list of form-level errors to display to the user.\n */\n @Input()\n public set formErrors(value: SkyModalError[] | undefined) {\n this.#errorsSvc.updateErrors(value);\n }\n\n /**\n * The text to display as the modal's heading.\n */\n @Input()\n public headingText: string | undefined;\n\n /**\n * A help key that identifies the global help content to display. When specified along with `headingText`, a [help inline](https://developer.blackbaud.com/skyux/components/help-inline) button is\n * added to the modal header. Clicking the button invokes global help as configured by the application. This property only applies when `headingText` is also specified.\n */\n @Input()\n public helpKey: string | undefined;\n\n /**\n * The content of the help popover. When specified along with `headingText`, a [help inline](https://developer.blackbaud.com/skyux/components/help-inline)\n * button is added to the modal header. The help inline button displays a [popover](https://developer.blackbaud.com/skyux/components/popover)\n * when clicked using the specified content and optional title. This property only applies when `headingText` is also specified.\n */\n @Input()\n public helpPopoverContent: string | TemplateRef<unknown> | undefined;\n\n /**\n * The title of the help popover. This property only applies when `helpPopoverContent` is\n * also specified.\n */\n @Input()\n public helpPopoverTitle: string | undefined;\n\n /**\n * Used by the confirm component to set a different role for the modal.\n * @internal\n */\n @Input()\n public set ariaRole(value: string | undefined) {\n this.ariaRoleOrDefault = value || ARIA_ROLE_DEFAULT;\n }\n\n public ariaRoleOrDefault = ARIA_ROLE_DEFAULT;\n\n /**\n * @internal\n * @deprecated\n */\n @Input()\n public tiledBody: boolean | undefined;\n\n /**\n * Used by the confirm component to set descriptive text without using a\n * modal header.\n * @internal\n */\n @Input()\n public set ariaDescribedBy(id: string | undefined) {\n this.#_ariaDescribedBy = id;\n }\n\n public get ariaDescribedBy(): string | undefined {\n return this.#_ariaDescribedBy;\n }\n\n /**\n * Used by the confirm component to set descriptive text without using a\n * modal header.\n * @internal\n */\n @Input()\n public set ariaLabelledBy(id: string | undefined) {\n this.#_ariaLabelledBy = id;\n }\n\n public get ariaLabelledBy(): string | undefined {\n return this.#_ariaLabelledBy;\n }\n\n public readonly layout = input<'none' | 'fit'>('none');\n\n public ariaOwns: string | null = null;\n\n /**\n * @deprecated\n */\n public legacyHelpKey: string | undefined;\n\n public modalState = 'in';\n\n public modalZIndex: number | undefined;\n\n public scrollShadow: SkyScrollShadowEventArgs = {\n bottomShadow: 'none',\n topShadow: 'none',\n };\n\n public size: string;\n\n @ViewChild('modalContentWrapper', { read: ElementRef })\n public modalContentWrapperElement: ElementRef | undefined;\n\n protected scrollShadowEnabled = false;\n\n #ngUnsubscribe = new Subject<void>();\n\n #_ariaDescribedBy: string | undefined;\n #_ariaLabelledBy: string | undefined;\n\n readonly #changeDetector = inject(ChangeDetectorRef);\n readonly #componentAdapter = inject(SkyModalComponentAdapterService);\n readonly #coreAdapter = inject(SkyCoreAdapterService);\n readonly #dockService = inject(SkyDockService, { host: true });\n readonly #elRef = inject(ElementRef);\n readonly #errorsSvc = inject(SkyModalErrorsService);\n readonly #hostService = inject(SkyModalHostService);\n readonly #liveAnnouncerSvc = inject(SkyLiveAnnouncerService);\n\n /**\n * This provider is optional to account for situations where a modal component\n * is implemented without the modal service. For example, when a consumer tests\n * a component that uses the modal component but doesn't launch the modal from\n * the modal service before executing assertions.\n */\n readonly #config =\n inject(SkyModalConfiguration, { optional: true }) ??\n new SkyModalConfiguration();\n readonly #themeSvc = inject(SkyThemeService, { optional: true });\n\n constructor() {\n this.ariaDescribedBy = this.#config.ariaDescribedBy;\n this.ariaLabelledBy = this.#config.ariaLabelledBy;\n this.ariaRole = this.#config.ariaRole;\n this.legacyHelpKey = this.#config.helpKey;\n this.tiledBody = this.#config.tiledBody;\n this.wrapperClass = this.#config.wrapperClass;\n\n this.size = this.#config.fullPage\n ? 'full-page'\n : this.#config.size?.toLowerCase() || 'medium';\n\n this.modalZIndex = this.#hostService.zIndex;\n }\n\n @HostListener('document:keyup', ['$event'])\n public onDocumentKeyUp(event: KeyboardEvent): void {\n /* istanbul ignore else */\n /* sanity check */\n if (SkyModalHostService.openModalCount > 0) {\n const topModal = SkyModalHostService.topModal;\n if (topModal && topModal === this.#hostService) {\n if (event.which === 27) {\n // Escape key up\n event.preventDefault();\n this.closeButtonClick();\n }\n }\n }\n }\n\n @HostListener('document:keydown', ['$event'])\n public onDocumentKeyDown(event: KeyboardEvent): void {\n /* istanbul ignore else */\n /* sanity check */\n if (SkyModalHostService.openModalCount > 0) {\n const topModal = SkyModalHostService.topModal;\n if (topModal && topModal === this.#hostService) {\n if (event.which === 9) {\n // Tab pressed\n let focusChanged = false;\n\n const focusElementList = this.#coreAdapter.getFocusableChildren(\n this.#elRef.nativeElement,\n );\n\n if (\n event.shiftKey &&\n (this.#componentAdapter.isFocusInFirstItem(\n event,\n focusElementList,\n ) ||\n this.#componentAdapter.isModalFocused(event, this.#elRef))\n ) {\n focusChanged =\n this.#componentAdapter.focusLastElement(focusElementList);\n } else if (\n !event.shiftKey &&\n this.#componentAdapter.isFocusInLastItem(event, focusElementList)\n ) {\n focusChanged =\n this.#componentAdapter.focusFirstElement(focusElementList);\n }\n\n if (focusChanged) {\n event.preventDefault();\n event.stopPropagation();\n }\n }\n }\n }\n }\n\n public ngOnInit(): void {\n this.#liveAnnouncerSvc.announcerElementChanged\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((element) => {\n if (element?.id) {\n this.ariaOwns = element.id;\n this.#changeDetector.markForCheck();\n }\n });\n\n if (this.#themeSvc) {\n this.#themeSvc.settingsChange\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((themeSettings) => {\n this.scrollShadowEnabled =\n themeSettings.currentSettings.theme === SkyTheme.presets.modern;\n });\n }\n }\n\n public ngAfterViewInit(): void {\n this.#componentAdapter.handleWindowChange(this.#elRef);\n\n this.#dockService.setDockOptions({\n location: SkyDockLocation.ElementBottom,\n referenceEl: this.modalContentWrapperElement!.nativeElement,\n zIndex: 5,\n });\n }\n\n public ngOnDestroy(): void {\n this.#ngUnsubscribe.next();\n this.#ngUnsubscribe.complete();\n }\n\n /**\n * @deprecated\n */\n public helpButtonClick(): void {\n if (this.legacyHelpKey) {\n this.#hostService.onOpenHelp(this.legacyHelpKey);\n }\n }\n\n public closeButtonClick(): void {\n this.#hostService.onClose();\n }\n\n public windowResize(): void {\n this.#componentAdapter.handleWindowChange(this.#elRef);\n }\n\n public scrollShadowChange(args: SkyScrollShadowEventArgs): void {\n this.scrollShadow = args;\n }\n\n public viewkeeperEnabled(): boolean {\n return this.#componentAdapter.modalContentHasDirectChildViewkeeper(\n this.#elRef,\n );\n }\n}\n","<div\n class=\"sky-modal-dialog\"\n aria-modal=\"true\"\n [attr.aria-describedby]=\"ariaDescribedBy || modalContentId.id\"\n [attr.aria-labelledby]=\"ariaLabelledBy || headerId.id\"\n [attr.aria-owns]=\"ariaOwns\"\n [attr.role]=\"ariaRoleOrDefault\"\n (window:resize)=\"windowResize()\"\n>\n <div\n tabindex=\"-1\"\n class=\"sky-modal sky-shadow sky-box sky-elevation-16 sky-modal-{{ size }}\"\n [ngClass]=\"{\n 'sky-modal-tiled': tiledBody,\n 'sky-modal-viewkeeper': viewkeeperEnabled()\n }\"\n [ngStyle]=\"{\n zIndex: modalZIndex\n }\"\n >\n <div\n class=\"sky-modal-header\"\n [ngStyle]=\"{\n 'box-shadow': scrollShadow?.topShadow\n }\"\n >\n <div\n #headerId=\"skyId\"\n class=\"sky-modal-header-content\"\n skyId\n [ngClass]=\"{\n 'sky-font-heading-2': size === 'full-page'\n }\"\n >\n @if (headingText) {\n <sky-modal-header>\n {{ headingText }}\n @if (helpKey || helpPopoverContent) {\n <sky-help-inline\n class=\"sky-control-help\"\n [helpKey]=\"helpKey\"\n [labelText]=\"headingText\"\n [popoverContent]=\"helpPopoverContent\"\n [popoverTitle]=\"helpPopoverTitle\"\n />\n }\n </sky-modal-header>\n } @else {\n <ng-content select=\"sky-modal-header\" />\n }\n </div>\n <div class=\"sky-modal-header-buttons\">\n @if (legacyHelpKey) {\n <button\n class=\"sky-btn sky-modal-btn-help\"\n name=\"help-button\"\n type=\"button\"\n [attr.aria-label]=\"'skyux_modal_open_help' | skyLibResources\"\n (click)=\"helpButtonClick()\"\n >\n <sky-icon iconName=\"question-circle\" />\n </button>\n }\n\n <button\n type=\"button\"\n class=\"sky-btn sky-modal-btn-close\"\n [attr.aria-label]=\"'skyux_modal_close' | skyLibResources\"\n (click)=\"closeButtonClick()\"\n >\n <sky-icon iconName=\"close\" />\n </button>\n </div>\n </div>\n <div\n #modalContentId=\"skyId\"\n #modalContentWrapper\n class=\"sky-modal-content sky-padding-even-large\"\n role=\"region\"\n tabindex=\"0\"\n skyId\n skyLayoutHost\n [layout]=\"layout()\"\n [attr.aria-labelledby]=\"headerId.id\"\n [skyScrollShadowEnabled]=\"scrollShadowEnabled\"\n (skyScrollShadow)=\"scrollShadowChange($event)\"\n >\n <ng-content select=\"sky-modal-content\" />\n </div>\n <div\n class=\"sky-modal-footer\"\n [ngStyle]=\"{\n 'box-shadow': scrollShadow?.bottomShadow\n }\"\n >\n <ng-content select=\"sky-modal-footer\" />\n </div>\n </div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { Component, OnDestroy, inject } from '@angular/core';\nimport { SkyIdModule, SkyIdService } from '@skyux/core';\nimport { SkyLibResourcesService } from '@skyux/i18n';\nimport { SkyThemeModule } from '@skyux/theme';\n\nimport { Observable, ReplaySubject, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { SkyModalContentComponent } from '../modal/modal-content.component';\nimport { SkyModalInstance } from '../modal/modal-instance';\nimport { SkyModalComponent } from '../modal/modal.component';\nimport { SkyModalsResourcesModule } from '../shared/sky-modals-resources.module';\n\nimport { SkyConfirmButton } from './confirm-button';\nimport { SkyConfirmButtonConfig } from './confirm-button-config';\nimport { SkyConfirmCloseEventArgs } from './confirm-closed-event-args';\nimport { SKY_CONFIRM_CONFIG } from './confirm-config-token';\nimport { SkyConfirmInstance } from './confirm-instance';\nimport { SkyConfirmType } from './confirm-type';\n\n/**\n * @internal\n */\n@Component({\n selector: 'sky-confirm',\n templateUrl: './confirm.component.html',\n styleUrls: ['./confirm.component.scss'],\n imports: [\n CommonModule,\n SkyIdModule,\n SkyModalComponent,\n SkyModalContentComponent,\n SkyModalsResourcesModule,\n SkyThemeModule,\n ],\n})\nexport class SkyConfirmComponent implements OnDestroy {\n protected body: string | undefined;\n protected bodyId: string;\n protected buttons: SkyConfirmButton[] | undefined;\n protected isOkType = false;\n protected message: string;\n protected preserveWhiteSpace = false;\n\n #ngUnsubscribe = new Subject<void>();\n\n readonly #config = inject(SKY_CONFIRM_CONFIG);\n readonly #modalInstance = inject(SkyModalInstance);\n readonly #confirmInstance = inject(SkyConfirmInstance);\n readonly #resourcesSvc = inject(SkyLibResourcesService);\n readonly #idSvc = inject(SkyIdService);\n\n constructor() {\n this.#config.type ??= SkyConfirmType.OK;\n\n if (\n this.#config.type === SkyConfirmType.Custom &&\n this.#config.buttons &&\n this.#config.buttons.length > 0\n ) {\n this.buttons = this.#getCustomButtons(this.#config.buttons);\n } else {\n this.#getPresetButtons()\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((buttons) => {\n this.buttons = buttons;\n });\n }\n\n this.message = this.#config.message;\n this.body = this.#config.body;\n\n // Using the service here instead of the directive due to the confirm\n // component's \"body\" container being conditional and thus a template\n // variable being unavailable at an outer scope\n this.bodyId = this.#idSvc.generateId();\n\n this.preserveWhiteSpace = !!this.#config.preserveWhiteSpace;\n this.isOkType = this.#config.type === SkyConfirmType.OK;\n\n // Closes the modal when requested by the confirm instance.\n this.#confirmInstance.closed.subscribe((args) => {\n this.#modalInstance.close(args);\n });\n\n this.#modalInstance.closed.subscribe((args) => {\n // Close the confirm when the \"escape\" key is pressed (passes 'undefined')\n // since this behavior is handled by the underlying modal component.\n if (args.data === undefined) {\n this.#confirmInstance.close({\n action: 'cancel',\n });\n }\n });\n }\n\n public ngOnDestroy(): void {\n this.#ngUnsubscribe.next();\n this.#ngUnsubscribe.complete();\n }\n\n protected close(button: SkyConfirmButton): void {\n const result: SkyConfirmCloseEventArgs = {\n action: button.action,\n };\n\n this.#confirmInstance.close(result);\n }\n\n #getPresetButtons(): Observable<SkyConfirmButton[]> {\n const emitter = new ReplaySubject<SkyConfirmButton[]>(1);\n\n this.#resourcesSvc\n .getStrings({\n cancel: 'skyux_confirm_dialog_default_cancel_text',\n no: 'skyux_confirm_dialog_default_no_text',\n ok: 'skyux_confirm_dialog_default_ok_text',\n yes: 'skyux_confirm_dialog_default_yes_text',\n })\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((values) => {\n const confirmButtons: SkyConfirmButton[] = [];\n\n switch (this.#config.type) {\n case SkyConfirmType.YesNoCancel:\n case SkyConfirmType.YesCancel:\n confirmButtons.push({\n text: values.yes,\n autofocus: true,\n styleType: 'primary',\n action: 'yes',\n });\n\n if (this.#config.type === SkyConfirmType.YesNoCancel) {\n confirmButtons.push({\n text: values.no,\n styleType: 'default',\n action: 'no',\n });\n }\n\n confirmButtons.push({\n text: values.cancel,\n styleType: 'link',\n action: 'cancel',\n });\n break;\n default:\n confirmButtons.push({\n text: values.ok,\n autofocus: true,\n styleType: 'primary',\n action: 'ok',\n });\n }\n\n emitter.next(confirmButtons);\n });\n\n return emitter.asObservable();\n }\n\n #getCustomButtons(\n buttonConfig: SkyConfirmButtonConfig[],\n ): SkyConfirmButton[] {\n return buttonConfig.map(\n (config) =>\n ({\n text: config.text,\n action: config.action,\n styleType: config.styleType || 'default',\n autofocus: config.autofocus || false,\n }) as SkyConfirmButton,\n );\n }\n}\n","<div class=\"sky-confirm\" [ngClass]=\"{ 'sky-confirm-type-ok': isOkType }\">\n <sky-modal\n ariaRole=\"alertdialog\"\n [ariaLabelledBy]=\"confirmMessage.id\"\n [ariaDescribedBy]=\"body ? bodyId : undefined\"\n >\n <sky-modal-content class=\"sky-confirm-content\">\n <!--\n The following \"magic comment\" keeps Prettier from adding line breaks\n inside the div and causing leading and trailing whitespace when\n `preserveWhiteSpace` is `true`.\n https://prettier.io/blog/2018/11/07/1.15.0.html#whitespace-sensitive-formatting\n -->\n <!-- display: inline -->\n <div\n #confirmMessage=\"skyId\"\n class=\"sky-confirm-message\"\n skyId\n [ngClass]=\"{\n 'sky-confirm-preserve-white-space': preserveWhiteSpace\n }\"\n [skyThemeClass]=\"{\n 'sky-font-display-4': 'default',\n 'sky-font-heading-1 sky-font-display-3': 'modern'\n }\"\n >{{ message }}</div\n >\n\n @if (body) {\n <!--\n The following \"magic comment\" keeps Prettier from adding line breaks\n inside the div and causing leading and trailing whitespace when\n `preserveWhiteSpace` is `true`.\n https://prettier.io/blog/2018/11/07/1.15.0.html#whitespace-sensitive-formatting\n -->\n <!-- display: inline -->\n <div\n class=\"sky-confirm-body\"\n [id]=\"bodyId\"\n [ngClass]=\"{\n 'sky-confirm-preserve-white-space': preserveWhiteSpace\n }\"\n >{{ body }}</div\n >\n }\n\n <div class=\"sky-confirm-buttons\">\n @for (button of buttons; track button) {\n <button\n type=\"button\"\n class=\"sky-btn\"\n [ngClass]=\"'sky-btn-' + button.styleType\"\n [skyThemeClass]=\"{\n 'sky-margin-inline-sm': 'modern',\n 'sky-margin-inline-compact': 'default'\n }\"\n [attr.autofocus]=\"button.autofocus ? 'autofocus' : null\"\n (click)=\"close(button)\"\n >\n {{ button.text }}\n </button>\n }\n </div>\n </sky-modal-content>\n </sky-modal>\n</div>\n","import { Inject, Injectable } from '@angular/core';\n\nimport { SkyModalHostContextArgs } from './modal-host-context-args';\n\n/**\n * Provided by the modal service to give the modal host\n * component additional context and features.\n * @internal\n */\n@Injectable()\nexport class SkyModalHostContext {\n constructor(\n @Inject('SkyModalHostContextArgs') public args: SkyModalHostContextArgs,\n ) {}\n}\n","import { ElementRef, Injectable, inject } from '@angular/core';\nimport { SkyAppWindowRef, SkyCoreAdapterService } from '@skyux/core';\n\n/**\n * @internal\n */\n@Injectable()\nexport class SkyModalAdapterService {\n private static readonly MODAL_BODY_FULL_CLASS = 'sky-modal-body-full-page';\n private static readonly MODAL_BODY_CLASS = 'sky-modal-body-open';\n\n #docRef: any;\n #bodyEl: HTMLElement;\n\n #coreAdapter = inject(SkyCoreAdapterService);\n #windowRef: SkyAppWindowRef;\n #hostSiblingAriaHiddenCache = new Map<Element, string | null>();\n\n constructor(windowRef: SkyAppWindowRef) {\n this.#windowRef = windowRef;\n this.#docRef = this.#windowRef.nativeWindow.document;\n this.#bodyEl = this.#windowRef.nativeWindow.document.body;\n }\n\n public toggleFullPageModalClass(isAddFull: boolean): void {\n if (isAddFull) {\n this.#addClassToBody(SkyModalAdapterService.MODAL_BODY_FULL_CLASS);\n } else {\n this.#removeClassFromBody(SkyModalAdapterService.MODAL_BODY_FULL_CLASS);\n }\n }\n\n public setPageScroll(isAdd: boolean): void {\n if (isAdd) {\n this.#addClassToBody(SkyModalAdapterService.MODAL_BODY_CLASS);\n } else {\n this.#removeClassFromBody(SkyModalAdapterService.MODAL_BODY_CLASS);\n }\n }\n\n public getModalOpener(): HTMLElement {\n return this.#docRef.activeElement;\n }\n\n #addClassToBody(className: string): void {\n this.#bodyEl.classList.add(className);\n }\n\n #removeClassFromBody(className: string): void {\n this.#bodyEl.classList.remove(className);\n }\n\n public scrollContentToTop(element: ElementRef): void {\n element.nativeElement.querySelector('.sky-modal-content').scrollTop = 0;\n }\n\n /**\n * Hides siblings of modal-host from screen readers\n * @param hostElRef reference to modal-host element\n */\n public hideHostSiblingsFromScreenReaders(hostElRef: ElementRef): void {\n const hostElement = hostElRef.nativeElement;\n const hostSiblings = hostElement.parentElement?.children;\n\n if (hostSiblings) {\n for (const element of hostSiblings) {\n if (element.contains(document.activeElement)) {\n document.body.focus();\n }\n if (\n element !== hostElement &&\n !element.hasAttribute('aria-live') &&\n element.nodeName.toLowerCase() !== 'script' &&\n element.nodeName.toLowerCase() !== 'style'\n ) {\n // preserve previous aria-hidden status of elements outside of modal host\n this.#hostSiblingAriaHiddenCache.set(\n element,\n element.getAttribute('aria-hidden'),\n );\n element.setAttribute('aria-hidden', 'true');\n }\n }\n }\n }\n\n public focusFirstElement(modalEl: ElementRef): void {\n /* istanbul ignore else */\n /* handle the case where somehow there is a focused element already in the modal */\n if (\n !(\n document.activeElement &&\n modalEl.nativeElement.contains(document.activeElement)\n )\n ) {\n const currentScrollX = window.pageXOffset;\n const currentScrollY = window.pageYOffset;\n\n const inputWithAutofocus =\n modalEl.nativeElement.querySelector('[autofocus]');\n\n if (inputWithAutofocus) {\n inputWithAutofocus.focus();\n } else {\n this.#coreAdapter.getFocusableChildrenAndApplyFocus(\n modalEl,\n '.sky-modal-content',\n true,\n );\n }\n window.scrollTo(currentScrollX, currentScrollY);\n }\n }\n\n /**\n * Restores modal-host siblings to screen reader status prior to modals being opened\n */\n public unhideOrRestoreHostSiblingsFromScreenReaders(): void {\n this.#hostSiblingAriaHiddenCache.forEach((previousValue, element) => {\n // if element had aria-hidden status prior, restore status\n if (element.parentElement) {\n if (previousValue) {\n element.setAttribute('aria-hidden', previousValue);\n } else {\n element.removeAttribute('aria-hidden');\n }\n }\n });\n this.#hostSiblingAriaHiddenCache.clear();\n }\n\n public hidePreviousModalFromScreenReaders(topModal: ElementRef): void {\n if (topModal && topModal.nativeElement.previousElementSibling) {\n topModal.nativeElement.previousElementSibling.setAttribute(\n 'aria-hidden',\n 'true',\n );\n }\n }\n\n public unhidePreviousModalFromScreenReaders(topModal: ElementRef): void {\n if (topModal && topModal.nativeElement.previousElementSibling) {\n topModal.nativeElement.previousElementSibling.removeAttribute(\n 'aria-hidden',\n );\n }\n }\n}\n","import { CommonModule } from '@angular/common';\nimport {\n ChangeDetectorRef,\n Component,\n ElementRef,\n EnvironmentInjector,\n OnDestroy,\n Type,\n ViewChild,\n ViewContainerRef,\n inject,\n} from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { NavigationStart, Router, RouterModule } from '@angular/router';\nimport {\n SKY_STACKING_CONTEXT,\n SkyAppWindowRef,\n SkyDynamicComponentService,\n} from '@skyux/core';\n\nimport { BehaviorSubject } from 'rxjs';\nimport { takeUntil, takeWhile } from 'rxjs/operators';\n\nimport { SkyModalsResourcesModule } from '../shared/sky-modals-resources.module';\n\nimport { SkyModalAdapterService } from './modal-adapter.service';\nimport { SkyModalConfiguration } from './modal-configuration';\nimport { SkyModalHostContext } from './modal-host-context';\nimport { SkyModalHostService } from './modal-host.service';\nimport { SkyModalInstance } from './modal-instance';\nimport { SkyModalConfigurationInterface } from './modal.interface';\n\n/**\n * @internal\n */\n@Component({\n selector: 'sky-modal-host',\n templateUrl: './modal-host.component.html',\n styleUrls: ['./modal-host.component.scss'],\n viewProviders: [SkyModalAdapterService],\n imports: [CommonModule, RouterModule, SkyModalsResourcesModule],\n})\nexport class SkyModalHostComponent implements OnDestroy {\n protected backdropZIndex = toSignal(SkyModalHostService.backdropZIndexChange);\n protected modalCount = toSignal(SkyModalHostService.openModalCountChange);\n\n @ViewChild('target', {\n read: ViewContainerRef,\n static: true,\n })\n public target: ViewContainerRef | undefined;\n\n #modalInstances: SkyModalInstance[] = [];\n\n readonly #adapter = inject(SkyModalAdapterService);\n readonly #changeDetector = inject(ChangeDetectorRef);\n readonly #dynamicComponentSvc = inject(SkyDynamicComponentService);\n readonly #elRef = inject(ElementRef);\n readonly #environmentInjector = inject(EnvironmentInjector);\n readonly #modalHostContext = inject(SkyModalHostContext);\n readonly #router = inject(Router, { optional: true });\n readonly #windowRef = inject(SkyAppWindowRef);\n\n public ngOnDestroy(): void {\n // Close all modal instances before disposing of the host container.\n this.#closeAllModalInstances();\n this.#modalHostContext.args.teardownCallback();\n }\n\n public open<T>(\n modalInstance: SkyModalInstance,\n component: Type<T>,\n config?: SkyModalConfigurationInterface,\n environmentInjector?: EnvironmentInjector,\n ): void {\n /* Ignore coverage as we specify the target element and so the view child should never be undefined unless\n * we were to call the `open` method in an early lifecycle hook. */\n /* istanbul ignore next */\n if (!this.target) {\n return;\n }\n\n const params: SkyModalConfigurationInterface = Object.assign({}, config);\n\n const hostService = new SkyModalHostService();\n hostService.fullPage = !!params.fullPage;\n\n const adapter = this.#adapter;\n const modalOpener: HTMLElement = adapter.getModalOpener();\n\n let isOpen = true;\n\n params.providers ||= [];\n params.providers.push(\n {\n provide: SkyModalHostService,\n useValue: hostService,\n },\n {\n provide: SkyModalConfiguration,\n useValue: params,\n },\n {\n provide: SKY_STACKING_CONTEXT,\n useValue: {\n zIndex: new BehaviorSubject(hostService.getModalZIndex())\n .asObservable()\n .pipe(takeUntil(modalInstance.closed)),\n },\n },\n );\n\n adapter.setPageScroll(SkyModalHostService.openModalCount > 0);\n adapter.toggleFullPageModalClass(\n SkyModalHostService.fullPageModalCount > 0,\n );\n\n environmentInjector ||= this.#environmentInjector;\n const modalComponentRef = this.#dynamicComponentSvc.createComponent(\n component,\n {\n environmentInjector: environmentInjector,\n providers: params.providers,\n viewContainerRef: this.target,\n },\n );\n\n // modal element that was just opened\n const modalElement = modalComponentRef.location;\n\n modalInstance.adapter = this.#adapter;\n modalInstance.componentRef = modalComponentRef;\n\n this.#registerModalInstance(modalInstance);\n\n // Adding a timeout to avoid ExpressionChangedAfterItHasBeenCheckedError.\n // https://stackoverflow.com/questions/40562845\n this.#windowRef.nativeWindow.setTimeout(() => {\n this.#adapter.focusFirstElement(modalElement);\n\n // hiding all elements at the modal-host level from screen readers when the a modal is opened\n this.#adapter.hideHostSiblingsFromScreenReaders(this.#elRef);\n if (\n SkyModalHostService.openModalCount > 1 &&\n SkyModalHostService.topModal === hostService\n ) {\n // hiding the lower modals when more than one modal is opened\n this.#adapter.hidePreviousModalFromScreenReaders(modalElement);\n }\n });\n\n const closeModal = (): void => {\n // unhide siblings if last modal is closing\n if (SkyModalHostService.openModalCount === 1) {\n this.#adapter.unhideOrRestoreHostSiblingsFromScreenReaders();\n } else if (SkyModalHostService.topModal === hostService) {\n // if there are more than 1 modal then unhide the one behind this one before closing it\n this.#adapter.unhidePreviousModalFromScreenReaders(modalElement);\n }\n\n hostService.destroy();\n adapter.setPageScroll(SkyModalHostService.openModalCount > 0);\n adapter.toggleFullPageModalClass(\n SkyModalHostService.fullPageModalCount > 0,\n );\n /* istanbul ignore else */\n /* sanity check */\n if (modalOpener && modalOpener.focus) {\n modalOpener.focus();\n }\n modalComponentRef.destroy();\n };\n\n hostService.openHelp.subscribe((helpKey) => {\n modalInstance.openHelp(helpKey);\n });\n\n hostService.close.subscribe(() => {\n modalInstance.close();\n });\n\n this.#router?.events.pipe(takeWhile(() => isOpen)).subscribe((event) => {\n /* istanbul ignore else */\n if (event instanceof NavigationStart) {\n modalInstance.close();\n }\n });\n\n modalInstance.closed.subscribe(() => {\n isOpen = false;\n this.#unregisterModalInstance(modalInstance);\n closeModal();\n });\n\n // Necessary if the host was created via a consumer's lifecycle hook such as ngOnInit\n this.#changeDetector.detectChanges();\n }\n\n #registerModalInstance(instance: SkyModalInstance): void {\n this.#modalInstances.push(instance);\n }\n\n #unregisterModalInstance(instance: SkyModalInstance): void {\n this.#modalInstances.slice(this.#modalInstances.indexOf(instance), 1);\n }\n\n #closeAllModalInstances(): void {\n for (const instance of this.#modalInstances) {\n instance.close();\n }\n }\n}\n","<div\n class=\"sky-modal-host-backdrop\"\n [hidden]=\"modalCount() === 0\"\n [ngStyle]=\"{\n zIndex: backdropZIndex()\n }\"\n></div>\n<div #target></div>\n","import {\n ComponentRef,\n EnvironmentInjector,\n Injectable,\n inject,\n} from '@angular/core';\nimport {\n SkyDynamicComponentLegacyService,\n SkyDynamicComponentService,\n} from '@skyux/core';\n\nimport { SkyModalHostContext } from './modal-host-context';\nimport { SkyModalHostComponent } from './modal-host.component';\nimport { SkyModalInstance } from './modal-instance';\nimport { SkyModalServiceInterface } from './modal-service-interface';\nimport { SkyModalConfigurationInterface } from './modal.interface';\n\n/**\n * A service that launches modals.\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class SkyModalService implements SkyModalServiceInterface {\n private static host: ComponentRef<SkyModalHostComponent> | undefined; // <-- how do we handle only having one of these?\n\n #dynamicComponentService: SkyDynamicComponentService;\n #environmentInjector = inject(EnvironmentInjector);\n\n constructor(dynamicComponentService: SkyDynamicComponentService) {\n this.#dynamicComponentService = dynamicComponentService;\n }\n\n /**\n * @internal\n * Removes the modal host from the DOM.\n */\n public dispose(): void {\n if (SkyModalService.host) {\n this.#dynamicComponentService.removeComponent(SkyModalService.host);\n SkyModalService.host = undefined;\n }\n }\n\n /**\n * Opens a modal using the specified component.\n * @param component Determines the component to render.\n * @param {SkyModalConfigurationInterface} config Specifies configuration options for the modal.\n */\n public open(\n component: any,\n config?: SkyModalConfigurationInterface | any[],\n ): SkyModalInstance {\n const modalInstance = new SkyModalInstance();\n\n if (!SkyModalService.host) {\n SkyModalService.host = this.#createHostComponent();\n }\n\n const params = this.#getConfigFromParameter(config);\n\n params.providers ||= [];\n params.providers.push({\n provide: SkyModalInstance,\n useValue: modalInstance,\n });\n\n if (SkyModalService.host) {\n SkyModalService.host.instance.open(\n modalInstance,\n component,\n params,\n this.#environmentInjector,\n );\n }\n\n return modalInstance;\n }\n\n #getConfigFromParameter(\n providersOrConfig: any,\n ): SkyModalConfigurationInterface {\n const defaultParams: SkyModalConfigurationInterface = {\n providers: [],\n fullPage: false,\n size: 'medium',\n tiledBody: false,\n };\n let params: SkyModalConfigurationInterface = {};\n let method: any = undefined;\n\n // Object Literal Lookup for backwards compatibility.\n method = {\n 'providers?': Object.assign({}, defaultParams, {\n providers: providersOrConfig,\n }),\n config: Object.assign({}, defaultParams, providersOrConfig),\n };\n\n if (Array.isArray(providersOrConfig) === true) {\n params = method['providers?'];\n } else {\n params = method['config'];\n }\n\n return params;\n }\n\n #createHostComponent(): ComponentRef<SkyModalHostComponent> {\n const componentRef = this.#dynamicComponentService.createComponent(\n SkyModalHostComponent,\n {\n environmentInjector: this.#environmentInjector,\n providers: [\n {\n provide: SkyModalHostContext,\n useValue: new SkyModalHostContext({\n teardownCallback: (): void => {\n this.dispose();\n },\n }),\n },\n ],\n },\n );\n\n return componentRef;\n }\n}\n\n/**\n * A service that launches modals.\n * @internal\n * @deprecated Use `SkyModalService` to open a standalone component instead.\n */\n@Injectable({\n // Must be 'any' so that the modal component is created in the context of its module's injector.\n // If set to 'root', the component's dependency injections would only be derived from the root\n // injector and may lose context if the modal was opened from within a lazy-loaded module.\n providedIn: 'any',\n})\nexport class SkyModalLegacyService extends SkyModalService {\n /* istanbul ignore next */\n constructor(dynamicComponentSvc: SkyDynamicComponentLegacyService) {\n super(dynamicComponentSvc);\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { SkyModalService } from '../modal/modal.service';\n\nimport { SkyConfirmConfig } from './confirm-config';\nimport { SKY_CONFIRM_CONFIG } from './confirm-config-token';\nimport { SkyConfirmInstance } from './confirm-instance';\nimport { SkyConfirmServiceInterface } from './confirm-service-interface';\nimport { SkyConfirmComponent } from './confirm.component';\n\n/**\n * Launches a dialog.\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class SkyConfirmService implements SkyConfirmServiceInterface {\n #modalService: SkyModalService;\n\n constructor(modalService: SkyModalService) {\n this.#modalService = modalService;\n }\n\n /**\n * Opens a dialog using the specified options.\n * @param config Specifies configuration options for the dialog.\n */\n public open(config: SkyConfirmConfig): SkyConfirmInstance {\n const confirmInstance = new SkyConfirmInstance();\n\n this.#modalService.open(SkyConfirmComponent, {\n providers: [\n {\n provide: SKY_CONFIRM_CONFIG,\n useValue: config,\n },\n {\n provide: SkyConfirmInstance,\n useValue: confirmInstance,\n },\n ],\n });\n\n return confirmInstance;\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, ViewEncapsulation, inject } from '@angular/core';\nimport { SkyResponsiveHostDirective } from '@skyux/core';\nimport { SkyStatusIndicatorModule } from '@skyux/indicators';\n\nimport { SkyModalErrorsService } from './modal-errors.service';\n\n/**\n * Specifies content to display in the modal's footer.\n */\n@Component({\n hostDirectives: [SkyResponsiveHostDirective],\n selector: 'sky-modal-footer',\n templateUrl: './modal-footer.component.html',\n styleUrls: ['./modal-footer.component.scss'],\n encapsulation: ViewEncapsulation.None,\n imports: [CommonModule, SkyStatusIndicatorModule],\n})\nexport class SkyModalFooterComponent {\n protected readonly errorsSvc = inject(SkyModalErrorsService);\n}\n","<div class=\"sky-modal-footer-container sky-padding-even-large\">\n <div aria-live=\"polite\">\n @if (errorsSvc.formErrors | async; as formErrors) {\n @if (formErrors.length > 0) {\n <div class=\"sky-modal-footer-errors sky-margin-stacked-lg\" tabindex=\"0\">\n @for (formError of formErrors; track formError) {\n <sky-status-indicator\n descriptionType=\"error\"\n indicatorType=\"danger\"\n [ngClass]=\"{\n 'sky-margin-stacked-lg':\n formErrors.indexOf(formError) < formErrors.length - 1,\n 'footer-error': true\n }\"\n >\n {{ formError.message }}\n </sky-status-indicator>\n }\n </div>\n }\n }\n </div>\n <ng-content />\n</div>\n","import {\n Directive,\n HostBinding,\n Input,\n OnDestroy,\n OnInit,\n inject,\n} from '@angular/core';\nimport { SkyLibResourcesService } from '@skyux/i18n';\n\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { SkyConfirmType } from '../confirm/confirm-type';\nimport { SkyConfirmService } from '../confirm/confirm.service';\n\nimport { SkyModalBeforeCloseHandler } from './modal-before-close-handler';\nimport { SkyModalInstance } from './modal-instance';\n\n/**\n * Provides a way to mark a modal as \"dirty\" and displays a confirmation\n * message when a user closes the modal without saving.\n */\n@Directive({\n standalone: true,\n // Since this is limited to sky-modal, it should be safe to\n // leave off the sky prefix.\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'sky-modal[isDirty]',\n})\nexport class SkyModalIsDirtyDirective implements OnInit, OnDestroy {\n /**\n * Whether the user edited an input on the modal.\n * @required\n */\n @Input()\n // This attribute is being applied to the host to support\n // unit testing this feature.\n @HostBinding('attr.data-sky-modal-is-dirty')\n public isDirty = false;\n\n readonly #ngUnsubscribe = new Subject<void>();\n\n readonly #modalInstance = inject(SkyModalInstance);\n readonly #confirmSvc = inject(SkyConfirmService);\n readonly #resourcesSvc = inject(SkyLibResourcesService);\n\n public ngOnInit(): void {\n this.#modalInstance.beforeClose\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((handler) => this.#promptIfDirty(handler));\n }\n\n public ngOnDestroy(): void {\n this.#ngUnsubscribe.next();\n this.#ngUnsubscribe.complete();\n }\n\n #promptIfDirty(handler: SkyModalBeforeCloseHandler): void {\n if (\n this.isDirty &&\n (handler.closeArgs.reason === 'close' ||\n handler.closeArgs.reason === 'cancel')\n ) {\n this.#resourcesSvc\n .getStrings({\n message: 'skyux_modal_dirty_default_message',\n discardActionText: 'skyux_modal_dirty_default_discard_changes_text',\n keepActionText: 'skyux_modal_dirty_default_keep_working_text',\n })\n .subscribe((textValues) => {\n const discardAction = 'discard';\n const keepAction = 'keep';\n\n this.#confirmSvc\n .open({\n message: textValues.message,\n buttons: [\n {\n action: discardAction,\n text: textValues.discardActionText,\n styleType: 'primary',\n },\n {\n action: keepAction,\n text: textValues.keepActionText,\n styleType: 'link',\n },\n ],\n type: SkyConfirmType.Custom,\n })\n .closed.subscribe((args) => {\n if (args.action === discardAction) {\n handler.closeModal();\n }\n });\n });\n } else {\n handler.closeModal();\n }\n }\n}\n","import { NgModule } from '@angular/core';\n\nimport { SkyModalContentComponent } from './modal-content.component';\nimport { SkyModalFooterComponent } from './modal-footer.component';\nimport { SkyModalHeaderComponent } from './modal-header.component';\nimport { SkyModalIsDirtyDirective } from './modal-is-dirty.directive';\nimport { SkyModalComponent } from './modal.component';\n\n@NgModule({\n imports: [\n SkyModalComponent,\n SkyModalContentComponent,\n SkyModalFooterComponent,\n SkyModalHeaderComponent,\n SkyModalIsDirtyDirective,\n ],\n exports: [\n SkyModalComponent,\n SkyModalContentComponent,\n SkyModalFooterComponent,\n SkyModalHeaderComponent,\n SkyModalIsDirtyDirective,\n ],\n})\nexport class SkyModalModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i2","i1","i3","i1.SkyModalService"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"skyux-modals.mjs","sources":["../../../../../libs/components/modals/src/lib/modules/confirm/confirm-instance.ts","../../../../../libs/components/modals/src/lib/modules/confirm/confirm-type.ts","../../../../../libs/components/modals/src/lib/modules/confirm/confirm.module.ts","../../../../../libs/components/modals/src/lib/modules/confirm/confirm-config-token.ts","../../../../../libs/components/modals/src/lib/modules/modal/modal-content.component.ts","../../../../../libs/components/modals/src/lib/modules/modal/modal-content.component.html","../../../../../libs/components/modals/src/lib/modules/modal/modal-before-close-handler.ts","../../../../../libs/components/modals/src/lib/modules/modal/modal-close-args.ts","../../../../../libs/components/modals/src/lib/modules/modal/modal-instance.ts","../../../../../libs/components/modals/src/lib/modules/shared/sky-modals-resources.module.ts","../../../../../libs/components/modals/src/lib/modules/modal/modal-component-adapter.service.ts","../../../../../libs/components/modals/src/lib/modules/modal/modal-configuration.ts","../../../../../libs/components/modals/src/lib/modules/modal/modal-errors.service.ts","../../../../../libs/components/modals/src/lib/modules/modal/modal-header.component.ts","../../../../../libs/components/modals/src/lib/modules/modal/modal-header.component.html","../../../../../libs/components/modals/src/lib/modules/modal/modal-host.service.ts","../../../../../libs/components/modals/src/lib/modules/modal/modal.component.ts","../../../../../libs/components/modals/src/lib/modules/modal/modal.component.html","../../../../../libs/components/modals/src/lib/modules/confirm/confirm.component.ts","../../../../../libs/components/modals/src/lib/modules/confirm/confirm.component.html","../../../../../libs/components/modals/src/lib/modules/modal/modal-host-context.ts","../../../../../libs/components/modals/src/lib/modules/modal/modal-adapter.service.ts","../../../../../libs/components/modals/src/lib/modules/modal/modal-host.component.ts","../../../../../libs/components/modals/src/lib/modules/modal/modal-host.component.html","../../../../../libs/components/modals/src/lib/modules/modal/modal.service.ts","../../../../../libs/components/modals/src/lib/modules/confirm/confirm.service.ts","../../../../../libs/components/modals/src/lib/modules/modal/modal-footer.component.ts","../../../../../libs/components/modals/src/lib/modules/modal/modal-footer.component.html","../../../../../libs/components/modals/src/lib/modules/modal/modal-is-dirty.directive.ts","../../../../../libs/components/modals/src/lib/modules/modal/modal.module.ts","../../../../../libs/components/modals/src/skyux-modals.ts"],"sourcesContent":["import { Observable, ReplaySubject } from 'rxjs';\n\nimport { SkyConfirmCloseEventArgs } from './confirm-closed-event-args';\n\nexport class SkyConfirmInstance {\n /**\n * Fires when users select an action to close the dialog. This event\n * returns a `SkyConfirmCloseEventArgs` object with information about the button that\n * users select. It returns the `'cancel'` action when users press the <kbd>Escape</kbd> key.\n */\n public get closed(): Observable<SkyConfirmCloseEventArgs> {\n return this.#closedObs;\n }\n\n readonly #closed = new ReplaySubject<SkyConfirmCloseEventArgs>();\n readonly #closedObs = this.#closed.asObservable();\n\n /**\n * Closes the confirm instance.\n * @param args Specifies an object to emit to subscribers of the `closed` event\n * of the confirm instance.\n */\n public close(args: SkyConfirmCloseEventArgs): void {\n this.#closed.next(args);\n this.#closed.complete();\n }\n}\n","export enum SkyConfirmType {\n /**\n * Allows you to define your own buttons using the `buttons` property of `SkyConfirmConfig`.\n */\n Custom = 0,\n /**\n * Displays one button with an **OK** label and an `'ok'` action.\n */\n OK = 1,\n /**\n * Displays two buttons with **Yes** and **Cancel** labels.\n * @deprecated Use the `Custom` type to follow the guidance that labels\n * should clearly indicate the actions that occur when users select buttons.\n */\n YesCancel = 2,\n /**\n * Displays three buttons with **Yes**, **No**, and **Cancel** labels.\n * @deprecated Use the `Custom` type to follow the guidance that labels\n * should clearly indicate the actions that occur when users select buttons.\n */\n YesNoCancel = 3,\n}\n","import { NgModule } from '@angular/core';\n\n/**\n * @deprecated The `SkyConfirmModule` is no longer needed and can be removed from your application.\n * @internal\n */\n@NgModule({})\nexport class SkyConfirmModule {}\n","import { InjectionToken } from '@angular/core';\n\nimport { SkyConfirmConfig } from './confirm-config';\n\n/**\n * @internal\n */\nexport const SKY_CONFIRM_CONFIG = new InjectionToken<SkyConfirmConfig>(\n 'SkyConfirmConfig',\n);\n","import { Component, ViewEncapsulation } from '@angular/core';\nimport { SkyResponsiveHostDirective } from '@skyux/core';\n\n/**\n * Specifies content to display in the modal's body.\n */\n@Component({\n hostDirectives: [SkyResponsiveHostDirective],\n standalone: true,\n selector: 'sky-modal-content',\n templateUrl: './modal-content.component.html',\n styleUrls: ['./modal-content.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class SkyModalContentComponent {}\n","<ng-content />\n","import { SkyModalCloseArgs } from './modal-close-args';\n\n/**\n * Properties about the modal close action and a method to close the modal.\n */\nexport class SkyModalBeforeCloseHandler {\n /**\n * The object that would be emitted by a modal's `closed` event. This object\n * can be used to determine whether to prompt the user for confirmation, such\n * as when the user closes a modal form after entering data.\n */\n public readonly closeArgs: SkyModalCloseArgs;\n\n /**\n * Function to call to close the modal. Neglecting to call this function\n * effectively cancels the close modal action.\n */\n public readonly closeModal: () => void;\n\n constructor(closeModal: () => void, closeArgs: SkyModalCloseArgs) {\n this.closeArgs = closeArgs;\n this.closeModal = closeModal;\n }\n}\n","/**\n * Contains an object with the data passed from users when\n * a modal is closed and the reason that the modal was closed.\n */\nexport class SkyModalCloseArgs {\n /**\n * The reason the modal was closed.\n * Options include `\"close\"`, `\"save\"`, and `\"cancel\"`.\n */\n public reason: string | undefined;\n /**\n * The data passed from users when the modal is closed.\n */\n public data: any;\n}\n","import { ComponentRef, ElementRef } from '@angular/core';\n\nimport { Observable, Subject } from 'rxjs';\n\nimport { SkyModalAdapterService } from './modal-adapter.service';\nimport { SkyModalBeforeCloseHandler } from './modal-before-close-handler';\nimport { SkyModalCloseArgs } from './modal-close-args';\n\nexport class SkyModalInstance {\n /**\n * An event that the modal instance emits when it is about to close.\n * It emits a `SkyModalBeforeCloseHandler` object with a `closeModal` method\n * that closes the modal. If a subscription exists for this event,\n * the modal does not close until the subscriber calls the `closeModal` method.\n */\n public get beforeClose(): Observable<SkyModalBeforeCloseHandler> {\n return this.#_beforeClose;\n }\n\n /**\n * An event that the modal instance emits when it closes.\n * It emits a `SkyModalCloseArgs` object with a `data` property that includes\n * data passed from users on close or save and a `reason` property that indicates\n * whether the modal was saved or closed without saving.\n * The `reason` property accepts any string value.\n * Common examples include `\"cancel\"`, `\"close\"`, and `\"save\"`.\n */\n public get closed(): Observable<SkyModalCloseArgs> {\n return this.#_closed;\n }\n\n /**\n * An event that the modal instance emits when users click\n * the <i class=\"fa fa-question-circle\" aria-hidden=\"true\"></i> button.\n * If a `helpKey` parameter was specified, the `helpOpened` event broadcasts the `helpKey`.\n * @deprecated\n */\n public get helpOpened(): Observable<string> {\n return this.#_helpOpened;\n }\n\n /**\n * A direct reference to the provided component's class.\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public componentInstance: any;\n\n /**\n * Sets the component adapter for the instance. This is used internally for actions such as scrolling the content.\n * @internal\n */\n public set adapter(value: SkyModalAdapterService) {\n this.#adapter = value;\n }\n\n /**\n * Sets the component ref for the instance. This is used to extract the component instance for the public API and the element ref for internal use.\n * @internal\n */\n public set componentRef(value: ComponentRef<any>) {\n this.componentInstance = value.instance;\n this.#elementRef = value.location;\n }\n\n #_beforeClose = new Subject<SkyModalBeforeCloseHandler>();\n\n #_closed = new Subject<SkyModalCloseArgs>();\n\n /**\n * @deprecated\n */\n #_helpOpened = new Subject<string>();\n\n #adapter: SkyModalAdapterService | undefined;\n #elementRef: ElementRef | undefined;\n\n /**\n * Closes the modal instance.\n * @param result Specifies an object to emit to subscribers of the `closed` event of the\n * modal instance. The `SkyModalInstance` provider can be injected into a component's constructor\n * so that this `close` function can be called from a button in the `sky-modal-footer`.\n * @param reason Specifies the reason for the modal closing, with the default reason of `\"close\"`.\n * @param ignoreBeforeClose Indicates whether to ignore the modal instance's `beforeClose` event.\n */\n public close(\n result?: any,\n reason?: string,\n ignoreBeforeClose?: boolean,\n ): void {\n if (reason === undefined) {\n reason = 'close';\n }\n\n this.#closeModal(reason, result, ignoreBeforeClose);\n }\n\n /**\n * Closes the modal instance with `reason=\"cancel\"`.\n * @param result Specifies an object to emit to subscribers of the `closed` event of the modal\n * instance. The `SkyModalInstance` provider can be injected into a component's constructor so\n * that this cancel function can be called from a button in the `sky-modal-footer`.\n */\n public cancel(result?: any): void {\n this.#closeModal('cancel', result);\n }\n\n /**\n * Closes the modal instance with `reason=\"save\"`.\n * @param result Specifies an object to emit to subscribers of the `closed` event of the modal\n * instance. The `SkyModalInstance` provider can be injected into a component's constructor so\n * that this `save` function can be called from a button in `the sky-modal-footer`.\n */\n public save(result?: any): void {\n this.#closeModal('save', result);\n }\n\n /**\n * Scrolls the modal content area to the top of its scrollable area.\n */\n public scrollContentToTop(): void {\n if (this.#adapter && this.#elementRef) {\n this.#adapter.scrollContentToTop(this.#elementRef);\n }\n }\n\n /**\n * Triggers the `helpOpened` event that broadcasts a `helpKey` parameter to open\n * when users click the <i class=\"fa fa-question-circle\" aria-hidden=\"true\"></i> button.\n * @param helpKey Specifies a string to emit to subscribers of\n * the modal instance's `helpOpened` event. Consumers can inject the `SkyModalInstance` provider\n * into a component's constructor to call the `openHelp` function in the modal template.\n * @deprecated\n */\n public openHelp(helpKey: string): void {\n this.#_helpOpened.next(helpKey);\n }\n\n #closeModal(type: string, result?: any, ignoreBeforeClose = false): void {\n const args = new SkyModalCloseArgs();\n\n args.reason = type;\n args.data = result;\n\n if (this.#_beforeClose.observers.length === 0 || ignoreBeforeClose) {\n this.#notifyClosed(args);\n } else {\n this.#_beforeClose.next(\n new SkyModalBeforeCloseHandler(() => {\n this.#notifyClosed(args);\n }, args),\n );\n }\n }\n\n #notifyClosed(args: SkyModalCloseArgs): void {\n this.#_closed.next(args);\n this.#_closed.complete();\n this.#_beforeClose.complete();\n this.#_helpOpened.complete();\n }\n}\n","/* istanbul ignore file */\n/**\n * NOTICE: DO NOT MODIFY THIS FILE!\n * The contents of this file were automatically generated by\n * the 'ng generate @skyux/i18n:lib-resources-module lib/modules/shared/sky-modals' schematic.\n * To update this file, simply rerun the command.\n */\nimport { NgModule } from '@angular/core';\nimport {\n SkyI18nModule,\n SkyLibResources,\n SkyLibResourcesService,\n} from '@skyux/i18n';\n\nconst RESOURCES: Record<string, SkyLibResources> = {\n 'EN-US': {\n skyux_confirm_dialog_default_ok_text: { message: 'OK' },\n skyux_confirm_dialog_default_yes_text: { message: 'Yes' },\n skyux_confirm_dialog_default_no_text: { message: 'No' },\n skyux_confirm_dialog_default_cancel_text: { message: 'Cancel' },\n skyux_modal_close: { message: 'Close modal' },\n skyux_modal_open_help: { message: 'Open Help' },\n skyux_modal_footer_cancel_button: { message: 'Cancel' },\n skyux_modal_footer_primary_button: { message: 'Save' },\n skyux_modal_dirty_default_message: {\n message: 'Are you sure you want to discard your changes?',\n },\n skyux_modal_dirty_default_discard_changes_text: {\n message: 'Discard changes',\n },\n skyux_modal_dirty_default_keep_working_text: { message: 'Keep working' },\n },\n 'FR-CA': {\n skyux_confirm_dialog_default_ok_text: { message: 'OK' },\n skyux_confirm_dialog_default_yes_text: { message: 'Oui' },\n skyux_confirm_dialog_default_no_text: { message: 'Non' },\n skyux_confirm_dialog_default_cancel_text: { message: 'Annuler' },\n skyux_modal_close: { message: 'Fermer le modal' },\n skyux_modal_open_help: { message: 'Ouvrir l’aide' },\n skyux_modal_footer_cancel_button: { message: 'Annuler' },\n skyux_modal_footer_primary_button: { message: 'Sauvegarder' },\n skyux_modal_dirty_default_message: {\n message: 'Êtes-vous certain de vouloir supprimer ces changements?',\n },\n skyux_modal_dirty_default_discard_changes_text: {\n message: 'Supprimer les changements',\n },\n skyux_modal_dirty_default_keep_working_text: {\n message: 'Continuer à travailler',\n },\n },\n};\n\nSkyLibResourcesService.addResources(RESOURCES);\n\n/**\n * Import into any component library module that needs to use resource strings.\n */\n@NgModule({\n exports: [SkyI18nModule],\n})\nexport class SkyModalsResourcesModule {}\n","import { ElementRef, Injectable } from '@angular/core';\n\n/**\n * @internal\n */\n@Injectable()\nexport class SkyModalComponentAdapterService {\n public handleWindowChange(modalEl: ElementRef): void {\n const boundedHeightEl = modalEl.nativeElement.querySelector('.sky-modal');\n const fullPageModalEl = modalEl.nativeElement.querySelector(\n '.sky-modal-full-page',\n );\n /*\n Set modal height equal to max height of window (accounting for padding above and below modal)\n */\n const newHeight = window.innerHeight - 40;\n\n boundedHeightEl.style.maxHeight = newHeight.toString() + 'px';\n boundedHeightEl.style.setProperty(\n '--sky-modal-content-max-height',\n boundedHeightEl.style.maxHeight,\n );\n if (fullPageModalEl) {\n this.#setFullPageHeight(fullPageModalEl);\n }\n }\n\n public isFocusInFirstItem(\n event: KeyboardEvent,\n list: HTMLElement[],\n ): boolean {\n /* istanbul ignore next */\n /* sanity check */\n const eventTarget = event.target || event.srcElement;\n return list.length > 0 && eventTarget === list[0];\n }\n\n public isFocusInLastItem(event: KeyboardEvent, list: HTMLElement[]): boolean {\n /* istanbul ignore next */\n /* sanity check */\n const eventTarget = event.target || event.srcElement;\n return list.length > 0 && eventTarget === list[list.length - 1];\n }\n\n public isModalFocused(event: KeyboardEvent, modalEl: ElementRef): boolean {\n /* istanbul ignore next */\n /* sanity check */\n const eventTarget = event.target || event.srcElement;\n return (\n modalEl &&\n eventTarget === modalEl.nativeElement.querySelector('.sky-modal-dialog')\n );\n }\n\n public focusLastElement(list: HTMLElement[]): boolean {\n if (list.length > 0) {\n list[list.length - 1].focus();\n return true;\n }\n return false;\n }\n\n public focusFirstElement(list: HTMLElement[]): boolean {\n if (list.length > 0) {\n list[0].focus();\n return true;\n }\n return false;\n }\n\n public modalContentHasDirectChildViewkeeper(\n modalContentEl: ElementRef,\n ): boolean {\n return !!modalContentEl.nativeElement.querySelector(\n 'sky-modal-content > .sky-viewkeeper-fixed',\n );\n }\n\n #setFullPageHeight(fullPageModalEl: HTMLElement): void {\n const windowHeight = window.innerHeight;\n const fullPageModalStyle = getComputedStyle(fullPageModalEl);\n\n const marginTopBottom =\n parseInt(fullPageModalStyle.marginTop, 10) +\n parseInt(fullPageModalStyle.marginBottom, 10);\n\n const fullPageModalHeight = windowHeight - marginTopBottom + 'px';\n\n fullPageModalEl.style.height = fullPageModalHeight;\n fullPageModalEl.style.maxHeight = fullPageModalHeight;\n }\n}\n","import { Injectable } from '@angular/core';\n\n/**\n * @internal\n */\n@Injectable()\nexport class SkyModalConfiguration {\n public fullPage?: boolean;\n public size?: string;\n /**\n * @deprecated\n */\n public ariaDescribedBy?: string;\n /**\n * @deprecated\n */\n public ariaLabelledBy?: string;\n public ariaRole?: string;\n /**\n * @deprecated\n */\n public tiledBody?: boolean;\n /**\n * @deprecated\n */\n public helpKey?: string;\n public wrapperClass?: string;\n\n constructor() {\n this.size = 'medium';\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { BehaviorSubject, Observable } from 'rxjs';\n\nimport { SkyModalError } from './modal-error';\n\n/**\n * @internal\n */\n@Injectable()\nexport class SkyModalErrorsService {\n public formErrors: Observable<SkyModalError[] | undefined>;\n\n #formErrors = new BehaviorSubject<SkyModalError[] | undefined>(undefined);\n\n constructor() {\n this.formErrors = this.#formErrors.asObservable();\n }\n\n public updateErrors(value: SkyModalError[] | undefined): void {\n this.#formErrors.next(value);\n }\n}\n","import { Component } from '@angular/core';\nimport { SkyTrimModule } from '@skyux/core';\nimport { SkyThemeModule } from '@skyux/theme';\n\n/**\n * Specifies a header for the modal.\n */\n@Component({\n selector: 'sky-modal-header',\n templateUrl: './modal-header.component.html',\n styleUrls: ['./modal-header.component.scss'],\n imports: [SkyThemeModule, SkyTrimModule],\n})\nexport class SkyModalHeaderComponent {}\n","<h2\n class=\"sky-modal-heading sky-font-emphasized\"\n skyTrim\n [skyThemeClass]=\"{\n 'sky-font-heading-4': 'default',\n 'sky-font-display-3': 'modern'\n }\"\n>\n <ng-content />\n</h2>\n<span class=\"sky-control-help-container\" skyTrim\n ><ng-content select=\".sky-control-help\"></ng-content\n></span>\n","import { Injectable } from '@angular/core';\n\nimport { BehaviorSubject, Observable, Subject } from 'rxjs';\n\nconst BASE_Z_INDEX = 1040;\nconst modalHosts: SkyModalHostService[] = [];\n\nconst backdropZIndex = new BehaviorSubject<number>(0);\nconst backdropZIndexObs = backdropZIndex.asObservable();\n\nconst openModalCount = new BehaviorSubject<number>(0);\nconst openModalCountObs = openModalCount.asObservable();\n\n/**\n * @internal\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class SkyModalHostService {\n public static get openModalCountChange(): Observable<number> {\n return openModalCountObs;\n }\n\n public static get backdropZIndexChange(): Observable<number> {\n return backdropZIndexObs;\n }\n\n /**\n * @deprecated Subscribe to `openModalCountChange` instead.\n */\n public static get openModalCount(): number {\n return modalHosts.length;\n }\n\n public static get fullPageModalCount(): number {\n const fullPageModals = modalHosts.filter((modal) => modal.fullPage);\n return fullPageModals.length;\n }\n\n /**\n * @deprecated Subscribe to `backdropZIndexChange` instead.\n */\n public static get backdropZIndex(): number {\n return BASE_Z_INDEX + modalHosts.length * 10;\n }\n\n public static get topModal(): SkyModalHostService {\n return modalHosts[modalHosts.length - 1];\n }\n\n public close = new Subject<void>();\n public fullPage = false;\n /**\n * @deprecated\n */\n public openHelp = new Subject<string>();\n public zIndex: number;\n\n constructor() {\n this.zIndex = this.#calculateZIndex();\n modalHosts.push(this);\n this.#notifyBackdropZIndex();\n this.#notifyOpenModalCount();\n }\n\n public getModalZIndex(): number {\n return this.zIndex;\n }\n\n public onClose(): void {\n this.close.next();\n }\n\n /**\n * @deprecated\n */\n public onOpenHelp(helpKey: string): void {\n this.openHelp.next(helpKey);\n }\n\n public destroy(): void {\n modalHosts.splice(modalHosts.indexOf(this), 1);\n this.#notifyBackdropZIndex();\n this.#notifyOpenModalCount();\n }\n\n #calculateZIndex(): number {\n const zIndexArray = modalHosts.map((hostService) => hostService.zIndex);\n if (zIndexArray.length === 0) {\n return BASE_Z_INDEX + 11;\n } else {\n const currentMaxZIndex = Math.max(...zIndexArray);\n return currentMaxZIndex + 10;\n }\n }\n\n #notifyOpenModalCount(): void {\n openModalCount.next(modalHosts.length);\n }\n\n #notifyBackdropZIndex(): void {\n backdropZIndex.next(SkyModalHostService.backdropZIndex);\n }\n}\n","import { CommonModule } from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ElementRef,\n HostBinding,\n HostListener,\n Input,\n OnDestroy,\n OnInit,\n TemplateRef,\n ViewChild,\n inject,\n input,\n} from '@angular/core';\nimport {\n SkyCoreAdapterService,\n SkyDockLocation,\n SkyDockService,\n SkyIdModule,\n SkyLayoutHostDirective,\n SkyLiveAnnouncerService,\n SkyScrollShadowDirective,\n SkyScrollShadowEventArgs,\n} from '@skyux/core';\nimport { SkyHelpInlineModule } from '@skyux/help-inline';\nimport { SkyIconModule } from '@skyux/icon';\nimport { SkyTheme, SkyThemeService } from '@skyux/theme';\n\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { SkyModalsResourcesModule } from '../shared/sky-modals-resources.module';\n\nimport { SkyModalComponentAdapterService } from './modal-component-adapter.service';\nimport { SkyModalConfiguration } from './modal-configuration';\nimport { SkyModalError } from './modal-error';\nimport { SkyModalErrorsService } from './modal-errors.service';\nimport { SkyModalHeaderComponent } from './modal-header.component';\nimport { SkyModalHostService } from './modal-host.service';\n\nconst ARIA_ROLE_DEFAULT = 'dialog';\n\n/**\n * Provides a common look-and-feel for modal content with options to display\n * a common modal header, specify body content, and display a common modal footer\n * and buttons.\n */\n@Component({\n selector: 'sky-modal',\n templateUrl: './modal.component.html',\n styleUrls: ['./modal.component.scss'],\n providers: [\n SkyModalComponentAdapterService,\n SkyModalErrorsService,\n SkyDockService,\n ],\n imports: [\n CommonModule,\n SkyHelpInlineModule,\n SkyIconModule,\n SkyIdModule,\n SkyModalHeaderComponent,\n SkyScrollShadowDirective,\n SkyModalsResourcesModule,\n SkyLayoutHostDirective,\n ],\n})\nexport class SkyModalComponent implements AfterViewInit, OnDestroy, OnInit {\n @HostBinding('class')\n public wrapperClass: string | undefined;\n\n /**\n * A list of form-level errors to display to the user.\n */\n @Input()\n public set formErrors(value: SkyModalError[] | undefined) {\n this.#errorsSvc.updateErrors(value);\n }\n\n /**\n * The text to display as the modal's heading.\n */\n @Input()\n public headingText: string | undefined;\n\n /**\n * A help key that identifies the global help content to display. When specified along with `headingText`, a [help inline](https://developer.blackbaud.com/skyux/components/help-inline) button is\n * added to the modal header. Clicking the button invokes global help as configured by the application. This property only applies when `headingText` is also specified.\n */\n @Input()\n public helpKey: string | undefined;\n\n /**\n * The content of the help popover. When specified along with `headingText`, a [help inline](https://developer.blackbaud.com/skyux/components/help-inline)\n * button is added to the modal header. The help inline button displays a [popover](https://developer.blackbaud.com/skyux/components/popover)\n * when clicked using the specified content and optional title. This property only applies when `headingText` is also specified.\n */\n @Input()\n public helpPopoverContent: string | TemplateRef<unknown> | undefined;\n\n /**\n * The title of the help popover. This property only applies when `helpPopoverContent` is\n * also specified.\n */\n @Input()\n public helpPopoverTitle: string | undefined;\n\n /**\n * Used by the confirm component to set a different role for the modal.\n * @internal\n */\n @Input()\n public set ariaRole(value: string | undefined) {\n this.ariaRoleOrDefault = value || ARIA_ROLE_DEFAULT;\n }\n\n public ariaRoleOrDefault = ARIA_ROLE_DEFAULT;\n\n /**\n * @internal\n * @deprecated\n */\n @Input()\n public tiledBody: boolean | undefined;\n\n /**\n * Used by the confirm component to set descriptive text without using a\n * modal header.\n * @internal\n */\n @Input()\n public set ariaDescribedBy(id: string | undefined) {\n this.#_ariaDescribedBy = id;\n }\n\n public get ariaDescribedBy(): string | undefined {\n return this.#_ariaDescribedBy;\n }\n\n /**\n * Used by the confirm component to set descriptive text without using a\n * modal header.\n * @internal\n */\n @Input()\n public set ariaLabelledBy(id: string | undefined) {\n this.#_ariaLabelledBy = id;\n }\n\n public get ariaLabelledBy(): string | undefined {\n return this.#_ariaLabelledBy;\n }\n\n public readonly layout = input<'none' | 'fit'>('none');\n\n public ariaOwns: string | null = null;\n\n /**\n * @deprecated\n */\n public legacyHelpKey: string | undefined;\n\n public modalState = 'in';\n\n public modalZIndex: number | undefined;\n\n public scrollShadow: SkyScrollShadowEventArgs = {\n bottomShadow: 'none',\n topShadow: 'none',\n };\n\n public size: string;\n\n @ViewChild('modalContentWrapper', { read: ElementRef })\n public modalContentWrapperElement: ElementRef | undefined;\n\n protected scrollShadowEnabled = false;\n\n #ngUnsubscribe = new Subject<void>();\n\n #_ariaDescribedBy: string | undefined;\n #_ariaLabelledBy: string | undefined;\n\n readonly #changeDetector = inject(ChangeDetectorRef);\n readonly #componentAdapter = inject(SkyModalComponentAdapterService);\n readonly #coreAdapter = inject(SkyCoreAdapterService);\n readonly #dockService = inject(SkyDockService, { host: true });\n readonly #elRef = inject(ElementRef);\n readonly #errorsSvc = inject(SkyModalErrorsService);\n readonly #hostService = inject(SkyModalHostService);\n readonly #liveAnnouncerSvc = inject(SkyLiveAnnouncerService);\n\n /**\n * This provider is optional to account for situations where a modal component\n * is implemented without the modal service. For example, when a consumer tests\n * a component that uses the modal component but doesn't launch the modal from\n * the modal service before executing assertions.\n */\n readonly #config =\n inject(SkyModalConfiguration, { optional: true }) ??\n new SkyModalConfiguration();\n readonly #themeSvc = inject(SkyThemeService, { optional: true });\n\n constructor() {\n this.ariaDescribedBy = this.#config.ariaDescribedBy;\n this.ariaLabelledBy = this.#config.ariaLabelledBy;\n this.ariaRole = this.#config.ariaRole;\n this.legacyHelpKey = this.#config.helpKey;\n this.tiledBody = this.#config.tiledBody;\n this.wrapperClass = this.#config.wrapperClass;\n\n this.size = this.#config.fullPage\n ? 'full-page'\n : this.#config.size?.toLowerCase() || 'medium';\n\n this.modalZIndex = this.#hostService.zIndex;\n }\n\n @HostListener('document:keyup', ['$event'])\n public onDocumentKeyUp(event: KeyboardEvent): void {\n /* istanbul ignore else */\n /* sanity check */\n if (SkyModalHostService.openModalCount > 0) {\n const topModal = SkyModalHostService.topModal;\n if (topModal && topModal === this.#hostService) {\n if (event.which === 27) {\n // Escape key up\n event.preventDefault();\n this.closeButtonClick();\n }\n }\n }\n }\n\n @HostListener('document:keydown', ['$event'])\n public onDocumentKeyDown(event: KeyboardEvent): void {\n /* istanbul ignore else */\n /* sanity check */\n if (SkyModalHostService.openModalCount > 0) {\n const topModal = SkyModalHostService.topModal;\n if (topModal && topModal === this.#hostService) {\n if (event.which === 9) {\n // Tab pressed\n let focusChanged = false;\n\n const focusElementList = this.#coreAdapter.getFocusableChildren(\n this.#elRef.nativeElement,\n );\n\n if (\n event.shiftKey &&\n (this.#componentAdapter.isFocusInFirstItem(\n event,\n focusElementList,\n ) ||\n this.#componentAdapter.isModalFocused(event, this.#elRef))\n ) {\n focusChanged =\n this.#componentAdapter.focusLastElement(focusElementList);\n } else if (\n !event.shiftKey &&\n this.#componentAdapter.isFocusInLastItem(event, focusElementList)\n ) {\n focusChanged =\n this.#componentAdapter.focusFirstElement(focusElementList);\n }\n\n if (focusChanged) {\n event.preventDefault();\n event.stopPropagation();\n }\n }\n }\n }\n }\n\n public ngOnInit(): void {\n this.#liveAnnouncerSvc.announcerElementChanged\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((element) => {\n if (element?.id) {\n this.ariaOwns = element.id;\n this.#changeDetector.markForCheck();\n }\n });\n\n if (this.#themeSvc) {\n this.#themeSvc.settingsChange\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((themeSettings) => {\n this.scrollShadowEnabled =\n themeSettings.currentSettings.theme === SkyTheme.presets.modern;\n });\n }\n }\n\n public ngAfterViewInit(): void {\n this.#componentAdapter.handleWindowChange(this.#elRef);\n\n this.#dockService.setDockOptions({\n location: SkyDockLocation.ElementBottom,\n referenceEl: this.modalContentWrapperElement!.nativeElement,\n zIndex: 5,\n });\n }\n\n public ngOnDestroy(): void {\n this.#ngUnsubscribe.next();\n this.#ngUnsubscribe.complete();\n }\n\n /**\n * @deprecated\n */\n public helpButtonClick(): void {\n if (this.legacyHelpKey) {\n this.#hostService.onOpenHelp(this.legacyHelpKey);\n }\n }\n\n public closeButtonClick(): void {\n this.#hostService.onClose();\n }\n\n public windowResize(): void {\n this.#componentAdapter.handleWindowChange(this.#elRef);\n }\n\n public scrollShadowChange(args: SkyScrollShadowEventArgs): void {\n this.scrollShadow = args;\n }\n\n public viewkeeperEnabled(): boolean {\n return this.#componentAdapter.modalContentHasDirectChildViewkeeper(\n this.#elRef,\n );\n }\n}\n","<div\n class=\"sky-modal-dialog\"\n aria-modal=\"true\"\n [attr.aria-describedby]=\"ariaDescribedBy || modalContentId.id\"\n [attr.aria-labelledby]=\"ariaLabelledBy || headerId.id\"\n [attr.aria-owns]=\"ariaOwns\"\n [attr.role]=\"ariaRoleOrDefault\"\n (window:resize)=\"windowResize()\"\n>\n <div\n class=\"sky-modal sky-shadow sky-box sky-elevation-16 sky-modal-{{ size }}\"\n tabindex=\"-1\"\n [ngClass]=\"{\n 'sky-modal-tiled': tiledBody,\n 'sky-modal-viewkeeper': viewkeeperEnabled()\n }\"\n [ngStyle]=\"{\n zIndex: modalZIndex\n }\"\n >\n <div\n class=\"sky-modal-header\"\n [ngStyle]=\"{\n 'box-shadow': scrollShadow?.topShadow\n }\"\n >\n <div\n #headerId=\"skyId\"\n class=\"sky-modal-header-content\"\n skyId\n [ngClass]=\"{\n 'sky-font-heading-2': size === 'full-page'\n }\"\n >\n @if (headingText) {\n <sky-modal-header>\n {{ headingText }}\n @if (helpKey || helpPopoverContent) {\n <sky-help-inline\n class=\"sky-control-help\"\n [helpKey]=\"helpKey\"\n [labelText]=\"headingText\"\n [popoverContent]=\"helpPopoverContent\"\n [popoverTitle]=\"helpPopoverTitle\"\n />\n }\n </sky-modal-header>\n } @else {\n <ng-content select=\"sky-modal-header\" />\n }\n </div>\n <div class=\"sky-modal-header-buttons\">\n @if (legacyHelpKey) {\n <button\n class=\"sky-btn sky-modal-btn-help\"\n name=\"help-button\"\n type=\"button\"\n [attr.aria-label]=\"'skyux_modal_open_help' | skyLibResources\"\n (click)=\"helpButtonClick()\"\n >\n <sky-icon iconName=\"question-circle\" />\n </button>\n }\n\n <button\n type=\"button\"\n class=\"sky-btn sky-modal-btn-close\"\n [attr.aria-label]=\"'skyux_modal_close' | skyLibResources\"\n (click)=\"closeButtonClick()\"\n >\n <sky-icon iconName=\"close\" />\n </button>\n </div>\n </div>\n <div\n #modalContentId=\"skyId\"\n #modalContentWrapper\n class=\"sky-modal-content sky-padding-even-large\"\n role=\"region\"\n tabindex=\"0\"\n skyId\n skyLayoutHost\n [layout]=\"layout()\"\n [attr.aria-labelledby]=\"headerId.id\"\n [skyScrollShadowEnabled]=\"scrollShadowEnabled\"\n (skyScrollShadow)=\"scrollShadowChange($event)\"\n >\n <ng-content select=\"sky-modal-content\" />\n </div>\n <div\n class=\"sky-modal-footer\"\n [ngStyle]=\"{\n 'box-shadow': scrollShadow?.bottomShadow\n }\"\n >\n <ng-content select=\"sky-modal-footer\" />\n </div>\n </div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { Component, OnDestroy, inject } from '@angular/core';\nimport { SkyIdModule, SkyIdService } from '@skyux/core';\nimport { SkyLibResourcesService } from '@skyux/i18n';\nimport { SkyThemeModule } from '@skyux/theme';\n\nimport { Observable, ReplaySubject, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { SkyModalContentComponent } from '../modal/modal-content.component';\nimport { SkyModalInstance } from '../modal/modal-instance';\nimport { SkyModalComponent } from '../modal/modal.component';\nimport { SkyModalsResourcesModule } from '../shared/sky-modals-resources.module';\n\nimport { SkyConfirmButton } from './confirm-button';\nimport { SkyConfirmButtonConfig } from './confirm-button-config';\nimport { SkyConfirmCloseEventArgs } from './confirm-closed-event-args';\nimport { SKY_CONFIRM_CONFIG } from './confirm-config-token';\nimport { SkyConfirmInstance } from './confirm-instance';\nimport { SkyConfirmType } from './confirm-type';\n\n/**\n * @internal\n */\n@Component({\n selector: 'sky-confirm',\n templateUrl: './confirm.component.html',\n styleUrls: ['./confirm.component.scss'],\n imports: [\n CommonModule,\n SkyIdModule,\n SkyModalComponent,\n SkyModalContentComponent,\n SkyModalsResourcesModule,\n SkyThemeModule,\n ],\n})\nexport class SkyConfirmComponent implements OnDestroy {\n protected body: string | undefined;\n protected bodyId: string;\n protected buttons: SkyConfirmButton[] | undefined;\n protected isOkType = false;\n protected message: string;\n protected preserveWhiteSpace = false;\n\n #ngUnsubscribe = new Subject<void>();\n\n readonly #config = inject(SKY_CONFIRM_CONFIG);\n readonly #modalInstance = inject(SkyModalInstance);\n readonly #confirmInstance = inject(SkyConfirmInstance);\n readonly #resourcesSvc = inject(SkyLibResourcesService);\n readonly #idSvc = inject(SkyIdService);\n\n constructor() {\n this.#config.type ??= SkyConfirmType.OK;\n\n if (\n this.#config.type === SkyConfirmType.Custom &&\n this.#config.buttons &&\n this.#config.buttons.length > 0\n ) {\n this.buttons = this.#getCustomButtons(this.#config.buttons);\n } else {\n this.#getPresetButtons()\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((buttons) => {\n this.buttons = buttons;\n });\n }\n\n this.message = this.#config.message;\n this.body = this.#config.body;\n\n // Using the service here instead of the directive due to the confirm\n // component's \"body\" container being conditional and thus a template\n // variable being unavailable at an outer scope\n this.bodyId = this.#idSvc.generateId();\n\n this.preserveWhiteSpace = !!this.#config.preserveWhiteSpace;\n this.isOkType = this.#config.type === SkyConfirmType.OK;\n\n // Closes the modal when requested by the confirm instance.\n this.#confirmInstance.closed.subscribe((args) => {\n this.#modalInstance.close(args);\n });\n\n this.#modalInstance.closed.subscribe((args) => {\n // Close the confirm when the \"escape\" key is pressed (passes 'undefined')\n // since this behavior is handled by the underlying modal component.\n if (args.data === undefined) {\n this.#confirmInstance.close({\n action: 'cancel',\n });\n }\n });\n }\n\n public ngOnDestroy(): void {\n this.#ngUnsubscribe.next();\n this.#ngUnsubscribe.complete();\n }\n\n protected close(button: SkyConfirmButton): void {\n const result: SkyConfirmCloseEventArgs = {\n action: button.action,\n };\n\n this.#confirmInstance.close(result);\n }\n\n #getPresetButtons(): Observable<SkyConfirmButton[]> {\n const emitter = new ReplaySubject<SkyConfirmButton[]>(1);\n\n this.#resourcesSvc\n .getStrings({\n cancel: 'skyux_confirm_dialog_default_cancel_text',\n no: 'skyux_confirm_dialog_default_no_text',\n ok: 'skyux_confirm_dialog_default_ok_text',\n yes: 'skyux_confirm_dialog_default_yes_text',\n })\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((values) => {\n const confirmButtons: SkyConfirmButton[] = [];\n\n switch (this.#config.type) {\n case SkyConfirmType.YesNoCancel:\n case SkyConfirmType.YesCancel:\n confirmButtons.push({\n text: values.yes,\n autofocus: true,\n styleType: 'primary',\n action: 'yes',\n });\n\n if (this.#config.type === SkyConfirmType.YesNoCancel) {\n confirmButtons.push({\n text: values.no,\n styleType: 'default',\n action: 'no',\n });\n }\n\n confirmButtons.push({\n text: values.cancel,\n styleType: 'link',\n action: 'cancel',\n });\n break;\n default:\n confirmButtons.push({\n text: values.ok,\n autofocus: true,\n styleType: 'primary',\n action: 'ok',\n });\n }\n\n emitter.next(confirmButtons);\n });\n\n return emitter.asObservable();\n }\n\n #getCustomButtons(\n buttonConfig: SkyConfirmButtonConfig[],\n ): SkyConfirmButton[] {\n return buttonConfig.map(\n (config) =>\n ({\n text: config.text,\n action: config.action,\n styleType: config.styleType || 'default',\n autofocus: config.autofocus || false,\n }) as SkyConfirmButton,\n );\n }\n}\n","<div class=\"sky-confirm\" [ngClass]=\"{ 'sky-confirm-type-ok': isOkType }\">\n <sky-modal\n ariaRole=\"alertdialog\"\n [ariaLabelledBy]=\"confirmMessage.id\"\n [ariaDescribedBy]=\"body ? bodyId : undefined\"\n >\n <sky-modal-content class=\"sky-confirm-content\">\n <!--\n The following \"magic comment\" keeps Prettier from adding line breaks\n inside the div and causing leading and trailing whitespace when\n `preserveWhiteSpace` is `true`.\n https://prettier.io/blog/2018/11/07/1.15.0.html#whitespace-sensitive-formatting\n -->\n <!-- display: inline -->\n <div\n #confirmMessage=\"skyId\"\n class=\"sky-confirm-message\"\n skyId\n [ngClass]=\"{\n 'sky-confirm-preserve-white-space': preserveWhiteSpace\n }\"\n [skyThemeClass]=\"{\n 'sky-font-display-4': 'default',\n 'sky-font-heading-1 sky-font-display-3': 'modern'\n }\"\n >{{ message }}</div\n >\n\n @if (body) {\n <!--\n The following \"magic comment\" keeps Prettier from adding line breaks\n inside the div and causing leading and trailing whitespace when\n `preserveWhiteSpace` is `true`.\n https://prettier.io/blog/2018/11/07/1.15.0.html#whitespace-sensitive-formatting\n -->\n <!-- display: inline -->\n <div\n class=\"sky-confirm-body\"\n [id]=\"bodyId\"\n [ngClass]=\"{\n 'sky-confirm-preserve-white-space': preserveWhiteSpace\n }\"\n >{{ body }}</div\n >\n }\n\n <div class=\"sky-confirm-buttons\">\n @for (button of buttons; track button) {\n <button\n type=\"button\"\n class=\"sky-btn\"\n [ngClass]=\"'sky-btn-' + button.styleType\"\n [skyThemeClass]=\"{\n 'sky-margin-inline-sm': 'modern',\n 'sky-margin-inline-compact': 'default'\n }\"\n [attr.autofocus]=\"button.autofocus ? 'autofocus' : null\"\n (click)=\"close(button)\"\n >\n {{ button.text }}\n </button>\n }\n </div>\n </sky-modal-content>\n </sky-modal>\n</div>\n","import { Inject, Injectable } from '@angular/core';\n\nimport { SkyModalHostContextArgs } from './modal-host-context-args';\n\n/**\n * Provided by the modal service to give the modal host\n * component additional context and features.\n * @internal\n */\n@Injectable()\nexport class SkyModalHostContext {\n constructor(\n @Inject('SkyModalHostContextArgs') public args: SkyModalHostContextArgs,\n ) {}\n}\n","import { ElementRef, Injectable, inject } from '@angular/core';\nimport { SkyAppWindowRef, SkyCoreAdapterService } from '@skyux/core';\n\n/**\n * @internal\n */\n@Injectable()\nexport class SkyModalAdapterService {\n private static readonly MODAL_BODY_FULL_CLASS = 'sky-modal-body-full-page';\n private static readonly MODAL_BODY_CLASS = 'sky-modal-body-open';\n\n #docRef: any;\n #bodyEl: HTMLElement;\n\n #coreAdapter = inject(SkyCoreAdapterService);\n #windowRef: SkyAppWindowRef;\n #hostSiblingAriaHiddenCache = new Map<Element, string | null>();\n\n constructor(windowRef: SkyAppWindowRef) {\n this.#windowRef = windowRef;\n this.#docRef = this.#windowRef.nativeWindow.document;\n this.#bodyEl = this.#windowRef.nativeWindow.document.body;\n }\n\n public toggleFullPageModalClass(isAddFull: boolean): void {\n if (isAddFull) {\n this.#addClassToBody(SkyModalAdapterService.MODAL_BODY_FULL_CLASS);\n } else {\n this.#removeClassFromBody(SkyModalAdapterService.MODAL_BODY_FULL_CLASS);\n }\n }\n\n public setPageScroll(isAdd: boolean): void {\n if (isAdd) {\n this.#addClassToBody(SkyModalAdapterService.MODAL_BODY_CLASS);\n } else {\n this.#removeClassFromBody(SkyModalAdapterService.MODAL_BODY_CLASS);\n }\n }\n\n public getModalOpener(): HTMLElement {\n return this.#docRef.activeElement;\n }\n\n #addClassToBody(className: string): void {\n this.#bodyEl.classList.add(className);\n }\n\n #removeClassFromBody(className: string): void {\n this.#bodyEl.classList.remove(className);\n }\n\n public scrollContentToTop(element: ElementRef): void {\n element.nativeElement.querySelector('.sky-modal-content').scrollTop = 0;\n }\n\n /**\n * Hides siblings of modal-host from screen readers\n * @param hostElRef reference to modal-host element\n */\n public hideHostSiblingsFromScreenReaders(hostElRef: ElementRef): void {\n const hostElement = hostElRef.nativeElement;\n const hostSiblings = hostElement.parentElement?.children;\n\n if (hostSiblings) {\n for (const element of hostSiblings) {\n if (element.contains(document.activeElement)) {\n document.body.focus();\n }\n if (\n element !== hostElement &&\n !element.hasAttribute('aria-live') &&\n element.nodeName.toLowerCase() !== 'script' &&\n element.nodeName.toLowerCase() !== 'style'\n ) {\n // preserve previous aria-hidden status of elements outside of modal host\n this.#hostSiblingAriaHiddenCache.set(\n element,\n element.getAttribute('aria-hidden'),\n );\n element.setAttribute('aria-hidden', 'true');\n }\n }\n }\n }\n\n public focusFirstElement(modalEl: ElementRef): void {\n /* istanbul ignore else */\n /* handle the case where somehow there is a focused element already in the modal */\n if (\n !(\n document.activeElement &&\n modalEl.nativeElement.contains(document.activeElement)\n )\n ) {\n const currentScrollX = window.pageXOffset;\n const currentScrollY = window.pageYOffset;\n\n const inputWithAutofocus =\n modalEl.nativeElement.querySelector('[autofocus]');\n\n if (inputWithAutofocus) {\n inputWithAutofocus.focus();\n } else {\n this.#coreAdapter.getFocusableChildrenAndApplyFocus(\n modalEl,\n '.sky-modal-content',\n true,\n );\n }\n window.scrollTo(currentScrollX, currentScrollY);\n }\n }\n\n /**\n * Restores modal-host siblings to screen reader status prior to modals being opened\n */\n public unhideOrRestoreHostSiblingsFromScreenReaders(): void {\n this.#hostSiblingAriaHiddenCache.forEach((previousValue, element) => {\n // if element had aria-hidden status prior, restore status\n if (element.parentElement) {\n if (previousValue) {\n element.setAttribute('aria-hidden', previousValue);\n } else {\n element.removeAttribute('aria-hidden');\n }\n }\n });\n this.#hostSiblingAriaHiddenCache.clear();\n }\n\n public hidePreviousModalFromScreenReaders(topModal: ElementRef): void {\n if (topModal && topModal.nativeElement.previousElementSibling) {\n topModal.nativeElement.previousElementSibling.setAttribute(\n 'aria-hidden',\n 'true',\n );\n }\n }\n\n public unhidePreviousModalFromScreenReaders(topModal: ElementRef): void {\n if (topModal && topModal.nativeElement.previousElementSibling) {\n topModal.nativeElement.previousElementSibling.removeAttribute(\n 'aria-hidden',\n );\n }\n }\n}\n","import { CommonModule } from '@angular/common';\nimport {\n ChangeDetectorRef,\n Component,\n ElementRef,\n EnvironmentInjector,\n OnDestroy,\n Type,\n ViewChild,\n ViewContainerRef,\n inject,\n} from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { NavigationStart, Router, RouterModule } from '@angular/router';\nimport {\n SKY_STACKING_CONTEXT,\n SkyAppWindowRef,\n SkyDynamicComponentService,\n} from '@skyux/core';\n\nimport { BehaviorSubject } from 'rxjs';\nimport { takeUntil, takeWhile } from 'rxjs/operators';\n\nimport { SkyModalsResourcesModule } from '../shared/sky-modals-resources.module';\n\nimport { SkyModalAdapterService } from './modal-adapter.service';\nimport { SkyModalConfiguration } from './modal-configuration';\nimport { SkyModalHostContext } from './modal-host-context';\nimport { SkyModalHostService } from './modal-host.service';\nimport { SkyModalInstance } from './modal-instance';\nimport { SkyModalConfigurationInterface } from './modal.interface';\n\n/**\n * @internal\n */\n@Component({\n selector: 'sky-modal-host',\n templateUrl: './modal-host.component.html',\n styleUrls: ['./modal-host.component.scss'],\n viewProviders: [SkyModalAdapterService],\n imports: [CommonModule, RouterModule, SkyModalsResourcesModule],\n})\nexport class SkyModalHostComponent implements OnDestroy {\n protected backdropZIndex = toSignal(SkyModalHostService.backdropZIndexChange);\n protected modalCount = toSignal(SkyModalHostService.openModalCountChange);\n\n @ViewChild('target', {\n read: ViewContainerRef,\n static: true,\n })\n public target: ViewContainerRef | undefined;\n\n #modalInstances: SkyModalInstance[] = [];\n\n readonly #adapter = inject(SkyModalAdapterService);\n readonly #changeDetector = inject(ChangeDetectorRef);\n readonly #dynamicComponentSvc = inject(SkyDynamicComponentService);\n readonly #elRef = inject(ElementRef);\n readonly #environmentInjector = inject(EnvironmentInjector);\n readonly #modalHostContext = inject(SkyModalHostContext);\n readonly #router = inject(Router, { optional: true });\n readonly #windowRef = inject(SkyAppWindowRef);\n\n public ngOnDestroy(): void {\n // Close all modal instances before disposing of the host container.\n this.#closeAllModalInstances();\n this.#modalHostContext.args.teardownCallback();\n }\n\n public open<T>(\n modalInstance: SkyModalInstance,\n component: Type<T>,\n config?: SkyModalConfigurationInterface,\n environmentInjector?: EnvironmentInjector,\n ): void {\n /* Ignore coverage as we specify the target element and so the view child should never be undefined unless\n * we were to call the `open` method in an early lifecycle hook. */\n /* istanbul ignore next */\n if (!this.target) {\n return;\n }\n\n const params: SkyModalConfigurationInterface = Object.assign({}, config);\n\n const hostService = new SkyModalHostService();\n hostService.fullPage = !!params.fullPage;\n\n const adapter = this.#adapter;\n const modalOpener: HTMLElement = adapter.getModalOpener();\n\n let isOpen = true;\n\n params.providers ||= [];\n params.providers.push(\n {\n provide: SkyModalHostService,\n useValue: hostService,\n },\n {\n provide: SkyModalConfiguration,\n useValue: params,\n },\n {\n provide: SKY_STACKING_CONTEXT,\n useValue: {\n zIndex: new BehaviorSubject(hostService.getModalZIndex())\n .asObservable()\n .pipe(takeUntil(modalInstance.closed)),\n },\n },\n );\n\n adapter.setPageScroll(SkyModalHostService.openModalCount > 0);\n adapter.toggleFullPageModalClass(\n SkyModalHostService.fullPageModalCount > 0,\n );\n\n environmentInjector ||= this.#environmentInjector;\n const modalComponentRef = this.#dynamicComponentSvc.createComponent(\n component,\n {\n environmentInjector: environmentInjector,\n providers: params.providers,\n viewContainerRef: this.target,\n },\n );\n\n // modal element that was just opened\n const modalElement = modalComponentRef.location;\n\n modalInstance.adapter = this.#adapter;\n modalInstance.componentRef = modalComponentRef;\n\n this.#registerModalInstance(modalInstance);\n\n // Adding a timeout to avoid ExpressionChangedAfterItHasBeenCheckedError.\n // https://stackoverflow.com/questions/40562845\n this.#windowRef.nativeWindow.setTimeout(() => {\n this.#adapter.focusFirstElement(modalElement);\n\n // hiding all elements at the modal-host level from screen readers when the a modal is opened\n this.#adapter.hideHostSiblingsFromScreenReaders(this.#elRef);\n if (\n SkyModalHostService.openModalCount > 1 &&\n SkyModalHostService.topModal === hostService\n ) {\n // hiding the lower modals when more than one modal is opened\n this.#adapter.hidePreviousModalFromScreenReaders(modalElement);\n }\n });\n\n const closeModal = (): void => {\n // unhide siblings if last modal is closing\n if (SkyModalHostService.openModalCount === 1) {\n this.#adapter.unhideOrRestoreHostSiblingsFromScreenReaders();\n } else if (SkyModalHostService.topModal === hostService) {\n // if there are more than 1 modal then unhide the one behind this one before closing it\n this.#adapter.unhidePreviousModalFromScreenReaders(modalElement);\n }\n\n hostService.destroy();\n adapter.setPageScroll(SkyModalHostService.openModalCount > 0);\n adapter.toggleFullPageModalClass(\n SkyModalHostService.fullPageModalCount > 0,\n );\n /* istanbul ignore else */\n /* sanity check */\n if (modalOpener && modalOpener.focus) {\n modalOpener.focus();\n }\n modalComponentRef.destroy();\n };\n\n hostService.openHelp.subscribe((helpKey) => {\n modalInstance.openHelp(helpKey);\n });\n\n hostService.close.subscribe(() => {\n modalInstance.close();\n });\n\n this.#router?.events.pipe(takeWhile(() => isOpen)).subscribe((event) => {\n /* istanbul ignore else */\n if (event instanceof NavigationStart) {\n modalInstance.close();\n }\n });\n\n modalInstance.closed.subscribe(() => {\n isOpen = false;\n this.#unregisterModalInstance(modalInstance);\n closeModal();\n });\n\n // Necessary if the host was created via a consumer's lifecycle hook such as ngOnInit\n this.#changeDetector.detectChanges();\n }\n\n #registerModalInstance(instance: SkyModalInstance): void {\n this.#modalInstances.push(instance);\n }\n\n #unregisterModalInstance(instance: SkyModalInstance): void {\n this.#modalInstances.slice(this.#modalInstances.indexOf(instance), 1);\n }\n\n #closeAllModalInstances(): void {\n for (const instance of this.#modalInstances) {\n instance.close();\n }\n }\n}\n","<div\n class=\"sky-modal-host-backdrop\"\n [hidden]=\"modalCount() === 0\"\n [ngStyle]=\"{\n zIndex: backdropZIndex()\n }\"\n></div>\n<div #target></div>\n","import {\n ComponentRef,\n EnvironmentInjector,\n Injectable,\n inject,\n} from '@angular/core';\nimport {\n SkyDynamicComponentLegacyService,\n SkyDynamicComponentService,\n} from '@skyux/core';\n\nimport { SkyModalHostContext } from './modal-host-context';\nimport { SkyModalHostComponent } from './modal-host.component';\nimport { SkyModalInstance } from './modal-instance';\nimport { SkyModalServiceInterface } from './modal-service-interface';\nimport { SkyModalConfigurationInterface } from './modal.interface';\n\n/**\n * A service that launches modals.\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class SkyModalService implements SkyModalServiceInterface {\n private static host: ComponentRef<SkyModalHostComponent> | undefined; // <-- how do we handle only having one of these?\n\n #dynamicComponentService: SkyDynamicComponentService;\n #environmentInjector = inject(EnvironmentInjector);\n\n constructor(dynamicComponentService: SkyDynamicComponentService) {\n this.#dynamicComponentService = dynamicComponentService;\n }\n\n /**\n * @internal\n * Removes the modal host from the DOM.\n */\n public dispose(): void {\n if (SkyModalService.host) {\n this.#dynamicComponentService.removeComponent(SkyModalService.host);\n SkyModalService.host = undefined;\n }\n }\n\n /**\n * Opens a modal using the specified component.\n * @param component Determines the component to render.\n * @param {SkyModalConfigurationInterface} config Specifies configuration options for the modal.\n */\n public open(\n component: any,\n config?: SkyModalConfigurationInterface | any[],\n ): SkyModalInstance {\n const modalInstance = new SkyModalInstance();\n\n if (!SkyModalService.host) {\n SkyModalService.host = this.#createHostComponent();\n }\n\n const params = this.#getConfigFromParameter(config);\n\n params.providers ||= [];\n params.providers.push({\n provide: SkyModalInstance,\n useValue: modalInstance,\n });\n\n if (SkyModalService.host) {\n SkyModalService.host.instance.open(\n modalInstance,\n component,\n params,\n this.#environmentInjector,\n );\n }\n\n return modalInstance;\n }\n\n #getConfigFromParameter(\n providersOrConfig: any,\n ): SkyModalConfigurationInterface {\n const defaultParams: SkyModalConfigurationInterface = {\n providers: [],\n fullPage: false,\n size: 'medium',\n tiledBody: false,\n };\n let params: SkyModalConfigurationInterface = {};\n let method: any = undefined;\n\n // Object Literal Lookup for backwards compatibility.\n method = {\n 'providers?': Object.assign({}, defaultParams, {\n providers: providersOrConfig,\n }),\n config: Object.assign({}, defaultParams, providersOrConfig),\n };\n\n if (Array.isArray(providersOrConfig) === true) {\n params = method['providers?'];\n } else {\n params = method['config'];\n }\n\n return params;\n }\n\n #createHostComponent(): ComponentRef<SkyModalHostComponent> {\n const componentRef = this.#dynamicComponentService.createComponent(\n SkyModalHostComponent,\n {\n environmentInjector: this.#environmentInjector,\n providers: [\n {\n provide: SkyModalHostContext,\n useValue: new SkyModalHostContext({\n teardownCallback: (): void => {\n this.dispose();\n },\n }),\n },\n ],\n },\n );\n\n return componentRef;\n }\n}\n\n/**\n * A service that launches modals.\n * @internal\n * @deprecated Use `SkyModalService` to open a standalone component instead.\n */\n@Injectable({\n // Must be 'any' so that the modal component is created in the context of its module's injector.\n // If set to 'root', the component's dependency injections would only be derived from the root\n // injector and may lose context if the modal was opened from within a lazy-loaded module.\n providedIn: 'any',\n})\nexport class SkyModalLegacyService extends SkyModalService {\n /* istanbul ignore next */\n constructor(dynamicComponentSvc: SkyDynamicComponentLegacyService) {\n super(dynamicComponentSvc);\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { SkyModalService } from '../modal/modal.service';\n\nimport { SkyConfirmConfig } from './confirm-config';\nimport { SKY_CONFIRM_CONFIG } from './confirm-config-token';\nimport { SkyConfirmInstance } from './confirm-instance';\nimport { SkyConfirmServiceInterface } from './confirm-service-interface';\nimport { SkyConfirmComponent } from './confirm.component';\n\n/**\n * Launches a dialog.\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class SkyConfirmService implements SkyConfirmServiceInterface {\n #modalService: SkyModalService;\n\n constructor(modalService: SkyModalService) {\n this.#modalService = modalService;\n }\n\n /**\n * Opens a dialog using the specified options.\n * @param config Specifies configuration options for the dialog.\n */\n public open(config: SkyConfirmConfig): SkyConfirmInstance {\n const confirmInstance = new SkyConfirmInstance();\n\n this.#modalService.open(SkyConfirmComponent, {\n providers: [\n {\n provide: SKY_CONFIRM_CONFIG,\n useValue: config,\n },\n {\n provide: SkyConfirmInstance,\n useValue: confirmInstance,\n },\n ],\n });\n\n return confirmInstance;\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, ViewEncapsulation, inject } from '@angular/core';\nimport { SkyResponsiveHostDirective } from '@skyux/core';\nimport { SkyStatusIndicatorModule } from '@skyux/indicators';\n\nimport { SkyModalErrorsService } from './modal-errors.service';\n\n/**\n * Specifies content to display in the modal's footer.\n */\n@Component({\n hostDirectives: [SkyResponsiveHostDirective],\n selector: 'sky-modal-footer',\n templateUrl: './modal-footer.component.html',\n styleUrls: ['./modal-footer.component.scss'],\n encapsulation: ViewEncapsulation.None,\n imports: [CommonModule, SkyStatusIndicatorModule],\n})\nexport class SkyModalFooterComponent {\n protected readonly errorsSvc = inject(SkyModalErrorsService);\n}\n","<div class=\"sky-modal-footer-container sky-padding-even-large\">\n <div aria-live=\"polite\">\n @if (errorsSvc.formErrors | async; as formErrors) {\n @if (formErrors.length > 0) {\n <div class=\"sky-modal-footer-errors sky-margin-stacked-lg\" tabindex=\"0\">\n @for (formError of formErrors; track formError) {\n <sky-status-indicator\n descriptionType=\"error\"\n indicatorType=\"danger\"\n [ngClass]=\"{\n 'sky-margin-stacked-lg':\n formErrors.indexOf(formError) < formErrors.length - 1,\n 'footer-error': true\n }\"\n >\n {{ formError.message }}\n </sky-status-indicator>\n }\n </div>\n }\n }\n </div>\n <ng-content />\n</div>\n","import {\n Directive,\n HostBinding,\n Input,\n OnDestroy,\n OnInit,\n inject,\n} from '@angular/core';\nimport { SkyLibResourcesService } from '@skyux/i18n';\n\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { SkyConfirmType } from '../confirm/confirm-type';\nimport { SkyConfirmService } from '../confirm/confirm.service';\n\nimport { SkyModalBeforeCloseHandler } from './modal-before-close-handler';\nimport { SkyModalInstance } from './modal-instance';\n\n/**\n * Provides a way to mark a modal as \"dirty\" and displays a confirmation\n * message when a user closes the modal without saving.\n */\n@Directive({\n standalone: true,\n // Since this is limited to sky-modal, it should be safe to\n // leave off the sky prefix.\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'sky-modal[isDirty]',\n})\nexport class SkyModalIsDirtyDirective implements OnInit, OnDestroy {\n /**\n * Whether the user edited an input on the modal.\n * @required\n */\n @Input()\n // This attribute is being applied to the host to support\n // unit testing this feature.\n @HostBinding('attr.data-sky-modal-is-dirty')\n public isDirty = false;\n\n readonly #ngUnsubscribe = new Subject<void>();\n\n readonly #modalInstance = inject(SkyModalInstance);\n readonly #confirmSvc = inject(SkyConfirmService);\n readonly #resourcesSvc = inject(SkyLibResourcesService);\n\n public ngOnInit(): void {\n this.#modalInstance.beforeClose\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((handler) => this.#promptIfDirty(handler));\n }\n\n public ngOnDestroy(): void {\n this.#ngUnsubscribe.next();\n this.#ngUnsubscribe.complete();\n }\n\n #promptIfDirty(handler: SkyModalBeforeCloseHandler): void {\n if (\n this.isDirty &&\n (handler.closeArgs.reason === 'close' ||\n handler.closeArgs.reason === 'cancel')\n ) {\n this.#resourcesSvc\n .getStrings({\n message: 'skyux_modal_dirty_default_message',\n discardActionText: 'skyux_modal_dirty_default_discard_changes_text',\n keepActionText: 'skyux_modal_dirty_default_keep_working_text',\n })\n .subscribe((textValues) => {\n const discardAction = 'discard';\n const keepAction = 'keep';\n\n this.#confirmSvc\n .open({\n message: textValues.message,\n buttons: [\n {\n action: discardAction,\n text: textValues.discardActionText,\n styleType: 'primary',\n },\n {\n action: keepAction,\n text: textValues.keepActionText,\n styleType: 'link',\n },\n ],\n type: SkyConfirmType.Custom,\n })\n .closed.subscribe((args) => {\n if (args.action === discardAction) {\n handler.closeModal();\n }\n });\n });\n } else {\n handler.closeModal();\n }\n }\n}\n","import { NgModule } from '@angular/core';\n\nimport { SkyModalContentComponent } from './modal-content.component';\nimport { SkyModalFooterComponent } from './modal-footer.component';\nimport { SkyModalHeaderComponent } from './modal-header.component';\nimport { SkyModalIsDirtyDirective } from './modal-is-dirty.directive';\nimport { SkyModalComponent } from './modal.component';\n\n@NgModule({\n imports: [\n SkyModalComponent,\n SkyModalContentComponent,\n SkyModalFooterComponent,\n SkyModalHeaderComponent,\n SkyModalIsDirtyDirective,\n ],\n exports: [\n SkyModalComponent,\n SkyModalContentComponent,\n SkyModalFooterComponent,\n SkyModalHeaderComponent,\n SkyModalIsDirtyDirective,\n ],\n})\nexport class SkyModalModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i2","i1","i3","i1.SkyModalService"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@skyux/modals",
|
|
3
|
-
"version": "12.
|
|
3
|
+
"version": "12.5.0",
|
|
4
4
|
"author": "Blackbaud, Inc.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"blackbaud",
|
|
@@ -16,16 +16,16 @@
|
|
|
16
16
|
},
|
|
17
17
|
"homepage": "https://github.com/blackbaud/skyux#readme",
|
|
18
18
|
"peerDependencies": {
|
|
19
|
-
"@angular/cdk": "^19.2.
|
|
20
|
-
"@angular/common": "^19.2.
|
|
21
|
-
"@angular/core": "^19.2.
|
|
22
|
-
"@angular/router": "^19.2.
|
|
23
|
-
"@skyux/core": "12.
|
|
24
|
-
"@skyux/help-inline": "12.
|
|
25
|
-
"@skyux/i18n": "12.
|
|
26
|
-
"@skyux/icon": "12.
|
|
27
|
-
"@skyux/indicators": "12.
|
|
28
|
-
"@skyux/theme": "12.
|
|
19
|
+
"@angular/cdk": "^19.2.10",
|
|
20
|
+
"@angular/common": "^19.2.7",
|
|
21
|
+
"@angular/core": "^19.2.7",
|
|
22
|
+
"@angular/router": "^19.2.7",
|
|
23
|
+
"@skyux/core": "12.5.0",
|
|
24
|
+
"@skyux/help-inline": "12.5.0",
|
|
25
|
+
"@skyux/i18n": "12.5.0",
|
|
26
|
+
"@skyux/icon": "12.5.0",
|
|
27
|
+
"@skyux/indicators": "12.5.0",
|
|
28
|
+
"@skyux/theme": "12.5.0"
|
|
29
29
|
},
|
|
30
30
|
"dependencies": {
|
|
31
31
|
"tslib": "^2.8.1"
|