@skyux/modals 12.4.0 → 12.6.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 +74 -70
- 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()],
|
|
@@ -4,7 +4,7 @@ import { NgModule, InjectionToken, ViewEncapsulation, Component, Injectable, inp
|
|
|
4
4
|
import * as i1$2 from '@angular/common';
|
|
5
5
|
import { CommonModule } from '@angular/common';
|
|
6
6
|
import * as i1 from '@skyux/core';
|
|
7
|
-
import { SkyResponsiveHostDirective, SkyTrimModule, SkyCoreAdapterService, SkyDockService, SkyLiveAnnouncerService, SkyDockLocation, SkyIdModule,
|
|
7
|
+
import { SkyResponsiveHostDirective, SkyTrimModule, SkyCoreAdapterService, SkyDockService, SkyLiveAnnouncerService, SkyDockLocation, SkyIdModule, SkyLayoutHostDirective, SkyScrollShadowDirective, SkyIdService, SkyDynamicComponentService, SkyAppWindowRef, SKY_STACKING_CONTEXT } from '@skyux/core';
|
|
8
8
|
import * as i5 from '@skyux/i18n';
|
|
9
9
|
import { SkyLibResourcesService, SkyI18nModule } from '@skyux/i18n';
|
|
10
10
|
import * as i1$1 from '@skyux/theme';
|
|
@@ -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,12 +88,12 @@ 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:not(.sky-theme-modern *){--sky-override-modal-content-padding: 0}sky-modal-content{display:block;min-height:100%;padding:var(--sky-override-modal-content-padding, var(--sky-space-inset-floated-top-m) var(--sky-space-inset-floated-right-m) var(--sky-space-inset-floated-bottom-m) var(--sky-space-inset-floated-left-m))}\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
|
-
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
|
|
96
|
+
args: [{ hostDirectives: [SkyResponsiveHostDirective], standalone: true, selector: 'sky-modal-content', encapsulation: ViewEncapsulation.None, template: "<ng-content />\n", styles: [".sky-modal:not(.sky-theme-modern *){--sky-override-modal-content-padding: 0}sky-modal-content{display:block;min-height:100%;padding:var(--sky-override-modal-content-padding, var(--sky-space-inset-floated-top-m) var(--sky-space-inset-floated-right-m) var(--sky-space-inset-floated-bottom-m) var(--sky-space-inset-floated-left-m))}\n"] }]
|
|
97
97
|
}] });
|
|
98
98
|
|
|
99
99
|
/**
|
|
@@ -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],
|
|
@@ -306,10 +306,13 @@ class SkyModalComponentAdapterService {
|
|
|
306
306
|
handleWindowChange(modalEl) {
|
|
307
307
|
const boundedHeightEl = modalEl.nativeElement.querySelector('.sky-modal');
|
|
308
308
|
const fullPageModalEl = modalEl.nativeElement.querySelector('.sky-modal-full-page');
|
|
309
|
+
const modalStyle = getComputedStyle(boundedHeightEl);
|
|
310
|
+
const marginTopBottom = parseInt(modalStyle.marginTop, 10) +
|
|
311
|
+
parseInt(modalStyle.marginBottom, 10);
|
|
309
312
|
/*
|
|
310
313
|
Set modal height equal to max height of window (accounting for padding above and below modal)
|
|
311
314
|
*/
|
|
312
|
-
const newHeight = window.innerHeight -
|
|
315
|
+
const newHeight = window.innerHeight - marginTopBottom;
|
|
313
316
|
boundedHeightEl.style.maxHeight = newHeight.toString() + 'px';
|
|
314
317
|
boundedHeightEl.style.setProperty('--sky-modal-content-max-height', boundedHeightEl.style.maxHeight);
|
|
315
318
|
if (fullPageModalEl) {
|
|
@@ -361,10 +364,10 @@ class SkyModalComponentAdapterService {
|
|
|
361
364
|
fullPageModalEl.style.height = fullPageModalHeight;
|
|
362
365
|
fullPageModalEl.style.maxHeight = fullPageModalHeight;
|
|
363
366
|
}
|
|
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.
|
|
367
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkyModalComponentAdapterService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
368
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkyModalComponentAdapterService }); }
|
|
366
369
|
}
|
|
367
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
370
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkyModalComponentAdapterService, decorators: [{
|
|
368
371
|
type: Injectable
|
|
369
372
|
}] });
|
|
370
373
|
|
|
@@ -375,10 +378,10 @@ class SkyModalConfiguration {
|
|
|
375
378
|
constructor() {
|
|
376
379
|
this.size = 'medium';
|
|
377
380
|
}
|
|
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.
|
|
381
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkyModalConfiguration, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
382
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkyModalConfiguration }); }
|
|
380
383
|
}
|
|
381
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
384
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkyModalConfiguration, decorators: [{
|
|
382
385
|
type: Injectable
|
|
383
386
|
}], ctorParameters: () => [] });
|
|
384
387
|
|
|
@@ -393,10 +396,10 @@ class SkyModalErrorsService {
|
|
|
393
396
|
updateErrors(value) {
|
|
394
397
|
this.#formErrors.next(value);
|
|
395
398
|
}
|
|
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.
|
|
399
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkyModalErrorsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
400
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkyModalErrorsService }); }
|
|
398
401
|
}
|
|
399
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
402
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkyModalErrorsService, decorators: [{
|
|
400
403
|
type: Injectable
|
|
401
404
|
}], ctorParameters: () => [] });
|
|
402
405
|
|
|
@@ -404,12 +407,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImpor
|
|
|
404
407
|
* Specifies a header for the modal.
|
|
405
408
|
*/
|
|
406
409
|
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.
|
|
410
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkyModalHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
411
|
+
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: [".sky-modal-heading:not(.sky-theme-modern *){--sky-override-modal-h2-line-height: 1.2}:host-context(.sky-theme-modern:not(.sky-theme-brand-base)) .sky-modal-heading{--sky-override-modal-h2-line-height: 1.2}h2{line-height:var(--sky-override-modal-h2-line-height, inherit);display:inline}\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
412
|
}
|
|
410
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
413
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkyModalHeaderComponent, decorators: [{
|
|
411
414
|
type: Component,
|
|
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
|
|
415
|
+
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: [".sky-modal-heading:not(.sky-theme-modern *){--sky-override-modal-h2-line-height: 1.2}:host-context(.sky-theme-modern:not(.sky-theme-brand-base)) .sky-modal-heading{--sky-override-modal-h2-line-height: 1.2}h2{line-height:var(--sky-override-modal-h2-line-height, inherit);display:inline}\n"] }]
|
|
413
416
|
}] });
|
|
414
417
|
|
|
415
418
|
var _a;
|
|
@@ -493,11 +496,11 @@ class SkyModalHostService {
|
|
|
493
496
|
#notifyBackdropZIndex() {
|
|
494
497
|
backdropZIndex.next(_a.backdropZIndex);
|
|
495
498
|
}
|
|
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.
|
|
499
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkyModalHostService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
500
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkyModalHostService, providedIn: 'root' }); }
|
|
498
501
|
}
|
|
499
502
|
_a = SkyModalHostService;
|
|
500
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
503
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkyModalHostService, decorators: [{
|
|
501
504
|
type: Injectable,
|
|
502
505
|
args: [{
|
|
503
506
|
providedIn: 'root',
|
|
@@ -697,14 +700,14 @@ class SkyModalComponent {
|
|
|
697
700
|
viewkeeperEnabled() {
|
|
698
701
|
return this.#componentAdapter.modalContentHasDirectChildViewkeeper(this.#elRef);
|
|
699
702
|
}
|
|
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.
|
|
703
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkyModalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
704
|
+
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
705
|
SkyModalComponentAdapterService,
|
|
703
706
|
SkyModalErrorsService,
|
|
704
707
|
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 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", 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"] }] }); }
|
|
708
|
+
], 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\"\n role=\"region\"\n tabindex=\"0\"\n skyId\n skyLayoutHost\n [layout]=\"layout()\"\n [attr.aria-labelledby]=\"headerId.id\"\n [skyScrollShadowEnabled]=\"scrollShadowEnabled\"\n [skyThemeClass]=\"{\n 'sky-padding-even-large': 'default'\n }\"\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: [".sky-modal:not(.sky-theme-modern *){--sky-override-modal-background-color: #fff;--sky-override-modal-border: 1px solid #cdcfd2;--sky-override-modal-dock-bottom: -15px;--sky-override-modal-dock-margin-left-right-bottom: -15px;--sky-override-modal-dock-padding-top: 15px;--sky-override-modal-dock-width: calc(100% + 30px) ;--sky-override-modal-full-page-margin-xs: 0;--sky-override-modal-full-page-margin: 0;--sky-override-modal-full-page-width: 100%;--sky-override-modal-header-bottom-border: 1px solid #e2e3e4;--sky-override-modal-header-padding: 9px 3px 9px 15px;--sky-override-modal-help-close-display: inline-block;--sky-override-modal-margin: 20px auto;--sky-override-modal-viewkept-toolbar-box-shadow: none;--sky-override-modal-viewkept-toolbar-padding-horizontal: 10px;--sky-override-modal-width-l: 900px;--sky-override-modal-width-m: 600px;--sky-override-modal-width-s: 300px;--sky-override-modal-xs-margin: 30px 10px 10px 10px}:host-context(.sky-theme-modern:not(.sky-theme-brand-base)) .sky-modal{--sky-override-modal-full-page-margin-xs: 30px;--sky-override-modal-header-top-bottom-padding: 20px;--sky-override-modal-viewkept-toolbar-box-shadow: 0px 4px 8px -4px rgba(0, 0, 0, .3);--sky-override-modal-xs-margin: 30px 10px 10px 10px}:host{--sky-viewport-top: 0;--sky-viewport-bottom: 0;--sky-viewport-left: 0;--sky-viewport-right: 0}.sky-modal{border:var(--sky-override-modal-border, var(--sky-border-width-container-base) solid var(--sky-color-border-container-base));position:fixed;width:auto;left:0;right:0;top:0;margin:var(--sky-override-modal-xs-margin, var(--sky-space-inset-balanced-fixed-s));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-style:dotted;outline-width:thin;outline-offset:-1px}.sky-modal-header:has(.sky-modal-header-content:empty){display:none}.sky-modal-btn-help,.sky-modal-btn-close{display:var(--sky-override-modal-help-close-display, none)}.sky-modal-full-page{width:var(--sky-override-modal-full-page-width, calc(100% - var(--sky-override-modal-full-page-margin-xs, var(--sky-space-inset-balanced-fixed-s)) * 2));margin:var(--sky-override-modal-full-page-margin-xs, var(--sky-space-inset-balanced-fixed-s))}@media (min-width: 768px){.sky-modal:not(.sky-modal-full-page){margin:var(--sky-override-modal-margin, var(--sky-space-inset-vertical-fixed-top-l) auto var(--sky-space-inset-vertical-fixed-bottom-l))}.sky-modal-small{width:var(--sky-override-modal-width-s, var(--sky-size-width-modal-s))}.sky-modal-small .sky-modal-content,.sky-modal-small .sky-modal-header,.sky-modal-small .sky-modal-footer{max-width:var(--sky-override-modal-width-s, var(--sky-size-width-modal-s))}.sky-modal-medium{width:var(--sky-override-modal-width-m, var(--sky-size-width-modal-m))}.sky-modal-medium .sky-modal-content,.sky-modal-medium .sky-modal-header,.sky-modal-medium .sky-modal-footer{max-width:var(--sky-override-modal-width-m, var(--sky-size-width-modal-m))}.sky-modal-full-page{width:var(--sky-override-modal-full-page-width, calc(100% - var(--sky-space-inset-balanced-fixed-xl) * 2));margin:var(--sky-override-modal-full-page-margin, var(--sky-space-inset-balanced-fixed-xl))}}@media (min-width: 920px){.sky-modal-large{width:var(--sky-override-modal-width-l, var(--sky-size-width-modal-l))}.sky-modal-large .sky-modal-content,.sky-modal-large .sky-modal-header,.sky-modal-large .sky-modal-footer{max-width:var(--sky-override-modal-width-l, var(--sky-size-width-modal-l))}}.sky-modal-content{background-color:var(--sky-override-modal-background-color, var(--sky-color-background-container-base));--sky-background-color-page-default: var( --sky-override-modal-background-color, var(--sky-color-background-container-base) )}.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:var(--sky-override-modal-header-padding, var(--sky-override-modal-header-top-bottom-padding, var(--sky-space-inset-pillarbox-1_2-top-l)) var(--sky-space-inset-pillarbox-1_2-right-l) var(--sky-override-modal-header-top-bottom-padding, var(--sky-space-inset-pillarbox-1_2-bottom-l)) var(--sky-space-inset-pillarbox-1_2-left-l));background-color:var(--sky-override-modal-background-color, var(--sky-color-background-container-base));border-bottom:var(--sky-override-modal-header-bottom-border);display:flex;align-items:baseline}.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 .sky-modal-content{flex-grow:1}.sky-modal-content>::ng-deep sky-dock{bottom:var(--sky-override-modal-dock-bottom, 0);margin-left:var(--sky-override-modal-dock-margin-left-right-bottom, initial);margin-right:var(--sky-override-modal-dock-margin-left-right-bottom, initial);margin-bottom:var(--sky-override-modal-dock-margin-left-right-bottom, initial);padding-top:var(--sky-override-modal-dock-padding-top, initial);width:var(--sky-override-modal-dock-width, 100%)}.sky-modal-viewkeeper .sky-modal-header{box-shadow:none!important}.sky-modal-viewkeeper .sky-modal-content ::ng-deep sky-modal-content>.sky-viewkeeper-fixed{box-shadow:var(--sky-override-modal-viewkept-toolbar-box-shadow, var(--sky-elevation-overflow))}.sky-modal-viewkeeper .sky-modal-content ::ng-deep sky-modal-content>.sky-viewkeeper-fixed>sky-toolbar .sky-toolbar-container{background-color:var(--sky-override-modal-background-color, var(--sky-color-background-container-base));--sky-background-color-page-default: var( --sky-override-modal-background-color, var(--sky-color-background-container-base) );padding-left:var(--sky-override-modal-viewkept-toolbar-padding-horizontal, var(--sky-space-inset-pillarbox-1_2-left-l));padding-right:var(--sky-override-modal-viewkept-toolbar-padding-horizontal, var(--sky-space-inset-pillarbox-1_2-right-l))}\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: "directive", type: SkyLayoutHostDirective, selector: "[skyLayoutHost]", inputs: ["layout"] }, { kind: "component", type: SkyModalHeaderComponent, selector: "sky-modal-header" }, { kind: "ngmodule", type: SkyModalsResourcesModule }, { kind: "pipe", type: i5.SkyLibResourcesPipe, name: "skyLibResources" }, { kind: "directive", type: SkyScrollShadowDirective, selector: "[skyScrollShadow]", inputs: ["skyScrollShadowEnabled"], outputs: ["skyScrollShadow"] }, { kind: "ngmodule", type: SkyThemeModule }, { kind: "directive", type: i1$1.λ2, selector: "[skyThemeClass]", inputs: ["class", "skyThemeClass"] }] }); }
|
|
706
709
|
}
|
|
707
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
710
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkyModalComponent, decorators: [{
|
|
708
711
|
type: Component,
|
|
709
712
|
args: [{ selector: 'sky-modal', providers: [
|
|
710
713
|
SkyModalComponentAdapterService,
|
|
@@ -715,11 +718,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImpor
|
|
|
715
718
|
SkyHelpInlineModule,
|
|
716
719
|
SkyIconModule,
|
|
717
720
|
SkyIdModule,
|
|
721
|
+
SkyLayoutHostDirective,
|
|
718
722
|
SkyModalHeaderComponent,
|
|
719
|
-
SkyScrollShadowDirective,
|
|
720
723
|
SkyModalsResourcesModule,
|
|
721
|
-
|
|
722
|
-
|
|
724
|
+
SkyScrollShadowDirective,
|
|
725
|
+
SkyThemeModule,
|
|
726
|
+
], 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\"\n role=\"region\"\n tabindex=\"0\"\n skyId\n skyLayoutHost\n [layout]=\"layout()\"\n [attr.aria-labelledby]=\"headerId.id\"\n [skyScrollShadowEnabled]=\"scrollShadowEnabled\"\n [skyThemeClass]=\"{\n 'sky-padding-even-large': 'default'\n }\"\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: [".sky-modal:not(.sky-theme-modern *){--sky-override-modal-background-color: #fff;--sky-override-modal-border: 1px solid #cdcfd2;--sky-override-modal-dock-bottom: -15px;--sky-override-modal-dock-margin-left-right-bottom: -15px;--sky-override-modal-dock-padding-top: 15px;--sky-override-modal-dock-width: calc(100% + 30px) ;--sky-override-modal-full-page-margin-xs: 0;--sky-override-modal-full-page-margin: 0;--sky-override-modal-full-page-width: 100%;--sky-override-modal-header-bottom-border: 1px solid #e2e3e4;--sky-override-modal-header-padding: 9px 3px 9px 15px;--sky-override-modal-help-close-display: inline-block;--sky-override-modal-margin: 20px auto;--sky-override-modal-viewkept-toolbar-box-shadow: none;--sky-override-modal-viewkept-toolbar-padding-horizontal: 10px;--sky-override-modal-width-l: 900px;--sky-override-modal-width-m: 600px;--sky-override-modal-width-s: 300px;--sky-override-modal-xs-margin: 30px 10px 10px 10px}:host-context(.sky-theme-modern:not(.sky-theme-brand-base)) .sky-modal{--sky-override-modal-full-page-margin-xs: 30px;--sky-override-modal-header-top-bottom-padding: 20px;--sky-override-modal-viewkept-toolbar-box-shadow: 0px 4px 8px -4px rgba(0, 0, 0, .3);--sky-override-modal-xs-margin: 30px 10px 10px 10px}:host{--sky-viewport-top: 0;--sky-viewport-bottom: 0;--sky-viewport-left: 0;--sky-viewport-right: 0}.sky-modal{border:var(--sky-override-modal-border, var(--sky-border-width-container-base) solid var(--sky-color-border-container-base));position:fixed;width:auto;left:0;right:0;top:0;margin:var(--sky-override-modal-xs-margin, var(--sky-space-inset-balanced-fixed-s));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-style:dotted;outline-width:thin;outline-offset:-1px}.sky-modal-header:has(.sky-modal-header-content:empty){display:none}.sky-modal-btn-help,.sky-modal-btn-close{display:var(--sky-override-modal-help-close-display, none)}.sky-modal-full-page{width:var(--sky-override-modal-full-page-width, calc(100% - var(--sky-override-modal-full-page-margin-xs, var(--sky-space-inset-balanced-fixed-s)) * 2));margin:var(--sky-override-modal-full-page-margin-xs, var(--sky-space-inset-balanced-fixed-s))}@media (min-width: 768px){.sky-modal:not(.sky-modal-full-page){margin:var(--sky-override-modal-margin, var(--sky-space-inset-vertical-fixed-top-l) auto var(--sky-space-inset-vertical-fixed-bottom-l))}.sky-modal-small{width:var(--sky-override-modal-width-s, var(--sky-size-width-modal-s))}.sky-modal-small .sky-modal-content,.sky-modal-small .sky-modal-header,.sky-modal-small .sky-modal-footer{max-width:var(--sky-override-modal-width-s, var(--sky-size-width-modal-s))}.sky-modal-medium{width:var(--sky-override-modal-width-m, var(--sky-size-width-modal-m))}.sky-modal-medium .sky-modal-content,.sky-modal-medium .sky-modal-header,.sky-modal-medium .sky-modal-footer{max-width:var(--sky-override-modal-width-m, var(--sky-size-width-modal-m))}.sky-modal-full-page{width:var(--sky-override-modal-full-page-width, calc(100% - var(--sky-space-inset-balanced-fixed-xl) * 2));margin:var(--sky-override-modal-full-page-margin, var(--sky-space-inset-balanced-fixed-xl))}}@media (min-width: 920px){.sky-modal-large{width:var(--sky-override-modal-width-l, var(--sky-size-width-modal-l))}.sky-modal-large .sky-modal-content,.sky-modal-large .sky-modal-header,.sky-modal-large .sky-modal-footer{max-width:var(--sky-override-modal-width-l, var(--sky-size-width-modal-l))}}.sky-modal-content{background-color:var(--sky-override-modal-background-color, var(--sky-color-background-container-base));--sky-background-color-page-default: var( --sky-override-modal-background-color, var(--sky-color-background-container-base) )}.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:var(--sky-override-modal-header-padding, var(--sky-override-modal-header-top-bottom-padding, var(--sky-space-inset-pillarbox-1_2-top-l)) var(--sky-space-inset-pillarbox-1_2-right-l) var(--sky-override-modal-header-top-bottom-padding, var(--sky-space-inset-pillarbox-1_2-bottom-l)) var(--sky-space-inset-pillarbox-1_2-left-l));background-color:var(--sky-override-modal-background-color, var(--sky-color-background-container-base));border-bottom:var(--sky-override-modal-header-bottom-border);display:flex;align-items:baseline}.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 .sky-modal-content{flex-grow:1}.sky-modal-content>::ng-deep sky-dock{bottom:var(--sky-override-modal-dock-bottom, 0);margin-left:var(--sky-override-modal-dock-margin-left-right-bottom, initial);margin-right:var(--sky-override-modal-dock-margin-left-right-bottom, initial);margin-bottom:var(--sky-override-modal-dock-margin-left-right-bottom, initial);padding-top:var(--sky-override-modal-dock-padding-top, initial);width:var(--sky-override-modal-dock-width, 100%)}.sky-modal-viewkeeper .sky-modal-header{box-shadow:none!important}.sky-modal-viewkeeper .sky-modal-content ::ng-deep sky-modal-content>.sky-viewkeeper-fixed{box-shadow:var(--sky-override-modal-viewkept-toolbar-box-shadow, var(--sky-elevation-overflow))}.sky-modal-viewkeeper .sky-modal-content ::ng-deep sky-modal-content>.sky-viewkeeper-fixed>sky-toolbar .sky-toolbar-container{background-color:var(--sky-override-modal-background-color, var(--sky-color-background-container-base));--sky-background-color-page-default: var( --sky-override-modal-background-color, var(--sky-color-background-container-base) );padding-left:var(--sky-override-modal-viewkept-toolbar-padding-horizontal, var(--sky-space-inset-pillarbox-1_2-left-l));padding-right:var(--sky-override-modal-viewkept-toolbar-padding-horizontal, var(--sky-space-inset-pillarbox-1_2-right-l))}\n"] }]
|
|
723
727
|
}], ctorParameters: () => [], propDecorators: { wrapperClass: [{
|
|
724
728
|
type: HostBinding,
|
|
725
729
|
args: ['class']
|
|
@@ -870,10 +874,10 @@ class SkyConfirmComponent {
|
|
|
870
874
|
autofocus: config.autofocus || false,
|
|
871
875
|
}));
|
|
872
876
|
}
|
|
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.
|
|
877
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkyConfirmComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
878
|
+
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
879
|
}
|
|
876
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
880
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkyConfirmComponent, decorators: [{
|
|
877
881
|
type: Component,
|
|
878
882
|
args: [{ selector: 'sky-confirm', imports: [
|
|
879
883
|
CommonModule,
|
|
@@ -894,10 +898,10 @@ class SkyModalHostContext {
|
|
|
894
898
|
constructor(args) {
|
|
895
899
|
this.args = args;
|
|
896
900
|
}
|
|
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.
|
|
901
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkyModalHostContext, deps: [{ token: 'SkyModalHostContextArgs' }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
902
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkyModalHostContext }); }
|
|
899
903
|
}
|
|
900
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
904
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkyModalHostContext, decorators: [{
|
|
901
905
|
type: Injectable
|
|
902
906
|
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
903
907
|
type: Inject,
|
|
@@ -1015,10 +1019,10 @@ class SkyModalAdapterService {
|
|
|
1015
1019
|
topModal.nativeElement.previousElementSibling.removeAttribute('aria-hidden');
|
|
1016
1020
|
}
|
|
1017
1021
|
}
|
|
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.
|
|
1022
|
+
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 }); }
|
|
1023
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkyModalAdapterService }); }
|
|
1020
1024
|
}
|
|
1021
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
1025
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkyModalAdapterService, decorators: [{
|
|
1022
1026
|
type: Injectable
|
|
1023
1027
|
}], ctorParameters: () => [{ type: i1.SkyAppWindowRef }] });
|
|
1024
1028
|
|
|
@@ -1156,12 +1160,12 @@ class SkyModalHostComponent {
|
|
|
1156
1160
|
instance.close();
|
|
1157
1161
|
}
|
|
1158
1162
|
}
|
|
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.
|
|
1163
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkyModalHostComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1164
|
+
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:not(.sky-theme-modern *){--sky-override-modal-host-backdrop-color: rgba(0, 0, 0, .5)}.sky-modal-host-backdrop{background-color:var(--sky-override-modal-host-backdrop-color, var(--sky-color-background-scrim));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
1165
|
}
|
|
1162
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
1166
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkyModalHostComponent, decorators: [{
|
|
1163
1167
|
type: Component,
|
|
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
|
|
1168
|
+
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:not(.sky-theme-modern *){--sky-override-modal-host-backdrop-color: rgba(0, 0, 0, .5)}.sky-modal-host-backdrop{background-color:var(--sky-override-modal-host-backdrop-color, var(--sky-color-background-scrim));position:fixed;inset:0}\n"] }]
|
|
1165
1169
|
}], propDecorators: { target: [{
|
|
1166
1170
|
type: ViewChild,
|
|
1167
1171
|
args: ['target', {
|
|
@@ -1250,10 +1254,10 @@ class SkyModalService {
|
|
|
1250
1254
|
});
|
|
1251
1255
|
return componentRef;
|
|
1252
1256
|
}
|
|
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.
|
|
1257
|
+
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 }); }
|
|
1258
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkyModalService, providedIn: 'root' }); }
|
|
1255
1259
|
}
|
|
1256
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
1260
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkyModalService, decorators: [{
|
|
1257
1261
|
type: Injectable,
|
|
1258
1262
|
args: [{
|
|
1259
1263
|
providedIn: 'root',
|
|
@@ -1269,10 +1273,10 @@ class SkyModalLegacyService extends SkyModalService {
|
|
|
1269
1273
|
constructor(dynamicComponentSvc) {
|
|
1270
1274
|
super(dynamicComponentSvc);
|
|
1271
1275
|
}
|
|
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.
|
|
1276
|
+
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 }); }
|
|
1277
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkyModalLegacyService, providedIn: 'any' }); }
|
|
1274
1278
|
}
|
|
1275
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
1279
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkyModalLegacyService, decorators: [{
|
|
1276
1280
|
type: Injectable,
|
|
1277
1281
|
args: [{
|
|
1278
1282
|
// Must be 'any' so that the modal component is created in the context of its module's injector.
|
|
@@ -1310,10 +1314,10 @@ class SkyConfirmService {
|
|
|
1310
1314
|
});
|
|
1311
1315
|
return confirmInstance;
|
|
1312
1316
|
}
|
|
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.
|
|
1317
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkyConfirmService, deps: [{ token: SkyModalService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
1318
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkyConfirmService, providedIn: 'root' }); }
|
|
1315
1319
|
}
|
|
1316
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
1320
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkyConfirmService, decorators: [{
|
|
1317
1321
|
type: Injectable,
|
|
1318
1322
|
args: [{
|
|
1319
1323
|
providedIn: 'root',
|
|
@@ -1327,12 +1331,12 @@ class SkyModalFooterComponent {
|
|
|
1327
1331
|
constructor() {
|
|
1328
1332
|
this.errorsSvc = inject(SkyModalErrorsService);
|
|
1329
1333
|
}
|
|
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.
|
|
1334
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkyModalFooterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1335
|
+
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\">\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-container:not(.sky-theme-modern *){--sky-override-modal-footer-border-top: 1px solid #e2e3e4;--sky-override-modal-footer-btn-btn-link-margin: -2px;--sky-override-modal-footer-btn-btn-margin: 10px;--sky-override-modal-footer-padding: 15px}sky-modal-footer{display:block}.sky-modal-footer-container{background-color:var(--sky-override-modal-background-color, var(--sky-color-background-container-base));border-top:var(--sky-override-modal-footer-border-top, none);padding:var(--sky-override-modal-footer-padding, var(--sky-space-inset-pillarbox-2_3-top-l) var(--sky-space-inset-pillarbox-2_3-right-l) var(--sky-space-inset-pillarbox-2_3-bottom-l) var(--sky-space-inset-pillarbox-2_3-left-l))}.sky-modal-footer-container .sky-btn+.sky-btn{margin-left:var(--sky-override-modal-footer-btn-btn-margin, var(--sky-space-gap-action_group-m))}.sky-modal-footer-container .sky-btn+.sky-btn-link{margin-left:var(--sky-override-modal-footer-btn-btn-link-margin, var(--sky-space-gap-action_group-m))}.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}\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
1336
|
}
|
|
1333
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
1337
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkyModalFooterComponent, decorators: [{
|
|
1334
1338
|
type: Component,
|
|
1335
|
-
args: [{ hostDirectives: [SkyResponsiveHostDirective], selector: 'sky-modal-footer', encapsulation: ViewEncapsulation.None, imports: [CommonModule, SkyStatusIndicatorModule], template: "<div class=\"sky-modal-footer-container
|
|
1339
|
+
args: [{ hostDirectives: [SkyResponsiveHostDirective], selector: 'sky-modal-footer', encapsulation: ViewEncapsulation.None, imports: [CommonModule, SkyStatusIndicatorModule], template: "<div class=\"sky-modal-footer-container\">\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-container:not(.sky-theme-modern *){--sky-override-modal-footer-border-top: 1px solid #e2e3e4;--sky-override-modal-footer-btn-btn-link-margin: -2px;--sky-override-modal-footer-btn-btn-margin: 10px;--sky-override-modal-footer-padding: 15px}sky-modal-footer{display:block}.sky-modal-footer-container{background-color:var(--sky-override-modal-background-color, var(--sky-color-background-container-base));border-top:var(--sky-override-modal-footer-border-top, none);padding:var(--sky-override-modal-footer-padding, var(--sky-space-inset-pillarbox-2_3-top-l) var(--sky-space-inset-pillarbox-2_3-right-l) var(--sky-space-inset-pillarbox-2_3-bottom-l) var(--sky-space-inset-pillarbox-2_3-left-l))}.sky-modal-footer-container .sky-btn+.sky-btn{margin-left:var(--sky-override-modal-footer-btn-btn-margin, var(--sky-space-gap-action_group-m))}.sky-modal-footer-container .sky-btn+.sky-btn-link{margin-left:var(--sky-override-modal-footer-btn-btn-link-margin, var(--sky-space-gap-action_group-m))}.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}\n"] }]
|
|
1336
1340
|
}] });
|
|
1337
1341
|
|
|
1338
1342
|
/**
|
|
@@ -1405,10 +1409,10 @@ class SkyModalIsDirtyDirective {
|
|
|
1405
1409
|
handler.closeModal();
|
|
1406
1410
|
}
|
|
1407
1411
|
}
|
|
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.
|
|
1412
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkyModalIsDirtyDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
1413
|
+
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
1414
|
}
|
|
1411
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
1415
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkyModalIsDirtyDirective, decorators: [{
|
|
1412
1416
|
type: Directive,
|
|
1413
1417
|
args: [{
|
|
1414
1418
|
standalone: true,
|
|
@@ -1425,8 +1429,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImpor
|
|
|
1425
1429
|
}] } });
|
|
1426
1430
|
|
|
1427
1431
|
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.
|
|
1432
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkyModalModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
1433
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.7", ngImport: i0, type: SkyModalModule, imports: [SkyModalComponent,
|
|
1430
1434
|
SkyModalContentComponent,
|
|
1431
1435
|
SkyModalFooterComponent,
|
|
1432
1436
|
SkyModalHeaderComponent,
|
|
@@ -1435,11 +1439,11 @@ class SkyModalModule {
|
|
|
1435
1439
|
SkyModalFooterComponent,
|
|
1436
1440
|
SkyModalHeaderComponent,
|
|
1437
1441
|
SkyModalIsDirtyDirective] }); }
|
|
1438
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.
|
|
1442
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkyModalModule, imports: [SkyModalComponent,
|
|
1439
1443
|
SkyModalFooterComponent,
|
|
1440
1444
|
SkyModalHeaderComponent] }); }
|
|
1441
1445
|
}
|
|
1442
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
1446
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkyModalModule, decorators: [{
|
|
1443
1447
|
type: NgModule,
|
|
1444
1448
|
args: [{
|
|
1445
1449
|
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 const modalStyle = getComputedStyle(boundedHeightEl);\n\n const marginTopBottom =\n parseInt(modalStyle.marginTop, 10) +\n parseInt(modalStyle.marginBottom, 10);\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 - marginTopBottom;\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, SkyThemeModule, 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 SkyLayoutHostDirective,\n SkyModalHeaderComponent,\n SkyModalsResourcesModule,\n SkyScrollShadowDirective,\n SkyThemeModule,\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\"\n role=\"region\"\n tabindex=\"0\"\n skyId\n skyLayoutHost\n [layout]=\"layout()\"\n [attr.aria-labelledby]=\"headerId.id\"\n [skyScrollShadowEnabled]=\"scrollShadowEnabled\"\n [skyThemeClass]=\"{\n 'sky-padding-even-large': 'default'\n }\"\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\">\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","i4","i6","i3","i1.SkyModalService"],"mappings":";;;;;;;;;;;;;;;;;;;;;MAIa,kBAAkB,CAAA;AAC7B;;;;AAIG;AACH,IAAA,IAAW,MAAM,GAAA;QACf,OAAO,IAAI,CAAC,UAAU;;AAGf,IAAA,OAAO,GAAG,IAAI,aAAa,EAA4B;AACvD,IAAA,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE;AAEjD;;;;AAIG;AACI,IAAA,KAAK,CAAC,IAA8B,EAAA;AACzC,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;AACvB,QAAA,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE;;AAE1B;;IC1BW;AAAZ,CAAA,UAAY,cAAc,EAAA;AACxB;;AAEG;AACH,IAAA,cAAA,CAAA,cAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAU;AACV;;AAEG;AACH,IAAA,cAAA,CAAA,cAAA,CAAA,IAAA,CAAA,GAAA,CAAA,CAAA,GAAA,IAAM;AACN;;;;AAIG;AACH,IAAA,cAAA,CAAA,cAAA,CAAA,WAAA,CAAA,GAAA,CAAA,CAAA,GAAA,WAAa;AACb;;;;AAIG;AACH,IAAA,cAAA,CAAA,cAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,GAAA,aAAe;AACjB,CAAC,EArBW,cAAc,KAAd,cAAc,GAqBzB,EAAA,CAAA,CAAA;;ACnBD;;;AAGG;MAEU,gBAAgB,CAAA;8GAAhB,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;+GAAhB,gBAAgB,EAAA,CAAA,CAAA;+GAAhB,gBAAgB,EAAA,CAAA,CAAA;;2FAAhB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAD5B,QAAQ;mBAAC,EAAE;;;ACFZ;;AAEG;AACI,MAAM,kBAAkB,GAAG,IAAI,cAAc,CAClD,kBAAkB,CACnB;;ACND;;AAEG;MASU,wBAAwB,CAAA;8GAAxB,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAxB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,wBAAwB,6ICdrC,kBACA,EAAA,MAAA,EAAA,CAAA,6UAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FDaa,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBARpC,SAAS;qCACQ,CAAC,0BAA0B,CAAC,EAChC,UAAA,EAAA,IAAI,YACN,mBAAmB,EAAA,aAAA,EAGd,iBAAiB,CAAC,IAAI,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,6UAAA,CAAA,EAAA;;;AEVvC;;AAEG;MACU,0BAA0B,CAAA;IAcrC,WAAY,CAAA,UAAsB,EAAE,SAA4B,EAAA;AAC9D,QAAA,IAAI,CAAC,SAAS,GAAG,SAAS;AAC1B,QAAA,IAAI,CAAC,UAAU,GAAG,UAAU;;AAE/B;;ACvBD;;;AAGG;MACU,iBAAiB,CAAA;AAU7B;;MCNY,gBAAgB,CAAA;AAC3B;;;;;AAKG;AACH,IAAA,IAAW,WAAW,GAAA;QACpB,OAAO,IAAI,CAAC,aAAa;;AAG3B;;;;;;;AAOG;AACH,IAAA,IAAW,MAAM,GAAA;QACf,OAAO,IAAI,CAAC,QAAQ;;AAGtB;;;;;AAKG;AACH,IAAA,IAAW,UAAU,GAAA;QACnB,OAAO,IAAI,CAAC,YAAY;;AAS1B;;;AAGG;IACH,IAAW,OAAO,CAAC,KAA6B,EAAA;AAC9C,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK;;AAGvB;;;AAGG;IACH,IAAW,YAAY,CAAC,KAAwB,EAAA;AAC9C,QAAA,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC,QAAQ;AACvC,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,QAAQ;;AAGnC,IAAA,aAAa,GAAG,IAAI,OAAO,EAA8B;AAEzD,IAAA,QAAQ,GAAG,IAAI,OAAO,EAAqB;AAE3C;;AAEG;AACH,IAAA,YAAY,GAAG,IAAI,OAAO,EAAU;AAEpC,IAAA,QAAQ;AACR,IAAA,WAAW;AAEX;;;;;;;AAOG;AACI,IAAA,KAAK,CACV,MAAY,EACZ,MAAe,EACf,iBAA2B,EAAA;AAE3B,QAAA,IAAI,MAAM,KAAK,SAAS,EAAE;YACxB,MAAM,GAAG,OAAO;;QAGlB,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,iBAAiB,CAAC;;AAGrD;;;;;AAKG;AACI,IAAA,MAAM,CAAC,MAAY,EAAA;AACxB,QAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,MAAM,CAAC;;AAGpC;;;;;AAKG;AACI,IAAA,IAAI,CAAC,MAAY,EAAA;AACtB,QAAA,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC;;AAGlC;;AAEG;IACI,kBAAkB,GAAA;QACvB,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,WAAW,EAAE;YACrC,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC;;;AAItD;;;;;;;AAOG;AACI,IAAA,QAAQ,CAAC,OAAe,EAAA;AAC7B,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC;;AAGjC,IAAA,WAAW,CAAC,IAAY,EAAE,MAAY,EAAE,iBAAiB,GAAG,KAAK,EAAA;AAC/D,QAAA,MAAM,IAAI,GAAG,IAAI,iBAAiB,EAAE;AAEpC,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI;AAClB,QAAA,IAAI,CAAC,IAAI,GAAG,MAAM;AAElB,QAAA,IAAI,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,IAAI,iBAAiB,EAAE;AAClE,YAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;;aACnB;YACL,IAAI,CAAC,aAAa,CAAC,IAAI,CACrB,IAAI,0BAA0B,CAAC,MAAK;AAClC,gBAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;AAC1B,aAAC,EAAE,IAAI,CAAC,CACT;;;AAIL,IAAA,aAAa,CAAC,IAAuB,EAAA;AACnC,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;AACxB,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE;AACxB,QAAA,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE;AAC7B,QAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE;;AAE/B;;AChKD;AACA;;;;;AAKG;AAQH,MAAM,SAAS,GAAoC;AACjD,IAAA,OAAO,EAAE;AACP,QAAA,oCAAoC,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;AACvD,QAAA,qCAAqC,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE;AACzD,QAAA,oCAAoC,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;AACvD,QAAA,wCAAwC,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE;AAC/D,QAAA,iBAAiB,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE;AAC7C,QAAA,qBAAqB,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE;AAC/C,QAAA,gCAAgC,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE;AACvD,QAAA,iCAAiC,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE;AACtD,QAAA,iCAAiC,EAAE;AACjC,YAAA,OAAO,EAAE,gDAAgD;AAC1D,SAAA;AACD,QAAA,8CAA8C,EAAE;AAC9C,YAAA,OAAO,EAAE,iBAAiB;AAC3B,SAAA;AACD,QAAA,2CAA2C,EAAE,EAAE,OAAO,EAAE,cAAc,EAAE;AACzE,KAAA;AACD,IAAA,OAAO,EAAE;AACP,QAAA,oCAAoC,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;AACvD,QAAA,qCAAqC,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE;AACzD,QAAA,oCAAoC,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE;AACxD,QAAA,wCAAwC,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE;AAChE,QAAA,iBAAiB,EAAE,EAAE,OAAO,EAAE,iBAAiB,EAAE;AACjD,QAAA,qBAAqB,EAAE,EAAE,OAAO,EAAE,eAAe,EAAE;AACnD,QAAA,gCAAgC,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE;AACxD,QAAA,iCAAiC,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE;AAC7D,QAAA,iCAAiC,EAAE;AACjC,YAAA,OAAO,EAAE,yDAAyD;AACnE,SAAA;AACD,QAAA,8CAA8C,EAAE;AAC9C,YAAA,OAAO,EAAE,2BAA2B;AACrC,SAAA;AACD,QAAA,2CAA2C,EAAE;AAC3C,YAAA,OAAO,EAAE,wBAAwB;AAClC,SAAA;AACF,KAAA;CACF;AAED,sBAAsB,CAAC,YAAY,CAAC,SAAS,CAAC;AAE9C;;AAEG;MAIU,wBAAwB,CAAA;8GAAxB,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAxB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,wBAAwB,YAFzB,aAAa,CAAA,EAAA,CAAA,CAAA;AAEZ,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,wBAAwB,YAFzB,aAAa,CAAA,EAAA,CAAA,CAAA;;2FAEZ,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAHpC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,aAAa,CAAC;AACzB,iBAAA;;;AC1DD;;AAEG;MAEU,+BAA+B,CAAA;AACnC,IAAA,kBAAkB,CAAC,OAAmB,EAAA;QAC3C,MAAM,eAAe,GAAG,OAAO,CAAC,aAAa,CAAC,aAAa,CAAC,YAAY,CAAC;QACzE,MAAM,eAAe,GAAG,OAAO,CAAC,aAAa,CAAC,aAAa,CACzD,sBAAsB,CACvB;AACD,QAAA,MAAM,UAAU,GAAG,gBAAgB,CAAC,eAAe,CAAC;QAEpD,MAAM,eAAe,GACnB,QAAQ,CAAC,UAAU,CAAC,SAAS,EAAE,EAAE,CAAC;AAClC,YAAA,QAAQ,CAAC,UAAU,CAAC,YAAY,EAAE,EAAE,CAAC;AAEvC;;AAEE;AACF,QAAA,MAAM,SAAS,GAAG,MAAM,CAAC,WAAW,GAAG,eAAe;QAEtD,eAAe,CAAC,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC,QAAQ,EAAE,GAAG,IAAI;AAC7D,QAAA,eAAe,CAAC,KAAK,CAAC,WAAW,CAC/B,gCAAgC,EAChC,eAAe,CAAC,KAAK,CAAC,SAAS,CAChC;QACD,IAAI,eAAe,EAAE;AACnB,YAAA,IAAI,CAAC,kBAAkB,CAAC,eAAe,CAAC;;;IAIrC,kBAAkB,CACvB,KAAoB,EACpB,IAAmB,EAAA;;;QAInB,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,UAAU;AACpD,QAAA,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,WAAW,KAAK,IAAI,CAAC,CAAC,CAAC;;IAG5C,iBAAiB,CAAC,KAAoB,EAAE,IAAmB,EAAA;;;QAGhE,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,UAAU;AACpD,QAAA,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,WAAW,KAAK,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;;IAG1D,cAAc,CAAC,KAAoB,EAAE,OAAmB,EAAA;;;QAG7D,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,UAAU;AACpD,QAAA,QACE,OAAO;YACP,WAAW,KAAK,OAAO,CAAC,aAAa,CAAC,aAAa,CAAC,mBAAmB,CAAC;;AAIrE,IAAA,gBAAgB,CAAC,IAAmB,EAAA;AACzC,QAAA,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;YACnB,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE;AAC7B,YAAA,OAAO,IAAI;;AAEb,QAAA,OAAO,KAAK;;AAGP,IAAA,iBAAiB,CAAC,IAAmB,EAAA;AAC1C,QAAA,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;AACnB,YAAA,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE;AACf,YAAA,OAAO,IAAI;;AAEb,QAAA,OAAO,KAAK;;AAGP,IAAA,oCAAoC,CACzC,cAA0B,EAAA;QAE1B,OAAO,CAAC,CAAC,cAAc,CAAC,aAAa,CAAC,aAAa,CACjD,2CAA2C,CAC5C;;AAGH,IAAA,kBAAkB,CAAC,eAA4B,EAAA;AAC7C,QAAA,MAAM,YAAY,GAAG,MAAM,CAAC,WAAW;AACvC,QAAA,MAAM,kBAAkB,GAAG,gBAAgB,CAAC,eAAe,CAAC;QAE5D,MAAM,eAAe,GACnB,QAAQ,CAAC,kBAAkB,CAAC,SAAS,EAAE,EAAE,CAAC;AAC1C,YAAA,QAAQ,CAAC,kBAAkB,CAAC,YAAY,EAAE,EAAE,CAAC;AAE/C,QAAA,MAAM,mBAAmB,GAAG,YAAY,GAAG,eAAe,GAAG,IAAI;AAEjE,QAAA,eAAe,CAAC,KAAK,CAAC,MAAM,GAAG,mBAAmB;AAClD,QAAA,eAAe,CAAC,KAAK,CAAC,SAAS,GAAG,mBAAmB;;8GAzF5C,+BAA+B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;kHAA/B,+BAA+B,EAAA,CAAA,CAAA;;2FAA/B,+BAA+B,EAAA,UAAA,EAAA,CAAA;kBAD3C;;;ACHD;;AAEG;MAEU,qBAAqB,CAAA;AAsBhC,IAAA,WAAA,GAAA;AACE,QAAA,IAAI,CAAC,IAAI,GAAG,QAAQ;;8GAvBX,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;kHAArB,qBAAqB,EAAA,CAAA,CAAA;;2FAArB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBADjC;;;ACCD;;AAEG;MAEU,qBAAqB,CAAA;AAGhC,IAAA,WAAW,GAAG,IAAI,eAAe,CAA8B,SAAS,CAAC;AAEzE,IAAA,WAAA,GAAA;QACE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE;;AAG5C,IAAA,YAAY,CAAC,KAAkC,EAAA;AACpD,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC;;8GAVnB,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;kHAArB,qBAAqB,EAAA,CAAA,CAAA;;2FAArB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBADjC;;;ACLD;;AAEG;MAOU,uBAAuB,CAAA;8GAAvB,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAvB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,uBAAuB,ECbpC,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,iUAaA,EDFY,MAAA,EAAA,CAAA,iSAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,cAAc,qIAAE,aAAa,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,EAAA,EAAA,QAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FAE5B,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBANnC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,kBAAkB,EAGnB,OAAA,EAAA,CAAC,cAAc,EAAE,aAAa,CAAC,EAAA,QAAA,EAAA,iUAAA,EAAA,MAAA,EAAA,CAAA,iSAAA,CAAA,EAAA;;;;AEP1C,MAAM,YAAY,GAAG,IAAI;AACzB,MAAM,UAAU,GAA0B,EAAE;AAE5C,MAAM,cAAc,GAAG,IAAI,eAAe,CAAS,CAAC,CAAC;AACrD,MAAM,iBAAiB,GAAG,cAAc,CAAC,YAAY,EAAE;AAEvD,MAAM,cAAc,GAAG,IAAI,eAAe,CAAS,CAAC,CAAC;AACrD,MAAM,iBAAiB,GAAG,cAAc,CAAC,YAAY,EAAE;AAEvD;;AAEG;MAIU,mBAAmB,CAAA;AACvB,IAAA,WAAW,oBAAoB,GAAA;AACpC,QAAA,OAAO,iBAAiB;;AAGnB,IAAA,WAAW,oBAAoB,GAAA;AACpC,QAAA,OAAO,iBAAiB;;AAG1B;;AAEG;AACI,IAAA,WAAW,cAAc,GAAA;QAC9B,OAAO,UAAU,CAAC,MAAM;;AAGnB,IAAA,WAAW,kBAAkB,GAAA;AAClC,QAAA,MAAM,cAAc,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,QAAQ,CAAC;QACnE,OAAO,cAAc,CAAC,MAAM;;AAG9B;;AAEG;AACI,IAAA,WAAW,cAAc,GAAA;AAC9B,QAAA,OAAO,YAAY,GAAG,UAAU,CAAC,MAAM,GAAG,EAAE;;AAGvC,IAAA,WAAW,QAAQ,GAAA;QACxB,OAAO,UAAU,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC;;AAW1C,IAAA,WAAA,GAAA;AARO,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,OAAO,EAAQ;QAC3B,IAAQ,CAAA,QAAA,GAAG,KAAK;AACvB;;AAEG;AACI,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,OAAO,EAAU;AAIrC,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,gBAAgB,EAAE;AACrC,QAAA,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC;QACrB,IAAI,CAAC,qBAAqB,EAAE;QAC5B,IAAI,CAAC,qBAAqB,EAAE;;IAGvB,cAAc,GAAA;QACnB,OAAO,IAAI,CAAC,MAAM;;IAGb,OAAO,GAAA;AACZ,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;;AAGnB;;AAEG;AACI,IAAA,UAAU,CAAC,OAAe,EAAA;AAC/B,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC;;IAGtB,OAAO,GAAA;AACZ,QAAA,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC9C,IAAI,CAAC,qBAAqB,EAAE;QAC5B,IAAI,CAAC,qBAAqB,EAAE;;IAG9B,gBAAgB,GAAA;AACd,QAAA,MAAM,WAAW,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,WAAW,KAAK,WAAW,CAAC,MAAM,CAAC;AACvE,QAAA,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE;YAC5B,OAAO,YAAY,GAAG,EAAE;;aACnB;YACL,MAAM,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC;YACjD,OAAO,gBAAgB,GAAG,EAAE;;;IAIhC,qBAAqB,GAAA;AACnB,QAAA,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;;IAGxC,qBAAqB,GAAA;AACnB,QAAA,cAAc,CAAC,IAAI,CAAC,EAAmB,CAAC,cAAc,CAAC;;8GAnF9C,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,cAFlB,MAAM,EAAA,CAAA,CAAA;;;2FAEP,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAH/B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA;;;ACwBD,MAAM,iBAAiB,GAAG,QAAQ;AAElC;;;;AAIG;MAsBU,iBAAiB,CAAA;AAI5B;;AAEG;IACH,IACW,UAAU,CAAC,KAAkC,EAAA;AACtD,QAAA,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,KAAK,CAAC;;AA+BrC;;;AAGG;IACH,IACW,QAAQ,CAAC,KAAyB,EAAA;AAC3C,QAAA,IAAI,CAAC,iBAAiB,GAAG,KAAK,IAAI,iBAAiB;;AAYrD;;;;AAIG;IACH,IACW,eAAe,CAAC,EAAsB,EAAA;AAC/C,QAAA,IAAI,CAAC,iBAAiB,GAAG,EAAE;;AAG7B,IAAA,IAAW,eAAe,GAAA;QACxB,OAAO,IAAI,CAAC,iBAAiB;;AAG/B;;;;AAIG;IACH,IACW,cAAc,CAAC,EAAsB,EAAA;AAC9C,QAAA,IAAI,CAAC,gBAAgB,GAAG,EAAE;;AAG5B,IAAA,IAAW,cAAc,GAAA;QACvB,OAAO,IAAI,CAAC,gBAAgB;;AA4B9B,IAAA,cAAc;AAEd,IAAA,iBAAiB;AACjB,IAAA,gBAAgB;AAEP,IAAA,eAAe;AACf,IAAA,iBAAiB;AACjB,IAAA,YAAY;AACZ,IAAA,YAAY;AACZ,IAAA,MAAM;AACN,IAAA,UAAU;AACV,IAAA,YAAY;AACZ,IAAA,iBAAiB;AAE1B;;;;;AAKG;AACM,IAAA,OAAO;AAGP,IAAA,SAAS;AAElB,IAAA,WAAA,GAAA;QAvFO,IAAiB,CAAA,iBAAA,GAAG,iBAAiB;AAqC5B,QAAA,IAAA,CAAA,MAAM,GAAG,KAAK,CAAiB,MAAM,CAAC;QAE/C,IAAQ,CAAA,QAAA,GAAkB,IAAI;QAO9B,IAAU,CAAA,UAAA,GAAG,IAAI;AAIjB,QAAA,IAAA,CAAA,YAAY,GAA6B;AAC9C,YAAA,YAAY,EAAE,MAAM;AACpB,YAAA,SAAS,EAAE,MAAM;SAClB;QAOS,IAAmB,CAAA,mBAAA,GAAG,KAAK;AAErC,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,OAAO,EAAQ;AAK3B,QAAA,IAAA,CAAA,eAAe,GAAG,MAAM,CAAC,iBAAiB,CAAC;AAC3C,QAAA,IAAA,CAAA,iBAAiB,GAAG,MAAM,CAAC,+BAA+B,CAAC;AAC3D,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAC,qBAAqB,CAAC;QAC5C,IAAY,CAAA,YAAA,GAAG,MAAM,CAAC,cAAc,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AACrD,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC;AAC3B,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,qBAAqB,CAAC;AAC1C,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAC,mBAAmB,CAAC;AAC1C,QAAA,IAAA,CAAA,iBAAiB,GAAG,MAAM,CAAC,uBAAuB,CAAC;AAE5D;;;;;AAKG;QACM,IAAO,CAAA,OAAA,GACd,MAAM,CAAC,qBAAqB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;YACjD,IAAI,qBAAqB,EAAE;QACpB,IAAS,CAAA,SAAA,GAAG,MAAM,CAAC,eAAe,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;QAG9D,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe;QACnD,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc;QACjD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ;QACrC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO;QACzC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS;QACvC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY;AAE7C,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC;AACvB,cAAE;cACA,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,QAAQ;QAEhD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM;;AAItC,IAAA,eAAe,CAAC,KAAoB,EAAA;;;AAGzC,QAAA,IAAI,mBAAmB,CAAC,cAAc,GAAG,CAAC,EAAE;AAC1C,YAAA,MAAM,QAAQ,GAAG,mBAAmB,CAAC,QAAQ;YAC7C,IAAI,QAAQ,IAAI,QAAQ,KAAK,IAAI,CAAC,YAAY,EAAE;AAC9C,gBAAA,IAAI,KAAK,CAAC,KAAK,KAAK,EAAE,EAAE;;oBAEtB,KAAK,CAAC,cAAc,EAAE;oBACtB,IAAI,CAAC,gBAAgB,EAAE;;;;;AAOxB,IAAA,iBAAiB,CAAC,KAAoB,EAAA;;;AAG3C,QAAA,IAAI,mBAAmB,CAAC,cAAc,GAAG,CAAC,EAAE;AAC1C,YAAA,MAAM,QAAQ,GAAG,mBAAmB,CAAC,QAAQ;YAC7C,IAAI,QAAQ,IAAI,QAAQ,KAAK,IAAI,CAAC,YAAY,EAAE;AAC9C,gBAAA,IAAI,KAAK,CAAC,KAAK,KAAK,CAAC,EAAE;;oBAErB,IAAI,YAAY,GAAG,KAAK;AAExB,oBAAA,MAAM,gBAAgB,GAAG,IAAI,CAAC,YAAY,CAAC,oBAAoB,CAC7D,IAAI,CAAC,MAAM,CAAC,aAAa,CAC1B;oBAED,IACE,KAAK,CAAC,QAAQ;yBACb,IAAI,CAAC,iBAAiB,CAAC,kBAAkB,CACxC,KAAK,EACL,gBAAgB,CACjB;AACC,4BAAA,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,EAC5D;wBACA,YAAY;AACV,4BAAA,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,gBAAgB,CAAC;;yBACtD,IACL,CAAC,KAAK,CAAC,QAAQ;wBACf,IAAI,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,KAAK,EAAE,gBAAgB,CAAC,EACjE;wBACA,YAAY;AACV,4BAAA,IAAI,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,gBAAgB,CAAC;;oBAG9D,IAAI,YAAY,EAAE;wBAChB,KAAK,CAAC,cAAc,EAAE;wBACtB,KAAK,CAAC,eAAe,EAAE;;;;;;IAO1B,QAAQ,GAAA;QACb,IAAI,CAAC,iBAAiB,CAAC;AACpB,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC;AACnC,aAAA,SAAS,CAAC,CAAC,OAAO,KAAI;AACrB,YAAA,IAAI,OAAO,EAAE,EAAE,EAAE;AACf,gBAAA,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,EAAE;AAC1B,gBAAA,IAAI,CAAC,eAAe,CAAC,YAAY,EAAE;;AAEvC,SAAC,CAAC;AAEJ,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,IAAI,CAAC,SAAS,CAAC;AACZ,iBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC;AACnC,iBAAA,SAAS,CAAC,CAAC,aAAa,KAAI;AAC3B,gBAAA,IAAI,CAAC,mBAAmB;oBACtB,aAAa,CAAC,eAAe,CAAC,KAAK,KAAK,QAAQ,CAAC,OAAO,CAAC,MAAM;AACnE,aAAC,CAAC;;;IAID,eAAe,GAAA;QACpB,IAAI,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC;AAEtD,QAAA,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC;YAC/B,QAAQ,EAAE,eAAe,CAAC,aAAa;AACvC,YAAA,WAAW,EAAE,IAAI,CAAC,0BAA2B,CAAC,aAAa;AAC3D,YAAA,MAAM,EAAE,CAAC;AACV,SAAA,CAAC;;IAGG,WAAW,GAAA;AAChB,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE;AAC1B,QAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE;;AAGhC;;AAEG;IACI,eAAe,GAAA;AACpB,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE;YACtB,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC;;;IAI7C,gBAAgB,GAAA;AACrB,QAAA,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE;;IAGtB,YAAY,GAAA;QACjB,IAAI,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC;;AAGjD,IAAA,kBAAkB,CAAC,IAA8B,EAAA;AACtD,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI;;IAGnB,iBAAiB,GAAA;QACtB,OAAO,IAAI,CAAC,iBAAiB,CAAC,oCAAoC,CAChE,IAAI,CAAC,MAAM,CACZ;;8GA5QQ,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAjB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,iBAAiB,EAjBjB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,kBAAA,EAAA,EAAA,iBAAA,EAAA,oBAAA,EAAA,UAAA,EAAA,oBAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,gBAAA,EAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,eAAA,EAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,gBAAA,EAAA,yBAAA,EAAA,kBAAA,EAAA,2BAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,mBAAA,EAAA,EAAA,EAAA,SAAA,EAAA;YACT,+BAA+B;YAC/B,qBAAqB;YACrB,cAAc;SACf,EAuHyC,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,4BAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAAA,UAAU,6BChLtD,q5FAsGA,EAAA,MAAA,EAAA,CAAA,22MAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,ED3CI,YAAY,EACZ,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,mBAAmB,wPACnB,aAAa,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,EAAA,MAAA,EAAA,YAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACb,WAAW,EACX,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,EAAA,EAAA,QAAA,EAAA,SAAA,EAAA,QAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,sBAAsB,gFACtB,uBAAuB,EAAA,QAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACvB,wBAAwB,EACxB,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,wBAAwB,+HACxB,cAAc,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,EAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,eAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FAGL,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBArB7B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,WAAW,EAGV,SAAA,EAAA;wBACT,+BAA+B;wBAC/B,qBAAqB;wBACrB,cAAc;qBACf,EACQ,OAAA,EAAA;wBACP,YAAY;wBACZ,mBAAmB;wBACnB,aAAa;wBACb,WAAW;wBACX,sBAAsB;wBACtB,uBAAuB;wBACvB,wBAAwB;wBACxB,wBAAwB;wBACxB,cAAc;AACf,qBAAA,EAAA,QAAA,EAAA,q5FAAA,EAAA,MAAA,EAAA,CAAA,22MAAA,CAAA,EAAA;wDAIM,YAAY,EAAA,CAAA;sBADlB,WAAW;uBAAC,OAAO;gBAOT,UAAU,EAAA,CAAA;sBADpB;gBASM,WAAW,EAAA,CAAA;sBADjB;gBAQM,OAAO,EAAA,CAAA;sBADb;gBASM,kBAAkB,EAAA,CAAA;sBADxB;gBAQM,gBAAgB,EAAA,CAAA;sBADtB;gBAQU,QAAQ,EAAA,CAAA;sBADlB;gBAYM,SAAS,EAAA,CAAA;sBADf;gBASU,eAAe,EAAA,CAAA;sBADzB;gBAeU,cAAc,EAAA,CAAA;sBADxB;gBA8BM,0BAA0B,EAAA,CAAA;sBADhC,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,qBAAqB,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE;gBA8C/C,eAAe,EAAA,CAAA;sBADrB,YAAY;uBAAC,gBAAgB,EAAE,CAAC,QAAQ,CAAC;gBAiBnC,iBAAiB,EAAA,CAAA;sBADvB,YAAY;uBAAC,kBAAkB,EAAE,CAAC,QAAQ,CAAC;;;AExN9C;;AAEG;MAcU,mBAAmB,CAAA;AAQ9B,IAAA,cAAc;AAEL,IAAA,OAAO;AACP,IAAA,cAAc;AACd,IAAA,gBAAgB;AAChB,IAAA,aAAa;AACb,IAAA,MAAM;AAEf,IAAA,WAAA,GAAA;QAZU,IAAQ,CAAA,QAAA,GAAG,KAAK;QAEhB,IAAkB,CAAA,kBAAA,GAAG,KAAK;AAEpC,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,OAAO,EAAQ;AAE3B,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,kBAAkB,CAAC;AACpC,QAAA,IAAA,CAAA,cAAc,GAAG,MAAM,CAAC,gBAAgB,CAAC;AACzC,QAAA,IAAA,CAAA,gBAAgB,GAAG,MAAM,CAAC,kBAAkB,CAAC;AAC7C,QAAA,IAAA,CAAA,aAAa,GAAG,MAAM,CAAC,sBAAsB,CAAC;AAC9C,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,YAAY,CAAC;QAGpC,IAAI,CAAC,OAAO,CAAC,IAAI,KAAK,cAAc,CAAC,EAAE;QAEvC,IACE,IAAI,CAAC,OAAO,CAAC,IAAI,KAAK,cAAc,CAAC,MAAM;YAC3C,IAAI,CAAC,OAAO,CAAC,OAAO;YACpB,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAC/B;AACA,YAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;;aACtD;YACL,IAAI,CAAC,iBAAiB;AACnB,iBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC;AACnC,iBAAA,SAAS,CAAC,CAAC,OAAO,KAAI;AACrB,gBAAA,IAAI,CAAC,OAAO,GAAG,OAAO;AACxB,aAAC,CAAC;;QAGN,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO;QACnC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI;;;;QAK7B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE;QAEtC,IAAI,CAAC,kBAAkB,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,kBAAkB;AAC3D,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,KAAK,cAAc,CAAC,EAAE;;QAGvD,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,KAAI;AAC9C,YAAA,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC;AACjC,SAAC,CAAC;QAEF,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,KAAI;;;AAG5C,YAAA,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;AAC3B,gBAAA,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC;AAC1B,oBAAA,MAAM,EAAE,QAAQ;AACjB,iBAAA,CAAC;;AAEN,SAAC,CAAC;;IAGG,WAAW,GAAA;AAChB,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE;AAC1B,QAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE;;AAGtB,IAAA,KAAK,CAAC,MAAwB,EAAA;AACtC,QAAA,MAAM,MAAM,GAA6B;YACvC,MAAM,EAAE,MAAM,CAAC,MAAM;SACtB;AAED,QAAA,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,MAAM,CAAC;;IAGrC,iBAAiB,GAAA;AACf,QAAA,MAAM,OAAO,GAAG,IAAI,aAAa,CAAqB,CAAC,CAAC;AAExD,QAAA,IAAI,CAAC;AACF,aAAA,UAAU,CAAC;AACV,YAAA,MAAM,EAAE,0CAA0C;AAClD,YAAA,EAAE,EAAE,sCAAsC;AAC1C,YAAA,EAAE,EAAE,sCAAsC;AAC1C,YAAA,GAAG,EAAE,uCAAuC;SAC7C;AACA,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC;AACnC,aAAA,SAAS,CAAC,CAAC,MAAM,KAAI;YACpB,MAAM,cAAc,GAAuB,EAAE;AAE7C,YAAA,QAAQ,IAAI,CAAC,OAAO,CAAC,IAAI;gBACvB,KAAK,cAAc,CAAC,WAAW;gBAC/B,KAAK,cAAc,CAAC,SAAS;oBAC3B,cAAc,CAAC,IAAI,CAAC;wBAClB,IAAI,EAAE,MAAM,CAAC,GAAG;AAChB,wBAAA,SAAS,EAAE,IAAI;AACf,wBAAA,SAAS,EAAE,SAAS;AACpB,wBAAA,MAAM,EAAE,KAAK;AACd,qBAAA,CAAC;oBAEF,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,KAAK,cAAc,CAAC,WAAW,EAAE;wBACpD,cAAc,CAAC,IAAI,CAAC;4BAClB,IAAI,EAAE,MAAM,CAAC,EAAE;AACf,4BAAA,SAAS,EAAE,SAAS;AACpB,4BAAA,MAAM,EAAE,IAAI;AACb,yBAAA,CAAC;;oBAGJ,cAAc,CAAC,IAAI,CAAC;wBAClB,IAAI,EAAE,MAAM,CAAC,MAAM;AACnB,wBAAA,SAAS,EAAE,MAAM;AACjB,wBAAA,MAAM,EAAE,QAAQ;AACjB,qBAAA,CAAC;oBACF;AACF,gBAAA;oBACE,cAAc,CAAC,IAAI,CAAC;wBAClB,IAAI,EAAE,MAAM,CAAC,EAAE;AACf,wBAAA,SAAS,EAAE,IAAI;AACf,wBAAA,SAAS,EAAE,SAAS;AACpB,wBAAA,MAAM,EAAE,IAAI;AACb,qBAAA,CAAC;;AAGN,YAAA,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC;AAC9B,SAAC,CAAC;AAEJ,QAAA,OAAO,OAAO,CAAC,YAAY,EAAE;;AAG/B,IAAA,iBAAiB,CACf,YAAsC,EAAA;QAEtC,OAAO,YAAY,CAAC,GAAG,CACrB,CAAC,MAAM,MACJ;YACC,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,MAAM,EAAE,MAAM,CAAC,MAAM;AACrB,YAAA,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,SAAS;AACxC,YAAA,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,KAAK;AACrC,SAAA,CAAqB,CACzB;;8GAzIQ,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,mBAAmB,ECrChC,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,aAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,4sEAkEA,EDrCI,MAAA,EAAA,CAAA,2oCAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,YAAY,EACZ,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAF,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,WAAW,EACX,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,EAAA,CAAA,EAAA,EAAA,QAAA,EAAA,SAAA,EAAA,QAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,iBAAiB,EACjB,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,aAAA,EAAA,SAAA,EAAA,oBAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,WAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,wBAAwB,EACxB,QAAA,EAAA,mBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,wBAAwB,8BACxB,cAAc,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAI,IAAA,CAAA,EAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,eAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FAGL,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAb/B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,aAAa,EAGd,OAAA,EAAA;wBACP,YAAY;wBACZ,WAAW;wBACX,iBAAiB;wBACjB,wBAAwB;wBACxB,wBAAwB;wBACxB,cAAc;AACf,qBAAA,EAAA,QAAA,EAAA,4sEAAA,EAAA,MAAA,EAAA,CAAA,2oCAAA,CAAA,EAAA;;;AE/BH;;;;AAIG;MAEU,mBAAmB,CAAA;AAC9B,IAAA,WAAA,CAC4C,IAA6B,EAAA;QAA7B,IAAI,CAAA,IAAA,GAAJ,IAAI;;AAFrC,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,kBAEpB,yBAAyB,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;kHAFxB,mBAAmB,EAAA,CAAA,CAAA;;2FAAnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAD/B;;0BAGI,MAAM;2BAAC,yBAAyB;;;ACTrC;;AAEG;MAEU,sBAAsB,CAAA;aACT,IAAqB,CAAA,qBAAA,GAAG,0BAAH,CAA8B;aACnD,IAAgB,CAAA,gBAAA,GAAG,qBAAH,CAAyB;AAEjE,IAAA,OAAO;AACP,IAAA,OAAO;AAEP,IAAA,YAAY,GAAG,MAAM,CAAC,qBAAqB,CAAC;AAC5C,IAAA,UAAU;AACV,IAAA,2BAA2B,GAAG,IAAI,GAAG,EAA0B;AAE/D,IAAA,WAAA,CAAY,SAA0B,EAAA;AACpC,QAAA,IAAI,CAAC,UAAU,GAAG,SAAS;QAC3B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,QAAQ;AACpD,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI;;AAGpD,IAAA,wBAAwB,CAAC,SAAkB,EAAA;QAChD,IAAI,SAAS,EAAE;AACb,YAAA,IAAI,CAAC,eAAe,CAAC,sBAAsB,CAAC,qBAAqB,CAAC;;aAC7D;AACL,YAAA,IAAI,CAAC,oBAAoB,CAAC,sBAAsB,CAAC,qBAAqB,CAAC;;;AAIpE,IAAA,aAAa,CAAC,KAAc,EAAA;QACjC,IAAI,KAAK,EAAE;AACT,YAAA,IAAI,CAAC,eAAe,CAAC,sBAAsB,CAAC,gBAAgB,CAAC;;aACxD;AACL,YAAA,IAAI,CAAC,oBAAoB,CAAC,sBAAsB,CAAC,gBAAgB,CAAC;;;IAI/D,cAAc,GAAA;AACnB,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa;;AAGnC,IAAA,eAAe,CAAC,SAAiB,EAAA;QAC/B,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC;;AAGvC,IAAA,oBAAoB,CAAC,SAAiB,EAAA;QACpC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC;;AAGnC,IAAA,kBAAkB,CAAC,OAAmB,EAAA;QAC3C,OAAO,CAAC,aAAa,CAAC,aAAa,CAAC,oBAAoB,CAAC,CAAC,SAAS,GAAG,CAAC;;AAGzE;;;AAGG;AACI,IAAA,iCAAiC,CAAC,SAAqB,EAAA;AAC5D,QAAA,MAAM,WAAW,GAAG,SAAS,CAAC,aAAa;AAC3C,QAAA,MAAM,YAAY,GAAG,WAAW,CAAC,aAAa,EAAE,QAAQ;QAExD,IAAI,YAAY,EAAE;AAChB,YAAA,KAAK,MAAM,OAAO,IAAI,YAAY,EAAE;gBAClC,IAAI,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE;AAC5C,oBAAA,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE;;gBAEvB,IACE,OAAO,KAAK,WAAW;AACvB,oBAAA,CAAC,OAAO,CAAC,YAAY,CAAC,WAAW,CAAC;AAClC,oBAAA,OAAO,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,QAAQ;oBAC3C,OAAO,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,OAAO,EAC1C;;AAEA,oBAAA,IAAI,CAAC,2BAA2B,CAAC,GAAG,CAClC,OAAO,EACP,OAAO,CAAC,YAAY,CAAC,aAAa,CAAC,CACpC;AACD,oBAAA,OAAO,CAAC,YAAY,CAAC,aAAa,EAAE,MAAM,CAAC;;;;;AAM5C,IAAA,iBAAiB,CAAC,OAAmB,EAAA;;;AAG1C,QAAA,IACE,EACE,QAAQ,CAAC,aAAa;YACtB,OAAO,CAAC,aAAa,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,CACvD,EACD;AACA,YAAA,MAAM,cAAc,GAAG,MAAM,CAAC,WAAW;AACzC,YAAA,MAAM,cAAc,GAAG,MAAM,CAAC,WAAW;YAEzC,MAAM,kBAAkB,GACtB,OAAO,CAAC,aAAa,CAAC,aAAa,CAAC,aAAa,CAAC;YAEpD,IAAI,kBAAkB,EAAE;gBACtB,kBAAkB,CAAC,KAAK,EAAE;;iBACrB;gBACL,IAAI,CAAC,YAAY,CAAC,iCAAiC,CACjD,OAAO,EACP,oBAAoB,EACpB,IAAI,CACL;;AAEH,YAAA,MAAM,CAAC,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;;;AAInD;;AAEG;IACI,4CAA4C,GAAA;QACjD,IAAI,CAAC,2BAA2B,CAAC,OAAO,CAAC,CAAC,aAAa,EAAE,OAAO,KAAI;;AAElE,YAAA,IAAI,OAAO,CAAC,aAAa,EAAE;gBACzB,IAAI,aAAa,EAAE;AACjB,oBAAA,OAAO,CAAC,YAAY,CAAC,aAAa,EAAE,aAAa,CAAC;;qBAC7C;AACL,oBAAA,OAAO,CAAC,eAAe,CAAC,aAAa,CAAC;;;AAG5C,SAAC,CAAC;AACF,QAAA,IAAI,CAAC,2BAA2B,CAAC,KAAK,EAAE;;AAGnC,IAAA,kCAAkC,CAAC,QAAoB,EAAA;QAC5D,IAAI,QAAQ,IAAI,QAAQ,CAAC,aAAa,CAAC,sBAAsB,EAAE;YAC7D,QAAQ,CAAC,aAAa,CAAC,sBAAsB,CAAC,YAAY,CACxD,aAAa,EACb,MAAM,CACP;;;AAIE,IAAA,oCAAoC,CAAC,QAAoB,EAAA;QAC9D,IAAI,QAAQ,IAAI,QAAQ,CAAC,aAAa,CAAC,sBAAsB,EAAE;YAC7D,QAAQ,CAAC,aAAa,CAAC,sBAAsB,CAAC,eAAe,CAC3D,aAAa,CACd;;;8GAzIM,sBAAsB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,eAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;kHAAtB,sBAAsB,EAAA,CAAA,CAAA;;2FAAtB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBADlC;;;AC0BD;;AAEG;MAQU,qBAAqB,CAAA;AAPlC,IAAA,WAAA,GAAA;AAQY,QAAA,IAAA,CAAA,cAAc,GAAG,QAAQ,CAAC,mBAAmB,CAAC,oBAAoB,CAAC;AACnE,QAAA,IAAA,CAAA,UAAU,GAAG,QAAQ,CAAC,mBAAmB,CAAC,oBAAoB,CAAC;QAQzE,IAAe,CAAA,eAAA,GAAuB,EAAE;AAE/B,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,sBAAsB,CAAC;AACzC,QAAA,IAAA,CAAA,eAAe,GAAG,MAAM,CAAC,iBAAiB,CAAC;AAC3C,QAAA,IAAA,CAAA,oBAAoB,GAAG,MAAM,CAAC,0BAA0B,CAAC;AACzD,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC;AAC3B,QAAA,IAAA,CAAA,oBAAoB,GAAG,MAAM,CAAC,mBAAmB,CAAC;AAClD,QAAA,IAAA,CAAA,iBAAiB,GAAG,MAAM,CAAC,mBAAmB,CAAC;QAC/C,IAAO,CAAA,OAAA,GAAG,MAAM,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AAC5C,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,eAAe,CAAC;AAsJ9C;AA/JC,IAAA,eAAe;AAEN,IAAA,QAAQ;AACR,IAAA,eAAe;AACf,IAAA,oBAAoB;AACpB,IAAA,MAAM;AACN,IAAA,oBAAoB;AACpB,IAAA,iBAAiB;AACjB,IAAA,OAAO;AACP,IAAA,UAAU;IAEZ,WAAW,GAAA;;QAEhB,IAAI,CAAC,uBAAuB,EAAE;AAC9B,QAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,gBAAgB,EAAE;;AAGzC,IAAA,IAAI,CACT,aAA+B,EAC/B,SAAkB,EAClB,MAAuC,EACvC,mBAAyC,EAAA;AAEzC;AACmE;;AAEnE,QAAA,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YAChB;;QAGF,MAAM,MAAM,GAAmC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC;AAExE,QAAA,MAAM,WAAW,GAAG,IAAI,mBAAmB,EAAE;QAC7C,WAAW,CAAC,QAAQ,GAAG,CAAC,CAAC,MAAM,CAAC,QAAQ;AAExC,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ;AAC7B,QAAA,MAAM,WAAW,GAAgB,OAAO,CAAC,cAAc,EAAE;QAEzD,IAAI,MAAM,GAAG,IAAI;AAEjB,QAAA,MAAM,CAAC,SAAS,KAAK,EAAE;AACvB,QAAA,MAAM,CAAC,SAAS,CAAC,IAAI,CACnB;AACE,YAAA,OAAO,EAAE,mBAAmB;AAC5B,YAAA,QAAQ,EAAE,WAAW;SACtB,EACD;AACE,YAAA,OAAO,EAAE,qBAAqB;AAC9B,YAAA,QAAQ,EAAE,MAAM;SACjB,EACD;AACE,YAAA,OAAO,EAAE,oBAAoB;AAC7B,YAAA,QAAQ,EAAE;gBACR,MAAM,EAAE,IAAI,eAAe,CAAC,WAAW,CAAC,cAAc,EAAE;AACrD,qBAAA,YAAY;AACZ,qBAAA,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;AACzC,aAAA;AACF,SAAA,CACF;QAED,OAAO,CAAC,aAAa,CAAC,mBAAmB,CAAC,cAAc,GAAG,CAAC,CAAC;QAC7D,OAAO,CAAC,wBAAwB,CAC9B,mBAAmB,CAAC,kBAAkB,GAAG,CAAC,CAC3C;AAED,QAAA,mBAAmB,KAAK,IAAI,CAAC,oBAAoB;QACjD,MAAM,iBAAiB,GAAG,IAAI,CAAC,oBAAoB,CAAC,eAAe,CACjE,SAAS,EACT;AACE,YAAA,mBAAmB,EAAE,mBAAmB;YACxC,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,gBAAgB,EAAE,IAAI,CAAC,MAAM;AAC9B,SAAA,CACF;;AAGD,QAAA,MAAM,YAAY,GAAG,iBAAiB,CAAC,QAAQ;AAE/C,QAAA,aAAa,CAAC,OAAO,GAAG,IAAI,CAAC,QAAQ;AACrC,QAAA,aAAa,CAAC,YAAY,GAAG,iBAAiB;AAE9C,QAAA,IAAI,CAAC,sBAAsB,CAAC,aAAa,CAAC;;;QAI1C,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,UAAU,CAAC,MAAK;AAC3C,YAAA,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,YAAY,CAAC;;YAG7C,IAAI,CAAC,QAAQ,CAAC,iCAAiC,CAAC,IAAI,CAAC,MAAM,CAAC;AAC5D,YAAA,IACE,mBAAmB,CAAC,cAAc,GAAG,CAAC;AACtC,gBAAA,mBAAmB,CAAC,QAAQ,KAAK,WAAW,EAC5C;;AAEA,gBAAA,IAAI,CAAC,QAAQ,CAAC,kCAAkC,CAAC,YAAY,CAAC;;AAElE,SAAC,CAAC;QAEF,MAAM,UAAU,GAAG,MAAW;;AAE5B,YAAA,IAAI,mBAAmB,CAAC,cAAc,KAAK,CAAC,EAAE;AAC5C,gBAAA,IAAI,CAAC,QAAQ,CAAC,4CAA4C,EAAE;;AACvD,iBAAA,IAAI,mBAAmB,CAAC,QAAQ,KAAK,WAAW,EAAE;;AAEvD,gBAAA,IAAI,CAAC,QAAQ,CAAC,oCAAoC,CAAC,YAAY,CAAC;;YAGlE,WAAW,CAAC,OAAO,EAAE;YACrB,OAAO,CAAC,aAAa,CAAC,mBAAmB,CAAC,cAAc,GAAG,CAAC,CAAC;YAC7D,OAAO,CAAC,wBAAwB,CAC9B,mBAAmB,CAAC,kBAAkB,GAAG,CAAC,CAC3C;;;AAGD,YAAA,IAAI,WAAW,IAAI,WAAW,CAAC,KAAK,EAAE;gBACpC,WAAW,CAAC,KAAK,EAAE;;YAErB,iBAAiB,CAAC,OAAO,EAAE;AAC7B,SAAC;QAED,WAAW,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,OAAO,KAAI;AACzC,YAAA,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC;AACjC,SAAC,CAAC;AAEF,QAAA,WAAW,CAAC,KAAK,CAAC,SAAS,CAAC,MAAK;YAC/B,aAAa,CAAC,KAAK,EAAE;AACvB,SAAC,CAAC;QAEF,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,KAAK,KAAI;;AAErE,YAAA,IAAI,KAAK,YAAY,eAAe,EAAE;gBACpC,aAAa,CAAC,KAAK,EAAE;;AAEzB,SAAC,CAAC;AAEF,QAAA,aAAa,CAAC,MAAM,CAAC,SAAS,CAAC,MAAK;YAClC,MAAM,GAAG,KAAK;AACd,YAAA,IAAI,CAAC,wBAAwB,CAAC,aAAa,CAAC;AAC5C,YAAA,UAAU,EAAE;AACd,SAAC,CAAC;;AAGF,QAAA,IAAI,CAAC,eAAe,CAAC,aAAa,EAAE;;AAGtC,IAAA,sBAAsB,CAAC,QAA0B,EAAA;AAC/C,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC;;AAGrC,IAAA,wBAAwB,CAAC,QAA0B,EAAA;AACjD,QAAA,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;;IAGvE,uBAAuB,GAAA;AACrB,QAAA,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,eAAe,EAAE;YAC3C,QAAQ,CAAC,KAAK,EAAE;;;8GAtKT,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAArB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,qBAAqB,EAKxB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,QAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,QAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAAA,gBAAgB,EC/C1B,MAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,oKAQA,EDgCY,MAAA,EAAA,CAAA,oQAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,YAAY,EAAE,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAH,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,YAAY,EAAE,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,wBAAwB,EAD/C,CAAA,EAAA,aAAA,EAAA,CAAC,sBAAsB,CAAC,EAAA,CAAA,CAAA;;2FAG5B,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAPjC,SAAS;+BACE,gBAAgB,EAAA,aAAA,EAGX,CAAC,sBAAsB,CAAC,EAAA,OAAA,EAC9B,CAAC,YAAY,EAAE,YAAY,EAAE,wBAAwB,CAAC,EAAA,QAAA,EAAA,oKAAA,EAAA,MAAA,EAAA,CAAA,oQAAA,CAAA,EAAA;8BAUxD,MAAM,EAAA,CAAA;sBAJZ,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,QAAQ,EAAE;AACnB,wBAAA,IAAI,EAAE,gBAAgB;AACtB,wBAAA,MAAM,EAAE,IAAI;AACb,qBAAA;;;AEhCH;;AAEG;MAIU,eAAe,CAAA;AAG1B,IAAA,wBAAwB;AACxB,IAAA,oBAAoB,GAAG,MAAM,CAAC,mBAAmB,CAAC;AAElD,IAAA,WAAA,CAAY,uBAAmD,EAAA;AAC7D,QAAA,IAAI,CAAC,wBAAwB,GAAG,uBAAuB;;AAGzD;;;AAGG;IACI,OAAO,GAAA;AACZ,QAAA,IAAI,eAAe,CAAC,IAAI,EAAE;YACxB,IAAI,CAAC,wBAAwB,CAAC,eAAe,CAAC,eAAe,CAAC,IAAI,CAAC;AACnE,YAAA,eAAe,CAAC,IAAI,GAAG,SAAS;;;AAIpC;;;;AAIG;IACI,IAAI,CACT,SAAc,EACd,MAA+C,EAAA;AAE/C,QAAA,MAAM,aAAa,GAAG,IAAI,gBAAgB,EAAE;AAE5C,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE;AACzB,YAAA,eAAe,CAAC,IAAI,GAAG,IAAI,CAAC,oBAAoB,EAAE;;QAGpD,MAAM,MAAM,GAAG,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC;AAEnD,QAAA,MAAM,CAAC,SAAS,KAAK,EAAE;AACvB,QAAA,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC;AACpB,YAAA,OAAO,EAAE,gBAAgB;AACzB,YAAA,QAAQ,EAAE,aAAa;AACxB,SAAA,CAAC;AAEF,QAAA,IAAI,eAAe,CAAC,IAAI,EAAE;AACxB,YAAA,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAChC,aAAa,EACb,SAAS,EACT,MAAM,EACN,IAAI,CAAC,oBAAoB,CAC1B;;AAGH,QAAA,OAAO,aAAa;;AAGtB,IAAA,uBAAuB,CACrB,iBAAsB,EAAA;AAEtB,QAAA,MAAM,aAAa,GAAmC;AACpD,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,QAAQ,EAAE,KAAK;AACf,YAAA,IAAI,EAAE,QAAQ;AACd,YAAA,SAAS,EAAE,KAAK;SACjB;QACD,IAAI,MAAM,GAAmC,EAAE;QAC/C,IAAI,MAAM,GAAQ,SAAS;;AAG3B,QAAA,MAAM,GAAG;YACP,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,aAAa,EAAE;AAC7C,gBAAA,SAAS,EAAE,iBAAiB;aAC7B,CAAC;YACF,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,aAAa,EAAE,iBAAiB,CAAC;SAC5D;QAED,IAAI,KAAK,CAAC,OAAO,CAAC,iBAAiB,CAAC,KAAK,IAAI,EAAE;AAC7C,YAAA,MAAM,GAAG,MAAM,CAAC,YAAY,CAAC;;aACxB;AACL,YAAA,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC;;AAG3B,QAAA,OAAO,MAAM;;IAGf,oBAAoB,GAAA;QAClB,MAAM,YAAY,GAAG,IAAI,CAAC,wBAAwB,CAAC,eAAe,CAChE,qBAAqB,EACrB;YACE,mBAAmB,EAAE,IAAI,CAAC,oBAAoB;AAC9C,YAAA,SAAS,EAAE;AACT,gBAAA;AACE,oBAAA,OAAO,EAAE,mBAAmB;oBAC5B,QAAQ,EAAE,IAAI,mBAAmB,CAAC;wBAChC,gBAAgB,EAAE,MAAW;4BAC3B,IAAI,CAAC,OAAO,EAAE;yBACf;qBACF,CAAC;AACH,iBAAA;AACF,aAAA;AACF,SAAA,CACF;AAED,QAAA,OAAO,YAAY;;8GAvGV,eAAe,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,0BAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAf,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,cAFd,MAAM,EAAA,CAAA,CAAA;;2FAEP,eAAe,EAAA,UAAA,EAAA,CAAA;kBAH3B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA;;AA4GD;;;;AAIG;AAOG,MAAO,qBAAsB,SAAQ,eAAe,CAAA;;AAExD,IAAA,WAAA,CAAY,mBAAqD,EAAA;QAC/D,KAAK,CAAC,mBAAmB,CAAC;;8GAHjB,qBAAqB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gCAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAArB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qBAAqB,cAFpB,KAAK,EAAA,CAAA,CAAA;;2FAEN,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBANjC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;;;;AAIV,oBAAA,UAAU,EAAE,KAAK;AAClB,iBAAA;;;AClID;;AAEG;MAIU,iBAAiB,CAAA;AAC5B,IAAA,aAAa;AAEb,IAAA,WAAA,CAAY,YAA6B,EAAA;AACvC,QAAA,IAAI,CAAC,aAAa,GAAG,YAAY;;AAGnC;;;AAGG;AACI,IAAA,IAAI,CAAC,MAAwB,EAAA;AAClC,QAAA,MAAM,eAAe,GAAG,IAAI,kBAAkB,EAAE;AAEhD,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,mBAAmB,EAAE;AAC3C,YAAA,SAAS,EAAE;AACT,gBAAA;AACE,oBAAA,OAAO,EAAE,kBAAkB;AAC3B,oBAAA,QAAQ,EAAE,MAAM;AACjB,iBAAA;AACD,gBAAA;AACE,oBAAA,OAAO,EAAE,kBAAkB;AAC3B,oBAAA,QAAQ,EAAE,eAAe;AAC1B,iBAAA;AACF,aAAA;AACF,SAAA,CAAC;AAEF,QAAA,OAAO,eAAe;;8GA3Bb,iBAAiB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAI,eAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAjB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,cAFhB,MAAM,EAAA,CAAA,CAAA;;2FAEP,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAH7B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA;;;ACRD;;AAEG;MASU,uBAAuB,CAAA;AARpC,IAAA,WAAA,GAAA;AASqB,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,qBAAqB,CAAC;AAC7D;8GAFY,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAvB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,uBAAuB,EClBpC,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,cAAA,EAAA,CAAA,EAAA,SAAA,EAAA,EAAA,CAAA,0BAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,uyBAwBA,EDRY,MAAA,EAAA,CAAA,upCAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,YAAY,qLAAE,wBAAwB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,IAAA,CAAA,GAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,oBAAA,EAAA,kBAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FAErC,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBARnC,SAAS;AACQ,YAAA,IAAA,EAAA,CAAA,EAAA,cAAA,EAAA,CAAC,0BAA0B,CAAC,EAClC,QAAA,EAAA,kBAAkB,EAGb,aAAA,EAAA,iBAAiB,CAAC,IAAI,EAC5B,OAAA,EAAA,CAAC,YAAY,EAAE,wBAAwB,CAAC,EAAA,QAAA,EAAA,uyBAAA,EAAA,MAAA,EAAA,CAAA,upCAAA,CAAA,EAAA;;;AEGnD;;;AAGG;MAQU,wBAAwB,CAAA;AAPrC,IAAA,WAAA,GAAA;AAQE;;;AAGG;QAKI,IAAO,CAAA,OAAA,GAAG,KAAK;AAEb,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,OAAO,EAAQ;AAEpC,QAAA,IAAA,CAAA,cAAc,GAAG,MAAM,CAAC,gBAAgB,CAAC;AACzC,QAAA,IAAA,CAAA,WAAW,GAAG,MAAM,CAAC,iBAAiB,CAAC;AACvC,QAAA,IAAA,CAAA,aAAa,GAAG,MAAM,CAAC,sBAAsB,CAAC;AAwDxD;AA5DU,IAAA,cAAc;AAEd,IAAA,cAAc;AACd,IAAA,WAAW;AACX,IAAA,aAAa;IAEf,QAAQ,GAAA;QACb,IAAI,CAAC,cAAc,CAAC;AACjB,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC;AACnC,aAAA,SAAS,CAAC,CAAC,OAAO,KAAK,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;;IAGlD,WAAW,GAAA;AAChB,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE;AAC1B,QAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE;;AAGhC,IAAA,cAAc,CAAC,OAAmC,EAAA;QAChD,IACE,IAAI,CAAC,OAAO;AACZ,aAAC,OAAO,CAAC,SAAS,CAAC,MAAM,KAAK,OAAO;gBACnC,OAAO,CAAC,SAAS,CAAC,MAAM,KAAK,QAAQ,CAAC,EACxC;AACA,YAAA,IAAI,CAAC;AACF,iBAAA,UAAU,CAAC;AACV,gBAAA,OAAO,EAAE,mCAAmC;AAC5C,gBAAA,iBAAiB,EAAE,gDAAgD;AACnE,gBAAA,cAAc,EAAE,6CAA6C;aAC9D;AACA,iBAAA,SAAS,CAAC,CAAC,UAAU,KAAI;gBACxB,MAAM,aAAa,GAAG,SAAS;gBAC/B,MAAM,UAAU,GAAG,MAAM;AAEzB,gBAAA,IAAI,CAAC;AACF,qBAAA,IAAI,CAAC;oBACJ,OAAO,EAAE,UAAU,CAAC,OAAO;AAC3B,oBAAA,OAAO,EAAE;AACP,wBAAA;AACE,4BAAA,MAAM,EAAE,aAAa;4BACrB,IAAI,EAAE,UAAU,CAAC,iBAAiB;AAClC,4BAAA,SAAS,EAAE,SAAS;AACrB,yBAAA;AACD,wBAAA;AACE,4BAAA,MAAM,EAAE,UAAU;4BAClB,IAAI,EAAE,UAAU,CAAC,cAAc;AAC/B,4BAAA,SAAS,EAAE,MAAM;AAClB,yBAAA;AACF,qBAAA;oBACD,IAAI,EAAE,cAAc,CAAC,MAAM;iBAC5B;AACA,qBAAA,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,KAAI;AACzB,oBAAA,IAAI,IAAI,CAAC,MAAM,KAAK,aAAa,EAAE;wBACjC,OAAO,CAAC,UAAU,EAAE;;AAExB,iBAAC,CAAC;AACN,aAAC,CAAC;;aACC;YACL,OAAO,CAAC,UAAU,EAAE;;;8GApEb,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAxB,wBAAwB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,8BAAA,EAAA,cAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAxB,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAPpC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,UAAU,EAAE,IAAI;;;;AAIhB,oBAAA,QAAQ,EAAE,oBAAoB;AAC/B,iBAAA;8BAUQ,OAAO,EAAA,CAAA;sBAJb;;sBAGA,WAAW;uBAAC,8BAA8B;;;MCdhC,cAAc,CAAA;8GAAd,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAd,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,YAdvB,iBAAiB;YACjB,wBAAwB;YACxB,uBAAuB;YACvB,uBAAuB;AACvB,YAAA,wBAAwB,aAGxB,iBAAiB;YACjB,wBAAwB;YACxB,uBAAuB;YACvB,uBAAuB;YACvB,wBAAwB,CAAA,EAAA,CAAA,CAAA;AAGf,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,YAdvB,iBAAiB;YAEjB,uBAAuB;YACvB,uBAAuB,CAAA,EAAA,CAAA,CAAA;;2FAWd,cAAc,EAAA,UAAA,EAAA,CAAA;kBAhB1B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE;wBACP,iBAAiB;wBACjB,wBAAwB;wBACxB,uBAAuB;wBACvB,uBAAuB;wBACvB,wBAAwB;AACzB,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,iBAAiB;wBACjB,wBAAwB;wBACxB,uBAAuB;wBACvB,uBAAuB;wBACvB,wBAAwB;AACzB,qBAAA;AACF,iBAAA;;;ACvBD;;AAEG;;;;"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@skyux/modals",
|
|
3
|
-
"version": "12.
|
|
3
|
+
"version": "12.6.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.6.0",
|
|
24
|
+
"@skyux/help-inline": "12.6.0",
|
|
25
|
+
"@skyux/i18n": "12.6.0",
|
|
26
|
+
"@skyux/icon": "12.6.0",
|
|
27
|
+
"@skyux/indicators": "12.6.0",
|
|
28
|
+
"@skyux/theme": "12.6.0"
|
|
29
29
|
},
|
|
30
30
|
"dependencies": {
|
|
31
31
|
"tslib": "^2.8.1"
|