@skyux/modals 11.31.0 → 12.0.0-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/documentation.json +871 -865
- package/fesm2022/skyux-modals-testing.mjs +11 -11
- package/fesm2022/skyux-modals-testing.mjs.map +1 -1
- package/fesm2022/skyux-modals.mjs +115 -79
- package/fesm2022/skyux-modals.mjs.map +1 -1
- package/lib/modules/modal/modal-host.component.d.ts +2 -2
- package/lib/modules/modal/modal-host.service.d.ts +9 -1
- package/package.json +12 -16
- package/esm2022/index.mjs +0 -21
- package/esm2022/lib/modules/confirm/confirm-button-action.mjs +0 -2
- package/esm2022/lib/modules/confirm/confirm-button-config.mjs +0 -2
- package/esm2022/lib/modules/confirm/confirm-button-style-type.mjs +0 -2
- package/esm2022/lib/modules/confirm/confirm-button.mjs +0 -2
- package/esm2022/lib/modules/confirm/confirm-closed-event-args.mjs +0 -2
- package/esm2022/lib/modules/confirm/confirm-config-token.mjs +0 -6
- package/esm2022/lib/modules/confirm/confirm-config.mjs +0 -2
- package/esm2022/lib/modules/confirm/confirm-instance.mjs +0 -23
- package/esm2022/lib/modules/confirm/confirm-service-interface.mjs +0 -2
- package/esm2022/lib/modules/confirm/confirm-type.mjs +0 -24
- package/esm2022/lib/modules/confirm/confirm.component.mjs +0 -151
- package/esm2022/lib/modules/confirm/confirm.module.mjs +0 -15
- package/esm2022/lib/modules/confirm/confirm.service.mjs +0 -44
- package/esm2022/lib/modules/modal/modal-adapter.service.mjs +0 -122
- package/esm2022/lib/modules/modal/modal-before-close-handler.mjs +0 -10
- package/esm2022/lib/modules/modal/modal-close-args.mjs +0 -7
- package/esm2022/lib/modules/modal/modal-component-adapter.service.mjs +0 -79
- package/esm2022/lib/modules/modal/modal-configuration.mjs +0 -16
- package/esm2022/lib/modules/modal/modal-content.component.mjs +0 -16
- package/esm2022/lib/modules/modal/modal-error.mjs +0 -2
- package/esm2022/lib/modules/modal/modal-errors.service.mjs +0 -21
- package/esm2022/lib/modules/modal/modal-footer.component.mjs +0 -24
- package/esm2022/lib/modules/modal/modal-header.component.mjs +0 -18
- package/esm2022/lib/modules/modal/modal-host-context-args.mjs +0 -2
- package/esm2022/lib/modules/modal/modal-host-context.mjs +0 -21
- package/esm2022/lib/modules/modal/modal-host.component.mjs +0 -154
- package/esm2022/lib/modules/modal/modal-host.service.mjs +0 -68
- package/esm2022/lib/modules/modal/modal-instance.mjs +0 -128
- package/esm2022/lib/modules/modal/modal-is-dirty.directive.mjs +0 -95
- package/esm2022/lib/modules/modal/modal-service-interface.mjs +0 -2
- package/esm2022/lib/modules/modal/modal.component.mjs +0 -266
- package/esm2022/lib/modules/modal/modal.interface.mjs +0 -2
- package/esm2022/lib/modules/modal/modal.module.mjs +0 -42
- package/esm2022/lib/modules/modal/modal.service.mjs +0 -118
- package/esm2022/lib/modules/shared/sky-modals-resources.module.mjs +0 -45
- package/esm2022/skyux-modals.mjs +0 -5
- package/esm2022/testing/legacy/modal-fixture.mjs +0 -143
- package/esm2022/testing/modules/confirm/confirm-button-harness-filters.mjs +0 -2
- package/esm2022/testing/modules/confirm/confirm-button-harness.mjs +0 -52
- package/esm2022/testing/modules/confirm/confirm-harness.mjs +0 -90
- package/esm2022/testing/modules/confirm/confirm-testing.controller.mjs +0 -7
- package/esm2022/testing/modules/confirm/confirm-testing.module.mjs +0 -18
- package/esm2022/testing/modules/confirm/confirm-testing.service.mjs +0 -101
- package/esm2022/testing/modules/confirm/provide-confirm-testing.mjs +0 -20
- package/esm2022/testing/modules/modal/controller/modal-testing.controller.mjs +0 -8
- package/esm2022/testing/modules/modal/controller/modal-testing.module.mjs +0 -18
- package/esm2022/testing/modules/modal/controller/modal-testing.service.mjs +0 -60
- package/esm2022/testing/modules/modal/controller/provide-modal-testing.mjs +0 -20
- package/esm2022/testing/modules/modal/modal-harness-filters.mjs +0 -2
- package/esm2022/testing/modules/modal/modal-harness.mjs +0 -110
- package/esm2022/testing/public-api.mjs +0 -9
- package/esm2022/testing/skyux-modals-testing.mjs +0 -5
|
@@ -1,128 +0,0 @@
|
|
|
1
|
-
import { Subject } from 'rxjs';
|
|
2
|
-
import { SkyModalBeforeCloseHandler } from './modal-before-close-handler';
|
|
3
|
-
import { SkyModalCloseArgs } from './modal-close-args';
|
|
4
|
-
export class SkyModalInstance {
|
|
5
|
-
/**
|
|
6
|
-
* An event that the modal instance emits when it is about to close.
|
|
7
|
-
* It emits a `SkyModalBeforeCloseHandler` object with a `closeModal` method
|
|
8
|
-
* that closes the modal. If a subscription exists for this event,
|
|
9
|
-
* the modal does not close until the subscriber calls the `closeModal` method.
|
|
10
|
-
*/
|
|
11
|
-
get beforeClose() {
|
|
12
|
-
return this.#_beforeClose;
|
|
13
|
-
}
|
|
14
|
-
/**
|
|
15
|
-
* An event that the modal instance emits when it closes.
|
|
16
|
-
* It emits a `SkyModalCloseArgs` object with a `data` property that includes
|
|
17
|
-
* data passed from users on close or save and a `reason` property that indicates
|
|
18
|
-
* whether the modal was saved or closed without saving.
|
|
19
|
-
* The `reason` property accepts any string value.
|
|
20
|
-
* Common examples include `"cancel"`, `"close"`, and `"save"`.
|
|
21
|
-
*/
|
|
22
|
-
get closed() {
|
|
23
|
-
return this.#_closed;
|
|
24
|
-
}
|
|
25
|
-
/**
|
|
26
|
-
* An event that the modal instance emits when users click
|
|
27
|
-
* the <i class="fa fa-question-circle" aria-hidden="true"></i> button.
|
|
28
|
-
* If a `helpKey` parameter was specified, the `helpOpened` event broadcasts the `helpKey`.
|
|
29
|
-
* @deprecated
|
|
30
|
-
*/
|
|
31
|
-
get helpOpened() {
|
|
32
|
-
return this.#_helpOpened;
|
|
33
|
-
}
|
|
34
|
-
/**
|
|
35
|
-
* Sets the component adapter for the instance. This is used internally for actions such as scrolling the content.
|
|
36
|
-
* @internal
|
|
37
|
-
*/
|
|
38
|
-
set adapter(value) {
|
|
39
|
-
this.#adapter = value;
|
|
40
|
-
}
|
|
41
|
-
/**
|
|
42
|
-
* 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.
|
|
43
|
-
* @internal
|
|
44
|
-
*/
|
|
45
|
-
set componentRef(value) {
|
|
46
|
-
this.componentInstance = value.instance;
|
|
47
|
-
this.#elementRef = value.location;
|
|
48
|
-
}
|
|
49
|
-
#_beforeClose = new Subject();
|
|
50
|
-
#_closed = new Subject();
|
|
51
|
-
/**
|
|
52
|
-
* @deprecated
|
|
53
|
-
*/
|
|
54
|
-
#_helpOpened = new Subject();
|
|
55
|
-
#adapter;
|
|
56
|
-
#elementRef;
|
|
57
|
-
/**
|
|
58
|
-
* Closes the modal instance.
|
|
59
|
-
* @param result Specifies an object to emit to subscribers of the `closed` event of the
|
|
60
|
-
* modal instance. The `SkyModalInstance` provider can be injected into a component's constructor
|
|
61
|
-
* so that this `close` function can be called from a button in the `sky-modal-footer`.
|
|
62
|
-
* @param reason Specifies the reason for the modal closing, with the default reason of `"close"`.
|
|
63
|
-
* @param ignoreBeforeClose Indicates whether to ignore the modal instance's `beforeClose` event.
|
|
64
|
-
*/
|
|
65
|
-
close(result, reason, ignoreBeforeClose) {
|
|
66
|
-
if (reason === undefined) {
|
|
67
|
-
reason = 'close';
|
|
68
|
-
}
|
|
69
|
-
this.#closeModal(reason, result, ignoreBeforeClose);
|
|
70
|
-
}
|
|
71
|
-
/**
|
|
72
|
-
* Closes the modal instance with `reason="cancel"`.
|
|
73
|
-
* @param result Specifies an object to emit to subscribers of the `closed` event of the modal
|
|
74
|
-
* instance. The `SkyModalInstance` provider can be injected into a component's constructor so
|
|
75
|
-
* that this cancel function can be called from a button in the `sky-modal-footer`.
|
|
76
|
-
*/
|
|
77
|
-
cancel(result) {
|
|
78
|
-
this.#closeModal('cancel', result);
|
|
79
|
-
}
|
|
80
|
-
/**
|
|
81
|
-
* Closes the modal instance with `reason="save"`.
|
|
82
|
-
* @param result Specifies an object to emit to subscribers of the `closed` event of the modal
|
|
83
|
-
* instance. The `SkyModalInstance` provider can be injected into a component's constructor so
|
|
84
|
-
* that this `save` function can be called from a button in `the sky-modal-footer`.
|
|
85
|
-
*/
|
|
86
|
-
save(result) {
|
|
87
|
-
this.#closeModal('save', result);
|
|
88
|
-
}
|
|
89
|
-
/**
|
|
90
|
-
* Scrolls the modal content area to the top of its scrollable area.
|
|
91
|
-
*/
|
|
92
|
-
scrollContentToTop() {
|
|
93
|
-
if (this.#adapter && this.#elementRef) {
|
|
94
|
-
this.#adapter.scrollContentToTop(this.#elementRef);
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
/**
|
|
98
|
-
* Triggers the `helpOpened` event that broadcasts a `helpKey` parameter to open
|
|
99
|
-
* when users click the <i class="fa fa-question-circle" aria-hidden="true"></i> button.
|
|
100
|
-
* @param helpKey Specifies a string to emit to subscribers of
|
|
101
|
-
* the modal instance's `helpOpened` event. Consumers can inject the `SkyModalInstance` provider
|
|
102
|
-
* into a component's constructor to call the `openHelp` function in the modal template.
|
|
103
|
-
* @deprecated
|
|
104
|
-
*/
|
|
105
|
-
openHelp(helpKey) {
|
|
106
|
-
this.#_helpOpened.next(helpKey);
|
|
107
|
-
}
|
|
108
|
-
#closeModal(type, result, ignoreBeforeClose = false) {
|
|
109
|
-
const args = new SkyModalCloseArgs();
|
|
110
|
-
args.reason = type;
|
|
111
|
-
args.data = result;
|
|
112
|
-
if (this.#_beforeClose.observers.length === 0 || ignoreBeforeClose) {
|
|
113
|
-
this.#notifyClosed(args);
|
|
114
|
-
}
|
|
115
|
-
else {
|
|
116
|
-
this.#_beforeClose.next(new SkyModalBeforeCloseHandler(() => {
|
|
117
|
-
this.#notifyClosed(args);
|
|
118
|
-
}, args));
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
#notifyClosed(args) {
|
|
122
|
-
this.#_closed.next(args);
|
|
123
|
-
this.#_closed.complete();
|
|
124
|
-
this.#_beforeClose.complete();
|
|
125
|
-
this.#_helpOpened.complete();
|
|
126
|
-
}
|
|
127
|
-
}
|
|
128
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtaW5zdGFuY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvbW9kYWxzL3NyYy9saWIvbW9kdWxlcy9tb2RhbC9tb2RhbC1pbnN0YW5jZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQWMsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRzNDLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzFFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRXZELE1BQU0sT0FBTyxnQkFBZ0I7SUFDM0I7Ozs7O09BS0c7SUFDSCxJQUFXLFdBQVc7UUFDcEIsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDO0lBQzVCLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0gsSUFBVyxNQUFNO1FBQ2YsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3ZCLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILElBQVcsVUFBVTtRQUNuQixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDM0IsQ0FBQztJQVFEOzs7T0FHRztJQUNILElBQVcsT0FBTyxDQUFDLEtBQTZCO1FBQzlDLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO0lBQ3hCLENBQUM7SUFFRDs7O09BR0c7SUFDSCxJQUFXLFlBQVksQ0FBQyxLQUF3QjtRQUM5QyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQztRQUN4QyxJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUM7SUFDcEMsQ0FBQztJQUVELGFBQWEsR0FBRyxJQUFJLE9BQU8sRUFBOEIsQ0FBQztJQUUxRCxRQUFRLEdBQUcsSUFBSSxPQUFPLEVBQXFCLENBQUM7SUFFNUM7O09BRUc7SUFDSCxZQUFZLEdBQUcsSUFBSSxPQUFPLEVBQVUsQ0FBQztJQUVyQyxRQUFRLENBQXFDO0lBQzdDLFdBQVcsQ0FBeUI7SUFFcEM7Ozs7Ozs7T0FPRztJQUNJLEtBQUssQ0FDVixNQUFZLEVBQ1osTUFBZSxFQUNmLGlCQUEyQjtRQUUzQixJQUFJLE1BQU0sS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUN6QixNQUFNLEdBQUcsT0FBTyxDQUFDO1FBQ25CLENBQUM7UUFFRCxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSSxNQUFNLENBQUMsTUFBWTtRQUN4QixJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSSxJQUFJLENBQUMsTUFBWTtRQUN0QixJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRUQ7O09BRUc7SUFDSSxrQkFBa0I7UUFDdkIsSUFBSSxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUN0QyxJQUFJLENBQUMsUUFBUSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNyRCxDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSSxRQUFRLENBQUMsT0FBZTtRQUM3QixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQsV0FBVyxDQUFDLElBQVksRUFBRSxNQUFZLEVBQUUsaUJBQWlCLEdBQUcsS0FBSztRQUMvRCxNQUFNLElBQUksR0FBRyxJQUFJLGlCQUFpQixFQUFFLENBQUM7UUFFckMsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7UUFDbkIsSUFBSSxDQUFDLElBQUksR0FBRyxNQUFNLENBQUM7UUFFbkIsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLGlCQUFpQixFQUFFLENBQUM7WUFDbkUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMzQixDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUNyQixJQUFJLDBCQUEwQixDQUFDLEdBQUcsRUFBRTtnQkFDbEMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUMzQixDQUFDLEVBQUUsSUFBSSxDQUFDLENBQ1QsQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDO0lBRUQsYUFBYSxDQUFDLElBQXVCO1FBQ25DLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDekIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUM5QixJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQy9CLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudFJlZiwgRWxlbWVudFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IFNreU1vZGFsQWRhcHRlclNlcnZpY2UgfSBmcm9tICcuL21vZGFsLWFkYXB0ZXIuc2VydmljZSc7XG5pbXBvcnQgeyBTa3lNb2RhbEJlZm9yZUNsb3NlSGFuZGxlciB9IGZyb20gJy4vbW9kYWwtYmVmb3JlLWNsb3NlLWhhbmRsZXInO1xuaW1wb3J0IHsgU2t5TW9kYWxDbG9zZUFyZ3MgfSBmcm9tICcuL21vZGFsLWNsb3NlLWFyZ3MnO1xuXG5leHBvcnQgY2xhc3MgU2t5TW9kYWxJbnN0YW5jZSB7XG4gIC8qKlxuICAgKiBBbiBldmVudCB0aGF0IHRoZSBtb2RhbCBpbnN0YW5jZSBlbWl0cyB3aGVuIGl0IGlzIGFib3V0IHRvIGNsb3NlLlxuICAgKiBJdCBlbWl0cyBhIGBTa3lNb2RhbEJlZm9yZUNsb3NlSGFuZGxlcmAgb2JqZWN0IHdpdGggYSBgY2xvc2VNb2RhbGAgbWV0aG9kXG4gICAqIHRoYXQgY2xvc2VzIHRoZSBtb2RhbC4gSWYgYSBzdWJzY3JpcHRpb24gZXhpc3RzIGZvciB0aGlzIGV2ZW50LFxuICAgKiB0aGUgbW9kYWwgZG9lcyBub3QgY2xvc2UgdW50aWwgdGhlIHN1YnNjcmliZXIgY2FsbHMgdGhlIGBjbG9zZU1vZGFsYCBtZXRob2QuXG4gICAqL1xuICBwdWJsaWMgZ2V0IGJlZm9yZUNsb3NlKCk6IE9ic2VydmFibGU8U2t5TW9kYWxCZWZvcmVDbG9zZUhhbmRsZXI+IHtcbiAgICByZXR1cm4gdGhpcy4jX2JlZm9yZUNsb3NlO1xuICB9XG5cbiAgLyoqXG4gICAqIEFuIGV2ZW50IHRoYXQgdGhlIG1vZGFsIGluc3RhbmNlIGVtaXRzIHdoZW4gaXQgY2xvc2VzLlxuICAgKiBJdCBlbWl0cyBhIGBTa3lNb2RhbENsb3NlQXJnc2Agb2JqZWN0IHdpdGggYSBgZGF0YWAgcHJvcGVydHkgdGhhdCBpbmNsdWRlc1xuICAgKiBkYXRhIHBhc3NlZCBmcm9tIHVzZXJzIG9uIGNsb3NlIG9yIHNhdmUgYW5kIGEgYHJlYXNvbmAgcHJvcGVydHkgdGhhdCBpbmRpY2F0ZXNcbiAgICogd2hldGhlciB0aGUgbW9kYWwgd2FzIHNhdmVkIG9yIGNsb3NlZCB3aXRob3V0IHNhdmluZy5cbiAgICogVGhlIGByZWFzb25gIHByb3BlcnR5IGFjY2VwdHMgYW55IHN0cmluZyB2YWx1ZS5cbiAgICogQ29tbW9uIGV4YW1wbGVzIGluY2x1ZGUgYFwiY2FuY2VsXCJgLCBgXCJjbG9zZVwiYCwgYW5kIGBcInNhdmVcImAuXG4gICAqL1xuICBwdWJsaWMgZ2V0IGNsb3NlZCgpOiBPYnNlcnZhYmxlPFNreU1vZGFsQ2xvc2VBcmdzPiB7XG4gICAgcmV0dXJuIHRoaXMuI19jbG9zZWQ7XG4gIH1cblxuICAvKipcbiAgICogQW4gZXZlbnQgdGhhdCB0aGUgbW9kYWwgaW5zdGFuY2UgZW1pdHMgd2hlbiB1c2VycyBjbGlja1xuICAgKiB0aGUgPGkgY2xhc3M9XCJmYSBmYS1xdWVzdGlvbi1jaXJjbGVcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+IGJ1dHRvbi5cbiAgICogSWYgYSBgaGVscEtleWAgcGFyYW1ldGVyIHdhcyBzcGVjaWZpZWQsIHRoZSBgaGVscE9wZW5lZGAgZXZlbnQgYnJvYWRjYXN0cyB0aGUgYGhlbHBLZXlgLlxuICAgKiBAZGVwcmVjYXRlZFxuICAgKi9cbiAgcHVibGljIGdldCBoZWxwT3BlbmVkKCk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgcmV0dXJuIHRoaXMuI19oZWxwT3BlbmVkO1xuICB9XG5cbiAgLyoqXG4gICAqIEEgZGlyZWN0IHJlZmVyZW5jZSB0byB0aGUgcHJvdmlkZWQgY29tcG9uZW50J3MgY2xhc3MuXG4gICAqL1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICBwdWJsaWMgY29tcG9uZW50SW5zdGFuY2U6IGFueTtcblxuICAvKipcbiAgICogU2V0cyB0aGUgY29tcG9uZW50IGFkYXB0ZXIgZm9yIHRoZSBpbnN0YW5jZS4gVGhpcyBpcyB1c2VkIGludGVybmFsbHkgZm9yIGFjdGlvbnMgc3VjaCBhcyBzY3JvbGxpbmcgdGhlIGNvbnRlbnQuXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcHVibGljIHNldCBhZGFwdGVyKHZhbHVlOiBTa3lNb2RhbEFkYXB0ZXJTZXJ2aWNlKSB7XG4gICAgdGhpcy4jYWRhcHRlciA9IHZhbHVlO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIGNvbXBvbmVudCByZWYgZm9yIHRoZSBpbnN0YW5jZS4gVGhpcyBpcyB1c2VkIHRvIGV4dHJhY3QgdGhlIGNvbXBvbmVudCBpbnN0YW5jZSBmb3IgdGhlIHB1YmxpYyBBUEkgYW5kIHRoZSBlbGVtZW50IHJlZiBmb3IgaW50ZXJuYWwgdXNlLlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHB1YmxpYyBzZXQgY29tcG9uZW50UmVmKHZhbHVlOiBDb21wb25lbnRSZWY8YW55Pikge1xuICAgIHRoaXMuY29tcG9uZW50SW5zdGFuY2UgPSB2YWx1ZS5pbnN0YW5jZTtcbiAgICB0aGlzLiNlbGVtZW50UmVmID0gdmFsdWUubG9jYXRpb247XG4gIH1cblxuICAjX2JlZm9yZUNsb3NlID0gbmV3IFN1YmplY3Q8U2t5TW9kYWxCZWZvcmVDbG9zZUhhbmRsZXI+KCk7XG5cbiAgI19jbG9zZWQgPSBuZXcgU3ViamVjdDxTa3lNb2RhbENsb3NlQXJncz4oKTtcblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWRcbiAgICovXG4gICNfaGVscE9wZW5lZCA9IG5ldyBTdWJqZWN0PHN0cmluZz4oKTtcblxuICAjYWRhcHRlcjogU2t5TW9kYWxBZGFwdGVyU2VydmljZSB8IHVuZGVmaW5lZDtcbiAgI2VsZW1lbnRSZWY6IEVsZW1lbnRSZWYgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIENsb3NlcyB0aGUgbW9kYWwgaW5zdGFuY2UuXG4gICAqIEBwYXJhbSByZXN1bHQgU3BlY2lmaWVzIGFuIG9iamVjdCB0byBlbWl0IHRvIHN1YnNjcmliZXJzIG9mIHRoZSBgY2xvc2VkYCBldmVudCBvZiB0aGVcbiAgICogbW9kYWwgaW5zdGFuY2UuIFRoZSBgU2t5TW9kYWxJbnN0YW5jZWAgcHJvdmlkZXIgY2FuIGJlIGluamVjdGVkIGludG8gYSBjb21wb25lbnQncyBjb25zdHJ1Y3RvclxuICAgKiBzbyB0aGF0IHRoaXMgYGNsb3NlYCBmdW5jdGlvbiBjYW4gYmUgY2FsbGVkIGZyb20gYSBidXR0b24gaW4gdGhlIGBza3ktbW9kYWwtZm9vdGVyYC5cbiAgICogQHBhcmFtIHJlYXNvbiBTcGVjaWZpZXMgdGhlIHJlYXNvbiBmb3IgdGhlIG1vZGFsIGNsb3NpbmcsIHdpdGggdGhlIGRlZmF1bHQgcmVhc29uIG9mIGBcImNsb3NlXCJgLlxuICAgKiBAcGFyYW0gaWdub3JlQmVmb3JlQ2xvc2UgSW5kaWNhdGVzIHdoZXRoZXIgdG8gaWdub3JlIHRoZSBtb2RhbCBpbnN0YW5jZSdzIGBiZWZvcmVDbG9zZWAgZXZlbnQuXG4gICAqL1xuICBwdWJsaWMgY2xvc2UoXG4gICAgcmVzdWx0PzogYW55LFxuICAgIHJlYXNvbj86IHN0cmluZyxcbiAgICBpZ25vcmVCZWZvcmVDbG9zZT86IGJvb2xlYW4sXG4gICk6IHZvaWQge1xuICAgIGlmIChyZWFzb24gPT09IHVuZGVmaW5lZCkge1xuICAgICAgcmVhc29uID0gJ2Nsb3NlJztcbiAgICB9XG5cbiAgICB0aGlzLiNjbG9zZU1vZGFsKHJlYXNvbiwgcmVzdWx0LCBpZ25vcmVCZWZvcmVDbG9zZSk7XG4gIH1cblxuICAvKipcbiAgICogQ2xvc2VzIHRoZSBtb2RhbCBpbnN0YW5jZSB3aXRoIGByZWFzb249XCJjYW5jZWxcImAuXG4gICAqIEBwYXJhbSByZXN1bHQgU3BlY2lmaWVzIGFuIG9iamVjdCB0byBlbWl0IHRvIHN1YnNjcmliZXJzIG9mIHRoZSBgY2xvc2VkYCBldmVudCBvZiB0aGUgbW9kYWxcbiAgICogaW5zdGFuY2UuIFRoZSBgU2t5TW9kYWxJbnN0YW5jZWAgcHJvdmlkZXIgY2FuIGJlIGluamVjdGVkIGludG8gYSBjb21wb25lbnQncyBjb25zdHJ1Y3RvciBzb1xuICAgKiB0aGF0IHRoaXMgY2FuY2VsIGZ1bmN0aW9uIGNhbiBiZSBjYWxsZWQgZnJvbSBhIGJ1dHRvbiBpbiB0aGUgYHNreS1tb2RhbC1mb290ZXJgLlxuICAgKi9cbiAgcHVibGljIGNhbmNlbChyZXN1bHQ/OiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLiNjbG9zZU1vZGFsKCdjYW5jZWwnLCByZXN1bHQpO1xuICB9XG5cbiAgLyoqXG4gICAqIENsb3NlcyB0aGUgbW9kYWwgaW5zdGFuY2Ugd2l0aCBgcmVhc29uPVwic2F2ZVwiYC5cbiAgICogQHBhcmFtIHJlc3VsdCBTcGVjaWZpZXMgYW4gb2JqZWN0IHRvIGVtaXQgdG8gc3Vic2NyaWJlcnMgb2YgdGhlIGBjbG9zZWRgIGV2ZW50IG9mIHRoZSBtb2RhbFxuICAgKiBpbnN0YW5jZS4gVGhlIGBTa3lNb2RhbEluc3RhbmNlYCBwcm92aWRlciBjYW4gYmUgaW5qZWN0ZWQgaW50byBhIGNvbXBvbmVudCdzIGNvbnN0cnVjdG9yIHNvXG4gICAqIHRoYXQgdGhpcyBgc2F2ZWAgZnVuY3Rpb24gY2FuIGJlIGNhbGxlZCBmcm9tIGEgYnV0dG9uIGluIGB0aGUgc2t5LW1vZGFsLWZvb3RlcmAuXG4gICAqL1xuICBwdWJsaWMgc2F2ZShyZXN1bHQ/OiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLiNjbG9zZU1vZGFsKCdzYXZlJywgcmVzdWx0KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTY3JvbGxzIHRoZSBtb2RhbCBjb250ZW50IGFyZWEgdG8gdGhlIHRvcCBvZiBpdHMgc2Nyb2xsYWJsZSBhcmVhLlxuICAgKi9cbiAgcHVibGljIHNjcm9sbENvbnRlbnRUb1RvcCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy4jYWRhcHRlciAmJiB0aGlzLiNlbGVtZW50UmVmKSB7XG4gICAgICB0aGlzLiNhZGFwdGVyLnNjcm9sbENvbnRlbnRUb1RvcCh0aGlzLiNlbGVtZW50UmVmKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVHJpZ2dlcnMgdGhlIGBoZWxwT3BlbmVkYCBldmVudCB0aGF0IGJyb2FkY2FzdHMgYSBgaGVscEtleWAgcGFyYW1ldGVyIHRvIG9wZW5cbiAgICogd2hlbiB1c2VycyBjbGljayB0aGUgPGkgY2xhc3M9XCJmYSBmYS1xdWVzdGlvbi1jaXJjbGVcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+IGJ1dHRvbi5cbiAgICogQHBhcmFtIGhlbHBLZXkgU3BlY2lmaWVzIGEgc3RyaW5nIHRvIGVtaXQgdG8gc3Vic2NyaWJlcnMgb2ZcbiAgICogdGhlIG1vZGFsIGluc3RhbmNlJ3MgYGhlbHBPcGVuZWRgIGV2ZW50LiBDb25zdW1lcnMgY2FuIGluamVjdCB0aGUgYFNreU1vZGFsSW5zdGFuY2VgIHByb3ZpZGVyXG4gICAqIGludG8gYSBjb21wb25lbnQncyBjb25zdHJ1Y3RvciB0byBjYWxsIHRoZSBgb3BlbkhlbHBgIGZ1bmN0aW9uIGluIHRoZSBtb2RhbCB0ZW1wbGF0ZS5cbiAgICogQGRlcHJlY2F0ZWRcbiAgICovXG4gIHB1YmxpYyBvcGVuSGVscChoZWxwS2V5OiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLiNfaGVscE9wZW5lZC5uZXh0KGhlbHBLZXkpO1xuICB9XG5cbiAgI2Nsb3NlTW9kYWwodHlwZTogc3RyaW5nLCByZXN1bHQ/OiBhbnksIGlnbm9yZUJlZm9yZUNsb3NlID0gZmFsc2UpOiB2b2lkIHtcbiAgICBjb25zdCBhcmdzID0gbmV3IFNreU1vZGFsQ2xvc2VBcmdzKCk7XG5cbiAgICBhcmdzLnJlYXNvbiA9IHR5cGU7XG4gICAgYXJncy5kYXRhID0gcmVzdWx0O1xuXG4gICAgaWYgKHRoaXMuI19iZWZvcmVDbG9zZS5vYnNlcnZlcnMubGVuZ3RoID09PSAwIHx8IGlnbm9yZUJlZm9yZUNsb3NlKSB7XG4gICAgICB0aGlzLiNub3RpZnlDbG9zZWQoYXJncyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuI19iZWZvcmVDbG9zZS5uZXh0KFxuICAgICAgICBuZXcgU2t5TW9kYWxCZWZvcmVDbG9zZUhhbmRsZXIoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuI25vdGlmeUNsb3NlZChhcmdzKTtcbiAgICAgICAgfSwgYXJncyksXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gICNub3RpZnlDbG9zZWQoYXJnczogU2t5TW9kYWxDbG9zZUFyZ3MpOiB2b2lkIHtcbiAgICB0aGlzLiNfY2xvc2VkLm5leHQoYXJncyk7XG4gICAgdGhpcy4jX2Nsb3NlZC5jb21wbGV0ZSgpO1xuICAgIHRoaXMuI19iZWZvcmVDbG9zZS5jb21wbGV0ZSgpO1xuICAgIHRoaXMuI19oZWxwT3BlbmVkLmNvbXBsZXRlKCk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,95 +0,0 @@
|
|
|
1
|
-
import { Directive, HostBinding, Input, inject, } from '@angular/core';
|
|
2
|
-
import { SkyLibResourcesService } from '@skyux/i18n';
|
|
3
|
-
import { Subject } from 'rxjs';
|
|
4
|
-
import { takeUntil } from 'rxjs/operators';
|
|
5
|
-
import { SkyConfirmType } from '../confirm/confirm-type';
|
|
6
|
-
import { SkyConfirmService } from '../confirm/confirm.service';
|
|
7
|
-
import { SkyModalInstance } from './modal-instance';
|
|
8
|
-
import * as i0 from "@angular/core";
|
|
9
|
-
/**
|
|
10
|
-
* Provides a way to mark a modal as "dirty" and displays a confirmation
|
|
11
|
-
* message when a user closes the modal without saving.
|
|
12
|
-
*/
|
|
13
|
-
export class SkyModalIsDirtyDirective {
|
|
14
|
-
constructor() {
|
|
15
|
-
/**
|
|
16
|
-
* Whether the user edited an input on the modal.
|
|
17
|
-
* @required
|
|
18
|
-
*/
|
|
19
|
-
this.isDirty = false;
|
|
20
|
-
this.#ngUnsubscribe = new Subject();
|
|
21
|
-
this.#modalInstance = inject(SkyModalInstance);
|
|
22
|
-
this.#confirmSvc = inject(SkyConfirmService);
|
|
23
|
-
this.#resourcesSvc = inject(SkyLibResourcesService);
|
|
24
|
-
}
|
|
25
|
-
#ngUnsubscribe;
|
|
26
|
-
#modalInstance;
|
|
27
|
-
#confirmSvc;
|
|
28
|
-
#resourcesSvc;
|
|
29
|
-
ngOnInit() {
|
|
30
|
-
this.#modalInstance.beforeClose
|
|
31
|
-
.pipe(takeUntil(this.#ngUnsubscribe))
|
|
32
|
-
.subscribe((handler) => this.#promptIfDirty(handler));
|
|
33
|
-
}
|
|
34
|
-
ngOnDestroy() {
|
|
35
|
-
this.#ngUnsubscribe.next();
|
|
36
|
-
this.#ngUnsubscribe.complete();
|
|
37
|
-
}
|
|
38
|
-
#promptIfDirty(handler) {
|
|
39
|
-
if (this.isDirty && handler.closeArgs.reason === 'close') {
|
|
40
|
-
this.#resourcesSvc
|
|
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
|
-
this.#confirmSvc
|
|
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
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SkyModalIsDirtyDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
78
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: SkyModalIsDirtyDirective, isStandalone: true, selector: "sky-modal[isDirty]", inputs: { isDirty: "isDirty" }, host: { properties: { "attr.data-sky-modal-is-dirty": "this.isDirty" } }, ngImport: i0 }); }
|
|
79
|
-
}
|
|
80
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SkyModalIsDirtyDirective, decorators: [{
|
|
81
|
-
type: Directive,
|
|
82
|
-
args: [{
|
|
83
|
-
standalone: true,
|
|
84
|
-
// Since this is limited to sky-modal, it should be safe to
|
|
85
|
-
// leave off the sky prefix.
|
|
86
|
-
// eslint-disable-next-line @angular-eslint/directive-selector
|
|
87
|
-
selector: 'sky-modal[isDirty]',
|
|
88
|
-
}]
|
|
89
|
-
}], propDecorators: { isDirty: [{
|
|
90
|
-
type: Input
|
|
91
|
-
}, {
|
|
92
|
-
type: HostBinding,
|
|
93
|
-
args: ['attr.data-sky-modal-is-dirty']
|
|
94
|
-
}] } });
|
|
95
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtaXMtZGlydHkuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL21vZGFscy9zcmMvbGliL21vZHVsZXMvbW9kYWwvbW9kYWwtaXMtZGlydHkuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsV0FBVyxFQUNYLEtBQUssRUFHTCxNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRXJELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTNDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUcvRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7QUFFcEQ7OztHQUdHO0FBUUgsTUFBTSxPQUFPLHdCQUF3QjtJQVByQztRQVFFOzs7V0FHRztRQUtJLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFFZCxtQkFBYyxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFFckMsbUJBQWMsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUMxQyxnQkFBVyxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ3hDLGtCQUFhLEdBQUcsTUFBTSxDQUFDLHNCQUFzQixDQUFDLENBQUM7S0FvRHpEO0lBeERVLGNBQWMsQ0FBdUI7SUFFckMsY0FBYyxDQUE0QjtJQUMxQyxXQUFXLENBQTZCO0lBQ3hDLGFBQWEsQ0FBa0M7SUFFakQsUUFBUTtRQUNiLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVzthQUM1QixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQzthQUNwQyxTQUFTLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBRU0sV0FBVztRQUNoQixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzNCLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDakMsQ0FBQztJQUVELGNBQWMsQ0FBQyxPQUFtQztRQUNoRCxJQUFJLElBQUksQ0FBQyxPQUFPLElBQUksT0FBTyxDQUFDLFNBQVMsQ0FBQyxNQUFNLEtBQUssT0FBTyxFQUFFLENBQUM7WUFDekQsSUFBSSxDQUFDLGFBQWE7aUJBQ2YsVUFBVSxDQUFDO2dCQUNWLE9BQU8sRUFBRSxtQ0FBbUM7Z0JBQzVDLGlCQUFpQixFQUFFLGdEQUFnRDtnQkFDbkUsY0FBYyxFQUFFLDZDQUE2QzthQUM5RCxDQUFDO2lCQUNELFNBQVMsQ0FBQyxDQUFDLFVBQVUsRUFBRSxFQUFFO2dCQUN4QixNQUFNLGFBQWEsR0FBRyxTQUFTLENBQUM7Z0JBQ2hDLE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQztnQkFFMUIsSUFBSSxDQUFDLFdBQVc7cUJBQ2IsSUFBSSxDQUFDO29CQUNKLE9BQU8sRUFBRSxVQUFVLENBQUMsT0FBTztvQkFDM0IsT0FBTyxFQUFFO3dCQUNQOzRCQUNFLE1BQU0sRUFBRSxhQUFhOzRCQUNyQixJQUFJLEVBQUUsVUFBVSxDQUFDLGlCQUFpQjs0QkFDbEMsU0FBUyxFQUFFLFNBQVM7eUJBQ3JCO3dCQUNEOzRCQUNFLE1BQU0sRUFBRSxVQUFVOzRCQUNsQixJQUFJLEVBQUUsVUFBVSxDQUFDLGNBQWM7NEJBQy9CLFNBQVMsRUFBRSxNQUFNO3lCQUNsQjtxQkFDRjtvQkFDRCxJQUFJLEVBQUUsY0FBYyxDQUFDLE1BQU07aUJBQzVCLENBQUM7cUJBQ0QsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO29CQUN6QixJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssYUFBYSxFQUFFLENBQUM7d0JBQ2xDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsQ0FBQztvQkFDdkIsQ0FBQztnQkFDSCxDQUFDLENBQUMsQ0FBQztZQUNQLENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQzthQUFNLENBQUM7WUFDTixPQUFPLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDdkIsQ0FBQztJQUNILENBQUM7K0dBbEVVLHdCQUF3QjttR0FBeEIsd0JBQXdCOzs0RkFBeEIsd0JBQXdCO2tCQVBwQyxTQUFTO21CQUFDO29CQUNULFVBQVUsRUFBRSxJQUFJO29CQUNoQiwyREFBMkQ7b0JBQzNELDRCQUE0QjtvQkFDNUIsOERBQThEO29CQUM5RCxRQUFRLEVBQUUsb0JBQW9CO2lCQUMvQjs4QkFVUSxPQUFPO3NCQUpiLEtBQUs7O3NCQUdMLFdBQVc7dUJBQUMsOEJBQThCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRGlyZWN0aXZlLFxuICBIb3N0QmluZGluZyxcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBpbmplY3QsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2t5TGliUmVzb3VyY2VzU2VydmljZSB9IGZyb20gJ0Bza3l1eC9pMThuJztcblxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBTa3lDb25maXJtVHlwZSB9IGZyb20gJy4uL2NvbmZpcm0vY29uZmlybS10eXBlJztcbmltcG9ydCB7IFNreUNvbmZpcm1TZXJ2aWNlIH0gZnJvbSAnLi4vY29uZmlybS9jb25maXJtLnNlcnZpY2UnO1xuXG5pbXBvcnQgeyBTa3lNb2RhbEJlZm9yZUNsb3NlSGFuZGxlciB9IGZyb20gJy4vbW9kYWwtYmVmb3JlLWNsb3NlLWhhbmRsZXInO1xuaW1wb3J0IHsgU2t5TW9kYWxJbnN0YW5jZSB9IGZyb20gJy4vbW9kYWwtaW5zdGFuY2UnO1xuXG4vKipcbiAqIFByb3ZpZGVzIGEgd2F5IHRvIG1hcmsgYSBtb2RhbCBhcyBcImRpcnR5XCIgYW5kIGRpc3BsYXlzIGEgY29uZmlybWF0aW9uXG4gKiBtZXNzYWdlIHdoZW4gYSB1c2VyIGNsb3NlcyB0aGUgbW9kYWwgd2l0aG91dCBzYXZpbmcuXG4gKi9cbkBEaXJlY3RpdmUoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICAvLyBTaW5jZSB0aGlzIGlzIGxpbWl0ZWQgdG8gc2t5LW1vZGFsLCBpdCBzaG91bGQgYmUgc2FmZSB0b1xuICAvLyBsZWF2ZSBvZmYgdGhlIHNreSBwcmVmaXguXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvZGlyZWN0aXZlLXNlbGVjdG9yXG4gIHNlbGVjdG9yOiAnc2t5LW1vZGFsW2lzRGlydHldJyxcbn0pXG5leHBvcnQgY2xhc3MgU2t5TW9kYWxJc0RpcnR5RGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAvKipcbiAgICogV2hldGhlciB0aGUgdXNlciBlZGl0ZWQgYW4gaW5wdXQgb24gdGhlIG1vZGFsLlxuICAgKiBAcmVxdWlyZWRcbiAgICovXG4gIEBJbnB1dCgpXG4gIC8vIFRoaXMgYXR0cmlidXRlIGlzIGJlaW5nIGFwcGxpZWQgdG8gdGhlIGhvc3QgdG8gc3VwcG9ydFxuICAvLyB1bml0IHRlc3RpbmcgdGhpcyBmZWF0dXJlLlxuICBASG9zdEJpbmRpbmcoJ2F0dHIuZGF0YS1za3ktbW9kYWwtaXMtZGlydHknKVxuICBwdWJsaWMgaXNEaXJ0eSA9IGZhbHNlO1xuXG4gIHJlYWRvbmx5ICNuZ1Vuc3Vic2NyaWJlID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICByZWFkb25seSAjbW9kYWxJbnN0YW5jZSA9IGluamVjdChTa3lNb2RhbEluc3RhbmNlKTtcbiAgcmVhZG9ubHkgI2NvbmZpcm1TdmMgPSBpbmplY3QoU2t5Q29uZmlybVNlcnZpY2UpO1xuICByZWFkb25seSAjcmVzb3VyY2VzU3ZjID0gaW5qZWN0KFNreUxpYlJlc291cmNlc1NlcnZpY2UpO1xuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLiNtb2RhbEluc3RhbmNlLmJlZm9yZUNsb3NlXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpXG4gICAgICAuc3Vic2NyaWJlKChoYW5kbGVyKSA9PiB0aGlzLiNwcm9tcHRJZkRpcnR5KGhhbmRsZXIpKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLiNuZ1Vuc3Vic2NyaWJlLm5leHQoKTtcbiAgICB0aGlzLiNuZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKCk7XG4gIH1cblxuICAjcHJvbXB0SWZEaXJ0eShoYW5kbGVyOiBTa3lNb2RhbEJlZm9yZUNsb3NlSGFuZGxlcik6IHZvaWQge1xuICAgIGlmICh0aGlzLmlzRGlydHkgJiYgaGFuZGxlci5jbG9zZUFyZ3MucmVhc29uID09PSAnY2xvc2UnKSB7XG4gICAgICB0aGlzLiNyZXNvdXJjZXNTdmNcbiAgICAgICAgLmdldFN0cmluZ3Moe1xuICAgICAgICAgIG1lc3NhZ2U6ICdza3l1eF9tb2RhbF9kaXJ0eV9kZWZhdWx0X21lc3NhZ2UnLFxuICAgICAgICAgIGRpc2NhcmRBY3Rpb25UZXh0OiAnc2t5dXhfbW9kYWxfZGlydHlfZGVmYXVsdF9kaXNjYXJkX2NoYW5nZXNfdGV4dCcsXG4gICAgICAgICAga2VlcEFjdGlvblRleHQ6ICdza3l1eF9tb2RhbF9kaXJ0eV9kZWZhdWx0X2tlZXBfd29ya2luZ190ZXh0JyxcbiAgICAgICAgfSlcbiAgICAgICAgLnN1YnNjcmliZSgodGV4dFZhbHVlcykgPT4ge1xuICAgICAgICAgIGNvbnN0IGRpc2NhcmRBY3Rpb24gPSAnZGlzY2FyZCc7XG4gICAgICAgICAgY29uc3Qga2VlcEFjdGlvbiA9ICdrZWVwJztcblxuICAgICAgICAgIHRoaXMuI2NvbmZpcm1TdmNcbiAgICAgICAgICAgIC5vcGVuKHtcbiAgICAgICAgICAgICAgbWVzc2FnZTogdGV4dFZhbHVlcy5tZXNzYWdlLFxuICAgICAgICAgICAgICBidXR0b25zOiBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgYWN0aW9uOiBkaXNjYXJkQWN0aW9uLFxuICAgICAgICAgICAgICAgICAgdGV4dDogdGV4dFZhbHVlcy5kaXNjYXJkQWN0aW9uVGV4dCxcbiAgICAgICAgICAgICAgICAgIHN0eWxlVHlwZTogJ3ByaW1hcnknLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgYWN0aW9uOiBrZWVwQWN0aW9uLFxuICAgICAgICAgICAgICAgICAgdGV4dDogdGV4dFZhbHVlcy5rZWVwQWN0aW9uVGV4dCxcbiAgICAgICAgICAgICAgICAgIHN0eWxlVHlwZTogJ2xpbmsnLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIHR5cGU6IFNreUNvbmZpcm1UeXBlLkN1c3RvbSxcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAuY2xvc2VkLnN1YnNjcmliZSgoYXJncykgPT4ge1xuICAgICAgICAgICAgICBpZiAoYXJncy5hY3Rpb24gPT09IGRpc2NhcmRBY3Rpb24pIHtcbiAgICAgICAgICAgICAgICBoYW5kbGVyLmNsb3NlTW9kYWwoKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBoYW5kbGVyLmNsb3NlTW9kYWwoKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtc2VydmljZS1pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvbW9kYWxzL3NyYy9saWIvbW9kdWxlcy9tb2RhbC9tb2RhbC1zZXJ2aWNlLWludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2t5TW9kYWxJbnN0YW5jZSB9IGZyb20gJy4vbW9kYWwtaW5zdGFuY2UnO1xuaW1wb3J0IHsgU2t5TW9kYWxDb25maWd1cmF0aW9uSW50ZXJmYWNlIH0gZnJvbSAnLi9tb2RhbC5pbnRlcmZhY2UnO1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNreU1vZGFsU2VydmljZUludGVyZmFjZSB7XG4gIG9wZW4oXG4gICAgY29tcG9uZW50OiBhbnksXG4gICAgY29uZmlnPzogU2t5TW9kYWxDb25maWd1cmF0aW9uSW50ZXJmYWNlIHwgYW55W10sXG4gICk6IFNreU1vZGFsSW5zdGFuY2U7XG59XG4iXX0=
|
|
@@ -1,266 +0,0 @@
|
|
|
1
|
-
import { CommonModule } from '@angular/common';
|
|
2
|
-
import { ChangeDetectorRef, Component, ElementRef, HostBinding, HostListener, Input, ViewChild, inject, } from '@angular/core';
|
|
3
|
-
import { SkyCoreAdapterService, SkyDockLocation, SkyDockService, SkyIdModule, SkyLiveAnnouncerService, SkyScrollShadowDirective, } from '@skyux/core';
|
|
4
|
-
import { SkyHelpInlineModule } from '@skyux/help-inline';
|
|
5
|
-
import { SkyIconModule } from '@skyux/icon';
|
|
6
|
-
import { SkyTheme, SkyThemeService } from '@skyux/theme';
|
|
7
|
-
import { Subject } from 'rxjs';
|
|
8
|
-
import { takeUntil } from 'rxjs/operators';
|
|
9
|
-
import { SkyModalsResourcesModule } from '../shared/sky-modals-resources.module';
|
|
10
|
-
import { SkyModalComponentAdapterService } from './modal-component-adapter.service';
|
|
11
|
-
import { SkyModalConfiguration } from './modal-configuration';
|
|
12
|
-
import { SkyModalErrorsService } from './modal-errors.service';
|
|
13
|
-
import { SkyModalHeaderComponent } from './modal-header.component';
|
|
14
|
-
import { SkyModalHostService } from './modal-host.service';
|
|
15
|
-
import * as i0 from "@angular/core";
|
|
16
|
-
import * as i1 from "@angular/common";
|
|
17
|
-
import * as i2 from "@skyux/help-inline";
|
|
18
|
-
import * as i3 from "@skyux/icon";
|
|
19
|
-
import * as i4 from "@skyux/core";
|
|
20
|
-
import * as i5 from "@skyux/i18n";
|
|
21
|
-
const ARIA_ROLE_DEFAULT = 'dialog';
|
|
22
|
-
/**
|
|
23
|
-
* Provides a common look-and-feel for modal content with options to display
|
|
24
|
-
* a common modal header, specify body content, and display a common modal footer
|
|
25
|
-
* and buttons.
|
|
26
|
-
*/
|
|
27
|
-
export class SkyModalComponent {
|
|
28
|
-
/**
|
|
29
|
-
* A list of form-level errors to display to the user.
|
|
30
|
-
*/
|
|
31
|
-
set formErrors(value) {
|
|
32
|
-
this.#errorsSvc.updateErrors(value);
|
|
33
|
-
}
|
|
34
|
-
/**
|
|
35
|
-
* Used by the confirm component to set a different role for the modal.
|
|
36
|
-
* @internal
|
|
37
|
-
*/
|
|
38
|
-
set ariaRole(value) {
|
|
39
|
-
this.ariaRoleOrDefault = value || ARIA_ROLE_DEFAULT;
|
|
40
|
-
}
|
|
41
|
-
/**
|
|
42
|
-
* Used by the confirm component to set descriptive text without using a
|
|
43
|
-
* modal header.
|
|
44
|
-
* @internal
|
|
45
|
-
*/
|
|
46
|
-
set ariaDescribedBy(id) {
|
|
47
|
-
this.#_ariaDescribedBy = id;
|
|
48
|
-
}
|
|
49
|
-
get ariaDescribedBy() {
|
|
50
|
-
return this.#_ariaDescribedBy;
|
|
51
|
-
}
|
|
52
|
-
/**
|
|
53
|
-
* Used by the confirm component to set descriptive text without using a
|
|
54
|
-
* modal header.
|
|
55
|
-
* @internal
|
|
56
|
-
*/
|
|
57
|
-
set ariaLabelledBy(id) {
|
|
58
|
-
this.#_ariaLabelledBy = id;
|
|
59
|
-
}
|
|
60
|
-
get ariaLabelledBy() {
|
|
61
|
-
return this.#_ariaLabelledBy;
|
|
62
|
-
}
|
|
63
|
-
#ngUnsubscribe;
|
|
64
|
-
#_ariaDescribedBy;
|
|
65
|
-
#_ariaLabelledBy;
|
|
66
|
-
#changeDetector;
|
|
67
|
-
#componentAdapter;
|
|
68
|
-
#coreAdapter;
|
|
69
|
-
#dockService;
|
|
70
|
-
#elRef;
|
|
71
|
-
#errorsSvc;
|
|
72
|
-
#hostService;
|
|
73
|
-
#liveAnnouncerSvc;
|
|
74
|
-
/**
|
|
75
|
-
* This provider is optional to account for situations where a modal component
|
|
76
|
-
* is implemented without the modal service. For example, when a consumer tests
|
|
77
|
-
* a component that uses the modal component but doesn't launch the modal from
|
|
78
|
-
* the modal service before executing assertions.
|
|
79
|
-
*/
|
|
80
|
-
#config;
|
|
81
|
-
#themeSvc;
|
|
82
|
-
constructor() {
|
|
83
|
-
this.ariaRoleOrDefault = ARIA_ROLE_DEFAULT;
|
|
84
|
-
this.ariaOwns = null;
|
|
85
|
-
this.modalState = 'in';
|
|
86
|
-
this.scrollShadow = {
|
|
87
|
-
bottomShadow: 'none',
|
|
88
|
-
topShadow: 'none',
|
|
89
|
-
};
|
|
90
|
-
this.scrollShadowEnabled = false;
|
|
91
|
-
this.#ngUnsubscribe = new Subject();
|
|
92
|
-
this.#changeDetector = inject(ChangeDetectorRef);
|
|
93
|
-
this.#componentAdapter = inject(SkyModalComponentAdapterService);
|
|
94
|
-
this.#coreAdapter = inject(SkyCoreAdapterService);
|
|
95
|
-
this.#dockService = inject(SkyDockService, { host: true });
|
|
96
|
-
this.#elRef = inject(ElementRef);
|
|
97
|
-
this.#errorsSvc = inject(SkyModalErrorsService);
|
|
98
|
-
this.#hostService = inject(SkyModalHostService);
|
|
99
|
-
this.#liveAnnouncerSvc = inject(SkyLiveAnnouncerService);
|
|
100
|
-
/**
|
|
101
|
-
* This provider is optional to account for situations where a modal component
|
|
102
|
-
* is implemented without the modal service. For example, when a consumer tests
|
|
103
|
-
* a component that uses the modal component but doesn't launch the modal from
|
|
104
|
-
* the modal service before executing assertions.
|
|
105
|
-
*/
|
|
106
|
-
this.#config = inject(SkyModalConfiguration, { optional: true }) ??
|
|
107
|
-
new SkyModalConfiguration();
|
|
108
|
-
this.#themeSvc = inject(SkyThemeService, { optional: true });
|
|
109
|
-
this.ariaDescribedBy = this.#config.ariaDescribedBy;
|
|
110
|
-
this.ariaLabelledBy = this.#config.ariaLabelledBy;
|
|
111
|
-
this.ariaRole = this.#config.ariaRole;
|
|
112
|
-
this.legacyHelpKey = this.#config.helpKey;
|
|
113
|
-
this.tiledBody = this.#config.tiledBody;
|
|
114
|
-
this.wrapperClass = this.#config.wrapperClass;
|
|
115
|
-
this.size = this.#config.fullPage
|
|
116
|
-
? 'full-page'
|
|
117
|
-
: this.#config.size?.toLowerCase() || 'medium';
|
|
118
|
-
this.modalZIndex = this.#hostService.zIndex;
|
|
119
|
-
}
|
|
120
|
-
onDocumentKeyUp(event) {
|
|
121
|
-
/* istanbul ignore else */
|
|
122
|
-
/* sanity check */
|
|
123
|
-
if (SkyModalHostService.openModalCount > 0) {
|
|
124
|
-
const topModal = SkyModalHostService.topModal;
|
|
125
|
-
if (topModal && topModal === this.#hostService) {
|
|
126
|
-
if (event.which === 27) {
|
|
127
|
-
// Escape key up
|
|
128
|
-
event.preventDefault();
|
|
129
|
-
this.closeButtonClick();
|
|
130
|
-
}
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
|
-
onDocumentKeyDown(event) {
|
|
135
|
-
/* istanbul ignore else */
|
|
136
|
-
/* sanity check */
|
|
137
|
-
if (SkyModalHostService.openModalCount > 0) {
|
|
138
|
-
const topModal = SkyModalHostService.topModal;
|
|
139
|
-
if (topModal && topModal === this.#hostService) {
|
|
140
|
-
if (event.which === 9) {
|
|
141
|
-
// Tab pressed
|
|
142
|
-
let focusChanged = false;
|
|
143
|
-
const focusElementList = this.#coreAdapter.getFocusableChildren(this.#elRef.nativeElement);
|
|
144
|
-
if (event.shiftKey &&
|
|
145
|
-
(this.#componentAdapter.isFocusInFirstItem(event, focusElementList) ||
|
|
146
|
-
this.#componentAdapter.isModalFocused(event, this.#elRef))) {
|
|
147
|
-
focusChanged =
|
|
148
|
-
this.#componentAdapter.focusLastElement(focusElementList);
|
|
149
|
-
}
|
|
150
|
-
else if (!event.shiftKey &&
|
|
151
|
-
this.#componentAdapter.isFocusInLastItem(event, focusElementList)) {
|
|
152
|
-
focusChanged =
|
|
153
|
-
this.#componentAdapter.focusFirstElement(focusElementList);
|
|
154
|
-
}
|
|
155
|
-
if (focusChanged) {
|
|
156
|
-
event.preventDefault();
|
|
157
|
-
event.stopPropagation();
|
|
158
|
-
}
|
|
159
|
-
}
|
|
160
|
-
}
|
|
161
|
-
}
|
|
162
|
-
}
|
|
163
|
-
ngOnInit() {
|
|
164
|
-
this.#liveAnnouncerSvc.announcerElementChanged
|
|
165
|
-
.pipe(takeUntil(this.#ngUnsubscribe))
|
|
166
|
-
.subscribe((element) => {
|
|
167
|
-
if (element?.id) {
|
|
168
|
-
this.ariaOwns = element.id;
|
|
169
|
-
this.#changeDetector.markForCheck();
|
|
170
|
-
}
|
|
171
|
-
});
|
|
172
|
-
if (this.#themeSvc) {
|
|
173
|
-
this.#themeSvc.settingsChange
|
|
174
|
-
.pipe(takeUntil(this.#ngUnsubscribe))
|
|
175
|
-
.subscribe((themeSettings) => {
|
|
176
|
-
this.scrollShadowEnabled =
|
|
177
|
-
themeSettings.currentSettings.theme === SkyTheme.presets.modern;
|
|
178
|
-
});
|
|
179
|
-
}
|
|
180
|
-
}
|
|
181
|
-
ngAfterViewInit() {
|
|
182
|
-
this.#componentAdapter.handleWindowChange(this.#elRef);
|
|
183
|
-
this.#dockService.setDockOptions({
|
|
184
|
-
location: SkyDockLocation.ElementBottom,
|
|
185
|
-
referenceEl: this.modalContentWrapperElement.nativeElement,
|
|
186
|
-
zIndex: 5,
|
|
187
|
-
});
|
|
188
|
-
}
|
|
189
|
-
ngOnDestroy() {
|
|
190
|
-
this.#ngUnsubscribe.next();
|
|
191
|
-
this.#ngUnsubscribe.complete();
|
|
192
|
-
}
|
|
193
|
-
/**
|
|
194
|
-
* @deprecated
|
|
195
|
-
*/
|
|
196
|
-
helpButtonClick() {
|
|
197
|
-
if (this.legacyHelpKey) {
|
|
198
|
-
this.#hostService.onOpenHelp(this.legacyHelpKey);
|
|
199
|
-
}
|
|
200
|
-
}
|
|
201
|
-
closeButtonClick() {
|
|
202
|
-
this.#hostService.onClose();
|
|
203
|
-
}
|
|
204
|
-
windowResize() {
|
|
205
|
-
this.#componentAdapter.handleWindowChange(this.#elRef);
|
|
206
|
-
}
|
|
207
|
-
scrollShadowChange(args) {
|
|
208
|
-
this.scrollShadow = args;
|
|
209
|
-
}
|
|
210
|
-
viewkeeperEnabled() {
|
|
211
|
-
return this.#componentAdapter.modalContentHasDirectChildViewkeeper(this.#elRef);
|
|
212
|
-
}
|
|
213
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SkyModalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
214
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: SkyModalComponent, isStandalone: true, selector: "sky-modal", inputs: { formErrors: "formErrors", headingText: "headingText", helpKey: "helpKey", helpPopoverContent: "helpPopoverContent", helpPopoverTitle: "helpPopoverTitle", ariaRole: "ariaRole", tiledBody: "tiledBody", ariaDescribedBy: "ariaDescribedBy", ariaLabelledBy: "ariaLabelledBy" }, host: { listeners: { "document:keyup": "onDocumentKeyUp($event)", "document:keydown": "onDocumentKeyDown($event)" }, properties: { "class": "this.wrapperClass" } }, providers: [
|
|
215
|
-
SkyModalComponentAdapterService,
|
|
216
|
-
SkyModalErrorsService,
|
|
217
|
-
SkyDockService,
|
|
218
|
-
], viewQueries: [{ propertyName: "modalContentWrapperElement", first: true, predicate: ["modalContentWrapper"], descendants: true, read: ElementRef }], ngImport: i0, template: "<div\n class=\"sky-modal-dialog\"\n aria-modal=\"true\"\n [attr.aria-describedby]=\"ariaDescribedBy || modalContentId.id\"\n [attr.aria-labelledby]=\"ariaLabelledBy || headerId.id\"\n [attr.aria-owns]=\"ariaOwns\"\n [attr.role]=\"ariaRoleOrDefault\"\n (window:resize)=\"windowResize()\"\n>\n <div\n tabindex=\"-1\"\n class=\"sky-modal sky-shadow sky-box sky-elevation-16 sky-modal-{{ size }}\"\n [ngClass]=\"{\n 'sky-modal-tiled': tiledBody,\n 'sky-modal-viewkeeper': viewkeeperEnabled()\n }\"\n [ngStyle]=\"{\n zIndex: modalZIndex\n }\"\n >\n <div\n class=\"sky-modal-header\"\n [ngStyle]=\"{\n 'box-shadow': scrollShadow?.topShadow\n }\"\n >\n <div\n #headerId=\"skyId\"\n class=\"sky-modal-header-content\"\n skyId\n [ngClass]=\"{\n 'sky-font-heading-2': size === 'full-page'\n }\"\n >\n @if (headingText) {\n <sky-modal-header>\n {{ headingText }}\n @if (helpKey || helpPopoverContent) {\n <sky-help-inline\n class=\"sky-control-help\"\n [helpKey]=\"helpKey\"\n [labelText]=\"headingText\"\n [popoverContent]=\"helpPopoverContent\"\n [popoverTitle]=\"helpPopoverTitle\"\n />\n }\n </sky-modal-header>\n } @else {\n <ng-content select=\"sky-modal-header\" />\n }\n </div>\n <div class=\"sky-modal-header-buttons\">\n @if (legacyHelpKey) {\n <button\n class=\"sky-btn sky-modal-btn-help\"\n name=\"help-button\"\n type=\"button\"\n [attr.aria-label]=\"'skyux_modal_open_help' | skyLibResources\"\n (click)=\"helpButtonClick()\"\n >\n <sky-icon icon=\"question-circle\" />\n </button>\n }\n\n <button\n type=\"button\"\n class=\"sky-btn sky-modal-btn-close\"\n [attr.aria-label]=\"'skyux_modal_close' | skyLibResources\"\n (click)=\"closeButtonClick()\"\n >\n <sky-icon icon=\"close\" />\n </button>\n </div>\n </div>\n <div\n #modalContentId=\"skyId\"\n #modalContentWrapper\n class=\"sky-modal-content sky-padding-even-large\"\n role=\"region\"\n tabindex=\"0\"\n skyId\n [attr.aria-labelledby]=\"headerId.id\"\n [skyScrollShadowEnabled]=\"scrollShadowEnabled\"\n (skyScrollShadow)=\"scrollShadowChange($event)\"\n >\n <ng-content select=\"sky-modal-content\" />\n </div>\n <div\n class=\"sky-modal-footer\"\n [ngStyle]=\"{\n 'box-shadow': scrollShadow?.bottomShadow\n }\"\n >\n <ng-content select=\"sky-modal-footer\" />\n </div>\n </div>\n</div>\n", styles: [".sky-modal{border-top:1px solid #cdcfd2;border-bottom:1px solid #cdcfd2;border-left:1px solid #cdcfd2;border-right:1px solid #cdcfd2;position:fixed;width:auto;left:0;right:0;top:20px;margin:10px;display:flex;flex-direction:column;overflow:hidden}.sky-modal:focus{outline:none}.sky-modal-header:has(.sky-modal-header-content:empty){display:none}@media (min-width: 768px){.sky-modal:not(.sky-modal-large){margin:0 auto}.sky-modal-small{width:300px}.sky-modal-small .sky-modal-content,.sky-modal-small .sky-modal-header,.sky-modal-small .sky-modal-footer{max-width:300px}.sky-modal-medium{width:600px}.sky-modal-medium .sky-modal-content,.sky-modal-medium .sky-modal-header,.sky-modal-medium .sky-modal-footer{max-width:600px}}@media (min-width: 920px){.sky-modal-large{margin:0 auto;width:900px}.sky-modal-large .sky-modal-content,.sky-modal-large .sky-modal-header,.sky-modal-large .sky-modal-footer{max-width:900px}}.sky-modal-content{background-color:#fff;--sky-background-color-page-default: #fff}.sky-modal-content:focus{outline-style:dotted;outline-width:thin;outline-offset:-1px}.sky-modal-tiled .sky-modal-content{background-color:#eeeeef;--sky-background-color-page-default: $sky-background-color-neutral-light}.sky-modal-tiled .sky-modal-content ::ng-deep .sky-tile-title{font-family:BLKB Sans,Helvetica Neue,Arial,sans-serif;color:var(--sky-text-color-deemphasized);font-weight:300;font-size:19px}.sky-modal-header{padding:9px 3px 9px 15px;background-color:#fff;display:flex;align-items:baseline;border-bottom:1px solid #e2e3e4}.sky-modal-header-buttons{flex-shrink:.0001}.sky-modal-header-buttons .sky-btn{border:none;color:#cdcfd2;cursor:pointer}.sky-modal-header-buttons .sky-btn:hover{color:#979ba2;transition:color .15s}.sky-modal-header-content{flex-grow:1}.sky-modal-header{flex-shrink:0;z-index:2}.sky-modal-content{overflow-y:auto}.sky-modal-footer{flex-shrink:0;z-index:2}.sky-modal-full-page{width:100%;top:0;margin:0}.sky-modal-full-page .sky-modal-header-buttons sky-icon[icon=close]{font-size:20px}.sky-modal-full-page .sky-modal-content{flex-grow:1}.sky-modal-content>::ng-deep sky-dock{bottom:-15px;margin-left:-15px;margin-bottom:-15px;padding-top:15px;width:calc(100% + 30px)}:host-context(.sky-theme-modern) .sky-modal-header{border:none;padding:20px 30px}:host-context(.sky-theme-modern) .sky-modal-btn-help,:host-context(.sky-theme-modern) .sky-modal-btn-close{display:none}:host-context(.sky-theme-modern) .sky-modal-content{padding:0}:host-context(.sky-theme-modern) .sky-modal-full-page{width:calc(100% - 60px);margin:30px}:host-context(.sky-theme-modern) .sky-modal-content>::ng-deep sky-dock{bottom:0;margin-left:initial;margin-bottom:initial;padding-top:initial;width:100%}:host-context(.sky-theme-modern) .sky-modal-viewkeeper .sky-modal-header{box-shadow:none!important}:host-context(.sky-theme-modern) .sky-modal-viewkeeper .sky-modal-content ::ng-deep sky-modal-content>.sky-viewkeeper-fixed{box-shadow:0 4px 8px -4px #0000004d}:host-context(.sky-theme-modern) .sky-modal-viewkeeper .sky-modal-content ::ng-deep sky-modal-content>.sky-viewkeeper-fixed>sky-toolbar .sky-toolbar-container{background-color:#fff;--sky-background-color-page-default: #fff;padding-left:30px;padding-right:30px}.sky-theme-modern .sky-modal-header{border:none;padding:20px 30px}.sky-theme-modern .sky-modal-btn-help,.sky-theme-modern .sky-modal-btn-close{display:none}.sky-theme-modern .sky-modal-content{padding:0}.sky-theme-modern .sky-modal-full-page{width:calc(100% - 60px);margin:30px}.sky-theme-modern .sky-modal-content>::ng-deep sky-dock{bottom:0;margin-left:initial;margin-bottom:initial;padding-top:initial;width:100%}.sky-theme-modern .sky-modal-viewkeeper .sky-modal-header{box-shadow:none!important}.sky-theme-modern .sky-modal-viewkeeper .sky-modal-content ::ng-deep sky-modal-content>.sky-viewkeeper-fixed{box-shadow:0 4px 8px -4px #0000004d}.sky-theme-modern .sky-modal-viewkeeper .sky-modal-content ::ng-deep sky-modal-content>.sky-viewkeeper-fixed>sky-toolbar .sky-toolbar-container{background-color:#fff;--sky-background-color-page-default: #fff;padding-left:30px;padding-right:30px}:host-context(.sky-theme-modern.sky-theme-mode-dark) .sky-modal{border-color:#121212}:host-context(.sky-theme-modern.sky-theme-mode-dark) .sky-modal-header{color:#fbfcfe}:host-context(.sky-theme-modern.sky-theme-mode-dark) .sky-modal-header,:host-context(.sky-theme-modern.sky-theme-mode-dark) .sky-modal-content{background-color:transparent;--sky-background-color-page-default: $sky-theme-modern-mode-dark-background-color-page-default}.sky-theme-modern.sky-theme-mode-dark .sky-modal{border-color:#121212}.sky-theme-modern.sky-theme-mode-dark .sky-modal-header{color:#fbfcfe}.sky-theme-modern.sky-theme-mode-dark .sky-modal-header,.sky-theme-modern.sky-theme-mode-dark .sky-modal-content{background-color:transparent;--sky-background-color-page-default: $sky-theme-modern-mode-dark-background-color-page-default}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: SkyHelpInlineModule }, { kind: "component", type: i2.λ1, selector: "sky-help-inline", inputs: ["ariaControls", "ariaExpanded", "ariaLabel", "helpKey", "labelledBy", "labelText", "popoverContent", "popoverTitle"], outputs: ["actionClick"] }, { kind: "ngmodule", type: SkyIconModule }, { kind: "component", type: i3.λ1, selector: "sky-icon", inputs: ["icon", "iconName", "iconType", "size", "fixedWidth", "variant"] }, { kind: "ngmodule", type: SkyIdModule }, { kind: "directive", type: i4.λ2, selector: "[skyId]", exportAs: ["skyId"] }, { kind: "component", type: SkyModalHeaderComponent, selector: "sky-modal-header" }, { kind: "directive", type: SkyScrollShadowDirective, selector: "[skyScrollShadow]", inputs: ["skyScrollShadowEnabled"], outputs: ["skyScrollShadow"] }, { kind: "ngmodule", type: SkyModalsResourcesModule }, { kind: "pipe", type: i5.SkyLibResourcesPipe, name: "skyLibResources" }] }); }
|
|
219
|
-
}
|
|
220
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SkyModalComponent, decorators: [{
|
|
221
|
-
type: Component,
|
|
222
|
-
args: [{ standalone: true, selector: 'sky-modal', providers: [
|
|
223
|
-
SkyModalComponentAdapterService,
|
|
224
|
-
SkyModalErrorsService,
|
|
225
|
-
SkyDockService,
|
|
226
|
-
], imports: [
|
|
227
|
-
CommonModule,
|
|
228
|
-
SkyHelpInlineModule,
|
|
229
|
-
SkyIconModule,
|
|
230
|
-
SkyIdModule,
|
|
231
|
-
SkyModalHeaderComponent,
|
|
232
|
-
SkyScrollShadowDirective,
|
|
233
|
-
SkyModalsResourcesModule,
|
|
234
|
-
], template: "<div\n class=\"sky-modal-dialog\"\n aria-modal=\"true\"\n [attr.aria-describedby]=\"ariaDescribedBy || modalContentId.id\"\n [attr.aria-labelledby]=\"ariaLabelledBy || headerId.id\"\n [attr.aria-owns]=\"ariaOwns\"\n [attr.role]=\"ariaRoleOrDefault\"\n (window:resize)=\"windowResize()\"\n>\n <div\n tabindex=\"-1\"\n class=\"sky-modal sky-shadow sky-box sky-elevation-16 sky-modal-{{ size }}\"\n [ngClass]=\"{\n 'sky-modal-tiled': tiledBody,\n 'sky-modal-viewkeeper': viewkeeperEnabled()\n }\"\n [ngStyle]=\"{\n zIndex: modalZIndex\n }\"\n >\n <div\n class=\"sky-modal-header\"\n [ngStyle]=\"{\n 'box-shadow': scrollShadow?.topShadow\n }\"\n >\n <div\n #headerId=\"skyId\"\n class=\"sky-modal-header-content\"\n skyId\n [ngClass]=\"{\n 'sky-font-heading-2': size === 'full-page'\n }\"\n >\n @if (headingText) {\n <sky-modal-header>\n {{ headingText }}\n @if (helpKey || helpPopoverContent) {\n <sky-help-inline\n class=\"sky-control-help\"\n [helpKey]=\"helpKey\"\n [labelText]=\"headingText\"\n [popoverContent]=\"helpPopoverContent\"\n [popoverTitle]=\"helpPopoverTitle\"\n />\n }\n </sky-modal-header>\n } @else {\n <ng-content select=\"sky-modal-header\" />\n }\n </div>\n <div class=\"sky-modal-header-buttons\">\n @if (legacyHelpKey) {\n <button\n class=\"sky-btn sky-modal-btn-help\"\n name=\"help-button\"\n type=\"button\"\n [attr.aria-label]=\"'skyux_modal_open_help' | skyLibResources\"\n (click)=\"helpButtonClick()\"\n >\n <sky-icon icon=\"question-circle\" />\n </button>\n }\n\n <button\n type=\"button\"\n class=\"sky-btn sky-modal-btn-close\"\n [attr.aria-label]=\"'skyux_modal_close' | skyLibResources\"\n (click)=\"closeButtonClick()\"\n >\n <sky-icon icon=\"close\" />\n </button>\n </div>\n </div>\n <div\n #modalContentId=\"skyId\"\n #modalContentWrapper\n class=\"sky-modal-content sky-padding-even-large\"\n role=\"region\"\n tabindex=\"0\"\n skyId\n [attr.aria-labelledby]=\"headerId.id\"\n [skyScrollShadowEnabled]=\"scrollShadowEnabled\"\n (skyScrollShadow)=\"scrollShadowChange($event)\"\n >\n <ng-content select=\"sky-modal-content\" />\n </div>\n <div\n class=\"sky-modal-footer\"\n [ngStyle]=\"{\n 'box-shadow': scrollShadow?.bottomShadow\n }\"\n >\n <ng-content select=\"sky-modal-footer\" />\n </div>\n </div>\n</div>\n", styles: [".sky-modal{border-top:1px solid #cdcfd2;border-bottom:1px solid #cdcfd2;border-left:1px solid #cdcfd2;border-right:1px solid #cdcfd2;position:fixed;width:auto;left:0;right:0;top:20px;margin:10px;display:flex;flex-direction:column;overflow:hidden}.sky-modal:focus{outline:none}.sky-modal-header:has(.sky-modal-header-content:empty){display:none}@media (min-width: 768px){.sky-modal:not(.sky-modal-large){margin:0 auto}.sky-modal-small{width:300px}.sky-modal-small .sky-modal-content,.sky-modal-small .sky-modal-header,.sky-modal-small .sky-modal-footer{max-width:300px}.sky-modal-medium{width:600px}.sky-modal-medium .sky-modal-content,.sky-modal-medium .sky-modal-header,.sky-modal-medium .sky-modal-footer{max-width:600px}}@media (min-width: 920px){.sky-modal-large{margin:0 auto;width:900px}.sky-modal-large .sky-modal-content,.sky-modal-large .sky-modal-header,.sky-modal-large .sky-modal-footer{max-width:900px}}.sky-modal-content{background-color:#fff;--sky-background-color-page-default: #fff}.sky-modal-content:focus{outline-style:dotted;outline-width:thin;outline-offset:-1px}.sky-modal-tiled .sky-modal-content{background-color:#eeeeef;--sky-background-color-page-default: $sky-background-color-neutral-light}.sky-modal-tiled .sky-modal-content ::ng-deep .sky-tile-title{font-family:BLKB Sans,Helvetica Neue,Arial,sans-serif;color:var(--sky-text-color-deemphasized);font-weight:300;font-size:19px}.sky-modal-header{padding:9px 3px 9px 15px;background-color:#fff;display:flex;align-items:baseline;border-bottom:1px solid #e2e3e4}.sky-modal-header-buttons{flex-shrink:.0001}.sky-modal-header-buttons .sky-btn{border:none;color:#cdcfd2;cursor:pointer}.sky-modal-header-buttons .sky-btn:hover{color:#979ba2;transition:color .15s}.sky-modal-header-content{flex-grow:1}.sky-modal-header{flex-shrink:0;z-index:2}.sky-modal-content{overflow-y:auto}.sky-modal-footer{flex-shrink:0;z-index:2}.sky-modal-full-page{width:100%;top:0;margin:0}.sky-modal-full-page .sky-modal-header-buttons sky-icon[icon=close]{font-size:20px}.sky-modal-full-page .sky-modal-content{flex-grow:1}.sky-modal-content>::ng-deep sky-dock{bottom:-15px;margin-left:-15px;margin-bottom:-15px;padding-top:15px;width:calc(100% + 30px)}:host-context(.sky-theme-modern) .sky-modal-header{border:none;padding:20px 30px}:host-context(.sky-theme-modern) .sky-modal-btn-help,:host-context(.sky-theme-modern) .sky-modal-btn-close{display:none}:host-context(.sky-theme-modern) .sky-modal-content{padding:0}:host-context(.sky-theme-modern) .sky-modal-full-page{width:calc(100% - 60px);margin:30px}:host-context(.sky-theme-modern) .sky-modal-content>::ng-deep sky-dock{bottom:0;margin-left:initial;margin-bottom:initial;padding-top:initial;width:100%}:host-context(.sky-theme-modern) .sky-modal-viewkeeper .sky-modal-header{box-shadow:none!important}:host-context(.sky-theme-modern) .sky-modal-viewkeeper .sky-modal-content ::ng-deep sky-modal-content>.sky-viewkeeper-fixed{box-shadow:0 4px 8px -4px #0000004d}:host-context(.sky-theme-modern) .sky-modal-viewkeeper .sky-modal-content ::ng-deep sky-modal-content>.sky-viewkeeper-fixed>sky-toolbar .sky-toolbar-container{background-color:#fff;--sky-background-color-page-default: #fff;padding-left:30px;padding-right:30px}.sky-theme-modern .sky-modal-header{border:none;padding:20px 30px}.sky-theme-modern .sky-modal-btn-help,.sky-theme-modern .sky-modal-btn-close{display:none}.sky-theme-modern .sky-modal-content{padding:0}.sky-theme-modern .sky-modal-full-page{width:calc(100% - 60px);margin:30px}.sky-theme-modern .sky-modal-content>::ng-deep sky-dock{bottom:0;margin-left:initial;margin-bottom:initial;padding-top:initial;width:100%}.sky-theme-modern .sky-modal-viewkeeper .sky-modal-header{box-shadow:none!important}.sky-theme-modern .sky-modal-viewkeeper .sky-modal-content ::ng-deep sky-modal-content>.sky-viewkeeper-fixed{box-shadow:0 4px 8px -4px #0000004d}.sky-theme-modern .sky-modal-viewkeeper .sky-modal-content ::ng-deep sky-modal-content>.sky-viewkeeper-fixed>sky-toolbar .sky-toolbar-container{background-color:#fff;--sky-background-color-page-default: #fff;padding-left:30px;padding-right:30px}:host-context(.sky-theme-modern.sky-theme-mode-dark) .sky-modal{border-color:#121212}:host-context(.sky-theme-modern.sky-theme-mode-dark) .sky-modal-header{color:#fbfcfe}:host-context(.sky-theme-modern.sky-theme-mode-dark) .sky-modal-header,:host-context(.sky-theme-modern.sky-theme-mode-dark) .sky-modal-content{background-color:transparent;--sky-background-color-page-default: $sky-theme-modern-mode-dark-background-color-page-default}.sky-theme-modern.sky-theme-mode-dark .sky-modal{border-color:#121212}.sky-theme-modern.sky-theme-mode-dark .sky-modal-header{color:#fbfcfe}.sky-theme-modern.sky-theme-mode-dark .sky-modal-header,.sky-theme-modern.sky-theme-mode-dark .sky-modal-content{background-color:transparent;--sky-background-color-page-default: $sky-theme-modern-mode-dark-background-color-page-default}\n"] }]
|
|
235
|
-
}], ctorParameters: () => [], propDecorators: { wrapperClass: [{
|
|
236
|
-
type: HostBinding,
|
|
237
|
-
args: ['class']
|
|
238
|
-
}], formErrors: [{
|
|
239
|
-
type: Input
|
|
240
|
-
}], headingText: [{
|
|
241
|
-
type: Input
|
|
242
|
-
}], helpKey: [{
|
|
243
|
-
type: Input
|
|
244
|
-
}], helpPopoverContent: [{
|
|
245
|
-
type: Input
|
|
246
|
-
}], helpPopoverTitle: [{
|
|
247
|
-
type: Input
|
|
248
|
-
}], ariaRole: [{
|
|
249
|
-
type: Input
|
|
250
|
-
}], tiledBody: [{
|
|
251
|
-
type: Input
|
|
252
|
-
}], ariaDescribedBy: [{
|
|
253
|
-
type: Input
|
|
254
|
-
}], ariaLabelledBy: [{
|
|
255
|
-
type: Input
|
|
256
|
-
}], modalContentWrapperElement: [{
|
|
257
|
-
type: ViewChild,
|
|
258
|
-
args: ['modalContentWrapper', { read: ElementRef }]
|
|
259
|
-
}], onDocumentKeyUp: [{
|
|
260
|
-
type: HostListener,
|
|
261
|
-
args: ['document:keyup', ['$event']]
|
|
262
|
-
}], onDocumentKeyDown: [{
|
|
263
|
-
type: HostListener,
|
|
264
|
-
args: ['document:keydown', ['$event']]
|
|
265
|
-
}] } });
|
|
266
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL21vZGFscy9zcmMvbGliL21vZHVsZXMvbW9kYWwvbW9kYWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL21vZGFscy9zcmMvbGliL21vZHVsZXMvbW9kYWwvbW9kYWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFFTCxpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixXQUFXLEVBQ1gsWUFBWSxFQUNaLEtBQUssRUFJTCxTQUFTLEVBQ1QsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDTCxxQkFBcUIsRUFDckIsZUFBZSxFQUNmLGNBQWMsRUFDZCxXQUFXLEVBQ1gsdUJBQXVCLEVBQ3ZCLHdCQUF3QixHQUV6QixNQUFNLGFBQWEsQ0FBQztBQUNyQixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxRQUFRLEVBQUUsZUFBZSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRXpELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTNDLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBRWpGLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRTlELE9BQU8sRUFB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Z0JBU0MsV0FBVztzQkFEakIsS0FBSztnQkFRQyxPQUFPO3NCQURiLEtBQUs7Z0JBU0Msa0JBQWtCO3NCQUR4QixLQUFLO2dCQVFDLGdCQUFnQjtzQkFEdEIsS0FBSztnQkFRSyxRQUFRO3NCQURsQixLQUFLO2dCQVlDLFNBQVM7c0JBRGYsS0FBSztnQkFTSyxlQUFlO3NCQUR6QixLQUFLO2dCQWVLLGNBQWM7c0JBRHhCLEtBQUs7Z0JBNEJDLDBCQUEwQjtzQkFEaEMsU0FBUzt1QkFBQyxxQkFBcUIsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUU7Z0JBOEMvQyxlQUFlO3NCQURyQixZQUFZO3VCQUFDLGdCQUFnQixFQUFFLENBQUMsUUFBUSxDQUFDO2dCQWlCbkMsaUJBQWlCO3NCQUR2QixZQUFZO3VCQUFDLGtCQUFrQixFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEhvc3RCaW5kaW5nLFxuICBIb3N0TGlzdGVuZXIsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDaGlsZCxcbiAgaW5qZWN0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIFNreUNvcmVBZGFwdGVyU2VydmljZSxcbiAgU2t5RG9ja0xvY2F0aW9uLFxuICBTa3lEb2NrU2VydmljZSxcbiAgU2t5SWRNb2R1bGUsXG4gIFNreUxpdmVBbm5vdW5jZXJTZXJ2aWNlLFxuICBTa3lTY3JvbGxTaGFkb3dEaXJlY3RpdmUsXG4gIFNreVNjcm9sbFNoYWRvd0V2ZW50QXJncyxcbn0gZnJvbSAnQHNreXV4L2NvcmUnO1xuaW1wb3J0IHsgU2t5SGVscElubGluZU1vZHVsZSB9IGZyb20gJ0Bza3l1eC9oZWxwLWlubGluZSc7XG5pbXBvcnQgeyBTa3lJY29uTW9kdWxlIH0gZnJvbSAnQHNreXV4L2ljb24nO1xuaW1wb3J0IHsgU2t5VGhlbWUsIFNreVRoZW1lU2VydmljZSB9IGZyb20gJ0Bza3l1eC90aGVtZSc7XG5cbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgU2t5TW9kYWxzUmVzb3VyY2VzTW9kdWxlIH0gZnJvbSAnLi4vc2hhcmVkL3NreS1tb2RhbHMtcmVzb3VyY2VzLm1vZHVsZSc7XG5cbmltcG9ydCB7IFNreU1vZGFsQ29tcG9uZW50QWRhcHRlclNlcnZpY2UgfSBmcm9tICcuL21vZGFsLWNvbXBvbmVudC1hZGFwdGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2t5TW9kYWxDb25maWd1cmF0aW9uIH0gZnJvbSAnLi9tb2RhbC1jb25maWd1cmF0aW9uJztcbmltcG9ydCB7IFNreU1vZGFsRXJyb3IgfSBmcm9tICcuL21vZGFsLWVycm9yJztcbmltcG9ydCB7IFNreU1vZGFsRXJyb3JzU2VydmljZSB9IGZyb20gJy4vbW9kYWwtZXJyb3JzLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2t5TW9kYWxIZWFkZXJDb21wb25lbnQgfSBmcm9tICcuL21vZGFsLWhlYWRlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2t5TW9kYWxIb3N0U2VydmljZSB9IGZyb20gJy4vbW9kYWwtaG9zdC5zZXJ2aWNlJztcblxuY29uc3QgQVJJQV9ST0xFX0RFRkFVTFQgPSAnZGlhbG9nJztcblxuLyoqXG4gKiBQcm92aWRlcyBhIGNvbW1vbiBsb29rLWFuZC1mZWVsIGZvciBtb2RhbCBjb250ZW50IHdpdGggb3B0aW9ucyB0byBkaXNwbGF5XG4gKiBhIGNvbW1vbiBtb2RhbCBoZWFkZXIsIHNwZWNpZnkgYm9keSBjb250ZW50LCBhbmQgZGlzcGxheSBhIGNvbW1vbiBtb2RhbCBmb290ZXJcbiAqIGFuZCBidXR0b25zLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgc2VsZWN0b3I6ICdza3ktbW9kYWwnLFxuICB0ZW1wbGF0ZVVybDogJy4vbW9kYWwuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9tb2RhbC5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IFtcbiAgICBTa3lNb2RhbENvbXBvbmVudEFkYXB0ZXJTZXJ2aWNlLFxuICAgIFNreU1vZGFsRXJyb3JzU2VydmljZSxcbiAgICBTa3lEb2NrU2VydmljZSxcbiAgXSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBTa3lIZWxwSW5saW5lTW9kdWxlLFxuICAgIFNreUljb25Nb2R1bGUsXG4gICAgU2t5SWRNb2R1bGUsXG4gICAgU2t5TW9kYWxIZWFkZXJDb21wb25lbnQsXG4gICAgU2t5U2Nyb2xsU2hhZG93RGlyZWN0aXZlLFxuICAgIFNreU1vZGFsc1Jlc291cmNlc01vZHVsZSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5TW9kYWxDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3ksIE9uSW5pdCB7XG4gIEBIb3N0QmluZGluZygnY2xhc3MnKVxuICBwdWJsaWMgd3JhcHBlckNsYXNzOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIEEgbGlzdCBvZiBmb3JtLWxldmVsIGVycm9ycyB0byBkaXNwbGF5IHRvIHRoZSB1c2VyLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBmb3JtRXJyb3JzKHZhbHVlOiBTa3lNb2RhbEVycm9yW10gfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLiNlcnJvcnNTdmMudXBkYXRlRXJyb3JzKHZhbHVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgdGV4dCB0byBkaXNwbGF5IGFzIHRoZSBtb2RhbCdzIGhlYWRpbmcuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgaGVhZGluZ1RleHQ6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogQSBoZWxwIGtleSB0aGF0IGlkZW50aWZpZXMgdGhlIGdsb2JhbCBoZWxwIGNvbnRlbnQgdG8gZGlzcGxheS4gV2hlbiBzcGVjaWZpZWQgYWxvbmcgd2l0aCBgaGVhZGluZ1RleHRgLCBhIFtoZWxwIGlubGluZV0oaHR0cHM6Ly9kZXZlbG9wZXIuYmxhY2tiYXVkLmNvbS9za3l1eC9jb21wb25lbnRzL2hlbHAtaW5saW5lKSBidXR0b24gaXNcbiAgICogYWRkZWQgdG8gdGhlIG1vZGFsIGhlYWRlci4gQ2xpY2tpbmcgdGhlIGJ1dHRvbiBpbnZva2VzIGdsb2JhbCBoZWxwIGFzIGNvbmZpZ3VyZWQgYnkgdGhlIGFwcGxpY2F0aW9uLiBUaGlzIHByb3BlcnR5IG9ubHkgYXBwbGllcyB3aGVuIGBoZWFkaW5nVGV4dGAgaXMgYWxzbyBzcGVjaWZpZWQuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgaGVscEtleTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBUaGUgY29udGVudCBvZiB0aGUgaGVscCBwb3BvdmVyLiBXaGVuIHNwZWNpZmllZCBhbG9uZyB3aXRoIGBoZWFkaW5nVGV4dGAsIGEgW2hlbHAgaW5saW5lXShodHRwczovL2RldmVsb3Blci5ibGFja2JhdWQuY29tL3NreXV4L2NvbXBvbmVudHMvaGVscC1pbmxpbmUpXG4gICAqIGJ1dHRvbiBpcyBhZGRlZCB0byB0aGUgbW9kYWwgaGVhZGVyLiBUaGUgaGVscCBpbmxpbmUgYnV0dG9uIGRpc3BsYXlzIGEgW3BvcG92ZXJdKGh0dHBzOi8vZGV2ZWxvcGVyLmJsYWNrYmF1ZC5jb20vc2t5dXgvY29tcG9uZW50cy9wb3BvdmVyKVxuICAgKiB3aGVuIGNsaWNrZWQgdXNpbmcgdGhlIHNwZWNpZmllZCBjb250ZW50IGFuZCBvcHRpb25hbCB0aXRsZS4gVGhpcyBwcm9wZXJ0eSBvbmx5IGFwcGxpZXMgd2hlbiBgaGVhZGluZ1RleHRgIGlzIGFsc28gc3BlY2lmaWVkLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGhlbHBQb3BvdmVyQ29udGVudDogc3RyaW5nIHwgVGVtcGxhdGVSZWY8dW5rbm93bj4gfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFRoZSB0aXRsZSBvZiB0aGUgaGVscCBwb3BvdmVyLiBUaGlzIHByb3BlcnR5IG9ubHkgYXBwbGllcyB3aGVuIGBoZWxwUG9wb3ZlckNvbnRlbnRgIGlzXG4gICAqIGFsc28gc3BlY2lmaWVkLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGhlbHBQb3BvdmVyVGl0bGU6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogVXNlZCBieSB0aGUgY29uZmlybSBjb21wb25lbnQgdG8gc2V0IGEgZGlmZmVyZW50IHJvbGUgZm9yIHRoZSBtb2RhbC5cbiAgICogQGludGVybmFsXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGFyaWFSb2xlKHZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLmFyaWFSb2xlT3JEZWZhdWx0ID0gdmFsdWUgfHwgQVJJQV9ST0xFX0RFRkFVTFQ7XG4gIH1cblxuICBwdWJsaWMgYXJpYVJvbGVPckRlZmF1bHQgPSBBUklBX1JPTEVfREVGQVVMVDtcblxuICAvKipcbiAgICogQGludGVybmFsXG4gICAqIEBkZXByZWNhdGVkXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgdGlsZWRCb2R5OiBib29sZWFuIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBVc2VkIGJ5IHRoZSBjb25maXJtIGNvbXBvbmVudCB0byBzZXQgZGVzY3JpcHRpdmUgdGV4dCB3aXRob3V0IHVzaW5nIGFcbiAgICogbW9kYWwgaGVhZGVyLlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgYXJpYURlc2NyaWJlZEJ5KGlkOiBzdHJpbmcgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLiNfYXJpYURlc2NyaWJlZEJ5ID0gaWQ7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGFyaWFEZXNjcmliZWRCeSgpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLiNfYXJpYURlc2NyaWJlZEJ5O1xuICB9XG5cbiAgLyoqXG4gICAqIFVzZWQgYnkgdGhlIGNvbmZpcm0gY29tcG9uZW50IHRvIHNldCBkZXNjcmlwdGl2ZSB0ZXh0IHdpdGhvdXQgdXNpbmcgYVxuICAgKiBtb2RhbCBoZWFkZXIuXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBhcmlhTGFiZWxsZWRCeShpZDogc3RyaW5nIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy4jX2FyaWFMYWJlbGxlZEJ5ID0gaWQ7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGFyaWFMYWJlbGxlZEJ5KCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuI19hcmlhTGFiZWxsZWRCeTtcbiAgfVxuXG4gIHB1YmxpYyBhcmlhT3duczogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkXG4gICAqL1xuICBwdWJsaWMgbGVnYWN5SGVscEtleTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIHB1YmxpYyBtb2RhbFN0YXRlID0gJ2luJztcblxuICBwdWJsaWMgbW9kYWxaSW5kZXg6IG51bWJlciB8IHVuZGVmaW5lZDtcblxuICBwdWJsaWMgc2Nyb2xsU2hhZG93OiBTa3lTY3JvbGxTaGFkb3dFdmVudEFyZ3MgPSB7XG4gICAgYm90dG9tU2hhZG93OiAnbm9uZScsXG4gICAgdG9wU2hhZG93OiAnbm9uZScsXG4gIH07XG5cbiAgcHVibGljIHNpemU6IHN0cmluZztcblxuICBAVmlld0NoaWxkKCdtb2RhbENvbnRlbnRXcmFwcGVyJywgeyByZWFkOiBFbGVtZW50UmVmIH0pXG4gIHB1YmxpYyBtb2RhbENvbnRlbnRXcmFwcGVyRWxlbWVudDogRWxlbWVudFJlZiB8IHVuZGVmaW5lZDtcblxuICBwcm90ZWN0ZWQgc2Nyb2xsU2hhZG93RW5hYmxlZCA9IGZhbHNlO1xuXG4gICNuZ1Vuc3Vic2NyaWJlID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAjX2FyaWFEZXNjcmliZWRCeTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAjX2FyaWFMYWJlbGxlZEJ5OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgcmVhZG9ubHkgI2NoYW5nZURldGVjdG9yID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcbiAgcmVhZG9ubHkgI2NvbXBvbmVudEFkYXB0ZXIgPSBpbmplY3QoU2t5TW9kYWxDb21wb25lbnRBZGFwdGVyU2VydmljZSk7XG4gIHJlYWRvbmx5ICNjb3JlQWRhcHRlciA9IGluamVjdChTa3lDb3JlQWRhcHRlclNlcnZpY2UpO1xuICByZWFkb25seSAjZG9ja1NlcnZpY2UgPSBpbmplY3QoU2t5RG9ja1NlcnZpY2UsIHsgaG9zdDogdHJ1ZSB9KTtcbiAgcmVhZG9ubHkgI2VsUmVmID0gaW5qZWN0KEVsZW1lbnRSZWYpO1xuICByZWFkb25seSAjZXJyb3JzU3ZjID0gaW5qZWN0KFNreU1vZGFsRXJyb3JzU2VydmljZSk7XG4gIHJlYWRvbmx5ICNob3N0U2VydmljZSA9IGluamVjdChTa3lNb2RhbEhvc3RTZXJ2aWNlKTtcbiAgcmVhZG9ubHkgI2xpdmVBbm5vdW5jZXJTdmMgPSBpbmplY3QoU2t5TGl2ZUFubm91bmNlclNlcnZpY2UpO1xuXG4gIC8qKlxuICAgKiBUaGlzIHByb3ZpZGVyIGlzIG9wdGlvbmFsIHRvIGFjY291bnQgZm9yIHNpdHVhdGlvbnMgd2hlcmUgYSBtb2RhbCBjb21wb25lbnRcbiAgICogaXMgaW1wbGVtZW50ZWQgd2l0aG91dCB0aGUgbW9kYWwgc2VydmljZS4gRm9yIGV4YW1wbGUsIHdoZW4gYSBjb25zdW1lciB0ZXN0c1xuICAgKiBhIGNvbXBvbmVudCB0aGF0IHVzZXMgdGhlIG1vZGFsIGNvbXBvbmVudCBidXQgZG9lc24ndCBsYXVuY2ggdGhlIG1vZGFsIGZyb21cbiAgICogdGhlIG1vZGFsIHNlcnZpY2UgYmVmb3JlIGV4ZWN1dGluZyBhc3NlcnRpb25zLlxuICAgKi9cbiAgcmVhZG9ubHkgI2NvbmZpZyA9XG4gICAgaW5qZWN0KFNreU1vZGFsQ29uZmlndXJhdGlvbiwgeyBvcHRpb25hbDogdHJ1ZSB9KSA/P1xuICAgIG5ldyBTa3lNb2RhbENvbmZpZ3VyYXRpb24oKTtcbiAgcmVhZG9ubHkgI3RoZW1lU3ZjID0gaW5qZWN0KFNreVRoZW1lU2VydmljZSwgeyBvcHRpb25hbDogdHJ1ZSB9KTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLmFyaWFEZXNjcmliZWRCeSA9IHRoaXMuI2NvbmZpZy5hcmlhRGVzY3JpYmVkQnk7XG4gICAgdGhpcy5hcmlhTGFiZWxsZWRCeSA9IHRoaXMuI2NvbmZpZy5hcmlhTGFiZWxsZWRCeTtcbiAgICB0aGlzLmFyaWFSb2xlID0gdGhpcy4jY29uZmlnLmFyaWFSb2xlO1xuICAgIHRoaXMubGVnYWN5SGVscEtleSA9IHRoaXMuI2NvbmZpZy5oZWxwS2V5O1xuICAgIHRoaXMudGlsZWRCb2R5ID0gdGhpcy4jY29uZmlnLnRpbGVkQm9keTtcbiAgICB0aGlzLndyYXBwZXJDbGFzcyA9IHRoaXMuI2NvbmZpZy53cmFwcGVyQ2xhc3M7XG5cbiAgICB0aGlzLnNpemUgPSB0aGlzLiNjb25maWcuZnVsbFBhZ2VcbiAgICAgID8gJ2Z1bGwtcGFnZSdcbiAgICAgIDogdGhpcy4jY29uZmlnLnNpemU/LnRvTG93ZXJDYXNlKCkgfHwgJ21lZGl1bSc7XG5cbiAgICB0aGlzLm1vZGFsWkluZGV4ID0gdGhpcy4jaG9zdFNlcnZpY2UuekluZGV4O1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6a2V5dXAnLCBbJyRldmVudCddKVxuICBwdWJsaWMgb25Eb2N1bWVudEtleVVwKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICAvKiBzYW5pdHkgY2hlY2sgKi9cbiAgICBpZiAoU2t5TW9kYWxIb3N0U2VydmljZS5vcGVuTW9kYWxDb3VudCA+IDApIHtcbiAgICAgIGNvbnN0IHRvcE1vZGFsID0gU2t5TW9kYWxIb3N0U2VydmljZS50b3BNb2RhbDtcbiAgICAgIGlmICh0b3BNb2RhbCAmJiB0b3BNb2RhbCA9PT0gdGhpcy4jaG9zdFNlcnZpY2UpIHtcbiAgICAgICAgaWYgKGV2ZW50LndoaWNoID09PSAyNykge1xuICAgICAgICAgIC8vIEVzY2FwZSBrZXkgdXBcbiAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgIHRoaXMuY2xvc2VCdXR0b25DbGljaygpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6a2V5ZG93bicsIFsnJGV2ZW50J10pXG4gIHB1YmxpYyBvbkRvY3VtZW50S2V5RG93bihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgLyogc2FuaXR5IGNoZWNrICovXG4gICAgaWYgKFNreU1vZGFsSG9zdFNlcnZpY2Uub3Blbk1vZGFsQ291bnQgPiAwKSB7XG4gICAgICBjb25zdCB0b3BNb2RhbCA9IFNreU1vZGFsSG9zdFNlcnZpY2UudG9wTW9kYWw7XG4gICAgICBpZiAodG9wTW9kYWwgJiYgdG9wTW9kYWwgPT09IHRoaXMuI2hvc3RTZXJ2aWNlKSB7XG4gICAgICAgIGlmIChldmVudC53aGljaCA9PT0gOSkge1xuICAgICAgICAgIC8vIFRhYiBwcmVzc2VkXG4gICAgICAgICAgbGV0IGZvY3VzQ2hhbmdlZCA9IGZhbHNlO1xuXG4gICAgICAgICAgY29uc3QgZm9jdXNFbGVtZW50TGlzdCA9IHRoaXMuI2NvcmVBZGFwdGVyLmdldEZvY3VzYWJsZUNoaWxkcmVuKFxuICAgICAgICAgICAgdGhpcy4jZWxSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICApO1xuXG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgZXZlbnQuc2hpZnRLZXkgJiZcbiAgICAgICAgICAgICh0aGlzLiNjb21wb25lbnRBZGFwdGVyLmlzRm9jdXNJbkZpcnN0SXRlbShcbiAgICAgICAgICAgICAgZXZlbnQsXG4gICAgICAgICAgICAgIGZvY3VzRWxlbWVudExpc3QsXG4gICAgICAgICAgICApIHx8XG4gICAgICAgICAgICAgIHRoaXMuI2NvbXBvbmVudEFkYXB0ZXIuaXNNb2RhbEZvY3VzZWQoZXZlbnQsIHRoaXMuI2VsUmVmKSlcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIGZvY3VzQ2hhbmdlZCA9XG4gICAgICAgICAgICAgIHRoaXMuI2NvbXBvbmVudEFkYXB0ZXIuZm9jdXNMYXN0RWxlbWVudChmb2N1c0VsZW1lbnRMaXN0KTtcbiAgICAgICAgICB9IGVsc2UgaWYgKFxuICAgICAgICAgICAgIWV2ZW50LnNoaWZ0S2V5ICYmXG4gICAgICAgICAgICB0aGlzLiNjb21wb25lbnRBZGFwdGVyLmlzRm9jdXNJbkxhc3RJdGVtKGV2ZW50LCBmb2N1c0VsZW1lbnRMaXN0KVxuICAgICAgICAgICkge1xuICAgICAgICAgICAgZm9jdXNDaGFuZ2VkID1cbiAgICAgICAgICAgICAgdGhpcy4jY29tcG9uZW50QWRhcHRlci5mb2N1c0ZpcnN0RWxlbWVudChmb2N1c0VsZW1lbnRMaXN0KTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoZm9jdXNDaGFuZ2VkKSB7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuI2xpdmVBbm5vdW5jZXJTdmMuYW5ub3VuY2VyRWxlbWVudENoYW5nZWRcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSlcbiAgICAgIC5zdWJzY3JpYmUoKGVsZW1lbnQpID0+IHtcbiAgICAgICAgaWYgKGVsZW1lbnQ/LmlkKSB7XG4gICAgICAgICAgdGhpcy5hcmlhT3ducyA9IGVsZW1lbnQuaWQ7XG4gICAgICAgICAgdGhpcy4jY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgaWYgKHRoaXMuI3RoZW1lU3ZjKSB7XG4gICAgICB0aGlzLiN0aGVtZVN2Yy5zZXR0aW5nc0NoYW5nZVxuICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpXG4gICAgICAgIC5zdWJzY3JpYmUoKHRoZW1lU2V0dGluZ3MpID0+IHtcbiAgICAgICAgICB0aGlzLnNjcm9sbFNoYWRvd0VuYWJsZWQgPVxuICAgICAgICAgICAgdGhlbWVTZXR0aW5ncy5jdXJyZW50U2V0dGluZ3MudGhlbWUgPT09IFNreVRoZW1lLnByZXNldHMubW9kZXJuO1xuICAgICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuI2NvbXBvbmVudEFkYXB0ZXIuaGFuZGxlV2luZG93Q2hhbmdlKHRoaXMuI2VsUmVmKTtcblxuICAgIHRoaXMuI2RvY2tTZXJ2aWNlLnNldERvY2tPcHRpb25zKHtcbiAgICAgIGxvY2F0aW9uOiBTa3lEb2NrTG9jYXRpb24uRWxlbWVudEJvdHRvbSxcbiAgICAgIHJlZmVyZW5jZUVsOiB0aGlzLm1vZGFsQ29udGVudFdyYXBwZXJFbGVtZW50IS5uYXRpdmVFbGVtZW50LFxuICAgICAgekluZGV4OiA1LFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuI25nVW5zdWJzY3JpYmUubmV4dCgpO1xuICAgIHRoaXMuI25nVW5zdWJzY3JpYmUuY29tcGxldGUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZFxuICAgKi9cbiAgcHVibGljIGhlbHBCdXR0b25DbGljaygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5sZWdhY3lIZWxwS2V5KSB7XG4gICAgICB0aGlzLiNob3N0U2VydmljZS5vbk9wZW5IZWxwKHRoaXMubGVnYWN5SGVscEtleSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGNsb3NlQnV0dG9uQ2xpY2soKTogdm9pZCB7XG4gICAgdGhpcy4jaG9zdFNlcnZpY2Uub25DbG9zZSgpO1xuICB9XG5cbiAgcHVibGljIHdpbmRvd1Jlc2l6ZSgpOiB2b2lkIHtcbiAgICB0aGlzLiNjb21wb25lbnRBZGFwdGVyLmhhbmRsZVdpbmRvd0NoYW5nZSh0aGlzLiNlbFJlZik7XG4gIH1cblxuICBwdWJsaWMgc2Nyb2xsU2hhZG93Q2hhbmdlKGFyZ3M6IFNreVNjcm9sbFNoYWRvd0V2ZW50QXJncyk6IHZvaWQge1xuICAgIHRoaXMuc2Nyb2xsU2hhZG93ID0gYXJncztcbiAgfVxuXG4gIHB1YmxpYyB2aWV3a2VlcGVyRW5hYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy4jY29tcG9uZW50QWRhcHRlci5tb2RhbENvbnRlbnRIYXNEaXJlY3RDaGlsZFZpZXdrZWVwZXIoXG4gICAgICB0aGlzLiNlbFJlZixcbiAgICApO1xuICB9XG59XG4iLCI8ZGl2XG4gIGNsYXNzPVwic2t5LW1vZGFsLWRpYWxvZ1wiXG4gIGFyaWEtbW9kYWw9XCJ0cnVlXCJcbiAgW2F0dHIuYXJpYS1kZXNjcmliZWRieV09XCJhcmlhRGVzY3JpYmVkQnkgfHwgbW9kYWxDb250ZW50SWQuaWRcIlxuICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwiYXJpYUxhYmVsbGVkQnkgfHwgaGVhZGVySWQuaWRcIlxuICBbYXR0ci5hcmlhLW93bnNdPVwiYXJpYU93bnNcIlxuICBbYXR0ci5yb2xlXT1cImFyaWFSb2xlT3JEZWZhdWx0XCJcbiAgKHdpbmRvdzpyZXNpemUpPVwid2luZG93UmVzaXplKClcIlxuPlxuICA8ZGl2XG4gICAgdGFiaW5kZXg9XCItMVwiXG4gICAgY2xhc3M9XCJza3ktbW9kYWwgc2t5LXNoYWRvdyBza3ktYm94IHNreS1lbGV2YXRpb24tMTYgc2t5LW1vZGFsLXt7IHNpemUgfX1cIlxuICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICdza3ktbW9kYWwtdGlsZWQnOiB0aWxlZEJvZHksXG4gICAgICAnc2t5LW1vZGFsLXZpZXdrZWVwZXInOiB2aWV3a2VlcGVyRW5hYmxlZCgpXG4gICAgfVwiXG4gICAgW25nU3R5bGVdPVwie1xuICAgICAgekluZGV4OiBtb2RhbFpJbmRleFxuICAgIH1cIlxuICA+XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJza3ktbW9kYWwtaGVhZGVyXCJcbiAgICAgIFtuZ1N0eWxlXT1cIntcbiAgICAgICAgJ2JveC1zaGFkb3cnOiBzY3JvbGxTaGFkb3c/LnRvcFNoYWRvd1xuICAgICAgfVwiXG4gICAgPlxuICAgICAgPGRpdlxuICAgICAgICAjaGVhZGVySWQ9XCJza3lJZFwiXG4gICAgICAgIGNsYXNzPVwic2t5LW1vZGFsLWhlYWRlci1jb250ZW50XCJcbiAgICAgICAgc2t5SWRcbiAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICdza3ktZm9udC1oZWFkaW5nLTInOiBzaXplID09PSAnZnVsbC1wYWdlJ1xuICAgICAgICB9XCJcbiAgICAgID5cbiAgICAgICAgQGlmIChoZWFkaW5nVGV4dCkge1xuICAgICAgICAgIDxza3ktbW9kYWwtaGVhZGVyPlxuICAgICAgICAgICAge3sgaGVhZGluZ1RleHQgfX1cbiAgICAgICAgICAgIEBpZiAoaGVscEtleSB8fCBoZWxwUG9wb3ZlckNvbnRlbnQpIHtcbiAgICAgICAgICAgICAgPHNreS1oZWxwLWlubGluZVxuICAgICAgICAgICAgICAgIGNsYXNzPVwic2t5LWNvbnRyb2wtaGVscFwiXG4gICAgICAgICAgICAgICAgW2hlbHBLZXldPVwiaGVscEtleVwiXG4gICAgICAgICAgICAgICAgW2xhYmVsVGV4dF09XCJoZWFkaW5nVGV4dFwiXG4gICAgICAgICAgICAgICAgW3BvcG92ZXJDb250ZW50XT1cImhlbHBQb3BvdmVyQ29udGVudFwiXG4gICAgICAgICAgICAgICAgW3BvcG92ZXJUaXRsZV09XCJoZWxwUG9wb3ZlclRpdGxlXCJcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L3NreS1tb2RhbC1oZWFkZXI+XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cInNreS1tb2RhbC1oZWFkZXJcIiAvPlxuICAgICAgICB9XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJza3ktbW9kYWwtaGVhZGVyLWJ1dHRvbnNcIj5cbiAgICAgICAgQGlmIChsZWdhY3lIZWxwS2V5KSB7XG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgY2xhc3M9XCJza3ktYnRuIHNreS1tb2RhbC1idG4taGVscFwiXG4gICAgICAgICAgICBuYW1lPVwiaGVscC1idXR0b25cIlxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidza3l1eF9tb2RhbF9vcGVuX2hlbHAnIHwgc2t5TGliUmVzb3VyY2VzXCJcbiAgICAgICAgICAgIChjbGljayk9XCJoZWxwQnV0dG9uQ2xpY2soKVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPHNreS1pY29uIGljb249XCJxdWVzdGlvbi1jaXJjbGVcIiAvPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICB9XG5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgIGNsYXNzPVwic2t5LWJ0biBza3ktbW9kYWwtYnRuLWNsb3NlXCJcbiAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidza3l1eF9tb2RhbF9jbG9zZScgfCBza3lMaWJSZXNvdXJjZXNcIlxuICAgICAgICAgIChjbGljayk9XCJjbG9zZUJ1dHRvbkNsaWNrKClcIlxuICAgICAgICA+XG4gICAgICAgICAgPHNreS1pY29uIGljb249XCJjbG9zZVwiIC8+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdlxuICAgICAgI21vZGFsQ29udGVudElkPVwic2t5SWRcIlxuICAgICAgI21vZGFsQ29udGVudFdyYXBwZXJcbiAgICAgIGNsYXNzPVwic2t5LW1vZGFsLWNvbnRlbnQgc2t5LXBhZGRpbmctZXZlbi1sYXJnZVwiXG4gICAgICByb2xlPVwicmVnaW9uXCJcbiAgICAgIHRhYmluZGV4PVwiMFwiXG4gICAgICBza3lJZFxuICAgICAgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cImhlYWRlcklkLmlkXCJcbiAgICAgIFtza3lTY3JvbGxTaGFkb3dFbmFibGVkXT1cInNjcm9sbFNoYWRvd0VuYWJsZWRcIlxuICAgICAgKHNreVNjcm9sbFNoYWRvdyk9XCJzY3JvbGxTaGFkb3dDaGFuZ2UoJGV2ZW50KVwiXG4gICAgPlxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwic2t5LW1vZGFsLWNvbnRlbnRcIiAvPlxuICAgIDwvZGl2PlxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwic2t5LW1vZGFsLWZvb3RlclwiXG4gICAgICBbbmdTdHlsZV09XCJ7XG4gICAgICAgICdib3gtc2hhZG93Jzogc2Nyb2xsU2hhZG93Py5ib3R0b21TaGFkb3dcbiAgICAgIH1cIlxuICAgID5cbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cInNreS1tb2RhbC1mb290ZXJcIiAvPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL21vZGFscy9zcmMvbGliL21vZHVsZXMvbW9kYWwvbW9kYWwuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTdGF0aWNQcm92aWRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG4vLyBUT0RPOiBkZWZhdWx0cyB3b24ndCBzaG93IGluIHRoZSBnZW5lcmF0ZWQgZG9jcyB1bnRpbCB0aGlzIHdvcmsgaXMgZG9uZTpcbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9ibGFja2JhdWQvc2t5dXgtZG9jcy10b29scy9pc3N1ZXMvMzhcblxuLyoqXG4gKiBTcGVjaWZpZXMgY29uZmlndXJhdGlvbiBvcHRpb25zIGZvciBjcmVhdGluZyBhIG1vZGFsLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNreU1vZGFsQ29uZmlndXJhdGlvbkludGVyZmFjZSB7XG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGRpc3BsYXkgdGhlIG1vZGFsIGZ1bGwgc2NyZWVuLlxuICAgKiBUaGlzIHByb3BlcnR5IGRlZmF1bHRzIHRvIGBmYWxzZWAuXG4gICAqL1xuICBmdWxsUGFnZT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFRoZSBzaXplIGZvciB0aGUgbW9kYWwuIFRoZSB2YWxpZCBvcHRpb25zIGFyZSBgc21hbGxgLCBgbWVkaXVtYCwgYW5kIGBsYXJnZWAuXG4gICAqIFRoaXMgcHJvcGVydHkgZGVmYXVsdHMgdG8gYG1lZGl1bWAuXG4gICAqL1xuICBzaXplPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBbiBhcnJheSBwcm9wZXJ0eSBvZiBgcHJvdmlkZXJzYC5cbiAgICogSW4gQW5ndWxhciwgYSBwcm92aWRlciBpcyBzb21ldGhpbmcgdGhhdCBjYW4gY3JlYXRlIG9yIGRlbGl2ZXIgYSBzZXJ2aWNlLlxuICAgKiBUaGlzIHByb3BlcnR5IGNhbiBiZSB1c2VkIHRvIHBhc3MgY29udGV4dCB2YWx1ZXMgZnJvbSB0aGUgY29tcG9uZW50IHRoYXQgbGF1bmNoZXMgdGhlIG1vZGFsIHRvIHRoZSBtb2RhbCBjb21wb25lbnQuXG4gICAqL1xuICBwcm92aWRlcnM/OiBTdGF0aWNQcm92aWRlcltdO1xuXG4gIC8qKlxuICAgKiBUaGUgSFRNTCBlbGVtZW50IElEIG9mIHRoZSBlbGVtZW50IHRoYXQgZGVzY3JpYmVzXG4gICAqIHRoZSBtb2RhbC4gVGhpcyBzZXRzIHRoZSBtb2RhbCdzIGBhcmlhLWRlc2NyaWJlZGJ5YCBhdHRyaWJ1dGUgdG8gcHJvdmlkZSBhIHRleHQgZXF1aXZhbGVudCBmb3JcbiAgICogW3RvIHN1cHBvcnQgYWNjZXNzaWJpbGl0eV0oaHR0cHM6Ly9kZXZlbG9wZXIuYmxhY2tiYXVkLmNvbS9za3l1eC9sZWFybi9hY2Nlc3NpYmlsaXR5KS5cbiAgICogVGhlIGRlc2NyaXB0aW9uIHR5cGljYWxseSBpbmNsdWRlcyB0ZXh0IG9uIHRoZSBtb2RhbCBidXQgbm90IG9uIGl0ZW1zIHRoYXQgdXNlcnMgaW50ZXJhY3RcbiAgICogd2l0aCwgc3VjaCBhcyBidXR0b25zIGFuZCBmb3Jtcy4gSWYgeW91IGRvIG5vdCBzcGVjaWZ5IGFuIElELCB0aGUgZGVmYXVsdCBkZXNjcmlwdGlvbiBpc1xuICAgKiB0aGUgY29udGVudCBvZiB0aGUgYHNreS1tb2RhbC1jb250ZW50YCBjb21wb25lbnQuXG4gICAqIEZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IHRoZSBgYXJpYS1kZXNjcmliZWRieWAgYXR0cmlidXRlLCBzZWUgdGhlIFtXQUktQVJJQSBkZWZpbml0aW9uXShodHRwczovL3d3dy53My5vcmcvVFIvd2FpLWFyaWEvI2FyaWEtZGVzY3JpYmVkYnkpLlxuICAgKiBAZGVwcmVjYXRlZCBTZXQgYGhlYWRpbmdUZXh0YCBvbiB0aGUgbW9kYWwgY29tcG9uZW50IGluc3RlYWQuXG4gICAqL1xuICBhcmlhRGVzY3JpYmVkQnk/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBIVE1MIGVsZW1lbnQgSUQgb2YgdGhlIGVsZW1lbnQgdGhhdCBsYWJlbHNcbiAgICogdGhlIG1vZGFsLiBUaGlzIHNldHMgdGhlIGBhcmlhLWxhYmVsbGVkYnlgIGF0dHJpYnV0ZSBmb3IgdGhlIG1vZGFsIHRvIHByb3ZpZGUgYSB0ZXh0IGVxdWl2YWxlbnQgZm9yXG4gICAqIFt0byBzdXBwb3J0IGFjY2Vzc2liaWxpdHldKGh0dHBzOi8vZGV2ZWxvcGVyLmJsYWNrYmF1ZC5jb20vc2t5dXgvbGVhcm4vYWNjZXNzaWJpbGl0eSkuXG4gICAqIFRoaXMgaXMgdHlwaWNhbGx5IGEgaGVhZGVyIGVsZW1lbnQsIGFuZCBpZiB5b3UgZG8gbm90IHNwZWNpZnkgYW4gSUQsIHRoZSBkZWZhdWx0IHZhbHVlXG4gICAqIGlzIHRoZSBjb250ZW50IG9mIHRoZSBgc2t5LW1vZGFsLWhlYWRlcmAgY29tcG9uZW50LlxuICAgKiBGb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgYGFyaWEtbGFiZWxsZWRieWAgYXR0cmlidXRlLCBzZWUgdGhlIFtXQUktQVJJQSBkZWZpbml0aW9uXShodHRwczovL3d3dy53My5vcmcvVFIvd2FpLWFyaWEvI2FyaWEtbGFiZWxsZWRieSkuXG4gICAqIEBkZXByZWNhdGVkIFNldCBgaGVhZGluZ1RleHRgIG9uIHRoZSBtb2RhbCBjb21wb25lbnQgaW5zdGVhZC5cbiAgICovXG4gIGFyaWFMYWJlbGxlZEJ5Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgQVJJQSByb2xlIGZvciB0aGUgbW9kYWxcbiAgICogW3RvIHN1cHBvcnQgYWNjZXNzaWJpbGl0eV0oaHR0cHM6Ly9kZXZlbG9wZXIuYmxhY2tiYXVkLmNvbS9za3l1eC9sZWFybi9hY2Nlc3NpYmlsaXR5KVxuICAgKiBieSBpbmRpY2F0aW5nIGhvdyB0aGUgbW9kYWwgZnVuY3Rpb25zIGFuZCB3aGF0IGl0IGNvbnRyb2xzLiBGb3IgaW5mb3JtYXRpb24gYWJvdXRcbiAgICogaG93IGFuIEFSSUEgcm9sZSBpbmRpY2F0ZXMgd2hhdCBhbiBpdGVtIHJlcHJlc2VudHMgb24gYSB3ZWIgcGFnZSwgc2VlIHRoZVxuICAgKiBbV0FJLUFSSUEgcm9sZXMgbW9kZWxdKGh0dHA6Ly93d3cudzMub3JnL1dBSS9QRi9hcmlhLyNyb2xlcykuIEJ5IGRlZmF1bHQsIG1vZGFscyBzZXRcbiAgICogdGhlIEFSSUEgcm9sZSB0byBgZGlhbG9nYC5cbiAgICogQGRlZmF1bHQgXCJkaWFsb2dcIlxuICAgKi9cbiAgYXJpYVJvbGU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIG1vZGFsIHVzZXMgdGlsZXMuIFdoZW4gc2V0IHRvIGB0cnVlYCwgdGhlIG1vZGFsJ3MgYmFja2dyb3VuZCBzd2l0Y2hlc1xuICAgKiB0byBgJHNreS1iYWNrZ3JvdW5kLWNvbG9yLW5ldXRyYWwtbGlnaHRgIGFuZCB0aWxlIGhlYWRpbmdzIGFyZSBzdHlsZWQgYXMgc3Vic2VjdGlvbiBoZWFkaW5ncy5cbiAgICogVGhpcyBwcm9wZXJ0eSBkZWZhdWx0cyB0byBgZmFsc2VgLlxuICAgKiBAZGVwcmVjYXRlZCBUaWxlcyBpbnNpZGUgbW9kYWxzIGFyZSBubyBsb25nZXIgYSByZWNvbW1lbmRlZCBkZXNpZ24gcGF0dGVybi4gRm9yIGNvbXBsZXggZm9ybXMsIHVzZSBbc2VjdGlvbmVkIGZvcm1zXShodHRwczovL2RldmVsb3Blci5ibGFja2JhdWQuY29tL3NreXV4L2NvbXBvbmVudHMvc2VjdGlvbmVkLWZvcm0pIG9yIFtvdGhlciBmb3JtIGNvbnRhaW5lcnNdKGh0dHBzOi8vZGV2ZWxvcGVyLmJsYWNrYmF1ZC5jb20vc2t5dXgvZGVzaWduL2d1aWRlbGluZXMvZm9ybS1kZXNpZ24pIGluc3RlYWQuXG4gICAqL1xuICB0aWxlZEJvZHk/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBUaGUgYGhlbHBLZXlgIHN0cmluZy4gVGhpcyBwcm9wZXJ0eSBkaXNwbGF5c1xuICAgKiB0aGUgPGkgY2xhc3M9XCJmYSBmYS1xdWVzdGlvbi1jaXJjbGVcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+IGJ1dHRvbiBpbiB0aGUgbW9kYWwgaGVhZGVyLlxuICAgKiBXaGVuIHVzZXJzIGNsaWNrIHRoaXMgYnV0dG9uLCB0aGUgYGhlbHBPcGVuZWRgIGV2ZW50IGJyb2FkY2FzdHMgdGhlIGBoZWxwS2V5YCBwYXJhbWV0ZXIuXG4gICAqIEJsYWNrYmF1ZCBkZXZlbG9wZXJzIGNhbiB1c2UgdGhlIEhlbHAgV2lkZ2V0LCB3aGljaCBpcyBmb3IgaW50ZXJuYWwgQmxhY2tiYXVkIHVzZSBvbmx5LCB0b1xuICAgKiBbZGlzcGxheSBoZWxwIGNvbnRlbnQgaW4gYSBmbHlvdXQgcGFuZWxdKGh0dHBzOi8vZG9jcy5ibGFja2JhdWQuY29tL2JiLWhlbHAtZG9jcy9jb21wb25lbnRzL21vZGFsLWhlYWRlcikuXG4gICAqIEBkZXByZWNhdGVkIFRvIGRpc3BsYXkgYSBoZWxwIGJ1dHRvbiBpbiB0aGUgbW9kYWwgaGVhZGVyLCBzZXQgZWl0aGVyIHRoZVxuICAgKiBgaGVscEtleWAgb3IgYGhlbHBQb3BvdmVyQ29udGVudGAgaW5wdXRzIG9uIHRoZSBtb2RhbCBjb21wb25lbnQuXG4gICAqL1xuICBoZWxwS2V5Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgQ1NTIGNsYXNzIHRvIGFkZCB0byB0aGUgbW9kYWwsIHN1Y2ggYXMgYGFnLWN1c3RvbS1jb21wb25lbnQtcG9wdXBgIGZvclxuICAgKiB1c2luZyBhIG1vZGFsIGFzIHBhcnQgb2YgYSBjZWxsIGVkaXRvciBpbiBEYXRhIEVudHJ5IEdyaWQuXG4gICAqL1xuICB3cmFwcGVyQ2xhc3M/OiBzdHJpbmc7XG59XG4iXX0=
|