@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.
Files changed (75) hide show
  1. package/documentation.json +56 -56
  2. package/esm2022/lib/modules/confirm/confirm.component.mjs +112 -0
  3. package/{esm2020 → esm2022}/lib/modules/confirm/confirm.module.mjs +13 -13
  4. package/esm2022/lib/modules/confirm/confirm.service.mjs +54 -0
  5. package/esm2022/lib/modules/modal/modal-adapter.service.mjs +99 -0
  6. package/esm2022/lib/modules/modal/modal-component-adapter.service.mjs +101 -0
  7. package/{esm2020 → esm2022}/lib/modules/modal/modal-configuration.mjs +4 -4
  8. package/{esm2020 → esm2022}/lib/modules/modal/modal-content.component.mjs +4 -4
  9. package/esm2022/lib/modules/modal/modal-errors.service.mjs +21 -0
  10. package/{esm2020 → esm2022}/lib/modules/modal/modal-footer.component.mjs +4 -4
  11. package/{esm2020 → esm2022}/lib/modules/modal/modal-header.component.mjs +4 -4
  12. package/{esm2020 → esm2022}/lib/modules/modal/modal-host-context.mjs +4 -4
  13. package/esm2022/lib/modules/modal/modal-host.component.mjs +163 -0
  14. package/esm2022/lib/modules/modal/modal-host.service.mjs +62 -0
  15. package/esm2022/lib/modules/modal/modal-instance.mjs +123 -0
  16. package/esm2022/lib/modules/modal/modal-is-dirty.directive.mjs +94 -0
  17. package/esm2022/lib/modules/modal/modal-scroll-shadow.directive.mjs +129 -0
  18. package/esm2022/lib/modules/modal/modal.component.mjs +229 -0
  19. package/{esm2020 → esm2022}/lib/modules/modal/modal.module.mjs +29 -29
  20. package/esm2022/lib/modules/modal/modal.service.mjs +97 -0
  21. package/esm2022/lib/modules/shared/sky-modals-resources.module.mjs +61 -0
  22. package/esm2022/testing/confirm/confirm-button-harness.mjs +46 -0
  23. package/esm2022/testing/confirm/confirm-harness.mjs +90 -0
  24. package/esm2022/testing/modal/modal-harness.mjs +75 -0
  25. package/esm2022/testing/modal-fixture.mjs +143 -0
  26. package/{fesm2020 → fesm2022}/skyux-modals-testing.mjs +60 -73
  27. package/{fesm2020 → fesm2022}/skyux-modals-testing.mjs.map +1 -1
  28. package/fesm2022/skyux-modals.mjs +1502 -0
  29. package/{fesm2015 → fesm2022}/skyux-modals.mjs.map +1 -1
  30. package/lib/modules/modal/modal-is-dirty.directive.d.ts +1 -1
  31. package/lib/modules/modal/modal.component.d.ts +1 -1
  32. package/package.json +16 -24
  33. package/esm2020/lib/modules/confirm/confirm.component.mjs +0 -114
  34. package/esm2020/lib/modules/confirm/confirm.service.mjs +0 -57
  35. package/esm2020/lib/modules/modal/modal-adapter.service.mjs +0 -101
  36. package/esm2020/lib/modules/modal/modal-component-adapter.service.mjs +0 -104
  37. package/esm2020/lib/modules/modal/modal-errors.service.mjs +0 -24
  38. package/esm2020/lib/modules/modal/modal-host.component.mjs +0 -164
  39. package/esm2020/lib/modules/modal/modal-host.service.mjs +0 -65
  40. package/esm2020/lib/modules/modal/modal-instance.mjs +0 -127
  41. package/esm2020/lib/modules/modal/modal-is-dirty.directive.mjs +0 -93
  42. package/esm2020/lib/modules/modal/modal-scroll-shadow.directive.mjs +0 -127
  43. package/esm2020/lib/modules/modal/modal.component.mjs +0 -228
  44. package/esm2020/lib/modules/modal/modal.service.mjs +0 -99
  45. package/esm2020/lib/modules/shared/sky-modals-resources.module.mjs +0 -61
  46. package/esm2020/testing/confirm/confirm-button-harness.mjs +0 -46
  47. package/esm2020/testing/confirm/confirm-harness.mjs +0 -97
  48. package/esm2020/testing/modal/modal-harness.mjs +0 -81
  49. package/esm2020/testing/modal-fixture.mjs +0 -145
  50. package/fesm2015/skyux-modals-testing.mjs +0 -409
  51. package/fesm2015/skyux-modals-testing.mjs.map +0 -1
  52. package/fesm2015/skyux-modals.mjs +0 -1522
  53. package/fesm2020/skyux-modals.mjs +0 -1510
  54. package/fesm2020/skyux-modals.mjs.map +0 -1
  55. /package/{esm2020 → esm2022}/index.mjs +0 -0
  56. /package/{esm2020 → esm2022}/lib/modules/confirm/confirm-button-action.mjs +0 -0
  57. /package/{esm2020 → esm2022}/lib/modules/confirm/confirm-button-config.mjs +0 -0
  58. /package/{esm2020 → esm2022}/lib/modules/confirm/confirm-button-style-type.mjs +0 -0
  59. /package/{esm2020 → esm2022}/lib/modules/confirm/confirm-button.mjs +0 -0
  60. /package/{esm2020 → esm2022}/lib/modules/confirm/confirm-closed-event-args.mjs +0 -0
  61. /package/{esm2020 → esm2022}/lib/modules/confirm/confirm-config-token.mjs +0 -0
  62. /package/{esm2020 → esm2022}/lib/modules/confirm/confirm-config.mjs +0 -0
  63. /package/{esm2020 → esm2022}/lib/modules/confirm/confirm-instance.mjs +0 -0
  64. /package/{esm2020 → esm2022}/lib/modules/confirm/confirm-type.mjs +0 -0
  65. /package/{esm2020 → esm2022}/lib/modules/modal/modal-before-close-handler.mjs +0 -0
  66. /package/{esm2020 → esm2022}/lib/modules/modal/modal-close-args.mjs +0 -0
  67. /package/{esm2020 → esm2022}/lib/modules/modal/modal-error.mjs +0 -0
  68. /package/{esm2020 → esm2022}/lib/modules/modal/modal-host-context-args.mjs +0 -0
  69. /package/{esm2020 → esm2022}/lib/modules/modal/modal-scroll-shadow-event-args.mjs +0 -0
  70. /package/{esm2020 → esm2022}/lib/modules/modal/modal.interface.mjs +0 -0
  71. /package/{esm2020 → esm2022}/skyux-modals.mjs +0 -0
  72. /package/{esm2020 → esm2022}/testing/confirm/confirm-button-harness-filters.mjs +0 -0
  73. /package/{esm2020 → esm2022}/testing/modal/modal-harness-filters.mjs +0 -0
  74. /package/{esm2020 → esm2022}/testing/public-api.mjs +0 -0
  75. /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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtaG9zdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvbW9kYWxzL3NyYy9saWIvbW9kdWxlcy9tb2RhbC9tb2RhbC1ob3N0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9tb2RhbHMvc3JjL2xpYi9tb2R1bGVzL21vZGFsL21vZGFsLWhvc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEVBRUwsU0FBUyxFQUdULFFBQVEsRUFFUixRQUFRLEVBQ1IsU0FBUyxFQUNULGdCQUFnQixHQUNqQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZUFBZSxFQUFVLE1BQU0saUJBQWlCLENBQUM7QUFDMUQsT0FBTyxFQUNMLG9CQUFvQixFQUNwQixvQkFBb0IsRUFDcEIsa0NBQWtDLEdBQ25DLE1BQU0sYUFBYSxDQUFDO0FBRXJCLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdkMsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV0RCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNqRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUU5RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7O0FBSTNEOztHQUVHO0FBT0gsTUFBTSxPQUFPLHFCQUFxQjtJQUNoQyxJQUFXLFNBQVM7UUFDbEIsT0FBTyxtQkFBbUIsQ0FBQyxjQUFjLEdBQUcsQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFRCxJQUFXLGNBQWM7UUFDdkIsT0FBTyxtQkFBbUIsQ0FBQyxjQUFjLENBQUM7SUFDNUMsQ0FBQztJQXdCRCxZQUNFLFFBQWtDLEVBQ2xDLE9BQStCLEVBQy9CLFFBQWtCLEVBQ2xCLGNBQWlDLEVBQ2pDLGdCQUFxQyxFQUNyQyxLQUFpQixFQUNMLE1BQWU7O1FBakI3QixrREFBb0M7UUFDcEMsaURBQWlDO1FBQ2pDLGtEQUFvQjtRQUNwQixnREFBNEI7UUFDNUIsd0RBQW1DO1FBQ25DLDBEQUF1QztRQUN2QywrQ0FBbUI7UUFFbkIsZ0RBQXNDLEVBQUUsRUFBQztRQVd2Qyx1QkFBQSxJQUFJLG1DQUFhLFFBQVEsTUFBQSxDQUFDO1FBQzFCLHVCQUFBLElBQUksa0NBQVksT0FBTyxNQUFBLENBQUM7UUFDeEIsdUJBQUEsSUFBSSxtQ0FBYSxRQUFRLE1BQUEsQ0FBQztRQUMxQix1QkFBQSxJQUFJLGlDQUFXLE1BQU0sTUFBQSxDQUFDO1FBQ3RCLHVCQUFBLElBQUkseUNBQW1CLGNBQWMsTUFBQSxDQUFDO1FBQ3RDLHVCQUFBLElBQUksMkNBQXFCLGdCQUFnQixNQUFBLENBQUM7UUFDMUMsdUJBQUEsSUFBSSxnQ0FBVSxLQUFLLE1BQUEsQ0FBQztJQUN0QixDQUFDO0lBRU0sV0FBVztRQUNoQixvRUFBb0U7UUFDcEUsdUJBQUEsSUFBSSx1RkFBd0IsTUFBNUIsSUFBSSxDQUEwQixDQUFDO1FBQy9CLHVCQUFBLElBQUksK0NBQWtCLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7SUFDakQsQ0FBQztJQUVNLElBQUksQ0FDVCxhQUErQixFQUMvQixTQUFjLEVBQ2QsTUFBdUM7UUFFdkM7MkVBQ21FO1FBQ25FLDBCQUEwQjtRQUMxQixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNoQixPQUFPO1NBQ1I7UUFFRCxNQUFNLE1BQU0sR0FBbUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDekUsTUFBTSxPQUFPLEdBQUcsdUJBQUEsSUFBSSx1Q0FBVSxDQUFDLHVCQUF1QixDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRWxFLE1BQU0sV0FBVyxHQUFHLElBQUksbUJBQW1CLEVBQUUsQ0FBQztRQUM5QyxXQUFXLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDO1FBRXpDLE1BQU0sT0FBTyxHQUFHLHVCQUFBLElBQUksc0NBQVMsQ0FBQztRQUM5QixNQUFNLFdBQVcsR0FBZ0IsT0FBTyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBRTFELElBQUksTUFBTSxHQUFHLElBQUksQ0FBQztRQUVsQixNQUFNLENBQUMsU0FBUyxLQUFoQixNQUFNLENBQUMsU0FBUyxHQUFLLEVBQUUsRUFBQztRQUN4QixNQUFNLENBQUMsU0FBUyxDQUFDLElBQUksQ0FDbkI7WUFDRSxPQUFPLEVBQUUsbUJBQW1CO1lBQzVCLFFBQVEsRUFBRSxXQUFXO1NBQ3RCLEVBQ0Q7WUFDRSxPQUFPLEVBQUUscUJBQXFCO1lBQzlCLFFBQVEsRUFBRSxNQUFNO1NBQ2pCLEVBQ0Q7WUFDRSxPQUFPLEVBQUUsb0JBQW9CO1lBQzdCLFdBQVcsRUFBRSxrQ0FBa0M7U0FDaEQsRUFDRDtZQUNFLE9BQU8sRUFBRSxvQkFBb0I7WUFDN0IsUUFBUSxFQUFFO2dCQUNSLE1BQU0sRUFBRSxJQUFJLGVBQWUsQ0FBQyxXQUFXLENBQUMsY0FBYyxFQUFFLENBQUM7cUJBQ3RELFlBQVksRUFBRTtxQkFDZCxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQzthQUN6QztTQUNGLENBQ0YsQ0FBQztRQUVGLE9BQU8sQ0FBQyxhQUFhLENBQUMsbUJBQW1CLENBQUMsY0FBYyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQzlELE9BQU8sQ0FBQyx3QkFBd0IsQ0FDOUIsbUJBQW1CLENBQUMsa0JBQWtCLEdBQUcsQ0FBQyxDQUMzQyxDQUFDO1FBRUYsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDLFNBQVMsSUFBSSwwQkFBMEIsQ0FBQyxFQUFFLENBQUM7UUFDcEUsTUFBTSxRQUFRLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQztZQUMvQixTQUFTO1lBQ1QsTUFBTSxFQUFFLHVCQUFBLElBQUksdUNBQVU7U0FDdkIsQ0FBQyxDQUFDO1FBRUgsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FDbkQsT0FBTyxFQUNQLFNBQVMsRUFDVCxRQUFRLENBQ1QsQ0FBQztRQUVGLHFDQUFxQztRQUNyQyxNQUFNLFlBQVksR0FBRyxpQkFBaUIsQ0FBQyxRQUFRLENBQUM7UUFFaEQsYUFBYSxDQUFDLE9BQU8sR0FBRyx1QkFBQSxJQUFJLHNDQUFTLENBQUM7UUFDdEMsYUFBYSxDQUFDLFlBQVksR0FBRyxpQkFBaUIsQ0FBQztRQUUvQyx1QkFBQSxJQUFJLHNGQUF1QixNQUEzQixJQUFJLEVBQXdCLGFBQWEsQ0FBQyxDQUFDO1FBRTNDLDZGQUE2RjtRQUM3Rix1QkFBQSxJQUFJLHNDQUFTLENBQUMsaUNBQWlDLENBQUMsdUJBQUEsSUFBSSxvQ0FBTyxDQUFDLENBQUM7UUFDN0QsSUFDRSxtQkFBbUIsQ0FBQyxjQUFjLEdBQUcsQ0FBQztZQUN0QyxtQkFBbUIsQ0FBQyxRQUFRLEtBQUssV0FBVyxFQUM1QztZQUNBLDZEQUE2RDtZQUM3RCx1QkFBQSxJQUFJLHNDQUFTLENBQUMsa0NBQWtDLENBQUMsWUFBWSxDQUFDLENBQUM7U0FDaEU7UUFFRCxNQUFNLFVBQVUsR0FBRyxHQUFHLEVBQUU7WUFDdEIsMkNBQTJDO1lBQzNDLElBQUksbUJBQW1CLENBQUMsY0FBYyxLQUFLLENBQUMsRUFBRTtnQkFDNUMsdUJBQUEsSUFBSSxzQ0FBUyxDQUFDLDRDQUE0QyxFQUFFLENBQUM7YUFDOUQ7aUJBQU0sSUFBSSxtQkFBbUIsQ0FBQyxRQUFRLEtBQUssV0FBVyxFQUFFO2dCQUN2RCx1RkFBdUY7Z0JBQ3ZGLHVCQUFBLElBQUksc0NBQVMsQ0FBQyxvQ0FBb0MsQ0FBQyxZQUFZLENBQUMsQ0FBQzthQUNsRTtZQUVELFdBQVcsQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUN0QixPQUFPLENBQUMsYUFBYSxDQUFDLG1CQUFtQixDQUFDLGNBQWMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUM5RCxPQUFPLENBQUMsd0JBQXdCLENBQzlCLG1CQUFtQixDQUFDLGtCQUFrQixHQUFHLENBQUMsQ0FDM0MsQ0FBQztZQUNGLDBCQUEwQjtZQUMxQixrQkFBa0I7WUFDbEIsSUFBSSxXQUFXLElBQUksV0FBVyxDQUFDLEtBQUssRUFBRTtnQkFDcEMsV0FBVyxDQUFDLEtBQUssRUFBRSxDQUFDO2FBQ3JCO1lBQ0QsaUJBQWlCLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDOUIsQ0FBQyxDQUFDO1FBRUYsV0FBVyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtZQUN6QyxhQUFhLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2xDLENBQUMsQ0FBQyxDQUFDO1FBRUgsV0FBVyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQy9CLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUN4QixDQUFDLENBQUMsQ0FBQztRQUVILHVCQUFBLElBQUkscUNBQVEsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ3JFLDBCQUEwQjtZQUMxQixJQUFJLEtBQUssWUFBWSxlQUFlLEVBQUU7Z0JBQ3BDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQzthQUN2QjtRQUNILENBQUMsQ0FBQyxDQUFDO1FBRUgsYUFBYSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ2xDLE1BQU0sR0FBRyxLQUFLLENBQUM7WUFDZix1QkFBQSxJQUFJLHdGQUF5QixNQUE3QixJQUFJLEVBQTBCLGFBQWEsQ0FBQyxDQUFDO1lBQzdDLFVBQVUsRUFBRSxDQUFDO1FBQ2YsQ0FBQyxDQUFDLENBQUM7UUFFSCxxRkFBcUY7UUFDckYsdUJBQUEsSUFBSSw2Q0FBZ0IsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUN2QyxDQUFDOzs2aUJBRXNCLFFBQTBCO0lBQy9DLHVCQUFBLElBQUksNkNBQWdCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0FBQ3RDLENBQUMsMkdBRXdCLFFBQTBCO0lBQ2pELHVCQUFBLElBQUksNkNBQWdCLENBQUMsS0FBSyxDQUFDLHVCQUFBLElBQUksNkNBQWdCLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQ3hFLENBQUM7SUFHQyxLQUFLLE1BQU0sUUFBUSxJQUFJLHVCQUFBLElBQUksNkNBQWdCLEVBQUU7UUFDM0MsUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDO0tBQ2xCO0FBQ0gsQ0FBQztrSEFwTVUscUJBQXFCO3NHQUFyQixxQkFBcUIsbUlBZ0J4QixnQkFBZ0IsMkNDckQxQiwwSkFRQSxpTkQyQmlCLENBQUMsc0JBQXNCLENBQUM7MkZBRTVCLHFCQUFxQjtrQkFOakMsU0FBUzsrQkFDRSxnQkFBZ0IsaUJBR1gsQ0FBQyxzQkFBc0IsQ0FBQzs7MEJBd0NwQyxRQUFROzRDQW5CSixNQUFNO3NCQUpaLFNBQVM7dUJBQUMsUUFBUSxFQUFFO3dCQUNuQixJQUFJLEVBQUUsZ0JBQWdCO3dCQUN0QixNQUFNLEVBQUUsSUFBSTtxQkFDTiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcbiAgRWxlbWVudFJlZixcbiAgSW5qZWN0b3IsXG4gIE9uRGVzdHJveSxcbiAgT3B0aW9uYWwsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0NvbnRhaW5lclJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOYXZpZ2F0aW9uU3RhcnQsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge1xuICBTS1lfU1RBQ0tJTkdfQ09OVEVYVCxcbiAgU2t5TWVkaWFRdWVyeVNlcnZpY2UsXG4gIFNreVJlc2l6ZU9ic2VydmVyTWVkaWFRdWVyeVNlcnZpY2UsXG59IGZyb20gJ0Bza3l1eC9jb3JlJztcblxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlVW50aWwsIHRha2VXaGlsZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgU2t5TW9kYWxBZGFwdGVyU2VydmljZSB9IGZyb20gJy4vbW9kYWwtYWRhcHRlci5zZXJ2aWNlJztcbmltcG9ydCB7IFNreU1vZGFsQ29uZmlndXJhdGlvbiB9IGZyb20gJy4vbW9kYWwtY29uZmlndXJhdGlvbic7XG5pbXBvcnQgeyBTa3lNb2RhbEhvc3RDb250ZXh0IH0gZnJvbSAnLi9tb2RhbC1ob3N0LWNvbnRleHQnO1xuaW1wb3J0IHsgU2t5TW9kYWxIb3N0U2VydmljZSB9IGZyb20gJy4vbW9kYWwtaG9zdC5zZXJ2aWNlJztcbmltcG9ydCB7IFNreU1vZGFsSW5zdGFuY2UgfSBmcm9tICcuL21vZGFsLWluc3RhbmNlJztcbmltcG9ydCB7IFNreU1vZGFsQ29uZmlndXJhdGlvbkludGVyZmFjZSB9IGZyb20gJy4vbW9kYWwuaW50ZXJmYWNlJztcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2t5LW1vZGFsLWhvc3QnLFxuICB0ZW1wbGF0ZVVybDogJy4vbW9kYWwtaG9zdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL21vZGFsLWhvc3QuY29tcG9uZW50LnNjc3MnXSxcbiAgdmlld1Byb3ZpZGVyczogW1NreU1vZGFsQWRhcHRlclNlcnZpY2VdLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lNb2RhbEhvc3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBwdWJsaWMgZ2V0IG1vZGFsT3BlbigpIHtcbiAgICByZXR1cm4gU2t5TW9kYWxIb3N0U2VydmljZS5vcGVuTW9kYWxDb3VudCA+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=