@ethlete/cdk 3.21.0 → 3.22.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +22 -0
- package/esm2022/lib/components/forms/components/select/components/combobox/components/combobox/combobox.component.mjs +9 -5
- package/esm2022/lib/components/forms/components/select/components/combobox/directives/combobox/combobox.directive.mjs +33 -7
- package/esm2022/lib/components/forms/components/select/components/combobox/partials/combobox-body/combobox-body.component.mjs +3 -3
- package/esm2022/lib/components/forms/components/select/components/combobox/partials/combobox-option/combobox-option.component.mjs +3 -4
- package/esm2022/lib/components/forms/components/select/components/combobox/private/combobox.private.types.mjs +1 -1
- package/esm2022/lib/components/forms/components/select/components/combobox/utils/public-api.mjs +1 -2
- package/esm2022/lib/components/forms/components/select/components/select/components/select/select.component.mjs +3 -3
- package/esm2022/lib/components/forms/components/select/components/select/directives/select/select.directive.mjs +144 -312
- package/esm2022/lib/components/forms/components/select/components/select/directives/select-body/select-body.directive.mjs +4 -3
- package/esm2022/lib/components/forms/components/select/components/select/directives/select-option/select-option.directive.mjs +15 -40
- package/esm2022/lib/components/forms/components/select/components/select/partials/select-body/select-body.component.mjs +8 -5
- package/esm2022/lib/components/forms/components/select/components/{combobox/utils → select/private}/index.mjs +2 -2
- package/esm2022/lib/components/forms/components/select/components/select/private/select.private.types.mjs +2 -0
- package/esm2022/lib/components/overlay/components/bottom-sheet/partials/bottom-sheet-container-base/bottom-sheet-container-base.component.mjs +4 -4
- package/esm2022/lib/components/overlay/components/dialog/partials/dialog-container-base/dialog-container-base.component.mjs +4 -4
- package/esm2022/lib/components/overlay/components/overlay/components/overlay-container/overlay-container.component.mjs +6 -4
- package/esm2022/lib/components/overlay/components/overlay/services/overlay.service.mjs +10 -3
- package/esm2022/lib/components/overlay/components/overlay/utils/overlay-ref.mjs +35 -6
- package/esm2022/lib/components/overlay/components/toggletip/directives/toggletip/toggletip.directive.mjs +5 -3
- package/esm2022/lib/components/overlay/components/tooltip/directives/tooltip/tooltip.directive.mjs +5 -3
- package/esm2022/lib/components/overlay/directives/overlay-close-auto-blocker/index.mjs +2 -0
- package/esm2022/lib/components/overlay/directives/overlay-close-auto-blocker/overlay-close-auto-blocker.directive.mjs +51 -0
- package/esm2022/lib/components/overlay/directives/overlay-close-auto-blocker/public-api.mjs +2 -0
- package/esm2022/lib/components/overlay/directives/public-api.mjs +2 -1
- package/esm2022/lib/components/overlay/public-api.mjs +2 -1
- package/esm2022/lib/components/overlay/utils/overlay-dismiss-checker.util.mjs +79 -0
- package/esm2022/lib/components/overlay/utils/public-api.mjs +2 -0
- package/fesm2022/ethlete-cdk.mjs +397 -409
- package/fesm2022/ethlete-cdk.mjs.map +1 -1
- package/lib/components/forms/components/select/components/combobox/components/combobox/combobox.component.d.ts +4 -3
- package/lib/components/forms/components/select/components/combobox/directives/combobox/combobox.directive.d.ts +4 -1
- package/lib/components/forms/components/select/components/combobox/private/combobox.private.types.d.ts +1 -1
- package/lib/components/forms/components/select/components/combobox/utils/public-api.d.ts +0 -1
- package/lib/components/forms/components/select/components/select/directives/select/select.directive.d.ts +16 -53
- package/lib/components/forms/components/select/components/select/directives/select-body/select-body.directive.d.ts +2 -1
- package/lib/components/forms/components/select/components/select/directives/select-option/select-option.directive.d.ts +7 -9
- package/lib/components/forms/components/select/components/select/partials/select-body/select-body.component.d.ts +2 -1
- package/lib/components/forms/components/select/components/select/private/index.d.ts +1 -0
- package/lib/components/forms/components/select/components/select/private/select.private.types.d.ts +13 -0
- package/lib/components/overlay/components/bottom-sheet/partials/bottom-sheet-container-base/bottom-sheet-container-base.component.d.ts +1 -1
- package/lib/components/overlay/components/dialog/partials/dialog-container-base/dialog-container-base.component.d.ts +1 -1
- package/lib/components/overlay/components/overlay/components/overlay-container/overlay-container.component.d.ts +5 -3
- package/lib/components/overlay/components/overlay/utils/overlay-ref.d.ts +12 -3
- package/lib/components/overlay/components/toggletip/directives/toggletip/toggletip.directive.d.ts +2 -1
- package/lib/components/overlay/components/tooltip/directives/tooltip/tooltip.directive.d.ts +2 -1
- package/lib/components/overlay/directives/overlay-close-auto-blocker/overlay-close-auto-blocker.directive.d.ts +12 -0
- package/lib/components/overlay/directives/overlay-close-auto-blocker/public-api.d.ts +1 -0
- package/lib/components/overlay/directives/public-api.d.ts +1 -0
- package/lib/components/overlay/public-api.d.ts +1 -0
- package/lib/components/overlay/utils/overlay-dismiss-checker.util.d.ts +60 -0
- package/lib/components/overlay/utils/public-api.d.ts +1 -0
- package/package.json +2 -2
- package/esm2022/lib/components/forms/components/select/components/combobox/utils/option.utils.mjs +0 -7
- package/lib/components/forms/components/select/components/combobox/utils/option.utils.d.ts +0 -1
- /package/lib/components/{forms/components/select/components/combobox/utils → overlay/directives/overlay-close-auto-blocker}/index.d.ts +0 -0
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { coerceCssPixelValue } from '@angular/cdk/coercion';
|
|
2
2
|
import { Dialog as CdkDialog, DialogConfig as CdkDialogConfig } from '@angular/cdk/dialog';
|
|
3
3
|
import { Injectable, inject } from '@angular/core';
|
|
4
|
-
import { ViewportService, createDestroy, equal } from '@ethlete/core';
|
|
4
|
+
import { ROOT_BOUNDARY_TOKEN, RootBoundaryDirective, ViewportService, createDestroy, equal } from '@ethlete/core';
|
|
5
|
+
import { ProvideThemeDirective, THEME_PROVIDER } from '@ethlete/theming';
|
|
5
6
|
import { Subject, combineLatest, defer, map, of, pairwise, startWith, takeUntil, tap } from 'rxjs';
|
|
6
7
|
import { OverlayContainerComponent } from '../components';
|
|
7
8
|
import { OVERLAY_CONFIG, OVERLAY_DATA, OVERLAY_DEFAULT_OPTIONS, OVERLAY_SCROLL_STRATEGY } from '../constants';
|
|
@@ -90,11 +91,17 @@ export class OverlayService {
|
|
|
90
91
|
},
|
|
91
92
|
templateContext: () => ({ dialogRef: overlayRef }),
|
|
92
93
|
providers: (ref, cdkConfig, overlayContainer) => {
|
|
93
|
-
|
|
94
|
+
const container = overlayContainer;
|
|
95
|
+
overlayRef = new OverlayRef(ref, composedConfig, container);
|
|
94
96
|
return [
|
|
95
97
|
{ provide: OverlayContainerComponent, useValue: overlayContainer },
|
|
98
|
+
{ provide: THEME_PROVIDER, useValue: container._themeProvider },
|
|
99
|
+
{ provide: ProvideThemeDirective, useValue: container._themeProvider },
|
|
100
|
+
{ provide: ROOT_BOUNDARY_TOKEN, useValue: container._rootBoundary },
|
|
101
|
+
{ provide: RootBoundaryDirective, useValue: container._rootBoundary },
|
|
96
102
|
{ provide: OVERLAY_DATA, useValue: cdkConfig.data },
|
|
97
103
|
{ provide: OverlayRef, useValue: overlayRef },
|
|
104
|
+
{ provide: OverlayRef, useValue: overlayRef },
|
|
98
105
|
...(composedConfig.providers ?? []),
|
|
99
106
|
];
|
|
100
107
|
},
|
|
@@ -278,4 +285,4 @@ export class OverlayService {
|
|
|
278
285
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: OverlayService, decorators: [{
|
|
279
286
|
type: Injectable
|
|
280
287
|
}] });
|
|
281
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmxheS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jZGsvc3JjL2xpYi9jb21wb25lbnRzL292ZXJsYXkvY29tcG9uZW50cy9vdmVybGF5L3NlcnZpY2VzL292ZXJsYXkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsTUFBTSxJQUFJLFNBQVMsRUFBRSxZQUFZLElBQUksZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFM0YsT0FBTyxFQUFnQixVQUFVLEVBQTBCLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6RixPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEUsT0FBTyxFQUFjLE9BQU8sRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9HLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRCxPQUFPLEVBQUUsY0FBYyxFQUFFLFlBQVksRUFBRSx1QkFBdUIsRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUU5RyxPQUFPLEVBQ0wsNkJBQTZCLEVBQzdCLDJCQUEyQixFQUMzQiw0QkFBNEIsRUFDNUIsMEJBQTBCLEVBQzFCLHNCQUFzQixFQUN0QixVQUFVLEVBQ1YsbUJBQW1CLEdBQ3BCLE1BQU0sVUFBVSxDQUFDOztBQUVsQixJQUFJLFFBQVEsR0FBRyxDQUFDLENBQUM7QUFDakIsTUFBTSxTQUFTLEdBQUcsYUFBYSxDQUFDO0FBRWhDLE1BQU0sUUFBUSxHQUFHLENBQUMsRUFBZSxFQUFFLEtBQWEs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RUFBRSxDQUFDLENBQUM7SUFDaEUsQ0FBQztJQUVPLGNBQWMsQ0FBQyxRQUFzQjtRQUMzQyxJQUFJLENBQUMsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDO1FBRXhCLE9BQU8sQ0FBQyxFQUFFLEVBQUU7WUFDVixRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUM7U0FDdEI7SUFDSCxDQUFDO0lBRU8sa0JBQWtCO1FBQ3hCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxxQkFBcUIsQ0FBQztRQUMxQyxPQUFPLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLGtCQUFrQixFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQywwQkFBMEIsQ0FBQztJQUNoRixDQUFDOzhHQXhTVSxjQUFjO2tIQUFkLGNBQWM7OzJGQUFkLGNBQWM7a0JBRDFCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb2VyY2VDc3NQaXhlbFZhbHVlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7IERpYWxvZyBhcyBDZGtEaWFsb2csIERpYWxvZ0NvbmZpZyBhcyBDZGtEaWFsb2dDb25maWcgfSBmcm9tICdAYW5ndWxhci9jZGsvZGlhbG9nJztcbmltcG9ydCB7IENvbXBvbmVudFR5cGUgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBDb21wb25lbnRSZWYsIEluamVjdGFibGUsIE9uRGVzdHJveSwgVGVtcGxhdGVSZWYsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVmlld3BvcnRTZXJ2aWNlLCBjcmVhdGVEZXN0cm95LCBlcXVhbCB9IGZyb20gJ0BldGhsZXRlL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCwgY29tYmluZUxhdGVzdCwgZGVmZXIsIG1hcCwgb2YsIHBhaXJ3aXNlLCBzdGFydFdpdGgsIHRha2VVbnRpbCwgdGFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBPdmVybGF5Q29udGFpbmVyQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50cyc7XG5pbXBvcnQgeyBPVkVSTEFZX0NPTkZJRywgT1ZFUkxBWV9EQVRBLCBPVkVSTEFZX0RFRkFVTFRfT1BUSU9OUywgT1ZFUkxBWV9TQ1JPTExfU1RSQVRFR1kgfSBmcm9tICcuLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgT3ZlcmxheUNvbmZpZyB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7XG4gIEVUX09WRVJMQVlfQk9UVE9NX1NIRUVUX0NMQVNTLFxuICBFVF9PVkVSTEFZX0xFRlRfU0hFRVRfQ0xBU1MsXG4gIEVUX09WRVJMQVlfUklHSFRfU0hFRVRfQ0xBU1MsXG4gIEVUX09WRVJMQVlfVE9QX1NIRUVUX0NMQVNTLFxuICBPdmVybGF5UG9zaXRpb25CdWlsZGVyLFxuICBPdmVybGF5UmVmLFxuICBjcmVhdGVPdmVybGF5Q29uZmlnLFxufSBmcm9tICcuLi91dGlscyc7XG5cbmxldCB1bmlxdWVJZCA9IDA7XG5jb25zdCBJRF9QUkVGSVggPSAnZXQtb3ZlcmxheS0nO1xuXG5jb25zdCBzZXRTdHlsZSA9IChlbDogSFRNTEVsZW1lbnQsIHN0eWxlOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcgfCBudW1iZXIgfCBudWxsIHwgdW5kZWZpbmVkKSA9PiB7XG4gIGlmICh2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgZWwuc3R5bGUucmVtb3ZlUHJvcGVydHkoc3R5bGUpO1xuICB9IGVsc2Uge1xuICAgIGVsLnN0eWxlLnNldFByb3BlcnR5KHN0eWxlLCBjb2VyY2VDc3NQaXhlbFZhbHVlKHZhbHVlKSk7XG4gIH1cbn07XG5cbmNvbnN0IHNldENsYXNzID0gKGVsOiBIVE1MRWxlbWVudCwgcHJldkNsYXNzPzogc3RyaW5nIHwgc3RyaW5nW10sIGN1cnJDbGFzcz86IHN0cmluZyB8IHN0cmluZ1tdKSA9PiB7XG4gIGlmICghZXF1YWwocHJldkNsYXNzLCBjdXJyQ2xhc3MpKSB7XG4gICAgaWYgKHByZXZDbGFzcykge1xuICAgICAgaWYgKEFycmF5LmlzQXJyYXkocHJldkNsYXNzKSkge1xuICAgICAgICBlbC5jbGFzc0xpc3QucmVtb3ZlKC4uLnByZXZDbGFzcyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBlbC5jbGFzc0xpc3QucmVtb3ZlKHByZXZDbGFzcyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGN1cnJDbGFzcykge1xuICAgICAgaWYgKEFycmF5LmlzQXJyYXkoY3VyckNsYXNzKSkge1xuICAgICAgICBlbC5jbGFzc0xpc3QuYWRkKC4uLmN1cnJDbGFzcyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBlbC5jbGFzc0xpc3QuYWRkKGN1cnJDbGFzcyk7XG4gICAgICB9XG4gICAgfVxuICB9XG59O1xuXG5jb25zdCBpc0h0bWxFbGVtZW50ID0gKGVsZW1lbnQ6IEhUTUxFbGVtZW50IHwgdW5rbm93bik6IGVsZW1lbnQgaXMgSFRNTEVsZW1lbnQgPT4ge1xuICByZXR1cm4gZWxlbWVudCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50O1xufTtcblxuY29uc3QgaXNUb3VjaEV2ZW50ID0gKGV2ZW50OiBFdmVudCk6IGV2ZW50IGlzIFRvdWNoRXZlbnQgPT4ge1xuICByZXR1cm4gZXZlbnQudHlwZVswXSA9PT0gJ3QnO1xufTtcblxuY29uc3QgaXNQb2ludGVyRXZlbnQgPSAoZXZlbnQ6IEV2ZW50KTogZXZlbnQgaXMgUG9pbnRlckV2ZW50ID0+IHtcbiAgcmV0dXJuIGV2ZW50LnR5cGVbMF0gPT09ICdjJztcbn07XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBPdmVybGF5U2VydmljZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2Rlc3Ryb3kkID0gY3JlYXRlRGVzdHJveSgpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9kZWZhdWx0T3B0aW9ucyA9IGluamVjdChPVkVSTEFZX0RFRkFVTFRfT1BUSU9OUywgeyBvcHRpb25hbDogdHJ1ZSB9KTtcbiAgcHJpdmF0ZSByZWFkb25seSBfc2Nyb2xsU3RyYXRlZ3kgPSBpbmplY3QoT1ZFUkxBWV9TQ1JPTExfU1RSQVRFR1kpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9wYXJlbnRPdmVybGF5U2VydmljZSA9IGluamVjdChPdmVybGF5U2VydmljZSwgeyBvcHRpb25hbDogdHJ1ZSwgc2tpcFNlbGY6IHRydWUgfSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2RpYWxvZyA9IGluamVjdChDZGtEaWFsb2cpO1xuICBwcml2YXRlIHJlYWRvbmx5IF92aWV3cG9ydFNlcnZpY2UgPSBpbmplY3QoVmlld3BvcnRTZXJ2aWNlKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9vcGVuT3ZlcmxheXNBdFRoaXNMZXZlbDogT3ZlcmxheVJlZltdID0gW107XG4gIHByaXZhdGUgcmVhZG9ubHkgX2FmdGVyQWxsQ2xvc2VkQXRUaGlzTGV2ZWwgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9hZnRlck9wZW5lZEF0VGhpc0xldmVsID0gbmV3IFN1YmplY3Q8T3ZlcmxheVJlZj4oKTtcblxuICByZWFkb25seSBwb3NpdGlvbnMgPSBuZXcgT3ZlcmxheVBvc2l0aW9uQnVpbGRlcigpO1xuXG4gIHJlYWRvbmx5IGFmdGVyQWxsQ2xvc2VkID0gZGVmZXIoKCkgPT5cbiAgICB0aGlzLm9wZW5PdmVybGF5cy5sZW5ndGggPyB0aGlzLl9nZXRBZnRlckFsbENsb3NlZCgpIDogdGhpcy5fZ2V0QWZ0ZXJBbGxDbG9zZWQoKS5waXBlKHN0YXJ0V2l0aCh1bmRlZmluZWQpKSxcbiAgKSBhcyBPYnNlcnZhYmxlPHZvaWQ+O1xuXG4gIGdldCBvcGVuT3ZlcmxheXMoKTogT3ZlcmxheVJlZltdIHtcbiAgICByZXR1cm4gdGhpcy5fcGFyZW50T3ZlcmxheVNlcnZpY2UgPyB0aGlzLl9wYXJlbnRPdmVybGF5U2VydmljZS5vcGVuT3ZlcmxheXMgOiB0aGlzLl9vcGVuT3ZlcmxheXNBdFRoaXNMZXZlbDtcbiAgfVxuXG4gIGdldCBhZnRlck9wZW5lZCgpOiBTdWJqZWN0PE92ZXJsYXlSZWY+IHtcbiAgICByZXR1cm4gdGhpcy5fcGFyZW50T3ZlcmxheVNlcnZpY2UgPyB0aGlzLl9wYXJlbnRPdmVybGF5U2VydmljZS5hZnRlck9wZW5lZCA6IHRoaXMuX2FmdGVyT3BlbmVkQXRUaGlzTGV2ZWw7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLl9jbG9zZU92ZXJsYXlzKHRoaXMuX29wZW5PdmVybGF5c0F0VGhpc0xldmVsKTtcbiAgICB0aGlzLl9hZnRlckFsbENsb3NlZEF0VGhpc0xldmVsLmNvbXBsZXRlKCk7XG4gICAgdGhpcy5fYWZ0ZXJPcGVuZWRBdFRoaXNMZXZlbC5jb21wbGV0ZSgpO1xuICB9XG5cbiAgb3BlbjxULCBEID0gdW5rbm93biwgUiA9IHVua25vd24+KGNvbXBvbmVudDogQ29tcG9uZW50VHlwZTxUPiwgY29uZmlnOiBPdmVybGF5Q29uZmlnPEQ+KTogT3ZlcmxheVJlZjxULCBSPjtcbiAgb3BlbjxULCBEID0gdW5rbm93biwgUiA9IHVua25vd24+KHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxUPiwgY29uZmlnOiBPdmVybGF5Q29uZmlnPEQ+KTogT3ZlcmxheVJlZjxULCBSPjtcbiAgb3BlbjxULCBEID0gdW5rbm93biwgUiA9IHVua25vd24+KFxuICAgIHRlbXBsYXRlOiBDb21wb25lbnRUeXBlPFQ+IHwgVGVtcGxhdGVSZWY8VD4sXG4gICAgY29uZmlnOiBPdmVybGF5Q29uZmlnPEQ+LFxuICApOiBPdmVybGF5UmVmPFQsIFI+O1xuICBvcGVuPFQsIEQgPSB1bmtub3duLCBSID0gdW5rbm93bj4oXG4gICAgY29tcG9uZW50T3JUZW1wbGF0ZVJlZjogQ29tcG9uZW50VHlwZTxUPiB8IFRlbXBsYXRlUmVmPFQ+LFxuICAgIGNvbmZpZzogT3ZlcmxheUNvbmZpZzxEPixcbiAgKTogT3ZlcmxheVJlZjxULCBSPiB7XG4gICAgbGV0IG92ZXJsYXlSZWY6IE92ZXJsYXlSZWY8VCwgUj47XG5cbiAgICBjb25zdCBjb21wb3NlZENvbmZpZyA9IGNyZWF0ZU92ZXJsYXlDb25maWc8RD4odGhpcy5fZGVmYXVsdE9wdGlvbnMgYXMgT3ZlcmxheUNvbmZpZzxEPiwgY29uZmlnKTtcbiAgICBjb21wb3NlZENvbmZpZy5pZCA9IGNvbXBvc2VkQ29uZmlnLmlkIHx8IGAke0lEX1BSRUZJWH0ke3VuaXF1ZUlkKyt9YDtcbiAgICBjb21wb3NlZENvbmZpZy5zY3JvbGxTdHJhdGVneSA9IGNvbXBvc2VkQ29uZmlnLnNjcm9sbFN0cmF0ZWd5IHx8IHRoaXMuX3Njcm9sbFN0cmF0ZWd5KCk7XG5cbiAgICBjb25zdCBjZGtSZWYgPSB0aGlzLl9kaWFsb2cub3BlbjxSLCBELCBUPihjb21wb25lbnRPclRlbXBsYXRlUmVmLCB7XG4gICAgICAuLi5jb21wb3NlZENvbmZpZyxcbiAgICAgIGRpc2FibGVDbG9zZTogdHJ1ZSxcbiAgICAgIGNsb3NlT25EZXN0cm95OiBmYWxzZSxcbiAgICAgIHBhbmVsQ2xhc3M6ICdldC1vdmVybGF5LXBhbmUnLFxuICAgICAgY29udGFpbmVyOiB7XG4gICAgICAgIHR5cGU6IE92ZXJsYXlDb250YWluZXJDb21wb25lbnQsXG4gICAgICAgIHByb3ZpZGVyczogKCkgPT4gW1xuICAgICAgICAgIHsgcHJvdmlkZTogT1ZFUkxBWV9DT05GSUcsIHVzZVZhbHVlOiBjb21wb3NlZENvbmZpZyB9LFxuICAgICAgICAgIHsgcHJvdmlkZTogQ2RrRGlhbG9nQ29uZmlnLCB1c2VWYWx1ZTogY29tcG9zZWRDb25maWcgfSxcbiAgICAgICAgXSxcbiAgICAgIH0sXG4gICAgICB0ZW1wbGF0ZUNvbnRleHQ6ICgpID0+ICh7IGRpYWxvZ1JlZjogb3ZlcmxheVJlZiB9KSxcbiAgICAgIHByb3ZpZGVyczogKHJlZiwgY2RrQ29uZmlnLCBvdmVybGF5Q29udGFpbmVyKSA9PiB7XG4gICAgICAgIG92ZXJsYXlSZWYgPSBuZXcgT3ZlcmxheVJlZihyZWYsIGNvbXBvc2VkQ29uZmlnLCBvdmVybGF5Q29udGFpbmVyIGFzIE92ZXJsYXlDb250YWluZXJDb21wb25lbnQpO1xuXG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgeyBwcm92aWRlOiBPdmVybGF5Q29udGFpbmVyQ29tcG9uZW50LCB1c2VWYWx1ZTogb3ZlcmxheUNvbnRhaW5lciB9LFxuICAgICAgICAgIHsgcHJvdmlkZTogT1ZFUkxBWV9EQVRBLCB1c2VWYWx1ZTogY2RrQ29uZmlnLmRhdGEgfSxcbiAgICAgICAgICB7IHByb3ZpZGU6IE92ZXJsYXlSZWYsIHVzZVZhbHVlOiBvdmVybGF5UmVmIH0sXG4gICAgICAgICAgLi4uKGNvbXBvc2VkQ29uZmlnLnByb3ZpZGVycyA/PyBbXSksXG4gICAgICAgIF07XG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLW5vbi1udWxsLWFzc2VydGlvbiovXG4gICAgKG92ZXJsYXlSZWYhIGFzIHsgY29tcG9uZW50UmVmOiBDb21wb25lbnRSZWY8VD4gfSkuY29tcG9uZW50UmVmID0gY2RrUmVmLmNvbXBvbmVudFJlZiE7XG4gICAgb3ZlcmxheVJlZiEuY29tcG9uZW50SW5zdGFuY2UgPSBjZGtSZWYuY29tcG9uZW50SW5zdGFuY2UhO1xuXG4gICAgKGNka1JlZi5jb250YWluZXJJbnN0YW5jZSBhcyBPdmVybGF5Q29udGFpbmVyQ29tcG9uZW50KS5vdmVybGF5UmVmID0gb3ZlcmxheVJlZiE7XG5cbiAgICBjb25zdCBjb250YWluZXJFbCA9IG92ZXJsYXlSZWYhLl9jb250YWluZXJJbnN0YW5jZS5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgY29uc3Qgb3ZlcmxheVBhbmVFbCA9IGNka1JlZi5vdmVybGF5UmVmLm92ZXJsYXlFbGVtZW50O1xuICAgIGNvbnN0IGJhY2tkcm9wRWwgPSBjZGtSZWYub3ZlcmxheVJlZi5iYWNrZHJvcEVsZW1lbnQ7XG4gICAgY29uc3Qgb3ZlcmxheVdyYXBwZXIgPSBjZGtSZWYub3ZlcmxheVJlZi5ob3N0RWxlbWVudDtcbiAgICBjb25zdCBkZWZhdWx0QW5pbWF0aW9uQnVmZmVyID0gNTA7IC8vIDUwcHggc2luY2UgdGhlIGRlZmF1bHQgYW5pbWF0aW9uIHVzZXMgc3ByaW5nIHBoeXNpY3MgYW5kIHRodXMgd2lsbCBvdmVyc2hvb3QuXG4gICAgY29uc3QgdXNlRGVmYXVsdEFuaW1hdGlvbiA9IGNvbXBvc2VkQ29uZmlnLmN1c3RvbUFuaW1hdGVkICE9PSB0cnVlO1xuICAgIGNvbnN0IG9yaWdpbiA9IGNvbXBvc2VkQ29uZmlnLm9yaWdpbjtcblxuICAgIGNvbWJpbmVMYXRlc3QoXG4gICAgICBjb21wb3NlZENvbmZpZy5wb3NpdGlvbnMubWFwKChicmVha3BvaW50KSA9PlxuICAgICAgICAoYnJlYWtwb2ludC5icmVha3BvaW50ID8gdGhpcy5fdmlld3BvcnRTZXJ2aWNlLm9ic2VydmUoeyBtaW46IGJyZWFrcG9pbnQuYnJlYWtwb2ludCB9KSA6IG9mKHRydWUpKS5waXBlKFxuICAgICAgICAgIG1hcCgoaXNBY3RpdmUpID0+ICh7XG4gICAgICAgICAgICBpc0FjdGl2ZSxcbiAgICAgICAgICAgIGNvbmZpZzogYnJlYWtwb2ludC5jb25maWcsXG4gICAgICAgICAgICBzaXplOlxuICAgICAgICAgICAgICB0eXBlb2YgYnJlYWtwb2ludC5icmVha3BvaW50ID09PSAnbnVtYmVyJ1xuICAgICAgICAgICAgICAgID8gYnJlYWtwb2ludC5icmVha3BvaW50XG4gICAgICAgICAgICAgICAgOiBicmVha3BvaW50LmJyZWFrcG9pbnQgPT09IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgID8gMFxuICAgICAgICAgICAgICAgIDogdGhpcy5fdmlld3BvcnRTZXJ2aWNlLmdldEJyZWFrcG9pbnRTaXplKGJyZWFrcG9pbnQuYnJlYWtwb2ludCwgJ21pbicpLFxuICAgICAgICAgIH0pKSxcbiAgICAgICAgKSxcbiAgICAgICksXG4gICAgKVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRha2VVbnRpbChvdmVybGF5UmVmIS5hZnRlckNsb3NlZCgpKSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSxcbiAgICAgICAgbWFwKChlbnRyaWVzKSA9PiB7XG4gICAgICAgICAgY29uc3QgYWN0aXZlQnJlYWtwb2ludHMgPSBlbnRyaWVzLmZpbHRlcigoZW50cnkpID0+IGVudHJ5LmlzQWN0aXZlKTtcbiAgICAgICAgICBjb25zdCBoaWdoZXN0QnJlYWtwb2ludCA9IGFjdGl2ZUJyZWFrcG9pbnRzLnJlZHVjZSgocHJldiwgY3VycikgPT4gKHByZXYuc2l6ZSA+IGN1cnIuc2l6ZSA/IHByZXYgOiBjdXJyKSk7XG5cbiAgICAgICAgICByZXR1cm4gaGlnaGVzdEJyZWFrcG9pbnQuY29uZmlnO1xuICAgICAgICB9KSxcbiAgICAgICAgc3RhcnRXaXRoKG51bGwpLFxuICAgICAgICBwYWlyd2lzZSgpLFxuICAgICAgICB0YXAoKFtwcmV2Q29uZmlnLCBjdXJyQ29uZmlnXSkgPT4ge1xuICAgICAgICAgIGlmICghY3VyckNvbmZpZykgcmV0dXJuO1xuXG4gICAgICAgICAgY29uc3QgY29udGFpbmVyQ2xhc3MgPSBjdXJyQ29uZmlnLmNvbnRhaW5lckNsYXNzO1xuXG4gICAgICAgICAgY29uc3QgYXBwbHlEZWZhdWx0TWF4V2lkdGhzID0gKCkgPT4ge1xuICAgICAgICAgICAgc2V0U3R5bGUob3ZlcmxheVBhbmVFbCwgJ21heC13aWR0aCcsIGN1cnJDb25maWcubWF4V2lkdGgpO1xuICAgICAgICAgICAgc2V0U3R5bGUob3ZlcmxheVBhbmVFbCwgJ21heC1oZWlnaHQnLCBjdXJyQ29uZmlnLm1heEhlaWdodCk7XG4gICAgICAgICAgfTtcblxuICAgICAgICAgIGNvbnN0IGNvbWJpbmVPck1ha2VDYWxjID0gKHZhbHVlOiBzdHJpbmcgfCBudW1iZXIgfCBudWxsIHwgdW5kZWZpbmVkLCBhcHBlbmQ6IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgaWYgKCF2YWx1ZSkgcmV0dXJuIGFwcGVuZDtcblxuICAgICAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIGBjYWxjKCR7dmFsdWV9cHggKyAke2FwcGVuZH0pYDtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodmFsdWUuc3RhcnRzV2l0aCgnY2FsYygnKSkge1xuICAgICAgICAgICAgICByZXR1cm4gYCR7dmFsdWUuc2xpY2UoMCwgdmFsdWUubGVuZ3RoIC0gMSl9ICsgJHthcHBlbmR9KWA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBgY2FsYygke3ZhbHVlfSArICR7YXBwZW5kfSlgO1xuICAgICAgICAgIH07XG5cbiAgICAgICAgICBpZiAob3JpZ2luKSB7XG4gICAgICAgICAgICAvLyBUT0RPOiBJZiBnZXRCb3VuZGluZ0NsaWVudFJlY3QgaXMgdXNlZCBpdCBzaG91bGQgdXNlIHRoZSBjZW50ZXIgb2YgdGhlIGVsZW1lbnQuXG4gICAgICAgICAgICBjb25zdCBvcmlnaW5YID0gaXNIdG1sRWxlbWVudChvcmlnaW4pXG4gICAgICAgICAgICAgID8gb3JpZ2luLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmxlZnRcbiAgICAgICAgICAgICAgOiBpc1RvdWNoRXZlbnQob3JpZ2luKVxuICAgICAgICAgICAgICA/IG9yaWdpbi50YXJnZXRUb3VjaGVzWzBdIS5jbGllbnRYXG4gICAgICAgICAgICAgIDogaXNQb2ludGVyRXZlbnQob3JpZ2luKVxuICAgICAgICAgICAgICA/IG9yaWdpbi5jbGllbnRYICE9PSAwXG4gICAgICAgICAgICAgICAgPyBvcmlnaW4uY2xpZW50WFxuICAgICAgICAgICAgICAgIDogKG9yaWdpbi50YXJnZXQgYXMgSFRNTEVsZW1lbnQpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmxlZnRcbiAgICAgICAgICAgICAgOiAtMTtcbiAgICAgICAgICAgIGNvbnN0IG9yaWdpblkgPSBpc0h0bWxFbGVtZW50KG9yaWdpbilcbiAgICAgICAgICAgICAgPyBvcmlnaW4uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wXG4gICAgICAgICAgICAgIDogaXNUb3VjaEV2ZW50KG9yaWdpbilcbiAgICAgICAgICAgICAgPyBvcmlnaW4udGFyZ2V0VG91Y2hlc1swXSEuY2xpZW50WVxuICAgICAgICAgICAgICA6IGlzUG9pbnRlckV2ZW50KG9yaWdpbilcbiAgICAgICAgICAgICAgPyBvcmlnaW4uY2xpZW50WSAhPT0gMFxuICAgICAgICAgICAgICAgID8gb3JpZ2luLmNsaWVudFlcbiAgICAgICAgICAgICAgICA6IChvcmlnaW4udGFyZ2V0IGFzIEhUTUxFbGVtZW50KS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3BcbiAgICAgICAgICAgICAgOiAtMTtcblxuICAgICAgICAgICAgaWYgKG9yaWdpblggIT09IC0xICYmIG9yaWdpblkgIT09IC0xICYmIGN1cnJDb25maWcuYXBwbHlUcmFuc2Zvcm1PcmlnaW4pIHtcbiAgICAgICAgICAgICAgc2V0U3R5bGUoY29udGFpbmVyRWwsICd0cmFuc2Zvcm0tb3JpZ2luJywgYCR7b3JpZ2luWH1weCAke29yaWdpbll9cHhgKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHNldFN0eWxlKGNvbnRhaW5lckVsLCAndHJhbnNmb3JtLW9yaWdpbicsIG51bGwpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmICh1c2VEZWZhdWx0QW5pbWF0aW9uICYmIGNvbnRhaW5lckNsYXNzPy5sZW5ndGgpIHtcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgY29udGFpbmVyQ2xhc3M/LmluY2x1ZGVzKEVUX09WRVJMQVlfTEVGVF9TSEVFVF9DTEFTUykgfHxcbiAgICAgICAgICAgICAgY29udGFpbmVyQ2xhc3M/LmluY2x1ZGVzKEVUX09WRVJMQVlfUklHSFRfU0hFRVRfQ0xBU1MpXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgc2V0U3R5bGUoXG4gICAgICAgICAgICAgICAgb3ZlcmxheVBhbmVFbCxcbiAgICAgICAgICAgICAgICAnbWF4LXdpZHRoJyxcbiAgICAgICAgICAgICAgICBjb21iaW5lT3JNYWtlQ2FsYyhjdXJyQ29uZmlnLm1heFdpZHRoLCBgJHtkZWZhdWx0QW5pbWF0aW9uQnVmZmVyfXB4YCksXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIHNldFN0eWxlKG92ZXJsYXlQYW5lRWwsICdtYXgtaGVpZ2h0JywgY3VyckNvbmZpZy5tYXhIZWlnaHQpO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgICAgICAgY29udGFpbmVyQ2xhc3M/LmluY2x1ZGVzKEVUX09WRVJMQVlfVE9QX1NIRUVUX0NMQVNTKSB8fFxuICAgICAgICAgICAgICBjb250YWluZXJDbGFzcz8uaW5jbHVkZXMoRVRfT1ZFUkxBWV9CT1RUT01fU0hFRVRfQ0xBU1MpXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgc2V0U3R5bGUoXG4gICAgICAgICAgICAgICAgb3ZlcmxheVBhbmVFbCxcbiAgICAgICAgICAgICAgICAnbWF4LWhlaWdodCcsXG4gICAgICAgICAgICAgICAgY29tYmluZU9yTWFrZUNhbGMoY3VyckNvbmZpZy5tYXhIZWlnaHQsIGAke2RlZmF1bHRBbmltYXRpb25CdWZmZXJ9cHhgKSxcbiAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICBzZXRTdHlsZShvdmVybGF5UGFuZUVsLCAnbWF4LXdpZHRoJywgY3VyckNvbmZpZy5tYXhXaWR0aCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBhcHBseURlZmF1bHRNYXhXaWR0aHMoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgYXBwbHlEZWZhdWx0TWF4V2lkdGhzKCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgc2V0U3R5bGUob3ZlcmxheVBhbmVFbCwgJ21pbi13aWR0aCcsIGN1cnJDb25maWcubWluV2lkdGgpO1xuICAgICAgICAgIHNldFN0eWxlKG92ZXJsYXlQYW5lRWwsICdtaW4taGVpZ2h0JywgY3VyckNvbmZpZy5taW5IZWlnaHQpO1xuXG4gICAgICAgICAgc2V0U3R5bGUob3ZlcmxheVBhbmVFbCwgJ3dpZHRoJywgY3VyckNvbmZpZy53aWR0aCk7XG4gICAgICAgICAgc2V0U3R5bGUob3ZlcmxheVBhbmVFbCwgJ2hlaWdodCcsIGN1cnJDb25maWcuaGVpZ2h0KTtcblxuICAgICAgICAgIHNldENsYXNzKGNvbnRhaW5lckVsLCBwcmV2Q29uZmlnPy5jb250YWluZXJDbGFzcywgY3VyckNvbmZpZz8uY29udGFpbmVyQ2xhc3MpO1xuICAgICAgICAgIHNldENsYXNzKG92ZXJsYXlQYW5lRWwsIHByZXZDb25maWc/LnBhbmVDbGFzcywgY3VyckNvbmZpZz8ucGFuZUNsYXNzKTtcbiAgICAgICAgICBzZXRDbGFzcyhvdmVybGF5V3JhcHBlciwgcHJldkNvbmZpZz8ub3ZlcmxheUNsYXNzLCBjdXJyQ29uZmlnPy5vdmVybGF5Q2xhc3MpO1xuXG4gICAgICAgICAgLy8gRklYTUU6IFRoZXNlIGNsYXNzZXMgc2hvdWxkIG9ubHkgYmUgcmVtb3ZlZCBpZiBubyBvcGVuIG92ZXJsYXlzIHJlcXVpcmUgdGhlbSBpbnNpZGUgdGhlaXIgY29uZmlnLlxuICAgICAgICAgIHNldENsYXNzKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCwgcHJldkNvbmZpZz8uZG9jdW1lbnRDbGFzcywgY3VyckNvbmZpZz8uZG9jdW1lbnRDbGFzcyk7XG4gICAgICAgICAgc2V0Q2xhc3MoZG9jdW1lbnQuYm9keSwgcHJldkNvbmZpZz8uYm9keUNsYXNzLCBjdXJyQ29uZmlnPy5ib2R5Q2xhc3MpO1xuXG4gICAgICAgICAgaWYgKGJhY2tkcm9wRWwpIHtcbiAgICAgICAgICAgIHNldENsYXNzKGJhY2tkcm9wRWwsIHByZXZDb25maWc/LmJhY2tkcm9wQ2xhc3MsIGN1cnJDb25maWc/LmJhY2tkcm9wQ2xhc3MpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmICghZXF1YWwocHJldkNvbmZpZz8ucG9zaXRpb24sIGN1cnJDb25maWc/LnBvc2l0aW9uKSkge1xuICAgICAgICAgICAgb3ZlcmxheVJlZi51cGRhdGVQb3NpdGlvbihjdXJyQ29uZmlnLnBvc2l0aW9uKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoY3VyckNvbmZpZy5wb3NpdGlvblN0cmF0ZWd5KSB7XG4gICAgICAgICAgICBjZGtSZWYub3ZlcmxheVJlZi51cGRhdGVQb3NpdGlvblN0cmF0ZWd5KGN1cnJDb25maWcucG9zaXRpb25TdHJhdGVneSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNka1JlZi5vdmVybGF5UmVmLnVwZGF0ZVBvc2l0aW9uKCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKGN1cnJDb25maWcuZHJhZ1RvRGlzbWlzcykge1xuICAgICAgICAgICAgb3ZlcmxheVJlZi5fY29udGFpbmVySW5zdGFuY2UuX2VuYWJsZURyYWdUb0Rpc21pc3MoY3VyckNvbmZpZy5kcmFnVG9EaXNtaXNzKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgb3ZlcmxheVJlZi5fY29udGFpbmVySW5zdGFuY2UuX2Rpc2FibGVEcmFnVG9EaXNtaXNzKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcblxuICAgIHRoaXMub3Blbk92ZXJsYXlzLnB1c2gob3ZlcmxheVJlZiEpO1xuICAgIHRoaXMuYWZ0ZXJPcGVuZWQubmV4dChvdmVybGF5UmVmISk7XG5cbiAgICBvdmVybGF5UmVmIS5iZWZvcmVDbG9zZWQoKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgLy8gRklYTUU6IFRoZXNlIGNsYXNzZXMgc2hvdWxkIG9ubHkgYmUgcmVtb3ZlZCBpZiBubyBvcGVuIG92ZXJsYXlzIHJlcXVpcmUgdGhlbSBpbnNpZGUgdGhlaXIgY29uZmlnLlxuICAgICAgY29uc3QgZG9jdW1lbnRDbGFzc2VzID0gY29tcG9zZWRDb25maWcucG9zaXRpb25zLm1hcCgocG9zaXRpb24pID0+IHBvc2l0aW9uLmNvbmZpZy5kb2N1bWVudENsYXNzKTtcblxuICAgICAgZm9yIChjb25zdCBrbGFzcyBvZiBkb2N1bWVudENsYXNzZXMpIHtcbiAgICAgICAgaWYgKCFrbGFzcykgY29udGludWU7XG5cbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoa2xhc3MpKSB7XG4gICAgICAgICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoLi4ua2xhc3MpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKGtsYXNzKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBjb25zdCBib2R5Q2xhc3NlcyA9IGNvbXBvc2VkQ29uZmlnLnBvc2l0aW9ucy5tYXAoKHBvc2l0aW9uKSA9PiBwb3NpdGlvbi5jb25maWcuYm9keUNsYXNzKTtcblxuICAgICAgZm9yIChjb25zdCBrbGFzcyBvZiBib2R5Q2xhc3Nlcykge1xuICAgICAgICBpZiAoIWtsYXNzKSBjb250aW51ZTtcblxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShrbGFzcykpIHtcbiAgICAgICAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5yZW1vdmUoLi4ua2xhc3MpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LnJlbW92ZShrbGFzcyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcblxuICAgIG92ZXJsYXlSZWYhLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5vcGVuT3ZlcmxheXMuaW5kZXhPZihvdmVybGF5UmVmKTtcblxuICAgICAgaWYgKGluZGV4ID09PSAtMSkgcmV0dXJuO1xuXG4gICAgICB0aGlzLm9wZW5PdmVybGF5cy5zcGxpY2UoaW5kZXgsIDEpO1xuXG4gICAgICBpZiAoIXRoaXMub3Blbk92ZXJsYXlzLmxlbmd0aCkge1xuICAgICAgICB0aGlzLl9nZXRBZnRlckFsbENsb3NlZCgpLm5leHQoKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBvdmVybGF5UmVmITtcblxuICAgIC8qIGVzbGludC1lbmFibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLW5vbi1udWxsLWFzc2VydGlvbiovXG4gIH1cblxuICBjbG9zZUFsbCgpOiB2b2lkIHtcbiAgICB0aGlzLl9jbG9zZU92ZXJsYXlzKHRoaXMub3Blbk92ZXJsYXlzKTtcbiAgfVxuXG4gIGdldE92ZXJsYXlCeUlkKGlkOiBzdHJpbmcpOiBPdmVybGF5UmVmIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5vcGVuT3ZlcmxheXMuZmluZCgob3ZlcmxheSkgPT4gb3ZlcmxheS5pZCA9PT0gaWQpO1xuICB9XG5cbiAgcHJpdmF0ZSBfY2xvc2VPdmVybGF5cyhvdmVybGF5czogT3ZlcmxheVJlZltdKSB7XG4gICAgbGV0IGkgPSBvdmVybGF5cy5sZW5ndGg7XG5cbiAgICB3aGlsZSAoaS0tKSB7XG4gICAgICBvdmVybGF5c1tpXT8uY2xvc2UoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9nZXRBZnRlckFsbENsb3NlZCgpOiBTdWJqZWN0PHZvaWQ+IHtcbiAgICBjb25zdCBwYXJlbnQgPSB0aGlzLl9wYXJlbnRPdmVybGF5U2VydmljZTtcbiAgICByZXR1cm4gcGFyZW50ID8gcGFyZW50Ll9nZXRBZnRlckFsbENsb3NlZCgpIDogdGhpcy5fYWZ0ZXJBbGxDbG9zZWRBdFRoaXNMZXZlbDtcbiAgfVxufVxuIl19
|
|
288
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmxheS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jZGsvc3JjL2xpYi9jb21wb25lbnRzL292ZXJsYXkvY29tcG9uZW50cy9vdmVybGF5L3NlcnZpY2VzL292ZXJsYXkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsTUFBTSxJQUFJLFNBQVMsRUFBRSxZQUFZLElBQUksZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFM0YsT0FBTyxFQUFnQixVQUFVLEVBQTBCLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6RixPQUFPLEVBQUUsbUJBQW1CLEVBQUUscUJBQXFCLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEgsT0FBTyxFQUFFLHFCQUFxQixFQUFFLGNBQWMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3pFLE9BQU8sRUFBYyxPQUFPLEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvRyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUQsT0FBTyxFQUFFLGNBQWMsRUFBRSxZQUFZLEVBQUUsdUJBQXVCLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFOUcsT0FBTyxFQUNMLDZCQUE2QixFQUM3QiwyQkFBMkIsRUFDM0IsNEJBQTRCLEVBQzVCLDBCQUEwQixFQUMxQixzQkFBc0IsRUFDdEIsVUFBVSxFQUNWLG1CQUFtQixHQUNwQixNQUFNLFVBQVUsQ0FBQzs7QUFFbEIsSUFBSSxRQUFRLEdBQUcsQ0FB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QUM7Z0JBQUUsT0FBTztZQUV6QixJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFFbkMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFO2dCQUM3QixJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQzthQUNsQztRQUNILENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxVQUFXLENBQUM7UUFFbkIsMkRBQTJEO0lBQzdELENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVELGNBQWMsQ0FBQyxFQUFVO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDaEUsQ0FBQztJQUVPLGNBQWMsQ0FBQyxRQUFzQjtRQUMzQyxJQUFJLENBQUMsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDO1FBRXhCLE9BQU8sQ0FBQyxFQUFFLEVBQUU7WUFDVixRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUM7U0FDdEI7SUFDSCxDQUFDO0lBRU8sa0JBQWtCO1FBQ3hCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxxQkFBcUIsQ0FBQztRQUMxQyxPQUFPLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLGtCQUFrQixFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQywwQkFBMEIsQ0FBQztJQUNoRixDQUFDOzhHQTlTVSxjQUFjO2tIQUFkLGNBQWM7OzJGQUFkLGNBQWM7a0JBRDFCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb2VyY2VDc3NQaXhlbFZhbHVlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7IERpYWxvZyBhcyBDZGtEaWFsb2csIERpYWxvZ0NvbmZpZyBhcyBDZGtEaWFsb2dDb25maWcgfSBmcm9tICdAYW5ndWxhci9jZGsvZGlhbG9nJztcbmltcG9ydCB7IENvbXBvbmVudFR5cGUgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBDb21wb25lbnRSZWYsIEluamVjdGFibGUsIE9uRGVzdHJveSwgVGVtcGxhdGVSZWYsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUk9PVF9CT1VOREFSWV9UT0tFTiwgUm9vdEJvdW5kYXJ5RGlyZWN0aXZlLCBWaWV3cG9ydFNlcnZpY2UsIGNyZWF0ZURlc3Ryb3ksIGVxdWFsIH0gZnJvbSAnQGV0aGxldGUvY29yZSc7XG5pbXBvcnQgeyBQcm92aWRlVGhlbWVEaXJlY3RpdmUsIFRIRU1FX1BST1ZJREVSIH0gZnJvbSAnQGV0aGxldGUvdGhlbWluZyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBkZWZlciwgbWFwLCBvZiwgcGFpcndpc2UsIHN0YXJ0V2l0aCwgdGFrZVVudGlsLCB0YXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IE92ZXJsYXlDb250YWluZXJDb21wb25lbnQgfSBmcm9tICcuLi9jb21wb25lbnRzJztcbmltcG9ydCB7IE9WRVJMQVlfQ09ORklHLCBPVkVSTEFZX0RBVEEsIE9WRVJMQVlfREVGQVVMVF9PUFRJT05TLCBPVkVSTEFZX1NDUk9MTF9TVFJBVEVHWSB9IGZyb20gJy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBPdmVybGF5Q29uZmlnIH0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHtcbiAgRVRfT1ZFUkxBWV9CT1RUT01fU0hFRVRfQ0xBU1MsXG4gIEVUX09WRVJMQVlfTEVGVF9TSEVFVF9DTEFTUyxcbiAgRVRfT1ZFUkxBWV9SSUdIVF9TSEVFVF9DTEFTUyxcbiAgRVRfT1ZFUkxBWV9UT1BfU0hFRVRfQ0xBU1MsXG4gIE92ZXJsYXlQb3NpdGlvbkJ1aWxkZXIsXG4gIE92ZXJsYXlSZWYsXG4gIGNyZWF0ZU92ZXJsYXlDb25maWcsXG59IGZyb20gJy4uL3V0aWxzJztcblxubGV0IHVuaXF1ZUlkID0gMDtcbmNvbnN0IElEX1BSRUZJWCA9ICdldC1vdmVybGF5LSc7XG5cbmNvbnN0IHNldFN0eWxlID0gKGVsOiBIVE1MRWxlbWVudCwgc3R5bGU6IHN0cmluZywgdmFsdWU6IHN0cmluZyB8IG51bWJlciB8IG51bGwgfCB1bmRlZmluZWQpID0+IHtcbiAgaWYgKHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICBlbC5zdHlsZS5yZW1vdmVQcm9wZXJ0eShzdHlsZSk7XG4gIH0gZWxzZSB7XG4gICAgZWwuc3R5bGUuc2V0UHJvcGVydHkoc3R5bGUsIGNvZXJjZUNzc1BpeGVsVmFsdWUodmFsdWUpKTtcbiAgfVxufTtcblxuY29uc3Qgc2V0Q2xhc3MgPSAoZWw6IEhUTUxFbGVtZW50LCBwcmV2Q2xhc3M/OiBzdHJpbmcgfCBzdHJpbmdbXSwgY3VyckNsYXNzPzogc3RyaW5nIHwgc3RyaW5nW10pID0+IHtcbiAgaWYgKCFlcXVhbChwcmV2Q2xhc3MsIGN1cnJDbGFzcykpIHtcbiAgICBpZiAocHJldkNsYXNzKSB7XG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShwcmV2Q2xhc3MpKSB7XG4gICAgICAgIGVsLmNsYXNzTGlzdC5yZW1vdmUoLi4ucHJldkNsYXNzKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGVsLmNsYXNzTGlzdC5yZW1vdmUocHJldkNsYXNzKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoY3VyckNsYXNzKSB7XG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShjdXJyQ2xhc3MpKSB7XG4gICAgICAgIGVsLmNsYXNzTGlzdC5hZGQoLi4uY3VyckNsYXNzKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGVsLmNsYXNzTGlzdC5hZGQoY3VyckNsYXNzKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn07XG5cbmNvbnN0IGlzSHRtbEVsZW1lbnQgPSAoZWxlbWVudDogSFRNTEVsZW1lbnQgfCB1bmtub3duKTogZWxlbWVudCBpcyBIVE1MRWxlbWVudCA9PiB7XG4gIHJldHVybiBlbGVtZW50IGluc3RhbmNlb2YgSFRNTEVsZW1lbnQ7XG59O1xuXG5jb25zdCBpc1RvdWNoRXZlbnQgPSAoZXZlbnQ6IEV2ZW50KTogZXZlbnQgaXMgVG91Y2hFdmVudCA9PiB7XG4gIHJldHVybiBldmVudC50eXBlWzBdID09PSAndCc7XG59O1xuXG5jb25zdCBpc1BvaW50ZXJFdmVudCA9IChldmVudDogRXZlbnQpOiBldmVudCBpcyBQb2ludGVyRXZlbnQgPT4ge1xuICByZXR1cm4gZXZlbnQudHlwZVswXSA9PT0gJ2MnO1xufTtcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIE92ZXJsYXlTZXJ2aWNlIGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSByZWFkb25seSBfZGVzdHJveSQgPSBjcmVhdGVEZXN0cm95KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2RlZmF1bHRPcHRpb25zID0gaW5qZWN0KE9WRVJMQVlfREVGQVVMVF9PUFRJT05TLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuICBwcml2YXRlIHJlYWRvbmx5IF9zY3JvbGxTdHJhdGVneSA9IGluamVjdChPVkVSTEFZX1NDUk9MTF9TVFJBVEVHWSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3BhcmVudE92ZXJsYXlTZXJ2aWNlID0gaW5qZWN0KE92ZXJsYXlTZXJ2aWNlLCB7IG9wdGlvbmFsOiB0cnVlLCBza2lwU2VsZjogdHJ1ZSB9KTtcbiAgcHJpdmF0ZSByZWFkb25seSBfZGlhbG9nID0gaW5qZWN0KENka0RpYWxvZyk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3ZpZXdwb3J0U2VydmljZSA9IGluamVjdChWaWV3cG9ydFNlcnZpY2UpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX29wZW5PdmVybGF5c0F0VGhpc0xldmVsOiBPdmVybGF5UmVmW10gPSBbXTtcbiAgcHJpdmF0ZSByZWFkb25seSBfYWZ0ZXJBbGxDbG9zZWRBdFRoaXNMZXZlbCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2FmdGVyT3BlbmVkQXRUaGlzTGV2ZWwgPSBuZXcgU3ViamVjdDxPdmVybGF5UmVmPigpO1xuXG4gIHJlYWRvbmx5IHBvc2l0aW9ucyA9IG5ldyBPdmVybGF5UG9zaXRpb25CdWlsZGVyKCk7XG5cbiAgcmVhZG9ubHkgYWZ0ZXJBbGxDbG9zZWQgPSBkZWZlcigoKSA9PlxuICAgIHRoaXMub3Blbk92ZXJsYXlzLmxlbmd0aCA/IHRoaXMuX2dldEFmdGVyQWxsQ2xvc2VkKCkgOiB0aGlzLl9nZXRBZnRlckFsbENsb3NlZCgpLnBpcGUoc3RhcnRXaXRoKHVuZGVmaW5lZCkpLFxuICApIGFzIE9ic2VydmFibGU8dm9pZD47XG5cbiAgZ2V0IG9wZW5PdmVybGF5cygpOiBPdmVybGF5UmVmW10ge1xuICAgIHJldHVybiB0aGlzLl9wYXJlbnRPdmVybGF5U2VydmljZSA/IHRoaXMuX3BhcmVudE92ZXJsYXlTZXJ2aWNlLm9wZW5PdmVybGF5cyA6IHRoaXMuX29wZW5PdmVybGF5c0F0VGhpc0xldmVsO1xuICB9XG5cbiAgZ2V0IGFmdGVyT3BlbmVkKCk6IFN1YmplY3Q8T3ZlcmxheVJlZj4ge1xuICAgIHJldHVybiB0aGlzLl9wYXJlbnRPdmVybGF5U2VydmljZSA/IHRoaXMuX3BhcmVudE92ZXJsYXlTZXJ2aWNlLmFmdGVyT3BlbmVkIDogdGhpcy5fYWZ0ZXJPcGVuZWRBdFRoaXNMZXZlbDtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuX2Nsb3NlT3ZlcmxheXModGhpcy5fb3Blbk92ZXJsYXlzQXRUaGlzTGV2ZWwpO1xuICAgIHRoaXMuX2FmdGVyQWxsQ2xvc2VkQXRUaGlzTGV2ZWwuY29tcGxldGUoKTtcbiAgICB0aGlzLl9hZnRlck9wZW5lZEF0VGhpc0xldmVsLmNvbXBsZXRlKCk7XG4gIH1cblxuICBvcGVuPFQsIEQgPSB1bmtub3duLCBSID0gdW5rbm93bj4oY29tcG9uZW50OiBDb21wb25lbnRUeXBlPFQ+LCBjb25maWc6IE92ZXJsYXlDb25maWc8RD4pOiBPdmVybGF5UmVmPFQsIFI+O1xuICBvcGVuPFQsIEQgPSB1bmtub3duLCBSID0gdW5rbm93bj4odGVtcGxhdGU6IFRlbXBsYXRlUmVmPFQ+LCBjb25maWc6IE92ZXJsYXlDb25maWc8RD4pOiBPdmVybGF5UmVmPFQsIFI+O1xuICBvcGVuPFQsIEQgPSB1bmtub3duLCBSID0gdW5rbm93bj4oXG4gICAgdGVtcGxhdGU6IENvbXBvbmVudFR5cGU8VD4gfCBUZW1wbGF0ZVJlZjxUPixcbiAgICBjb25maWc6IE92ZXJsYXlDb25maWc8RD4sXG4gICk6IE92ZXJsYXlSZWY8VCwgUj47XG4gIG9wZW48VCwgRCA9IHVua25vd24sIFIgPSB1bmtub3duPihcbiAgICBjb21wb25lbnRPclRlbXBsYXRlUmVmOiBDb21wb25lbnRUeXBlPFQ+IHwgVGVtcGxhdGVSZWY8VD4sXG4gICAgY29uZmlnOiBPdmVybGF5Q29uZmlnPEQ+LFxuICApOiBPdmVybGF5UmVmPFQsIFI+IHtcbiAgICBsZXQgb3ZlcmxheVJlZjogT3ZlcmxheVJlZjxULCBSPjtcblxuICAgIGNvbnN0IGNvbXBvc2VkQ29uZmlnID0gY3JlYXRlT3ZlcmxheUNvbmZpZzxEPih0aGlzLl9kZWZhdWx0T3B0aW9ucyBhcyBPdmVybGF5Q29uZmlnPEQ+LCBjb25maWcpO1xuICAgIGNvbXBvc2VkQ29uZmlnLmlkID0gY29tcG9zZWRDb25maWcuaWQgfHwgYCR7SURfUFJFRklYfSR7dW5pcXVlSWQrK31gO1xuICAgIGNvbXBvc2VkQ29uZmlnLnNjcm9sbFN0cmF0ZWd5ID0gY29tcG9zZWRDb25maWcuc2Nyb2xsU3RyYXRlZ3kgfHwgdGhpcy5fc2Nyb2xsU3RyYXRlZ3koKTtcblxuICAgIGNvbnN0IGNka1JlZiA9IHRoaXMuX2RpYWxvZy5vcGVuPFIsIEQsIFQ+KGNvbXBvbmVudE9yVGVtcGxhdGVSZWYsIHtcbiAgICAgIC4uLmNvbXBvc2VkQ29uZmlnLFxuICAgICAgZGlzYWJsZUNsb3NlOiB0cnVlLFxuICAgICAgY2xvc2VPbkRlc3Ryb3k6IGZhbHNlLFxuICAgICAgcGFuZWxDbGFzczogJ2V0LW92ZXJsYXktcGFuZScsXG4gICAgICBjb250YWluZXI6IHtcbiAgICAgICAgdHlwZTogT3ZlcmxheUNvbnRhaW5lckNvbXBvbmVudCxcbiAgICAgICAgcHJvdmlkZXJzOiAoKSA9PiBbXG4gICAgICAgICAgeyBwcm92aWRlOiBPVkVSTEFZX0NPTkZJRywgdXNlVmFsdWU6IGNvbXBvc2VkQ29uZmlnIH0sXG4gICAgICAgICAgeyBwcm92aWRlOiBDZGtEaWFsb2dDb25maWcsIHVzZVZhbHVlOiBjb21wb3NlZENvbmZpZyB9LFxuICAgICAgICBdLFxuICAgICAgfSxcbiAgICAgIHRlbXBsYXRlQ29udGV4dDogKCkgPT4gKHsgZGlhbG9nUmVmOiBvdmVybGF5UmVmIH0pLFxuICAgICAgcHJvdmlkZXJzOiAocmVmLCBjZGtDb25maWcsIG92ZXJsYXlDb250YWluZXIpID0+IHtcbiAgICAgICAgY29uc3QgY29udGFpbmVyID0gb3ZlcmxheUNvbnRhaW5lciBhcyBPdmVybGF5Q29udGFpbmVyQ29tcG9uZW50O1xuICAgICAgICBvdmVybGF5UmVmID0gbmV3IE92ZXJsYXlSZWYocmVmLCBjb21wb3NlZENvbmZpZywgY29udGFpbmVyKTtcblxuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgIHsgcHJvdmlkZTogT3ZlcmxheUNvbnRhaW5lckNvbXBvbmVudCwgdXNlVmFsdWU6IG92ZXJsYXlDb250YWluZXIgfSxcbiAgICAgICAgICB7IHByb3ZpZGU6IFRIRU1FX1BST1ZJREVSLCB1c2VWYWx1ZTogY29udGFpbmVyLl90aGVtZVByb3ZpZGVyIH0sXG4gICAgICAgICAgeyBwcm92aWRlOiBQcm92aWRlVGhlbWVEaXJlY3RpdmUsIHVzZVZhbHVlOiBjb250YWluZXIuX3RoZW1lUHJvdmlkZXIgfSxcbiAgICAgICAgICB7IHByb3ZpZGU6IFJPT1RfQk9VTkRBUllfVE9LRU4sIHVzZVZhbHVlOiBjb250YWluZXIuX3Jvb3RCb3VuZGFyeSB9LFxuICAgICAgICAgIHsgcHJvdmlkZTogUm9vdEJvdW5kYXJ5RGlyZWN0aXZlLCB1c2VWYWx1ZTogY29udGFpbmVyLl9yb290Qm91bmRhcnkgfSxcbiAgICAgICAgICB7IHByb3ZpZGU6IE9WRVJMQVlfREFUQSwgdXNlVmFsdWU6IGNka0NvbmZpZy5kYXRhIH0sXG4gICAgICAgICAgeyBwcm92aWRlOiBPdmVybGF5UmVmLCB1c2VWYWx1ZTogb3ZlcmxheVJlZiB9LFxuICAgICAgICAgIHsgcHJvdmlkZTogT3ZlcmxheVJlZiwgdXNlVmFsdWU6IG92ZXJsYXlSZWYgfSxcbiAgICAgICAgICAuLi4oY29tcG9zZWRDb25maWcucHJvdmlkZXJzID8/IFtdKSxcbiAgICAgICAgXTtcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICAvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tbm9uLW51bGwtYXNzZXJ0aW9uKi9cbiAgICAob3ZlcmxheVJlZiEgYXMgeyBjb21wb25lbnRSZWY6IENvbXBvbmVudFJlZjxUPiB9KS5jb21wb25lbnRSZWYgPSBjZGtSZWYuY29tcG9uZW50UmVmITtcbiAgICBvdmVybGF5UmVmIS5jb21wb25lbnRJbnN0YW5jZSA9IGNka1JlZi5jb21wb25lbnRJbnN0YW5jZSE7XG5cbiAgICAoY2RrUmVmLmNvbnRhaW5lckluc3RhbmNlIGFzIE92ZXJsYXlDb250YWluZXJDb21wb25lbnQpLm92ZXJsYXlSZWYgPSBvdmVybGF5UmVmITtcblxuICAgIGNvbnN0IGNvbnRhaW5lckVsID0gb3ZlcmxheVJlZiEuX2NvbnRhaW5lckluc3RhbmNlLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudDtcbiAgICBjb25zdCBvdmVybGF5UGFuZUVsID0gY2RrUmVmLm92ZXJsYXlSZWYub3ZlcmxheUVsZW1lbnQ7XG4gICAgY29uc3QgYmFja2Ryb3BFbCA9IGNka1JlZi5vdmVybGF5UmVmLmJhY2tkcm9wRWxlbWVudDtcbiAgICBjb25zdCBvdmVybGF5V3JhcHBlciA9IGNka1JlZi5vdmVybGF5UmVmLmhvc3RFbGVtZW50O1xuICAgIGNvbnN0IGRlZmF1bHRBbmltYXRpb25CdWZmZXIgPSA1MDsgLy8gNTBweCBzaW5jZSB0aGUgZGVmYXVsdCBhbmltYXRpb24gdXNlcyBzcHJpbmcgcGh5c2ljcyBhbmQgdGh1cyB3aWxsIG92ZXJzaG9vdC5cbiAgICBjb25zdCB1c2VEZWZhdWx0QW5pbWF0aW9uID0gY29tcG9zZWRDb25maWcuY3VzdG9tQW5pbWF0ZWQgIT09IHRydWU7XG4gICAgY29uc3Qgb3JpZ2luID0gY29tcG9zZWRDb25maWcub3JpZ2luO1xuXG4gICAgY29tYmluZUxhdGVzdChcbiAgICAgIGNvbXBvc2VkQ29uZmlnLnBvc2l0aW9ucy5tYXAoKGJyZWFrcG9pbnQpID0+XG4gICAgICAgIChicmVha3BvaW50LmJyZWFrcG9pbnQgPyB0aGlzLl92aWV3cG9ydFNlcnZpY2Uub2JzZXJ2ZSh7IG1pbjogYnJlYWtwb2ludC5icmVha3BvaW50IH0pIDogb2YodHJ1ZSkpLnBpcGUoXG4gICAgICAgICAgbWFwKChpc0FjdGl2ZSkgPT4gKHtcbiAgICAgICAgICAgIGlzQWN0aXZlLFxuICAgICAgICAgICAgY29uZmlnOiBicmVha3BvaW50LmNvbmZpZyxcbiAgICAgICAgICAgIHNpemU6XG4gICAgICAgICAgICAgIHR5cGVvZiBicmVha3BvaW50LmJyZWFrcG9pbnQgPT09ICdudW1iZXInXG4gICAgICAgICAgICAgICAgPyBicmVha3BvaW50LmJyZWFrcG9pbnRcbiAgICAgICAgICAgICAgICA6IGJyZWFrcG9pbnQuYnJlYWtwb2ludCA9PT0gdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgPyAwXG4gICAgICAgICAgICAgICAgOiB0aGlzLl92aWV3cG9ydFNlcnZpY2UuZ2V0QnJlYWtwb2ludFNpemUoYnJlYWtwb2ludC5icmVha3BvaW50LCAnbWluJyksXG4gICAgICAgICAgfSkpLFxuICAgICAgICApLFxuICAgICAgKSxcbiAgICApXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZVVudGlsKG92ZXJsYXlSZWYhLmFmdGVyQ2xvc2VkKCkpLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpLFxuICAgICAgICBtYXAoKGVudHJpZXMpID0+IHtcbiAgICAgICAgICBjb25zdCBhY3RpdmVCcmVha3BvaW50cyA9IGVudHJpZXMuZmlsdGVyKChlbnRyeSkgPT4gZW50cnkuaXNBY3RpdmUpO1xuICAgICAgICAgIGNvbnN0IGhpZ2hlc3RCcmVha3BvaW50ID0gYWN0aXZlQnJlYWtwb2ludHMucmVkdWNlKChwcmV2LCBjdXJyKSA9PiAocHJldi5zaXplID4gY3Vyci5zaXplID8gcHJldiA6IGN1cnIpKTtcblxuICAgICAgICAgIHJldHVybiBoaWdoZXN0QnJlYWtwb2ludC5jb25maWc7XG4gICAgICAgIH0pLFxuICAgICAgICBzdGFydFdpdGgobnVsbCksXG4gICAgICAgIHBhaXJ3aXNlKCksXG4gICAgICAgIHRhcCgoW3ByZXZDb25maWcsIGN1cnJDb25maWddKSA9PiB7XG4gICAgICAgICAgaWYgKCFjdXJyQ29uZmlnKSByZXR1cm47XG5cbiAgICAgICAgICBjb25zdCBjb250YWluZXJDbGFzcyA9IGN1cnJDb25maWcuY29udGFpbmVyQ2xhc3M7XG5cbiAgICAgICAgICBjb25zdCBhcHBseURlZmF1bHRNYXhXaWR0aHMgPSAoKSA9PiB7XG4gICAgICAgICAgICBzZXRTdHlsZShvdmVybGF5UGFuZUVsLCAnbWF4LXdpZHRoJywgY3VyckNvbmZpZy5tYXhXaWR0aCk7XG4gICAgICAgICAgICBzZXRTdHlsZShvdmVybGF5UGFuZUVsLCAnbWF4LWhlaWdodCcsIGN1cnJDb25maWcubWF4SGVpZ2h0KTtcbiAgICAgICAgICB9O1xuXG4gICAgICAgICAgY29uc3QgY29tYmluZU9yTWFrZUNhbGMgPSAodmFsdWU6IHN0cmluZyB8IG51bWJlciB8IG51bGwgfCB1bmRlZmluZWQsIGFwcGVuZDogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICBpZiAoIXZhbHVlKSByZXR1cm4gYXBwZW5kO1xuXG4gICAgICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJykge1xuICAgICAgICAgICAgICByZXR1cm4gYGNhbGMoJHt2YWx1ZX1weCArICR7YXBwZW5kfSlgO1xuICAgICAgICAgICAgfSBlbHNlIGlmICh2YWx1ZS5zdGFydHNXaXRoKCdjYWxjKCcpKSB7XG4gICAgICAgICAgICAgIHJldHVybiBgJHt2YWx1ZS5zbGljZSgwLCB2YWx1ZS5sZW5ndGggLSAxKX0gKyAke2FwcGVuZH0pYDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIGBjYWxjKCR7dmFsdWV9ICsgJHthcHBlbmR9KWA7XG4gICAgICAgICAgfTtcblxuICAgICAgICAgIGlmIChvcmlnaW4pIHtcbiAgICAgICAgICAgIC8vIFRPRE86IElmIGdldEJvdW5kaW5nQ2xpZW50UmVjdCBpcyB1c2VkIGl0IHNob3VsZCB1c2UgdGhlIGNlbnRlciBvZiB0aGUgZWxlbWVudC5cbiAgICAgICAgICAgIGNvbnN0IG9yaWdpblggPSBpc0h0bWxFbGVtZW50KG9yaWdpbilcbiAgICAgICAgICAgICAgPyBvcmlnaW4uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkubGVmdFxuICAgICAgICAgICAgICA6IGlzVG91Y2hFdmVudChvcmlnaW4pXG4gICAgICAgICAgICAgID8gb3JpZ2luLnRhcmdldFRvdWNoZXNbMF0hLmNsaWVudFhcbiAgICAgICAgICAgICAgOiBpc1BvaW50ZXJFdmVudChvcmlnaW4pXG4gICAgICAgICAgICAgID8gb3JpZ2luLmNsaWVudFggIT09IDBcbiAgICAgICAgICAgICAgICA/IG9yaWdpbi5jbGllbnRYXG4gICAgICAgICAgICAgICAgOiAob3JpZ2luLnRhcmdldCBhcyBIVE1MRWxlbWVudCkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkubGVmdFxuICAgICAgICAgICAgICA6IC0xO1xuICAgICAgICAgICAgY29uc3Qgb3JpZ2luWSA9IGlzSHRtbEVsZW1lbnQob3JpZ2luKVxuICAgICAgICAgICAgICA/IG9yaWdpbi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3BcbiAgICAgICAgICAgICAgOiBpc1RvdWNoRXZlbnQob3JpZ2luKVxuICAgICAgICAgICAgICA/IG9yaWdpbi50YXJnZXRUb3VjaGVzWzBdIS5jbGllbnRZXG4gICAgICAgICAgICAgIDogaXNQb2ludGVyRXZlbnQob3JpZ2luKVxuICAgICAgICAgICAgICA/IG9yaWdpbi5jbGllbnRZICE9PSAwXG4gICAgICAgICAgICAgICAgPyBvcmlnaW4uY2xpZW50WVxuICAgICAgICAgICAgICAgIDogKG9yaWdpbi50YXJnZXQgYXMgSFRNTEVsZW1lbnQpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcFxuICAgICAgICAgICAgICA6IC0xO1xuXG4gICAgICAgICAgICBpZiAob3JpZ2luWCAhPT0gLTEgJiYgb3JpZ2luWSAhPT0gLTEgJiYgY3VyckNvbmZpZy5hcHBseVRyYW5zZm9ybU9yaWdpbikge1xuICAgICAgICAgICAgICBzZXRTdHlsZShjb250YWluZXJFbCwgJ3RyYW5zZm9ybS1vcmlnaW4nLCBgJHtvcmlnaW5YfXB4ICR7b3JpZ2luWX1weGApO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgc2V0U3R5bGUoY29udGFpbmVyRWwsICd0cmFuc2Zvcm0tb3JpZ2luJywgbnVsbCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKHVzZURlZmF1bHRBbmltYXRpb24gJiYgY29udGFpbmVyQ2xhc3M/Lmxlbmd0aCkge1xuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICBjb250YWluZXJDbGFzcz8uaW5jbHVkZXMoRVRfT1ZFUkxBWV9MRUZUX1NIRUVUX0NMQVNTKSB8fFxuICAgICAgICAgICAgICBjb250YWluZXJDbGFzcz8uaW5jbHVkZXMoRVRfT1ZFUkxBWV9SSUdIVF9TSEVFVF9DTEFTUylcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICBzZXRTdHlsZShcbiAgICAgICAgICAgICAgICBvdmVybGF5UGFuZUVsLFxuICAgICAgICAgICAgICAgICdtYXgtd2lkdGgnLFxuICAgICAgICAgICAgICAgIGNvbWJpbmVPck1ha2VDYWxjKGN1cnJDb25maWcubWF4V2lkdGgsIGAke2RlZmF1bHRBbmltYXRpb25CdWZmZXJ9cHhgKSxcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgc2V0U3R5bGUob3ZlcmxheVBhbmVFbCwgJ21heC1oZWlnaHQnLCBjdXJyQ29uZmlnLm1heEhlaWdodCk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKFxuICAgICAgICAgICAgICBjb250YWluZXJDbGFzcz8uaW5jbHVkZXMoRVRfT1ZFUkxBWV9UT1BfU0hFRVRfQ0xBU1MpIHx8XG4gICAgICAgICAgICAgIGNvbnRhaW5lckNsYXNzPy5pbmNsdWRlcyhFVF9PVkVSTEFZX0JPVFRPTV9TSEVFVF9DTEFTUylcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICBzZXRTdHlsZShcbiAgICAgICAgICAgICAgICBvdmVybGF5UGFuZUVsLFxuICAgICAgICAgICAgICAgICdtYXgtaGVpZ2h0JyxcbiAgICAgICAgICAgICAgICBjb21iaW5lT3JNYWtlQ2FsYyhjdXJyQ29uZmlnLm1heEhlaWdodCwgYCR7ZGVmYXVsdEFuaW1hdGlvbkJ1ZmZlcn1weGApLFxuICAgICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAgIHNldFN0eWxlKG92ZXJsYXlQYW5lRWwsICdtYXgtd2lkdGgnLCBjdXJyQ29uZmlnLm1heFdpZHRoKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIGFwcGx5RGVmYXVsdE1heFdpZHRocygpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBhcHBseURlZmF1bHRNYXhXaWR0aHMoKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBzZXRTdHlsZShvdmVybGF5UGFuZUVsLCAnbWluLXdpZHRoJywgY3VyckNvbmZpZy5taW5XaWR0aCk7XG4gICAgICAgICAgc2V0U3R5bGUob3ZlcmxheVBhbmVFbCwgJ21pbi1oZWlnaHQnLCBjdXJyQ29uZmlnLm1pbkhlaWdodCk7XG5cbiAgICAgICAgICBzZXRTdHlsZShvdmVybGF5UGFuZUVsLCAnd2lkdGgnLCBjdXJyQ29uZmlnLndpZHRoKTtcbiAgICAgICAgICBzZXRTdHlsZShvdmVybGF5UGFuZUVsLCAnaGVpZ2h0JywgY3VyckNvbmZpZy5oZWlnaHQpO1xuXG4gICAgICAgICAgc2V0Q2xhc3MoY29udGFpbmVyRWwsIHByZXZDb25maWc/LmNvbnRhaW5lckNsYXNzLCBjdXJyQ29uZmlnPy5jb250YWluZXJDbGFzcyk7XG4gICAgICAgICAgc2V0Q2xhc3Mob3ZlcmxheVBhbmVFbCwgcHJldkNvbmZpZz8ucGFuZUNsYXNzLCBjdXJyQ29uZmlnPy5wYW5lQ2xhc3MpO1xuICAgICAgICAgIHNldENsYXNzKG92ZXJsYXlXcmFwcGVyLCBwcmV2Q29uZmlnPy5vdmVybGF5Q2xhc3MsIGN1cnJDb25maWc/Lm92ZXJsYXlDbGFzcyk7XG5cbiAgICAgICAgICAvLyBGSVhNRTogVGhlc2UgY2xhc3NlcyBzaG91bGQgb25seSBiZSByZW1vdmVkIGlmIG5vIG9wZW4gb3ZlcmxheXMgcmVxdWlyZSB0aGVtIGluc2lkZSB0aGVpciBjb25maWcuXG4gICAgICAgICAgc2V0Q2xhc3MoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LCBwcmV2Q29uZmlnPy5kb2N1bWVudENsYXNzLCBjdXJyQ29uZmlnPy5kb2N1bWVudENsYXNzKTtcbiAgICAgICAgICBzZXRDbGFzcyhkb2N1bWVudC5ib2R5LCBwcmV2Q29uZmlnPy5ib2R5Q2xhc3MsIGN1cnJDb25maWc/LmJvZHlDbGFzcyk7XG5cbiAgICAgICAgICBpZiAoYmFja2Ryb3BFbCkge1xuICAgICAgICAgICAgc2V0Q2xhc3MoYmFja2Ryb3BFbCwgcHJldkNvbmZpZz8uYmFja2Ryb3BDbGFzcywgY3VyckNvbmZpZz8uYmFja2Ryb3BDbGFzcyk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKCFlcXVhbChwcmV2Q29uZmlnPy5wb3NpdGlvbiwgY3VyckNvbmZpZz8ucG9zaXRpb24pKSB7XG4gICAgICAgICAgICBvdmVybGF5UmVmLnVwZGF0ZVBvc2l0aW9uKGN1cnJDb25maWcucG9zaXRpb24pO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChjdXJyQ29uZmlnLnBvc2l0aW9uU3RyYXRlZ3kpIHtcbiAgICAgICAgICAgIGNka1JlZi5vdmVybGF5UmVmLnVwZGF0ZVBvc2l0aW9uU3RyYXRlZ3koY3VyckNvbmZpZy5wb3NpdGlvblN0cmF0ZWd5KTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY2RrUmVmLm92ZXJsYXlSZWYudXBkYXRlUG9zaXRpb24oKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoY3VyckNvbmZpZy5kcmFnVG9EaXNtaXNzKSB7XG4gICAgICAgICAgICBvdmVybGF5UmVmLl9jb250YWluZXJJbnN0YW5jZS5fZW5hYmxlRHJhZ1RvRGlzbWlzcyhjdXJyQ29uZmlnLmRyYWdUb0Rpc21pc3MpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBvdmVybGF5UmVmLl9jb250YWluZXJJbnN0YW5jZS5fZGlzYWJsZURyYWdUb0Rpc21pc3MoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuXG4gICAgdGhpcy5vcGVuT3ZlcmxheXMucHVzaChvdmVybGF5UmVmISk7XG4gICAgdGhpcy5hZnRlck9wZW5lZC5uZXh0KG92ZXJsYXlSZWYhKTtcblxuICAgIG92ZXJsYXlSZWYhLmJlZm9yZUNsb3NlZCgpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAvLyBGSVhNRTogVGhlc2UgY2xhc3NlcyBzaG91bGQgb25seSBiZSByZW1vdmVkIGlmIG5vIG9wZW4gb3ZlcmxheXMgcmVxdWlyZSB0aGVtIGluc2lkZSB0aGVpciBjb25maWcuXG4gICAgICBjb25zdCBkb2N1bWVudENsYXNzZXMgPSBjb21wb3NlZENvbmZpZy5wb3NpdGlvbnMubWFwKChwb3NpdGlvbikgPT4gcG9zaXRpb24uY29uZmlnLmRvY3VtZW50Q2xhc3MpO1xuXG4gICAgICBmb3IgKGNvbnN0IGtsYXNzIG9mIGRvY3VtZW50Q2xhc3Nlcykge1xuICAgICAgICBpZiAoIWtsYXNzKSBjb250aW51ZTtcblxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShrbGFzcykpIHtcbiAgICAgICAgICBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZSguLi5rbGFzcyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoa2xhc3MpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGJvZHlDbGFzc2VzID0gY29tcG9zZWRDb25maWcucG9zaXRpb25zLm1hcCgocG9zaXRpb24pID0+IHBvc2l0aW9uLmNvbmZpZy5ib2R5Q2xhc3MpO1xuXG4gICAgICBmb3IgKGNvbnN0IGtsYXNzIG9mIGJvZHlDbGFzc2VzKSB7XG4gICAgICAgIGlmICgha2xhc3MpIGNvbnRpbnVlO1xuXG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KGtsYXNzKSkge1xuICAgICAgICAgIGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LnJlbW92ZSguLi5rbGFzcyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QucmVtb3ZlKGtsYXNzKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuXG4gICAgb3ZlcmxheVJlZiEuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgY29uc3QgaW5kZXggPSB0aGlzLm9wZW5PdmVybGF5cy5pbmRleE9mKG92ZXJsYXlSZWYpO1xuXG4gICAgICBpZiAoaW5kZXggPT09IC0xKSByZXR1cm47XG5cbiAgICAgIHRoaXMub3Blbk92ZXJsYXlzLnNwbGljZShpbmRleCwgMSk7XG5cbiAgICAgIGlmICghdGhpcy5vcGVuT3ZlcmxheXMubGVuZ3RoKSB7XG4gICAgICAgIHRoaXMuX2dldEFmdGVyQWxsQ2xvc2VkKCkubmV4dCgpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIG92ZXJsYXlSZWYhO1xuXG4gICAgLyogZXNsaW50LWVuYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tbm9uLW51bGwtYXNzZXJ0aW9uKi9cbiAgfVxuXG4gIGNsb3NlQWxsKCk6IHZvaWQge1xuICAgIHRoaXMuX2Nsb3NlT3ZlcmxheXModGhpcy5vcGVuT3ZlcmxheXMpO1xuICB9XG5cbiAgZ2V0T3ZlcmxheUJ5SWQoaWQ6IHN0cmluZyk6IE92ZXJsYXlSZWYgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLm9wZW5PdmVybGF5cy5maW5kKChvdmVybGF5KSA9PiBvdmVybGF5LmlkID09PSBpZCk7XG4gIH1cblxuICBwcml2YXRlIF9jbG9zZU92ZXJsYXlzKG92ZXJsYXlzOiBPdmVybGF5UmVmW10pIHtcbiAgICBsZXQgaSA9IG92ZXJsYXlzLmxlbmd0aDtcblxuICAgIHdoaWxlIChpLS0pIHtcbiAgICAgIG92ZXJsYXlzW2ldPy5jbG9zZSgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2dldEFmdGVyQWxsQ2xvc2VkKCk6IFN1YmplY3Q8dm9pZD4ge1xuICAgIGNvbnN0IHBhcmVudCA9IHRoaXMuX3BhcmVudE92ZXJsYXlTZXJ2aWNlO1xuICAgIHJldHVybiBwYXJlbnQgPyBwYXJlbnQuX2dldEFmdGVyQWxsQ2xvc2VkKCkgOiB0aGlzLl9hZnRlckFsbENsb3NlZEF0VGhpc0xldmVsO1xuICB9XG59XG4iXX0=
|
|
@@ -3,6 +3,9 @@ import { Subject, filter, merge, skipUntil, take } from 'rxjs';
|
|
|
3
3
|
import { OVERLAY_STATE } from '../types';
|
|
4
4
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
5
5
|
export class OverlayRef {
|
|
6
|
+
get _internalDisableClose() {
|
|
7
|
+
return this._disableCloseFromInternalInitiators.size > 0;
|
|
8
|
+
}
|
|
6
9
|
get _cdkRef() {
|
|
7
10
|
return this._ref;
|
|
8
11
|
}
|
|
@@ -13,7 +16,12 @@ export class OverlayRef {
|
|
|
13
16
|
this.componentRef = null;
|
|
14
17
|
this._afterOpened = new Subject();
|
|
15
18
|
this._beforeClosed = new Subject();
|
|
19
|
+
this._closeCalled = new Subject();
|
|
16
20
|
this._state = OVERLAY_STATE.OPEN;
|
|
21
|
+
this._isEscCloseControlledExternally = false;
|
|
22
|
+
this._isBackdropCloseControlledExternally = false;
|
|
23
|
+
this._isCloseFnCloseControlledExternally = false;
|
|
24
|
+
this._disableCloseFromInternalInitiators = new Set();
|
|
17
25
|
this.disableClose = config.disableClose;
|
|
18
26
|
this.id = _ref.id;
|
|
19
27
|
_containerInstance._animatedLifecycle.state$
|
|
@@ -35,16 +43,24 @@ export class OverlayRef {
|
|
|
35
43
|
merge(this.backdropClick(), this.keydownEvents().pipe(filter((event) => event.keyCode === ESCAPE && !this.disableClose && !hasModifierKey(event))))
|
|
36
44
|
.pipe(skipUntil(_containerInstance._animatedLifecycle.state$.pipe(filter((e) => e === 'entering'))))
|
|
37
45
|
.subscribe((event) => {
|
|
38
|
-
if (
|
|
46
|
+
if ((this._isEscCloseControlledExternally && event.type === 'keydown') ||
|
|
47
|
+
(this._isBackdropCloseControlledExternally && event.type !== 'keydown')) {
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
if (!this.disableClose && !this._internalDisableClose) {
|
|
39
51
|
event.preventDefault();
|
|
40
|
-
this._closeOverlayVia(event.type === 'keydown' ? 'keyboard' : 'mouse');
|
|
52
|
+
this._closeOverlayVia(event.type === 'keydown' ? 'keyboard' : 'mouse', undefined, true);
|
|
41
53
|
}
|
|
42
54
|
});
|
|
43
55
|
}
|
|
44
|
-
close(result) {
|
|
56
|
+
close(result, force) {
|
|
45
57
|
if (this._state === OVERLAY_STATE.CLOSING || this._state === OVERLAY_STATE.CLOSED) {
|
|
46
58
|
return;
|
|
47
59
|
}
|
|
60
|
+
this._closeCalled.next(result);
|
|
61
|
+
if (this._isCloseFnCloseControlledExternally && !force) {
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
48
64
|
this._result = result;
|
|
49
65
|
this._containerInstance._animatedLifecycle.state$
|
|
50
66
|
.pipe(filter((event) => event === 'leaving'), take(1))
|
|
@@ -74,6 +90,9 @@ export class OverlayRef {
|
|
|
74
90
|
keydownEvents() {
|
|
75
91
|
return this._ref.keydownEvents;
|
|
76
92
|
}
|
|
93
|
+
closeCalled() {
|
|
94
|
+
return this._closeCalled;
|
|
95
|
+
}
|
|
77
96
|
updatePosition(position) {
|
|
78
97
|
const strategy = this._ref.config.positionStrategy;
|
|
79
98
|
if (position && (position.left || position.right)) {
|
|
@@ -111,9 +130,19 @@ export class OverlayRef {
|
|
|
111
130
|
this._ref.close(this._result, { focusOrigin: this._closeInteractionType });
|
|
112
131
|
this.componentInstance = null;
|
|
113
132
|
}
|
|
114
|
-
_closeOverlayVia(interactionType, result) {
|
|
133
|
+
_closeOverlayVia(interactionType, result, force) {
|
|
115
134
|
this._closeInteractionType = interactionType;
|
|
116
|
-
return this.close(result);
|
|
135
|
+
return this.close(result, force);
|
|
136
|
+
}
|
|
137
|
+
_addInternalBackdropCloseInitiator(initiatorId) {
|
|
138
|
+
if (this.disableClose)
|
|
139
|
+
return;
|
|
140
|
+
this._disableCloseFromInternalInitiators.add(initiatorId);
|
|
141
|
+
}
|
|
142
|
+
_removeInternalBackdropCloseInitiator(initiatorId) {
|
|
143
|
+
if (this.disableClose)
|
|
144
|
+
return;
|
|
145
|
+
this._disableCloseFromInternalInitiators.delete(initiatorId);
|
|
117
146
|
}
|
|
118
147
|
}
|
|
119
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmxheS1yZWYuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Nkay9zcmMvbGliL2NvbXBvbmVudHMvb3ZlcmxheS9jb21wb25lbnRzL292ZXJsYXkvdXRpbHMvb3ZlcmxheS1yZWYudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxjQUFjLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUcvRCxPQUFPLEVBQWMsT0FBTyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUzRSxPQUFPLEVBQUUsYUFBYSxFQUFnRCxNQUFNLFVBQVUsQ0FBQztBQUV2Riw4REFBOEQ7QUFDOUQsTUFBTSxPQUFPLFVBQVU7SUFhckIsSUFBSSxPQUFPO1FBQ1QsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ25CLENBQUM7SUFFRCxZQUNVLElBQXdCLEVBQ2hDLE1BQXFCLEVBQ2Qsa0JBQTZDO1FBRjVDLFNBQUksR0FBSixJQUFJLENBQW9CO1FBRXpCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBMkI7UUFuQnRELHNCQUFpQixHQUFhLElBQUksQ0FBQztRQUMxQixpQkFBWSxHQUEyQixJQUFJLENBQUM7UUFJcEMsaUJBQVksR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBQ25DLGtCQUFhLEdBQUcsSUFBSSxPQUFPLEVBQWlCLENBQUM7UUFHdEQsV0FBTSxHQUFpQixhQUFhLENBQUMsSUFBSSxDQUFDO1FBWWhELElBQUksQ0FBQyxZQUFZLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQztRQUN4QyxJQUFJLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUM7UUFFbEIsa0JBQWtCLENBQUMsa0JBQWtCLENBQUMsTUFBTTthQUN6QyxJQUFJLENBQ0gsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVB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QUFDLGVBQTRCLEVBQUUsTUFBVTtRQUN2RCxJQUFJLENBQUMscUJBQXFCLEdBQUcsZUFBZSxDQUFDO1FBQzdDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM1QixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGb2N1c09yaWdpbiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcbmltcG9ydCB7IERpYWxvZ1JlZiBhcyBDZGtEaWFsb2dSZWYgfSBmcm9tICdAYW5ndWxhci9jZGsvZGlhbG9nJztcbmltcG9ydCB7IEVTQ0FQRSwgaGFzTW9kaWZpZXJLZXkgfSBmcm9tICdAYW5ndWxhci9jZGsva2V5Y29kZXMnO1xuaW1wb3J0IHsgR2xvYmFsUG9zaXRpb25TdHJhdGVneSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7IENvbXBvbmVudFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCwgZmlsdGVyLCBtZXJnZSwgc2tpcFVudGlsLCB0YWtlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBPdmVybGF5Q29udGFpbmVyQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50cyc7XG5pbXBvcnQgeyBPVkVSTEFZX1NUQVRFLCBPdmVybGF5Q29uZmlnLCBPdmVybGF5UG9zaXRpb24sIE92ZXJsYXlTdGF0ZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbmV4cG9ydCBjbGFzcyBPdmVybGF5UmVmPFQgPSBhbnksIFIgPSBhbnk+IHtcbiAgY29tcG9uZW50SW5zdGFuY2U6IFQgfCBudWxsID0gbnVsbDtcbiAgcmVhZG9ubHkgY29tcG9uZW50UmVmOiBDb21wb25lbnRSZWY8VD4gfCBudWxsID0gbnVsbDtcbiAgZGlzYWJsZUNsb3NlOiBib29sZWFuIHwgdW5kZWZpbmVkO1xuICBpZDogc3RyaW5nO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2FmdGVyT3BlbmVkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfYmVmb3JlQ2xvc2VkID0gbmV3IFN1YmplY3Q8UiB8IHVuZGVmaW5lZD4oKTtcblxuICBwcml2YXRlIF9yZXN1bHQ6IFIgfCB1bmRlZmluZWQ7XG4gIHByaXZhdGUgX3N0YXRlOiBPdmVybGF5U3RhdGUgPSBPVkVSTEFZX1NUQVRFLk9QRU47XG4gIHByaXZhdGUgX2Nsb3NlSW50ZXJhY3Rpb25UeXBlOiBGb2N1c09yaWdpbiB8IHVuZGVmaW5lZDtcblxuICBnZXQgX2Nka1JlZigpIHtcbiAgICByZXR1cm4gdGhpcy5fcmVmO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfcmVmOiBDZGtEaWFsb2dSZWY8UiwgVD4sXG4gICAgY29uZmlnOiBPdmVybGF5Q29uZmlnLFxuICAgIHB1YmxpYyBfY29udGFpbmVySW5zdGFuY2U6IE92ZXJsYXlDb250YWluZXJDb21wb25lbnQsXG4gICkge1xuICAgIHRoaXMuZGlzYWJsZUNsb3NlID0gY29uZmlnLmRpc2FibGVDbG9zZTtcbiAgICB0aGlzLmlkID0gX3JlZi5pZDtcblxuICAgIF9jb250YWluZXJJbnN0YW5jZS5fYW5pbWF0ZWRMaWZlY3ljbGUuc3RhdGUkXG4gICAgICAucGlwZShcbiAgICAgICAgZmlsdGVyKChldmVudCkgPT4gZXZlbnQgPT09ICdlbnRlcmVkJyksXG4gICAgICAgIHRha2UoMSksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5fYWZ0ZXJPcGVuZWQubmV4dCgpO1xuICAgICAgICB0aGlzLl9hZnRlck9wZW5lZC5jb21wbGV0ZSgpO1xuICAgICAgfSk7XG5cbiAgICBfY29udGFpbmVySW5zdGFuY2UuX2FuaW1hdGVkTGlmZWN5Y2xlLnN0YXRlJFxuICAgICAgLnBpcGUoXG4gICAgICAgIGZpbHRlcigoZXZlbnQpID0+IGV2ZW50ID09PSAnbGVmdCcpLFxuICAgICAgICB0YWtlKDEpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuX2ZpbmlzaE92ZXJsYXlDbG9zZSgpO1xuICAgICAgfSk7XG5cbiAgICBfcmVmLm92ZXJsYXlSZWYuZGV0YWNobWVudHMoKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5fYmVmb3JlQ2xvc2VkLm5leHQodGhpcy5fcmVzdWx0KTtcbiAgICAgIHRoaXMuX2JlZm9yZUNsb3NlZC5jb21wbGV0ZSgpO1xuICAgICAgdGhpcy5fZmluaXNoT3ZlcmxheUNsb3NlKCk7XG4gICAgfSk7XG5cbiAgICBtZXJnZShcbiAgICAgIHRoaXMuYmFja2Ryb3BDbGljaygpLFxuICAgICAgdGhpcy5rZXlkb3duRXZlbnRzKCkucGlwZShcbiAgICAgICAgZmlsdGVyKChldmVudCkgPT4gZXZlbnQua2V5Q29kZSA9PT0gRVNDQVBFICYmICF0aGlzLmRpc2FibGVDbG9zZSAmJiAhaGFzTW9kaWZpZXJLZXkoZXZlbnQpKSxcbiAgICAgICksXG4gICAgKVxuICAgICAgLnBpcGUoc2tpcFVudGlsKF9jb250YWluZXJJbnN0YW5jZS5fYW5pbWF0ZWRMaWZlY3ljbGUuc3RhdGUkLnBpcGUoZmlsdGVyKChlKSA9PiBlID09PSAnZW50ZXJpbmcnKSkpKVxuICAgICAgLnN1YnNjcmliZSgoZXZlbnQpID0+IHtcbiAgICAgICAgaWYgKCF0aGlzLmRpc2FibGVDbG9zZSkge1xuICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgdGhpcy5fY2xvc2VPdmVybGF5VmlhKGV2ZW50LnR5cGUgPT09ICdrZXlkb3duJyA/ICdrZXlib2FyZCcgOiAnbW91c2UnKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICBjbG9zZShyZXN1bHQ/OiBSKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX3N0YXRlID09PSBPVkVSTEFZX1NUQVRFLkNMT1NJTkcgfHwgdGhpcy5fc3RhdGUgPT09IE9WRVJMQVlfU1RBVEUuQ0xPU0VEKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5fcmVzdWx0ID0gcmVzdWx0O1xuXG4gICAgdGhpcy5fY29udGFpbmVySW5zdGFuY2UuX2FuaW1hdGVkTGlmZWN5Y2xlLnN0YXRlJFxuICAgICAgLnBpcGUoXG4gICAgICAgIGZpbHRlcigoZXZlbnQpID0+IGV2ZW50ID09PSAnbGVhdmluZycpLFxuICAgICAgICB0YWtlKDEpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuX2JlZm9yZUNsb3NlZC5uZXh0KHJlc3VsdCk7XG4gICAgICAgIHRoaXMuX2JlZm9yZUNsb3NlZC5jb21wbGV0ZSgpO1xuICAgICAgICB0aGlzLl9yZWYub3ZlcmxheVJlZi5kZXRhY2hCYWNrZHJvcCgpO1xuICAgICAgfSk7XG5cbiAgICB0aGlzLl9jb250YWluZXJJbnN0YW5jZS5fYW5pbWF0ZWRMaWZlY3ljbGUuc3RhdGUkXG4gICAgICAucGlwZShcbiAgICAgICAgZmlsdGVyKChldmVudCkgPT4gZXZlbnQgPT09ICdsZWZ0JyksXG4gICAgICAgIHRha2UoMSksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMuX2ZpbmlzaE92ZXJsYXlDbG9zZSgpKTtcblxuICAgIHRoaXMuX3N0YXRlID0gT1ZFUkxBWV9TVEFURS5DTE9TSU5HO1xuICAgIHRoaXMuX2NvbnRhaW5lckluc3RhbmNlLl9hbmltYXRlZExpZmVjeWNsZS5sZWF2ZSgpO1xuICB9XG5cbiAgYWZ0ZXJPcGVuZWQoKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuX2FmdGVyT3BlbmVkO1xuICB9XG5cbiAgYWZ0ZXJDbG9zZWQoKTogT2JzZXJ2YWJsZTxSIHwgdW5kZWZpbmVkPiB7XG4gICAgcmV0dXJuIHRoaXMuX3JlZi5jbG9zZWQ7XG4gIH1cblxuICBiZWZvcmVDbG9zZWQoKTogT2JzZXJ2YWJsZTxSIHwgdW5kZWZpbmVkPiB7XG4gICAgcmV0dXJuIHRoaXMuX2JlZm9yZUNsb3NlZDtcbiAgfVxuXG4gIGJhY2tkcm9wQ2xpY2soKTogT2JzZXJ2YWJsZTxNb3VzZUV2ZW50PiB7XG4gICAgcmV0dXJuIHRoaXMuX3JlZi5iYWNrZHJvcENsaWNrO1xuICB9XG5cbiAga2V5ZG93bkV2ZW50cygpOiBPYnNlcnZhYmxlPEtleWJvYXJkRXZlbnQ+IHtcbiAgICByZXR1cm4gdGhpcy5fcmVmLmtleWRvd25FdmVudHM7XG4gIH1cblxuICB1cGRhdGVQb3NpdGlvbihwb3NpdGlvbj86IE92ZXJsYXlQb3NpdGlvbik6IHRoaXMge1xuICAgIGNvbnN0IHN0cmF0ZWd5ID0gdGhpcy5fcmVmLmNvbmZpZy5wb3NpdGlvblN0cmF0ZWd5IGFzIEdsb2JhbFBvc2l0aW9uU3RyYXRlZ3k7XG5cbiAgICBpZiAocG9zaXRpb24gJiYgKHBvc2l0aW9uLmxlZnQgfHwgcG9zaXRpb24ucmlnaHQpKSB7XG4gICAgICBwb3NpdGlvbi5sZWZ0ID8gc3RyYXRlZ3kubGVmdChwb3NpdGlvbi5sZWZ0KSA6IHN0cmF0ZWd5LnJpZ2h0KHBvc2l0aW9uLnJpZ2h0KTtcbiAgICB9IGVsc2Uge1xuICAgICAgc3RyYXRlZ3kuY2VudGVySG9yaXpvbnRhbGx5KCk7XG4gICAgfVxuXG4gICAgaWYgKHBvc2l0aW9uICYmIChwb3NpdGlvbi50b3AgfHwgcG9zaXRpb24uYm90dG9tKSkge1xuICAgICAgcG9zaXRpb24udG9wID8gc3RyYXRlZ3kudG9wKHBvc2l0aW9uLnRvcCkgOiBzdHJhdGVneS5ib3R0b20ocG9zaXRpb24uYm90dG9tKTtcbiAgICB9IGVsc2Uge1xuICAgICAgc3RyYXRlZ3kuY2VudGVyVmVydGljYWxseSgpO1xuICAgIH1cblxuICAgIHRoaXMuX3JlZi51cGRhdGVQb3NpdGlvbigpO1xuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICB1cGRhdGVTaXplKHdpZHRoID0gJycsIGhlaWdodCA9ICcnKTogdGhpcyB7XG4gICAgdGhpcy5fcmVmLnVwZGF0ZVNpemUod2lkdGgsIGhlaWdodCk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBhZGRQYW5lbENsYXNzKGNsYXNzZXM6IHN0cmluZyB8IHN0cmluZ1tdKTogdGhpcyB7XG4gICAgdGhpcy5fcmVmLmFkZFBhbmVsQ2xhc3MoY2xhc3Nlcyk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICByZW1vdmVQYW5lbENsYXNzKGNsYXNzZXM6IHN0cmluZyB8IHN0cmluZ1tdKTogdGhpcyB7XG4gICAgdGhpcy5fcmVmLnJlbW92ZVBhbmVsQ2xhc3MoY2xhc3Nlcyk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBnZXRTdGF0ZSgpOiBPdmVybGF5U3RhdGUge1xuICAgIHJldHVybiB0aGlzLl9zdGF0ZTtcbiAgfVxuXG4gIHByaXZhdGUgX2ZpbmlzaE92ZXJsYXlDbG9zZSgpIHtcbiAgICB0aGlzLl9zdGF0ZSA9IE9WRVJMQVlfU1RBVEUuQ0xPU0VEO1xuICAgIHRoaXMuX3JlZi5jbG9zZSh0aGlzLl9yZXN1bHQsIHsgZm9jdXNPcmlnaW46IHRoaXMuX2Nsb3NlSW50ZXJhY3Rpb25UeXBlIH0pO1xuICAgIHRoaXMuY29tcG9uZW50SW5zdGFuY2UgPSBudWxsO1xuICB9XG5cbiAgX2Nsb3NlT3ZlcmxheVZpYShpbnRlcmFjdGlvblR5cGU6IEZvY3VzT3JpZ2luLCByZXN1bHQ/OiBSKSB7XG4gICAgdGhpcy5fY2xvc2VJbnRlcmFjdGlvblR5cGUgPSBpbnRlcmFjdGlvblR5cGU7XG4gICAgcmV0dXJuIHRoaXMuY2xvc2UocmVzdWx0KTtcbiAgfVxufVxuIl19
|
|
148
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmxheS1yZWYuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Nkay9zcmMvbGliL2NvbXBvbmVudHMvb3ZlcmxheS9jb21wb25lbnRzL292ZXJsYXkvdXRpbHMvb3ZlcmxheS1yZWYudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxjQUFjLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUcvRCxPQUFPLEVBQWMsT0FBTyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUzRSxPQUFPLEVBQUUsYUFBYSxFQUFnRCxNQUFNLFVBQVUsQ0FBQztBQUV2Riw4REFBOEQ7QUFDOUQsTUFBTSxPQUFPLFVBQVU7SUFxQnJCLElBQUkscUJBQXFCO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLG1DQUFtQyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVELElBQUksT0FBTztRQUNULE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQztJQUNuQixDQUFDO0lBRUQsWUFDVSxJQUF3QixFQUNoQyxNQUFxQixFQUNkLGtCQUE2QztRQUY1QyxTQUFJLEdBQUosSUFBSSxDQUFvQjtRQUV6Qix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQTJCO1FBL0J0RCxzQkFBaUIsR0FBYSxJQUFJLENBQUM7UUFDMUIsaUJBQVksR0FBMkIsSUFBSSxDQUFDO1FBS3BDLGlCQUFZLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQUNuQyxrQkFBYSxHQUFHLElBQUksT0FBTyxFQUFpQixDQUFDO1FBQzdDLGlCQUFZLEdBQUcsSUFBSSxPQUFPLEVBQWlCLENBQUM7UUFHckQsV0FBTSxHQUFpQixhQUFhLENBQUMsSUFBSSxDQUFDO1FBR2xELG9DQUErQixHQUFHLEtBQUssQ0FBQztRQUN4Qyx5Q0FBb0MsR0FBRyxLQUFL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UUFDaEUsSUFBSSxJQUFJLENBQUMsWUFBWTtZQUFFLE9BQU87UUFFOUIsSUFBSSxDQUFDLG1DQUFtQyxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUMvRCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGb2N1c09yaWdpbiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcbmltcG9ydCB7IERpYWxvZ1JlZiBhcyBDZGtEaWFsb2dSZWYgfSBmcm9tICdAYW5ndWxhci9jZGsvZGlhbG9nJztcbmltcG9ydCB7IEVTQ0FQRSwgaGFzTW9kaWZpZXJLZXkgfSBmcm9tICdAYW5ndWxhci9jZGsva2V5Y29kZXMnO1xuaW1wb3J0IHsgR2xvYmFsUG9zaXRpb25TdHJhdGVneSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7IENvbXBvbmVudFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCwgZmlsdGVyLCBtZXJnZSwgc2tpcFVudGlsLCB0YWtlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBPdmVybGF5Q29udGFpbmVyQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50cyc7XG5pbXBvcnQgeyBPVkVSTEFZX1NUQVRFLCBPdmVybGF5Q29uZmlnLCBPdmVybGF5UG9zaXRpb24sIE92ZXJsYXlTdGF0ZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbmV4cG9ydCBjbGFzcyBPdmVybGF5UmVmPFQgPSBhbnksIFIgPSBhbnk+IHtcbiAgY29tcG9uZW50SW5zdGFuY2U6IFQgfCBudWxsID0gbnVsbDtcbiAgcmVhZG9ubHkgY29tcG9uZW50UmVmOiBDb21wb25lbnRSZWY8VD4gfCBudWxsID0gbnVsbDtcbiAgZGlzYWJsZUNsb3NlOiBib29sZWFuIHwgdW5kZWZpbmVkO1xuXG4gIGlkOiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfYWZ0ZXJPcGVuZWQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9iZWZvcmVDbG9zZWQgPSBuZXcgU3ViamVjdDxSIHwgdW5kZWZpbmVkPigpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9jbG9zZUNhbGxlZCA9IG5ldyBTdWJqZWN0PFIgfCB1bmRlZmluZWQ+KCk7XG5cbiAgcHJpdmF0ZSBfcmVzdWx0OiBSIHwgdW5kZWZpbmVkO1xuICBwcml2YXRlIF9zdGF0ZTogT3ZlcmxheVN0YXRlID0gT1ZFUkxBWV9TVEFURS5PUEVOO1xuXG4gIF9jbG9zZUludGVyYWN0aW9uVHlwZTogRm9jdXNPcmlnaW4gfCB1bmRlZmluZWQ7XG4gIF9pc0VzY0Nsb3NlQ29udHJvbGxlZEV4dGVybmFsbHkgPSBmYWxzZTtcbiAgX2lzQmFja2Ryb3BDbG9zZUNvbnRyb2xsZWRFeHRlcm5hbGx5ID0gZmFsc2U7XG4gIF9pc0Nsb3NlRm5DbG9zZUNvbnRyb2xsZWRFeHRlcm5hbGx5ID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSBfZGlzYWJsZUNsb3NlRnJvbUludGVybmFsSW5pdGlhdG9ycyA9IG5ldyBTZXQ8c3RyaW5nIHwgbnVtYmVyPigpO1xuXG4gIGdldCBfaW50ZXJuYWxEaXNhYmxlQ2xvc2UoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2Rpc2FibGVDbG9zZUZyb21JbnRlcm5hbEluaXRpYXRvcnMuc2l6ZSA+IDA7XG4gIH1cblxuICBnZXQgX2Nka1JlZigpIHtcbiAgICByZXR1cm4gdGhpcy5fcmVmO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfcmVmOiBDZGtEaWFsb2dSZWY8UiwgVD4sXG4gICAgY29uZmlnOiBPdmVybGF5Q29uZmlnLFxuICAgIHB1YmxpYyBfY29udGFpbmVySW5zdGFuY2U6IE92ZXJsYXlDb250YWluZXJDb21wb25lbnQsXG4gICkge1xuICAgIHRoaXMuZGlzYWJsZUNsb3NlID0gY29uZmlnLmRpc2FibGVDbG9zZTtcbiAgICB0aGlzLmlkID0gX3JlZi5pZDtcblxuICAgIF9jb250YWluZXJJbnN0YW5jZS5fYW5pbWF0ZWRMaWZlY3ljbGUuc3RhdGUkXG4gICAgICAucGlwZShcbiAgICAgICAgZmlsdGVyKChldmVudCkgPT4gZXZlbnQgPT09ICdlbnRlcmVkJyksXG4gICAgICAgIHRha2UoMSksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5fYWZ0ZXJPcGVuZWQubmV4dCgpO1xuICAgICAgICB0aGlzLl9hZnRlck9wZW5lZC5jb21wbGV0ZSgpO1xuICAgICAgfSk7XG5cbiAgICBfY29udGFpbmVySW5zdGFuY2UuX2FuaW1hdGVkTGlmZWN5Y2xlLnN0YXRlJFxuICAgICAgLnBpcGUoXG4gICAgICAgIGZpbHRlcigoZXZlbnQpID0+IGV2ZW50ID09PSAnbGVmdCcpLFxuICAgICAgICB0YWtlKDEpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuX2ZpbmlzaE92ZXJsYXlDbG9zZSgpO1xuICAgICAgfSk7XG5cbiAgICBfcmVmLm92ZXJsYXlSZWYuZGV0YWNobWVudHMoKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5fYmVmb3JlQ2xvc2VkLm5leHQodGhpcy5fcmVzdWx0KTtcbiAgICAgIHRoaXMuX2JlZm9yZUNsb3NlZC5jb21wbGV0ZSgpO1xuICAgICAgdGhpcy5fZmluaXNoT3ZlcmxheUNsb3NlKCk7XG4gICAgfSk7XG5cbiAgICBtZXJnZShcbiAgICAgIHRoaXMuYmFja2Ryb3BDbGljaygpLFxuICAgICAgdGhpcy5rZXlkb3duRXZlbnRzKCkucGlwZShcbiAgICAgICAgZmlsdGVyKChldmVudCkgPT4gZXZlbnQua2V5Q29kZSA9PT0gRVNDQVBFICYmICF0aGlzLmRpc2FibGVDbG9zZSAmJiAhaGFzTW9kaWZpZXJLZXkoZXZlbnQpKSxcbiAgICAgICksXG4gICAgKVxuICAgICAgLnBpcGUoc2tpcFVudGlsKF9jb250YWluZXJJbnN0YW5jZS5fYW5pbWF0ZWRMaWZlY3ljbGUuc3RhdGUkLnBpcGUoZmlsdGVyKChlKSA9PiBlID09PSAnZW50ZXJpbmcnKSkpKVxuICAgICAgLnN1YnNjcmliZSgoZXZlbnQpID0+IHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgICh0aGlzLl9pc0VzY0Nsb3NlQ29udHJvbGxlZEV4dGVybmFsbHkgJiYgZXZlbnQudHlwZSA9PT0gJ2tleWRvd24nKSB8fFxuICAgICAgICAgICh0aGlzLl9pc0JhY2tkcm9wQ2xvc2VDb250cm9sbGVkRXh0ZXJuYWxseSAmJiBldmVudC50eXBlICE9PSAna2V5ZG93bicpXG4gICAgICAgICkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghdGhpcy5kaXNhYmxlQ2xvc2UgJiYgIXRoaXMuX2ludGVybmFsRGlzYWJsZUNsb3NlKSB7XG4gICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICB0aGlzLl9jbG9zZU92ZXJsYXlWaWEoZXZlbnQudHlwZSA9PT0gJ2tleWRvd24nID8gJ2tleWJvYXJkJyA6ICdtb3VzZScsIHVuZGVmaW5lZCwgdHJ1ZSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbiAgY2xvc2UocmVzdWx0PzogUiwgZm9yY2U/OiBib29sZWFuKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX3N0YXRlID09PSBPVkVSTEFZX1NUQVRFLkNMT1NJTkcgfHwgdGhpcy5fc3RhdGUgPT09IE9WRVJMQVlfU1RBVEUuQ0xPU0VEKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5fY2xvc2VDYWxsZWQubmV4dChyZXN1bHQpO1xuXG4gICAgaWYgKHRoaXMuX2lzQ2xvc2VGbkNsb3NlQ29udHJvbGxlZEV4dGVybmFsbHkgJiYgIWZvcmNlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5fcmVzdWx0ID0gcmVzdWx0O1xuXG4gICAgdGhpcy5fY29udGFpbmVySW5zdGFuY2UuX2FuaW1hdGVkTGlmZWN5Y2xlLnN0YXRlJFxuICAgICAgLnBpcGUoXG4gICAgICAgIGZpbHRlcigoZXZlbnQpID0+IGV2ZW50ID09PSAnbGVhdmluZycpLFxuICAgICAgICB0YWtlKDEpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuX2JlZm9yZUNsb3NlZC5uZXh0KHJlc3VsdCk7XG4gICAgICAgIHRoaXMuX2JlZm9yZUNsb3NlZC5jb21wbGV0ZSgpO1xuICAgICAgICB0aGlzLl9yZWYub3ZlcmxheVJlZi5kZXRhY2hCYWNrZHJvcCgpO1xuICAgICAgfSk7XG5cbiAgICB0aGlzLl9jb250YWluZXJJbnN0YW5jZS5fYW5pbWF0ZWRMaWZlY3ljbGUuc3RhdGUkXG4gICAgICAucGlwZShcbiAgICAgICAgZmlsdGVyKChldmVudCkgPT4gZXZlbnQgPT09ICdsZWZ0JyksXG4gICAgICAgIHRha2UoMSksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMuX2ZpbmlzaE92ZXJsYXlDbG9zZSgpKTtcblxuICAgIHRoaXMuX3N0YXRlID0gT1ZFUkxBWV9TVEFURS5DTE9TSU5HO1xuICAgIHRoaXMuX2NvbnRhaW5lckluc3RhbmNlLl9hbmltYXRlZExpZmVjeWNsZS5sZWF2ZSgpO1xuICB9XG5cbiAgYWZ0ZXJPcGVuZWQoKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuX2FmdGVyT3BlbmVkO1xuICB9XG5cbiAgYWZ0ZXJDbG9zZWQoKTogT2JzZXJ2YWJsZTxSIHwgdW5kZWZpbmVkPiB7XG4gICAgcmV0dXJuIHRoaXMuX3JlZi5jbG9zZWQ7XG4gIH1cblxuICBiZWZvcmVDbG9zZWQoKTogT2JzZXJ2YWJsZTxSIHwgdW5kZWZpbmVkPiB7XG4gICAgcmV0dXJuIHRoaXMuX2JlZm9yZUNsb3NlZDtcbiAgfVxuXG4gIGJhY2tkcm9wQ2xpY2soKTogT2JzZXJ2YWJsZTxNb3VzZUV2ZW50PiB7XG4gICAgcmV0dXJuIHRoaXMuX3JlZi5iYWNrZHJvcENsaWNrO1xuICB9XG5cbiAga2V5ZG93bkV2ZW50cygpOiBPYnNlcnZhYmxlPEtleWJvYXJkRXZlbnQ+IHtcbiAgICByZXR1cm4gdGhpcy5fcmVmLmtleWRvd25FdmVudHM7XG4gIH1cblxuICBjbG9zZUNhbGxlZCgpOiBPYnNlcnZhYmxlPFIgfCB1bmRlZmluZWQ+IHtcbiAgICByZXR1cm4gdGhpcy5fY2xvc2VDYWxsZWQ7XG4gIH1cblxuICB1cGRhdGVQb3NpdGlvbihwb3NpdGlvbj86IE92ZXJsYXlQb3NpdGlvbik6IHRoaXMge1xuICAgIGNvbnN0IHN0cmF0ZWd5ID0gdGhpcy5fcmVmLmNvbmZpZy5wb3NpdGlvblN0cmF0ZWd5IGFzIEdsb2JhbFBvc2l0aW9uU3RyYXRlZ3k7XG5cbiAgICBpZiAocG9zaXRpb24gJiYgKHBvc2l0aW9uLmxlZnQgfHwgcG9zaXRpb24ucmlnaHQpKSB7XG4gICAgICBwb3NpdGlvbi5sZWZ0ID8gc3RyYXRlZ3kubGVmdChwb3NpdGlvbi5sZWZ0KSA6IHN0cmF0ZWd5LnJpZ2h0KHBvc2l0aW9uLnJpZ2h0KTtcbiAgICB9IGVsc2Uge1xuICAgICAgc3RyYXRlZ3kuY2VudGVySG9yaXpvbnRhbGx5KCk7XG4gICAgfVxuXG4gICAgaWYgKHBvc2l0aW9uICYmIChwb3NpdGlvbi50b3AgfHwgcG9zaXRpb24uYm90dG9tKSkge1xuICAgICAgcG9zaXRpb24udG9wID8gc3RyYXRlZ3kudG9wKHBvc2l0aW9uLnRvcCkgOiBzdHJhdGVneS5ib3R0b20ocG9zaXRpb24uYm90dG9tKTtcbiAgICB9IGVsc2Uge1xuICAgICAgc3RyYXRlZ3kuY2VudGVyVmVydGljYWxseSgpO1xuICAgIH1cblxuICAgIHRoaXMuX3JlZi51cGRhdGVQb3NpdGlvbigpO1xuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICB1cGRhdGVTaXplKHdpZHRoID0gJycsIGhlaWdodCA9ICcnKTogdGhpcyB7XG4gICAgdGhpcy5fcmVmLnVwZGF0ZVNpemUod2lkdGgsIGhlaWdodCk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBhZGRQYW5lbENsYXNzKGNsYXNzZXM6IHN0cmluZyB8IHN0cmluZ1tdKTogdGhpcyB7XG4gICAgdGhpcy5fcmVmLmFkZFBhbmVsQ2xhc3MoY2xhc3Nlcyk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICByZW1vdmVQYW5lbENsYXNzKGNsYXNzZXM6IHN0cmluZyB8IHN0cmluZ1tdKTogdGhpcyB7XG4gICAgdGhpcy5fcmVmLnJlbW92ZVBhbmVsQ2xhc3MoY2xhc3Nlcyk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBnZXRTdGF0ZSgpOiBPdmVybGF5U3RhdGUge1xuICAgIHJldHVybiB0aGlzLl9zdGF0ZTtcbiAgfVxuXG4gIHByaXZhdGUgX2ZpbmlzaE92ZXJsYXlDbG9zZSgpIHtcbiAgICB0aGlzLl9zdGF0ZSA9IE9WRVJMQVlfU1RBVEUuQ0xPU0VEO1xuICAgIHRoaXMuX3JlZi5jbG9zZSh0aGlzLl9yZXN1bHQsIHsgZm9jdXNPcmlnaW46IHRoaXMuX2Nsb3NlSW50ZXJhY3Rpb25UeXBlIH0pO1xuICAgIHRoaXMuY29tcG9uZW50SW5zdGFuY2UgPSBudWxsO1xuICB9XG5cbiAgX2Nsb3NlT3ZlcmxheVZpYShpbnRlcmFjdGlvblR5cGU6IEZvY3VzT3JpZ2luLCByZXN1bHQ/OiBSLCBmb3JjZT86IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9jbG9zZUludGVyYWN0aW9uVHlwZSA9IGludGVyYWN0aW9uVHlwZTtcbiAgICByZXR1cm4gdGhpcy5jbG9zZShyZXN1bHQsIGZvcmNlKTtcbiAgfVxuXG4gIF9hZGRJbnRlcm5hbEJhY2tkcm9wQ2xvc2VJbml0aWF0b3IoaW5pdGlhdG9ySWQ6IHN0cmluZyB8IG51bWJlcikge1xuICAgIGlmICh0aGlzLmRpc2FibGVDbG9zZSkgcmV0dXJuO1xuXG4gICAgdGhpcy5fZGlzYWJsZUNsb3NlRnJvbUludGVybmFsSW5pdGlhdG9ycy5hZGQoaW5pdGlhdG9ySWQpO1xuICB9XG5cbiAgX3JlbW92ZUludGVybmFsQmFja2Ryb3BDbG9zZUluaXRpYXRvcihpbml0aWF0b3JJZDogc3RyaW5nIHwgbnVtYmVyKSB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZUNsb3NlKSByZXR1cm47XG5cbiAgICB0aGlzLl9kaXNhYmxlQ2xvc2VGcm9tSW50ZXJuYWxJbml0aWF0b3JzLmRlbGV0ZShpbml0aWF0b3JJZCk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -2,11 +2,13 @@ import { Directive, EventEmitter, InjectionToken, Input, Output, booleanAttribut
|
|
|
2
2
|
import { AnimatedOverlayDirective, ClickObserverService, createDestroy, nextFrame } from '@ethlete/core';
|
|
3
3
|
import { THEME_PROVIDER } from '@ethlete/theming';
|
|
4
4
|
import { filter, fromEvent, takeUntil, tap } from 'rxjs';
|
|
5
|
+
import { OverlayCloseBlockerDirective } from '../../../../directives/overlay-close-auto-blocker';
|
|
5
6
|
import { ToggletipComponent } from '../../components';
|
|
6
7
|
import { TOGGLETIP_CONFIG, TOGGLETIP_TEMPLATE, TOGGLETIP_TEXT } from '../../constants';
|
|
7
8
|
import { createToggletipConfig } from '../../utils';
|
|
8
9
|
import * as i0 from "@angular/core";
|
|
9
10
|
import * as i1 from "@ethlete/core";
|
|
11
|
+
import * as i2 from "../../../../directives/overlay-close-auto-blocker/overlay-close-auto-blocker.directive";
|
|
10
12
|
export const TOGGLETIP_DIRECTIVE = new InjectionToken('TOGGLETIP_DIRECTIVE');
|
|
11
13
|
export class ToggletipDirective {
|
|
12
14
|
get toggletip() {
|
|
@@ -108,7 +110,7 @@ export class ToggletipDirective {
|
|
|
108
110
|
provide: TOGGLETIP_DIRECTIVE,
|
|
109
111
|
useExisting: ToggletipDirective,
|
|
110
112
|
},
|
|
111
|
-
], hostDirectives: [{ directive: i1.AnimatedOverlayDirective, inputs: ["placement", "placement"] }], ngImport: i0 }); }
|
|
113
|
+
], hostDirectives: [{ directive: i1.AnimatedOverlayDirective, inputs: ["placement", "placement"] }, { directive: i2.OverlayCloseBlockerDirective }], ngImport: i0 }); }
|
|
112
114
|
}
|
|
113
115
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: ToggletipDirective, decorators: [{
|
|
114
116
|
type: Directive,
|
|
@@ -121,7 +123,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImpor
|
|
|
121
123
|
useExisting: ToggletipDirective,
|
|
122
124
|
},
|
|
123
125
|
],
|
|
124
|
-
hostDirectives: [{ directive: AnimatedOverlayDirective, inputs: ['placement'] }],
|
|
126
|
+
hostDirectives: [{ directive: AnimatedOverlayDirective, inputs: ['placement'] }, OverlayCloseBlockerDirective],
|
|
125
127
|
}]
|
|
126
128
|
}], ctorParameters: function () { return []; }, propDecorators: { toggletip: [{
|
|
127
129
|
type: Input,
|
|
@@ -131,4 +133,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImpor
|
|
|
131
133
|
}], toggletipClose: [{
|
|
132
134
|
type: Output
|
|
133
135
|
}] } });
|
|
134
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9nZ2xldGlwLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY2RrL3NyYy9saWIvY29tcG9uZW50cy9vdmVybGF5L2NvbXBvbmVudHMvdG9nZ2xldGlwL2RpcmVjdGl2ZXMvdG9nZ2xldGlwL3RvZ2dsZXRpcC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBQ1osY0FBYyxFQUNkLEtBQUssRUFHTCxNQUFNLEVBRU4sZ0JBQWdCLEVBQ2hCLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsb0JBQW9CLEVBQUUsYUFBYSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6RyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDbEQsT0FBTyxFQUFnQixNQUFNLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdkUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGtCQUFrQixFQUFFLGNBQWMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRXZGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGFBQWEsQ0FBQzs7O0FBSXBELE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLElBQUksY0FBYyxDQUFxQixxQkFBcUIsQ0FBQyxDQUFDO0FBYWpHLE1BQU0sT0FBTyxrQkFBa0I7SUFPN0IsSUFDSSxTQUFTO1FBQ1gsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQ3pCLENBQUM7SUFDRCxJQUFJLFNBQVMsQ0FBQyxDQUEyQjtRQUN2QyxJQUFJLENBQUMsVUFBVSxHQUFHLENBQUMsQ0FBQztJQUN0QixDQUFD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QUFJLENBQUMsU0FBUzt5QkFDekI7d0JBQ0gsQ0FBQyxDQUFDOzRCQUNFLE9BQU8sRUFBRSxrQkFBa0I7NEJBQzNCLFFBQVEsRUFBRSxJQUFJLENBQUMsU0FBUzt5QkFDekI7aUJBQ047YUFDRjtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7OEdBckhVLGtCQUFrQjtrR0FBbEIsa0JBQWtCLGdNQVJsQjtZQUNUO2dCQUNFLE9BQU8sRUFBRSxtQkFBbUI7Z0JBQzVCLFdBQVcsRUFBRSxrQkFBa0I7YUFDaEM7U0FDRjs7MkZBR1Usa0JBQWtCO2tCQVg5QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxlQUFlO29CQUN6QixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsU0FBUyxFQUFFO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxtQkFBbUI7NEJBQzVCLFdBQVcsb0JBQW9CO3lCQUNoQztxQkFDRjtvQkFDRCxjQUFjLEVBQUUsQ0FBQyxFQUFFLFNBQVMsRUFBRSx3QkFBd0IsRUFBRSxNQUFNLEVBQUUsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDO2lCQUNqRjswRUFTSyxTQUFTO3NCQURaLEtBQUs7dUJBQUMsYUFBYTtnQkFVaEIsYUFBYTtzQkFEaEIsS0FBSztnQkFvQk4sY0FBYztzQkFEYixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRGlyZWN0aXZlLFxuICBFdmVudEVtaXR0ZXIsXG4gIEluamVjdGlvblRva2VuLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgVGVtcGxhdGVSZWYsXG4gIGJvb2xlYW5BdHRyaWJ1dGUsXG4gIGluamVjdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBbmltYXRlZE92ZXJsYXlEaXJlY3RpdmUsIENsaWNrT2JzZXJ2ZXJTZXJ2aWNlLCBjcmVhdGVEZXN0cm95LCBuZXh0RnJhbWUgfSBmcm9tICdAZXRobGV0ZS9jb3JlJztcbmltcG9ydCB7IFRIRU1FX1BST1ZJREVSIH0gZnJvbSAnQGV0aGxldGUvdGhlbWluZyc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24sIGZpbHRlciwgZnJvbUV2ZW50LCB0YWtlVW50aWwsIHRhcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgVG9nZ2xldGlwQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cyc7XG5pbXBvcnQgeyBUT0dHTEVUSVBfQ09ORklHLCBUT0dHTEVUSVBfVEVNUExBVEUsIFRPR0dMRVRJUF9URVhUIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzJztcbmltcG9ydCB7IFRvZ2dsZXRpcENvbmZpZyB9IGZyb20gJy4uLy4uL3R5cGVzJztcbmltcG9ydCB7IGNyZWF0ZVRvZ2dsZXRpcENvbmZpZyB9IGZyb20gJy4uLy4uL3V0aWxzJztcblxudHlwZSBUb2dnbGV0aXBUZW1wbGF0ZSA9IHN0cmluZyB8IFRlbXBsYXRlUmVmPHVua25vd24+O1xuXG5leHBvcnQgY29uc3QgVE9HR0xFVElQX0RJUkVDVElWRSA9IG5ldyBJbmplY3Rpb25Ub2tlbjxUb2dnbGV0aXBEaXJlY3RpdmU+KCdUT0dHTEVUSVBfRElSRUNUSVZFJyk7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tldFRvZ2dsZXRpcF0nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBUT0dHTEVUSVBfRElSRUNUSVZFLFxuICAgICAgdXNlRXhpc3Rpbmc6IFRvZ2dsZXRpcERpcmVjdGl2ZSxcbiAgICB9LFxuICBdLFxuICBob3N0RGlyZWN0aXZlczogW3sgZGlyZWN0aXZlOiBBbmltYXRlZE92ZXJsYXlEaXJlY3RpdmUsIGlucHV0czogWydwbGFjZW1lbnQnXSB9XSxcbn0pXG5leHBvcnQgY2xhc3MgVG9nZ2xldGlwRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBwcml2YXRlIHJlYWRvbmx5IF9kZXN0cm95JCA9IGNyZWF0ZURlc3Ryb3koKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfZGVmYXVsdENvbmZpZyA9XG4gICAgaW5qZWN0PFRvZ2dsZXRpcENvbmZpZz4oVE9HR0xFVElQX0NPTkZJRywgeyBvcHRpb25hbDogdHJ1ZSB9KSA/PyBjcmVhdGVUb2dnbGV0aXBDb25maWcoKTtcbiAgcmVhZG9ubHkgX2FuaW1hdGVkT3ZlcmxheSA9IGluamVjdDxBbmltYXRlZE92ZXJsYXlEaXJlY3RpdmU8VG9nZ2xldGlwQ29tcG9uZW50Pj4oQW5pbWF0ZWRPdmVybGF5RGlyZWN0aXZlKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfdGhlbWVQcm92aWRlciA9IGluamVjdChUSEVNRV9QUk9WSURFUiwgeyBvcHRpb25hbDogdHJ1ZSB9KTtcblxuICBASW5wdXQoJ2V0VG9nZ2xldGlwJylcbiAgZ2V0IHRvZ2dsZXRpcCgpIHtcbiAgICByZXR1cm4gdGhpcy5fdG9nZ2xldGlwO1xuICB9XG4gIHNldCB0b2dnbGV0aXAodjogVG9nZ2xldGlwVGVtcGxhdGUgfCBudWxsKSB7XG4gICAgdGhpcy5fdG9nZ2xldGlwID0gdjtcbiAgfVxuICBwcml2YXRlIF90b2dnbGV0aXA6IFRvZ2dsZXRpcFRlbXBsYXRlIHwgbnVsbCA9IG51bGw7XG5cbiAgQElucHV0KClcbiAgZ2V0IHNob3dUb2dnbGV0aXAoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX3Nob3dUb2dnbGV0aXA7XG4gIH1cbiAgc2V0IHNob3dUb2dnbGV0aXAodmFsdWU6IHVua25vd24pIHtcbiAgICB0aGlzLl9zaG93VG9nZ2xldGlwID0gYm9vbGVhbkF0dHJpYnV0ZSh2YWx1ZSk7XG5cbiAgICBpZiAodGhpcy5fc2hvd1RvZ2dsZXRpcCAmJiAhdGhpcy5fYW5pbWF0ZWRPdmVybGF5LmlzTW91bnRlZCkge1xuICAgICAgbmV4dEZyYW1lKCgpID0+IHtcbiAgICAgICAgdGhpcy5fbW91bnRUb2dnbGV0aXAoKTtcbiAgICAgICAgdGhpcy5fYWRkTGlzdGVuZXJzKCk7XG4gICAgICB9KTtcbiAgICB9IGVsc2UgaWYgKCF0aGlzLl9zaG93VG9nZ2xldGlwICYmIHRoaXMuX2FuaW1hdGVkT3ZlcmxheS5pc01vdW50ZWQpIHtcbiAgICAgIHRoaXMuX2FuaW1hdGVkT3ZlcmxheS51bm1vdW50KCk7XG4gICAgICB0aGlzLl9yZW1vdmVMaXN0ZW5lcnMoKTtcbiAgICB9XG4gIH1cbiAgcHJpdmF0ZSBfc2hvd1RvZ2dsZXRpcCA9IGZhbHNlO1xuXG4gIEBPdXRwdXQoKVxuICB0b2dnbGV0aXBDbG9zZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBwcml2YXRlIF9jbGlja09ic2VydmVyU2VydmljZSA9IGluamVjdChDbGlja09ic2VydmVyU2VydmljZSk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfbGlzdGVuZXJTdWJzY3JpcHRpb25zOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuX2FuaW1hdGVkT3ZlcmxheS5wbGFjZW1lbnQgPSB0aGlzLl9kZWZhdWx0Q29uZmlnLnBsYWNlbWVudDtcbiAgICB0aGlzLl9hbmltYXRlZE92ZXJsYXkub2Zmc2V0ID0gdGhpcy5fZGVmYXVsdENvbmZpZy5vZmZzZXQ7XG4gICAgdGhpcy5fYW5pbWF0ZWRPdmVybGF5LnZpZXdwb3J0UGFkZGluZyA9IHRoaXMuX2RlZmF1bHRDb25maWcudmlld3BvcnRQYWRkaW5nO1xuICAgIHRoaXMuX2FuaW1hdGVkT3ZlcmxheS5hcnJvd1BhZGRpbmcgPSB0aGlzLl9kZWZhdWx0Q29uZmlnLmFycm93UGFkZGluZztcbiAgICB0aGlzLl9hbmltYXRlZE92ZXJsYXkuYXV0b0hpZGUgPSB0cnVlO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5fYW5pbWF0ZWRPdmVybGF5XG4gICAgICAuYWZ0ZXJDbG9zZWQoKVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5fcmVtb3ZlTGlzdGVuZXJzKCk7XG4gICAgICAgICAgdGhpcy50b2dnbGV0aXBDbG9zZS5lbWl0KCk7XG4gICAgICAgIH0pLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fYW5pbWF0ZWRPdmVybGF5Ll9kZXN0cm95KCk7XG4gICAgdGhpcy5fcmVtb3ZlTGlzdGVuZXJzKCk7XG4gIH1cblxuICBwcml2YXRlIF9hZGRMaXN0ZW5lcnMoKSB7XG4gICAgY29uc3Qga2V5dXBFc2NTdWIgPSBmcm9tRXZlbnQ8S2V5Ym9hcmRFdmVudD4oZG9jdW1lbnQsICdrZXl1cCcpXG4gICAgICAucGlwZShcbiAgICAgICAgZmlsdGVyKChlKSA9PiBlLmtleSA9PT0gJ0VzY2FwZScpLFxuICAgICAgICB0YXAoKCkgPT4gdGhpcy5fYW5pbWF0ZWRPdmVybGF5LnVubW91bnQoKSksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCk7XG5cbiAgICBjb25zdCBjbGlja091dHNpZGVTdWIgPSB0aGlzLl9jbGlja09ic2VydmVyU2VydmljZVxuICAgICAgLm9ic2VydmUodGhpcy5fYW5pbWF0ZWRPdmVybGF5LmNvbXBvbmVudFJlZj8ubG9jYXRpb24ubmF0aXZlRWxlbWVudClcbiAgICAgIC5zdWJzY3JpYmUoKGUpID0+IHtcbiAgICAgICAgY29uc3QgdGFyZ2V0RWxlbWVudCA9IGUudGFyZ2V0IGFzIEhUTUxFbGVtZW50O1xuICAgICAgICBjb25zdCBpc0luc2lkZSA9IHRoaXMuX2FuaW1hdGVkT3ZlcmxheS5jb21wb25lbnRSZWY/LmxvY2F0aW9uLm5hdGl2ZUVsZW1lbnQuY29udGFpbnModGFyZ2V0RWxlbWVudCk7XG5cbiAgICAgICAgaWYgKCFpc0luc2lkZSkge1xuICAgICAgICAgIHRoaXMuX2FuaW1hdGVkT3ZlcmxheS51bm1vdW50KCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgdGhpcy5fbGlzdGVuZXJTdWJzY3JpcHRpb25zLnB1c2goa2V5dXBFc2NTdWIsIGNsaWNrT3V0c2lkZVN1Yik7XG4gIH1cblxuICBwcml2YXRlIF9yZW1vdmVMaXN0ZW5lcnMoKSB7XG4gICAgdGhpcy5fbGlzdGVuZXJTdWJzY3JpcHRpb25zLmZvckVhY2goKHMpID0+IHMudW5zdWJzY3JpYmUoKSk7XG4gICAgdGhpcy5fbGlzdGVuZXJTdWJzY3JpcHRpb25zLmxlbmd0aCA9IDA7XG4gIH1cblxuICBwcml2YXRlIF9tb3VudFRvZ2dsZXRpcCgpIHtcbiAgICB0aGlzLl9hbmltYXRlZE92ZXJsYXkubW91bnQoe1xuICAgICAgY29tcG9uZW50OiBUb2dnbGV0aXBDb21wb25lbnQsXG4gICAgICB0aGVtZVByb3ZpZGVyOiB0aGlzLl90aGVtZVByb3ZpZGVyLFxuICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBwcm92aWRlOiBUT0dHTEVUSVBfQ09ORklHLFxuICAgICAgICAgIHVzZVZhbHVlOiB0aGlzLl9kZWZhdWx0Q29uZmlnLFxuICAgICAgICB9LFxuICAgICAgICAuLi5bXG4gICAgICAgICAgdHlwZW9mIHRoaXMudG9nZ2xldGlwID09PSAnc3RyaW5nJ1xuICAgICAgICAgICAgPyB7XG4gICAgICAgICAgICAgICAgcHJvdmlkZTogVE9HR0xFVElQX1RFWFQsXG4gICAgICAgICAgICAgICAgdXNlVmFsdWU6IHRoaXMudG9nZ2xldGlwLFxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA6IHtcbiAgICAgICAgICAgICAgICBwcm92aWRlOiBUT0dHTEVUSVBfVEVNUExBVEUsXG4gICAgICAgICAgICAgICAgdXNlVmFsdWU6IHRoaXMudG9nZ2xldGlwLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgXSxcbiAgICB9KTtcbiAgfVxufVxuIl19
|
|
136
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9nZ2xldGlwLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY2RrL3NyYy9saWIvY29tcG9uZW50cy9vdmVybGF5L2NvbXBvbmVudHMvdG9nZ2xldGlwL2RpcmVjdGl2ZXMvdG9nZ2xldGlwL3RvZ2dsZXRpcC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBQ1osY0FBYyxFQUNkLEtBQUssRUFHTCxNQUFNLEVBRU4sZ0JBQWdCLEVBQ2hCLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsb0JBQW9CLEVBQUUsYUFBYSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6RyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDbEQsT0FBTyxFQUFnQixNQUFNLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdkUsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sbURBQW1ELENBQUM7QUFDakcsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGtCQUFrQixFQUFFLGNBQWMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRXZGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGFBQWEsQ0FBQzs7OztBQUlwRCxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxJQUFJLGNBQWMsQ0FBcUIscUJBQXFCLENBQUMsQ0FBQztBQWFqRyxNQUFNLE9BQU8sa0JBQWtCO0lBTzdCLElBQ0ksU0FBUztRQUNYLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUN6QixDQUFDO0lBQ0QsSUFBSSxTQUFTLENBQUMsQ0FBMkI7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QyxDQUFDOzRCQUNFLE9BQU8sRUFBRSxjQUFjOzRCQUN2QixRQUFRLEVBQUUsSUFBSSxDQUFDLFNBQVM7eUJBQ3pCO3dCQUNILENBQUMsQ0FBQzs0QkFDRSxPQUFPLEVBQUUsa0JBQWtCOzRCQUMzQixRQUFRLEVBQUUsSUFBSSxDQUFDLFNBQVM7eUJBQ3pCO2lCQUNOO2FBQ0Y7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDOzhHQXJIVSxrQkFBa0I7a0dBQWxCLGtCQUFrQixnTUFSbEI7WUFDVDtnQkFDRSxPQUFPLEVBQUUsbUJBQW1CO2dCQUM1QixXQUFXLEVBQUUsa0JBQWtCO2FBQ2hDO1NBQ0Y7OzJGQUdVLGtCQUFrQjtrQkFYOUIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsZUFBZTtvQkFDekIsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFNBQVMsRUFBRTt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsbUJBQW1COzRCQUM1QixXQUFXLG9CQUFvQjt5QkFDaEM7cUJBQ0Y7b0JBQ0QsY0FBYyxFQUFFLENBQUMsRUFBRSxTQUFTLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxFQUFFLENBQUMsV0FBVyxDQUFDLEVBQUUsRUFBRSw0QkFBNEIsQ0FBQztpQkFDL0c7MEVBU0ssU0FBUztzQkFEWixLQUFLO3VCQUFDLGFBQWE7Z0JBVWhCLGFBQWE7c0JBRGhCLEtBQUs7Z0JBb0JOLGNBQWM7c0JBRGIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIERpcmVjdGl2ZSxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbmplY3Rpb25Ub2tlbixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFRlbXBsYXRlUmVmLFxuICBib29sZWFuQXR0cmlidXRlLFxuICBpbmplY3QsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQW5pbWF0ZWRPdmVybGF5RGlyZWN0aXZlLCBDbGlja09ic2VydmVyU2VydmljZSwgY3JlYXRlRGVzdHJveSwgbmV4dEZyYW1lIH0gZnJvbSAnQGV0aGxldGUvY29yZSc7XG5pbXBvcnQgeyBUSEVNRV9QUk9WSURFUiB9IGZyb20gJ0BldGhsZXRlL3RoZW1pbmcnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uLCBmaWx0ZXIsIGZyb21FdmVudCwgdGFrZVVudGlsLCB0YXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IE92ZXJsYXlDbG9zZUJsb2NrZXJEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi8uLi9kaXJlY3RpdmVzL292ZXJsYXktY2xvc2UtYXV0by1ibG9ja2VyJztcbmltcG9ydCB7IFRvZ2dsZXRpcENvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMnO1xuaW1wb3J0IHsgVE9HR0xFVElQX0NPTkZJRywgVE9HR0xFVElQX1RFTVBMQVRFLCBUT0dHTEVUSVBfVEVYVCB9IGZyb20gJy4uLy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBUb2dnbGV0aXBDb25maWcgfSBmcm9tICcuLi8uLi90eXBlcyc7XG5pbXBvcnQgeyBjcmVhdGVUb2dnbGV0aXBDb25maWcgfSBmcm9tICcuLi8uLi91dGlscyc7XG5cbnR5cGUgVG9nZ2xldGlwVGVtcGxhdGUgPSBzdHJpbmcgfCBUZW1wbGF0ZVJlZjx1bmtub3duPjtcblxuZXhwb3J0IGNvbnN0IFRPR0dMRVRJUF9ESVJFQ1RJVkUgPSBuZXcgSW5qZWN0aW9uVG9rZW48VG9nZ2xldGlwRGlyZWN0aXZlPignVE9HR0xFVElQX0RJUkVDVElWRScpO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbZXRUb2dnbGV0aXBdJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogVE9HR0xFVElQX0RJUkVDVElWRSxcbiAgICAgIHVzZUV4aXN0aW5nOiBUb2dnbGV0aXBEaXJlY3RpdmUsXG4gICAgfSxcbiAgXSxcbiAgaG9zdERpcmVjdGl2ZXM6IFt7IGRpcmVjdGl2ZTogQW5pbWF0ZWRPdmVybGF5RGlyZWN0aXZlLCBpbnB1dHM6IFsncGxhY2VtZW50J10gfSwgT3ZlcmxheUNsb3NlQmxvY2tlckRpcmVjdGl2ZV0sXG59KVxuZXhwb3J0IGNsYXNzIFRvZ2dsZXRpcERpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSByZWFkb25seSBfZGVzdHJveSQgPSBjcmVhdGVEZXN0cm95KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2RlZmF1bHRDb25maWcgPVxuICAgIGluamVjdDxUb2dnbGV0aXBDb25maWc+KFRPR0dMRVRJUF9DT05GSUcsIHsgb3B0aW9uYWw6IHRydWUgfSkgPz8gY3JlYXRlVG9nZ2xldGlwQ29uZmlnKCk7XG4gIHJlYWRvbmx5IF9hbmltYXRlZE92ZXJsYXkgPSBpbmplY3Q8QW5pbWF0ZWRPdmVybGF5RGlyZWN0aXZlPFRvZ2dsZXRpcENvbXBvbmVudD4+KEFuaW1hdGVkT3ZlcmxheURpcmVjdGl2ZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3RoZW1lUHJvdmlkZXIgPSBpbmplY3QoVEhFTUVfUFJPVklERVIsIHsgb3B0aW9uYWw6IHRydWUgfSk7XG5cbiAgQElucHV0KCdldFRvZ2dsZXRpcCcpXG4gIGdldCB0b2dnbGV0aXAoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3RvZ2dsZXRpcDtcbiAgfVxuICBzZXQgdG9nZ2xldGlwKHY6IFRvZ2dsZXRpcFRlbXBsYXRlIHwgbnVsbCkge1xuICAgIHRoaXMuX3RvZ2dsZXRpcCA9IHY7XG4gIH1cbiAgcHJpdmF0ZSBfdG9nZ2xldGlwOiBUb2dnbGV0aXBUZW1wbGF0ZSB8IG51bGwgPSBudWxsO1xuXG4gIEBJbnB1dCgpXG4gIGdldCBzaG93VG9nZ2xldGlwKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9zaG93VG9nZ2xldGlwO1xuICB9XG4gIHNldCBzaG93VG9nZ2xldGlwKHZhbHVlOiB1bmtub3duKSB7XG4gICAgdGhpcy5fc2hvd1RvZ2dsZXRpcCA9IGJvb2xlYW5BdHRyaWJ1dGUodmFsdWUpO1xuXG4gICAgaWYgKHRoaXMuX3Nob3dUb2dnbGV0aXAgJiYgIXRoaXMuX2FuaW1hdGVkT3ZlcmxheS5pc01vdW50ZWQpIHtcbiAgICAgIG5leHRGcmFtZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuX21vdW50VG9nZ2xldGlwKCk7XG4gICAgICAgIHRoaXMuX2FkZExpc3RlbmVycygpO1xuICAgICAgfSk7XG4gICAgfSBlbHNlIGlmICghdGhpcy5fc2hvd1RvZ2dsZXRpcCAmJiB0aGlzLl9hbmltYXRlZE92ZXJsYXkuaXNNb3VudGVkKSB7XG4gICAgICB0aGlzLl9hbmltYXRlZE92ZXJsYXkudW5tb3VudCgpO1xuICAgICAgdGhpcy5fcmVtb3ZlTGlzdGVuZXJzKCk7XG4gICAgfVxuICB9XG4gIHByaXZhdGUgX3Nob3dUb2dnbGV0aXAgPSBmYWxzZTtcblxuICBAT3V0cHV0KClcbiAgdG9nZ2xldGlwQ2xvc2UgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgcHJpdmF0ZSBfY2xpY2tPYnNlcnZlclNlcnZpY2UgPSBpbmplY3QoQ2xpY2tPYnNlcnZlclNlcnZpY2UpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2xpc3RlbmVyU3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uW10gPSBbXTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLl9hbmltYXRlZE92ZXJsYXkucGxhY2VtZW50ID0gdGhpcy5fZGVmYXVsdENvbmZpZy5wbGFjZW1lbnQ7XG4gICAgdGhpcy5fYW5pbWF0ZWRPdmVybGF5Lm9mZnNldCA9IHRoaXMuX2RlZmF1bHRDb25maWcub2Zmc2V0O1xuICAgIHRoaXMuX2FuaW1hdGVkT3ZlcmxheS52aWV3cG9ydFBhZGRpbmcgPSB0aGlzLl9kZWZhdWx0Q29uZmlnLnZpZXdwb3J0UGFkZGluZztcbiAgICB0aGlzLl9hbmltYXRlZE92ZXJsYXkuYXJyb3dQYWRkaW5nID0gdGhpcy5fZGVmYXVsdENvbmZpZy5hcnJvd1BhZGRpbmc7XG4gICAgdGhpcy5fYW5pbWF0ZWRPdmVybGF5LmF1dG9IaWRlID0gdHJ1ZTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuX2FuaW1hdGVkT3ZlcmxheVxuICAgICAgLmFmdGVyQ2xvc2VkKClcbiAgICAgIC5waXBlKFxuICAgICAgICB0YXAoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuX3JlbW92ZUxpc3RlbmVycygpO1xuICAgICAgICAgIHRoaXMudG9nZ2xldGlwQ2xvc2UuZW1pdCgpO1xuICAgICAgICB9KSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX2FuaW1hdGVkT3ZlcmxheS5fZGVzdHJveSgpO1xuICAgIHRoaXMuX3JlbW92ZUxpc3RlbmVycygpO1xuICB9XG5cbiAgcHJpdmF0ZSBfYWRkTGlzdGVuZXJzKCkge1xuICAgIGNvbnN0IGtleXVwRXNjU3ViID0gZnJvbUV2ZW50PEtleWJvYXJkRXZlbnQ+KGRvY3VtZW50LCAna2V5dXAnKVxuICAgICAgLnBpcGUoXG4gICAgICAgIGZpbHRlcigoZSkgPT4gZS5rZXkgPT09ICdFc2NhcGUnKSxcbiAgICAgICAgdGFwKCgpID0+IHRoaXMuX2FuaW1hdGVkT3ZlcmxheS51bm1vdW50KCkpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuXG4gICAgY29uc3QgY2xpY2tPdXRzaWRlU3ViID0gdGhpcy5fY2xpY2tPYnNlcnZlclNlcnZpY2VcbiAgICAgIC5vYnNlcnZlKHRoaXMuX2FuaW1hdGVkT3ZlcmxheS5jb21wb25lbnRSZWY/LmxvY2F0aW9uLm5hdGl2ZUVsZW1lbnQpXG4gICAgICAuc3Vic2NyaWJlKChlKSA9PiB7XG4gICAgICAgIGNvbnN0IHRhcmdldEVsZW1lbnQgPSBlLnRhcmdldCBhcyBIVE1MRWxlbWVudDtcbiAgICAgICAgY29uc3QgaXNJbnNpZGUgPSB0aGlzLl9hbmltYXRlZE92ZXJsYXkuY29tcG9uZW50UmVmPy5sb2NhdGlvbi5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKHRhcmdldEVsZW1lbnQpO1xuXG4gICAgICAgIGlmICghaXNJbnNpZGUpIHtcbiAgICAgICAgICB0aGlzLl9hbmltYXRlZE92ZXJsYXkudW5tb3VudCgpO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgIHRoaXMuX2xpc3RlbmVyU3Vic2NyaXB0aW9ucy5wdXNoKGtleXVwRXNjU3ViLCBjbGlja091dHNpZGVTdWIpO1xuICB9XG5cbiAgcHJpdmF0ZSBfcmVtb3ZlTGlzdGVuZXJzKCkge1xuICAgIHRoaXMuX2xpc3RlbmVyU3Vic2NyaXB0aW9ucy5mb3JFYWNoKChzKSA9PiBzLnVuc3Vic2NyaWJlKCkpO1xuICAgIHRoaXMuX2xpc3RlbmVyU3Vic2NyaXB0aW9ucy5sZW5ndGggPSAwO1xuICB9XG5cbiAgcHJpdmF0ZSBfbW91bnRUb2dnbGV0aXAoKSB7XG4gICAgdGhpcy5fYW5pbWF0ZWRPdmVybGF5Lm1vdW50KHtcbiAgICAgIGNvbXBvbmVudDogVG9nZ2xldGlwQ29tcG9uZW50LFxuICAgICAgdGhlbWVQcm92aWRlcjogdGhpcy5fdGhlbWVQcm92aWRlcixcbiAgICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgcHJvdmlkZTogVE9HR0xFVElQX0NPTkZJRyxcbiAgICAgICAgICB1c2VWYWx1ZTogdGhpcy5fZGVmYXVsdENvbmZpZyxcbiAgICAgICAgfSxcbiAgICAgICAgLi4uW1xuICAgICAgICAgIHR5cGVvZiB0aGlzLnRvZ2dsZXRpcCA9PT0gJ3N0cmluZydcbiAgICAgICAgICAgID8ge1xuICAgICAgICAgICAgICAgIHByb3ZpZGU6IFRPR0dMRVRJUF9URVhULFxuICAgICAgICAgICAgICAgIHVzZVZhbHVlOiB0aGlzLnRvZ2dsZXRpcCxcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgOiB7XG4gICAgICAgICAgICAgICAgcHJvdmlkZTogVE9HR0xFVElQX1RFTVBMQVRFLFxuICAgICAgICAgICAgICAgIHVzZVZhbHVlOiB0aGlzLnRvZ2dsZXRpcCxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIF0sXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
|
package/esm2022/lib/components/overlay/components/tooltip/directives/tooltip/tooltip.directive.mjs
CHANGED
|
@@ -3,11 +3,13 @@ import { Directive, ElementRef, InjectionToken, Input, inject } from '@angular/c
|
|
|
3
3
|
import { AnimatedOverlayDirective, FocusVisibleService } from '@ethlete/core';
|
|
4
4
|
import { THEME_PROVIDER } from '@ethlete/theming';
|
|
5
5
|
import { debounceTime, filter, fromEvent, tap } from 'rxjs';
|
|
6
|
+
import { OverlayCloseBlockerDirective } from '../../../../directives/overlay-close-auto-blocker';
|
|
6
7
|
import { TooltipComponent } from '../../components';
|
|
7
8
|
import { TOOLTIP_CONFIG, TOOLTIP_TEMPLATE, TOOLTIP_TEXT } from '../../constants';
|
|
8
9
|
import { createTooltipConfig } from '../../utils';
|
|
9
10
|
import * as i0 from "@angular/core";
|
|
10
11
|
import * as i1 from "@ethlete/core";
|
|
12
|
+
import * as i2 from "../../../../directives/overlay-close-auto-blocker/overlay-close-auto-blocker.directive";
|
|
11
13
|
export const TOOLTIP_DIRECTIVE = new InjectionToken('TOOLTIP_DIRECTIVE');
|
|
12
14
|
export class TooltipDirective {
|
|
13
15
|
get tooltip() {
|
|
@@ -145,7 +147,7 @@ export class TooltipDirective {
|
|
|
145
147
|
provide: TOOLTIP_DIRECTIVE,
|
|
146
148
|
useExisting: TooltipDirective,
|
|
147
149
|
},
|
|
148
|
-
], hostDirectives: [{ directive: i1.AnimatedOverlayDirective, inputs: ["placement", "placement"] }], ngImport: i0 }); }
|
|
150
|
+
], hostDirectives: [{ directive: i1.AnimatedOverlayDirective, inputs: ["placement", "placement"] }, { directive: i2.OverlayCloseBlockerDirective }], ngImport: i0 }); }
|
|
149
151
|
}
|
|
150
152
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: TooltipDirective, decorators: [{
|
|
151
153
|
type: Directive,
|
|
@@ -158,7 +160,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImpor
|
|
|
158
160
|
useExisting: TooltipDirective,
|
|
159
161
|
},
|
|
160
162
|
],
|
|
161
|
-
hostDirectives: [{ directive: AnimatedOverlayDirective, inputs: ['placement'] }],
|
|
163
|
+
hostDirectives: [{ directive: AnimatedOverlayDirective, inputs: ['placement'] }, OverlayCloseBlockerDirective],
|
|
162
164
|
}]
|
|
163
165
|
}], ctorParameters: function () { return []; }, propDecorators: { tooltip: [{
|
|
164
166
|
type: Input,
|
|
@@ -166,4 +168,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImpor
|
|
|
166
168
|
}], tooltipAriaDescription: [{
|
|
167
169
|
type: Input
|
|
168
170
|
}] } });
|
|
169
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Nkay9zcmMvbGliL2NvbXBvbmVudHMvb3ZlcmxheS9jb21wb25lbnRzL3Rvb2x0aXAvZGlyZWN0aXZlcy90b29sdGlwL3Rvb2x0aXAuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQUUsS0FBSyxFQUEwQixNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0csT0FBTyxFQUFFLHdCQUF3QixFQUFFLG1CQUFtQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNsRCxPQUFPLEVBQWdCLFlBQVksRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNwRCxPQUFPLEVBQUUsY0FBYyxFQUFFLGdCQUFnQixFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRWpGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGFBQWEsQ0FBQzs7O0FBSWxELE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLElBQUksY0FBYyxDQUFtQixtQkFBbUIsQ0FBQyxDQUFDO0FBYTNGLE1BQU0sT0FBTyxnQkFBZ0I7SUFLM0IsSUFDSSxPQUFPO1FBQ1QsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3ZCLENBQUM7SUFDRCxJQUFJLE9BQU8sQ0FBQyxDQUF5QjtRQUNuQyxJQUFJLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQztRQUVsQixJQUFJLENBQUMsc0JB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OlsiaW1wb3J0IHsgQXJpYURlc2NyaWJlciB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcbmltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSW5qZWN0aW9uVG9rZW4sIElucHV0LCBPbkRlc3Ryb3ksIFRlbXBsYXRlUmVmLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFuaW1hdGVkT3ZlcmxheURpcmVjdGl2ZSwgRm9jdXNWaXNpYmxlU2VydmljZSB9IGZyb20gJ0BldGhsZXRlL2NvcmUnO1xuaW1wb3J0IHsgVEhFTUVfUFJPVklERVIgfSBmcm9tICdAZXRobGV0ZS90aGVtaW5nJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiwgZGVib3VuY2VUaW1lLCBmaWx0ZXIsIGZyb21FdmVudCwgdGFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBUb29sdGlwQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cyc7XG5pbXBvcnQgeyBUT09MVElQX0NPTkZJRywgVE9PTFRJUF9URU1QTEFURSwgVE9PTFRJUF9URVhUIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzJztcbmltcG9ydCB7IFRvb2x0aXBDb25maWcgfSBmcm9tICcuLi8uLi90eXBlcyc7XG5pbXBvcnQgeyBjcmVhdGVUb29sdGlwQ29uZmlnIH0gZnJvbSAnLi4vLi4vdXRpbHMnO1xuXG50eXBlIFRvb2x0aXBUZW1wbGF0ZSA9IHN0cmluZyB8IFRlbXBsYXRlUmVmPHVua25vd24+O1xuXG5leHBvcnQgY29uc3QgVE9PTFRJUF9ESVJFQ1RJVkUgPSBuZXcgSW5qZWN0aW9uVG9rZW48VG9vbHRpcERpcmVjdGl2ZT4oJ1RPT0xUSVBfRElSRUNUSVZFJyk7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tldFRvb2x0aXBdJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogVE9PTFRJUF9ESVJFQ1RJVkUsXG4gICAgICB1c2VFeGlzdGluZzogVG9vbHRpcERpcmVjdGl2ZSxcbiAgICB9LFxuICBdLFxuICBob3N0RGlyZWN0aXZlczogW3sgZGlyZWN0aXZlOiBBbmltYXRlZE92ZXJsYXlEaXJlY3RpdmUsIGlucHV0czogWydwbGFjZW1lbnQnXSB9XSxcbn0pXG5leHBvcnQgY2xhc3MgVG9vbHRpcERpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2RlZmF1bHRDb25maWcgPSBpbmplY3Q8VG9vbHRpcENvbmZpZz4oVE9PTFRJUF9DT05GSUcsIHsgb3B0aW9uYWw6IHRydWUgfSkgPz8gY3JlYXRlVG9vbHRpcENvbmZpZygpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9hbmltYXRlZE92ZXJsYXkgPSBpbmplY3Q8QW5pbWF0ZWRPdmVybGF5RGlyZWN0aXZlPFRvb2x0aXBDb21wb25lbnQ+PihBbmltYXRlZE92ZXJsYXlEaXJlY3RpdmUpO1xuICBwcml2YXRlIHJlYWRvbmx5IF90aGVtZVByb3ZpZGVyID0gaW5qZWN0KFRIRU1FX1BST1ZJREVSLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuXG4gIEBJbnB1dCgnZXRUb29sdGlwJylcbiAgZ2V0IHRvb2x0aXAoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3Rvb2x0aXA7XG4gIH1cbiAgc2V0IHRvb2x0aXAodjogVG9vbHRpcFRlbXBsYXRlIHwgbnVsbCkge1xuICAgIHRoaXMuX3Rvb2x0aXAgPSB2O1xuXG4gICAgdGhpcy5fdXBkYXRlQXJpYURlc2NyaXB0aW9uKCk7XG5cbiAgICBpZiAodikge1xuICAgICAgdGhpcy5fYWRkTGlzdGVuZXJzKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX3JlbW92ZUxpc3RlbmVycygpO1xuICAgIH1cbiAgfVxuICBwcml2YXRlIF90b29sdGlwOiBUb29sdGlwVGVtcGxhdGUgfCBudWxsID0gbnVsbDtcblxuICBASW5wdXQoKVxuICBnZXQgdG9vbHRpcEFyaWFEZXNjcmlwdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy5fdG9vbHRpcEFyaWFEZXNjcmlwdGlvbjtcbiAgfVxuICBzZXQgdG9vbHRpcEFyaWFEZXNjcmlwdGlvbih2OiBzdHJpbmcgfCBudWxsKSB7XG4gICAgdGhpcy5fdG9vbHRpcEFyaWFEZXNjcmlwdGlvbiA9IHY7XG4gICAgdGhpcy5fdXBkYXRlQXJpYURlc2NyaXB0aW9uKCk7XG4gIH1cbiAgcHJpdmF0ZSBfdG9vbHRpcEFyaWFEZXNjcmlwdGlvbjogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgX2xhc3RUb29sdGlwVGV4dDogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG5cbiAgcHJpdmF0ZSBfZWxlbWVudFJlZiA9IGluamVjdDxFbGVtZW50UmVmPEhUTUxFbGVtZW50Pj4oRWxlbWVudFJlZik7XG4gIHByaXZhdGUgX2FyaWFEZXNjcmliZXJTZXJ2aWNlID0gaW5qZWN0KEFyaWFEZXNjcmliZXIpO1xuICBwcml2YXRlIF9mb2N1c1Zpc2libGVTZXJ2aWNlID0gaW5qZWN0KEZvY3VzVmlzaWJsZVNlcnZpY2UpO1xuXG4gIHByaXZhdGUgX3dpbGxNb3VudCA9IHRydWU7XG4gIHByaXZhdGUgX2hhc0ZvY3VzID0gZmFsc2U7XG4gIHByaXZhdGUgX2hhc0hvdmVyID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfbGlzdGVuZXJTdWJzY3JpcHRpb25zOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuX2FuaW1hdGVkT3ZlcmxheS5wbGFjZW1lbnQgPSB0aGlzLl9kZWZhdWx0Q29uZmlnLnBsYWNlbWVudDtcbiAgICB0aGlzLl9hbmltYXRlZE92ZXJsYXkub2Zmc2V0ID0gdGhpcy5fZGVmYXVsdENvbmZpZy5vZmZzZXQ7XG4gICAgdGhpcy5fYW5pbWF0ZWRPdmVybGF5LmFycm93UGFkZGluZyA9IHRoaXMuX2RlZmF1bHRDb25maWcuYXJyb3dQYWRkaW5nO1xuICAgIHRoaXMuX2FuaW1hdGVkT3ZlcmxheS52aWV3cG9ydFBhZGRpbmcgPSB0aGlzLl9kZWZhdWx0Q29uZmlnLnZpZXdwb3J0UGFkZGluZztcbiAgICB0aGlzLl9hbmltYXRlZE92ZXJsYXkuYXV0b0hpZGUgPSB0cnVlO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fYW5pbWF0ZWRPdmVybGF5Ll9kZXN0cm95KCk7XG4gICAgdGhpcy5fcmVtb3ZlTGlzdGVuZXJzKCk7XG4gIH1cblxuICBwcml2YXRlIF91cGRhdGVBcmlhRGVzY3JpcHRpb24oKSB7XG4gICAgY29uc3QgdG9vbHRpcFRleHQgPSB0aGlzLl9nZXRUb29sdGlwVGV4dCgpO1xuXG4gICAgaWYgKHRvb2x0aXBUZXh0KSB7XG4gICAgICB0aGlzLl9hcmlhRGVzY3JpYmVyU2VydmljZS5kZXNjcmliZSh0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIHRvb2x0aXBUZXh0KTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuX2xhc3RUb29sdGlwVGV4dCkge1xuICAgICAgdGhpcy5fYXJpYURlc2NyaWJlclNlcnZpY2UucmVtb3ZlRGVzY3JpcHRpb24odGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCB0aGlzLl9sYXN0VG9vbHRpcFRleHQpO1xuICAgIH1cblxuICAgIHRoaXMuX2xhc3RUb29sdGlwVGV4dCA9IHRvb2x0aXBUZXh0O1xuICB9XG5cbiAgcHJpdmF0ZSBfYWRkTGlzdGVuZXJzKCkge1xuICAgIGNvbnN0IG1vdXNlRW50ZXJTdWIgPSBmcm9tRXZlbnQodGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAnbW91c2VlbnRlcicpXG4gICAgICAucGlwZShcbiAgICAgICAgdGFwKCgpID0+IHtcbiAgICAgICAgICB0aGlzLl93aWxsTW91bnQgPSB0cnVlO1xuICAgICAgICAgIHRoaXMuX2hhc0hvdmVyID0gdHJ1ZTtcbiAgICAgICAgfSksXG4gICAgICAgIGRlYm91bmNlVGltZSgyMDApLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIGlmICghdGhpcy5fd2lsbE1vdW50IHx8IHRoaXMuX2FuaW1hdGVkT3ZlcmxheS5pc01vdW50ZWQpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9tb3VudFRvb2x0aXAoKTtcbiAgICAgIH0pO1xuXG4gICAgY29uc3QgZm9jdXNTdWIgPSBmcm9tRXZlbnQodGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAnZm9jdXMnKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgaWYgKCF0aGlzLl9mb2N1c1Zpc2libGVTZXJ2aWNlLmlzRm9jdXNWaXNpYmxlKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgdGhpcy5faGFzRm9jdXMgPSB0cnVlO1xuXG4gICAgICBpZiAodGhpcy5fYW5pbWF0ZWRPdmVybGF5LmlzTW91bnRlZCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIHRoaXMuX21vdW50VG9vbHRpcCgpO1xuICAgIH0pO1xuXG4gICAgY29uc3QgbW91c2VMZWF2ZVN1YiA9IGZyb21FdmVudCh0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICdtb3VzZWxlYXZlJykuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMuX2hhc0hvdmVyID0gZmFsc2U7XG4gICAgICB0aGlzLl93aWxsTW91bnQgPSBmYWxzZTtcblxuICAgICAgaWYgKHRoaXMuX2FuaW1hdGVkT3ZlcmxheS5pc01vdW50ZWQgJiYgIXRoaXMuX2hhc0ZvY3VzKSB7XG4gICAgICAgIHRoaXMuX2FuaW1hdGVkT3ZlcmxheS51bm1vdW50KCk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBjb25zdCBibHVyU3ViID0gZnJvbUV2ZW50KHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ2JsdXInKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5faGFzRm9jdXMgPSBmYWxzZTtcbiAgICAgIHRoaXMuX3dpbGxNb3VudCA9IGZhbHNlO1xuXG4gICAgICBpZiAodGhpcy5fYW5pbWF0ZWRPdmVybGF5LmlzTW91bnRlZCAmJiAhdGhpcy5faGFzSG92ZXIpIHtcbiAgICAgICAgdGhpcy5fYW5pbWF0ZWRPdmVybGF5LnVubW91bnQoKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGNvbnN0IGtleXVwRXNjU3ViID0gZnJvbUV2ZW50PEtleWJvYXJkRXZlbnQ+KGRvY3VtZW50LCAna2V5dXAnKVxuICAgICAgLnBpcGUoXG4gICAgICAgIGZpbHRlcigoZSkgPT4gZS5rZXkgPT09ICdFc2NhcGUnKSxcbiAgICAgICAgZmlsdGVyKCgpID0+IHRoaXMuX2FuaW1hdGVkT3ZlcmxheS5pc01vdW50ZWQpLFxuICAgICAgICB0YXAoKCkgPT4gdGhpcy5fYW5pbWF0ZWRPdmVybGF5LnVubW91bnQoKSksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCk7XG5cbiAgICB0aGlzLl9saXN0ZW5lclN1YnNjcmlwdGlvbnMucHVzaChtb3VzZUVudGVyU3ViLCBtb3VzZUxlYXZlU3ViLCBmb2N1c1N1YiwgYmx1clN1Yiwga2V5dXBFc2NTdWIpO1xuICB9XG5cbiAgcHJpdmF0ZSBfcmVtb3ZlTGlzdGVuZXJzKCkge1xuICAgIHRoaXMuX2xpc3RlbmVyU3Vic2NyaXB0aW9ucy5mb3JFYWNoKChzKSA9PiBzLnVuc3Vic2NyaWJlKCkpO1xuICAgIHRoaXMuX2xpc3RlbmVyU3Vic2NyaXB0aW9ucy5sZW5ndGggPSAwO1xuICB9XG5cbiAgcHJpdmF0ZSBfbW91bnRUb29sdGlwKCkge1xuICAgIHRoaXMuX2FuaW1hdGVkT3ZlcmxheS5tb3VudCh7XG4gICAgICBjb21wb25lbnQ6IFRvb2x0aXBDb21wb25lbnQsXG4gICAgICB0aGVtZVByb3ZpZGVyOiB0aGlzLl90aGVtZVByb3ZpZGVyLFxuICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBwcm92aWRlOiBUT09MVElQX0NPTkZJRyxcbiAgICAgICAgICB1c2VWYWx1ZTogdGhpcy5fZGVmYXVsdENvbmZpZyxcbiAgICAgICAgfSxcbiAgICAgICAgLi4uW1xuICAgICAgICAgIHR5cGVvZiB0aGlzLnRvb2x0aXAgPT09ICdzdHJpbmcnXG4gICAgICAgICAgICA/IHtcbiAgICAgICAgICAgICAgICBwcm92aWRlOiBUT09MVElQX1RFWFQsXG4gICAgICAgICAgICAgICAgdXNlVmFsdWU6IHRoaXMudG9vbHRpcCxcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgOiB7XG4gICAgICAgICAgICAgICAgcHJvdmlkZTogVE9PTFRJUF9URU1QTEFURSxcbiAgICAgICAgICAgICAgICB1c2VWYWx1ZTogdGhpcy50b29sdGlwLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgXSxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX2dldFRvb2x0aXBUZXh0KCkge1xuICAgIHJldHVybiB0aGlzLl90b29sdGlwQXJpYURlc2NyaXB0aW9uXG4gICAgICA/IHRoaXMuX3Rvb2x0aXBBcmlhRGVzY3JpcHRpb25cbiAgICAgIDogdHlwZW9mIHRoaXMudG9vbHRpcCA9PT0gJ3N0cmluZydcbiAgICAgID8gdGhpcy50b29sdGlwXG4gICAgICA6IG51bGw7XG4gIH1cbn1cbiJdfQ==
|
|
171
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Nkay9zcmMvbGliL2NvbXBvbmVudHMvb3ZlcmxheS9jb21wb25lbnRzL3Rvb2x0aXAvZGlyZWN0aXZlcy90b29sdGlwL3Rvb2x0aXAuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQUUsS0FBSyxFQUEwQixNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0csT0FBTyxFQUFFLHdCQUF3QixFQUFFLG1CQUFtQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNsRCxPQUFPLEVBQWdCLFlBQVksRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxRSxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUNqRyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNwRCxPQUFPLEVBQUUsY0FBYyxFQUFFLGdCQUFnQixFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRWpGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGFBQWEsQ0FBQzs7OztBQUlsRCxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLGNBQWMsQ0FBbUIsbUJBQW1CLENBQUMsQ0FBQztBQWEzRixNQUFNLE9BQU8sZ0JBQWdCO0lBSzNCLElBQ0ksT0FBTztRQUNULE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN2QixDQUFDO0lBQ0QsSUFBSSxPQUFPLENBQUMsQ0FBeUI7UUFDbkMsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUM7UUFFbEIsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7UUFFOUIsSUFBSSxDQUFDLEVBQUU7WUFDTCxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7U0FDdEI7YUFBTTtZQUNMLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1NBQ3pCO0lBQ0gsQ0FBQztJQUdELElBQ0ksc0JBQXNCO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLHVCQUF1QixDQUFDO0lBQ3RDLENBQUM7SUFDRCxJQUFJLHNCQUFzQixDQUFDLENBQWdCO1FBQ3pDLElBQUksQ0FBQyx1QkFBdUIsR0FBRyxDQUFDLENBQUM7UUFDakMsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7SUFDaEMsQ0FBQztJQWNEO1FBMUNpQixtQkFBYyxHQUFHLE1BQU0sQ0FBZ0IsY0FBYyxFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLElBQUksbUJBQW1CLEVBQUUsQ0FBQztRQUNwRyxxQkFBZ0IsR0FBRyxNQUFNLENBQTZDLHdCQUF3QixDQUFDLENBQUM7UUFDaEcsbUJBQWMsR0FBRyxNQUFNLENBQUMsY0FBYyxFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFpQnJFLGFBQVEsR0FBMkIsSUFBSSxDQUFDO1FBVXhDLDRCQUF1QixHQUFrQixJQUFJLENBQUM7UUFDOUMscUJBQWdCLEdBQWtCLElBQUksQ0FBQztRQUV2QyxnQkFBVyxHQUFHLE1BQU0sQ0FBMEIsVUFBVSxDQUFDLENBQUM7UUFDMUQsMEJBQXFCLEdBQUcsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQzlDLHlCQUFvQixHQUFHLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBRW5ELGVBQVUsR0FBRyxJQUFJLENBQUM7UUFDbEIsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUNsQixjQUFTLEdBQUcsS0FBSyxDQUFDO1FBRVQsMkJBQXNCLEdBQW1CLEVBQUUsQ0FBQztRQUczRCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDO1FBQ2hFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUM7UUFDMUQsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQztRQUN0RSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsZUFBZSxDQUFDO1FBQzVFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO0lBQ3hDLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFTyxzQkFBc0I7UUFDNUIsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBRTNDLElBQUksV0FBVyxFQUFFO1lBQ2YsSUFBSSxDQUFDLHFCQUFxQixDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsRUFBRSxXQUFXLENBQUMsQ0FBQztTQUNsRjthQUFNLElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFO1lBQ2hDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztTQUNyRztRQUVELElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxXQUFXLENBQUM7SUFDdEMsQ0FBQztJQUVPLGFBQWE7UUFDbkIsTUFBTSxhQUFhLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxFQUFFLFlBQVksQ0FBQzthQUMxRSxJQUFJLENBQ0gsR0FBRyxDQUFDLEdBQUcsRUFBRTtZQUNQLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ3hCLENBQUMsQ0FBQyxFQUNGLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FDbEI7YUFDQSxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsRUFBRTtnQkFDdkQsT0FBTzthQUNSO1lBRUQsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3ZCLENBQUMsQ0FBQyxDQUFDO1FBRUwsTUFBTSxRQUFRLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxFQUFFLE9BQU8sQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDakYsSUFBSSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxjQUFjLEVBQUU7Z0JBQzdDLE9BQU87YUFDUjtZQUVELElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1lBRXRCLElBQUksSUFBSSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsRUFBRTtnQkFDbkMsT0FBTzthQUNSO1lBRUQsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3ZCLENBQUMsQ0FBQyxDQUFDO1FBRUgsTUFBTSxhQUFhLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxFQUFFLFlBQVksQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDM0YsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7WUFDdkIsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7WUFFeEIsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRTtnQkFDdEQsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxDQUFDO2FBQ2pDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFFSCxNQUFNLE9BQU8sR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLEVBQUUsTUFBTSxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUMvRSxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztZQUN2QixJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztZQUV4QixJQUFJLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFO2dCQUN0RCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLENBQUM7YUFDakM7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUVILE1BQU0sV0FBVyxHQUFHLFNBQVMsQ0FBZ0IsUUFBUSxFQUFFLE9BQU8sQ0FBQzthQUM1RCxJQUFJLENBQ0gsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLFFBQVEsQ0FBQyxFQUNqQyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxFQUM3QyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxDQUFDLENBQzNDO2FBQ0EsU0FBUyxFQUFFLENBQUM7UUFFZixJQUFJLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxhQUFhLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxXQUFXLENBQUMsQ0FBQztJQUNqRyxDQUFDO0lBRU8sZ0JBQWdCO1FBQ3RCLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBQzVELElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFTyxhQUFhO1FBQ25CLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUM7WUFDMUIsU0FBUyxFQUFFLGdCQUFnQjtZQUMzQixhQUFhLEVBQUUsSUFBSSxDQUFDLGNBQWM7WUFDbEMsU0FBUyxFQUFFO2dCQUNUO29CQUNFLE9BQU8sRUFBRSxjQUFjO29CQUN2QixRQUFRLEVBQUUsSUFBSSxDQUFDLGNBQWM7aUJBQzlCO2dCQUNELEdBQUc7b0JBQ0QsT0FBTyxJQUFJLENBQUMsT0FBTyxLQUFLLFFBQVE7d0JBQzlCLENBQUMsQ0FBQzs0QkFDRSxPQUFPLEVBQUUsWUFBWTs0QkFDckIsUUFBUSxFQUFFLElBQUksQ0FBQyxPQUFPO3lCQUN2Qjt3QkFDSCxDQUFDLENBQUM7NEJBQ0UsT0FBTyxFQUFFLGdCQUFnQjs0QkFDekIsUUFBUSxFQUFFLElBQUksQ0FBQyxPQUFPO3lCQUN2QjtpQkFDTjthQUNGO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLGVBQWU7UUFDckIsT0FBTyxJQUFJLENBQUMsdUJBQXVCO1lBQ2pDLENBQUMsQ0FBQyxJQUFJLENBQUMsdUJBQXVCO1lBQzlCLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxPQUFPLEtBQUssUUFBUTtnQkFDbEMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPO2dCQUNkLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDWCxDQUFDOzhHQW5LVSxnQkFBZ0I7a0dBQWhCLGdCQUFnQiwySkFSaEI7WUFDVDtnQkFDRSxPQUFPLEVBQUUsaUJBQWlCO2dCQUMxQixXQUFXLEVBQUUsZ0JBQWdCO2FBQzlCO1NBQ0Y7OzJGQUdVLGdCQUFnQjtrQkFYNUIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsYUFBYTtvQkFDdkIsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFNBQVMsRUFBRTt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLGtCQUFrQjt5QkFDOUI7cUJBQ0Y7b0JBQ0QsY0FBYyxFQUFFLENBQUMsRUFBRSxTQUFTLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxFQUFFLENBQUMsV0FBVyxDQUFDLEVBQUUsRUFBRSw0QkFBNEIsQ0FBQztpQkFDL0c7MEVBT0ssT0FBTztzQkFEVixLQUFLO3VCQUFDLFdBQVc7Z0JBa0JkLHNCQUFzQjtzQkFEekIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFyaWFEZXNjcmliZXIgfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XG5pbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEluamVjdGlvblRva2VuLCBJbnB1dCwgT25EZXN0cm95LCBUZW1wbGF0ZVJlZiwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBbmltYXRlZE92ZXJsYXlEaXJlY3RpdmUsIEZvY3VzVmlzaWJsZVNlcnZpY2UgfSBmcm9tICdAZXRobGV0ZS9jb3JlJztcbmltcG9ydCB7IFRIRU1FX1BST1ZJREVSIH0gZnJvbSAnQGV0aGxldGUvdGhlbWluZyc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24sIGRlYm91bmNlVGltZSwgZmlsdGVyLCBmcm9tRXZlbnQsIHRhcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgT3ZlcmxheUNsb3NlQmxvY2tlckRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uLy4uL2RpcmVjdGl2ZXMvb3ZlcmxheS1jbG9zZS1hdXRvLWJsb2NrZXInO1xuaW1wb3J0IHsgVG9vbHRpcENvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMnO1xuaW1wb3J0IHsgVE9PTFRJUF9DT05GSUcsIFRPT0xUSVBfVEVNUExBVEUsIFRPT0xUSVBfVEVYVCB9IGZyb20gJy4uLy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBUb29sdGlwQ29uZmlnIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuaW1wb3J0IHsgY3JlYXRlVG9vbHRpcENvbmZpZyB9IGZyb20gJy4uLy4uL3V0aWxzJztcblxudHlwZSBUb29sdGlwVGVtcGxhdGUgPSBzdHJpbmcgfCBUZW1wbGF0ZVJlZjx1bmtub3duPjtcblxuZXhwb3J0IGNvbnN0IFRPT0xUSVBfRElSRUNUSVZFID0gbmV3IEluamVjdGlvblRva2VuPFRvb2x0aXBEaXJlY3RpdmU+KCdUT09MVElQX0RJUkVDVElWRScpO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbZXRUb29sdGlwXScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IFRPT0xUSVBfRElSRUNUSVZFLFxuICAgICAgdXNlRXhpc3Rpbmc6IFRvb2x0aXBEaXJlY3RpdmUsXG4gICAgfSxcbiAgXSxcbiAgaG9zdERpcmVjdGl2ZXM6IFt7IGRpcmVjdGl2ZTogQW5pbWF0ZWRPdmVybGF5RGlyZWN0aXZlLCBpbnB1dHM6IFsncGxhY2VtZW50J10gfSwgT3ZlcmxheUNsb3NlQmxvY2tlckRpcmVjdGl2ZV0sXG59KVxuZXhwb3J0IGNsYXNzIFRvb2x0aXBEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBwcml2YXRlIHJlYWRvbmx5IF9kZWZhdWx0Q29uZmlnID0gaW5qZWN0PFRvb2x0aXBDb25maWc+KFRPT0xUSVBfQ09ORklHLCB7IG9wdGlvbmFsOiB0cnVlIH0pID8/IGNyZWF0ZVRvb2x0aXBDb25maWcoKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfYW5pbWF0ZWRPdmVybGF5ID0gaW5qZWN0PEFuaW1hdGVkT3ZlcmxheURpcmVjdGl2ZTxUb29sdGlwQ29tcG9uZW50Pj4oQW5pbWF0ZWRPdmVybGF5RGlyZWN0aXZlKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfdGhlbWVQcm92aWRlciA9IGluamVjdChUSEVNRV9QUk9WSURFUiwgeyBvcHRpb25hbDogdHJ1ZSB9KTtcblxuICBASW5wdXQoJ2V0VG9vbHRpcCcpXG4gIGdldCB0b29sdGlwKCkge1xuICAgIHJldHVybiB0aGlzLl90b29sdGlwO1xuICB9XG4gIHNldCB0b29sdGlwKHY6IFRvb2x0aXBUZW1wbGF0ZSB8IG51bGwpIHtcbiAgICB0aGlzLl90b29sdGlwID0gdjtcblxuICAgIHRoaXMuX3VwZGF0ZUFyaWFEZXNjcmlwdGlvbigpO1xuXG4gICAgaWYgKHYpIHtcbiAgICAgIHRoaXMuX2FkZExpc3RlbmVycygpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9yZW1vdmVMaXN0ZW5lcnMoKTtcbiAgICB9XG4gIH1cbiAgcHJpdmF0ZSBfdG9vbHRpcDogVG9vbHRpcFRlbXBsYXRlIHwgbnVsbCA9IG51bGw7XG5cbiAgQElucHV0KClcbiAgZ2V0IHRvb2x0aXBBcmlhRGVzY3JpcHRpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMuX3Rvb2x0aXBBcmlhRGVzY3JpcHRpb247XG4gIH1cbiAgc2V0IHRvb2x0aXBBcmlhRGVzY3JpcHRpb24odjogc3RyaW5nIHwgbnVsbCkge1xuICAgIHRoaXMuX3Rvb2x0aXBBcmlhRGVzY3JpcHRpb24gPSB2O1xuICAgIHRoaXMuX3VwZGF0ZUFyaWFEZXNjcmlwdGlvbigpO1xuICB9XG4gIHByaXZhdGUgX3Rvb2x0aXBBcmlhRGVzY3JpcHRpb246IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIF9sYXN0VG9vbHRpcFRleHQ6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXG4gIHByaXZhdGUgX2VsZW1lbnRSZWYgPSBpbmplY3Q8RWxlbWVudFJlZjxIVE1MRWxlbWVudD4+KEVsZW1lbnRSZWYpO1xuICBwcml2YXRlIF9hcmlhRGVzY3JpYmVyU2VydmljZSA9IGluamVjdChBcmlhRGVzY3JpYmVyKTtcbiAgcHJpdmF0ZSBfZm9jdXNWaXNpYmxlU2VydmljZSA9IGluamVjdChGb2N1c1Zpc2libGVTZXJ2aWNlKTtcblxuICBwcml2YXRlIF93aWxsTW91bnQgPSB0cnVlO1xuICBwcml2YXRlIF9oYXNGb2N1cyA9IGZhbHNlO1xuICBwcml2YXRlIF9oYXNIb3ZlciA9IGZhbHNlO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2xpc3RlbmVyU3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uW10gPSBbXTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLl9hbmltYXRlZE92ZXJsYXkucGxhY2VtZW50ID0gdGhpcy5fZGVmYXVsdENvbmZpZy5wbGFjZW1lbnQ7XG4gICAgdGhpcy5fYW5pbWF0ZWRPdmVybGF5Lm9mZnNldCA9IHRoaXMuX2RlZmF1bHRDb25maWcub2Zmc2V0O1xuICAgIHRoaXMuX2FuaW1hdGVkT3ZlcmxheS5hcnJvd1BhZGRpbmcgPSB0aGlzLl9kZWZhdWx0Q29uZmlnLmFycm93UGFkZGluZztcbiAgICB0aGlzLl9hbmltYXRlZE92ZXJsYXkudmlld3BvcnRQYWRkaW5nID0gdGhpcy5fZGVmYXVsdENvbmZpZy52aWV3cG9ydFBhZGRpbmc7XG4gICAgdGhpcy5fYW5pbWF0ZWRPdmVybGF5LmF1dG9IaWRlID0gdHJ1ZTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX2FuaW1hdGVkT3ZlcmxheS5fZGVzdHJveSgpO1xuICAgIHRoaXMuX3JlbW92ZUxpc3RlbmVycygpO1xuICB9XG5cbiAgcHJpdmF0ZSBfdXBkYXRlQXJpYURlc2NyaXB0aW9uKCkge1xuICAgIGNvbnN0IHRvb2x0aXBUZXh0ID0gdGhpcy5fZ2V0VG9vbHRpcFRleHQoKTtcblxuICAgIGlmICh0b29sdGlwVGV4dCkge1xuICAgICAgdGhpcy5fYXJpYURlc2NyaWJlclNlcnZpY2UuZGVzY3JpYmUodGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCB0b29sdGlwVGV4dCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLl9sYXN0VG9vbHRpcFRleHQpIHtcbiAgICAgIHRoaXMuX2FyaWFEZXNjcmliZXJTZXJ2aWNlLnJlbW92ZURlc2NyaXB0aW9uKHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgdGhpcy5fbGFzdFRvb2x0aXBUZXh0KTtcbiAgICB9XG5cbiAgICB0aGlzLl9sYXN0VG9vbHRpcFRleHQgPSB0b29sdGlwVGV4dDtcbiAgfVxuXG4gIHByaXZhdGUgX2FkZExpc3RlbmVycygpIHtcbiAgICBjb25zdCBtb3VzZUVudGVyU3ViID0gZnJvbUV2ZW50KHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ21vdXNlZW50ZXInKVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5fd2lsbE1vdW50ID0gdHJ1ZTtcbiAgICAgICAgICB0aGlzLl9oYXNIb3ZlciA9IHRydWU7XG4gICAgICAgIH0pLFxuICAgICAgICBkZWJvdW5jZVRpbWUoMjAwKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICBpZiAoIXRoaXMuX3dpbGxNb3VudCB8fCB0aGlzLl9hbmltYXRlZE92ZXJsYXkuaXNNb3VudGVkKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fbW91bnRUb29sdGlwKCk7XG4gICAgICB9KTtcblxuICAgIGNvbnN0IGZvY3VzU3ViID0gZnJvbUV2ZW50KHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ2ZvY3VzJykuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIGlmICghdGhpcy5fZm9jdXNWaXNpYmxlU2VydmljZS5pc0ZvY3VzVmlzaWJsZSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIHRoaXMuX2hhc0ZvY3VzID0gdHJ1ZTtcblxuICAgICAgaWYgKHRoaXMuX2FuaW1hdGVkT3ZlcmxheS5pc01vdW50ZWQpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICB0aGlzLl9tb3VudFRvb2x0aXAoKTtcbiAgICB9KTtcblxuICAgIGNvbnN0IG1vdXNlTGVhdmVTdWIgPSBmcm9tRXZlbnQodGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAnbW91c2VsZWF2ZScpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLl9oYXNIb3ZlciA9IGZhbHNlO1xuICAgICAgdGhpcy5fd2lsbE1vdW50ID0gZmFsc2U7XG5cbiAgICAgIGlmICh0aGlzLl9hbmltYXRlZE92ZXJsYXkuaXNNb3VudGVkICYmICF0aGlzLl9oYXNGb2N1cykge1xuICAgICAgICB0aGlzLl9hbmltYXRlZE92ZXJsYXkudW5tb3VudCgpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgY29uc3QgYmx1clN1YiA9IGZyb21FdmVudCh0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICdibHVyJykuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMuX2hhc0ZvY3VzID0gZmFsc2U7XG4gICAgICB0aGlzLl93aWxsTW91bnQgPSBmYWxzZTtcblxuICAgICAgaWYgKHRoaXMuX2FuaW1hdGVkT3ZlcmxheS5pc01vdW50ZWQgJiYgIXRoaXMuX2hhc0hvdmVyKSB7XG4gICAgICAgIHRoaXMuX2FuaW1hdGVkT3ZlcmxheS51bm1vdW50KCk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBjb25zdCBrZXl1cEVzY1N1YiA9IGZyb21FdmVudDxLZXlib2FyZEV2ZW50Pihkb2N1bWVudCwgJ2tleXVwJylcbiAgICAgIC5waXBlKFxuICAgICAgICBmaWx0ZXIoKGUpID0+IGUua2V5ID09PSAnRXNjYXBlJyksXG4gICAgICAgIGZpbHRlcigoKSA9PiB0aGlzLl9hbmltYXRlZE92ZXJsYXkuaXNNb3VudGVkKSxcbiAgICAgICAgdGFwKCgpID0+IHRoaXMuX2FuaW1hdGVkT3ZlcmxheS51bm1vdW50KCkpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuXG4gICAgdGhpcy5fbGlzdGVuZXJTdWJzY3JpcHRpb25zLnB1c2gobW91c2VFbnRlclN1YiwgbW91c2VMZWF2ZVN1YiwgZm9jdXNTdWIsIGJsdXJTdWIsIGtleXVwRXNjU3ViKTtcbiAgfVxuXG4gIHByaXZhdGUgX3JlbW92ZUxpc3RlbmVycygpIHtcbiAgICB0aGlzLl9saXN0ZW5lclN1YnNjcmlwdGlvbnMuZm9yRWFjaCgocykgPT4gcy51bnN1YnNjcmliZSgpKTtcbiAgICB0aGlzLl9saXN0ZW5lclN1YnNjcmlwdGlvbnMubGVuZ3RoID0gMDtcbiAgfVxuXG4gIHByaXZhdGUgX21vdW50VG9vbHRpcCgpIHtcbiAgICB0aGlzLl9hbmltYXRlZE92ZXJsYXkubW91bnQoe1xuICAgICAgY29tcG9uZW50OiBUb29sdGlwQ29tcG9uZW50LFxuICAgICAgdGhlbWVQcm92aWRlcjogdGhpcy5fdGhlbWVQcm92aWRlcixcbiAgICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgcHJvdmlkZTogVE9PTFRJUF9DT05GSUcsXG4gICAgICAgICAgdXNlVmFsdWU6IHRoaXMuX2RlZmF1bHRDb25maWcsXG4gICAgICAgIH0sXG4gICAgICAgIC4uLltcbiAgICAgICAgICB0eXBlb2YgdGhpcy50b29sdGlwID09PSAnc3RyaW5nJ1xuICAgICAgICAgICAgPyB7XG4gICAgICAgICAgICAgICAgcHJvdmlkZTogVE9PTFRJUF9URVhULFxuICAgICAgICAgICAgICAgIHVzZVZhbHVlOiB0aGlzLnRvb2x0aXAsXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDoge1xuICAgICAgICAgICAgICAgIHByb3ZpZGU6IFRPT0xUSVBfVEVNUExBVEUsXG4gICAgICAgICAgICAgICAgdXNlVmFsdWU6IHRoaXMudG9vbHRpcCxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIF0sXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF9nZXRUb29sdGlwVGV4dCgpIHtcbiAgICByZXR1cm4gdGhpcy5fdG9vbHRpcEFyaWFEZXNjcmlwdGlvblxuICAgICAgPyB0aGlzLl90b29sdGlwQXJpYURlc2NyaXB0aW9uXG4gICAgICA6IHR5cGVvZiB0aGlzLnRvb2x0aXAgPT09ICdzdHJpbmcnXG4gICAgICA/IHRoaXMudG9vbHRpcFxuICAgICAgOiBudWxsO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './public-api';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Nkay9zcmMvbGliL2NvbXBvbmVudHMvb3ZlcmxheS9kaXJlY3RpdmVzL292ZXJsYXktY2xvc2UtYXV0by1ibG9ja2VyL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcbiJdfQ==
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { Directive, InjectionToken, inject } from '@angular/core';
|
|
2
|
+
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
3
|
+
import { AnimatedOverlayDirective } from '@ethlete/core';
|
|
4
|
+
import { combineLatest, tap } from 'rxjs';
|
|
5
|
+
import { OverlayRef } from '../../components/overlay/utils/overlay-ref';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
export const OVERLAY_CLOSE_BLOCKER_TOKEN = new InjectionToken('OVERLAY_CLOSE_BLOCKER_TOKEN');
|
|
8
|
+
let uniqueId = 0;
|
|
9
|
+
export class OverlayCloseBlockerDirective {
|
|
10
|
+
constructor() {
|
|
11
|
+
this._id = `et-overlay-close-blocker-${uniqueId++}`;
|
|
12
|
+
this._animatedOverlay = inject(AnimatedOverlayDirective, { optional: true });
|
|
13
|
+
this._nearestOverlayRef = inject(OverlayRef, { optional: true });
|
|
14
|
+
if (!this._animatedOverlay || !this._nearestOverlayRef)
|
|
15
|
+
return;
|
|
16
|
+
combineLatest([this._animatedOverlay.isMounted$, this._animatedOverlay.isHidden$])
|
|
17
|
+
.pipe(takeUntilDestroyed(), tap(([mounted, hidden]) => {
|
|
18
|
+
if (mounted && !hidden) {
|
|
19
|
+
this._nearestOverlayRef?._addInternalBackdropCloseInitiator(this._id);
|
|
20
|
+
}
|
|
21
|
+
else {
|
|
22
|
+
this._nearestOverlayRef?._removeInternalBackdropCloseInitiator(this._id);
|
|
23
|
+
}
|
|
24
|
+
}))
|
|
25
|
+
.subscribe();
|
|
26
|
+
}
|
|
27
|
+
ngOnDestroy() {
|
|
28
|
+
this._nearestOverlayRef?._removeInternalBackdropCloseInitiator(this._id);
|
|
29
|
+
}
|
|
30
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: OverlayCloseBlockerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
31
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.5", type: OverlayCloseBlockerDirective, isStandalone: true, selector: "[etOverlayCloseBlocker]", providers: [
|
|
32
|
+
{
|
|
33
|
+
provide: OVERLAY_CLOSE_BLOCKER_TOKEN,
|
|
34
|
+
useExisting: OverlayCloseBlockerDirective,
|
|
35
|
+
},
|
|
36
|
+
], ngImport: i0 }); }
|
|
37
|
+
}
|
|
38
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: OverlayCloseBlockerDirective, decorators: [{
|
|
39
|
+
type: Directive,
|
|
40
|
+
args: [{
|
|
41
|
+
selector: '[etOverlayCloseBlocker]',
|
|
42
|
+
standalone: true,
|
|
43
|
+
providers: [
|
|
44
|
+
{
|
|
45
|
+
provide: OVERLAY_CLOSE_BLOCKER_TOKEN,
|
|
46
|
+
useExisting: OverlayCloseBlockerDirective,
|
|
47
|
+
},
|
|
48
|
+
],
|
|
49
|
+
}]
|
|
50
|
+
}], ctorParameters: function () { return []; } });
|
|
51
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmxheS1jbG9zZS1hdXRvLWJsb2NrZXIuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jZGsvc3JjL2xpYi9jb21wb25lbnRzL292ZXJsYXkvZGlyZWN0aXZlcy9vdmVybGF5LWNsb3NlLWF1dG8tYmxvY2tlci9vdmVybGF5LWNsb3NlLWF1dG8tYmxvY2tlci5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxjQUFjLEVBQWEsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6RCxPQUFPLEVBQUUsYUFBYSxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sNENBQTRDLENBQUM7O0FBRXhFLE1BQU0sQ0FBQyxNQUFNLDJCQUEyQixHQUFHLElBQUksY0FBYyxDQUMzRCw2QkFBNkIsQ0FDOUIsQ0FBQztBQUVGLElBQUksUUFBUSxHQUFHLENBQUMsQ0FBQztBQVlqQixNQUFNLE9BQU8sNEJBQTRCO0lBS3ZDO1FBSmlCLFFBQUcsR0FBRyw0QkFBNEIsUUFBUSxFQUFFLEVBQUUsQ0FBQztRQUMvQyxxQkFBZ0IsR0FBRyxNQUFNLENBQUMsd0JBQXdCLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUN4RSx1QkFBa0IsR0FBRyxNQUFNLENBQUMsVUFBVSxFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFHM0UsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsSUFBSSxDQUFDLElBQUksQ0FBQyxrQkFBa0I7WUFBRSxPQUFPO1FBRS9ELGFBQWEsQ0FBQyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxDQUFDO2FBQy9FLElBQUksQ0FDSCxrQkFBa0IsRUFBRSxFQUNwQixHQUFHLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsRUFBRSxFQUFFO1lBQ3hCLElBQUksT0FBTyxJQUFJLENBQUMsTUFBTSxFQUFFO2dCQUN0QixJQUFJLENBQUMsa0JBQWtCLEVBQUUsa0NBQWtDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2FBQ3ZFO2lCQUFNO2dCQUNMLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxxQ0FBcUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7YUFDMUU7UUFDSCxDQUFDLENBQUMsQ0FDSDthQUNBLFNBQVMsRUFBRSxDQUFDO0lBQ2pCLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLGtCQUFrQixFQUFFLHFDQUFxQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMzRSxDQUFDOzhHQXhCVSw0QkFBNEI7a0dBQTVCLDRCQUE0QixzRUFQNUI7WUFDVDtnQkFDRSxPQUFPLEVBQUUsMkJBQTJCO2dCQUNwQyxXQUFXLEVBQUUsNEJBQTRCO2FBQzFDO1NBQ0Y7OzJGQUVVLDRCQUE0QjtrQkFWeEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUseUJBQXlCO29CQUNuQyxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsU0FBUyxFQUFFO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSwyQkFBMkI7NEJBQ3BDLFdBQVcsOEJBQThCO3lCQUMxQztxQkFDRjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSW5qZWN0aW9uVG9rZW4sIE9uRGVzdHJveSwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBBbmltYXRlZE92ZXJsYXlEaXJlY3RpdmUgfSBmcm9tICdAZXRobGV0ZS9jb3JlJztcbmltcG9ydCB7IGNvbWJpbmVMYXRlc3QsIHRhcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgT3ZlcmxheVJlZiB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvb3ZlcmxheS91dGlscy9vdmVybGF5LXJlZic7XG5cbmV4cG9ydCBjb25zdCBPVkVSTEFZX0NMT1NFX0JMT0NLRVJfVE9LRU4gPSBuZXcgSW5qZWN0aW9uVG9rZW48T3ZlcmxheUNsb3NlQmxvY2tlckRpcmVjdGl2ZT4oXG4gICdPVkVSTEFZX0NMT1NFX0JMT0NLRVJfVE9LRU4nLFxuKTtcblxubGV0IHVuaXF1ZUlkID0gMDtcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2V0T3ZlcmxheUNsb3NlQmxvY2tlcl0nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBPVkVSTEFZX0NMT1NFX0JMT0NLRVJfVE9LRU4sXG4gICAgICB1c2VFeGlzdGluZzogT3ZlcmxheUNsb3NlQmxvY2tlckRpcmVjdGl2ZSxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBPdmVybGF5Q2xvc2VCbG9ja2VyRGlyZWN0aXZlIGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSByZWFkb25seSBfaWQgPSBgZXQtb3ZlcmxheS1jbG9zZS1ibG9ja2VyLSR7dW5pcXVlSWQrK31gO1xuICBwcml2YXRlIHJlYWRvbmx5IF9hbmltYXRlZE92ZXJsYXkgPSBpbmplY3QoQW5pbWF0ZWRPdmVybGF5RGlyZWN0aXZlLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuICBwcml2YXRlIHJlYWRvbmx5IF9uZWFyZXN0T3ZlcmxheVJlZiA9IGluamVjdChPdmVybGF5UmVmLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIGlmICghdGhpcy5fYW5pbWF0ZWRPdmVybGF5IHx8ICF0aGlzLl9uZWFyZXN0T3ZlcmxheVJlZikgcmV0dXJuO1xuXG4gICAgY29tYmluZUxhdGVzdChbdGhpcy5fYW5pbWF0ZWRPdmVybGF5LmlzTW91bnRlZCQsIHRoaXMuX2FuaW1hdGVkT3ZlcmxheS5pc0hpZGRlbiRdKVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRha2VVbnRpbERlc3Ryb3llZCgpLFxuICAgICAgICB0YXAoKFttb3VudGVkLCBoaWRkZW5dKSA9PiB7XG4gICAgICAgICAgaWYgKG1vdW50ZWQgJiYgIWhpZGRlbikge1xuICAgICAgICAgICAgdGhpcy5fbmVhcmVzdE92ZXJsYXlSZWY/Ll9hZGRJbnRlcm5hbEJhY2tkcm9wQ2xvc2VJbml0aWF0b3IodGhpcy5faWQpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9uZWFyZXN0T3ZlcmxheVJlZj8uX3JlbW92ZUludGVybmFsQmFja2Ryb3BDbG9zZUluaXRpYXRvcih0aGlzLl9pZCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX25lYXJlc3RPdmVybGF5UmVmPy5fcmVtb3ZlSW50ZXJuYWxCYWNrZHJvcENsb3NlSW5pdGlhdG9yKHRoaXMuX2lkKTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './overlay-close-auto-blocker.directive';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY2RrL3NyYy9saWIvY29tcG9uZW50cy9vdmVybGF5L2RpcmVjdGl2ZXMvb3ZlcmxheS1jbG9zZS1hdXRvLWJsb2NrZXIvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHdDQUF3QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9vdmVybGF5LWNsb3NlLWF1dG8tYmxvY2tlci5kaXJlY3RpdmUnO1xuIl19
|