@skyux/modals 8.7.2 → 9.0.0-alpha.1
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/documentation.json +56 -56
- package/esm2022/lib/modules/confirm/confirm.component.mjs +112 -0
- package/{esm2020 → esm2022}/lib/modules/confirm/confirm.module.mjs +13 -13
- package/esm2022/lib/modules/confirm/confirm.service.mjs +54 -0
- package/esm2022/lib/modules/modal/modal-adapter.service.mjs +99 -0
- package/esm2022/lib/modules/modal/modal-component-adapter.service.mjs +101 -0
- package/{esm2020 → esm2022}/lib/modules/modal/modal-configuration.mjs +4 -4
- package/{esm2020 → esm2022}/lib/modules/modal/modal-content.component.mjs +4 -4
- package/esm2022/lib/modules/modal/modal-errors.service.mjs +21 -0
- package/{esm2020 → esm2022}/lib/modules/modal/modal-footer.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/modules/modal/modal-header.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/modules/modal/modal-host-context.mjs +4 -4
- package/esm2022/lib/modules/modal/modal-host.component.mjs +163 -0
- package/esm2022/lib/modules/modal/modal-host.service.mjs +62 -0
- package/esm2022/lib/modules/modal/modal-instance.mjs +123 -0
- package/esm2022/lib/modules/modal/modal-is-dirty.directive.mjs +94 -0
- package/esm2022/lib/modules/modal/modal-scroll-shadow.directive.mjs +129 -0
- package/esm2022/lib/modules/modal/modal.component.mjs +229 -0
- package/{esm2020 → esm2022}/lib/modules/modal/modal.module.mjs +29 -29
- package/esm2022/lib/modules/modal/modal.service.mjs +97 -0
- package/esm2022/lib/modules/shared/sky-modals-resources.module.mjs +61 -0
- package/esm2022/testing/confirm/confirm-button-harness.mjs +46 -0
- package/esm2022/testing/confirm/confirm-harness.mjs +90 -0
- package/esm2022/testing/modal/modal-harness.mjs +75 -0
- package/esm2022/testing/modal-fixture.mjs +143 -0
- package/{fesm2020 → fesm2022}/skyux-modals-testing.mjs +60 -73
- package/{fesm2020 → fesm2022}/skyux-modals-testing.mjs.map +1 -1
- package/fesm2022/skyux-modals.mjs +1502 -0
- package/{fesm2015 → fesm2022}/skyux-modals.mjs.map +1 -1
- package/lib/modules/modal/modal-is-dirty.directive.d.ts +1 -1
- package/lib/modules/modal/modal.component.d.ts +1 -1
- package/package.json +16 -24
- package/esm2020/lib/modules/confirm/confirm.component.mjs +0 -114
- package/esm2020/lib/modules/confirm/confirm.service.mjs +0 -57
- package/esm2020/lib/modules/modal/modal-adapter.service.mjs +0 -101
- package/esm2020/lib/modules/modal/modal-component-adapter.service.mjs +0 -104
- package/esm2020/lib/modules/modal/modal-errors.service.mjs +0 -24
- package/esm2020/lib/modules/modal/modal-host.component.mjs +0 -164
- package/esm2020/lib/modules/modal/modal-host.service.mjs +0 -65
- package/esm2020/lib/modules/modal/modal-instance.mjs +0 -127
- package/esm2020/lib/modules/modal/modal-is-dirty.directive.mjs +0 -93
- package/esm2020/lib/modules/modal/modal-scroll-shadow.directive.mjs +0 -127
- package/esm2020/lib/modules/modal/modal.component.mjs +0 -228
- package/esm2020/lib/modules/modal/modal.service.mjs +0 -99
- package/esm2020/lib/modules/shared/sky-modals-resources.module.mjs +0 -61
- package/esm2020/testing/confirm/confirm-button-harness.mjs +0 -46
- package/esm2020/testing/confirm/confirm-harness.mjs +0 -97
- package/esm2020/testing/modal/modal-harness.mjs +0 -81
- package/esm2020/testing/modal-fixture.mjs +0 -145
- package/fesm2015/skyux-modals-testing.mjs +0 -409
- package/fesm2015/skyux-modals-testing.mjs.map +0 -1
- package/fesm2015/skyux-modals.mjs +0 -1522
- package/fesm2020/skyux-modals.mjs +0 -1510
- package/fesm2020/skyux-modals.mjs.map +0 -1
- /package/{esm2020 → esm2022}/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/confirm/confirm-button-action.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/confirm/confirm-button-config.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/confirm/confirm-button-style-type.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/confirm/confirm-button.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/confirm/confirm-closed-event-args.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/confirm/confirm-config-token.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/confirm/confirm-config.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/confirm/confirm-instance.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/confirm/confirm-type.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/modal/modal-before-close-handler.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/modal/modal-close-args.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/modal/modal-error.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/modal/modal-host-context-args.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/modal/modal-scroll-shadow-event-args.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/modal/modal.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/skyux-modals.mjs +0 -0
- /package/{esm2020 → esm2022}/testing/confirm/confirm-button-harness-filters.mjs +0 -0
- /package/{esm2020 → esm2022}/testing/modal/modal-harness-filters.mjs +0 -0
- /package/{esm2020 → esm2022}/testing/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/testing/skyux-modals-testing.mjs +0 -0
|
@@ -1,164 +0,0 @@
|
|
|
1
|
-
var _SkyModalHostComponent_instances, _SkyModalHostComponent_resolver, _SkyModalHostComponent_adapter, _SkyModalHostComponent_injector, _SkyModalHostComponent_router, _SkyModalHostComponent_changeDetector, _SkyModalHostComponent_modalHostContext, _SkyModalHostComponent_elRef, _SkyModalHostComponent_modalInstances, _SkyModalHostComponent_registerModalInstance, _SkyModalHostComponent_unregisterModalInstance, _SkyModalHostComponent_closeAllModalInstances;
|
|
2
|
-
import { __classPrivateFieldGet, __classPrivateFieldSet } from "tslib";
|
|
3
|
-
import { Component, Injector, Optional, ViewChild, ViewContainerRef, } from '@angular/core';
|
|
4
|
-
import { NavigationStart } from '@angular/router';
|
|
5
|
-
import { SKY_STACKING_CONTEXT, SkyMediaQueryService, SkyResizeObserverMediaQueryService, } from '@skyux/core';
|
|
6
|
-
import { BehaviorSubject } from 'rxjs';
|
|
7
|
-
import { takeUntil, takeWhile } from 'rxjs/operators';
|
|
8
|
-
import { SkyModalAdapterService } from './modal-adapter.service';
|
|
9
|
-
import { SkyModalConfiguration } from './modal-configuration';
|
|
10
|
-
import { SkyModalHostService } from './modal-host.service';
|
|
11
|
-
import * as i0 from "@angular/core";
|
|
12
|
-
import * as i1 from "./modal-adapter.service";
|
|
13
|
-
import * as i2 from "./modal-host-context";
|
|
14
|
-
import * as i3 from "@angular/router";
|
|
15
|
-
import * as i4 from "@angular/common";
|
|
16
|
-
/**
|
|
17
|
-
* @internal
|
|
18
|
-
*/
|
|
19
|
-
export class SkyModalHostComponent {
|
|
20
|
-
get modalOpen() {
|
|
21
|
-
return SkyModalHostService.openModalCount > 0;
|
|
22
|
-
}
|
|
23
|
-
get backdropZIndex() {
|
|
24
|
-
return SkyModalHostService.backdropZIndex;
|
|
25
|
-
}
|
|
26
|
-
constructor(resolver, adapter, injector, changeDetector, modalHostContext, elRef, router) {
|
|
27
|
-
_SkyModalHostComponent_instances.add(this);
|
|
28
|
-
_SkyModalHostComponent_resolver.set(this, void 0);
|
|
29
|
-
_SkyModalHostComponent_adapter.set(this, void 0);
|
|
30
|
-
_SkyModalHostComponent_injector.set(this, void 0);
|
|
31
|
-
_SkyModalHostComponent_router.set(this, void 0);
|
|
32
|
-
_SkyModalHostComponent_changeDetector.set(this, void 0);
|
|
33
|
-
_SkyModalHostComponent_modalHostContext.set(this, void 0);
|
|
34
|
-
_SkyModalHostComponent_elRef.set(this, void 0);
|
|
35
|
-
_SkyModalHostComponent_modalInstances.set(this, []);
|
|
36
|
-
__classPrivateFieldSet(this, _SkyModalHostComponent_resolver, resolver, "f");
|
|
37
|
-
__classPrivateFieldSet(this, _SkyModalHostComponent_adapter, adapter, "f");
|
|
38
|
-
__classPrivateFieldSet(this, _SkyModalHostComponent_injector, injector, "f");
|
|
39
|
-
__classPrivateFieldSet(this, _SkyModalHostComponent_router, router, "f");
|
|
40
|
-
__classPrivateFieldSet(this, _SkyModalHostComponent_changeDetector, changeDetector, "f");
|
|
41
|
-
__classPrivateFieldSet(this, _SkyModalHostComponent_modalHostContext, modalHostContext, "f");
|
|
42
|
-
__classPrivateFieldSet(this, _SkyModalHostComponent_elRef, elRef, "f");
|
|
43
|
-
}
|
|
44
|
-
ngOnDestroy() {
|
|
45
|
-
// Close all modal instances before disposing of the host container.
|
|
46
|
-
__classPrivateFieldGet(this, _SkyModalHostComponent_instances, "m", _SkyModalHostComponent_closeAllModalInstances).call(this);
|
|
47
|
-
__classPrivateFieldGet(this, _SkyModalHostComponent_modalHostContext, "f").args.teardownCallback();
|
|
48
|
-
}
|
|
49
|
-
open(modalInstance, component, config) {
|
|
50
|
-
/* Ignore coverage as we specify the target element and so the view child should never be undefined unless
|
|
51
|
-
* we were to call the `open` method in an early lifecycle hook. */
|
|
52
|
-
/* istanbul ignore next */
|
|
53
|
-
if (!this.target) {
|
|
54
|
-
return;
|
|
55
|
-
}
|
|
56
|
-
const params = Object.assign({}, config);
|
|
57
|
-
const factory = __classPrivateFieldGet(this, _SkyModalHostComponent_resolver, "f").resolveComponentFactory(component);
|
|
58
|
-
const hostService = new SkyModalHostService();
|
|
59
|
-
hostService.fullPage = !!params.fullPage;
|
|
60
|
-
const adapter = __classPrivateFieldGet(this, _SkyModalHostComponent_adapter, "f");
|
|
61
|
-
const modalOpener = adapter.getModalOpener();
|
|
62
|
-
let isOpen = true;
|
|
63
|
-
params.providers || (params.providers = []);
|
|
64
|
-
params.providers.push({
|
|
65
|
-
provide: SkyModalHostService,
|
|
66
|
-
useValue: hostService,
|
|
67
|
-
}, {
|
|
68
|
-
provide: SkyModalConfiguration,
|
|
69
|
-
useValue: params,
|
|
70
|
-
}, {
|
|
71
|
-
provide: SkyMediaQueryService,
|
|
72
|
-
useExisting: SkyResizeObserverMediaQueryService,
|
|
73
|
-
}, {
|
|
74
|
-
provide: SKY_STACKING_CONTEXT,
|
|
75
|
-
useValue: {
|
|
76
|
-
zIndex: new BehaviorSubject(hostService.getModalZIndex())
|
|
77
|
-
.asObservable()
|
|
78
|
-
.pipe(takeUntil(modalInstance.closed)),
|
|
79
|
-
},
|
|
80
|
-
});
|
|
81
|
-
adapter.setPageScroll(SkyModalHostService.openModalCount > 0);
|
|
82
|
-
adapter.toggleFullPageModalClass(SkyModalHostService.fullPageModalCount > 0);
|
|
83
|
-
const providers = params.providers || /* istanbul ignore next */ [];
|
|
84
|
-
const injector = Injector.create({
|
|
85
|
-
providers,
|
|
86
|
-
parent: __classPrivateFieldGet(this, _SkyModalHostComponent_injector, "f"),
|
|
87
|
-
});
|
|
88
|
-
const modalComponentRef = this.target.createComponent(factory, undefined, injector);
|
|
89
|
-
// modal element that was just opened
|
|
90
|
-
const modalElement = modalComponentRef.location;
|
|
91
|
-
modalInstance.adapter = __classPrivateFieldGet(this, _SkyModalHostComponent_adapter, "f");
|
|
92
|
-
modalInstance.componentRef = modalComponentRef;
|
|
93
|
-
__classPrivateFieldGet(this, _SkyModalHostComponent_instances, "m", _SkyModalHostComponent_registerModalInstance).call(this, modalInstance);
|
|
94
|
-
// hiding all elements at the modal-host level from screen readers when the a modal is opened
|
|
95
|
-
__classPrivateFieldGet(this, _SkyModalHostComponent_adapter, "f").hideHostSiblingsFromScreenReaders(__classPrivateFieldGet(this, _SkyModalHostComponent_elRef, "f"));
|
|
96
|
-
if (SkyModalHostService.openModalCount > 1 &&
|
|
97
|
-
SkyModalHostService.topModal === hostService) {
|
|
98
|
-
// hiding the lower modals when more than one modal is opened
|
|
99
|
-
__classPrivateFieldGet(this, _SkyModalHostComponent_adapter, "f").hidePreviousModalFromScreenReaders(modalElement);
|
|
100
|
-
}
|
|
101
|
-
const closeModal = () => {
|
|
102
|
-
// unhide siblings if last modal is closing
|
|
103
|
-
if (SkyModalHostService.openModalCount === 1) {
|
|
104
|
-
__classPrivateFieldGet(this, _SkyModalHostComponent_adapter, "f").unhideOrRestoreHostSiblingsFromScreenReaders();
|
|
105
|
-
}
|
|
106
|
-
else if (SkyModalHostService.topModal === hostService) {
|
|
107
|
-
// if there are more than 1 modal then unhide the one behind this one before closing it
|
|
108
|
-
__classPrivateFieldGet(this, _SkyModalHostComponent_adapter, "f").unhidePreviousModalFromScreenReaders(modalElement);
|
|
109
|
-
}
|
|
110
|
-
hostService.destroy();
|
|
111
|
-
adapter.setPageScroll(SkyModalHostService.openModalCount > 0);
|
|
112
|
-
adapter.toggleFullPageModalClass(SkyModalHostService.fullPageModalCount > 0);
|
|
113
|
-
/* istanbul ignore else */
|
|
114
|
-
/* sanity check */
|
|
115
|
-
if (modalOpener && modalOpener.focus) {
|
|
116
|
-
modalOpener.focus();
|
|
117
|
-
}
|
|
118
|
-
modalComponentRef.destroy();
|
|
119
|
-
};
|
|
120
|
-
hostService.openHelp.subscribe((helpKey) => {
|
|
121
|
-
modalInstance.openHelp(helpKey);
|
|
122
|
-
});
|
|
123
|
-
hostService.close.subscribe(() => {
|
|
124
|
-
modalInstance.close();
|
|
125
|
-
});
|
|
126
|
-
__classPrivateFieldGet(this, _SkyModalHostComponent_router, "f")?.events.pipe(takeWhile(() => isOpen)).subscribe((event) => {
|
|
127
|
-
/* istanbul ignore else */
|
|
128
|
-
if (event instanceof NavigationStart) {
|
|
129
|
-
modalInstance.close();
|
|
130
|
-
}
|
|
131
|
-
});
|
|
132
|
-
modalInstance.closed.subscribe(() => {
|
|
133
|
-
isOpen = false;
|
|
134
|
-
__classPrivateFieldGet(this, _SkyModalHostComponent_instances, "m", _SkyModalHostComponent_unregisterModalInstance).call(this, modalInstance);
|
|
135
|
-
closeModal();
|
|
136
|
-
});
|
|
137
|
-
// Necessary if the host was created via a consumer's lifecycle hook such as ngOnInit
|
|
138
|
-
__classPrivateFieldGet(this, _SkyModalHostComponent_changeDetector, "f").detectChanges();
|
|
139
|
-
}
|
|
140
|
-
}
|
|
141
|
-
_SkyModalHostComponent_resolver = new WeakMap(), _SkyModalHostComponent_adapter = new WeakMap(), _SkyModalHostComponent_injector = new WeakMap(), _SkyModalHostComponent_router = new WeakMap(), _SkyModalHostComponent_changeDetector = new WeakMap(), _SkyModalHostComponent_modalHostContext = new WeakMap(), _SkyModalHostComponent_elRef = new WeakMap(), _SkyModalHostComponent_modalInstances = new WeakMap(), _SkyModalHostComponent_instances = new WeakSet(), _SkyModalHostComponent_registerModalInstance = function _SkyModalHostComponent_registerModalInstance(instance) {
|
|
142
|
-
__classPrivateFieldGet(this, _SkyModalHostComponent_modalInstances, "f").push(instance);
|
|
143
|
-
}, _SkyModalHostComponent_unregisterModalInstance = function _SkyModalHostComponent_unregisterModalInstance(instance) {
|
|
144
|
-
__classPrivateFieldGet(this, _SkyModalHostComponent_modalInstances, "f").slice(__classPrivateFieldGet(this, _SkyModalHostComponent_modalInstances, "f").indexOf(instance), 1);
|
|
145
|
-
}, _SkyModalHostComponent_closeAllModalInstances = function _SkyModalHostComponent_closeAllModalInstances() {
|
|
146
|
-
for (const instance of __classPrivateFieldGet(this, _SkyModalHostComponent_modalInstances, "f")) {
|
|
147
|
-
instance.close();
|
|
148
|
-
}
|
|
149
|
-
};
|
|
150
|
-
SkyModalHostComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyModalHostComponent, deps: [{ token: i0.ComponentFactoryResolver }, { token: i1.SkyModalAdapterService }, { token: i0.Injector }, { token: i0.ChangeDetectorRef }, { token: i2.SkyModalHostContext }, { token: i0.ElementRef }, { token: i3.Router, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
151
|
-
SkyModalHostComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: SkyModalHostComponent, 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]=\"!modalOpen\"\n [ngStyle]=\"{\n zIndex: backdropZIndex\n }\"\n></div>\n<div #target></div>\n", styles: [".sky-modal-host-backdrop{background-color:#00000080;position:fixed;inset:0}\n"], dependencies: [{ kind: "directive", type: i4.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }], viewProviders: [SkyModalAdapterService] });
|
|
152
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyModalHostComponent, decorators: [{
|
|
153
|
-
type: Component,
|
|
154
|
-
args: [{ selector: 'sky-modal-host', viewProviders: [SkyModalAdapterService], template: "<div\n class=\"sky-modal-host-backdrop\"\n [hidden]=\"!modalOpen\"\n [ngStyle]=\"{\n zIndex: backdropZIndex\n }\"\n></div>\n<div #target></div>\n", styles: [".sky-modal-host-backdrop{background-color:#00000080;position:fixed;inset:0}\n"] }]
|
|
155
|
-
}], ctorParameters: function () { return [{ type: i0.ComponentFactoryResolver }, { type: i1.SkyModalAdapterService }, { type: i0.Injector }, { type: i0.ChangeDetectorRef }, { type: i2.SkyModalHostContext }, { type: i0.ElementRef }, { type: i3.Router, decorators: [{
|
|
156
|
-
type: Optional
|
|
157
|
-
}] }]; }, propDecorators: { target: [{
|
|
158
|
-
type: ViewChild,
|
|
159
|
-
args: ['target', {
|
|
160
|
-
read: ViewContainerRef,
|
|
161
|
-
static: true,
|
|
162
|
-
}]
|
|
163
|
-
}] } });
|
|
164
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtaG9zdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvbW9kYWxzL3NyYy9saWIvbW9kdWxlcy9tb2RhbC9tb2RhbC1ob3N0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9tb2RhbHMvc3JjL2xpYi9tb2R1bGVzL21vZGFsL21vZGFsLWhvc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEVBRUwsU0FBUyxFQUdULFFBQVEsRUFFUixRQUFRLEVBQ1IsU0FBUyxFQUNULGdCQUFnQixHQUNqQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZUFBZSxFQUFVLE1BQU0saUJBQWlCLENBQUM7QUFDMUQsT0FBTyxFQUNMLG9CQUFvQixFQUNwQixvQkFBb0IsRUFDcEIsa0NBQWtDLEdBQ25DLE1BQU0sYUFBYSxDQUFDO0FBRXJCLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdkMsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV0RCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNqRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUU5RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7O0FBSTNEOztHQUVHO0FBT0gsTUFBTSxPQUFPLHFCQUFxQjtJQUNoQyxJQUFXLFNBQVM7UUFDbEIsT0FBTyxtQkFBbUIsQ0FBQyxjQUFjLEdBQUcsQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFRCxJQUFXLGNBQWM7UUFDdkIsT0FBTyxtQkFBbUIsQ0FBQyxjQUFjLENBQUM7SUFDNUMsQ0FBQztJQXdCRCxZQUNFLFFBQWtD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LElBQUksNkNBQWdCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0FBQ3RDLENBQUMsMkdBRXdCLFFBQTBCO0lBQ2pELHVCQUFBLElBQUksNkNBQWdCLENBQUMsS0FBSyxDQUFDLHVCQUFBLElBQUksNkNBQWdCLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQ3hFLENBQUM7SUFHQyxLQUFLLE1BQU0sUUFBUSxJQUFJLHVCQUFBLElBQUksNkNBQWdCLEVBQUU7UUFDM0MsUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDO0tBQ2xCO0FBQ0gsQ0FBQztrSEFwTVUscUJBQXFCO3NHQUFyQixxQkFBcUIsbUlBZ0J4QixnQkFBZ0IsMkNDckQxQiwwSkFRQSxpTkQyQmlCLENBQUMsc0JBQXNCLENBQUM7MkZBRTVCLHFCQUFxQjtrQkFOakMsU0FBUzsrQkFDRSxnQkFBZ0IsaUJBR1gsQ0FBQyxzQkFBc0IsQ0FBQzs7MEJBd0NwQyxRQUFROzRDQW5CSixNQUFNO3NCQUpaLFNBQVM7dUJBQUMsUUFBUSxFQUFFO3dCQUNuQixJQUFJLEVBQUUsZ0JBQWdCO3dCQUN0QixNQUFNLEVBQUUsSUFBSTtxQkFDTiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcbiAgRWxlbWVudFJlZixcbiAgSW5qZWN0b3IsXG4gIE9uRGVzdHJveSxcbiAgT3B0aW9uYWwsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0NvbnRhaW5lclJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOYXZpZ2F0aW9uU3RhcnQsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge1xuICBTS1lfU1RBQ0tJTkdfQ09OVEVYVCxcbiAgU2t5TWVkaWFRdWVyeVNlcnZpY2UsXG4gIFNreVJlc2l6ZU9ic2VydmVyTWVkaWFRdWVyeVNlcnZpY2UsXG59IGZyb20gJ0Bza3l1eC9jb3JlJztcblxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlVW50aWwsIHRha2VXaGlsZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgU2t5TW9kYWxBZGFwdGVyU2VydmljZSB9IGZyb20gJy4vbW9kYWwtYWRhcHRlci5zZXJ2aWNlJztcbmltcG9ydCB7IFNreU1vZGFsQ29uZmlndXJhdGlvbiB9IGZyb20gJy4vbW9kYWwtY29uZmlndXJhdGlvbic7XG5pbXBvcnQgeyBTa3lNb2RhbEhvc3RDb250ZXh0IH0gZnJvbSAnLi9tb2RhbC1ob3N0LWNvbnRleHQnO1xuaW1wb3J0IHsgU2t5TW9kYWxIb3N0U2VydmljZSB9IGZyb20gJy4vbW9kYWwtaG9zdC5zZXJ2aWNlJztcbmltcG9ydCB7IFNreU1vZGFsSW5zdGFuY2UgfSBmcm9tICcuL21vZGFsLWluc3RhbmNlJztcbmltcG9ydCB7IFNreU1vZGFsQ29uZmlndXJhdGlvbkludGVyZmFjZSB9IGZyb20gJy4vbW9kYWwuaW50ZXJmYWNlJztcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2t5LW1vZGFsLWhvc3QnLFxuICB0ZW1wbGF0ZVVybDogJy4vbW9kYWwtaG9zdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL21vZGFsLWhvc3QuY29tcG9uZW50LnNjc3MnXSxcbiAgdmlld1Byb3ZpZGVyczogW1NreU1vZGFsQWRhcHRlclNlcnZpY2VdLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lNb2RhbEhvc3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBwdWJsaWMgZ2V0IG1vZGFsT3BlbigpIHtcbiAgICByZXR1cm4gU2t5TW9kYWxIb3N0U2VydmljZS5vcGVuTW9kYWxDb3VudCA+IDA7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGJhY2tkcm9wWkluZGV4KCkge1xuICAgIHJldHVybiBTa3lNb2RhbEhvc3RTZXJ2aWNlLmJhY2tkcm9wWkluZGV4O1xuICB9XG5cbiAgLyoqXG4gICAqIFVzZSBgYW55YCBmb3IgYmFja3dhcmRzLWNvbXBhdGliaWxpdHkgd2l0aCBBbmd1bGFyIDQtNy5cbiAgICogU2VlOiBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9hbmd1bGFyL2lzc3Vlcy8zMDY1NFxuICAgKiBUT0RPOiBSZW1vdmUgdGhlIGBhbnlgIGluIGEgYnJlYWtpbmcgY2hhbmdlLlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIEBWaWV3Q2hpbGQoJ3RhcmdldCcsIHtcbiAgICByZWFkOiBWaWV3Q29udGFpbmVyUmVmLFxuICAgIHN0YXRpYzogdHJ1ZSxcbiAgfSBhcyBhbnkpXG4gIHB1YmxpYyB0YXJnZXQ6IFZpZXdDb250YWluZXJSZWYgfCB1bmRlZmluZWQ7XG5cbiAgI3Jlc29sdmVyOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXI7XG4gICNhZGFwdGVyOiBTa3lNb2RhbEFkYXB0ZXJTZXJ2aWNlO1xuICAjaW5qZWN0b3I6IEluamVjdG9yO1xuICAjcm91dGVyOiBSb3V0ZXIgfCB1bmRlZmluZWQ7XG4gICNjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWY7XG4gICNtb2RhbEhvc3RDb250ZXh0OiBTa3lNb2RhbEhvc3RDb250ZXh0O1xuICAjZWxSZWY6IEVsZW1lbnRSZWY7XG5cbiAgI21vZGFsSW5zdGFuY2VzOiBTa3lNb2RhbEluc3RhbmNlW10gPSBbXTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICByZXNvbHZlcjogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICAgIGFkYXB0ZXI6IFNreU1vZGFsQWRhcHRlclNlcnZpY2UsXG4gICAgaW5qZWN0b3I6IEluamVjdG9yLFxuICAgIGNoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBtb2RhbEhvc3RDb250ZXh0OiBTa3lNb2RhbEhvc3RDb250ZXh0LFxuICAgIGVsUmVmOiBFbGVtZW50UmVmLFxuICAgIEBPcHRpb25hbCgpIHJvdXRlcj86IFJvdXRlclxuICApIHtcbiAgICB0aGlzLiNyZXNvbHZlciA9IHJlc29sdmVyO1xuICAgIHRoaXMuI2FkYXB0ZXIgPSBhZGFwdGVyO1xuICAgIHRoaXMuI2luamVjdG9yID0gaW5qZWN0b3I7XG4gICAgdGhpcy4jcm91dGVyID0gcm91dGVyO1xuICAgIHRoaXMuI2NoYW5nZURldGVjdG9yID0gY2hhbmdlRGV0ZWN0b3I7XG4gICAgdGhpcy4jbW9kYWxIb3N0Q29udGV4dCA9IG1vZGFsSG9zdENvbnRleHQ7XG4gICAgdGhpcy4jZWxSZWYgPSBlbFJlZjtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAvLyBDbG9zZSBhbGwgbW9kYWwgaW5zdGFuY2VzIGJlZm9yZSBkaXNwb3Npbmcgb2YgdGhlIGhvc3QgY29udGFpbmVyLlxuICAgIHRoaXMuI2Nsb3NlQWxsTW9kYWxJbnN0YW5jZXMoKTtcbiAgICB0aGlzLiNtb2RhbEhvc3RDb250ZXh0LmFyZ3MudGVhcmRvd25DYWxsYmFjaygpO1xuICB9XG5cbiAgcHVibGljIG9wZW4oXG4gICAgbW9kYWxJbnN0YW5jZTogU2t5TW9kYWxJbnN0YW5jZSxcbiAgICBjb21wb25lbnQ6IGFueSxcbiAgICBjb25maWc/OiBTa3lNb2RhbENvbmZpZ3VyYXRpb25JbnRlcmZhY2VcbiAgKTogdm9pZCB7XG4gICAgLyogSWdub3JlIGNvdmVyYWdlIGFzIHdlIHNwZWNpZnkgdGhlIHRhcmdldCBlbGVtZW50IGFuZCBzbyB0aGUgdmlldyBjaGlsZCBzaG91bGQgbmV2ZXIgYmUgdW5kZWZpbmVkIHVubGVzc1xuICAgICAqIHdlIHdlcmUgdG8gY2FsbCB0aGUgYG9wZW5gIG1ldGhvZCBpbiBhbiBlYXJseSBsaWZlY3ljbGUgaG9vay4gKi9cbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgIGlmICghdGhpcy50YXJnZXQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBwYXJhbXM6IFNreU1vZGFsQ29uZmlndXJhdGlvbkludGVyZmFjZSA9IE9iamVjdC5hc3NpZ24oe30sIGNvbmZpZyk7XG4gICAgY29uc3QgZmFjdG9yeSA9IHRoaXMuI3Jlc29sdmVyLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KGNvbXBvbmVudCk7XG5cbiAgICBjb25zdCBob3N0U2VydmljZSA9IG5ldyBTa3lNb2RhbEhvc3RTZXJ2aWNlKCk7XG4gICAgaG9zdFNlcnZpY2UuZnVsbFBhZ2UgPSAhIXBhcmFtcy5mdWxsUGFnZTtcblxuICAgIGNvbnN0IGFkYXB0ZXIgPSB0aGlzLiNhZGFwdGVyO1xuICAgIGNvbnN0IG1vZGFsT3BlbmVyOiBIVE1MRWxlbWVudCA9IGFkYXB0ZXIuZ2V0TW9kYWxPcGVuZXIoKTtcblxuICAgIGxldCBpc09wZW4gPSB0cnVlO1xuXG4gICAgcGFyYW1zLnByb3ZpZGVycyB8fD0gW107XG4gICAgcGFyYW1zLnByb3ZpZGVycy5wdXNoKFxuICAgICAge1xuICAgICAgICBwcm92aWRlOiBTa3lNb2RhbEhvc3RTZXJ2aWNlLFxuICAgICAgICB1c2VWYWx1ZTogaG9zdFNlcnZpY2UsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBwcm92aWRlOiBTa3lNb2RhbENvbmZpZ3VyYXRpb24sXG4gICAgICAgIHVzZVZhbHVlOiBwYXJhbXMsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBwcm92aWRlOiBTa3lNZWRpYVF1ZXJ5U2VydmljZSxcbiAgICAgICAgdXNlRXhpc3Rpbmc6IFNreVJlc2l6ZU9ic2VydmVyTWVkaWFRdWVyeVNlcnZpY2UsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBwcm92aWRlOiBTS1lfU1RBQ0tJTkdfQ09OVEVYVCxcbiAgICAgICAgdXNlVmFsdWU6IHtcbiAgICAgICAgICB6SW5kZXg6IG5ldyBCZWhhdmlvclN1YmplY3QoaG9zdFNlcnZpY2UuZ2V0TW9kYWxaSW5kZXgoKSlcbiAgICAgICAgICAgIC5hc09ic2VydmFibGUoKVxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKG1vZGFsSW5zdGFuY2UuY2xvc2VkKSksXG4gICAgICAgIH0sXG4gICAgICB9XG4gICAgKTtcblxuICAgIGFkYXB0ZXIuc2V0UGFnZVNjcm9sbChTa3lNb2RhbEhvc3RTZXJ2aWNlLm9wZW5Nb2RhbENvdW50ID4gMCk7XG4gICAgYWRhcHRlci50b2dnbGVGdWxsUGFnZU1vZGFsQ2xhc3MoXG4gICAgICBTa3lNb2RhbEhvc3RTZXJ2aWNlLmZ1bGxQYWdlTW9kYWxDb3VudCA+IDBcbiAgICApO1xuXG4gICAgY29uc3QgcHJvdmlkZXJzID0gcGFyYW1zLnByb3ZpZGVycyB8fCAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqLyBbXTtcbiAgICBjb25zdCBpbmplY3RvciA9IEluamVjdG9yLmNyZWF0ZSh7XG4gICAgICBwcm92aWRlcnMsXG4gICAgICBwYXJlbnQ6IHRoaXMuI2luamVjdG9yLFxuICAgIH0pO1xuXG4gICAgY29uc3QgbW9kYWxDb21wb25lbnRSZWYgPSB0aGlzLnRhcmdldC5jcmVhdGVDb21wb25lbnQoXG4gICAgICBmYWN0b3J5LFxuICAgICAgdW5kZWZpbmVkLFxuICAgICAgaW5qZWN0b3JcbiAgICApO1xuXG4gICAgLy8gbW9kYWwgZWxlbWVudCB0aGF0IHdhcyBqdXN0IG9wZW5lZFxuICAgIGNvbnN0IG1vZGFsRWxlbWVudCA9IG1vZGFsQ29tcG9uZW50UmVmLmxvY2F0aW9uO1xuXG4gICAgbW9kYWxJbnN0YW5jZS5hZGFwdGVyID0gdGhpcy4jYWRhcHRlcjtcbiAgICBtb2RhbEluc3RhbmNlLmNvbXBvbmVudFJlZiA9IG1vZGFsQ29tcG9uZW50UmVmO1xuXG4gICAgdGhpcy4jcmVnaXN0ZXJNb2RhbEluc3RhbmNlKG1vZGFsSW5zdGFuY2UpO1xuXG4gICAgLy8gaGlkaW5nIGFsbCBlbGVtZW50cyBhdCB0aGUgbW9kYWwtaG9zdCBsZXZlbCBmcm9tIHNjcmVlbiByZWFkZXJzIHdoZW4gdGhlIGEgbW9kYWwgaXMgb3BlbmVkXG4gICAgdGhpcy4jYWRhcHRlci5oaWRlSG9zdFNpYmxpbmdzRnJvbVNjcmVlblJlYWRlcnModGhpcy4jZWxSZWYpO1xuICAgIGlmIChcbiAgICAgIFNreU1vZGFsSG9zdFNlcnZpY2Uub3Blbk1vZGFsQ291bnQgPiAxICYmXG4gICAgICBTa3lNb2RhbEhvc3RTZXJ2aWNlLnRvcE1vZGFsID09PSBob3N0U2VydmljZVxuICAgICkge1xuICAgICAgLy8gaGlkaW5nIHRoZSBsb3dlciBtb2RhbHMgd2hlbiBtb3JlIHRoYW4gb25lIG1vZGFsIGlzIG9wZW5lZFxuICAgICAgdGhpcy4jYWRhcHRlci5oaWRlUHJldmlvdXNNb2RhbEZyb21TY3JlZW5SZWFkZXJzKG1vZGFsRWxlbWVudCk7XG4gICAgfVxuXG4gICAgY29uc3QgY2xvc2VNb2RhbCA9ICgpID0+IHtcbiAgICAgIC8vIHVuaGlkZSBzaWJsaW5ncyBpZiBsYXN0IG1vZGFsIGlzIGNsb3NpbmdcbiAgICAgIGlmIChTa3lNb2RhbEhvc3RTZXJ2aWNlLm9wZW5Nb2RhbENvdW50ID09PSAxKSB7XG4gICAgICAgIHRoaXMuI2FkYXB0ZXIudW5oaWRlT3JSZXN0b3JlSG9zdFNpYmxpbmdzRnJvbVNjcmVlblJlYWRlcnMoKTtcbiAgICAgIH0gZWxzZSBpZiAoU2t5TW9kYWxIb3N0U2VydmljZS50b3BNb2RhbCA9PT0gaG9zdFNlcnZpY2UpIHtcbiAgICAgICAgLy8gaWYgdGhlcmUgYXJlIG1vcmUgdGhhbiAxIG1vZGFsIHRoZW4gdW5oaWRlIHRoZSBvbmUgYmVoaW5kIHRoaXMgb25lIGJlZm9yZSBjbG9zaW5nIGl0XG4gICAgICAgIHRoaXMuI2FkYXB0ZXIudW5oaWRlUHJldmlvdXNNb2RhbEZyb21TY3JlZW5SZWFkZXJzKG1vZGFsRWxlbWVudCk7XG4gICAgICB9XG5cbiAgICAgIGhvc3RTZXJ2aWNlLmRlc3Ryb3koKTtcbiAgICAgIGFkYXB0ZXIuc2V0UGFnZVNjcm9sbChTa3lNb2RhbEhvc3RTZXJ2aWNlLm9wZW5Nb2RhbENvdW50ID4gMCk7XG4gICAgICBhZGFwdGVyLnRvZ2dsZUZ1bGxQYWdlTW9kYWxDbGFzcyhcbiAgICAgICAgU2t5TW9kYWxIb3N0U2VydmljZS5mdWxsUGFnZU1vZGFsQ291bnQgPiAwXG4gICAgICApO1xuICAgICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICAgIC8qIHNhbml0eSBjaGVjayAqL1xuICAgICAgaWYgKG1vZGFsT3BlbmVyICYmIG1vZGFsT3BlbmVyLmZvY3VzKSB7XG4gICAgICAgIG1vZGFsT3BlbmVyLmZvY3VzKCk7XG4gICAgICB9XG4gICAgICBtb2RhbENvbXBvbmVudFJlZi5kZXN0cm95KCk7XG4gICAgfTtcblxuICAgIGhvc3RTZXJ2aWNlLm9wZW5IZWxwLnN1YnNjcmliZSgoaGVscEtleSkgPT4ge1xuICAgICAgbW9kYWxJbnN0YW5jZS5vcGVuSGVscChoZWxwS2V5KTtcbiAgICB9KTtcblxuICAgIGhvc3RTZXJ2aWNlLmNsb3NlLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICBtb2RhbEluc3RhbmNlLmNsb3NlKCk7XG4gICAgfSk7XG5cbiAgICB0aGlzLiNyb3V0ZXI/LmV2ZW50cy5waXBlKHRha2VXaGlsZSgoKSA9PiBpc09wZW4pKS5zdWJzY3JpYmUoKGV2ZW50KSA9PiB7XG4gICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgaWYgKGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvblN0YXJ0KSB7XG4gICAgICAgIG1vZGFsSW5zdGFuY2UuY2xvc2UoKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIG1vZGFsSW5zdGFuY2UuY2xvc2VkLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICBpc09wZW4gPSBmYWxzZTtcbiAgICAgIHRoaXMuI3VucmVnaXN0ZXJNb2RhbEluc3RhbmNlKG1vZGFsSW5zdGFuY2UpO1xuICAgICAgY2xvc2VNb2RhbCgpO1xuICAgIH0pO1xuXG4gICAgLy8gTmVjZXNzYXJ5IGlmIHRoZSBob3N0IHdhcyBjcmVhdGVkIHZpYSBhIGNvbnN1bWVyJ3MgbGlmZWN5Y2xlIGhvb2sgc3VjaCBhcyBuZ09uSW5pdFxuICAgIHRoaXMuI2NoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gICNyZWdpc3Rlck1vZGFsSW5zdGFuY2UoaW5zdGFuY2U6IFNreU1vZGFsSW5zdGFuY2UpOiB2b2lkIHtcbiAgICB0aGlzLiNtb2RhbEluc3RhbmNlcy5wdXNoKGluc3RhbmNlKTtcbiAgfVxuXG4gICN1bnJlZ2lzdGVyTW9kYWxJbnN0YW5jZShpbnN0YW5jZTogU2t5TW9kYWxJbnN0YW5jZSk6IHZvaWQge1xuICAgIHRoaXMuI21vZGFsSW5zdGFuY2VzLnNsaWNlKHRoaXMuI21vZGFsSW5zdGFuY2VzLmluZGV4T2YoaW5zdGFuY2UpLCAxKTtcbiAgfVxuXG4gICNjbG9zZUFsbE1vZGFsSW5zdGFuY2VzKCk6IHZvaWQge1xuICAgIGZvciAoY29uc3QgaW5zdGFuY2Ugb2YgdGhpcy4jbW9kYWxJbnN0YW5jZXMpIHtcbiAgICAgIGluc3RhbmNlLmNsb3NlKCk7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2XG4gIGNsYXNzPVwic2t5LW1vZGFsLWhvc3QtYmFja2Ryb3BcIlxuICBbaGlkZGVuXT1cIiFtb2RhbE9wZW5cIlxuICBbbmdTdHlsZV09XCJ7XG4gICAgekluZGV4OiBiYWNrZHJvcFpJbmRleFxuICB9XCJcbj48L2Rpdj5cbjxkaXYgI3RhcmdldD48L2Rpdj5cbiJdfQ==
|
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
var _SkyModalHostService_instances, _SkyModalHostService_calculateZIndex;
|
|
2
|
-
import { __classPrivateFieldGet } from "tslib";
|
|
3
|
-
import { Injectable } from '@angular/core';
|
|
4
|
-
import { Subject } from 'rxjs';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
const BASE_Z_INDEX = 1040;
|
|
7
|
-
const modalHosts = [];
|
|
8
|
-
/**
|
|
9
|
-
* @internal
|
|
10
|
-
* @dynamic
|
|
11
|
-
*/
|
|
12
|
-
export class SkyModalHostService {
|
|
13
|
-
static get openModalCount() {
|
|
14
|
-
return modalHosts.length;
|
|
15
|
-
}
|
|
16
|
-
static get fullPageModalCount() {
|
|
17
|
-
const fullPageModals = modalHosts.filter((modal) => modal.fullPage);
|
|
18
|
-
return fullPageModals.length;
|
|
19
|
-
}
|
|
20
|
-
static get backdropZIndex() {
|
|
21
|
-
return BASE_Z_INDEX + modalHosts.length * 10;
|
|
22
|
-
}
|
|
23
|
-
static get topModal() {
|
|
24
|
-
return modalHosts[modalHosts.length - 1];
|
|
25
|
-
}
|
|
26
|
-
constructor() {
|
|
27
|
-
_SkyModalHostService_instances.add(this);
|
|
28
|
-
this.close = new Subject();
|
|
29
|
-
this.fullPage = false;
|
|
30
|
-
this.openHelp = new Subject();
|
|
31
|
-
this.zIndex = __classPrivateFieldGet(this, _SkyModalHostService_instances, "m", _SkyModalHostService_calculateZIndex).call(this);
|
|
32
|
-
modalHosts.push(this);
|
|
33
|
-
}
|
|
34
|
-
getModalZIndex() {
|
|
35
|
-
return this.zIndex;
|
|
36
|
-
}
|
|
37
|
-
onClose() {
|
|
38
|
-
this.close.next();
|
|
39
|
-
}
|
|
40
|
-
onOpenHelp(helpKey) {
|
|
41
|
-
this.openHelp.next(helpKey);
|
|
42
|
-
}
|
|
43
|
-
destroy() {
|
|
44
|
-
modalHosts.splice(modalHosts.indexOf(this), 1);
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
_SkyModalHostService_instances = new WeakSet(), _SkyModalHostService_calculateZIndex = function _SkyModalHostService_calculateZIndex() {
|
|
48
|
-
const zIndexArray = modalHosts.map((hostService) => hostService.zIndex);
|
|
49
|
-
if (zIndexArray.length === 0) {
|
|
50
|
-
return BASE_Z_INDEX + 11;
|
|
51
|
-
}
|
|
52
|
-
else {
|
|
53
|
-
const currentMaxZIndex = Math.max(...zIndexArray);
|
|
54
|
-
return currentMaxZIndex + 10;
|
|
55
|
-
}
|
|
56
|
-
};
|
|
57
|
-
SkyModalHostService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyModalHostService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
58
|
-
SkyModalHostService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyModalHostService, providedIn: 'root' });
|
|
59
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyModalHostService, decorators: [{
|
|
60
|
-
type: Injectable,
|
|
61
|
-
args: [{
|
|
62
|
-
providedIn: 'root',
|
|
63
|
-
}]
|
|
64
|
-
}], ctorParameters: function () { return []; } });
|
|
65
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtaG9zdC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL21vZGFscy9zcmMvbGliL21vZHVsZXMvbW9kYWwvbW9kYWwtaG9zdC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDOztBQUUvQixNQUFNLFlBQVksR0FBRyxJQUFJLENBQUM7QUFDMUIsTUFBTSxVQUFVLEdBQTBCLEVBQUUsQ0FBQztBQUU3Qzs7O0dBR0c7QUFJSCxNQUFNLE9BQU8sbUJBQW1CO0lBQ3ZCLE1BQU0sS0FBSyxjQUFjO1FBQzlCLE9BQU8sVUFBVSxDQUFDLE1BQU0sQ0FBQztJQUMzQixDQUFDO0lBRU0sTUFBTSxLQUFLLGtCQUFrQjtRQUNsQyxNQUFNLGNBQWMsR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDcEUsT0FBTyxjQUFjLENBQUMsTUFBTSxDQUFDO0lBQy9CLENBQUM7SUFFTSxNQUFNLEtBQUssY0FBYztRQUM5QixPQUFPLFlBQVksR0FBRyxVQUFVLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQztJQUMvQyxDQUFDO0lBRU0sTUFBTSxLQUFLLFFBQVE7UUFDeEIsT0FBTyxVQUFVLENBQUMsVUFBVSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBT0Q7O1FBTE8sVUFBSyxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFDNUIsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUNqQixhQUFRLEdBQUcsSUFBSSxPQUFPLEVBQVUsQ0FBQztRQUl0QyxJQUFJLENBQUMsTUFBTSxHQUFHLHVCQUFBLElBQUksNEVBQWlCLE1BQXJCLElBQUksQ0FBbUIsQ0FBQztRQUN0QyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFFTSxjQUFjO1FBQ25CLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUNyQixDQUFDO0lBRU0sT0FBTztRQUNaLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDcEIsQ0FBQztJQUVNLFVBQVUsQ0FBQyxPQUFlO1FBQy9CLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFTSxPQUFPO1FBQ1osVUFBVSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ2pELENBQUM7OztJQUdDLE1BQU0sV0FBVyxHQUFHLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN4RSxJQUFJLFdBQVcsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1FBQzVCLE9BQU8sWUFBWSxHQUFHLEVBQUUsQ0FBQztLQUMxQjtTQUFNO1FBQ0wsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsV0FBVyxDQUFDLENBQUM7UUFDbEQsT0FBTyxnQkFBZ0IsR0FBRyxFQUFFLENBQUM7S0FDOUI7QUFDSCxDQUFDO2dIQXBEVSxtQkFBbUI7b0hBQW5CLG1CQUFtQixjQUZsQixNQUFNOzJGQUVQLG1CQUFtQjtrQkFIL0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcblxuY29uc3QgQkFTRV9aX0lOREVYID0gMTA0MDtcbmNvbnN0IG1vZGFsSG9zdHM6IFNreU1vZGFsSG9zdFNlcnZpY2VbXSA9IFtdO1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICogQGR5bmFtaWNcbiAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFNreU1vZGFsSG9zdFNlcnZpY2Uge1xuICBwdWJsaWMgc3RhdGljIGdldCBvcGVuTW9kYWxDb3VudCgpOiBudW1iZXIge1xuICAgIHJldHVybiBtb2RhbEhvc3RzLmxlbmd0aDtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgZ2V0IGZ1bGxQYWdlTW9kYWxDb3VudCgpOiBudW1iZXIge1xuICAgIGNvbnN0IGZ1bGxQYWdlTW9kYWxzID0gbW9kYWxIb3N0cy5maWx0ZXIoKG1vZGFsKSA9PiBtb2RhbC5mdWxsUGFnZSk7XG4gICAgcmV0dXJuIGZ1bGxQYWdlTW9kYWxzLmxlbmd0aDtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgZ2V0IGJhY2tkcm9wWkluZGV4KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIEJBU0VfWl9JTkRFWCArIG1vZGFsSG9zdHMubGVuZ3RoICogMTA7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGdldCB0b3BNb2RhbCgpOiBTa3lNb2RhbEhvc3RTZXJ2aWNlIHtcbiAgICByZXR1cm4gbW9kYWxIb3N0c1ttb2RhbEhvc3RzLmxlbmd0aCAtIDFdO1xuICB9XG5cbiAgcHVibGljIGNsb3NlID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgcHVibGljIGZ1bGxQYWdlID0gZmFsc2U7XG4gIHB1YmxpYyBvcGVuSGVscCA9IG5ldyBTdWJqZWN0PHN0cmluZz4oKTtcbiAgcHVibGljIHpJbmRleDogbnVtYmVyO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuekluZGV4ID0gdGhpcy4jY2FsY3VsYXRlWkluZGV4KCk7XG4gICAgbW9kYWxIb3N0cy5wdXNoKHRoaXMpO1xuICB9XG5cbiAgcHVibGljIGdldE1vZGFsWkluZGV4KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuekluZGV4O1xuICB9XG5cbiAgcHVibGljIG9uQ2xvc2UoKTogdm9pZCB7XG4gICAgdGhpcy5jbG9zZS5uZXh0KCk7XG4gIH1cblxuICBwdWJsaWMgb25PcGVuSGVscChoZWxwS2V5OiBzdHJpbmcpIHtcbiAgICB0aGlzLm9wZW5IZWxwLm5leHQoaGVscEtleSk7XG4gIH1cblxuICBwdWJsaWMgZGVzdHJveSgpOiB2b2lkIHtcbiAgICBtb2RhbEhvc3RzLnNwbGljZShtb2RhbEhvc3RzLmluZGV4T2YodGhpcyksIDEpO1xuICB9XG5cbiAgI2NhbGN1bGF0ZVpJbmRleCgpOiBudW1iZXIge1xuICAgIGNvbnN0IHpJbmRleEFycmF5ID0gbW9kYWxIb3N0cy5tYXAoKGhvc3RTZXJ2aWNlKSA9PiBob3N0U2VydmljZS56SW5kZXgpO1xuICAgIGlmICh6SW5kZXhBcnJheS5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiBCQVNFX1pfSU5ERVggKyAxMTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgY3VycmVudE1heFpJbmRleCA9IE1hdGgubWF4KC4uLnpJbmRleEFycmF5KTtcbiAgICAgIHJldHVybiBjdXJyZW50TWF4WkluZGV4ICsgMTA7XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
@@ -1,127 +0,0 @@
|
|
|
1
|
-
var _SkyModalInstance_instances, _SkyModalInstance__beforeClose, _SkyModalInstance__closed, _SkyModalInstance__helpOpened, _SkyModalInstance_adapter, _SkyModalInstance_elementRef, _SkyModalInstance_closeModal, _SkyModalInstance_notifyClosed;
|
|
2
|
-
import { __classPrivateFieldGet, __classPrivateFieldSet } from "tslib";
|
|
3
|
-
import { Subject } from 'rxjs';
|
|
4
|
-
import { SkyModalBeforeCloseHandler } from './modal-before-close-handler';
|
|
5
|
-
import { SkyModalCloseArgs } from './modal-close-args';
|
|
6
|
-
export class SkyModalInstance {
|
|
7
|
-
constructor() {
|
|
8
|
-
_SkyModalInstance_instances.add(this);
|
|
9
|
-
_SkyModalInstance__beforeClose.set(this, new Subject());
|
|
10
|
-
_SkyModalInstance__closed.set(this, new Subject());
|
|
11
|
-
_SkyModalInstance__helpOpened.set(this, new Subject());
|
|
12
|
-
_SkyModalInstance_adapter.set(this, void 0);
|
|
13
|
-
_SkyModalInstance_elementRef.set(this, void 0);
|
|
14
|
-
}
|
|
15
|
-
/**
|
|
16
|
-
* An event that the modal instance emits when it is about to close.
|
|
17
|
-
* It emits a `SkyModalBeforeCloseHandler` object with a `closeModal` method
|
|
18
|
-
* that closes the modal. If a subscription exists for this event,
|
|
19
|
-
* the modal does not close until the subscriber calls the `closeModal` method.
|
|
20
|
-
*/
|
|
21
|
-
get beforeClose() {
|
|
22
|
-
return __classPrivateFieldGet(this, _SkyModalInstance__beforeClose, "f");
|
|
23
|
-
}
|
|
24
|
-
/**
|
|
25
|
-
* An event that the modal instance emits when it closes.
|
|
26
|
-
* It emits a `SkyModalCloseArgs` object with a `data` property that includes
|
|
27
|
-
* data passed from users on close or save and a `reason` property that indicates
|
|
28
|
-
* whether the modal was saved or closed without saving.
|
|
29
|
-
* The `reason` property accepts any string value.
|
|
30
|
-
* Common examples include `"cancel"`, `"close"`, and `"save"`.
|
|
31
|
-
*/
|
|
32
|
-
get closed() {
|
|
33
|
-
return __classPrivateFieldGet(this, _SkyModalInstance__closed, "f");
|
|
34
|
-
}
|
|
35
|
-
/**
|
|
36
|
-
* An event that the modal instance emits when users click
|
|
37
|
-
* the <i class="fa fa-question-circle" aria-hidden="true"></i> button.
|
|
38
|
-
* If a `helpKey` parameter was specified, the `helpOpened` event broadcasts the `helpKey`.
|
|
39
|
-
*/
|
|
40
|
-
get helpOpened() {
|
|
41
|
-
return __classPrivateFieldGet(this, _SkyModalInstance__helpOpened, "f");
|
|
42
|
-
}
|
|
43
|
-
/**
|
|
44
|
-
* Sets the component adapter for the instance. This is used internally for actions such as scrolling the content.
|
|
45
|
-
* @internal
|
|
46
|
-
*/
|
|
47
|
-
set adapter(value) {
|
|
48
|
-
__classPrivateFieldSet(this, _SkyModalInstance_adapter, value, "f");
|
|
49
|
-
}
|
|
50
|
-
/**
|
|
51
|
-
* 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.
|
|
52
|
-
* @internal
|
|
53
|
-
*/
|
|
54
|
-
set componentRef(value) {
|
|
55
|
-
this.componentInstance = value.instance;
|
|
56
|
-
__classPrivateFieldSet(this, _SkyModalInstance_elementRef, value.location, "f");
|
|
57
|
-
}
|
|
58
|
-
/**
|
|
59
|
-
* Closes the modal instance.
|
|
60
|
-
* @param result Specifies an object to emit to subscribers of the `closed` event of the
|
|
61
|
-
* modal instance. The `SkyModalInstance` provider can be injected into a component's constructor
|
|
62
|
-
* so that this `close` function can be called from a button in the `sky-modal-footer`.
|
|
63
|
-
* @param reason Specifies the reason for the modal closing, with the default reason of `"close"`.
|
|
64
|
-
* @param ignoreBeforeClose Indicates whether to ignore the modal instance's `beforeClose` event.
|
|
65
|
-
*/
|
|
66
|
-
close(result, reason, ignoreBeforeClose) {
|
|
67
|
-
if (reason === undefined) {
|
|
68
|
-
reason = 'close';
|
|
69
|
-
}
|
|
70
|
-
__classPrivateFieldGet(this, _SkyModalInstance_instances, "m", _SkyModalInstance_closeModal).call(this, reason, result, ignoreBeforeClose);
|
|
71
|
-
}
|
|
72
|
-
/**
|
|
73
|
-
* Closes the modal instance with `reason="cancel"`.
|
|
74
|
-
* @param result Specifies an object to emit to subscribers of the `closed` event of the modal
|
|
75
|
-
* instance. The `SkyModalInstance` provider can be injected into a component's constructor so
|
|
76
|
-
* that this cancel function can be called from a button in the `sky-modal-footer`.
|
|
77
|
-
*/
|
|
78
|
-
cancel(result) {
|
|
79
|
-
__classPrivateFieldGet(this, _SkyModalInstance_instances, "m", _SkyModalInstance_closeModal).call(this, 'cancel', result);
|
|
80
|
-
}
|
|
81
|
-
/**
|
|
82
|
-
* Closes the modal instance with `reason="save"`.
|
|
83
|
-
* @param result Specifies an object to emit to subscribers of the `closed` event of the modal
|
|
84
|
-
* instance. The `SkyModalInstance` provider can be injected into a component's constructor so
|
|
85
|
-
* that this `save` function can be called from a button in `the sky-modal-footer`.
|
|
86
|
-
*/
|
|
87
|
-
save(result) {
|
|
88
|
-
__classPrivateFieldGet(this, _SkyModalInstance_instances, "m", _SkyModalInstance_closeModal).call(this, 'save', result);
|
|
89
|
-
}
|
|
90
|
-
/**
|
|
91
|
-
* Scrolls the modal content area to the top of its scrollable area.
|
|
92
|
-
*/
|
|
93
|
-
scrollContentToTop() {
|
|
94
|
-
if (__classPrivateFieldGet(this, _SkyModalInstance_adapter, "f") && __classPrivateFieldGet(this, _SkyModalInstance_elementRef, "f")) {
|
|
95
|
-
__classPrivateFieldGet(this, _SkyModalInstance_adapter, "f").scrollContentToTop(__classPrivateFieldGet(this, _SkyModalInstance_elementRef, "f"));
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
/**
|
|
99
|
-
* Triggers the `helpOpened` event that broadcasts a `helpKey` parameter to open
|
|
100
|
-
* when users click the <i class="fa fa-question-circle" aria-hidden="true"></i> button.
|
|
101
|
-
* @param helpKey Specifies a string to emit to subscribers of
|
|
102
|
-
* the modal instance's `helpOpened` event. Consumers can inject the `SkyModalInstance` provider
|
|
103
|
-
* into a component's constructor to call the `openHelp` function in the modal template.
|
|
104
|
-
*/
|
|
105
|
-
openHelp(helpKey) {
|
|
106
|
-
__classPrivateFieldGet(this, _SkyModalInstance__helpOpened, "f").next(helpKey);
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
_SkyModalInstance__beforeClose = new WeakMap(), _SkyModalInstance__closed = new WeakMap(), _SkyModalInstance__helpOpened = new WeakMap(), _SkyModalInstance_adapter = new WeakMap(), _SkyModalInstance_elementRef = new WeakMap(), _SkyModalInstance_instances = new WeakSet(), _SkyModalInstance_closeModal = function _SkyModalInstance_closeModal(type, result, ignoreBeforeClose = false) {
|
|
110
|
-
const args = new SkyModalCloseArgs();
|
|
111
|
-
args.reason = type;
|
|
112
|
-
args.data = result;
|
|
113
|
-
if (__classPrivateFieldGet(this, _SkyModalInstance__beforeClose, "f").observers.length === 0 || ignoreBeforeClose) {
|
|
114
|
-
__classPrivateFieldGet(this, _SkyModalInstance_instances, "m", _SkyModalInstance_notifyClosed).call(this, args);
|
|
115
|
-
}
|
|
116
|
-
else {
|
|
117
|
-
__classPrivateFieldGet(this, _SkyModalInstance__beforeClose, "f").next(new SkyModalBeforeCloseHandler(() => {
|
|
118
|
-
__classPrivateFieldGet(this, _SkyModalInstance_instances, "m", _SkyModalInstance_notifyClosed).call(this, args);
|
|
119
|
-
}, args));
|
|
120
|
-
}
|
|
121
|
-
}, _SkyModalInstance_notifyClosed = function _SkyModalInstance_notifyClosed(args) {
|
|
122
|
-
__classPrivateFieldGet(this, _SkyModalInstance__closed, "f").next(args);
|
|
123
|
-
__classPrivateFieldGet(this, _SkyModalInstance__closed, "f").complete();
|
|
124
|
-
__classPrivateFieldGet(this, _SkyModalInstance__beforeClose, "f").complete();
|
|
125
|
-
__classPrivateFieldGet(this, _SkyModalInstance__helpOpened, "f").complete();
|
|
126
|
-
};
|
|
127
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtaW5zdGFuY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvbW9kYWxzL3NyYy9saWIvbW9kdWxlcy9tb2RhbC9tb2RhbC1pbnN0YW5jZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUVBLE9BQU8sRUFBYyxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFHM0MsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDMUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFdkQsTUFBTSxPQUFPLGdCQUFnQjtJQUE3Qjs7UUF1REUseUNBQWdCLElBQUksT0FBTyxFQUE4QixFQUFDO1FBRTFELG9DQUFXLElBQUksT0FBTyxFQUFxQixFQUFDO1FBRTVDLHdDQUFlLElBQUksT0FBTyxFQUFVLEVBQUM7UUFFckMsNENBQTZDO1FBQzdDLCtDQUFvQztJQXFGdEMsQ0FBQztJQWxKQzs7Ozs7T0FLRztJQUNILElBQVcsV0FBVztRQUNwQixPQUFPLHVCQUFBLElBQUksc0NBQWMsQ0FBQztJQUM1QixDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNILElBQVcsTUFBTTtRQUNmLE9BQU8sdUJBQUEsSUFBSSxpQ0FBUyxDQUFDO0lBQ3ZCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsSUFBVyxVQUFVO1FBQ25CLE9BQU8sdUJBQUEsSUFBSSxxQ0FBYSxDQUFDO0lBQzNCLENBQUM7SUFRRDs7O09BR0c7SUFDSCxJQUFXLE9BQU8sQ0FBQyxLQUE2QjtRQUM5Qyx1QkFBQSxJQUFJLDZCQUFZLEtBQUssTUFBQSxDQUFDO0lBQ3hCLENBQUM7SUFFRDs7O09BR0c7SUFDSCxJQUFXLFlBQVksQ0FBQyxLQUF3QjtRQUM5QyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQztRQUN4Qyx1QkFBQSxJQUFJLGdDQUFlLEtBQUssQ0FBQyxRQUFRLE1BQUEsQ0FBQztJQUNwQyxDQUFDO0lBV0Q7Ozs7Ozs7T0FPRztJQUNJLEtBQUssQ0FDVixNQUFZLEVBQ1osTUFBZSxFQUNmLGlCQUEyQjtRQUUzQixJQUFJLE1BQU0sS0FBSyxTQUFTLEVBQUU7WUFDeEIsTUFBTSxHQUFHLE9BQU8sQ0FBQztTQUNsQjtRQUVELHVCQUFBLElBQUksaUVBQVksTUFBaEIsSUFBSSxFQUFhLE1BQU0sRUFBRSxNQUFNLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSSxNQUFNLENBQUMsTUFBWTtRQUN4Qix1QkFBQSxJQUFJLGlFQUFZLE1BQWhCLElBQUksRUFBYSxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksSUFBSSxDQUFDLE1BQVk7UUFDdEIsdUJBQUEsSUFBSSxpRUFBWSxNQUFoQixJQUFJLEVBQWEsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFRDs7T0FFRztJQUNJLGtCQUFrQjtRQUN2QixJQUFJLHVCQUFBLElBQUksaUNBQVMsSUFBSSx1QkFBQSxJQUFJLG9DQUFZLEVBQUU7WUFDckMsdUJBQUEsSUFBSSxpQ0FBUyxDQUFDLGtCQUFrQixDQUFDLHVCQUFBLElBQUksb0NBQVksQ0FBQyxDQUFDO1NBQ3BEO0lBQ0gsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNJLFFBQVEsQ0FBQyxPQUFlO1FBQzdCLHVCQUFBLElBQUkscUNBQWEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDbEMsQ0FBQztDQXlCRjtxVkF2QmEsSUFBWSxFQUFFLE1BQVksRUFBRSxpQkFBaUIsR0FBRyxLQUFLO0lBQy9ELE1BQU0sSUFBSSxHQUFHLElBQUksaUJBQWlCLEVBQUUsQ0FBQztJQUVyQyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztJQUNuQixJQUFJLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQztJQUVuQixJQUFJLHVCQUFBLElBQUksc0NBQWMsQ0FBQyxTQUFTLENBQUMsTUFBTSxLQUFLLENBQUMsSUFBSSxpQkFBaUIsRUFBRTtRQUNsRSx1QkFBQSxJQUFJLG1FQUFjLE1BQWxCLElBQUksRUFBZSxJQUFJLENBQUMsQ0FBQztLQUMxQjtTQUFNO1FBQ0wsdUJBQUEsSUFBSSxzQ0FBYyxDQUFDLElBQUksQ0FDckIsSUFBSSwwQkFBMEIsQ0FBQyxHQUFHLEVBQUU7WUFDbEMsdUJBQUEsSUFBSSxtRUFBYyxNQUFsQixJQUFJLEVBQWUsSUFBSSxDQUFDLENBQUM7UUFDM0IsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUNULENBQUM7S0FDSDtBQUNILENBQUMsMkVBRWEsSUFBdUI7SUFDbkMsdUJBQUEsSUFBSSxpQ0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN6Qix1QkFBQSxJQUFJLGlDQUFTLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDekIsdUJBQUEsSUFBSSxzQ0FBYyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzlCLHVCQUFBLElBQUkscUNBQWEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztBQUMvQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50UmVmLCBFbGVtZW50UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgU2t5TW9kYWxBZGFwdGVyU2VydmljZSB9IGZyb20gJy4vbW9kYWwtYWRhcHRlci5zZXJ2aWNlJztcbmltcG9ydCB7IFNreU1vZGFsQmVmb3JlQ2xvc2VIYW5kbGVyIH0gZnJvbSAnLi9tb2RhbC1iZWZvcmUtY2xvc2UtaGFuZGxlcic7XG5pbXBvcnQgeyBTa3lNb2RhbENsb3NlQXJncyB9IGZyb20gJy4vbW9kYWwtY2xvc2UtYXJncyc7XG5cbmV4cG9ydCBjbGFzcyBTa3lNb2RhbEluc3RhbmNlIHtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IHRoYXQgdGhlIG1vZGFsIGluc3RhbmNlIGVtaXRzIHdoZW4gaXQgaXMgYWJvdXQgdG8gY2xvc2UuXG4gICAqIEl0IGVtaXRzIGEgYFNreU1vZGFsQmVmb3JlQ2xvc2VIYW5kbGVyYCBvYmplY3Qgd2l0aCBhIGBjbG9zZU1vZGFsYCBtZXRob2RcbiAgICogdGhhdCBjbG9zZXMgdGhlIG1vZGFsLiBJZiBhIHN1YnNjcmlwdGlvbiBleGlzdHMgZm9yIHRoaXMgZXZlbnQsXG4gICAqIHRoZSBtb2RhbCBkb2VzIG5vdCBjbG9zZSB1bnRpbCB0aGUgc3Vic2NyaWJlciBjYWxscyB0aGUgYGNsb3NlTW9kYWxgIG1ldGhvZC5cbiAgICovXG4gIHB1YmxpYyBnZXQgYmVmb3JlQ2xvc2UoKTogT2JzZXJ2YWJsZTxTa3lNb2RhbEJlZm9yZUNsb3NlSGFuZGxlcj4ge1xuICAgIHJldHVybiB0aGlzLiNfYmVmb3JlQ2xvc2U7XG4gIH1cblxuICAvKipcbiAgICogQW4gZXZlbnQgdGhhdCB0aGUgbW9kYWwgaW5zdGFuY2UgZW1pdHMgd2hlbiBpdCBjbG9zZXMuXG4gICAqIEl0IGVtaXRzIGEgYFNreU1vZGFsQ2xvc2VBcmdzYCBvYmplY3Qgd2l0aCBhIGBkYXRhYCBwcm9wZXJ0eSB0aGF0IGluY2x1ZGVzXG4gICAqIGRhdGEgcGFzc2VkIGZyb20gdXNlcnMgb24gY2xvc2Ugb3Igc2F2ZSBhbmQgYSBgcmVhc29uYCBwcm9wZXJ0eSB0aGF0IGluZGljYXRlc1xuICAgKiB3aGV0aGVyIHRoZSBtb2RhbCB3YXMgc2F2ZWQgb3IgY2xvc2VkIHdpdGhvdXQgc2F2aW5nLlxuICAgKiBUaGUgYHJlYXNvbmAgcHJvcGVydHkgYWNjZXB0cyBhbnkgc3RyaW5nIHZhbHVlLlxuICAgKiBDb21tb24gZXhhbXBsZXMgaW5jbHVkZSBgXCJjYW5jZWxcImAsIGBcImNsb3NlXCJgLCBhbmQgYFwic2F2ZVwiYC5cbiAgICovXG4gIHB1YmxpYyBnZXQgY2xvc2VkKCk6IE9ic2VydmFibGU8U2t5TW9kYWxDbG9zZUFyZ3M+IHtcbiAgICByZXR1cm4gdGhpcy4jX2Nsb3NlZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBBbiBldmVudCB0aGF0IHRoZSBtb2RhbCBpbnN0YW5jZSBlbWl0cyB3aGVuIHVzZXJzIGNsaWNrXG4gICAqIHRoZSA8aSBjbGFzcz1cImZhIGZhLXF1ZXN0aW9uLWNpcmNsZVwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT4gYnV0dG9uLlxuICAgKiBJZiBhIGBoZWxwS2V5YCBwYXJhbWV0ZXIgd2FzIHNwZWNpZmllZCwgdGhlIGBoZWxwT3BlbmVkYCBldmVudCBicm9hZGNhc3RzIHRoZSBgaGVscEtleWAuXG4gICAqL1xuICBwdWJsaWMgZ2V0IGhlbHBPcGVuZWQoKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gdGhpcy4jX2hlbHBPcGVuZWQ7XG4gIH1cblxuICAvKipcbiAgICogQSBkaXJlY3QgcmVmZXJlbmNlIHRvIHRoZSBwcm92aWRlZCBjb21wb25lbnQncyBjbGFzcy5cbiAgICovXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gIHB1YmxpYyBjb21wb25lbnRJbnN0YW5jZTogYW55O1xuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBjb21wb25lbnQgYWRhcHRlciBmb3IgdGhlIGluc3RhbmNlLiBUaGlzIGlzIHVzZWQgaW50ZXJuYWxseSBmb3IgYWN0aW9ucyBzdWNoIGFzIHNjcm9sbGluZyB0aGUgY29udGVudC5cbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgc2V0IGFkYXB0ZXIodmFsdWU6IFNreU1vZGFsQWRhcHRlclNlcnZpY2UpIHtcbiAgICB0aGlzLiNhZGFwdGVyID0gdmFsdWU7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgY29tcG9uZW50IHJlZiBmb3IgdGhlIGluc3RhbmNlLiBUaGlzIGlzIHVzZWQgdG8gZXh0cmFjdCB0aGUgY29tcG9uZW50IGluc3RhbmNlIGZvciB0aGUgcHVibGljIEFQSSBhbmQgdGhlIGVsZW1lbnQgcmVmIGZvciBpbnRlcm5hbCB1c2UuXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcHVibGljIHNldCBjb21wb25lbnRSZWYodmFsdWU6IENvbXBvbmVudFJlZjxhbnk+KSB7XG4gICAgdGhpcy5jb21wb25lbnRJbnN0YW5jZSA9IHZhbHVlLmluc3RhbmNlO1xuICAgIHRoaXMuI2VsZW1lbnRSZWYgPSB2YWx1ZS5sb2NhdGlvbjtcbiAgfVxuXG4gICNfYmVmb3JlQ2xvc2UgPSBuZXcgU3ViamVjdDxTa3lNb2RhbEJlZm9yZUNsb3NlSGFuZGxlcj4oKTtcblxuICAjX2Nsb3NlZCA9IG5ldyBTdWJqZWN0PFNreU1vZGFsQ2xvc2VBcmdzPigpO1xuXG4gICNfaGVscE9wZW5lZCA9IG5ldyBTdWJqZWN0PHN0cmluZz4oKTtcblxuICAjYWRhcHRlcjogU2t5TW9kYWxBZGFwdGVyU2VydmljZSB8IHVuZGVmaW5lZDtcbiAgI2VsZW1lbnRSZWY6IEVsZW1lbnRSZWYgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIENsb3NlcyB0aGUgbW9kYWwgaW5zdGFuY2UuXG4gICAqIEBwYXJhbSByZXN1bHQgU3BlY2lmaWVzIGFuIG9iamVjdCB0byBlbWl0IHRvIHN1YnNjcmliZXJzIG9mIHRoZSBgY2xvc2VkYCBldmVudCBvZiB0aGVcbiAgICogbW9kYWwgaW5zdGFuY2UuIFRoZSBgU2t5TW9kYWxJbnN0YW5jZWAgcHJvdmlkZXIgY2FuIGJlIGluamVjdGVkIGludG8gYSBjb21wb25lbnQncyBjb25zdHJ1Y3RvclxuICAgKiBzbyB0aGF0IHRoaXMgYGNsb3NlYCBmdW5jdGlvbiBjYW4gYmUgY2FsbGVkIGZyb20gYSBidXR0b24gaW4gdGhlIGBza3ktbW9kYWwtZm9vdGVyYC5cbiAgICogQHBhcmFtIHJlYXNvbiBTcGVjaWZpZXMgdGhlIHJlYXNvbiBmb3IgdGhlIG1vZGFsIGNsb3NpbmcsIHdpdGggdGhlIGRlZmF1bHQgcmVhc29uIG9mIGBcImNsb3NlXCJgLlxuICAgKiBAcGFyYW0gaWdub3JlQmVmb3JlQ2xvc2UgSW5kaWNhdGVzIHdoZXRoZXIgdG8gaWdub3JlIHRoZSBtb2RhbCBpbnN0YW5jZSdzIGBiZWZvcmVDbG9zZWAgZXZlbnQuXG4gICAqL1xuICBwdWJsaWMgY2xvc2UoXG4gICAgcmVzdWx0PzogYW55LFxuICAgIHJlYXNvbj86IHN0cmluZyxcbiAgICBpZ25vcmVCZWZvcmVDbG9zZT86IGJvb2xlYW5cbiAgKTogdm9pZCB7XG4gICAgaWYgKHJlYXNvbiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZWFzb24gPSAnY2xvc2UnO1xuICAgIH1cblxuICAgIHRoaXMuI2Nsb3NlTW9kYWwocmVhc29uLCByZXN1bHQsIGlnbm9yZUJlZm9yZUNsb3NlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDbG9zZXMgdGhlIG1vZGFsIGluc3RhbmNlIHdpdGggYHJlYXNvbj1cImNhbmNlbFwiYC5cbiAgICogQHBhcmFtIHJlc3VsdCBTcGVjaWZpZXMgYW4gb2JqZWN0IHRvIGVtaXQgdG8gc3Vic2NyaWJlcnMgb2YgdGhlIGBjbG9zZWRgIGV2ZW50IG9mIHRoZSBtb2RhbFxuICAgKiBpbnN0YW5jZS4gVGhlIGBTa3lNb2RhbEluc3RhbmNlYCBwcm92aWRlciBjYW4gYmUgaW5qZWN0ZWQgaW50byBhIGNvbXBvbmVudCdzIGNvbnN0cnVjdG9yIHNvXG4gICAqIHRoYXQgdGhpcyBjYW5jZWwgZnVuY3Rpb24gY2FuIGJlIGNhbGxlZCBmcm9tIGEgYnV0dG9uIGluIHRoZSBgc2t5LW1vZGFsLWZvb3RlcmAuXG4gICAqL1xuICBwdWJsaWMgY2FuY2VsKHJlc3VsdD86IGFueSk6IHZvaWQge1xuICAgIHRoaXMuI2Nsb3NlTW9kYWwoJ2NhbmNlbCcsIHJlc3VsdCk7XG4gIH1cblxuICAvKipcbiAgICogQ2xvc2VzIHRoZSBtb2RhbCBpbnN0YW5jZSB3aXRoIGByZWFzb249XCJzYXZlXCJgLlxuICAgKiBAcGFyYW0gcmVzdWx0IFNwZWNpZmllcyBhbiBvYmplY3QgdG8gZW1pdCB0byBzdWJzY3JpYmVycyBvZiB0aGUgYGNsb3NlZGAgZXZlbnQgb2YgdGhlIG1vZGFsXG4gICAqIGluc3RhbmNlLiBUaGUgYFNreU1vZGFsSW5zdGFuY2VgIHByb3ZpZGVyIGNhbiBiZSBpbmplY3RlZCBpbnRvIGEgY29tcG9uZW50J3MgY29uc3RydWN0b3Igc29cbiAgICogdGhhdCB0aGlzIGBzYXZlYCBmdW5jdGlvbiBjYW4gYmUgY2FsbGVkIGZyb20gYSBidXR0b24gaW4gYHRoZSBza3ktbW9kYWwtZm9vdGVyYC5cbiAgICovXG4gIHB1YmxpYyBzYXZlKHJlc3VsdD86IGFueSk6IHZvaWQge1xuICAgIHRoaXMuI2Nsb3NlTW9kYWwoJ3NhdmUnLCByZXN1bHQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNjcm9sbHMgdGhlIG1vZGFsIGNvbnRlbnQgYXJlYSB0byB0aGUgdG9wIG9mIGl0cyBzY3JvbGxhYmxlIGFyZWEuXG4gICAqL1xuICBwdWJsaWMgc2Nyb2xsQ29udGVudFRvVG9wKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLiNhZGFwdGVyICYmIHRoaXMuI2VsZW1lbnRSZWYpIHtcbiAgICAgIHRoaXMuI2FkYXB0ZXIuc2Nyb2xsQ29udGVudFRvVG9wKHRoaXMuI2VsZW1lbnRSZWYpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBUcmlnZ2VycyB0aGUgYGhlbHBPcGVuZWRgIGV2ZW50IHRoYXQgYnJvYWRjYXN0cyBhIGBoZWxwS2V5YCBwYXJhbWV0ZXIgdG8gb3BlblxuICAgKiB3aGVuIHVzZXJzIGNsaWNrIHRoZSA8aSBjbGFzcz1cImZhIGZhLXF1ZXN0aW9uLWNpcmNsZVwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT4gYnV0dG9uLlxuICAgKiBAcGFyYW0gaGVscEtleSBTcGVjaWZpZXMgYSBzdHJpbmcgdG8gZW1pdCB0byBzdWJzY3JpYmVycyBvZlxuICAgKiB0aGUgbW9kYWwgaW5zdGFuY2UncyBgaGVscE9wZW5lZGAgZXZlbnQuIENvbnN1bWVycyBjYW4gaW5qZWN0IHRoZSBgU2t5TW9kYWxJbnN0YW5jZWAgcHJvdmlkZXJcbiAgICogaW50byBhIGNvbXBvbmVudCdzIGNvbnN0cnVjdG9yIHRvIGNhbGwgdGhlIGBvcGVuSGVscGAgZnVuY3Rpb24gaW4gdGhlIG1vZGFsIHRlbXBsYXRlLlxuICAgKi9cbiAgcHVibGljIG9wZW5IZWxwKGhlbHBLZXk6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuI19oZWxwT3BlbmVkLm5leHQoaGVscEtleSk7XG4gIH1cblxuICAjY2xvc2VNb2RhbCh0eXBlOiBzdHJpbmcsIHJlc3VsdD86IGFueSwgaWdub3JlQmVmb3JlQ2xvc2UgPSBmYWxzZSk6IHZvaWQge1xuICAgIGNvbnN0IGFyZ3MgPSBuZXcgU2t5TW9kYWxDbG9zZUFyZ3MoKTtcblxuICAgIGFyZ3MucmVhc29uID0gdHlwZTtcbiAgICBhcmdzLmRhdGEgPSByZXN1bHQ7XG5cbiAgICBpZiAodGhpcy4jX2JlZm9yZUNsb3NlLm9ic2VydmVycy5sZW5ndGggPT09IDAgfHwgaWdub3JlQmVmb3JlQ2xvc2UpIHtcbiAgICAgIHRoaXMuI25vdGlmeUNsb3NlZChhcmdzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy4jX2JlZm9yZUNsb3NlLm5leHQoXG4gICAgICAgIG5ldyBTa3lNb2RhbEJlZm9yZUNsb3NlSGFuZGxlcigoKSA9PiB7XG4gICAgICAgICAgdGhpcy4jbm90aWZ5Q2xvc2VkKGFyZ3MpO1xuICAgICAgICB9LCBhcmdzKVxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICAjbm90aWZ5Q2xvc2VkKGFyZ3M6IFNreU1vZGFsQ2xvc2VBcmdzKTogdm9pZCB7XG4gICAgdGhpcy4jX2Nsb3NlZC5uZXh0KGFyZ3MpO1xuICAgIHRoaXMuI19jbG9zZWQuY29tcGxldGUoKTtcbiAgICB0aGlzLiNfYmVmb3JlQ2xvc2UuY29tcGxldGUoKTtcbiAgICB0aGlzLiNfaGVscE9wZW5lZC5jb21wbGV0ZSgpO1xuICB9XG59XG4iXX0=
|
|
@@ -1,93 +0,0 @@
|
|
|
1
|
-
var _SkyModalIsDirtyDirective_instances, _SkyModalIsDirtyDirective_ngUnsubscribe, _SkyModalIsDirtyDirective_modalInstance, _SkyModalIsDirtyDirective_confirmSvc, _SkyModalIsDirtyDirective_resourcesSvc, _SkyModalIsDirtyDirective_promptIfDirty;
|
|
2
|
-
import { __classPrivateFieldGet } from "tslib";
|
|
3
|
-
import { Directive, HostBinding, Input, inject, } from '@angular/core';
|
|
4
|
-
import { SkyLibResourcesService } from '@skyux/i18n';
|
|
5
|
-
import { Subject } from 'rxjs';
|
|
6
|
-
import { takeUntil } from 'rxjs/operators';
|
|
7
|
-
import { SkyConfirmType } from '../confirm/confirm-type';
|
|
8
|
-
import { SkyConfirmService } from '../confirm/confirm.service';
|
|
9
|
-
import { SkyModalInstance } from './modal-instance';
|
|
10
|
-
import * as i0 from "@angular/core";
|
|
11
|
-
/**
|
|
12
|
-
* Provides a way to mark a modal as "dirty" and displays a confirmation
|
|
13
|
-
* message when a user closes the modal without saving.
|
|
14
|
-
*/
|
|
15
|
-
export class SkyModalIsDirtyDirective {
|
|
16
|
-
constructor() {
|
|
17
|
-
_SkyModalIsDirtyDirective_instances.add(this);
|
|
18
|
-
/**
|
|
19
|
-
* Whether the user edited an input on the modal.
|
|
20
|
-
* @required
|
|
21
|
-
*/
|
|
22
|
-
this.isDirty = false;
|
|
23
|
-
_SkyModalIsDirtyDirective_ngUnsubscribe.set(this, new Subject());
|
|
24
|
-
_SkyModalIsDirtyDirective_modalInstance.set(this, inject(SkyModalInstance));
|
|
25
|
-
_SkyModalIsDirtyDirective_confirmSvc.set(this, inject(SkyConfirmService));
|
|
26
|
-
_SkyModalIsDirtyDirective_resourcesSvc.set(this, inject(SkyLibResourcesService));
|
|
27
|
-
}
|
|
28
|
-
ngOnInit() {
|
|
29
|
-
__classPrivateFieldGet(this, _SkyModalIsDirtyDirective_modalInstance, "f").beforeClose
|
|
30
|
-
.pipe(takeUntil(__classPrivateFieldGet(this, _SkyModalIsDirtyDirective_ngUnsubscribe, "f")))
|
|
31
|
-
.subscribe((handler) => __classPrivateFieldGet(this, _SkyModalIsDirtyDirective_instances, "m", _SkyModalIsDirtyDirective_promptIfDirty).call(this, handler));
|
|
32
|
-
}
|
|
33
|
-
ngOnDestroy() {
|
|
34
|
-
__classPrivateFieldGet(this, _SkyModalIsDirtyDirective_ngUnsubscribe, "f").next();
|
|
35
|
-
__classPrivateFieldGet(this, _SkyModalIsDirtyDirective_ngUnsubscribe, "f").complete();
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
_SkyModalIsDirtyDirective_ngUnsubscribe = new WeakMap(), _SkyModalIsDirtyDirective_modalInstance = new WeakMap(), _SkyModalIsDirtyDirective_confirmSvc = new WeakMap(), _SkyModalIsDirtyDirective_resourcesSvc = new WeakMap(), _SkyModalIsDirtyDirective_instances = new WeakSet(), _SkyModalIsDirtyDirective_promptIfDirty = function _SkyModalIsDirtyDirective_promptIfDirty(handler) {
|
|
39
|
-
if (this.isDirty && handler.closeArgs.reason === 'close') {
|
|
40
|
-
__classPrivateFieldGet(this, _SkyModalIsDirtyDirective_resourcesSvc, "f")
|
|
41
|
-
.getStrings({
|
|
42
|
-
message: 'skyux_modal_dirty_default_message',
|
|
43
|
-
discardActionText: 'skyux_modal_dirty_default_discard_changes_text',
|
|
44
|
-
keepActionText: 'skyux_modal_dirty_default_keep_working_text',
|
|
45
|
-
})
|
|
46
|
-
.subscribe((textValues) => {
|
|
47
|
-
const discardAction = 'discard';
|
|
48
|
-
const keepAction = 'keep';
|
|
49
|
-
__classPrivateFieldGet(this, _SkyModalIsDirtyDirective_confirmSvc, "f")
|
|
50
|
-
.open({
|
|
51
|
-
message: textValues.message,
|
|
52
|
-
buttons: [
|
|
53
|
-
{
|
|
54
|
-
action: discardAction,
|
|
55
|
-
text: textValues.discardActionText,
|
|
56
|
-
styleType: 'primary',
|
|
57
|
-
},
|
|
58
|
-
{
|
|
59
|
-
action: keepAction,
|
|
60
|
-
text: textValues.keepActionText,
|
|
61
|
-
styleType: 'link',
|
|
62
|
-
},
|
|
63
|
-
],
|
|
64
|
-
type: SkyConfirmType.Custom,
|
|
65
|
-
})
|
|
66
|
-
.closed.subscribe((args) => {
|
|
67
|
-
if (args.action === discardAction) {
|
|
68
|
-
handler.closeModal();
|
|
69
|
-
}
|
|
70
|
-
});
|
|
71
|
-
});
|
|
72
|
-
}
|
|
73
|
-
else {
|
|
74
|
-
handler.closeModal();
|
|
75
|
-
}
|
|
76
|
-
};
|
|
77
|
-
SkyModalIsDirtyDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyModalIsDirtyDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
78
|
-
SkyModalIsDirtyDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: SkyModalIsDirtyDirective, selector: "sky-modal[isDirty]", inputs: { isDirty: "isDirty" }, host: { properties: { "attr.data-sky-modal-is-dirty": "this.isDirty" } }, ngImport: i0 });
|
|
79
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyModalIsDirtyDirective, decorators: [{
|
|
80
|
-
type: Directive,
|
|
81
|
-
args: [{
|
|
82
|
-
// Since this is limited to sky-modal, it should be safe to
|
|
83
|
-
// leave off the sky prefix.
|
|
84
|
-
// eslint-disable-next-line @angular-eslint/directive-selector
|
|
85
|
-
selector: 'sky-modal[isDirty]',
|
|
86
|
-
}]
|
|
87
|
-
}], propDecorators: { isDirty: [{
|
|
88
|
-
type: Input
|
|
89
|
-
}, {
|
|
90
|
-
type: HostBinding,
|
|
91
|
-
args: ['attr.data-sky-modal-is-dirty']
|
|
92
|
-
}] } });
|
|
93
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtaXMtZGlydHkuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL21vZGFscy9zcmMvbGliL21vZHVsZXMvbW9kYWwvbW9kYWwtaXMtZGlydHkuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxXQUFXLEVBQ1gsS0FBSyxFQUdMLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFckQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRy9ELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDOztBQUVwRDs7O0dBR0c7QUFPSCxNQUFNLE9BQU8sd0JBQXdCO0lBTnJDOztRQU9FOzs7V0FHRztRQUtJLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFFdkIsa0RBQTBCLElBQUksT0FBTyxFQUFRLEVBQUM7UUFFOUMsa0RBQTBCLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFDO1FBQ25ELCtDQUF1QixNQUFNLENBQUMsaUJBQWlCLENBQUMsRUFBQztRQUNqRCxpREFBeUIsTUFBTSxDQUFDLHNCQUFzQixDQUFDLEVBQUM7S0FvRHpEO0lBbERRLFFBQVE7UUFDYix1QkFBQSxJQUFJLCtDQUFlLENBQUMsV0FBVzthQUM1QixJQUFJLENBQUMsU0FBUyxDQUFDLHVCQUFBLElBQUksK0NBQWUsQ0FBQyxDQUFDO2FBQ3BDLFNBQVMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsdUJBQUEsSUFBSSxvRkFBZSxNQUFuQixJQUFJLEVBQWdCLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUVNLFdBQVc7UUFDaEIsdUJBQUEsSUFBSSwrQ0FBZSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzNCLHVCQUFBLElBQUksK0NBQWUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNqQyxDQUFDOztnWEFFYyxPQUFtQztJQUNoRCxJQUFJLElBQUksQ0FBQyxPQUFPLElBQUksT0FBTyxDQUFDLFNBQVMsQ0FBQyxNQUFNLEtBQUssT0FBTyxFQUFFO1FBQ3hELHVCQUFBLElBQUksOENBQWM7YUFDZixVQUFVLENBQUM7WUFDVixPQUFPLEVBQUUsbUNBQW1DO1lBQzVDLGlCQUFpQixFQUFFLGdEQUFnRDtZQUNuRSxjQUFjLEVBQUUsNkNBQTZDO1NBQzlELENBQUM7YUFDRCxTQUFTLENBQUMsQ0FBQyxVQUFVLEVBQUUsRUFBRTtZQUN4QixNQUFNLGFBQWEsR0FBRyxTQUFTLENBQUM7WUFDaEMsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDO1lBRTFCLHVCQUFBLElBQUksNENBQVk7aUJBQ2IsSUFBSSxDQUFDO2dCQUNKLE9BQU8sRUFBRSxVQUFVLENBQUMsT0FBTztnQkFDM0IsT0FBTyxFQUFFO29CQUNQO3dCQUNFLE1BQU0sRUFBRSxhQUFhO3dCQUNyQixJQUFJLEVBQUUsVUFBVSxDQUFDLGlCQUFpQjt3QkFDbEMsU0FBUyxFQUFFLFNBQVM7cUJBQ3JCO29CQUNEO3dCQUNFLE1BQU0sRUFBRSxVQUFVO3dCQUNsQixJQUFJLEVBQUUsVUFBVSxDQUFDLGNBQWM7d0JBQy9CLFNBQVMsRUFBRSxNQUFNO3FCQUNsQjtpQkFDRjtnQkFDRCxJQUFJLEVBQUUsY0FBYyxDQUFDLE1BQU07YUFDNUIsQ0FBQztpQkFDRCxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7Z0JBQ3pCLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxhQUFhLEVBQUU7b0JBQ2pDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsQ0FBQztpQkFDdEI7WUFDSCxDQUFDLENBQUMsQ0FBQztRQUNQLENBQUMsQ0FBQyxDQUFDO0tBQ047U0FBTTtRQUNMLE9BQU8sQ0FBQyxVQUFVLEVBQUUsQ0FBQztLQUN0QjtBQUNILENBQUM7cUhBbEVVLHdCQUF3Qjt5R0FBeEIsd0JBQXdCOzJGQUF4Qix3QkFBd0I7a0JBTnBDLFNBQVM7bUJBQUM7b0JBQ1QsMkRBQTJEO29CQUMzRCw0QkFBNEI7b0JBQzVCLDhEQUE4RDtvQkFDOUQsUUFBUSxFQUFFLG9CQUFvQjtpQkFDL0I7OEJBVVEsT0FBTztzQkFKYixLQUFLOztzQkFHTCxXQUFXO3VCQUFDLDhCQUE4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIERpcmVjdGl2ZSxcbiAgSG9zdEJpbmRpbmcsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgaW5qZWN0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNreUxpYlJlc291cmNlc1NlcnZpY2UgfSBmcm9tICdAc2t5dXgvaTE4bic7XG5cbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgU2t5Q29uZmlybVR5cGUgfSBmcm9tICcuLi9jb25maXJtL2NvbmZpcm0tdHlwZSc7XG5pbXBvcnQgeyBTa3lDb25maXJtU2VydmljZSB9IGZyb20gJy4uL2NvbmZpcm0vY29uZmlybS5zZXJ2aWNlJztcblxuaW1wb3J0IHsgU2t5TW9kYWxCZWZvcmVDbG9zZUhhbmRsZXIgfSBmcm9tICcuL21vZGFsLWJlZm9yZS1jbG9zZS1oYW5kbGVyJztcbmltcG9ydCB7IFNreU1vZGFsSW5zdGFuY2UgfSBmcm9tICcuL21vZGFsLWluc3RhbmNlJztcblxuLyoqXG4gKiBQcm92aWRlcyBhIHdheSB0byBtYXJrIGEgbW9kYWwgYXMgXCJkaXJ0eVwiIGFuZCBkaXNwbGF5cyBhIGNvbmZpcm1hdGlvblxuICogbWVzc2FnZSB3aGVuIGEgdXNlciBjbG9zZXMgdGhlIG1vZGFsIHdpdGhvdXQgc2F2aW5nLlxuICovXG5ARGlyZWN0aXZlKHtcbiAgLy8gU2luY2UgdGhpcyBpcyBsaW1pdGVkIHRvIHNreS1tb2RhbCwgaXQgc2hvdWxkIGJlIHNhZmUgdG9cbiAgLy8gbGVhdmUgb2ZmIHRoZSBza3kgcHJlZml4LlxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2RpcmVjdGl2ZS1zZWxlY3RvclxuICBzZWxlY3RvcjogJ3NreS1tb2RhbFtpc0RpcnR5XScsXG59KVxuZXhwb3J0IGNsYXNzIFNreU1vZGFsSXNEaXJ0eURpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIHVzZXIgZWRpdGVkIGFuIGlucHV0IG9uIHRoZSBtb2RhbC5cbiAgICogQHJlcXVpcmVkXG4gICAqL1xuICBASW5wdXQoKVxuICAvLyBUaGlzIGF0dHJpYnV0ZSBpcyBiZWluZyBhcHBsaWVkIHRvIHRoZSBob3N0IHRvIHN1cHBvcnRcbiAgLy8gdW5pdCB0ZXN0aW5nIHRoaXMgZmVhdHVyZS5cbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmRhdGEtc2t5LW1vZGFsLWlzLWRpcnR5JylcbiAgcHVibGljIGlzRGlydHkgPSBmYWxzZTtcblxuICByZWFkb25seSAjbmdVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgcmVhZG9ubHkgI21vZGFsSW5zdGFuY2UgPSBpbmplY3QoU2t5TW9kYWxJbnN0YW5jZSk7XG4gIHJlYWRvbmx5ICNjb25maXJtU3ZjID0gaW5qZWN0KFNreUNvbmZpcm1TZXJ2aWNlKTtcbiAgcmVhZG9ubHkgI3Jlc291cmNlc1N2YyA9IGluamVjdChTa3lMaWJSZXNvdXJjZXNTZXJ2aWNlKTtcblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy4jbW9kYWxJbnN0YW5jZS5iZWZvcmVDbG9zZVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpKVxuICAgICAgLnN1YnNjcmliZSgoaGFuZGxlcikgPT4gdGhpcy4jcHJvbXB0SWZEaXJ0eShoYW5kbGVyKSk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy4jbmdVbnN1YnNjcmliZS5uZXh0KCk7XG4gICAgdGhpcy4jbmdVbnN1YnNjcmliZS5jb21wbGV0ZSgpO1xuICB9XG5cbiAgI3Byb21wdElmRGlydHkoaGFuZGxlcjogU2t5TW9kYWxCZWZvcmVDbG9zZUhhbmRsZXIpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pc0RpcnR5ICYmIGhhbmRsZXIuY2xvc2VBcmdzLnJlYXNvbiA9PT0gJ2Nsb3NlJykge1xuICAgICAgdGhpcy4jcmVzb3VyY2VzU3ZjXG4gICAgICAgIC5nZXRTdHJpbmdzKHtcbiAgICAgICAgICBtZXNzYWdlOiAnc2t5dXhfbW9kYWxfZGlydHlfZGVmYXVsdF9tZXNzYWdlJyxcbiAgICAgICAgICBkaXNjYXJkQWN0aW9uVGV4dDogJ3NreXV4X21vZGFsX2RpcnR5X2RlZmF1bHRfZGlzY2FyZF9jaGFuZ2VzX3RleHQnLFxuICAgICAgICAgIGtlZXBBY3Rpb25UZXh0OiAnc2t5dXhfbW9kYWxfZGlydHlfZGVmYXVsdF9rZWVwX3dvcmtpbmdfdGV4dCcsXG4gICAgICAgIH0pXG4gICAgICAgIC5zdWJzY3JpYmUoKHRleHRWYWx1ZXMpID0+IHtcbiAgICAgICAgICBjb25zdCBkaXNjYXJkQWN0aW9uID0gJ2Rpc2NhcmQnO1xuICAgICAgICAgIGNvbnN0IGtlZXBBY3Rpb24gPSAna2VlcCc7XG5cbiAgICAgICAgICB0aGlzLiNjb25maXJtU3ZjXG4gICAgICAgICAgICAub3Blbih7XG4gICAgICAgICAgICAgIG1lc3NhZ2U6IHRleHRWYWx1ZXMubWVzc2FnZSxcbiAgICAgICAgICAgICAgYnV0dG9uczogW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgIGFjdGlvbjogZGlzY2FyZEFjdGlvbixcbiAgICAgICAgICAgICAgICAgIHRleHQ6IHRleHRWYWx1ZXMuZGlzY2FyZEFjdGlvblRleHQsXG4gICAgICAgICAgICAgICAgICBzdHlsZVR5cGU6ICdwcmltYXJ5JyxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgIGFjdGlvbjoga2VlcEFjdGlvbixcbiAgICAgICAgICAgICAgICAgIHRleHQ6IHRleHRWYWx1ZXMua2VlcEFjdGlvblRleHQsXG4gICAgICAgICAgICAgICAgICBzdHlsZVR5cGU6ICdsaW5rJyxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICB0eXBlOiBTa3lDb25maXJtVHlwZS5DdXN0b20sXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLmNsb3NlZC5zdWJzY3JpYmUoKGFyZ3MpID0+IHtcbiAgICAgICAgICAgICAgaWYgKGFyZ3MuYWN0aW9uID09PSBkaXNjYXJkQWN0aW9uKSB7XG4gICAgICAgICAgICAgICAgaGFuZGxlci5jbG9zZU1vZGFsKCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgaGFuZGxlci5jbG9zZU1vZGFsKCk7XG4gICAgfVxuICB9XG59XG4iXX0=
|