@taiga-ui/core 2.50.1 → 2.51.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/taiga-ui-core-components-dialog.umd.js +5 -5
- package/bundles/taiga-ui-core-components-dialog.umd.js.map +1 -1
- package/bundles/taiga-ui-core-components-dialog.umd.min.js +1 -1
- package/bundles/taiga-ui-core-components-dialog.umd.min.js.map +1 -1
- package/bundles/taiga-ui-core-components-dropdown-box.umd.js +1 -1
- package/bundles/taiga-ui-core-components-dropdown-box.umd.js.map +1 -1
- package/bundles/taiga-ui-core-components-dropdown-box.umd.min.js +1 -1
- package/bundles/taiga-ui-core-components-dropdown-box.umd.min.js.map +1 -1
- package/bundles/taiga-ui-core-constants.umd.js +1 -1
- package/bundles/taiga-ui-core-constants.umd.js.map +1 -1
- package/bundles/taiga-ui-core-constants.umd.min.js +1 -1
- package/bundles/taiga-ui-core-constants.umd.min.js.map +1 -1
- package/bundles/taiga-ui-core-utils-dom.umd.js +46 -0
- package/bundles/taiga-ui-core-utils-dom.umd.js.map +1 -1
- package/bundles/taiga-ui-core-utils-dom.umd.min.js +1 -1
- package/bundles/taiga-ui-core-utils-dom.umd.min.js.map +1 -1
- package/bundles/taiga-ui-core-utils-mobile.umd.js +7 -8
- package/bundles/taiga-ui-core-utils-mobile.umd.js.map +1 -1
- package/bundles/taiga-ui-core-utils-mobile.umd.min.js +1 -1
- package/bundles/taiga-ui-core-utils-mobile.umd.min.js.map +1 -1
- package/components/dropdown-box/taiga-ui-core-components-dropdown-box.metadata.json +1 -1
- package/constants/taiga-ui-core-constants.metadata.json +1 -1
- package/constants/version.d.ts +1 -1
- package/esm2015/components/dialog/dialog.providers.js +3 -2
- package/esm2015/components/dropdown-box/dropdown-box.component.js +3 -3
- package/esm2015/constants/version.js +2 -2
- package/esm2015/utils/dom/get-viewport-height.js +21 -0
- package/esm2015/utils/dom/get-viewport-width.js +21 -0
- package/esm2015/utils/dom/index.js +3 -1
- package/esm2015/utils/mobile/is-mobile.js +4 -3
- package/esm5/components/dialog/dialog.providers.js +3 -2
- package/esm5/components/dropdown-box/dropdown-box.component.js +3 -3
- package/esm5/constants/version.js +2 -2
- package/esm5/utils/dom/get-viewport-height.js +22 -0
- package/esm5/utils/dom/get-viewport-width.js +22 -0
- package/esm5/utils/dom/index.js +3 -1
- package/esm5/utils/mobile/is-mobile.js +5 -5
- package/fesm2015/taiga-ui-core-components-dialog.js +2 -1
- package/fesm2015/taiga-ui-core-components-dialog.js.map +1 -1
- package/fesm2015/taiga-ui-core-components-dropdown-box.js +2 -2
- package/fesm2015/taiga-ui-core-components-dropdown-box.js.map +1 -1
- package/fesm2015/taiga-ui-core-constants.js +1 -1
- package/fesm2015/taiga-ui-core-constants.js.map +1 -1
- package/fesm2015/taiga-ui-core-utils-dom.js +43 -1
- package/fesm2015/taiga-ui-core-utils-dom.js.map +1 -1
- package/fesm2015/taiga-ui-core-utils-mobile.js +4 -2
- package/fesm2015/taiga-ui-core-utils-mobile.js.map +1 -1
- package/fesm5/taiga-ui-core-components-dialog.js +2 -1
- package/fesm5/taiga-ui-core-components-dialog.js.map +1 -1
- package/fesm5/taiga-ui-core-components-dropdown-box.js +2 -2
- package/fesm5/taiga-ui-core-components-dropdown-box.js.map +1 -1
- package/fesm5/taiga-ui-core-constants.js +1 -1
- package/fesm5/taiga-ui-core-constants.js.map +1 -1
- package/fesm5/taiga-ui-core-utils-dom.js +45 -1
- package/fesm5/taiga-ui-core-utils-dom.js.map +1 -1
- package/fesm5/taiga-ui-core-utils-mobile.js +5 -4
- package/fesm5/taiga-ui-core-utils-mobile.js.map +1 -1
- package/package.json +4 -4
- package/utils/dom/get-viewport-height.d.ts +18 -0
- package/utils/dom/get-viewport-width.d.ts +18 -0
- package/utils/dom/index.d.ts +2 -0
- package/utils/dom/taiga-ui-core-utils-dom.metadata.json +1 -1
- package/utils/mobile/is-mobile.d.ts +1 -1
- package/utils/mobile/taiga-ui-core-utils-mobile.metadata.json +1 -1
|
@@ -1,7 +1,8 @@
|
|
|
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 { containsOrAfter, isCurrentTarget, TuiDestroyService,
|
|
4
|
+
import { containsOrAfter, isCurrentTarget, TuiDestroyService, typedFromEvent, } from '@taiga-ui/cdk';
|
|
5
|
+
import { tuiGetViewportWidth } from '@taiga-ui/core/utils/dom';
|
|
5
6
|
import { POLYMORPHEUS_CONTEXT } from '@tinkoff/ng-polymorpheus';
|
|
6
7
|
import { EMPTY, merge } from 'rxjs';
|
|
7
8
|
import { filter, switchMapTo, take, takeUntil } from 'rxjs/operators';
|
|
@@ -54,4 +55,4 @@ export var TUI_DIALOG_PROVIDERS = [
|
|
|
54
55
|
useFactory: dialogCloseStreamFactory,
|
|
55
56
|
},
|
|
56
57
|
];
|
|
57
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
58
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLnByb3ZpZGVycy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B0YWlnYS11aS9jb3JlL2NvbXBvbmVudHMvZGlhbG9nLyIsInNvdXJjZXMiOlsiZGlhbG9nLnByb3ZpZGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDekMsT0FBTyxFQUFDLFVBQVUsRUFBRSxjQUFjLEVBQVcsTUFBTSxlQUFlLENBQUM7QUFDbkUsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQzNDLE9BQU8sRUFDSCxlQUFlLEVBQ2YsZUFBZSxFQUNmLGlCQUFpQixFQUVqQixjQUFjLEdBQ2pCLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQzdELE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQzlELE9BQU8sRUFBQyxLQUFLLEVBQUUsS0FBSyxFQUFhLE1BQU0sTUFBTSxDQUFDO0FBQzlDLE9BQU8sRUFBQyxNQUFNLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUVwRSxNQUFNLENBQUMsSUFBTSxpQkFBaUIsR0FBRyxJQUFJLGNBQWMsQ0FDL0MsMkJBQTJCLEVBQzNCO0lBQ0ksT0FBTyxFQUFFLGNBQU0sT0FBQSxLQUFLLEVBQUwsQ0FBSztDQUN2QixDQUNKLENBQUM7QUFFRixJQUFNLHFCQUFxQixHQUFHLEVBQUUsQ0FBQztBQUVqQyxNQUFNLFVBQVUsd0JBQXdCLENBQ3BDLFdBQXFCLEVBQ3JCLFNBQWlCLEVBQ2pCLEVBQXdDLEVBQ3hDLE1BQXdCLEVBQ3hCLFFBQTBCLEVBQzFCLEVBQTREO1FBSDNELGdDQUFhO1FBR2IsNEJBQVc7SUFFWixPQUFPLFdBQVc7UUFDZCxDQUFDLENBQUMsS0FBSyxDQUNELGNBQWMsQ0FBQyxhQUFhLEVBQUUsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQyxFQUNwRSxjQUFjLENBQUMsV0FBVyxFQUFFLFNBQVMsQ0FBQyxDQUFDLElBQUk7UUFDdkMsdUJBQXVCO1FBQ3ZCLE1BQU0sQ0FDRixVQUFDLEVBQWE7Z0JBQVosWUFBRyxFQUFFLGtCQUFNO1lBQ1QsT0FBQSxHQUFHLEtBQUssUUFBUTtnQkFDaEIsTUFBTSxZQUFZLE9BQU87Z0JBQ3pCLENBQUMsQ0FBQyxlQUFlLENBQUMsYUFBYSxFQUFFLE1BQU0sQ0FBQztvQkFDcEMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUhuQyxDQUdtQyxDQUMxQyxDQUNKLEVBQ0QsY0FBYyxDQUFDLFdBQVcsRUFBRSxXQUFXLENBQUMsQ0FBQyxJQUFJO1FBQ3pDLHVCQUF1QjtRQUN2QixNQUFNLENBQ0YsVUFBQyxFQUFpQjtnQkFBaEIsa0JBQU0sRUFBRSxvQkFBTztZQUNiLE9BQUEsTUFBTSxZQUFZLE9BQU87Z0JBQ3pCLG1CQUFtQixDQUFDLFNBQVMsQ0FBQyxHQUFHLE9BQU87b0JBQ3BDLHFCQUFxQjtnQkFDekIsQ0FBQyxlQUFlLENBQUMsYUFBYSxFQUFFLE1BQU0sQ0FBQztRQUh2QyxDQUd1QyxDQUM5QyxFQUNELFdBQVcsQ0FDUCxjQUFjLENBQUMsV0FBVyxFQUFFLFNBQVMsQ0FBQyxDQUFDLElBQUksQ0FDdkMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUNQLHVCQUF1QjtRQUN2QixNQUFNLENBQ0YsVUFBQyxFQUFRO2dCQUFQLGtCQUFNO1lBQ0osT0FBQSxNQUFNLFlBQVksT0FBTztnQkFDekIsQ0FBQyxlQUFlLENBQUMsYUFBYSxFQUFFLE1BQU0sQ0FBQztRQUR2QyxDQUN1QyxDQUM5QyxDQUNKLENBQ0osQ0FDSixFQUNELE1BQU0sQ0FDVCxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDN0IsQ0FBQyxDQUFDLE1BQU0sQ0FBQztBQUNqQixDQUFDO0FBRUQsTUFBTSxDQUFDLElBQU0sdUJBQXVCLEdBQUcsSUFBSSxjQUFjLENBQ3JELHdCQUF3QixDQUMzQixDQUFDO0FBQ0YsTUFBTSxDQUFDLElBQU0sb0JBQW9CLEdBQWU7SUFDNUMsaUJBQWlCO0lBQ2pCO1FBQ0ksT0FBTyxFQUFFLHVCQUF1QjtRQUNoQyxJQUFJLEVBQUU7WUFDRixRQUFRO1lBQ1IsTUFBTTtZQUNOLFVBQVU7WUFDVixpQkFBaUI7WUFDakIsaUJBQWlCO1lBQ2pCLG9CQUFvQjtTQUN2QjtRQUNELFVBQVUsRUFBRSx3QkFBd0I7S0FDdkM7Q0FDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtET0NVTUVOVH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7RWxlbWVudFJlZiwgSW5qZWN0aW9uVG9rZW4sIFByb3ZpZGVyfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7V0lORE9XfSBmcm9tICdAbmctd2ViLWFwaXMvY29tbW9uJztcbmltcG9ydCB7XG4gICAgY29udGFpbnNPckFmdGVyLFxuICAgIGlzQ3VycmVudFRhcmdldCxcbiAgICBUdWlEZXN0cm95U2VydmljZSxcbiAgICBUdWlEaWFsb2csXG4gICAgdHlwZWRGcm9tRXZlbnQsXG59IGZyb20gJ0B0YWlnYS11aS9jZGsnO1xuaW1wb3J0IHtUdWlEaWFsb2dPcHRpb25zfSBmcm9tICdAdGFpZ2EtdWkvY29yZS9pbnRlcmZhY2VzJztcbmltcG9ydCB7dHVpR2V0Vmlld3BvcnRXaWR0aH0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvdXRpbHMvZG9tJztcbmltcG9ydCB7UE9MWU1PUlBIRVVTX0NPTlRFWFR9IGZyb20gJ0B0aW5rb2ZmL25nLXBvbHltb3JwaGV1cyc7XG5pbXBvcnQge0VNUFRZLCBtZXJnZSwgT2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge2ZpbHRlciwgc3dpdGNoTWFwVG8sIHRha2UsIHRha2VVbnRpbH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5leHBvcnQgY29uc3QgVFVJX0RJQUxPR1NfQ0xPU0UgPSBuZXcgSW5qZWN0aW9uVG9rZW48T2JzZXJ2YWJsZTx1bmtub3duPj4oXG4gICAgJ0Egc3RyZWFtIHRvIGNsb3NlIGRpYWxvZ3MnLFxuICAgIHtcbiAgICAgICAgZmFjdG9yeTogKCkgPT4gRU1QVFksXG4gICAgfSxcbik7XG5cbmNvbnN0IFNDUk9MTEJBUl9QTEFDRUhPTERFUiA9IDE3O1xuXG5leHBvcnQgZnVuY3Rpb24gZGlhbG9nQ2xvc2VTdHJlYW1GYWN0b3J5KFxuICAgIGRvY3VtZW50UmVmOiBEb2N1bWVudCxcbiAgICB3aW5kb3dSZWY6IFdpbmRvdyxcbiAgICB7bmF0aXZlRWxlbWVudH06IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxuICAgIGNsb3NlJDogT2JzZXJ2YWJsZTx2b2lkPixcbiAgICBkZXN0cm95JDogT2JzZXJ2YWJsZTx2b2lkPixcbiAgICB7ZGlzbWlzc2libGV9OiBUdWlEaWFsb2c8VHVpRGlhbG9nT3B0aW9uczx1bmtub3duPiwgdW5rbm93bj4sXG4pOiBPYnNlcnZhYmxlPHVua25vd24+IHtcbiAgICByZXR1cm4gZGlzbWlzc2libGVcbiAgICAgICAgPyBtZXJnZShcbiAgICAgICAgICAgICAgdHlwZWRGcm9tRXZlbnQobmF0aXZlRWxlbWVudCwgJ2NsaWNrJykucGlwZShmaWx0ZXIoaXNDdXJyZW50VGFyZ2V0KSksXG4gICAgICAgICAgICAgIHR5cGVkRnJvbUV2ZW50KGRvY3VtZW50UmVmLCAna2V5ZG93bicpLnBpcGUoXG4gICAgICAgICAgICAgICAgICAvLyBUT0RPOiBpZnJhbWUgd2FybmluZ1xuICAgICAgICAgICAgICAgICAgZmlsdGVyKFxuICAgICAgICAgICAgICAgICAgICAgICh7a2V5LCB0YXJnZXR9KSA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICBrZXkgPT09ICdFc2NhcGUnICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldCBpbnN0YW5jZW9mIEVsZW1lbnQgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKCFjb250YWluc09yQWZ0ZXIobmF0aXZlRWxlbWVudCwgdGFyZ2V0KSB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmF0aXZlRWxlbWVudC5jb250YWlucyh0YXJnZXQpKSxcbiAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgIHR5cGVkRnJvbUV2ZW50KGRvY3VtZW50UmVmLCAnbW91c2Vkb3duJykucGlwZShcbiAgICAgICAgICAgICAgICAgIC8vIFRPRE86IGlmcmFtZSB3YXJuaW5nXG4gICAgICAgICAgICAgICAgICBmaWx0ZXIoXG4gICAgICAgICAgICAgICAgICAgICAgKHt0YXJnZXQsIGNsaWVudFh9KSA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQgaW5zdGFuY2VvZiBFbGVtZW50ICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHR1aUdldFZpZXdwb3J0V2lkdGgod2luZG93UmVmKSAtIGNsaWVudFggPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU0NST0xMQkFSX1BMQUNFSE9MREVSICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICFjb250YWluc09yQWZ0ZXIobmF0aXZlRWxlbWVudCwgdGFyZ2V0KSxcbiAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICBzd2l0Y2hNYXBUbyhcbiAgICAgICAgICAgICAgICAgICAgICB0eXBlZEZyb21FdmVudChkb2N1bWVudFJlZiwgJ21vdXNldXAnKS5waXBlKFxuICAgICAgICAgICAgICAgICAgICAgICAgICB0YWtlKDEpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBUT0RPOiBpZnJhbWUgd2FybmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXIoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoe3RhcmdldH0pID0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0IGluc3RhbmNlb2YgRWxlbWVudCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICFjb250YWluc09yQWZ0ZXIobmF0aXZlRWxlbWVudCwgdGFyZ2V0KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgY2xvc2UkLFxuICAgICAgICAgICkucGlwZSh0YWtlVW50aWwoZGVzdHJveSQpKVxuICAgICAgICA6IGNsb3NlJDtcbn1cblxuZXhwb3J0IGNvbnN0IFRVSV9ESUFMT0dfQ0xPU0VfU1RSRUFNID0gbmV3IEluamVjdGlvblRva2VuPE9ic2VydmFibGU8dW5rbm93bj4+KFxuICAgICdEaWFsb2dzIGNsb3Npbmcgc3RyZWFtJyxcbik7XG5leHBvcnQgY29uc3QgVFVJX0RJQUxPR19QUk9WSURFUlM6IFByb3ZpZGVyW10gPSBbXG4gICAgVHVpRGVzdHJveVNlcnZpY2UsXG4gICAge1xuICAgICAgICBwcm92aWRlOiBUVUlfRElBTE9HX0NMT1NFX1NUUkVBTSxcbiAgICAgICAgZGVwczogW1xuICAgICAgICAgICAgRE9DVU1FTlQsXG4gICAgICAgICAgICBXSU5ET1csXG4gICAgICAgICAgICBFbGVtZW50UmVmLFxuICAgICAgICAgICAgVFVJX0RJQUxPR1NfQ0xPU0UsXG4gICAgICAgICAgICBUdWlEZXN0cm95U2VydmljZSxcbiAgICAgICAgICAgIFBPTFlNT1JQSEVVU19DT05URVhULFxuICAgICAgICBdLFxuICAgICAgICB1c2VGYWN0b3J5OiBkaWFsb2dDbG9zZVN0cmVhbUZhY3RvcnksXG4gICAgfSxcbl07XG4iXX0=
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { __assign, __decorate, __param } from "tslib";
|
|
2
2
|
import { AfterViewChecked, ChangeDetectionStrategy, Component, ElementRef, HostBinding, Inject, NgZone, ViewChild, } from '@angular/core';
|
|
3
3
|
import { ANIMATION_FRAME, WINDOW } from '@ng-web-apis/common';
|
|
4
|
-
import { AbstractTuiPortalHostComponent, getClosestFocusable, inRange, POLLING_TIME, px, TuiActiveZoneDirective, tuiAssertIsHTMLElement, TuiDestroyService, TuiDropdownHostComponent,
|
|
4
|
+
import { AbstractTuiPortalHostComponent, getClosestFocusable, inRange, POLLING_TIME, px, TuiActiveZoneDirective, tuiAssertIsHTMLElement, TuiDestroyService, TuiDropdownHostComponent, TuiOverscrollModeT, tuiPure, tuiZonefree, } from '@taiga-ui/cdk';
|
|
5
5
|
import { tuiDropdownAnimation } from '@taiga-ui/core/animations';
|
|
6
6
|
import { DEFAULT_MARGIN, DEFAULT_MAX_WIDTH } from '@taiga-ui/core/constants';
|
|
7
7
|
import { TUI_ANIMATION_OPTIONS, TUI_DROPDOWN_DIRECTIVE } from '@taiga-ui/core/tokens';
|
|
8
|
-
import { getScreenWidth } from '@taiga-ui/core/utils/dom';
|
|
8
|
+
import { getScreenWidth, tuiGetViewportWidth } from '@taiga-ui/core/utils/dom';
|
|
9
9
|
import { fromEvent, merge, Observable } from 'rxjs';
|
|
10
10
|
import { takeUntil, throttleTime } from 'rxjs/operators';
|
|
11
11
|
/**
|
|
@@ -310,4 +310,4 @@ var TuiDropdownBoxComponent = /** @class */ (function () {
|
|
|
310
310
|
return TuiDropdownBoxComponent;
|
|
311
311
|
}());
|
|
312
312
|
export { TuiDropdownBoxComponent };
|
|
313
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24tYm94LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B0YWlnYS11aS9jb3JlL2NvbXBvbmVudHMvZHJvcGRvd24tYm94LyIsInNvdXJjZXMiOlsiZHJvcGRvd24tYm94LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQ0EsT0FBTyxFQUNILGdCQUFnQixFQUNoQix1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFVBQVUsRUFDVixXQUFXLEVBQ1gsTUFBTSxFQUNOLE1BQU0sRUFDTixTQUFTLEdBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLGVBQWUsRUFBRSxNQUFNLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUM1RCxPQUFPLEVBQ0gsOEJBQThCLEVBQzlCLG1CQUFtQixFQUNuQixPQUFPLEVBQ1AsWUFBWSxFQUNaLEVBQUUsRUFDRixzQkFBc0IsRUFDdEIsc0JBQXNCLEVBQ3RCLGlCQUFpQixFQUNqQix3QkFBd0IsRUFDeEIsbUJBQW1CLEVBQ25CLGtCQUFrQixFQUNsQixPQUFPLEVBQ1AsV0FBVyxHQUNkLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQy9ELE9BQU8sRUFBQyxjQUFjLEVBQUUsaUJBQWlCLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUczRSxPQUFPLEVBQUMscUJBQXFCLEVBQUUsc0JBQXNCLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUVwRixPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFDeEQsT0FBTyxFQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ2xELE9BQU8sRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFdkQ7O0dBRUc7QUFDSCxvQkFBb0I7QUFDcEIsOEZBQThGO0FBQzlGLFdBQVc7QUFTWDtJQXNCSSxp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LEVBQUUsdUJBQXVCLENBQUMsT0FBTztZQUNoRCxTQUFTLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQztZQUM5QixVQUFVLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQzs7U0FDckMsQ0FBQztRQXdCTyxXQUFBLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFBO1FBRXpCLFdBQUEsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFBO1FBQ2QsV0FBQSxNQUFNLENBQUMsc0JBQXNCLENBQUMsQ0FBQTtRQUM5QixXQUFBLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUNkLFdBQUEsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFBO1FBQ2xCLFdBQUEsTUFBTSxDQUFDLDhCQUE4QixDQUFDLENBQUE7UUFFdEMsV0FBQSxNQUFNLENBQUMscUJBQXFCLENBQUMsQ0FBQTtRQUM3QixXQUFBLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQTtPQWhDbkIsdUJBQXVCLENBc1ZuQztJQUFELDhCQUFDO0NBQUEsQUF0VkQsSUFzVkM7U0F0VlksdUJBQXVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBbmltYXRpb25PcHRpb25zfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcbmltcG9ydCB7XG4gICAgQWZ0ZXJWaWV3Q2hlY2tlZCxcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb21wb25lbnQsXG4gICAgRWxlbWVudFJlZixcbiAgICBIb3N0QmluZGluZyxcbiAgICBJbmplY3QsXG4gICAgTmdab25lLFxuICAgIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0FOSU1BVElPTl9GUkFNRSwgV0lORE9XfSBmcm9tICdAbmctd2ViLWFwaXMvY29tbW9uJztcbmltcG9ydCB7XG4gICAgQWJzdHJhY3RUdWlQb3J0YWxIb3N0Q29tcG9uZW50LFxuICAgIGdldENsb3Nlc3RGb2N1c2FibGUsXG4gICAgaW5SYW5nZSxcbiAgICBQT0xMSU5HX1RJTUUsXG4gICAgcHgsXG4gICAgVHVpQWN0aXZlWm9uZURpcmVjdGl2ZSxcbiAgICB0dWlBc3NlcnRJc0hUTUxFbGVtZW50LFxuICAgIFR1aURlc3Ryb3lTZXJ2aWNlLFxuICAgIFR1aURyb3Bkb3duSG9zdENvbXBvbmVudCxcbiAgICB0dWlHZXRWaWV3cG9ydFdpZHRoLFxuICAgIFR1aU92ZXJzY3JvbGxNb2RlVCxcbiAgICB0dWlQdXJlLFxuICAgIHR1aVpvbmVmcmVlLFxufSBmcm9tICdAdGFpZ2EtdWkvY2RrJztcbmltcG9ydCB7dHVpRHJvcGRvd25BbmltYXRpb259IGZyb20gJ0B0YWlnYS11aS9jb3JlL2FuaW1hdGlvbnMnO1xuaW1wb3J0IHtERUZBVUxUX01BUkdJTiwgREVGQVVMVF9NQVhfV0lEVEh9IGZyb20gJ0B0YWlnYS11aS9jb3JlL2NvbnN0YW50cyc7XG5pbXBvcnQge1R1aURyb3Bkb3duQW5pbWF0aW9ufSBmcm9tICdAdGFpZ2EtdWkvY29yZS9lbnVtcyc7XG5pbXBvcnQge1R1aUFuaW1hdGlvbk9wdGlvbnMsIFR1aURyb3Bkb3dufSBmcm9tICdAdGFpZ2EtdWkvY29yZS9pbnRlcmZhY2VzJztcbmltcG9ydCB7VFVJX0FOSU1BVElPTl9PUFRJT05TLCBUVUlfRFJPUERPV05fRElSRUNUSVZFfSBmcm9tICdAdGFpZ2EtdWkvY29yZS90b2tlbnMnO1xuaW1wb3J0IHtUdWlIb3Jpem9udGFsRGlyZWN0aW9uLCBUdWlWZXJ0aWNhbERpcmVjdGlvbn0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvdHlwZXMnO1xuaW1wb3J0IHtnZXRTY3JlZW5XaWR0aH0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvdXRpbHMvZG9tJztcbmltcG9ydCB7ZnJvbUV2ZW50LCBtZXJnZSwgT2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge3Rha2VVbnRpbCwgdGhyb3R0bGVUaW1lfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbi8qKlxuICogIFRoaXMgY29tcG9uZW50IGlzIHVzZWQgdG8gc2hvdyB0ZW1wbGF0ZSBpbiBhIHBvcnRhbCB1c2luZyBkZWZhdWx0IHN0eWxlIG9mIHdoaXRlIHJvdW5kZWQgYm94IHdpdGggYSBzaGFkb3dcbiAqL1xuLy8gQGJhZCBUT0RPOiBPblB1c2hcbi8vIEFtYmllbnQgdHlwZSBjYW5ub3QgYmUgdXNlZCB3aXRob3V0IGR5bmFtaWMgaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvYW5ndWxhci9pc3N1ZXMvMjMzOTVcbi8vIEBkeW5hbWljXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3R1aS1kcm9wZG93bi1ib3gnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9kcm9wZG93bi1ib3gudGVtcGxhdGUuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vZHJvcGRvd24tYm94LnN0eWxlLmxlc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LkRlZmF1bHQsXG4gICAgcHJvdmlkZXJzOiBbVHVpRGVzdHJveVNlcnZpY2VdLFxuICAgIGFuaW1hdGlvbnM6IFt0dWlEcm9wZG93bkFuaW1hdGlvbl0sXG59KVxuZXhwb3J0IGNsYXNzIFR1aURyb3Bkb3duQm94Q29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3Q2hlY2tlZCB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBhbmltYXRpb25Ub3AgPSB7XG4gICAgICAgIHZhbHVlOiBUdWlEcm9wZG93bkFuaW1hdGlvbi5GYWRlSW5Ub3AsXG4gICAgICAgIC4uLnRoaXMub3B0aW9ucyxcbiAgICB9O1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBhbmltYXRpb25Cb3R0b20gPSB7XG4gICAgICAgIHZhbHVlOiBUdWlEcm9wZG93bkFuaW1hdGlvbi5GYWRlSW5Cb3R0b20sXG4gICAgICAgIC4uLnRoaXMub3B0aW9ucyxcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogSXMgcHJldmlvdXMgcG9zaXRpb24gb24gdG9wICh0byBwcmV2ZW50IGp1bXBpbmcgdXAgYW5kIGRvd24gb24gc2Nyb2xsKVxuICAgICAqL1xuICAgIHByaXZhdGUgcHJldkRpcmVjdGlvbklzVG9wID0gZmFsc2U7XG5cbiAgICBASG9zdEJpbmRpbmcoJ0B0dWlEcm9wZG93bkFuaW1hdGlvbicpXG4gICAgZHJvcGRvd25BbmltYXRpb24hOiBUdWlBbmltYXRpb25PcHRpb25zO1xuXG4gICAgQFZpZXdDaGlsZCgnY29udGVudCcsIHtyZWFkOiBFbGVtZW50UmVmfSlcbiAgICByZWFkb25seSBjb250ZW50RWxlbWVudFJlZj86IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBJbmplY3QoVHVpRGVzdHJveVNlcnZpY2UpXG4gICAgICAgIGRlc3Ryb3kkOiBUdWlEZXN0cm95U2VydmljZSxcbiAgICAgICAgQEluamVjdChOZ1pvbmUpIG5nWm9uZTogTmdab25lLFxuICAgICAgICBASW5qZWN0KFRVSV9EUk9QRE9XTl9ESVJFQ1RJVkUpIHJlYWRvbmx5IGRpcmVjdGl2ZTogVHVpRHJvcGRvd24sXG4gICAgICAgIEBJbmplY3QoV0lORE9XKSBwcml2YXRlIHJlYWRvbmx5IHdpbmRvd1JlZjogV2luZG93LFxuICAgICAgICBASW5qZWN0KEVsZW1lbnRSZWYpIHByaXZhdGUgcmVhZG9ubHkgZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICAgICAgIEBJbmplY3QoQWJzdHJhY3RUdWlQb3J0YWxIb3N0Q29tcG9uZW50KVxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHBvcnRhbEhvc3Q6IFR1aURyb3Bkb3duSG9zdENvbXBvbmVudCxcbiAgICAgICAgQEluamVjdChUVUlfQU5JTUFUSU9OX09QVElPTlMpIHByaXZhdGUgcmVhZG9ubHkgb3B0aW9uczogQW5pbWF0aW9uT3B0aW9ucyxcbiAgICAgICAgQEluamVjdChBTklNQVRJT05fRlJBTUUpIGFuaW1hdGlvbkZyYW1lJDogT2JzZXJ2YWJsZTxudW1iZXI+LFxuICAgICkge1xuICAgICAgICBtZXJnZShcbiAgICAgICAgICAgIGFuaW1hdGlvbkZyYW1lJC5waXBlKHRocm90dGxlVGltZShQT0xMSU5HX1RJTUUpKSxcbiAgICAgICAgICAgIHRoaXMuZGlyZWN0aXZlLnJlZnJlc2gkLFxuICAgICAgICAgICAgZnJvbUV2ZW50KHRoaXMud2luZG93UmVmLCAncmVzaXplJyksXG4gICAgICAgIClcbiAgICAgICAgICAgIC5waXBlKHR1aVpvbmVmcmVlKG5nWm9uZSksIHRha2VVbnRpbChkZXN0cm95JCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmNhbGN1bGF0ZVBvc2l0aW9uQW5kU2l6ZSgpO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgZ2V0IG92ZXJzY3JvbGwoKTogVHVpT3ZlcnNjcm9sbE1vZGVUIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaW5Nb2RhbCA/ICdhbGwnIDogJ3Njcm9sbCc7XG4gICAgfVxuXG4gICAgQHR1aVB1cmVcbiAgICBnZXRDb250ZXh0PFQgZXh0ZW5kcyBvYmplY3Q+KFxuICAgICAgICBjb250ZXh0PzogVCxcbiAgICAgICAgYWN0aXZlWm9uZT86IFR1aUFjdGl2ZVpvbmVEaXJlY3RpdmUsXG4gICAgKTpcbiAgICAgICAgfCAoVCAmIHthY3RpdmVab25lPzogVHVpQWN0aXZlWm9uZURpcmVjdGl2ZX0pXG4gICAgICAgIHwge2FjdGl2ZVpvbmU/OiBUdWlBY3RpdmVab25lRGlyZWN0aXZlfSB7XG4gICAgICAgIHJldHVybiB7Li4uY29udGV4dCwgYWN0aXZlWm9uZX07XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdDaGVja2VkKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNhbGN1bGF0ZVBvc2l0aW9uQW5kU2l6ZSgpO1xuICAgIH1cblxuICAgIG9uVG9wRm9jdXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMubW92ZUZvY3VzT3V0c2lkZSh0cnVlKTtcbiAgICB9XG5cbiAgICBvbkJvdHRvbUZvY3VzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLm1vdmVGb2N1c091dHNpZGUoZmFsc2UpO1xuICAgIH1cblxuICAgIEB0dWlQdXJlXG4gICAgcHJpdmF0ZSBnZXQgaW5Nb2RhbCgpOiBib29sZWFuIHtcbiAgICAgICAgLy8gQGF3ZnVsIFRPRE86IGdldCByaWQgb2YgY29tcG9uZW50IHRhZyBuYW1lIGRlcGVuZGVuY3lcbiAgICAgICAgcmV0dXJuICEhdGhpcy5kaXJlY3RpdmUuaG9zdC5jbG9zZXN0KCd0dWktZGlhbG9nLWhvc3QnKTtcbiAgICB9XG5cbiAgICBAdHVpUHVyZVxuICAgIHByaXZhdGUgZ2V0IGluT3B0aW9uKCk6IGJvb2xlYW4ge1xuICAgICAgICAvLyBAYXdmdWwgVE9ETzogZ2V0IHJpZCBvZiBjb21wb25lbnQgdGFnIG5hbWUgZGVwZW5kZW5jeVxuICAgICAgICByZXR1cm4gISF0aGlzLmRpcmVjdGl2ZS5ob3N0LmNsb3Nlc3QoJ1t0dWlPcHRpb25dJyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjYWxjdWxhdGVQb3NpdGlvbkFuZFNpemUoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHtjbGllbnRSZWN0fSA9IHRoaXMuZGlyZWN0aXZlO1xuICAgICAgICBjb25zdCB7c3R5bGV9ID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgIGNvbnN0IGhvc3RSZWN0ID0gdGhpcy5kaXJlY3RpdmUuZml4ZWRcbiAgICAgICAgICAgID8gdGhpcy5wb3J0YWxIb3N0LmZpeGVkUG9zaXRpb25PZmZzZXQoKVxuICAgICAgICAgICAgOiB0aGlzLnBvcnRhbEhvc3QuY2xpZW50UmVjdDtcblxuICAgICAgICBzdHlsZS5wb3NpdGlvbiA9IHRoaXMuZGlyZWN0aXZlLmZpeGVkID8gJ2ZpeGVkJyA6ICdhYnNvbHV0ZSc7XG5cbiAgICAgICAgdGhpcy5jYWxjdWxhdGVWZXJ0aWNhbFBvc2l0aW9uKHN0eWxlLCBjbGllbnRSZWN0LCBob3N0UmVjdCk7XG4gICAgICAgIHRoaXMuY2FsY3VsYXRlSG9yaXpvbnRhbFBvc2l0aW9uKHN0eWxlLCBjbGllbnRSZWN0LCBob3N0UmVjdCk7XG4gICAgICAgIHRoaXMuY2FsY3VsYXRlV2lkdGgoc3R5bGUsIGNsaWVudFJlY3QpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0RmluYWxBbGlnbihcbiAgICAgICAgc3R5bGU6IENTU1N0eWxlRGVjbGFyYXRpb24sXG4gICAgICAgIGRpcmVjdGl2ZVJlY3Q6IENsaWVudFJlY3QsXG4gICAgKTogVHVpSG9yaXpvbnRhbERpcmVjdGlvbiB7XG4gICAgICAgIGNvbnN0IGRyb3Bkb3duUmVjdCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgICBjb25zdCBkcm9wZG93bldpZHRoID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGg7XG4gICAgICAgIGNvbnN0IHNjcmVlbldpZHRoID0gZ2V0U2NyZWVuV2lkdGgodGhpcy53aW5kb3dSZWYuZG9jdW1lbnQpO1xuICAgICAgICBjb25zdCBpc0Ryb3Bkb3duU2l6ZUh5cG90aGV0aWNhbGx5Rml0c1ZpZXdwb3J0ID1cbiAgICAgICAgICAgIGRpcmVjdGl2ZVJlY3QubGVmdCArIGRyb3Bkb3duV2lkdGggPCBzY3JlZW5XaWR0aCB8fFxuICAgICAgICAgICAgZGlyZWN0aXZlUmVjdC5yaWdodCAtIGRyb3Bkb3duV2lkdGggPiAwO1xuICAgICAgICBjb25zdCBpc0Ryb3Bkb3duU2l6ZUFjdHVhbGx5Rml0c1ZpZXdwb3J0ID1cbiAgICAgICAgICAgIGRyb3Bkb3duUmVjdC5yaWdodCA8PSBzY3JlZW5XaWR0aCAmJiBkcm9wZG93blJlY3QubGVmdCA+PSAwO1xuICAgICAgICBsZXQgZmluYWxBbGlnbjogVHVpSG9yaXpvbnRhbERpcmVjdGlvbiA9IHRoaXMuZGlyZWN0aXZlLmFsaWduO1xuXG4gICAgICAgIHN3aXRjaCAodGhpcy5kaXJlY3RpdmUuYWxpZ24pIHtcbiAgICAgICAgICAgIGNhc2UgJ2xlZnQnOlxuICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgICAgaXNEcm9wZG93blNpemVIeXBvdGhldGljYWxseUZpdHNWaWV3cG9ydCAmJlxuICAgICAgICAgICAgICAgICAgICBkcm9wZG93blJlY3QucmlnaHQgPiBzY3JlZW5XaWR0aFxuICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICBmaW5hbEFsaWduID0gJ3JpZ2h0JztcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ3JpZ2h0JzpcbiAgICAgICAgICAgICAgICBpZiAoaXNEcm9wZG93blNpemVIeXBvdGhldGljYWxseUZpdHNWaWV3cG9ydCAmJiBkcm9wZG93blJlY3QubGVmdCA8IDApIHtcbiAgICAgICAgICAgICAgICAgICAgZmluYWxBbGlnbiA9ICdsZWZ0JztcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChzdHlsZS5yaWdodCA9PT0gJ2F1dG8nICYmIGlzRHJvcGRvd25TaXplQWN0dWFsbHlGaXRzVmlld3BvcnQpIHtcbiAgICAgICAgICAgIGZpbmFsQWxpZ24gPSAnbGVmdCc7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoc3R5bGUubGVmdCA9PT0gJ2F1dG8nICYmIGlzRHJvcGRvd25TaXplQWN0dWFsbHlGaXRzVmlld3BvcnQpIHtcbiAgICAgICAgICAgIGZpbmFsQWxpZ24gPSAncmlnaHQnO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGZpbmFsQWxpZ247XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2FsY3VsYXRlcyBob3Jpem9udGFsIHBvc2l0aW9uXG4gICAgICpcbiAgICAgKiBAcGFyYW0gc3R5bGUgZHJvcGRvd25Cb3ggZWxlbWVudFJlZiBzdHlsZXMgb2JqZWN0XG4gICAgICogQHBhcmFtIGRpcmVjdGl2ZVJlY3QgQ2xpZW50UmVjdCBvZiBob3N0aW5nIGRpcmVjdGl2ZVxuICAgICAqIEBwYXJhbSBob3N0UmVjdCBDbGllbnRSZWN0IG9mICBwb3J0YWwgaG9zdFxuICAgICAqL1xuICAgIHByaXZhdGUgY2FsY3VsYXRlSG9yaXpvbnRhbFBvc2l0aW9uKFxuICAgICAgICBzdHlsZTogQ1NTU3R5bGVEZWNsYXJhdGlvbixcbiAgICAgICAgZGlyZWN0aXZlUmVjdDogQ2xpZW50UmVjdCxcbiAgICAgICAgaG9zdFJlY3Q6IENsaWVudFJlY3QsXG4gICAgKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IG9mZnNldCA9IHRoaXMuZGlyZWN0aXZlLnNpZGVkXG4gICAgICAgICAgICA/IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoICsgREVGQVVMVF9NQVJHSU5cbiAgICAgICAgICAgIDogMDtcbiAgICAgICAgY29uc3QgbGVmdCA9IE1hdGguY2VpbChkaXJlY3RpdmVSZWN0LmxlZnQgLSBob3N0UmVjdC5sZWZ0IC0gb2Zmc2V0KTtcbiAgICAgICAgY29uc3QgcmlnaHQgPSBNYXRoLmZsb29yKGhvc3RSZWN0LnJpZ2h0IC0gZGlyZWN0aXZlUmVjdC5yaWdodCAtIG9mZnNldCk7XG4gICAgICAgIGNvbnN0IHZpZXdwb3J0V2lkdGggPSB0dWlHZXRWaWV3cG9ydFdpZHRoKHRoaXMud2luZG93UmVmKTtcblxuICAgICAgICBzd2l0Y2ggKHRoaXMuZ2V0RmluYWxBbGlnbihzdHlsZSwgZGlyZWN0aXZlUmVjdCkpIHtcbiAgICAgICAgICAgIGNhc2UgJ2xlZnQnOlxuICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgICAgcmlnaHQgKyBERUZBVUxUX01BUkdJTiA+IHZpZXdwb3J0V2lkdGggfHxcbiAgICAgICAgICAgICAgICAgICAgaW5SYW5nZShsZWZ0ICsgREVGQVVMVF9NQVJHSU4sIDAsIHZpZXdwb3J0V2lkdGgpXG4gICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgIHN0eWxlLmxlZnQgPSBweChsZWZ0KTtcbiAgICAgICAgICAgICAgICAgICAgc3R5bGUucmlnaHQgPSAnYXV0byc7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgc3R5bGUubGVmdCA9ICdhdXRvJztcbiAgICAgICAgICAgICAgICAgICAgc3R5bGUucmlnaHQgPSBweChyaWdodCk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdyaWdodCc6XG4gICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgICBpblJhbmdlKHJpZ2h0ICsgREVGQVVMVF9NQVJHSU4sIDAsIHZpZXdwb3J0V2lkdGgpIHx8XG4gICAgICAgICAgICAgICAgICAgIGxlZnQgKyBERUZBVUxUX01BUkdJTiA+IHZpZXdwb3J0V2lkdGhcbiAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgc3R5bGUubGVmdCA9ICdhdXRvJztcbiAgICAgICAgICAgICAgICAgICAgc3R5bGUucmlnaHQgPSBweChyaWdodCk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgc3R5bGUubGVmdCA9IHB4KGxlZnQpO1xuICAgICAgICAgICAgICAgICAgICBzdHlsZS5yaWdodCA9ICdhdXRvJztcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENhbGN1bGF0ZXMgdmVydGljYWwgcG9zaXRpb24gYW5kIGhlaWdodFxuICAgICAqXG4gICAgICogQHBhcmFtIHN0eWxlIGRyb3Bkb3duQm94IGVsZW1lbnRSZWYgc3R5bGVzIG9iamVjdFxuICAgICAqIEBwYXJhbSBkaXJlY3RpdmVSZWN0IENsaWVudFJlY3Qgb2YgaG9zdGluZyBkaXJlY3RpdmVcbiAgICAgKiBAcGFyYW0gaG9zdFJlY3QgQ2xpZW50UmVjdCBvZiAgcG9ydGFsIGhvc3RcbiAgICAgKi9cbiAgICBwcml2YXRlIGNhbGN1bGF0ZVZlcnRpY2FsUG9zaXRpb24oXG4gICAgICAgIHN0eWxlOiBDU1NTdHlsZURlY2xhcmF0aW9uLFxuICAgICAgICBkaXJlY3RpdmVSZWN0OiBDbGllbnRSZWN0LFxuICAgICAgICBob3N0UmVjdDogQ2xpZW50UmVjdCxcbiAgICApOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgd2luZG93SGVpZ2h0ID0gdGhpcy53aW5kb3dSZWYuaW5uZXJIZWlnaHQ7XG4gICAgICAgIC8vIE1heGltdW0gaGVpZ2h0IG9mIHRoZSBib3hcbiAgICAgICAgY29uc3QgYm94SGVpZ2h0TGltaXQgPSBNYXRoLm1pbihcbiAgICAgICAgICAgIHRoaXMuZGlyZWN0aXZlLm1heEhlaWdodCxcbiAgICAgICAgICAgIHdpbmRvd0hlaWdodCAtIERFRkFVTFRfTUFSR0lOICogMixcbiAgICAgICAgKTtcbiAgICAgICAgY29uc3Qgb2Zmc2V0ID0gdGhpcy5kaXJlY3RpdmUuc2lkZWRcbiAgICAgICAgICAgID8gREVGQVVMVF9NQVJHSU4gLSBkaXJlY3RpdmVSZWN0LmhlaWdodFxuICAgICAgICAgICAgOiBERUZBVUxUX01BUkdJTiAqIDI7XG4gICAgICAgIGNvbnN0IHRvcEF2YWlsYWJsZUhlaWdodCA9IGRpcmVjdGl2ZVJlY3QudG9wIC0gb2Zmc2V0O1xuICAgICAgICBjb25zdCBib3R0b21BdmFpbGFibGVIZWlnaHQgPSB3aW5kb3dIZWlnaHQgLSBkaXJlY3RpdmVSZWN0LmJvdHRvbSAtIG9mZnNldDtcbiAgICAgICAgY29uc3QgZmluYWxEaXJlY3Rpb24gPSB0aGlzLmdldEZpbmFsRGlyZWN0aW9uKGRpcmVjdGl2ZVJlY3QpO1xuICAgICAgICBjb25zdCBvcHRpb25PZmZzZXQgPSB0aGlzLmluT3B0aW9uID8gREVGQVVMVF9NQVJHSU4gKiAyIDogMDtcblxuICAgICAgICB0aGlzLnByZXZEaXJlY3Rpb25Jc1RvcCA9IGZpbmFsRGlyZWN0aW9uID09PSAndG9wJztcblxuICAgICAgICBpZiAoZmluYWxEaXJlY3Rpb24gPT09ICd0b3AnKSB7XG4gICAgICAgICAgICB0aGlzLmRyb3Bkb3duQW5pbWF0aW9uID0gdGhpcy5hbmltYXRpb25Cb3R0b207XG5cbiAgICAgICAgICAgIHN0eWxlLm1heEhlaWdodCA9IHB4KE1hdGgubWluKGJveEhlaWdodExpbWl0LCB0b3BBdmFpbGFibGVIZWlnaHQpKTtcbiAgICAgICAgICAgIHN0eWxlLnRvcCA9ICdhdXRvJztcbiAgICAgICAgICAgIHN0eWxlLmJvdHRvbSA9IHB4KFxuICAgICAgICAgICAgICAgIGhvc3RSZWN0LmJvdHRvbSAtXG4gICAgICAgICAgICAgICAgICAgIGRpcmVjdGl2ZVJlY3QudG9wIC1cbiAgICAgICAgICAgICAgICAgICAgREVGQVVMVF9NQVJHSU4gK1xuICAgICAgICAgICAgICAgICAgICBvZmZzZXQgLVxuICAgICAgICAgICAgICAgICAgICBvcHRpb25PZmZzZXQsXG4gICAgICAgICAgICApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5kcm9wZG93bkFuaW1hdGlvbiA9IHRoaXMuYW5pbWF0aW9uVG9wO1xuXG4gICAgICAgICAgICBzdHlsZS5tYXhIZWlnaHQgPSBweChNYXRoLm1pbihib3hIZWlnaHRMaW1pdCwgYm90dG9tQXZhaWxhYmxlSGVpZ2h0KSk7XG4gICAgICAgICAgICBzdHlsZS50b3AgPSBweChcbiAgICAgICAgICAgICAgICBkaXJlY3RpdmVSZWN0LmJvdHRvbSAtXG4gICAgICAgICAgICAgICAgICAgIGhvc3RSZWN0LnRvcCAtXG4gICAgICAgICAgICAgICAgICAgIERFRkFVTFRfTUFSR0lOICtcbiAgICAgICAgICAgICAgICAgICAgb2Zmc2V0IC1cbiAgICAgICAgICAgICAgICAgICAgb3B0aW9uT2Zmc2V0LFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHN0eWxlLmJvdHRvbSA9ICdhdXRvJztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0RmluYWxEaXJlY3Rpb24oZGlyZWN0aXZlUmVjdDogQ2xpZW50UmVjdCk6IFR1aVZlcnRpY2FsRGlyZWN0aW9uIHwgbnVsbCB7XG4gICAgICAgIGNvbnN0IHdpbmRvd0hlaWdodCA9IHRoaXMud2luZG93UmVmLmlubmVySGVpZ2h0O1xuICAgICAgICBjb25zdCBvZmZzZXQgPSB0aGlzLmRpcmVjdGl2ZS5zaWRlZFxuICAgICAgICAgICAgPyBERUZBVUxUX01BUkdJTiAtIGRpcmVjdGl2ZVJlY3QuaGVpZ2h0XG4gICAgICAgICAgICA6IERFRkFVTFRfTUFSR0lOICogMjtcblxuICAgICAgICAvLyBNYXhpbXVtIHNwYWNlIGF2YWlsYWJsZSBvbiB0b3AgYW5kIG9uIHRoZSBib3R0b20gaW4gdGhlIHZpZXdwb3J0XG4gICAgICAgIGNvbnN0IHRvcEF2YWlsYWJsZUhlaWdodCA9IGRpcmVjdGl2ZVJlY3QudG9wIC0gb2Zmc2V0O1xuICAgICAgICBjb25zdCBib3R0b21BdmFpbGFibGVIZWlnaHQgPSB3aW5kb3dIZWlnaHQgLSBkaXJlY3RpdmVSZWN0LmJvdHRvbSAtIG9mZnNldDtcblxuICAgICAgICBsZXQgZmluYWxEaXJlY3Rpb246IFR1aVZlcnRpY2FsRGlyZWN0aW9uIHwgbnVsbCA9IG51bGw7XG5cbiAgICAgICAgLy8gR2l2ZW4gZGlyZWN0aW9uIGlzIGFwcGxpZWQgaWYgd2UgY2FuIGZpdCB0aGUgYm94IGluIHRoZSBsaW1pdHMgdGhhdCB3YXlcbiAgICAgICAgc3dpdGNoICh0aGlzLmRpcmVjdGl2ZS5kaXJlY3Rpb24pIHtcbiAgICAgICAgICAgIGNhc2UgJ3RvcCc6XG4gICAgICAgICAgICAgICAgaWYgKHRvcEF2YWlsYWJsZUhlaWdodCA+PSB0aGlzLmRpcmVjdGl2ZS5taW5IZWlnaHQpIHtcbiAgICAgICAgICAgICAgICAgICAgZmluYWxEaXJlY3Rpb24gPSAndG9wJztcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ2JvdHRvbSc6XG4gICAgICAgICAgICAgICAgaWYgKGJvdHRvbUF2YWlsYWJsZUhlaWdodCA+PSB0aGlzLmRpcmVjdGl2ZS5taW5IZWlnaHQpIHtcbiAgICAgICAgICAgICAgICAgICAgZmluYWxEaXJlY3Rpb24gPSAnYm90dG9tJztcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIE1heGltdW0gaGVpZ2h0IG9mIHRoZSBib3hcbiAgICAgICAgY29uc3QgYm94SGVpZ2h0TGltaXQgPSBNYXRoLm1pbihcbiAgICAgICAgICAgIHRoaXMuZGlyZWN0aXZlLm1heEhlaWdodCxcbiAgICAgICAgICAgIHdpbmRvd0hlaWdodCAtIERFRkFVTFRfTUFSR0lOICogMixcbiAgICAgICAgKTtcblxuICAgICAgICAvLyBDaG9vc2UgZGlyZWN0aW9uIGlmIGdpdmVuIGRpcmVjdGlvbiBkaWQgbm90IGZpdFxuICAgICAgICBpZiAoZmluYWxEaXJlY3Rpb24gPT09IG51bGwgJiYgdGhpcy5jb250ZW50RWxlbWVudFJlZikge1xuICAgICAgICAgICAgLy8gQm94IGhlaWdodCBpZiBpdCBmaXRzIHdpdGhvdXQgc2Nyb2xsXG4gICAgICAgICAgICBjb25zdCB2aXN1YWxIZWlnaHQgPSBNYXRoLm1pbihcbiAgICAgICAgICAgICAgICB0aGlzLmNvbnRlbnRFbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuaGVpZ2h0ICtcbiAgICAgICAgICAgICAgICAgICAgKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50Lm9mZnNldEhlaWdodCAtXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jbGllbnRIZWlnaHQpLFxuICAgICAgICAgICAgICAgIGJveEhlaWdodExpbWl0LFxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgLy8gSWYgdGhlcmUgaXMgZW5vdWdoIHNwYWNlIHRvIGZpdCBiZWxvdyB3aXRob3V0IHNjcm9sbCxcbiAgICAgICAgICAgIC8vIGNob29zZSAnYm90dG9tJywgdW5sZXNzIGl0IHdhcyBwcmV2aW91c2x5IG9uIHRoZSB0b3BcbiAgICAgICAgICAgIGlmICh0aGlzLnByZXZEaXJlY3Rpb25Jc1RvcCAmJiB0b3BBdmFpbGFibGVIZWlnaHQgPj0gdmlzdWFsSGVpZ2h0KSB7XG4gICAgICAgICAgICAgICAgZmluYWxEaXJlY3Rpb24gPSAndG9wJztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoYm90dG9tQXZhaWxhYmxlSGVpZ2h0ID49IHZpc3VhbEhlaWdodCkge1xuICAgICAgICAgICAgICAgIGZpbmFsRGlyZWN0aW9uID0gJ2JvdHRvbSc7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIC8vIENvcm5lciBjYXNlIOKAlCBzZWxlY3QgZGlyZWN0aW9uIHdpdGggbW9yZSBzcGFjZVxuICAgICAgICAgICAgICAgIGZpbmFsRGlyZWN0aW9uID1cbiAgICAgICAgICAgICAgICAgICAgYm90dG9tQXZhaWxhYmxlSGVpZ2h0ID49IHRvcEF2YWlsYWJsZUhlaWdodCA/ICdib3R0b20nIDogJ3RvcCc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZmluYWxEaXJlY3Rpb247XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2FsY3VsYXRlcyB3aWR0aFxuICAgICAqXG4gICAgICogQHBhcmFtIHN0eWxlIGRyb3Bkb3duQm94IGVsZW1lbnRSZWYgc3R5bGVzIG9iamVjdFxuICAgICAqIEBwYXJhbSBkaXJlY3RpdmVSZWN0IENsaWVudFJlY3Qgb2YgaG9zdGluZyBkaXJlY3RpdmVcbiAgICAgKi9cbiAgICBwcml2YXRlIGNhbGN1bGF0ZVdpZHRoKHN0eWxlOiBDU1NTdHlsZURlY2xhcmF0aW9uLCBkaXJlY3RpdmVSZWN0OiBDbGllbnRSZWN0KTogdm9pZCB7XG4gICAgICAgIHN0eWxlLndpZHRoID1cbiAgICAgICAgICAgIHRoaXMuZGlyZWN0aXZlLmxpbWl0TWluV2lkdGggPT09ICdmaXhlZCcgJiYgIXRoaXMuZGlyZWN0aXZlLnNpZGVkXG4gICAgICAgICAgICAgICAgPyBweChkaXJlY3RpdmVSZWN0LndpZHRoKVxuICAgICAgICAgICAgICAgIDogJyc7XG5cbiAgICAgICAgaWYgKHRoaXMuZGlyZWN0aXZlLmxpbWl0TWluV2lkdGggPT09ICdtaW4nICYmICF0aGlzLmRpcmVjdGl2ZS5zaWRlZCkge1xuICAgICAgICAgICAgc3R5bGUubWluV2lkdGggPSBweChkaXJlY3RpdmVSZWN0LndpZHRoKTtcbiAgICAgICAgICAgIHN0eWxlLm1heFdpZHRoID0gcHgoREVGQVVMVF9NQVhfV0lEVEgpO1xuXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBzdHlsZS5taW5XaWR0aCA9ICcnO1xuICAgICAgICBzdHlsZS5tYXhXaWR0aCA9ICcnO1xuICAgIH1cblxuICAgIHByaXZhdGUgbW92ZUZvY3VzT3V0c2lkZShwcmV2aW91czogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICBjb25zdCB7aG9zdH0gPSB0aGlzLmRpcmVjdGl2ZTtcbiAgICAgICAgY29uc3Qge293bmVyRG9jdW1lbnR9ID0gaG9zdDtcbiAgICAgICAgY29uc3Qgcm9vdCA9IG93bmVyRG9jdW1lbnQgPyBvd25lckRvY3VtZW50LmJvZHkgOiBob3N0O1xuXG4gICAgICAgIHR1aUFzc2VydElzSFRNTEVsZW1lbnQoaG9zdCk7XG5cbiAgICAgICAgbGV0IGZvY3VzYWJsZSA9IGdldENsb3Nlc3RGb2N1c2FibGUoaG9zdCwgcHJldmlvdXMsIHJvb3QpO1xuXG4gICAgICAgIHdoaWxlIChmb2N1c2FibGUgIT09IG51bGwgJiYgaG9zdC5jb250YWlucyhmb2N1c2FibGUpKSB7XG4gICAgICAgICAgICBmb2N1c2FibGUgPSBnZXRDbG9zZXN0Rm9jdXNhYmxlKGZvY3VzYWJsZSwgcHJldmlvdXMsIHJvb3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgZm9jdXNhYmxlPy5mb2N1cygpO1xuICAgIH1cbn1cbiJdfQ==
|
|
313
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24tYm94LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B0YWlnYS11aS9jb3JlL2NvbXBvbmVudHMvZHJvcGRvd24tYm94LyIsInNvdXJjZXMiOlsiZHJvcGRvd24tYm94LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQ0EsT0FBTyxFQUNILGdCQUFnQixFQUNoQix1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFVBQVUsRUFDVixXQUFXLEVBQ1gsTUFBTSxFQUNOLE1BQU0sRUFDTixTQUFTLEdBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLGVBQWUsRUFBRSxNQUFNLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUM1RCxPQUFPLEVBQ0gsOEJBQThCLEVBQzlCLG1CQUFtQixFQUNuQixPQUFPLEVBQ1AsWUFBWSxFQUNaLEVBQUUsRUFDRixzQkFBc0IsRUFDdEIsc0JBQXNCLEVBQ3RCLGlCQUFpQixFQUNqQix3QkFBd0IsRUFDeEIsa0JBQWtCLEVBQ2xCLE9BQU8sRUFDUCxXQUFXLEdBQ2QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDL0QsT0FBTyxFQUFDLGNBQWMsRUFBRSxpQkFBaUIsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBRzNFLE9BQU8sRUFBQyxxQkFBcUIsRUFBRSxzQkFBc0IsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBRXBGLE9BQU8sRUFBQyxjQUFjLEVBQUUsbUJBQW1CLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUM3RSxPQUFPLEVBQUMsU0FBUyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDbEQsT0FBTyxFQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUV2RDs7R0FFRztBQUNILG9CQUFvQjtBQUNwQiw4RkFBOEY7QUFDOUYsV0FBVztBQVNYO0lBc0JJLGlD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RUFBRSx1QkFBdUIsQ0FBQyxPQUFPO1lBQ2hELFNBQVMsRUFBRSxDQUFDLGlCQUFpQixDQUFDO1lBQzlCLFVBQVUsRUFBRSxDQUFDLG9CQUFvQixDQUFDOztTQUNyQyxDQUFDO1FBd0JPLFdBQUEsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUE7UUFFekIsV0FBQSxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUE7UUFDZCxXQUFBLE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQyxDQUFBO1FBQzlCLFdBQUEsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFBO1FBQ2QsV0FBQSxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUE7UUFDbEIsV0FBQSxNQUFNLENBQUMsOEJBQThCLENBQUMsQ0FBQTtRQUV0QyxXQUFBLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxDQUFBO1FBQzdCLFdBQUEsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFBO09BaENuQix1QkFBdUIsQ0FzVm5DO0lBQUQsOEJBQUM7Q0FBQSxBQXRWRCxJQXNWQztTQXRWWSx1QkFBdUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0FuaW1hdGlvbk9wdGlvbnN9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xuaW1wb3J0IHtcbiAgICBBZnRlclZpZXdDaGVja2VkLFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBFbGVtZW50UmVmLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIEluamVjdCxcbiAgICBOZ1pvbmUsXG4gICAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QU5JTUFUSU9OX0ZSQU1FLCBXSU5ET1d9IGZyb20gJ0BuZy13ZWItYXBpcy9jb21tb24nO1xuaW1wb3J0IHtcbiAgICBBYnN0cmFjdFR1aVBvcnRhbEhvc3RDb21wb25lbnQsXG4gICAgZ2V0Q2xvc2VzdEZvY3VzYWJsZSxcbiAgICBpblJhbmdlLFxuICAgIFBPTExJTkdfVElNRSxcbiAgICBweCxcbiAgICBUdWlBY3RpdmVab25lRGlyZWN0aXZlLFxuICAgIHR1aUFzc2VydElzSFRNTEVsZW1lbnQsXG4gICAgVHVpRGVzdHJveVNlcnZpY2UsXG4gICAgVHVpRHJvcGRvd25Ib3N0Q29tcG9uZW50LFxuICAgIFR1aU92ZXJzY3JvbGxNb2RlVCxcbiAgICB0dWlQdXJlLFxuICAgIHR1aVpvbmVmcmVlLFxufSBmcm9tICdAdGFpZ2EtdWkvY2RrJztcbmltcG9ydCB7dHVpRHJvcGRvd25BbmltYXRpb259IGZyb20gJ0B0YWlnYS11aS9jb3JlL2FuaW1hdGlvbnMnO1xuaW1wb3J0IHtERUZBVUxUX01BUkdJTiwgREVGQVVMVF9NQVhfV0lEVEh9IGZyb20gJ0B0YWlnYS11aS9jb3JlL2NvbnN0YW50cyc7XG5pbXBvcnQge1R1aURyb3Bkb3duQW5pbWF0aW9ufSBmcm9tICdAdGFpZ2EtdWkvY29yZS9lbnVtcyc7XG5pbXBvcnQge1R1aUFuaW1hdGlvbk9wdGlvbnMsIFR1aURyb3Bkb3dufSBmcm9tICdAdGFpZ2EtdWkvY29yZS9pbnRlcmZhY2VzJztcbmltcG9ydCB7VFVJX0FOSU1BVElPTl9PUFRJT05TLCBUVUlfRFJPUERPV05fRElSRUNUSVZFfSBmcm9tICdAdGFpZ2EtdWkvY29yZS90b2tlbnMnO1xuaW1wb3J0IHtUdWlIb3Jpem9udGFsRGlyZWN0aW9uLCBUdWlWZXJ0aWNhbERpcmVjdGlvbn0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvdHlwZXMnO1xuaW1wb3J0IHtnZXRTY3JlZW5XaWR0aCwgdHVpR2V0Vmlld3BvcnRXaWR0aH0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvdXRpbHMvZG9tJztcbmltcG9ydCB7ZnJvbUV2ZW50LCBtZXJnZSwgT2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge3Rha2VVbnRpbCwgdGhyb3R0bGVUaW1lfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbi8qKlxuICogIFRoaXMgY29tcG9uZW50IGlzIHVzZWQgdG8gc2hvdyB0ZW1wbGF0ZSBpbiBhIHBvcnRhbCB1c2luZyBkZWZhdWx0IHN0eWxlIG9mIHdoaXRlIHJvdW5kZWQgYm94IHdpdGggYSBzaGFkb3dcbiAqL1xuLy8gQGJhZCBUT0RPOiBPblB1c2hcbi8vIEFtYmllbnQgdHlwZSBjYW5ub3QgYmUgdXNlZCB3aXRob3V0IGR5bmFtaWMgaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvYW5ndWxhci9pc3N1ZXMvMjMzOTVcbi8vIEBkeW5hbWljXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3R1aS1kcm9wZG93bi1ib3gnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9kcm9wZG93bi1ib3gudGVtcGxhdGUuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vZHJvcGRvd24tYm94LnN0eWxlLmxlc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LkRlZmF1bHQsXG4gICAgcHJvdmlkZXJzOiBbVHVpRGVzdHJveVNlcnZpY2VdLFxuICAgIGFuaW1hdGlvbnM6IFt0dWlEcm9wZG93bkFuaW1hdGlvbl0sXG59KVxuZXhwb3J0IGNsYXNzIFR1aURyb3Bkb3duQm94Q29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3Q2hlY2tlZCB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBhbmltYXRpb25Ub3AgPSB7XG4gICAgICAgIHZhbHVlOiBUdWlEcm9wZG93bkFuaW1hdGlvbi5GYWRlSW5Ub3AsXG4gICAgICAgIC4uLnRoaXMub3B0aW9ucyxcbiAgICB9O1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBhbmltYXRpb25Cb3R0b20gPSB7XG4gICAgICAgIHZhbHVlOiBUdWlEcm9wZG93bkFuaW1hdGlvbi5GYWRlSW5Cb3R0b20sXG4gICAgICAgIC4uLnRoaXMub3B0aW9ucyxcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogSXMgcHJldmlvdXMgcG9zaXRpb24gb24gdG9wICh0byBwcmV2ZW50IGp1bXBpbmcgdXAgYW5kIGRvd24gb24gc2Nyb2xsKVxuICAgICAqL1xuICAgIHByaXZhdGUgcHJldkRpcmVjdGlvbklzVG9wID0gZmFsc2U7XG5cbiAgICBASG9zdEJpbmRpbmcoJ0B0dWlEcm9wZG93bkFuaW1hdGlvbicpXG4gICAgZHJvcGRvd25BbmltYXRpb24hOiBUdWlBbmltYXRpb25PcHRpb25zO1xuXG4gICAgQFZpZXdDaGlsZCgnY29udGVudCcsIHtyZWFkOiBFbGVtZW50UmVmfSlcbiAgICByZWFkb25seSBjb250ZW50RWxlbWVudFJlZj86IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBJbmplY3QoVHVpRGVzdHJveVNlcnZpY2UpXG4gICAgICAgIGRlc3Ryb3kkOiBUdWlEZXN0cm95U2VydmljZSxcbiAgICAgICAgQEluamVjdChOZ1pvbmUpIG5nWm9uZTogTmdab25lLFxuICAgICAgICBASW5qZWN0KFRVSV9EUk9QRE9XTl9ESVJFQ1RJVkUpIHJlYWRvbmx5IGRpcmVjdGl2ZTogVHVpRHJvcGRvd24sXG4gICAgICAgIEBJbmplY3QoV0lORE9XKSBwcml2YXRlIHJlYWRvbmx5IHdpbmRvd1JlZjogV2luZG93LFxuICAgICAgICBASW5qZWN0KEVsZW1lbnRSZWYpIHByaXZhdGUgcmVhZG9ubHkgZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICAgICAgIEBJbmplY3QoQWJzdHJhY3RUdWlQb3J0YWxIb3N0Q29tcG9uZW50KVxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHBvcnRhbEhvc3Q6IFR1aURyb3Bkb3duSG9zdENvbXBvbmVudCxcbiAgICAgICAgQEluamVjdChUVUlfQU5JTUFUSU9OX09QVElPTlMpIHByaXZhdGUgcmVhZG9ubHkgb3B0aW9uczogQW5pbWF0aW9uT3B0aW9ucyxcbiAgICAgICAgQEluamVjdChBTklNQVRJT05fRlJBTUUpIGFuaW1hdGlvbkZyYW1lJDogT2JzZXJ2YWJsZTxudW1iZXI+LFxuICAgICkge1xuICAgICAgICBtZXJnZShcbiAgICAgICAgICAgIGFuaW1hdGlvbkZyYW1lJC5waXBlKHRocm90dGxlVGltZShQT0xMSU5HX1RJTUUpKSxcbiAgICAgICAgICAgIHRoaXMuZGlyZWN0aXZlLnJlZnJlc2gkLFxuICAgICAgICAgICAgZnJvbUV2ZW50KHRoaXMud2luZG93UmVmLCAncmVzaXplJyksXG4gICAgICAgIClcbiAgICAgICAgICAgIC5waXBlKHR1aVpvbmVmcmVlKG5nWm9uZSksIHRha2VVbnRpbChkZXN0cm95JCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmNhbGN1bGF0ZVBvc2l0aW9uQW5kU2l6ZSgpO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgZ2V0IG92ZXJzY3JvbGwoKTogVHVpT3ZlcnNjcm9sbE1vZGVUIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaW5Nb2RhbCA/ICdhbGwnIDogJ3Njcm9sbCc7XG4gICAgfVxuXG4gICAgQHR1aVB1cmVcbiAgICBnZXRDb250ZXh0PFQgZXh0ZW5kcyBvYmplY3Q+KFxuICAgICAgICBjb250ZXh0PzogVCxcbiAgICAgICAgYWN0aXZlWm9uZT86IFR1aUFjdGl2ZVpvbmVEaXJlY3RpdmUsXG4gICAgKTpcbiAgICAgICAgfCAoVCAmIHthY3RpdmVab25lPzogVHVpQWN0aXZlWm9uZURpcmVjdGl2ZX0pXG4gICAgICAgIHwge2FjdGl2ZVpvbmU/OiBUdWlBY3RpdmVab25lRGlyZWN0aXZlfSB7XG4gICAgICAgIHJldHVybiB7Li4uY29udGV4dCwgYWN0aXZlWm9uZX07XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdDaGVja2VkKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNhbGN1bGF0ZVBvc2l0aW9uQW5kU2l6ZSgpO1xuICAgIH1cblxuICAgIG9uVG9wRm9jdXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMubW92ZUZvY3VzT3V0c2lkZSh0cnVlKTtcbiAgICB9XG5cbiAgICBvbkJvdHRvbUZvY3VzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLm1vdmVGb2N1c091dHNpZGUoZmFsc2UpO1xuICAgIH1cblxuICAgIEB0dWlQdXJlXG4gICAgcHJpdmF0ZSBnZXQgaW5Nb2RhbCgpOiBib29sZWFuIHtcbiAgICAgICAgLy8gQGF3ZnVsIFRPRE86IGdldCByaWQgb2YgY29tcG9uZW50IHRhZyBuYW1lIGRlcGVuZGVuY3lcbiAgICAgICAgcmV0dXJuICEhdGhpcy5kaXJlY3RpdmUuaG9zdC5jbG9zZXN0KCd0dWktZGlhbG9nLWhvc3QnKTtcbiAgICB9XG5cbiAgICBAdHVpUHVyZVxuICAgIHByaXZhdGUgZ2V0IGluT3B0aW9uKCk6IGJvb2xlYW4ge1xuICAgICAgICAvLyBAYXdmdWwgVE9ETzogZ2V0IHJpZCBvZiBjb21wb25lbnQgdGFnIG5hbWUgZGVwZW5kZW5jeVxuICAgICAgICByZXR1cm4gISF0aGlzLmRpcmVjdGl2ZS5ob3N0LmNsb3Nlc3QoJ1t0dWlPcHRpb25dJyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjYWxjdWxhdGVQb3NpdGlvbkFuZFNpemUoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHtjbGllbnRSZWN0fSA9IHRoaXMuZGlyZWN0aXZlO1xuICAgICAgICBjb25zdCB7c3R5bGV9ID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgIGNvbnN0IGhvc3RSZWN0ID0gdGhpcy5kaXJlY3RpdmUuZml4ZWRcbiAgICAgICAgICAgID8gdGhpcy5wb3J0YWxIb3N0LmZpeGVkUG9zaXRpb25PZmZzZXQoKVxuICAgICAgICAgICAgOiB0aGlzLnBvcnRhbEhvc3QuY2xpZW50UmVjdDtcblxuICAgICAgICBzdHlsZS5wb3NpdGlvbiA9IHRoaXMuZGlyZWN0aXZlLmZpeGVkID8gJ2ZpeGVkJyA6ICdhYnNvbHV0ZSc7XG5cbiAgICAgICAgdGhpcy5jYWxjdWxhdGVWZXJ0aWNhbFBvc2l0aW9uKHN0eWxlLCBjbGllbnRSZWN0LCBob3N0UmVjdCk7XG4gICAgICAgIHRoaXMuY2FsY3VsYXRlSG9yaXpvbnRhbFBvc2l0aW9uKHN0eWxlLCBjbGllbnRSZWN0LCBob3N0UmVjdCk7XG4gICAgICAgIHRoaXMuY2FsY3VsYXRlV2lkdGgoc3R5bGUsIGNsaWVudFJlY3QpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0RmluYWxBbGlnbihcbiAgICAgICAgc3R5bGU6IENTU1N0eWxlRGVjbGFyYXRpb24sXG4gICAgICAgIGRpcmVjdGl2ZVJlY3Q6IENsaWVudFJlY3QsXG4gICAgKTogVHVpSG9yaXpvbnRhbERpcmVjdGlvbiB7XG4gICAgICAgIGNvbnN0IGRyb3Bkb3duUmVjdCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgICBjb25zdCBkcm9wZG93bldpZHRoID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGg7XG4gICAgICAgIGNvbnN0IHNjcmVlbldpZHRoID0gZ2V0U2NyZWVuV2lkdGgodGhpcy53aW5kb3dSZWYuZG9jdW1lbnQpO1xuICAgICAgICBjb25zdCBpc0Ryb3Bkb3duU2l6ZUh5cG90aGV0aWNhbGx5Rml0c1ZpZXdwb3J0ID1cbiAgICAgICAgICAgIGRpcmVjdGl2ZVJlY3QubGVmdCArIGRyb3Bkb3duV2lkdGggPCBzY3JlZW5XaWR0aCB8fFxuICAgICAgICAgICAgZGlyZWN0aXZlUmVjdC5yaWdodCAtIGRyb3Bkb3duV2lkdGggPiAwO1xuICAgICAgICBjb25zdCBpc0Ryb3Bkb3duU2l6ZUFjdHVhbGx5Rml0c1ZpZXdwb3J0ID1cbiAgICAgICAgICAgIGRyb3Bkb3duUmVjdC5yaWdodCA8PSBzY3JlZW5XaWR0aCAmJiBkcm9wZG93blJlY3QubGVmdCA+PSAwO1xuICAgICAgICBsZXQgZmluYWxBbGlnbjogVHVpSG9yaXpvbnRhbERpcmVjdGlvbiA9IHRoaXMuZGlyZWN0aXZlLmFsaWduO1xuXG4gICAgICAgIHN3aXRjaCAodGhpcy5kaXJlY3RpdmUuYWxpZ24pIHtcbiAgICAgICAgICAgIGNhc2UgJ2xlZnQnOlxuICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgICAgaXNEcm9wZG93blNpemVIeXBvdGhldGljYWxseUZpdHNWaWV3cG9ydCAmJlxuICAgICAgICAgICAgICAgICAgICBkcm9wZG93blJlY3QucmlnaHQgPiBzY3JlZW5XaWR0aFxuICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICBmaW5hbEFsaWduID0gJ3JpZ2h0JztcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ3JpZ2h0JzpcbiAgICAgICAgICAgICAgICBpZiAoaXNEcm9wZG93blNpemVIeXBvdGhldGljYWxseUZpdHNWaWV3cG9ydCAmJiBkcm9wZG93blJlY3QubGVmdCA8IDApIHtcbiAgICAgICAgICAgICAgICAgICAgZmluYWxBbGlnbiA9ICdsZWZ0JztcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChzdHlsZS5yaWdodCA9PT0gJ2F1dG8nICYmIGlzRHJvcGRvd25TaXplQWN0dWFsbHlGaXRzVmlld3BvcnQpIHtcbiAgICAgICAgICAgIGZpbmFsQWxpZ24gPSAnbGVmdCc7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoc3R5bGUubGVmdCA9PT0gJ2F1dG8nICYmIGlzRHJvcGRvd25TaXplQWN0dWFsbHlGaXRzVmlld3BvcnQpIHtcbiAgICAgICAgICAgIGZpbmFsQWxpZ24gPSAncmlnaHQnO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGZpbmFsQWxpZ247XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2FsY3VsYXRlcyBob3Jpem9udGFsIHBvc2l0aW9uXG4gICAgICpcbiAgICAgKiBAcGFyYW0gc3R5bGUgZHJvcGRvd25Cb3ggZWxlbWVudFJlZiBzdHlsZXMgb2JqZWN0XG4gICAgICogQHBhcmFtIGRpcmVjdGl2ZVJlY3QgQ2xpZW50UmVjdCBvZiBob3N0aW5nIGRpcmVjdGl2ZVxuICAgICAqIEBwYXJhbSBob3N0UmVjdCBDbGllbnRSZWN0IG9mICBwb3J0YWwgaG9zdFxuICAgICAqL1xuICAgIHByaXZhdGUgY2FsY3VsYXRlSG9yaXpvbnRhbFBvc2l0aW9uKFxuICAgICAgICBzdHlsZTogQ1NTU3R5bGVEZWNsYXJhdGlvbixcbiAgICAgICAgZGlyZWN0aXZlUmVjdDogQ2xpZW50UmVjdCxcbiAgICAgICAgaG9zdFJlY3Q6IENsaWVudFJlY3QsXG4gICAgKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IG9mZnNldCA9IHRoaXMuZGlyZWN0aXZlLnNpZGVkXG4gICAgICAgICAgICA/IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoICsgREVGQVVMVF9NQVJHSU5cbiAgICAgICAgICAgIDogMDtcbiAgICAgICAgY29uc3QgbGVmdCA9IE1hdGguY2VpbChkaXJlY3RpdmVSZWN0LmxlZnQgLSBob3N0UmVjdC5sZWZ0IC0gb2Zmc2V0KTtcbiAgICAgICAgY29uc3QgcmlnaHQgPSBNYXRoLmZsb29yKGhvc3RSZWN0LnJpZ2h0IC0gZGlyZWN0aXZlUmVjdC5yaWdodCAtIG9mZnNldCk7XG4gICAgICAgIGNvbnN0IHZpZXdwb3J0V2lkdGggPSB0dWlHZXRWaWV3cG9ydFdpZHRoKHRoaXMud2luZG93UmVmKTtcblxuICAgICAgICBzd2l0Y2ggKHRoaXMuZ2V0RmluYWxBbGlnbihzdHlsZSwgZGlyZWN0aXZlUmVjdCkpIHtcbiAgICAgICAgICAgIGNhc2UgJ2xlZnQnOlxuICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgICAgcmlnaHQgKyBERUZBVUxUX01BUkdJTiA+IHZpZXdwb3J0V2lkdGggfHxcbiAgICAgICAgICAgICAgICAgICAgaW5SYW5nZShsZWZ0ICsgREVGQVVMVF9NQVJHSU4sIDAsIHZpZXdwb3J0V2lkdGgpXG4gICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgIHN0eWxlLmxlZnQgPSBweChsZWZ0KTtcbiAgICAgICAgICAgICAgICAgICAgc3R5bGUucmlnaHQgPSAnYXV0byc7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgc3R5bGUubGVmdCA9ICdhdXRvJztcbiAgICAgICAgICAgICAgICAgICAgc3R5bGUucmlnaHQgPSBweChyaWdodCk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdyaWdodCc6XG4gICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgICBpblJhbmdlKHJpZ2h0ICsgREVGQVVMVF9NQVJHSU4sIDAsIHZpZXdwb3J0V2lkdGgpIHx8XG4gICAgICAgICAgICAgICAgICAgIGxlZnQgKyBERUZBVUxUX01BUkdJTiA+IHZpZXdwb3J0V2lkdGhcbiAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgc3R5bGUubGVmdCA9ICdhdXRvJztcbiAgICAgICAgICAgICAgICAgICAgc3R5bGUucmlnaHQgPSBweChyaWdodCk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgc3R5bGUubGVmdCA9IHB4KGxlZnQpO1xuICAgICAgICAgICAgICAgICAgICBzdHlsZS5yaWdodCA9ICdhdXRvJztcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENhbGN1bGF0ZXMgdmVydGljYWwgcG9zaXRpb24gYW5kIGhlaWdodFxuICAgICAqXG4gICAgICogQHBhcmFtIHN0eWxlIGRyb3Bkb3duQm94IGVsZW1lbnRSZWYgc3R5bGVzIG9iamVjdFxuICAgICAqIEBwYXJhbSBkaXJlY3RpdmVSZWN0IENsaWVudFJlY3Qgb2YgaG9zdGluZyBkaXJlY3RpdmVcbiAgICAgKiBAcGFyYW0gaG9zdFJlY3QgQ2xpZW50UmVjdCBvZiAgcG9ydGFsIGhvc3RcbiAgICAgKi9cbiAgICBwcml2YXRlIGNhbGN1bGF0ZVZlcnRpY2FsUG9zaXRpb24oXG4gICAgICAgIHN0eWxlOiBDU1NTdHlsZURlY2xhcmF0aW9uLFxuICAgICAgICBkaXJlY3RpdmVSZWN0OiBDbGllbnRSZWN0LFxuICAgICAgICBob3N0UmVjdDogQ2xpZW50UmVjdCxcbiAgICApOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgd2luZG93SGVpZ2h0ID0gdGhpcy53aW5kb3dSZWYuaW5uZXJIZWlnaHQ7XG4gICAgICAgIC8vIE1heGltdW0gaGVpZ2h0IG9mIHRoZSBib3hcbiAgICAgICAgY29uc3QgYm94SGVpZ2h0TGltaXQgPSBNYXRoLm1pbihcbiAgICAgICAgICAgIHRoaXMuZGlyZWN0aXZlLm1heEhlaWdodCxcbiAgICAgICAgICAgIHdpbmRvd0hlaWdodCAtIERFRkFVTFRfTUFSR0lOICogMixcbiAgICAgICAgKTtcbiAgICAgICAgY29uc3Qgb2Zmc2V0ID0gdGhpcy5kaXJlY3RpdmUuc2lkZWRcbiAgICAgICAgICAgID8gREVGQVVMVF9NQVJHSU4gLSBkaXJlY3RpdmVSZWN0LmhlaWdodFxuICAgICAgICAgICAgOiBERUZBVUxUX01BUkdJTiAqIDI7XG4gICAgICAgIGNvbnN0IHRvcEF2YWlsYWJsZUhlaWdodCA9IGRpcmVjdGl2ZVJlY3QudG9wIC0gb2Zmc2V0O1xuICAgICAgICBjb25zdCBib3R0b21BdmFpbGFibGVIZWlnaHQgPSB3aW5kb3dIZWlnaHQgLSBkaXJlY3RpdmVSZWN0LmJvdHRvbSAtIG9mZnNldDtcbiAgICAgICAgY29uc3QgZmluYWxEaXJlY3Rpb24gPSB0aGlzLmdldEZpbmFsRGlyZWN0aW9uKGRpcmVjdGl2ZVJlY3QpO1xuICAgICAgICBjb25zdCBvcHRpb25PZmZzZXQgPSB0aGlzLmluT3B0aW9uID8gREVGQVVMVF9NQVJHSU4gKiAyIDogMDtcblxuICAgICAgICB0aGlzLnByZXZEaXJlY3Rpb25Jc1RvcCA9IGZpbmFsRGlyZWN0aW9uID09PSAndG9wJztcblxuICAgICAgICBpZiAoZmluYWxEaXJlY3Rpb24gPT09ICd0b3AnKSB7XG4gICAgICAgICAgICB0aGlzLmRyb3Bkb3duQW5pbWF0aW9uID0gdGhpcy5hbmltYXRpb25Cb3R0b207XG5cbiAgICAgICAgICAgIHN0eWxlLm1heEhlaWdodCA9IHB4KE1hdGgubWluKGJveEhlaWdodExpbWl0LCB0b3BBdmFpbGFibGVIZWlnaHQpKTtcbiAgICAgICAgICAgIHN0eWxlLnRvcCA9ICdhdXRvJztcbiAgICAgICAgICAgIHN0eWxlLmJvdHRvbSA9IHB4KFxuICAgICAgICAgICAgICAgIGhvc3RSZWN0LmJvdHRvbSAtXG4gICAgICAgICAgICAgICAgICAgIGRpcmVjdGl2ZVJlY3QudG9wIC1cbiAgICAgICAgICAgICAgICAgICAgREVGQVVMVF9NQVJHSU4gK1xuICAgICAgICAgICAgICAgICAgICBvZmZzZXQgLVxuICAgICAgICAgICAgICAgICAgICBvcHRpb25PZmZzZXQsXG4gICAgICAgICAgICApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5kcm9wZG93bkFuaW1hdGlvbiA9IHRoaXMuYW5pbWF0aW9uVG9wO1xuXG4gICAgICAgICAgICBzdHlsZS5tYXhIZWlnaHQgPSBweChNYXRoLm1pbihib3hIZWlnaHRMaW1pdCwgYm90dG9tQXZhaWxhYmxlSGVpZ2h0KSk7XG4gICAgICAgICAgICBzdHlsZS50b3AgPSBweChcbiAgICAgICAgICAgICAgICBkaXJlY3RpdmVSZWN0LmJvdHRvbSAtXG4gICAgICAgICAgICAgICAgICAgIGhvc3RSZWN0LnRvcCAtXG4gICAgICAgICAgICAgICAgICAgIERFRkFVTFRfTUFSR0lOICtcbiAgICAgICAgICAgICAgICAgICAgb2Zmc2V0IC1cbiAgICAgICAgICAgICAgICAgICAgb3B0aW9uT2Zmc2V0LFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHN0eWxlLmJvdHRvbSA9ICdhdXRvJztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0RmluYWxEaXJlY3Rpb24oZGlyZWN0aXZlUmVjdDogQ2xpZW50UmVjdCk6IFR1aVZlcnRpY2FsRGlyZWN0aW9uIHwgbnVsbCB7XG4gICAgICAgIGNvbnN0IHdpbmRvd0hlaWdodCA9IHRoaXMud2luZG93UmVmLmlubmVySGVpZ2h0O1xuICAgICAgICBjb25zdCBvZmZzZXQgPSB0aGlzLmRpcmVjdGl2ZS5zaWRlZFxuICAgICAgICAgICAgPyBERUZBVUxUX01BUkdJTiAtIGRpcmVjdGl2ZVJlY3QuaGVpZ2h0XG4gICAgICAgICAgICA6IERFRkFVTFRfTUFSR0lOICogMjtcblxuICAgICAgICAvLyBNYXhpbXVtIHNwYWNlIGF2YWlsYWJsZSBvbiB0b3AgYW5kIG9uIHRoZSBib3R0b20gaW4gdGhlIHZpZXdwb3J0XG4gICAgICAgIGNvbnN0IHRvcEF2YWlsYWJsZUhlaWdodCA9IGRpcmVjdGl2ZVJlY3QudG9wIC0gb2Zmc2V0O1xuICAgICAgICBjb25zdCBib3R0b21BdmFpbGFibGVIZWlnaHQgPSB3aW5kb3dIZWlnaHQgLSBkaXJlY3RpdmVSZWN0LmJvdHRvbSAtIG9mZnNldDtcblxuICAgICAgICBsZXQgZmluYWxEaXJlY3Rpb246IFR1aVZlcnRpY2FsRGlyZWN0aW9uIHwgbnVsbCA9IG51bGw7XG5cbiAgICAgICAgLy8gR2l2ZW4gZGlyZWN0aW9uIGlzIGFwcGxpZWQgaWYgd2UgY2FuIGZpdCB0aGUgYm94IGluIHRoZSBsaW1pdHMgdGhhdCB3YXlcbiAgICAgICAgc3dpdGNoICh0aGlzLmRpcmVjdGl2ZS5kaXJlY3Rpb24pIHtcbiAgICAgICAgICAgIGNhc2UgJ3RvcCc6XG4gICAgICAgICAgICAgICAgaWYgKHRvcEF2YWlsYWJsZUhlaWdodCA+PSB0aGlzLmRpcmVjdGl2ZS5taW5IZWlnaHQpIHtcbiAgICAgICAgICAgICAgICAgICAgZmluYWxEaXJlY3Rpb24gPSAndG9wJztcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ2JvdHRvbSc6XG4gICAgICAgICAgICAgICAgaWYgKGJvdHRvbUF2YWlsYWJsZUhlaWdodCA+PSB0aGlzLmRpcmVjdGl2ZS5taW5IZWlnaHQpIHtcbiAgICAgICAgICAgICAgICAgICAgZmluYWxEaXJlY3Rpb24gPSAnYm90dG9tJztcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIE1heGltdW0gaGVpZ2h0IG9mIHRoZSBib3hcbiAgICAgICAgY29uc3QgYm94SGVpZ2h0TGltaXQgPSBNYXRoLm1pbihcbiAgICAgICAgICAgIHRoaXMuZGlyZWN0aXZlLm1heEhlaWdodCxcbiAgICAgICAgICAgIHdpbmRvd0hlaWdodCAtIERFRkFVTFRfTUFSR0lOICogMixcbiAgICAgICAgKTtcblxuICAgICAgICAvLyBDaG9vc2UgZGlyZWN0aW9uIGlmIGdpdmVuIGRpcmVjdGlvbiBkaWQgbm90IGZpdFxuICAgICAgICBpZiAoZmluYWxEaXJlY3Rpb24gPT09IG51bGwgJiYgdGhpcy5jb250ZW50RWxlbWVudFJlZikge1xuICAgICAgICAgICAgLy8gQm94IGhlaWdodCBpZiBpdCBmaXRzIHdpdGhvdXQgc2Nyb2xsXG4gICAgICAgICAgICBjb25zdCB2aXN1YWxIZWlnaHQgPSBNYXRoLm1pbihcbiAgICAgICAgICAgICAgICB0aGlzLmNvbnRlbnRFbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuaGVpZ2h0ICtcbiAgICAgICAgICAgICAgICAgICAgKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50Lm9mZnNldEhlaWdodCAtXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jbGllbnRIZWlnaHQpLFxuICAgICAgICAgICAgICAgIGJveEhlaWdodExpbWl0LFxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgLy8gSWYgdGhlcmUgaXMgZW5vdWdoIHNwYWNlIHRvIGZpdCBiZWxvdyB3aXRob3V0IHNjcm9sbCxcbiAgICAgICAgICAgIC8vIGNob29zZSAnYm90dG9tJywgdW5sZXNzIGl0IHdhcyBwcmV2aW91c2x5IG9uIHRoZSB0b3BcbiAgICAgICAgICAgIGlmICh0aGlzLnByZXZEaXJlY3Rpb25Jc1RvcCAmJiB0b3BBdmFpbGFibGVIZWlnaHQgPj0gdmlzdWFsSGVpZ2h0KSB7XG4gICAgICAgICAgICAgICAgZmluYWxEaXJlY3Rpb24gPSAndG9wJztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoYm90dG9tQXZhaWxhYmxlSGVpZ2h0ID49IHZpc3VhbEhlaWdodCkge1xuICAgICAgICAgICAgICAgIGZpbmFsRGlyZWN0aW9uID0gJ2JvdHRvbSc7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIC8vIENvcm5lciBjYXNlIOKAlCBzZWxlY3QgZGlyZWN0aW9uIHdpdGggbW9yZSBzcGFjZVxuICAgICAgICAgICAgICAgIGZpbmFsRGlyZWN0aW9uID1cbiAgICAgICAgICAgICAgICAgICAgYm90dG9tQXZhaWxhYmxlSGVpZ2h0ID49IHRvcEF2YWlsYWJsZUhlaWdodCA/ICdib3R0b20nIDogJ3RvcCc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZmluYWxEaXJlY3Rpb247XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2FsY3VsYXRlcyB3aWR0aFxuICAgICAqXG4gICAgICogQHBhcmFtIHN0eWxlIGRyb3Bkb3duQm94IGVsZW1lbnRSZWYgc3R5bGVzIG9iamVjdFxuICAgICAqIEBwYXJhbSBkaXJlY3RpdmVSZWN0IENsaWVudFJlY3Qgb2YgaG9zdGluZyBkaXJlY3RpdmVcbiAgICAgKi9cbiAgICBwcml2YXRlIGNhbGN1bGF0ZVdpZHRoKHN0eWxlOiBDU1NTdHlsZURlY2xhcmF0aW9uLCBkaXJlY3RpdmVSZWN0OiBDbGllbnRSZWN0KTogdm9pZCB7XG4gICAgICAgIHN0eWxlLndpZHRoID1cbiAgICAgICAgICAgIHRoaXMuZGlyZWN0aXZlLmxpbWl0TWluV2lkdGggPT09ICdmaXhlZCcgJiYgIXRoaXMuZGlyZWN0aXZlLnNpZGVkXG4gICAgICAgICAgICAgICAgPyBweChkaXJlY3RpdmVSZWN0LndpZHRoKVxuICAgICAgICAgICAgICAgIDogJyc7XG5cbiAgICAgICAgaWYgKHRoaXMuZGlyZWN0aXZlLmxpbWl0TWluV2lkdGggPT09ICdtaW4nICYmICF0aGlzLmRpcmVjdGl2ZS5zaWRlZCkge1xuICAgICAgICAgICAgc3R5bGUubWluV2lkdGggPSBweChkaXJlY3RpdmVSZWN0LndpZHRoKTtcbiAgICAgICAgICAgIHN0eWxlLm1heFdpZHRoID0gcHgoREVGQVVMVF9NQVhfV0lEVEgpO1xuXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBzdHlsZS5taW5XaWR0aCA9ICcnO1xuICAgICAgICBzdHlsZS5tYXhXaWR0aCA9ICcnO1xuICAgIH1cblxuICAgIHByaXZhdGUgbW92ZUZvY3VzT3V0c2lkZShwcmV2aW91czogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICBjb25zdCB7aG9zdH0gPSB0aGlzLmRpcmVjdGl2ZTtcbiAgICAgICAgY29uc3Qge293bmVyRG9jdW1lbnR9ID0gaG9zdDtcbiAgICAgICAgY29uc3Qgcm9vdCA9IG93bmVyRG9jdW1lbnQgPyBvd25lckRvY3VtZW50LmJvZHkgOiBob3N0O1xuXG4gICAgICAgIHR1aUFzc2VydElzSFRNTEVsZW1lbnQoaG9zdCk7XG5cbiAgICAgICAgbGV0IGZvY3VzYWJsZSA9IGdldENsb3Nlc3RGb2N1c2FibGUoaG9zdCwgcHJldmlvdXMsIHJvb3QpO1xuXG4gICAgICAgIHdoaWxlIChmb2N1c2FibGUgIT09IG51bGwgJiYgaG9zdC5jb250YWlucyhmb2N1c2FibGUpKSB7XG4gICAgICAgICAgICBmb2N1c2FibGUgPSBnZXRDbG9zZXN0Rm9jdXNhYmxlKGZvY3VzYWJsZSwgcHJldmlvdXMsIHJvb3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgZm9jdXNhYmxlPy5mb2N1cygpO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export var VERSION = '2.
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
export var VERSION = '2.51.1';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B0YWlnYS11aS9jb3JlL2NvbnN0YW50cy8iLCJzb3VyY2VzIjpbInZlcnNpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLElBQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBWRVJTSU9OID0gJzIuNTEuMSc7XG4iXX0=
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @description:
|
|
3
|
+
* Cross-browser @media (height)
|
|
4
|
+
*
|
|
5
|
+
* 1. window.innerWidth
|
|
6
|
+
* 1.1. gets CSS viewport @media (height) which include scrollbars
|
|
7
|
+
* 1.2. initial-scale and zoom variations may cause mobile values to
|
|
8
|
+
* wrongly scale down to what PPK calls the visual
|
|
9
|
+
* viewport and be smaller than the @media values
|
|
10
|
+
* 1.3. zoom may cause values to be 1px off due to native rounding
|
|
11
|
+
*
|
|
12
|
+
* 2. document.documentElement.clientHeight
|
|
13
|
+
* 2.1. equals CSS viewport width minus scrollbar width
|
|
14
|
+
* 2.2. matches @media (height) when there is no scrollbar
|
|
15
|
+
* 2.3. available cross-browser
|
|
16
|
+
* 2.4. inaccurate if doctype is missing
|
|
17
|
+
*/
|
|
18
|
+
export function tuiGetViewportHeight(_a) {
|
|
19
|
+
var document = _a.document, innerHeight = _a.innerHeight;
|
|
20
|
+
return Math.max(document.documentElement.clientHeight || 0, innerHeight || 0);
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LXZpZXdwb3J0LWhlaWdodC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B0YWlnYS11aS9jb3JlL3V0aWxzL2RvbS8iLCJzb3VyY2VzIjpbImdldC12aWV3cG9ydC1oZWlnaHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7R0FnQkc7QUFDSCxNQUFNLFVBQVUsb0JBQW9CLENBQUMsRUFBK0I7UUFBOUIsc0JBQVEsRUFBRSw0QkFBVztJQUN2RCxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxZQUFZLElBQUksQ0FBQyxFQUFFLFdBQVcsSUFBSSxDQUFDLENBQUMsQ0FBQztBQUNsRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAZGVzY3JpcHRpb246XG4gKiBDcm9zcy1icm93c2VyIEBtZWRpYSAoaGVpZ2h0KVxuICpcbiAqIDEuIHdpbmRvdy5pbm5lcldpZHRoXG4gKiAxLjEuIGdldHMgQ1NTIHZpZXdwb3J0IEBtZWRpYSAoaGVpZ2h0KSB3aGljaCBpbmNsdWRlIHNjcm9sbGJhcnNcbiAqIDEuMi4gaW5pdGlhbC1zY2FsZSBhbmQgem9vbSB2YXJpYXRpb25zIG1heSBjYXVzZSBtb2JpbGUgdmFsdWVzIHRvXG4gKiAgICAgIHdyb25nbHkgc2NhbGUgZG93biB0byB3aGF0IFBQSyBjYWxscyB0aGUgdmlzdWFsXG4gKiAgICAgIHZpZXdwb3J0IGFuZCBiZSBzbWFsbGVyIHRoYW4gdGhlIEBtZWRpYSB2YWx1ZXNcbiAqICAxLjMuIHpvb20gbWF5IGNhdXNlIHZhbHVlcyB0byBiZSAxcHggb2ZmIGR1ZSB0byBuYXRpdmUgcm91bmRpbmdcbiAqXG4gKiAgMi4gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodFxuICogIDIuMS4gZXF1YWxzIENTUyB2aWV3cG9ydCB3aWR0aCBtaW51cyBzY3JvbGxiYXIgd2lkdGhcbiAqICAyLjIuIG1hdGNoZXMgQG1lZGlhIChoZWlnaHQpIHdoZW4gdGhlcmUgaXMgbm8gc2Nyb2xsYmFyXG4gKiAgMi4zLiBhdmFpbGFibGUgY3Jvc3MtYnJvd3NlclxuICogIDIuNC4gaW5hY2N1cmF0ZSBpZiBkb2N0eXBlIGlzIG1pc3NpbmdcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHR1aUdldFZpZXdwb3J0SGVpZ2h0KHtkb2N1bWVudCwgaW5uZXJIZWlnaHR9OiBXaW5kb3cpOiBudW1iZXIge1xuICAgIHJldHVybiBNYXRoLm1heChkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0IHx8IDAsIGlubmVySGVpZ2h0IHx8IDApO1xufVxuIl19
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @description:
|
|
3
|
+
* Cross-browser @media (width)
|
|
4
|
+
*
|
|
5
|
+
* 1. window.innerWidth
|
|
6
|
+
* 1.1. gets CSS viewport @media (width) which include scrollbars
|
|
7
|
+
* 1.2. initial-scale and zoom variations may cause mobile values to
|
|
8
|
+
* wrongly scale down to what PPK calls the visual
|
|
9
|
+
* viewport and be smaller than the @media values
|
|
10
|
+
* 1.3. zoom may cause values to be 1px off due to native rounding
|
|
11
|
+
*
|
|
12
|
+
* 2. document.documentElement.clientWidth
|
|
13
|
+
* 2.1. equals CSS viewport width minus scrollbar width
|
|
14
|
+
* 2.2. matches @media (width) when there is no scrollbar
|
|
15
|
+
* 2.3. available cross-browser
|
|
16
|
+
* 2.4. inaccurate if doctype is missing
|
|
17
|
+
*/
|
|
18
|
+
export function tuiGetViewportWidth(_a) {
|
|
19
|
+
var document = _a.document, innerWidth = _a.innerWidth;
|
|
20
|
+
return Math.max(document.documentElement.clientWidth || 0, innerWidth || 0);
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LXZpZXdwb3J0LXdpZHRoLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHRhaWdhLXVpL2NvcmUvdXRpbHMvZG9tLyIsInNvdXJjZXMiOlsiZ2V0LXZpZXdwb3J0LXdpZHRoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7O0dBZ0JHO0FBQ0gsTUFBTSxVQUFVLG1CQUFtQixDQUFDLEVBQThCO1FBQTdCLHNCQUFRLEVBQUUsMEJBQVU7SUFDckQsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsV0FBVyxJQUFJLENBQUMsRUFBRSxVQUFVLElBQUksQ0FBQyxDQUFDLENBQUM7QUFDaEYsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGRlc2NyaXB0aW9uOlxuICogQ3Jvc3MtYnJvd3NlciBAbWVkaWEgKHdpZHRoKVxuICpcbiAqIDEuIHdpbmRvdy5pbm5lcldpZHRoXG4gKiAxLjEuIGdldHMgQ1NTIHZpZXdwb3J0IEBtZWRpYSAod2lkdGgpIHdoaWNoIGluY2x1ZGUgc2Nyb2xsYmFyc1xuICogMS4yLiBpbml0aWFsLXNjYWxlIGFuZCB6b29tIHZhcmlhdGlvbnMgbWF5IGNhdXNlIG1vYmlsZSB2YWx1ZXMgdG9cbiAqICAgICAgd3JvbmdseSBzY2FsZSBkb3duIHRvIHdoYXQgUFBLIGNhbGxzIHRoZSB2aXN1YWxcbiAqICAgICAgdmlld3BvcnQgYW5kIGJlIHNtYWxsZXIgdGhhbiB0aGUgQG1lZGlhIHZhbHVlc1xuICogIDEuMy4gem9vbSBtYXkgY2F1c2UgdmFsdWVzIHRvIGJlIDFweCBvZmYgZHVlIHRvIG5hdGl2ZSByb3VuZGluZ1xuICpcbiAqICAyLiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50V2lkdGhcbiAqICAyLjEuIGVxdWFscyBDU1Mgdmlld3BvcnQgd2lkdGggbWludXMgc2Nyb2xsYmFyIHdpZHRoXG4gKiAgMi4yLiBtYXRjaGVzIEBtZWRpYSAod2lkdGgpIHdoZW4gdGhlcmUgaXMgbm8gc2Nyb2xsYmFyXG4gKiAgMi4zLiBhdmFpbGFibGUgY3Jvc3MtYnJvd3NlclxuICogIDIuNC4gaW5hY2N1cmF0ZSBpZiBkb2N0eXBlIGlzIG1pc3NpbmdcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHR1aUdldFZpZXdwb3J0V2lkdGgoe2RvY3VtZW50LCBpbm5lcldpZHRofTogV2luZG93KTogbnVtYmVyIHtcbiAgICByZXR1cm4gTWF0aC5tYXgoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoIHx8IDAsIGlubmVyV2lkdGggfHwgMCk7XG59XG4iXX0=
|
package/esm5/utils/dom/index.js
CHANGED
|
@@ -2,5 +2,7 @@ export * from './are-css-vars-supported';
|
|
|
2
2
|
export * from './check-fixed-position';
|
|
3
3
|
export * from './get-safe-area-size';
|
|
4
4
|
export * from './get-screen-width';
|
|
5
|
+
export * from './get-viewport-height';
|
|
6
|
+
export * from './get-viewport-width';
|
|
5
7
|
export * from './process-icon';
|
|
6
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkvY29yZS91dGlscy9kb20vIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLGdCQUFnQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9hcmUtY3NzLXZhcnMtc3VwcG9ydGVkJztcbmV4cG9ydCAqIGZyb20gJy4vY2hlY2stZml4ZWQtcG9zaXRpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9nZXQtc2FmZS1hcmVhLXNpemUnO1xuZXhwb3J0ICogZnJvbSAnLi9nZXQtc2NyZWVuLXdpZHRoJztcbmV4cG9ydCAqIGZyb20gJy4vZ2V0LXZpZXdwb3J0LWhlaWdodCc7XG5leHBvcnQgKiBmcm9tICcuL2dldC12aWV3cG9ydC13aWR0aCc7XG5leHBvcnQgKiBmcm9tICcuL3Byb2Nlc3MtaWNvbic7XG4iXX0=
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
var mobile =
|
|
4
|
-
return
|
|
1
|
+
import { tuiGetViewportWidth } from '@taiga-ui/core/utils/dom';
|
|
2
|
+
export function tuiIsMobile(windowRef, _a) {
|
|
3
|
+
var mobile = _a.mobile;
|
|
4
|
+
return tuiGetViewportWidth(windowRef) < mobile;
|
|
5
5
|
}
|
|
6
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXMtbW9iaWxlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHRhaWdhLXVpL2NvcmUvdXRpbHMvbW9iaWxlLyIsInNvdXJjZXMiOlsiaXMtbW9iaWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBRTdELE1BQU0sVUFBVSxXQUFXLENBQUMsU0FBaUIsRUFBRSxFQUFrQjtRQUFqQixrQkFBTTtJQUNsRCxPQUFPLG1CQUFtQixDQUFDLFNBQVMsQ0FBQyxHQUFHLE1BQU0sQ0FBQztBQUNuRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtUdWlNZWRpYX0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvaW50ZXJmYWNlcyc7XG5pbXBvcnQge3R1aUdldFZpZXdwb3J0V2lkdGh9IGZyb20gJ0B0YWlnYS11aS9jb3JlL3V0aWxzL2RvbSc7XG5cbmV4cG9ydCBmdW5jdGlvbiB0dWlJc01vYmlsZSh3aW5kb3dSZWY6IFdpbmRvdywge21vYmlsZX06IFR1aU1lZGlhKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHR1aUdldFZpZXdwb3J0V2lkdGgod2luZG93UmVmKSA8IG1vYmlsZTtcbn1cbiJdfQ==
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import { __decorate, __param } from 'tslib';
|
|
2
2
|
import { InjectionToken, ElementRef, Inject, HostBinding, Component, ChangeDetectionStrategy, ɵɵdefineInjectable, ɵɵinject, Injectable, Directive, NgModule } from '@angular/core';
|
|
3
|
-
import { typedFromEvent, isCurrentTarget, containsOrAfter,
|
|
3
|
+
import { typedFromEvent, isCurrentTarget, containsOrAfter, TuiDestroyService, TUI_IS_MOBILE, AbstractTuiDialogService, AbstractTuiDialogDirective, TuiPreventDefaultModule, TUI_DIALOGS } from '@taiga-ui/cdk';
|
|
4
4
|
import { tuiSlideInTop, tuiFadeIn } from '@taiga-ui/core/animations';
|
|
5
5
|
import { TUI_ANIMATIONS_DURATION, TUI_CLOSE_WORD } from '@taiga-ui/core/tokens';
|
|
6
6
|
import { POLYMORPHEUS_CONTEXT, PolymorpheusComponent, PolymorpheusModule } from '@tinkoff/ng-polymorpheus';
|
|
7
7
|
import { EMPTY, merge, Observable } from 'rxjs';
|
|
8
8
|
import { DOCUMENT, CommonModule } from '@angular/common';
|
|
9
9
|
import { WINDOW } from '@ng-web-apis/common';
|
|
10
|
+
import { tuiGetViewportWidth } from '@taiga-ui/core/utils/dom';
|
|
10
11
|
import { filter, switchMapTo, take, takeUntil } from 'rxjs/operators';
|
|
11
12
|
import { TuiIdService } from '@taiga-ui/cdk/services';
|
|
12
13
|
import { TuiButtonModule } from '@taiga-ui/core/components/button';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-core-components-dialog.js","sources":["ng://@taiga-ui/core/components/dialog/dialog.providers.ts","ng://@taiga-ui/core/components/dialog/dialog.component.ts","ng://@taiga-ui/core/components/dialog/dialog.service.ts","ng://@taiga-ui/core/components/dialog/dialog.directive.ts","ng://@taiga-ui/core/components/dialog/dialog.module.ts","ng://@taiga-ui/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 containsOrAfter,\n isCurrentTarget,\n TuiDestroyService,\n TuiDialog,\n tuiGetViewportWidth,\n typedFromEvent,\n} from '@taiga-ui/cdk';\nimport {TuiDialogOptions} from '@taiga-ui/core/interfaces';\nimport {POLYMORPHEUS_CONTEXT} from '@tinkoff/ng-polymorpheus';\nimport {EMPTY, merge, Observable} from 'rxjs';\nimport {filter, switchMapTo, take, takeUntil} from 'rxjs/operators';\n\nexport const TUI_DIALOGS_CLOSE = new InjectionToken<Observable<unknown>>(\n 'A stream to close dialogs',\n {\n factory: () => EMPTY,\n },\n);\n\nconst SCROLLBAR_PLACEHOLDER = 17;\n\nexport function dialogCloseStreamFactory(\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 typedFromEvent(nativeElement, 'click').pipe(filter(isCurrentTarget)),\n typedFromEvent(documentRef, 'keydown').pipe(\n // TODO: iframe warning\n filter(\n ({key, target}) =>\n key === 'Escape' &&\n target instanceof Element &&\n (!containsOrAfter(nativeElement, target) ||\n nativeElement.contains(target)),\n ),\n ),\n typedFromEvent(documentRef, 'mousedown').pipe(\n // TODO: iframe warning\n filter(\n ({target, clientX}) =>\n target instanceof Element &&\n tuiGetViewportWidth(windowRef) - clientX >\n SCROLLBAR_PLACEHOLDER &&\n !containsOrAfter(nativeElement, target),\n ),\n switchMapTo(\n typedFromEvent(documentRef, 'mouseup').pipe(\n take(1),\n // TODO: iframe warning\n filter(\n ({target}) =>\n target instanceof Element &&\n !containsOrAfter(nativeElement, target),\n ),\n ),\n ),\n ),\n close$,\n ).pipe(takeUntil(destroy$))\n : close$;\n}\n\nexport const TUI_DIALOG_CLOSE_STREAM = new InjectionToken<Observable<unknown>>(\n '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: dialogCloseStreamFactory,\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// @dynamic\n@Component({\n selector: 'tui-dialog',\n templateUrl: './dialog.template.html',\n styleUrls: ['./dialog.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\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 {\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","import {Injectable} from '@angular/core';\nimport {AbstractTuiDialogService} from '@taiga-ui/cdk';\nimport {TuiDialogOptions} from '@taiga-ui/core/interfaces';\nimport {PolymorpheusComponent} from '@tinkoff/ng-polymorpheus';\n\nimport {TuiDialogComponent} from './dialog.component';\n\nconst DIALOG = new PolymorpheusComponent(TuiDialogComponent);\nconst DEFAULT_OPTIONS = {\n size: 'm',\n required: false,\n closeable: true,\n dismissible: true,\n label: '',\n header: '',\n} as const;\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> = DEFAULT_OPTIONS as any;\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 {TUI_DIALOGS, 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 entryComponents: [TuiDialogComponent],\n providers: [\n {\n provide: TUI_DIALOGS,\n useExisting: TuiDialogService,\n multi: true,\n },\n ],\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":["ng://@taiga-ui/core/components/dialog/dialog.providers.ts","ng://@taiga-ui/core/components/dialog/dialog.component.ts","ng://@taiga-ui/core/components/dialog/dialog.service.ts","ng://@taiga-ui/core/components/dialog/dialog.directive.ts","ng://@taiga-ui/core/components/dialog/dialog.module.ts","ng://@taiga-ui/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 containsOrAfter,\n isCurrentTarget,\n TuiDestroyService,\n TuiDialog,\n typedFromEvent,\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, switchMapTo, take, takeUntil} from 'rxjs/operators';\n\nexport const TUI_DIALOGS_CLOSE = new InjectionToken<Observable<unknown>>(\n 'A stream to close dialogs',\n {\n factory: () => EMPTY,\n },\n);\n\nconst SCROLLBAR_PLACEHOLDER = 17;\n\nexport function dialogCloseStreamFactory(\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 typedFromEvent(nativeElement, 'click').pipe(filter(isCurrentTarget)),\n typedFromEvent(documentRef, 'keydown').pipe(\n // TODO: iframe warning\n filter(\n ({key, target}) =>\n key === 'Escape' &&\n target instanceof Element &&\n (!containsOrAfter(nativeElement, target) ||\n nativeElement.contains(target)),\n ),\n ),\n typedFromEvent(documentRef, 'mousedown').pipe(\n // TODO: iframe warning\n filter(\n ({target, clientX}) =>\n target instanceof Element &&\n tuiGetViewportWidth(windowRef) - clientX >\n SCROLLBAR_PLACEHOLDER &&\n !containsOrAfter(nativeElement, target),\n ),\n switchMapTo(\n typedFromEvent(documentRef, 'mouseup').pipe(\n take(1),\n // TODO: iframe warning\n filter(\n ({target}) =>\n target instanceof Element &&\n !containsOrAfter(nativeElement, target),\n ),\n ),\n ),\n ),\n close$,\n ).pipe(takeUntil(destroy$))\n : close$;\n}\n\nexport const TUI_DIALOG_CLOSE_STREAM = new InjectionToken<Observable<unknown>>(\n '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: dialogCloseStreamFactory,\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// @dynamic\n@Component({\n selector: 'tui-dialog',\n templateUrl: './dialog.template.html',\n styleUrls: ['./dialog.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\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 {\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","import {Injectable} from '@angular/core';\nimport {AbstractTuiDialogService} from '@taiga-ui/cdk';\nimport {TuiDialogOptions} from '@taiga-ui/core/interfaces';\nimport {PolymorpheusComponent} from '@tinkoff/ng-polymorpheus';\n\nimport {TuiDialogComponent} from './dialog.component';\n\nconst DIALOG = new PolymorpheusComponent(TuiDialogComponent);\nconst DEFAULT_OPTIONS = {\n size: 'm',\n required: false,\n closeable: true,\n dismissible: true,\n label: '',\n header: '',\n} as const;\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> = DEFAULT_OPTIONS as any;\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 {TUI_DIALOGS, 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 entryComponents: [TuiDialogComponent],\n providers: [\n {\n provide: TUI_DIALOGS,\n useExisting: TuiDialogService,\n multi: true,\n },\n ],\n})\nexport class TuiDialogModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;;;;MAgBa,iBAAiB,GAAG,IAAI,cAAc,CAC/C,2BAA2B,EAC3B;IACI,OAAO,EAAE,MAAM,KAAK;CACvB,EACH;AAEF,MAAM,qBAAqB,GAAG,EAAE,CAAC;SAEjB,wBAAwB,CACpC,WAAqB,EACrB,SAAiB,EACjB,EAAC,aAAa,EAA0B,EACxC,MAAwB,EACxB,QAA0B,EAC1B,EAAC,WAAW,EAAgD;IAE5D,OAAO,WAAW;UACZ,KAAK,CACD,cAAc,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,EACpE,cAAc,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC,IAAI;;QAEvC,MAAM,CACF,CAAC,EAAC,GAAG,EAAE,MAAM,EAAC,KACV,GAAG,KAAK,QAAQ;YAChB,MAAM,YAAY,OAAO;aACxB,CAAC,eAAe,CAAC,aAAa,EAAE,MAAM,CAAC;gBACpC,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAC1C,CACJ,EACD,cAAc,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC,IAAI;;QAEzC,MAAM,CACF,CAAC,EAAC,MAAM,EAAE,OAAO,EAAC,KACd,MAAM,YAAY,OAAO;YACzB,mBAAmB,CAAC,SAAS,CAAC,GAAG,OAAO;gBACpC,qBAAqB;YACzB,CAAC,eAAe,CAAC,aAAa,EAAE,MAAM,CAAC,CAC9C,EACD,WAAW,CACP,cAAc,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC,IAAI,CACvC,IAAI,CAAC,CAAC,CAAC;;QAEP,MAAM,CACF,CAAC,EAAC,MAAM,EAAC,KACL,MAAM,YAAY,OAAO;YACzB,CAAC,eAAe,CAAC,aAAa,EAAE,MAAM,CAAC,CAC9C,CACJ,CACJ,CACJ,EACD,MAAM,CACT,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;UAC3B,MAAM,CAAC;AACjB,CAAC;MAEY,uBAAuB,GAAG,IAAI,cAAc,CACrD,wBAAwB,EAC1B;MACW,oBAAoB,GAAe;IAC5C,iBAAiB;IACjB;QACI,OAAO,EAAE,uBAAuB;QAChC,IAAI,EAAE;YACF,QAAQ;YACR,MAAM;YACN,UAAU;YACV,iBAAiB;YACjB,iBAAiB;YACjB,oBAAoB;SACvB;QACD,UAAU,EAAE,wBAAwB;KACvC;;;AC7EL,MAAM,cAAc,GAAG,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;AAElE;IASa,kBAAkB,GAA/B,MAAa,kBAAkB;IAiB3B,YACsD,QAAgB,EAC1B,QAAiB,EAEhD,OAA0C,EAEnD,MAA2B,EACM,UAA8B;QANb,aAAQ,GAAR,QAAQ,CAAQ;QAC1B,aAAQ,GAAR,QAAQ,CAAS;QAEhD,YAAO,GAAP,OAAO,CAAmC;QAGlB,eAAU,GAAV,UAAU,CAAoB;QAvBlD,cAAS,GAAG;YACzB,KAAK,EAAE,EAAE;YACT,MAAM,EAAE;gBACJ,KAAK,EAAE,MAAM;gBACb,QAAQ,EAAE,IAAI,CAAC,QAAQ;aAC1B;SACK,CAAC;QAEM,wBAAmB,GAAG;YACnC,KAAK,EAAE,EAAE;YACT,MAAM,EAAE;gBACJ,KAAK,EAAE,OAAO;gBACd,QAAQ,EAAE,IAAI,CAAC,QAAQ;aAC1B;SACK,CAAC;QAWP,MAAM,CAAC,SAAS,CAAC;YACb,IAAI,CAAC,KAAK,EAAE,CAAC;SAChB,CAAC,CAAC;KACN;IAGD,IAAI,IAAI;QACJ,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;KAC5B;IAGD,IAAI,MAAM;QACN,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;KAC9B;IAID,IAAI,UAAU;QACV,OAAO,IAAI,CAAC,IAAI,KAAK,YAAY,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,QAAQ;cACpE,IAAI,CAAC,mBAAmB;cACxB,IAAI,CAAC,SAAS,CAAC;KACxB;IAED,KAAK;QACD,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE;YACvB,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;SAChD;aAAM;YACH,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;SACrC;KACJ;EACJ;;yCAtCQ,MAAM,SAAC,uBAAuB;0CAC9B,MAAM,SAAC,aAAa;4CACpB,MAAM,SAAC,oBAAoB;YAGpB,UAAU,uBADjB,MAAM,SAAC,uBAAuB;YAEc,UAAU,uBAAtD,MAAM,SAAC,cAAc;;AAQ1B;IADC,WAAW,CAAC,gBAAgB,CAAC;8CAG7B;AAGD;IADC,WAAW,CAAC,iBAAiB,CAAC;gDAG9B;AAID;IAFC,WAAW,CAAC,gBAAgB,CAAC;IAC7B,WAAW,CAAC,YAAY,CAAC;oDAKzB;AA/CQ,kBAAkB;IAR9B,SAAS,CAAC;QACP,QAAQ,EAAE,YAAY;QACtB,wsCAAqC;QAErC,eAAe,EAAE,uBAAuB,CAAC,MAAM;QAC/C,SAAS,EAAE,oBAAoB;QAC/B,UAAU,EAAE,CAAC,aAAa,EAAE,SAAS,CAAC;;KACzC,CAAC;IAmBO,WAAA,MAAM,CAAC,uBAAuB,CAAC,CAAA;IAC/B,WAAA,MAAM,CAAC,aAAa,CAAC,CAAA;IACrB,WAAA,MAAM,CAAC,oBAAoB,CAAC,CAAA;IAE5B,WAAA,MAAM,CAAC,uBAAuB,CAAC,CAAA;IAE/B,WAAA,MAAM,CAAC,cAAc,CAAC,CAAA;GAxBlB,kBAAkB,CAwD9B;;ACvED,MAAM,MAAM,GAAG,IAAI,qBAAqB,CAAC,kBAAkB,CAAC,CAAC;AAC7D,MAAM,eAAe,GAAG;IACpB,IAAI,EAAE,GAAG;IACT,QAAQ,EAAE,KAAK;IACf,SAAS,EAAE,IAAI;IACf,WAAW,EAAE,IAAI;IACjB,KAAK,EAAE,EAAE;IACT,MAAM,EAAE,EAAE;CACJ,CAAC;IAKE,gBAAgB,GAA7B,MAAa,gBAAiB,SAAQ,wBAA+C;IAArF;;QACuB,cAAS,GAAG,MAAM,CAAC;QACnB,mBAAc,GAA0B,eAAsB,CAAC;KACrF;EAAA;;AAHY,gBAAgB;IAH5B,UAAU,CAAC;QACR,UAAU,EAAE,MAAM;KACrB,CAAC;GACW,gBAAgB,CAG5B;;ICNY,kBAAkB,GAA/B,MAAa,kBAAsB,SAAQ,0BAE1C;EAAG;AAFS,kBAAkB;IAX9B,SAAS,CAAC;QACP,QAAQ,EAAE,wBAAwB;QAClC,SAAS,EAAE;YACP;gBACI,OAAO,EAAE,wBAAwB;gBACjC,WAAW,EAAE,gBAAgB;aAChC;SACJ;QACD,MAAM,EAAE,CAAC,2BAA2B,EAAE,iBAAiB,CAAC;QACxD,OAAO,EAAE,CAAC,6BAA6B,CAAC;KAC3C,CAAC;GACW,kBAAkB,CAE3B;;ICIS,eAAe,GAA5B,MAAa,eAAe;EAAG;AAAlB,eAAe;IAb3B,QAAQ,CAAC;QACN,OAAO,EAAE,CAAC,kBAAkB,EAAE,eAAe,EAAE,YAAY,EAAE,uBAAuB,CAAC;QACrF,YAAY,EAAE,CAAC,kBAAkB,EAAE,kBAAkB,CAAC;QACtD,OAAO,EAAE,CAAC,kBAAkB,EAAE,kBAAkB,CAAC;QACjD,eAAe,EAAE,CAAC,kBAAkB,CAAC;QACrC,SAAS,EAAE;YACP;gBACI,OAAO,EAAE,WAAW;gBACpB,WAAW,EAAE,gBAAgB;gBAC7B,KAAK,EAAE,IAAI;aACd;SACJ;KACJ,CAAC;GACW,eAAe,CAAG;;ACvB/B;;;;;;"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { __decorate, __param } from 'tslib';
|
|
2
2
|
import { Inject, NgZone, ElementRef, HostBinding, ViewChild, Component, ChangeDetectionStrategy, NgModule } from '@angular/core';
|
|
3
3
|
import { WINDOW, ANIMATION_FRAME } from '@ng-web-apis/common';
|
|
4
|
-
import { POLLING_TIME, tuiZonefree,
|
|
4
|
+
import { POLLING_TIME, tuiZonefree, inRange, px, tuiAssertIsHTMLElement, getClosestFocusable, TuiDestroyService, TuiDropdownHostComponent, AbstractTuiPortalHostComponent, tuiPure, TuiActiveZoneModule, TuiOverscrollModule } from '@taiga-ui/cdk';
|
|
5
5
|
import { tuiDropdownAnimation } from '@taiga-ui/core/animations';
|
|
6
6
|
import { DEFAULT_MARGIN, DEFAULT_MAX_WIDTH } from '@taiga-ui/core/constants';
|
|
7
7
|
import { TUI_DROPDOWN_DIRECTIVE, TUI_ANIMATION_OPTIONS } from '@taiga-ui/core/tokens';
|
|
8
|
-
import { getScreenWidth } from '@taiga-ui/core/utils/dom';
|
|
8
|
+
import { getScreenWidth, tuiGetViewportWidth } from '@taiga-ui/core/utils/dom';
|
|
9
9
|
import { merge, fromEvent, Observable } from 'rxjs';
|
|
10
10
|
import { throttleTime, takeUntil } from 'rxjs/operators';
|
|
11
11
|
import { TuiScrollbarModule } from '@taiga-ui/core/components/scrollbar';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-core-components-dropdown-box.js","sources":["ng://@taiga-ui/core/components/dropdown-box/dropdown-box.component.ts","ng://@taiga-ui/core/components/dropdown-box/dropdown-box.module.ts","ng://@taiga-ui/core/components/dropdown-box/taiga-ui-core-components-dropdown-box.ts"],"sourcesContent":["import {AnimationOptions} from '@angular/animations';\nimport {\n AfterViewChecked,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n HostBinding,\n Inject,\n NgZone,\n ViewChild,\n} from '@angular/core';\nimport {ANIMATION_FRAME, WINDOW} from '@ng-web-apis/common';\nimport {\n AbstractTuiPortalHostComponent,\n getClosestFocusable,\n inRange,\n POLLING_TIME,\n px,\n TuiActiveZoneDirective,\n tuiAssertIsHTMLElement,\n TuiDestroyService,\n TuiDropdownHostComponent,\n tuiGetViewportWidth,\n TuiOverscrollModeT,\n tuiPure,\n tuiZonefree,\n} from '@taiga-ui/cdk';\nimport {tuiDropdownAnimation} from '@taiga-ui/core/animations';\nimport {DEFAULT_MARGIN, DEFAULT_MAX_WIDTH} from '@taiga-ui/core/constants';\nimport {TuiDropdownAnimation} from '@taiga-ui/core/enums';\nimport {TuiAnimationOptions, TuiDropdown} from '@taiga-ui/core/interfaces';\nimport {TUI_ANIMATION_OPTIONS, TUI_DROPDOWN_DIRECTIVE} from '@taiga-ui/core/tokens';\nimport {TuiHorizontalDirection, TuiVerticalDirection} from '@taiga-ui/core/types';\nimport {getScreenWidth} from '@taiga-ui/core/utils/dom';\nimport {fromEvent, merge, Observable} from 'rxjs';\nimport {takeUntil, throttleTime} from 'rxjs/operators';\n\n/**\n * This component is used to show template in a portal using default style of white rounded box with a shadow\n */\n// @bad TODO: OnPush\n// Ambient type cannot be used without dynamic https://github.com/angular/angular/issues/23395\n// @dynamic\n@Component({\n selector: 'tui-dropdown-box',\n templateUrl: './dropdown-box.template.html',\n styleUrls: ['./dropdown-box.style.less'],\n changeDetection: ChangeDetectionStrategy.Default,\n providers: [TuiDestroyService],\n animations: [tuiDropdownAnimation],\n})\nexport class TuiDropdownBoxComponent implements AfterViewChecked {\n private readonly animationTop = {\n value: TuiDropdownAnimation.FadeInTop,\n ...this.options,\n };\n\n private readonly animationBottom = {\n value: TuiDropdownAnimation.FadeInBottom,\n ...this.options,\n };\n\n /**\n * Is previous position on top (to prevent jumping up and down on scroll)\n */\n private prevDirectionIsTop = false;\n\n @HostBinding('@tuiDropdownAnimation')\n dropdownAnimation!: TuiAnimationOptions;\n\n @ViewChild('content', {read: ElementRef})\n readonly contentElementRef?: ElementRef<HTMLElement>;\n\n constructor(\n @Inject(TuiDestroyService)\n destroy$: TuiDestroyService,\n @Inject(NgZone) ngZone: NgZone,\n @Inject(TUI_DROPDOWN_DIRECTIVE) readonly directive: TuiDropdown,\n @Inject(WINDOW) private readonly windowRef: Window,\n @Inject(ElementRef) private readonly elementRef: ElementRef<HTMLElement>,\n @Inject(AbstractTuiPortalHostComponent)\n private readonly portalHost: TuiDropdownHostComponent,\n @Inject(TUI_ANIMATION_OPTIONS) private readonly options: AnimationOptions,\n @Inject(ANIMATION_FRAME) animationFrame$: Observable<number>,\n ) {\n merge(\n animationFrame$.pipe(throttleTime(POLLING_TIME)),\n this.directive.refresh$,\n fromEvent(this.windowRef, 'resize'),\n )\n .pipe(tuiZonefree(ngZone), takeUntil(destroy$))\n .subscribe(() => {\n this.calculatePositionAndSize();\n });\n }\n\n get overscroll(): TuiOverscrollModeT {\n return this.inModal ? 'all' : 'scroll';\n }\n\n @tuiPure\n getContext<T extends object>(\n context?: T,\n activeZone?: TuiActiveZoneDirective,\n ):\n | (T & {activeZone?: TuiActiveZoneDirective})\n | {activeZone?: TuiActiveZoneDirective} {\n return {...context, activeZone};\n }\n\n ngAfterViewChecked(): void {\n this.calculatePositionAndSize();\n }\n\n onTopFocus(): void {\n this.moveFocusOutside(true);\n }\n\n onBottomFocus(): void {\n this.moveFocusOutside(false);\n }\n\n @tuiPure\n private get inModal(): boolean {\n // @awful TODO: get rid of component tag name dependency\n return !!this.directive.host.closest('tui-dialog-host');\n }\n\n @tuiPure\n private get inOption(): boolean {\n // @awful TODO: get rid of component tag name dependency\n return !!this.directive.host.closest('[tuiOption]');\n }\n\n private calculatePositionAndSize(): void {\n const {clientRect} = this.directive;\n const {style} = this.elementRef.nativeElement;\n const hostRect = this.directive.fixed\n ? this.portalHost.fixedPositionOffset()\n : this.portalHost.clientRect;\n\n style.position = this.directive.fixed ? 'fixed' : 'absolute';\n\n this.calculateVerticalPosition(style, clientRect, hostRect);\n this.calculateHorizontalPosition(style, clientRect, hostRect);\n this.calculateWidth(style, clientRect);\n }\n\n private getFinalAlign(\n style: CSSStyleDeclaration,\n directiveRect: ClientRect,\n ): TuiHorizontalDirection {\n const dropdownRect = this.elementRef.nativeElement.getBoundingClientRect();\n const dropdownWidth = this.elementRef.nativeElement.offsetWidth;\n const screenWidth = getScreenWidth(this.windowRef.document);\n const isDropdownSizeHypotheticallyFitsViewport =\n directiveRect.left + dropdownWidth < screenWidth ||\n directiveRect.right - dropdownWidth > 0;\n const isDropdownSizeActuallyFitsViewport =\n dropdownRect.right <= screenWidth && dropdownRect.left >= 0;\n let finalAlign: TuiHorizontalDirection = this.directive.align;\n\n switch (this.directive.align) {\n case 'left':\n if (\n isDropdownSizeHypotheticallyFitsViewport &&\n dropdownRect.right > screenWidth\n ) {\n finalAlign = 'right';\n }\n\n break;\n case 'right':\n if (isDropdownSizeHypotheticallyFitsViewport && dropdownRect.left < 0) {\n finalAlign = 'left';\n }\n\n break;\n }\n\n if (style.right === 'auto' && isDropdownSizeActuallyFitsViewport) {\n finalAlign = 'left';\n }\n\n if (style.left === 'auto' && isDropdownSizeActuallyFitsViewport) {\n finalAlign = 'right';\n }\n\n return finalAlign;\n }\n\n /**\n * Calculates horizontal position\n *\n * @param style dropdownBox elementRef styles object\n * @param directiveRect ClientRect of hosting directive\n * @param hostRect ClientRect of portal host\n */\n private calculateHorizontalPosition(\n style: CSSStyleDeclaration,\n directiveRect: ClientRect,\n hostRect: ClientRect,\n ): void {\n const offset = this.directive.sided\n ? this.elementRef.nativeElement.getBoundingClientRect().width + DEFAULT_MARGIN\n : 0;\n const left = Math.ceil(directiveRect.left - hostRect.left - offset);\n const right = Math.floor(hostRect.right - directiveRect.right - offset);\n const viewportWidth = tuiGetViewportWidth(this.windowRef);\n\n switch (this.getFinalAlign(style, directiveRect)) {\n case 'left':\n if (\n right + DEFAULT_MARGIN > viewportWidth ||\n inRange(left + DEFAULT_MARGIN, 0, viewportWidth)\n ) {\n style.left = px(left);\n style.right = 'auto';\n } else {\n style.left = 'auto';\n style.right = px(right);\n }\n\n break;\n case 'right':\n if (\n inRange(right + DEFAULT_MARGIN, 0, viewportWidth) ||\n left + DEFAULT_MARGIN > viewportWidth\n ) {\n style.left = 'auto';\n style.right = px(right);\n } else {\n style.left = px(left);\n style.right = 'auto';\n }\n\n break;\n }\n }\n\n /**\n * Calculates vertical position and height\n *\n * @param style dropdownBox elementRef styles object\n * @param directiveRect ClientRect of hosting directive\n * @param hostRect ClientRect of portal host\n */\n private calculateVerticalPosition(\n style: CSSStyleDeclaration,\n directiveRect: ClientRect,\n hostRect: ClientRect,\n ): void {\n const windowHeight = this.windowRef.innerHeight;\n // Maximum height of the box\n const boxHeightLimit = Math.min(\n this.directive.maxHeight,\n windowHeight - DEFAULT_MARGIN * 2,\n );\n const offset = this.directive.sided\n ? DEFAULT_MARGIN - directiveRect.height\n : DEFAULT_MARGIN * 2;\n const topAvailableHeight = directiveRect.top - offset;\n const bottomAvailableHeight = windowHeight - directiveRect.bottom - offset;\n const finalDirection = this.getFinalDirection(directiveRect);\n const optionOffset = this.inOption ? DEFAULT_MARGIN * 2 : 0;\n\n this.prevDirectionIsTop = finalDirection === 'top';\n\n if (finalDirection === 'top') {\n this.dropdownAnimation = this.animationBottom;\n\n style.maxHeight = px(Math.min(boxHeightLimit, topAvailableHeight));\n style.top = 'auto';\n style.bottom = px(\n hostRect.bottom -\n directiveRect.top -\n DEFAULT_MARGIN +\n offset -\n optionOffset,\n );\n } else {\n this.dropdownAnimation = this.animationTop;\n\n style.maxHeight = px(Math.min(boxHeightLimit, bottomAvailableHeight));\n style.top = px(\n directiveRect.bottom -\n hostRect.top -\n DEFAULT_MARGIN +\n offset -\n optionOffset,\n );\n style.bottom = 'auto';\n }\n }\n\n private getFinalDirection(directiveRect: ClientRect): TuiVerticalDirection | null {\n const windowHeight = this.windowRef.innerHeight;\n const offset = this.directive.sided\n ? DEFAULT_MARGIN - directiveRect.height\n : DEFAULT_MARGIN * 2;\n\n // Maximum space available on top and on the bottom in the viewport\n const topAvailableHeight = directiveRect.top - offset;\n const bottomAvailableHeight = windowHeight - directiveRect.bottom - offset;\n\n let finalDirection: TuiVerticalDirection | null = null;\n\n // Given direction is applied if we can fit the box in the limits that way\n switch (this.directive.direction) {\n case 'top':\n if (topAvailableHeight >= this.directive.minHeight) {\n finalDirection = 'top';\n }\n\n break;\n case 'bottom':\n if (bottomAvailableHeight >= this.directive.minHeight) {\n finalDirection = 'bottom';\n }\n\n break;\n }\n\n // Maximum height of the box\n const boxHeightLimit = Math.min(\n this.directive.maxHeight,\n windowHeight - DEFAULT_MARGIN * 2,\n );\n\n // Choose direction if given direction did not fit\n if (finalDirection === null && this.contentElementRef) {\n // Box height if it fits without scroll\n const visualHeight = Math.min(\n this.contentElementRef.nativeElement.getBoundingClientRect().height +\n (this.elementRef.nativeElement.offsetHeight -\n this.elementRef.nativeElement.clientHeight),\n boxHeightLimit,\n );\n\n // If there is enough space to fit below without scroll,\n // choose 'bottom', unless it was previously on the top\n if (this.prevDirectionIsTop && topAvailableHeight >= visualHeight) {\n finalDirection = 'top';\n } else if (bottomAvailableHeight >= visualHeight) {\n finalDirection = 'bottom';\n } else {\n // Corner case — select direction with more space\n finalDirection =\n bottomAvailableHeight >= topAvailableHeight ? 'bottom' : 'top';\n }\n }\n\n return finalDirection;\n }\n\n /**\n * Calculates width\n *\n * @param style dropdownBox elementRef styles object\n * @param directiveRect ClientRect of hosting directive\n */\n private calculateWidth(style: CSSStyleDeclaration, directiveRect: ClientRect): void {\n style.width =\n this.directive.limitMinWidth === 'fixed' && !this.directive.sided\n ? px(directiveRect.width)\n : '';\n\n if (this.directive.limitMinWidth === 'min' && !this.directive.sided) {\n style.minWidth = px(directiveRect.width);\n style.maxWidth = px(DEFAULT_MAX_WIDTH);\n\n return;\n }\n\n style.minWidth = '';\n style.maxWidth = '';\n }\n\n private moveFocusOutside(previous: boolean): void {\n const {host} = this.directive;\n const {ownerDocument} = host;\n const root = ownerDocument ? ownerDocument.body : host;\n\n tuiAssertIsHTMLElement(host);\n\n let focusable = getClosestFocusable(host, previous, root);\n\n while (focusable !== null && host.contains(focusable)) {\n focusable = getClosestFocusable(focusable, previous, root);\n }\n\n focusable?.focus();\n }\n}\n","import {NgModule} from '@angular/core';\nimport {TuiActiveZoneModule, TuiOverscrollModule} from '@taiga-ui/cdk';\nimport {TuiScrollbarModule} from '@taiga-ui/core/components/scrollbar';\nimport {TuiModeModule} from '@taiga-ui/core/directives/mode';\nimport {PolymorpheusModule} from '@tinkoff/ng-polymorpheus';\n\nimport {TuiDropdownBoxComponent} from './dropdown-box.component';\n\n@NgModule({\n imports: [\n TuiActiveZoneModule,\n PolymorpheusModule,\n TuiOverscrollModule,\n TuiScrollbarModule,\n TuiModeModule,\n ],\n entryComponents: [TuiDropdownBoxComponent],\n declarations: [TuiDropdownBoxComponent],\n exports: [TuiDropdownBoxComponent],\n})\nexport class TuiDropdownBoxModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;;;;AAqCA;;;AAGA;AACA;AACA;IASa,uBAAuB,GAApC,MAAa,uBAAuB;IAsBhC,YAEI,QAA2B,EACX,MAAc,EACW,SAAsB,EAC9B,SAAiB,EACb,UAAmC,EAEvD,UAAoC,EACL,OAAyB,EAChD,eAAmC;QANnB,cAAS,GAAT,SAAS,CAAa;QAC9B,cAAS,GAAT,SAAS,CAAQ;QACb,eAAU,GAAV,UAAU,CAAyB;QAEvD,eAAU,GAAV,UAAU,CAA0B;QACL,YAAO,GAAP,OAAO,CAAkB;QA9B5D,iBAAY,mBACzB,KAAK,iCACF,IAAI,CAAC,OAAO,EACjB;QAEe,oBAAe,mBAC5B,KAAK,uCACF,IAAI,CAAC,OAAO,EACjB;;;;QAKM,uBAAkB,GAAG,KAAK,CAAC;QAoB/B,KAAK,CACD,eAAe,CAAC,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,EAChD,IAAI,CAAC,SAAS,CAAC,QAAQ,EACvB,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CACtC;aACI,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC;aAC9C,SAAS,CAAC;YACP,IAAI,CAAC,wBAAwB,EAAE,CAAC;SACnC,CAAC,CAAC;KACV;IAED,IAAI,UAAU;QACV,OAAO,IAAI,CAAC,OAAO,GAAG,KAAK,GAAG,QAAQ,CAAC;KAC1C;IAGD,UAAU,CACN,OAAW,EACX,UAAmC;QAInC,uCAAW,OAAO,KAAE,UAAU,IAAE;KACnC;IAED,kBAAkB;QACd,IAAI,CAAC,wBAAwB,EAAE,CAAC;KACnC;IAED,UAAU;QACN,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;KAC/B;IAED,aAAa;QACT,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;KAChC;IAGD,IAAY,OAAO;;QAEf,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;KAC3D;IAGD,IAAY,QAAQ;;QAEhB,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;KACvD;IAEO,wBAAwB;QAC5B,MAAM,EAAC,UAAU,EAAC,GAAG,IAAI,CAAC,SAAS,CAAC;QACpC,MAAM,EAAC,KAAK,EAAC,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;QAC9C,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK;cAC/B,IAAI,CAAC,UAAU,CAAC,mBAAmB,EAAE;cACrC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;QAEjC,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,OAAO,GAAG,UAAU,CAAC;QAE7D,IAAI,CAAC,yBAAyB,CAAC,KAAK,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;QAC5D,IAAI,CAAC,2BAA2B,CAAC,KAAK,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;QAC9D,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;KAC1C;IAEO,aAAa,CACjB,KAA0B,EAC1B,aAAyB;QAEzB,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,qBAAqB,EAAE,CAAC;QAC3E,MAAM,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,WAAW,CAAC;QAChE,MAAM,WAAW,GAAG,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QAC5D,MAAM,wCAAwC,GAC1C,aAAa,CAAC,IAAI,GAAG,aAAa,GAAG,WAAW;YAChD,aAAa,CAAC,KAAK,GAAG,aAAa,GAAG,CAAC,CAAC;QAC5C,MAAM,kCAAkC,GACpC,YAAY,CAAC,KAAK,IAAI,WAAW,IAAI,YAAY,CAAC,IAAI,IAAI,CAAC,CAAC;QAChE,IAAI,UAAU,GAA2B,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;QAE9D,QAAQ,IAAI,CAAC,SAAS,CAAC,KAAK;YACxB,KAAK,MAAM;gBACP,IACI,wCAAwC;oBACxC,YAAY,CAAC,KAAK,GAAG,WAAW,EAClC;oBACE,UAAU,GAAG,OAAO,CAAC;iBACxB;gBAED,MAAM;YACV,KAAK,OAAO;gBACR,IAAI,wCAAwC,IAAI,YAAY,CAAC,IAAI,GAAG,CAAC,EAAE;oBACnE,UAAU,GAAG,MAAM,CAAC;iBACvB;gBAED,MAAM;SACb;QAED,IAAI,KAAK,CAAC,KAAK,KAAK,MAAM,IAAI,kCAAkC,EAAE;YAC9D,UAAU,GAAG,MAAM,CAAC;SACvB;QAED,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,kCAAkC,EAAE;YAC7D,UAAU,GAAG,OAAO,CAAC;SACxB;QAED,OAAO,UAAU,CAAC;KACrB;;;;;;;;IASO,2BAA2B,CAC/B,KAA0B,EAC1B,aAAyB,EACzB,QAAoB;QAEpB,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK;cAC7B,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,qBAAqB,EAAE,CAAC,KAAK,GAAG,cAAc;cAC5E,CAAC,CAAC;QACR,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,GAAG,MAAM,CAAC,CAAC;QACpE,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,GAAG,aAAa,CAAC,KAAK,GAAG,MAAM,CAAC,CAAC;QACxE,MAAM,aAAa,GAAG,mBAAmB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAE1D,QAAQ,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,aAAa,CAAC;YAC5C,KAAK,MAAM;gBACP,IACI,KAAK,GAAG,cAAc,GAAG,aAAa;oBACtC,OAAO,CAAC,IAAI,GAAG,cAAc,EAAE,CAAC,EAAE,aAAa,CAAC,EAClD;oBACE,KAAK,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;oBACtB,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC;iBACxB;qBAAM;oBACH,KAAK,CAAC,IAAI,GAAG,MAAM,CAAC;oBACpB,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;iBAC3B;gBAED,MAAM;YACV,KAAK,OAAO;gBACR,IACI,OAAO,CAAC,KAAK,GAAG,cAAc,EAAE,CAAC,EAAE,aAAa,CAAC;oBACjD,IAAI,GAAG,cAAc,GAAG,aAAa,EACvC;oBACE,KAAK,CAAC,IAAI,GAAG,MAAM,CAAC;oBACpB,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;iBAC3B;qBAAM;oBACH,KAAK,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;oBACtB,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC;iBACxB;gBAED,MAAM;SACb;KACJ;;;;;;;;IASO,yBAAyB,CAC7B,KAA0B,EAC1B,aAAyB,EACzB,QAAoB;QAEpB,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC;;QAEhD,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,CAC3B,IAAI,CAAC,SAAS,CAAC,SAAS,EACxB,YAAY,GAAG,cAAc,GAAG,CAAC,CACpC,CAAC;QACF,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK;cAC7B,cAAc,GAAG,aAAa,CAAC,MAAM;cACrC,cAAc,GAAG,CAAC,CAAC;QACzB,MAAM,kBAAkB,GAAG,aAAa,CAAC,GAAG,GAAG,MAAM,CAAC;QACtD,MAAM,qBAAqB,GAAG,YAAY,GAAG,aAAa,CAAC,MAAM,GAAG,MAAM,CAAC;QAC3E,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC;QAC7D,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,GAAG,cAAc,GAAG,CAAC,GAAG,CAAC,CAAC;QAE5D,IAAI,CAAC,kBAAkB,GAAG,cAAc,KAAK,KAAK,CAAC;QAEnD,IAAI,cAAc,KAAK,KAAK,EAAE;YAC1B,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,eAAe,CAAC;YAE9C,KAAK,CAAC,SAAS,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAC,CAAC;YACnE,KAAK,CAAC,GAAG,GAAG,MAAM,CAAC;YACnB,KAAK,CAAC,MAAM,GAAG,EAAE,CACb,QAAQ,CAAC,MAAM;gBACX,aAAa,CAAC,GAAG;gBACjB,cAAc;gBACd,MAAM;gBACN,YAAY,CACnB,CAAC;SACL;aAAM;YACH,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,YAAY,CAAC;YAE3C,KAAK,CAAC,SAAS,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,qBAAqB,CAAC,CAAC,CAAC;YACtE,KAAK,CAAC,GAAG,GAAG,EAAE,CACV,aAAa,CAAC,MAAM;gBAChB,QAAQ,CAAC,GAAG;gBACZ,cAAc;gBACd,MAAM;gBACN,YAAY,CACnB,CAAC;YACF,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;SACzB;KACJ;IAEO,iBAAiB,CAAC,aAAyB;QAC/C,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC;QAChD,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK;cAC7B,cAAc,GAAG,aAAa,CAAC,MAAM;cACrC,cAAc,GAAG,CAAC,CAAC;;QAGzB,MAAM,kBAAkB,GAAG,aAAa,CAAC,GAAG,GAAG,MAAM,CAAC;QACtD,MAAM,qBAAqB,GAAG,YAAY,GAAG,aAAa,CAAC,MAAM,GAAG,MAAM,CAAC;QAE3E,IAAI,cAAc,GAAgC,IAAI,CAAC;;QAGvD,QAAQ,IAAI,CAAC,SAAS,CAAC,SAAS;YAC5B,KAAK,KAAK;gBACN,IAAI,kBAAkB,IAAI,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE;oBAChD,cAAc,GAAG,KAAK,CAAC;iBAC1B;gBAED,MAAM;YACV,KAAK,QAAQ;gBACT,IAAI,qBAAqB,IAAI,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE;oBACnD,cAAc,GAAG,QAAQ,CAAC;iBAC7B;gBAED,MAAM;SACb;;QAGD,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,CAC3B,IAAI,CAAC,SAAS,CAAC,SAAS,EACxB,YAAY,GAAG,cAAc,GAAG,CAAC,CACpC,CAAC;;QAGF,IAAI,cAAc,KAAK,IAAI,IAAI,IAAI,CAAC,iBAAiB,EAAE;;YAEnD,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CACzB,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,qBAAqB,EAAE,CAAC,MAAM;iBAC9D,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,YAAY;oBACvC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,YAAY,CAAC,EACnD,cAAc,CACjB,CAAC;;;YAIF,IAAI,IAAI,CAAC,kBAAkB,IAAI,kBAAkB,IAAI,YAAY,EAAE;gBAC/D,cAAc,GAAG,KAAK,CAAC;aAC1B;iBAAM,IAAI,qBAAqB,IAAI,YAAY,EAAE;gBAC9C,cAAc,GAAG,QAAQ,CAAC;aAC7B;iBAAM;;gBAEH,cAAc;oBACV,qBAAqB,IAAI,kBAAkB,GAAG,QAAQ,GAAG,KAAK,CAAC;aACtE;SACJ;QAED,OAAO,cAAc,CAAC;KACzB;;;;;;;IAQO,cAAc,CAAC,KAA0B,EAAE,aAAyB;QACxE,KAAK,CAAC,KAAK;YACP,IAAI,CAAC,SAAS,CAAC,aAAa,KAAK,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK;kBAC3D,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC;kBACvB,EAAE,CAAC;QAEb,IAAI,IAAI,CAAC,SAAS,CAAC,aAAa,KAAK,KAAK,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE;YACjE,KAAK,CAAC,QAAQ,GAAG,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YACzC,KAAK,CAAC,QAAQ,GAAG,EAAE,CAAC,iBAAiB,CAAC,CAAC;YAEvC,OAAO;SACV;QAED,KAAK,CAAC,QAAQ,GAAG,EAAE,CAAC;QACpB,KAAK,CAAC,QAAQ,GAAG,EAAE,CAAC;KACvB;IAEO,gBAAgB,CAAC,QAAiB;QACtC,MAAM,EAAC,IAAI,EAAC,GAAG,IAAI,CAAC,SAAS,CAAC;QAC9B,MAAM,EAAC,aAAa,EAAC,GAAG,IAAI,CAAC;QAC7B,MAAM,IAAI,GAAG,aAAa,GAAG,aAAa,CAAC,IAAI,GAAG,IAAI,CAAC;QAEvD,sBAAsB,CAAC,IAAI,CAAC,CAAC;QAE7B,IAAI,SAAS,GAAG,mBAAmB,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;QAE1D,OAAO,SAAS,KAAK,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE;YACnD,SAAS,GAAG,mBAAmB,CAAC,SAAS,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;SAC9D;QAED,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,KAAK,GAAG;KACtB;EACJ;;YA9TiB,iBAAiB,uBAD1B,MAAM,SAAC,iBAAiB;YAED,MAAM,uBAA7B,MAAM,SAAC,MAAM;4CACb,MAAM,SAAC,sBAAsB;YACc,MAAM,uBAAjD,MAAM,SAAC,MAAM;YACmC,UAAU,uBAA1D,MAAM,SAAC,UAAU;YAEW,wBAAwB,uBADpD,MAAM,SAAC,8BAA8B;4CAErC,MAAM,SAAC,qBAAqB;YACa,UAAU,uBAAnD,MAAM,SAAC,eAAe;;AAf3B;IADC,WAAW,CAAC,uBAAuB,CAAC;kEACG;AAGxC;IADC,SAAS,CAAC,SAAS,EAAE,EAAC,IAAI,EAAE,UAAU,EAAC,CAAC;kEACY;AA8BrD;IADC,OAAO;yDAQP;AAeD;IADC,OAAO;sDAIP;AAGD;IADC,OAAO;uDAIP;AAjFQ,uBAAuB;IARnC,SAAS,CAAC;QACP,QAAQ,EAAE,kBAAkB;QAC5B,urBAA2C;QAE3C,eAAe,EAAE,uBAAuB,CAAC,OAAO;QAChD,SAAS,EAAE,CAAC,iBAAiB,CAAC;QAC9B,UAAU,EAAE,CAAC,oBAAoB,CAAC;;KACrC,CAAC;IAwBO,WAAA,MAAM,CAAC,iBAAiB,CAAC,CAAA;IAEzB,WAAA,MAAM,CAAC,MAAM,CAAC,CAAA;IACd,WAAA,MAAM,CAAC,sBAAsB,CAAC,CAAA;IAC9B,WAAA,MAAM,CAAC,MAAM,CAAC,CAAA;IACd,WAAA,MAAM,CAAC,UAAU,CAAC,CAAA;IAClB,WAAA,MAAM,CAAC,8BAA8B,CAAC,CAAA;IAEtC,WAAA,MAAM,CAAC,qBAAqB,CAAC,CAAA;IAC7B,WAAA,MAAM,CAAC,eAAe,CAAC,CAAA;GAhCnB,uBAAuB,CAsVnC;;ICrXY,oBAAoB,GAAjC,MAAa,oBAAoB;EAAG;AAAvB,oBAAoB;IAZhC,QAAQ,CAAC;QACN,OAAO,EAAE;YACL,mBAAmB;YACnB,kBAAkB;YAClB,mBAAmB;YACnB,kBAAkB;YAClB,aAAa;SAChB;QACD,eAAe,EAAE,CAAC,uBAAuB,CAAC;QAC1C,YAAY,EAAE,CAAC,uBAAuB,CAAC;QACvC,OAAO,EAAE,CAAC,uBAAuB,CAAC;KACrC,CAAC;GACW,oBAAoB,CAAG;;ACpBpC;;;;;;"}
|
|
1
|
+
{"version":3,"file":"taiga-ui-core-components-dropdown-box.js","sources":["ng://@taiga-ui/core/components/dropdown-box/dropdown-box.component.ts","ng://@taiga-ui/core/components/dropdown-box/dropdown-box.module.ts","ng://@taiga-ui/core/components/dropdown-box/taiga-ui-core-components-dropdown-box.ts"],"sourcesContent":["import {AnimationOptions} from '@angular/animations';\nimport {\n AfterViewChecked,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n HostBinding,\n Inject,\n NgZone,\n ViewChild,\n} from '@angular/core';\nimport {ANIMATION_FRAME, WINDOW} from '@ng-web-apis/common';\nimport {\n AbstractTuiPortalHostComponent,\n getClosestFocusable,\n inRange,\n POLLING_TIME,\n px,\n TuiActiveZoneDirective,\n tuiAssertIsHTMLElement,\n TuiDestroyService,\n TuiDropdownHostComponent,\n TuiOverscrollModeT,\n tuiPure,\n tuiZonefree,\n} from '@taiga-ui/cdk';\nimport {tuiDropdownAnimation} from '@taiga-ui/core/animations';\nimport {DEFAULT_MARGIN, DEFAULT_MAX_WIDTH} from '@taiga-ui/core/constants';\nimport {TuiDropdownAnimation} from '@taiga-ui/core/enums';\nimport {TuiAnimationOptions, TuiDropdown} from '@taiga-ui/core/interfaces';\nimport {TUI_ANIMATION_OPTIONS, TUI_DROPDOWN_DIRECTIVE} from '@taiga-ui/core/tokens';\nimport {TuiHorizontalDirection, TuiVerticalDirection} from '@taiga-ui/core/types';\nimport {getScreenWidth, tuiGetViewportWidth} from '@taiga-ui/core/utils/dom';\nimport {fromEvent, merge, Observable} from 'rxjs';\nimport {takeUntil, throttleTime} from 'rxjs/operators';\n\n/**\n * This component is used to show template in a portal using default style of white rounded box with a shadow\n */\n// @bad TODO: OnPush\n// Ambient type cannot be used without dynamic https://github.com/angular/angular/issues/23395\n// @dynamic\n@Component({\n selector: 'tui-dropdown-box',\n templateUrl: './dropdown-box.template.html',\n styleUrls: ['./dropdown-box.style.less'],\n changeDetection: ChangeDetectionStrategy.Default,\n providers: [TuiDestroyService],\n animations: [tuiDropdownAnimation],\n})\nexport class TuiDropdownBoxComponent implements AfterViewChecked {\n private readonly animationTop = {\n value: TuiDropdownAnimation.FadeInTop,\n ...this.options,\n };\n\n private readonly animationBottom = {\n value: TuiDropdownAnimation.FadeInBottom,\n ...this.options,\n };\n\n /**\n * Is previous position on top (to prevent jumping up and down on scroll)\n */\n private prevDirectionIsTop = false;\n\n @HostBinding('@tuiDropdownAnimation')\n dropdownAnimation!: TuiAnimationOptions;\n\n @ViewChild('content', {read: ElementRef})\n readonly contentElementRef?: ElementRef<HTMLElement>;\n\n constructor(\n @Inject(TuiDestroyService)\n destroy$: TuiDestroyService,\n @Inject(NgZone) ngZone: NgZone,\n @Inject(TUI_DROPDOWN_DIRECTIVE) readonly directive: TuiDropdown,\n @Inject(WINDOW) private readonly windowRef: Window,\n @Inject(ElementRef) private readonly elementRef: ElementRef<HTMLElement>,\n @Inject(AbstractTuiPortalHostComponent)\n private readonly portalHost: TuiDropdownHostComponent,\n @Inject(TUI_ANIMATION_OPTIONS) private readonly options: AnimationOptions,\n @Inject(ANIMATION_FRAME) animationFrame$: Observable<number>,\n ) {\n merge(\n animationFrame$.pipe(throttleTime(POLLING_TIME)),\n this.directive.refresh$,\n fromEvent(this.windowRef, 'resize'),\n )\n .pipe(tuiZonefree(ngZone), takeUntil(destroy$))\n .subscribe(() => {\n this.calculatePositionAndSize();\n });\n }\n\n get overscroll(): TuiOverscrollModeT {\n return this.inModal ? 'all' : 'scroll';\n }\n\n @tuiPure\n getContext<T extends object>(\n context?: T,\n activeZone?: TuiActiveZoneDirective,\n ):\n | (T & {activeZone?: TuiActiveZoneDirective})\n | {activeZone?: TuiActiveZoneDirective} {\n return {...context, activeZone};\n }\n\n ngAfterViewChecked(): void {\n this.calculatePositionAndSize();\n }\n\n onTopFocus(): void {\n this.moveFocusOutside(true);\n }\n\n onBottomFocus(): void {\n this.moveFocusOutside(false);\n }\n\n @tuiPure\n private get inModal(): boolean {\n // @awful TODO: get rid of component tag name dependency\n return !!this.directive.host.closest('tui-dialog-host');\n }\n\n @tuiPure\n private get inOption(): boolean {\n // @awful TODO: get rid of component tag name dependency\n return !!this.directive.host.closest('[tuiOption]');\n }\n\n private calculatePositionAndSize(): void {\n const {clientRect} = this.directive;\n const {style} = this.elementRef.nativeElement;\n const hostRect = this.directive.fixed\n ? this.portalHost.fixedPositionOffset()\n : this.portalHost.clientRect;\n\n style.position = this.directive.fixed ? 'fixed' : 'absolute';\n\n this.calculateVerticalPosition(style, clientRect, hostRect);\n this.calculateHorizontalPosition(style, clientRect, hostRect);\n this.calculateWidth(style, clientRect);\n }\n\n private getFinalAlign(\n style: CSSStyleDeclaration,\n directiveRect: ClientRect,\n ): TuiHorizontalDirection {\n const dropdownRect = this.elementRef.nativeElement.getBoundingClientRect();\n const dropdownWidth = this.elementRef.nativeElement.offsetWidth;\n const screenWidth = getScreenWidth(this.windowRef.document);\n const isDropdownSizeHypotheticallyFitsViewport =\n directiveRect.left + dropdownWidth < screenWidth ||\n directiveRect.right - dropdownWidth > 0;\n const isDropdownSizeActuallyFitsViewport =\n dropdownRect.right <= screenWidth && dropdownRect.left >= 0;\n let finalAlign: TuiHorizontalDirection = this.directive.align;\n\n switch (this.directive.align) {\n case 'left':\n if (\n isDropdownSizeHypotheticallyFitsViewport &&\n dropdownRect.right > screenWidth\n ) {\n finalAlign = 'right';\n }\n\n break;\n case 'right':\n if (isDropdownSizeHypotheticallyFitsViewport && dropdownRect.left < 0) {\n finalAlign = 'left';\n }\n\n break;\n }\n\n if (style.right === 'auto' && isDropdownSizeActuallyFitsViewport) {\n finalAlign = 'left';\n }\n\n if (style.left === 'auto' && isDropdownSizeActuallyFitsViewport) {\n finalAlign = 'right';\n }\n\n return finalAlign;\n }\n\n /**\n * Calculates horizontal position\n *\n * @param style dropdownBox elementRef styles object\n * @param directiveRect ClientRect of hosting directive\n * @param hostRect ClientRect of portal host\n */\n private calculateHorizontalPosition(\n style: CSSStyleDeclaration,\n directiveRect: ClientRect,\n hostRect: ClientRect,\n ): void {\n const offset = this.directive.sided\n ? this.elementRef.nativeElement.getBoundingClientRect().width + DEFAULT_MARGIN\n : 0;\n const left = Math.ceil(directiveRect.left - hostRect.left - offset);\n const right = Math.floor(hostRect.right - directiveRect.right - offset);\n const viewportWidth = tuiGetViewportWidth(this.windowRef);\n\n switch (this.getFinalAlign(style, directiveRect)) {\n case 'left':\n if (\n right + DEFAULT_MARGIN > viewportWidth ||\n inRange(left + DEFAULT_MARGIN, 0, viewportWidth)\n ) {\n style.left = px(left);\n style.right = 'auto';\n } else {\n style.left = 'auto';\n style.right = px(right);\n }\n\n break;\n case 'right':\n if (\n inRange(right + DEFAULT_MARGIN, 0, viewportWidth) ||\n left + DEFAULT_MARGIN > viewportWidth\n ) {\n style.left = 'auto';\n style.right = px(right);\n } else {\n style.left = px(left);\n style.right = 'auto';\n }\n\n break;\n }\n }\n\n /**\n * Calculates vertical position and height\n *\n * @param style dropdownBox elementRef styles object\n * @param directiveRect ClientRect of hosting directive\n * @param hostRect ClientRect of portal host\n */\n private calculateVerticalPosition(\n style: CSSStyleDeclaration,\n directiveRect: ClientRect,\n hostRect: ClientRect,\n ): void {\n const windowHeight = this.windowRef.innerHeight;\n // Maximum height of the box\n const boxHeightLimit = Math.min(\n this.directive.maxHeight,\n windowHeight - DEFAULT_MARGIN * 2,\n );\n const offset = this.directive.sided\n ? DEFAULT_MARGIN - directiveRect.height\n : DEFAULT_MARGIN * 2;\n const topAvailableHeight = directiveRect.top - offset;\n const bottomAvailableHeight = windowHeight - directiveRect.bottom - offset;\n const finalDirection = this.getFinalDirection(directiveRect);\n const optionOffset = this.inOption ? DEFAULT_MARGIN * 2 : 0;\n\n this.prevDirectionIsTop = finalDirection === 'top';\n\n if (finalDirection === 'top') {\n this.dropdownAnimation = this.animationBottom;\n\n style.maxHeight = px(Math.min(boxHeightLimit, topAvailableHeight));\n style.top = 'auto';\n style.bottom = px(\n hostRect.bottom -\n directiveRect.top -\n DEFAULT_MARGIN +\n offset -\n optionOffset,\n );\n } else {\n this.dropdownAnimation = this.animationTop;\n\n style.maxHeight = px(Math.min(boxHeightLimit, bottomAvailableHeight));\n style.top = px(\n directiveRect.bottom -\n hostRect.top -\n DEFAULT_MARGIN +\n offset -\n optionOffset,\n );\n style.bottom = 'auto';\n }\n }\n\n private getFinalDirection(directiveRect: ClientRect): TuiVerticalDirection | null {\n const windowHeight = this.windowRef.innerHeight;\n const offset = this.directive.sided\n ? DEFAULT_MARGIN - directiveRect.height\n : DEFAULT_MARGIN * 2;\n\n // Maximum space available on top and on the bottom in the viewport\n const topAvailableHeight = directiveRect.top - offset;\n const bottomAvailableHeight = windowHeight - directiveRect.bottom - offset;\n\n let finalDirection: TuiVerticalDirection | null = null;\n\n // Given direction is applied if we can fit the box in the limits that way\n switch (this.directive.direction) {\n case 'top':\n if (topAvailableHeight >= this.directive.minHeight) {\n finalDirection = 'top';\n }\n\n break;\n case 'bottom':\n if (bottomAvailableHeight >= this.directive.minHeight) {\n finalDirection = 'bottom';\n }\n\n break;\n }\n\n // Maximum height of the box\n const boxHeightLimit = Math.min(\n this.directive.maxHeight,\n windowHeight - DEFAULT_MARGIN * 2,\n );\n\n // Choose direction if given direction did not fit\n if (finalDirection === null && this.contentElementRef) {\n // Box height if it fits without scroll\n const visualHeight = Math.min(\n this.contentElementRef.nativeElement.getBoundingClientRect().height +\n (this.elementRef.nativeElement.offsetHeight -\n this.elementRef.nativeElement.clientHeight),\n boxHeightLimit,\n );\n\n // If there is enough space to fit below without scroll,\n // choose 'bottom', unless it was previously on the top\n if (this.prevDirectionIsTop && topAvailableHeight >= visualHeight) {\n finalDirection = 'top';\n } else if (bottomAvailableHeight >= visualHeight) {\n finalDirection = 'bottom';\n } else {\n // Corner case — select direction with more space\n finalDirection =\n bottomAvailableHeight >= topAvailableHeight ? 'bottom' : 'top';\n }\n }\n\n return finalDirection;\n }\n\n /**\n * Calculates width\n *\n * @param style dropdownBox elementRef styles object\n * @param directiveRect ClientRect of hosting directive\n */\n private calculateWidth(style: CSSStyleDeclaration, directiveRect: ClientRect): void {\n style.width =\n this.directive.limitMinWidth === 'fixed' && !this.directive.sided\n ? px(directiveRect.width)\n : '';\n\n if (this.directive.limitMinWidth === 'min' && !this.directive.sided) {\n style.minWidth = px(directiveRect.width);\n style.maxWidth = px(DEFAULT_MAX_WIDTH);\n\n return;\n }\n\n style.minWidth = '';\n style.maxWidth = '';\n }\n\n private moveFocusOutside(previous: boolean): void {\n const {host} = this.directive;\n const {ownerDocument} = host;\n const root = ownerDocument ? ownerDocument.body : host;\n\n tuiAssertIsHTMLElement(host);\n\n let focusable = getClosestFocusable(host, previous, root);\n\n while (focusable !== null && host.contains(focusable)) {\n focusable = getClosestFocusable(focusable, previous, root);\n }\n\n focusable?.focus();\n }\n}\n","import {NgModule} from '@angular/core';\nimport {TuiActiveZoneModule, TuiOverscrollModule} from '@taiga-ui/cdk';\nimport {TuiScrollbarModule} from '@taiga-ui/core/components/scrollbar';\nimport {TuiModeModule} from '@taiga-ui/core/directives/mode';\nimport {PolymorpheusModule} from '@tinkoff/ng-polymorpheus';\n\nimport {TuiDropdownBoxComponent} from './dropdown-box.component';\n\n@NgModule({\n imports: [\n TuiActiveZoneModule,\n PolymorpheusModule,\n TuiOverscrollModule,\n TuiScrollbarModule,\n TuiModeModule,\n ],\n entryComponents: [TuiDropdownBoxComponent],\n declarations: [TuiDropdownBoxComponent],\n exports: [TuiDropdownBoxComponent],\n})\nexport class TuiDropdownBoxModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -64,7 +64,7 @@ const TUI_LAST_PUNCTUATION_MARK_REGEXP = /[.,\\/#!$%\\^&\\*;:{}=\\-_`~()]$/;
|
|
|
64
64
|
const TUI_LATIN_REGEXP = /[A-z]/;
|
|
65
65
|
const TUI_LATIN_AND_NUMBERS_REGEXP = /[A-z|0-9]/;
|
|
66
66
|
|
|
67
|
-
const VERSION = '2.
|
|
67
|
+
const VERSION = '2.51.1';
|
|
68
68
|
|
|
69
69
|
/**
|
|
70
70
|
* Generated bundle index. Do not edit.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-core-constants.js","sources":["ng://@taiga-ui/core/constants/absolute-box-sizes.ts","ng://@taiga-ui/core/constants/decimal-symbols.ts","ng://@taiga-ui/core/constants/default-icons-path.ts","ng://@taiga-ui/core/constants/default-marker-handler.ts","ng://@taiga-ui/core/constants/editing-keys.ts","ng://@taiga-ui/core/constants/events.ts","ng://@taiga-ui/core/constants/mask-caret-trap.ts","ng://@taiga-ui/core/constants/media.ts","ng://@taiga-ui/core/constants/regexp.ts","ng://@taiga-ui/core/constants/version.ts","ng://@taiga-ui/core/constants/taiga-ui-core-constants.ts"],"sourcesContent":["export const DEFAULT_MARGIN = 4;\nexport const DEFAULT_MIN_HEIGHT = 80;\nexport const DEFAULT_MAX_HEIGHT = 400;\nexport const DEFAULT_MAX_WIDTH = 600;\n","export const TUI_DECIMAL_SYMBOLS: readonly string[] = [',', '.'];\n","import {TuiStringHandler} from '@taiga-ui/cdk';\n\nexport const DEFAULT_ICONS_PATH: TuiStringHandler<string> = name =>\n name.includes('.svg#') ? name : `#${name}`;\n","import {EMPTY_ARRAY} from '@taiga-ui/cdk';\nimport {TuiMarkerHandler} from '@taiga-ui/core/types';\n\nexport const TUI_DEFAULT_MARKER_HANDLER: TuiMarkerHandler = () => EMPTY_ARRAY;\n","export const tuiEditingKeys: readonly string[] = [\n 'Spacebar',\n 'Backspace',\n 'Delete',\n 'ArrowLeft',\n 'ArrowRight',\n 'Left',\n 'Right',\n 'End',\n 'Home',\n];\n","/**\n * An event indicating that async data for expand has finished loading.\n * Dispatch to finish loading states for {@link TuiExpandComponent}.\n */\nexport const TUI_EXPAND_LOADED = 'tui-expand-loaded';\n\n/**\n * An event for scrolling an element into view within {@link TuiScrollbarComponent}.\n */\nexport const TUI_SCROLL_INTO_VIEW = 'tui-scroll-into-view';\n\n/**\n * An event to notify {@link TuiScrollbarComponent} that\n * it should control a nested element.\n */\nexport const TUI_SCROLLABLE = 'tui-scrollable';\n\n/**\n * An event indicating and error during icon loading in {@link TuiSvgComponent}.\n */\nexport const TUI_ICON_ERROR = 'tui-icon-error';\n","export const MASK_CARET_TRAP = '[]';\n","/**\n * Media constants are exact the same as css media breakpoints\n * @deprecated use TUI_MEDIA token\n */\nexport const MEDIA = {\n mobile: 320,\n tablet: 600,\n desktopSmall: 1024,\n desktopLarge: 1280,\n};\n","export const TUI_DIGIT_REGEXP = /\\d/;\nexport const TUI_NON_DIGIT_REGEXP = /\\D/;\nexport const TUI_NON_DIGITS_REGEXP = /\\D+/g;\nexport const TUI_LEADING_ZEROES_REGEXP = /^0+/;\nexport const TUI_MASK_SYMBOLS_REGEXP = /[ \\-_()]/g;\nexport const TUI_LAST_PUNCTUATION_MARK_REGEXP = /[.,\\\\/#!$%\\\\^&\\\\*;:{}=\\\\-_`~()]$/;\nexport const TUI_LATIN_REGEXP = /[A-z]/;\nexport const TUI_LATIN_AND_NUMBERS_REGEXP = /[A-z|0-9]/;\n","export const VERSION = '2.
|
|
1
|
+
{"version":3,"file":"taiga-ui-core-constants.js","sources":["ng://@taiga-ui/core/constants/absolute-box-sizes.ts","ng://@taiga-ui/core/constants/decimal-symbols.ts","ng://@taiga-ui/core/constants/default-icons-path.ts","ng://@taiga-ui/core/constants/default-marker-handler.ts","ng://@taiga-ui/core/constants/editing-keys.ts","ng://@taiga-ui/core/constants/events.ts","ng://@taiga-ui/core/constants/mask-caret-trap.ts","ng://@taiga-ui/core/constants/media.ts","ng://@taiga-ui/core/constants/regexp.ts","ng://@taiga-ui/core/constants/version.ts","ng://@taiga-ui/core/constants/taiga-ui-core-constants.ts"],"sourcesContent":["export const DEFAULT_MARGIN = 4;\nexport const DEFAULT_MIN_HEIGHT = 80;\nexport const DEFAULT_MAX_HEIGHT = 400;\nexport const DEFAULT_MAX_WIDTH = 600;\n","export const TUI_DECIMAL_SYMBOLS: readonly string[] = [',', '.'];\n","import {TuiStringHandler} from '@taiga-ui/cdk';\n\nexport const DEFAULT_ICONS_PATH: TuiStringHandler<string> = name =>\n name.includes('.svg#') ? name : `#${name}`;\n","import {EMPTY_ARRAY} from '@taiga-ui/cdk';\nimport {TuiMarkerHandler} from '@taiga-ui/core/types';\n\nexport const TUI_DEFAULT_MARKER_HANDLER: TuiMarkerHandler = () => EMPTY_ARRAY;\n","export const tuiEditingKeys: readonly string[] = [\n 'Spacebar',\n 'Backspace',\n 'Delete',\n 'ArrowLeft',\n 'ArrowRight',\n 'Left',\n 'Right',\n 'End',\n 'Home',\n];\n","/**\n * An event indicating that async data for expand has finished loading.\n * Dispatch to finish loading states for {@link TuiExpandComponent}.\n */\nexport const TUI_EXPAND_LOADED = 'tui-expand-loaded';\n\n/**\n * An event for scrolling an element into view within {@link TuiScrollbarComponent}.\n */\nexport const TUI_SCROLL_INTO_VIEW = 'tui-scroll-into-view';\n\n/**\n * An event to notify {@link TuiScrollbarComponent} that\n * it should control a nested element.\n */\nexport const TUI_SCROLLABLE = 'tui-scrollable';\n\n/**\n * An event indicating and error during icon loading in {@link TuiSvgComponent}.\n */\nexport const TUI_ICON_ERROR = 'tui-icon-error';\n","export const MASK_CARET_TRAP = '[]';\n","/**\n * Media constants are exact the same as css media breakpoints\n * @deprecated use TUI_MEDIA token\n */\nexport const MEDIA = {\n mobile: 320,\n tablet: 600,\n desktopSmall: 1024,\n desktopLarge: 1280,\n};\n","export const TUI_DIGIT_REGEXP = /\\d/;\nexport const TUI_NON_DIGIT_REGEXP = /\\D/;\nexport const TUI_NON_DIGITS_REGEXP = /\\D+/g;\nexport const TUI_LEADING_ZEROES_REGEXP = /^0+/;\nexport const TUI_MASK_SYMBOLS_REGEXP = /[ \\-_()]/g;\nexport const TUI_LAST_PUNCTUATION_MARK_REGEXP = /[.,\\\\/#!$%\\\\^&\\\\*;:{}=\\\\-_`~()]$/;\nexport const TUI_LATIN_REGEXP = /[A-z]/;\nexport const TUI_LATIN_AND_NUMBERS_REGEXP = /[A-z|0-9]/;\n","export const VERSION = '2.51.1';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;MAAa,cAAc,GAAG,EAAE;MACnB,kBAAkB,GAAG,GAAG;MACxB,kBAAkB,GAAG,IAAI;MACzB,iBAAiB,GAAG;;MCHpB,mBAAmB,GAAsB,CAAC,GAAG,EAAE,GAAG;;MCElD,kBAAkB,GAA6B,IAAI,IAC5D,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,IAAI,GAAG,IAAI,IAAI;;MCA/B,0BAA0B,GAAqB,MAAM;;MCHrD,cAAc,GAAsB;IAC7C,UAAU;IACV,WAAW;IACX,QAAQ;IACR,WAAW;IACX,YAAY;IACZ,MAAM;IACN,OAAO;IACP,KAAK;IACL,MAAM;;;ACTV;;;;MAIa,iBAAiB,GAAG,oBAAoB;AAErD;;;MAGa,oBAAoB,GAAG,uBAAuB;AAE3D;;;;MAIa,cAAc,GAAG,iBAAiB;AAE/C;;;MAGa,cAAc,GAAG;;MCpBjB,eAAe,GAAG;;ACA/B;;;;MAIa,KAAK,GAAG;IACjB,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,GAAG;IACX,YAAY,EAAE,IAAI;IAClB,YAAY,EAAE,IAAI;;;MCRT,gBAAgB,GAAG,KAAK;MACxB,oBAAoB,GAAG,KAAK;MAC5B,qBAAqB,GAAG,OAAO;MAC/B,yBAAyB,GAAG,MAAM;MAClC,uBAAuB,GAAG,YAAY;MACtC,gCAAgC,GAAG,mCAAmC;MACtE,gBAAgB,GAAG,QAAQ;MAC3B,4BAA4B,GAAG;;MCP/B,OAAO,GAAG;;ACAvB;;;;;;"}
|