@ethlete/cdk 3.22.1 → 3.22.3
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/CHANGELOG.md +12 -0
- package/esm2022/lib/components/overlay/components/bottom-sheet/partials/bottom-sheet-drag-handle/bottom-sheet-drag-handle.component.mjs +2 -2
- package/esm2022/lib/components/overlay/components/overlay/utils/overlay-ref.mjs +14 -5
- package/esm2022/lib/components/overlay/utils/overlay-dismiss-checker.util.mjs +49 -31
- package/fesm2022/ethlete-cdk.mjs +107 -36
- package/fesm2022/ethlete-cdk.mjs.map +1 -1
- package/lib/components/overlay/components/overlay/utils/overlay-ref.d.ts +22 -7
- package/package.json +3 -3
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
# @ethlete/cdk
|
|
2
2
|
|
|
3
|
+
## 3.22.3
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [`ff3d0425`](https://github.com/ethlete-io/ethdk/commit/ff3d04259b3ccfed6c7aff548a4a9afd4f7f3fd2) Thanks [@TomTomB](https://github.com/TomTomB)! - Ignore forced close events in overlay dismiss checker and cleanup after the checker was unsubscribed
|
|
8
|
+
|
|
9
|
+
## 3.22.2
|
|
10
|
+
|
|
11
|
+
### Patch Changes
|
|
12
|
+
|
|
13
|
+
- [`822e7bf5`](https://github.com/ethlete-io/ethdk/commit/822e7bf5193889345040b2fdc6de8d0868bdce72) Thanks [@TomTomB](https://github.com/TomTomB)! - Fix overlays being unable to close if a overlay dismiss checker was active and its provided form was in the initial state
|
|
14
|
+
|
|
3
15
|
## 3.22.1
|
|
4
16
|
|
|
5
17
|
### Patch Changes
|
|
@@ -83,14 +83,14 @@ export class BottomSheetDragHandleComponent {
|
|
|
83
83
|
}
|
|
84
84
|
}
|
|
85
85
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: BottomSheetDragHandleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
86
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.5", type: BottomSheetDragHandleComponent, isStandalone: true, selector: "[et-bottom-sheet-drag-handle], [etBottomSheetDragHandle]", inputs: { ariaLabel: ["aria-label", "ariaLabel"], type: "type", bottomSheetResult: ["et-bottom-sheet-drag-handle", "bottomSheetResult"], _etBottomSheetDragHandle: ["etBottomSheetDragHandle", "_etBottomSheetDragHandle"] }, host: { listeners: { "click": "_onButtonClick($event)" }, properties: { "attr.aria-label": "ariaLabel || null", "attr.type": "this.type" }, classAttribute: "et-bottom-sheet-drag-handle" }, providers: [BottomSheetSwipeHandlerService], exportAs: ["etBottomSheetDragHandle"], usesOnChanges: true, ngImport: i0, template: '', isInline: true, styles: [":where(.et-bottom-sheet-drag-handle){--background-color: red}.et-bottom-sheet-drag-handle{--_tap-target-width: 100px;--_tap-target-height: 25px;inset-inline-start:calc(50% - var(--_tap-target-width) / 2);inline-size:var(--_tap-target-width);block-size:var(--_tap-target-height);border:none;position:relative;background-color:#0000;touch-action:manipulation
|
|
86
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.5", type: BottomSheetDragHandleComponent, isStandalone: true, selector: "[et-bottom-sheet-drag-handle], [etBottomSheetDragHandle]", inputs: { ariaLabel: ["aria-label", "ariaLabel"], type: "type", bottomSheetResult: ["et-bottom-sheet-drag-handle", "bottomSheetResult"], _etBottomSheetDragHandle: ["etBottomSheetDragHandle", "_etBottomSheetDragHandle"] }, host: { listeners: { "click": "_onButtonClick($event)" }, properties: { "attr.aria-label": "ariaLabel || null", "attr.type": "this.type" }, classAttribute: "et-bottom-sheet-drag-handle" }, providers: [BottomSheetSwipeHandlerService], exportAs: ["etBottomSheetDragHandle"], usesOnChanges: true, ngImport: i0, template: '', isInline: true, styles: [":where(.et-bottom-sheet-drag-handle){--background-color: red}.et-bottom-sheet-drag-handle{--_tap-target-width: 100px;--_tap-target-height: 25px;inset-inline-start:calc(50% - var(--_tap-target-width) / 2);inline-size:var(--_tap-target-width);block-size:var(--_tap-target-height);border:none;position:relative;background-color:#0000;touch-action:manipulation;appearance:none}.et-bottom-sheet-drag-handle:before{--_toggle-width: 32px;--_toggle-height: 4px;inline-size:var(--_toggle-width);block-size:var(--_toggle-height);content:\"\";position:absolute;background-color:var(--background-color);border-radius:9999px;inset-inline-start:calc(50% - var(--_toggle-width) / 2);inset-block-start:calc(50% - var(--_toggle-height) / 2);z-index:1}.et-bottom-sheet-drag-handle:after{opacity:0;inline-size:100%;block-size:100%;content:\"\";position:absolute;background-color:#0003;border-radius:8px;inset-block-start:0;inset-inline-start:0;transform:scale(0);transition:opacity .3s var(--ease-5),transform .3s var(--ease-5)}.et-bottom-sheet-drag-handle:focus-visible{outline:none}.et-bottom-sheet-drag-handle:focus-visible:after{opacity:1;transform:scale(1);transition:opacity .3s var(--ease-5),transform .3s var(--ease-squish-3)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
87
87
|
}
|
|
88
88
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: BottomSheetDragHandleComponent, decorators: [{
|
|
89
89
|
type: Component,
|
|
90
90
|
args: [{ selector: '[et-bottom-sheet-drag-handle], [etBottomSheetDragHandle]', template: '', exportAs: 'etBottomSheetDragHandle', host: {
|
|
91
91
|
class: 'et-bottom-sheet-drag-handle',
|
|
92
92
|
'[attr.aria-label]': 'ariaLabel || null',
|
|
93
|
-
}, standalone: true, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [BottomSheetSwipeHandlerService], styles: [":where(.et-bottom-sheet-drag-handle){--background-color: red}.et-bottom-sheet-drag-handle{--_tap-target-width: 100px;--_tap-target-height: 25px;inset-inline-start:calc(50% - var(--_tap-target-width) / 2);inline-size:var(--_tap-target-width);block-size:var(--_tap-target-height);border:none;position:relative;background-color:#0000;touch-action:manipulation
|
|
93
|
+
}, standalone: true, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [BottomSheetSwipeHandlerService], styles: [":where(.et-bottom-sheet-drag-handle){--background-color: red}.et-bottom-sheet-drag-handle{--_tap-target-width: 100px;--_tap-target-height: 25px;inset-inline-start:calc(50% - var(--_tap-target-width) / 2);inline-size:var(--_tap-target-width);block-size:var(--_tap-target-height);border:none;position:relative;background-color:#0000;touch-action:manipulation;appearance:none}.et-bottom-sheet-drag-handle:before{--_toggle-width: 32px;--_toggle-height: 4px;inline-size:var(--_toggle-width);block-size:var(--_toggle-height);content:\"\";position:absolute;background-color:var(--background-color);border-radius:9999px;inset-inline-start:calc(50% - var(--_toggle-width) / 2);inset-block-start:calc(50% - var(--_toggle-height) / 2);z-index:1}.et-bottom-sheet-drag-handle:after{opacity:0;inline-size:100%;block-size:100%;content:\"\";position:absolute;background-color:#0003;border-radius:8px;inset-block-start:0;inset-inline-start:0;transform:scale(0);transition:opacity .3s var(--ease-5),transform .3s var(--ease-5)}.et-bottom-sheet-drag-handle:focus-visible{outline:none}.et-bottom-sheet-drag-handle:focus-visible:after{opacity:1;transform:scale(1);transition:opacity .3s var(--ease-5),transform .3s var(--ease-squish-3)}\n"] }]
|
|
94
94
|
}], propDecorators: { ariaLabel: [{
|
|
95
95
|
type: Input,
|
|
96
96
|
args: ['aria-label']
|
|
@@ -18,8 +18,17 @@ export class OverlayRef {
|
|
|
18
18
|
this._beforeClosed = new Subject();
|
|
19
19
|
this._closeCalled = new Subject();
|
|
20
20
|
this._state = OVERLAY_STATE.OPEN;
|
|
21
|
+
/**
|
|
22
|
+
* @internal
|
|
23
|
+
*/
|
|
21
24
|
this._isEscCloseControlledExternally = false;
|
|
25
|
+
/**
|
|
26
|
+
* @internal
|
|
27
|
+
*/
|
|
22
28
|
this._isBackdropCloseControlledExternally = false;
|
|
29
|
+
/**
|
|
30
|
+
* @internal
|
|
31
|
+
*/
|
|
23
32
|
this._isCloseFnCloseControlledExternally = false;
|
|
24
33
|
this._disableCloseFromInternalInitiators = new Set();
|
|
25
34
|
this.disableClose = config.disableClose;
|
|
@@ -57,7 +66,7 @@ export class OverlayRef {
|
|
|
57
66
|
if (this._state === OVERLAY_STATE.CLOSING || this._state === OVERLAY_STATE.CLOSED) {
|
|
58
67
|
return;
|
|
59
68
|
}
|
|
60
|
-
this._closeCalled.next(result);
|
|
69
|
+
this._closeCalled.next({ result, forced: force ?? false });
|
|
61
70
|
if (this._isCloseFnCloseControlledExternally && !force) {
|
|
62
71
|
return;
|
|
63
72
|
}
|
|
@@ -76,13 +85,13 @@ export class OverlayRef {
|
|
|
76
85
|
this._containerInstance._animatedLifecycle.leave();
|
|
77
86
|
}
|
|
78
87
|
afterOpened() {
|
|
79
|
-
return this._afterOpened;
|
|
88
|
+
return this._afterOpened.asObservable();
|
|
80
89
|
}
|
|
81
90
|
afterClosed() {
|
|
82
91
|
return this._ref.closed;
|
|
83
92
|
}
|
|
84
93
|
beforeClosed() {
|
|
85
|
-
return this._beforeClosed;
|
|
94
|
+
return this._beforeClosed.asObservable();
|
|
86
95
|
}
|
|
87
96
|
backdropClick() {
|
|
88
97
|
return this._ref.backdropClick;
|
|
@@ -91,7 +100,7 @@ export class OverlayRef {
|
|
|
91
100
|
return this._ref.keydownEvents;
|
|
92
101
|
}
|
|
93
102
|
closeCalled() {
|
|
94
|
-
return this._closeCalled;
|
|
103
|
+
return this._closeCalled.asObservable();
|
|
95
104
|
}
|
|
96
105
|
updatePosition(position) {
|
|
97
106
|
const strategy = this._ref.config.positionStrategy;
|
|
@@ -145,4 +154,4 @@ export class OverlayRef {
|
|
|
145
154
|
this._disableCloseFromInternalInitiators.delete(initiatorId);
|
|
146
155
|
}
|
|
147
156
|
}
|
|
148
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmxheS1yZWYuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Nkay9zcmMvbGliL2NvbXBvbmVudHMvb3ZlcmxheS9jb21wb25lbnRzL292ZXJsYXkvdXRpbHMvb3ZlcmxheS1yZWYudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxjQUFjLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUcvRCxPQUFPLEVBQWMsT0FBTyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUzRSxPQUFPLEVBQUUsYUFBYSxFQUFnRCxNQUFNLFVBQVUsQ0FBQztBQUV2Riw4REFBOEQ7QUFDOUQsTUFBTSxPQUFPLFVBQVU7SUFxQnJCLElBQUkscUJBQXFCO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLG1DQUFtQyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVELElBQUksT0FBTztRQUNULE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQztJQUNuQixDQUFDO0lBRUQsWUFDVSxJQUF3QixFQUNoQyxNQUFxQixFQUNkLGtCQUE2QztRQUY1QyxTQUFJLEdBQUosSUFBSSxDQUFvQjtRQUV6Qix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQTJCO1FBL0J0RCxzQkFBaUIsR0FBYSxJQUFJLENBQUM7UUFDMUIsaUJBQVksR0FBMkIsSUFBSSxDQUFDO1FBS3BDLGlCQUFZLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQUNuQyxrQkFBYSxHQUFHLElBQUksT0FBTyxFQUFpQixDQUFDO1FBQzdDLGlCQUFZLEdBQUcsSUFBSSxPQUFPLEVBQWlCLENBQUM7UUFHckQsV0FBTSxHQUFpQixhQUFhLENBQUMsSUFBSSxDQUFDO1FBR2xELG9DQUErQixHQUFHLEtBQUssQ0FBQztRQUN4Qyx5Q0FBb0MsR0FBRyxLQUFL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UUFDaEUsSUFBSSxJQUFJLENBQUMsWUFBWTtZQUFFLE9BQU87UUFFOUIsSUFBSSxDQUFDLG1DQUFtQyxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUMvRCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGb2N1c09yaWdpbiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcbmltcG9ydCB7IERpYWxvZ1JlZiBhcyBDZGtEaWFsb2dSZWYgfSBmcm9tICdAYW5ndWxhci9jZGsvZGlhbG9nJztcbmltcG9ydCB7IEVTQ0FQRSwgaGFzTW9kaWZpZXJLZXkgfSBmcm9tICdAYW5ndWxhci9jZGsva2V5Y29kZXMnO1xuaW1wb3J0IHsgR2xvYmFsUG9zaXRpb25TdHJhdGVneSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7IENvbXBvbmVudFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCwgZmlsdGVyLCBtZXJnZSwgc2tpcFVudGlsLCB0YWtlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBPdmVybGF5Q29udGFpbmVyQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50cyc7XG5pbXBvcnQgeyBPVkVSTEFZX1NUQVRFLCBPdmVybGF5Q29uZmlnLCBPdmVybGF5UG9zaXRpb24sIE92ZXJsYXlTdGF0ZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbmV4cG9ydCBjbGFzcyBPdmVybGF5UmVmPFQgPSBhbnksIFIgPSBhbnk+IHtcbiAgY29tcG9uZW50SW5zdGFuY2U6IFQgfCBudWxsID0gbnVsbDtcbiAgcmVhZG9ubHkgY29tcG9uZW50UmVmOiBDb21wb25lbnRSZWY8VD4gfCBudWxsID0gbnVsbDtcbiAgZGlzYWJsZUNsb3NlOiBib29sZWFuIHwgdW5kZWZpbmVkO1xuXG4gIGlkOiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfYWZ0ZXJPcGVuZWQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9iZWZvcmVDbG9zZWQgPSBuZXcgU3ViamVjdDxSIHwgdW5kZWZpbmVkPigpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9jbG9zZUNhbGxlZCA9IG5ldyBTdWJqZWN0PFIgfCB1bmRlZmluZWQ+KCk7XG5cbiAgcHJpdmF0ZSBfcmVzdWx0OiBSIHwgdW5kZWZpbmVkO1xuICBwcml2YXRlIF9zdGF0ZTogT3ZlcmxheVN0YXRlID0gT1ZFUkxBWV9TVEFURS5PUEVOO1xuXG4gIF9jbG9zZUludGVyYWN0aW9uVHlwZTogRm9jdXNPcmlnaW4gfCB1bmRlZmluZWQ7XG4gIF9pc0VzY0Nsb3NlQ29udHJvbGxlZEV4dGVybmFsbHkgPSBmYWxzZTtcbiAgX2lzQmFja2Ryb3BDbG9zZUNvbnRyb2xsZWRFeHRlcm5hbGx5ID0gZmFsc2U7XG4gIF9pc0Nsb3NlRm5DbG9zZUNvbnRyb2xsZWRFeHRlcm5hbGx5ID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSBfZGlzYWJsZUNsb3NlRnJvbUludGVybmFsSW5pdGlhdG9ycyA9IG5ldyBTZXQ8c3RyaW5nIHwgbnVtYmVyPigpO1xuXG4gIGdldCBfaW50ZXJuYWxEaXNhYmxlQ2xvc2UoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2Rpc2FibGVDbG9zZUZyb21JbnRlcm5hbEluaXRpYXRvcnMuc2l6ZSA+IDA7XG4gIH1cblxuICBnZXQgX2Nka1JlZigpIHtcbiAgICByZXR1cm4gdGhpcy5fcmVmO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfcmVmOiBDZGtEaWFsb2dSZWY8UiwgVD4sXG4gICAgY29uZmlnOiBPdmVybGF5Q29uZmlnLFxuICAgIHB1YmxpYyBfY29udGFpbmVySW5zdGFuY2U6IE92ZXJsYXlDb250YWluZXJDb21wb25lbnQsXG4gICkge1xuICAgIHRoaXMuZGlzYWJsZUNsb3NlID0gY29uZmlnLmRpc2FibGVDbG9zZTtcbiAgICB0aGlzLmlkID0gX3JlZi5pZDtcblxuICAgIF9jb250YWluZXJJbnN0YW5jZS5fYW5pbWF0ZWRMaWZlY3ljbGUuc3RhdGUkXG4gICAgICAucGlwZShcbiAgICAgICAgZmlsdGVyKChldmVudCkgPT4gZXZlbnQgPT09ICdlbnRlcmVkJyksXG4gICAgICAgIHRha2UoMSksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5fYWZ0ZXJPcGVuZWQubmV4dCgpO1xuICAgICAgICB0aGlzLl9hZnRlck9wZW5lZC5jb21wbGV0ZSgpO1xuICAgICAgfSk7XG5cbiAgICBfY29udGFpbmVySW5zdGFuY2UuX2FuaW1hdGVkTGlmZWN5Y2xlLnN0YXRlJFxuICAgICAgLnBpcGUoXG4gICAgICAgIGZpbHRlcigoZXZlbnQpID0+IGV2ZW50ID09PSAnbGVmdCcpLFxuICAgICAgICB0YWtlKDEpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuX2ZpbmlzaE92ZXJsYXlDbG9zZSgpO1xuICAgICAgfSk7XG5cbiAgICBfcmVmLm92ZXJsYXlSZWYuZGV0YWNobWVudHMoKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5fYmVmb3JlQ2xvc2VkLm5leHQodGhpcy5fcmVzdWx0KTtcbiAgICAgIHRoaXMuX2JlZm9yZUNsb3NlZC5jb21wbGV0ZSgpO1xuICAgICAgdGhpcy5fZmluaXNoT3ZlcmxheUNsb3NlKCk7XG4gICAgfSk7XG5cbiAgICBtZXJnZShcbiAgICAgIHRoaXMuYmFja2Ryb3BDbGljaygpLFxuICAgICAgdGhpcy5rZXlkb3duRXZlbnRzKCkucGlwZShcbiAgICAgICAgZmlsdGVyKChldmVudCkgPT4gZXZlbnQua2V5Q29kZSA9PT0gRVNDQVBFICYmICF0aGlzLmRpc2FibGVDbG9zZSAmJiAhaGFzTW9kaWZpZXJLZXkoZXZlbnQpKSxcbiAgICAgICksXG4gICAgKVxuICAgICAgLnBpcGUoc2tpcFVudGlsKF9jb250YWluZXJJbnN0YW5jZS5fYW5pbWF0ZWRMaWZlY3ljbGUuc3RhdGUkLnBpcGUoZmlsdGVyKChlKSA9PiBlID09PSAnZW50ZXJpbmcnKSkpKVxuICAgICAgLnN1YnNjcmliZSgoZXZlbnQpID0+IHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgICh0aGlzLl9pc0VzY0Nsb3NlQ29udHJvbGxlZEV4dGVybmFsbHkgJiYgZXZlbnQudHlwZSA9PT0gJ2tleWRvd24nKSB8fFxuICAgICAgICAgICh0aGlzLl9pc0JhY2tkcm9wQ2xvc2VDb250cm9sbGVkRXh0ZXJuYWxseSAmJiBldmVudC50eXBlICE9PSAna2V5ZG93bicpXG4gICAgICAgICkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghdGhpcy5kaXNhYmxlQ2xvc2UgJiYgIXRoaXMuX2ludGVybmFsRGlzYWJsZUNsb3NlKSB7XG4gICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICB0aGlzLl9jbG9zZU92ZXJsYXlWaWEoZXZlbnQudHlwZSA9PT0gJ2tleWRvd24nID8gJ2tleWJvYXJkJyA6ICdtb3VzZScsIHVuZGVmaW5lZCwgdHJ1ZSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbiAgY2xvc2UocmVzdWx0PzogUiwgZm9yY2U/OiBib29sZWFuKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX3N0YXRlID09PSBPVkVSTEFZX1NUQVRFLkNMT1NJTkcgfHwgdGhpcy5fc3RhdGUgPT09IE9WRVJMQVlfU1RBVEUuQ0xPU0VEKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5fY2xvc2VDYWxsZWQubmV4dChyZXN1bHQpO1xuXG4gICAgaWYgKHRoaXMuX2lzQ2xvc2VGbkNsb3NlQ29udHJvbGxlZEV4dGVybmFsbHkgJiYgIWZvcmNlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5fcmVzdWx0ID0gcmVzdWx0O1xuXG4gICAgdGhpcy5fY29udGFpbmVySW5zdGFuY2UuX2FuaW1hdGVkTGlmZWN5Y2xlLnN0YXRlJFxuICAgICAgLnBpcGUoXG4gICAgICAgIGZpbHRlcigoZXZlbnQpID0+IGV2ZW50ID09PSAnbGVhdmluZycpLFxuICAgICAgICB0YWtlKDEpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuX2JlZm9yZUNsb3NlZC5uZXh0KHJlc3VsdCk7XG4gICAgICAgIHRoaXMuX2JlZm9yZUNsb3NlZC5jb21wbGV0ZSgpO1xuICAgICAgICB0aGlzLl9yZWYub3ZlcmxheVJlZi5kZXRhY2hCYWNrZHJvcCgpO1xuICAgICAgfSk7XG5cbiAgICB0aGlzLl9jb250YWluZXJJbnN0YW5jZS5fYW5pbWF0ZWRMaWZlY3ljbGUuc3RhdGUkXG4gICAgICAucGlwZShcbiAgICAgICAgZmlsdGVyKChldmVudCkgPT4gZXZlbnQgPT09ICdsZWZ0JyksXG4gICAgICAgIHRha2UoMSksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMuX2ZpbmlzaE92ZXJsYXlDbG9zZSgpKTtcblxuICAgIHRoaXMuX3N0YXRlID0gT1ZFUkxBWV9TVEFURS5DTE9TSU5HO1xuICAgIHRoaXMuX2NvbnRhaW5lckluc3RhbmNlLl9hbmltYXRlZExpZmVjeWNsZS5sZWF2ZSgpO1xuICB9XG5cbiAgYWZ0ZXJPcGVuZWQoKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuX2FmdGVyT3BlbmVkO1xuICB9XG5cbiAgYWZ0ZXJDbG9zZWQoKTogT2JzZXJ2YWJsZTxSIHwgdW5kZWZpbmVkPiB7XG4gICAgcmV0dXJuIHRoaXMuX3JlZi5jbG9zZWQ7XG4gIH1cblxuICBiZWZvcmVDbG9zZWQoKTogT2JzZXJ2YWJsZTxSIHwgdW5kZWZpbmVkPiB7XG4gICAgcmV0dXJuIHRoaXMuX2JlZm9yZUNsb3NlZDtcbiAgfVxuXG4gIGJhY2tkcm9wQ2xpY2soKTogT2JzZXJ2YWJsZTxNb3VzZUV2ZW50PiB7XG4gICAgcmV0dXJuIHRoaXMuX3JlZi5iYWNrZHJvcENsaWNrO1xuICB9XG5cbiAga2V5ZG93bkV2ZW50cygpOiBPYnNlcnZhYmxlPEtleWJvYXJkRXZlbnQ+IHtcbiAgICByZXR1cm4gdGhpcy5fcmVmLmtleWRvd25FdmVudHM7XG4gIH1cblxuICBjbG9zZUNhbGxlZCgpOiBPYnNlcnZhYmxlPFIgfCB1bmRlZmluZWQ+IHtcbiAgICByZXR1cm4gdGhpcy5fY2xvc2VDYWxsZWQ7XG4gIH1cblxuICB1cGRhdGVQb3NpdGlvbihwb3NpdGlvbj86IE92ZXJsYXlQb3NpdGlvbik6IHRoaXMge1xuICAgIGNvbnN0IHN0cmF0ZWd5ID0gdGhpcy5fcmVmLmNvbmZpZy5wb3NpdGlvblN0cmF0ZWd5IGFzIEdsb2JhbFBvc2l0aW9uU3RyYXRlZ3k7XG5cbiAgICBpZiAocG9zaXRpb24gJiYgKHBvc2l0aW9uLmxlZnQgfHwgcG9zaXRpb24ucmlnaHQpKSB7XG4gICAgICBwb3NpdGlvbi5sZWZ0ID8gc3RyYXRlZ3kubGVmdChwb3NpdGlvbi5sZWZ0KSA6IHN0cmF0ZWd5LnJpZ2h0KHBvc2l0aW9uLnJpZ2h0KTtcbiAgICB9IGVsc2Uge1xuICAgICAgc3RyYXRlZ3kuY2VudGVySG9yaXpvbnRhbGx5KCk7XG4gICAgfVxuXG4gICAgaWYgKHBvc2l0aW9uICYmIChwb3NpdGlvbi50b3AgfHwgcG9zaXRpb24uYm90dG9tKSkge1xuICAgICAgcG9zaXRpb24udG9wID8gc3RyYXRlZ3kudG9wKHBvc2l0aW9uLnRvcCkgOiBzdHJhdGVneS5ib3R0b20ocG9zaXRpb24uYm90dG9tKTtcbiAgICB9IGVsc2Uge1xuICAgICAgc3RyYXRlZ3kuY2VudGVyVmVydGljYWxseSgpO1xuICAgIH1cblxuICAgIHRoaXMuX3JlZi51cGRhdGVQb3NpdGlvbigpO1xuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICB1cGRhdGVTaXplKHdpZHRoID0gJycsIGhlaWdodCA9ICcnKTogdGhpcyB7XG4gICAgdGhpcy5fcmVmLnVwZGF0ZVNpemUod2lkdGgsIGhlaWdodCk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBhZGRQYW5lbENsYXNzKGNsYXNzZXM6IHN0cmluZyB8IHN0cmluZ1tdKTogdGhpcyB7XG4gICAgdGhpcy5fcmVmLmFkZFBhbmVsQ2xhc3MoY2xhc3Nlcyk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICByZW1vdmVQYW5lbENsYXNzKGNsYXNzZXM6IHN0cmluZyB8IHN0cmluZ1tdKTogdGhpcyB7XG4gICAgdGhpcy5fcmVmLnJlbW92ZVBhbmVsQ2xhc3MoY2xhc3Nlcyk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBnZXRTdGF0ZSgpOiBPdmVybGF5U3RhdGUge1xuICAgIHJldHVybiB0aGlzLl9zdGF0ZTtcbiAgfVxuXG4gIHByaXZhdGUgX2ZpbmlzaE92ZXJsYXlDbG9zZSgpIHtcbiAgICB0aGlzLl9zdGF0ZSA9IE9WRVJMQVlfU1RBVEUuQ0xPU0VEO1xuICAgIHRoaXMuX3JlZi5jbG9zZSh0aGlzLl9yZXN1bHQsIHsgZm9jdXNPcmlnaW46IHRoaXMuX2Nsb3NlSW50ZXJhY3Rpb25UeXBlIH0pO1xuICAgIHRoaXMuY29tcG9uZW50SW5zdGFuY2UgPSBudWxsO1xuICB9XG5cbiAgX2Nsb3NlT3ZlcmxheVZpYShpbnRlcmFjdGlvblR5cGU6IEZvY3VzT3JpZ2luLCByZXN1bHQ/OiBSLCBmb3JjZT86IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9jbG9zZUludGVyYWN0aW9uVHlwZSA9IGludGVyYWN0aW9uVHlwZTtcbiAgICByZXR1cm4gdGhpcy5jbG9zZShyZXN1bHQsIGZvcmNlKTtcbiAgfVxuXG4gIF9hZGRJbnRlcm5hbEJhY2tkcm9wQ2xvc2VJbml0aWF0b3IoaW5pdGlhdG9ySWQ6IHN0cmluZyB8IG51bWJlcikge1xuICAgIGlmICh0aGlzLmRpc2FibGVDbG9zZSkgcmV0dXJuO1xuXG4gICAgdGhpcy5fZGlzYWJsZUNsb3NlRnJvbUludGVybmFsSW5pdGlhdG9ycy5hZGQoaW5pdGlhdG9ySWQpO1xuICB9XG5cbiAgX3JlbW92ZUludGVybmFsQmFja2Ryb3BDbG9zZUluaXRpYXRvcihpbml0aWF0b3JJZDogc3RyaW5nIHwgbnVtYmVyKSB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZUNsb3NlKSByZXR1cm47XG5cbiAgICB0aGlzLl9kaXNhYmxlQ2xvc2VGcm9tSW50ZXJuYWxJbml0aWF0b3JzLmRlbGV0ZShpbml0aWF0b3JJZCk7XG4gIH1cbn1cbiJdfQ==
|
|
157
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmxheS1yZWYuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Nkay9zcmMvbGliL2NvbXBvbmVudHMvb3ZlcmxheS9jb21wb25lbnRzL292ZXJsYXkvdXRpbHMvb3ZlcmxheS1yZWYudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxjQUFjLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUcvRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUvRCxPQUFPLEVBQUUsYUFBYSxFQUFnRCxNQUFNLFVBQVUsQ0FBQztBQVF2Riw4REFBOEQ7QUFDOUQsTUFBTSxPQUFPLFVBQVU7SUFvQ3JCLElBQUkscUJBQXFCO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLG1DQUFtQyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVELElBQUksT0FBTztRQUNULE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQztJQUNuQixDQUFDO0lBRUQsWUFDVSxJQUF3QixFQUNoQyxNQUFxQixFQUNkLGtCQUE2QztRQUY1QyxTQUFJLEdBQUosSUFBSSxDQUFvQjtRQUV6Qix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQTJCO1FBOUN0RCxzQkFBaUIsR0FBYSxJQUFJLENBQUM7UUFDMUIsaUJBQVksR0FBMkIsSUFBSSxDQUFDO1FBS3BDLGlCQUFZLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQUNuQyxrQkFBYSxHQUFHLElBQUksT0FBTyxFQUFpQixDQUFDO1FBQzdDLGlCQUFZLEdBQUcsSUFBSSxPQUFPLEVBQTRCLENBQUM7UUFHaEUsV0FBTSxHQUFpQixhQUFhLENBQUMsSUFBSSxDQUFDO1FBT2xEOztXQUVHO1FBQ0gsb0NBQStCLEdBQUcsS0FBSyxDQUFDO1FBRXhDOztXQUVHO1FBQ0gseUNBQW9DLEdBQUcsS0FBSyxDQUFDO1FBRTdDOztXQUVHO1FBQ0gsd0NBQW1DLEdBQUcsS0FBSyxDQUFDO1FBRXBDLHdDQUFtQyxHQUFHLElBQUksR0FBRyxFQUFtQixDQUFDO1FBZXZFLElBQUksQ0FBQyxZQUFZLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQztRQUN4QyxJQUFJLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUM7UUFFbEIsa0JBQWtCLENBQUMsa0JBQWtCLENBQUMsTUFBTTthQUN6QyxJQUFJLENBQ0gsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLEtBQUssU0FBUyxDQUFDLEVBQ3RDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FDUjthQUNBLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3pCLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDL0IsQ0FBQyxDQUFDLENBQUM7UUFFTCxrQkFBa0IsQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNO2FBQ3pDLElBQUksQ0FDSCxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssS0FBSyxNQUFNLENBQUMsRUFDbkMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUNSO2FBQ0EsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNkLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1FBQzdCLENBQUMsQ0FBQyxDQUFDO1FBRUwsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQzNDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUN0QyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQzlCLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1FBQzdCLENBQUMsQ0FBQyxDQUFDO1FBRUgsS0FBSyxDQUNILElBQUksQ0FBQyxhQUFhLEVBQUUsRUFDcEIsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLElBQUksQ0FDdkIsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsT0FBTyxLQUFLLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FDNUYsQ0FDRjthQUNFLElBQUksQ0FBQyxTQUFTLENBQUMsa0JBQWtCLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDbkcsU0FBUyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDbkIsSUFDRSxDQUFDLElBQUksQ0FBQywrQkFBK0IsSUFBSSxLQUFLLENBQUMsSUFBSSxLQUFLLFNBQVMsQ0FBQztnQkFDbEUsQ0FBQyxJQUFJLENBQUMsb0NBQW9DLElBQUksS0FBSyxDQUFDLElBQUksS0FBSyxTQUFTLENBQUMsRUFDdkU7Z0JBQ0EsT0FBTzthQUNSO1lBRUQsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLElBQUksQ0FBQyxJQUFJLENBQUMscUJBQXFCLEVBQUU7Z0JBQ3JELEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztnQkFDdkIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxTQUFTLEVBQUUsSUFBSSxDQUFDLENBQUM7YUFDekY7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxLQUFLLENBQUMsTUFBVSxFQUFFLEtBQWU7UUFDL0IsSUFBSSxJQUFJLENBQUMsTUFBTSxLQUFLLGFBQWEsQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxhQUFhLENBQUMsTUFBTSxFQUFFO1lBQ2pGLE9BQU87U0FDUjtRQUVELElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxLQUFLLElBQUksS0FBSyxFQUFFLENBQUMsQ0FBQztRQUUzRCxJQUFJLElBQUksQ0FBQyxtQ0FBbUMsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUN0RCxPQUFPO1NBQ1I7UUFFRCxJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQztRQUV0QixJQUFJLENBQUMsa0JBQWtCLENBQUMsa0JBQWtCLENBQUMsTUFBTTthQUM5QyxJQUFJLENBQ0gsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLEtBQUssU0FBUyxDQUFDLEVBQ3RDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FDUjthQUNBLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNoQyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQzlCLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3hDLENBQUMsQ0FBQyxDQUFDO1FBRUwsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGtCQUFrQixDQUFDLE1BQU07YUFDOUMsSUFBSSxDQUNILE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxLQUFLLE1BQU0sQ0FBQyxFQUNuQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQ1I7YUFDQSxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUMsQ0FBQztRQUUvQyxJQUFJLENBQUMsTUFBTSxHQUFHLGFBQWEsQ0FBQyxPQUFPLENBQUM7UUFDcEMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGtCQUFrQixDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3JELENBQUM7SUFFRCxXQUFXO1FBQ1QsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzFDLENBQUM7SUFFRCxXQUFXO1FBQ1QsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUMxQixDQUFDO0lBRUQsWUFBWTtRQUNWLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUMzQyxDQUFDO0lBRUQsYUFBYTtRQUNYLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDakMsQ0FBQztJQUVELGFBQWE7UUFDWCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDO0lBQ2pDLENBQUM7SUFFRCxXQUFXO1FBQ1QsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzFDLENBQUM7SUFFRCxjQUFjLENBQUMsUUFBMEI7UUFDdkMsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsZ0JBQTBDLENBQUM7UUFFN0UsSUFBSSxRQUFRLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxJQUFJLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUNqRCxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDL0U7YUFBTTtZQUNMLFFBQVEsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1NBQy9CO1FBRUQsSUFBSSxRQUFRLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxJQUFJLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUNqRCxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDOUU7YUFBTTtZQUNMLFFBQVEsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1NBQzdCO1FBRUQsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUUzQixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxVQUFVLENBQUMsS0FBSyxHQUFHLEVBQUUsRUFBRSxNQUFNLEdBQUcsRUFBRTtRQUNoQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDcEMsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsYUFBYSxDQUFDLE9BQTBCO1FBQ3RDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2pDLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELGdCQUFnQixDQUFDLE9BQTBCO1FBQ3pDLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDcEMsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsUUFBUTtRQUNOLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUNyQixDQUFDO0lBRU8sbUJBQW1CO1FBQ3pCLElBQUksQ0FBQyxNQUFNLEdBQUcsYUFBYSxDQUFDLE1BQU0sQ0FBQztRQUNuQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEVBQUUsV0FBVyxFQUFFLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDLENBQUM7UUFDM0UsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQztJQUNoQyxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsZUFBNEIsRUFBRSxNQUFVLEVBQUUsS0FBZTtRQUN4RSxJQUFJLENBQUMscUJBQXFCLEdBQUcsZUFBZSxDQUFDO1FBQzdDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVELGtDQUFrQyxDQUFDLFdBQTRCO1FBQzdELElBQUksSUFBSSxDQUFDLFlBQVk7WUFBRSxPQUFPO1FBRTlCLElBQUksQ0FBQyxtQ0FBbUMsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUVELHFDQUFxQyxDQUFDLFdBQTRCO1FBQ2hFLElBQUksSUFBSSxDQUFDLFlBQVk7WUFBRSxPQUFPO1FBRTlCLElBQUksQ0FBQyxtQ0FBbUMsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDL0QsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRm9jdXNPcmlnaW4gfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XG5pbXBvcnQgeyBEaWFsb2dSZWYgYXMgQ2RrRGlhbG9nUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RpYWxvZyc7XG5pbXBvcnQgeyBFU0NBUEUsIGhhc01vZGlmaWVyS2V5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2tleWNvZGVzJztcbmltcG9ydCB7IEdsb2JhbFBvc2l0aW9uU3RyYXRlZ3kgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBDb21wb25lbnRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YmplY3QsIGZpbHRlciwgbWVyZ2UsIHNraXBVbnRpbCwgdGFrZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgT3ZlcmxheUNvbnRhaW5lckNvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvbmVudHMnO1xuaW1wb3J0IHsgT1ZFUkxBWV9TVEFURSwgT3ZlcmxheUNvbmZpZywgT3ZlcmxheVBvc2l0aW9uLCBPdmVybGF5U3RhdGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG5leHBvcnQgaW50ZXJmYWNlIE92ZXJsYXlDbG9zZUNhbGxFdmVudDxSID0gYW55PiB7XG4gIHJlc3VsdDogUiB8IHVuZGVmaW5lZDtcbiAgZm9yY2VkOiBib29sZWFuO1xufVxuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuZXhwb3J0IGNsYXNzIE92ZXJsYXlSZWY8VCA9IGFueSwgUiA9IGFueT4ge1xuICBjb21wb25lbnRJbnN0YW5jZTogVCB8IG51bGwgPSBudWxsO1xuICByZWFkb25seSBjb21wb25lbnRSZWY6IENvbXBvbmVudFJlZjxUPiB8IG51bGwgPSBudWxsO1xuICBkaXNhYmxlQ2xvc2U6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG5cbiAgaWQ6IHN0cmluZztcblxuICBwcml2YXRlIHJlYWRvbmx5IF9hZnRlck9wZW5lZCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2JlZm9yZUNsb3NlZCA9IG5ldyBTdWJqZWN0PFIgfCB1bmRlZmluZWQ+KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2Nsb3NlQ2FsbGVkID0gbmV3IFN1YmplY3Q8T3ZlcmxheUNsb3NlQ2FsbEV2ZW50PFI+PigpO1xuXG4gIHByaXZhdGUgX3Jlc3VsdDogUiB8IHVuZGVmaW5lZDtcbiAgcHJpdmF0ZSBfc3RhdGU6IE92ZXJsYXlTdGF0ZSA9IE9WRVJMQVlfU1RBVEUuT1BFTjtcblxuICAvKipcbiAgICogQGludGVybmFsXG4gICAqL1xuICBfY2xvc2VJbnRlcmFjdGlvblR5cGU6IEZvY3VzT3JpZ2luIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIF9pc0VzY0Nsb3NlQ29udHJvbGxlZEV4dGVybmFsbHkgPSBmYWxzZTtcblxuICAvKipcbiAgICogQGludGVybmFsXG4gICAqL1xuICBfaXNCYWNrZHJvcENsb3NlQ29udHJvbGxlZEV4dGVybmFsbHkgPSBmYWxzZTtcblxuICAvKipcbiAgICogQGludGVybmFsXG4gICAqL1xuICBfaXNDbG9zZUZuQ2xvc2VDb250cm9sbGVkRXh0ZXJuYWxseSA9IGZhbHNlO1xuXG4gIHByaXZhdGUgX2Rpc2FibGVDbG9zZUZyb21JbnRlcm5hbEluaXRpYXRvcnMgPSBuZXcgU2V0PHN0cmluZyB8IG51bWJlcj4oKTtcblxuICBnZXQgX2ludGVybmFsRGlzYWJsZUNsb3NlKCkge1xuICAgIHJldHVybiB0aGlzLl9kaXNhYmxlQ2xvc2VGcm9tSW50ZXJuYWxJbml0aWF0b3JzLnNpemUgPiAwO1xuICB9XG5cbiAgZ2V0IF9jZGtSZWYoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3JlZjtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgX3JlZjogQ2RrRGlhbG9nUmVmPFIsIFQ+LFxuICAgIGNvbmZpZzogT3ZlcmxheUNvbmZpZyxcbiAgICBwdWJsaWMgX2NvbnRhaW5lckluc3RhbmNlOiBPdmVybGF5Q29udGFpbmVyQ29tcG9uZW50LFxuICApIHtcbiAgICB0aGlzLmRpc2FibGVDbG9zZSA9IGNvbmZpZy5kaXNhYmxlQ2xvc2U7XG4gICAgdGhpcy5pZCA9IF9yZWYuaWQ7XG5cbiAgICBfY29udGFpbmVySW5zdGFuY2UuX2FuaW1hdGVkTGlmZWN5Y2xlLnN0YXRlJFxuICAgICAgLnBpcGUoXG4gICAgICAgIGZpbHRlcigoZXZlbnQpID0+IGV2ZW50ID09PSAnZW50ZXJlZCcpLFxuICAgICAgICB0YWtlKDEpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuX2FmdGVyT3BlbmVkLm5leHQoKTtcbiAgICAgICAgdGhpcy5fYWZ0ZXJPcGVuZWQuY29tcGxldGUoKTtcbiAgICAgIH0pO1xuXG4gICAgX2NvbnRhaW5lckluc3RhbmNlLl9hbmltYXRlZExpZmVjeWNsZS5zdGF0ZSRcbiAgICAgIC5waXBlKFxuICAgICAgICBmaWx0ZXIoKGV2ZW50KSA9PiBldmVudCA9PT0gJ2xlZnQnKSxcbiAgICAgICAgdGFrZSgxKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLl9maW5pc2hPdmVybGF5Q2xvc2UoKTtcbiAgICAgIH0pO1xuXG4gICAgX3JlZi5vdmVybGF5UmVmLmRldGFjaG1lbnRzKCkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMuX2JlZm9yZUNsb3NlZC5uZXh0KHRoaXMuX3Jlc3VsdCk7XG4gICAgICB0aGlzLl9iZWZvcmVDbG9zZWQuY29tcGxldGUoKTtcbiAgICAgIHRoaXMuX2ZpbmlzaE92ZXJsYXlDbG9zZSgpO1xuICAgIH0pO1xuXG4gICAgbWVyZ2UoXG4gICAgICB0aGlzLmJhY2tkcm9wQ2xpY2soKSxcbiAgICAgIHRoaXMua2V5ZG93bkV2ZW50cygpLnBpcGUoXG4gICAgICAgIGZpbHRlcigoZXZlbnQpID0+IGV2ZW50LmtleUNvZGUgPT09IEVTQ0FQRSAmJiAhdGhpcy5kaXNhYmxlQ2xvc2UgJiYgIWhhc01vZGlmaWVyS2V5KGV2ZW50KSksXG4gICAgICApLFxuICAgIClcbiAgICAgIC5waXBlKHNraXBVbnRpbChfY29udGFpbmVySW5zdGFuY2UuX2FuaW1hdGVkTGlmZWN5Y2xlLnN0YXRlJC5waXBlKGZpbHRlcigoZSkgPT4gZSA9PT0gJ2VudGVyaW5nJykpKSlcbiAgICAgIC5zdWJzY3JpYmUoKGV2ZW50KSA9PiB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICAodGhpcy5faXNFc2NDbG9zZUNvbnRyb2xsZWRFeHRlcm5hbGx5ICYmIGV2ZW50LnR5cGUgPT09ICdrZXlkb3duJykgfHxcbiAgICAgICAgICAodGhpcy5faXNCYWNrZHJvcENsb3NlQ29udHJvbGxlZEV4dGVybmFsbHkgJiYgZXZlbnQudHlwZSAhPT0gJ2tleWRvd24nKVxuICAgICAgICApIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIXRoaXMuZGlzYWJsZUNsb3NlICYmICF0aGlzLl9pbnRlcm5hbERpc2FibGVDbG9zZSkge1xuICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgdGhpcy5fY2xvc2VPdmVybGF5VmlhKGV2ZW50LnR5cGUgPT09ICdrZXlkb3duJyA/ICdrZXlib2FyZCcgOiAnbW91c2UnLCB1bmRlZmluZWQsIHRydWUpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxuXG4gIGNsb3NlKHJlc3VsdD86IFIsIGZvcmNlPzogYm9vbGVhbik6IHZvaWQge1xuICAgIGlmICh0aGlzLl9zdGF0ZSA9PT0gT1ZFUkxBWV9TVEFURS5DTE9TSU5HIHx8IHRoaXMuX3N0YXRlID09PSBPVkVSTEFZX1NUQVRFLkNMT1NFRCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuX2Nsb3NlQ2FsbGVkLm5leHQoeyByZXN1bHQsIGZvcmNlZDogZm9yY2UgPz8gZmFsc2UgfSk7XG5cbiAgICBpZiAodGhpcy5faXNDbG9zZUZuQ2xvc2VDb250cm9sbGVkRXh0ZXJuYWxseSAmJiAhZm9yY2UpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLl9yZXN1bHQgPSByZXN1bHQ7XG5cbiAgICB0aGlzLl9jb250YWluZXJJbnN0YW5jZS5fYW5pbWF0ZWRMaWZlY3ljbGUuc3RhdGUkXG4gICAgICAucGlwZShcbiAgICAgICAgZmlsdGVyKChldmVudCkgPT4gZXZlbnQgPT09ICdsZWF2aW5nJyksXG4gICAgICAgIHRha2UoMSksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5fYmVmb3JlQ2xvc2VkLm5leHQocmVzdWx0KTtcbiAgICAgICAgdGhpcy5fYmVmb3JlQ2xvc2VkLmNvbXBsZXRlKCk7XG4gICAgICAgIHRoaXMuX3JlZi5vdmVybGF5UmVmLmRldGFjaEJhY2tkcm9wKCk7XG4gICAgICB9KTtcblxuICAgIHRoaXMuX2NvbnRhaW5lckluc3RhbmNlLl9hbmltYXRlZExpZmVjeWNsZS5zdGF0ZSRcbiAgICAgIC5waXBlKFxuICAgICAgICBmaWx0ZXIoKGV2ZW50KSA9PiBldmVudCA9PT0gJ2xlZnQnKSxcbiAgICAgICAgdGFrZSgxKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5fZmluaXNoT3ZlcmxheUNsb3NlKCkpO1xuXG4gICAgdGhpcy5fc3RhdGUgPSBPVkVSTEFZX1NUQVRFLkNMT1NJTkc7XG4gICAgdGhpcy5fY29udGFpbmVySW5zdGFuY2UuX2FuaW1hdGVkTGlmZWN5Y2xlLmxlYXZlKCk7XG4gIH1cblxuICBhZnRlck9wZW5lZCgpIHtcbiAgICByZXR1cm4gdGhpcy5fYWZ0ZXJPcGVuZWQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBhZnRlckNsb3NlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5fcmVmLmNsb3NlZDtcbiAgfVxuXG4gIGJlZm9yZUNsb3NlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5fYmVmb3JlQ2xvc2VkLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgYmFja2Ryb3BDbGljaygpIHtcbiAgICByZXR1cm4gdGhpcy5fcmVmLmJhY2tkcm9wQ2xpY2s7XG4gIH1cblxuICBrZXlkb3duRXZlbnRzKCkge1xuICAgIHJldHVybiB0aGlzLl9yZWYua2V5ZG93bkV2ZW50cztcbiAgfVxuXG4gIGNsb3NlQ2FsbGVkKCkge1xuICAgIHJldHVybiB0aGlzLl9jbG9zZUNhbGxlZC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIHVwZGF0ZVBvc2l0aW9uKHBvc2l0aW9uPzogT3ZlcmxheVBvc2l0aW9uKTogdGhpcyB7XG4gICAgY29uc3Qgc3RyYXRlZ3kgPSB0aGlzLl9yZWYuY29uZmlnLnBvc2l0aW9uU3RyYXRlZ3kgYXMgR2xvYmFsUG9zaXRpb25TdHJhdGVneTtcblxuICAgIGlmIChwb3NpdGlvbiAmJiAocG9zaXRpb24ubGVmdCB8fCBwb3NpdGlvbi5yaWdodCkpIHtcbiAgICAgIHBvc2l0aW9uLmxlZnQgPyBzdHJhdGVneS5sZWZ0KHBvc2l0aW9uLmxlZnQpIDogc3RyYXRlZ3kucmlnaHQocG9zaXRpb24ucmlnaHQpO1xuICAgIH0gZWxzZSB7XG4gICAgICBzdHJhdGVneS5jZW50ZXJIb3Jpem9udGFsbHkoKTtcbiAgICB9XG5cbiAgICBpZiAocG9zaXRpb24gJiYgKHBvc2l0aW9uLnRvcCB8fCBwb3NpdGlvbi5ib3R0b20pKSB7XG4gICAgICBwb3NpdGlvbi50b3AgPyBzdHJhdGVneS50b3AocG9zaXRpb24udG9wKSA6IHN0cmF0ZWd5LmJvdHRvbShwb3NpdGlvbi5ib3R0b20pO1xuICAgIH0gZWxzZSB7XG4gICAgICBzdHJhdGVneS5jZW50ZXJWZXJ0aWNhbGx5KCk7XG4gICAgfVxuXG4gICAgdGhpcy5fcmVmLnVwZGF0ZVBvc2l0aW9uKCk7XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHVwZGF0ZVNpemUod2lkdGggPSAnJywgaGVpZ2h0ID0gJycpOiB0aGlzIHtcbiAgICB0aGlzLl9yZWYudXBkYXRlU2l6ZSh3aWR0aCwgaGVpZ2h0KTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIGFkZFBhbmVsQ2xhc3MoY2xhc3Nlczogc3RyaW5nIHwgc3RyaW5nW10pOiB0aGlzIHtcbiAgICB0aGlzLl9yZWYuYWRkUGFuZWxDbGFzcyhjbGFzc2VzKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHJlbW92ZVBhbmVsQ2xhc3MoY2xhc3Nlczogc3RyaW5nIHwgc3RyaW5nW10pOiB0aGlzIHtcbiAgICB0aGlzLl9yZWYucmVtb3ZlUGFuZWxDbGFzcyhjbGFzc2VzKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIGdldFN0YXRlKCk6IE92ZXJsYXlTdGF0ZSB7XG4gICAgcmV0dXJuIHRoaXMuX3N0YXRlO1xuICB9XG5cbiAgcHJpdmF0ZSBfZmluaXNoT3ZlcmxheUNsb3NlKCkge1xuICAgIHRoaXMuX3N0YXRlID0gT1ZFUkxBWV9TVEFURS5DTE9TRUQ7XG4gICAgdGhpcy5fcmVmLmNsb3NlKHRoaXMuX3Jlc3VsdCwgeyBmb2N1c09yaWdpbjogdGhpcy5fY2xvc2VJbnRlcmFjdGlvblR5cGUgfSk7XG4gICAgdGhpcy5jb21wb25lbnRJbnN0YW5jZSA9IG51bGw7XG4gIH1cblxuICBfY2xvc2VPdmVybGF5VmlhKGludGVyYWN0aW9uVHlwZTogRm9jdXNPcmlnaW4sIHJlc3VsdD86IFIsIGZvcmNlPzogYm9vbGVhbikge1xuICAgIHRoaXMuX2Nsb3NlSW50ZXJhY3Rpb25UeXBlID0gaW50ZXJhY3Rpb25UeXBlO1xuICAgIHJldHVybiB0aGlzLmNsb3NlKHJlc3VsdCwgZm9yY2UpO1xuICB9XG5cbiAgX2FkZEludGVybmFsQmFja2Ryb3BDbG9zZUluaXRpYXRvcihpbml0aWF0b3JJZDogc3RyaW5nIHwgbnVtYmVyKSB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZUNsb3NlKSByZXR1cm47XG5cbiAgICB0aGlzLl9kaXNhYmxlQ2xvc2VGcm9tSW50ZXJuYWxJbml0aWF0b3JzLmFkZChpbml0aWF0b3JJZCk7XG4gIH1cblxuICBfcmVtb3ZlSW50ZXJuYWxCYWNrZHJvcENsb3NlSW5pdGlhdG9yKGluaXRpYXRvcklkOiBzdHJpbmcgfCBudW1iZXIpIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlQ2xvc2UpIHJldHVybjtcblxuICAgIHRoaXMuX2Rpc2FibGVDbG9zZUZyb21JbnRlcm5hbEluaXRpYXRvcnMuZGVsZXRlKGluaXRpYXRvcklkKTtcbiAgfVxufVxuIl19
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ESCAPE } from '@angular/cdk/keycodes';
|
|
2
2
|
import { assertInInjectionContext, inject, isDevMode } from '@angular/core';
|
|
3
3
|
import { createDestroy, equal } from '@ethlete/core';
|
|
4
|
-
import { Observable, filter, from, map, merge, of, switchMap,
|
|
4
|
+
import { Observable, filter, finalize, from, map, merge, of, switchMap, takeUntil, tap } from 'rxjs';
|
|
5
5
|
import { OverlayRef } from '../components';
|
|
6
6
|
/**
|
|
7
7
|
* A utility function to enhance the ux of overlays containing forms.
|
|
@@ -39,41 +39,59 @@ export const createOverlayDismissChecker = (config) => {
|
|
|
39
39
|
}
|
|
40
40
|
}
|
|
41
41
|
if (checkCloseCall) {
|
|
42
|
-
eventStreams.push(overlayRef.closeCalled());
|
|
42
|
+
eventStreams.push(overlayRef.closeCalled().pipe(filter((e) => !e.forced), map((e) => e.result)));
|
|
43
43
|
}
|
|
44
44
|
const sub = merge(...eventStreams)
|
|
45
|
-
.pipe(
|
|
46
|
-
const
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
if (checkResponse instanceof Observable) {
|
|
58
|
-
nextObservable = checkResponse;
|
|
59
|
-
}
|
|
60
|
-
else if (checkResponse instanceof Promise) {
|
|
61
|
-
nextObservable = from(checkResponse);
|
|
45
|
+
.pipe(switchMap((eventOrResult) => {
|
|
46
|
+
const isDefaultFormValue = equal(form.getRawValue(), defaultValue);
|
|
47
|
+
if (isDefaultFormValue) {
|
|
48
|
+
return of(eventOrResult).pipe(tap(() => {
|
|
49
|
+
sub.unsubscribe();
|
|
50
|
+
if (eventOrResult === 'keyboard' || eventOrResult === 'mouse') {
|
|
51
|
+
overlayRef._closeOverlayVia(eventOrResult, undefined, true);
|
|
52
|
+
}
|
|
53
|
+
else {
|
|
54
|
+
overlayRef.close(eventOrResult, true);
|
|
55
|
+
}
|
|
56
|
+
}));
|
|
62
57
|
}
|
|
63
58
|
else {
|
|
64
|
-
|
|
59
|
+
return of(eventOrResult).pipe(filter(() => {
|
|
60
|
+
const wasKeyboard = overlayRef._closeInteractionType === 'keyboard';
|
|
61
|
+
const wasMouse = overlayRef._closeInteractionType === 'mouse';
|
|
62
|
+
if ((wasKeyboard && !checkEscapeKey) || (wasMouse && !checkBackdropClick)) {
|
|
63
|
+
return false;
|
|
64
|
+
}
|
|
65
|
+
return !overlayRef._internalDisableClose;
|
|
66
|
+
}), switchMap(() => {
|
|
67
|
+
const checkResponse = dismissCheckFn(form.getRawValue());
|
|
68
|
+
let nextObservable;
|
|
69
|
+
if (checkResponse instanceof Observable) {
|
|
70
|
+
nextObservable = checkResponse;
|
|
71
|
+
}
|
|
72
|
+
else if (checkResponse instanceof Promise) {
|
|
73
|
+
nextObservable = from(checkResponse);
|
|
74
|
+
}
|
|
75
|
+
else {
|
|
76
|
+
nextObservable = of(checkResponse);
|
|
77
|
+
}
|
|
78
|
+
return nextObservable.pipe(filter((checkFnResult) => !!checkFnResult), tap(() => {
|
|
79
|
+
sub.unsubscribe();
|
|
80
|
+
if (eventOrResult === 'keyboard' || eventOrResult === 'mouse') {
|
|
81
|
+
overlayRef._closeOverlayVia(eventOrResult, undefined, true);
|
|
82
|
+
}
|
|
83
|
+
else {
|
|
84
|
+
overlayRef.close(eventOrResult, true);
|
|
85
|
+
}
|
|
86
|
+
}));
|
|
87
|
+
}));
|
|
65
88
|
}
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
else {
|
|
72
|
-
overlayRef.close(result, true);
|
|
73
|
-
}
|
|
74
|
-
}), take(1));
|
|
75
|
-
}), takeUntil(destroy$), take(1))
|
|
89
|
+
}), takeUntil(destroy$), finalize(() => {
|
|
90
|
+
overlayRef._isBackdropCloseControlledExternally = false;
|
|
91
|
+
overlayRef._isEscCloseControlledExternally = false;
|
|
92
|
+
overlayRef._isCloseFnCloseControlledExternally = false;
|
|
93
|
+
}))
|
|
76
94
|
.subscribe();
|
|
77
95
|
return sub;
|
|
78
96
|
};
|
|
79
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmxheS1kaXNtaXNzLWNoZWNrZXIudXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY2RrL3NyYy9saWIvY29tcG9uZW50cy9vdmVybGF5L3V0aWxzL292ZXJsYXktZGlzbWlzcy1jaGVja2VyLnV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQy9DLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTVFLE9BQU8sRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDakcsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQTZEM0M7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sMkJBQTJCLEdBQUcsQ0FDekMsTUFBNEMsRUFDNUMsRUFBRTtJQUNGLHdCQUF3QixDQUFDLDJCQUEyQixDQUFDLENBQUM7SUFFdEQsTUFBTSxFQUNKLElBQUksRUFDSixZQUFZLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxFQUNqQyxhQUFhLEdBQUcsRUFBRSxhQUFhLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxFQUN6RSxjQUFjLEdBQ2YsR0FBRyxNQUFNLENBQUM7SUFFWCxNQUFNLGtCQUFrQixHQUFHLGFBQWEsQ0FBQyxhQUFhLElBQUksSUFBSSxDQUFDO0lBQy9ELE1BQU0sY0FBYyxHQUFHLGFBQWEsQ0FBQyxTQUFTLElBQUksSUFB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O1lBQzNDLGNBQWMsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7U0FDdEM7YUFBTTtZQUNMLGNBQWMsR0FBRyxFQUFFLENBQUMsYUFBYSxDQUFDLENBQUM7U0FDcEM7UUFFRCxPQUFPLGNBQWMsQ0FBQyxJQUFJLENBQ3hCLE1BQU0sQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUNoQyxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRTtZQUNmLEdBQUcsQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUVsQixJQUFJLFFBQVEsS0FBSyxVQUFVLElBQUksUUFBUSxLQUFLLE9BQU8sRUFBRTtnQkFDbkQsVUFBVSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxTQUFTLEVBQUUsSUFBSSxDQUFDLENBQUM7YUFDeEQ7aUJBQU07Z0JBQ0wsVUFBVSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7YUFDaEM7UUFDSCxDQUFDLENBQUMsRUFDRixJQUFJLENBQUMsQ0FBQyxDQUFDLENBQ1IsQ0FBQztJQUNKLENBQUMsQ0FBQyxFQUNGLFNBQVMsQ0FBQyxRQUFRLENBQUMsRUFDbkIsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUNSO1NBQ0EsU0FBUyxFQUFFLENBQUM7SUFFZixPQUFPLEdBQUcsQ0FBQztBQUNiLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVTQ0FQRSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9rZXljb2Rlcyc7XG5pbXBvcnQgeyBhc3NlcnRJbkluamVjdGlvbkNvbnRleHQsIGluamVjdCwgaXNEZXZNb2RlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBjcmVhdGVEZXN0cm95LCBlcXVhbCB9IGZyb20gJ0BldGhsZXRlL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgZmlsdGVyLCBmcm9tLCBtYXAsIG1lcmdlLCBvZiwgc3dpdGNoTWFwLCB0YWtlLCB0YWtlVW50aWwsIHRhcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgT3ZlcmxheVJlZiB9IGZyb20gJy4uL2NvbXBvbmVudHMnO1xuXG5leHBvcnQgdHlwZSBDcmVhdGVPdmVybGF5RGlzbWlzc0NoZWNrZXJDb25maWc8VCBleHRlbmRzIEFic3RyYWN0Q29udHJvbD4gPSB7XG4gIC8qKlxuICAgKiBUaGUgZm9ybSB0byBjaGVjayBmb3IgY2hhbmdlc1xuICAgKi9cbiAgZm9ybTogVDtcblxuICAvKipcbiAgICogVGhlIGRlZmF1bHQgdmFsdWUgdG8gY29tcGFyZSB0aGUgY3VycmVudCBmb3JtIHZhbHVlIHRvXG4gICAqXG4gICAqIEBkZWZhdWx0IGZvcm0uZ2V0UmF3VmFsdWUoKVxuICAgKi9cbiAgZGVmYXVsdFZhbHVlPzogdW5rbm93bjtcblxuICAvKipcbiAgICogVGhlIGV2ZW50cyB0aGF0IHNob3VsZCB0cmlnZ2VyIHRoZSBkaXNtaXNzIGNoZWNrXG4gICAqXG4gICAqIEBkZWZhdWx0IHsgYmFja2Ryb3BDbGljazogdHJ1ZSwgZXNjYXBlS2V5OiB0cnVlLCBjbG9zZUNhbGw6IHRydWUgfVxuICAgKi9cbiAgZGlzbWlzc0V2ZW50cz86IHtcbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRoZSBiYWNrZHJvcCBjbGljayBzaG91bGQgdHJpZ2dlciB0aGUgZGlzbWlzcyBjaGVja1xuICAgICAqXG4gICAgICogQGRlZmF1bHQgdHJ1ZVxuICAgICAqL1xuICAgIGJhY2tkcm9wQ2xpY2s/OiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICogV2hldGhlciB0aGUgZXNjYXBlIGtleSBzaG91bGQgdHJpZ2dlciB0aGUgZGlzbWlzcyBjaGVja1xuICAgICAqXG4gICAgICogQGRlZmF1bHQgdHJ1ZVxuICAgICAqL1xuICAgIGVzY2FwZUtleT86IGJvb2xlYW47XG5cbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRoZSBjbG9zZSBjYWxsIHNob3VsZCB0cmlnZ2VyIHRoZSBkaXNtaXNzIGNoZWNrLlxuICAgICAqIChlLmcuIGBvdmVybGF5UmVmLmNsb3NlKClgKVxuICAgICAqXG4gICAgICogQGRlZmF1bHQgdHJ1ZVxuICAgICAqL1xuICAgIGNsb3NlQ2FsbD86IGJvb2xlYW47XG4gIH07XG5cbiAgLyoqXG4gICAqIFRoaXMgZnVuY3Rpb24gd2lsbCBiZSBjYWxsZWQgd2hlbiB0aGUgY3VycmVudCBmb3JtIHZhbHVlIGlzIG5vdCBlcXVhbCB0byB0aGUgZGVmYXVsdCB2YWx1ZS5cbiAgICogVXNlIHRoaXMgdG8gc2hvdyBhIGNvbmZpcm1hdGlvbiBkaWFsb2cgb3Igc2ltaWxhci5cbiAgICpcbiAgICogQGV4YW1wbGUgU2hvdyBhIGNvbmZpcm1hdGlvbiBkaWFsb2c6XG4gICAqIGBgYHRzXG4gICAqICgpID0+IHRoaXMub3ZlcmxheVNlcnZpY2VcbiAgICogICAuc2hvdyhTb21lQ29uZmlybWF0aW9uQ29tcG9uZW50KVxuICAgKiAgIC5hZnRlckNsb3NlZCgpXG4gICAqICAgLnBpcGUobWFwKChyZXN1bHQpID0+ICEhcmVzdWx0Py5jb25maXJtZWQpKVxuICAgKiBgYGBcbiAgICpcbiAgICogQHBhcmFtIHYgVGhlIGN1cnJlbnQgZm9ybSB2YWx1ZVxuICAgKi9cbiAgZGlzbWlzc0NoZWNrRm46ICh2OiBSZXR1cm5UeXBlPFRbJ2dldFJhd1ZhbHVlJ10+KSA9PiB1bmtub3duIHwgUHJvbWlzZTx1bmtub3duPiB8IE9ic2VydmFibGU8dW5rbm93bj47XG59O1xuXG4vKipcbiAqIEEgdXRpbGl0eSBmdW5jdGlvbiB0byBlbmhhbmNlIHRoZSB1eCBvZiBvdmVybGF5cyBjb250YWluaW5nIGZvcm1zLlxuICogSXQgY2FuIHByZXZlbnQgdGhlIHVzZXIgZnJvbSBhY2NpZGVudGFsbHkgY2xvc2luZyB0aGUgb3ZlcmxheSB3aGVuIHRoZSBmb3JtIHZhbHVlIGlzIG5vdCBlcXVhbCB0byB0aGUgZGVmYXVsdCB2YWx1ZS5cbiAqL1xuZXhwb3J0IGNvbnN0IGNyZWF0ZU92ZXJsYXlEaXNtaXNzQ2hlY2tlciA9IDxUIGV4dGVuZHMgQWJzdHJhY3RDb250cm9sPihcbiAgY29uZmlnOiBDcmVhdGVPdmVybGF5RGlzbWlzc0NoZWNrZXJDb25maWc8VD4sXG4pID0+IHtcbiAgYXNzZXJ0SW5JbmplY3Rpb25Db250ZXh0KGNyZWF0ZU92ZXJsYXlEaXNtaXNzQ2hlY2tlcik7XG5cbiAgY29uc3Qge1xuICAgIGZvcm0sXG4gICAgZGVmYXVsdFZhbHVlID0gZm9ybS5nZXRSYXdWYWx1ZSgpLFxuICAgIGRpc21pc3NFdmVudHMgPSB7IGJhY2tkcm9wQ2xpY2s6IHRydWUsIGVzY2FwZUtleTogdHJ1ZSwgY2xvc2VDYWxsOiB0cnVlIH0sXG4gICAgZGlzbWlzc0NoZWNrRm4sXG4gIH0gPSBjb25maWc7XG5cbiAgY29uc3QgY2hlY2tCYWNrZHJvcENsaWNrID0gZGlzbWlzc0V2ZW50cy5iYWNrZHJvcENsaWNrID8/IHRydWU7XG4gIGNvbnN0IGNoZWNrRXNjYXBlS2V5ID0gZGlzbWlzc0V2ZW50cy5lc2NhcGVLZXkgPz8gdHJ1ZTtcbiAgY29uc3QgY2hlY2tDbG9zZUNhbGwgPSBkaXNtaXNzRXZlbnRzLmNsb3NlQ2FsbCA/PyB0cnVlO1xuXG4gIGlmICghY2hlY2tCYWNrZHJvcENsaWNrICYmICFjaGVja0VzY2FwZUtleSAmJiAhY2hlY2tDbG9zZUNhbGwpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0F0IGxlYXN0IG9uZSBkaXNtaXNzIGV2ZW50IG11c3QgYmUgZW5hYmxlZCcpO1xuICB9XG5cbiAgY29uc3QgZGVzdHJveSQgPSBjcmVhdGVEZXN0cm95KCk7XG4gIGNvbnN0IG92ZXJsYXlSZWYgPSBpbmplY3QoT3ZlcmxheVJlZik7XG5cbiAgb3ZlcmxheVJlZi5faXNCYWNrZHJvcENsb3NlQ29udHJvbGxlZEV4dGVybmFsbHkgPSBjaGVja0JhY2tkcm9wQ2xpY2s7XG4gIG92ZXJsYXlSZWYuX2lzRXNjQ2xvc2VDb250cm9sbGVkRXh0ZXJuYWxseSA9IGNoZWNrRXNjYXBlS2V5O1xuICBvdmVybGF5UmVmLl9pc0Nsb3NlRm5DbG9zZUNvbnRyb2xsZWRFeHRlcm5hbGx5ID0gY2hlY2tDbG9zZUNhbGw7XG5cbiAgY29uc3QgZXZlbnRTdHJlYW1zOiBPYnNlcnZhYmxlPHVua25vd24+W10gPSBbXTtcblxuICBpZiAoY2hlY2tCYWNrZHJvcENsaWNrKSB7XG4gICAgaWYgKCFvdmVybGF5UmVmLmRpc2FibGVDbG9zZSkge1xuICAgICAgZXZlbnRTdHJlYW1zLnB1c2gob3ZlcmxheVJlZi5iYWNrZHJvcENsaWNrKCkucGlwZShtYXAoKCkgPT4gJ21vdXNlJykpKTtcbiAgICB9IGVsc2UgaWYgKGlzRGV2TW9kZSgpICYmIGRpc21pc3NFdmVudHMuYmFja2Ryb3BDbGljaykge1xuICAgICAgY29uc29sZS53YXJuKCdkaXNtaXNzRXZlbnRzLmJhY2tkcm9wQ2xpY2sgYmVpbmcgc2V0IHRvIHRydWUgaGFzIG5vIGVmZmVjdCB3aGVuIG92ZXJsYXlSZWYuZGlzYWJsZUNsb3NlIGlzIHRydWUuJyk7XG4gICAgfVxuICB9XG5cbiAgaWYgKGNoZWNrRXNjYXBlS2V5KSB7XG4gICAgaWYgKCFvdmVybGF5UmVmLmRpc2FibGVDbG9zZSkge1xuICAgICAgZXZlbnRTdHJlYW1zLnB1c2goXG4gICAgICAgIG92ZXJsYXlSZWYua2V5ZG93bkV2ZW50cygpLnBpcGUoXG4gICAgICAgICAgZmlsdGVyKChldmVudCkgPT4gZXZlbnQua2V5Q29kZSA9PT0gRVNDQVBFKSxcbiAgICAgICAgICBtYXAoKCkgPT4gJ2tleWJvYXJkJyksXG4gICAgICAgICksXG4gICAgICApO1xuICAgIH0gZWxzZSBpZiAoaXNEZXZNb2RlKCkgJiYgZGlzbWlzc0V2ZW50cy5lc2NhcGVLZXkpIHtcbiAgICAgIGNvbnNvbGUud2FybignZGlzbWlzc0V2ZW50cy5lc2NhcGVLZXkgYmVpbmcgc2V0IHRvIHRydWUgaGFzIG5vIGVmZmVjdCB3aGVuIG92ZXJsYXlSZWYuZGlzYWJsZUNsb3NlIGlzIHRydWUuJyk7XG4gICAgfVxuICB9XG5cbiAgaWYgKGNoZWNrQ2xvc2VDYWxsKSB7XG4gICAgZXZlbnRTdHJlYW1zLnB1c2gob3ZlcmxheVJlZi5jbG9zZUNhbGxlZCgpKTtcbiAgfVxuXG4gIGNvbnN0IHN1YiA9IG1lcmdlKC4uLmV2ZW50U3RyZWFtcylcbiAgICAucGlwZShcbiAgICAgIHRha2VVbnRpbChkZXN0cm95JCksXG4gICAgICBmaWx0ZXIoKCkgPT4ge1xuICAgICAgICBjb25zdCBpc05vdEVxdWFsID0gIWVxdWFsKGZvcm0uZ2V0UmF3VmFsdWUoKSwgZGVmYXVsdFZhbHVlKTtcbiAgICAgICAgY29uc3QgaGFzTm9PdGhlckludGVybmFsT3ZlcmxheXMgPSAhb3ZlcmxheVJlZi5faW50ZXJuYWxEaXNhYmxlQ2xvc2U7XG5cbiAgICAgICAgY29uc3Qgd2FzS2V5Ym9hcmQgPSBvdmVybGF5UmVmLl9jbG9zZUludGVyYWN0aW9uVHlwZSA9PT0gJ2tleWJvYXJkJztcbiAgICAgICAgY29uc3Qgd2FzTW91c2UgPSBvdmVybGF5UmVmLl9jbG9zZUludGVyYWN0aW9uVHlwZSA9PT0gJ21vdXNlJztcblxuICAgICAgICBpZiAoKHdhc0tleWJvYXJkICYmICFjaGVja0VzY2FwZUtleSkgfHwgKHdhc01vdXNlICYmICFjaGVja0JhY2tkcm9wQ2xpY2spKSB7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGlzTm90RXF1YWwgJiYgaGFzTm9PdGhlckludGVybmFsT3ZlcmxheXM7XG4gICAgICB9KSxcbiAgICAgIHN3aXRjaE1hcCgocmVzdWx0KSA9PiB7XG4gICAgICAgIGNvbnN0IGNoZWNrUmVzcG9uc2UgPSBkaXNtaXNzQ2hlY2tGbihmb3JtLmdldFJhd1ZhbHVlKCkpO1xuXG4gICAgICAgIGxldCBuZXh0T2JzZXJ2YWJsZTogT2JzZXJ2YWJsZTx1bmtub3duPjtcblxuICAgICAgICBpZiAoY2hlY2tSZXNwb25zZSBpbnN0YW5jZW9mIE9ic2VydmFibGUpIHtcbiAgICAgICAgICBuZXh0T2JzZXJ2YWJsZSA9IGNoZWNrUmVzcG9uc2U7XG4gICAgICAgIH0gZWxzZSBpZiAoY2hlY2tSZXNwb25zZSBpbnN0YW5jZW9mIFByb21pc2UpIHtcbiAgICAgICAgICBuZXh0T2JzZXJ2YWJsZSA9IGZyb20oY2hlY2tSZXNwb25zZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgbmV4dE9ic2VydmFibGUgPSBvZihjaGVja1Jlc3BvbnNlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBuZXh0T2JzZXJ2YWJsZS5waXBlKFxuICAgICAgICAgIGZpbHRlcigocmVzcG9uc2UpID0+ICEhcmVzcG9uc2UpLFxuICAgICAgICAgIHRhcCgocmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgIHN1Yi51bnN1YnNjcmliZSgpO1xuXG4gICAgICAgICAgICBpZiAocmVzcG9uc2UgPT09ICdrZXlib2FyZCcgfHwgcmVzcG9uc2UgPT09ICdtb3VzZScpIHtcbiAgICAgICAgICAgICAgb3ZlcmxheVJlZi5fY2xvc2VPdmVybGF5VmlhKHJlc3BvbnNlLCB1bmRlZmluZWQsIHRydWUpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgb3ZlcmxheVJlZi5jbG9zZShyZXN1bHQsIHRydWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pLFxuICAgICAgICAgIHRha2UoMSksXG4gICAgICAgICk7XG4gICAgICB9KSxcbiAgICAgIHRha2VVbnRpbChkZXN0cm95JCksXG4gICAgICB0YWtlKDEpLFxuICAgIClcbiAgICAuc3Vic2NyaWJlKCk7XG5cbiAgcmV0dXJuIHN1Yjtcbn07XG4iXX0=
|
|
97
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmxheS1kaXNtaXNzLWNoZWNrZXIudXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY2RrL3NyYy9saWIvY29tcG9uZW50cy9vdmVybGF5L3V0aWxzL292ZXJsYXktZGlzbWlzcy1jaGVja2VyLnV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQy9DLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTVFLE9BQU8sRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDckcsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQTZEM0M7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sMkJBQTJCLEdBQUcsQ0FDekMsTUFBNEMsRUFDNUMsRUFBRTtJQUNGLHdCQUF3QixDQUFDLDJCQUEyQixDQUFDLENBQUM7SUFFdEQsTUFBTSxFQUNKLElBQUksRUFDSixZQUFZLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxFQUNqQyxhQUFhLEdBQUcsRUFBRSxhQUFhLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxFQUN6RSxjQUFjLEdBQ2YsR0FBRyxNQUFNLENBQUM7SUFFWCxNQUFNLGtCQUFrQixHQUFHLGFBQWEsQ0FBQyxhQUFhLElBQUksSUFBSSxDQUFDO0lBQy9ELE1BQU0sY0FBYyxHQUFHLGFBQWEsQ0FBQyxTQUFTLElBQUksSUFB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LElBQUksQ0FBQyxDQUFDO3FCQUN2QztnQkFDSCxDQUFDLENBQUMsQ0FDSCxDQUFDO1lBQ0osQ0FBQyxDQUFDLENBQ0gsQ0FBQztTQUNIO0lBQ0gsQ0FBQyxDQUFDLEVBQ0YsU0FBUyxDQUFDLFFBQVEsQ0FBQyxFQUNuQixRQUFRLENBQUMsR0FBRyxFQUFFO1FBQ1osVUFBVSxDQUFDLG9DQUFvQyxHQUFHLEtBQUssQ0FBQztRQUN4RCxVQUFVLENBQUMsK0JBQStCLEdBQUcsS0FBSyxDQUFDO1FBQ25ELFVBQVUsQ0FBQyxtQ0FBbUMsR0FBRyxLQUFLLENBQUM7SUFDekQsQ0FBQyxDQUFDLENBQ0g7U0FDQSxTQUFTLEVBQUUsQ0FBQztJQUVmLE9BQU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRVNDQVBFIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2tleWNvZGVzJztcbmltcG9ydCB7IGFzc2VydEluSW5qZWN0aW9uQ29udGV4dCwgaW5qZWN0LCBpc0Rldk1vZGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IGNyZWF0ZURlc3Ryb3ksIGVxdWFsIH0gZnJvbSAnQGV0aGxldGUvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBmaWx0ZXIsIGZpbmFsaXplLCBmcm9tLCBtYXAsIG1lcmdlLCBvZiwgc3dpdGNoTWFwLCB0YWtlVW50aWwsIHRhcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgT3ZlcmxheVJlZiB9IGZyb20gJy4uL2NvbXBvbmVudHMnO1xuXG5leHBvcnQgdHlwZSBDcmVhdGVPdmVybGF5RGlzbWlzc0NoZWNrZXJDb25maWc8VCBleHRlbmRzIEFic3RyYWN0Q29udHJvbD4gPSB7XG4gIC8qKlxuICAgKiBUaGUgZm9ybSB0byBjaGVjayBmb3IgY2hhbmdlc1xuICAgKi9cbiAgZm9ybTogVDtcblxuICAvKipcbiAgICogVGhlIGRlZmF1bHQgdmFsdWUgdG8gY29tcGFyZSB0aGUgY3VycmVudCBmb3JtIHZhbHVlIHRvXG4gICAqXG4gICAqIEBkZWZhdWx0IGZvcm0uZ2V0UmF3VmFsdWUoKVxuICAgKi9cbiAgZGVmYXVsdFZhbHVlPzogdW5rbm93bjtcblxuICAvKipcbiAgICogVGhlIGV2ZW50cyB0aGF0IHNob3VsZCB0cmlnZ2VyIHRoZSBkaXNtaXNzIGNoZWNrXG4gICAqXG4gICAqIEBkZWZhdWx0IHsgYmFja2Ryb3BDbGljazogdHJ1ZSwgZXNjYXBlS2V5OiB0cnVlLCBjbG9zZUNhbGw6IHRydWUgfVxuICAgKi9cbiAgZGlzbWlzc0V2ZW50cz86IHtcbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRoZSBiYWNrZHJvcCBjbGljayBzaG91bGQgdHJpZ2dlciB0aGUgZGlzbWlzcyBjaGVja1xuICAgICAqXG4gICAgICogQGRlZmF1bHQgdHJ1ZVxuICAgICAqL1xuICAgIGJhY2tkcm9wQ2xpY2s/OiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICogV2hldGhlciB0aGUgZXNjYXBlIGtleSBzaG91bGQgdHJpZ2dlciB0aGUgZGlzbWlzcyBjaGVja1xuICAgICAqXG4gICAgICogQGRlZmF1bHQgdHJ1ZVxuICAgICAqL1xuICAgIGVzY2FwZUtleT86IGJvb2xlYW47XG5cbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRoZSBjbG9zZSBjYWxsIHNob3VsZCB0cmlnZ2VyIHRoZSBkaXNtaXNzIGNoZWNrLlxuICAgICAqIChlLmcuIGBvdmVybGF5UmVmLmNsb3NlKClgKVxuICAgICAqXG4gICAgICogQGRlZmF1bHQgdHJ1ZVxuICAgICAqL1xuICAgIGNsb3NlQ2FsbD86IGJvb2xlYW47XG4gIH07XG5cbiAgLyoqXG4gICAqIFRoaXMgZnVuY3Rpb24gd2lsbCBiZSBjYWxsZWQgd2hlbiB0aGUgY3VycmVudCBmb3JtIHZhbHVlIGlzIG5vdCBlcXVhbCB0byB0aGUgZGVmYXVsdCB2YWx1ZS5cbiAgICogVXNlIHRoaXMgdG8gc2hvdyBhIGNvbmZpcm1hdGlvbiBkaWFsb2cgb3Igc2ltaWxhci5cbiAgICpcbiAgICogQGV4YW1wbGUgU2hvdyBhIGNvbmZpcm1hdGlvbiBkaWFsb2c6XG4gICAqIGBgYHRzXG4gICAqICgpID0+IHRoaXMub3ZlcmxheVNlcnZpY2VcbiAgICogICAuc2hvdyhTb21lQ29uZmlybWF0aW9uQ29tcG9uZW50KVxuICAgKiAgIC5hZnRlckNsb3NlZCgpXG4gICAqICAgLnBpcGUobWFwKChyZXN1bHQpID0+ICEhcmVzdWx0Py5jb25maXJtZWQpKVxuICAgKiBgYGBcbiAgICpcbiAgICogQHBhcmFtIHYgVGhlIGN1cnJlbnQgZm9ybSB2YWx1ZVxuICAgKi9cbiAgZGlzbWlzc0NoZWNrRm46ICh2OiBSZXR1cm5UeXBlPFRbJ2dldFJhd1ZhbHVlJ10+KSA9PiB1bmtub3duIHwgUHJvbWlzZTx1bmtub3duPiB8IE9ic2VydmFibGU8dW5rbm93bj47XG59O1xuXG4vKipcbiAqIEEgdXRpbGl0eSBmdW5jdGlvbiB0byBlbmhhbmNlIHRoZSB1eCBvZiBvdmVybGF5cyBjb250YWluaW5nIGZvcm1zLlxuICogSXQgY2FuIHByZXZlbnQgdGhlIHVzZXIgZnJvbSBhY2NpZGVudGFsbHkgY2xvc2luZyB0aGUgb3ZlcmxheSB3aGVuIHRoZSBmb3JtIHZhbHVlIGlzIG5vdCBlcXVhbCB0byB0aGUgZGVmYXVsdCB2YWx1ZS5cbiAqL1xuZXhwb3J0IGNvbnN0IGNyZWF0ZU92ZXJsYXlEaXNtaXNzQ2hlY2tlciA9IDxUIGV4dGVuZHMgQWJzdHJhY3RDb250cm9sPihcbiAgY29uZmlnOiBDcmVhdGVPdmVybGF5RGlzbWlzc0NoZWNrZXJDb25maWc8VD4sXG4pID0+IHtcbiAgYXNzZXJ0SW5JbmplY3Rpb25Db250ZXh0KGNyZWF0ZU92ZXJsYXlEaXNtaXNzQ2hlY2tlcik7XG5cbiAgY29uc3Qge1xuICAgIGZvcm0sXG4gICAgZGVmYXVsdFZhbHVlID0gZm9ybS5nZXRSYXdWYWx1ZSgpLFxuICAgIGRpc21pc3NFdmVudHMgPSB7IGJhY2tkcm9wQ2xpY2s6IHRydWUsIGVzY2FwZUtleTogdHJ1ZSwgY2xvc2VDYWxsOiB0cnVlIH0sXG4gICAgZGlzbWlzc0NoZWNrRm4sXG4gIH0gPSBjb25maWc7XG5cbiAgY29uc3QgY2hlY2tCYWNrZHJvcENsaWNrID0gZGlzbWlzc0V2ZW50cy5iYWNrZHJvcENsaWNrID8/IHRydWU7XG4gIGNvbnN0IGNoZWNrRXNjYXBlS2V5ID0gZGlzbWlzc0V2ZW50cy5lc2NhcGVLZXkgPz8gdHJ1ZTtcbiAgY29uc3QgY2hlY2tDbG9zZUNhbGwgPSBkaXNtaXNzRXZlbnRzLmNsb3NlQ2FsbCA/PyB0cnVlO1xuXG4gIGlmICghY2hlY2tCYWNrZHJvcENsaWNrICYmICFjaGVja0VzY2FwZUtleSAmJiAhY2hlY2tDbG9zZUNhbGwpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0F0IGxlYXN0IG9uZSBkaXNtaXNzIGV2ZW50IG11c3QgYmUgZW5hYmxlZCcpO1xuICB9XG5cbiAgY29uc3QgZGVzdHJveSQgPSBjcmVhdGVEZXN0cm95KCk7XG4gIGNvbnN0IG92ZXJsYXlSZWYgPSBpbmplY3QoT3ZlcmxheVJlZik7XG5cbiAgb3ZlcmxheVJlZi5faXNCYWNrZHJvcENsb3NlQ29udHJvbGxlZEV4dGVybmFsbHkgPSBjaGVja0JhY2tkcm9wQ2xpY2s7XG4gIG92ZXJsYXlSZWYuX2lzRXNjQ2xvc2VDb250cm9sbGVkRXh0ZXJuYWxseSA9IGNoZWNrRXNjYXBlS2V5O1xuICBvdmVybGF5UmVmLl9pc0Nsb3NlRm5DbG9zZUNvbnRyb2xsZWRFeHRlcm5hbGx5ID0gY2hlY2tDbG9zZUNhbGw7XG5cbiAgY29uc3QgZXZlbnRTdHJlYW1zOiBPYnNlcnZhYmxlPCdtb3VzZScgfCAna2V5Ym9hcmQnIHwgdW5rbm93bj5bXSA9IFtdO1xuXG4gIGlmIChjaGVja0JhY2tkcm9wQ2xpY2spIHtcbiAgICBpZiAoIW92ZXJsYXlSZWYuZGlzYWJsZUNsb3NlKSB7XG4gICAgICBldmVudFN0cmVhbXMucHVzaChvdmVybGF5UmVmLmJhY2tkcm9wQ2xpY2soKS5waXBlKG1hcCgoKSA9PiAnbW91c2UnKSkpO1xuICAgIH0gZWxzZSBpZiAoaXNEZXZNb2RlKCkgJiYgZGlzbWlzc0V2ZW50cy5iYWNrZHJvcENsaWNrKSB7XG4gICAgICBjb25zb2xlLndhcm4oJ2Rpc21pc3NFdmVudHMuYmFja2Ryb3BDbGljayBiZWluZyBzZXQgdG8gdHJ1ZSBoYXMgbm8gZWZmZWN0IHdoZW4gb3ZlcmxheVJlZi5kaXNhYmxlQ2xvc2UgaXMgdHJ1ZS4nKTtcbiAgICB9XG4gIH1cblxuICBpZiAoY2hlY2tFc2NhcGVLZXkpIHtcbiAgICBpZiAoIW92ZXJsYXlSZWYuZGlzYWJsZUNsb3NlKSB7XG4gICAgICBldmVudFN0cmVhbXMucHVzaChcbiAgICAgICAgb3ZlcmxheVJlZi5rZXlkb3duRXZlbnRzKCkucGlwZShcbiAgICAgICAgICBmaWx0ZXIoKGV2ZW50KSA9PiBldmVudC5rZXlDb2RlID09PSBFU0NBUEUpLFxuICAgICAgICAgIG1hcCgoKSA9PiAna2V5Ym9hcmQnKSxcbiAgICAgICAgKSxcbiAgICAgICk7XG4gICAgfSBlbHNlIGlmIChpc0Rldk1vZGUoKSAmJiBkaXNtaXNzRXZlbnRzLmVzY2FwZUtleSkge1xuICAgICAgY29uc29sZS53YXJuKCdkaXNtaXNzRXZlbnRzLmVzY2FwZUtleSBiZWluZyBzZXQgdG8gdHJ1ZSBoYXMgbm8gZWZmZWN0IHdoZW4gb3ZlcmxheVJlZi5kaXNhYmxlQ2xvc2UgaXMgdHJ1ZS4nKTtcbiAgICB9XG4gIH1cblxuICBpZiAoY2hlY2tDbG9zZUNhbGwpIHtcbiAgICBldmVudFN0cmVhbXMucHVzaChcbiAgICAgIG92ZXJsYXlSZWYuY2xvc2VDYWxsZWQoKS5waXBlKFxuICAgICAgICBmaWx0ZXIoKGUpID0+ICFlLmZvcmNlZCksXG4gICAgICAgIG1hcCgoZSkgPT4gZS5yZXN1bHQpLFxuICAgICAgKSxcbiAgICApO1xuICB9XG5cbiAgY29uc3Qgc3ViID0gbWVyZ2UoLi4uZXZlbnRTdHJlYW1zKVxuICAgIC5waXBlKFxuICAgICAgc3dpdGNoTWFwKChldmVudE9yUmVzdWx0KSA9PiB7XG4gICAgICAgIGNvbnN0IGlzRGVmYXVsdEZvcm1WYWx1ZSA9IGVxdWFsKGZvcm0uZ2V0UmF3VmFsdWUoKSwgZGVmYXVsdFZhbHVlKTtcblxuICAgICAgICBpZiAoaXNEZWZhdWx0Rm9ybVZhbHVlKSB7XG4gICAgICAgICAgcmV0dXJuIG9mKGV2ZW50T3JSZXN1bHQpLnBpcGUoXG4gICAgICAgICAgICB0YXAoKCkgPT4ge1xuICAgICAgICAgICAgICBzdWIudW5zdWJzY3JpYmUoKTtcblxuICAgICAgICAgICAgICBpZiAoZXZlbnRPclJlc3VsdCA9PT0gJ2tleWJvYXJkJyB8fCBldmVudE9yUmVzdWx0ID09PSAnbW91c2UnKSB7XG4gICAgICAgICAgICAgICAgb3ZlcmxheVJlZi5fY2xvc2VPdmVybGF5VmlhKGV2ZW50T3JSZXN1bHQsIHVuZGVmaW5lZCwgdHJ1ZSk7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgb3ZlcmxheVJlZi5jbG9zZShldmVudE9yUmVzdWx0LCB0cnVlKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gb2YoZXZlbnRPclJlc3VsdCkucGlwZShcbiAgICAgICAgICAgIGZpbHRlcigoKSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IHdhc0tleWJvYXJkID0gb3ZlcmxheVJlZi5fY2xvc2VJbnRlcmFjdGlvblR5cGUgPT09ICdrZXlib2FyZCc7XG4gICAgICAgICAgICAgIGNvbnN0IHdhc01vdXNlID0gb3ZlcmxheVJlZi5fY2xvc2VJbnRlcmFjdGlvblR5cGUgPT09ICdtb3VzZSc7XG5cbiAgICAgICAgICAgICAgaWYgKCh3YXNLZXlib2FyZCAmJiAhY2hlY2tFc2NhcGVLZXkpIHx8ICh3YXNNb3VzZSAmJiAhY2hlY2tCYWNrZHJvcENsaWNrKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIHJldHVybiAhb3ZlcmxheVJlZi5faW50ZXJuYWxEaXNhYmxlQ2xvc2U7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIHN3aXRjaE1hcCgoKSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IGNoZWNrUmVzcG9uc2UgPSBkaXNtaXNzQ2hlY2tGbihmb3JtLmdldFJhd1ZhbHVlKCkpO1xuXG4gICAgICAgICAgICAgIGxldCBuZXh0T2JzZXJ2YWJsZTogT2JzZXJ2YWJsZTx1bmtub3duPjtcblxuICAgICAgICAgICAgICBpZiAoY2hlY2tSZXNwb25zZSBpbnN0YW5jZW9mIE9ic2VydmFibGUpIHtcbiAgICAgICAgICAgICAgICBuZXh0T2JzZXJ2YWJsZSA9IGNoZWNrUmVzcG9uc2U7XG4gICAgICAgICAgICAgIH0gZWxzZSBpZiAoY2hlY2tSZXNwb25zZSBpbnN0YW5jZW9mIFByb21pc2UpIHtcbiAgICAgICAgICAgICAgICBuZXh0T2JzZXJ2YWJsZSA9IGZyb20oY2hlY2tSZXNwb25zZSk7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgbmV4dE9ic2VydmFibGUgPSBvZihjaGVja1Jlc3BvbnNlKTtcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIHJldHVybiBuZXh0T2JzZXJ2YWJsZS5waXBlKFxuICAgICAgICAgICAgICAgIGZpbHRlcigoY2hlY2tGblJlc3VsdCkgPT4gISFjaGVja0ZuUmVzdWx0KSxcbiAgICAgICAgICAgICAgICB0YXAoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgc3ViLnVuc3Vic2NyaWJlKCk7XG5cbiAgICAgICAgICAgICAgICAgIGlmIChldmVudE9yUmVzdWx0ID09PSAna2V5Ym9hcmQnIHx8IGV2ZW50T3JSZXN1bHQgPT09ICdtb3VzZScpIHtcbiAgICAgICAgICAgICAgICAgICAgb3ZlcmxheVJlZi5fY2xvc2VPdmVybGF5VmlhKGV2ZW50T3JSZXN1bHQsIHVuZGVmaW5lZCwgdHJ1ZSk7XG4gICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBvdmVybGF5UmVmLmNsb3NlKGV2ZW50T3JSZXN1bHQsIHRydWUpO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfSksXG4gICAgICB0YWtlVW50aWwoZGVzdHJveSQpLFxuICAgICAgZmluYWxpemUoKCkgPT4ge1xuICAgICAgICBvdmVybGF5UmVmLl9pc0JhY2tkcm9wQ2xvc2VDb250cm9sbGVkRXh0ZXJuYWxseSA9IGZhbHNlO1xuICAgICAgICBvdmVybGF5UmVmLl9pc0VzY0Nsb3NlQ29udHJvbGxlZEV4dGVybmFsbHkgPSBmYWxzZTtcbiAgICAgICAgb3ZlcmxheVJlZi5faXNDbG9zZUZuQ2xvc2VDb250cm9sbGVkRXh0ZXJuYWxseSA9IGZhbHNlO1xuICAgICAgfSksXG4gICAgKVxuICAgIC5zdWJzY3JpYmUoKTtcblxuICByZXR1cm4gc3ViO1xufTtcbiJdfQ==
|