@taiga-ui/core 3.16.0-dev.main-c0b4e86 → 3.16.0-dev.main-11c6b7c
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/bundles/taiga-ui-core-components-dialog.umd.js +14 -12
- package/bundles/taiga-ui-core-components-dialog.umd.js.map +1 -1
- package/bundles/taiga-ui-core-components-hosted-dropdown.umd.js +18 -22
- package/bundles/taiga-ui-core-components-hosted-dropdown.umd.js.map +1 -1
- package/bundles/taiga-ui-core-directives-dropdown.umd.js +7 -1
- package/bundles/taiga-ui-core-directives-dropdown.umd.js.map +1 -1
- package/components/hosted-dropdown/hosted-dropdown.component.d.ts +7 -6
- package/directives/dropdown/dropdown-hover.directive.d.ts +1 -0
- package/directives/dropdown/dropdown.component.d.ts +3 -2
- package/esm2015/components/dialog/dialog.providers.js +21 -10
- package/esm2015/components/hosted-dropdown/hosted-dropdown.component.js +20 -21
- package/esm2015/directives/dropdown/dropdown-hover.directive.js +6 -3
- package/esm2015/directives/dropdown/dropdown.component.js +4 -1
- package/fesm2015/taiga-ui-core-components-dialog.js +20 -9
- package/fesm2015/taiga-ui-core-components-dialog.js.map +1 -1
- package/fesm2015/taiga-ui-core-components-hosted-dropdown.js +19 -20
- package/fesm2015/taiga-ui-core-components-hosted-dropdown.js.map +1 -1
- package/fesm2015/taiga-ui-core-directives-dropdown.js +8 -2
- package/fesm2015/taiga-ui-core-directives-dropdown.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { DOCUMENT } from '@angular/common';
|
|
2
2
|
import { ElementRef, InjectionToken } from '@angular/core';
|
|
3
3
|
import { WINDOW } from '@ng-web-apis/common';
|
|
4
|
-
import { tuiContainsOrAfter, TuiDestroyService, tuiIsCurrentTarget, tuiIsElement, tuiTypedFromEvent, } from '@taiga-ui/cdk';
|
|
4
|
+
import { tuiContainsOrAfter, TuiDestroyService, tuiGetActualTarget, tuiIsCurrentTarget, tuiIsElement, tuiTypedFromEvent, } from '@taiga-ui/cdk';
|
|
5
5
|
import { tuiGetViewportWidth } from '@taiga-ui/core/utils/dom';
|
|
6
6
|
import { POLYMORPHEUS_CONTEXT } from '@tinkoff/ng-polymorpheus';
|
|
7
7
|
import { EMPTY, merge } from 'rxjs';
|
|
@@ -25,16 +25,27 @@ export const TUI_DIALOG_PROVIDERS = [
|
|
|
25
25
|
],
|
|
26
26
|
useFactory: (documentRef, windowRef, { nativeElement }, close$, destroy$, { dismissible }) => {
|
|
27
27
|
return dismissible
|
|
28
|
-
? merge(tuiTypedFromEvent(nativeElement, `click`).pipe(filter(tuiIsCurrentTarget)), tuiTypedFromEvent(documentRef, `keydown`).pipe(filter(
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
28
|
+
? merge(tuiTypedFromEvent(nativeElement, `click`).pipe(filter(tuiIsCurrentTarget)), tuiTypedFromEvent(documentRef, `keydown`).pipe(filter(event => {
|
|
29
|
+
const key = event.key;
|
|
30
|
+
const target = tuiGetActualTarget(event);
|
|
31
|
+
return (key === `Escape` &&
|
|
32
|
+
tuiIsElement(target) &&
|
|
33
|
+
(!tuiContainsOrAfter(nativeElement, target) ||
|
|
34
|
+
nativeElement.contains(target)));
|
|
35
|
+
})), tuiTypedFromEvent(documentRef, `mousedown`).pipe(filter(event => {
|
|
36
|
+
const target = tuiGetActualTarget(event);
|
|
37
|
+
const clientX = event.clientX;
|
|
38
|
+
return (tuiIsElement(target) &&
|
|
39
|
+
tuiGetViewportWidth(windowRef) - clientX >
|
|
40
|
+
SCROLLBAR_PLACEHOLDER &&
|
|
41
|
+
!tuiContainsOrAfter(nativeElement, target));
|
|
42
|
+
}), switchMap(() => tuiTypedFromEvent(documentRef, `mouseup`).pipe(take(1), filter(event => {
|
|
43
|
+
const target = tuiGetActualTarget(event);
|
|
44
|
+
return (tuiIsElement(target) &&
|
|
45
|
+
!tuiContainsOrAfter(nativeElement, target));
|
|
46
|
+
})))), close$).pipe(takeUntil(destroy$))
|
|
36
47
|
: close$;
|
|
37
48
|
},
|
|
38
49
|
},
|
|
39
50
|
];
|
|
40
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
51
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLnByb3ZpZGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvY29tcG9uZW50cy9kaWFsb2cvZGlhbG9nLnByb3ZpZGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDekMsT0FBTyxFQUFDLFVBQVUsRUFBRSxjQUFjLEVBQVcsTUFBTSxlQUFlLENBQUM7QUFDbkUsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQzNDLE9BQU8sRUFDSCxrQkFBa0IsRUFDbEIsaUJBQWlCLEVBRWpCLGtCQUFrQixFQUNsQixrQkFBa0IsRUFDbEIsWUFBWSxFQUNaLGlCQUFpQixHQUNwQixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUM3RCxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUM5RCxPQUFPLEVBQUMsS0FBSyxFQUFFLEtBQUssRUFBYSxNQUFNLE1BQU0sQ0FBQztBQUM5QyxPQUFPLEVBQUMsTUFBTSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFbEUsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxjQUFjLENBQy9DLGdEQUFnRCxFQUNoRDtJQUNJLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxLQUFLO0NBQ3ZCLENBQ0osQ0FBQztBQUVGLE1BQU0scUJBQXFCLEdBQUcsRUFBRSxDQUFDO0FBRWpDLE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFHLElBQUksY0FBYyxDQUNyRCxtREFBbUQsQ0FDdEQsQ0FBQztBQUNGLE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFlO0lBQzVDLGlCQUFpQjtJQUNqQjtRQUNJLE9BQU8sRUFBRSx1QkFBdUI7UUFDaEMsSUFBSSxFQUFFO1lBQ0YsUUFBUTtZQUNSLE1BQU07WUFDTixVQUFVO1lBQ1YsaUJBQWlCO1lBQ2pCLGlCQUFpQjtZQUNqQixvQkFBb0I7U0FDdkI7UUFDRCxVQUFVLEVBQUUsQ0FDUixXQUFxQixFQUNyQixTQUFpQixFQUNqQixFQUFDLGFBQWEsRUFBMEIsRUFDeEMsTUFBd0IsRUFDeEIsUUFBMEIsRUFDMUIsRUFBQyxXQUFXLEVBQWdELEVBQ3pDLEVBQUU7WUFDckIsT0FBTyxXQUFXO2dCQUNkLENBQUMsQ0FBQyxLQUFLLENBQ0QsaUJBQWlCLENBQUMsYUFBYSxFQUFFLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FDMUMsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQzdCLEVBQ0QsaUJBQWlCLENBQUMsV0FBVyxFQUFFLFNBQVMsQ0FBQyxDQUFDLElBQUksQ0FDMUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFO29CQUNYLE1BQU0sR0FBRyxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUM7b0JBQ3RCLE1BQU0sTUFBTSxHQUFHLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxDQUFDO29CQUV6QyxPQUFPLENBQ0gsR0FBRyxLQUFLLFFBQVE7d0JBQ2hCLFlBQVksQ0FBQyxNQUFNLENBQUM7d0JBQ3BCLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxhQUFhLEVBQUUsTUFBTSxDQUFDOzRCQUN2QyxhQUFhLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQ3RDLENBQUM7Z0JBQ04sQ0FBQyxDQUFDLENBQ0wsRUFDRCxpQkFBaUIsQ0FBQyxXQUFXLEVBQUUsV0FBVyxDQUFDLENBQUMsSUFBSSxDQUM1QyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUU7b0JBQ1gsTUFBTSxNQUFNLEdBQUcsa0JBQWtCLENBQUMsS0FBSyxDQUFDLENBQUM7b0JBQ3pDLE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUM7b0JBRTlCLE9BQU8sQ0FDSCxZQUFZLENBQUMsTUFBTSxDQUFDO3dCQUNwQixtQkFBbUIsQ0FBQyxTQUFTLENBQUMsR0FBRyxPQUFPOzRCQUNwQyxxQkFBcUI7d0JBQ3pCLENBQUMsa0JBQWtCLENBQUMsYUFBYSxFQUFFLE1BQU0sQ0FBQyxDQUM3QyxDQUFDO2dCQUNOLENBQUMsQ0FBQyxFQUNGLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FDWCxpQkFBaUIsQ0FBQyxXQUFXLEVBQUUsU0FBUyxDQUFDLENBQUMsSUFBSSxDQUMxQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQ1AsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFO29CQUNYLE1BQU0sTUFBTSxHQUFHLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxDQUFDO29CQUV6QyxPQUFPLENBQ0gsWUFBWSxDQUFDLE1BQU0sQ0FBQzt3QkFDcEIsQ0FBQyxrQkFBa0IsQ0FBQyxhQUFhLEVBQUUsTUFBTSxDQUFDLENBQzdDLENBQUM7Z0JBQ04sQ0FBQyxDQUFDLENBQ0wsQ0FDSixDQUNKLEVBQ0QsTUFBTSxDQUNULENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDN0IsQ0FBQyxDQUFDLE1BQU0sQ0FBQztRQUNqQixDQUFDO0tBQ0o7Q0FDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtET0NVTUVOVH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7RWxlbWVudFJlZiwgSW5qZWN0aW9uVG9rZW4sIFByb3ZpZGVyfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7V0lORE9XfSBmcm9tICdAbmctd2ViLWFwaXMvY29tbW9uJztcbmltcG9ydCB7XG4gICAgdHVpQ29udGFpbnNPckFmdGVyLFxuICAgIFR1aURlc3Ryb3lTZXJ2aWNlLFxuICAgIFR1aURpYWxvZyxcbiAgICB0dWlHZXRBY3R1YWxUYXJnZXQsXG4gICAgdHVpSXNDdXJyZW50VGFyZ2V0LFxuICAgIHR1aUlzRWxlbWVudCxcbiAgICB0dWlUeXBlZEZyb21FdmVudCxcbn0gZnJvbSAnQHRhaWdhLXVpL2Nkayc7XG5pbXBvcnQge1R1aURpYWxvZ09wdGlvbnN9IGZyb20gJ0B0YWlnYS11aS9jb3JlL2ludGVyZmFjZXMnO1xuaW1wb3J0IHt0dWlHZXRWaWV3cG9ydFdpZHRofSBmcm9tICdAdGFpZ2EtdWkvY29yZS91dGlscy9kb20nO1xuaW1wb3J0IHtQT0xZTU9SUEhFVVNfQ09OVEVYVH0gZnJvbSAnQHRpbmtvZmYvbmctcG9seW1vcnBoZXVzJztcbmltcG9ydCB7RU1QVFksIG1lcmdlLCBPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcbmltcG9ydCB7ZmlsdGVyLCBzd2l0Y2hNYXAsIHRha2UsIHRha2VVbnRpbH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5leHBvcnQgY29uc3QgVFVJX0RJQUxPR1NfQ0xPU0UgPSBuZXcgSW5qZWN0aW9uVG9rZW48T2JzZXJ2YWJsZTx1bmtub3duPj4oXG4gICAgYFtUVUlfRElBTE9HU19DTE9TRV06IEEgc3RyZWFtIHRvIGNsb3NlIGRpYWxvZ3NgLFxuICAgIHtcbiAgICAgICAgZmFjdG9yeTogKCkgPT4gRU1QVFksXG4gICAgfSxcbik7XG5cbmNvbnN0IFNDUk9MTEJBUl9QTEFDRUhPTERFUiA9IDE3O1xuXG5leHBvcnQgY29uc3QgVFVJX0RJQUxPR19DTE9TRV9TVFJFQU0gPSBuZXcgSW5qZWN0aW9uVG9rZW48T2JzZXJ2YWJsZTx1bmtub3duPj4oXG4gICAgYFtUVUlfRElBTE9HX0NMT1NFX1NUUkVBTV06IERpYWxvZ3MgY2xvc2luZyBzdHJlYW1gLFxuKTtcbmV4cG9ydCBjb25zdCBUVUlfRElBTE9HX1BST1ZJREVSUzogUHJvdmlkZXJbXSA9IFtcbiAgICBUdWlEZXN0cm95U2VydmljZSxcbiAgICB7XG4gICAgICAgIHByb3ZpZGU6IFRVSV9ESUFMT0dfQ0xPU0VfU1RSRUFNLFxuICAgICAgICBkZXBzOiBbXG4gICAgICAgICAgICBET0NVTUVOVCxcbiAgICAgICAgICAgIFdJTkRPVyxcbiAgICAgICAgICAgIEVsZW1lbnRSZWYsXG4gICAgICAgICAgICBUVUlfRElBTE9HU19DTE9TRSxcbiAgICAgICAgICAgIFR1aURlc3Ryb3lTZXJ2aWNlLFxuICAgICAgICAgICAgUE9MWU1PUlBIRVVTX0NPTlRFWFQsXG4gICAgICAgIF0sXG4gICAgICAgIHVzZUZhY3Rvcnk6IChcbiAgICAgICAgICAgIGRvY3VtZW50UmVmOiBEb2N1bWVudCxcbiAgICAgICAgICAgIHdpbmRvd1JlZjogV2luZG93LFxuICAgICAgICAgICAge25hdGl2ZUVsZW1lbnR9OiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PixcbiAgICAgICAgICAgIGNsb3NlJDogT2JzZXJ2YWJsZTx2b2lkPixcbiAgICAgICAgICAgIGRlc3Ryb3kkOiBPYnNlcnZhYmxlPHZvaWQ+LFxuICAgICAgICAgICAge2Rpc21pc3NpYmxlfTogVHVpRGlhbG9nPFR1aURpYWxvZ09wdGlvbnM8dW5rbm93bj4sIHVua25vd24+LFxuICAgICAgICApOiBPYnNlcnZhYmxlPHVua25vd24+ID0+IHtcbiAgICAgICAgICAgIHJldHVybiBkaXNtaXNzaWJsZVxuICAgICAgICAgICAgICAgID8gbWVyZ2UoXG4gICAgICAgICAgICAgICAgICAgICAgdHVpVHlwZWRGcm9tRXZlbnQobmF0aXZlRWxlbWVudCwgYGNsaWNrYCkucGlwZShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyKHR1aUlzQ3VycmVudFRhcmdldCksXG4gICAgICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAgICAgICB0dWlUeXBlZEZyb21FdmVudChkb2N1bWVudFJlZiwgYGtleWRvd25gKS5waXBlKFxuICAgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXIoZXZlbnQgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qga2V5ID0gZXZlbnQua2V5O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdGFyZ2V0ID0gdHVpR2V0QWN0dWFsVGFyZ2V0KGV2ZW50KTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXkgPT09IGBFc2NhcGVgICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHVpSXNFbGVtZW50KHRhcmdldCkgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIXR1aUNvbnRhaW5zT3JBZnRlcihuYXRpdmVFbGVtZW50LCB0YXJnZXQpIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hdGl2ZUVsZW1lbnQuY29udGFpbnModGFyZ2V0KSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICAgICAgdHVpVHlwZWRGcm9tRXZlbnQoZG9jdW1lbnRSZWYsIGBtb3VzZWRvd25gKS5waXBlKFxuICAgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXIoZXZlbnQgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdGFyZ2V0ID0gdHVpR2V0QWN0dWFsVGFyZ2V0KGV2ZW50KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNsaWVudFggPSBldmVudC5jbGllbnRYO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR1aUlzRWxlbWVudCh0YXJnZXQpICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHVpR2V0Vmlld3BvcnRXaWR0aCh3aW5kb3dSZWYpIC0gY2xpZW50WCA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNDUk9MTEJBUl9QTEFDRUhPTERFUiAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICF0dWlDb250YWluc09yQWZ0ZXIobmF0aXZlRWxlbWVudCwgdGFyZ2V0KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHN3aXRjaE1hcCgoKSA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHVpVHlwZWRGcm9tRXZlbnQoZG9jdW1lbnRSZWYsIGBtb3VzZXVwYCkucGlwZShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWtlKDEpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlcihldmVudCA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHRhcmdldCA9IHR1aUdldEFjdHVhbFRhcmdldChldmVudCk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR1aUlzRWxlbWVudCh0YXJnZXQpICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhdHVpQ29udGFpbnNPckFmdGVyKG5hdGl2ZUVsZW1lbnQsIHRhcmdldClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAgICAgICBjbG9zZSQsXG4gICAgICAgICAgICAgICAgICApLnBpcGUodGFrZVVudGlsKGRlc3Ryb3kkKSlcbiAgICAgICAgICAgICAgICA6IGNsb3NlJDtcbiAgICAgICAgfSxcbiAgICB9LFxuXTtcbiJdfQ==
|
|
@@ -3,36 +3,33 @@ import { ChangeDetectionStrategy, Component, ContentChild, ElementRef, EventEmit
|
|
|
3
3
|
import { TuiActiveZoneDirective, tuiAsFocusableItemAccessor, tuiDefaultProp, tuiGetClosestFocusable, tuiIsElement, tuiIsElementEditable, tuiIsHTMLElement, tuiIsNativeFocusedIn, tuiIsNativeKeyboardFocusable, } from '@taiga-ui/cdk';
|
|
4
4
|
import { TuiDropdownDirective, TuiDropdownHoverDirective, } from '@taiga-ui/core/directives/dropdown';
|
|
5
5
|
import { tuiIsEditingKey } from '@taiga-ui/core/utils/miscellaneous';
|
|
6
|
-
import { BehaviorSubject,
|
|
7
|
-
import {
|
|
6
|
+
import { BehaviorSubject, EMPTY, merge } from 'rxjs';
|
|
7
|
+
import { distinctUntilChanged, skip } from 'rxjs/operators';
|
|
8
8
|
import { TuiHostedDropdownConnectorDirective } from './hosted-dropdown-connector.directive';
|
|
9
9
|
import * as i0 from "@angular/core";
|
|
10
10
|
import * as i1 from "@taiga-ui/cdk";
|
|
11
11
|
import * as i2 from "@taiga-ui/core/directives/dropdown";
|
|
12
12
|
import * as i3 from "@tinkoff/ng-polymorpheus";
|
|
13
13
|
import * as i4 from "@angular/common";
|
|
14
|
-
|
|
14
|
+
/* eslint-disable @typescript-eslint/member-ordering */
|
|
15
15
|
export class TuiHostedDropdownComponent {
|
|
16
16
|
constructor(hover$, elementRef) {
|
|
17
17
|
this.hover$ = hover$;
|
|
18
18
|
this.elementRef = elementRef;
|
|
19
|
-
|
|
19
|
+
/** TODO: rename in 4.0 */
|
|
20
|
+
this.openChange = new BehaviorSubject(false);
|
|
20
21
|
this.content = '';
|
|
21
22
|
this.sided = false;
|
|
22
23
|
this.canOpen = true;
|
|
23
|
-
this.
|
|
24
|
+
this.open$ = merge(this.openChange, this.hover$ || EMPTY).pipe(skip(1), distinctUntilChanged());
|
|
24
25
|
this.focusedChange = new EventEmitter();
|
|
25
|
-
this.open$ = combineLatest([
|
|
26
|
-
this.manual$,
|
|
27
|
-
(this.hover$ || EMPTY).pipe(startWith(false)),
|
|
28
|
-
]).pipe(map(([manual, hover]) => manual || hover));
|
|
29
26
|
this.close = () => this.updateOpen(false);
|
|
30
27
|
}
|
|
31
28
|
set open(open) {
|
|
32
|
-
this.
|
|
29
|
+
this.openChange.next(open);
|
|
33
30
|
}
|
|
34
31
|
get open() {
|
|
35
|
-
return this.
|
|
32
|
+
return this.openChange.value;
|
|
36
33
|
}
|
|
37
34
|
get host() {
|
|
38
35
|
var _a;
|
|
@@ -68,7 +65,10 @@ export class TuiHostedDropdownComponent {
|
|
|
68
65
|
}
|
|
69
66
|
}
|
|
70
67
|
onClick(target) {
|
|
71
|
-
|
|
68
|
+
var _a;
|
|
69
|
+
if (!this.hostEditable &&
|
|
70
|
+
this.computedHost.contains(target) &&
|
|
71
|
+
!((_a = this.hover$) === null || _a === void 0 ? void 0 : _a.hovered)) {
|
|
72
72
|
this.updateOpen(!this.open);
|
|
73
73
|
}
|
|
74
74
|
}
|
|
@@ -103,11 +103,9 @@ export class TuiHostedDropdownComponent {
|
|
|
103
103
|
}
|
|
104
104
|
}
|
|
105
105
|
updateOpen(open) {
|
|
106
|
-
if (open
|
|
107
|
-
|
|
106
|
+
if (!open || this.canOpen) {
|
|
107
|
+
this.open = open;
|
|
108
108
|
}
|
|
109
|
-
this.open = open;
|
|
110
|
-
this.openChange.emit(open);
|
|
111
109
|
}
|
|
112
110
|
get hostEditable() {
|
|
113
111
|
return tuiIsElementEditable(this.computedHost);
|
|
@@ -161,7 +159,7 @@ export class TuiHostedDropdownComponent {
|
|
|
161
159
|
}
|
|
162
160
|
}
|
|
163
161
|
TuiHostedDropdownComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiHostedDropdownComponent, deps: [{ token: TuiDropdownHoverDirective, optional: true }, { token: ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
164
|
-
TuiHostedDropdownComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: TuiHostedDropdownComponent, selector: "tui-hosted-dropdown", inputs: { content: "content", sided: "sided", canOpen: "canOpen", open: "open" }, outputs: {
|
|
162
|
+
TuiHostedDropdownComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: TuiHostedDropdownComponent, selector: "tui-hosted-dropdown", inputs: { content: "content", sided: "sided", canOpen: "canOpen", open: "open" }, outputs: { open$: "openChange", focusedChange: "focusedChange" }, host: { listeners: { "focusin": "onFocusIn($event.target)", "click": "onClick($event.target)", "keydown.esc": "onKeyDownEsc($event)", "keydown.arrowDown": "onArrow($event,true)", "keydown.arrowUp": "onArrow($event,false)" }, properties: { "class._hosted_dropdown_focused": "this.focused" } }, providers: [tuiAsFocusableItemAccessor(TuiHostedDropdownComponent)], queries: [{ propertyName: "dropdownHost", first: true, predicate: TuiHostedDropdownConnectorDirective, descendants: true, read: ElementRef }], viewQueries: [{ propertyName: "wrapper", first: true, predicate: ["wrapper"], descendants: true, read: ElementRef }, { propertyName: "dropdownDirective", first: true, predicate: TuiDropdownDirective, descendants: true }, { propertyName: "activeZone", first: true, predicate: TuiActiveZoneDirective, descendants: true }], ngImport: i0, template: "<div\n *tuiLet=\"!!(open$ | async) as isOpen\"\n #activeZone=\"tuiActiveZone\"\n class=\"t-wrapper\"\n [tuiDropdownSided]=\"sided\"\n [tuiDropdownHost]=\"host\"\n [tuiDropdown]=\"dropdown\"\n [tuiDropdownManual]=\"isOpen && canOpen\"\n [tuiObscuredEnabled]=\"isOpen\"\n (tuiObscured)=\"onHostObscured($event)\"\n (tuiActiveZoneChange)=\"onActiveZone($event)\"\n>\n <ng-content></ng-content>\n <ng-template\n #dropdown=\"polymorpheus\"\n [polymorpheus]=\"context\"\n >\n <div\n #wrapper\n (keydown.esc)=\"onKeyDownEsc($event)\"\n (keydown)=\"onKeydown($event)\"\n >\n <ng-container\n *polymorpheusOutlet=\"\n content as text;\n context: {\n $implicit: activeZone,\n close: close\n }\n \"\n >\n {{ text }}\n </ng-container>\n </div>\n <!--This DIV is here to start backwards TreeWalker for focusing last focusable item on ArrowUp-->\n <div></div>\n </ng-template>\n</div>\n", styles: [":host{display:inline-flex}.t-wrapper{border-radius:inherit;height:inherit;flex:1 1 auto;width:100%}\n"], directives: [{ type: i1.TuiLetDirective, selector: "[tuiLet]", inputs: ["tuiLet"] }, { type: i2.TuiDropdownPositionSidedDirective, selector: "[tuiDropdownSided]", inputs: ["tuiDropdownSided", "tuiDropdownSidedOffset"] }, { type: i2.TuiDropdownDirective, selector: "[tuiDropdown]:not(ng-container)", inputs: ["tuiDropdown"], exportAs: ["tuiDropdown"] }, { type: i2.TuiDropdownDriverDirective, selector: "[tuiDropdown]" }, { type: i2.TuiDropdownHostDirective, selector: "[tuiDropdown][tuiDropdownHost]", inputs: ["tuiDropdownHost"] }, { type: i2.TuiDropdownManualDirective, selector: "[tuiDropdown][tuiDropdownManual]", inputs: ["tuiDropdownManual"] }, { type: i1.TuiObscuredDirective, selector: "[tuiObscured]", inputs: ["tuiObscuredEnabled"], outputs: ["tuiObscured"] }, { type: i1.TuiActiveZoneDirective, selector: "[tuiActiveZone]:not(ng-container), [tuiActiveZoneChange]:not(ng-container), [tuiActiveZoneParent]:not(ng-container)", inputs: ["tuiActiveZoneParent"], outputs: ["tuiActiveZoneChange"], exportAs: ["tuiActiveZone"] }, { type: i3.PolymorpheusTemplate, selector: "ng-template[polymorpheus]", inputs: ["polymorpheus"], exportAs: ["polymorpheus"] }, { type: i3.PolymorpheusOutletDirective, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }], pipes: { "async": i4.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
165
163
|
__decorate([
|
|
166
164
|
tuiDefaultProp()
|
|
167
165
|
], TuiHostedDropdownComponent.prototype, "content", void 0);
|
|
@@ -183,7 +181,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
|
|
|
183
181
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
184
182
|
providers: [tuiAsFocusableItemAccessor(TuiHostedDropdownComponent)],
|
|
185
183
|
}]
|
|
186
|
-
}], ctorParameters: function () { return [{ type:
|
|
184
|
+
}], ctorParameters: function () { return [{ type: i2.TuiDropdownHoverDirective, decorators: [{
|
|
187
185
|
type: Optional
|
|
188
186
|
}, {
|
|
189
187
|
type: Inject,
|
|
@@ -209,8 +207,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
|
|
|
209
207
|
type: Input
|
|
210
208
|
}], canOpen: [{
|
|
211
209
|
type: Input
|
|
212
|
-
}],
|
|
213
|
-
type: Output
|
|
210
|
+
}], open$: [{
|
|
211
|
+
type: Output,
|
|
212
|
+
args: ['openChange']
|
|
214
213
|
}], focusedChange: [{
|
|
215
214
|
type: Output
|
|
216
215
|
}], open: [{
|
|
@@ -234,4 +233,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
|
|
|
234
233
|
type: HostListener,
|
|
235
234
|
args: ['keydown.arrowUp', ['$event', 'false']]
|
|
236
235
|
}] } });
|
|
237
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9zdGVkLWRyb3Bkb3duLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvY29tcG9uZW50cy9ob3N0ZWQtZHJvcGRvd24vaG9zdGVkLWRyb3Bkb3duLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvY29tcG9uZW50cy9ob3N0ZWQtZHJvcGRvd24vaG9zdGVkLWRyb3Bkb3duLnRlbXBsYXRlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixVQUFVLEVBQ1YsWUFBWSxFQUNaLFdBQVcsRUFDWCxZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFDTCxRQUFRLEVBQ1IsTUFBTSxFQUNOLFNBQVMsR0FDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0gsc0JBQXNCLEVBQ3RCLDBCQUEwQixFQUUxQixjQUFjLEVBRWQsc0JBQXNCLEVBQ3RCLFlBQVksRUFDWixvQkFBb0IsRUFDcEIsZ0JBQWdCLEVBQ2hCLG9CQUFvQixFQUNwQiw0QkFBNEIsR0FFL0IsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNILG9CQUFvQixFQUNwQix5QkFBeUIsR0FDNUIsTUFBTSxvQ0FBb0MsQ0FBQztBQUM1QyxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sb0NBQW9DLENBQUM7QUFFbkUsT0FBTyxFQUFDLGVBQWUsRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFhLE1BQU0sTUFBTSxDQUFDO0FBQ3ZFLE9BQU8sRUFBQyxHQUFHLEVBQUUsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFOUMsT0FBTyxFQUFDLG1DQUFtQyxFQUFDLE1BQU0sdUNBQXVDLENBQUM7Ozs7Ozs7QUFjMUYsTUFBTSxPQUFPLDBCQUEwQjtJQXdDbkMsWUFHcUIsTUFBa0MsRUFDZCxVQUFzQjtRQUQxQyxX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MEJBMENRLFFBQVE7OzBCQUNSLE1BQU07MkJBQUMseUJBQXlCOzswQkFFaEMsTUFBTTsyQkFBQyxVQUFVOzRDQTFDTCxZQUFZO3NCQUQ1QixZQUFZO3VCQUFDLG1DQUFtQyxFQUFFLEVBQUMsSUFBSSxFQUFFLFVBQVUsRUFBQztnQkFJcEQsT0FBTztzQkFEdkIsU0FBUzt1QkFBQyxTQUFTLEVBQUUsRUFBQyxJQUFJLEVBQUUsVUFBVSxFQUFDO2dCQUl2QixpQkFBaUI7c0JBRGpDLFNBQVM7dUJBQUMsb0JBQW9CO2dCQU10QixVQUFVO3NCQURsQixTQUFTO3VCQUFDLHNCQUFzQjtnQkFLakMsT0FBTztzQkFGTixLQUFLO2dCQU1OLEtBQUs7c0JBRkosS0FBSztnQkFNTixPQUFPO3NCQUZOLEtBQUs7Z0JBS0csVUFBVTtzQkFEbEIsTUFBTTtnQkFJRSxhQUFhO3NCQURyQixNQUFNO2dCQW1CSCxJQUFJO3NCQUZQLEtBQUs7Z0JBb0NGLE9BQU87c0JBRFYsV0FBVzt1QkFBQyxnQ0FBZ0M7Z0JBVzdDLFNBQVM7c0JBRFIsWUFBWTt1QkFBQyxTQUFTLEVBQUUsQ0FBQyxlQUFlLENBQUM7Z0JBUTFDLE9BQU87c0JBRE4sWUFBWTt1QkFBQyxPQUFPLEVBQUUsQ0FBQyxlQUFlLENBQUM7Z0JBUXhDLFlBQVk7c0JBRFgsWUFBWTt1QkFBQyxhQUFhLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBWXZDLE9BQU87c0JBRk4sWUFBWTt1QkFBQyxtQkFBbUIsRUFBRSxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUM7O3NCQUNwRCxZQUFZO3VCQUFDLGlCQUFpQixFQUFFLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIENvbnRlbnRDaGlsZCxcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBIb3N0QmluZGluZyxcbiAgICBIb3N0TGlzdGVuZXIsXG4gICAgSW5qZWN0LFxuICAgIElucHV0LFxuICAgIE9wdGlvbmFsLFxuICAgIE91dHB1dCxcbiAgICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgICBUdWlBY3RpdmVab25lRGlyZWN0aXZlLFxuICAgIHR1aUFzRm9jdXNhYmxlSXRlbUFjY2Vzc29yLFxuICAgIFR1aUNvbnRleHRXaXRoSW1wbGljaXQsXG4gICAgdHVpRGVmYXVsdFByb3AsXG4gICAgVHVpRm9jdXNhYmxlRWxlbWVudEFjY2Vzc29yLFxuICAgIHR1aUdldENsb3Nlc3RGb2N1c2FibGUsXG4gICAgdHVpSXNFbGVtZW50LFxuICAgIHR1aUlzRWxlbWVudEVkaXRhYmxlLFxuICAgIHR1aUlzSFRNTEVsZW1lbnQsXG4gICAgdHVpSXNOYXRpdmVGb2N1c2VkSW4sXG4gICAgdHVpSXNOYXRpdmVLZXlib2FyZEZvY3VzYWJsZSxcbiAgICBUdWlOYXRpdmVGb2N1c2FibGVFbGVtZW50LFxufSBmcm9tICdAdGFpZ2EtdWkvY2RrJztcbmltcG9ydCB7XG4gICAgVHVpRHJvcGRvd25EaXJlY3RpdmUsXG4gICAgVHVpRHJvcGRvd25Ib3ZlckRpcmVjdGl2ZSxcbn0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvZGlyZWN0aXZlcy9kcm9wZG93bic7XG5pbXBvcnQge3R1aUlzRWRpdGluZ0tleX0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvdXRpbHMvbWlzY2VsbGFuZW91cyc7XG5pbXBvcnQge1BvbHltb3JwaGV1c0NvbnRlbnR9IGZyb20gJ0B0aW5rb2ZmL25nLXBvbHltb3JwaGV1cyc7XG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgRU1QVFksIE9ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHttYXAsIHN0YXJ0V2l0aH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQge1R1aUhvc3RlZERyb3Bkb3duQ29ubmVjdG9yRGlyZWN0aXZlfSBmcm9tICcuL2hvc3RlZC1kcm9wZG93bi1jb25uZWN0b3IuZGlyZWN0aXZlJztcblxuZXhwb3J0IGludGVyZmFjZSBUdWlIb3N0ZWREcm9wZG93bkNvbnRleHRcbiAgICBleHRlbmRzIFR1aUNvbnRleHRXaXRoSW1wbGljaXQ8VHVpQWN0aXZlWm9uZURpcmVjdGl2ZT4ge1xuICAgIGNsb3NlKCk6IHZvaWQ7XG59XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndHVpLWhvc3RlZC1kcm9wZG93bicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2hvc3RlZC1kcm9wZG93bi50ZW1wbGF0ZS5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9ob3N0ZWQtZHJvcGRvd24uc3R5bGUubGVzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogW3R1aUFzRm9jdXNhYmxlSXRlbUFjY2Vzc29yKFR1aUhvc3RlZERyb3Bkb3duQ29tcG9uZW50KV0sXG59KVxuZXhwb3J0IGNsYXNzIFR1aUhvc3RlZERyb3Bkb3duQ29tcG9uZW50IGltcGxlbWVudHMgVHVpRm9jdXNhYmxlRWxlbWVudEFjY2Vzc29yIHtcbiAgICBAQ29udGVudENoaWxkKFR1aUhvc3RlZERyb3Bkb3duQ29ubmVjdG9yRGlyZWN0aXZlLCB7cmVhZDogRWxlbWVudFJlZn0pXG4gICAgcHJpdmF0ZSByZWFkb25seSBkcm9wZG93bkhvc3Q/OiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcblxuICAgIEBWaWV3Q2hpbGQoJ3dyYXBwZXInLCB7cmVhZDogRWxlbWVudFJlZn0pXG4gICAgcHJpdmF0ZSByZWFkb25seSB3cmFwcGVyPzogRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD47XG5cbiAgICBAVmlld0NoaWxkKFR1aURyb3Bkb3duRGlyZWN0aXZlKVxuICAgIHByaXZhdGUgcmVhZG9ubHkgZHJvcGRvd25EaXJlY3RpdmU/OiBUdWlEcm9wZG93bkRpcmVjdGl2ZTtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgbWFudWFsJCA9IG5ldyBCZWhhdmlvclN1YmplY3QoZmFsc2UpO1xuXG4gICAgQFZpZXdDaGlsZChUdWlBY3RpdmVab25lRGlyZWN0aXZlKVxuICAgIHJlYWRvbmx5IGFjdGl2ZVpvbmUhOiBUdWlBY3RpdmVab25lRGlyZWN0aXZlO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIGNvbnRlbnQ6IFBvbHltb3JwaGV1c0NvbnRlbnQ8VHVpSG9zdGVkRHJvcGRvd25Db250ZXh0PiA9ICcnO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIHNpZGVkID0gZmFsc2U7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgY2FuT3BlbiA9IHRydWU7XG5cbiAgICBAT3V0cHV0KClcbiAgICByZWFkb25seSBvcGVuQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gICAgQE91dHB1dCgpXG4gICAgcmVhZG9ubHkgZm9jdXNlZENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICAgIHJlYWRvbmx5IGNvbnRleHQhOiBUdWlDb250ZXh0V2l0aEltcGxpY2l0PFR1aUFjdGl2ZVpvbmVEaXJlY3RpdmU+O1xuXG4gICAgcmVhZG9ubHkgb3BlbiQgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICAgICAgdGhpcy5tYW51YWwkLFxuICAgICAgICAodGhpcy5ob3ZlciQgfHwgRU1QVFkpLnBpcGUoc3RhcnRXaXRoKGZhbHNlKSksXG4gICAgXSkucGlwZShtYXAoKFttYW51YWwsIGhvdmVyXSkgPT4gbWFudWFsIHx8IGhvdmVyKSk7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQE9wdGlvbmFsKClcbiAgICAgICAgQEluamVjdChUdWlEcm9wZG93bkhvdmVyRGlyZWN0aXZlKVxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGhvdmVyJDogT2JzZXJ2YWJsZTxib29sZWFuPiB8IG51bGwsXG4gICAgICAgIEBJbmplY3QoRWxlbWVudFJlZikgcHJpdmF0ZSByZWFkb25seSBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgICkge31cblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBzZXQgb3BlbihvcGVuOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMubWFudWFsJC5uZXh0KG9wZW4pO1xuICAgIH1cblxuICAgIGdldCBvcGVuKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5tYW51YWwkLnZhbHVlO1xuICAgIH1cblxuICAgIGdldCBob3N0KCk6IEhUTUxFbGVtZW50IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZHJvcGRvd25Ib3N0Py5uYXRpdmVFbGVtZW50IHx8IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuICAgIH1cblxuICAgIGdldCBjb21wdXRlZEhvc3QoKTogSFRNTEVsZW1lbnQge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgdGhpcy5kcm9wZG93bkhvc3Q/Lm5hdGl2ZUVsZW1lbnQgfHxcbiAgICAgICAgICAgIHRoaXMubmF0aXZlRm9jdXNhYmxlRWxlbWVudCB8fFxuICAgICAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnRcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBnZXQgZHJvcGRvd24oKTogSFRNTEVsZW1lbnQgfCB1bmRlZmluZWQge1xuICAgICAgICByZXR1cm4gdGhpcy5kcm9wZG93bkRpcmVjdGl2ZT8uZHJvcGRvd25Cb3hSZWY/LmxvY2F0aW9uLm5hdGl2ZUVsZW1lbnQ7XG4gICAgfVxuXG4gICAgZ2V0IG5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQoKTogVHVpTmF0aXZlRm9jdXNhYmxlRWxlbWVudCB8IG51bGwge1xuICAgICAgICByZXR1cm4gdHVpSXNOYXRpdmVLZXlib2FyZEZvY3VzYWJsZSh0aGlzLmhvc3QpXG4gICAgICAgICAgICA/IHRoaXMuaG9zdFxuICAgICAgICAgICAgOiB0dWlHZXRDbG9zZXN0Rm9jdXNhYmxlKHtcbiAgICAgICAgICAgICAgICAgIGluaXRpYWw6IHRoaXMuaG9zdCxcbiAgICAgICAgICAgICAgICAgIHJvb3Q6IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLl9ob3N0ZWRfZHJvcGRvd25fZm9jdXNlZCcpXG4gICAgZ2V0IGZvY3VzZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICB0dWlJc05hdGl2ZUZvY3VzZWRJbih0aGlzLmhvc3QpIHx8XG4gICAgICAgICAgICAodGhpcy5vcGVuICYmXG4gICAgICAgICAgICAgICAgISF0aGlzLndyYXBwZXIgJiZcbiAgICAgICAgICAgICAgICB0dWlJc05hdGl2ZUZvY3VzZWRJbih0aGlzLndyYXBwZXIubmF0aXZlRWxlbWVudCkpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcignZm9jdXNpbicsIFsnJGV2ZW50LnRhcmdldCddKVxuICAgIG9uRm9jdXNJbih0YXJnZXQ6IEhUTUxFbGVtZW50KTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5jb21wdXRlZEhvc3QuY29udGFpbnModGFyZ2V0KSkge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVPcGVuKGZhbHNlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJywgWyckZXZlbnQudGFyZ2V0J10pXG4gICAgb25DbGljayh0YXJnZXQ6IEhUTUxFbGVtZW50KTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5ob3N0RWRpdGFibGUgJiYgdGhpcy5jb21wdXRlZEhvc3QuY29udGFpbnModGFyZ2V0KSkge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVPcGVuKCF0aGlzLm9wZW4pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bi5lc2MnLCBbJyRldmVudCddKVxuICAgIG9uS2V5RG93bkVzYyhldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmNhbk9wZW4gfHwgIXRoaXMub3Blbikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIHRoaXMuY2xvc2VEcm9wZG93bigpO1xuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24uYXJyb3dEb3duJywgWyckZXZlbnQnLCAndHJ1ZSddKVxuICAgIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24uYXJyb3dVcCcsIFsnJGV2ZW50JywgJ2ZhbHNlJ10pXG4gICAgb25BcnJvdyhldmVudDogS2V5Ym9hcmRFdmVudCwgZG93bjogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLmZvY3VzRHJvcGRvd24oZXZlbnQsIGRvd24pO1xuICAgIH1cblxuICAgIG9uS2V5ZG93bih7a2V5LCB0YXJnZXQsIGRlZmF1bHRQcmV2ZW50ZWR9OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICAgICFkZWZhdWx0UHJldmVudGVkICYmXG4gICAgICAgICAgICB0dWlJc0VkaXRpbmdLZXkoa2V5KSAmJlxuICAgICAgICAgICAgdGhpcy5ob3N0RWRpdGFibGUgJiZcbiAgICAgICAgICAgIHR1aUlzSFRNTEVsZW1lbnQodGFyZ2V0KSAmJlxuICAgICAgICAgICAgIXR1aUlzRWxlbWVudEVkaXRhYmxlKHRhcmdldClcbiAgICAgICAgKSB7XG4gICAgICAgICAgICB0aGlzLmZvY3VzSG9zdCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25BY3RpdmVab25lKGFjdGl2ZTogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLnVwZGF0ZUZvY3VzZWQoYWN0aXZlKTtcblxuICAgICAgICBpZiAoIWFjdGl2ZSkge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVPcGVuKGZhbHNlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uSG9zdE9ic2N1cmVkKG9ic2N1cmVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIGlmIChvYnNjdXJlZCkge1xuICAgICAgICAgICAgdGhpcy5jbG9zZURyb3Bkb3duKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB1cGRhdGVPcGVuKG9wZW46IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgaWYgKG9wZW4gJiYgIXRoaXMuY2FuT3Blbikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5vcGVuID0gb3BlbjtcbiAgICAgICAgdGhpcy5vcGVuQ2hhbmdlLmVtaXQob3Blbik7XG4gICAgfVxuXG4gICAgcmVhZG9ubHkgY2xvc2UgPSAoKTogdm9pZCA9PiB0aGlzLnVwZGF0ZU9wZW4oZmFsc2UpO1xuXG4gICAgcHJpdmF0ZSBnZXQgaG9zdEVkaXRhYmxlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdHVpSXNFbGVtZW50RWRpdGFibGUodGhpcy5jb21wdXRlZEhvc3QpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZm9jdXNEcm9wZG93bihldmVudDogS2V5Ym9hcmRFdmVudCwgZmlyc3Q6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgY29uc3QgaG9zdCA9IHRoaXMubmF0aXZlRm9jdXNhYmxlRWxlbWVudDtcblxuICAgICAgICBpZiAoXG4gICAgICAgICAgICAhaG9zdCB8fFxuICAgICAgICAgICAgIXR1aUlzSFRNTEVsZW1lbnQoaG9zdCkgfHxcbiAgICAgICAgICAgICF0dWlJc0VsZW1lbnQoZXZlbnQudGFyZ2V0KSB8fFxuICAgICAgICAgICAgIWhvc3QuY29udGFpbnMoZXZlbnQudGFyZ2V0KVxuICAgICAgICApIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChcbiAgICAgICAgICAgICF0aGlzLndyYXBwZXIgfHxcbiAgICAgICAgICAgICF0aGlzLm9wZW4gfHxcbiAgICAgICAgICAgICF0aGlzLmRyb3Bkb3duIHx8XG4gICAgICAgICAgICAhdHVpSXNIVE1MRWxlbWVudCh0aGlzLndyYXBwZXIubmF0aXZlRWxlbWVudC5uZXh0RWxlbWVudFNpYmxpbmcpXG4gICAgICAgICkge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVPcGVuKHRydWUpO1xuXG4gICAgICAgICAgICBpZiAoIXR1aUlzRWxlbWVudEVkaXRhYmxlKGhvc3QpKSB7XG4gICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgaW5pdGlhbCA9IGZpcnN0XG4gICAgICAgICAgICA/IHRoaXMud3JhcHBlci5uYXRpdmVFbGVtZW50XG4gICAgICAgICAgICA6IHRoaXMud3JhcHBlci5uYXRpdmVFbGVtZW50Lm5leHRFbGVtZW50U2libGluZztcbiAgICAgICAgY29uc3QgZm9jdXNhYmxlID0gdHVpR2V0Q2xvc2VzdEZvY3VzYWJsZSh7XG4gICAgICAgICAgICBpbml0aWFsLFxuICAgICAgICAgICAgcm9vdDogdGhpcy53cmFwcGVyLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICAgICBwcmV2aW91czogIWZpcnN0LFxuICAgICAgICB9KTtcblxuICAgICAgICBpZiAoIWZvY3VzYWJsZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgZm9jdXNhYmxlLmZvY3VzKCk7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjbG9zZURyb3Bkb3duKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5mb2N1c2VkKSB7XG4gICAgICAgICAgICB0aGlzLmZvY3VzSG9zdCgpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy51cGRhdGVPcGVuKGZhbHNlKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGZvY3VzSG9zdCgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgaG9zdCA9IHRoaXMubmF0aXZlRm9jdXNhYmxlRWxlbWVudDtcblxuICAgICAgICBpZiAoaG9zdCkge1xuICAgICAgICAgICAgaG9zdC5mb2N1cyh7cHJldmVudFNjcm9sbDogdHJ1ZX0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVGb2N1c2VkKGZvY3VzZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5mb2N1c2VkQ2hhbmdlLmVtaXQoZm9jdXNlZCk7XG4gICAgfVxufVxuIiwiPGRpdlxuICAgICp0dWlMZXQ9XCIhIShvcGVuJCB8IGFzeW5jKSBhcyBpc09wZW5cIlxuICAgICNhY3RpdmVab25lPVwidHVpQWN0aXZlWm9uZVwiXG4gICAgY2xhc3M9XCJ0LXdyYXBwZXJcIlxuICAgIFt0dWlEcm9wZG93blNpZGVkXT1cInNpZGVkXCJcbiAgICBbdHVpRHJvcGRvd25Ib3N0XT1cImhvc3RcIlxuICAgIFt0dWlEcm9wZG93bl09XCJkcm9wZG93blwiXG4gICAgW3R1aURyb3Bkb3duTWFudWFsXT1cImlzT3BlbiAmJiBjYW5PcGVuXCJcbiAgICBbdHVpT2JzY3VyZWRFbmFibGVkXT1cImlzT3BlblwiXG4gICAgKHR1aU9ic2N1cmVkKT1cIm9uSG9zdE9ic2N1cmVkKCRldmVudClcIlxuICAgICh0dWlBY3RpdmVab25lQ2hhbmdlKT1cIm9uQWN0aXZlWm9uZSgkZXZlbnQpXCJcbj5cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgPG5nLXRlbXBsYXRlXG4gICAgICAgICNkcm9wZG93bj1cInBvbHltb3JwaGV1c1wiXG4gICAgICAgIFtwb2x5bW9ycGhldXNdPVwiY29udGV4dFwiXG4gICAgPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgICAjd3JhcHBlclxuICAgICAgICAgICAgKGtleWRvd24uZXNjKT1cIm9uS2V5RG93bkVzYygkZXZlbnQpXCJcbiAgICAgICAgICAgIChrZXlkb3duKT1cIm9uS2V5ZG93bigkZXZlbnQpXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICpwb2x5bW9ycGhldXNPdXRsZXQ9XCJcbiAgICAgICAgICAgICAgICAgICAgY29udGVudCBhcyB0ZXh0O1xuICAgICAgICAgICAgICAgICAgICBjb250ZXh0OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAkaW1wbGljaXQ6IGFjdGl2ZVpvbmUsXG4gICAgICAgICAgICAgICAgICAgICAgICBjbG9zZTogY2xvc2VcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge3sgdGV4dCB9fVxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8IS0tVGhpcyBESVYgaXMgaGVyZSB0byBzdGFydCBiYWNrd2FyZHMgVHJlZVdhbGtlciBmb3IgZm9jdXNpbmcgbGFzdCBmb2N1c2FibGUgaXRlbSBvbiBBcnJvd1VwLS0+XG4gICAgICAgIDxkaXY+PC9kaXY+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbjwvZGl2PlxuIl19
|
|
236
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9zdGVkLWRyb3Bkb3duLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvY29tcG9uZW50cy9ob3N0ZWQtZHJvcGRvd24vaG9zdGVkLWRyb3Bkb3duLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvY29tcG9uZW50cy9ob3N0ZWQtZHJvcGRvd24vaG9zdGVkLWRyb3Bkb3duLnRlbXBsYXRlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixVQUFVLEVBQ1YsWUFBWSxFQUNaLFdBQVcsRUFDWCxZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFDTCxRQUFRLEVBQ1IsTUFBTSxFQUNOLFNBQVMsR0FDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0gsc0JBQXNCLEVBQ3RCLDBCQUEwQixFQUUxQixjQUFjLEVBRWQsc0JBQXNCLEVBQ3RCLFlBQVksRUFDWixvQkFBb0IsRUFDcEIsZ0JBQWdCLEVBQ2hCLG9CQUFvQixFQUNwQiw0QkFBNEIsR0FFL0IsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNILG9CQUFvQixFQUNwQix5QkFBeUIsR0FDNUIsTUFBTSxvQ0FBb0MsQ0FBQztBQUM1QyxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sb0NBQW9DLENBQUM7QUFFbkUsT0FBTyxFQUFDLGVBQWUsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ25ELE9BQU8sRUFBQyxvQkFBb0IsRUFBRSxJQUFJLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUUxRCxPQUFPLEVBQUMsbUNBQW1DLEVBQUMsTUFBTSx1Q0FBdUMsQ0FBQzs7Ozs7O0FBTzFGLHVEQUF1RDtBQVF2RCxNQUFNLE9BQU8sMEJBQTBCO0lBdUNuQyxZQUdxQixNQUF3QyxFQUNw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RUFBRSxVQUFVLEVBQUM7Z0JBSXBELE9BQU87c0JBRHZCLFNBQVM7dUJBQUMsU0FBUyxFQUFFLEVBQUMsSUFBSSxFQUFFLFVBQVUsRUFBQztnQkFJdkIsaUJBQWlCO3NCQURqQyxTQUFTO3VCQUFDLG9CQUFvQjtnQkFPdEIsVUFBVTtzQkFEbEIsU0FBUzt1QkFBQyxzQkFBc0I7Z0JBS2pDLE9BQU87c0JBRk4sS0FBSztnQkFNTixLQUFLO3NCQUZKLEtBQUs7Z0JBTU4sT0FBTztzQkFGTixLQUFLO2dCQUtHLEtBQUs7c0JBRGIsTUFBTTt1QkFBQyxZQUFZO2dCQU9YLGFBQWE7c0JBRHJCLE1BQU07Z0JBY0gsSUFBSTtzQkFGUCxLQUFLO2dCQW9DRixPQUFPO3NCQURWLFdBQVc7dUJBQUMsZ0NBQWdDO2dCQVc3QyxTQUFTO3NCQURSLFlBQVk7dUJBQUMsU0FBUyxFQUFFLENBQUMsZUFBZSxDQUFDO2dCQVExQyxPQUFPO3NCQUROLFlBQVk7dUJBQUMsT0FBTyxFQUFFLENBQUMsZUFBZSxDQUFDO2dCQVl4QyxZQUFZO3NCQURYLFlBQVk7dUJBQUMsYUFBYSxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQVl2QyxPQUFPO3NCQUZOLFlBQVk7dUJBQUMsbUJBQW1CLEVBQUUsQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDOztzQkFDcEQsWUFBWTt1QkFBQyxpQkFBaUIsRUFBRSxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBDb250ZW50Q2hpbGQsXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSG9zdExpc3RlbmVyLFxuICAgIEluamVjdCxcbiAgICBJbnB1dCxcbiAgICBPcHRpb25hbCxcbiAgICBPdXRwdXQsXG4gICAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gICAgVHVpQWN0aXZlWm9uZURpcmVjdGl2ZSxcbiAgICB0dWlBc0ZvY3VzYWJsZUl0ZW1BY2Nlc3NvcixcbiAgICBUdWlDb250ZXh0V2l0aEltcGxpY2l0LFxuICAgIHR1aURlZmF1bHRQcm9wLFxuICAgIFR1aUZvY3VzYWJsZUVsZW1lbnRBY2Nlc3NvcixcbiAgICB0dWlHZXRDbG9zZXN0Rm9jdXNhYmxlLFxuICAgIHR1aUlzRWxlbWVudCxcbiAgICB0dWlJc0VsZW1lbnRFZGl0YWJsZSxcbiAgICB0dWlJc0hUTUxFbGVtZW50LFxuICAgIHR1aUlzTmF0aXZlRm9jdXNlZEluLFxuICAgIHR1aUlzTmF0aXZlS2V5Ym9hcmRGb2N1c2FibGUsXG4gICAgVHVpTmF0aXZlRm9jdXNhYmxlRWxlbWVudCxcbn0gZnJvbSAnQHRhaWdhLXVpL2Nkayc7XG5pbXBvcnQge1xuICAgIFR1aURyb3Bkb3duRGlyZWN0aXZlLFxuICAgIFR1aURyb3Bkb3duSG92ZXJEaXJlY3RpdmUsXG59IGZyb20gJ0B0YWlnYS11aS9jb3JlL2RpcmVjdGl2ZXMvZHJvcGRvd24nO1xuaW1wb3J0IHt0dWlJc0VkaXRpbmdLZXl9IGZyb20gJ0B0YWlnYS11aS9jb3JlL3V0aWxzL21pc2NlbGxhbmVvdXMnO1xuaW1wb3J0IHtQb2x5bW9ycGhldXNDb250ZW50fSBmcm9tICdAdGlua29mZi9uZy1wb2x5bW9ycGhldXMnO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIEVNUFRZLCBtZXJnZX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge2Rpc3RpbmN0VW50aWxDaGFuZ2VkLCBza2lwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7VHVpSG9zdGVkRHJvcGRvd25Db25uZWN0b3JEaXJlY3RpdmV9IGZyb20gJy4vaG9zdGVkLWRyb3Bkb3duLWNvbm5lY3Rvci5kaXJlY3RpdmUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFR1aUhvc3RlZERyb3Bkb3duQ29udGV4dFxuICAgIGV4dGVuZHMgVHVpQ29udGV4dFdpdGhJbXBsaWNpdDxUdWlBY3RpdmVab25lRGlyZWN0aXZlPiB7XG4gICAgY2xvc2UoKTogdm9pZDtcbn1cblxuLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L21lbWJlci1vcmRlcmluZyAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd0dWktaG9zdGVkLWRyb3Bkb3duJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vaG9zdGVkLWRyb3Bkb3duLnRlbXBsYXRlLmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2hvc3RlZC1kcm9wZG93bi5zdHlsZS5sZXNzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJvdmlkZXJzOiBbdHVpQXNGb2N1c2FibGVJdGVtQWNjZXNzb3IoVHVpSG9zdGVkRHJvcGRvd25Db21wb25lbnQpXSxcbn0pXG5leHBvcnQgY2xhc3MgVHVpSG9zdGVkRHJvcGRvd25Db21wb25lbnQgaW1wbGVtZW50cyBUdWlGb2N1c2FibGVFbGVtZW50QWNjZXNzb3Ige1xuICAgIEBDb250ZW50Q2hpbGQoVHVpSG9zdGVkRHJvcGRvd25Db25uZWN0b3JEaXJlY3RpdmUsIHtyZWFkOiBFbGVtZW50UmVmfSlcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRyb3Bkb3duSG9zdD86IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gICAgQFZpZXdDaGlsZCgnd3JhcHBlcicsIHtyZWFkOiBFbGVtZW50UmVmfSlcbiAgICBwcml2YXRlIHJlYWRvbmx5IHdyYXBwZXI/OiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PjtcblxuICAgIEBWaWV3Q2hpbGQoVHVpRHJvcGRvd25EaXJlY3RpdmUpXG4gICAgcHJpdmF0ZSByZWFkb25seSBkcm9wZG93bkRpcmVjdGl2ZT86IFR1aURyb3Bkb3duRGlyZWN0aXZlO1xuXG4gICAgLyoqIFRPRE86IHJlbmFtZSBpbiA0LjAgKi9cbiAgICByZWFkb25seSBvcGVuQ2hhbmdlID0gbmV3IEJlaGF2aW9yU3ViamVjdChmYWxzZSk7XG5cbiAgICBAVmlld0NoaWxkKFR1aUFjdGl2ZVpvbmVEaXJlY3RpdmUpXG4gICAgcmVhZG9ubHkgYWN0aXZlWm9uZSE6IFR1aUFjdGl2ZVpvbmVEaXJlY3RpdmU7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgY29udGVudDogUG9seW1vcnBoZXVzQ29udGVudDxUdWlIb3N0ZWREcm9wZG93bkNvbnRleHQ+ID0gJyc7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgc2lkZWQgPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBjYW5PcGVuID0gdHJ1ZTtcblxuICAgIEBPdXRwdXQoJ29wZW5DaGFuZ2UnKVxuICAgIHJlYWRvbmx5IG9wZW4kID0gbWVyZ2UodGhpcy5vcGVuQ2hhbmdlLCB0aGlzLmhvdmVyJCB8fCBFTVBUWSkucGlwZShcbiAgICAgICAgc2tpcCgxKSxcbiAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICApO1xuXG4gICAgQE91dHB1dCgpXG4gICAgcmVhZG9ubHkgZm9jdXNlZENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICAgIHJlYWRvbmx5IGNvbnRleHQhOiBUdWlDb250ZXh0V2l0aEltcGxpY2l0PFR1aUFjdGl2ZVpvbmVEaXJlY3RpdmU+O1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBPcHRpb25hbCgpXG4gICAgICAgIEBJbmplY3QoVHVpRHJvcGRvd25Ib3ZlckRpcmVjdGl2ZSlcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBob3ZlciQ6IFR1aURyb3Bkb3duSG92ZXJEaXJlY3RpdmUgfCBudWxsLFxuICAgICAgICBASW5qZWN0KEVsZW1lbnRSZWYpIHByaXZhdGUgcmVhZG9ubHkgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICApIHt9XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgc2V0IG9wZW4ob3BlbjogYm9vbGVhbikge1xuICAgICAgICB0aGlzLm9wZW5DaGFuZ2UubmV4dChvcGVuKTtcbiAgICB9XG5cbiAgICBnZXQgb3BlbigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMub3BlbkNoYW5nZS52YWx1ZTtcbiAgICB9XG5cbiAgICBnZXQgaG9zdCgpOiBIVE1MRWxlbWVudCB7XG4gICAgICAgIHJldHVybiB0aGlzLmRyb3Bkb3duSG9zdD8ubmF0aXZlRWxlbWVudCB8fCB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgICB9XG5cbiAgICBnZXQgY29tcHV0ZWRIb3N0KCk6IEhUTUxFbGVtZW50IHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIHRoaXMuZHJvcGRvd25Ib3N0Py5uYXRpdmVFbGVtZW50IHx8XG4gICAgICAgICAgICB0aGlzLm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQgfHxcbiAgICAgICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50XG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgZ2V0IGRyb3Bkb3duKCk6IEhUTUxFbGVtZW50IHwgdW5kZWZpbmVkIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZHJvcGRvd25EaXJlY3RpdmU/LmRyb3Bkb3duQm94UmVmPy5sb2NhdGlvbi5uYXRpdmVFbGVtZW50O1xuICAgIH1cblxuICAgIGdldCBuYXRpdmVGb2N1c2FibGVFbGVtZW50KCk6IFR1aU5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQgfCBudWxsIHtcbiAgICAgICAgcmV0dXJuIHR1aUlzTmF0aXZlS2V5Ym9hcmRGb2N1c2FibGUodGhpcy5ob3N0KVxuICAgICAgICAgICAgPyB0aGlzLmhvc3RcbiAgICAgICAgICAgIDogdHVpR2V0Q2xvc2VzdEZvY3VzYWJsZSh7XG4gICAgICAgICAgICAgICAgICBpbml0aWFsOiB0aGlzLmhvc3QsXG4gICAgICAgICAgICAgICAgICByb290OiB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5faG9zdGVkX2Ryb3Bkb3duX2ZvY3VzZWQnKVxuICAgIGdldCBmb2N1c2VkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgdHVpSXNOYXRpdmVGb2N1c2VkSW4odGhpcy5ob3N0KSB8fFxuICAgICAgICAgICAgKHRoaXMub3BlbiAmJlxuICAgICAgICAgICAgICAgICEhdGhpcy53cmFwcGVyICYmXG4gICAgICAgICAgICAgICAgdHVpSXNOYXRpdmVGb2N1c2VkSW4odGhpcy53cmFwcGVyLm5hdGl2ZUVsZW1lbnQpKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ2ZvY3VzaW4nLCBbJyRldmVudC50YXJnZXQnXSlcbiAgICBvbkZvY3VzSW4odGFyZ2V0OiBIVE1MRWxlbWVudCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuY29tcHV0ZWRIb3N0LmNvbnRhaW5zKHRhcmdldCkpIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlT3BlbihmYWxzZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdjbGljaycsIFsnJGV2ZW50LnRhcmdldCddKVxuICAgIG9uQ2xpY2sodGFyZ2V0OiBIVE1MRWxlbWVudCk6IHZvaWQge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgICAhdGhpcy5ob3N0RWRpdGFibGUgJiZcbiAgICAgICAgICAgIHRoaXMuY29tcHV0ZWRIb3N0LmNvbnRhaW5zKHRhcmdldCkgJiZcbiAgICAgICAgICAgICF0aGlzLmhvdmVyJD8uaG92ZXJlZFxuICAgICAgICApIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlT3BlbighdGhpcy5vcGVuKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24uZXNjJywgWyckZXZlbnQnXSlcbiAgICBvbktleURvd25Fc2MoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5jYW5PcGVuIHx8ICF0aGlzLm9wZW4pIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICB0aGlzLmNsb3NlRHJvcGRvd24oKTtcbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdrZXlkb3duLmFycm93RG93bicsIFsnJGV2ZW50JywgJ3RydWUnXSlcbiAgICBASG9zdExpc3RlbmVyKCdrZXlkb3duLmFycm93VXAnLCBbJyRldmVudCcsICdmYWxzZSddKVxuICAgIG9uQXJyb3coZXZlbnQ6IEtleWJvYXJkRXZlbnQsIGRvd246IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5mb2N1c0Ryb3Bkb3duKGV2ZW50LCBkb3duKTtcbiAgICB9XG5cbiAgICBvbktleWRvd24oe2tleSwgdGFyZ2V0LCBkZWZhdWx0UHJldmVudGVkfTogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgICAhZGVmYXVsdFByZXZlbnRlZCAmJlxuICAgICAgICAgICAgdHVpSXNFZGl0aW5nS2V5KGtleSkgJiZcbiAgICAgICAgICAgIHRoaXMuaG9zdEVkaXRhYmxlICYmXG4gICAgICAgICAgICB0dWlJc0hUTUxFbGVtZW50KHRhcmdldCkgJiZcbiAgICAgICAgICAgICF0dWlJc0VsZW1lbnRFZGl0YWJsZSh0YXJnZXQpXG4gICAgICAgICkge1xuICAgICAgICAgICAgdGhpcy5mb2N1c0hvc3QoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uQWN0aXZlWm9uZShhY3RpdmU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy51cGRhdGVGb2N1c2VkKGFjdGl2ZSk7XG5cbiAgICAgICAgaWYgKCFhY3RpdmUpIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlT3BlbihmYWxzZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbkhvc3RPYnNjdXJlZChvYnNjdXJlZDogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICBpZiAob2JzY3VyZWQpIHtcbiAgICAgICAgICAgIHRoaXMuY2xvc2VEcm9wZG93bigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdXBkYXRlT3BlbihvcGVuOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIGlmICghb3BlbiB8fCB0aGlzLmNhbk9wZW4pIHtcbiAgICAgICAgICAgIHRoaXMub3BlbiA9IG9wZW47XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZWFkb25seSBjbG9zZSA9ICgpOiB2b2lkID0+IHRoaXMudXBkYXRlT3BlbihmYWxzZSk7XG5cbiAgICBwcml2YXRlIGdldCBob3N0RWRpdGFibGUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0dWlJc0VsZW1lbnRFZGl0YWJsZSh0aGlzLmNvbXB1dGVkSG9zdCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBmb2N1c0Ryb3Bkb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50LCBmaXJzdDogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICBjb25zdCBob3N0ID0gdGhpcy5uYXRpdmVGb2N1c2FibGVFbGVtZW50O1xuXG4gICAgICAgIGlmIChcbiAgICAgICAgICAgICFob3N0IHx8XG4gICAgICAgICAgICAhdHVpSXNIVE1MRWxlbWVudChob3N0KSB8fFxuICAgICAgICAgICAgIXR1aUlzRWxlbWVudChldmVudC50YXJnZXQpIHx8XG4gICAgICAgICAgICAhaG9zdC5jb250YWlucyhldmVudC50YXJnZXQpXG4gICAgICAgICkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgIXRoaXMud3JhcHBlciB8fFxuICAgICAgICAgICAgIXRoaXMub3BlbiB8fFxuICAgICAgICAgICAgIXRoaXMuZHJvcGRvd24gfHxcbiAgICAgICAgICAgICF0dWlJc0hUTUxFbGVtZW50KHRoaXMud3JhcHBlci5uYXRpdmVFbGVtZW50Lm5leHRFbGVtZW50U2libGluZylcbiAgICAgICAgKSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZU9wZW4odHJ1ZSk7XG5cbiAgICAgICAgICAgIGlmICghdHVpSXNFbGVtZW50RWRpdGFibGUoaG9zdCkpIHtcbiAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBpbml0aWFsID0gZmlyc3RcbiAgICAgICAgICAgID8gdGhpcy53cmFwcGVyLm5hdGl2ZUVsZW1lbnRcbiAgICAgICAgICAgIDogdGhpcy53cmFwcGVyLm5hdGl2ZUVsZW1lbnQubmV4dEVsZW1lbnRTaWJsaW5nO1xuICAgICAgICBjb25zdCBmb2N1c2FibGUgPSB0dWlHZXRDbG9zZXN0Rm9jdXNhYmxlKHtcbiAgICAgICAgICAgIGluaXRpYWwsXG4gICAgICAgICAgICByb290OiB0aGlzLndyYXBwZXIubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICAgIHByZXZpb3VzOiAhZmlyc3QsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmICghZm9jdXNhYmxlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBmb2N1c2FibGUuZm9jdXMoKTtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNsb3NlRHJvcGRvd24oKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmZvY3VzZWQpIHtcbiAgICAgICAgICAgIHRoaXMuZm9jdXNIb3N0KCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnVwZGF0ZU9wZW4oZmFsc2UpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZm9jdXNIb3N0KCk6IHZvaWQge1xuICAgICAgICBjb25zdCBob3N0ID0gdGhpcy5uYXRpdmVGb2N1c2FibGVFbGVtZW50O1xuXG4gICAgICAgIGlmIChob3N0KSB7XG4gICAgICAgICAgICBob3N0LmZvY3VzKHtwcmV2ZW50U2Nyb2xsOiB0cnVlfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZUZvY3VzZWQoZm9jdXNlZDogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLmZvY3VzZWRDaGFuZ2UuZW1pdChmb2N1c2VkKTtcbiAgICB9XG59XG4iLCI8ZGl2XG4gICAgKnR1aUxldD1cIiEhKG9wZW4kIHwgYXN5bmMpIGFzIGlzT3BlblwiXG4gICAgI2FjdGl2ZVpvbmU9XCJ0dWlBY3RpdmVab25lXCJcbiAgICBjbGFzcz1cInQtd3JhcHBlclwiXG4gICAgW3R1aURyb3Bkb3duU2lkZWRdPVwic2lkZWRcIlxuICAgIFt0dWlEcm9wZG93bkhvc3RdPVwiaG9zdFwiXG4gICAgW3R1aURyb3Bkb3duXT1cImRyb3Bkb3duXCJcbiAgICBbdHVpRHJvcGRvd25NYW51YWxdPVwiaXNPcGVuICYmIGNhbk9wZW5cIlxuICAgIFt0dWlPYnNjdXJlZEVuYWJsZWRdPVwiaXNPcGVuXCJcbiAgICAodHVpT2JzY3VyZWQpPVwib25Ib3N0T2JzY3VyZWQoJGV2ZW50KVwiXG4gICAgKHR1aUFjdGl2ZVpvbmVDaGFuZ2UpPVwib25BY3RpdmVab25lKCRldmVudClcIlxuPlxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgI2Ryb3Bkb3duPVwicG9seW1vcnBoZXVzXCJcbiAgICAgICAgW3BvbHltb3JwaGV1c109XCJjb250ZXh0XCJcbiAgICA+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICAgICN3cmFwcGVyXG4gICAgICAgICAgICAoa2V5ZG93bi5lc2MpPVwib25LZXlEb3duRXNjKCRldmVudClcIlxuICAgICAgICAgICAgKGtleWRvd24pPVwib25LZXlkb3duKCRldmVudClcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgKnBvbHltb3JwaGV1c091dGxldD1cIlxuICAgICAgICAgICAgICAgICAgICBjb250ZW50IGFzIHRleHQ7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRleHQ6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICRpbXBsaWNpdDogYWN0aXZlWm9uZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NlOiBjbG9zZVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7eyB0ZXh0IH19XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDwhLS1UaGlzIERJViBpcyBoZXJlIHRvIHN0YXJ0IGJhY2t3YXJkcyBUcmVlV2Fsa2VyIGZvciBmb2N1c2luZyBsYXN0IGZvY3VzYWJsZSBpdGVtIG9uIEFycm93VXAtLT5cbiAgICAgICAgPGRpdj48L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPlxuPC9kaXY+XG4iXX0=
|
|
@@ -3,7 +3,7 @@ import { Directive, Inject, Input } from '@angular/core';
|
|
|
3
3
|
import { tuiDefaultProp, TuiHoveredService } from '@taiga-ui/cdk';
|
|
4
4
|
import { tuiAsDriver, TuiDriver } from '@taiga-ui/core/abstract';
|
|
5
5
|
import { merge, of, Subject } from 'rxjs';
|
|
6
|
-
import { delay, switchMap } from 'rxjs/operators';
|
|
6
|
+
import { delay, share, switchMap, tap } from 'rxjs/operators';
|
|
7
7
|
import * as i0 from "@angular/core";
|
|
8
8
|
import * as i1 from "rxjs";
|
|
9
9
|
export class TuiDropdownHoverDirective extends TuiDriver {
|
|
@@ -11,9 +11,12 @@ export class TuiDropdownHoverDirective extends TuiDriver {
|
|
|
11
11
|
super(subscriber => this.stream$.subscribe(subscriber));
|
|
12
12
|
this.hovered$ = hovered$;
|
|
13
13
|
this.toggle$ = new Subject();
|
|
14
|
-
this.stream$ = merge(this.toggle$, this.hovered$).pipe(switchMap(visible => of(visible).pipe(delay(visible ? this.showDelay : this.hideDelay)))
|
|
14
|
+
this.stream$ = merge(this.toggle$, this.hovered$).pipe(switchMap(visible => of(visible).pipe(delay(visible ? this.showDelay : this.hideDelay))), tap(visible => {
|
|
15
|
+
this.hovered = visible;
|
|
16
|
+
}), share());
|
|
15
17
|
this.showDelay = 200;
|
|
16
18
|
this.hideDelay = 500;
|
|
19
|
+
this.hovered = false;
|
|
17
20
|
}
|
|
18
21
|
toggle(visible) {
|
|
19
22
|
this.toggle$.next(visible);
|
|
@@ -43,4 +46,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
|
|
|
43
46
|
type: Input,
|
|
44
47
|
args: ['tuiDropdownHideDelay']
|
|
45
48
|
}] } });
|
|
46
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24taG92ZXIuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9kaXJlY3RpdmVzL2Ryb3Bkb3duL2Ryb3Bkb3duLWhvdmVyLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZELE9BQU8sRUFBQyxjQUFjLEVBQUUsaUJBQWlCLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDaEUsT0FBTyxFQUFDLFdBQVcsRUFBRSxTQUFTLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUMvRCxPQUFPLEVBQUMsS0FBSyxFQUFjLEVBQUUsRUFBRSxPQUFPLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDcEQsT0FBTyxFQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDOzs7QUFNNUQsTUFBTSxPQUFPLHlCQUEwQixTQUFRLFNBQVM7SUFzQnBELFlBQ2dELFFBQTZCO1FBRXpFLEtBQUssQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7UUFGWixhQUFRLEdBQVIsUUFBUSxDQUFxQjtRQXRCNUQsWUFBTyxHQUFHLElBQUksT0FBTyxFQUFXLENBQUM7UUFDakMsWUFBTyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQzlELFNBQVMsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUNoQixFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUNyRSxFQUNELEdBQUcsQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUNWLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1FBQzNCLENBQUMsQ0FBQyxFQUNGLEtBQUssRUFBRSxDQUNWLENBQUM7UUFJRixjQUFTLEdBQUcsR0FBRyxDQUFDO1FBSWhCLGNBQVMsR0FBRyxHQUFHLENBQUM7UUFFaEIsWUFBTyxHQUFHLEtBQUssQ0FBQztJQU1oQixDQUFDO0lBRUQsTUFBTSxDQUFDLE9BQWdCO1FBQ25CLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQy9CLENBQUM7O3VIQTlCUSx5QkFBeUIsa0JBdUJ0QixpQkFBaUI7MkdBdkJwQix5QkFBeUIsK0tBRnZCLENBQUMsV0FBVyxDQUFDLHlCQUF5QixDQUFDLEVBQUUsaUJBQWlCLENBQUM7QUFnQnRFO0lBREMsY0FBYyxFQUFFOzREQUNEO0FBSWhCO0lBREMsY0FBYyxFQUFFOzREQUNEOzRGQWxCUCx5QkFBeUI7a0JBSnJDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLHNDQUFzQztvQkFDaEQsU0FBUyxFQUFFLENBQUMsV0FBVywyQkFBMkIsRUFBRSxpQkFBaUIsQ0FBQztpQkFDekU7OzBCQXdCUSxNQUFNOzJCQUFDLGlCQUFpQjs0Q0FUN0IsU0FBUztzQkFGUixLQUFLO3VCQUFDLHNCQUFzQjtnQkFNN0IsU0FBUztzQkFGUixLQUFLO3VCQUFDLHNCQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RGlyZWN0aXZlLCBJbmplY3QsIElucHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7dHVpRGVmYXVsdFByb3AsIFR1aUhvdmVyZWRTZXJ2aWNlfSBmcm9tICdAdGFpZ2EtdWkvY2RrJztcbmltcG9ydCB7dHVpQXNEcml2ZXIsIFR1aURyaXZlcn0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvYWJzdHJhY3QnO1xuaW1wb3J0IHttZXJnZSwgT2JzZXJ2YWJsZSwgb2YsIFN1YmplY3R9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtkZWxheSwgc2hhcmUsIHN3aXRjaE1hcCwgdGFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW3R1aURyb3Bkb3duSG92ZXJdOm5vdChuZy1jb250YWluZXIpJyxcbiAgICBwcm92aWRlcnM6IFt0dWlBc0RyaXZlcihUdWlEcm9wZG93bkhvdmVyRGlyZWN0aXZlKSwgVHVpSG92ZXJlZFNlcnZpY2VdLFxufSlcbmV4cG9ydCBjbGFzcyBUdWlEcm9wZG93bkhvdmVyRGlyZWN0aXZlIGV4dGVuZHMgVHVpRHJpdmVyIHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRvZ2dsZSQgPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgc3RyZWFtJCA9IG1lcmdlKHRoaXMudG9nZ2xlJCwgdGhpcy5ob3ZlcmVkJCkucGlwZShcbiAgICAgICAgc3dpdGNoTWFwKHZpc2libGUgPT5cbiAgICAgICAgICAgIG9mKHZpc2libGUpLnBpcGUoZGVsYXkodmlzaWJsZSA/IHRoaXMuc2hvd0RlbGF5IDogdGhpcy5oaWRlRGVsYXkpKSxcbiAgICAgICAgKSxcbiAgICAgICAgdGFwKHZpc2libGUgPT4ge1xuICAgICAgICAgICAgdGhpcy5ob3ZlcmVkID0gdmlzaWJsZTtcbiAgICAgICAgfSksXG4gICAgICAgIHNoYXJlKCksXG4gICAgKTtcblxuICAgIEBJbnB1dCgndHVpRHJvcGRvd25TaG93RGVsYXknKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgc2hvd0RlbGF5ID0gMjAwO1xuXG4gICAgQElucHV0KCd0dWlEcm9wZG93bkhpZGVEZWxheScpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBoaWRlRGVsYXkgPSA1MDA7XG5cbiAgICBob3ZlcmVkID0gZmFsc2U7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQEluamVjdChUdWlIb3ZlcmVkU2VydmljZSkgcHJpdmF0ZSByZWFkb25seSBob3ZlcmVkJDogT2JzZXJ2YWJsZTxib29sZWFuPixcbiAgICApIHtcbiAgICAgICAgc3VwZXIoc3Vic2NyaWJlciA9PiB0aGlzLnN0cmVhbSQuc3Vic2NyaWJlKHN1YnNjcmliZXIpKTtcbiAgICB9XG5cbiAgICB0b2dnbGUodmlzaWJsZTogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLnRvZ2dsZSQubmV4dCh2aXNpYmxlKTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -39,6 +39,9 @@ export class TuiDropdownComponent {
|
|
|
39
39
|
this.update(top, left);
|
|
40
40
|
});
|
|
41
41
|
}
|
|
42
|
+
ngOnDestroy() {
|
|
43
|
+
this.onHoveredChange(false);
|
|
44
|
+
}
|
|
42
45
|
onHoveredChange(hovered) {
|
|
43
46
|
if (this.hoverDirective) {
|
|
44
47
|
this.hoverDirective.toggle(hovered);
|
|
@@ -141,4 +144,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
|
|
|
141
144
|
type: HostBinding,
|
|
142
145
|
args: ['@tuiDropdownAnimation']
|
|
143
146
|
}] } });
|
|
144
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9kaXJlY3RpdmVzL2Ryb3Bkb3duL2Ryb3Bkb3duLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvZGlyZWN0aXZlcy9kcm9wZG93bi9kcm9wZG93bi50ZW1wbGF0ZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFVBQVUsRUFDVixXQUFXLEVBQ1gsTUFBTSxFQUNOLFFBQVEsRUFDUixJQUFJLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQzNDLE9BQU8sRUFDSCw4QkFBOEIsRUFDOUIsaUJBQWlCLEVBQ2pCLHNCQUFzQixFQUN0QixLQUFLLEdBQ1IsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQ3hELE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBRS9ELE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQzNELE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBRzVELE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUV6Qyw0Q0FBNEM7QUFDNUMsMkNBQTJDO0FBQzNDLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQzFELE9BQU8sRUFBQyx5QkFBeUIsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBQ3JFLE9BQU8sRUFBQyxvQkFBb0IsRUFBcUIsTUFBTSw4QkFBOEIsQ0FBQzs7Ozs7Ozs7OztBQUV0Rjs7R0FFRztBQUNILG9CQUFvQjtBQVNwQixNQUFNLE9BQU8sb0JBQW9CO0lBTzdCLFlBQ2dDLFNBQStCLEVBQ3hCLFFBQTBCLEVBQ3RCLFNBQStCLEVBQ2pDLFVBQW1DLEVBRXZELElBQW9DLEVBQ1gsUUFBeUIsRUFDbEMsU0FBaUIsRUFFakMsZ0JBQWtDLEVBQ0osT0FBMkIsRUFHekQsY0FBZ0Q7UUFYMUIsY0FBUyxHQUFULFNBQVMsQ0FBc0I7UUFDakMsZUFBVSxHQUFWLFVBQVUsQ0FBeUI7UUFFdkQsU0FBSSxHQUFKLElBQUksQ0FBZ0M7UUFDWCxhQUFRLEdBQVIsUUFBUSxDQUFpQjtRQUNsQyxjQUFTLEdBQVQsU0FBUyxDQUFRO1FBRWpDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDSixZQUFPLEdBQVAsT0FBTyxDQUFvQjtRQUd6RCxtQkFBYyxHQUFkLGNBQWMsQ0FBa0M7UUFuQjVELHNCQUFpQixtQkFDdEIsS0FBSyxpQ0FDRixJQUFJLENBQUMsZ0JBQWdCLEVBQzFCO1FBa0JFLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRTtZQUMxRCxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUMzQixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxlQUFlLENBQUMsT0FBZ0I7UUFDNUIsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQ3JCLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQ3ZDO0lBQ0wsQ0FBQztJQUVELFVBQVU7UUFDTixJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVELGFBQWE7UUFDVCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVPLE1BQU0sQ0FBQyxHQUFXLEVBQUUsSUFBWTtRQUNwQyxNQUFNLEVBQUMsS0FBSyxFQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUM7UUFDOUMsTUFBTSxFQUFDLEtBQUssRUFBQyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLHFCQUFxQixFQUFFLENBQUM7UUFDdEUsTUFBTSxFQUFDLFVBQVUsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFDLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQztRQUNyRCxNQUFNLEVBQUMsV0FBVyxFQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUNyQyxNQUFNLEVBQUMsVUFBVSxFQUFDLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztRQUMvQixNQUFNLEVBQUMsUUFBUSxFQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUNsQyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQzNDLE1BQU0sT0FBTyxHQUFHLFFBQVEsS0FBSyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDO1FBQzVELE1BQU0sT0FBTyxHQUFHLFFBQVEsS0FBSyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDO1FBRTNELEdBQUcsSUFBSSxPQUFPLENBQUM7UUFDZixJQUFJLElBQUksT0FBTyxDQUFDO1FBRWhCLE1BQU0sY0FBYyxHQUNoQixJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLElBQUksSUFBSSxHQUFHLEdBQUcsT0FBTyxHQUFHLENBQUMsR0FBRyxNQUFNLENBQUM7UUFDekUsTUFBTSxTQUFTLEdBQUcsY0FBYztZQUM1QixDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLEdBQUcsTUFBTTtZQUN2QixDQUFDLENBQUMsT0FBTyxHQUFHLFdBQVcsR0FBRyxHQUFHLEdBQUcsTUFBTSxDQUFDO1FBRTNDLEtBQUssQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQzFCLEtBQUssQ0FBQyxHQUFHLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLE9BQU8sR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQ25ELEtBQUssQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3pCLEtBQUssQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUM7UUFDeEQsS0FBSyxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7UUFDakIsS0FBSyxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7UUFFcEIsUUFBUSxVQUFVLEVBQUU7WUFDaEIsS0FBSyxLQUFLO2dCQUNOLEtBQUssQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDbkMsTUFBTTtZQUNWLEtBQUssT0FBTztnQkFDUixLQUFLLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDdkM7SUFDTCxDQUFDO0lBRU8sZ0JBQWdCLENBQUMsUUFBaUI7UUFDdEMsTUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMzQyxNQUFNLEVBQUMsYUFBYSxFQUFDLEdBQUcsSUFBSSxDQUFDO1FBQzdCLE1BQU0sSUFBSSxHQUFHLGFBQWEsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQ3ZELElBQUksU0FBUyxHQUFHLHNCQUFzQixDQUFDLEVBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFDLENBQUMsQ0FBQztRQUV4RSxPQUFPLFNBQVMsS0FBSyxJQUFJLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsRUFBRTtZQUNuRCxTQUFTLEdBQUcsc0JBQXNCLENBQUMsRUFBQyxPQUFPLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUMsQ0FBQyxDQUFDO1NBQzVFO1FBRUQsU0FBUyxhQUFULFNBQVMsdUJBQVQsU0FBUyxDQUFFLEtBQUssRUFBRSxDQUFDO0lBQ3ZCLENBQUM7O2tIQXpGUSxvQkFBb0Isa0JBUWpCLGtCQUFrQixhQUNWLGlCQUFpQix5QkFDekIsb0JBQW9CLGFBQ3BCLFVBQVUsYUFDViw4QkFBOEIsYUFFOUIsZUFBZSxhQUNmLE1BQU0sYUFDTixxQkFBcUIsYUFFckIsb0JBQW9CLGFBRXBCLHlCQUF5QjtzR0FwQjVCLG9CQUFvQixvSEFIbEIsQ0FBQyxpQkFBaUIsRUFBRSxrQkFBa0IsQ0FBQywwQkN6Q3RELGlwQkF5QkEsaXlDRGlCZ0IsQ0FBQyxvQkFBb0IsQ0FBQzs0RkFFekIsb0JBQW9CO2tCQVJoQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxjQUFjO29CQUN4QixXQUFXLEVBQUUsMEJBQTBCO29CQUN2QyxTQUFTLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQztvQkFDcEMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE9BQU87b0JBQ2hELFNBQVMsRUFBRSxDQUFDLGlCQUFpQixFQUFFLGtCQUFrQixDQUFDO29CQUNsRCxVQUFVLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQztpQkFDckM7OzBCQVNRLE1BQU07MkJBQUMsa0JBQWtCOzswQkFDekIsSUFBSTs7MEJBQUksTUFBTTsyQkFBQyxpQkFBaUI7OzBCQUNoQyxNQUFNOzJCQUFDLG9CQUFvQjs7MEJBQzNCLE1BQU07MkJBQUMsVUFBVTs7MEJBQ2pCLE1BQU07MkJBQUMsOEJBQThCOzswQkFFckMsTUFBTTsyQkFBQyxlQUFlOzhCQUNxQixNQUFNOzBCQUFqRCxNQUFNOzJCQUFDLE1BQU07OzBCQUNiLE1BQU07MkJBQUMscUJBQXFCOzswQkFFNUIsTUFBTTsyQkFBQyxvQkFBb0I7OzBCQUMzQixRQUFROzswQkFDUixNQUFNOzJCQUFDLHlCQUF5Qjs0Q0FsQjVCLGlCQUFpQjtzQkFEekIsV0FBVzt1QkFBQyx1QkFBdUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0FuaW1hdGlvbk9wdGlvbnN9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xuaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb21wb25lbnQsXG4gICAgRWxlbWVudFJlZixcbiAgICBIb3N0QmluZGluZyxcbiAgICBJbmplY3QsXG4gICAgT3B0aW9uYWwsXG4gICAgU2VsZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1dJTkRPV30gZnJvbSAnQG5nLXdlYi1hcGlzL2NvbW1vbic7XG5pbXBvcnQge1xuICAgIEFic3RyYWN0VHVpUG9ydGFsSG9zdENvbXBvbmVudCxcbiAgICBUdWlEZXN0cm95U2VydmljZSxcbiAgICB0dWlHZXRDbG9zZXN0Rm9jdXNhYmxlLFxuICAgIHR1aVB4LFxufSBmcm9tICdAdGFpZ2EtdWkvY2RrJztcbmltcG9ydCB7VHVpUmVjdEFjY2Vzc29yfSBmcm9tICdAdGFpZ2EtdWkvY29yZS9hYnN0cmFjdCc7XG5pbXBvcnQge3R1aURyb3Bkb3duQW5pbWF0aW9ufSBmcm9tICdAdGFpZ2EtdWkvY29yZS9hbmltYXRpb25zJztcbmltcG9ydCB7VHVpRHJvcGRvd25BbmltYXRpb259IGZyb20gJ0B0YWlnYS11aS9jb3JlL2VudW1zJztcbmltcG9ydCB7VHVpUG9zaXRpb25TZXJ2aWNlfSBmcm9tICdAdGFpZ2EtdWkvY29yZS9zZXJ2aWNlcyc7XG5pbXBvcnQge1RVSV9BTklNQVRJT05fT1BUSU9OU30gZnJvbSAnQHRhaWdhLXVpL2NvcmUvdG9rZW5zJztcbmltcG9ydCB7VHVpUG9pbnR9IGZyb20gJ0B0YWlnYS11aS9jb3JlL3R5cGVzJztcbmltcG9ydCB7T2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge3Rha2VVbnRpbH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG4vLyBUT0RPOiBmaW5kIHRoZSBiZXN0IHdheSBmb3IgcHJldmVudCBjeWNsZVxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGltcG9ydC9uby1jeWNsZVxuaW1wb3J0IHtUdWlEcm9wZG93bkRpcmVjdGl2ZX0gZnJvbSAnLi9kcm9wZG93bi5kaXJlY3RpdmUnO1xuaW1wb3J0IHtUdWlEcm9wZG93bkhvdmVyRGlyZWN0aXZlfSBmcm9tICcuL2Ryb3Bkb3duLWhvdmVyLmRpcmVjdGl2ZSc7XG5pbXBvcnQge1RVSV9EUk9QRE9XTl9PUFRJT05TLCBUdWlEcm9wZG93bk9wdGlvbnN9IGZyb20gJy4vZHJvcGRvd24tb3B0aW9ucy5kaXJlY3RpdmUnO1xuXG4vKipcbiAqICBUaGlzIGNvbXBvbmVudCBpcyB1c2VkIHRvIHNob3cgdGVtcGxhdGUgaW4gYSBwb3J0YWwgdXNpbmcgZGVmYXVsdCBzdHlsZSBvZiB3aGl0ZSByb3VuZGVkIGJveCB3aXRoIGEgc2hhZG93XG4gKi9cbi8vIEBiYWQgVE9ETzogT25QdXNoXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3R1aS1kcm9wZG93bicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2Ryb3Bkb3duLnRlbXBsYXRlLmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2Ryb3Bkb3duLnN0eWxlLmxlc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LkRlZmF1bHQsXG4gICAgcHJvdmlkZXJzOiBbVHVpRGVzdHJveVNlcnZpY2UsIFR1aVBvc2l0aW9uU2VydmljZV0sXG4gICAgYW5pbWF0aW9uczogW3R1aURyb3Bkb3duQW5pbWF0aW9uXSxcbn0pXG5leHBvcnQgY2xhc3MgVHVpRHJvcGRvd25Db21wb25lbnQge1xuICAgIEBIb3N0QmluZGluZygnQHR1aURyb3Bkb3duQW5pbWF0aW9uJylcbiAgICByZWFkb25seSBkcm9wZG93bkFuaW1hdGlvbiA9IHtcbiAgICAgICAgdmFsdWU6IFR1aURyb3Bkb3duQW5pbWF0aW9uLkZhZGVJblRvcCxcbiAgICAgICAgLi4udGhpcy5hbmltYXRpb25PcHRpb25zLFxuICAgIH07XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQEluamVjdChUdWlQb3NpdGlvblNlcnZpY2UpIHBvc2l0aW9uJDogT2JzZXJ2YWJsZTxUdWlQb2ludD4sXG4gICAgICAgIEBTZWxmKCkgQEluamVjdChUdWlEZXN0cm95U2VydmljZSkgZGVzdHJveSQ6IE9ic2VydmFibGU8dm9pZD4sXG4gICAgICAgIEBJbmplY3QoVHVpRHJvcGRvd25EaXJlY3RpdmUpIHJlYWRvbmx5IGRpcmVjdGl2ZTogVHVpRHJvcGRvd25EaXJlY3RpdmUsXG4gICAgICAgIEBJbmplY3QoRWxlbWVudFJlZikgcHJpdmF0ZSByZWFkb25seSBlbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PixcbiAgICAgICAgQEluamVjdChBYnN0cmFjdFR1aVBvcnRhbEhvc3RDb21wb25lbnQpXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgaG9zdDogQWJzdHJhY3RUdWlQb3J0YWxIb3N0Q29tcG9uZW50LFxuICAgICAgICBASW5qZWN0KFR1aVJlY3RBY2Nlc3NvcikgcHJpdmF0ZSByZWFkb25seSBhY2Nlc3NvcjogVHVpUmVjdEFjY2Vzc29yLFxuICAgICAgICBASW5qZWN0KFdJTkRPVykgcHJpdmF0ZSByZWFkb25seSB3aW5kb3dSZWY6IFdpbmRvdyxcbiAgICAgICAgQEluamVjdChUVUlfQU5JTUFUSU9OX09QVElPTlMpXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgYW5pbWF0aW9uT3B0aW9uczogQW5pbWF0aW9uT3B0aW9ucyxcbiAgICAgICAgQEluamVjdChUVUlfRFJPUERPV05fT1BUSU9OUykgcHJpdmF0ZSByZWFkb25seSBvcHRpb25zOiBUdWlEcm9wZG93bk9wdGlvbnMsXG4gICAgICAgIEBPcHRpb25hbCgpXG4gICAgICAgIEBJbmplY3QoVHVpRHJvcGRvd25Ib3ZlckRpcmVjdGl2ZSlcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBob3ZlckRpcmVjdGl2ZTogVHVpRHJvcGRvd25Ib3ZlckRpcmVjdGl2ZSB8IG51bGwsXG4gICAgKSB7XG4gICAgICAgIHBvc2l0aW9uJC5waXBlKHRha2VVbnRpbChkZXN0cm95JCkpLnN1YnNjcmliZSgoW3RvcCwgbGVmdF0pID0+IHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlKHRvcCwgbGVmdCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG9uSG92ZXJlZENoYW5nZShob3ZlcmVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmhvdmVyRGlyZWN0aXZlKSB7XG4gICAgICAgICAgICB0aGlzLmhvdmVyRGlyZWN0aXZlLnRvZ2dsZShob3ZlcmVkKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uVG9wRm9jdXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMubW92ZUZvY3VzT3V0c2lkZSh0cnVlKTtcbiAgICB9XG5cbiAgICBvbkJvdHRvbUZvY3VzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLm1vdmVGb2N1c091dHNpZGUoZmFsc2UpO1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlKHRvcDogbnVtYmVyLCBsZWZ0OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qge3N0eWxlfSA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuICAgICAgICBjb25zdCB7cmlnaHR9ID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgIGNvbnN0IHtsaW1pdFdpZHRoLCBtYXhIZWlnaHQsIG9mZnNldH0gPSB0aGlzLm9wdGlvbnM7XG4gICAgICAgIGNvbnN0IHtpbm5lckhlaWdodH0gPSB0aGlzLndpbmRvd1JlZjtcbiAgICAgICAgY29uc3Qge2NsaWVudFJlY3R9ID0gdGhpcy5ob3N0O1xuICAgICAgICBjb25zdCB7cG9zaXRpb259ID0gdGhpcy5kaXJlY3RpdmU7XG4gICAgICAgIGNvbnN0IHJlY3QgPSB0aGlzLmFjY2Vzc29yLmdldENsaWVudFJlY3QoKTtcbiAgICAgICAgY29uc3Qgb2Zmc2V0WCA9IHBvc2l0aW9uID09PSAnZml4ZWQnID8gMCA6IC1jbGllbnRSZWN0LmxlZnQ7XG4gICAgICAgIGNvbnN0IG9mZnNldFkgPSBwb3NpdGlvbiA9PT0gJ2ZpeGVkJyA/IDAgOiAtY2xpZW50UmVjdC50b3A7XG5cbiAgICAgICAgdG9wICs9IG9mZnNldFk7XG4gICAgICAgIGxlZnQgKz0gb2Zmc2V0WDtcblxuICAgICAgICBjb25zdCBpc0ludGVyc2VjdGluZyA9XG4gICAgICAgICAgICBsZWZ0IDwgcmVjdC5yaWdodCAmJiByaWdodCA+IHJlY3QubGVmdCAmJiB0b3AgPCBvZmZzZXRZICsgMiAqIG9mZnNldDtcbiAgICAgICAgY29uc3QgYXZhaWxhYmxlID0gaXNJbnRlcnNlY3RpbmdcbiAgICAgICAgICAgID8gcmVjdC50b3AgLSAyICogb2Zmc2V0XG4gICAgICAgICAgICA6IG9mZnNldFkgKyBpbm5lckhlaWdodCAtIHRvcCAtIG9mZnNldDtcblxuICAgICAgICBzdHlsZS5wb3NpdGlvbiA9IHBvc2l0aW9uO1xuICAgICAgICBzdHlsZS50b3AgPSB0dWlQeChNYXRoLm1heCh0b3AsIG9mZnNldFkgKyBvZmZzZXQpKTtcbiAgICAgICAgc3R5bGUubGVmdCA9IHR1aVB4KGxlZnQpO1xuICAgICAgICBzdHlsZS5tYXhIZWlnaHQgPSB0dWlQeChNYXRoLm1pbihtYXhIZWlnaHQsIGF2YWlsYWJsZSkpO1xuICAgICAgICBzdHlsZS53aWR0aCA9ICcnO1xuICAgICAgICBzdHlsZS5taW5XaWR0aCA9ICcnO1xuXG4gICAgICAgIHN3aXRjaCAobGltaXRXaWR0aCkge1xuICAgICAgICAgICAgY2FzZSAnbWluJzpcbiAgICAgICAgICAgICAgICBzdHlsZS5taW5XaWR0aCA9IHR1aVB4KHJlY3Qud2lkdGgpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnZml4ZWQnOlxuICAgICAgICAgICAgICAgIHN0eWxlLndpZHRoID0gdHVpUHgocmVjdC53aWR0aCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIG1vdmVGb2N1c091dHNpZGUocHJldmlvdXM6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgY29uc3QgaG9zdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgICAgICBjb25zdCB7b3duZXJEb2N1bWVudH0gPSBob3N0O1xuICAgICAgICBjb25zdCByb290ID0gb3duZXJEb2N1bWVudCA/IG93bmVyRG9jdW1lbnQuYm9keSA6IGhvc3Q7XG4gICAgICAgIGxldCBmb2N1c2FibGUgPSB0dWlHZXRDbG9zZXN0Rm9jdXNhYmxlKHtpbml0aWFsOiBob3N0LCByb290LCBwcmV2aW91c30pO1xuXG4gICAgICAgIHdoaWxlIChmb2N1c2FibGUgIT09IG51bGwgJiYgaG9zdC5jb250YWlucyhmb2N1c2FibGUpKSB7XG4gICAgICAgICAgICBmb2N1c2FibGUgPSB0dWlHZXRDbG9zZXN0Rm9jdXNhYmxlKHtpbml0aWFsOiBmb2N1c2FibGUsIHJvb3QsIHByZXZpb3VzfSk7XG4gICAgICAgIH1cblxuICAgICAgICBmb2N1c2FibGU/LmZvY3VzKCk7XG4gICAgfVxufVxuIiwiPGRpdlxuICAgICNhY3RpdmVab25lPVwidHVpQWN0aXZlWm9uZVwiXG4gICAgdHVpQWN0aXZlWm9uZVxuICAgIHR1aU92ZXJzY3JvbGw9XCJhbGxcIlxuICAgIGNsYXNzPVwidC13cmFwcGVyXCJcbiAgICBbdHVpTW9kZV09XCJudWxsXCJcbiAgICAodHVpSG92ZXJlZENoYW5nZSk9XCJvbkhvdmVyZWRDaGFuZ2UoJGV2ZW50KVwiXG4+XG4gICAgPHR1aS1zY3JvbGxiYXIgY2xhc3M9XCJ0LXNjcm9sbFwiPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgICB0YWJpbmRleD1cIjBcIlxuICAgICAgICAgICAgKGZvY3VzKT1cIm9uVG9wRm9jdXMoKVwiXG4gICAgICAgID48L2Rpdj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgICAgKnBvbHltb3JwaGV1c091dGxldD1cImRpcmVjdGl2ZS5jb250ZW50IGFzIHRleHQ7IGNvbnRleHQ6IHskaW1wbGljaXQ6IGFjdGl2ZVpvbmV9XCJcbiAgICAgICAgICAgIGNsYXNzPVwidC1wcmltaXRpdmVcIlxuICAgICAgICA+XG4gICAgICAgICAgICB7eyB0ZXh0IH19XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgICB0YWJpbmRleD1cIjBcIlxuICAgICAgICAgICAgKGZvY3VzKT1cIm9uQm90dG9tRm9jdXMoKVwiXG4gICAgICAgID48L2Rpdj5cbiAgICA8L3R1aS1zY3JvbGxiYXI+XG48L2Rpdj5cbiJdfQ==
|
|
147
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9kaXJlY3RpdmVzL2Ryb3Bkb3duL2Ryb3Bkb3duLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvZGlyZWN0aXZlcy9kcm9wZG93bi9kcm9wZG93bi50ZW1wbGF0ZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFVBQVUsRUFDVixXQUFXLEVBQ1gsTUFBTSxFQUVOLFFBQVEsRUFDUixJQUFJLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQzNDLE9BQU8sRUFDSCw4QkFBOEIsRUFDOUIsaUJBQWlCLEVBQ2pCLHNCQUFzQixFQUN0QixLQUFLLEdBQ1IsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQ3hELE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBRS9ELE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQzNELE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBRzVELE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUV6Qyw0Q0FBNEM7QUFDNUMsMkNBQTJDO0FBQzNDLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQzFELE9BQU8sRUFBQyx5QkFBeUIsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBQ3JFLE9BQU8sRUFBQyxvQkFBb0IsRUFBcUIsTUFBTSw4QkFBOEIsQ0FBQzs7Ozs7Ozs7OztBQUV0Rjs7R0FFRztBQUNILG9CQUFvQjtBQVNwQixNQUFNLE9BQU8sb0JBQW9CO0lBTzdCLFlBQ2dDLFNBQStCLEVBQ3hCLFFBQTBCLEVBQ3RCLFNBQStCLEVBQ2pDLFVBQW1DLEVBRXZELElBQW9DLEVBQ1gsUUFBeUIsRUFDbEMsU0FBaUIsRUFFakMsZ0JBQWtDLEVBQ0osT0FBMkIsRUFHekQsY0FBZ0Q7UUFYMUIsY0FBUyxHQUFULFNBQVMsQ0FBc0I7UUFDakMsZUFBVSxHQUFWLFVBQVUsQ0FBeUI7UUFFdkQsU0FBSSxHQUFKLElBQUksQ0FBZ0M7UUFDWCxhQUFRLEdBQVIsUUFBUSxDQUFpQjtRQUNsQyxjQUFTLEdBQVQsU0FBUyxDQUFRO1FBRWpDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDSixZQUFPLEdBQVAsT0FBTyxDQUFvQjtRQUd6RCxtQkFBYyxHQUFkLGNBQWMsQ0FBa0M7UUFuQjVELHNCQUFpQixtQkFDdEIsS0FBSyxpQ0FDRixJQUFJLENBQUMsZ0JBQWdCLEVBQzFCO1FBa0JFLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRTtZQUMxRCxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUMzQixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxXQUFXO1FBQ1AsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQsZUFBZSxDQUFDLE9BQWdCO1FBQzVCLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRTtZQUNyQixJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUN2QztJQUNMLENBQUM7SUFFRCxVQUFVO1FBQ04sSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxhQUFhO1FBQ1QsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFTyxNQUFNLENBQUMsR0FBVyxFQUFFLElBQVk7UUFDcEMsTUFBTSxFQUFDLEtBQUssRUFBQyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDO1FBQzlDLE1BQU0sRUFBQyxLQUFLLEVBQUMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBQ3RFLE1BQU0sRUFBQyxVQUFVLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBQyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7UUFDckQsTUFBTSxFQUFDLFdBQVcsRUFBQyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7UUFDckMsTUFBTSxFQUFDLFVBQVUsRUFBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDL0IsTUFBTSxFQUFDLFFBQVEsRUFBQyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7UUFDbEMsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUMzQyxNQUFNLE9BQU8sR0FBRyxRQUFRLEtBQUssT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQztRQUM1RCxNQUFNLE9BQU8sR0FBRyxRQUFRLEtBQUssT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQztRQUUzRCxHQUFHLElBQUksT0FBTyxDQUFDO1FBQ2YsSUFBSSxJQUFJLE9BQU8sQ0FBQztRQUVoQixNQUFNLGNBQWMsR0FDaEIsSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLElBQUksS0FBSyxHQUFHLElBQUksQ0FBQyxJQUFJLElBQUksR0FBRyxHQUFHLE9BQU8sR0FBRyxDQUFDLEdBQUcsTUFBTSxDQUFDO1FBQ3pFLE1BQU0sU0FBUyxHQUFHLGNBQWM7WUFDNUIsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQyxHQUFHLE1BQU07WUFDdkIsQ0FBQyxDQUFDLE9BQU8sR0FBRyxXQUFXLEdBQUcsR0FBRyxHQUFHLE1BQU0sQ0FBQztRQUUzQyxLQUFLLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUMxQixLQUFLLENBQUMsR0FBRyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxPQUFPLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUNuRCxLQUFLLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN6QixLQUFLLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDO1FBQ3hELEtBQUssQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDO1FBQ2pCLEtBQUssQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO1FBRXBCLFFBQVEsVUFBVSxFQUFFO1lBQ2hCLEtBQUssS0FBSztnQkFDTixLQUFLLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ25DLE1BQU07WUFDVixLQUFLLE9BQU87Z0JBQ1IsS0FBSyxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ3ZDO0lBQ0wsQ0FBQztJQUVPLGdCQUFnQixDQUFDLFFBQWlCO1FBQ3RDLE1BQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDM0MsTUFBTSxFQUFDLGFBQWEsRUFBQyxHQUFHLElBQUksQ0FBQztRQUM3QixNQUFNLElBQUksR0FBRyxhQUFhLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUN2RCxJQUFJLFNBQVMsR0FBRyxzQkFBc0IsQ0FBQyxFQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBQyxDQUFDLENBQUM7UUFFeEUsT0FBTyxTQUFTLEtBQUssSUFBSSxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLEVBQUU7WUFDbkQsU0FBUyxHQUFHLHNCQUFzQixDQUFDLEVBQUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFDLENBQUMsQ0FBQztTQUM1RTtRQUVELFNBQVMsYUFBVCxTQUFTLHVCQUFULFNBQVMsQ0FBRSxLQUFLLEVBQUUsQ0FBQztJQUN2QixDQUFDOztrSEE3RlEsb0JBQW9CLGtCQVFqQixrQkFBa0IsYUFDVixpQkFBaUIseUJBQ3pCLG9CQUFvQixhQUNwQixVQUFVLGFBQ1YsOEJBQThCLGFBRTlCLGVBQWUsYUFDZixNQUFNLGFBQ04scUJBQXFCLGFBRXJCLG9CQUFvQixhQUVwQix5QkFBeUI7c0dBcEI1QixvQkFBb0Isb0hBSGxCLENBQUMsaUJBQWlCLEVBQUUsa0JBQWtCLENBQUMsMEJDMUN0RCxpcEJBeUJBLGl5Q0RrQmdCLENBQUMsb0JBQW9CLENBQUM7NEZBRXpCLG9CQUFvQjtrQkFSaEMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsY0FBYztvQkFDeEIsV0FBVyxFQUFFLDBCQUEwQjtvQkFDdkMsU0FBUyxFQUFFLENBQUMsdUJBQXVCLENBQUM7b0JBQ3BDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxPQUFPO29CQUNoRCxTQUFTLEVBQUUsQ0FBQyxpQkFBaUIsRUFBRSxrQkFBa0IsQ0FBQztvQkFDbEQsVUFBVSxFQUFFLENBQUMsb0JBQW9CLENBQUM7aUJBQ3JDOzswQkFTUSxNQUFNOzJCQUFDLGtCQUFrQjs7MEJBQ3pCLElBQUk7OzBCQUFJLE1BQU07MkJBQUMsaUJBQWlCOzswQkFDaEMsTUFBTTsyQkFBQyxvQkFBb0I7OzBCQUMzQixNQUFNOzJCQUFDLFVBQVU7OzBCQUNqQixNQUFNOzJCQUFDLDhCQUE4Qjs7MEJBRXJDLE1BQU07MkJBQUMsZUFBZTs4QkFDcUIsTUFBTTswQkFBakQsTUFBTTsyQkFBQyxNQUFNOzswQkFDYixNQUFNOzJCQUFDLHFCQUFxQjs7MEJBRTVCLE1BQU07MkJBQUMsb0JBQW9COzswQkFDM0IsUUFBUTs7MEJBQ1IsTUFBTTsyQkFBQyx5QkFBeUI7NENBbEI1QixpQkFBaUI7c0JBRHpCLFdBQVc7dUJBQUMsdUJBQXVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBbmltYXRpb25PcHRpb25zfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcbmltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSW5qZWN0LFxuICAgIE9uRGVzdHJveSxcbiAgICBPcHRpb25hbCxcbiAgICBTZWxmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7V0lORE9XfSBmcm9tICdAbmctd2ViLWFwaXMvY29tbW9uJztcbmltcG9ydCB7XG4gICAgQWJzdHJhY3RUdWlQb3J0YWxIb3N0Q29tcG9uZW50LFxuICAgIFR1aURlc3Ryb3lTZXJ2aWNlLFxuICAgIHR1aUdldENsb3Nlc3RGb2N1c2FibGUsXG4gICAgdHVpUHgsXG59IGZyb20gJ0B0YWlnYS11aS9jZGsnO1xuaW1wb3J0IHtUdWlSZWN0QWNjZXNzb3J9IGZyb20gJ0B0YWlnYS11aS9jb3JlL2Fic3RyYWN0JztcbmltcG9ydCB7dHVpRHJvcGRvd25BbmltYXRpb259IGZyb20gJ0B0YWlnYS11aS9jb3JlL2FuaW1hdGlvbnMnO1xuaW1wb3J0IHtUdWlEcm9wZG93bkFuaW1hdGlvbn0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvZW51bXMnO1xuaW1wb3J0IHtUdWlQb3NpdGlvblNlcnZpY2V9IGZyb20gJ0B0YWlnYS11aS9jb3JlL3NlcnZpY2VzJztcbmltcG9ydCB7VFVJX0FOSU1BVElPTl9PUFRJT05TfSBmcm9tICdAdGFpZ2EtdWkvY29yZS90b2tlbnMnO1xuaW1wb3J0IHtUdWlQb2ludH0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvdHlwZXMnO1xuaW1wb3J0IHtPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcbmltcG9ydCB7dGFrZVVudGlsfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbi8vIFRPRE86IGZpbmQgdGhlIGJlc3Qgd2F5IGZvciBwcmV2ZW50IGN5Y2xlXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0L25vLWN5Y2xlXG5pbXBvcnQge1R1aURyb3Bkb3duRGlyZWN0aXZlfSBmcm9tICcuL2Ryb3Bkb3duLmRpcmVjdGl2ZSc7XG5pbXBvcnQge1R1aURyb3Bkb3duSG92ZXJEaXJlY3RpdmV9IGZyb20gJy4vZHJvcGRvd24taG92ZXIuZGlyZWN0aXZlJztcbmltcG9ydCB7VFVJX0RST1BET1dOX09QVElPTlMsIFR1aURyb3Bkb3duT3B0aW9uc30gZnJvbSAnLi9kcm9wZG93bi1vcHRpb25zLmRpcmVjdGl2ZSc7XG5cbi8qKlxuICogIFRoaXMgY29tcG9uZW50IGlzIHVzZWQgdG8gc2hvdyB0ZW1wbGF0ZSBpbiBhIHBvcnRhbCB1c2luZyBkZWZhdWx0IHN0eWxlIG9mIHdoaXRlIHJvdW5kZWQgYm94IHdpdGggYSBzaGFkb3dcbiAqL1xuLy8gQGJhZCBUT0RPOiBPblB1c2hcbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndHVpLWRyb3Bkb3duJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZHJvcGRvd24udGVtcGxhdGUuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vZHJvcGRvd24uc3R5bGUubGVzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuRGVmYXVsdCxcbiAgICBwcm92aWRlcnM6IFtUdWlEZXN0cm95U2VydmljZSwgVHVpUG9zaXRpb25TZXJ2aWNlXSxcbiAgICBhbmltYXRpb25zOiBbdHVpRHJvcGRvd25BbmltYXRpb25dLFxufSlcbmV4cG9ydCBjbGFzcyBUdWlEcm9wZG93bkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gICAgQEhvc3RCaW5kaW5nKCdAdHVpRHJvcGRvd25BbmltYXRpb24nKVxuICAgIHJlYWRvbmx5IGRyb3Bkb3duQW5pbWF0aW9uID0ge1xuICAgICAgICB2YWx1ZTogVHVpRHJvcGRvd25BbmltYXRpb24uRmFkZUluVG9wLFxuICAgICAgICAuLi50aGlzLmFuaW1hdGlvbk9wdGlvbnMsXG4gICAgfTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBASW5qZWN0KFR1aVBvc2l0aW9uU2VydmljZSkgcG9zaXRpb24kOiBPYnNlcnZhYmxlPFR1aVBvaW50PixcbiAgICAgICAgQFNlbGYoKSBASW5qZWN0KFR1aURlc3Ryb3lTZXJ2aWNlKSBkZXN0cm95JDogT2JzZXJ2YWJsZTx2b2lkPixcbiAgICAgICAgQEluamVjdChUdWlEcm9wZG93bkRpcmVjdGl2ZSkgcmVhZG9ubHkgZGlyZWN0aXZlOiBUdWlEcm9wZG93bkRpcmVjdGl2ZSxcbiAgICAgICAgQEluamVjdChFbGVtZW50UmVmKSBwcml2YXRlIHJlYWRvbmx5IGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxuICAgICAgICBASW5qZWN0KEFic3RyYWN0VHVpUG9ydGFsSG9zdENvbXBvbmVudClcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBob3N0OiBBYnN0cmFjdFR1aVBvcnRhbEhvc3RDb21wb25lbnQsXG4gICAgICAgIEBJbmplY3QoVHVpUmVjdEFjY2Vzc29yKSBwcml2YXRlIHJlYWRvbmx5IGFjY2Vzc29yOiBUdWlSZWN0QWNjZXNzb3IsXG4gICAgICAgIEBJbmplY3QoV0lORE9XKSBwcml2YXRlIHJlYWRvbmx5IHdpbmRvd1JlZjogV2luZG93LFxuICAgICAgICBASW5qZWN0KFRVSV9BTklNQVRJT05fT1BUSU9OUylcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBhbmltYXRpb25PcHRpb25zOiBBbmltYXRpb25PcHRpb25zLFxuICAgICAgICBASW5qZWN0KFRVSV9EUk9QRE9XTl9PUFRJT05TKSBwcml2YXRlIHJlYWRvbmx5IG9wdGlvbnM6IFR1aURyb3Bkb3duT3B0aW9ucyxcbiAgICAgICAgQE9wdGlvbmFsKClcbiAgICAgICAgQEluamVjdChUdWlEcm9wZG93bkhvdmVyRGlyZWN0aXZlKVxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGhvdmVyRGlyZWN0aXZlOiBUdWlEcm9wZG93bkhvdmVyRGlyZWN0aXZlIHwgbnVsbCxcbiAgICApIHtcbiAgICAgICAgcG9zaXRpb24kLnBpcGUodGFrZVVudGlsKGRlc3Ryb3kkKSkuc3Vic2NyaWJlKChbdG9wLCBsZWZ0XSkgPT4ge1xuICAgICAgICAgICAgdGhpcy51cGRhdGUodG9wLCBsZWZ0KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMub25Ib3ZlcmVkQ2hhbmdlKGZhbHNlKTtcbiAgICB9XG5cbiAgICBvbkhvdmVyZWRDaGFuZ2UoaG92ZXJlZDogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5ob3ZlckRpcmVjdGl2ZSkge1xuICAgICAgICAgICAgdGhpcy5ob3ZlckRpcmVjdGl2ZS50b2dnbGUoaG92ZXJlZCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvblRvcEZvY3VzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLm1vdmVGb2N1c091dHNpZGUodHJ1ZSk7XG4gICAgfVxuXG4gICAgb25Cb3R0b21Gb2N1cygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5tb3ZlRm9jdXNPdXRzaWRlKGZhbHNlKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZSh0b3A6IG51bWJlciwgbGVmdDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHtzdHlsZX0gPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgICAgICAgY29uc3Qge3JpZ2h0fSA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgICBjb25zdCB7bGltaXRXaWR0aCwgbWF4SGVpZ2h0LCBvZmZzZXR9ID0gdGhpcy5vcHRpb25zO1xuICAgICAgICBjb25zdCB7aW5uZXJIZWlnaHR9ID0gdGhpcy53aW5kb3dSZWY7XG4gICAgICAgIGNvbnN0IHtjbGllbnRSZWN0fSA9IHRoaXMuaG9zdDtcbiAgICAgICAgY29uc3Qge3Bvc2l0aW9ufSA9IHRoaXMuZGlyZWN0aXZlO1xuICAgICAgICBjb25zdCByZWN0ID0gdGhpcy5hY2Nlc3Nvci5nZXRDbGllbnRSZWN0KCk7XG4gICAgICAgIGNvbnN0IG9mZnNldFggPSBwb3NpdGlvbiA9PT0gJ2ZpeGVkJyA/IDAgOiAtY2xpZW50UmVjdC5sZWZ0O1xuICAgICAgICBjb25zdCBvZmZzZXRZID0gcG9zaXRpb24gPT09ICdmaXhlZCcgPyAwIDogLWNsaWVudFJlY3QudG9wO1xuXG4gICAgICAgIHRvcCArPSBvZmZzZXRZO1xuICAgICAgICBsZWZ0ICs9IG9mZnNldFg7XG5cbiAgICAgICAgY29uc3QgaXNJbnRlcnNlY3RpbmcgPVxuICAgICAgICAgICAgbGVmdCA8IHJlY3QucmlnaHQgJiYgcmlnaHQgPiByZWN0LmxlZnQgJiYgdG9wIDwgb2Zmc2V0WSArIDIgKiBvZmZzZXQ7XG4gICAgICAgIGNvbnN0IGF2YWlsYWJsZSA9IGlzSW50ZXJzZWN0aW5nXG4gICAgICAgICAgICA/IHJlY3QudG9wIC0gMiAqIG9mZnNldFxuICAgICAgICAgICAgOiBvZmZzZXRZICsgaW5uZXJIZWlnaHQgLSB0b3AgLSBvZmZzZXQ7XG5cbiAgICAgICAgc3R5bGUucG9zaXRpb24gPSBwb3NpdGlvbjtcbiAgICAgICAgc3R5bGUudG9wID0gdHVpUHgoTWF0aC5tYXgodG9wLCBvZmZzZXRZICsgb2Zmc2V0KSk7XG4gICAgICAgIHN0eWxlLmxlZnQgPSB0dWlQeChsZWZ0KTtcbiAgICAgICAgc3R5bGUubWF4SGVpZ2h0ID0gdHVpUHgoTWF0aC5taW4obWF4SGVpZ2h0LCBhdmFpbGFibGUpKTtcbiAgICAgICAgc3R5bGUud2lkdGggPSAnJztcbiAgICAgICAgc3R5bGUubWluV2lkdGggPSAnJztcblxuICAgICAgICBzd2l0Y2ggKGxpbWl0V2lkdGgpIHtcbiAgICAgICAgICAgIGNhc2UgJ21pbic6XG4gICAgICAgICAgICAgICAgc3R5bGUubWluV2lkdGggPSB0dWlQeChyZWN0LndpZHRoKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ2ZpeGVkJzpcbiAgICAgICAgICAgICAgICBzdHlsZS53aWR0aCA9IHR1aVB4KHJlY3Qud2lkdGgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBtb3ZlRm9jdXNPdXRzaWRlKHByZXZpb3VzOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGhvc3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICAgICAgY29uc3Qge293bmVyRG9jdW1lbnR9ID0gaG9zdDtcbiAgICAgICAgY29uc3Qgcm9vdCA9IG93bmVyRG9jdW1lbnQgPyBvd25lckRvY3VtZW50LmJvZHkgOiBob3N0O1xuICAgICAgICBsZXQgZm9jdXNhYmxlID0gdHVpR2V0Q2xvc2VzdEZvY3VzYWJsZSh7aW5pdGlhbDogaG9zdCwgcm9vdCwgcHJldmlvdXN9KTtcblxuICAgICAgICB3aGlsZSAoZm9jdXNhYmxlICE9PSBudWxsICYmIGhvc3QuY29udGFpbnMoZm9jdXNhYmxlKSkge1xuICAgICAgICAgICAgZm9jdXNhYmxlID0gdHVpR2V0Q2xvc2VzdEZvY3VzYWJsZSh7aW5pdGlhbDogZm9jdXNhYmxlLCByb290LCBwcmV2aW91c30pO1xuICAgICAgICB9XG5cbiAgICAgICAgZm9jdXNhYmxlPy5mb2N1cygpO1xuICAgIH1cbn1cbiIsIjxkaXZcbiAgICAjYWN0aXZlWm9uZT1cInR1aUFjdGl2ZVpvbmVcIlxuICAgIHR1aUFjdGl2ZVpvbmVcbiAgICB0dWlPdmVyc2Nyb2xsPVwiYWxsXCJcbiAgICBjbGFzcz1cInQtd3JhcHBlclwiXG4gICAgW3R1aU1vZGVdPVwibnVsbFwiXG4gICAgKHR1aUhvdmVyZWRDaGFuZ2UpPVwib25Ib3ZlcmVkQ2hhbmdlKCRldmVudClcIlxuPlxuICAgIDx0dWktc2Nyb2xsYmFyIGNsYXNzPVwidC1zY3JvbGxcIj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgICAgdGFiaW5kZXg9XCIwXCJcbiAgICAgICAgICAgIChmb2N1cyk9XCJvblRvcEZvY3VzKClcIlxuICAgICAgICA+PC9kaXY+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICAgICpwb2x5bW9ycGhldXNPdXRsZXQ9XCJkaXJlY3RpdmUuY29udGVudCBhcyB0ZXh0OyBjb250ZXh0OiB7JGltcGxpY2l0OiBhY3RpdmVab25lfVwiXG4gICAgICAgICAgICBjbGFzcz1cInQtcHJpbWl0aXZlXCJcbiAgICAgICAgPlxuICAgICAgICAgICAge3sgdGV4dCB9fVxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgICAgdGFiaW5kZXg9XCIwXCJcbiAgICAgICAgICAgIChmb2N1cyk9XCJvbkJvdHRvbUZvY3VzKClcIlxuICAgICAgICA+PC9kaXY+XG4gICAgPC90dWktc2Nyb2xsYmFyPlxuPC9kaXY+XG4iXX0=
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
2
|
import { InjectionToken, ElementRef, Component, ChangeDetectionStrategy, Inject, HostBinding, inject, Injectable, Directive, NgModule } from '@angular/core';
|
|
3
3
|
import * as i4 from '@taiga-ui/cdk';
|
|
4
|
-
import { TuiDestroyService, tuiTypedFromEvent, tuiIsCurrentTarget, tuiIsElement, tuiContainsOrAfter, TUI_IS_MOBILE, AbstractTuiDialogService, AbstractTuiDialogDirective, TuiPreventDefaultModule, tuiAsDialog } from '@taiga-ui/cdk';
|
|
4
|
+
import { TuiDestroyService, tuiTypedFromEvent, tuiIsCurrentTarget, tuiGetActualTarget, tuiIsElement, tuiContainsOrAfter, TUI_IS_MOBILE, AbstractTuiDialogService, AbstractTuiDialogDirective, TuiPreventDefaultModule, tuiAsDialog } from '@taiga-ui/cdk';
|
|
5
5
|
import { tuiSlideInTop, tuiFadeIn } from '@taiga-ui/core/animations';
|
|
6
6
|
import { TUI_ANIMATIONS_DURATION, TUI_CLOSE_WORD } from '@taiga-ui/core/tokens';
|
|
7
7
|
import * as i3 from '@tinkoff/ng-polymorpheus';
|
|
@@ -35,14 +35,25 @@ const TUI_DIALOG_PROVIDERS = [
|
|
|
35
35
|
],
|
|
36
36
|
useFactory: (documentRef, windowRef, { nativeElement }, close$, destroy$, { dismissible }) => {
|
|
37
37
|
return dismissible
|
|
38
|
-
? merge(tuiTypedFromEvent(nativeElement, `click`).pipe(filter(tuiIsCurrentTarget)), tuiTypedFromEvent(documentRef, `keydown`).pipe(filter(
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
38
|
+
? merge(tuiTypedFromEvent(nativeElement, `click`).pipe(filter(tuiIsCurrentTarget)), tuiTypedFromEvent(documentRef, `keydown`).pipe(filter(event => {
|
|
39
|
+
const key = event.key;
|
|
40
|
+
const target = tuiGetActualTarget(event);
|
|
41
|
+
return (key === `Escape` &&
|
|
42
|
+
tuiIsElement(target) &&
|
|
43
|
+
(!tuiContainsOrAfter(nativeElement, target) ||
|
|
44
|
+
nativeElement.contains(target)));
|
|
45
|
+
})), tuiTypedFromEvent(documentRef, `mousedown`).pipe(filter(event => {
|
|
46
|
+
const target = tuiGetActualTarget(event);
|
|
47
|
+
const clientX = event.clientX;
|
|
48
|
+
return (tuiIsElement(target) &&
|
|
49
|
+
tuiGetViewportWidth(windowRef) - clientX >
|
|
50
|
+
SCROLLBAR_PLACEHOLDER &&
|
|
51
|
+
!tuiContainsOrAfter(nativeElement, target));
|
|
52
|
+
}), switchMap(() => tuiTypedFromEvent(documentRef, `mouseup`).pipe(take(1), filter(event => {
|
|
53
|
+
const target = tuiGetActualTarget(event);
|
|
54
|
+
return (tuiIsElement(target) &&
|
|
55
|
+
!tuiContainsOrAfter(nativeElement, target));
|
|
56
|
+
})))), close$).pipe(takeUntil(destroy$))
|
|
46
57
|
: close$;
|
|
47
58
|
},
|
|
48
59
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-core-components-dialog.js","sources":["../../../projects/core/components/dialog/dialog.providers.ts","../../../projects/core/components/dialog/dialog.component.ts","../../../projects/core/components/dialog/dialog.template.html","../../../projects/core/components/dialog/dialog.tokens.ts","../../../projects/core/components/dialog/dialog.service.ts","../../../projects/core/components/dialog/dialog.directive.ts","../../../projects/core/components/dialog/dialog.module.ts","../../../projects/core/components/dialog/taiga-ui-core-components-dialog.ts"],"sourcesContent":["import {DOCUMENT} from '@angular/common';\nimport {ElementRef, InjectionToken, Provider} from '@angular/core';\nimport {WINDOW} from '@ng-web-apis/common';\nimport {\n tuiContainsOrAfter,\n TuiDestroyService,\n TuiDialog,\n tuiIsCurrentTarget,\n tuiIsElement,\n tuiTypedFromEvent,\n} from '@taiga-ui/cdk';\nimport {TuiDialogOptions} from '@taiga-ui/core/interfaces';\nimport {tuiGetViewportWidth} from '@taiga-ui/core/utils/dom';\nimport {POLYMORPHEUS_CONTEXT} from '@tinkoff/ng-polymorpheus';\nimport {EMPTY, merge, Observable} from 'rxjs';\nimport {filter, switchMap, take, takeUntil} from 'rxjs/operators';\n\nexport const TUI_DIALOGS_CLOSE = new InjectionToken<Observable<unknown>>(\n `[TUI_DIALOGS_CLOSE]: A stream to close dialogs`,\n {\n factory: () => EMPTY,\n },\n);\n\nconst SCROLLBAR_PLACEHOLDER = 17;\n\nexport const TUI_DIALOG_CLOSE_STREAM = new InjectionToken<Observable<unknown>>(\n `[TUI_DIALOG_CLOSE_STREAM]: Dialogs closing stream`,\n);\nexport const TUI_DIALOG_PROVIDERS: Provider[] = [\n TuiDestroyService,\n {\n provide: TUI_DIALOG_CLOSE_STREAM,\n deps: [\n DOCUMENT,\n WINDOW,\n ElementRef,\n TUI_DIALOGS_CLOSE,\n TuiDestroyService,\n POLYMORPHEUS_CONTEXT,\n ],\n useFactory: (\n documentRef: Document,\n windowRef: Window,\n {nativeElement}: ElementRef<HTMLElement>,\n close$: Observable<void>,\n destroy$: Observable<void>,\n {dismissible}: TuiDialog<TuiDialogOptions<unknown>, unknown>,\n ): Observable<unknown> => {\n return dismissible\n ? merge(\n tuiTypedFromEvent(nativeElement, `click`).pipe(\n filter(tuiIsCurrentTarget),\n ),\n tuiTypedFromEvent(documentRef, `keydown`).pipe(\n filter(\n ({key, target}) =>\n key === `Escape` &&\n tuiIsElement(target) &&\n (!tuiContainsOrAfter(nativeElement, target) ||\n nativeElement.contains(target)),\n ),\n ),\n tuiTypedFromEvent(documentRef, `mousedown`).pipe(\n filter(\n ({target, clientX}) =>\n tuiIsElement(target) &&\n tuiGetViewportWidth(windowRef) - clientX >\n SCROLLBAR_PLACEHOLDER &&\n !tuiContainsOrAfter(nativeElement, target),\n ),\n switchMap(() =>\n tuiTypedFromEvent(documentRef, `mouseup`).pipe(\n take(1),\n filter(\n ({target}) =>\n tuiIsElement(target) &&\n !tuiContainsOrAfter(nativeElement, target),\n ),\n ),\n ),\n ),\n close$,\n ).pipe(takeUntil(destroy$))\n : close$;\n },\n },\n];\n","import {ChangeDetectionStrategy, Component, HostBinding, Inject} from '@angular/core';\nimport {TUI_IS_MOBILE, TuiDialog} from '@taiga-ui/cdk';\nimport {tuiFadeIn, tuiSlideInTop} from '@taiga-ui/core/animations';\nimport {TuiAnimationOptions, TuiDialogOptions} from '@taiga-ui/core/interfaces';\nimport {TUI_ANIMATIONS_DURATION, TUI_CLOSE_WORD} from '@taiga-ui/core/tokens';\nimport {TuiDialogSize} from '@taiga-ui/core/types';\nimport {POLYMORPHEUS_CONTEXT, PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\nimport {Observable} from 'rxjs';\n\nimport {TUI_DIALOG_CLOSE_STREAM, TUI_DIALOG_PROVIDERS} from './dialog.providers';\n\nconst REQUIRED_ERROR = new Error('Required dialog was dismissed');\n\n@Component({\n selector: 'tui-dialog',\n templateUrl: './dialog.template.html',\n styleUrls: ['./dialog.style.less'],\n // So we don't force OnPush on dialog content\n changeDetection: ChangeDetectionStrategy.Default,\n providers: TUI_DIALOG_PROVIDERS,\n animations: [tuiSlideInTop, tuiFadeIn],\n})\nexport class TuiDialogComponent<O, I> {\n private readonly animation = {\n value: '',\n params: {\n start: '40px',\n duration: this.duration,\n },\n } as const;\n\n private readonly fullscreenAnimation = {\n value: '',\n params: {\n start: '100vh',\n duration: this.duration,\n },\n } as const;\n\n constructor(\n @Inject(TUI_ANIMATIONS_DURATION) private readonly duration: number,\n @Inject(TUI_IS_MOBILE) private readonly isMobile: boolean,\n @Inject(POLYMORPHEUS_CONTEXT)\n readonly context: TuiDialog<TuiDialogOptions<I>, O>,\n @Inject(TUI_DIALOG_CLOSE_STREAM)\n close$: Observable<unknown>,\n @Inject(TUI_CLOSE_WORD) readonly closeWord$: Observable<string>,\n ) {\n close$.subscribe(() => {\n this.close();\n });\n }\n\n @HostBinding('attr.data-size')\n get size(): TuiDialogSize {\n return this.context.size;\n }\n\n @HostBinding('class._centered')\n get header(): PolymorpheusContent<TuiDialog<TuiDialogOptions<I>, O>> {\n return this.context.header;\n }\n\n @HostBinding('@tuiSlideInTop')\n @HostBinding('@tuiFadeIn')\n get slideInTop(): TuiAnimationOptions {\n return this.size === 'fullscreen' || this.size === 'page' || this.isMobile\n ? this.fullscreenAnimation\n : this.animation;\n }\n\n close(): void {\n if (this.context.required) {\n this.context.$implicit.error(REQUIRED_ERROR);\n } else {\n this.context.$implicit.complete();\n }\n }\n}\n","<header\n *ngIf=\"header\"\n class=\"t-header\"\n>\n <ng-container *polymorpheusOutlet=\"header as text; context: context\">\n {{ text }}\n </ng-container>\n</header>\n<div class=\"t-content\">\n <h2\n class=\"t-heading\"\n [id]=\"context.id\"\n [textContent]=\"context.label\"\n ></h2>\n <section>\n <!-- TODO: Polymorpheus fix type -->\n <ng-container *polymorpheusOutlet=\"$any(context.content) as text; context: context\">\n {{ text }}\n <div class=\"t-buttons\">\n <button\n type=\"button\"\n tuiButton\n size=\"m\"\n (click)=\"context.$implicit.complete()\"\n >\n {{ $any(context.data)?.button || 'OK' }}\n </button>\n </div>\n </ng-container>\n </section>\n</div>\n<div\n *ngIf=\"context.closeable\"\n class=\"t-wrapper\"\n>\n <button\n type=\"button\"\n tuiIconButton\n tuiPreventDefault=\"mousedown\"\n automation-id=\"tui-dialog__close\"\n size=\"s\"\n appearance=\"\"\n icon=\"tuiIconCloseLarge\"\n shape=\"rounded\"\n class=\"t-close\"\n [title]=\"closeWord$ | async\"\n (click)=\"close()\"\n ></button>\n</div>\n","import {InjectionToken, ValueProvider} from '@angular/core';\nimport type {TuiDialogOptions} from '@taiga-ui/core/interfaces';\n\ntype TuiDialogDefaultOptions = Omit<TuiDialogOptions<unknown>, 'data'>;\n\nexport const TUI_DIALOG_DEFAULT_OPTIONS: TuiDialogDefaultOptions = {\n size: `m`,\n required: false,\n closeable: true,\n dismissible: true,\n label: ``,\n header: ``,\n};\n\nexport const TUI_DIALOG_OPTIONS = new InjectionToken<TuiDialogDefaultOptions>(\n `[TUI_DIALOG_OPTIONS]: Default parameters for dialog component`,\n {\n factory: () => TUI_DIALOG_DEFAULT_OPTIONS,\n },\n);\n\nexport function tuiDialogOptionsProvider(\n options: Partial<TuiDialogDefaultOptions>,\n): ValueProvider {\n return {\n provide: TUI_DIALOG_OPTIONS,\n useValue: {...TUI_DIALOG_DEFAULT_OPTIONS, ...options},\n };\n}\n","import {inject, Injectable} from '@angular/core';\nimport {AbstractTuiDialogService} from '@taiga-ui/cdk';\nimport type {TuiDialogOptions} from '@taiga-ui/core/interfaces';\nimport {PolymorpheusComponent} from '@tinkoff/ng-polymorpheus';\n\nimport {TuiDialogComponent} from './dialog.component';\nimport {TUI_DIALOG_OPTIONS} from './dialog.tokens';\n\nconst DIALOG = new PolymorpheusComponent(TuiDialogComponent);\n\n@Injectable({\n providedIn: `root`,\n})\nexport class TuiDialogService extends AbstractTuiDialogService<TuiDialogOptions<any>> {\n protected readonly component = DIALOG;\n protected readonly defaultOptions: TuiDialogOptions<any> = {\n ...inject(TUI_DIALOG_OPTIONS),\n data: undefined,\n };\n}\n","import {Directive} from '@angular/core';\nimport {AbstractTuiDialogDirective, AbstractTuiDialogService} from '@taiga-ui/cdk';\nimport {TuiDialogOptions} from '@taiga-ui/core/interfaces';\n\nimport {TuiDialogService} from './dialog.service';\n\n@Directive({\n selector: 'ng-template[tuiDialog]',\n providers: [\n {\n provide: AbstractTuiDialogService,\n useExisting: TuiDialogService,\n },\n ],\n inputs: ['options: tuiDialogOptions', 'open: tuiDialog'],\n outputs: ['openChange: tuiDialogChange'],\n})\nexport class TuiDialogDirective<T> extends AbstractTuiDialogDirective<\n TuiDialogOptions<T>\n> {}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {tuiAsDialog, TuiPreventDefaultModule} from '@taiga-ui/cdk';\nimport {TuiButtonModule} from '@taiga-ui/core/components/button';\nimport {PolymorpheusModule} from '@tinkoff/ng-polymorpheus';\n\nimport {TuiDialogComponent} from './dialog.component';\nimport {TuiDialogDirective} from './dialog.directive';\nimport {TuiDialogService} from './dialog.service';\n\n@NgModule({\n imports: [PolymorpheusModule, TuiButtonModule, CommonModule, TuiPreventDefaultModule],\n declarations: [TuiDialogComponent, TuiDialogDirective],\n exports: [TuiDialogComponent, TuiDialogDirective],\n providers: [tuiAsDialog(TuiDialogService)],\n})\nexport class TuiDialogModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"taiga-ui-core-components-dialog.js","sources":["../../../projects/core/components/dialog/dialog.providers.ts","../../../projects/core/components/dialog/dialog.component.ts","../../../projects/core/components/dialog/dialog.template.html","../../../projects/core/components/dialog/dialog.tokens.ts","../../../projects/core/components/dialog/dialog.service.ts","../../../projects/core/components/dialog/dialog.directive.ts","../../../projects/core/components/dialog/dialog.module.ts","../../../projects/core/components/dialog/taiga-ui-core-components-dialog.ts"],"sourcesContent":["import {DOCUMENT} from '@angular/common';\nimport {ElementRef, InjectionToken, Provider} from '@angular/core';\nimport {WINDOW} from '@ng-web-apis/common';\nimport {\n tuiContainsOrAfter,\n TuiDestroyService,\n TuiDialog,\n tuiGetActualTarget,\n tuiIsCurrentTarget,\n tuiIsElement,\n tuiTypedFromEvent,\n} from '@taiga-ui/cdk';\nimport {TuiDialogOptions} from '@taiga-ui/core/interfaces';\nimport {tuiGetViewportWidth} from '@taiga-ui/core/utils/dom';\nimport {POLYMORPHEUS_CONTEXT} from '@tinkoff/ng-polymorpheus';\nimport {EMPTY, merge, Observable} from 'rxjs';\nimport {filter, switchMap, take, takeUntil} from 'rxjs/operators';\n\nexport const TUI_DIALOGS_CLOSE = new InjectionToken<Observable<unknown>>(\n `[TUI_DIALOGS_CLOSE]: A stream to close dialogs`,\n {\n factory: () => EMPTY,\n },\n);\n\nconst SCROLLBAR_PLACEHOLDER = 17;\n\nexport const TUI_DIALOG_CLOSE_STREAM = new InjectionToken<Observable<unknown>>(\n `[TUI_DIALOG_CLOSE_STREAM]: Dialogs closing stream`,\n);\nexport const TUI_DIALOG_PROVIDERS: Provider[] = [\n TuiDestroyService,\n {\n provide: TUI_DIALOG_CLOSE_STREAM,\n deps: [\n DOCUMENT,\n WINDOW,\n ElementRef,\n TUI_DIALOGS_CLOSE,\n TuiDestroyService,\n POLYMORPHEUS_CONTEXT,\n ],\n useFactory: (\n documentRef: Document,\n windowRef: Window,\n {nativeElement}: ElementRef<HTMLElement>,\n close$: Observable<void>,\n destroy$: Observable<void>,\n {dismissible}: TuiDialog<TuiDialogOptions<unknown>, unknown>,\n ): Observable<unknown> => {\n return dismissible\n ? merge(\n tuiTypedFromEvent(nativeElement, `click`).pipe(\n filter(tuiIsCurrentTarget),\n ),\n tuiTypedFromEvent(documentRef, `keydown`).pipe(\n filter(event => {\n const key = event.key;\n const target = tuiGetActualTarget(event);\n\n return (\n key === `Escape` &&\n tuiIsElement(target) &&\n (!tuiContainsOrAfter(nativeElement, target) ||\n nativeElement.contains(target))\n );\n }),\n ),\n tuiTypedFromEvent(documentRef, `mousedown`).pipe(\n filter(event => {\n const target = tuiGetActualTarget(event);\n const clientX = event.clientX;\n\n return (\n tuiIsElement(target) &&\n tuiGetViewportWidth(windowRef) - clientX >\n SCROLLBAR_PLACEHOLDER &&\n !tuiContainsOrAfter(nativeElement, target)\n );\n }),\n switchMap(() =>\n tuiTypedFromEvent(documentRef, `mouseup`).pipe(\n take(1),\n filter(event => {\n const target = tuiGetActualTarget(event);\n\n return (\n tuiIsElement(target) &&\n !tuiContainsOrAfter(nativeElement, target)\n );\n }),\n ),\n ),\n ),\n close$,\n ).pipe(takeUntil(destroy$))\n : close$;\n },\n },\n];\n","import {ChangeDetectionStrategy, Component, HostBinding, Inject} from '@angular/core';\nimport {TUI_IS_MOBILE, TuiDialog} from '@taiga-ui/cdk';\nimport {tuiFadeIn, tuiSlideInTop} from '@taiga-ui/core/animations';\nimport {TuiAnimationOptions, TuiDialogOptions} from '@taiga-ui/core/interfaces';\nimport {TUI_ANIMATIONS_DURATION, TUI_CLOSE_WORD} from '@taiga-ui/core/tokens';\nimport {TuiDialogSize} from '@taiga-ui/core/types';\nimport {POLYMORPHEUS_CONTEXT, PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\nimport {Observable} from 'rxjs';\n\nimport {TUI_DIALOG_CLOSE_STREAM, TUI_DIALOG_PROVIDERS} from './dialog.providers';\n\nconst REQUIRED_ERROR = new Error('Required dialog was dismissed');\n\n@Component({\n selector: 'tui-dialog',\n templateUrl: './dialog.template.html',\n styleUrls: ['./dialog.style.less'],\n // So we don't force OnPush on dialog content\n changeDetection: ChangeDetectionStrategy.Default,\n providers: TUI_DIALOG_PROVIDERS,\n animations: [tuiSlideInTop, tuiFadeIn],\n})\nexport class TuiDialogComponent<O, I> {\n private readonly animation = {\n value: '',\n params: {\n start: '40px',\n duration: this.duration,\n },\n } as const;\n\n private readonly fullscreenAnimation = {\n value: '',\n params: {\n start: '100vh',\n duration: this.duration,\n },\n } as const;\n\n constructor(\n @Inject(TUI_ANIMATIONS_DURATION) private readonly duration: number,\n @Inject(TUI_IS_MOBILE) private readonly isMobile: boolean,\n @Inject(POLYMORPHEUS_CONTEXT)\n readonly context: TuiDialog<TuiDialogOptions<I>, O>,\n @Inject(TUI_DIALOG_CLOSE_STREAM)\n close$: Observable<unknown>,\n @Inject(TUI_CLOSE_WORD) readonly closeWord$: Observable<string>,\n ) {\n close$.subscribe(() => {\n this.close();\n });\n }\n\n @HostBinding('attr.data-size')\n get size(): TuiDialogSize {\n return this.context.size;\n }\n\n @HostBinding('class._centered')\n get header(): PolymorpheusContent<TuiDialog<TuiDialogOptions<I>, O>> {\n return this.context.header;\n }\n\n @HostBinding('@tuiSlideInTop')\n @HostBinding('@tuiFadeIn')\n get slideInTop(): TuiAnimationOptions {\n return this.size === 'fullscreen' || this.size === 'page' || this.isMobile\n ? this.fullscreenAnimation\n : this.animation;\n }\n\n close(): void {\n if (this.context.required) {\n this.context.$implicit.error(REQUIRED_ERROR);\n } else {\n this.context.$implicit.complete();\n }\n }\n}\n","<header\n *ngIf=\"header\"\n class=\"t-header\"\n>\n <ng-container *polymorpheusOutlet=\"header as text; context: context\">\n {{ text }}\n </ng-container>\n</header>\n<div class=\"t-content\">\n <h2\n class=\"t-heading\"\n [id]=\"context.id\"\n [textContent]=\"context.label\"\n ></h2>\n <section>\n <!-- TODO: Polymorpheus fix type -->\n <ng-container *polymorpheusOutlet=\"$any(context.content) as text; context: context\">\n {{ text }}\n <div class=\"t-buttons\">\n <button\n type=\"button\"\n tuiButton\n size=\"m\"\n (click)=\"context.$implicit.complete()\"\n >\n {{ $any(context.data)?.button || 'OK' }}\n </button>\n </div>\n </ng-container>\n </section>\n</div>\n<div\n *ngIf=\"context.closeable\"\n class=\"t-wrapper\"\n>\n <button\n type=\"button\"\n tuiIconButton\n tuiPreventDefault=\"mousedown\"\n automation-id=\"tui-dialog__close\"\n size=\"s\"\n appearance=\"\"\n icon=\"tuiIconCloseLarge\"\n shape=\"rounded\"\n class=\"t-close\"\n [title]=\"closeWord$ | async\"\n (click)=\"close()\"\n ></button>\n</div>\n","import {InjectionToken, ValueProvider} from '@angular/core';\nimport type {TuiDialogOptions} from '@taiga-ui/core/interfaces';\n\ntype TuiDialogDefaultOptions = Omit<TuiDialogOptions<unknown>, 'data'>;\n\nexport const TUI_DIALOG_DEFAULT_OPTIONS: TuiDialogDefaultOptions = {\n size: `m`,\n required: false,\n closeable: true,\n dismissible: true,\n label: ``,\n header: ``,\n};\n\nexport const TUI_DIALOG_OPTIONS = new InjectionToken<TuiDialogDefaultOptions>(\n `[TUI_DIALOG_OPTIONS]: Default parameters for dialog component`,\n {\n factory: () => TUI_DIALOG_DEFAULT_OPTIONS,\n },\n);\n\nexport function tuiDialogOptionsProvider(\n options: Partial<TuiDialogDefaultOptions>,\n): ValueProvider {\n return {\n provide: TUI_DIALOG_OPTIONS,\n useValue: {...TUI_DIALOG_DEFAULT_OPTIONS, ...options},\n };\n}\n","import {inject, Injectable} from '@angular/core';\nimport {AbstractTuiDialogService} from '@taiga-ui/cdk';\nimport type {TuiDialogOptions} from '@taiga-ui/core/interfaces';\nimport {PolymorpheusComponent} from '@tinkoff/ng-polymorpheus';\n\nimport {TuiDialogComponent} from './dialog.component';\nimport {TUI_DIALOG_OPTIONS} from './dialog.tokens';\n\nconst DIALOG = new PolymorpheusComponent(TuiDialogComponent);\n\n@Injectable({\n providedIn: `root`,\n})\nexport class TuiDialogService extends AbstractTuiDialogService<TuiDialogOptions<any>> {\n protected readonly component = DIALOG;\n protected readonly defaultOptions: TuiDialogOptions<any> = {\n ...inject(TUI_DIALOG_OPTIONS),\n data: undefined,\n };\n}\n","import {Directive} from '@angular/core';\nimport {AbstractTuiDialogDirective, AbstractTuiDialogService} from '@taiga-ui/cdk';\nimport {TuiDialogOptions} from '@taiga-ui/core/interfaces';\n\nimport {TuiDialogService} from './dialog.service';\n\n@Directive({\n selector: 'ng-template[tuiDialog]',\n providers: [\n {\n provide: AbstractTuiDialogService,\n useExisting: TuiDialogService,\n },\n ],\n inputs: ['options: tuiDialogOptions', 'open: tuiDialog'],\n outputs: ['openChange: tuiDialogChange'],\n})\nexport class TuiDialogDirective<T> extends AbstractTuiDialogDirective<\n TuiDialogOptions<T>\n> {}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {tuiAsDialog, TuiPreventDefaultModule} from '@taiga-ui/cdk';\nimport {TuiButtonModule} from '@taiga-ui/core/components/button';\nimport {PolymorpheusModule} from '@tinkoff/ng-polymorpheus';\n\nimport {TuiDialogComponent} from './dialog.component';\nimport {TuiDialogDirective} from './dialog.directive';\nimport {TuiDialogService} from './dialog.service';\n\n@NgModule({\n imports: [PolymorpheusModule, TuiButtonModule, CommonModule, TuiPreventDefaultModule],\n declarations: [TuiDialogComponent, TuiDialogDirective],\n exports: [TuiDialogComponent, TuiDialogDirective],\n providers: [tuiAsDialog(TuiDialogService)],\n})\nexport class TuiDialogModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;MAkBa,iBAAiB,GAAG,IAAI,cAAc,CAC/C,gDAAgD,EAChD;AACI,IAAA,OAAO,EAAE,MAAM,KAAK;AACvB,CAAA,EACH;AAEF,MAAM,qBAAqB,GAAG,EAAE,CAAC;MAEpB,uBAAuB,GAAG,IAAI,cAAc,CACrD,CAAmD,iDAAA,CAAA,EACrD;AACW,MAAA,oBAAoB,GAAe;IAC5C,iBAAiB;AACjB,IAAA;AACI,QAAA,OAAO,EAAE,uBAAuB;AAChC,QAAA,IAAI,EAAE;YACF,QAAQ;YACR,MAAM;YACN,UAAU;YACV,iBAAiB;YACjB,iBAAiB;YACjB,oBAAoB;AACvB,SAAA;AACD,QAAA,UAAU,EAAE,CACR,WAAqB,EACrB,SAAiB,EACjB,EAAC,aAAa,EAA0B,EACxC,MAAwB,EACxB,QAA0B,EAC1B,EAAC,WAAW,EAAgD,KACvC;AACrB,YAAA,OAAO,WAAW;AACd,kBAAE,KAAK,CACD,iBAAiB,CAAC,aAAa,EAAE,CAAA,KAAA,CAAO,CAAC,CAAC,IAAI,CAC1C,MAAM,CAAC,kBAAkB,CAAC,CAC7B,EACD,iBAAiB,CAAC,WAAW,EAAE,CAAS,OAAA,CAAA,CAAC,CAAC,IAAI,CAC1C,MAAM,CAAC,KAAK,IAAG;AACX,oBAAA,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC;AACtB,oBAAA,MAAM,MAAM,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;oBAEzC,QACI,GAAG,KAAK,CAAQ,MAAA,CAAA;wBAChB,YAAY,CAAC,MAAM,CAAC;AACpB,yBAAC,CAAC,kBAAkB,CAAC,aAAa,EAAE,MAAM,CAAC;AACvC,4BAAA,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EACrC;AACN,iBAAC,CAAC,CACL,EACD,iBAAiB,CAAC,WAAW,EAAE,CAAA,SAAA,CAAW,CAAC,CAAC,IAAI,CAC5C,MAAM,CAAC,KAAK,IAAG;AACX,oBAAA,MAAM,MAAM,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;AACzC,oBAAA,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;AAE9B,oBAAA,QACI,YAAY,CAAC,MAAM,CAAC;AACpB,wBAAA,mBAAmB,CAAC,SAAS,CAAC,GAAG,OAAO;4BACpC,qBAAqB;AACzB,wBAAA,CAAC,kBAAkB,CAAC,aAAa,EAAE,MAAM,CAAC,EAC5C;iBACL,CAAC,EACF,SAAS,CAAC,MACN,iBAAiB,CAAC,WAAW,EAAE,CAAA,OAAA,CAAS,CAAC,CAAC,IAAI,CAC1C,IAAI,CAAC,CAAC,CAAC,EACP,MAAM,CAAC,KAAK,IAAG;AACX,oBAAA,MAAM,MAAM,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;AAEzC,oBAAA,QACI,YAAY,CAAC,MAAM,CAAC;AACpB,wBAAA,CAAC,kBAAkB,CAAC,aAAa,EAAE,MAAM,CAAC,EAC5C;AACN,iBAAC,CAAC,CACL,CACJ,CACJ,EACD,MAAM,CACT,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;kBAC3B,MAAM,CAAC;SAChB;AACJ,KAAA;;;ACvFL,MAAM,cAAc,GAAG,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;MAWrD,kBAAkB,CAAA;IAiB3B,WACsD,CAAA,QAAgB,EAC1B,QAAiB,EAEhD,OAA0C,EAEnD,MAA2B,EACM,UAA8B,EAAA;QANb,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAQ;QAC1B,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAS;QAEhD,IAAO,CAAA,OAAA,GAAP,OAAO,CAAmC;QAGlB,IAAU,CAAA,UAAA,GAAV,UAAU,CAAoB;AAvBlD,QAAA,IAAA,CAAA,SAAS,GAAG;AACzB,YAAA,KAAK,EAAE,EAAE;AACT,YAAA,MAAM,EAAE;AACJ,gBAAA,KAAK,EAAE,MAAM;gBACb,QAAQ,EAAE,IAAI,CAAC,QAAQ;AAC1B,aAAA;SACK,CAAC;AAEM,QAAA,IAAA,CAAA,mBAAmB,GAAG;AACnC,YAAA,KAAK,EAAE,EAAE;AACT,YAAA,MAAM,EAAE;AACJ,gBAAA,KAAK,EAAE,OAAO;gBACd,QAAQ,EAAE,IAAI,CAAC,QAAQ;AAC1B,aAAA;SACK,CAAC;AAWP,QAAA,MAAM,CAAC,SAAS,CAAC,MAAK;YAClB,IAAI,CAAC,KAAK,EAAE,CAAC;AACjB,SAAC,CAAC,CAAC;KACN;AAED,IAAA,IACI,IAAI,GAAA;AACJ,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;KAC5B;AAED,IAAA,IACI,MAAM,GAAA;AACN,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;KAC9B;AAED,IAAA,IAEI,UAAU,GAAA;AACV,QAAA,OAAO,IAAI,CAAC,IAAI,KAAK,YAAY,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,QAAQ;cACpE,IAAI,CAAC,mBAAmB;AAC1B,cAAE,IAAI,CAAC,SAAS,CAAC;KACxB;IAED,KAAK,GAAA;AACD,QAAA,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE;YACvB,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;AAChD,SAAA;AAAM,aAAA;AACH,YAAA,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;AACrC,SAAA;KACJ;;gHAvDQ,kBAAkB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAkBf,uBAAuB,EACvB,EAAA,EAAA,KAAA,EAAA,aAAa,aACb,oBAAoB,EAAA,EAAA,EAAA,KAAA,EAEpB,uBAAuB,EAAA,EAAA,EAAA,KAAA,EAEvB,cAAc,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;oGAxBjB,kBAAkB,EAAA,QAAA,EAAA,YAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,EAAA,EAAA,SAAA,EAHhB,oBAAoB,ECnBnC,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,k1CAiDA,osGD7BgB,CAAC,aAAa,EAAE,SAAS,CAAC,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,OAAA,EAAA,CAAA,CAAA;4FAE7B,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAT9B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,YAAY;AACtB,oBAAA,WAAW,EAAE,wBAAwB;oBACrC,SAAS,EAAE,CAAC,qBAAqB,CAAC;;oBAElC,eAAe,EAAE,uBAAuB,CAAC,OAAO;AAChD,oBAAA,SAAS,EAAE,oBAAoB;AAC/B,oBAAA,UAAU,EAAE,CAAC,aAAa,EAAE,SAAS,CAAC;AACzC,iBAAA,CAAA;;0BAmBQ,MAAM;2BAAC,uBAAuB,CAAA;;0BAC9B,MAAM;2BAAC,aAAa,CAAA;;0BACpB,MAAM;2BAAC,oBAAoB,CAAA;;0BAE3B,MAAM;2BAAC,uBAAuB,CAAA;;0BAE9B,MAAM;2BAAC,cAAc,CAAA;4CAQtB,IAAI,EAAA,CAAA;sBADP,WAAW;uBAAC,gBAAgB,CAAA;gBAMzB,MAAM,EAAA,CAAA;sBADT,WAAW;uBAAC,iBAAiB,CAAA;gBAO1B,UAAU,EAAA,CAAA;sBAFb,WAAW;uBAAC,gBAAgB,CAAA;;sBAC5B,WAAW;uBAAC,YAAY,CAAA;;;AE3DhB,MAAA,0BAA0B,GAA4B;AAC/D,IAAA,IAAI,EAAE,CAAG,CAAA,CAAA;AACT,IAAA,QAAQ,EAAE,KAAK;AACf,IAAA,SAAS,EAAE,IAAI;AACf,IAAA,WAAW,EAAE,IAAI;AACjB,IAAA,KAAK,EAAE,CAAE,CAAA;AACT,IAAA,MAAM,EAAE,CAAE,CAAA;EACZ;MAEW,kBAAkB,GAAG,IAAI,cAAc,CAChD,+DAA+D,EAC/D;AACI,IAAA,OAAO,EAAE,MAAM,0BAA0B;AAC5C,CAAA,EACH;AAEI,SAAU,wBAAwB,CACpC,OAAyC,EAAA;IAEzC,OAAO;AACH,QAAA,OAAO,EAAE,kBAAkB;AAC3B,QAAA,QAAQ,EAAM,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,0BAA0B,CAAK,EAAA,OAAO,CAAC;KACxD,CAAC;AACN;;ACpBA,MAAM,MAAM,GAAG,IAAI,qBAAqB,CAAC,kBAAkB,CAAC,CAAC;AAKvD,MAAO,gBAAiB,SAAQ,wBAA+C,CAAA;AAHrF,IAAA,WAAA,GAAA;;QAIuB,IAAS,CAAA,SAAA,GAAG,MAAM,CAAC;QACnB,IAAc,CAAA,cAAA,GAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAC1B,MAAM,CAAC,kBAAkB,CAAC,CAC7B,EAAA,EAAA,IAAI,EAAE,SAAS,EACjB,CAAA,CAAA;AACL,KAAA;;8GANY,gBAAgB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAhB,gBAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,cAFb,CAAM,IAAA,CAAA,EAAA,CAAA,CAAA;4FAET,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAH5B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAE,CAAM,IAAA,CAAA;AACrB,iBAAA,CAAA;;;ACKK,MAAO,kBAAsB,SAAQ,0BAE1C,CAAA;;gHAFY,kBAAkB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAlB,kBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,kBAAkB,EAThB,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,CAAA,kBAAA,EAAA,SAAA,CAAA,EAAA,IAAA,EAAA,CAAA,WAAA,EAAA,MAAA,CAAA,EAAA,EAAA,OAAA,EAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,EAAA,SAAA,EAAA;AACP,QAAA;AACI,YAAA,OAAO,EAAE,wBAAwB;AACjC,YAAA,WAAW,EAAE,gBAAgB;AAChC,SAAA;AACJ,KAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;4FAIQ,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAX9B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,wBAAwB;AAClC,oBAAA,SAAS,EAAE;AACP,wBAAA;AACI,4BAAA,OAAO,EAAE,wBAAwB;AACjC,4BAAA,WAAW,EAAE,gBAAgB;AAChC,yBAAA;AACJ,qBAAA;AACD,oBAAA,MAAM,EAAE,CAAC,2BAA2B,EAAE,iBAAiB,CAAC;oBACxD,OAAO,EAAE,CAAC,6BAA6B,CAAC;AAC3C,iBAAA,CAAA;;;MCAY,eAAe,CAAA;;6GAAf,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAf,eAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,EAJT,YAAA,EAAA,CAAA,kBAAkB,EAAE,kBAAkB,aAD3C,kBAAkB,EAAE,eAAe,EAAE,YAAY,EAAE,uBAAuB,CAE1E,EAAA,OAAA,EAAA,CAAA,kBAAkB,EAAE,kBAAkB,CAAA,EAAA,CAAA,CAAA;AAGvC,eAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,aAFb,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC,EAAA,OAAA,EAAA,CAHjC,CAAC,kBAAkB,EAAE,eAAe,EAAE,YAAY,EAAE,uBAAuB,CAAC,CAAA,EAAA,CAAA,CAAA;4FAK5E,eAAe,EAAA,UAAA,EAAA,CAAA;kBAN3B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACN,OAAO,EAAE,CAAC,kBAAkB,EAAE,eAAe,EAAE,YAAY,EAAE,uBAAuB,CAAC;AACrF,oBAAA,YAAY,EAAE,CAAC,kBAAkB,EAAE,kBAAkB,CAAC;AACtD,oBAAA,OAAO,EAAE,CAAC,kBAAkB,EAAE,kBAAkB,CAAC;AACjD,oBAAA,SAAS,EAAE,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC;AAC7C,iBAAA,CAAA;;;ACfD;;AAEG;;;;"}
|