@taiga-ui/core 2.49.2 → 2.50.2
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-data-list.umd.js +2 -1
- package/bundles/taiga-ui-core-components-data-list.umd.js.map +1 -1
- package/bundles/taiga-ui-core-components-data-list.umd.min.js +1 -1
- package/bundles/taiga-ui-core-components-data-list.umd.min.js.map +1 -1
- package/bundles/taiga-ui-core-components-dialog.umd.js +6 -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 +5 -4
- 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-components-hints-host.umd.js +5 -5
- package/bundles/taiga-ui-core-components-hints-host.umd.js.map +1 -1
- package/bundles/taiga-ui-core-components-hints-host.umd.min.js +1 -1
- package/bundles/taiga-ui-core-components-hints-host.umd.min.js.map +1 -1
- package/bundles/taiga-ui-core-components-primitive-textfield.umd.js +18 -19
- package/bundles/taiga-ui-core-components-primitive-textfield.umd.js.map +1 -1
- package/bundles/taiga-ui-core-components-primitive-textfield.umd.min.js +1 -1
- package/bundles/taiga-ui-core-components-primitive-textfield.umd.min.js.map +1 -1
- package/bundles/taiga-ui-core-components-root.umd.js +1 -1
- package/bundles/taiga-ui-core-components-root.umd.min.js +1 -1
- package/bundles/taiga-ui-core-components-root.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-tokens.umd.js +2 -2
- package/bundles/taiga-ui-core-tokens.umd.js.map +1 -1
- package/bundles/taiga-ui-core-tokens.umd.min.js +1 -1
- package/bundles/taiga-ui-core-tokens.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-format.umd.js +1 -0
- package/bundles/taiga-ui-core-utils-format.umd.js.map +1 -1
- package/bundles/taiga-ui-core-utils-format.umd.min.js.map +1 -1
- package/bundles/taiga-ui-core-utils-mask.umd.js +3 -1
- package/bundles/taiga-ui-core-utils-mask.umd.js.map +1 -1
- package/bundles/taiga-ui-core-utils-mask.umd.min.js.map +1 -1
- package/bundles/taiga-ui-core-utils-mobile.umd.js +17 -0
- package/bundles/taiga-ui-core-utils-mobile.umd.js.map +1 -0
- package/bundles/taiga-ui-core-utils-mobile.umd.min.js +2 -0
- package/bundles/taiga-ui-core-utils-mobile.umd.min.js.map +1 -0
- package/bundles/taiga-ui-core-utils.umd.js +12 -4
- package/bundles/taiga-ui-core-utils.umd.js.map +1 -1
- package/bundles/taiga-ui-core-utils.umd.min.js +1 -1
- package/components/data-list/data-list.component.d.ts +1 -1
- package/components/data-list/taiga-ui-core-components-data-list.metadata.json +1 -1
- package/components/dialog/taiga-ui-core-components-dialog.metadata.json +1 -1
- package/components/hints-host/taiga-ui-core-components-hints-host.metadata.json +1 -1
- package/components/primitive-textfield/taiga-ui-core-components-primitive-textfield.metadata.json +1 -1
- package/components/primitive-textfield/value-decoration/value-decoration.component.d.ts +6 -6
- package/components/root/taiga-ui-core-components-root.metadata.json +1 -1
- package/constants/taiga-ui-core-constants.metadata.json +1 -1
- package/constants/version.d.ts +1 -1
- package/esm2015/components/data-list/data-list.component.js +3 -3
- package/esm2015/components/dialog/dialog.providers.js +4 -2
- package/esm2015/components/dropdown-box/dropdown-box.component.js +7 -6
- package/esm2015/components/hints-host/hint-box/hint-box.component.js +3 -2
- package/esm2015/components/primitive-textfield/primitive-textfield.module.js +2 -4
- package/esm2015/components/primitive-textfield/value-decoration/value-decoration.component.js +17 -19
- package/esm2015/components/root/root.component.js +1 -1
- package/esm2015/constants/version.js +2 -2
- package/esm2015/interfaces/number-format-settings.js +1 -1
- package/esm2015/tokens/is-mobile-resolution.js +4 -3
- 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/format/format-number.js +2 -1
- package/esm2015/utils/index.js +2 -1
- package/esm2015/utils/mask/create-number-mask.js +4 -2
- package/esm2015/utils/mobile/index.js +2 -0
- package/esm2015/utils/mobile/is-mobile.js +5 -0
- package/esm2015/utils/mobile/taiga-ui-core-utils-mobile.js +5 -0
- package/esm5/components/data-list/data-list.component.js +3 -2
- package/esm5/components/dialog/dialog.providers.js +4 -2
- package/esm5/components/dropdown-box/dropdown-box.component.js +7 -6
- package/esm5/components/hints-host/hint-box/hint-box.component.js +3 -2
- package/esm5/components/primitive-textfield/primitive-textfield.module.js +2 -4
- package/esm5/components/primitive-textfield/value-decoration/value-decoration.component.js +17 -19
- package/esm5/components/root/root.component.js +1 -1
- package/esm5/constants/version.js +2 -2
- package/esm5/interfaces/number-format-settings.js +1 -1
- package/esm5/tokens/is-mobile-resolution.js +4 -3
- 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/format/format-number.js +2 -1
- package/esm5/utils/index.js +2 -1
- package/esm5/utils/mask/create-number-mask.js +4 -2
- package/esm5/utils/mobile/index.js +2 -0
- package/esm5/utils/mobile/is-mobile.js +6 -0
- package/esm5/utils/mobile/taiga-ui-core-utils-mobile.js +5 -0
- package/fesm2015/taiga-ui-core-components-data-list.js +2 -2
- package/fesm2015/taiga-ui-core-components-data-list.js.map +1 -1
- package/fesm2015/taiga-ui-core-components-dialog.js +3 -1
- package/fesm2015/taiga-ui-core-components-dialog.js.map +1 -1
- package/fesm2015/taiga-ui-core-components-dropdown-box.js +6 -5
- package/fesm2015/taiga-ui-core-components-dropdown-box.js.map +1 -1
- package/fesm2015/taiga-ui-core-components-hints-host.js +2 -1
- package/fesm2015/taiga-ui-core-components-hints-host.js.map +1 -1
- package/fesm2015/taiga-ui-core-components-primitive-textfield.js +17 -19
- package/fesm2015/taiga-ui-core-components-primitive-textfield.js.map +1 -1
- package/fesm2015/taiga-ui-core-components-root.js +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-tokens.js +3 -3
- package/fesm2015/taiga-ui-core-tokens.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-format.js +1 -0
- package/fesm2015/taiga-ui-core-utils-format.js.map +1 -1
- package/fesm2015/taiga-ui-core-utils-mask.js +3 -1
- package/fesm2015/taiga-ui-core-utils-mask.js.map +1 -1
- package/fesm2015/taiga-ui-core-utils-mobile.js +12 -0
- package/fesm2015/taiga-ui-core-utils-mobile.js.map +1 -0
- package/fesm2015/taiga-ui-core-utils.js +1 -0
- package/fesm2015/taiga-ui-core-utils.js.map +1 -1
- package/fesm5/taiga-ui-core-components-data-list.js +2 -1
- package/fesm5/taiga-ui-core-components-data-list.js.map +1 -1
- package/fesm5/taiga-ui-core-components-dialog.js +3 -1
- package/fesm5/taiga-ui-core-components-dialog.js.map +1 -1
- package/fesm5/taiga-ui-core-components-dropdown-box.js +6 -5
- package/fesm5/taiga-ui-core-components-dropdown-box.js.map +1 -1
- package/fesm5/taiga-ui-core-components-hints-host.js +2 -1
- package/fesm5/taiga-ui-core-components-hints-host.js.map +1 -1
- package/fesm5/taiga-ui-core-components-primitive-textfield.js +17 -19
- package/fesm5/taiga-ui-core-components-primitive-textfield.js.map +1 -1
- package/fesm5/taiga-ui-core-components-root.js +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-tokens.js +3 -3
- package/fesm5/taiga-ui-core-tokens.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-format.js +1 -0
- package/fesm5/taiga-ui-core-utils-format.js.map +1 -1
- package/fesm5/taiga-ui-core-utils-mask.js +3 -1
- package/fesm5/taiga-ui-core-utils-mask.js.map +1 -1
- package/fesm5/taiga-ui-core-utils-mobile.js +13 -0
- package/fesm5/taiga-ui-core-utils-mobile.js.map +1 -0
- package/fesm5/taiga-ui-core-utils.js +1 -0
- package/fesm5/taiga-ui-core-utils.js.map +1 -1
- package/package.json +4 -4
- package/tokens/taiga-ui-core-tokens.metadata.json +1 -1
- 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/index.d.ts +1 -0
- package/utils/mobile/index.d.ts +1 -0
- package/utils/mobile/is-mobile.d.ts +2 -0
- package/utils/mobile/package.json +13 -0
- package/utils/mobile/taiga-ui-core-utils-mobile.d.ts +4 -0
- package/utils/mobile/taiga-ui-core-utils-mobile.metadata.json +1 -0
- package/utils/taiga-ui-core-utils.metadata.json +1 -1
|
@@ -5,7 +5,7 @@ import { AbstractTuiPortalHostComponent, getClosestFocusable, inRange, POLLING_T
|
|
|
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
|
/**
|
|
@@ -109,10 +109,11 @@ let TuiDropdownBoxComponent = class TuiDropdownBoxComponent {
|
|
|
109
109
|
: 0;
|
|
110
110
|
const left = Math.ceil(directiveRect.left - hostRect.left - offset);
|
|
111
111
|
const right = Math.floor(hostRect.right - directiveRect.right - offset);
|
|
112
|
+
const viewportWidth = tuiGetViewportWidth(this.windowRef);
|
|
112
113
|
switch (this.getFinalAlign(style, directiveRect)) {
|
|
113
114
|
case 'left':
|
|
114
|
-
if (right + DEFAULT_MARGIN >
|
|
115
|
-
inRange(left + DEFAULT_MARGIN, 0,
|
|
115
|
+
if (right + DEFAULT_MARGIN > viewportWidth ||
|
|
116
|
+
inRange(left + DEFAULT_MARGIN, 0, viewportWidth)) {
|
|
116
117
|
style.left = px(left);
|
|
117
118
|
style.right = 'auto';
|
|
118
119
|
}
|
|
@@ -122,8 +123,8 @@ let TuiDropdownBoxComponent = class TuiDropdownBoxComponent {
|
|
|
122
123
|
}
|
|
123
124
|
break;
|
|
124
125
|
case 'right':
|
|
125
|
-
if (inRange(right + DEFAULT_MARGIN, 0,
|
|
126
|
-
left + DEFAULT_MARGIN >
|
|
126
|
+
if (inRange(right + DEFAULT_MARGIN, 0, viewportWidth) ||
|
|
127
|
+
left + DEFAULT_MARGIN > viewportWidth) {
|
|
127
128
|
style.left = 'auto';
|
|
128
129
|
style.right = px(right);
|
|
129
130
|
}
|
|
@@ -295,4 +296,4 @@ TuiDropdownBoxComponent = __decorate([
|
|
|
295
296
|
__param(7, Inject(ANIMATION_FRAME))
|
|
296
297
|
], TuiDropdownBoxComponent);
|
|
297
298
|
export { TuiDropdownBoxComponent };
|
|
298
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24tYm94LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B0YWlnYS11aS9jb3JlL2NvbXBvbmVudHMvZHJvcGRvd24tYm94LyIsInNvdXJjZXMiOlsiZHJvcGRvd24tYm94LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQ0EsT0FBTyxFQUNILGdCQUFnQixFQUNoQix1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFVBQVUsRUFDVixXQUFXLEVBQ1gsTUFBTSxFQUNOLE1BQU0sRUFDTixTQUFTLEdBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLGVBQWUsRUFBRSxNQUFNLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUM1RCxPQUFPLEVBQ0gsOEJBQThCLEVBQzlCLG1CQUFtQixFQUNuQixPQUFPLEVBQ1AsWUFBWSxFQUNaLEVBQUUsRUFDRixzQkFBc0IsRUFDdEIsc0JBQXNCLEVBQ3RCLGlCQUFpQixFQUNqQix3QkFBd0IsRUFDeEIsa0JBQWtCLEVBQ2xCLE9BQU8sRUFDUCxXQUFXLEdBQ2QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDL0QsT0FBTyxFQUFDLGNBQWMsRUFBRSxpQkFBaUIsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBRzNFLE9BQU8sRUFBQyxxQkFBcUIsRUFBRSxzQkFBc0IsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBRXBGLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUN4RCxPQUFPLEVBQUMsU0FBUyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDbEQsT0FBTyxFQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUV2RDs7R0FFRztBQUNILG9CQUFvQjtBQUNwQiw4RkFBOEY7QUFDOUYsV0FBVztBQVNYLElBQWEsdUJBQXVCLEdBQXBDLE1B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QUFRLEVBQUUsa0JBQWtCO1FBQzVCLHVyQkFBMkM7UUFFM0MsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE9BQU87UUFDaEQsU0FBUyxFQUFFLENBQUMsaUJBQWlCLENBQUM7UUFDOUIsVUFBVSxFQUFFLENBQUMsb0JBQW9CLENBQUM7O0tBQ3JDLENBQUM7SUF3Qk8sV0FBQSxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQTtJQUV6QixXQUFBLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQTtJQUNkLFdBQUEsTUFBTSxDQUFDLHNCQUFzQixDQUFDLENBQUE7SUFDOUIsV0FBQSxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUE7SUFDZCxXQUFBLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQTtJQUNsQixXQUFBLE1BQU0sQ0FBQyw4QkFBOEIsQ0FBQyxDQUFBO0lBRXRDLFdBQUEsTUFBTSxDQUFDLHFCQUFxQixDQUFDLENBQUE7SUFDN0IsV0FBQSxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUE7R0FoQ25CLHVCQUF1QixDQXFWbkM7U0FyVlksdUJBQXVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBbmltYXRpb25PcHRpb25zfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcbmltcG9ydCB7XG4gICAgQWZ0ZXJWaWV3Q2hlY2tlZCxcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb21wb25lbnQsXG4gICAgRWxlbWVudFJlZixcbiAgICBIb3N0QmluZGluZyxcbiAgICBJbmplY3QsXG4gICAgTmdab25lLFxuICAgIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0FOSU1BVElPTl9GUkFNRSwgV0lORE9XfSBmcm9tICdAbmctd2ViLWFwaXMvY29tbW9uJztcbmltcG9ydCB7XG4gICAgQWJzdHJhY3RUdWlQb3J0YWxIb3N0Q29tcG9uZW50LFxuICAgIGdldENsb3Nlc3RGb2N1c2FibGUsXG4gICAgaW5SYW5nZSxcbiAgICBQT0xMSU5HX1RJTUUsXG4gICAgcHgsXG4gICAgVHVpQWN0aXZlWm9uZURpcmVjdGl2ZSxcbiAgICB0dWlBc3NlcnRJc0hUTUxFbGVtZW50LFxuICAgIFR1aURlc3Ryb3lTZXJ2aWNlLFxuICAgIFR1aURyb3Bkb3duSG9zdENvbXBvbmVudCxcbiAgICBUdWlPdmVyc2Nyb2xsTW9kZVQsXG4gICAgdHVpUHVyZSxcbiAgICB0dWlab25lZnJlZSxcbn0gZnJvbSAnQHRhaWdhLXVpL2Nkayc7XG5pbXBvcnQge3R1aURyb3Bkb3duQW5pbWF0aW9ufSBmcm9tICdAdGFpZ2EtdWkvY29yZS9hbmltYXRpb25zJztcbmltcG9ydCB7REVGQVVMVF9NQVJHSU4sIERFRkFVTFRfTUFYX1dJRFRIfSBmcm9tICdAdGFpZ2EtdWkvY29yZS9jb25zdGFudHMnO1xuaW1wb3J0IHtUdWlEcm9wZG93bkFuaW1hdGlvbn0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvZW51bXMnO1xuaW1wb3J0IHtUdWlBbmltYXRpb25PcHRpb25zLCBUdWlEcm9wZG93bn0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvaW50ZXJmYWNlcyc7XG5pbXBvcnQge1RVSV9BTklNQVRJT05fT1BUSU9OUywgVFVJX0RST1BET1dOX0RJUkVDVElWRX0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvdG9rZW5zJztcbmltcG9ydCB7VHVpSG9yaXpvbnRhbERpcmVjdGlvbiwgVHVpVmVydGljYWxEaXJlY3Rpb259IGZyb20gJ0B0YWlnYS11aS9jb3JlL3R5cGVzJztcbmltcG9ydCB7Z2V0U2NyZWVuV2lkdGh9IGZyb20gJ0B0YWlnYS11aS9jb3JlL3V0aWxzL2RvbSc7XG5pbXBvcnQge2Zyb21FdmVudCwgbWVyZ2UsIE9ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHt0YWtlVW50aWwsIHRocm90dGxlVGltZX0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG4vKipcbiAqICBUaGlzIGNvbXBvbmVudCBpcyB1c2VkIHRvIHNob3cgdGVtcGxhdGUgaW4gYSBwb3J0YWwgdXNpbmcgZGVmYXVsdCBzdHlsZSBvZiB3aGl0ZSByb3VuZGVkIGJveCB3aXRoIGEgc2hhZG93XG4gKi9cbi8vIEBiYWQgVE9ETzogT25QdXNoXG4vLyBBbWJpZW50IHR5cGUgY2Fubm90IGJlIHVzZWQgd2l0aG91dCBkeW5hbWljIGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2FuZ3VsYXIvaXNzdWVzLzIzMzk1XG4vLyBAZHluYW1pY1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd0dWktZHJvcGRvd24tYm94JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZHJvcGRvd24tYm94LnRlbXBsYXRlLmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2Ryb3Bkb3duLWJveC5zdHlsZS5sZXNzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5EZWZhdWx0LFxuICAgIHByb3ZpZGVyczogW1R1aURlc3Ryb3lTZXJ2aWNlXSxcbiAgICBhbmltYXRpb25zOiBbdHVpRHJvcGRvd25BbmltYXRpb25dLFxufSlcbmV4cG9ydCBjbGFzcyBUdWlEcm9wZG93bkJveENvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0NoZWNrZWQge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgYW5pbWF0aW9uVG9wID0ge1xuICAgICAgICB2YWx1ZTogVHVpRHJvcGRvd25BbmltYXRpb24uRmFkZUluVG9wLFxuICAgICAgICAuLi50aGlzLm9wdGlvbnMsXG4gICAgfTtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgYW5pbWF0aW9uQm90dG9tID0ge1xuICAgICAgICB2YWx1ZTogVHVpRHJvcGRvd25BbmltYXRpb24uRmFkZUluQm90dG9tLFxuICAgICAgICAuLi50aGlzLm9wdGlvbnMsXG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIElzIHByZXZpb3VzIHBvc2l0aW9uIG9uIHRvcCAodG8gcHJldmVudCBqdW1waW5nIHVwIGFuZCBkb3duIG9uIHNjcm9sbClcbiAgICAgKi9cbiAgICBwcml2YXRlIHByZXZEaXJlY3Rpb25Jc1RvcCA9IGZhbHNlO1xuXG4gICAgQEhvc3RCaW5kaW5nKCdAdHVpRHJvcGRvd25BbmltYXRpb24nKVxuICAgIGRyb3Bkb3duQW5pbWF0aW9uITogVHVpQW5pbWF0aW9uT3B0aW9ucztcblxuICAgIEBWaWV3Q2hpbGQoJ2NvbnRlbnQnLCB7cmVhZDogRWxlbWVudFJlZn0pXG4gICAgcmVhZG9ubHkgY29udGVudEVsZW1lbnRSZWY/OiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBASW5qZWN0KFR1aURlc3Ryb3lTZXJ2aWNlKVxuICAgICAgICBkZXN0cm95JDogVHVpRGVzdHJveVNlcnZpY2UsXG4gICAgICAgIEBJbmplY3QoTmdab25lKSBuZ1pvbmU6IE5nWm9uZSxcbiAgICAgICAgQEluamVjdChUVUlfRFJPUERPV05fRElSRUNUSVZFKSByZWFkb25seSBkaXJlY3RpdmU6IFR1aURyb3Bkb3duLFxuICAgICAgICBASW5qZWN0KFdJTkRPVykgcHJpdmF0ZSByZWFkb25seSB3aW5kb3dSZWY6IFdpbmRvdyxcbiAgICAgICAgQEluamVjdChFbGVtZW50UmVmKSBwcml2YXRlIHJlYWRvbmx5IGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxuICAgICAgICBASW5qZWN0KEFic3RyYWN0VHVpUG9ydGFsSG9zdENvbXBvbmVudClcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBwb3J0YWxIb3N0OiBUdWlEcm9wZG93bkhvc3RDb21wb25lbnQsXG4gICAgICAgIEBJbmplY3QoVFVJX0FOSU1BVElPTl9PUFRJT05TKSBwcml2YXRlIHJlYWRvbmx5IG9wdGlvbnM6IEFuaW1hdGlvbk9wdGlvbnMsXG4gICAgICAgIEBJbmplY3QoQU5JTUFUSU9OX0ZSQU1FKSBhbmltYXRpb25GcmFtZSQ6IE9ic2VydmFibGU8bnVtYmVyPixcbiAgICApIHtcbiAgICAgICAgbWVyZ2UoXG4gICAgICAgICAgICBhbmltYXRpb25GcmFtZSQucGlwZSh0aHJvdHRsZVRpbWUoUE9MTElOR19USU1FKSksXG4gICAgICAgICAgICB0aGlzLmRpcmVjdGl2ZS5yZWZyZXNoJCxcbiAgICAgICAgICAgIGZyb21FdmVudCh0aGlzLndpbmRvd1JlZiwgJ3Jlc2l6ZScpLFxuICAgICAgICApXG4gICAgICAgICAgICAucGlwZSh0dWlab25lZnJlZShuZ1pvbmUpLCB0YWtlVW50aWwoZGVzdHJveSQpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5jYWxjdWxhdGVQb3NpdGlvbkFuZFNpemUoKTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIGdldCBvdmVyc2Nyb2xsKCk6IFR1aU92ZXJzY3JvbGxNb2RlVCB7XG4gICAgICAgIHJldHVybiB0aGlzLmluTW9kYWwgPyAnYWxsJyA6ICdzY3JvbGwnO1xuICAgIH1cblxuICAgIEB0dWlQdXJlXG4gICAgZ2V0Q29udGV4dDxUIGV4dGVuZHMgb2JqZWN0PihcbiAgICAgICAgY29udGV4dD86IFQsXG4gICAgICAgIGFjdGl2ZVpvbmU/OiBUdWlBY3RpdmVab25lRGlyZWN0aXZlLFxuICAgICk6XG4gICAgICAgIHwgKFQgJiB7YWN0aXZlWm9uZT86IFR1aUFjdGl2ZVpvbmVEaXJlY3RpdmV9KVxuICAgICAgICB8IHthY3RpdmVab25lPzogVHVpQWN0aXZlWm9uZURpcmVjdGl2ZX0ge1xuICAgICAgICByZXR1cm4gey4uLmNvbnRleHQsIGFjdGl2ZVpvbmV9O1xuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3Q2hlY2tlZCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jYWxjdWxhdGVQb3NpdGlvbkFuZFNpemUoKTtcbiAgICB9XG5cbiAgICBvblRvcEZvY3VzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLm1vdmVGb2N1c091dHNpZGUodHJ1ZSk7XG4gICAgfVxuXG4gICAgb25Cb3R0b21Gb2N1cygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5tb3ZlRm9jdXNPdXRzaWRlKGZhbHNlKTtcbiAgICB9XG5cbiAgICBAdHVpUHVyZVxuICAgIHByaXZhdGUgZ2V0IGluTW9kYWwoKTogYm9vbGVhbiB7XG4gICAgICAgIC8vIEBhd2Z1bCBUT0RPOiBnZXQgcmlkIG9mIGNvbXBvbmVudCB0YWcgbmFtZSBkZXBlbmRlbmN5XG4gICAgICAgIHJldHVybiAhIXRoaXMuZGlyZWN0aXZlLmhvc3QuY2xvc2VzdCgndHVpLWRpYWxvZy1ob3N0Jyk7XG4gICAgfVxuXG4gICAgQHR1aVB1cmVcbiAgICBwcml2YXRlIGdldCBpbk9wdGlvbigpOiBib29sZWFuIHtcbiAgICAgICAgLy8gQGF3ZnVsIFRPRE86IGdldCByaWQgb2YgY29tcG9uZW50IHRhZyBuYW1lIGRlcGVuZGVuY3lcbiAgICAgICAgcmV0dXJuICEhdGhpcy5kaXJlY3RpdmUuaG9zdC5jbG9zZXN0KCdbdHVpT3B0aW9uXScpO1xuICAgIH1cblxuICAgIHByaXZhdGUgY2FsY3VsYXRlUG9zaXRpb25BbmRTaXplKCk6IHZvaWQge1xuICAgICAgICBjb25zdCB7Y2xpZW50UmVjdH0gPSB0aGlzLmRpcmVjdGl2ZTtcbiAgICAgICAgY29uc3Qge3N0eWxlfSA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuICAgICAgICBjb25zdCBob3N0UmVjdCA9IHRoaXMuZGlyZWN0aXZlLmZpeGVkXG4gICAgICAgICAgICA/IHRoaXMucG9ydGFsSG9zdC5maXhlZFBvc2l0aW9uT2Zmc2V0KClcbiAgICAgICAgICAgIDogdGhpcy5wb3J0YWxIb3N0LmNsaWVudFJlY3Q7XG5cbiAgICAgICAgc3R5bGUucG9zaXRpb24gPSB0aGlzLmRpcmVjdGl2ZS5maXhlZCA/ICdmaXhlZCcgOiAnYWJzb2x1dGUnO1xuXG4gICAgICAgIHRoaXMuY2FsY3VsYXRlVmVydGljYWxQb3NpdGlvbihzdHlsZSwgY2xpZW50UmVjdCwgaG9zdFJlY3QpO1xuICAgICAgICB0aGlzLmNhbGN1bGF0ZUhvcml6b250YWxQb3NpdGlvbihzdHlsZSwgY2xpZW50UmVjdCwgaG9zdFJlY3QpO1xuICAgICAgICB0aGlzLmNhbGN1bGF0ZVdpZHRoKHN0eWxlLCBjbGllbnRSZWN0KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldEZpbmFsQWxpZ24oXG4gICAgICAgIHN0eWxlOiBDU1NTdHlsZURlY2xhcmF0aW9uLFxuICAgICAgICBkaXJlY3RpdmVSZWN0OiBDbGllbnRSZWN0LFxuICAgICk6IFR1aUhvcml6b250YWxEaXJlY3Rpb24ge1xuICAgICAgICBjb25zdCBkcm9wZG93blJlY3QgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgY29uc3QgZHJvcGRvd25XaWR0aCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoO1xuICAgICAgICBjb25zdCBzY3JlZW5XaWR0aCA9IGdldFNjcmVlbldpZHRoKHRoaXMud2luZG93UmVmLmRvY3VtZW50KTtcbiAgICAgICAgY29uc3QgaXNEcm9wZG93blNpemVIeXBvdGhldGljYWxseUZpdHNWaWV3cG9ydCA9XG4gICAgICAgICAgICBkaXJlY3RpdmVSZWN0LmxlZnQgKyBkcm9wZG93bldpZHRoIDwgc2NyZWVuV2lkdGggfHxcbiAgICAgICAgICAgIGRpcmVjdGl2ZVJlY3QucmlnaHQgLSBkcm9wZG93bldpZHRoID4gMDtcbiAgICAgICAgY29uc3QgaXNEcm9wZG93blNpemVBY3R1YWxseUZpdHNWaWV3cG9ydCA9XG4gICAgICAgICAgICBkcm9wZG93blJlY3QucmlnaHQgPD0gc2NyZWVuV2lkdGggJiYgZHJvcGRvd25SZWN0LmxlZnQgPj0gMDtcbiAgICAgICAgbGV0IGZpbmFsQWxpZ246IFR1aUhvcml6b250YWxEaXJlY3Rpb24gPSB0aGlzLmRpcmVjdGl2ZS5hbGlnbjtcblxuICAgICAgICBzd2l0Y2ggKHRoaXMuZGlyZWN0aXZlLmFsaWduKSB7XG4gICAgICAgICAgICBjYXNlICdsZWZ0JzpcbiAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICAgIGlzRHJvcGRvd25TaXplSHlwb3RoZXRpY2FsbHlGaXRzVmlld3BvcnQgJiZcbiAgICAgICAgICAgICAgICAgICAgZHJvcGRvd25SZWN0LnJpZ2h0ID4gc2NyZWVuV2lkdGhcbiAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgZmluYWxBbGlnbiA9ICdyaWdodCc7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdyaWdodCc6XG4gICAgICAgICAgICAgICAgaWYgKGlzRHJvcGRvd25TaXplSHlwb3RoZXRpY2FsbHlGaXRzVmlld3BvcnQgJiYgZHJvcGRvd25SZWN0LmxlZnQgPCAwKSB7XG4gICAgICAgICAgICAgICAgICAgIGZpbmFsQWxpZ24gPSAnbGVmdCc7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoc3R5bGUucmlnaHQgPT09ICdhdXRvJyAmJiBpc0Ryb3Bkb3duU2l6ZUFjdHVhbGx5Rml0c1ZpZXdwb3J0KSB7XG4gICAgICAgICAgICBmaW5hbEFsaWduID0gJ2xlZnQnO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHN0eWxlLmxlZnQgPT09ICdhdXRvJyAmJiBpc0Ryb3Bkb3duU2l6ZUFjdHVhbGx5Rml0c1ZpZXdwb3J0KSB7XG4gICAgICAgICAgICBmaW5hbEFsaWduID0gJ3JpZ2h0JztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBmaW5hbEFsaWduO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENhbGN1bGF0ZXMgaG9yaXpvbnRhbCBwb3NpdGlvblxuICAgICAqXG4gICAgICogQHBhcmFtIHN0eWxlIGRyb3Bkb3duQm94IGVsZW1lbnRSZWYgc3R5bGVzIG9iamVjdFxuICAgICAqIEBwYXJhbSBkaXJlY3RpdmVSZWN0IENsaWVudFJlY3Qgb2YgaG9zdGluZyBkaXJlY3RpdmVcbiAgICAgKiBAcGFyYW0gaG9zdFJlY3QgQ2xpZW50UmVjdCBvZiAgcG9ydGFsIGhvc3RcbiAgICAgKi9cbiAgICBwcml2YXRlIGNhbGN1bGF0ZUhvcml6b250YWxQb3NpdGlvbihcbiAgICAgICAgc3R5bGU6IENTU1N0eWxlRGVjbGFyYXRpb24sXG4gICAgICAgIGRpcmVjdGl2ZVJlY3Q6IENsaWVudFJlY3QsXG4gICAgICAgIGhvc3RSZWN0OiBDbGllbnRSZWN0LFxuICAgICk6IHZvaWQge1xuICAgICAgICBjb25zdCBvZmZzZXQgPSB0aGlzLmRpcmVjdGl2ZS5zaWRlZFxuICAgICAgICAgICAgPyB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCArIERFRkFVTFRfTUFSR0lOXG4gICAgICAgICAgICA6IDA7XG4gICAgICAgIGNvbnN0IGxlZnQgPSBNYXRoLmNlaWwoZGlyZWN0aXZlUmVjdC5sZWZ0IC0gaG9zdFJlY3QubGVmdCAtIG9mZnNldCk7XG4gICAgICAgIGNvbnN0IHJpZ2h0ID0gTWF0aC5mbG9vcihob3N0UmVjdC5yaWdodCAtIGRpcmVjdGl2ZVJlY3QucmlnaHQgLSBvZmZzZXQpO1xuXG4gICAgICAgIHN3aXRjaCAodGhpcy5nZXRGaW5hbEFsaWduKHN0eWxlLCBkaXJlY3RpdmVSZWN0KSkge1xuICAgICAgICAgICAgY2FzZSAnbGVmdCc6XG4gICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgICByaWdodCArIERFRkFVTFRfTUFSR0lOID4gdGhpcy53aW5kb3dSZWYuaW5uZXJXaWR0aCB8fFxuICAgICAgICAgICAgICAgICAgICBpblJhbmdlKGxlZnQgKyBERUZBVUxUX01BUkdJTiwgMCwgdGhpcy53aW5kb3dSZWYuaW5uZXJXaWR0aClcbiAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgc3R5bGUubGVmdCA9IHB4KGxlZnQpO1xuICAgICAgICAgICAgICAgICAgICBzdHlsZS5yaWdodCA9ICdhdXRvJztcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBzdHlsZS5sZWZ0ID0gJ2F1dG8nO1xuICAgICAgICAgICAgICAgICAgICBzdHlsZS5yaWdodCA9IHB4KHJpZ2h0KTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ3JpZ2h0JzpcbiAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICAgIGluUmFuZ2UocmlnaHQgKyBERUZBVUxUX01BUkdJTiwgMCwgdGhpcy53aW5kb3dSZWYuaW5uZXJXaWR0aCkgfHxcbiAgICAgICAgICAgICAgICAgICAgbGVmdCArIERFRkFVTFRfTUFSR0lOID4gdGhpcy53aW5kb3dSZWYuaW5uZXJXaWR0aFxuICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICBzdHlsZS5sZWZ0ID0gJ2F1dG8nO1xuICAgICAgICAgICAgICAgICAgICBzdHlsZS5yaWdodCA9IHB4KHJpZ2h0KTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBzdHlsZS5sZWZ0ID0gcHgobGVmdCk7XG4gICAgICAgICAgICAgICAgICAgIHN0eWxlLnJpZ2h0ID0gJ2F1dG8nO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2FsY3VsYXRlcyB2ZXJ0aWNhbCBwb3NpdGlvbiBhbmQgaGVpZ2h0XG4gICAgICpcbiAgICAgKiBAcGFyYW0gc3R5bGUgZHJvcGRvd25Cb3ggZWxlbWVudFJlZiBzdHlsZXMgb2JqZWN0XG4gICAgICogQHBhcmFtIGRpcmVjdGl2ZVJlY3QgQ2xpZW50UmVjdCBvZiBob3N0aW5nIGRpcmVjdGl2ZVxuICAgICAqIEBwYXJhbSBob3N0UmVjdCBDbGllbnRSZWN0IG9mICBwb3J0YWwgaG9zdFxuICAgICAqL1xuICAgIHByaXZhdGUgY2FsY3VsYXRlVmVydGljYWxQb3NpdGlvbihcbiAgICAgICAgc3R5bGU6IENTU1N0eWxlRGVjbGFyYXRpb24sXG4gICAgICAgIGRpcmVjdGl2ZVJlY3Q6IENsaWVudFJlY3QsXG4gICAgICAgIGhvc3RSZWN0OiBDbGllbnRSZWN0LFxuICAgICk6IHZvaWQge1xuICAgICAgICBjb25zdCB3aW5kb3dIZWlnaHQgPSB0aGlzLndpbmRvd1JlZi5pbm5lckhlaWdodDtcbiAgICAgICAgLy8gTWF4aW11bSBoZWlnaHQgb2YgdGhlIGJveFxuICAgICAgICBjb25zdCBib3hIZWlnaHRMaW1pdCA9IE1hdGgubWluKFxuICAgICAgICAgICAgdGhpcy5kaXJlY3RpdmUubWF4SGVpZ2h0LFxuICAgICAgICAgICAgd2luZG93SGVpZ2h0IC0gREVGQVVMVF9NQVJHSU4gKiAyLFxuICAgICAgICApO1xuICAgICAgICBjb25zdCBvZmZzZXQgPSB0aGlzLmRpcmVjdGl2ZS5zaWRlZFxuICAgICAgICAgICAgPyBERUZBVUxUX01BUkdJTiAtIGRpcmVjdGl2ZVJlY3QuaGVpZ2h0XG4gICAgICAgICAgICA6IERFRkFVTFRfTUFSR0lOICogMjtcbiAgICAgICAgY29uc3QgdG9wQXZhaWxhYmxlSGVpZ2h0ID0gZGlyZWN0aXZlUmVjdC50b3AgLSBvZmZzZXQ7XG4gICAgICAgIGNvbnN0IGJvdHRvbUF2YWlsYWJsZUhlaWdodCA9IHdpbmRvd0hlaWdodCAtIGRpcmVjdGl2ZVJlY3QuYm90dG9tIC0gb2Zmc2V0O1xuICAgICAgICBjb25zdCBmaW5hbERpcmVjdGlvbiA9IHRoaXMuZ2V0RmluYWxEaXJlY3Rpb24oZGlyZWN0aXZlUmVjdCk7XG4gICAgICAgIGNvbnN0IG9wdGlvbk9mZnNldCA9IHRoaXMuaW5PcHRpb24gPyBERUZBVUxUX01BUkdJTiAqIDIgOiAwO1xuXG4gICAgICAgIHRoaXMucHJldkRpcmVjdGlvbklzVG9wID0gZmluYWxEaXJlY3Rpb24gPT09ICd0b3AnO1xuXG4gICAgICAgIGlmIChmaW5hbERpcmVjdGlvbiA9PT0gJ3RvcCcpIHtcbiAgICAgICAgICAgIHRoaXMuZHJvcGRvd25BbmltYXRpb24gPSB0aGlzLmFuaW1hdGlvbkJvdHRvbTtcblxuICAgICAgICAgICAgc3R5bGUubWF4SGVpZ2h0ID0gcHgoTWF0aC5taW4oYm94SGVpZ2h0TGltaXQsIHRvcEF2YWlsYWJsZUhlaWdodCkpO1xuICAgICAgICAgICAgc3R5bGUudG9wID0gJ2F1dG8nO1xuICAgICAgICAgICAgc3R5bGUuYm90dG9tID0gcHgoXG4gICAgICAgICAgICAgICAgaG9zdFJlY3QuYm90dG9tIC1cbiAgICAgICAgICAgICAgICAgICAgZGlyZWN0aXZlUmVjdC50b3AgLVxuICAgICAgICAgICAgICAgICAgICBERUZBVUxUX01BUkdJTiArXG4gICAgICAgICAgICAgICAgICAgIG9mZnNldCAtXG4gICAgICAgICAgICAgICAgICAgIG9wdGlvbk9mZnNldCxcbiAgICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmRyb3Bkb3duQW5pbWF0aW9uID0gdGhpcy5hbmltYXRpb25Ub3A7XG5cbiAgICAgICAgICAgIHN0eWxlLm1heEhlaWdodCA9IHB4KE1hdGgubWluKGJveEhlaWdodExpbWl0LCBib3R0b21BdmFpbGFibGVIZWlnaHQpKTtcbiAgICAgICAgICAgIHN0eWxlLnRvcCA9IHB4KFxuICAgICAgICAgICAgICAgIGRpcmVjdGl2ZVJlY3QuYm90dG9tIC1cbiAgICAgICAgICAgICAgICAgICAgaG9zdFJlY3QudG9wIC1cbiAgICAgICAgICAgICAgICAgICAgREVGQVVMVF9NQVJHSU4gK1xuICAgICAgICAgICAgICAgICAgICBvZmZzZXQgLVxuICAgICAgICAgICAgICAgICAgICBvcHRpb25PZmZzZXQsXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgc3R5bGUuYm90dG9tID0gJ2F1dG8nO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRGaW5hbERpcmVjdGlvbihkaXJlY3RpdmVSZWN0OiBDbGllbnRSZWN0KTogVHVpVmVydGljYWxEaXJlY3Rpb24gfCBudWxsIHtcbiAgICAgICAgY29uc3Qgd2luZG93SGVpZ2h0ID0gdGhpcy53aW5kb3dSZWYuaW5uZXJIZWlnaHQ7XG4gICAgICAgIGNvbnN0IG9mZnNldCA9IHRoaXMuZGlyZWN0aXZlLnNpZGVkXG4gICAgICAgICAgICA/IERFRkFVTFRfTUFSR0lOIC0gZGlyZWN0aXZlUmVjdC5oZWlnaHRcbiAgICAgICAgICAgIDogREVGQVVMVF9NQVJHSU4gKiAyO1xuXG4gICAgICAgIC8vIE1heGltdW0gc3BhY2UgYXZhaWxhYmxlIG9uIHRvcCBhbmQgb24gdGhlIGJvdHRvbSBpbiB0aGUgdmlld3BvcnRcbiAgICAgICAgY29uc3QgdG9wQXZhaWxhYmxlSGVpZ2h0ID0gZGlyZWN0aXZlUmVjdC50b3AgLSBvZmZzZXQ7XG4gICAgICAgIGNvbnN0IGJvdHRvbUF2YWlsYWJsZUhlaWdodCA9IHdpbmRvd0hlaWdodCAtIGRpcmVjdGl2ZVJlY3QuYm90dG9tIC0gb2Zmc2V0O1xuXG4gICAgICAgIGxldCBmaW5hbERpcmVjdGlvbjogVHVpVmVydGljYWxEaXJlY3Rpb24gfCBudWxsID0gbnVsbDtcblxuICAgICAgICAvLyBHaXZlbiBkaXJlY3Rpb24gaXMgYXBwbGllZCBpZiB3ZSBjYW4gZml0IHRoZSBib3ggaW4gdGhlIGxpbWl0cyB0aGF0IHdheVxuICAgICAgICBzd2l0Y2ggKHRoaXMuZGlyZWN0aXZlLmRpcmVjdGlvbikge1xuICAgICAgICAgICAgY2FzZSAndG9wJzpcbiAgICAgICAgICAgICAgICBpZiAodG9wQXZhaWxhYmxlSGVpZ2h0ID49IHRoaXMuZGlyZWN0aXZlLm1pbkhlaWdodCkge1xuICAgICAgICAgICAgICAgICAgICBmaW5hbERpcmVjdGlvbiA9ICd0b3AnO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnYm90dG9tJzpcbiAgICAgICAgICAgICAgICBpZiAoYm90dG9tQXZhaWxhYmxlSGVpZ2h0ID49IHRoaXMuZGlyZWN0aXZlLm1pbkhlaWdodCkge1xuICAgICAgICAgICAgICAgICAgICBmaW5hbERpcmVjdGlvbiA9ICdib3R0b20nO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gTWF4aW11bSBoZWlnaHQgb2YgdGhlIGJveFxuICAgICAgICBjb25zdCBib3hIZWlnaHRMaW1pdCA9IE1hdGgubWluKFxuICAgICAgICAgICAgdGhpcy5kaXJlY3RpdmUubWF4SGVpZ2h0LFxuICAgICAgICAgICAgd2luZG93SGVpZ2h0IC0gREVGQVVMVF9NQVJHSU4gKiAyLFxuICAgICAgICApO1xuXG4gICAgICAgIC8vIENob29zZSBkaXJlY3Rpb24gaWYgZ2l2ZW4gZGlyZWN0aW9uIGRpZCBub3QgZml0XG4gICAgICAgIGlmIChmaW5hbERpcmVjdGlvbiA9PT0gbnVsbCAmJiB0aGlzLmNvbnRlbnRFbGVtZW50UmVmKSB7XG4gICAgICAgICAgICAvLyBCb3ggaGVpZ2h0IGlmIGl0IGZpdHMgd2l0aG91dCBzY3JvbGxcbiAgICAgICAgICAgIGNvbnN0IHZpc3VhbEhlaWdodCA9IE1hdGgubWluKFxuICAgICAgICAgICAgICAgIHRoaXMuY29udGVudEVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5oZWlnaHQgK1xuICAgICAgICAgICAgICAgICAgICAodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQub2Zmc2V0SGVpZ2h0IC1cbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNsaWVudEhlaWdodCksXG4gICAgICAgICAgICAgICAgYm94SGVpZ2h0TGltaXQsXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAvLyBJZiB0aGVyZSBpcyBlbm91Z2ggc3BhY2UgdG8gZml0IGJlbG93IHdpdGhvdXQgc2Nyb2xsLFxuICAgICAgICAgICAgLy8gY2hvb3NlICdib3R0b20nLCB1bmxlc3MgaXQgd2FzIHByZXZpb3VzbHkgb24gdGhlIHRvcFxuICAgICAgICAgICAgaWYgKHRoaXMucHJldkRpcmVjdGlvbklzVG9wICYmIHRvcEF2YWlsYWJsZUhlaWdodCA+PSB2aXN1YWxIZWlnaHQpIHtcbiAgICAgICAgICAgICAgICBmaW5hbERpcmVjdGlvbiA9ICd0b3AnO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChib3R0b21BdmFpbGFibGVIZWlnaHQgPj0gdmlzdWFsSGVpZ2h0KSB7XG4gICAgICAgICAgICAgICAgZmluYWxEaXJlY3Rpb24gPSAnYm90dG9tJztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgLy8gQ29ybmVyIGNhc2Ug4oCUIHNlbGVjdCBkaXJlY3Rpb24gd2l0aCBtb3JlIHNwYWNlXG4gICAgICAgICAgICAgICAgZmluYWxEaXJlY3Rpb24gPVxuICAgICAgICAgICAgICAgICAgICBib3R0b21BdmFpbGFibGVIZWlnaHQgPj0gdG9wQXZhaWxhYmxlSGVpZ2h0ID8gJ2JvdHRvbScgOiAndG9wJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBmaW5hbERpcmVjdGlvbjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDYWxjdWxhdGVzIHdpZHRoXG4gICAgICpcbiAgICAgKiBAcGFyYW0gc3R5bGUgZHJvcGRvd25Cb3ggZWxlbWVudFJlZiBzdHlsZXMgb2JqZWN0XG4gICAgICogQHBhcmFtIGRpcmVjdGl2ZVJlY3QgQ2xpZW50UmVjdCBvZiBob3N0aW5nIGRpcmVjdGl2ZVxuICAgICAqL1xuICAgIHByaXZhdGUgY2FsY3VsYXRlV2lkdGgoc3R5bGU6IENTU1N0eWxlRGVjbGFyYXRpb24sIGRpcmVjdGl2ZVJlY3Q6IENsaWVudFJlY3QpOiB2b2lkIHtcbiAgICAgICAgc3R5bGUud2lkdGggPVxuICAgICAgICAgICAgdGhpcy5kaXJlY3RpdmUubGltaXRNaW5XaWR0aCA9PT0gJ2ZpeGVkJyAmJiAhdGhpcy5kaXJlY3RpdmUuc2lkZWRcbiAgICAgICAgICAgICAgICA/IHB4KGRpcmVjdGl2ZVJlY3Qud2lkdGgpXG4gICAgICAgICAgICAgICAgOiAnJztcblxuICAgICAgICBpZiAodGhpcy5kaXJlY3RpdmUubGltaXRNaW5XaWR0aCA9PT0gJ21pbicgJiYgIXRoaXMuZGlyZWN0aXZlLnNpZGVkKSB7XG4gICAgICAgICAgICBzdHlsZS5taW5XaWR0aCA9IHB4KGRpcmVjdGl2ZVJlY3Qud2lkdGgpO1xuICAgICAgICAgICAgc3R5bGUubWF4V2lkdGggPSBweChERUZBVUxUX01BWF9XSURUSCk7XG5cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHN0eWxlLm1pbldpZHRoID0gJyc7XG4gICAgICAgIHN0eWxlLm1heFdpZHRoID0gJyc7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBtb3ZlRm9jdXNPdXRzaWRlKHByZXZpb3VzOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHtob3N0fSA9IHRoaXMuZGlyZWN0aXZlO1xuICAgICAgICBjb25zdCB7b3duZXJEb2N1bWVudH0gPSBob3N0O1xuICAgICAgICBjb25zdCByb290ID0gb3duZXJEb2N1bWVudCA/IG93bmVyRG9jdW1lbnQuYm9keSA6IGhvc3Q7XG5cbiAgICAgICAgdHVpQXNzZXJ0SXNIVE1MRWxlbWVudChob3N0KTtcblxuICAgICAgICBsZXQgZm9jdXNhYmxlID0gZ2V0Q2xvc2VzdEZvY3VzYWJsZShob3N0LCBwcmV2aW91cywgcm9vdCk7XG5cbiAgICAgICAgd2hpbGUgKGZvY3VzYWJsZSAhPT0gbnVsbCAmJiBob3N0LmNvbnRhaW5zKGZvY3VzYWJsZSkpIHtcbiAgICAgICAgICAgIGZvY3VzYWJsZSA9IGdldENsb3Nlc3RGb2N1c2FibGUoZm9jdXNhYmxlLCBwcmV2aW91cywgcm9vdCk7XG4gICAgICAgIH1cblxuICAgICAgICBmb2N1c2FibGU/LmZvY3VzKCk7XG4gICAgfVxufVxuIl19
|
|
299
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24tYm94LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B0YWlnYS11aS9jb3JlL2NvbXBvbmVudHMvZHJvcGRvd24tYm94LyIsInNvdXJjZXMiOlsiZHJvcGRvd24tYm94LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQ0EsT0FBTyxFQUNILGdCQUFnQixFQUNoQix1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFVBQVUsRUFDVixXQUFXLEVBQ1gsTUFBTSxFQUNOLE1BQU0sRUFDTixTQUFTLEdBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLGVBQWUsRUFBRSxNQUFNLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUM1RCxPQUFPLEVBQ0gsOEJBQThCLEVBQzlCLG1CQUFtQixFQUNuQixPQUFPLEVBQ1AsWUFBWSxFQUNaLEVBQUUsRUFDRixzQkFBc0IsRUFDdEIsc0JBQXNCLEVBQ3RCLGlCQUFpQixFQUNqQix3QkFBd0IsRUFDeEIsa0JBQWtCLEVBQ2xCLE9BQU8sRUFDUCxXQUFXLEdBQ2QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDL0QsT0FBTyxFQUFDLGNBQWMsRUFBRSxpQkFBaUIsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBRzNFLE9BQU8sRUFBQyxxQkFBcUIsRUFBRSxzQkFBc0IsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBRXBGLE9BQU8sRUFBQyxjQUFjLEVBQUUsbUJBQW1CLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUM3RSxPQUFPLEVBQUMsU0FBUyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDbEQsT0FBTyxFQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUV2RDs7R0FFRztBQUNILG9CQUFvQjtBQUNwQiw4RkFBOEY7QUFDOUYsV0FBVztBQVNYLElBQWEsdUJB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QkFBa0I7UUFDNUIsdXJCQUEyQztRQUUzQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsT0FBTztRQUNoRCxTQUFTLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQztRQUM5QixVQUFVLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQzs7S0FDckMsQ0FBQztJQXdCTyxXQUFBLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFBO0lBRXpCLFdBQUEsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFBO0lBQ2QsV0FBQSxNQUFNLENBQUMsc0JBQXNCLENBQUMsQ0FBQTtJQUM5QixXQUFBLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQTtJQUNkLFdBQUEsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFBO0lBQ2xCLFdBQUEsTUFBTSxDQUFDLDhCQUE4QixDQUFDLENBQUE7SUFFdEMsV0FBQSxNQUFNLENBQUMscUJBQXFCLENBQUMsQ0FBQTtJQUM3QixXQUFBLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQTtHQWhDbkIsdUJBQXVCLENBc1ZuQztTQXRWWSx1QkFBdUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0FuaW1hdGlvbk9wdGlvbnN9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xuaW1wb3J0IHtcbiAgICBBZnRlclZpZXdDaGVja2VkLFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBFbGVtZW50UmVmLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIEluamVjdCxcbiAgICBOZ1pvbmUsXG4gICAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QU5JTUFUSU9OX0ZSQU1FLCBXSU5ET1d9IGZyb20gJ0BuZy13ZWItYXBpcy9jb21tb24nO1xuaW1wb3J0IHtcbiAgICBBYnN0cmFjdFR1aVBvcnRhbEhvc3RDb21wb25lbnQsXG4gICAgZ2V0Q2xvc2VzdEZvY3VzYWJsZSxcbiAgICBpblJhbmdlLFxuICAgIFBPTExJTkdfVElNRSxcbiAgICBweCxcbiAgICBUdWlBY3RpdmVab25lRGlyZWN0aXZlLFxuICAgIHR1aUFzc2VydElzSFRNTEVsZW1lbnQsXG4gICAgVHVpRGVzdHJveVNlcnZpY2UsXG4gICAgVHVpRHJvcGRvd25Ib3N0Q29tcG9uZW50LFxuICAgIFR1aU92ZXJzY3JvbGxNb2RlVCxcbiAgICB0dWlQdXJlLFxuICAgIHR1aVpvbmVmcmVlLFxufSBmcm9tICdAdGFpZ2EtdWkvY2RrJztcbmltcG9ydCB7dHVpRHJvcGRvd25BbmltYXRpb259IGZyb20gJ0B0YWlnYS11aS9jb3JlL2FuaW1hdGlvbnMnO1xuaW1wb3J0IHtERUZBVUxUX01BUkdJTiwgREVGQVVMVF9NQVhfV0lEVEh9IGZyb20gJ0B0YWlnYS11aS9jb3JlL2NvbnN0YW50cyc7XG5pbXBvcnQge1R1aURyb3Bkb3duQW5pbWF0aW9ufSBmcm9tICdAdGFpZ2EtdWkvY29yZS9lbnVtcyc7XG5pbXBvcnQge1R1aUFuaW1hdGlvbk9wdGlvbnMsIFR1aURyb3Bkb3dufSBmcm9tICdAdGFpZ2EtdWkvY29yZS9pbnRlcmZhY2VzJztcbmltcG9ydCB7VFVJX0FOSU1BVElPTl9PUFRJT05TLCBUVUlfRFJPUERPV05fRElSRUNUSVZFfSBmcm9tICdAdGFpZ2EtdWkvY29yZS90b2tlbnMnO1xuaW1wb3J0IHtUdWlIb3Jpem9udGFsRGlyZWN0aW9uLCBUdWlWZXJ0aWNhbERpcmVjdGlvbn0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvdHlwZXMnO1xuaW1wb3J0IHtnZXRTY3JlZW5XaWR0aCwgdHVpR2V0Vmlld3BvcnRXaWR0aH0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvdXRpbHMvZG9tJztcbmltcG9ydCB7ZnJvbUV2ZW50LCBtZXJnZSwgT2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge3Rha2VVbnRpbCwgdGhyb3R0bGVUaW1lfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbi8qKlxuICogIFRoaXMgY29tcG9uZW50IGlzIHVzZWQgdG8gc2hvdyB0ZW1wbGF0ZSBpbiBhIHBvcnRhbCB1c2luZyBkZWZhdWx0IHN0eWxlIG9mIHdoaXRlIHJvdW5kZWQgYm94IHdpdGggYSBzaGFkb3dcbiAqL1xuLy8gQGJhZCBUT0RPOiBPblB1c2hcbi8vIEFtYmllbnQgdHlwZSBjYW5ub3QgYmUgdXNlZCB3aXRob3V0IGR5bmFtaWMgaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvYW5ndWxhci9pc3N1ZXMvMjMzOTVcbi8vIEBkeW5hbWljXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3R1aS1kcm9wZG93bi1ib3gnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9kcm9wZG93bi1ib3gudGVtcGxhdGUuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vZHJvcGRvd24tYm94LnN0eWxlLmxlc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LkRlZmF1bHQsXG4gICAgcHJvdmlkZXJzOiBbVHVpRGVzdHJveVNlcnZpY2VdLFxuICAgIGFuaW1hdGlvbnM6IFt0dWlEcm9wZG93bkFuaW1hdGlvbl0sXG59KVxuZXhwb3J0IGNsYXNzIFR1aURyb3Bkb3duQm94Q29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3Q2hlY2tlZCB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBhbmltYXRpb25Ub3AgPSB7XG4gICAgICAgIHZhbHVlOiBUdWlEcm9wZG93bkFuaW1hdGlvbi5GYWRlSW5Ub3AsXG4gICAgICAgIC4uLnRoaXMub3B0aW9ucyxcbiAgICB9O1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBhbmltYXRpb25Cb3R0b20gPSB7XG4gICAgICAgIHZhbHVlOiBUdWlEcm9wZG93bkFuaW1hdGlvbi5GYWRlSW5Cb3R0b20sXG4gICAgICAgIC4uLnRoaXMub3B0aW9ucyxcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogSXMgcHJldmlvdXMgcG9zaXRpb24gb24gdG9wICh0byBwcmV2ZW50IGp1bXBpbmcgdXAgYW5kIGRvd24gb24gc2Nyb2xsKVxuICAgICAqL1xuICAgIHByaXZhdGUgcHJldkRpcmVjdGlvbklzVG9wID0gZmFsc2U7XG5cbiAgICBASG9zdEJpbmRpbmcoJ0B0dWlEcm9wZG93bkFuaW1hdGlvbicpXG4gICAgZHJvcGRvd25BbmltYXRpb24hOiBUdWlBbmltYXRpb25PcHRpb25zO1xuXG4gICAgQFZpZXdDaGlsZCgnY29udGVudCcsIHtyZWFkOiBFbGVtZW50UmVmfSlcbiAgICByZWFkb25seSBjb250ZW50RWxlbWVudFJlZj86IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBJbmplY3QoVHVpRGVzdHJveVNlcnZpY2UpXG4gICAgICAgIGRlc3Ryb3kkOiBUdWlEZXN0cm95U2VydmljZSxcbiAgICAgICAgQEluamVjdChOZ1pvbmUpIG5nWm9uZTogTmdab25lLFxuICAgICAgICBASW5qZWN0KFRVSV9EUk9QRE9XTl9ESVJFQ1RJVkUpIHJlYWRvbmx5IGRpcmVjdGl2ZTogVHVpRHJvcGRvd24sXG4gICAgICAgIEBJbmplY3QoV0lORE9XKSBwcml2YXRlIHJlYWRvbmx5IHdpbmRvd1JlZjogV2luZG93LFxuICAgICAgICBASW5qZWN0KEVsZW1lbnRSZWYpIHByaXZhdGUgcmVhZG9ubHkgZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICAgICAgIEBJbmplY3QoQWJzdHJhY3RUdWlQb3J0YWxIb3N0Q29tcG9uZW50KVxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHBvcnRhbEhvc3Q6IFR1aURyb3Bkb3duSG9zdENvbXBvbmVudCxcbiAgICAgICAgQEluamVjdChUVUlfQU5JTUFUSU9OX09QVElPTlMpIHByaXZhdGUgcmVhZG9ubHkgb3B0aW9uczogQW5pbWF0aW9uT3B0aW9ucyxcbiAgICAgICAgQEluamVjdChBTklNQVRJT05fRlJBTUUpIGFuaW1hdGlvbkZyYW1lJDogT2JzZXJ2YWJsZTxudW1iZXI+LFxuICAgICkge1xuICAgICAgICBtZXJnZShcbiAgICAgICAgICAgIGFuaW1hdGlvbkZyYW1lJC5waXBlKHRocm90dGxlVGltZShQT0xMSU5HX1RJTUUpKSxcbiAgICAgICAgICAgIHRoaXMuZGlyZWN0aXZlLnJlZnJlc2gkLFxuICAgICAgICAgICAgZnJvbUV2ZW50KHRoaXMud2luZG93UmVmLCAncmVzaXplJyksXG4gICAgICAgIClcbiAgICAgICAgICAgIC5waXBlKHR1aVpvbmVmcmVlKG5nWm9uZSksIHRha2VVbnRpbChkZXN0cm95JCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmNhbGN1bGF0ZVBvc2l0aW9uQW5kU2l6ZSgpO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgZ2V0IG92ZXJzY3JvbGwoKTogVHVpT3ZlcnNjcm9sbE1vZGVUIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaW5Nb2RhbCA/ICdhbGwnIDogJ3Njcm9sbCc7XG4gICAgfVxuXG4gICAgQHR1aVB1cmVcbiAgICBnZXRDb250ZXh0PFQgZXh0ZW5kcyBvYmplY3Q+KFxuICAgICAgICBjb250ZXh0PzogVCxcbiAgICAgICAgYWN0aXZlWm9uZT86IFR1aUFjdGl2ZVpvbmVEaXJlY3RpdmUsXG4gICAgKTpcbiAgICAgICAgfCAoVCAmIHthY3RpdmVab25lPzogVHVpQWN0aXZlWm9uZURpcmVjdGl2ZX0pXG4gICAgICAgIHwge2FjdGl2ZVpvbmU/OiBUdWlBY3RpdmVab25lRGlyZWN0aXZlfSB7XG4gICAgICAgIHJldHVybiB7Li4uY29udGV4dCwgYWN0aXZlWm9uZX07XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdDaGVja2VkKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNhbGN1bGF0ZVBvc2l0aW9uQW5kU2l6ZSgpO1xuICAgIH1cblxuICAgIG9uVG9wRm9jdXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMubW92ZUZvY3VzT3V0c2lkZSh0cnVlKTtcbiAgICB9XG5cbiAgICBvbkJvdHRvbUZvY3VzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLm1vdmVGb2N1c091dHNpZGUoZmFsc2UpO1xuICAgIH1cblxuICAgIEB0dWlQdXJlXG4gICAgcHJpdmF0ZSBnZXQgaW5Nb2RhbCgpOiBib29sZWFuIHtcbiAgICAgICAgLy8gQGF3ZnVsIFRPRE86IGdldCByaWQgb2YgY29tcG9uZW50IHRhZyBuYW1lIGRlcGVuZGVuY3lcbiAgICAgICAgcmV0dXJuICEhdGhpcy5kaXJlY3RpdmUuaG9zdC5jbG9zZXN0KCd0dWktZGlhbG9nLWhvc3QnKTtcbiAgICB9XG5cbiAgICBAdHVpUHVyZVxuICAgIHByaXZhdGUgZ2V0IGluT3B0aW9uKCk6IGJvb2xlYW4ge1xuICAgICAgICAvLyBAYXdmdWwgVE9ETzogZ2V0IHJpZCBvZiBjb21wb25lbnQgdGFnIG5hbWUgZGVwZW5kZW5jeVxuICAgICAgICByZXR1cm4gISF0aGlzLmRpcmVjdGl2ZS5ob3N0LmNsb3Nlc3QoJ1t0dWlPcHRpb25dJyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjYWxjdWxhdGVQb3NpdGlvbkFuZFNpemUoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHtjbGllbnRSZWN0fSA9IHRoaXMuZGlyZWN0aXZlO1xuICAgICAgICBjb25zdCB7c3R5bGV9ID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgIGNvbnN0IGhvc3RSZWN0ID0gdGhpcy5kaXJlY3RpdmUuZml4ZWRcbiAgICAgICAgICAgID8gdGhpcy5wb3J0YWxIb3N0LmZpeGVkUG9zaXRpb25PZmZzZXQoKVxuICAgICAgICAgICAgOiB0aGlzLnBvcnRhbEhvc3QuY2xpZW50UmVjdDtcblxuICAgICAgICBzdHlsZS5wb3NpdGlvbiA9IHRoaXMuZGlyZWN0aXZlLmZpeGVkID8gJ2ZpeGVkJyA6ICdhYnNvbHV0ZSc7XG5cbiAgICAgICAgdGhpcy5jYWxjdWxhdGVWZXJ0aWNhbFBvc2l0aW9uKHN0eWxlLCBjbGllbnRSZWN0LCBob3N0UmVjdCk7XG4gICAgICAgIHRoaXMuY2FsY3VsYXRlSG9yaXpvbnRhbFBvc2l0aW9uKHN0eWxlLCBjbGllbnRSZWN0LCBob3N0UmVjdCk7XG4gICAgICAgIHRoaXMuY2FsY3VsYXRlV2lkdGgoc3R5bGUsIGNsaWVudFJlY3QpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0RmluYWxBbGlnbihcbiAgICAgICAgc3R5bGU6IENTU1N0eWxlRGVjbGFyYXRpb24sXG4gICAgICAgIGRpcmVjdGl2ZVJlY3Q6IENsaWVudFJlY3QsXG4gICAgKTogVHVpSG9yaXpvbnRhbERpcmVjdGlvbiB7XG4gICAgICAgIGNvbnN0IGRyb3Bkb3duUmVjdCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgICBjb25zdCBkcm9wZG93bldpZHRoID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGg7XG4gICAgICAgIGNvbnN0IHNjcmVlbldpZHRoID0gZ2V0U2NyZWVuV2lkdGgodGhpcy53aW5kb3dSZWYuZG9jdW1lbnQpO1xuICAgICAgICBjb25zdCBpc0Ryb3Bkb3duU2l6ZUh5cG90aGV0aWNhbGx5Rml0c1ZpZXdwb3J0ID1cbiAgICAgICAgICAgIGRpcmVjdGl2ZVJlY3QubGVmdCArIGRyb3Bkb3duV2lkdGggPCBzY3JlZW5XaWR0aCB8fFxuICAgICAgICAgICAgZGlyZWN0aXZlUmVjdC5yaWdodCAtIGRyb3Bkb3duV2lkdGggPiAwO1xuICAgICAgICBjb25zdCBpc0Ryb3Bkb3duU2l6ZUFjdHVhbGx5Rml0c1ZpZXdwb3J0ID1cbiAgICAgICAgICAgIGRyb3Bkb3duUmVjdC5yaWdodCA8PSBzY3JlZW5XaWR0aCAmJiBkcm9wZG93blJlY3QubGVmdCA+PSAwO1xuICAgICAgICBsZXQgZmluYWxBbGlnbjogVHVpSG9yaXpvbnRhbERpcmVjdGlvbiA9IHRoaXMuZGlyZWN0aXZlLmFsaWduO1xuXG4gICAgICAgIHN3aXRjaCAodGhpcy5kaXJlY3RpdmUuYWxpZ24pIHtcbiAgICAgICAgICAgIGNhc2UgJ2xlZnQnOlxuICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgICAgaXNEcm9wZG93blNpemVIeXBvdGhldGljYWxseUZpdHNWaWV3cG9ydCAmJlxuICAgICAgICAgICAgICAgICAgICBkcm9wZG93blJlY3QucmlnaHQgPiBzY3JlZW5XaWR0aFxuICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICBmaW5hbEFsaWduID0gJ3JpZ2h0JztcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ3JpZ2h0JzpcbiAgICAgICAgICAgICAgICBpZiAoaXNEcm9wZG93blNpemVIeXBvdGhldGljYWxseUZpdHNWaWV3cG9ydCAmJiBkcm9wZG93blJlY3QubGVmdCA8IDApIHtcbiAgICAgICAgICAgICAgICAgICAgZmluYWxBbGlnbiA9ICdsZWZ0JztcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChzdHlsZS5yaWdodCA9PT0gJ2F1dG8nICYmIGlzRHJvcGRvd25TaXplQWN0dWFsbHlGaXRzVmlld3BvcnQpIHtcbiAgICAgICAgICAgIGZpbmFsQWxpZ24gPSAnbGVmdCc7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoc3R5bGUubGVmdCA9PT0gJ2F1dG8nICYmIGlzRHJvcGRvd25TaXplQWN0dWFsbHlGaXRzVmlld3BvcnQpIHtcbiAgICAgICAgICAgIGZpbmFsQWxpZ24gPSAncmlnaHQnO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGZpbmFsQWxpZ247XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2FsY3VsYXRlcyBob3Jpem9udGFsIHBvc2l0aW9uXG4gICAgICpcbiAgICAgKiBAcGFyYW0gc3R5bGUgZHJvcGRvd25Cb3ggZWxlbWVudFJlZiBzdHlsZXMgb2JqZWN0XG4gICAgICogQHBhcmFtIGRpcmVjdGl2ZVJlY3QgQ2xpZW50UmVjdCBvZiBob3N0aW5nIGRpcmVjdGl2ZVxuICAgICAqIEBwYXJhbSBob3N0UmVjdCBDbGllbnRSZWN0IG9mICBwb3J0YWwgaG9zdFxuICAgICAqL1xuICAgIHByaXZhdGUgY2FsY3VsYXRlSG9yaXpvbnRhbFBvc2l0aW9uKFxuICAgICAgICBzdHlsZTogQ1NTU3R5bGVEZWNsYXJhdGlvbixcbiAgICAgICAgZGlyZWN0aXZlUmVjdDogQ2xpZW50UmVjdCxcbiAgICAgICAgaG9zdFJlY3Q6IENsaWVudFJlY3QsXG4gICAgKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IG9mZnNldCA9IHRoaXMuZGlyZWN0aXZlLnNpZGVkXG4gICAgICAgICAgICA/IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoICsgREVGQVVMVF9NQVJHSU5cbiAgICAgICAgICAgIDogMDtcbiAgICAgICAgY29uc3QgbGVmdCA9IE1hdGguY2VpbChkaXJlY3RpdmVSZWN0LmxlZnQgLSBob3N0UmVjdC5sZWZ0IC0gb2Zmc2V0KTtcbiAgICAgICAgY29uc3QgcmlnaHQgPSBNYXRoLmZsb29yKGhvc3RSZWN0LnJpZ2h0IC0gZGlyZWN0aXZlUmVjdC5yaWdodCAtIG9mZnNldCk7XG4gICAgICAgIGNvbnN0IHZpZXdwb3J0V2lkdGggPSB0dWlHZXRWaWV3cG9ydFdpZHRoKHRoaXMud2luZG93UmVmKTtcblxuICAgICAgICBzd2l0Y2ggKHRoaXMuZ2V0RmluYWxBbGlnbihzdHlsZSwgZGlyZWN0aXZlUmVjdCkpIHtcbiAgICAgICAgICAgIGNhc2UgJ2xlZnQnOlxuICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgICAgcmlnaHQgKyBERUZBVUxUX01BUkdJTiA+IHZpZXdwb3J0V2lkdGggfHxcbiAgICAgICAgICAgICAgICAgICAgaW5SYW5nZShsZWZ0ICsgREVGQVVMVF9NQVJHSU4sIDAsIHZpZXdwb3J0V2lkdGgpXG4gICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgIHN0eWxlLmxlZnQgPSBweChsZWZ0KTtcbiAgICAgICAgICAgICAgICAgICAgc3R5bGUucmlnaHQgPSAnYXV0byc7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgc3R5bGUubGVmdCA9ICdhdXRvJztcbiAgICAgICAgICAgICAgICAgICAgc3R5bGUucmlnaHQgPSBweChyaWdodCk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdyaWdodCc6XG4gICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgICBpblJhbmdlKHJpZ2h0ICsgREVGQVVMVF9NQVJHSU4sIDAsIHZpZXdwb3J0V2lkdGgpIHx8XG4gICAgICAgICAgICAgICAgICAgIGxlZnQgKyBERUZBVUxUX01BUkdJTiA+IHZpZXdwb3J0V2lkdGhcbiAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgc3R5bGUubGVmdCA9ICdhdXRvJztcbiAgICAgICAgICAgICAgICAgICAgc3R5bGUucmlnaHQgPSBweChyaWdodCk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgc3R5bGUubGVmdCA9IHB4KGxlZnQpO1xuICAgICAgICAgICAgICAgICAgICBzdHlsZS5yaWdodCA9ICdhdXRvJztcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENhbGN1bGF0ZXMgdmVydGljYWwgcG9zaXRpb24gYW5kIGhlaWdodFxuICAgICAqXG4gICAgICogQHBhcmFtIHN0eWxlIGRyb3Bkb3duQm94IGVsZW1lbnRSZWYgc3R5bGVzIG9iamVjdFxuICAgICAqIEBwYXJhbSBkaXJlY3RpdmVSZWN0IENsaWVudFJlY3Qgb2YgaG9zdGluZyBkaXJlY3RpdmVcbiAgICAgKiBAcGFyYW0gaG9zdFJlY3QgQ2xpZW50UmVjdCBvZiAgcG9ydGFsIGhvc3RcbiAgICAgKi9cbiAgICBwcml2YXRlIGNhbGN1bGF0ZVZlcnRpY2FsUG9zaXRpb24oXG4gICAgICAgIHN0eWxlOiBDU1NTdHlsZURlY2xhcmF0aW9uLFxuICAgICAgICBkaXJlY3RpdmVSZWN0OiBDbGllbnRSZWN0LFxuICAgICAgICBob3N0UmVjdDogQ2xpZW50UmVjdCxcbiAgICApOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgd2luZG93SGVpZ2h0ID0gdGhpcy53aW5kb3dSZWYuaW5uZXJIZWlnaHQ7XG4gICAgICAgIC8vIE1heGltdW0gaGVpZ2h0IG9mIHRoZSBib3hcbiAgICAgICAgY29uc3QgYm94SGVpZ2h0TGltaXQgPSBNYXRoLm1pbihcbiAgICAgICAgICAgIHRoaXMuZGlyZWN0aXZlLm1heEhlaWdodCxcbiAgICAgICAgICAgIHdpbmRvd0hlaWdodCAtIERFRkFVTFRfTUFSR0lOICogMixcbiAgICAgICAgKTtcbiAgICAgICAgY29uc3Qgb2Zmc2V0ID0gdGhpcy5kaXJlY3RpdmUuc2lkZWRcbiAgICAgICAgICAgID8gREVGQVVMVF9NQVJHSU4gLSBkaXJlY3RpdmVSZWN0LmhlaWdodFxuICAgICAgICAgICAgOiBERUZBVUxUX01BUkdJTiAqIDI7XG4gICAgICAgIGNvbnN0IHRvcEF2YWlsYWJsZUhlaWdodCA9IGRpcmVjdGl2ZVJlY3QudG9wIC0gb2Zmc2V0O1xuICAgICAgICBjb25zdCBib3R0b21BdmFpbGFibGVIZWlnaHQgPSB3aW5kb3dIZWlnaHQgLSBkaXJlY3RpdmVSZWN0LmJvdHRvbSAtIG9mZnNldDtcbiAgICAgICAgY29uc3QgZmluYWxEaXJlY3Rpb24gPSB0aGlzLmdldEZpbmFsRGlyZWN0aW9uKGRpcmVjdGl2ZVJlY3QpO1xuICAgICAgICBjb25zdCBvcHRpb25PZmZzZXQgPSB0aGlzLmluT3B0aW9uID8gREVGQVVMVF9NQVJHSU4gKiAyIDogMDtcblxuICAgICAgICB0aGlzLnByZXZEaXJlY3Rpb25Jc1RvcCA9IGZpbmFsRGlyZWN0aW9uID09PSAndG9wJztcblxuICAgICAgICBpZiAoZmluYWxEaXJlY3Rpb24gPT09ICd0b3AnKSB7XG4gICAgICAgICAgICB0aGlzLmRyb3Bkb3duQW5pbWF0aW9uID0gdGhpcy5hbmltYXRpb25Cb3R0b207XG5cbiAgICAgICAgICAgIHN0eWxlLm1heEhlaWdodCA9IHB4KE1hdGgubWluKGJveEhlaWdodExpbWl0LCB0b3BBdmFpbGFibGVIZWlnaHQpKTtcbiAgICAgICAgICAgIHN0eWxlLnRvcCA9ICdhdXRvJztcbiAgICAgICAgICAgIHN0eWxlLmJvdHRvbSA9IHB4KFxuICAgICAgICAgICAgICAgIGhvc3RSZWN0LmJvdHRvbSAtXG4gICAgICAgICAgICAgICAgICAgIGRpcmVjdGl2ZVJlY3QudG9wIC1cbiAgICAgICAgICAgICAgICAgICAgREVGQVVMVF9NQVJHSU4gK1xuICAgICAgICAgICAgICAgICAgICBvZmZzZXQgLVxuICAgICAgICAgICAgICAgICAgICBvcHRpb25PZmZzZXQsXG4gICAgICAgICAgICApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5kcm9wZG93bkFuaW1hdGlvbiA9IHRoaXMuYW5pbWF0aW9uVG9wO1xuXG4gICAgICAgICAgICBzdHlsZS5tYXhIZWlnaHQgPSBweChNYXRoLm1pbihib3hIZWlnaHRMaW1pdCwgYm90dG9tQXZhaWxhYmxlSGVpZ2h0KSk7XG4gICAgICAgICAgICBzdHlsZS50b3AgPSBweChcbiAgICAgICAgICAgICAgICBkaXJlY3RpdmVSZWN0LmJvdHRvbSAtXG4gICAgICAgICAgICAgICAgICAgIGhvc3RSZWN0LnRvcCAtXG4gICAgICAgICAgICAgICAgICAgIERFRkFVTFRfTUFSR0lOICtcbiAgICAgICAgICAgICAgICAgICAgb2Zmc2V0IC1cbiAgICAgICAgICAgICAgICAgICAgb3B0aW9uT2Zmc2V0LFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHN0eWxlLmJvdHRvbSA9ICdhdXRvJztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0RmluYWxEaXJlY3Rpb24oZGlyZWN0aXZlUmVjdDogQ2xpZW50UmVjdCk6IFR1aVZlcnRpY2FsRGlyZWN0aW9uIHwgbnVsbCB7XG4gICAgICAgIGNvbnN0IHdpbmRvd0hlaWdodCA9IHRoaXMud2luZG93UmVmLmlubmVySGVpZ2h0O1xuICAgICAgICBjb25zdCBvZmZzZXQgPSB0aGlzLmRpcmVjdGl2ZS5zaWRlZFxuICAgICAgICAgICAgPyBERUZBVUxUX01BUkdJTiAtIGRpcmVjdGl2ZVJlY3QuaGVpZ2h0XG4gICAgICAgICAgICA6IERFRkFVTFRfTUFSR0lOICogMjtcblxuICAgICAgICAvLyBNYXhpbXVtIHNwYWNlIGF2YWlsYWJsZSBvbiB0b3AgYW5kIG9uIHRoZSBib3R0b20gaW4gdGhlIHZpZXdwb3J0XG4gICAgICAgIGNvbnN0IHRvcEF2YWlsYWJsZUhlaWdodCA9IGRpcmVjdGl2ZVJlY3QudG9wIC0gb2Zmc2V0O1xuICAgICAgICBjb25zdCBib3R0b21BdmFpbGFibGVIZWlnaHQgPSB3aW5kb3dIZWlnaHQgLSBkaXJlY3RpdmVSZWN0LmJvdHRvbSAtIG9mZnNldDtcblxuICAgICAgICBsZXQgZmluYWxEaXJlY3Rpb246IFR1aVZlcnRpY2FsRGlyZWN0aW9uIHwgbnVsbCA9IG51bGw7XG5cbiAgICAgICAgLy8gR2l2ZW4gZGlyZWN0aW9uIGlzIGFwcGxpZWQgaWYgd2UgY2FuIGZpdCB0aGUgYm94IGluIHRoZSBsaW1pdHMgdGhhdCB3YXlcbiAgICAgICAgc3dpdGNoICh0aGlzLmRpcmVjdGl2ZS5kaXJlY3Rpb24pIHtcbiAgICAgICAgICAgIGNhc2UgJ3RvcCc6XG4gICAgICAgICAgICAgICAgaWYgKHRvcEF2YWlsYWJsZUhlaWdodCA+PSB0aGlzLmRpcmVjdGl2ZS5taW5IZWlnaHQpIHtcbiAgICAgICAgICAgICAgICAgICAgZmluYWxEaXJlY3Rpb24gPSAndG9wJztcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ2JvdHRvbSc6XG4gICAgICAgICAgICAgICAgaWYgKGJvdHRvbUF2YWlsYWJsZUhlaWdodCA+PSB0aGlzLmRpcmVjdGl2ZS5taW5IZWlnaHQpIHtcbiAgICAgICAgICAgICAgICAgICAgZmluYWxEaXJlY3Rpb24gPSAnYm90dG9tJztcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIE1heGltdW0gaGVpZ2h0IG9mIHRoZSBib3hcbiAgICAgICAgY29uc3QgYm94SGVpZ2h0TGltaXQgPSBNYXRoLm1pbihcbiAgICAgICAgICAgIHRoaXMuZGlyZWN0aXZlLm1heEhlaWdodCxcbiAgICAgICAgICAgIHdpbmRvd0hlaWdodCAtIERFRkFVTFRfTUFSR0lOICogMixcbiAgICAgICAgKTtcblxuICAgICAgICAvLyBDaG9vc2UgZGlyZWN0aW9uIGlmIGdpdmVuIGRpcmVjdGlvbiBkaWQgbm90IGZpdFxuICAgICAgICBpZiAoZmluYWxEaXJlY3Rpb24gPT09IG51bGwgJiYgdGhpcy5jb250ZW50RWxlbWVudFJlZikge1xuICAgICAgICAgICAgLy8gQm94IGhlaWdodCBpZiBpdCBmaXRzIHdpdGhvdXQgc2Nyb2xsXG4gICAgICAgICAgICBjb25zdCB2aXN1YWxIZWlnaHQgPSBNYXRoLm1pbihcbiAgICAgICAgICAgICAgICB0aGlzLmNvbnRlbnRFbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuaGVpZ2h0ICtcbiAgICAgICAgICAgICAgICAgICAgKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50Lm9mZnNldEhlaWdodCAtXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jbGllbnRIZWlnaHQpLFxuICAgICAgICAgICAgICAgIGJveEhlaWdodExpbWl0LFxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgLy8gSWYgdGhlcmUgaXMgZW5vdWdoIHNwYWNlIHRvIGZpdCBiZWxvdyB3aXRob3V0IHNjcm9sbCxcbiAgICAgICAgICAgIC8vIGNob29zZSAnYm90dG9tJywgdW5sZXNzIGl0IHdhcyBwcmV2aW91c2x5IG9uIHRoZSB0b3BcbiAgICAgICAgICAgIGlmICh0aGlzLnByZXZEaXJlY3Rpb25Jc1RvcCAmJiB0b3BBdmFpbGFibGVIZWlnaHQgPj0gdmlzdWFsSGVpZ2h0KSB7XG4gICAgICAgICAgICAgICAgZmluYWxEaXJlY3Rpb24gPSAndG9wJztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoYm90dG9tQXZhaWxhYmxlSGVpZ2h0ID49IHZpc3VhbEhlaWdodCkge1xuICAgICAgICAgICAgICAgIGZpbmFsRGlyZWN0aW9uID0gJ2JvdHRvbSc7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIC8vIENvcm5lciBjYXNlIOKAlCBzZWxlY3QgZGlyZWN0aW9uIHdpdGggbW9yZSBzcGFjZVxuICAgICAgICAgICAgICAgIGZpbmFsRGlyZWN0aW9uID1cbiAgICAgICAgICAgICAgICAgICAgYm90dG9tQXZhaWxhYmxlSGVpZ2h0ID49IHRvcEF2YWlsYWJsZUhlaWdodCA/ICdib3R0b20nIDogJ3RvcCc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZmluYWxEaXJlY3Rpb247XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2FsY3VsYXRlcyB3aWR0aFxuICAgICAqXG4gICAgICogQHBhcmFtIHN0eWxlIGRyb3Bkb3duQm94IGVsZW1lbnRSZWYgc3R5bGVzIG9iamVjdFxuICAgICAqIEBwYXJhbSBkaXJlY3RpdmVSZWN0IENsaWVudFJlY3Qgb2YgaG9zdGluZyBkaXJlY3RpdmVcbiAgICAgKi9cbiAgICBwcml2YXRlIGNhbGN1bGF0ZVdpZHRoKHN0eWxlOiBDU1NTdHlsZURlY2xhcmF0aW9uLCBkaXJlY3RpdmVSZWN0OiBDbGllbnRSZWN0KTogdm9pZCB7XG4gICAgICAgIHN0eWxlLndpZHRoID1cbiAgICAgICAgICAgIHRoaXMuZGlyZWN0aXZlLmxpbWl0TWluV2lkdGggPT09ICdmaXhlZCcgJiYgIXRoaXMuZGlyZWN0aXZlLnNpZGVkXG4gICAgICAgICAgICAgICAgPyBweChkaXJlY3RpdmVSZWN0LndpZHRoKVxuICAgICAgICAgICAgICAgIDogJyc7XG5cbiAgICAgICAgaWYgKHRoaXMuZGlyZWN0aXZlLmxpbWl0TWluV2lkdGggPT09ICdtaW4nICYmICF0aGlzLmRpcmVjdGl2ZS5zaWRlZCkge1xuICAgICAgICAgICAgc3R5bGUubWluV2lkdGggPSBweChkaXJlY3RpdmVSZWN0LndpZHRoKTtcbiAgICAgICAgICAgIHN0eWxlLm1heFdpZHRoID0gcHgoREVGQVVMVF9NQVhfV0lEVEgpO1xuXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBzdHlsZS5taW5XaWR0aCA9ICcnO1xuICAgICAgICBzdHlsZS5tYXhXaWR0aCA9ICcnO1xuICAgIH1cblxuICAgIHByaXZhdGUgbW92ZUZvY3VzT3V0c2lkZShwcmV2aW91czogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICBjb25zdCB7aG9zdH0gPSB0aGlzLmRpcmVjdGl2ZTtcbiAgICAgICAgY29uc3Qge293bmVyRG9jdW1lbnR9ID0gaG9zdDtcbiAgICAgICAgY29uc3Qgcm9vdCA9IG93bmVyRG9jdW1lbnQgPyBvd25lckRvY3VtZW50LmJvZHkgOiBob3N0O1xuXG4gICAgICAgIHR1aUFzc2VydElzSFRNTEVsZW1lbnQoaG9zdCk7XG5cbiAgICAgICAgbGV0IGZvY3VzYWJsZSA9IGdldENsb3Nlc3RGb2N1c2FibGUoaG9zdCwgcHJldmlvdXMsIHJvb3QpO1xuXG4gICAgICAgIHdoaWxlIChmb2N1c2FibGUgIT09IG51bGwgJiYgaG9zdC5jb250YWlucyhmb2N1c2FibGUpKSB7XG4gICAgICAgICAgICBmb2N1c2FibGUgPSBnZXRDbG9zZXN0Rm9jdXNhYmxlKGZvY3VzYWJsZSwgcHJldmlvdXMsIHJvb3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgZm9jdXNhYmxlPy5mb2N1cygpO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -5,6 +5,7 @@ import { px, TuiDestroyService, tuiPure, tuiZonefree, } from '@taiga-ui/cdk';
|
|
|
5
5
|
import { tuiFadeIn } from '@taiga-ui/core/animations';
|
|
6
6
|
import { TuiPointerHintDirective } from '@taiga-ui/core/directives/pointer-hint';
|
|
7
7
|
import { TUI_ANIMATION_OPTIONS, TUI_MEDIA } from '@taiga-ui/core/tokens';
|
|
8
|
+
import { tuiIsMobile } from '@taiga-ui/core/utils';
|
|
8
9
|
import { POLYMORPHEUS_CONTEXT } from '@tinkoff/ng-polymorpheus';
|
|
9
10
|
import { Observable } from 'rxjs';
|
|
10
11
|
import { takeUntil } from 'rxjs/operators';
|
|
@@ -62,7 +63,7 @@ let TuiHintBoxComponent = class TuiHintBoxComponent {
|
|
|
62
63
|
return this.hint.mode;
|
|
63
64
|
}
|
|
64
65
|
get isMobile() {
|
|
65
|
-
return this.windowRef
|
|
66
|
+
return tuiIsMobile(this.windowRef, this.media);
|
|
66
67
|
}
|
|
67
68
|
/**
|
|
68
69
|
* Calculates wrapper position.
|
|
@@ -251,4 +252,4 @@ TuiHintBoxComponent = __decorate([
|
|
|
251
252
|
__param(8, Inject(POLYMORPHEUS_CONTEXT))
|
|
252
253
|
], TuiHintBoxComponent);
|
|
253
254
|
export { TuiHintBoxComponent };
|
|
254
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGludC1ib3guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHRhaWdhLXVpL2NvcmUvY29tcG9uZW50cy9oaW50cy1ob3N0LyIsInNvdXJjZXMiOlsiaGludC1ib3gvaGludC1ib3guY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFDQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsVUFBVSxFQUNWLFdBQVcsRUFDWCxNQUFNLEVBQ04sTUFBTSxFQUNOLFNBQVMsR0FDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsZUFBZSxFQUFFLE1BQU0sRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQzVELE9BQU8sRUFDSCxFQUFFLEVBRUYsaUJBQWlCLEVBQ2pCLE9BQU8sRUFDUCxXQUFXLEdBQ2QsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQ3BELE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLHdDQUF3QyxDQUFDO0FBRS9FLE9BQU8sRUFBQyxxQkFBcUIsRUFBRSxTQUFTLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUV2RSxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUM5RCxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ2hDLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUV6QyxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUU5RCxNQUFNLEtBQUssR0FBRyxDQUFDLENBQUM7QUFDaEIsTUFBTSxZQUFZLEdBQUcsQ0FBQyxDQUFDO0FBQ3ZCLE1BQU0sWUFBWSxHQUFHLEVBQUUsQ0FBQztBQUN4QixNQUFNLFdBQVcsR0FBRyxFQUFFLENBQUM7QUFDdkIsTUFBTSxVQUFVLEdBQUcsQ0FBQyxDQUFDO0FBQ3JCLE1BQU0sWUFBWSxH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QjNEO0lBRkMsT0FBTztJQUNQLFdBQVcsQ0FBQyxvQkFBb0IsQ0FBQzt3REFHakM7QUFHRDtJQURDLFdBQVcsQ0FBQyxnQkFBZ0IsQ0FBQzsrQ0FHN0I7QUF0Q1EsbUJBQW1CO0lBUi9CLFNBQVMsQ0FBQztRQUNQLFFBQVEsRUFBRSxvQkFBb0I7UUFDOUIscVlBQXVDO1FBRXZDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO1FBQy9DLFNBQVMsRUFBRSxDQUFDLGlCQUFpQixDQUFDO1FBQzlCLFVBQVUsRUFBRSxDQUFDLFNBQVMsQ0FBQzs7S0FDMUIsQ0FBQztJQVNPLFdBQUEsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFBO0lBQ3ZCLFdBQUEsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUE7SUFDekIsV0FBQSxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUE7SUFDZCxXQUFBLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxDQUFBO0lBQzdCLFdBQUEsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFBO0lBQ2xCLFdBQUEsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFBO0lBQ2QsV0FBQSxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUE7SUFDakIsV0FBQSxNQUFNLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLHFCQUFxQixDQUFDLENBQUMsQ0FBQTtJQUUvQyxXQUFBLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFBO0dBakJ4QixtQkFBbUIsQ0F5Ti9CO1NBek5ZLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QW5pbWF0aW9uT3B0aW9uc30gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XG5pbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBFbGVtZW50UmVmLFxuICAgIGZvcndhcmRSZWYsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSW5qZWN0LFxuICAgIE5nWm9uZSxcbiAgICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtBTklNQVRJT05fRlJBTUUsIFdJTkRPV30gZnJvbSAnQG5nLXdlYi1hcGlzL2NvbW1vbic7XG5pbXBvcnQge1xuICAgIHB4LFxuICAgIFR1aUNvbnRleHRXaXRoSW1wbGljaXQsXG4gICAgVHVpRGVzdHJveVNlcnZpY2UsXG4gICAgdHVpUHVyZSxcbiAgICB0dWlab25lZnJlZSxcbn0gZnJvbSAnQHRhaWdhLXVpL2Nkayc7XG5pbXBvcnQge0Fic3RyYWN0VHVpSGludH0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvYWJzdHJhY3QnO1xuaW1wb3J0IHt0dWlGYWRlSW59IGZyb20gJ0B0YWlnYS11aS9jb3JlL2FuaW1hdGlvbnMnO1xuaW1wb3J0IHtUdWlQb2ludGVySGludERpcmVjdGl2ZX0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvZGlyZWN0aXZlcy9wb2ludGVyLWhpbnQnO1xuaW1wb3J0IHtUdWlNZWRpYX0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvaW50ZXJmYWNlcyc7XG5pbXBvcnQge1RVSV9BTklNQVRJT05fT1BUSU9OUywgVFVJX01FRElBfSBmcm9tICdAdGFpZ2EtdWkvY29yZS90b2tlbnMnO1xuaW1wb3J0IHtUdWlEaXJlY3Rpb24sIFR1aUhpbnRNb2RlVH0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvdHlwZXMnO1xuaW1wb3J0IHtQT0xZTU9SUEhFVVNfQ09OVEVYVH0gZnJvbSAnQHRpbmtvZmYvbmctcG9seW1vcnBoZXVzJztcbmltcG9ydCB7T2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge3Rha2VVbnRpbH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQge1R1aUhpbnRzSG9zdENvbXBvbmVudH0gZnJvbSAnLi4vaGludHMtaG9zdC5jb21wb25lbnQnO1xuXG5jb25zdCBTUEFDRSA9IDg7XG5jb25zdCBCT1JERVJfV0lEVEggPSAxO1xuY29uc3QgTEVGVF9QQURESU5HID0gMTY7XG5jb25zdCBUT1BfUEFERElORyA9IDEyO1xuY29uc3QgQVJST1dfU0laRSA9IDg7XG5jb25zdCBBUlJPV19PRkZTRVQgPSAxNjtcbmNvbnN0IEFSUk9XSEVBRF9PRkZTRVQgPSBBUlJPV19PRkZTRVQgKyAoQVJST1dfU0laRSAqIE1hdGguc3FydCgyKSkgLyAyO1xuY29uc3QgcmV2ZXJzZURpcmVjdGlvbnNWZXJ0aWNhbDoge1trZXkgaW4gVHVpRGlyZWN0aW9uXTogVHVpRGlyZWN0aW9ufSA9IHtcbiAgICAndG9wLWxlZnQnOiAnYm90dG9tLWxlZnQnLFxuICAgICd0b3AtcmlnaHQnOiAnYm90dG9tLXJpZ2h0JyxcbiAgICAnYm90dG9tLWxlZnQnOiAndG9wLWxlZnQnLFxuICAgICdib3R0b20tcmlnaHQnOiAndG9wLXJpZ2h0JyxcbiAgICBsZWZ0OiAncmlnaHQnLFxuICAgIHJpZ2h0OiAnbGVmdCcsXG4gICAgJ3RvcC1taWRkbGUnOiAnYm90dG9tLW1pZGRsZScsXG4gICAgJ2JvdHRvbS1taWRkbGUnOiAndG9wLW1pZGRsZScsXG59O1xuY29uc3QgcmV2ZXJzZURpcmVjdGlvbnNIb3Jpem9udGFsOiB7W2tleSBpbiBUdWlEaXJlY3Rpb25dOiBUdWlEaXJlY3Rpb259ID0ge1xuICAgICd0b3AtbGVmdCc6ICd0b3AtcmlnaHQnLFxuICAgICd0b3AtcmlnaHQnOiAndG9wLWxlZnQnLFxuICAgICdib3R0b20tbGVmdCc6ICdib3R0b20tcmlnaHQnLFxuICAgICdib3R0b20tcmlnaHQnOiAnYm90dG9tLWxlZnQnLFxuICAgIGxlZnQ6ICdyaWdodCcsXG4gICAgcmlnaHQ6ICdsZWZ0JyxcbiAgICAndG9wLW1pZGRsZSc6ICd0b3AtbWlkZGxlJyxcbiAgICAnYm90dG9tLW1pZGRsZSc6ICdib3R0b20tbWlkZGxlJyxcbn07XG5cbi8vIFRPRE86IGNvbnNpZGVyIGFic3RyYWN0aW5nIFVJIGFuZCBtb3ZlIHRvIENESywgc3BsaXQgaGludCBhbmQgb3ZlcmZsb3dcbi8vIEFtYmllbnQgdHlwZSBjYW5ub3QgYmUgdXNlZCB3aXRob3V0IGR5bmFtaWMgaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvYW5ndWxhci9pc3N1ZXMvMjMzOTVcbi8vIEBkeW5hbWljXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3R1aS1oaW50LWJveFtoaW50XScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2hpbnQtYm94LnRlbXBsYXRlLmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2hpbnQtYm94LnN0eWxlLmxlc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFtUdWlEZXN0cm95U2VydmljZV0sXG4gICAgYW5pbWF0aW9uczogW3R1aUZhZGVJbl0sXG59KVxuZXhwb3J0IGNsYXNzIFR1aUhpbnRCb3hDb21wb25lbnQge1xuICAgIEBWaWV3Q2hpbGQoJ2Fycm93JylcbiAgICBwcml2YXRlIHJlYWRvbmx5IGFycm93PzogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG5cbiAgICBASG9zdEJpbmRpbmcoJ0B0dWlGYWRlSW4nKVxuICAgIHJlYWRvbmx5IGFuaW1hdGlvbiA9IHt2YWx1ZTogJycsIC4uLnRoaXMub3B0aW9uc30gYXMgY29uc3Q7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQEluamVjdChBTklNQVRJT05fRlJBTUUpIGFuaW1hdGlvbkZyYW1lJDogT2JzZXJ2YWJsZTxudW1iZXI+LFxuICAgICAgICBASW5qZWN0KFR1aURlc3Ryb3lTZXJ2aWNlKSBkZXN0cm95JDogT2JzZXJ2YWJsZTx2b2lkPixcbiAgICAgICAgQEluamVjdChOZ1pvbmUpIG5nWm9uZTogTmdab25lLFxuICAgICAgICBASW5qZWN0KFRVSV9BTklNQVRJT05fT1BUSU9OUykgcHJpdmF0ZSByZWFkb25seSBvcHRpb25zOiBBbmltYXRpb25PcHRpb25zLFxuICAgICAgICBASW5qZWN0KEVsZW1lbnRSZWYpIHByaXZhdGUgcmVhZG9ubHkgZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICAgICAgIEBJbmplY3QoV0lORE9XKSBwcml2YXRlIHJlYWRvbmx5IHdpbmRvd1JlZjogV2luZG93LFxuICAgICAgICBASW5qZWN0KFRVSV9NRURJQSkgcHJpdmF0ZSByZWFkb25seSBtZWRpYTogVHVpTWVkaWEsXG4gICAgICAgIEBJbmplY3QoZm9yd2FyZFJlZigoKSA9PiBUdWlIaW50c0hvc3RDb21wb25lbnQpKVxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGhpbnRzSG9zdDogVHVpSGludHNIb3N0Q29tcG9uZW50LFxuICAgICAgICBASW5qZWN0KFBPTFlNT1JQSEVVU19DT05URVhUKVxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGNvbnRleHQ6IFR1aUNvbnRleHRXaXRoSW1wbGljaXQ8QWJzdHJhY3RUdWlIaW50PixcbiAgICApIHtcbiAgICAgICAgYW5pbWF0aW9uRnJhbWUkXG4gICAgICAgICAgICAucGlwZSh0dWlab25lZnJlZShuZ1pvbmUpLCB0YWtlVW50aWwoZGVzdHJveSQpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLmNhbGN1bGF0ZVBvc2l0aW9uKCkpO1xuICAgIH1cblxuICAgIGdldCBoaW50KCk6IEFic3RyYWN0VHVpSGludCB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbnRleHQuJGltcGxpY2l0O1xuICAgIH1cblxuICAgIEB0dWlQdXJlXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5fdW50b3VjaGFibGUnKVxuICAgIGdldCBpc1VudG91Y2hhYmxlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5oaW50IGluc3RhbmNlb2YgVHVpUG9pbnRlckhpbnREaXJlY3RpdmU7XG4gICAgfVxuXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLmRhdGEtbW9kZScpXG4gICAgZ2V0IG1vZGUoKTogVHVpSGludE1vZGVUIHwgbnVsbCB7XG4gICAgICAgIHJldHVybiB0aGlzLmhpbnQubW9kZTtcbiAgICB9XG5cbiAgICBnZXQgaXNNb2JpbGUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLndpbmRvd1JlZi5pbm5lcldpZHRoIDw9IHRoaXMubWVkaWEubW9iaWxlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENhbGN1bGF0ZXMgd3JhcHBlciBwb3NpdGlvbi5cbiAgICAgKiBTdHlsZXMgYXJlIHNldCBkaXJlY3RseSB0byBhdm9pZCB2aXN1YWwgc2hha2Ugb2YgZWxlbWVudFxuICAgICAqL1xuICAgIHByaXZhdGUgY2FsY3VsYXRlUG9zaXRpb24oKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLm1vZGUgIT09ICdvdmVyZmxvdycpIHtcbiAgICAgICAgICAgIHRoaXMuY2FsY3VsYXRlQ29vcmRpbmF0ZXMoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc2V0T3ZlcmZsb3dTdHlsZXMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgY2FsY3VsYXRlQ29vcmRpbmF0ZXMoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmlzTW9iaWxlKSB7XG4gICAgICAgICAgICB0aGlzLmNhbGN1bGF0ZU1vYmlsZUNvb3JkaW5hdGVzKCk7XG5cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGhvc3RSZWN0ID0gdGhpcy5oaW50LmdldEVsZW1lbnRDbGllbnRSZWN0KCk7XG4gICAgICAgIGNvbnN0IHBvcnRhbFJlY3QgPSB0aGlzLmhpbnRzSG9zdC5jbGllbnRSZWN0O1xuICAgICAgICBjb25zdCB0b29sdGlwID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgIGNvbnN0IHtzdHlsZX0gPSB0b29sdGlwO1xuICAgICAgICBjb25zdCB0b29sdGlwUmVjdCA9IHRvb2x0aXAuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgIGNvbnN0IGlzSG9zdExvbmcgPSBob3N0UmVjdC53aWR0aCA+IEFSUk9XSEVBRF9PRkZTRVQgKiAyO1xuICAgICAgICBjb25zdCBkaXJlY3Rpb25zOiBUdWlEaXJlY3Rpb25bXSA9IFtcbiAgICAgICAgICAgICdsZWZ0JyxcbiAgICAgICAgICAgICdyaWdodCcsXG4gICAgICAgICAgICAnYm90dG9tLWxlZnQnLFxuICAgICAgICAgICAgJ2JvdHRvbS1yaWdodCcsXG4gICAgICAgICAgICAnYm90dG9tLW1pZGRsZScsXG4gICAgICAgICAgICAndG9wLWxlZnQnLFxuICAgICAgICAgICAgJ3RvcC1yaWdodCcsXG4gICAgICAgICAgICAndG9wLW1pZGRsZScsXG4gICAgICAgIF07XG5cbiAgICAgICAgbGV0IHRvcCA9IDA7XG4gICAgICAgIGxldCBsZWZ0ID0gMDtcbiAgICAgICAgbGV0IHtkaXJlY3Rpb259ID0gdGhpcy5oaW50O1xuXG4gICAgICAgIGNvbnN0IGhvcml6b250YWxUb3AgPVxuICAgICAgICAgICAgaG9zdFJlY3QudG9wICsgaG9zdFJlY3QuaGVpZ2h0IC8gMiAtIHRvb2x0aXBSZWN0LmhlaWdodCAvIDIgLSBwb3J0YWxSZWN0LnRvcDtcbiAgICAgICAgY29uc3QgaG9yaXpvbnRhbExlZnQgPVxuICAgICAgICAgICAgaG9zdFJlY3QubGVmdCAtIHRvb2x0aXBSZWN0LndpZHRoIC0gU1BBQ0UgLSBwb3J0YWxSZWN0LmxlZnQ7XG4gICAgICAgIGNvbnN0IGhvcml6b250YWxSaWdodCA9IGhvc3RSZWN0LmxlZnQgKyBob3N0UmVjdC53aWR0aCArIFNQQUNFIC0gcG9ydGFsUmVjdC5sZWZ0O1xuICAgICAgICBjb25zdCB2ZXJ0aWNhbEJvdHRvbSA9IGhvc3RSZWN0LmJvdHRvbSArIFNQQUNFIC0gcG9ydGFsUmVjdC50b3A7XG4gICAgICAgIGNvbnN0IHZlcnRpY2FsVG9wID0gaG9zdFJlY3QudG9wIC0gdG9vbHRpcFJlY3QuaGVpZ2h0IC0gU1BBQ0UgLSBwb3J0YWxSZWN0LnRvcDtcbiAgICAgICAgY29uc3QgdmVydGljYWxSaWdodCA9IGlzSG9zdExvbmdcbiAgICAgICAgICAgID8gaG9zdFJlY3QubGVmdCAtIHBvcnRhbFJlY3QubGVmdFxuICAgICAgICAgICAgOiBob3N0UmVjdC5sZWZ0ICsgaG9zdFJlY3Qud2lkdGggLyAyIC0gQVJST1dIRUFEX09GRlNFVCAtIHBvcnRhbFJlY3QubGVmdDtcbiAgICAgICAgY29uc3QgdmVydGljYWxMZWZ0ID0gaXNIb3N0TG9uZ1xuICAgICAgICAgICAgPyBob3N0UmVjdC5sZWZ0IC0gdG9vbHRpcFJlY3Qud2lkdGggKyBob3N0UmVjdC53aWR0aCAtIHBvcnRhbFJlY3QubGVmdFxuICAgICAgICAgICAgOiBob3N0UmVjdC5sZWZ0IC1cbiAgICAgICAgICAgICAgdG9vbHRpcFJlY3Qud2lkdGggK1xuICAgICAgICAgICAgICBob3N0UmVjdC53aWR0aCAvIDIgK1xuICAgICAgICAgICAgICBBUlJPV0hFQURfT0ZGU0VUIC1cbiAgICAgICAgICAgICAgcG9ydGFsUmVjdC5sZWZ0O1xuICAgICAgICBjb25zdCB2ZXJ0aWNhbE1pZGRsZSA9XG4gICAgICAgICAgICBob3N0UmVjdC5sZWZ0IC0gdG9vbHRpcFJlY3Qud2lkdGggLyAyICsgaG9zdFJlY3Qud2lkdGggLyAyIC0gcG9ydGFsUmVjdC5sZWZ0O1xuXG4gICAgICAgIGRpcmVjdGlvbnMuc3BsaWNlKGRpcmVjdGlvbnMuaW5kZXhPZihkaXJlY3Rpb24pLCAxKTtcblxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uc3RhbnQtY29uZGl0aW9uXG4gICAgICAgIHdoaWxlICh0cnVlKSB7XG4gICAgICAgICAgICBzd2l0Y2ggKGRpcmVjdGlvbikge1xuICAgICAgICAgICAgICAgIGNhc2UgJ2xlZnQnOlxuICAgICAgICAgICAgICAgICAgICB0b3AgPSBob3Jpem9udGFsVG9wO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0ID0gaG9yaXpvbnRhbExlZnQ7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgJ3JpZ2h0JzpcbiAgICAgICAgICAgICAgICAgICAgdG9wID0gaG9yaXpvbnRhbFRvcDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdCA9IGhvcml6b250YWxSaWdodDtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSAndG9wLXJpZ2h0JzpcbiAgICAgICAgICAgICAgICAgICAgdG9wID0gdmVydGljYWxUb3A7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQgPSB2ZXJ0aWNhbFJpZ2h0O1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlICd0b3AtbGVmdCc6XG4gICAgICAgICAgICAgICAgICAgIHRvcCA9IHZlcnRpY2FsVG9wO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0ID0gdmVydGljYWxMZWZ0O1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlICdib3R0b20tcmlnaHQnOlxuICAgICAgICAgICAgICAgICAgICB0b3AgPSB2ZXJ0aWNhbEJvdHRvbTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdCA9IHZlcnRpY2FsUmlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgJ2JvdHRvbS1sZWZ0JzpcbiAgICAgICAgICAgICAgICAgICAgdG9wID0gdmVydGljYWxCb3R0b207XG4gICAgICAgICAgICAgICAgICAgIGxlZnQgPSB2ZXJ0aWNhbExlZnQ7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgJ2JvdHRvbS1taWRkbGUnOlxuICAgICAgICAgICAgICAgICAgICB0b3AgPSB2ZXJ0aWNhbEJvdHRvbTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdCA9IHZlcnRpY2FsTWlkZGxlO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlICd0b3AtbWlkZGxlJzpcbiAgICAgICAgICAgICAgICAgICAgdG9wID0gdmVydGljYWxUb3A7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQgPSB2ZXJ0aWNhbE1pZGRsZTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IHZlcnRpY2FsRml0ID1cbiAgICAgICAgICAgICAgICB0b3AgKyBwb3J0YWxSZWN0LnRvcCA+IFNQQUNFICYmXG4gICAgICAgICAgICAgICAgdG9wICsgdG9vbHRpcFJlY3QuaGVpZ2h0ICsgU1BBQ0UgKyBwb3J0YWxSZWN0LnRvcCA8XG4gICAgICAgICAgICAgICAgICAgIHRoaXMud2luZG93UmVmLmlubmVySGVpZ2h0O1xuICAgICAgICAgICAgY29uc3QgaG9yaXpvbnRhbEZpdCA9XG4gICAgICAgICAgICAgICAgbGVmdCA+IFNQQUNFICYmXG4gICAgICAgICAgICAgICAgbGVmdCArIHRvb2x0aXBSZWN0LndpZHRoICsgU1BBQ0UgKyBwb3J0YWxSZWN0LmxlZnQgPCBwb3J0YWxSZWN0LndpZHRoO1xuXG4gICAgICAgICAgICBpZiAoZGlyZWN0aW9ucy5sZW5ndGggPT09IDAgfHwgKHZlcnRpY2FsRml0ICYmIGhvcml6b250YWxGaXQpKSB7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGRpcmVjdGlvbiA9IHZlcnRpY2FsRml0XG4gICAgICAgICAgICAgICAgPyByZXZlcnNlRGlyZWN0aW9uc0hvcml6b250YWxbZGlyZWN0aW9uXVxuICAgICAgICAgICAgICAgIDogcmV2ZXJzZURpcmVjdGlvbnNWZXJ0aWNhbFtkaXJlY3Rpb25dO1xuICAgICAgICAgICAgZGlyZWN0aW9uID1cbiAgICAgICAgICAgICAgICBkaXJlY3Rpb25zLnNwbGljZShkaXJlY3Rpb25zLmluZGV4T2YoZGlyZWN0aW9uKSwgMSlbMF0gfHwgZGlyZWN0aW9uO1xuICAgICAgICB9XG5cbiAgICAgICAgc3R5bGUudG9wID0gcHgodG9wKTtcbiAgICAgICAgc3R5bGUubGVmdCA9IHB4KGxlZnQpO1xuXG4gICAgICAgIHRvb2x0aXAuc2V0QXR0cmlidXRlKCdkYXRhLXR1aS1ob3N0LWRpcmVjdGlvbicsIGRpcmVjdGlvbik7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjYWxjdWxhdGVNb2JpbGVDb29yZGluYXRlcygpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgaG9zdFJlY3QgPSB0aGlzLmhpbnQuZ2V0RWxlbWVudENsaWVudFJlY3QoKTtcbiAgICAgICAgY29uc3QgcG9ydGFsUmVjdCA9IHRoaXMuaGludHNIb3N0LmNsaWVudFJlY3Q7XG4gICAgICAgIGNvbnN0IHRvb2x0aXAgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgICAgICAgY29uc3Qge3N0eWxlfSA9IHRvb2x0aXA7XG4gICAgICAgIGNvbnN0IHRvb2x0aXBSZWN0ID0gdG9vbHRpcC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgY29uc3QgdmVydGljYWxUb3AgPSBob3N0UmVjdC50b3AgLSB0b29sdGlwUmVjdC5oZWlnaHQgLSBTUEFDRSAtIHBvcnRhbFJlY3QudG9wO1xuICAgICAgICBjb25zdCB2ZXJ0aWNhbEJvdHRvbSA9IGhvc3RSZWN0LmJvdHRvbSArIFNQQUNFIC0gcG9ydGFsUmVjdC50b3A7XG4gICAgICAgIGNvbnN0IHZlcnRpY2FsVG9wRml0ID1cbiAgICAgICAgICAgIHZlcnRpY2FsVG9wICsgcG9ydGFsUmVjdC50b3AgPiBTUEFDRSAmJlxuICAgICAgICAgICAgaG9zdFJlY3QudG9wIDwgdGhpcy53aW5kb3dSZWYuaW5uZXJIZWlnaHQ7XG4gICAgICAgIGNvbnN0IHZlcnRpY2FsQm90dG9tRml0ID1cbiAgICAgICAgICAgIGhvc3RSZWN0LmJvdHRvbSA+IDAgJiZcbiAgICAgICAgICAgIGhvc3RSZWN0LmJvdHRvbSArIDIgKiBTUEFDRSArIHRvb2x0aXBSZWN0LmhlaWdodCA8IHRoaXMud2luZG93UmVmLmlubmVySGVpZ2h0O1xuICAgICAgICBjb25zdCBkaXJlY3Rpb24gPVxuICAgICAgICAgICAgKHRoaXMuaGludC5kaXJlY3Rpb24uaW5jbHVkZXMoJ3RvcCcpICYmIHZlcnRpY2FsVG9wRml0KSB8fCAhdmVydGljYWxCb3R0b21GaXRcbiAgICAgICAgICAgICAgICA/ICd0b3AnXG4gICAgICAgICAgICAgICAgOiAnYm90dG9tJztcbiAgICAgICAgY29uc3QgYXR0ZW1wdGVkTGVmdCA9XG4gICAgICAgICAgICBwb3J0YWxSZWN0LmxlZnQgKyBob3N0UmVjdC5sZWZ0ICsgaG9zdFJlY3Qud2lkdGggLyAyIC0gdG9vbHRpcFJlY3Qud2lkdGggLyAyO1xuICAgICAgICBjb25zdCBsZWZ0ID0gTWF0aC5tYXgoXG4gICAgICAgICAgICBhdHRlbXB0ZWRMZWZ0ICsgdG9vbHRpcFJlY3Qud2lkdGggKyBTUEFDRSA+IHBvcnRhbFJlY3QucmlnaHRcbiAgICAgICAgICAgICAgICA/IHBvcnRhbFJlY3QucmlnaHQgLSBTUEFDRSAtIHRvb2x0aXBSZWN0LndpZHRoXG4gICAgICAgICAgICAgICAgOiBhdHRlbXB0ZWRMZWZ0LFxuICAgICAgICAgICAgU1BBQ0UgKiAyLFxuICAgICAgICApO1xuXG4gICAgICAgIHN0eWxlLmxlZnQgPSBweChsZWZ0KTtcbiAgICAgICAgc3R5bGUudG9wID0gZGlyZWN0aW9uID09PSAndG9wJyA/IHB4KHZlcnRpY2FsVG9wKSA6IHB4KHZlcnRpY2FsQm90dG9tKTtcblxuICAgICAgICBpZiAodGhpcy5hcnJvdykge1xuICAgICAgICAgICAgdGhpcy5hcnJvdy5uYXRpdmVFbGVtZW50LnN0eWxlLmxlZnQgPSBweChcbiAgICAgICAgICAgICAgICBob3N0UmVjdC5sZWZ0IDw9IFNQQUNFICogMiAmJiBob3N0UmVjdC53aWR0aCA+IEFSUk9XX09GRlNFVCAqIDJcbiAgICAgICAgICAgICAgICAgICAgPyBBUlJPV19PRkZTRVRcbiAgICAgICAgICAgICAgICAgICAgOiBob3N0UmVjdC5sZWZ0ICsgaG9zdFJlY3Qud2lkdGggLyAyIC0gbGVmdCAtIEFSUk9XX1NJWkUgLyAyLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRvb2x0aXAuc2V0QXR0cmlidXRlKCdkYXRhLXR1aS1ob3N0LWRpcmVjdGlvbicsIGRpcmVjdGlvbik7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRPdmVyZmxvd1N0eWxlcygpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgaG9zdFJlY3QgPSB0aGlzLmhpbnQuZ2V0RWxlbWVudENsaWVudFJlY3QoKTtcbiAgICAgICAgY29uc3Qge3N0eWxlfSA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuXG4gICAgICAgIHN0eWxlLnRvcCA9IHB4KGhvc3RSZWN0LnRvcCAtIHdpbmRvdy5pbm5lckhlaWdodCAtIFRPUF9QQURESU5HIC0gQk9SREVSX1dJRFRIKTtcbiAgICAgICAgc3R5bGUubGVmdCA9IHB4KGhvc3RSZWN0LmxlZnQgLSBMRUZUX1BBRERJTkcgLSBCT1JERVJfV0lEVEgpO1xuICAgICAgICBzdHlsZS53aWR0aCA9IHB4KGhvc3RSZWN0LndpZHRoICsgTEVGVF9QQURESU5HICogMiArIEJPUkRFUl9XSURUSCAqIDIpO1xuICAgIH1cbn1cbiJdfQ==
|
|
255
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGludC1ib3guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHRhaWdhLXVpL2NvcmUvY29tcG9uZW50cy9oaW50cy1ob3N0LyIsInNvdXJjZXMiOlsiaGludC1ib3gvaGludC1ib3guY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFDQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsVUFBVSxFQUNWLFdBQVcsRUFDWCxNQUFNLEVBQ04sTUFBTSxFQUNOLFNBQVMsR0FDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsZUFBZSxFQUFFLE1BQU0sRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQzVELE9BQU8sRUFDSCxFQUFFLEVBRUYsaUJBQWlCLEVBQ2pCLE9BQU8sRUFDUCxXQUFXLEdBQ2QsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQ3BELE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLHdDQUF3QyxDQUFDO0FBRS9FLE9BQU8sRUFBQyxxQkFBcUIsRUFBRSxTQUFTLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUV2RSxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDakQsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFDOUQsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUNoQyxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFekMsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFFOUQsTUFBTSxLQUFLLEdBQUcsQ0FBQyxDQUFDO0FBQ2hCLE1BQU0sWUFBWSxHQUFHLENBQUMsQ0FBQztBQUN2QixNQUFNLFlBQVksR0FBRyxFQUFFLENBQUM7QUFDeEIsTUFBTSxXQUFXLEdBQUcsRUFBRSxDQUFDO0FBQ3ZC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akQ7SUFEQyxXQUFXLENBQUMsWUFBWSxDQUFDO3NEQUNpQztBQTBCM0Q7SUFGQyxPQUFPO0lBQ1AsV0FBVyxDQUFDLG9CQUFvQixDQUFDO3dEQUdqQztBQUdEO0lBREMsV0FBVyxDQUFDLGdCQUFnQixDQUFDOytDQUc3QjtBQXRDUSxtQkFBbUI7SUFSL0IsU0FBUyxDQUFDO1FBQ1AsUUFBUSxFQUFFLG9CQUFvQjtRQUM5QixxWUFBdUM7UUFFdkMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07UUFDL0MsU0FBUyxFQUFFLENBQUMsaUJBQWlCLENBQUM7UUFDOUIsVUFBVSxFQUFFLENBQUMsU0FBUyxDQUFDOztLQUMxQixDQUFDO0lBU08sV0FBQSxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUE7SUFDdkIsV0FBQSxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQTtJQUN6QixXQUFBLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQTtJQUNkLFdBQUEsTUFBTSxDQUFDLHFCQUFxQixDQUFDLENBQUE7SUFDN0IsV0FBQSxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUE7SUFDbEIsV0FBQSxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUE7SUFDZCxXQUFBLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQTtJQUNqQixXQUFBLE1BQU0sQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMscUJBQXFCLENBQUMsQ0FBQyxDQUFBO0lBRS9DLFdBQUEsTUFBTSxDQUFDLG9CQUFvQixDQUFDLENBQUE7R0FqQnhCLG1CQUFtQixDQXlOL0I7U0F6TlksbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBbmltYXRpb25PcHRpb25zfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcbmltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgZm9yd2FyZFJlZixcbiAgICBIb3N0QmluZGluZyxcbiAgICBJbmplY3QsXG4gICAgTmdab25lLFxuICAgIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0FOSU1BVElPTl9GUkFNRSwgV0lORE9XfSBmcm9tICdAbmctd2ViLWFwaXMvY29tbW9uJztcbmltcG9ydCB7XG4gICAgcHgsXG4gICAgVHVpQ29udGV4dFdpdGhJbXBsaWNpdCxcbiAgICBUdWlEZXN0cm95U2VydmljZSxcbiAgICB0dWlQdXJlLFxuICAgIHR1aVpvbmVmcmVlLFxufSBmcm9tICdAdGFpZ2EtdWkvY2RrJztcbmltcG9ydCB7QWJzdHJhY3RUdWlIaW50fSBmcm9tICdAdGFpZ2EtdWkvY29yZS9hYnN0cmFjdCc7XG5pbXBvcnQge3R1aUZhZGVJbn0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvYW5pbWF0aW9ucyc7XG5pbXBvcnQge1R1aVBvaW50ZXJIaW50RGlyZWN0aXZlfSBmcm9tICdAdGFpZ2EtdWkvY29yZS9kaXJlY3RpdmVzL3BvaW50ZXItaGludCc7XG5pbXBvcnQge1R1aU1lZGlhfSBmcm9tICdAdGFpZ2EtdWkvY29yZS9pbnRlcmZhY2VzJztcbmltcG9ydCB7VFVJX0FOSU1BVElPTl9PUFRJT05TLCBUVUlfTUVESUF9IGZyb20gJ0B0YWlnYS11aS9jb3JlL3Rva2Vucyc7XG5pbXBvcnQge1R1aURpcmVjdGlvbiwgVHVpSGludE1vZGVUfSBmcm9tICdAdGFpZ2EtdWkvY29yZS90eXBlcyc7XG5pbXBvcnQge3R1aUlzTW9iaWxlfSBmcm9tICdAdGFpZ2EtdWkvY29yZS91dGlscyc7XG5pbXBvcnQge1BPTFlNT1JQSEVVU19DT05URVhUfSBmcm9tICdAdGlua29mZi9uZy1wb2x5bW9ycGhldXMnO1xuaW1wb3J0IHtPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcbmltcG9ydCB7dGFrZVVudGlsfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7VHVpSGludHNIb3N0Q29tcG9uZW50fSBmcm9tICcuLi9oaW50cy1ob3N0LmNvbXBvbmVudCc7XG5cbmNvbnN0IFNQQUNFID0gODtcbmNvbnN0IEJPUkRFUl9XSURUSCA9IDE7XG5jb25zdCBMRUZUX1BBRERJTkcgPSAxNjtcbmNvbnN0IFRPUF9QQURESU5HID0gMTI7XG5jb25zdCBBUlJPV19TSVpFID0gODtcbmNvbnN0IEFSUk9XX09GRlNFVCA9IDE2O1xuY29uc3QgQVJST1dIRUFEX09GRlNFVCA9IEFSUk9XX09GRlNFVCArIChBUlJPV19TSVpFICogTWF0aC5zcXJ0KDIpKSAvIDI7XG5jb25zdCByZXZlcnNlRGlyZWN0aW9uc1ZlcnRpY2FsOiB7W2tleSBpbiBUdWlEaXJlY3Rpb25dOiBUdWlEaXJlY3Rpb259ID0ge1xuICAgICd0b3AtbGVmdCc6ICdib3R0b20tbGVmdCcsXG4gICAgJ3RvcC1yaWdodCc6ICdib3R0b20tcmlnaHQnLFxuICAgICdib3R0b20tbGVmdCc6ICd0b3AtbGVmdCcsXG4gICAgJ2JvdHRvbS1yaWdodCc6ICd0b3AtcmlnaHQnLFxuICAgIGxlZnQ6ICdyaWdodCcsXG4gICAgcmlnaHQ6ICdsZWZ0JyxcbiAgICAndG9wLW1pZGRsZSc6ICdib3R0b20tbWlkZGxlJyxcbiAgICAnYm90dG9tLW1pZGRsZSc6ICd0b3AtbWlkZGxlJyxcbn07XG5jb25zdCByZXZlcnNlRGlyZWN0aW9uc0hvcml6b250YWw6IHtba2V5IGluIFR1aURpcmVjdGlvbl06IFR1aURpcmVjdGlvbn0gPSB7XG4gICAgJ3RvcC1sZWZ0JzogJ3RvcC1yaWdodCcsXG4gICAgJ3RvcC1yaWdodCc6ICd0b3AtbGVmdCcsXG4gICAgJ2JvdHRvbS1sZWZ0JzogJ2JvdHRvbS1yaWdodCcsXG4gICAgJ2JvdHRvbS1yaWdodCc6ICdib3R0b20tbGVmdCcsXG4gICAgbGVmdDogJ3JpZ2h0JyxcbiAgICByaWdodDogJ2xlZnQnLFxuICAgICd0b3AtbWlkZGxlJzogJ3RvcC1taWRkbGUnLFxuICAgICdib3R0b20tbWlkZGxlJzogJ2JvdHRvbS1taWRkbGUnLFxufTtcblxuLy8gVE9ETzogY29uc2lkZXIgYWJzdHJhY3RpbmcgVUkgYW5kIG1vdmUgdG8gQ0RLLCBzcGxpdCBoaW50IGFuZCBvdmVyZmxvd1xuLy8gQW1iaWVudCB0eXBlIGNhbm5vdCBiZSB1c2VkIHdpdGhvdXQgZHluYW1pYyBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9hbmd1bGFyL2lzc3Vlcy8yMzM5NVxuLy8gQGR5bmFtaWNcbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndHVpLWhpbnQtYm94W2hpbnRdJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vaGludC1ib3gudGVtcGxhdGUuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vaGludC1ib3guc3R5bGUubGVzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogW1R1aURlc3Ryb3lTZXJ2aWNlXSxcbiAgICBhbmltYXRpb25zOiBbdHVpRmFkZUluXSxcbn0pXG5leHBvcnQgY2xhc3MgVHVpSGludEJveENvbXBvbmVudCB7XG4gICAgQFZpZXdDaGlsZCgnYXJyb3cnKVxuICAgIHByaXZhdGUgcmVhZG9ubHkgYXJyb3c/OiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcblxuICAgIEBIb3N0QmluZGluZygnQHR1aUZhZGVJbicpXG4gICAgcmVhZG9ubHkgYW5pbWF0aW9uID0ge3ZhbHVlOiAnJywgLi4udGhpcy5vcHRpb25zfSBhcyBjb25zdDtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBASW5qZWN0KEFOSU1BVElPTl9GUkFNRSkgYW5pbWF0aW9uRnJhbWUkOiBPYnNlcnZhYmxlPG51bWJlcj4sXG4gICAgICAgIEBJbmplY3QoVHVpRGVzdHJveVNlcnZpY2UpIGRlc3Ryb3kkOiBPYnNlcnZhYmxlPHZvaWQ+LFxuICAgICAgICBASW5qZWN0KE5nWm9uZSkgbmdab25lOiBOZ1pvbmUsXG4gICAgICAgIEBJbmplY3QoVFVJX0FOSU1BVElPTl9PUFRJT05TKSBwcml2YXRlIHJlYWRvbmx5IG9wdGlvbnM6IEFuaW1hdGlvbk9wdGlvbnMsXG4gICAgICAgIEBJbmplY3QoRWxlbWVudFJlZikgcHJpdmF0ZSByZWFkb25seSBlbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PixcbiAgICAgICAgQEluamVjdChXSU5ET1cpIHByaXZhdGUgcmVhZG9ubHkgd2luZG93UmVmOiBXaW5kb3csXG4gICAgICAgIEBJbmplY3QoVFVJX01FRElBKSBwcml2YXRlIHJlYWRvbmx5IG1lZGlhOiBUdWlNZWRpYSxcbiAgICAgICAgQEluamVjdChmb3J3YXJkUmVmKCgpID0+IFR1aUhpbnRzSG9zdENvbXBvbmVudCkpXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgaGludHNIb3N0OiBUdWlIaW50c0hvc3RDb21wb25lbnQsXG4gICAgICAgIEBJbmplY3QoUE9MWU1PUlBIRVVTX0NPTlRFWFQpXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgY29udGV4dDogVHVpQ29udGV4dFdpdGhJbXBsaWNpdDxBYnN0cmFjdFR1aUhpbnQ+LFxuICAgICkge1xuICAgICAgICBhbmltYXRpb25GcmFtZSRcbiAgICAgICAgICAgIC5waXBlKHR1aVpvbmVmcmVlKG5nWm9uZSksIHRha2VVbnRpbChkZXN0cm95JCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMuY2FsY3VsYXRlUG9zaXRpb24oKSk7XG4gICAgfVxuXG4gICAgZ2V0IGhpbnQoKTogQWJzdHJhY3RUdWlIaW50IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29udGV4dC4kaW1wbGljaXQ7XG4gICAgfVxuXG4gICAgQHR1aVB1cmVcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLl91bnRvdWNoYWJsZScpXG4gICAgZ2V0IGlzVW50b3VjaGFibGUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmhpbnQgaW5zdGFuY2VvZiBUdWlQb2ludGVySGludERpcmVjdGl2ZTtcbiAgICB9XG5cbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuZGF0YS1tb2RlJylcbiAgICBnZXQgbW9kZSgpOiBUdWlIaW50TW9kZVQgfCBudWxsIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaGludC5tb2RlO1xuICAgIH1cblxuICAgIGdldCBpc01vYmlsZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHR1aUlzTW9iaWxlKHRoaXMud2luZG93UmVmLCB0aGlzLm1lZGlhKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDYWxjdWxhdGVzIHdyYXBwZXIgcG9zaXRpb24uXG4gICAgICogU3R5bGVzIGFyZSBzZXQgZGlyZWN0bHkgdG8gYXZvaWQgdmlzdWFsIHNoYWtlIG9mIGVsZW1lbnRcbiAgICAgKi9cbiAgICBwcml2YXRlIGNhbGN1bGF0ZVBvc2l0aW9uKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5tb2RlICE9PSAnb3ZlcmZsb3cnKSB7XG4gICAgICAgICAgICB0aGlzLmNhbGN1bGF0ZUNvb3JkaW5hdGVzKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnNldE92ZXJmbG93U3R5bGVzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGNhbGN1bGF0ZUNvb3JkaW5hdGVzKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5pc01vYmlsZSkge1xuICAgICAgICAgICAgdGhpcy5jYWxjdWxhdGVNb2JpbGVDb29yZGluYXRlcygpO1xuXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBob3N0UmVjdCA9IHRoaXMuaGludC5nZXRFbGVtZW50Q2xpZW50UmVjdCgpO1xuICAgICAgICBjb25zdCBwb3J0YWxSZWN0ID0gdGhpcy5oaW50c0hvc3QuY2xpZW50UmVjdDtcbiAgICAgICAgY29uc3QgdG9vbHRpcCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuICAgICAgICBjb25zdCB7c3R5bGV9ID0gdG9vbHRpcDtcbiAgICAgICAgY29uc3QgdG9vbHRpcFJlY3QgPSB0b29sdGlwLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgICBjb25zdCBpc0hvc3RMb25nID0gaG9zdFJlY3Qud2lkdGggPiBBUlJPV0hFQURfT0ZGU0VUICogMjtcbiAgICAgICAgY29uc3QgZGlyZWN0aW9uczogVHVpRGlyZWN0aW9uW10gPSBbXG4gICAgICAgICAgICAnbGVmdCcsXG4gICAgICAgICAgICAncmlnaHQnLFxuICAgICAgICAgICAgJ2JvdHRvbS1sZWZ0JyxcbiAgICAgICAgICAgICdib3R0b20tcmlnaHQnLFxuICAgICAgICAgICAgJ2JvdHRvbS1taWRkbGUnLFxuICAgICAgICAgICAgJ3RvcC1sZWZ0JyxcbiAgICAgICAgICAgICd0b3AtcmlnaHQnLFxuICAgICAgICAgICAgJ3RvcC1taWRkbGUnLFxuICAgICAgICBdO1xuXG4gICAgICAgIGxldCB0b3AgPSAwO1xuICAgICAgICBsZXQgbGVmdCA9IDA7XG4gICAgICAgIGxldCB7ZGlyZWN0aW9ufSA9IHRoaXMuaGludDtcblxuICAgICAgICBjb25zdCBob3Jpem9udGFsVG9wID1cbiAgICAgICAgICAgIGhvc3RSZWN0LnRvcCArIGhvc3RSZWN0LmhlaWdodCAvIDIgLSB0b29sdGlwUmVjdC5oZWlnaHQgLyAyIC0gcG9ydGFsUmVjdC50b3A7XG4gICAgICAgIGNvbnN0IGhvcml6b250YWxMZWZ0ID1cbiAgICAgICAgICAgIGhvc3RSZWN0LmxlZnQgLSB0b29sdGlwUmVjdC53aWR0aCAtIFNQQUNFIC0gcG9ydGFsUmVjdC5sZWZ0O1xuICAgICAgICBjb25zdCBob3Jpem9udGFsUmlnaHQgPSBob3N0UmVjdC5sZWZ0ICsgaG9zdFJlY3Qud2lkdGggKyBTUEFDRSAtIHBvcnRhbFJlY3QubGVmdDtcbiAgICAgICAgY29uc3QgdmVydGljYWxCb3R0b20gPSBob3N0UmVjdC5ib3R0b20gKyBTUEFDRSAtIHBvcnRhbFJlY3QudG9wO1xuICAgICAgICBjb25zdCB2ZXJ0aWNhbFRvcCA9IGhvc3RSZWN0LnRvcCAtIHRvb2x0aXBSZWN0LmhlaWdodCAtIFNQQUNFIC0gcG9ydGFsUmVjdC50b3A7XG4gICAgICAgIGNvbnN0IHZlcnRpY2FsUmlnaHQgPSBpc0hvc3RMb25nXG4gICAgICAgICAgICA/IGhvc3RSZWN0LmxlZnQgLSBwb3J0YWxSZWN0LmxlZnRcbiAgICAgICAgICAgIDogaG9zdFJlY3QubGVmdCArIGhvc3RSZWN0LndpZHRoIC8gMiAtIEFSUk9XSEVBRF9PRkZTRVQgLSBwb3J0YWxSZWN0LmxlZnQ7XG4gICAgICAgIGNvbnN0IHZlcnRpY2FsTGVmdCA9IGlzSG9zdExvbmdcbiAgICAgICAgICAgID8gaG9zdFJlY3QubGVmdCAtIHRvb2x0aXBSZWN0LndpZHRoICsgaG9zdFJlY3Qud2lkdGggLSBwb3J0YWxSZWN0LmxlZnRcbiAgICAgICAgICAgIDogaG9zdFJlY3QubGVmdCAtXG4gICAgICAgICAgICAgIHRvb2x0aXBSZWN0LndpZHRoICtcbiAgICAgICAgICAgICAgaG9zdFJlY3Qud2lkdGggLyAyICtcbiAgICAgICAgICAgICAgQVJST1dIRUFEX09GRlNFVCAtXG4gICAgICAgICAgICAgIHBvcnRhbFJlY3QubGVmdDtcbiAgICAgICAgY29uc3QgdmVydGljYWxNaWRkbGUgPVxuICAgICAgICAgICAgaG9zdFJlY3QubGVmdCAtIHRvb2x0aXBSZWN0LndpZHRoIC8gMiArIGhvc3RSZWN0LndpZHRoIC8gMiAtIHBvcnRhbFJlY3QubGVmdDtcblxuICAgICAgICBkaXJlY3Rpb25zLnNwbGljZShkaXJlY3Rpb25zLmluZGV4T2YoZGlyZWN0aW9uKSwgMSk7XG5cbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnN0YW50LWNvbmRpdGlvblxuICAgICAgICB3aGlsZSAodHJ1ZSkge1xuICAgICAgICAgICAgc3dpdGNoIChkaXJlY3Rpb24pIHtcbiAgICAgICAgICAgICAgICBjYXNlICdsZWZ0JzpcbiAgICAgICAgICAgICAgICAgICAgdG9wID0gaG9yaXpvbnRhbFRvcDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdCA9IGhvcml6b250YWxMZWZ0O1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlICdyaWdodCc6XG4gICAgICAgICAgICAgICAgICAgIHRvcCA9IGhvcml6b250YWxUb3A7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQgPSBob3Jpem9udGFsUmlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgJ3RvcC1yaWdodCc6XG4gICAgICAgICAgICAgICAgICAgIHRvcCA9IHZlcnRpY2FsVG9wO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0ID0gdmVydGljYWxSaWdodDtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSAndG9wLWxlZnQnOlxuICAgICAgICAgICAgICAgICAgICB0b3AgPSB2ZXJ0aWNhbFRvcDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdCA9IHZlcnRpY2FsTGVmdDtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSAnYm90dG9tLXJpZ2h0JzpcbiAgICAgICAgICAgICAgICAgICAgdG9wID0gdmVydGljYWxCb3R0b207XG4gICAgICAgICAgICAgICAgICAgIGxlZnQgPSB2ZXJ0aWNhbFJpZ2h0O1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlICdib3R0b20tbGVmdCc6XG4gICAgICAgICAgICAgICAgICAgIHRvcCA9IHZlcnRpY2FsQm90dG9tO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0ID0gdmVydGljYWxMZWZ0O1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlICdib3R0b20tbWlkZGxlJzpcbiAgICAgICAgICAgICAgICAgICAgdG9wID0gdmVydGljYWxCb3R0b207XG4gICAgICAgICAgICAgICAgICAgIGxlZnQgPSB2ZXJ0aWNhbE1pZGRsZTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSAndG9wLW1pZGRsZSc6XG4gICAgICAgICAgICAgICAgICAgIHRvcCA9IHZlcnRpY2FsVG9wO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0ID0gdmVydGljYWxNaWRkbGU7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCB2ZXJ0aWNhbEZpdCA9XG4gICAgICAgICAgICAgICAgdG9wICsgcG9ydGFsUmVjdC50b3AgPiBTUEFDRSAmJlxuICAgICAgICAgICAgICAgIHRvcCArIHRvb2x0aXBSZWN0LmhlaWdodCArIFNQQUNFICsgcG9ydGFsUmVjdC50b3AgPFxuICAgICAgICAgICAgICAgICAgICB0aGlzLndpbmRvd1JlZi5pbm5lckhlaWdodDtcbiAgICAgICAgICAgIGNvbnN0IGhvcml6b250YWxGaXQgPVxuICAgICAgICAgICAgICAgIGxlZnQgPiBTUEFDRSAmJlxuICAgICAgICAgICAgICAgIGxlZnQgKyB0b29sdGlwUmVjdC53aWR0aCArIFNQQUNFICsgcG9ydGFsUmVjdC5sZWZ0IDwgcG9ydGFsUmVjdC53aWR0aDtcblxuICAgICAgICAgICAgaWYgKGRpcmVjdGlvbnMubGVuZ3RoID09PSAwIHx8ICh2ZXJ0aWNhbEZpdCAmJiBob3Jpem9udGFsRml0KSkge1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBkaXJlY3Rpb24gPSB2ZXJ0aWNhbEZpdFxuICAgICAgICAgICAgICAgID8gcmV2ZXJzZURpcmVjdGlvbnNIb3Jpem9udGFsW2RpcmVjdGlvbl1cbiAgICAgICAgICAgICAgICA6IHJldmVyc2VEaXJlY3Rpb25zVmVydGljYWxbZGlyZWN0aW9uXTtcbiAgICAgICAgICAgIGRpcmVjdGlvbiA9XG4gICAgICAgICAgICAgICAgZGlyZWN0aW9ucy5zcGxpY2UoZGlyZWN0aW9ucy5pbmRleE9mKGRpcmVjdGlvbiksIDEpWzBdIHx8IGRpcmVjdGlvbjtcbiAgICAgICAgfVxuXG4gICAgICAgIHN0eWxlLnRvcCA9IHB4KHRvcCk7XG4gICAgICAgIHN0eWxlLmxlZnQgPSBweChsZWZ0KTtcblxuICAgICAgICB0b29sdGlwLnNldEF0dHJpYnV0ZSgnZGF0YS10dWktaG9zdC1kaXJlY3Rpb24nLCBkaXJlY3Rpb24pO1xuICAgIH1cblxuICAgIHByaXZhdGUgY2FsY3VsYXRlTW9iaWxlQ29vcmRpbmF0ZXMoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGhvc3RSZWN0ID0gdGhpcy5oaW50LmdldEVsZW1lbnRDbGllbnRSZWN0KCk7XG4gICAgICAgIGNvbnN0IHBvcnRhbFJlY3QgPSB0aGlzLmhpbnRzSG9zdC5jbGllbnRSZWN0O1xuICAgICAgICBjb25zdCB0b29sdGlwID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgIGNvbnN0IHtzdHlsZX0gPSB0b29sdGlwO1xuICAgICAgICBjb25zdCB0b29sdGlwUmVjdCA9IHRvb2x0aXAuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgIGNvbnN0IHZlcnRpY2FsVG9wID0gaG9zdFJlY3QudG9wIC0gdG9vbHRpcFJlY3QuaGVpZ2h0IC0gU1BBQ0UgLSBwb3J0YWxSZWN0LnRvcDtcbiAgICAgICAgY29uc3QgdmVydGljYWxCb3R0b20gPSBob3N0UmVjdC5ib3R0b20gKyBTUEFDRSAtIHBvcnRhbFJlY3QudG9wO1xuICAgICAgICBjb25zdCB2ZXJ0aWNhbFRvcEZpdCA9XG4gICAgICAgICAgICB2ZXJ0aWNhbFRvcCArIHBvcnRhbFJlY3QudG9wID4gU1BBQ0UgJiZcbiAgICAgICAgICAgIGhvc3RSZWN0LnRvcCA8IHRoaXMud2luZG93UmVmLmlubmVySGVpZ2h0O1xuICAgICAgICBjb25zdCB2ZXJ0aWNhbEJvdHRvbUZpdCA9XG4gICAgICAgICAgICBob3N0UmVjdC5ib3R0b20gPiAwICYmXG4gICAgICAgICAgICBob3N0UmVjdC5ib3R0b20gKyAyICogU1BBQ0UgKyB0b29sdGlwUmVjdC5oZWlnaHQgPCB0aGlzLndpbmRvd1JlZi5pbm5lckhlaWdodDtcbiAgICAgICAgY29uc3QgZGlyZWN0aW9uID1cbiAgICAgICAgICAgICh0aGlzLmhpbnQuZGlyZWN0aW9uLmluY2x1ZGVzKCd0b3AnKSAmJiB2ZXJ0aWNhbFRvcEZpdCkgfHwgIXZlcnRpY2FsQm90dG9tRml0XG4gICAgICAgICAgICAgICAgPyAndG9wJ1xuICAgICAgICAgICAgICAgIDogJ2JvdHRvbSc7XG4gICAgICAgIGNvbnN0IGF0dGVtcHRlZExlZnQgPVxuICAgICAgICAgICAgcG9ydGFsUmVjdC5sZWZ0ICsgaG9zdFJlY3QubGVmdCArIGhvc3RSZWN0LndpZHRoIC8gMiAtIHRvb2x0aXBSZWN0LndpZHRoIC8gMjtcbiAgICAgICAgY29uc3QgbGVmdCA9IE1hdGgubWF4KFxuICAgICAgICAgICAgYXR0ZW1wdGVkTGVmdCArIHRvb2x0aXBSZWN0LndpZHRoICsgU1BBQ0UgPiBwb3J0YWxSZWN0LnJpZ2h0XG4gICAgICAgICAgICAgICAgPyBwb3J0YWxSZWN0LnJpZ2h0IC0gU1BBQ0UgLSB0b29sdGlwUmVjdC53aWR0aFxuICAgICAgICAgICAgICAgIDogYXR0ZW1wdGVkTGVmdCxcbiAgICAgICAgICAgIFNQQUNFICogMixcbiAgICAgICAgKTtcblxuICAgICAgICBzdHlsZS5sZWZ0ID0gcHgobGVmdCk7XG4gICAgICAgIHN0eWxlLnRvcCA9IGRpcmVjdGlvbiA9PT0gJ3RvcCcgPyBweCh2ZXJ0aWNhbFRvcCkgOiBweCh2ZXJ0aWNhbEJvdHRvbSk7XG5cbiAgICAgICAgaWYgKHRoaXMuYXJyb3cpIHtcbiAgICAgICAgICAgIHRoaXMuYXJyb3cubmF0aXZlRWxlbWVudC5zdHlsZS5sZWZ0ID0gcHgoXG4gICAgICAgICAgICAgICAgaG9zdFJlY3QubGVmdCA8PSBTUEFDRSAqIDIgJiYgaG9zdFJlY3Qud2lkdGggPiBBUlJPV19PRkZTRVQgKiAyXG4gICAgICAgICAgICAgICAgICAgID8gQVJST1dfT0ZGU0VUXG4gICAgICAgICAgICAgICAgICAgIDogaG9zdFJlY3QubGVmdCArIGhvc3RSZWN0LndpZHRoIC8gMiAtIGxlZnQgLSBBUlJPV19TSVpFIC8gMixcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICB0b29sdGlwLnNldEF0dHJpYnV0ZSgnZGF0YS10dWktaG9zdC1kaXJlY3Rpb24nLCBkaXJlY3Rpb24pO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0T3ZlcmZsb3dTdHlsZXMoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGhvc3RSZWN0ID0gdGhpcy5oaW50LmdldEVsZW1lbnRDbGllbnRSZWN0KCk7XG4gICAgICAgIGNvbnN0IHtzdHlsZX0gPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcblxuICAgICAgICBzdHlsZS50b3AgPSBweChob3N0UmVjdC50b3AgLSB3aW5kb3cuaW5uZXJIZWlnaHQgLSBUT1BfUEFERElORyAtIEJPUkRFUl9XSURUSCk7XG4gICAgICAgIHN0eWxlLmxlZnQgPSBweChob3N0UmVjdC5sZWZ0IC0gTEVGVF9QQURESU5HIC0gQk9SREVSX1dJRFRIKTtcbiAgICAgICAgc3R5bGUud2lkdGggPSBweChob3N0UmVjdC53aWR0aCArIExFRlRfUEFERElORyAqIDIgKyBCT1JERVJfV0lEVEggKiAyKTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -2,7 +2,6 @@ import { __decorate } from "tslib";
|
|
|
2
2
|
import { CommonModule } from '@angular/common';
|
|
3
3
|
import { NgModule } from '@angular/core';
|
|
4
4
|
import { FormsModule } from '@angular/forms';
|
|
5
|
-
import { MutationObserverModule } from '@ng-web-apis/mutation-observer';
|
|
6
5
|
import { TuiAutofilledModule, TuiFocusableModule, TuiHoveredModule, TuiInputModeModule, } from '@taiga-ui/cdk';
|
|
7
6
|
import { TuiSvgModule } from '@taiga-ui/core/components/svg';
|
|
8
7
|
import { TuiTooltipModule } from '@taiga-ui/core/components/tooltip';
|
|
@@ -21,17 +20,16 @@ TuiPrimitiveTextfieldModule = __decorate([
|
|
|
21
20
|
imports: [
|
|
22
21
|
CommonModule,
|
|
23
22
|
FormsModule,
|
|
23
|
+
PolymorpheusModule,
|
|
24
24
|
TuiMaskAccessorModule,
|
|
25
25
|
TuiFocusableModule,
|
|
26
26
|
TuiHoveredModule,
|
|
27
27
|
TuiInputModeModule,
|
|
28
|
-
PolymorpheusModule,
|
|
29
28
|
TuiWrapperModule,
|
|
30
29
|
TuiSvgModule,
|
|
31
30
|
TuiTooltipModule,
|
|
32
31
|
TuiAutofilledModule,
|
|
33
32
|
TuiDescribedByModule,
|
|
34
|
-
MutationObserverModule,
|
|
35
33
|
],
|
|
36
34
|
declarations: [
|
|
37
35
|
TuiPrimitiveTextfieldComponent,
|
|
@@ -47,4 +45,4 @@ TuiPrimitiveTextfieldModule = __decorate([
|
|
|
47
45
|
})
|
|
48
46
|
], TuiPrimitiveTextfieldModule);
|
|
49
47
|
export { TuiPrimitiveTextfieldModule };
|
|
50
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
48
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpbWl0aXZlLXRleHRmaWVsZC5tb2R1bGUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkvY29yZS9jb21wb25lbnRzL3ByaW1pdGl2ZS10ZXh0ZmllbGQvIiwic291cmNlcyI6WyJwcmltaXRpdmUtdGV4dGZpZWxkLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFDSCxtQkFBbUIsRUFDbkIsa0JBQWtCLEVBQ2xCLGdCQUFnQixFQUNoQixrQkFBa0IsR0FDckIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLCtCQUErQixDQUFDO0FBQzNELE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBQ25FLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLHdDQUF3QyxDQUFDO0FBQzVFLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLHlDQUF5QyxDQUFDO0FBQzlFLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBQ25FLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBRTVELE9BQU8sRUFBQyw4QkFBOEIsRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBQy9FLE9BQU8sRUFBQyw4QkFBOEIsRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBQy9FLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBQ3RFLE9BQU8sRUFBQywyQkFBMkIsRUFBQyxNQUFNLCtDQUErQyxDQUFDO0FBNkIxRixJQUFhLDJCQUEyQixHQUF4QyxNQUFhLDJCQUEyQjtDQUFHLENBQUE7QUFBOUIsMkJBQTJCO0lBM0J2QyxRQUFRLENBQUM7UUFDTixPQUFPLEVBQUU7WUFDTCxZQUFZO1lBQ1osV0FBVztZQUNYLGtCQUFrQjtZQUNsQixxQkFBcUI7WUFDckIsa0JBQWtCO1lBQ2xCLGdCQUFnQjtZQUNoQixrQkFBa0I7WUFDbEIsZ0JBQWdCO1lBQ2hCLFlBQVk7WUFDWixnQkFBZ0I7WUFDaEIsbUJBQW1CO1lBQ25CLG9CQUFvQjtTQUN2QjtRQUNELFlBQVksRUFBRTtZQUNWLDhCQUE4QjtZQUM5Qiw4QkFBOEI7WUFDOUIscUJBQXFCO1lBQ3JCLDJCQUEyQjtTQUM5QjtRQUNELE9BQU8sRUFBRTtZQUNMLDhCQUE4QjtZQUM5Qiw4QkFBOEI7WUFDOUIscUJBQXFCO1NBQ3hCO0tBQ0osQ0FBQztHQUNXLDJCQUEyQixDQUFHO1NBQTlCLDJCQUEyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tbW9uTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtOZ01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0Zvcm1zTW9kdWxlfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge1xuICAgIFR1aUF1dG9maWxsZWRNb2R1bGUsXG4gICAgVHVpRm9jdXNhYmxlTW9kdWxlLFxuICAgIFR1aUhvdmVyZWRNb2R1bGUsXG4gICAgVHVpSW5wdXRNb2RlTW9kdWxlLFxufSBmcm9tICdAdGFpZ2EtdWkvY2RrJztcbmltcG9ydCB7VHVpU3ZnTW9kdWxlfSBmcm9tICdAdGFpZ2EtdWkvY29yZS9jb21wb25lbnRzL3N2Zyc7XG5pbXBvcnQge1R1aVRvb2x0aXBNb2R1bGV9IGZyb20gJ0B0YWlnYS11aS9jb3JlL2NvbXBvbmVudHMvdG9vbHRpcCc7XG5pbXBvcnQge1R1aURlc2NyaWJlZEJ5TW9kdWxlfSBmcm9tICdAdGFpZ2EtdWkvY29yZS9kaXJlY3RpdmVzL2Rlc2NyaWJlZC1ieSc7XG5pbXBvcnQge1R1aU1hc2tBY2Nlc3Nvck1vZHVsZX0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvZGlyZWN0aXZlcy9tYXNrLWFjY2Vzc29yJztcbmltcG9ydCB7VHVpV3JhcHBlck1vZHVsZX0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvZGlyZWN0aXZlcy93cmFwcGVyJztcbmltcG9ydCB7UG9seW1vcnBoZXVzTW9kdWxlfSBmcm9tICdAdGlua29mZi9uZy1wb2x5bW9ycGhldXMnO1xuXG5pbXBvcnQge1R1aVByaW1pdGl2ZVRleHRmaWVsZENvbXBvbmVudH0gZnJvbSAnLi9wcmltaXRpdmUtdGV4dGZpZWxkLmNvbXBvbmVudCc7XG5pbXBvcnQge1R1aVByaW1pdGl2ZVRleHRmaWVsZERpcmVjdGl2ZX0gZnJvbSAnLi9wcmltaXRpdmUtdGV4dGZpZWxkLmRpcmVjdGl2ZSc7XG5pbXBvcnQge1R1aVRleHRmaWVsZENvbXBvbmVudH0gZnJvbSAnLi90ZXh0ZmllbGQvdGV4dGZpZWxkLmNvbXBvbmVudCc7XG5pbXBvcnQge1R1aVZhbHVlRGVjb3JhdGlvbkNvbXBvbmVudH0gZnJvbSAnLi92YWx1ZS1kZWNvcmF0aW9uL3ZhbHVlLWRlY29yYXRpb24uY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICAgICAgRm9ybXNNb2R1bGUsXG4gICAgICAgIFBvbHltb3JwaGV1c01vZHVsZSxcbiAgICAgICAgVHVpTWFza0FjY2Vzc29yTW9kdWxlLFxuICAgICAgICBUdWlGb2N1c2FibGVNb2R1bGUsXG4gICAgICAgIFR1aUhvdmVyZWRNb2R1bGUsXG4gICAgICAgIFR1aUlucHV0TW9kZU1vZHVsZSxcbiAgICAgICAgVHVpV3JhcHBlck1vZHVsZSxcbiAgICAgICAgVHVpU3ZnTW9kdWxlLFxuICAgICAgICBUdWlUb29sdGlwTW9kdWxlLFxuICAgICAgICBUdWlBdXRvZmlsbGVkTW9kdWxlLFxuICAgICAgICBUdWlEZXNjcmliZWRCeU1vZHVsZSxcbiAgICBdLFxuICAgIGRlY2xhcmF0aW9uczogW1xuICAgICAgICBUdWlQcmltaXRpdmVUZXh0ZmllbGRDb21wb25lbnQsXG4gICAgICAgIFR1aVByaW1pdGl2ZVRleHRmaWVsZERpcmVjdGl2ZSxcbiAgICAgICAgVHVpVGV4dGZpZWxkQ29tcG9uZW50LFxuICAgICAgICBUdWlWYWx1ZURlY29yYXRpb25Db21wb25lbnQsXG4gICAgXSxcbiAgICBleHBvcnRzOiBbXG4gICAgICAgIFR1aVByaW1pdGl2ZVRleHRmaWVsZENvbXBvbmVudCxcbiAgICAgICAgVHVpUHJpbWl0aXZlVGV4dGZpZWxkRGlyZWN0aXZlLFxuICAgICAgICBUdWlUZXh0ZmllbGRDb21wb25lbnQsXG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgVHVpUHJpbWl0aXZlVGV4dGZpZWxkTW9kdWxlIHt9XG4iXX0=
|
package/esm2015/components/primitive-textfield/value-decoration/value-decoration.component.js
CHANGED
|
@@ -1,17 +1,15 @@
|
|
|
1
1
|
import { __decorate, __param } from "tslib";
|
|
2
|
-
import { ChangeDetectionStrategy, Component, ElementRef, HostBinding, Inject, ViewChild, } from '@angular/core';
|
|
3
|
-
import { MutationObserverDirective } from '@ng-web-apis/mutation-observer';
|
|
4
|
-
import { TuiResizeService } from '@taiga-ui/cdk';
|
|
2
|
+
import { ChangeDetectionStrategy, Component, ElementRef, HostBinding, HostListener, Inject, ViewChild, } from '@angular/core';
|
|
5
3
|
import { TUI_TEXTFIELD_WATCHED_CONTROLLER, TuiTextfieldController, } from '@taiga-ui/core/directives';
|
|
6
|
-
import {
|
|
7
|
-
import { distinctUntilChanged,
|
|
4
|
+
import { BehaviorSubject } from 'rxjs';
|
|
5
|
+
import { delay, distinctUntilChanged, filter, map } from 'rxjs/operators';
|
|
8
6
|
import { TuiPrimitiveTextfieldComponent } from '../primitive-textfield.component';
|
|
9
7
|
let TuiValueDecorationComponent = class TuiValueDecorationComponent {
|
|
10
|
-
constructor(textfield, controller
|
|
8
|
+
constructor(textfield, controller) {
|
|
11
9
|
this.textfield = textfield;
|
|
12
10
|
this.controller = controller;
|
|
13
|
-
this.
|
|
14
|
-
this.pre$ =
|
|
11
|
+
this.prefix$ = new BehaviorSubject('');
|
|
12
|
+
this.pre$ = this.prefix$.pipe(delay(0), filter(() => { var _a; return !!((_a = this.pre) === null || _a === void 0 ? void 0 : _a.nativeElement.isConnected); }), distinctUntilChanged(), map(() => { var _a; return ((_a = this.pre) === null || _a === void 0 ? void 0 : _a.nativeElement.offsetWidth) || 0; }));
|
|
15
13
|
}
|
|
16
14
|
get isContextTable() {
|
|
17
15
|
return this.textfield.appearance === "table" /* Table */;
|
|
@@ -32,6 +30,9 @@ let TuiValueDecorationComponent = class TuiValueDecorationComponent {
|
|
|
32
30
|
get postfix() {
|
|
33
31
|
return this.decorationsVisible ? this.computedPostfix : '';
|
|
34
32
|
}
|
|
33
|
+
ngDoCheck() {
|
|
34
|
+
this.prefix$.next(this.prefix);
|
|
35
|
+
}
|
|
35
36
|
get placeholder() {
|
|
36
37
|
var _a;
|
|
37
38
|
return ((_a = this.textfield.nativeFocusableElement) === null || _a === void 0 ? void 0 : _a.placeholder) || '';
|
|
@@ -54,30 +55,27 @@ let TuiValueDecorationComponent = class TuiValueDecorationComponent {
|
|
|
54
55
|
};
|
|
55
56
|
TuiValueDecorationComponent.ctorParameters = () => [
|
|
56
57
|
{ type: TuiPrimitiveTextfieldComponent, decorators: [{ type: Inject, args: [TuiPrimitiveTextfieldComponent,] }] },
|
|
57
|
-
{ type: TuiTextfieldController, decorators: [{ type: Inject, args: [TUI_TEXTFIELD_WATCHED_CONTROLLER,] }] }
|
|
58
|
-
{ type: Observable, decorators: [{ type: Inject, args: [TuiResizeService,] }] }
|
|
58
|
+
{ type: TuiTextfieldController, decorators: [{ type: Inject, args: [TUI_TEXTFIELD_WATCHED_CONTROLLER,] }] }
|
|
59
59
|
];
|
|
60
60
|
__decorate([
|
|
61
61
|
ViewChild('pre', { read: ElementRef, static: true })
|
|
62
62
|
], TuiValueDecorationComponent.prototype, "pre", void 0);
|
|
63
|
-
__decorate([
|
|
64
|
-
ViewChild(MutationObserverDirective, { static: true })
|
|
65
|
-
], TuiValueDecorationComponent.prototype, "directive", void 0);
|
|
66
63
|
__decorate([
|
|
67
64
|
HostBinding('class._table')
|
|
68
65
|
], TuiValueDecorationComponent.prototype, "isContextTable", null);
|
|
66
|
+
__decorate([
|
|
67
|
+
HostListener('animationstart')
|
|
68
|
+
], TuiValueDecorationComponent.prototype, "ngDoCheck", null);
|
|
69
69
|
TuiValueDecorationComponent = __decorate([
|
|
70
70
|
Component({
|
|
71
71
|
selector: 'tui-value-decoration',
|
|
72
|
-
template: "<span
|
|
73
|
-
providers: [TuiResizeService],
|
|
72
|
+
template: "<span #pre>{{ prefix }}</span>\n<span class=\"t-ghost\">{{ value }}</span>\n<span class=\"t-filler\">{{ filler }}</span>\n{{ postfix }}\n",
|
|
74
73
|
// It follows Change Detection of PrimitiveTextfield
|
|
75
74
|
changeDetection: ChangeDetectionStrategy.Default,
|
|
76
|
-
styles: [":host{position:absolute;display:block;height:1.25rem;
|
|
75
|
+
styles: [":host{position:absolute;display:block;height:1.25rem;width:100%;margin:-1.25rem 0;padding:.625rem 0;box-sizing:content-box;color:var(--tui-text-01);-webkit-animation:1s tuiPresent;animation:1s tuiPresent}:host._table{position:static}:host-context(tui-textfield[data-mode=onDark]) :host{color:var(--tui-text-01-night)}.t-ghost{visibility:hidden;white-space:pre;text-overflow:clip}.t-filler{display:inline-block;overflow:hidden;color:var(--tui-text-03);text-overflow:ellipsis;max-width:100%;white-space:nowrap}:host-context(tui-textfield[data-mode=onDark]) .t-filler{color:var(--tui-text-03-night)}"]
|
|
77
76
|
}),
|
|
78
77
|
__param(0, Inject(TuiPrimitiveTextfieldComponent)),
|
|
79
|
-
__param(1, Inject(TUI_TEXTFIELD_WATCHED_CONTROLLER))
|
|
80
|
-
__param(2, Inject(TuiResizeService))
|
|
78
|
+
__param(1, Inject(TUI_TEXTFIELD_WATCHED_CONTROLLER))
|
|
81
79
|
], TuiValueDecorationComponent);
|
|
82
80
|
export { TuiValueDecorationComponent };
|
|
83
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
81
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsdWUtZGVjb3JhdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkvY29yZS9jb21wb25lbnRzL3ByaW1pdGl2ZS10ZXh0ZmllbGQvIiwic291cmNlcyI6WyJ2YWx1ZS1kZWNvcmF0aW9uL3ZhbHVlLWRlY29yYXRpb24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFFVCxVQUFVLEVBQ1YsV0FBVyxFQUNYLFlBQVksRUFDWixNQUFNLEVBQ04sU0FBUyxHQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDSCxnQ0FBZ0MsRUFDaEMsc0JBQXNCLEdBQ3pCLE1BQU0sMkJBQTJCLENBQUM7QUFFbkMsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUNyQyxPQUFPLEVBQUMsS0FBSyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4RSxPQUFPLEVBQUMsOEJBQThCLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQVNoRixJQUFhLDJCQUEyQixHQUF4QyxNQUFhLDJCQUEyQjtJQWFwQyxZQUVxQixTQUF5QyxFQUV6QyxVQUFrQztRQUZsQyxjQUFTLEdBQVQsU0FBUyxDQUFnQztRQUV6QyxlQUFVLEdBQVYsVUFBVSxDQUF3QjtRQWJ0QyxZQUFPLEdBQUcsSUFBSSxlQUFlLENBQUMsRUFBRSxDQUFDLENBQUM7UUFFMUMsU0FBSSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUM3QixLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQ1IsTUFBTSxDQUFDLEdBQUcsRUFBRSxXQUFDLE9BQUEsQ0FBQyxRQUFDLElBQUksQ0FBQyxHQUFHLDBDQUFFLGFBQWEsQ0FBQyxXQUFXLENBQUEsQ0FBQSxFQUFBLENBQUMsRUFDbkQsb0JBQW9CLEVBQUUsRUFDdEIsR0FBRyxDQUFDLEdBQUcs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UUFBUSxFQUFFLHNCQUFzQjtRQUNoQyxxSkFBNkM7UUFFN0Msb0RBQW9EO1FBQ3BELGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxPQUFPOztLQUNuRCxDQUFDO0lBZU8sV0FBQSxNQUFNLENBQUMsOEJBQThCLENBQUMsQ0FBQTtJQUV0QyxXQUFBLE1BQU0sQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFBO0dBaEJwQywyQkFBMkIsQ0EyRXZDO1NBM0VZLDJCQUEyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIERvQ2hlY2ssXG4gICAgRWxlbWVudFJlZixcbiAgICBIb3N0QmluZGluZyxcbiAgICBIb3N0TGlzdGVuZXIsXG4gICAgSW5qZWN0LFxuICAgIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICAgIFRVSV9URVhURklFTERfV0FUQ0hFRF9DT05UUk9MTEVSLFxuICAgIFR1aVRleHRmaWVsZENvbnRyb2xsZXIsXG59IGZyb20gJ0B0YWlnYS11aS9jb3JlL2RpcmVjdGl2ZXMnO1xuaW1wb3J0IHtUdWlBcHBlYXJhbmNlfSBmcm9tICdAdGFpZ2EtdWkvY29yZS9lbnVtcyc7XG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge2RlbGF5LCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgZmlsdGVyLCBtYXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHtUdWlQcmltaXRpdmVUZXh0ZmllbGRDb21wb25lbnR9IGZyb20gJy4uL3ByaW1pdGl2ZS10ZXh0ZmllbGQuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd0dWktdmFsdWUtZGVjb3JhdGlvbicsXG4gICAgdGVtcGxhdGVVcmw6ICd2YWx1ZS1kZWNvcmF0aW9uLnRlbXBsYXRlLmh0bWwnLFxuICAgIHN0eWxlVXJsczogWyd2YWx1ZS1kZWNvcmF0aW9uLnN0eWxlLmxlc3MnXSxcbiAgICAvLyBJdCBmb2xsb3dzIENoYW5nZSBEZXRlY3Rpb24gb2YgUHJpbWl0aXZlVGV4dGZpZWxkXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5EZWZhdWx0LFxufSlcbmV4cG9ydCBjbGFzcyBUdWlWYWx1ZURlY29yYXRpb25Db21wb25lbnQgaW1wbGVtZW50cyBEb0NoZWNrIHtcbiAgICBAVmlld0NoaWxkKCdwcmUnLCB7cmVhZDogRWxlbWVudFJlZiwgc3RhdGljOiB0cnVlfSlcbiAgICBwcml2YXRlIHJlYWRvbmx5IHByZT86IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBwcmVmaXgkID0gbmV3IEJlaGF2aW9yU3ViamVjdCgnJyk7XG5cbiAgICByZWFkb25seSBwcmUkID0gdGhpcy5wcmVmaXgkLnBpcGUoXG4gICAgICAgIGRlbGF5KDApLFxuICAgICAgICBmaWx0ZXIoKCkgPT4gISF0aGlzLnByZT8ubmF0aXZlRWxlbWVudC5pc0Nvbm5lY3RlZCksXG4gICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICAgIG1hcCgoKSA9PiB0aGlzLnByZT8ubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aCB8fCAwKSxcbiAgICApO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBJbmplY3QoVHVpUHJpbWl0aXZlVGV4dGZpZWxkQ29tcG9uZW50KVxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHRleHRmaWVsZDogVHVpUHJpbWl0aXZlVGV4dGZpZWxkQ29tcG9uZW50LFxuICAgICAgICBASW5qZWN0KFRVSV9URVhURklFTERfV0FUQ0hFRF9DT05UUk9MTEVSKVxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGNvbnRyb2xsZXI6IFR1aVRleHRmaWVsZENvbnRyb2xsZXIsXG4gICAgKSB7fVxuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5fdGFibGUnKVxuICAgIGdldCBpc0NvbnRleHRUYWJsZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudGV4dGZpZWxkLmFwcGVhcmFuY2UgPT09IFR1aUFwcGVhcmFuY2UuVGFibGU7XG4gICAgfVxuXG4gICAgZ2V0IHZhbHVlKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLnRleHRmaWVsZC52YWx1ZTtcbiAgICB9XG5cbiAgICBnZXQgZmlsbGVyKCk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IHtmb2N1c2VkLCBwbGFjZWhvbGRlciwgZXhhbXBsZVRleHQsIHZhbHVlLCB0ZXh0ZmllbGR9ID0gdGhpcztcblxuICAgICAgICBpZiAocGxhY2Vob2xkZXIgJiYgZXhhbXBsZVRleHQpIHtcbiAgICAgICAgICAgIHJldHVybiAnJztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBmb2N1c2VkID8gZXhhbXBsZVRleHQgfHwgdGV4dGZpZWxkLmZpbGxlci5zbGljZSh2YWx1ZS5sZW5ndGgpIDogJyc7XG4gICAgfVxuXG4gICAgZ2V0IHByZWZpeCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5kZWNvcmF0aW9uc1Zpc2libGUgPyB0aGlzLnRleHRmaWVsZC5wcmVmaXggOiAnJztcbiAgICB9XG5cbiAgICBnZXQgcG9zdGZpeCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5kZWNvcmF0aW9uc1Zpc2libGUgPyB0aGlzLmNvbXB1dGVkUG9zdGZpeCA6ICcnO1xuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ2FuaW1hdGlvbnN0YXJ0JylcbiAgICBuZ0RvQ2hlY2soKTogdm9pZCB7XG4gICAgICAgIHRoaXMucHJlZml4JC5uZXh0KHRoaXMucHJlZml4KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldCBwbGFjZWhvbGRlcigpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy50ZXh0ZmllbGQubmF0aXZlRm9jdXNhYmxlRWxlbWVudD8ucGxhY2Vob2xkZXIgfHwgJyc7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXQgZXhhbXBsZVRleHQoKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgZXhhbXBsZVRleHQgPSB0aGlzLmNvbnRyb2xsZXIuZXhhbXBsZVRleHQgfHwgdGhpcy5wbGFjZWhvbGRlcjtcblxuICAgICAgICByZXR1cm4gIXRoaXMudmFsdWUgJiYgdGhpcy5mb2N1c2VkID8gZXhhbXBsZVRleHQgOiAnJztcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldCBkZWNvcmF0aW9uc1Zpc2libGUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhIXRoaXMudmFsdWUgfHwgdGhpcy5mb2N1c2VkO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0IGZvY3VzZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnRleHRmaWVsZC5jb21wdXRlZEZvY3VzZWQgJiYgIXRoaXMudGV4dGZpZWxkLnJlYWRPbmx5O1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0IGNvbXB1dGVkUG9zdGZpeCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy50ZXh0ZmllbGQucG9zdGZpeCAmJiAodGhpcy5maWxsZXIgfHwgdGhpcy52YWx1ZSlcbiAgICAgICAgICAgID8gYCAke3RoaXMudGV4dGZpZWxkLnBvc3RmaXh9YFxuICAgICAgICAgICAgOiB0aGlzLnRleHRmaWVsZC5wb3N0Zml4O1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -43,7 +43,7 @@ TuiRootComponent = __decorate([
|
|
|
43
43
|
'[style.--tui-duration]': 'duration + "ms"',
|
|
44
44
|
'($.class._mobile)': 'isMobileRes$',
|
|
45
45
|
},
|
|
46
|
-
styles: [":host{position:relative;display:block;flex:1}.scrollbar{position:fixed;top:0;left:0;bottom:0;right:0;margin:0}.content{position:relative;z-index:0;height:100%}"]
|
|
46
|
+
styles: ["@-webkit-keyframes tuiPresent{to{content:'1'}}@keyframes tuiPresent{to{content:'1'}}:host{position:relative;display:block;flex:1}.scrollbar{position:fixed;top:0;left:0;bottom:0;right:0;margin:0}.content{position:relative;z-index:0;height:100%}"]
|
|
47
47
|
}),
|
|
48
48
|
__param(0, Inject(TUI_ANIMATIONS_DURATION)),
|
|
49
49
|
__param(1, Inject(ElementRef)),
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export const VERSION = '2.
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
export const VERSION = '2.50.2';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B0YWlnYS11aS9jb3JlL2NvbnN0YW50cy8iLCJzb3VyY2VzIjpbInZlcnNpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBWRVJTSU9OID0gJzIuNTAuMic7XG4iXX0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVyLWZvcm1hdC1zZXR0aW5ncy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B0YWlnYS11aS9jb3JlL2ludGVyZmFjZXMvIiwic291cmNlcyI6WyJudW1iZXItZm9ybWF0LXNldHRpbmdzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1R1aURlY2ltYWxTeW1ib2x9IGZyb20gJ0B0YWlnYS11aS9jb3JlL3R5cGVzJztcblxuLyoqXG4gKiBGb3JtYXR0aW5nIGNvbmZpZ3VyYXRpb24gZm9yIGRpc3BsYXllZCBudW1iZXJzXG4gKiBkZWNpbWFsU2VwYXJhdG9yIC0gZXhhbXBsZTogMTAwLDQ1ICgnLCcgYnkgZGVmYXVsdClcbiAqIHRob3VzYW5kU2VwYXJhdG9yIC0gZXhhbXBsZTogMzYwIDAwMCAoJyAnIGJ5IGRlZmF1bHQpXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVHVpTnVtYmVyRm9ybWF0U2V0dGluZ3Mge1xuICAgIHJlYWRvbmx5IGRlY2ltYWxTZXBhcmF0b3I6IFR1aURlY2ltYWxTeW1ib2w7XG4gICAgcmVhZG9ubHkgdGhvdXNhbmRTZXBhcmF0b3I6IHN0cmluZztcbiAgICByZWFkb25seSB6ZXJvUGFkZGluZzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCB1c2Uge0BsaW5rIFR1aU51bWJlckZvcm1hdFNldHRpbmdzfVxuICogVE9ETyBkZWxldGUgaW4gdjMuMFxuICovXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG5leHBvcnQgaW50ZXJmYWNlIE51bWJlckZvcm1hdFNldHRpbmdzIGV4dGVuZHMgVHVpTnVtYmVyRm9ybWF0U2V0dGluZ3Mge31cbiJdfQ==
|
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
import { inject, InjectionToken, NgZone } from '@angular/core';
|
|
2
2
|
import { WINDOW } from '@ng-web-apis/common';
|
|
3
3
|
import { tuiZoneOptimized, typedFromEvent } from '@taiga-ui/cdk';
|
|
4
|
+
import { tuiIsMobile } from '@taiga-ui/core/utils';
|
|
4
5
|
import { distinctUntilChanged, map, share, startWith } from 'rxjs/operators';
|
|
5
6
|
import { TUI_MEDIA } from './media';
|
|
6
7
|
export const TUI_IS_MOBILE_RES = new InjectionToken('Mobile resolution stream for private providers', {
|
|
7
8
|
factory: () => {
|
|
8
9
|
const windowRef = inject(WINDOW);
|
|
9
|
-
const
|
|
10
|
-
return typedFromEvent(windowRef, 'resize').pipe(share(), startWith(null), map(() => windowRef
|
|
10
|
+
const media = inject(TUI_MEDIA);
|
|
11
|
+
return typedFromEvent(windowRef, 'resize').pipe(share(), startWith(null), map(() => tuiIsMobile(windowRef, media)), distinctUntilChanged(), tuiZoneOptimized(inject(NgZone)));
|
|
11
12
|
},
|
|
12
13
|
});
|
|
13
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXMtbW9iaWxlLXJlc29sdXRpb24uanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkvY29yZS90b2tlbnMvIiwic291cmNlcyI6WyJpcy1tb2JpbGUtcmVzb2x1dGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsTUFBTSxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQzNDLE9BQU8sRUFBQyxnQkFBZ0IsRUFBRSxjQUFjLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDL0QsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBRWpELE9BQU8sRUFBQyxvQkFBb0IsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRTNFLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxTQUFTLENBQUM7QUFFbEMsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxjQUFjLENBQy9DLGdEQUFnRCxFQUNoRDtJQUNJLE9BQU8sRUFBRSxHQUFHLEVBQUU7UUFDVixNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDakMsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRWhDLE9BQU8sY0FBYyxDQUFDLFNBQVMsRUFBRSxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQzNDLEtBQUssRUFBRSxFQUNQLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFDZixHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsV0FBVyxDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUMsQ0FBQyxFQUN4QyxvQkFBb0IsRUFBRSxFQUN0QixnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FDbkMsQ0FBQztJQUNOLENBQUM7Q0FDSixDQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2luamVjdCwgSW5qZWN0aW9uVG9rZW4sIE5nWm9uZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1dJTkRPV30gZnJvbSAnQG5nLXdlYi1hcGlzL2NvbW1vbic7XG5pbXBvcnQge3R1aVpvbmVPcHRpbWl6ZWQsIHR5cGVkRnJvbUV2ZW50fSBmcm9tICdAdGFpZ2EtdWkvY2RrJztcbmltcG9ydCB7dHVpSXNNb2JpbGV9IGZyb20gJ0B0YWlnYS11aS9jb3JlL3V0aWxzJztcbmltcG9ydCB7T2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge2Rpc3RpbmN0VW50aWxDaGFuZ2VkLCBtYXAsIHNoYXJlLCBzdGFydFdpdGh9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHtUVUlfTUVESUF9IGZyb20gJy4vbWVkaWEnO1xuXG5leHBvcnQgY29uc3QgVFVJX0lTX01PQklMRV9SRVMgPSBuZXcgSW5qZWN0aW9uVG9rZW48T2JzZXJ2YWJsZTxib29sZWFuPj4oXG4gICAgJ01vYmlsZSByZXNvbHV0aW9uIHN0cmVhbSBmb3IgcHJpdmF0ZSBwcm92aWRlcnMnLFxuICAgIHtcbiAgICAgICAgZmFjdG9yeTogKCkgPT4ge1xuICAgICAgICAgICAgY29uc3Qgd2luZG93UmVmID0gaW5qZWN0KFdJTkRPVyk7XG4gICAgICAgICAgICBjb25zdCBtZWRpYSA9IGluamVjdChUVUlfTUVESUEpO1xuXG4gICAgICAgICAgICByZXR1cm4gdHlwZWRGcm9tRXZlbnQod2luZG93UmVmLCAncmVzaXplJykucGlwZShcbiAgICAgICAgICAgICAgICBzaGFyZSgpLFxuICAgICAgICAgICAgICAgIHN0YXJ0V2l0aChudWxsKSxcbiAgICAgICAgICAgICAgICBtYXAoKCkgPT4gdHVpSXNNb2JpbGUod2luZG93UmVmLCBtZWRpYSkpLFxuICAgICAgICAgICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICAgICAgICAgICAgdHVpWm9uZU9wdGltaXplZChpbmplY3QoTmdab25lKSksXG4gICAgICAgICAgICApO1xuICAgICAgICB9LFxuICAgIH0sXG4pO1xuIl19
|
|
@@ -0,0 +1,21 @@
|
|
|
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({ document, innerHeight }) {
|
|
19
|
+
return Math.max(document.documentElement.clientHeight || 0, innerHeight || 0);
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LXZpZXdwb3J0LWhlaWdodC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B0YWlnYS11aS9jb3JlL3V0aWxzL2RvbS8iLCJzb3VyY2VzIjpbImdldC12aWV3cG9ydC1oZWlnaHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7R0FnQkc7QUFDSCxNQUFNLFVBQVUsb0JBQW9CLENBQUMsRUFBQyxRQUFRLEVBQUUsV0FBVyxFQUFTO0lBQ2hFLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLFlBQVksSUFBSSxDQUFDLEVBQUUsV0FBVyxJQUFJLENBQUMsQ0FBQyxDQUFDO0FBQ2xGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBkZXNjcmlwdGlvbjpcbiAqIENyb3NzLWJyb3dzZXIgQG1lZGlhIChoZWlnaHQpXG4gKlxuICogMS4gd2luZG93LmlubmVyV2lkdGhcbiAqIDEuMS4gZ2V0cyBDU1Mgdmlld3BvcnQgQG1lZGlhIChoZWlnaHQpIHdoaWNoIGluY2x1ZGUgc2Nyb2xsYmFyc1xuICogMS4yLiBpbml0aWFsLXNjYWxlIGFuZCB6b29tIHZhcmlhdGlvbnMgbWF5IGNhdXNlIG1vYmlsZSB2YWx1ZXMgdG9cbiAqICAgICAgd3JvbmdseSBzY2FsZSBkb3duIHRvIHdoYXQgUFBLIGNhbGxzIHRoZSB2aXN1YWxcbiAqICAgICAgdmlld3BvcnQgYW5kIGJlIHNtYWxsZXIgdGhhbiB0aGUgQG1lZGlhIHZhbHVlc1xuICogIDEuMy4gem9vbSBtYXkgY2F1c2UgdmFsdWVzIHRvIGJlIDFweCBvZmYgZHVlIHRvIG5hdGl2ZSByb3VuZGluZ1xuICpcbiAqICAyLiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0XG4gKiAgMi4xLiBlcXVhbHMgQ1NTIHZpZXdwb3J0IHdpZHRoIG1pbnVzIHNjcm9sbGJhciB3aWR0aFxuICogIDIuMi4gbWF0Y2hlcyBAbWVkaWEgKGhlaWdodCkgd2hlbiB0aGVyZSBpcyBubyBzY3JvbGxiYXJcbiAqICAyLjMuIGF2YWlsYWJsZSBjcm9zcy1icm93c2VyXG4gKiAgMi40LiBpbmFjY3VyYXRlIGlmIGRvY3R5cGUgaXMgbWlzc2luZ1xuICovXG5leHBvcnQgZnVuY3Rpb24gdHVpR2V0Vmlld3BvcnRIZWlnaHQoe2RvY3VtZW50LCBpbm5lckhlaWdodH06IFdpbmRvdyk6IG51bWJlciB7XG4gICAgcmV0dXJuIE1hdGgubWF4KGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHQgfHwgMCwgaW5uZXJIZWlnaHQgfHwgMCk7XG59XG4iXX0=
|
|
@@ -0,0 +1,21 @@
|
|
|
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({ document, innerWidth }) {
|
|
19
|
+
return Math.max(document.documentElement.clientWidth || 0, innerWidth || 0);
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LXZpZXdwb3J0LXdpZHRoLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHRhaWdhLXVpL2NvcmUvdXRpbHMvZG9tLyIsInNvdXJjZXMiOlsiZ2V0LXZpZXdwb3J0LXdpZHRoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7O0dBZ0JHO0FBQ0gsTUFBTSxVQUFVLG1CQUFtQixDQUFDLEVBQUMsUUFBUSxFQUFFLFVBQVUsRUFBUztJQUM5RCxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxXQUFXLElBQUksQ0FBQyxFQUFFLFVBQVUsSUFBSSxDQUFDLENBQUMsQ0FBQztBQUNoRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAZGVzY3JpcHRpb246XG4gKiBDcm9zcy1icm93c2VyIEBtZWRpYSAod2lkdGgpXG4gKlxuICogMS4gd2luZG93LmlubmVyV2lkdGhcbiAqIDEuMS4gZ2V0cyBDU1Mgdmlld3BvcnQgQG1lZGlhICh3aWR0aCkgd2hpY2ggaW5jbHVkZSBzY3JvbGxiYXJzXG4gKiAxLjIuIGluaXRpYWwtc2NhbGUgYW5kIHpvb20gdmFyaWF0aW9ucyBtYXkgY2F1c2UgbW9iaWxlIHZhbHVlcyB0b1xuICogICAgICB3cm9uZ2x5IHNjYWxlIGRvd24gdG8gd2hhdCBQUEsgY2FsbHMgdGhlIHZpc3VhbFxuICogICAgICB2aWV3cG9ydCBhbmQgYmUgc21hbGxlciB0aGFuIHRoZSBAbWVkaWEgdmFsdWVzXG4gKiAgMS4zLiB6b29tIG1heSBjYXVzZSB2YWx1ZXMgdG8gYmUgMXB4IG9mZiBkdWUgdG8gbmF0aXZlIHJvdW5kaW5nXG4gKlxuICogIDIuIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRXaWR0aFxuICogIDIuMS4gZXF1YWxzIENTUyB2aWV3cG9ydCB3aWR0aCBtaW51cyBzY3JvbGxiYXIgd2lkdGhcbiAqICAyLjIuIG1hdGNoZXMgQG1lZGlhICh3aWR0aCkgd2hlbiB0aGVyZSBpcyBubyBzY3JvbGxiYXJcbiAqICAyLjMuIGF2YWlsYWJsZSBjcm9zcy1icm93c2VyXG4gKiAgMi40LiBpbmFjY3VyYXRlIGlmIGRvY3R5cGUgaXMgbWlzc2luZ1xuICovXG5leHBvcnQgZnVuY3Rpb24gdHVpR2V0Vmlld3BvcnRXaWR0aCh7ZG9jdW1lbnQsIGlubmVyV2lkdGh9OiBXaW5kb3cpOiBudW1iZXIge1xuICAgIHJldHVybiBNYXRoLm1heChkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50V2lkdGggfHwgMCwgaW5uZXJXaWR0aCB8fCAwKTtcbn1cbiJdfQ==
|
|
@@ -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=
|