@taiga-ui/kit 4.2.0 → 4.4.0-canary.6e6e993
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/components/calendar-range/calendar-range.component.d.ts +16 -6
- package/components/carousel/carousel.component.d.ts +1 -1
- package/components/input-phone-international/input-phone-international.options.d.ts +1 -1
- package/components/preview/preview.component.d.ts +1 -1
- package/components/segmented/segmented.directive.d.ts +2 -3
- package/components/slider/slider.component.d.ts +1 -1
- package/components/tiles/tile-handle.directive.d.ts +1 -1
- package/directives/button-close/index.d.ts +0 -1
- package/directives/button-select/button-select.directive.d.ts +12 -0
- package/directives/button-select/index.d.ts +1 -0
- package/directives/icon-badge/icon-badge.directive.d.ts +9 -0
- package/directives/icon-badge/index.d.ts +1 -0
- package/directives/index.d.ts +2 -0
- package/esm2022/components/accordion/accordion-item.component.mjs +10 -19
- package/esm2022/components/avatar/avatar-labeled.component.mjs +3 -6
- package/esm2022/components/avatar/avatar-stack.component.mjs +6 -7
- package/esm2022/components/breadcrumbs/breadcrumbs.component.mjs +6 -7
- package/esm2022/components/button-loading/button-loading.component.mjs +3 -5
- package/esm2022/components/calendar-month/calendar-month.component.mjs +6 -7
- package/esm2022/components/calendar-range/calendar-range.component.mjs +41 -46
- package/esm2022/components/carousel/carousel.component.mjs +17 -28
- package/esm2022/components/checkbox/checkbox.component.mjs +2 -2
- package/esm2022/components/checkbox/checkbox.options.mjs +3 -3
- package/esm2022/components/compass/compass.component.mjs +6 -7
- package/esm2022/components/elastic-container/elastic-container.component.mjs +8 -11
- package/esm2022/components/elastic-container/elastic-container.directive.mjs +2 -2
- package/esm2022/components/files/file/file.component.mjs +6 -7
- package/esm2022/components/files/input-files/input-files-validator.directive.mjs +6 -6
- package/esm2022/components/files/input-files/input-files.component.mjs +3 -5
- package/esm2022/components/files/input-files/input-files.directive.mjs +6 -3
- package/esm2022/components/filter/filter.component.mjs +6 -7
- package/esm2022/components/input-inline/input-inline.component.mjs +5 -6
- package/esm2022/components/input-phone-international/input-phone-international.component.mjs +3 -3
- package/esm2022/components/input-phone-international/input-phone-international.options.mjs +3 -3
- package/esm2022/components/items-with-more/items-with-more.service.mjs +4 -4
- package/esm2022/components/line-clamp/line-clamp-box.component.mjs +7 -8
- package/esm2022/components/line-clamp/line-clamp.component.mjs +5 -6
- package/esm2022/components/pagination/pagination.component.mjs +5 -13
- package/esm2022/components/pdf-viewer/pdf-viewer.component.mjs +4 -6
- package/esm2022/components/pin/pin.directive.mjs +6 -6
- package/esm2022/components/preview/pagination/preview-pagination.component.mjs +6 -9
- package/esm2022/components/preview/preview.component.mjs +4 -6
- package/esm2022/components/progress/progress-bar/progress-bar.component.mjs +7 -10
- package/esm2022/components/progress/progress-bar/progress-color-segments.directive.mjs +2 -2
- package/esm2022/components/progress/progress-circle/progress-circle.component.mjs +8 -13
- package/esm2022/components/push/push-alert.component.mjs +3 -3
- package/esm2022/components/radio/radio.component.mjs +2 -2
- package/esm2022/components/radio-list/radio-list.component.mjs +7 -10
- package/esm2022/components/range/range-change.directive.mjs +5 -5
- package/esm2022/components/range/range.component.mjs +10 -20
- package/esm2022/components/rating/rating.component.mjs +9 -19
- package/esm2022/components/segmented/segmented.component.mjs +8 -9
- package/esm2022/components/segmented/segmented.directive.mjs +17 -21
- package/esm2022/components/slider/helpers/key-steps.mjs +3 -2
- package/esm2022/components/slider/helpers/slider-key-steps.directive.mjs +5 -9
- package/esm2022/components/slider/helpers/slider-readonly.directive.mjs +7 -9
- package/esm2022/components/slider/slider.component.mjs +8 -12
- package/esm2022/components/stepper/step.component.mjs +12 -23
- package/esm2022/components/stepper/stepper.component.mjs +12 -21
- package/esm2022/components/switch/switch.component.mjs +6 -8
- package/esm2022/components/tabs/tabs-horizontal.directive.mjs +7 -13
- package/esm2022/components/tabs/tabs-vertical.directive.mjs +8 -12
- package/esm2022/components/tabs/tabs-with-more.component.mjs +7 -6
- package/esm2022/components/tabs/tabs.directive.mjs +7 -7
- package/esm2022/components/tiles/tile-handle.directive.mjs +15 -21
- package/esm2022/components/tiles/tile.component.mjs +9 -16
- package/esm2022/components/tiles/tiles.component.mjs +7 -10
- package/esm2022/components/tree/components/tree-item/tree-item.component.mjs +4 -6
- package/esm2022/components/tree/components/tree-item-content/tree-item-content.component.mjs +7 -8
- package/esm2022/directives/button-close/button-close.directive.mjs +5 -6
- package/esm2022/directives/button-close/index.mjs +1 -2
- package/esm2022/directives/button-select/button-select.directive.mjs +41 -0
- package/esm2022/directives/button-select/index.mjs +2 -0
- package/esm2022/directives/button-select/taiga-ui-kit-directives-button-select.mjs +5 -0
- package/esm2022/directives/fade/fade.directive.mjs +11 -19
- package/esm2022/directives/fluid-typography/fluid-typography.directive.mjs +2 -2
- package/esm2022/directives/highlight/highlight.directive.mjs +2 -2
- package/esm2022/directives/icon-badge/icon-badge.directive.mjs +41 -0
- package/esm2022/directives/icon-badge/index.mjs +2 -0
- package/esm2022/directives/icon-badge/taiga-ui-kit-directives-icon-badge.mjs +5 -0
- package/esm2022/directives/index.mjs +3 -1
- package/esm2022/directives/lazy-loading/lazy-loading.directive.mjs +15 -20
- package/esm2022/directives/lazy-loading/lazy-loading.service.mjs +2 -2
- package/esm2022/directives/present/present.directive.mjs +4 -8
- package/esm2022/directives/sensitive/sensitive.directive.mjs +5 -5
- package/esm2022/directives/skeleton/skeleton.directive.mjs +2 -2
- package/esm2022/directives/tooltip/tooltip.directive.mjs +7 -7
- package/fesm2022/taiga-ui-kit-components-accordion.mjs +9 -18
- package/fesm2022/taiga-ui-kit-components-accordion.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-avatar.mjs +6 -10
- package/fesm2022/taiga-ui-kit-components-avatar.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-breadcrumbs.mjs +5 -6
- package/fesm2022/taiga-ui-kit-components-breadcrumbs.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-button-loading.mjs +2 -4
- package/fesm2022/taiga-ui-kit-components-button-loading.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-calendar-month.mjs +5 -6
- package/fesm2022/taiga-ui-kit-components-calendar-month.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-calendar-range.mjs +40 -45
- package/fesm2022/taiga-ui-kit-components-calendar-range.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-carousel.mjs +16 -27
- package/fesm2022/taiga-ui-kit-components-carousel.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-checkbox.mjs +3 -3
- package/fesm2022/taiga-ui-kit-components-checkbox.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-compass.mjs +5 -6
- package/fesm2022/taiga-ui-kit-components-compass.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-elastic-container.mjs +8 -11
- package/fesm2022/taiga-ui-kit-components-elastic-container.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-files.mjs +15 -15
- package/fesm2022/taiga-ui-kit-components-files.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-filter.mjs +5 -6
- package/fesm2022/taiga-ui-kit-components-filter.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-input-inline.mjs +4 -5
- package/fesm2022/taiga-ui-kit-components-input-inline.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-input-phone-international.mjs +4 -4
- package/fesm2022/taiga-ui-kit-components-input-phone-international.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-items-with-more.mjs +3 -3
- package/fesm2022/taiga-ui-kit-components-items-with-more.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-line-clamp.mjs +9 -11
- package/fesm2022/taiga-ui-kit-components-line-clamp.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-pagination.mjs +4 -12
- package/fesm2022/taiga-ui-kit-components-pagination.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-pdf-viewer.mjs +3 -5
- package/fesm2022/taiga-ui-kit-components-pdf-viewer.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-pin.mjs +5 -5
- package/fesm2022/taiga-ui-kit-components-pin.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-preview.mjs +8 -13
- package/fesm2022/taiga-ui-kit-components-preview.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-progress.mjs +13 -21
- package/fesm2022/taiga-ui-kit-components-progress.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-push.mjs +2 -2
- package/fesm2022/taiga-ui-kit-components-push.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-radio-list.mjs +6 -9
- package/fesm2022/taiga-ui-kit-components-radio-list.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-radio.mjs +1 -1
- package/fesm2022/taiga-ui-kit-components-radio.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-range.mjs +13 -23
- package/fesm2022/taiga-ui-kit-components-range.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-rating.mjs +8 -18
- package/fesm2022/taiga-ui-kit-components-rating.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-segmented.mjs +22 -26
- package/fesm2022/taiga-ui-kit-components-segmented.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-slider.mjs +17 -26
- package/fesm2022/taiga-ui-kit-components-slider.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-stepper.mjs +21 -41
- package/fesm2022/taiga-ui-kit-components-stepper.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-switch.mjs +5 -7
- package/fesm2022/taiga-ui-kit-components-switch.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-tabs.mjs +23 -32
- package/fesm2022/taiga-ui-kit-components-tabs.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-tiles.mjs +26 -42
- package/fesm2022/taiga-ui-kit-components-tiles.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-tree.mjs +8 -11
- package/fesm2022/taiga-ui-kit-components-tree.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-directives-button-close.mjs +5 -8
- package/fesm2022/taiga-ui-kit-directives-button-close.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-directives-button-select.mjs +47 -0
- package/fesm2022/taiga-ui-kit-directives-button-select.mjs.map +1 -0
- package/fesm2022/taiga-ui-kit-directives-fade.mjs +10 -18
- package/fesm2022/taiga-ui-kit-directives-fade.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-directives-fluid-typography.mjs +1 -1
- package/fesm2022/taiga-ui-kit-directives-fluid-typography.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-directives-highlight.mjs +1 -1
- package/fesm2022/taiga-ui-kit-directives-highlight.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-directives-icon-badge.mjs +47 -0
- package/fesm2022/taiga-ui-kit-directives-icon-badge.mjs.map +1 -0
- package/fesm2022/taiga-ui-kit-directives-lazy-loading.mjs +15 -20
- package/fesm2022/taiga-ui-kit-directives-lazy-loading.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-directives-present.mjs +3 -7
- package/fesm2022/taiga-ui-kit-directives-present.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-directives-sensitive.mjs +4 -4
- package/fesm2022/taiga-ui-kit-directives-sensitive.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-directives-skeleton.mjs +1 -1
- package/fesm2022/taiga-ui-kit-directives-skeleton.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-directives-tooltip.mjs +6 -6
- package/fesm2022/taiga-ui-kit-directives-tooltip.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-directives.mjs +2 -0
- package/fesm2022/taiga-ui-kit-directives.mjs.map +1 -1
- package/package.json +499 -487
- package/directives/button-close/button-close.options.d.ts +0 -1
- package/esm2022/directives/button-close/button-close.options.mjs +0 -3
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { AsyncPipe } from '@angular/common';
|
|
2
|
-
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef,
|
|
2
|
+
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, inject, Input, NgZone, Output, Renderer2, ViewChild, } from '@angular/core';
|
|
3
3
|
import { WaResizeObserver } from '@ng-web-apis/resize-observer';
|
|
4
4
|
import { TuiLet } from '@taiga-ui/cdk/directives/let';
|
|
5
5
|
import { tuiTypedFromEvent, tuiZonefree } from '@taiga-ui/cdk/observables';
|
|
@@ -95,7 +95,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
95
95
|
provide: TUI_HINT_COMPONENT,
|
|
96
96
|
useValue: TuiLineClampBox,
|
|
97
97
|
},
|
|
98
|
-
],
|
|
98
|
+
], host: {
|
|
99
|
+
'(transitionend)': 'updateView()',
|
|
100
|
+
}, template: "<div\n *tuiLet=\"lineClamp$ | async as lineClamp\"\n tuiLineClampPosition\n class=\"t-wrapper\"\n [style.-webkit-line-clamp]=\"lineClamp\"\n [style.word-break]=\"(lineClamp || 0) > 1 ? 'break-word' : 'break-all'\"\n [tuiHint]=\"computedContent\"\n (mouseenter)=\"updateView()\"\n (waResizeObserver)=\"updateView()\"\n>\n <ng-container *polymorpheusOutlet=\"content as text\">\n {{ text }}\n </ng-container>\n</div>\n", styles: [":host{position:relative;display:block;overflow:hidden}:host._initialized{transition-property:max-height;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out}.t-wrapper{display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}.t-wrapper ::ng-deep>*{white-space:initial}\n"] }]
|
|
99
101
|
}], ctorParameters: function () { return []; }, propDecorators: { outlet: [{
|
|
100
102
|
type: ViewChild,
|
|
101
103
|
args: [TuiHintDirective, { read: ElementRef }]
|
|
@@ -107,8 +109,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
107
109
|
type: Output
|
|
108
110
|
}], linesLimit: [{
|
|
109
111
|
type: Input
|
|
110
|
-
}], updateView: [{
|
|
111
|
-
type: HostListener,
|
|
112
|
-
args: ['transitionend']
|
|
113
112
|
}] } });
|
|
114
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluZS1jbGFtcC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9raXQvY29tcG9uZW50cy9saW5lLWNsYW1wL2xpbmUtY2xhbXAuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2l0L2NvbXBvbmVudHMvbGluZS1jbGFtcC9saW5lLWNsYW1wLnRlbXBsYXRlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBRTFDLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxFQUNOLE1BQU0sRUFDTixTQUFTLEVBQ1QsU0FBUyxHQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQzlELE9BQU8sRUFBQyxNQUFNLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUNwRCxPQUFPLEVBQUMsaUJBQWlCLEVBQUUsV0FBVyxFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDekUsT0FBTyxFQUFDLGdCQUFnQixFQUFFLGtCQUFrQixFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDN0UsT0FBTyxFQUFDLEtBQUssRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBQ3hELE9BQU8sRUFDSCxrQkFBa0IsRUFDbEIsT0FBTyxFQUNQLGdCQUFnQixHQUNuQixNQUFNLGdDQUFnQyxDQUFDO0FBRXhDLE9BQU8sRUFBQyxrQkFBa0IsRUFBRSxvQkFBb0IsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBRWhGLE9BQU8sRUFDSCxlQUFlLEVBQ2Ysb0JBQW9CLEVBQ3BCLE1BQU0sRUFDTixHQUFHLEVBQ0gsRUFBRSxFQUNGLFFBQVEsRUFDUixTQUFTLEVBQ1QsT0FB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O3dCQUNOLFNBQVM7d0JBQ1QsNkJBQTZCO3FCQUNoQyxtQkFHZ0IsdUJBQXVCLENBQUMsTUFBTSxhQUNwQzt3QkFDUDs0QkFDSSxPQUFPLEVBQUUsa0JBQWtCOzRCQUMzQixRQUFRLEVBQUUsZUFBZTt5QkFDNUI7cUJBQ0o7MEVBSWdCLE1BQU07c0JBRHRCLFNBQVM7dUJBQUMsZ0JBQWdCLEVBQUUsRUFBQyxJQUFJLEVBQUUsVUFBVSxFQUFDO2dCQTBCeEMsVUFBVTtzQkFEaEIsS0FBSztnQkFJQyxPQUFPO3NCQURiLEtBQUs7Z0JBSVUsZUFBZTtzQkFEOUIsTUFBTTtnQkFTSSxVQUFVO3NCQURwQixLQUFLO2dCQStCSSxVQUFVO3NCQURuQixZQUFZO3VCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0FzeW5jUGlwZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB0eXBlIHtBZnRlclZpZXdJbml0LCBEb0NoZWNrfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgSG9zdExpc3RlbmVyLFxuICAgIGluamVjdCxcbiAgICBJbnB1dCxcbiAgICBOZ1pvbmUsXG4gICAgT3V0cHV0LFxuICAgIFJlbmRlcmVyMixcbiAgICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtXYVJlc2l6ZU9ic2VydmVyfSBmcm9tICdAbmctd2ViLWFwaXMvcmVzaXplLW9ic2VydmVyJztcbmltcG9ydCB7VHVpTGV0fSBmcm9tICdAdGFpZ2EtdWkvY2RrL2RpcmVjdGl2ZXMvbGV0JztcbmltcG9ydCB7dHVpVHlwZWRGcm9tRXZlbnQsIHR1aVpvbmVmcmVlfSBmcm9tICdAdGFpZ2EtdWkvY2RrL29ic2VydmFibGVzJztcbmltcG9ydCB7dHVpSW5qZWN0RWxlbWVudCwgdHVpSXNDdXJyZW50VGFyZ2V0fSBmcm9tICdAdGFpZ2EtdWkvY2RrL3V0aWxzL2RvbSc7XG5pbXBvcnQge3R1aVB4fSBmcm9tICdAdGFpZ2EtdWkvY2RrL3V0aWxzL21pc2NlbGxhbmVvdXMnO1xuaW1wb3J0IHtcbiAgICBUVUlfSElOVF9DT01QT05FTlQsXG4gICAgVHVpSGludCxcbiAgICBUdWlIaW50RGlyZWN0aXZlLFxufSBmcm9tICdAdGFpZ2EtdWkvY29yZS9kaXJlY3RpdmVzL2hpbnQnO1xuaW1wb3J0IHR5cGUge1BvbHltb3JwaGV1c0NvbnRlbnR9IGZyb20gJ0B0YWlnYS11aS9wb2x5bW9ycGhldXMnO1xuaW1wb3J0IHtQb2x5bW9ycGhldXNPdXRsZXQsIFBvbHltb3JwaGV1c1RlbXBsYXRlfSBmcm9tICdAdGFpZ2EtdWkvcG9seW1vcnBoZXVzJztcbmltcG9ydCB0eXBlIHtPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcbmltcG9ydCB7XG4gICAgQmVoYXZpb3JTdWJqZWN0LFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkLFxuICAgIGZpbHRlcixcbiAgICBtYXAsXG4gICAgb2YsXG4gICAgcGFpcndpc2UsXG4gICAgc3RhcnRXaXRoLFxuICAgIFN1YmplY3QsXG4gICAgc3dpdGNoTWFwLFxuICAgIHRpbWVyLFxufSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHtUVUlfTElORV9DTEFNUF9PUFRJT05TfSBmcm9tICcuL2xpbmUtY2xhbXAub3B0aW9ucyc7XG5pbXBvcnQge1R1aUxpbmVDbGFtcEJveH0gZnJvbSAnLi9saW5lLWNsYW1wLWJveC5jb21wb25lbnQnO1xuaW1wb3J0IHtUdWlMaW5lQ2xhbXBQb3NpdGlvbkRpcmVjdGl2ZX0gZnJvbSAnLi9saW5lLWNsYW1wLXBvc2l0aW9uLmRpcmVjdGl2ZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgc2VsZWN0b3I6ICd0dWktbGluZS1jbGFtcCcsXG4gICAgaW1wb3J0czogW1xuICAgICAgICBXYVJlc2l6ZU9ic2VydmVyLFxuICAgICAgICBQb2x5bW9ycGhldXNPdXRsZXQsXG4gICAgICAgIFBvbHltb3JwaGV1c1RlbXBsYXRlLFxuICAgICAgICBUdWlIaW50LFxuICAgICAgICBUdWlMZXQsXG4gICAgICAgIEFzeW5jUGlwZSxcbiAgICAgICAgVHVpTGluZUNsYW1wUG9zaXRpb25EaXJlY3RpdmUsXG4gICAgXSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vbGluZS1jbGFtcC50ZW1wbGF0ZS5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9saW5lLWNsYW1wLnN0eWxlLmxlc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogVFVJX0hJTlRfQ09NUE9ORU5ULFxuICAgICAgICAgICAgdXNlVmFsdWU6IFR1aUxpbmVDbGFtcEJveCxcbiAgICAgICAgfSxcbiAgICBdLFxufSlcbmV4cG9ydCBjbGFzcyBUdWlMaW5lQ2xhbXAgaW1wbGVtZW50cyBEb0NoZWNrLCBBZnRlclZpZXdJbml0IHtcbiAgICBAVmlld0NoaWxkKFR1aUhpbnREaXJlY3RpdmUsIHtyZWFkOiBFbGVtZW50UmVmfSlcbiAgICBwcml2YXRlIHJlYWRvbmx5IG91dGxldD86IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBvcHRpb25zID0gaW5qZWN0KFRVSV9MSU5FX0NMQU1QX09QVElPTlMpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZWwgPSB0dWlJbmplY3RFbGVtZW50KCk7XG4gICAgcHJpdmF0ZSByZWFkb25seSByZW5kZXJlciA9IGluamVjdChSZW5kZXJlcjIpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgY2QgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgem9uZTogTmdab25lID0gaW5qZWN0KE5nWm9uZSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBsaW5lc0xpbWl0JCA9IG5ldyBCZWhhdmlvclN1YmplY3QoMSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBpc092ZXJmbG93biQgPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuICAgIHByaXZhdGUgaW5pdGlhbGl6ZWQgPSBmYWxzZTtcblxuICAgIHByb3RlY3RlZCBsaW5lQ2xhbXAkID0gdGhpcy5saW5lc0xpbWl0JC5waXBlKFxuICAgICAgICBzdGFydFdpdGgoMSksXG4gICAgICAgIHBhaXJ3aXNlKCksXG4gICAgICAgIHN3aXRjaE1hcCgoW3ByZXYsIG5leHRdKSA9PlxuICAgICAgICAgICAgbmV4dCA+PSBwcmV2XG4gICAgICAgICAgICAgICAgPyBvZihuZXh0KVxuICAgICAgICAgICAgICAgIDogdHVpVHlwZWRGcm9tRXZlbnQodGhpcy5lbCwgJ3RyYW5zaXRpb25lbmQnKS5waXBlKFxuICAgICAgICAgICAgICAgICAgICAgIGZpbHRlcih0dWlJc0N1cnJlbnRUYXJnZXQpLFxuICAgICAgICAgICAgICAgICAgICAgIG1hcCgoKSA9PiBuZXh0KSxcbiAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICksXG4gICAgKTtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGxpbmVIZWlnaHQgPSAyNDtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGNvbnRlbnQ6IFBvbHltb3JwaGV1c0NvbnRlbnQ7XG5cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgcmVhZG9ubHkgb3ZlcmZsb3duQ2hhbmdlOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID1cbiAgICAgICAgdGhpcy5pc092ZXJmbG93biQucGlwZShkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKTtcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLnNraXBJbml0aWFsVHJhbnNpdGlvbigpO1xuICAgIH1cblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNldCBsaW5lc0xpbWl0KGxpbmVzTGltaXQ6IG51bWJlcikge1xuICAgICAgICB0aGlzLmxpbmVzTGltaXQkLm5leHQobGluZXNMaW1pdCk7XG4gICAgfVxuXG4gICAgcHVibGljIG5nRG9DaGVjaygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy51cGRhdGUoKTtcbiAgICAgICAgdGhpcy5pc092ZXJmbG93biQubmV4dCh0aGlzLm92ZXJmbG93bik7XG4gICAgfVxuXG4gICAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pbml0aWFsaXplZCA9IHRydWU7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldCBvdmVyZmxvd24oKTogYm9vbGVhbiB7XG4gICAgICAgIGlmICghdGhpcy5vdXRsZXQpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHtzY3JvbGxIZWlnaHQsIHNjcm9sbFdpZHRofSA9IHRoaXMub3V0bGV0Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgIGNvbnN0IHtjbGllbnRIZWlnaHQsIGNsaWVudFdpZHRofSA9IHRoaXMuZWw7XG5cbiAgICAgICAgLy8gNHB4IGJ1ZmZlciBmb3IgSUUvRWRnZSBpbmNvcnJlY3RseSByb3VuZGluZyBzY3JvbGxIZWlnaHRcbiAgICAgICAgcmV0dXJuIHNjcm9sbEhlaWdodCAtIGNsaWVudEhlaWdodCA+IDQgfHwgc2Nyb2xsV2lkdGggLSBjbGllbnRXaWR0aCA+IDA7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldCBjb21wdXRlZENvbnRlbnQoKTogUG9seW1vcnBoZXVzQ29udGVudCB7XG4gICAgICAgIHJldHVybiB0aGlzLm9wdGlvbnMuc2hvd0hpbnQgJiYgdGhpcy5vdmVyZmxvd24gPyB0aGlzLmNvbnRlbnQgOiAnJztcbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCd0cmFuc2l0aW9uZW5kJylcbiAgICBwcm90ZWN0ZWQgdXBkYXRlVmlldygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBza2lwSW5pdGlhbFRyYW5zaXRpb24oKTogdm9pZCB7XG4gICAgICAgIHRpbWVyKDApXG4gICAgICAgICAgICAucGlwZSh0dWlab25lZnJlZSh0aGlzLnpvbmUpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLmVsLCAnX2luaXRpYWxpemVkJyk7XG4gICAgICAgICAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMub3V0bGV0KSB7XG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKFxuICAgICAgICAgICAgICAgIHRoaXMuZWwsXG4gICAgICAgICAgICAgICAgJ2hlaWdodCcsXG4gICAgICAgICAgICAgICAgdHVpUHgodGhpcy5vdXRsZXQubmF0aXZlRWxlbWVudC5zY3JvbGxIZWlnaHQgKyA0KSxcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5pbml0aWFsaXplZCkge1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShcbiAgICAgICAgICAgICAgICB0aGlzLmVsLFxuICAgICAgICAgICAgICAgICdtYXgtaGVpZ2h0JyxcbiAgICAgICAgICAgICAgICB0dWlQeCh0aGlzLmxpbmVIZWlnaHQgKiB0aGlzLmxpbmVzTGltaXQkLnZhbHVlKSxcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCI8ZGl2XG4gICAgKnR1aUxldD1cImxpbmVDbGFtcCQgfCBhc3luYyBhcyBsaW5lQ2xhbXBcIlxuICAgIHR1aUxpbmVDbGFtcFBvc2l0aW9uXG4gICAgY2xhc3M9XCJ0LXdyYXBwZXJcIlxuICAgIFtzdHlsZS4td2Via2l0LWxpbmUtY2xhbXBdPVwibGluZUNsYW1wXCJcbiAgICBbc3R5bGUud29yZC1icmVha109XCIobGluZUNsYW1wIHx8IDApID4gMSA/ICdicmVhay13b3JkJyA6ICdicmVhay1hbGwnXCJcbiAgICBbdHVpSGludF09XCJjb21wdXRlZENvbnRlbnRcIlxuICAgIChtb3VzZWVudGVyKT1cInVwZGF0ZVZpZXcoKVwiXG4gICAgKHdhUmVzaXplT2JzZXJ2ZXIpPVwidXBkYXRlVmlldygpXCJcbj5cbiAgICA8bmctY29udGFpbmVyICpwb2x5bW9ycGhldXNPdXRsZXQ9XCJjb250ZW50IGFzIHRleHRcIj5cbiAgICAgICAge3sgdGV4dCB9fVxuICAgIDwvbmctY29udGFpbmVyPlxuPC9kaXY+XG4iXX0=
|
|
113
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluZS1jbGFtcC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9raXQvY29tcG9uZW50cy9saW5lLWNsYW1wL2xpbmUtY2xhbXAuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2l0L2NvbXBvbmVudHMvbGluZS1jbGFtcC9saW5lLWNsYW1wLnRlbXBsYXRlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBRTFDLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEVBQ04sTUFBTSxFQUNOLFNBQVMsRUFDVCxTQUFTLEdBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDOUQsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQ3BELE9BQU8sRUFBQyxpQkFBaUIsRUFBRSxXQUFXLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUN6RSxPQUFPLEVBQUMsZ0JBQWdCLEVBQUUsa0JBQWtCLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUM3RSxPQUFPLEVBQUMsS0FBSyxFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFDeEQsT0FBTyxFQUNILGtCQUFrQixFQUNsQixPQUFPLEVBQ1AsZ0JBQWdCLEdBQ25CLE1BQU0sZ0NBQWdDLENBQUM7QUFFeEMsT0FBTyxFQUFDLGtCQUFrQixFQUFFLG9CQUFvQixFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFFaEYsT0FBTyxFQUNILGVBQWUsRUFDZixvQkFBb0IsRUFDcEIsTUFBTSxFQUNOLEdBQUcsRUFDSCxFQUFFLEVBQ0YsUUFBUSxFQUNSLFNBQVMsRUFDVCxPQUFPLEVBQ1AsU0FB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Uzt3QkFDVCw2QkFBNkI7cUJBQ2hDLG1CQUdnQix1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDO3dCQUNQOzRCQUNJLE9BQU8sRUFBRSxrQkFBa0I7NEJBQzNCLFFBQVEsRUFBRSxlQUFlO3lCQUM1QjtxQkFDSixRQUNLO3dCQUNGLGlCQUFpQixFQUFFLGNBQWM7cUJBQ3BDOzBFQUlnQixNQUFNO3NCQUR0QixTQUFTO3VCQUFDLGdCQUFnQixFQUFFLEVBQUMsSUFBSSxFQUFFLFVBQVUsRUFBQztnQkEwQnhDLFVBQVU7c0JBRGhCLEtBQUs7Z0JBSUMsT0FBTztzQkFEYixLQUFLO2dCQUlVLGVBQWU7c0JBRDlCLE1BQU07Z0JBU0ksVUFBVTtzQkFEcEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QXN5bmNQaXBlfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHR5cGUge0FmdGVyVmlld0luaXQsIERvQ2hlY2t9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgRWxlbWVudFJlZixcbiAgICBpbmplY3QsXG4gICAgSW5wdXQsXG4gICAgTmdab25lLFxuICAgIE91dHB1dCxcbiAgICBSZW5kZXJlcjIsXG4gICAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7V2FSZXNpemVPYnNlcnZlcn0gZnJvbSAnQG5nLXdlYi1hcGlzL3Jlc2l6ZS1vYnNlcnZlcic7XG5pbXBvcnQge1R1aUxldH0gZnJvbSAnQHRhaWdhLXVpL2Nkay9kaXJlY3RpdmVzL2xldCc7XG5pbXBvcnQge3R1aVR5cGVkRnJvbUV2ZW50LCB0dWlab25lZnJlZX0gZnJvbSAnQHRhaWdhLXVpL2Nkay9vYnNlcnZhYmxlcyc7XG5pbXBvcnQge3R1aUluamVjdEVsZW1lbnQsIHR1aUlzQ3VycmVudFRhcmdldH0gZnJvbSAnQHRhaWdhLXVpL2Nkay91dGlscy9kb20nO1xuaW1wb3J0IHt0dWlQeH0gZnJvbSAnQHRhaWdhLXVpL2Nkay91dGlscy9taXNjZWxsYW5lb3VzJztcbmltcG9ydCB7XG4gICAgVFVJX0hJTlRfQ09NUE9ORU5ULFxuICAgIFR1aUhpbnQsXG4gICAgVHVpSGludERpcmVjdGl2ZSxcbn0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvZGlyZWN0aXZlcy9oaW50JztcbmltcG9ydCB0eXBlIHtQb2x5bW9ycGhldXNDb250ZW50fSBmcm9tICdAdGFpZ2EtdWkvcG9seW1vcnBoZXVzJztcbmltcG9ydCB7UG9seW1vcnBoZXVzT3V0bGV0LCBQb2x5bW9ycGhldXNUZW1wbGF0ZX0gZnJvbSAnQHRhaWdhLXVpL3BvbHltb3JwaGV1cyc7XG5pbXBvcnQgdHlwZSB7T2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1xuICAgIEJlaGF2aW9yU3ViamVjdCxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCxcbiAgICBmaWx0ZXIsXG4gICAgbWFwLFxuICAgIG9mLFxuICAgIHBhaXJ3aXNlLFxuICAgIHN0YXJ0V2l0aCxcbiAgICBTdWJqZWN0LFxuICAgIHN3aXRjaE1hcCxcbiAgICB0aW1lcixcbn0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7VFVJX0xJTkVfQ0xBTVBfT1BUSU9OU30gZnJvbSAnLi9saW5lLWNsYW1wLm9wdGlvbnMnO1xuaW1wb3J0IHtUdWlMaW5lQ2xhbXBCb3h9IGZyb20gJy4vbGluZS1jbGFtcC1ib3guY29tcG9uZW50JztcbmltcG9ydCB7VHVpTGluZUNsYW1wUG9zaXRpb25EaXJlY3RpdmV9IGZyb20gJy4vbGluZS1jbGFtcC1wb3NpdGlvbi5kaXJlY3RpdmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAndHVpLWxpbmUtY2xhbXAnLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgV2FSZXNpemVPYnNlcnZlcixcbiAgICAgICAgUG9seW1vcnBoZXVzT3V0bGV0LFxuICAgICAgICBQb2x5bW9ycGhldXNUZW1wbGF0ZSxcbiAgICAgICAgVHVpSGludCxcbiAgICAgICAgVHVpTGV0LFxuICAgICAgICBBc3luY1BpcGUsXG4gICAgICAgIFR1aUxpbmVDbGFtcFBvc2l0aW9uRGlyZWN0aXZlLFxuICAgIF0sXG4gICAgdGVtcGxhdGVVcmw6ICcuL2xpbmUtY2xhbXAudGVtcGxhdGUuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vbGluZS1jbGFtcC5zdHlsZS5sZXNzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IFRVSV9ISU5UX0NPTVBPTkVOVCxcbiAgICAgICAgICAgIHVzZVZhbHVlOiBUdWlMaW5lQ2xhbXBCb3gsXG4gICAgICAgIH0sXG4gICAgXSxcbiAgICBob3N0OiB7XG4gICAgICAgICcodHJhbnNpdGlvbmVuZCknOiAndXBkYXRlVmlldygpJyxcbiAgICB9LFxufSlcbmV4cG9ydCBjbGFzcyBUdWlMaW5lQ2xhbXAgaW1wbGVtZW50cyBEb0NoZWNrLCBBZnRlclZpZXdJbml0IHtcbiAgICBAVmlld0NoaWxkKFR1aUhpbnREaXJlY3RpdmUsIHtyZWFkOiBFbGVtZW50UmVmfSlcbiAgICBwcml2YXRlIHJlYWRvbmx5IG91dGxldD86IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBvcHRpb25zID0gaW5qZWN0KFRVSV9MSU5FX0NMQU1QX09QVElPTlMpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZWwgPSB0dWlJbmplY3RFbGVtZW50KCk7XG4gICAgcHJpdmF0ZSByZWFkb25seSByZW5kZXJlciA9IGluamVjdChSZW5kZXJlcjIpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgY2QgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgem9uZTogTmdab25lID0gaW5qZWN0KE5nWm9uZSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBsaW5lc0xpbWl0JCA9IG5ldyBCZWhhdmlvclN1YmplY3QoMSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBpc092ZXJmbG93biQgPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuICAgIHByaXZhdGUgaW5pdGlhbGl6ZWQgPSBmYWxzZTtcblxuICAgIHByb3RlY3RlZCBsaW5lQ2xhbXAkID0gdGhpcy5saW5lc0xpbWl0JC5waXBlKFxuICAgICAgICBzdGFydFdpdGgoMSksXG4gICAgICAgIHBhaXJ3aXNlKCksXG4gICAgICAgIHN3aXRjaE1hcCgoW3ByZXYsIG5leHRdKSA9PlxuICAgICAgICAgICAgbmV4dCA+PSBwcmV2XG4gICAgICAgICAgICAgICAgPyBvZihuZXh0KVxuICAgICAgICAgICAgICAgIDogdHVpVHlwZWRGcm9tRXZlbnQodGhpcy5lbCwgJ3RyYW5zaXRpb25lbmQnKS5waXBlKFxuICAgICAgICAgICAgICAgICAgICAgIGZpbHRlcih0dWlJc0N1cnJlbnRUYXJnZXQpLFxuICAgICAgICAgICAgICAgICAgICAgIG1hcCgoKSA9PiBuZXh0KSxcbiAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICksXG4gICAgKTtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGxpbmVIZWlnaHQgPSAyNDtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGNvbnRlbnQ6IFBvbHltb3JwaGV1c0NvbnRlbnQ7XG5cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgcmVhZG9ubHkgb3ZlcmZsb3duQ2hhbmdlOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID1cbiAgICAgICAgdGhpcy5pc092ZXJmbG93biQucGlwZShkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKTtcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLnNraXBJbml0aWFsVHJhbnNpdGlvbigpO1xuICAgIH1cblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNldCBsaW5lc0xpbWl0KGxpbmVzTGltaXQ6IG51bWJlcikge1xuICAgICAgICB0aGlzLmxpbmVzTGltaXQkLm5leHQobGluZXNMaW1pdCk7XG4gICAgfVxuXG4gICAgcHVibGljIG5nRG9DaGVjaygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy51cGRhdGUoKTtcbiAgICAgICAgdGhpcy5pc092ZXJmbG93biQubmV4dCh0aGlzLm92ZXJmbG93bik7XG4gICAgfVxuXG4gICAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pbml0aWFsaXplZCA9IHRydWU7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldCBvdmVyZmxvd24oKTogYm9vbGVhbiB7XG4gICAgICAgIGlmICghdGhpcy5vdXRsZXQpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHtzY3JvbGxIZWlnaHQsIHNjcm9sbFdpZHRofSA9IHRoaXMub3V0bGV0Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgIGNvbnN0IHtjbGllbnRIZWlnaHQsIGNsaWVudFdpZHRofSA9IHRoaXMuZWw7XG5cbiAgICAgICAgLy8gNHB4IGJ1ZmZlciBmb3IgSUUvRWRnZSBpbmNvcnJlY3RseSByb3VuZGluZyBzY3JvbGxIZWlnaHRcbiAgICAgICAgcmV0dXJuIHNjcm9sbEhlaWdodCAtIGNsaWVudEhlaWdodCA+IDQgfHwgc2Nyb2xsV2lkdGggLSBjbGllbnRXaWR0aCA+IDA7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldCBjb21wdXRlZENvbnRlbnQoKTogUG9seW1vcnBoZXVzQ29udGVudCB7XG4gICAgICAgIHJldHVybiB0aGlzLm9wdGlvbnMuc2hvd0hpbnQgJiYgdGhpcy5vdmVyZmxvd24gPyB0aGlzLmNvbnRlbnQgOiAnJztcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgdXBkYXRlVmlldygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBza2lwSW5pdGlhbFRyYW5zaXRpb24oKTogdm9pZCB7XG4gICAgICAgIHRpbWVyKDApXG4gICAgICAgICAgICAucGlwZSh0dWlab25lZnJlZSh0aGlzLnpvbmUpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLmVsLCAnX2luaXRpYWxpemVkJyk7XG4gICAgICAgICAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMub3V0bGV0KSB7XG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKFxuICAgICAgICAgICAgICAgIHRoaXMuZWwsXG4gICAgICAgICAgICAgICAgJ2hlaWdodCcsXG4gICAgICAgICAgICAgICAgdHVpUHgodGhpcy5vdXRsZXQubmF0aXZlRWxlbWVudC5zY3JvbGxIZWlnaHQgKyA0KSxcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5pbml0aWFsaXplZCkge1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShcbiAgICAgICAgICAgICAgICB0aGlzLmVsLFxuICAgICAgICAgICAgICAgICdtYXgtaGVpZ2h0JyxcbiAgICAgICAgICAgICAgICB0dWlQeCh0aGlzLmxpbmVIZWlnaHQgKiB0aGlzLmxpbmVzTGltaXQkLnZhbHVlKSxcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCI8ZGl2XG4gICAgKnR1aUxldD1cImxpbmVDbGFtcCQgfCBhc3luYyBhcyBsaW5lQ2xhbXBcIlxuICAgIHR1aUxpbmVDbGFtcFBvc2l0aW9uXG4gICAgY2xhc3M9XCJ0LXdyYXBwZXJcIlxuICAgIFtzdHlsZS4td2Via2l0LWxpbmUtY2xhbXBdPVwibGluZUNsYW1wXCJcbiAgICBbc3R5bGUud29yZC1icmVha109XCIobGluZUNsYW1wIHx8IDApID4gMSA/ICdicmVhay13b3JkJyA6ICdicmVhay1hbGwnXCJcbiAgICBbdHVpSGludF09XCJjb21wdXRlZENvbnRlbnRcIlxuICAgIChtb3VzZWVudGVyKT1cInVwZGF0ZVZpZXcoKVwiXG4gICAgKHdhUmVzaXplT2JzZXJ2ZXIpPVwidXBkYXRlVmlldygpXCJcbj5cbiAgICA8bmctY29udGFpbmVyICpwb2x5bW9ycGhldXNPdXRsZXQ9XCJjb250ZW50IGFzIHRleHRcIj5cbiAgICAgICAge3sgdGV4dCB9fVxuICAgIDwvbmctY29udGFpbmVyPlxuPC9kaXY+XG4iXX0=
|
|
@@ -113,7 +113,7 @@ class TuiPagination {
|
|
|
113
113
|
if (element === this.els.first.nativeElement) {
|
|
114
114
|
return;
|
|
115
115
|
}
|
|
116
|
-
const previous = this.els.find((_, index, array) => array[index + 1]
|
|
116
|
+
const previous = this.els.find((_, index, array) => array[index + 1]?.nativeElement === element);
|
|
117
117
|
previous?.nativeElement.focus();
|
|
118
118
|
}
|
|
119
119
|
onElementKeyDownArrowRight(element) {
|
|
@@ -166,7 +166,7 @@ class TuiPagination {
|
|
|
166
166
|
return !this.itemsFit && index > this.maxHalfLength;
|
|
167
167
|
}
|
|
168
168
|
tryChangeTo(direction) {
|
|
169
|
-
this.updateIndex(tuiClamp(this.index +
|
|
169
|
+
this.updateIndex(tuiClamp(this.index + (direction === 'right' ? 1 : -1), 0, this.lastIndex));
|
|
170
170
|
}
|
|
171
171
|
focusActive() {
|
|
172
172
|
const { nativeFocusableElement } = this;
|
|
@@ -182,12 +182,12 @@ class TuiPagination {
|
|
|
182
182
|
this.indexChange.emit(index);
|
|
183
183
|
}
|
|
184
184
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiPagination, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
185
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiPagination, isStandalone: true, selector: "tui-pagination", inputs: { length: "length", focusable: "focusable", size: "size", disabled: "disabled", activePadding: "activePadding", sidePadding: "sidePadding", content: "content", index: "index" }, outputs: { indexChange: "indexChange" }, viewQueries: [{ propertyName: "els", predicate: ["element"], descendants: true, read: ElementRef }], ngImport: i0, template: "<div class=\"t-content\">\n <ng-container *ngIf=\"size !== 's'; else smallButtons\">\n <ng-container *ngIf=\"texts$ | async as texts\">\n <button\n appearance=\"flat\"\n tabIndex=\"-1\"\n tuiIconButton\n type=\"button\"\n class=\"t-button\"\n [disabled]=\"arrowIsDisabledLeft\"\n [iconStart]=\"icons.decrement\"\n [size]=\"buttonSize\"\n (click)=\"onArrowClick('left')\"\n (mousedown.silent.prevent)=\"(0)\"\n >\n {{ texts[0] }}\n </button>\n <ng-container *tuiRepeatTimes=\"let elementIndex of elementsLength\">\n <ng-container *tuiLet=\"getItemIndexByElementIndex(elementIndex) as index\">\n <button\n *ngIf=\"index !== null; else dotsTemplate\"\n #element\n automation-id=\"tui-pagination__element\"\n tuiButton\n type=\"button\"\n class=\"t-button\"\n [appearance]=\"getElementMode(index)\"\n [disabled]=\"disabled\"\n [size]=\"buttonSize\"\n [tabIndex]=\"elementIsFocusable(index) ? 0 : -1\"\n (click)=\"onElementClick(index)\"\n (keydown.arrowLeft.prevent)=\"onElementKeyDownArrowLeft(element)\"\n (keydown.arrowRight.prevent)=\"onElementKeyDownArrowRight(element)\"\n >\n <ng-container *polymorpheusOutlet=\"content || index + 1 as text; context: {$implicit: index}\">\n {{ text }}\n </ng-container>\n </button>\n </ng-container>\n </ng-container>\n <button\n appearance=\"flat\"\n tabIndex=\"-1\"\n tuiIconButton\n type=\"button\"\n class=\"t-button\"\n [disabled]=\"arrowIsDisabledRight\"\n [iconStart]=\"icons.increment\"\n [size]=\"buttonSize\"\n (click)=\"onArrowClick('right')\"\n (mousedown.silent.prevent)=\"(0)\"\n >\n {{ texts[1] }}\n </button>\n </ng-container>\n </ng-container>\n <ng-template #smallButtons>\n <button\n *tuiRepeatTimes=\"let indexItem of length\"\n #element\n tuiButton\n type=\"button\"\n class=\"t-button t-button_small\"\n [appearance]=\"getElementMode(indexItem)\"\n [disabled]=\"disabled\"\n [tabIndex]=\"elementIsFocusable(indexItem) ? 0 : -1\"\n (click)=\"onElementClick(indexItem)\"\n (keydown.arrowLeft.prevent)=\"onElementKeyDownArrowLeft(element)\"\n (keydown.arrowRight.prevent)=\"onElementKeyDownArrowRight(element)\"\n ></button>\n </ng-template>\n <ng-template #dotsTemplate>\n <div\n automation-id=\"tui-pagination__element\"\n class=\"t-dots\"\n ></div>\n </ng-template>\n</div>\n", styles: [":host{display:block;font:var(--tui-font-text-s);color:var(--tui-text-primary);text-align:center}.t-content{display:flex;justify-content:center}.t-button{width:var(--tui-height-s);margin:0 .125rem;flex-shrink:0}.t-button[data-size=xs]{width:var(--tui-height-xs)}.t-button.t-button.t-button_small{width:.5rem;height:.5rem;padding:0;margin:0}.t-button.t-button.t-button_small:not(:first-child){margin-left:.5rem}.t-dots{width:var(--tui-height-s);height:var(--tui-height-s);line-height:var(--tui-height-s);margin:0 .125rem;flex-shrink:0;color:var(--tui-text-
|
|
185
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiPagination, isStandalone: true, selector: "tui-pagination", inputs: { length: "length", focusable: "focusable", size: "size", disabled: "disabled", activePadding: "activePadding", sidePadding: "sidePadding", content: "content", index: "index" }, outputs: { indexChange: "indexChange" }, viewQueries: [{ propertyName: "els", predicate: ["element"], descendants: true, read: ElementRef }], ngImport: i0, template: "<div class=\"t-content\">\n <ng-container *ngIf=\"size !== 's'; else smallButtons\">\n <ng-container *ngIf=\"texts$ | async as texts\">\n <button\n appearance=\"flat\"\n tabIndex=\"-1\"\n tuiIconButton\n type=\"button\"\n class=\"t-button\"\n [disabled]=\"arrowIsDisabledLeft\"\n [iconStart]=\"icons.decrement\"\n [size]=\"buttonSize\"\n (click)=\"onArrowClick('left')\"\n (mousedown.silent.prevent)=\"(0)\"\n >\n {{ texts[0] }}\n </button>\n <ng-container *tuiRepeatTimes=\"let elementIndex of elementsLength\">\n <ng-container *tuiLet=\"getItemIndexByElementIndex(elementIndex) as index\">\n <button\n *ngIf=\"index !== null; else dotsTemplate\"\n #element\n automation-id=\"tui-pagination__element\"\n tuiButton\n type=\"button\"\n class=\"t-button\"\n [appearance]=\"getElementMode(index)\"\n [disabled]=\"disabled\"\n [size]=\"buttonSize\"\n [tabIndex]=\"elementIsFocusable(index) ? 0 : -1\"\n (click)=\"onElementClick(index)\"\n (keydown.arrowLeft.prevent)=\"onElementKeyDownArrowLeft(element)\"\n (keydown.arrowRight.prevent)=\"onElementKeyDownArrowRight(element)\"\n >\n <ng-container *polymorpheusOutlet=\"content || index + 1 as text; context: {$implicit: index}\">\n {{ text }}\n </ng-container>\n </button>\n </ng-container>\n </ng-container>\n <button\n appearance=\"flat\"\n tabIndex=\"-1\"\n tuiIconButton\n type=\"button\"\n class=\"t-button\"\n [disabled]=\"arrowIsDisabledRight\"\n [iconStart]=\"icons.increment\"\n [size]=\"buttonSize\"\n (click)=\"onArrowClick('right')\"\n (mousedown.silent.prevent)=\"(0)\"\n >\n {{ texts[1] }}\n </button>\n </ng-container>\n </ng-container>\n <ng-template #smallButtons>\n <button\n *tuiRepeatTimes=\"let indexItem of length\"\n #element\n tuiButton\n type=\"button\"\n class=\"t-button t-button_small\"\n [appearance]=\"getElementMode(indexItem)\"\n [disabled]=\"disabled\"\n [tabIndex]=\"elementIsFocusable(indexItem) ? 0 : -1\"\n (click)=\"onElementClick(indexItem)\"\n (keydown.arrowLeft.prevent)=\"onElementKeyDownArrowLeft(element)\"\n (keydown.arrowRight.prevent)=\"onElementKeyDownArrowRight(element)\"\n ></button>\n </ng-template>\n <ng-template #dotsTemplate>\n <div\n automation-id=\"tui-pagination__element\"\n class=\"t-dots\"\n [class.t-dots_small]=\"size === 'm'\"\n ></div>\n </ng-template>\n</div>\n", styles: [":host{display:block;font:var(--tui-font-text-s);color:var(--tui-text-primary);text-align:center}.t-content{display:flex;justify-content:center}.t-button{width:var(--tui-height-s);margin:0 .125rem;flex-shrink:0}.t-button:first-child{margin-inline-start:0}.t-button:last-child{margin-inline-end:0}.t-button[data-size=xs]{width:var(--tui-height-xs)}.t-button.t-button.t-button_small{width:.5rem;height:.5rem;padding:0;margin:0}.t-button.t-button.t-button_small:not(:first-child){margin-left:.5rem}.t-dots{width:var(--tui-height-s);height:var(--tui-height-s);line-height:var(--tui-height-s);margin:0 .125rem;flex-shrink:0;color:var(--tui-text-action);text-align:center;cursor:default}.t-dots_small{width:var(--tui-height-xs);height:var(--tui-height-xs);line-height:var(--tui-height-xs)}.t-dots:before{content:\"\\2026\"}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "directive", type: TuiButton, selector: "a[tuiButton],button[tuiButton],a[tuiIconButton],button[tuiIconButton]", inputs: ["size"] }, { kind: "directive", type: TuiRepeatTimes, selector: "[tuiRepeatTimes][tuiRepeatTimesOf]", inputs: ["tuiRepeatTimesOf"] }, { kind: "directive", type: TuiLet, selector: "[tuiLet]", inputs: ["tuiLet"] }, { kind: "directive", type: PolymorpheusOutlet, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
186
186
|
}
|
|
187
187
|
export { TuiPagination };
|
|
188
188
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiPagination, decorators: [{
|
|
189
189
|
type: Component,
|
|
190
|
-
args: [{ standalone: true, selector: 'tui-pagination', imports: [NgIf, AsyncPipe, TuiButton, TuiRepeatTimes, TuiLet, PolymorpheusOutlet], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"t-content\">\n <ng-container *ngIf=\"size !== 's'; else smallButtons\">\n <ng-container *ngIf=\"texts$ | async as texts\">\n <button\n appearance=\"flat\"\n tabIndex=\"-1\"\n tuiIconButton\n type=\"button\"\n class=\"t-button\"\n [disabled]=\"arrowIsDisabledLeft\"\n [iconStart]=\"icons.decrement\"\n [size]=\"buttonSize\"\n (click)=\"onArrowClick('left')\"\n (mousedown.silent.prevent)=\"(0)\"\n >\n {{ texts[0] }}\n </button>\n <ng-container *tuiRepeatTimes=\"let elementIndex of elementsLength\">\n <ng-container *tuiLet=\"getItemIndexByElementIndex(elementIndex) as index\">\n <button\n *ngIf=\"index !== null; else dotsTemplate\"\n #element\n automation-id=\"tui-pagination__element\"\n tuiButton\n type=\"button\"\n class=\"t-button\"\n [appearance]=\"getElementMode(index)\"\n [disabled]=\"disabled\"\n [size]=\"buttonSize\"\n [tabIndex]=\"elementIsFocusable(index) ? 0 : -1\"\n (click)=\"onElementClick(index)\"\n (keydown.arrowLeft.prevent)=\"onElementKeyDownArrowLeft(element)\"\n (keydown.arrowRight.prevent)=\"onElementKeyDownArrowRight(element)\"\n >\n <ng-container *polymorpheusOutlet=\"content || index + 1 as text; context: {$implicit: index}\">\n {{ text }}\n </ng-container>\n </button>\n </ng-container>\n </ng-container>\n <button\n appearance=\"flat\"\n tabIndex=\"-1\"\n tuiIconButton\n type=\"button\"\n class=\"t-button\"\n [disabled]=\"arrowIsDisabledRight\"\n [iconStart]=\"icons.increment\"\n [size]=\"buttonSize\"\n (click)=\"onArrowClick('right')\"\n (mousedown.silent.prevent)=\"(0)\"\n >\n {{ texts[1] }}\n </button>\n </ng-container>\n </ng-container>\n <ng-template #smallButtons>\n <button\n *tuiRepeatTimes=\"let indexItem of length\"\n #element\n tuiButton\n type=\"button\"\n class=\"t-button t-button_small\"\n [appearance]=\"getElementMode(indexItem)\"\n [disabled]=\"disabled\"\n [tabIndex]=\"elementIsFocusable(indexItem) ? 0 : -1\"\n (click)=\"onElementClick(indexItem)\"\n (keydown.arrowLeft.prevent)=\"onElementKeyDownArrowLeft(element)\"\n (keydown.arrowRight.prevent)=\"onElementKeyDownArrowRight(element)\"\n ></button>\n </ng-template>\n <ng-template #dotsTemplate>\n <div\n automation-id=\"tui-pagination__element\"\n class=\"t-dots\"\n ></div>\n </ng-template>\n</div>\n", styles: [":host{display:block;font:var(--tui-font-text-s);color:var(--tui-text-primary);text-align:center}.t-content{display:flex;justify-content:center}.t-button{width:var(--tui-height-s);margin:0 .125rem;flex-shrink:0}.t-button[data-size=xs]{width:var(--tui-height-xs)}.t-button.t-button.t-button_small{width:.5rem;height:.5rem;padding:0;margin:0}.t-button.t-button.t-button_small:not(:first-child){margin-left:.5rem}.t-dots{width:var(--tui-height-s);height:var(--tui-height-s);line-height:var(--tui-height-s);margin:0 .125rem;flex-shrink:0;color:var(--tui-text-
|
|
190
|
+
args: [{ standalone: true, selector: 'tui-pagination', imports: [NgIf, AsyncPipe, TuiButton, TuiRepeatTimes, TuiLet, PolymorpheusOutlet], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"t-content\">\n <ng-container *ngIf=\"size !== 's'; else smallButtons\">\n <ng-container *ngIf=\"texts$ | async as texts\">\n <button\n appearance=\"flat\"\n tabIndex=\"-1\"\n tuiIconButton\n type=\"button\"\n class=\"t-button\"\n [disabled]=\"arrowIsDisabledLeft\"\n [iconStart]=\"icons.decrement\"\n [size]=\"buttonSize\"\n (click)=\"onArrowClick('left')\"\n (mousedown.silent.prevent)=\"(0)\"\n >\n {{ texts[0] }}\n </button>\n <ng-container *tuiRepeatTimes=\"let elementIndex of elementsLength\">\n <ng-container *tuiLet=\"getItemIndexByElementIndex(elementIndex) as index\">\n <button\n *ngIf=\"index !== null; else dotsTemplate\"\n #element\n automation-id=\"tui-pagination__element\"\n tuiButton\n type=\"button\"\n class=\"t-button\"\n [appearance]=\"getElementMode(index)\"\n [disabled]=\"disabled\"\n [size]=\"buttonSize\"\n [tabIndex]=\"elementIsFocusable(index) ? 0 : -1\"\n (click)=\"onElementClick(index)\"\n (keydown.arrowLeft.prevent)=\"onElementKeyDownArrowLeft(element)\"\n (keydown.arrowRight.prevent)=\"onElementKeyDownArrowRight(element)\"\n >\n <ng-container *polymorpheusOutlet=\"content || index + 1 as text; context: {$implicit: index}\">\n {{ text }}\n </ng-container>\n </button>\n </ng-container>\n </ng-container>\n <button\n appearance=\"flat\"\n tabIndex=\"-1\"\n tuiIconButton\n type=\"button\"\n class=\"t-button\"\n [disabled]=\"arrowIsDisabledRight\"\n [iconStart]=\"icons.increment\"\n [size]=\"buttonSize\"\n (click)=\"onArrowClick('right')\"\n (mousedown.silent.prevent)=\"(0)\"\n >\n {{ texts[1] }}\n </button>\n </ng-container>\n </ng-container>\n <ng-template #smallButtons>\n <button\n *tuiRepeatTimes=\"let indexItem of length\"\n #element\n tuiButton\n type=\"button\"\n class=\"t-button t-button_small\"\n [appearance]=\"getElementMode(indexItem)\"\n [disabled]=\"disabled\"\n [tabIndex]=\"elementIsFocusable(indexItem) ? 0 : -1\"\n (click)=\"onElementClick(indexItem)\"\n (keydown.arrowLeft.prevent)=\"onElementKeyDownArrowLeft(element)\"\n (keydown.arrowRight.prevent)=\"onElementKeyDownArrowRight(element)\"\n ></button>\n </ng-template>\n <ng-template #dotsTemplate>\n <div\n automation-id=\"tui-pagination__element\"\n class=\"t-dots\"\n [class.t-dots_small]=\"size === 'm'\"\n ></div>\n </ng-template>\n</div>\n", styles: [":host{display:block;font:var(--tui-font-text-s);color:var(--tui-text-primary);text-align:center}.t-content{display:flex;justify-content:center}.t-button{width:var(--tui-height-s);margin:0 .125rem;flex-shrink:0}.t-button:first-child{margin-inline-start:0}.t-button:last-child{margin-inline-end:0}.t-button[data-size=xs]{width:var(--tui-height-xs)}.t-button.t-button.t-button_small{width:.5rem;height:.5rem;padding:0;margin:0}.t-button.t-button.t-button_small:not(:first-child){margin-left:.5rem}.t-dots{width:var(--tui-height-s);height:var(--tui-height-s);line-height:var(--tui-height-s);margin:0 .125rem;flex-shrink:0;color:var(--tui-text-action);text-align:center;cursor:default}.t-dots_small{width:var(--tui-height-xs);height:var(--tui-height-xs);line-height:var(--tui-height-xs)}.t-dots:before{content:\"\\2026\"}\n"] }]
|
|
191
191
|
}], propDecorators: { els: [{
|
|
192
192
|
type: ViewChildren,
|
|
193
193
|
args: ['element', { read: ElementRef }]
|
|
@@ -210,12 +210,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
210
210
|
}], indexChange: [{
|
|
211
211
|
type: Output
|
|
212
212
|
}] } });
|
|
213
|
-
function tuiHorizontalDirectionToNumber(direction) {
|
|
214
|
-
switch (direction) {
|
|
215
|
-
case 'left':
|
|
216
|
-
return -1;
|
|
217
|
-
case 'right':
|
|
218
|
-
return 1;
|
|
219
|
-
}
|
|
220
|
-
}
|
|
221
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9raXQvY29tcG9uZW50cy9wYWdpbmF0aW9uL3BhZ2luYXRpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2l0L2NvbXBvbmVudHMvcGFnaW5hdGlvbi9wYWdpbmF0aW9uLnRlbXBsYXRlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxJQUFJLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUVoRCxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxFQUNOLFlBQVksR0FDZixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDcEQsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQ3BELE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSx1Q0FBdUMsQ0FBQztBQUVyRSxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUMvRCxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFDbEQsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGtDQUFrQyxDQUFDO0FBQzNELE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQU9yRCxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUUxRCxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQzs7QUFFMUQsTUFBTSxXQUFXLEdBQUcsQ0FBQyxDQUFDO0FBQ3RCLE1BQU0sa0JB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RSxTQUFTLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxrQkFBa0IsQ0FBQyxtQkFHaEUsdUJBQXVCLENBQUMsTUFBTTs4QkFJOUIsR0FBRztzQkFEbkIsWUFBWTt1QkFBQyxTQUFTLEVBQUUsRUFBQyxJQUFJLEVBQUUsVUFBVSxFQUFDO2dCQVNwQyxNQUFNO3NCQURaLEtBQUs7Z0JBSUMsU0FBUztzQkFEZixLQUFLO2dCQUlDLElBQUk7c0JBRFYsS0FBSztnQkFJVSxRQUFRO3NCQUR2QixLQUFLO2dCQU9DLGFBQWE7c0JBRG5CLEtBQUs7Z0JBT0MsV0FBVztzQkFEakIsS0FBSztnQkFPQyxPQUFPO3NCQURiLEtBQUs7Z0JBT0MsS0FBSztzQkFEWCxLQUFLO2dCQUlVLFdBQVc7c0JBRDFCLE1BQU07O0FBZ05YLFNBQVMsOEJBQThCLENBQUMsU0FBaUM7SUFDckUsUUFBUSxTQUFTLEVBQUU7UUFDZixLQUFLLE1BQU07WUFDUCxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBQ2QsS0FBSyxPQUFPO1lBQ1IsT0FBTyxDQUFDLENBQUM7S0FDaEI7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBc3luY1BpcGUsIE5nSWZ9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgdHlwZSB7UXVlcnlMaXN0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIGluamVjdCxcbiAgICBJbnB1dCxcbiAgICBPdXRwdXQsXG4gICAgVmlld0NoaWxkcmVuLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7RU1QVFlfUVVFUll9IGZyb20gJ0B0YWlnYS11aS9jZGsvY29uc3RhbnRzJztcbmltcG9ydCB7VHVpTGV0fSBmcm9tICdAdGFpZ2EtdWkvY2RrL2RpcmVjdGl2ZXMvbGV0JztcbmltcG9ydCB7VHVpUmVwZWF0VGltZXN9IGZyb20gJ0B0YWlnYS11aS9jZGsvZGlyZWN0aXZlcy9yZXBlYXQtdGltZXMnO1xuaW1wb3J0IHR5cGUge1R1aUNvbnRleHR9IGZyb20gJ0B0YWlnYS11aS9jZGsvdHlwZXMnO1xuaW1wb3J0IHt0dWlJbmplY3RFbGVtZW50fSBmcm9tICdAdGFpZ2EtdWkvY2RrL3V0aWxzL2RvbSc7XG5pbXBvcnQge3R1aUlzTmF0aXZlRm9jdXNlZElufSBmcm9tICdAdGFpZ2EtdWkvY2RrL3V0aWxzL2ZvY3VzJztcbmltcG9ydCB7dHVpQ2xhbXB9IGZyb20gJ0B0YWlnYS11aS9jZGsvdXRpbHMvbWF0aCc7XG5pbXBvcnQge1R1aUJ1dHRvbn0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvY29tcG9uZW50cy9idXR0b24nO1xuaW1wb3J0IHtUVUlfU1BJTl9JQ09OU30gZnJvbSAnQHRhaWdhLXVpL2NvcmUvdG9rZW5zJztcbmltcG9ydCB0eXBlIHtcbiAgICBUdWlIb3Jpem9udGFsRGlyZWN0aW9uLFxuICAgIFR1aVNpemVMLFxuICAgIFR1aVNpemVTLFxuICAgIFR1aVNpemVYUyxcbn0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvdHlwZXMnO1xuaW1wb3J0IHtUVUlfUEFHSU5BVElPTl9URVhUU30gZnJvbSAnQHRhaWdhLXVpL2tpdC90b2tlbnMnO1xuaW1wb3J0IHR5cGUge1BvbHltb3JwaGV1c0NvbnRlbnR9IGZyb20gJ0B0YWlnYS11aS9wb2x5bW9ycGhldXMnO1xuaW1wb3J0IHtQb2x5bW9ycGhldXNPdXRsZXR9IGZyb20gJ0B0YWlnYS11aS9wb2x5bW9ycGhldXMnO1xuXG5jb25zdCBET1RTX0xFTkdUSCA9IDE7XG5jb25zdCBBQ1RJVkVfSVRFTV9MRU5HVEggPSAxO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAndHVpLXBhZ2luYXRpb24nLFxuICAgIGltcG9ydHM6IFtOZ0lmLCBBc3luY1BpcGUsIFR1aUJ1dHRvbiwgVHVpUmVwZWF0VGltZXMsIFR1aUxldCwgUG9seW1vcnBoZXVzT3V0bGV0XSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vcGFnaW5hdGlvbi50ZW1wbGF0ZS5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9wYWdpbmF0aW9uLnN0eWxlLmxlc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgVHVpUGFnaW5hdGlvbiB7XG4gICAgQFZpZXdDaGlsZHJlbignZWxlbWVudCcsIHtyZWFkOiBFbGVtZW50UmVmfSlcbiAgICBwcml2YXRlIHJlYWRvbmx5IGVsczogUXVlcnlMaXN0PEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+PiA9IEVNUFRZX1FVRVJZO1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBlbCA9IHR1aUluamVjdEVsZW1lbnQoKTtcblxuICAgIHByb3RlY3RlZCByZWFkb25seSB0ZXh0cyQgPSBpbmplY3QoVFVJX1BBR0lOQVRJT05fVEVYVFMpO1xuICAgIHByb3RlY3RlZCByZWFkb25seSBpY29ucyA9IGluamVjdChUVUlfU1BJTl9JQ09OUyk7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBsZW5ndGggPSAxO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZm9jdXNhYmxlID0gdHJ1ZTtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNpemU6IFR1aVNpemVMIHwgVHVpU2l6ZVMgPSAnbCc7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyByZWFkb25seSBkaXNhYmxlZCA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogQW1vdW50IG9mIHZpc2libGUgcGFnZXMgYXJvdW5kIGFjdGl2ZSBwYWdlXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgYWN0aXZlUGFkZGluZyA9IDE7XG5cbiAgICAvKipcbiAgICAgKiBBbW91bnQgb2YgdmlzaWJsZSBwYWdlcyBhdCB0aGUgZWRnZXNcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzaWRlUGFkZGluZyA9IDE7XG5cbiAgICAvKipcbiAgICAgKiBDdXN0b21pemF0aW9uIGZvciBwYWdlIG51bWJlciBkaXNwbGF5LlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGNvbnRlbnQ6IFBvbHltb3JwaGV1c0NvbnRlbnQ8VHVpQ29udGV4dDxudW1iZXI+PjtcblxuICAgIC8qKlxuICAgICAqIEFjdGl2ZSBwYWdlIGluZGV4XG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgaW5kZXggPSAwO1xuXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIHJlYWRvbmx5IGluZGV4Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG5cbiAgICBwdWJsaWMgZ2V0IG5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQoKTogSFRNTEVsZW1lbnQgfCBudWxsIHtcbiAgICAgICAgaWYgKHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IGFjdGl2ZUVsZW1lbnRJbmRleCA9IDA7XG4gICAgICAgIGNvbnN0IHtlbGVtZW50c0xlbmd0aH0gPSB0aGlzO1xuXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZWxlbWVudHNMZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgY29uc3QgaXRlbUluZGV4ID0gdGhpcy5nZXRJdGVtSW5kZXhCeUVsZW1lbnRJbmRleChpKTtcblxuICAgICAgICAgICAgaWYgKGl0ZW1JbmRleCkge1xuICAgICAgICAgICAgICAgIGFjdGl2ZUVsZW1lbnRJbmRleCsrO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoaXRlbUluZGV4ID09PSB0aGlzLmluZGV4KSB7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgdGhpcy5lbHMuZmluZCgoXywgaW5kZXgpID0+IGluZGV4ID09PSBhY3RpdmVFbGVtZW50SW5kZXgpPy5uYXRpdmVFbGVtZW50ID8/XG4gICAgICAgICAgICBudWxsXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBmb2N1c2VkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdHVpSXNOYXRpdmVGb2N1c2VkSW4odGhpcy5lbCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBhcnJvd0lzRGlzYWJsZWRMZWZ0KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5pbmRleCA9PT0gMDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGFycm93SXNEaXNhYmxlZFJpZ2h0KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5yZXZlcnNlSW5kZXggPT09IDA7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogTnVtYmVyIG9mIGl0ZW1zIGluIGEgY29udGFpbmVyLlxuICAgICAqL1xuICAgIHByb3RlY3RlZCBnZXQgZWxlbWVudHNMZW5ndGgoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXRlbXNGaXQgPyB0aGlzLmxlbmd0aCA6IHRoaXMubWF4RWxlbWVudHNMZW5ndGg7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldCBidXR0b25TaXplKCk6IFR1aVNpemVYUyB7XG4gICAgICAgIHJldHVybiB0aGlzLnNpemUgPT09ICdtJyA/ICd4cycgOiAncyc7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGVsZW1lbnRJc0ZvY3VzYWJsZShpbmRleDogbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmluZGV4ID09PSBpbmRleCAmJiAhdGhpcy5mb2N1c2VkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldCBpbmRleCBieSBlbGVtZW50IGluZGV4XG4gICAgICogQHBhcmFtIGVsZW1lbnRJbmRleFxuICAgICAqIEByZXR1cm5zIGluZGV4IG9yIG51bGwgKGZvciAn4oCmJylcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgZ2V0SXRlbUluZGV4QnlFbGVtZW50SW5kZXgoZWxlbWVudEluZGV4OiBudW1iZXIpOiBudW1iZXIgfCBudWxsIHtcbiAgICAgICAgaWYgKHRoaXMuc2l6ZSA9PT0gJ3MnKSB7XG4gICAgICAgICAgICByZXR1cm4gZWxlbWVudEluZGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGVsZW1lbnRJbmRleCA8IHRoaXMuc2lkZVBhZGRpbmcpIHtcbiAgICAgICAgICAgIHJldHVybiBlbGVtZW50SW5kZXg7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZWxlbWVudEluZGV4ID09PSB0aGlzLnNpZGVQYWRkaW5nICYmIHRoaXMuaGFzQ29sbGFwc2VkSXRlbXModGhpcy5pbmRleCkpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcmV2ZXJzZUVsZW1lbnRJbmRleCA9IHRoaXMubGFzdEVsZW1lbnRJbmRleCAtIGVsZW1lbnRJbmRleDtcblxuICAgICAgICBpZiAoXG4gICAgICAgICAgICByZXZlcnNlRWxlbWVudEluZGV4ID09PSB0aGlzLnNpZGVQYWRkaW5nICYmXG4gICAgICAgICAgICB0aGlzLmhhc0NvbGxhcHNlZEl0ZW1zKHRoaXMucmV2ZXJzZUluZGV4KVxuICAgICAgICApIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHJldmVyc2VFbGVtZW50SW5kZXggPCB0aGlzLnNpZGVQYWRkaW5nKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5sYXN0SW5kZXggLSByZXZlcnNlRWxlbWVudEluZGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgY29tcHV0ZWRJbmRleCA9IHRoaXMuaW5kZXggLSB0aGlzLm1heEhhbGZMZW5ndGggKyBlbGVtZW50SW5kZXg7XG5cbiAgICAgICAgcmV0dXJuIHR1aUNsYW1wKFxuICAgICAgICAgICAgY29tcHV0ZWRJbmRleCxcbiAgICAgICAgICAgIGVsZW1lbnRJbmRleCxcbiAgICAgICAgICAgIHRoaXMubGFzdEluZGV4IC0gcmV2ZXJzZUVsZW1lbnRJbmRleCxcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0RWxlbWVudE1vZGUoaW5kZXg6IG51bWJlcik6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IGZhbGxiYWNrID0gdGhpcy5zaXplID09PSAncycgPyAnc2Vjb25kYXJ5JyA6ICdmbGF0JztcblxuICAgICAgICByZXR1cm4gdGhpcy5pbmRleCA9PT0gaW5kZXggPyAncHJpbWFyeScgOiBmYWxsYmFjaztcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb25FbGVtZW50Q2xpY2soaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLnVwZGF0ZUluZGV4KGluZGV4KTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb25FbGVtZW50S2V5RG93bkFycm93TGVmdChlbGVtZW50OiBIVE1MRWxlbWVudCk6IHZvaWQge1xuICAgICAgICBpZiAoZWxlbWVudCA9PT0gdGhpcy5lbHMuZmlyc3QubmF0aXZlRWxlbWVudCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcHJldmlvdXMgPSB0aGlzLmVscy5maW5kKFxuICAgICAgICAgICAgKF8sIGluZGV4LCBhcnJheSkgPT4gYXJyYXlbaW5kZXggKyAxXS5uYXRpdmVFbGVtZW50ID09PSBlbGVtZW50LFxuICAgICAgICApO1xuXG4gICAgICAgIHByZXZpb3VzPy5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG9uRWxlbWVudEtleURvd25BcnJvd1JpZ2h0KGVsZW1lbnQ6IEhUTUxFbGVtZW50KTogdm9pZCB7XG4gICAgICAgIGlmIChlbGVtZW50ID09PSB0aGlzLmVscy5sYXN0Lm5hdGl2ZUVsZW1lbnQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IG5leHQgPSB0aGlzLmVscy5maW5kKFxuICAgICAgICAgICAgKF8sIGluZGV4LCBhcnJheSkgPT4gYXJyYXlbaW5kZXggLSAxXT8ubmF0aXZlRWxlbWVudCA9PT0gZWxlbWVudCxcbiAgICAgICAgKTtcblxuICAgICAgICBuZXh0Py5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG9uQXJyb3dDbGljayhkaXJlY3Rpb246IFR1aUhvcml6b250YWxEaXJlY3Rpb24pOiB2b2lkIHtcbiAgICAgICAgdGhpcy50cnlDaGFuZ2VUbyhkaXJlY3Rpb24pO1xuICAgICAgICB0aGlzLmZvY3VzQWN0aXZlKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQWN0aXZlIGluZGV4IGZyb20gdGhlIGVuZFxuICAgICAqL1xuICAgIHByaXZhdGUgZ2V0IHJldmVyc2VJbmRleCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5sYXN0SW5kZXggLSB0aGlzLmluZGV4O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE1heCBudW1iZXIgb2YgZWxlbWVudHMgaW4gaGFsZiAobm90IGNvdW50aW5nIHRoZSBtaWRkbGUgb25lKS5cbiAgICAgKi9cbiAgICBwcml2YXRlIGdldCBtYXhIYWxmTGVuZ3RoKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLnNpZGVQYWRkaW5nICsgRE9UU19MRU5HVEggKyB0aGlzLmFjdGl2ZVBhZGRpbmc7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSXMgdGhlcmUgJy4uLicgYW55d2hlcmVcbiAgICAgKi9cbiAgICBwcml2YXRlIGdldCBpdGVtc0ZpdCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubGVuZ3RoIDw9IHRoaXMubWF4RWxlbWVudHNMZW5ndGg7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogTWF4IG51bWJlciBvZiBlbGVtZW50c1xuICAgICAqL1xuICAgIHByaXZhdGUgZ2V0IG1heEVsZW1lbnRzTGVuZ3RoKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLm1heEhhbGZMZW5ndGggKiAyICsgQUNUSVZFX0lURU1fTEVOR1RIO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0IGxhc3RJbmRleCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5sZW5ndGggLSAxO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0IGxhc3RFbGVtZW50SW5kZXgoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZWxlbWVudHNMZW5ndGggLSAxO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFyZSB0aGVyZSBjb2xsYXBzZWQgaXRlbXMgYXQgdGhhdCBpbmRleFxuICAgICAqIEBwYXJhbSBpbmRleFxuICAgICAqIEByZXR1cm5zIHRoZXJlIGFyZSBjb2xsYXBzZWQgaXRlbXNcbiAgICAgKi9cbiAgICBwcml2YXRlIGhhc0NvbGxhcHNlZEl0ZW1zKGluZGV4OiBudW1iZXIpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICF0aGlzLml0ZW1zRml0ICYmIGluZGV4ID4gdGhpcy5tYXhIYWxmTGVuZ3RoO1xuICAgIH1cblxuICAgIHByaXZhdGUgdHJ5Q2hhbmdlVG8oZGlyZWN0aW9uOiBUdWlIb3Jpem9udGFsRGlyZWN0aW9uKTogdm9pZCB7XG4gICAgICAgIHRoaXMudXBkYXRlSW5kZXgoXG4gICAgICAgICAgICB0dWlDbGFtcChcbiAgICAgICAgICAgICAgICB0aGlzLmluZGV4ICsgdHVpSG9yaXpvbnRhbERpcmVjdGlvblRvTnVtYmVyKGRpcmVjdGlvbiksXG4gICAgICAgICAgICAgICAgMCxcbiAgICAgICAgICAgICAgICB0aGlzLmxhc3RJbmRleCxcbiAgICAgICAgICAgICksXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBmb2N1c0FjdGl2ZSgpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qge25hdGl2ZUZvY3VzYWJsZUVsZW1lbnR9ID0gdGhpcztcblxuICAgICAgICBpZiAobmF0aXZlRm9jdXNhYmxlRWxlbWVudCkge1xuICAgICAgICAgICAgbmF0aXZlRm9jdXNhYmxlRWxlbWVudC5mb2N1cygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVJbmRleChpbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmluZGV4ID09PSBpbmRleCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5pbmRleCA9IGluZGV4O1xuICAgICAgICB0aGlzLmluZGV4Q2hhbmdlLmVtaXQoaW5kZXgpO1xuICAgIH1cbn1cblxuZnVuY3Rpb24gdHVpSG9yaXpvbnRhbERpcmVjdGlvblRvTnVtYmVyKGRpcmVjdGlvbjogVHVpSG9yaXpvbnRhbERpcmVjdGlvbik6IC0xIHwgMSB7XG4gICAgc3dpdGNoIChkaXJlY3Rpb24pIHtcbiAgICAgICAgY2FzZSAnbGVmdCc6XG4gICAgICAgICAgICByZXR1cm4gLTE7XG4gICAgICAgIGNhc2UgJ3JpZ2h0JzpcbiAgICAgICAgICAgIHJldHVybiAxO1xuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJ0LWNvbnRlbnRcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2l6ZSAhPT0gJ3MnOyBlbHNlIHNtYWxsQnV0dG9uc1wiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidGV4dHMkIHwgYXN5bmMgYXMgdGV4dHNcIj5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICBhcHBlYXJhbmNlPVwiZmxhdFwiXG4gICAgICAgICAgICAgICAgdGFiSW5kZXg9XCItMVwiXG4gICAgICAgICAgICAgICAgdHVpSWNvbkJ1dHRvblxuICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwidC1idXR0b25cIlxuICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJhcnJvd0lzRGlzYWJsZWRMZWZ0XCJcbiAgICAgICAgICAgICAgICBbaWNvblN0YXJ0XT1cImljb25zLmRlY3JlbWVudFwiXG4gICAgICAgICAgICAgICAgW3NpemVdPVwiYnV0dG9uU2l6ZVwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uQXJyb3dDbGljaygnbGVmdCcpXCJcbiAgICAgICAgICAgICAgICAobW91c2Vkb3duLnNpbGVudC5wcmV2ZW50KT1cIigwKVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge3sgdGV4dHNbMF0gfX1cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqdHVpUmVwZWF0VGltZXM9XCJsZXQgZWxlbWVudEluZGV4IG9mIGVsZW1lbnRzTGVuZ3RoXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqdHVpTGV0PVwiZ2V0SXRlbUluZGV4QnlFbGVtZW50SW5kZXgoZWxlbWVudEluZGV4KSBhcyBpbmRleFwiPlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImluZGV4ICE9PSBudWxsOyBlbHNlIGRvdHNUZW1wbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAjZWxlbWVudFxuICAgICAgICAgICAgICAgICAgICAgICAgYXV0b21hdGlvbi1pZD1cInR1aS1wYWdpbmF0aW9uX19lbGVtZW50XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHR1aUJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInQtYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthcHBlYXJhbmNlXT1cImdldEVsZW1lbnRNb2RlKGluZGV4KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3NpemVdPVwiYnV0dG9uU2l6ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbdGFiSW5kZXhdPVwiZWxlbWVudElzRm9jdXNhYmxlKGluZGV4KSA/IDAgOiAtMVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25FbGVtZW50Q2xpY2soaW5kZXgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChrZXlkb3duLmFycm93TGVmdC5wcmV2ZW50KT1cIm9uRWxlbWVudEtleURvd25BcnJvd0xlZnQoZWxlbWVudClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGtleWRvd24uYXJyb3dSaWdodC5wcmV2ZW50KT1cIm9uRWxlbWVudEtleURvd25BcnJvd1JpZ2h0KGVsZW1lbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqcG9seW1vcnBoZXVzT3V0bGV0PVwiY29udGVudCB8fCBpbmRleCArIDEgYXMgdGV4dDsgY29udGV4dDogeyRpbXBsaWNpdDogaW5kZXh9XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgdGV4dCB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgYXBwZWFyYW5jZT1cImZsYXRcIlxuICAgICAgICAgICAgICAgIHRhYkluZGV4PVwiLTFcIlxuICAgICAgICAgICAgICAgIHR1aUljb25CdXR0b25cbiAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInQtYnV0dG9uXCJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiYXJyb3dJc0Rpc2FibGVkUmlnaHRcIlxuICAgICAgICAgICAgICAgIFtpY29uU3RhcnRdPVwiaWNvbnMuaW5jcmVtZW50XCJcbiAgICAgICAgICAgICAgICBbc2l6ZV09XCJidXR0b25TaXplXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwib25BcnJvd0NsaWNrKCdyaWdodCcpXCJcbiAgICAgICAgICAgICAgICAobW91c2Vkb3duLnNpbGVudC5wcmV2ZW50KT1cIigwKVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge3sgdGV4dHNbMV0gfX1cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctdGVtcGxhdGUgI3NtYWxsQnV0dG9ucz5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgKnR1aVJlcGVhdFRpbWVzPVwibGV0IGluZGV4SXRlbSBvZiBsZW5ndGhcIlxuICAgICAgICAgICAgI2VsZW1lbnRcbiAgICAgICAgICAgIHR1aUJ1dHRvblxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICBjbGFzcz1cInQtYnV0dG9uIHQtYnV0dG9uX3NtYWxsXCJcbiAgICAgICAgICAgIFthcHBlYXJhbmNlXT1cImdldEVsZW1lbnRNb2RlKGluZGV4SXRlbSlcIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgICAgIFt0YWJJbmRleF09XCJlbGVtZW50SXNGb2N1c2FibGUoaW5kZXhJdGVtKSA/IDAgOiAtMVwiXG4gICAgICAgICAgICAoY2xpY2spPVwib25FbGVtZW50Q2xpY2soaW5kZXhJdGVtKVwiXG4gICAgICAgICAgICAoa2V5ZG93bi5hcnJvd0xlZnQucHJldmVudCk9XCJvbkVsZW1lbnRLZXlEb3duQXJyb3dMZWZ0KGVsZW1lbnQpXCJcbiAgICAgICAgICAgIChrZXlkb3duLmFycm93UmlnaHQucHJldmVudCk9XCJvbkVsZW1lbnRLZXlEb3duQXJyb3dSaWdodChlbGVtZW50KVwiXG4gICAgICAgID48L2J1dHRvbj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICAgIDxuZy10ZW1wbGF0ZSAjZG90c1RlbXBsYXRlPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgICBhdXRvbWF0aW9uLWlkPVwidHVpLXBhZ2luYXRpb25fX2VsZW1lbnRcIlxuICAgICAgICAgICAgY2xhc3M9XCJ0LWRvdHNcIlxuICAgICAgICA+PC9kaXY+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbjwvZGl2PlxuIl19
|
|
213
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9raXQvY29tcG9uZW50cy9wYWdpbmF0aW9uL3BhZ2luYXRpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2l0L2NvbXBvbmVudHMvcGFnaW5hdGlvbi9wYWdpbmF0aW9uLnRlbXBsYXRlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxJQUFJLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUVoRCxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxFQUNOLFlBQVksR0FDZixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDcEQsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQ3BELE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSx1Q0FBdUMsQ0FBQztBQUVyRSxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUMvRCxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFDbEQsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGtDQUFrQyxDQUFDO0FBQzNELE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQU9yRCxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUUxRCxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQzs7QUFFMUQsTUFBTSxXQUFXLEdBQUcsQ0FBQyxDQUFDO0FBQ3RCLE1BQU0sa0JB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LElBQUksWUFDTixnQkFBZ0IsV0FDakIsQ0FBQyxJQUFJLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFLGtCQUFrQixDQUFDLG1CQUdoRSx1QkFBdUIsQ0FBQyxNQUFNOzhCQUk5QixHQUFHO3NCQURuQixZQUFZO3VCQUFDLFNBQVMsRUFBRSxFQUFDLElBQUksRUFBRSxVQUFVLEVBQUM7Z0JBU3BDLE1BQU07c0JBRFosS0FBSztnQkFJQyxTQUFTO3NCQURmLEtBQUs7Z0JBSUMsSUFBSTtzQkFEVixLQUFLO2dCQUlVLFFBQVE7c0JBRHZCLEtBQUs7Z0JBT0MsYUFBYTtzQkFEbkIsS0FBSztnQkFPQyxXQUFXO3NCQURqQixLQUFLO2dCQU9DLE9BQU87c0JBRGIsS0FBSztnQkFPQyxLQUFLO3NCQURYLEtBQUs7Z0JBSVUsV0FBVztzQkFEMUIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QXN5bmNQaXBlLCBOZ0lmfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHR5cGUge1F1ZXJ5TGlzdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBpbmplY3QsXG4gICAgSW5wdXQsXG4gICAgT3V0cHV0LFxuICAgIFZpZXdDaGlsZHJlbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0VNUFRZX1FVRVJZfSBmcm9tICdAdGFpZ2EtdWkvY2RrL2NvbnN0YW50cyc7XG5pbXBvcnQge1R1aUxldH0gZnJvbSAnQHRhaWdhLXVpL2Nkay9kaXJlY3RpdmVzL2xldCc7XG5pbXBvcnQge1R1aVJlcGVhdFRpbWVzfSBmcm9tICdAdGFpZ2EtdWkvY2RrL2RpcmVjdGl2ZXMvcmVwZWF0LXRpbWVzJztcbmltcG9ydCB0eXBlIHtUdWlDb250ZXh0fSBmcm9tICdAdGFpZ2EtdWkvY2RrL3R5cGVzJztcbmltcG9ydCB7dHVpSW5qZWN0RWxlbWVudH0gZnJvbSAnQHRhaWdhLXVpL2Nkay91dGlscy9kb20nO1xuaW1wb3J0IHt0dWlJc05hdGl2ZUZvY3VzZWRJbn0gZnJvbSAnQHRhaWdhLXVpL2Nkay91dGlscy9mb2N1cyc7XG5pbXBvcnQge3R1aUNsYW1wfSBmcm9tICdAdGFpZ2EtdWkvY2RrL3V0aWxzL21hdGgnO1xuaW1wb3J0IHtUdWlCdXR0b259IGZyb20gJ0B0YWlnYS11aS9jb3JlL2NvbXBvbmVudHMvYnV0dG9uJztcbmltcG9ydCB7VFVJX1NQSU5fSUNPTlN9IGZyb20gJ0B0YWlnYS11aS9jb3JlL3Rva2Vucyc7XG5pbXBvcnQgdHlwZSB7XG4gICAgVHVpSG9yaXpvbnRhbERpcmVjdGlvbixcbiAgICBUdWlTaXplTCxcbiAgICBUdWlTaXplUyxcbiAgICBUdWlTaXplWFMsXG59IGZyb20gJ0B0YWlnYS11aS9jb3JlL3R5cGVzJztcbmltcG9ydCB7VFVJX1BBR0lOQVRJT05fVEVYVFN9IGZyb20gJ0B0YWlnYS11aS9raXQvdG9rZW5zJztcbmltcG9ydCB0eXBlIHtQb2x5bW9ycGhldXNDb250ZW50fSBmcm9tICdAdGFpZ2EtdWkvcG9seW1vcnBoZXVzJztcbmltcG9ydCB7UG9seW1vcnBoZXVzT3V0bGV0fSBmcm9tICdAdGFpZ2EtdWkvcG9seW1vcnBoZXVzJztcblxuY29uc3QgRE9UU19MRU5HVEggPSAxO1xuY29uc3QgQUNUSVZFX0lURU1fTEVOR1RIID0gMTtcblxuQENvbXBvbmVudCh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBzZWxlY3RvcjogJ3R1aS1wYWdpbmF0aW9uJyxcbiAgICBpbXBvcnRzOiBbTmdJZiwgQXN5bmNQaXBlLCBUdWlCdXR0b24sIFR1aVJlcGVhdFRpbWVzLCBUdWlMZXQsIFBvbHltb3JwaGV1c091dGxldF0sXG4gICAgdGVtcGxhdGVVcmw6ICcuL3BhZ2luYXRpb24udGVtcGxhdGUuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vcGFnaW5hdGlvbi5zdHlsZS5sZXNzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFR1aVBhZ2luYXRpb24ge1xuICAgIEBWaWV3Q2hpbGRyZW4oJ2VsZW1lbnQnLCB7cmVhZDogRWxlbWVudFJlZn0pXG4gICAgcHJpdmF0ZSByZWFkb25seSBlbHM6IFF1ZXJ5TGlzdDxFbGVtZW50UmVmPEhUTUxFbGVtZW50Pj4gPSBFTVBUWV9RVUVSWTtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgZWwgPSB0dWlJbmplY3RFbGVtZW50KCk7XG5cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgdGV4dHMkID0gaW5qZWN0KFRVSV9QQUdJTkFUSU9OX1RFWFRTKTtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgaWNvbnMgPSBpbmplY3QoVFVJX1NQSU5fSUNPTlMpO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgbGVuZ3RoID0gMTtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGZvY3VzYWJsZSA9IHRydWU7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzaXplOiBUdWlTaXplTCB8IFR1aVNpemVTID0gJ2wnO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgcmVhZG9ubHkgZGlzYWJsZWQgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIEFtb3VudCBvZiB2aXNpYmxlIHBhZ2VzIGFyb3VuZCBhY3RpdmUgcGFnZVxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGFjdGl2ZVBhZGRpbmcgPSAxO1xuXG4gICAgLyoqXG4gICAgICogQW1vdW50IG9mIHZpc2libGUgcGFnZXMgYXQgdGhlIGVkZ2VzXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2lkZVBhZGRpbmcgPSAxO1xuXG4gICAgLyoqXG4gICAgICogQ3VzdG9taXphdGlvbiBmb3IgcGFnZSBudW1iZXIgZGlzcGxheS5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBjb250ZW50OiBQb2x5bW9ycGhldXNDb250ZW50PFR1aUNvbnRleHQ8bnVtYmVyPj47XG5cbiAgICAvKipcbiAgICAgKiBBY3RpdmUgcGFnZSBpbmRleFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGluZGV4ID0gMDtcblxuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyByZWFkb25seSBpbmRleENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuXG4gICAgcHVibGljIGdldCBuYXRpdmVGb2N1c2FibGVFbGVtZW50KCk6IEhUTUxFbGVtZW50IHwgbnVsbCB7XG4gICAgICAgIGlmICh0aGlzLmRpc2FibGVkKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBhY3RpdmVFbGVtZW50SW5kZXggPSAwO1xuICAgICAgICBjb25zdCB7ZWxlbWVudHNMZW5ndGh9ID0gdGhpcztcblxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGVsZW1lbnRzTGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGNvbnN0IGl0ZW1JbmRleCA9IHRoaXMuZ2V0SXRlbUluZGV4QnlFbGVtZW50SW5kZXgoaSk7XG5cbiAgICAgICAgICAgIGlmIChpdGVtSW5kZXgpIHtcbiAgICAgICAgICAgICAgICBhY3RpdmVFbGVtZW50SW5kZXgrKztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKGl0ZW1JbmRleCA9PT0gdGhpcy5pbmRleCkge1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIHRoaXMuZWxzLmZpbmQoKF8sIGluZGV4KSA9PiBpbmRleCA9PT0gYWN0aXZlRWxlbWVudEluZGV4KT8ubmF0aXZlRWxlbWVudCA/P1xuICAgICAgICAgICAgbnVsbFxuICAgICAgICApO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgZm9jdXNlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHR1aUlzTmF0aXZlRm9jdXNlZEluKHRoaXMuZWwpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgYXJyb3dJc0Rpc2FibGVkTGVmdCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaW5kZXggPT09IDA7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBhcnJvd0lzRGlzYWJsZWRSaWdodCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucmV2ZXJzZUluZGV4ID09PSAwO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE51bWJlciBvZiBpdGVtcyBpbiBhIGNvbnRhaW5lci5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgZ2V0IGVsZW1lbnRzTGVuZ3RoKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLml0ZW1zRml0ID8gdGhpcy5sZW5ndGggOiB0aGlzLm1heEVsZW1lbnRzTGVuZ3RoO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgYnV0dG9uU2l6ZSgpOiBUdWlTaXplWFMge1xuICAgICAgICByZXR1cm4gdGhpcy5zaXplID09PSAnbScgPyAneHMnIDogJ3MnO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBlbGVtZW50SXNGb2N1c2FibGUoaW5kZXg6IG51bWJlcik6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5pbmRleCA9PT0gaW5kZXggJiYgIXRoaXMuZm9jdXNlZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXQgaW5kZXggYnkgZWxlbWVudCBpbmRleFxuICAgICAqIEBwYXJhbSBlbGVtZW50SW5kZXhcbiAgICAgKiBAcmV0dXJucyBpbmRleCBvciBudWxsIChmb3IgJ+KApicpXG4gICAgICovXG4gICAgcHJvdGVjdGVkIGdldEl0ZW1JbmRleEJ5RWxlbWVudEluZGV4KGVsZW1lbnRJbmRleDogbnVtYmVyKTogbnVtYmVyIHwgbnVsbCB7XG4gICAgICAgIGlmICh0aGlzLnNpemUgPT09ICdzJykge1xuICAgICAgICAgICAgcmV0dXJuIGVsZW1lbnRJbmRleDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChlbGVtZW50SW5kZXggPCB0aGlzLnNpZGVQYWRkaW5nKSB7XG4gICAgICAgICAgICByZXR1cm4gZWxlbWVudEluZGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGVsZW1lbnRJbmRleCA9PT0gdGhpcy5zaWRlUGFkZGluZyAmJiB0aGlzLmhhc0NvbGxhcHNlZEl0ZW1zKHRoaXMuaW5kZXgpKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHJldmVyc2VFbGVtZW50SW5kZXggPSB0aGlzLmxhc3RFbGVtZW50SW5kZXggLSBlbGVtZW50SW5kZXg7XG5cbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgcmV2ZXJzZUVsZW1lbnRJbmRleCA9PT0gdGhpcy5zaWRlUGFkZGluZyAmJlxuICAgICAgICAgICAgdGhpcy5oYXNDb2xsYXBzZWRJdGVtcyh0aGlzLnJldmVyc2VJbmRleClcbiAgICAgICAgKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChyZXZlcnNlRWxlbWVudEluZGV4IDwgdGhpcy5zaWRlUGFkZGluZykge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubGFzdEluZGV4IC0gcmV2ZXJzZUVsZW1lbnRJbmRleDtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGNvbXB1dGVkSW5kZXggPSB0aGlzLmluZGV4IC0gdGhpcy5tYXhIYWxmTGVuZ3RoICsgZWxlbWVudEluZGV4O1xuXG4gICAgICAgIHJldHVybiB0dWlDbGFtcChcbiAgICAgICAgICAgIGNvbXB1dGVkSW5kZXgsXG4gICAgICAgICAgICBlbGVtZW50SW5kZXgsXG4gICAgICAgICAgICB0aGlzLmxhc3RJbmRleCAtIHJldmVyc2VFbGVtZW50SW5kZXgsXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldEVsZW1lbnRNb2RlKGluZGV4OiBudW1iZXIpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBmYWxsYmFjayA9IHRoaXMuc2l6ZSA9PT0gJ3MnID8gJ3NlY29uZGFyeScgOiAnZmxhdCc7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuaW5kZXggPT09IGluZGV4ID8gJ3ByaW1hcnknIDogZmFsbGJhY2s7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG9uRWxlbWVudENsaWNrKGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy51cGRhdGVJbmRleChpbmRleCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG9uRWxlbWVudEtleURvd25BcnJvd0xlZnQoZWxlbWVudDogSFRNTEVsZW1lbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKGVsZW1lbnQgPT09IHRoaXMuZWxzLmZpcnN0Lm5hdGl2ZUVsZW1lbnQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHByZXZpb3VzID0gdGhpcy5lbHMuZmluZChcbiAgICAgICAgICAgIChfLCBpbmRleCwgYXJyYXkpID0+IGFycmF5W2luZGV4ICsgMV0/Lm5hdGl2ZUVsZW1lbnQgPT09IGVsZW1lbnQsXG4gICAgICAgICk7XG5cbiAgICAgICAgcHJldmlvdXM/Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb25FbGVtZW50S2V5RG93bkFycm93UmlnaHQoZWxlbWVudDogSFRNTEVsZW1lbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKGVsZW1lbnQgPT09IHRoaXMuZWxzLmxhc3QubmF0aXZlRWxlbWVudCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgbmV4dCA9IHRoaXMuZWxzLmZpbmQoXG4gICAgICAgICAgICAoXywgaW5kZXgsIGFycmF5KSA9PiBhcnJheVtpbmRleCAtIDFdPy5uYXRpdmVFbGVtZW50ID09PSBlbGVtZW50LFxuICAgICAgICApO1xuXG4gICAgICAgIG5leHQ/Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb25BcnJvd0NsaWNrKGRpcmVjdGlvbjogVHVpSG9yaXpvbnRhbERpcmVjdGlvbik6IHZvaWQge1xuICAgICAgICB0aGlzLnRyeUNoYW5nZVRvKGRpcmVjdGlvbik7XG4gICAgICAgIHRoaXMuZm9jdXNBY3RpdmUoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBY3RpdmUgaW5kZXggZnJvbSB0aGUgZW5kXG4gICAgICovXG4gICAgcHJpdmF0ZSBnZXQgcmV2ZXJzZUluZGV4KCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLmxhc3RJbmRleCAtIHRoaXMuaW5kZXg7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogTWF4IG51bWJlciBvZiBlbGVtZW50cyBpbiBoYWxmIChub3QgY291bnRpbmcgdGhlIG1pZGRsZSBvbmUpLlxuICAgICAqL1xuICAgIHByaXZhdGUgZ2V0IG1heEhhbGZMZW5ndGgoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2lkZVBhZGRpbmcgKyBET1RTX0xFTkdUSCArIHRoaXMuYWN0aXZlUGFkZGluZztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBJcyB0aGVyZSAnLi4uJyBhbnl3aGVyZVxuICAgICAqL1xuICAgIHByaXZhdGUgZ2V0IGl0ZW1zRml0KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5sZW5ndGggPD0gdGhpcy5tYXhFbGVtZW50c0xlbmd0aDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBNYXggbnVtYmVyIG9mIGVsZW1lbnRzXG4gICAgICovXG4gICAgcHJpdmF0ZSBnZXQgbWF4RWxlbWVudHNMZW5ndGgoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubWF4SGFsZkxlbmd0aCAqIDIgKyBBQ1RJVkVfSVRFTV9MRU5HVEg7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXQgbGFzdEluZGV4KCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLmxlbmd0aCAtIDE7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXQgbGFzdEVsZW1lbnRJbmRleCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5lbGVtZW50c0xlbmd0aCAtIDE7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQXJlIHRoZXJlIGNvbGxhcHNlZCBpdGVtcyBhdCB0aGF0IGluZGV4XG4gICAgICogQHBhcmFtIGluZGV4XG4gICAgICogQHJldHVybnMgdGhlcmUgYXJlIGNvbGxhcHNlZCBpdGVtc1xuICAgICAqL1xuICAgIHByaXZhdGUgaGFzQ29sbGFwc2VkSXRlbXMoaW5kZXg6IG51bWJlcik6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gIXRoaXMuaXRlbXNGaXQgJiYgaW5kZXggPiB0aGlzLm1heEhhbGZMZW5ndGg7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB0cnlDaGFuZ2VUbyhkaXJlY3Rpb246IFR1aUhvcml6b250YWxEaXJlY3Rpb24pOiB2b2lkIHtcbiAgICAgICAgdGhpcy51cGRhdGVJbmRleChcbiAgICAgICAgICAgIHR1aUNsYW1wKHRoaXMuaW5kZXggKyAoZGlyZWN0aW9uID09PSAncmlnaHQnID8gMSA6IC0xKSwgMCwgdGhpcy5sYXN0SW5kZXgpLFxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgZm9jdXNBY3RpdmUoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHtuYXRpdmVGb2N1c2FibGVFbGVtZW50fSA9IHRoaXM7XG5cbiAgICAgICAgaWYgKG5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQpIHtcbiAgICAgICAgICAgIG5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlSW5kZXgoaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5pbmRleCA9PT0gaW5kZXgpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuaW5kZXggPSBpbmRleDtcbiAgICAgICAgdGhpcy5pbmRleENoYW5nZS5lbWl0KGluZGV4KTtcbiAgICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwidC1jb250ZW50XCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNpemUgIT09ICdzJzsgZWxzZSBzbWFsbEJ1dHRvbnNcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInRleHRzJCB8IGFzeW5jIGFzIHRleHRzXCI+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgYXBwZWFyYW5jZT1cImZsYXRcIlxuICAgICAgICAgICAgICAgIHRhYkluZGV4PVwiLTFcIlxuICAgICAgICAgICAgICAgIHR1aUljb25CdXR0b25cbiAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInQtYnV0dG9uXCJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiYXJyb3dJc0Rpc2FibGVkTGVmdFwiXG4gICAgICAgICAgICAgICAgW2ljb25TdGFydF09XCJpY29ucy5kZWNyZW1lbnRcIlxuICAgICAgICAgICAgICAgIFtzaXplXT1cImJ1dHRvblNpemVcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJvbkFycm93Q2xpY2soJ2xlZnQnKVwiXG4gICAgICAgICAgICAgICAgKG1vdXNlZG93bi5zaWxlbnQucHJldmVudCk9XCIoMClcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHt7IHRleHRzWzBdIH19XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKnR1aVJlcGVhdFRpbWVzPVwibGV0IGVsZW1lbnRJbmRleCBvZiBlbGVtZW50c0xlbmd0aFwiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKnR1aUxldD1cImdldEl0ZW1JbmRleEJ5RWxlbWVudEluZGV4KGVsZW1lbnRJbmRleCkgYXMgaW5kZXhcIj5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJpbmRleCAhPT0gbnVsbDsgZWxzZSBkb3RzVGVtcGxhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgI2VsZW1lbnRcbiAgICAgICAgICAgICAgICAgICAgICAgIGF1dG9tYXRpb24taWQ9XCJ0dWktcGFnaW5hdGlvbl9fZWxlbWVudFwiXG4gICAgICAgICAgICAgICAgICAgICAgICB0dWlCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0LWJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXBwZWFyYW5jZV09XCJnZXRFbGVtZW50TW9kZShpbmRleClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtzaXplXT1cImJ1dHRvblNpemVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3RhYkluZGV4XT1cImVsZW1lbnRJc0ZvY3VzYWJsZShpbmRleCkgPyAwIDogLTFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uRWxlbWVudENsaWNrKGluZGV4KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoa2V5ZG93bi5hcnJvd0xlZnQucHJldmVudCk9XCJvbkVsZW1lbnRLZXlEb3duQXJyb3dMZWZ0KGVsZW1lbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChrZXlkb3duLmFycm93UmlnaHQucHJldmVudCk9XCJvbkVsZW1lbnRLZXlEb3duQXJyb3dSaWdodChlbGVtZW50KVwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKnBvbHltb3JwaGV1c091dGxldD1cImNvbnRlbnQgfHwgaW5kZXggKyAxIGFzIHRleHQ7IGNvbnRleHQ6IHskaW1wbGljaXQ6IGluZGV4fVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IHRleHQgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIGFwcGVhcmFuY2U9XCJmbGF0XCJcbiAgICAgICAgICAgICAgICB0YWJJbmRleD1cIi0xXCJcbiAgICAgICAgICAgICAgICB0dWlJY29uQnV0dG9uXG4gICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ0LWJ1dHRvblwiXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImFycm93SXNEaXNhYmxlZFJpZ2h0XCJcbiAgICAgICAgICAgICAgICBbaWNvblN0YXJ0XT1cImljb25zLmluY3JlbWVudFwiXG4gICAgICAgICAgICAgICAgW3NpemVdPVwiYnV0dG9uU2l6ZVwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uQXJyb3dDbGljaygncmlnaHQnKVwiXG4gICAgICAgICAgICAgICAgKG1vdXNlZG93bi5zaWxlbnQucHJldmVudCk9XCIoMClcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHt7IHRleHRzWzFdIH19XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLXRlbXBsYXRlICNzbWFsbEJ1dHRvbnM+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICp0dWlSZXBlYXRUaW1lcz1cImxldCBpbmRleEl0ZW0gb2YgbGVuZ3RoXCJcbiAgICAgICAgICAgICNlbGVtZW50XG4gICAgICAgICAgICB0dWlCdXR0b25cbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgY2xhc3M9XCJ0LWJ1dHRvbiB0LWJ1dHRvbl9zbWFsbFwiXG4gICAgICAgICAgICBbYXBwZWFyYW5jZV09XCJnZXRFbGVtZW50TW9kZShpbmRleEl0ZW0pXCJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgICAgICBbdGFiSW5kZXhdPVwiZWxlbWVudElzRm9jdXNhYmxlKGluZGV4SXRlbSkgPyAwIDogLTFcIlxuICAgICAgICAgICAgKGNsaWNrKT1cIm9uRWxlbWVudENsaWNrKGluZGV4SXRlbSlcIlxuICAgICAgICAgICAgKGtleWRvd24uYXJyb3dMZWZ0LnByZXZlbnQpPVwib25FbGVtZW50S2V5RG93bkFycm93TGVmdChlbGVtZW50KVwiXG4gICAgICAgICAgICAoa2V5ZG93bi5hcnJvd1JpZ2h0LnByZXZlbnQpPVwib25FbGVtZW50S2V5RG93bkFycm93UmlnaHQoZWxlbWVudClcIlxuICAgICAgICA+PC9idXR0b24+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8bmctdGVtcGxhdGUgI2RvdHNUZW1wbGF0ZT5cbiAgICAgICAgPGRpdlxuICAgICAgICAgICAgYXV0b21hdGlvbi1pZD1cInR1aS1wYWdpbmF0aW9uX19lbGVtZW50XCJcbiAgICAgICAgICAgIGNsYXNzPVwidC1kb3RzXCJcbiAgICAgICAgICAgIFtjbGFzcy50LWRvdHNfc21hbGxdPVwic2l6ZSA9PT0gJ20nXCJcbiAgICAgICAgPjwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { AsyncPipe } from '@angular/common';
|
|
2
|
-
import { ChangeDetectionStrategy, Component,
|
|
2
|
+
import { ChangeDetectionStrategy, Component, inject } from '@angular/core';
|
|
3
3
|
import { tuiFadeIn, tuiSlideInTop } from '@taiga-ui/core/animations';
|
|
4
4
|
import { TuiButton } from '@taiga-ui/core/components/button';
|
|
5
5
|
import { TUI_ANIMATIONS_SPEED, TUI_CLOSE_WORD, TUI_COMMON_ICONS, } from '@taiga-ui/core/tokens';
|
|
@@ -25,9 +25,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
25
25
|
args: [{ standalone: true, selector: 'tui-pdf-viewer', imports: [PolymorpheusOutlet, PolymorpheusTemplate, TuiButton, AsyncPipe], changeDetection: ChangeDetectionStrategy.OnPush, animations: [tuiSlideInTop, tuiFadeIn], host: {
|
|
26
26
|
'[@tuiFadeIn]': 'options',
|
|
27
27
|
'[@tuiSlideInTop]': 'options',
|
|
28
|
+
'(document:keydown.esc)': 'onKeyDownEsc()',
|
|
28
29
|
}, template: "<header class=\"t-header\">\n <h2\n automation-id=\"tui-pdf-viewer__label\"\n class=\"t-title\"\n >\n {{ context.label }}\n </h2>\n <div class=\"t-actions\">\n <ng-container *polymorpheusOutlet=\"context.actions as text; context: context\">\n {{ text }}\n </ng-container>\n </div>\n <button\n appearance=\"\"\n size=\"s\"\n tuiIconButton\n type=\"button\"\n class=\"t-close\"\n [iconStart]=\"icons.close\"\n [style.border-radius.%]=\"100\"\n (click)=\"context.$implicit.complete()\"\n >\n {{ closeWord$ | async }}\n </button>\n</header>\n<section class=\"t-content\">\n <iframe\n *polymorpheusOutlet=\"context.content as content; context: context\"\n title=\"pdf\"\n class=\"t-iframe\"\n [src]=\"content\"\n ></iframe>\n</section>\n", styles: [":host{display:block;width:100%;height:100%;box-sizing:border-box;color:#fff;background:#333639}.t-header{display:flex;align-items:center;height:4rem;padding:0 1rem 0 1.5625rem;box-shadow:inset 0 -1px #535659}.t-title{margin:0;font:var(--tui-font-text-m);white-space:nowrap;text-overflow:ellipsis;padding-right:.3125rem;overflow:hidden}.t-actions{display:flex;margin-left:auto}.t-close{transition-property:background;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;margin-left:.75rem;color:#fff;background:#ffffff52}.t-close:hover{background:#fff6}.t-content{height:calc(100% - 4rem);overflow:hidden}.t-iframe{width:100%;height:100%}\n"] }]
|
|
29
|
-
}]
|
|
30
|
-
|
|
31
|
-
args: ['document:keydown.esc']
|
|
32
|
-
}] } });
|
|
33
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGRmLXZpZXdlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9raXQvY29tcG9uZW50cy9wZGYtdmlld2VyL3BkZi12aWV3ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2l0L2NvbXBvbmVudHMvcGRmLXZpZXdlci9wZGYtdmlld2VyLnRlbXBsYXRlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sRUFBQyx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUV2RixPQUFPLEVBQUMsU0FBUyxFQUFFLGFBQWEsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQ25FLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUMzRCxPQUFPLEVBQ0gsb0JBQW9CLEVBQ3BCLGNBQWMsRUFDZCxnQkFBZ0IsR0FDbkIsTUFBTSx1QkFBdUIsQ0FBQztBQUMvQixPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSxvQ0FBb0MsQ0FBQztBQUN6RSxPQUFPLEVBQ0gsb0JBQW9CLEVBQ3BCLGtCQUFrQixFQUNsQixvQkFBb0IsR0FDdkIsTUFBTSx3QkFBd0IsQ0FBQzs7QUFJaEMsTUFhYSxxQkFBcUI7SUFibEM7UUFjdUIsWUFBTyxHQUFHLHFCQUFxQixDQUFDLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUM7UUFDOUQsZUFBVSxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUNwQyxVQUFLLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDakMsWUFBTyxHQUN0QixNQUFNLENBQXdDLG9CQUFvQixDQUFDLENBQUM7S0FNM0U7SUFIYSxZQUFZO1FBQ2xCLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3RDLENBQUM7K0dBVlEscUJBQXFCO21HQUFyQixxQkFBcUIsbU5DaENsQyxxNEJBaUNBLHd0QkRYYyxrQkFBa0IsOEhBQXdCLFNBQVMsK0hBQUUsU0FBUyxnQ0FJNUQsQ0FBQyxhQUFhLEVBQUUsU0FBUyxDQUFDOztTQU03QixxQkFBcUI7NEZBQXJCLHFCQUFxQjtrQkFiakMsU0FBUztpQ0FDTSxJQUFJLFlBQ04sZ0JBQWdCLFdBQ2pCLENBQUMsa0JBQWtCLEVBQUUsb0JBQW9CLEVBQUUsU0FBUyxFQUFFLFNBQVMsQ0FBQyxtQkFHeEQsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxDQUFDLGFBQWEsRUFBRSxTQUFTLENBQUMsUUFDaEM7d0JBQ0YsY0FBYyxFQUFFLFNBQVM7d0JBQ3pCLGtCQUFrQixFQUFFLFNBQVM7cUJBQ2hDOzhCQVVTLFlBQVk7c0JBRHJCLFlBQVk7dUJBQUMsc0JBQXNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBc3luY1BpcGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge0NoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEhvc3RMaXN0ZW5lciwgaW5qZWN0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB0eXBlIHtUdWlQb3BvdmVyfSBmcm9tICdAdGFpZ2EtdWkvY2RrL3NlcnZpY2VzJztcbmltcG9ydCB7dHVpRmFkZUluLCB0dWlTbGlkZUluVG9wfSBmcm9tICdAdGFpZ2EtdWkvY29yZS9hbmltYXRpb25zJztcbmltcG9ydCB7VHVpQnV0dG9ufSBmcm9tICdAdGFpZ2EtdWkvY29yZS9jb21wb25lbnRzL2J1dHRvbic7XG5pbXBvcnQge1xuICAgIFRVSV9BTklNQVRJT05TX1NQRUVELFxuICAgIFRVSV9DTE9TRV9XT1JELFxuICAgIFRVSV9DT01NT05fSUNPTlMsXG59IGZyb20gJ0B0YWlnYS11aS9jb3JlL3Rva2Vucyc7XG5pbXBvcnQge3R1aVRvQW5pbWF0aW9uT3B0aW9uc30gZnJvbSAnQHRhaWdhLXVpL2NvcmUvdXRpbHMvbWlzY2VsbGFuZW91cyc7XG5pbXBvcnQge1xuICAgIFBPTFlNT1JQSEVVU19DT05URVhULFxuICAgIFBvbHltb3JwaGV1c091dGxldCxcbiAgICBQb2x5bW9ycGhldXNUZW1wbGF0ZSxcbn0gZnJvbSAnQHRhaWdhLXVpL3BvbHltb3JwaGV1cyc7XG5cbmltcG9ydCB0eXBlIHtUdWlQZGZWaWV3ZXJPcHRpb25zfSBmcm9tICcuL3BkZi12aWV3ZXIub3B0aW9ucyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgc2VsZWN0b3I6ICd0dWktcGRmLXZpZXdlcicsXG4gICAgaW1wb3J0czogW1BvbHltb3JwaGV1c091dGxldCwgUG9seW1vcnBoZXVzVGVtcGxhdGUsIFR1aUJ1dHRvbiwgQXN5bmNQaXBlXSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vcGRmLXZpZXdlci50ZW1wbGF0ZS5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9wZGYtdmlld2VyLnN0eWxlLmxlc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBhbmltYXRpb25zOiBbdHVpU2xpZGVJblRvcCwgdHVpRmFkZUluXSxcbiAgICBob3N0OiB7XG4gICAgICAgICdbQHR1aUZhZGVJbl0nOiAnb3B0aW9ucycsXG4gICAgICAgICdbQHR1aVNsaWRlSW5Ub3BdJzogJ29wdGlvbnMnLFxuICAgIH0sXG59KVxuZXhwb3J0IGNsYXNzIFR1aVBkZlZpZXdlckNvbXBvbmVudDxJLCBPPiB7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IG9wdGlvbnMgPSB0dWlUb0FuaW1hdGlvbk9wdGlvbnMoaW5qZWN0KFRVSV9BTklNQVRJT05TX1NQRUVEKSk7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGNsb3NlV29yZCQgPSBpbmplY3QoVFVJX0NMT1NFX1dPUkQpO1xuICAgIHByb3RlY3RlZCByZWFkb25seSBpY29ucyA9IGluamVjdChUVUlfQ09NTU9OX0lDT05TKTtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgY29udGV4dCA9XG4gICAgICAgIGluamVjdDxUdWlQb3BvdmVyPFR1aVBkZlZpZXdlck9wdGlvbnM8ST4sIE8+PihQT0xZTU9SUEhFVVNfQ09OVEVYVCk7XG5cbiAgICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDprZXlkb3duLmVzYycpXG4gICAgcHJvdGVjdGVkIG9uS2V5RG93bkVzYygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jb250ZXh0LiRpbXBsaWNpdC5jb21wbGV0ZSgpO1xuICAgIH1cbn1cbiIsIjxoZWFkZXIgY2xhc3M9XCJ0LWhlYWRlclwiPlxuICAgIDxoMlxuICAgICAgICBhdXRvbWF0aW9uLWlkPVwidHVpLXBkZi12aWV3ZXJfX2xhYmVsXCJcbiAgICAgICAgY2xhc3M9XCJ0LXRpdGxlXCJcbiAgICA+XG4gICAgICAgIHt7IGNvbnRleHQubGFiZWwgfX1cbiAgICA8L2gyPlxuICAgIDxkaXYgY2xhc3M9XCJ0LWFjdGlvbnNcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqcG9seW1vcnBoZXVzT3V0bGV0PVwiY29udGV4dC5hY3Rpb25zIGFzIHRleHQ7IGNvbnRleHQ6IGNvbnRleHRcIj5cbiAgICAgICAgICAgIHt7IHRleHQgfX1cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG4gICAgPGJ1dHRvblxuICAgICAgICBhcHBlYXJhbmNlPVwiXCJcbiAgICAgICAgc2l6ZT1cInNcIlxuICAgICAgICB0dWlJY29uQnV0dG9uXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICBjbGFzcz1cInQtY2xvc2VcIlxuICAgICAgICBbaWNvblN0YXJ0XT1cImljb25zLmNsb3NlXCJcbiAgICAgICAgW3N0eWxlLmJvcmRlci1yYWRpdXMuJV09XCIxMDBcIlxuICAgICAgICAoY2xpY2spPVwiY29udGV4dC4kaW1wbGljaXQuY29tcGxldGUoKVwiXG4gICAgPlxuICAgICAgICB7eyBjbG9zZVdvcmQkIHwgYXN5bmMgfX1cbiAgICA8L2J1dHRvbj5cbjwvaGVhZGVyPlxuPHNlY3Rpb24gY2xhc3M9XCJ0LWNvbnRlbnRcIj5cbiAgICA8aWZyYW1lXG4gICAgICAgICpwb2x5bW9ycGhldXNPdXRsZXQ9XCJjb250ZXh0LmNvbnRlbnQgYXMgY29udGVudDsgY29udGV4dDogY29udGV4dFwiXG4gICAgICAgIHRpdGxlPVwicGRmXCJcbiAgICAgICAgY2xhc3M9XCJ0LWlmcmFtZVwiXG4gICAgICAgIFtzcmNdPVwiY29udGVudFwiXG4gICAgPjwvaWZyYW1lPlxuPC9zZWN0aW9uPlxuIl19
|
|
30
|
+
}] });
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGRmLXZpZXdlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9raXQvY29tcG9uZW50cy9wZGYtdmlld2VyL3BkZi12aWV3ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2l0L2NvbXBvbmVudHMvcGRmLXZpZXdlci9wZGYtdmlld2VyLnRlbXBsYXRlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sRUFBQyx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRXpFLE9BQU8sRUFBQyxTQUFTLEVBQUUsYUFBYSxFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDbkUsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGtDQUFrQyxDQUFDO0FBQzNELE9BQU8sRUFDSCxvQkFBb0IsRUFDcEIsY0FBYyxFQUNkLGdCQUFnQixHQUNuQixNQUFNLHVCQUF1QixDQUFDO0FBQy9CLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLG9DQUFvQyxDQUFDO0FBQ3pFLE9BQU8sRUFDSCxvQkFBb0IsRUFDcEIsa0JBQWtCLEVBQ2xCLG9CQUFvQixHQUN2QixNQUFNLHdCQUF3QixDQUFDOztBQUloQyxNQWNhLHFCQUFxQjtJQWRsQztRQWV1QixZQUFPLEdBQUcscUJBQXFCLENBQUMsTUFBTSxDQUFDLG9CQUFvQixDQUFDLENBQUMsQ0FBQztRQUM5RCxlQUFVLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ3BDLFVBQUssR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUNqQyxZQUFPLEdBQ3RCLE1BQU0sQ0FBd0Msb0JBQW9CLENBQUMsQ0FBQztLQUszRTtJQUhhLFlBQVk7UUFDbEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDdEMsQ0FBQzsrR0FUUSxxQkFBcUI7bUdBQXJCLHFCQUFxQixtTkNqQ2xDLHE0QkFpQ0Esd3RCRFhjLGtCQUFrQiw4SEFBd0IsU0FBUywrSEFBRSxTQUFTLGdDQUk1RCxDQUFDLGFBQWEsRUFBRSxTQUFTLENBQUM7O1NBTzdCLHFCQUFxQjs0RkFBckIscUJBQXFCO2tCQWRqQyxTQUFTO2lDQUNNLElBQUksWUFDTixnQkFBZ0IsV0FDakIsQ0FBQyxrQkFBa0IsRUFBRSxvQkFBb0IsRUFBRSxTQUFTLEVBQUUsU0FBUyxDQUFDLG1CQUd4RCx1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLENBQUMsYUFBYSxFQUFFLFNBQVMsQ0FBQyxRQUNoQzt3QkFDRixjQUFjLEVBQUUsU0FBUzt3QkFDekIsa0JBQWtCLEVBQUUsU0FBUzt3QkFDN0Isd0JBQXdCLEVBQUUsZ0JBQWdCO3FCQUM3QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QXN5bmNQaXBlfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBpbmplY3R9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHR5cGUge1R1aVBvcG92ZXJ9IGZyb20gJ0B0YWlnYS11aS9jZGsvc2VydmljZXMnO1xuaW1wb3J0IHt0dWlGYWRlSW4sIHR1aVNsaWRlSW5Ub3B9IGZyb20gJ0B0YWlnYS11aS9jb3JlL2FuaW1hdGlvbnMnO1xuaW1wb3J0IHtUdWlCdXR0b259IGZyb20gJ0B0YWlnYS11aS9jb3JlL2NvbXBvbmVudHMvYnV0dG9uJztcbmltcG9ydCB7XG4gICAgVFVJX0FOSU1BVElPTlNfU1BFRUQsXG4gICAgVFVJX0NMT1NFX1dPUkQsXG4gICAgVFVJX0NPTU1PTl9JQ09OUyxcbn0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvdG9rZW5zJztcbmltcG9ydCB7dHVpVG9BbmltYXRpb25PcHRpb25zfSBmcm9tICdAdGFpZ2EtdWkvY29yZS91dGlscy9taXNjZWxsYW5lb3VzJztcbmltcG9ydCB7XG4gICAgUE9MWU1PUlBIRVVTX0NPTlRFWFQsXG4gICAgUG9seW1vcnBoZXVzT3V0bGV0LFxuICAgIFBvbHltb3JwaGV1c1RlbXBsYXRlLFxufSBmcm9tICdAdGFpZ2EtdWkvcG9seW1vcnBoZXVzJztcblxuaW1wb3J0IHR5cGUge1R1aVBkZlZpZXdlck9wdGlvbnN9IGZyb20gJy4vcGRmLXZpZXdlci5vcHRpb25zJztcblxuQENvbXBvbmVudCh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBzZWxlY3RvcjogJ3R1aS1wZGYtdmlld2VyJyxcbiAgICBpbXBvcnRzOiBbUG9seW1vcnBoZXVzT3V0bGV0LCBQb2x5bW9ycGhldXNUZW1wbGF0ZSwgVHVpQnV0dG9uLCBBc3luY1BpcGVdLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9wZGYtdmlld2VyLnRlbXBsYXRlLmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3BkZi12aWV3ZXIuc3R5bGUubGVzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGFuaW1hdGlvbnM6IFt0dWlTbGlkZUluVG9wLCB0dWlGYWRlSW5dLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJ1tAdHVpRmFkZUluXSc6ICdvcHRpb25zJyxcbiAgICAgICAgJ1tAdHVpU2xpZGVJblRvcF0nOiAnb3B0aW9ucycsXG4gICAgICAgICcoZG9jdW1lbnQ6a2V5ZG93bi5lc2MpJzogJ29uS2V5RG93bkVzYygpJyxcbiAgICB9LFxufSlcbmV4cG9ydCBjbGFzcyBUdWlQZGZWaWV3ZXJDb21wb25lbnQ8SSwgTz4ge1xuICAgIHByb3RlY3RlZCByZWFkb25seSBvcHRpb25zID0gdHVpVG9BbmltYXRpb25PcHRpb25zKGluamVjdChUVUlfQU5JTUFUSU9OU19TUEVFRCkpO1xuICAgIHByb3RlY3RlZCByZWFkb25seSBjbG9zZVdvcmQkID0gaW5qZWN0KFRVSV9DTE9TRV9XT1JEKTtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgaWNvbnMgPSBpbmplY3QoVFVJX0NPTU1PTl9JQ09OUyk7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGNvbnRleHQgPVxuICAgICAgICBpbmplY3Q8VHVpUG9wb3ZlcjxUdWlQZGZWaWV3ZXJPcHRpb25zPEk+LCBPPj4oUE9MWU1PUlBIRVVTX0NPTlRFWFQpO1xuXG4gICAgcHJvdGVjdGVkIG9uS2V5RG93bkVzYygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jb250ZXh0LiRpbXBsaWNpdC5jb21wbGV0ZSgpO1xuICAgIH1cbn1cbiIsIjxoZWFkZXIgY2xhc3M9XCJ0LWhlYWRlclwiPlxuICAgIDxoMlxuICAgICAgICBhdXRvbWF0aW9uLWlkPVwidHVpLXBkZi12aWV3ZXJfX2xhYmVsXCJcbiAgICAgICAgY2xhc3M9XCJ0LXRpdGxlXCJcbiAgICA+XG4gICAgICAgIHt7IGNvbnRleHQubGFiZWwgfX1cbiAgICA8L2gyPlxuICAgIDxkaXYgY2xhc3M9XCJ0LWFjdGlvbnNcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqcG9seW1vcnBoZXVzT3V0bGV0PVwiY29udGV4dC5hY3Rpb25zIGFzIHRleHQ7IGNvbnRleHQ6IGNvbnRleHRcIj5cbiAgICAgICAgICAgIHt7IHRleHQgfX1cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG4gICAgPGJ1dHRvblxuICAgICAgICBhcHBlYXJhbmNlPVwiXCJcbiAgICAgICAgc2l6ZT1cInNcIlxuICAgICAgICB0dWlJY29uQnV0dG9uXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICBjbGFzcz1cInQtY2xvc2VcIlxuICAgICAgICBbaWNvblN0YXJ0XT1cImljb25zLmNsb3NlXCJcbiAgICAgICAgW3N0eWxlLmJvcmRlci1yYWRpdXMuJV09XCIxMDBcIlxuICAgICAgICAoY2xpY2spPVwiY29udGV4dC4kaW1wbGljaXQuY29tcGxldGUoKVwiXG4gICAgPlxuICAgICAgICB7eyBjbG9zZVdvcmQkIHwgYXN5bmMgfX1cbiAgICA8L2J1dHRvbj5cbjwvaGVhZGVyPlxuPHNlY3Rpb24gY2xhc3M9XCJ0LWNvbnRlbnRcIj5cbiAgICA8aWZyYW1lXG4gICAgICAgICpwb2x5bW9ycGhldXNPdXRsZXQ9XCJjb250ZXh0LmNvbnRlbnQgYXMgY29udGVudDsgY29udGV4dDogY29udGV4dFwiXG4gICAgICAgIHRpdGxlPVwicGRmXCJcbiAgICAgICAgY2xhc3M9XCJ0LWlmcmFtZVwiXG4gICAgICAgIFtzcmNdPVwiY29udGVudFwiXG4gICAgPjwvaWZyYW1lPlxuPC9zZWN0aW9uPlxuIl19
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, Directive,
|
|
1
|
+
import { ChangeDetectionStrategy, Component, Directive, Input, ViewEncapsulation, } from '@angular/core';
|
|
2
2
|
import { tuiWithStyles } from '@taiga-ui/cdk/utils/miscellaneous';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
class TuiPinStyles {
|
|
@@ -17,7 +17,7 @@ class TuiPin {
|
|
|
17
17
|
this.open = false;
|
|
18
18
|
}
|
|
19
19
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiPin, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
20
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: TuiPin, isStandalone: true, selector: "tui-pin,[tuiPin]", inputs: { open: "open" }, host: { properties: { "class._open": "
|
|
20
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: TuiPin, isStandalone: true, selector: "tui-pin,[tuiPin]", inputs: { open: "open" }, host: { properties: { "class._open": "open" } }, ngImport: i0 }); }
|
|
21
21
|
}
|
|
22
22
|
export { TuiPin };
|
|
23
23
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiPin, decorators: [{
|
|
@@ -25,11 +25,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
25
25
|
args: [{
|
|
26
26
|
standalone: true,
|
|
27
27
|
selector: 'tui-pin,[tuiPin]',
|
|
28
|
+
host: {
|
|
29
|
+
'[class._open]': 'open',
|
|
30
|
+
},
|
|
28
31
|
}]
|
|
29
32
|
}], propDecorators: { open: [{
|
|
30
33
|
type: Input
|
|
31
|
-
}, {
|
|
32
|
-
type: HostBinding,
|
|
33
|
-
args: ['class._open']
|
|
34
34
|
}] } });
|
|
35
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGluLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tpdC9jb21wb25lbnRzL3Bpbi9waW4uZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFNBQVMsRUFDVCxLQUFLLEVBQ0wsaUJBQWlCLEdBQ3BCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQzs7QUFFaEUsTUFVTSxZQUFZOytHQUFaLFlBQVk7bUdBQVosWUFBWSw2R0FSSixFQUFFOzs0RkFRVixZQUFZO2tCQVZqQixTQUFTO2lDQUNNLElBQUksWUFDTixFQUFFLGlCQUVHLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU0sUUFDekM7d0JBQ0YsS0FBSyxFQUFFLFNBQVM7cUJBQ25COztBQUlMLE1BT2EsTUFBTTtJQVBuQjtRQVF1QixZQUFPLEdBQUcsYUFBYSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBR2xELFNBQUksR0FBRyxLQUFLLENBQUM7S0FDdkI7K0dBTFksTUFBTTttR0FBTixNQUFNOztTQUFOLE1BQU07NEZBQU4sTUFBTTtrQkFQbEIsU0FBUzttQkFBQztvQkFDUCxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFLGtCQUFrQjtvQkFDNUIsSUFBSSxFQUFFO3dCQUNGLGVBQWUsRUFBRSxNQUFNO3FCQUMxQjtpQkFDSjs4QkFLVSxJQUFJO3NCQURWLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBEaXJlY3RpdmUsXG4gICAgSW5wdXQsXG4gICAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHt0dWlXaXRoU3R5bGVzfSBmcm9tICdAdGFpZ2EtdWkvY2RrL3V0aWxzL21pc2NlbGxhbmVvdXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHRlbXBsYXRlOiAnJyxcbiAgICBzdHlsZXM6IFsnQGltcG9ydCBcIkB0YWlnYS11aS9raXQvc3R5bGVzL2NvbXBvbmVudHMvcGluLmxlc3NcIjsnXSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgY2xhc3M6ICd0dWktcGluJyxcbiAgICB9LFxufSlcbmNsYXNzIFR1aVBpblN0eWxlcyB7fVxuXG5ARGlyZWN0aXZlKHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAndHVpLXBpbixbdHVpUGluXScsXG4gICAgaG9zdDoge1xuICAgICAgICAnW2NsYXNzLl9vcGVuXSc6ICdvcGVuJyxcbiAgICB9LFxufSlcbmV4cG9ydCBjbGFzcyBUdWlQaW4ge1xuICAgIHByb3RlY3RlZCByZWFkb25seSBub3RoaW5nID0gdHVpV2l0aFN0eWxlcyhUdWlQaW5TdHlsZXMpO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgb3BlbiA9IGZhbHNlO1xufVxuIl19
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { AsyncPipe, NgIf } from '@angular/common';
|
|
2
|
-
import { ChangeDetectionStrategy, Component, EventEmitter,
|
|
2
|
+
import { ChangeDetectionStrategy, Component, EventEmitter, inject, Input, Output, } from '@angular/core';
|
|
3
3
|
import { tuiClamp } from '@taiga-ui/cdk/utils/math';
|
|
4
4
|
import { TuiButton } from '@taiga-ui/core/components/button';
|
|
5
5
|
import { TUI_PAGINATION_TEXTS, TUI_PREVIEW_ICONS } from '@taiga-ui/kit/tokens';
|
|
@@ -35,18 +35,15 @@ class TuiPreviewPagination {
|
|
|
35
35
|
export { TuiPreviewPagination };
|
|
36
36
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiPreviewPagination, decorators: [{
|
|
37
37
|
type: Component,
|
|
38
|
-
args: [{ standalone: true, selector: 'tui-preview-pagination', imports: [NgIf, AsyncPipe, TuiButton, TuiPreviewAction], changeDetection: ChangeDetectionStrategy.OnPush,
|
|
38
|
+
args: [{ standalone: true, selector: 'tui-preview-pagination', imports: [NgIf, AsyncPipe, TuiButton, TuiPreviewAction], changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
39
|
+
'(document:keydown.arrowRight.prevent)': 'onArrowClick(1)',
|
|
40
|
+
'(document:keydown.arrowLeft.prevent)': 'onArrowClick(-1)',
|
|
41
|
+
}, template: "<ng-container *ngIf=\"texts$ | async as texts\">\n <button\n tuiIconButton\n tuiPreviewAction\n type=\"button\"\n class=\"t-arrow_left\"\n [disabled]=\"leftButtonDisabled\"\n [iconStart]=\"icons.prev\"\n (click)=\"onArrowClick(-1)\"\n >\n {{ texts[0] }}\n </button>\n {{ index + 1 }}/{{ length }}\n <button\n tuiIconButton\n tuiPreviewAction\n type=\"button\"\n class=\"t-arrow_right\"\n [disabled]=\"rightButtonDisabled\"\n [iconStart]=\"icons.next\"\n (click)=\"onArrowClick(1)\"\n >\n {{ texts[1] }}\n </button>\n</ng-container>\n", styles: [":host{border-radius:1rem;background:#686868f5;color:#fff;display:flex;font:var(--tui-font-text-s);justify-content:space-between;align-items:center;width:6.25rem}.t-arrow_left{border-top-right-radius:0;border-bottom-right-radius:0}.t-arrow_right{border-top-left-radius:0;border-bottom-left-radius:0}\n"] }]
|
|
39
42
|
}], propDecorators: { length: [{
|
|
40
43
|
type: Input
|
|
41
44
|
}], index: [{
|
|
42
45
|
type: Input
|
|
43
46
|
}], indexChange: [{
|
|
44
47
|
type: Output
|
|
45
|
-
}], onArrowClick: [{
|
|
46
|
-
type: HostListener,
|
|
47
|
-
args: ['document:keydown.arrowRight.prevent', ['1']]
|
|
48
|
-
}, {
|
|
49
|
-
type: HostListener,
|
|
50
|
-
args: ['document:keydown.arrowLeft.prevent', ['-1']]
|
|
51
48
|
}] } });
|
|
52
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJldmlldy1wYWdpbmF0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tpdC9jb21wb25lbnRzL3ByZXZpZXcvcGFnaW5hdGlvbi9wcmV2aWV3LXBhZ2luYXRpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2l0L2NvbXBvbmVudHMvcHJldmlldy9wYWdpbmF0aW9uL3ByZXZpZXctcGFnaW5hdGlvbi50ZW1wbGF0ZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsSUFBSSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDaEQsT0FBTyxFQUNILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxHQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUNsRCxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDM0QsT0FBTyxFQUFDLG9CQUFvQixFQUFFLGlCQUFpQixFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFFN0UsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sNENBQTRDLENBQUM7O0FBRTVFLE1BWWEsb0JBQW9CO0lBWmpDO1FBYXVCLFVBQUssR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUNsQyxXQUFNLEdBQUcsTUFBTSxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFHbEQsV0FBTSxHQUFHLENBQUMsQ0FBQztRQUdYLFVBQUssR0FBRyxDQUFDLENBQUM7UUFHRCxnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7S0FzQjVEO0lBcEJVLFlBQVksQ0FBQyxJQUFZO1FBQzVCLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxFQUFFLENBQUMsRUFBRSxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdEUsQ0FBQztJQUVELElBQWMsa0JBQWtCO1FBQzVCLE9BQU8sSUFBSSxDQUFDLEtBQUssS0FBSyxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUVELElBQWMsbUJBQW1CO1FBQzdCLE9BQU8sSUFBSSxDQUFDLEtBQUssS0FBSyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRU8sV0FBVyxDQUFDLEtBQWE7UUFDN0IsSUFBSSxJQUFJLENBQUMsS0FBSyxLQUFLLEtBQUssRUFBRTtZQUN0QixPQUFPO1NBQ1Y7UUFFRCxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNqQyxDQUFDOytHQWhDUSxvQkFBb0I7bUdBQXBCLG9CQUFvQixzVEMzQmpDLDRwQkF5QkEsc1dEUGMsSUFBSSx3RkFBRSxTQUFTLDhDQUFFLFNBQVMsb0lBQUUsZ0JBQWdCOztTQVM3QyxvQkFBb0I7NEZBQXBCLG9CQUFvQjtrQkFaaEMsU0FBUztpQ0FDTSxJQUFJLFlBQ04sd0JBQXdCLFdBQ3pCLENBQUMsSUFBSSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLENBQUMsbUJBR3RDLHVCQUF1QixDQUFDLE1BQU0sUUFDekM7d0JBQ0YsdUNBQXVDLEVBQUUsaUJBQWlCO3dCQUMxRCxzQ0FBc0MsRUFBRSxrQkFBa0I7cUJBQzdEOzhCQU9NLE1BQU07c0JBRFosS0FBSztnQkFJQyxLQUFLO3NCQURYLEtBQUs7Z0JBSVUsV0FBVztzQkFEMUIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QXN5bmNQaXBlLCBOZ0lmfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb21wb25lbnQsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIGluamVjdCxcbiAgICBJbnB1dCxcbiAgICBPdXRwdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHt0dWlDbGFtcH0gZnJvbSAnQHRhaWdhLXVpL2Nkay91dGlscy9tYXRoJztcbmltcG9ydCB7VHVpQnV0dG9ufSBmcm9tICdAdGFpZ2EtdWkvY29yZS9jb21wb25lbnRzL2J1dHRvbic7XG5pbXBvcnQge1RVSV9QQUdJTkFUSU9OX1RFWFRTLCBUVUlfUFJFVklFV19JQ09OU30gZnJvbSAnQHRhaWdhLXVpL2tpdC90b2tlbnMnO1xuXG5pbXBvcnQge1R1aVByZXZpZXdBY3Rpb259IGZyb20gJy4uL3ByZXZpZXctYWN0aW9uL3ByZXZpZXctYWN0aW9uLmRpcmVjdGl2ZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgc2VsZWN0b3I6ICd0dWktcHJldmlldy1wYWdpbmF0aW9uJyxcbiAgICBpbXBvcnRzOiBbTmdJZiwgQXN5bmNQaXBlLCBUdWlCdXR0b24sIFR1aVByZXZpZXdBY3Rpb25dLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9wcmV2aWV3LXBhZ2luYXRpb24udGVtcGxhdGUuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vcHJldmlldy1wYWdpbmF0aW9uLnN0eWxlLmxlc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBob3N0OiB7XG4gICAgICAgICcoZG9jdW1lbnQ6a2V5ZG93bi5hcnJvd1JpZ2h0LnByZXZlbnQpJzogJ29uQXJyb3dDbGljaygxKScsXG4gICAgICAgICcoZG9jdW1lbnQ6a2V5ZG93bi5hcnJvd0xlZnQucHJldmVudCknOiAnb25BcnJvd0NsaWNrKC0xKScsXG4gICAgfSxcbn0pXG5leHBvcnQgY2xhc3MgVHVpUHJldmlld1BhZ2luYXRpb24ge1xuICAgIHByb3RlY3RlZCByZWFkb25seSBpY29ucyA9IGluamVjdChUVUlfUFJFVklFV19JQ09OUyk7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHRleHRzJCA9IGluamVjdChUVUlfUEFHSU5BVElPTl9URVhUUyk7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBsZW5ndGggPSAxO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgaW5kZXggPSAwO1xuXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIHJlYWRvbmx5IGluZGV4Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG5cbiAgICBwdWJsaWMgb25BcnJvd0NsaWNrKHN0ZXA6IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLnVwZGF0ZUluZGV4KHR1aUNsYW1wKHRoaXMuaW5kZXggKyBzdGVwLCAwLCB0aGlzLmxlbmd0aCAtIDEpKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IGxlZnRCdXR0b25EaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaW5kZXggPT09IDA7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldCByaWdodEJ1dHRvbkRpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5pbmRleCA9PT0gdGhpcy5sZW5ndGggLSAxO1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlSW5kZXgoaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5pbmRleCA9PT0gaW5kZXgpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuaW5kZXggPSBpbmRleDtcbiAgICAgICAgdGhpcy5pbmRleENoYW5nZS5lbWl0KGluZGV4KTtcbiAgICB9XG59XG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwidGV4dHMkIHwgYXN5bmMgYXMgdGV4dHNcIj5cbiAgICA8YnV0dG9uXG4gICAgICAgIHR1aUljb25CdXR0b25cbiAgICAgICAgdHVpUHJldmlld0FjdGlvblxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgY2xhc3M9XCJ0LWFycm93X2xlZnRcIlxuICAgICAgICBbZGlzYWJsZWRdPVwibGVmdEJ1dHRvbkRpc2FibGVkXCJcbiAgICAgICAgW2ljb25TdGFydF09XCJpY29ucy5wcmV2XCJcbiAgICAgICAgKGNsaWNrKT1cIm9uQXJyb3dDbGljaygtMSlcIlxuICAgID5cbiAgICAgICAge3sgdGV4dHNbMF0gfX1cbiAgICA8L2J1dHRvbj5cbiAgICB7eyBpbmRleCArIDEgfX0ve3sgbGVuZ3RoIH19XG4gICAgPGJ1dHRvblxuICAgICAgICB0dWlJY29uQnV0dG9uXG4gICAgICAgIHR1aVByZXZpZXdBY3Rpb25cbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIGNsYXNzPVwidC1hcnJvd19yaWdodFwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJyaWdodEJ1dHRvbkRpc2FibGVkXCJcbiAgICAgICAgW2ljb25TdGFydF09XCJpY29ucy5uZXh0XCJcbiAgICAgICAgKGNsaWNrKT1cIm9uQXJyb3dDbGljaygxKVwiXG4gICAgPlxuICAgICAgICB7eyB0ZXh0c1sxXSB9fVxuICAgIDwvYnV0dG9uPlxuPC9uZy1jb250YWluZXI+XG4iXX0=
|
|
@@ -59,12 +59,10 @@ class TuiPreviewComponent {
|
|
|
59
59
|
this.processZoom(clientX, clientY, delta);
|
|
60
60
|
}
|
|
61
61
|
}
|
|
62
|
-
onResize(
|
|
63
|
-
if (
|
|
64
|
-
|
|
62
|
+
onResize([entry]) {
|
|
63
|
+
if (entry?.contentRect) {
|
|
64
|
+
this.refresh(entry.contentRect.width, entry.contentRect.height);
|
|
65
65
|
}
|
|
66
|
-
const { width, height } = contentResizeEntries[0].contentRect;
|
|
67
|
-
this.refresh(width, height);
|
|
68
66
|
}
|
|
69
67
|
reset() {
|
|
70
68
|
this.zoom$.next(this.minZoom);
|
|
@@ -138,4 +136,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
138
136
|
}], rotatable: [{
|
|
139
137
|
type: Input
|
|
140
138
|
}] } });
|
|
141
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJldmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9raXQvY29tcG9uZW50cy9wcmV2aWV3L3ByZXZpZXcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2l0L2NvbXBvbmVudHMvcHJldmlldy9wcmV2aWV3LnRlbXBsYXRlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxJQUFJLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUNoRCxPQUFPLEVBQUMsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDaEYsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sZ0NBQWdDLENBQUM7QUFDbEUsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDOUQsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDMUQsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBRXBELE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQztBQUN0RCxPQUFPLEVBQUMsa0JBQWtCLEVBQUUsaUJBQWlCLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUNoRixPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUMsUUFBUSxFQUFFLFFBQVEsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQzVELE9BQU8sRUFBQyxLQUFLLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQztBQUN4RCxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDeEQsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGtDQUFrQyxDQUFDO0FBQzNELE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN2RCxPQUFPLEVBQUMsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUMxRSxPQUFPLEVBQUMsZUFBZSxFQUFFLGFBQWEsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUUzRSxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSwyQ0FBMkMsQ0FBQztBQUMzRSxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sK0JBQStCLENBQUM7OztBQUU3RCxNQUFNLGtCQUFrQixHQUFHLEdBQUcsQ0FBQztBQUMvQixNQUFNLGlCQUFpQixHQUFxQixDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUNuRCxNQUFNLGNBQWMsR0FBRyxFQUFFLENBQUM7QUFFMUIsTUFvQmEsbUJBQW1CO0lBcEJoQztRQXFCcUIsT0FBRSxHQUFHLGdCQUFnQixFQUFFLENBQUM7UUFFL0IsWUFBTyxHQUFHLENBQUMsQ0FBQztRQUNaLFVBQUssR0FBRyxDQUFDLENBQUM7UUFDVixXQUFNLEdBQUcsQ0FBQyxDQUFDO1FBQ0YsV0FBTSxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ25DLFVBQUssR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUNsQyxVQUFLLEdBQUcsSUFBSSxlQUFlLENBQVMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2xELGNBQVMsR0FBRyxJQUFJLGVBQWUsQ0FBUyxDQUFDLENBQUMsQ0FBQztRQUMzQyxpQkFBWSxHQUFHLElBQUksZUFBZSxDQUNqRCxpQkFBaUIsQ0FDcEIsQ0FBQztRQUVpQixrQkFBYSxHQUFHLEtBQUssQ0FDcEMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFDLEtBQUssRUFBQyxFQUFFLEVBQUUsQ0FBQyxLQUFLLEtBQUssV0FBVyxDQUFDLENBQUMsRUFDekUsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxXQUFXLEVBQUU7WUFDcEMsT0FBTyxFQUFFLElBQUk7U0FDaEIsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxFQUMvQixpQkFBaUIsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUNwRixDQUFDO1FBRWlCLFlBQU8sR0FBRyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUN6RCxHQUFHLENBQUMsQ0FBQyxFQUFDLEtBQUssRUFBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssS0FBSyxXQUFXLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsRUFDbEUsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUN2QixDQUFDO1FBRWlCLHNCQUFpQixHQUFHLGFBQWEsQ0FBQztZQUNqRCxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUNuRSxJQUFJLENBQUMsS0FBSztZQUNWLElBQUksQ0FBQyxTQUFTO1NBQ2pCLENBQUMsQ0FBQyxJQUFJLENBQ0gsR0FBRyxDQUNDLENBQUMsQ0FBQyxTQUFTLEVBQUUsSUFBSSxFQUFFLFFBQVEsQ0FBQyxFQUFFLEVBQUUsQ0FDNUIsYUFBYSxTQUFTLFdBQVcsSUFBSSxZQUFZLFFBQVEsTUFBTSxDQUN0RSxDQUNKLENBQUM7UUFHSyxhQUFRLEdBQUcsSUFBSSxDQUFDO1FBR2hCLGNBQVMsR0FBRyxLQUFLLENBQUM7S0FrSTVCO0lBaElhLE1BQU07UUFDWixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssR0FBRyxjQUFjLENBQUMsQ0FBQztJQUMvRCxDQUFDO0lBRVMsS0FBSyxDQUFDLEtBQWdDO1FBQzVDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUNsQixJQUFJLENBQUMscUJBQXFCLENBQ3RCLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFDckMsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUN4QyxDQUNKLENBQUM7SUFDTixDQUFDO0lBRVMsVUFBVSxDQUFDLGNBQTJCO1FBQzVDLE1BQU0sRUFBQyxXQUFXLEVBQUUsWUFBWSxFQUFDLEdBQUcsY0FBYyxDQUFDO1FBRW5ELElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLFlBQVksQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFUyxNQUFNLENBQUMsRUFBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBZTtRQUNwRCxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDZixJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUM7U0FDN0M7SUFDTCxDQUFDO0lBRVMsUUFBUSxDQUFDLG9CQUFvRDtRQUNuRSxJQUFJLG9CQUFvQixDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDbkMsT0FBTztTQUNWO1FBRUQsTUFBTSxFQUFDLEtBQUssRUFBRSxNQUFNLEVBQUMsR0FBRyxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUM7UUFFNUQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVTLEtBQUs7UUFDWCxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDOUIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRVMsT0FBTyxDQUFDLElBQVk7UUFDMUIsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdEIsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQztRQUV2QyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVELElBQVksT0FBTztRQUNmLE1BQU0sT0FBTyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNyRSxNQUFNLE9BQU8sR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFdEUsT0FBTyxFQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUMsQ0FBQztJQUM5QixDQUFDO0lBRU8sZ0JBQWdCLENBQ3BCLGFBQXFCLEVBQ3JCLFlBQW9CLEVBQ3BCLFNBQWlCLEVBQ2pCLFFBQWdCO1FBRWhCLE1BQU0sT0FBTyxHQUNULGFBQWEsR0FBRyxTQUFTLEdBQUcsa0JBQWtCO1lBQzlDLFlBQVksR0FBRyxRQUFRLEdBQUcsa0JBQWtCLENBQUM7UUFDakQsTUFBTSxFQUFDLFlBQVksRUFBRSxXQUFXLEVBQUMsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBRTVDLE9BQU8sT0FBTztZQUNWLENBQUMsQ0FBQyxRQUFRLENBQ0osSUFBSSxDQUFDLEdBQUcsQ0FDSixDQUFDLFlBQVksR0FBRyxrQkFBa0IsQ0FBQyxHQUFHLGFBQWEsRUFDbkQsQ0FBQyxXQUFXLEdBQUcsa0JBQWtCLENBQUMsR0FBRyxZQUFZLENBQ3BELEVBQ0QsQ0FBQyxDQUNKO1lBQ0gsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNaLENBQUM7SUFFTyxPQUFPLENBQUMsS0FBYSxFQUFFLE1BQWM7UUFDekMsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDckIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQ2hDLE1BQU0sRUFDTixLQUFLLEVBQ0wsSUFBSSxDQUFDLEVBQUUsQ0FBQyxZQUFZLEVBQ3BCLElBQUksQ0FBQyxFQUFFLENBQUMsV0FBVyxDQUN0QixDQUFDO1FBQ0YsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzlCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDMUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUVPLFdBQVcsQ0FBQyxPQUFlLEVBQUUsT0FBZSxFQUFFLEtBQWE7UUFDL0QsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUM7UUFDbEMsTUFBTSxRQUFRLEdBQUcsUUFBUSxDQUFDLFFBQVEsR0FBRyxLQUFLLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQztRQUU3RCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsY0FBYyxDQUM5QixFQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUMsRUFDbEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQ3ZCLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUNuQixDQUFDO1FBRUYsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLFFBQVEsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsUUFBUSxDQUFDO1FBQzFELE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxRQUFRLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLFFBQVEsQ0FBQztRQUUxRCxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUMxQixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FDbEIsSUFBSSxDQUFDLHFCQUFxQixDQUN0QixJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLEVBQ2xDLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FDckMsQ0FDSixDQUFDO0lBQ04sQ0FBQztJQUVPLHFCQUFxQixDQUFDLENBQVMsRUFBRSxDQUFTO1FBQzlDLE1BQU0sRUFBQyxPQUFPLEVBQUUsT0FBTyxFQUFDLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQztRQUV4QyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsRUFBRSxRQUFRLENBQUMsQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDNUUsQ0FBQztJQUVPLGNBQWMsQ0FDbEIsRUFBQyxPQUFPLEVBQUUsT0FBTyxFQUFxQyxFQUN0RCxDQUFDLENBQUMsRUFBRSxDQUFDLENBQTRCLEVBQ2pDLEtBQWE7UUFFYixPQUFPO1lBQ0gsQ0FBQyxPQUFPLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQyxHQUFHLEtBQUs7WUFDL0MsQ0FBQyxPQUFPLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsWUFBWSxHQUFHLENBQUMsQ0FBQyxHQUFHLEtBQUs7U0FDbkQsQ0FBQztJQUNOLENBQUM7K0dBM0tRLG1CQUFtQjttR0FBbkIsbUJBQW1CLGlJQzdDaEMsd3FEQXdEQSx5dkJEM0JRLE9BQU8sNEVBQ1Asa0JBQWtCLG9RQUNsQixnQkFBZ0IsK0dBQ2hCLElBQUksd0ZBQ0osU0FBUyw4Q0FDVCxNQUFNLDBFQUNOLFNBQVMseVpBRVQsZ0JBQWdCLCtEQUNoQixjQUFjLG1IQUtOLENBQUMsYUFBYSxDQUFDOztTQUVsQixtQkFBbUI7NEZBQW5CLG1CQUFtQjtrQkFwQi9CLFNBQVM7aUNBQ00sSUFBSSxZQUNOLGFBQWEsV0FDZDt3QkFDTCxPQUFPO3dCQUNQLGtCQUFrQjt3QkFDbEIsZ0JBQWdCO3dCQUNoQixJQUFJO3dCQUNKLFNBQVM7d0JBQ1QsTUFBTTt3QkFDTixTQUFTO3dCQUNULE9BQU87d0JBQ1AsZ0JBQWdCO3dCQUNoQixjQUFjO3FCQUNqQixtQkFHZ0IsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxDQUFDLGFBQWEsQ0FBQzs4QkF5Q3BCLFFBQVE7c0JBRGQsS0FBSztnQkFJQyxTQUFTO3NCQURmLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0FzeW5jUGlwZSwgTmdJZn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgaW5qZWN0LCBJbnB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1dhTXV0YXRpb25PYnNlcnZlcn0gZnJvbSAnQG5nLXdlYi1hcGlzL211dGF0aW9uLW9ic2VydmVyJztcbmltcG9ydCB7V2FSZXNpemVPYnNlcnZlcn0gZnJvbSAnQG5nLXdlYi1hcGlzL3Jlc2l6ZS1vYnNlcnZlcic7XG5pbXBvcnQge1RVSV9GQUxTRV9IQU5ETEVSfSBmcm9tICdAdGFpZ2EtdWkvY2RrL2NvbnN0YW50cyc7XG5pbXBvcnQge1R1aVBhbn0gZnJvbSAnQHRhaWdhLXVpL2Nkay9kaXJlY3RpdmVzL3Bhbic7XG5pbXBvcnQgdHlwZSB7VHVpWm9vbUV2ZW50fSBmcm9tICdAdGFpZ2EtdWkvY2RrL2RpcmVjdGl2ZXMvem9vbSc7XG5pbXBvcnQge1R1aVpvb219IGZyb20gJ0B0YWlnYS11aS9jZGsvZGlyZWN0aXZlcy96b29tJztcbmltcG9ydCB7dHVpRHJhZ0FuZERyb3BGcm9tLCB0dWlUeXBlZEZyb21FdmVudH0gZnJvbSAnQHRhaWdhLXVpL2Nkay9vYnNlcnZhYmxlcyc7XG5pbXBvcnQge3R1aUluamVjdEVsZW1lbnR9IGZyb20gJ0B0YWlnYS11aS9jZGsvdXRpbHMvZG9tJztcbmltcG9ydCB7dHVpQ2xhbXAsIHR1aVJvdW5kfSBmcm9tICdAdGFpZ2EtdWkvY2RrL3V0aWxzL21hdGgnO1xuaW1wb3J0IHt0dWlQeH0gZnJvbSAnQHRhaWdhLXVpL2Nkay91dGlscy9taXNjZWxsYW5lb3VzJztcbmltcG9ydCB7dHVpU2xpZGVJblRvcH0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvYW5pbWF0aW9ucyc7XG5pbXBvcnQge1R1aUJ1dHRvbn0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvY29tcG9uZW50cy9idXR0b24nO1xuaW1wb3J0IHtUdWlIaW50fSBmcm9tICdAdGFpZ2EtdWkvY29yZS9kaXJlY3RpdmVzL2hpbnQnO1xuaW1wb3J0IHtUVUlfUFJFVklFV19JQ09OUywgVFVJX1BSRVZJRVdfVEVYVFN9IGZyb20gJ0B0YWlnYS11aS9raXQvdG9rZW5zJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBtYXAsIG1lcmdlLCBzdGFydFdpdGh9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQge1R1aVByZXZpZXdBY3Rpb259IGZyb20gJy4vcHJldmlldy1hY3Rpb24vcHJldmlldy1hY3Rpb24uZGlyZWN0aXZlJztcbmltcG9ydCB7VHVpUHJldmlld1pvb219IGZyb20gJy4vem9vbS9wcmV2aWV3LXpvb20uY29tcG9uZW50JztcblxuY29uc3QgSU5JVElBTF9TQ0FMRV9DT0VGID0gMC44O1xuY29uc3QgRU1QVFlfQ09PUkRJTkFURVM6IFtudW1iZXIsIG51bWJlcl0gPSBbMCwgMF07XG5jb25zdCBST1RBVElPTl9BTkdMRSA9IDkwO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAndHVpLXByZXZpZXcnLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgVHVpWm9vbSxcbiAgICAgICAgV2FNdXRhdGlvbk9ic2VydmVyLFxuICAgICAgICBXYVJlc2l6ZU9ic2VydmVyLFxuICAgICAgICBOZ0lmLFxuICAgICAgICBBc3luY1BpcGUsXG4gICAgICAgIFR1aVBhbixcbiAgICAgICAgVHVpQnV0dG9uLFxuICAgICAgICBUdWlIaW50LFxuICAgICAgICBUdWlQcmV2aWV3QWN0aW9uLFxuICAgICAgICBUdWlQcmV2aWV3Wm9vbSxcbiAgICBdLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9wcmV2aWV3LnRlbXBsYXRlLmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3ByZXZpZXcuc3R5bGUubGVzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGFuaW1hdGlvbnM6IFt0dWlTbGlkZUluVG9wXSxcbn0pXG5leHBvcnQgY2xhc3MgVHVpUHJldmlld0NvbXBvbmVudCB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBlbCA9IHR1aUluamVjdEVsZW1lbnQoKTtcblxuICAgIHByb3RlY3RlZCBtaW5ab29tID0gMTtcbiAgICBwcm90ZWN0ZWQgd2lkdGggPSAwO1xuICAgIHByb3RlY3RlZCBoZWlnaHQgPSAwO1xuICAgIHByb3RlY3RlZCByZWFkb25seSB0ZXh0cyQgPSBpbmplY3QoVFVJX1BSRVZJRVdfVEVYVFMpO1xuICAgIHByb3RlY3RlZCByZWFkb25seSBpY29ucyA9IGluamVjdChUVUlfUFJFVklFV19JQ09OUyk7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHpvb20kID0gbmV3IEJlaGF2aW9yU3ViamVjdDxudW1iZXI+KHRoaXMubWluWm9vbSk7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHJvdGF0aW9uJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPigwKTtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgY29vcmRpbmF0ZXMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxyZWFkb25seSBbbnVtYmVyLCBudW1iZXJdPihcbiAgICAgICAgRU1QVFlfQ09PUkRJTkFURVMsXG4gICAgKTtcblxuICAgIHByb3RlY3RlZCByZWFkb25seSB0cmFuc2l0aW9uZWQkID0gbWVyZ2UoXG4gICAgICAgIHR1aURyYWdBbmREcm9wRnJvbSh0aGlzLmVsKS5waXBlKG1hcCgoe3N0YWdlfSkgPT4gc3RhZ2UgIT09ICdjb250aW51ZXMnKSksXG4gICAgICAgIHR1aVR5cGVkRnJvbUV2ZW50KHRoaXMuZWwsICd0b3VjaG1vdmUnLCB7XG4gICAgICAgICAgICBwYXNzaXZlOiB0cnVlLFxuICAgICAgICB9KS5waXBlKG1hcChUVUlfRkFMU0VfSEFORExFUikpLFxuICAgICAgICB0dWlUeXBlZEZyb21FdmVudCh0aGlzLmVsLCAnd2hlZWwnLCB7cGFzc2l2ZTogdHJ1ZX0pLnBpcGUobWFwKFRVSV9GQUxTRV9IQU5ETEVSKSksXG4gICAgKTtcblxuICAgIHByb3RlY3RlZCByZWFkb25seSBjdXJzb3IkID0gdHVpRHJhZ0FuZERyb3BGcm9tKHRoaXMuZWwpLnBpcGUoXG4gICAgICAgIG1hcCgoe3N0YWdlfSkgPT4gKHN0YWdlID09PSAnY29udGludWVzJyA/ICdncmFiYmluZycgOiAnaW5pdGlhbCcpKSxcbiAgICAgICAgc3RhcnRXaXRoKCdpbml0aWFsJyksXG4gICAgKTtcblxuICAgIHByb3RlY3RlZCByZWFkb25seSB3cmFwcGVyVHJhbnNmb3JtJCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgICB0aGlzLmNvb3JkaW5hdGVzJC5waXBlKG1hcCgoW3gsIHldKSA9PiBgJHt0dWlQeCh4KX0sICR7dHVpUHgoeSl9YCkpLFxuICAgICAgICB0aGlzLnpvb20kLFxuICAgICAgICB0aGlzLnJvdGF0aW9uJCxcbiAgICBdKS5waXBlKFxuICAgICAgICBtYXAoXG4gICAgICAgICAgICAoW3RyYW5zbGF0ZSwgem9vbSwgcm90YXRpb25dKSA9PlxuICAgICAgICAgICAgICAgIGB0cmFuc2xhdGUoJHt0cmFuc2xhdGV9KSBzY2FsZSgke3pvb219KSByb3RhdGUoJHtyb3RhdGlvbn1kZWcpYCxcbiAgICAgICAgKSxcbiAgICApO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgem9vbWFibGUgPSB0cnVlO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgcm90YXRhYmxlID0gZmFsc2U7XG5cbiAgICBwcm90ZWN0ZWQgcm90YXRlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnJvdGF0aW9uJC5uZXh0KHRoaXMucm90YXRpb24kLnZhbHVlIC0gUk9UQVRJT05fQU5HTEUpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBvblBhbihkZWx0YTogcmVhZG9ubHkgW251bWJlciwgbnVtYmVyXSk6IHZvaWQge1xuICAgICAgICB0aGlzLmNvb3JkaW5hdGVzJC5uZXh0KFxuICAgICAgICAgICAgdGhpcy5nZXRHdWFyZGVkQ29vcmRpbmF0ZXMoXG4gICAgICAgICAgICAgICAgdGhpcy5jb29yZGluYXRlcyQudmFsdWVbMF0gKyBkZWx0YVswXSxcbiAgICAgICAgICAgICAgICB0aGlzLmNvb3JkaW5hdGVzJC52YWx1ZVsxXSArIGRlbHRhWzFdLFxuICAgICAgICAgICAgKSxcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb25NdXRhdGlvbihjb250ZW50V3JhcHBlcjogSFRNTEVsZW1lbnQpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qge2NsaWVudFdpZHRoLCBjbGllbnRIZWlnaHR9ID0gY29udGVudFdyYXBwZXI7XG5cbiAgICAgICAgdGhpcy5yZWZyZXNoKGNsaWVudFdpZHRoLCBjbGllbnRIZWlnaHQpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBvblpvb20oe2NsaWVudFgsIGNsaWVudFksIGRlbHRhfTogVHVpWm9vbUV2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLnpvb21hYmxlKSB7XG4gICAgICAgICAgICB0aGlzLnByb2Nlc3Nab29tKGNsaWVudFgsIGNsaWVudFksIGRlbHRhKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBvblJlc2l6ZShjb250ZW50UmVzaXplRW50cmllczogcmVhZG9ubHkgUmVzaXplT2JzZXJ2ZXJFbnRyeVtdKTogdm9pZCB7XG4gICAgICAgIGlmIChjb250ZW50UmVzaXplRW50cmllcy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHt3aWR0aCwgaGVpZ2h0fSA9IGNvbnRlbnRSZXNpemVFbnRyaWVzWzBdLmNvbnRlbnRSZWN0O1xuXG4gICAgICAgIHRoaXMucmVmcmVzaCh3aWR0aCwgaGVpZ2h0KTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgcmVzZXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuem9vbSQubmV4dCh0aGlzLm1pblpvb20pO1xuICAgICAgICB0aGlzLmNvb3JkaW5hdGVzJC5uZXh0KEVNUFRZX0NPT1JESU5BVEVTKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgc2V0Wm9vbSh6b29tOiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy56b29tJC5uZXh0KHpvb20pO1xuICAgICAgICBjb25zdCBbeCwgeV0gPSB0aGlzLmNvb3JkaW5hdGVzJC52YWx1ZTtcblxuICAgICAgICB0aGlzLmNvb3JkaW5hdGVzJC5uZXh0KHRoaXMuZ2V0R3VhcmRlZENvb3JkaW5hdGVzKHgsIHkpKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldCBvZmZzZXRzKCk6IHtvZmZzZXRYOiBudW1iZXI7IG9mZnNldFk6IG51bWJlcn0ge1xuICAgICAgICBjb25zdCBvZmZzZXRYID0gKCh0aGlzLnpvb20kLnZhbHVlIC0gdGhpcy5taW5ab29tKSAqIHRoaXMud2lkdGgpIC8gMjtcbiAgICAgICAgY29uc3Qgb2Zmc2V0WSA9ICgodGhpcy56b29tJC52YWx1ZSAtIHRoaXMubWluWm9vbSkgKiB0aGlzLmhlaWdodCkgLyAyO1xuXG4gICAgICAgIHJldHVybiB7b2Zmc2V0WCwgb2Zmc2V0WX07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjYWxjdWxhdGVNaW5ab29tKFxuICAgICAgICBjb250ZW50SGVpZ2h0OiBudW1iZXIsXG4gICAgICAgIGNvbnRlbnRXaWR0aDogbnVtYmVyLFxuICAgICAgICBib3hIZWlnaHQ6IG51bWJlcixcbiAgICAgICAgYm94V2lkdGg6IG51bWJlcixcbiAgICApOiBudW1iZXIge1xuICAgICAgICBjb25zdCBiaWdTaXplID1cbiAgICAgICAgICAgIGNvbnRlbnRIZWlnaHQgPiBib3hIZWlnaHQgKiBJTklUSUFMX1NDQUxFX0NPRUYgfHxcbiAgICAgICAgICAgIGNvbnRlbnRXaWR0aCA+IGJveFdpZHRoICogSU5JVElBTF9TQ0FMRV9DT0VGO1xuICAgICAgICBjb25zdCB7Y2xpZW50SGVpZ2h0LCBjbGllbnRXaWR0aH0gPSB0aGlzLmVsO1xuXG4gICAgICAgIHJldHVybiBiaWdTaXplXG4gICAgICAgICAgICA/IHR1aVJvdW5kKFxuICAgICAgICAgICAgICAgICAgTWF0aC5taW4oXG4gICAgICAgICAgICAgICAgICAgICAgKGNsaWVudEhlaWdodCAqIElOSVRJQUxfU0NBTEVfQ09FRikgLyBjb250ZW50SGVpZ2h0LFxuICAgICAgICAgICAgICAgICAgICAgIChjbGllbnRXaWR0aCAqIElOSVRJQUxfU0NBTEVfQ09FRikgLyBjb250ZW50V2lkdGgsXG4gICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICAgMixcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgOiAxO1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVmcmVzaCh3aWR0aDogbnVtYmVyLCBoZWlnaHQ6IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLndpZHRoID0gd2lkdGg7XG4gICAgICAgIHRoaXMuaGVpZ2h0ID0gaGVpZ2h0O1xuICAgICAgICB0aGlzLm1pblpvb20gPSB0aGlzLmNhbGN1bGF0ZU1pblpvb20oXG4gICAgICAgICAgICBoZWlnaHQsXG4gICAgICAgICAgICB3aWR0aCxcbiAgICAgICAgICAgIHRoaXMuZWwuY2xpZW50SGVpZ2h0LFxuICAgICAgICAgICAgdGhpcy5lbC5jbGllbnRXaWR0aCxcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy56b29tJC5uZXh0KHRoaXMubWluWm9vbSk7XG4gICAgICAgIHRoaXMuY29vcmRpbmF0ZXMkLm5leHQoRU1QVFlfQ09PUkRJTkFURVMpO1xuICAgICAgICB0aGlzLnJvdGF0aW9uJC5uZXh0KDApO1xuICAgIH1cblxuICAgIHByaXZhdGUgcHJvY2Vzc1pvb20oY2xpZW50WDogbnVtYmVyLCBjbGllbnRZOiBudW1iZXIsIGRlbHRhOiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgb2xkU2NhbGUgPSB0aGlzLnpvb20kLnZhbHVlO1xuICAgICAgICBjb25zdCBuZXdTY2FsZSA9IHR1aUNsYW1wKG9sZFNjYWxlICsgZGVsdGEsIHRoaXMubWluWm9vbSwgMik7XG5cbiAgICAgICAgY29uc3QgY2VudGVyID0gdGhpcy5nZXRTY2FsZUNlbnRlcihcbiAgICAgICAgICAgIHtjbGllbnRYLCBjbGllbnRZfSxcbiAgICAgICAgICAgIHRoaXMuY29vcmRpbmF0ZXMkLnZhbHVlLFxuICAgICAgICAgICAgdGhpcy56b29tJC52YWx1ZSxcbiAgICAgICAgKTtcblxuICAgICAgICBjb25zdCBtb3ZlWCA9IGNlbnRlclswXSAqIG9sZFNjYWxlIC0gY2VudGVyWzBdICogbmV3U2NhbGU7XG4gICAgICAgIGNvbnN0IG1vdmVZID0gY2VudGVyWzFdICogb2xkU2NhbGUgLSBjZW50ZXJbMV0gKiBuZXdTY2FsZTtcblxuICAgICAgICB0aGlzLnpvb20kLm5leHQobmV3U2NhbGUpO1xuICAgICAgICB0aGlzLmNvb3JkaW5hdGVzJC5uZXh0KFxuICAgICAgICAgICAgdGhpcy5nZXRHdWFyZGVkQ29vcmRpbmF0ZXMoXG4gICAgICAgICAgICAgICAgdGhpcy5jb29yZGluYXRlcyQudmFsdWVbMF0gKyBtb3ZlWCxcbiAgICAgICAgICAgICAgICB0aGlzLmNvb3JkaW5hdGVzJC52YWx1ZVsxXSArIG1vdmVZLFxuICAgICAgICAgICAgKSxcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldEd1YXJkZWRDb29yZGluYXRlcyh4OiBudW1iZXIsIHk6IG51bWJlcik6IHJlYWRvbmx5IFtudW1iZXIsIG51bWJlcl0ge1xuICAgICAgICBjb25zdCB7b2Zmc2V0WCwgb2Zmc2V0WX0gPSB0aGlzLm9mZnNldHM7XG5cbiAgICAgICAgcmV0dXJuIFt0dWlDbGFtcCh4LCAtb2Zmc2V0WCwgb2Zmc2V0WCksIHR1aUNsYW1wKHksIC1vZmZzZXRZLCBvZmZzZXRZKV07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRTY2FsZUNlbnRlcihcbiAgICAgICAge2NsaWVudFgsIGNsaWVudFl9OiB7Y2xpZW50WDogbnVtYmVyOyBjbGllbnRZOiBudW1iZXJ9LFxuICAgICAgICBbeCwgeV06IHJlYWRvbmx5IFtudW1iZXIsIG51bWJlcl0sXG4gICAgICAgIHNjYWxlOiBudW1iZXIsXG4gICAgKTogW251bWJlciwgbnVtYmVyXSB7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICAoY2xpZW50WCAtIHggLSB0aGlzLmVsLm9mZnNldFdpZHRoIC8gMikgLyBzY2FsZSxcbiAgICAgICAgICAgIChjbGllbnRZIC0geSAtIHRoaXMuZWwub2Zmc2V0SGVpZ2h0IC8gMikgLyBzY2FsZSxcbiAgICAgICAgXTtcbiAgICB9XG59XG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwidGV4dHMkIHwgYXN5bmMgYXMgdGV4dHNcIj5cbiAgICA8c2VjdGlvblxuICAgICAgICAjY29udGVudFdyYXBwZXJcbiAgICAgICAgYXR0cmlidXRlRmlsdGVyPVwic3JjXCJcbiAgICAgICAgY2hhcmFjdGVyRGF0YVxuICAgICAgICBjaGlsZExpc3RcbiAgICAgICAgc3VidHJlZVxuICAgICAgICBjbGFzcz1cInQtd3JhcHBlclwiXG4gICAgICAgIFtjbGFzcy50LW5vdC1pbnRlcmFjdGl2ZS1jb250ZW50XT1cInpvb21hYmxlXCJcbiAgICAgICAgW2NsYXNzLnQtdHJhbnNpdGl2ZV09XCJ0cmFuc2l0aW9uZWQkIHwgYXN5bmNcIlxuICAgICAgICBbc3R5bGUuY3Vyc29yXT1cImN1cnNvciQgfCBhc3luY1wiXG4gICAgICAgIFtzdHlsZS50cmFuc2Zvcm1dPVwid3JhcHBlclRyYW5zZm9ybSQgfCBhc3luY1wiXG4gICAgICAgICh0dWlQYW4pPVwib25QYW4oJGV2ZW50KVwiXG4gICAgICAgICh0dWlab29tKT1cIm9uWm9vbSgkZXZlbnQpXCJcbiAgICAgICAgKHdhTXV0YXRpb25PYnNlcnZlcik9XCJvbk11dGF0aW9uKGNvbnRlbnRXcmFwcGVyKVwiXG4gICAgICAgICh3YVJlc2l6ZU9ic2VydmVyKT1cIm9uUmVzaXplKCRldmVudClcIlxuICAgID5cbiAgICAgICAgPG5nLWNvbnRlbnQgLz5cbiAgICA8L3NlY3Rpb24+XG5cbiAgICA8aGVhZGVyIGNsYXNzPVwidC1oZWFkZXJcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInQtdGl0bGVcIj5cbiAgICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cInR1aS1wcmV2aWV3LXRpdGxlXCIgLz5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwidHVpLXByZXZpZXctcGFnaW5hdGlvblwiIC8+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cInQtYWN0aW9uc1wiPlxuICAgICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW3R1aVByZXZpZXdBY3Rpb25dXCIgLz5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9oZWFkZXI+XG5cbiAgICA8Zm9vdGVyIGNsYXNzPVwidC1mb290ZXJcIj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgKm5nSWY9XCJyb3RhdGFibGVcIlxuICAgICAgICAgICAgdHVpSGludEFwcGVhcmFuY2U9XCJkYXJrXCJcbiAgICAgICAgICAgIHR1aUhpbnREZXNjcmliZVxuICAgICAgICAgICAgdHVpSGludERpcmVjdGlvbj1cInRvcC1yaWdodFwiXG4gICAgICAgICAgICB0dWlJY29uQnV0dG9uXG4gICAgICAgICAgICB0dWlQcmV2aWV3QWN0aW9uXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIGNsYXNzPVwidC1yb3RhdGUtYnV0dG9uXCJcbiAgICAgICAgICAgIFtpY29uU3RhcnRdPVwiaWNvbnMucm90YXRlXCJcbiAgICAgICAgICAgIFt0dWlIaW50XT1cInRleHRzLnJvdGF0ZVwiXG4gICAgICAgICAgICAoY2xpY2spPVwicm90YXRlKClcIlxuICAgICAgICA+PC9idXR0b24+XG5cbiAgICAgICAgPHR1aS1wcmV2aWV3LXpvb21cbiAgICAgICAgICAgICpuZ0lmPVwiem9vbWFibGVcIlxuICAgICAgICAgICAgW21pbl09XCJtaW5ab29tXCJcbiAgICAgICAgICAgIFt2YWx1ZV09XCIoem9vbSQgfCBhc3luYykgfHwgMVwiXG4gICAgICAgICAgICAocmVzZXQpPVwicmVzZXQoKVwiXG4gICAgICAgICAgICAodmFsdWVDaGFuZ2UpPVwic2V0Wm9vbSgkZXZlbnQpXCJcbiAgICAgICAgLz5cbiAgICA8L2Zvb3Rlcj5cbjwvbmctY29udGFpbmVyPlxuIl19
|
|
139
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJldmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9raXQvY29tcG9uZW50cy9wcmV2aWV3L3ByZXZpZXcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2l0L2NvbXBvbmVudHMvcHJldmlldy9wcmV2aWV3LnRlbXBsYXRlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxJQUFJLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUNoRCxPQUFPLEVBQUMsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDaEYsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sZ0NBQWdDLENBQUM7QUFDbEUsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDOUQsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDMUQsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBRXBELE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQztBQUN0RCxPQUFPLEVBQUMsa0JBQWtCLEVBQUUsaUJBQWlCLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUNoRixPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUMsUUFBUSxFQUFFLFFBQVEsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQzVELE9BQU8sRUFBQyxLQUFLLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQztBQUN4RCxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDeEQsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGtDQUFrQyxDQUFDO0FBQzNELE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSxnQ0FB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K0dBQ2hCLElBQUksd0ZBQ0osU0FBUyw4Q0FDVCxNQUFNLDBFQUNOLFNBQVMseVpBRVQsZ0JBQWdCLCtEQUNoQixjQUFjLG1IQUtOLENBQUMsYUFBYSxDQUFDOztTQUVsQixtQkFBbUI7NEZBQW5CLG1CQUFtQjtrQkFwQi9CLFNBQVM7aUNBQ00sSUFBSSxZQUNOLGFBQWEsV0FDZDt3QkFDTCxPQUFPO3dCQUNQLGtCQUFrQjt3QkFDbEIsZ0JBQWdCO3dCQUNoQixJQUFJO3dCQUNKLFNBQVM7d0JBQ1QsTUFBTTt3QkFDTixTQUFTO3dCQUNULE9BQU87d0JBQ1AsZ0JBQWdCO3dCQUNoQixjQUFjO3FCQUNqQixtQkFHZ0IsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxDQUFDLGFBQWEsQ0FBQzs4QkF5Q3BCLFFBQVE7c0JBRGQsS0FBSztnQkFJQyxTQUFTO3NCQURmLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0FzeW5jUGlwZSwgTmdJZn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgaW5qZWN0LCBJbnB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1dhTXV0YXRpb25PYnNlcnZlcn0gZnJvbSAnQG5nLXdlYi1hcGlzL211dGF0aW9uLW9ic2VydmVyJztcbmltcG9ydCB7V2FSZXNpemVPYnNlcnZlcn0gZnJvbSAnQG5nLXdlYi1hcGlzL3Jlc2l6ZS1vYnNlcnZlcic7XG5pbXBvcnQge1RVSV9GQUxTRV9IQU5ETEVSfSBmcm9tICdAdGFpZ2EtdWkvY2RrL2NvbnN0YW50cyc7XG5pbXBvcnQge1R1aVBhbn0gZnJvbSAnQHRhaWdhLXVpL2Nkay9kaXJlY3RpdmVzL3Bhbic7XG5pbXBvcnQgdHlwZSB7VHVpWm9vbUV2ZW50fSBmcm9tICdAdGFpZ2EtdWkvY2RrL2RpcmVjdGl2ZXMvem9vbSc7XG5pbXBvcnQge1R1aVpvb219IGZyb20gJ0B0YWlnYS11aS9jZGsvZGlyZWN0aXZlcy96b29tJztcbmltcG9ydCB7dHVpRHJhZ0FuZERyb3BGcm9tLCB0dWlUeXBlZEZyb21FdmVudH0gZnJvbSAnQHRhaWdhLXVpL2Nkay9vYnNlcnZhYmxlcyc7XG5pbXBvcnQge3R1aUluamVjdEVsZW1lbnR9IGZyb20gJ0B0YWlnYS11aS9jZGsvdXRpbHMvZG9tJztcbmltcG9ydCB7dHVpQ2xhbXAsIHR1aVJvdW5kfSBmcm9tICdAdGFpZ2EtdWkvY2RrL3V0aWxzL21hdGgnO1xuaW1wb3J0IHt0dWlQeH0gZnJvbSAnQHRhaWdhLXVpL2Nkay91dGlscy9taXNjZWxsYW5lb3VzJztcbmltcG9ydCB7dHVpU2xpZGVJblRvcH0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvYW5pbWF0aW9ucyc7XG5pbXBvcnQge1R1aUJ1dHRvbn0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvY29tcG9uZW50cy9idXR0b24nO1xuaW1wb3J0IHtUdWlIaW50fSBmcm9tICdAdGFpZ2EtdWkvY29yZS9kaXJlY3RpdmVzL2hpbnQnO1xuaW1wb3J0IHtUVUlfUFJFVklFV19JQ09OUywgVFVJX1BSRVZJRVdfVEVYVFN9IGZyb20gJ0B0YWlnYS11aS9raXQvdG9rZW5zJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBtYXAsIG1lcmdlLCBzdGFydFdpdGh9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQge1R1aVByZXZpZXdBY3Rpb259IGZyb20gJy4vcHJldmlldy1hY3Rpb24vcHJldmlldy1hY3Rpb24uZGlyZWN0aXZlJztcbmltcG9ydCB7VHVpUHJldmlld1pvb219IGZyb20gJy4vem9vbS9wcmV2aWV3LXpvb20uY29tcG9uZW50JztcblxuY29uc3QgSU5JVElBTF9TQ0FMRV9DT0VGID0gMC44O1xuY29uc3QgRU1QVFlfQ09PUkRJTkFURVM6IFtudW1iZXIsIG51bWJlcl0gPSBbMCwgMF07XG5jb25zdCBST1RBVElPTl9BTkdMRSA9IDkwO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAndHVpLXByZXZpZXcnLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgVHVpWm9vbSxcbiAgICAgICAgV2FNdXRhdGlvbk9ic2VydmVyLFxuICAgICAgICBXYVJlc2l6ZU9ic2VydmVyLFxuICAgICAgICBOZ0lmLFxuICAgICAgICBBc3luY1BpcGUsXG4gICAgICAgIFR1aVBhbixcbiAgICAgICAgVHVpQnV0dG9uLFxuICAgICAgICBUdWlIaW50LFxuICAgICAgICBUdWlQcmV2aWV3QWN0aW9uLFxuICAgICAgICBUdWlQcmV2aWV3Wm9vbSxcbiAgICBdLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9wcmV2aWV3LnRlbXBsYXRlLmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3ByZXZpZXcuc3R5bGUubGVzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGFuaW1hdGlvbnM6IFt0dWlTbGlkZUluVG9wXSxcbn0pXG5leHBvcnQgY2xhc3MgVHVpUHJldmlld0NvbXBvbmVudCB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBlbCA9IHR1aUluamVjdEVsZW1lbnQoKTtcblxuICAgIHByb3RlY3RlZCBtaW5ab29tID0gMTtcbiAgICBwcm90ZWN0ZWQgd2lkdGggPSAwO1xuICAgIHByb3RlY3RlZCBoZWlnaHQgPSAwO1xuICAgIHByb3RlY3RlZCByZWFkb25seSB0ZXh0cyQgPSBpbmplY3QoVFVJX1BSRVZJRVdfVEVYVFMpO1xuICAgIHByb3RlY3RlZCByZWFkb25seSBpY29ucyA9IGluamVjdChUVUlfUFJFVklFV19JQ09OUyk7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHpvb20kID0gbmV3IEJlaGF2aW9yU3ViamVjdDxudW1iZXI+KHRoaXMubWluWm9vbSk7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHJvdGF0aW9uJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPigwKTtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgY29vcmRpbmF0ZXMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxyZWFkb25seSBbbnVtYmVyLCBudW1iZXJdPihcbiAgICAgICAgRU1QVFlfQ09PUkRJTkFURVMsXG4gICAgKTtcblxuICAgIHByb3RlY3RlZCByZWFkb25seSB0cmFuc2l0aW9uZWQkID0gbWVyZ2UoXG4gICAgICAgIHR1aURyYWdBbmREcm9wRnJvbSh0aGlzLmVsKS5waXBlKG1hcCgoe3N0YWdlfSkgPT4gc3RhZ2UgIT09ICdjb250aW51ZXMnKSksXG4gICAgICAgIHR1aVR5cGVkRnJvbUV2ZW50KHRoaXMuZWwsICd0b3VjaG1vdmUnLCB7XG4gICAgICAgICAgICBwYXNzaXZlOiB0cnVlLFxuICAgICAgICB9KS5waXBlKG1hcChUVUlfRkFMU0VfSEFORExFUikpLFxuICAgICAgICB0dWlUeXBlZEZyb21FdmVudCh0aGlzLmVsLCAnd2hlZWwnLCB7cGFzc2l2ZTogdHJ1ZX0pLnBpcGUobWFwKFRVSV9GQUxTRV9IQU5ETEVSKSksXG4gICAgKTtcblxuICAgIHByb3RlY3RlZCByZWFkb25seSBjdXJzb3IkID0gdHVpRHJhZ0FuZERyb3BGcm9tKHRoaXMuZWwpLnBpcGUoXG4gICAgICAgIG1hcCgoe3N0YWdlfSkgPT4gKHN0YWdlID09PSAnY29udGludWVzJyA/ICdncmFiYmluZycgOiAnaW5pdGlhbCcpKSxcbiAgICAgICAgc3RhcnRXaXRoKCdpbml0aWFsJyksXG4gICAgKTtcblxuICAgIHByb3RlY3RlZCByZWFkb25seSB3cmFwcGVyVHJhbnNmb3JtJCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgICB0aGlzLmNvb3JkaW5hdGVzJC5waXBlKG1hcCgoW3gsIHldKSA9PiBgJHt0dWlQeCh4KX0sICR7dHVpUHgoeSl9YCkpLFxuICAgICAgICB0aGlzLnpvb20kLFxuICAgICAgICB0aGlzLnJvdGF0aW9uJCxcbiAgICBdKS5waXBlKFxuICAgICAgICBtYXAoXG4gICAgICAgICAgICAoW3RyYW5zbGF0ZSwgem9vbSwgcm90YXRpb25dKSA9PlxuICAgICAgICAgICAgICAgIGB0cmFuc2xhdGUoJHt0cmFuc2xhdGV9KSBzY2FsZSgke3pvb219KSByb3RhdGUoJHtyb3RhdGlvbn1kZWcpYCxcbiAgICAgICAgKSxcbiAgICApO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgem9vbWFibGUgPSB0cnVlO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgcm90YXRhYmxlID0gZmFsc2U7XG5cbiAgICBwcm90ZWN0ZWQgcm90YXRlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnJvdGF0aW9uJC5uZXh0KHRoaXMucm90YXRpb24kLnZhbHVlIC0gUk9UQVRJT05fQU5HTEUpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBvblBhbihkZWx0YTogcmVhZG9ubHkgW251bWJlciwgbnVtYmVyXSk6IHZvaWQge1xuICAgICAgICB0aGlzLmNvb3JkaW5hdGVzJC5uZXh0KFxuICAgICAgICAgICAgdGhpcy5nZXRHdWFyZGVkQ29vcmRpbmF0ZXMoXG4gICAgICAgICAgICAgICAgdGhpcy5jb29yZGluYXRlcyQudmFsdWVbMF0gKyBkZWx0YVswXSxcbiAgICAgICAgICAgICAgICB0aGlzLmNvb3JkaW5hdGVzJC52YWx1ZVsxXSArIGRlbHRhWzFdLFxuICAgICAgICAgICAgKSxcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb25NdXRhdGlvbihjb250ZW50V3JhcHBlcjogSFRNTEVsZW1lbnQpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qge2NsaWVudFdpZHRoLCBjbGllbnRIZWlnaHR9ID0gY29udGVudFdyYXBwZXI7XG5cbiAgICAgICAgdGhpcy5yZWZyZXNoKGNsaWVudFdpZHRoLCBjbGllbnRIZWlnaHQpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBvblpvb20oe2NsaWVudFgsIGNsaWVudFksIGRlbHRhfTogVHVpWm9vbUV2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLnpvb21hYmxlKSB7XG4gICAgICAgICAgICB0aGlzLnByb2Nlc3Nab29tKGNsaWVudFgsIGNsaWVudFksIGRlbHRhKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBvblJlc2l6ZShbZW50cnldOiByZWFkb25seSBSZXNpemVPYnNlcnZlckVudHJ5W10pOiB2b2lkIHtcbiAgICAgICAgaWYgKGVudHJ5Py5jb250ZW50UmVjdCkge1xuICAgICAgICAgICAgdGhpcy5yZWZyZXNoKGVudHJ5LmNvbnRlbnRSZWN0LndpZHRoLCBlbnRyeS5jb250ZW50UmVjdC5oZWlnaHQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHJlc2V0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnpvb20kLm5leHQodGhpcy5taW5ab29tKTtcbiAgICAgICAgdGhpcy5jb29yZGluYXRlcyQubmV4dChFTVBUWV9DT09SRElOQVRFUyk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHNldFpvb20oem9vbTogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIHRoaXMuem9vbSQubmV4dCh6b29tKTtcbiAgICAgICAgY29uc3QgW3gsIHldID0gdGhpcy5jb29yZGluYXRlcyQudmFsdWU7XG5cbiAgICAgICAgdGhpcy5jb29yZGluYXRlcyQubmV4dCh0aGlzLmdldEd1YXJkZWRDb29yZGluYXRlcyh4LCB5KSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXQgb2Zmc2V0cygpOiB7b2Zmc2V0WDogbnVtYmVyOyBvZmZzZXRZOiBudW1iZXJ9IHtcbiAgICAgICAgY29uc3Qgb2Zmc2V0WCA9ICgodGhpcy56b29tJC52YWx1ZSAtIHRoaXMubWluWm9vbSkgKiB0aGlzLndpZHRoKSAvIDI7XG4gICAgICAgIGNvbnN0IG9mZnNldFkgPSAoKHRoaXMuem9vbSQudmFsdWUgLSB0aGlzLm1pblpvb20pICogdGhpcy5oZWlnaHQpIC8gMjtcblxuICAgICAgICByZXR1cm4ge29mZnNldFgsIG9mZnNldFl9O1xuICAgIH1cblxuICAgIHByaXZhdGUgY2FsY3VsYXRlTWluWm9vbShcbiAgICAgICAgY29udGVudEhlaWdodDogbnVtYmVyLFxuICAgICAgICBjb250ZW50V2lkdGg6IG51bWJlcixcbiAgICAgICAgYm94SGVpZ2h0OiBudW1iZXIsXG4gICAgICAgIGJveFdpZHRoOiBudW1iZXIsXG4gICAgKTogbnVtYmVyIHtcbiAgICAgICAgY29uc3QgYmlnU2l6ZSA9XG4gICAgICAgICAgICBjb250ZW50SGVpZ2h0ID4gYm94SGVpZ2h0ICogSU5JVElBTF9TQ0FMRV9DT0VGIHx8XG4gICAgICAgICAgICBjb250ZW50V2lkdGggPiBib3hXaWR0aCAqIElOSVRJQUxfU0NBTEVfQ09FRjtcbiAgICAgICAgY29uc3Qge2NsaWVudEhlaWdodCwgY2xpZW50V2lkdGh9ID0gdGhpcy5lbDtcblxuICAgICAgICByZXR1cm4gYmlnU2l6ZVxuICAgICAgICAgICAgPyB0dWlSb3VuZChcbiAgICAgICAgICAgICAgICAgIE1hdGgubWluKFxuICAgICAgICAgICAgICAgICAgICAgIChjbGllbnRIZWlnaHQgKiBJTklUSUFMX1NDQUxFX0NPRUYpIC8gY29udGVudEhlaWdodCxcbiAgICAgICAgICAgICAgICAgICAgICAoY2xpZW50V2lkdGggKiBJTklUSUFMX1NDQUxFX0NPRUYpIC8gY29udGVudFdpZHRoLFxuICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAgIDIsXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgIDogMTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHJlZnJlc2god2lkdGg6IG51bWJlciwgaGVpZ2h0OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy53aWR0aCA9IHdpZHRoO1xuICAgICAgICB0aGlzLmhlaWdodCA9IGhlaWdodDtcbiAgICAgICAgdGhpcy5taW5ab29tID0gdGhpcy5jYWxjdWxhdGVNaW5ab29tKFxuICAgICAgICAgICAgaGVpZ2h0LFxuICAgICAgICAgICAgd2lkdGgsXG4gICAgICAgICAgICB0aGlzLmVsLmNsaWVudEhlaWdodCxcbiAgICAgICAgICAgIHRoaXMuZWwuY2xpZW50V2lkdGgsXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuem9vbSQubmV4dCh0aGlzLm1pblpvb20pO1xuICAgICAgICB0aGlzLmNvb3JkaW5hdGVzJC5uZXh0KEVNUFRZX0NPT1JESU5BVEVTKTtcbiAgICAgICAgdGhpcy5yb3RhdGlvbiQubmV4dCgwKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHByb2Nlc3Nab29tKGNsaWVudFg6IG51bWJlciwgY2xpZW50WTogbnVtYmVyLCBkZWx0YTogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IG9sZFNjYWxlID0gdGhpcy56b29tJC52YWx1ZTtcbiAgICAgICAgY29uc3QgbmV3U2NhbGUgPSB0dWlDbGFtcChvbGRTY2FsZSArIGRlbHRhLCB0aGlzLm1pblpvb20sIDIpO1xuXG4gICAgICAgIGNvbnN0IGNlbnRlciA9IHRoaXMuZ2V0U2NhbGVDZW50ZXIoXG4gICAgICAgICAgICB7Y2xpZW50WCwgY2xpZW50WX0sXG4gICAgICAgICAgICB0aGlzLmNvb3JkaW5hdGVzJC52YWx1ZSxcbiAgICAgICAgICAgIHRoaXMuem9vbSQudmFsdWUsXG4gICAgICAgICk7XG5cbiAgICAgICAgY29uc3QgbW92ZVggPSBjZW50ZXJbMF0gKiBvbGRTY2FsZSAtIGNlbnRlclswXSAqIG5ld1NjYWxlO1xuICAgICAgICBjb25zdCBtb3ZlWSA9IGNlbnRlclsxXSAqIG9sZFNjYWxlIC0gY2VudGVyWzFdICogbmV3U2NhbGU7XG5cbiAgICAgICAgdGhpcy56b29tJC5uZXh0KG5ld1NjYWxlKTtcbiAgICAgICAgdGhpcy5jb29yZGluYXRlcyQubmV4dChcbiAgICAgICAgICAgIHRoaXMuZ2V0R3VhcmRlZENvb3JkaW5hdGVzKFxuICAgICAgICAgICAgICAgIHRoaXMuY29vcmRpbmF0ZXMkLnZhbHVlWzBdICsgbW92ZVgsXG4gICAgICAgICAgICAgICAgdGhpcy5jb29yZGluYXRlcyQudmFsdWVbMV0gKyBtb3ZlWSxcbiAgICAgICAgICAgICksXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRHdWFyZGVkQ29vcmRpbmF0ZXMoeDogbnVtYmVyLCB5OiBudW1iZXIpOiByZWFkb25seSBbbnVtYmVyLCBudW1iZXJdIHtcbiAgICAgICAgY29uc3Qge29mZnNldFgsIG9mZnNldFl9ID0gdGhpcy5vZmZzZXRzO1xuXG4gICAgICAgIHJldHVybiBbdHVpQ2xhbXAoeCwgLW9mZnNldFgsIG9mZnNldFgpLCB0dWlDbGFtcCh5LCAtb2Zmc2V0WSwgb2Zmc2V0WSldO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0U2NhbGVDZW50ZXIoXG4gICAgICAgIHtjbGllbnRYLCBjbGllbnRZfToge2NsaWVudFg6IG51bWJlcjsgY2xpZW50WTogbnVtYmVyfSxcbiAgICAgICAgW3gsIHldOiByZWFkb25seSBbbnVtYmVyLCBudW1iZXJdLFxuICAgICAgICBzY2FsZTogbnVtYmVyLFxuICAgICk6IFtudW1iZXIsIG51bWJlcl0ge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgKGNsaWVudFggLSB4IC0gdGhpcy5lbC5vZmZzZXRXaWR0aCAvIDIpIC8gc2NhbGUsXG4gICAgICAgICAgICAoY2xpZW50WSAtIHkgLSB0aGlzLmVsLm9mZnNldEhlaWdodCAvIDIpIC8gc2NhbGUsXG4gICAgICAgIF07XG4gICAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cInRleHRzJCB8IGFzeW5jIGFzIHRleHRzXCI+XG4gICAgPHNlY3Rpb25cbiAgICAgICAgI2NvbnRlbnRXcmFwcGVyXG4gICAgICAgIGF0dHJpYnV0ZUZpbHRlcj1cInNyY1wiXG4gICAgICAgIGNoYXJhY3RlckRhdGFcbiAgICAgICAgY2hpbGRMaXN0XG4gICAgICAgIHN1YnRyZWVcbiAgICAgICAgY2xhc3M9XCJ0LXdyYXBwZXJcIlxuICAgICAgICBbY2xhc3MudC1ub3QtaW50ZXJhY3RpdmUtY29udGVudF09XCJ6b29tYWJsZVwiXG4gICAgICAgIFtjbGFzcy50LXRyYW5zaXRpdmVdPVwidHJhbnNpdGlvbmVkJCB8IGFzeW5jXCJcbiAgICAgICAgW3N0eWxlLmN1cnNvcl09XCJjdXJzb3IkIHwgYXN5bmNcIlxuICAgICAgICBbc3R5bGUudHJhbnNmb3JtXT1cIndyYXBwZXJUcmFuc2Zvcm0kIHwgYXN5bmNcIlxuICAgICAgICAodHVpUGFuKT1cIm9uUGFuKCRldmVudClcIlxuICAgICAgICAodHVpWm9vbSk9XCJvblpvb20oJGV2ZW50KVwiXG4gICAgICAgICh3YU11dGF0aW9uT2JzZXJ2ZXIpPVwib25NdXRhdGlvbihjb250ZW50V3JhcHBlcilcIlxuICAgICAgICAod2FSZXNpemVPYnNlcnZlcik9XCJvblJlc2l6ZSgkZXZlbnQpXCJcbiAgICA+XG4gICAgICAgIDxuZy1jb250ZW50IC8+XG4gICAgPC9zZWN0aW9uPlxuXG4gICAgPGhlYWRlciBjbGFzcz1cInQtaGVhZGVyXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0LXRpdGxlXCI+XG4gICAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJ0dWktcHJldmlldy10aXRsZVwiIC8+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cInR1aS1wcmV2aWV3LXBhZ2luYXRpb25cIiAvPlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0LWFjdGlvbnNcIj5cbiAgICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIlt0dWlQcmV2aWV3QWN0aW9uXVwiIC8+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvaGVhZGVyPlxuXG4gICAgPGZvb3RlciBjbGFzcz1cInQtZm9vdGVyXCI+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICpuZ0lmPVwicm90YXRhYmxlXCJcbiAgICAgICAgICAgIHR1aUhpbnRBcHBlYXJhbmNlPVwiZGFya1wiXG4gICAgICAgICAgICB0dWlIaW50RGVzY3JpYmVcbiAgICAgICAgICAgIHR1aUhpbnREaXJlY3Rpb249XCJ0b3AtcmlnaHRcIlxuICAgICAgICAgICAgdHVpSWNvbkJ1dHRvblxuICAgICAgICAgICAgdHVpUHJldmlld0FjdGlvblxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICBjbGFzcz1cInQtcm90YXRlLWJ1dHRvblwiXG4gICAgICAgICAgICBbaWNvblN0YXJ0XT1cImljb25zLnJvdGF0ZVwiXG4gICAgICAgICAgICBbdHVpSGludF09XCJ0ZXh0cy5yb3RhdGVcIlxuICAgICAgICAgICAgKGNsaWNrKT1cInJvdGF0ZSgpXCJcbiAgICAgICAgPjwvYnV0dG9uPlxuXG4gICAgICAgIDx0dWktcHJldmlldy16b29tXG4gICAgICAgICAgICAqbmdJZj1cInpvb21hYmxlXCJcbiAgICAgICAgICAgIFttaW5dPVwibWluWm9vbVwiXG4gICAgICAgICAgICBbdmFsdWVdPVwiKHpvb20kIHwgYXN5bmMpIHx8IDFcIlxuICAgICAgICAgICAgKHJlc2V0KT1cInJlc2V0KClcIlxuICAgICAgICAgICAgKHZhbHVlQ2hhbmdlKT1cInNldFpvb20oJGV2ZW50KVwiXG4gICAgICAgIC8+XG4gICAgPC9mb290ZXI+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
|