@taiga-ui/kit 4.50.0 → 4.51.0-canary.d0d516e

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.
Files changed (80) hide show
  1. package/components/index.d.ts +2 -0
  2. package/components/input-number/quantum.directive.d.ts +9 -2
  3. package/components/input-range/index.d.ts +2 -0
  4. package/components/input-range/input-range.component.d.ts +75 -0
  5. package/components/input-range/input-range.d.ts +3 -0
  6. package/components/range/range.component.d.ts +6 -0
  7. package/components/slider/helpers/slider-key-steps.directive.d.ts +2 -1
  8. package/components/slides/index.d.ts +1 -0
  9. package/components/slides/slides.directive.d.ts +11 -0
  10. package/components/textarea/textarea-limit.directive.d.ts +0 -1
  11. package/directives/fade/fade.directive.d.ts +2 -1
  12. package/esm2022/components/avatar/avatar.component.mjs +3 -3
  13. package/esm2022/components/badged-content/badged-content.component.mjs +2 -3
  14. package/esm2022/components/combo-box/combo-box.directive.mjs +7 -3
  15. package/esm2022/components/confirm/confirm.component.mjs +3 -3
  16. package/esm2022/components/filter/filter.component.mjs +2 -3
  17. package/esm2022/components/index.mjs +3 -1
  18. package/esm2022/components/input-date-time/input-date-time.directive.mjs +7 -3
  19. package/esm2022/components/input-number/input-number.directive.mjs +8 -4
  20. package/esm2022/components/input-number/quantum.directive.mjs +23 -11
  21. package/esm2022/components/input-pin/input-pin.component.mjs +4 -3
  22. package/esm2022/components/input-range/index.mjs +3 -0
  23. package/esm2022/components/input-range/input-range.component.mjs +166 -0
  24. package/esm2022/components/input-range/input-range.mjs +4 -0
  25. package/esm2022/components/input-range/taiga-ui-kit-components-input-range.mjs +5 -0
  26. package/esm2022/components/input-time/input-time.directive.mjs +7 -3
  27. package/esm2022/components/radio-list/radio-list.component.mjs +3 -10
  28. package/esm2022/components/range/range.component.mjs +18 -7
  29. package/esm2022/components/slider/helpers/slider-key-steps.directive.mjs +3 -2
  30. package/esm2022/components/slides/index.mjs +2 -0
  31. package/esm2022/components/slides/slides.directive.mjs +51 -0
  32. package/esm2022/components/slides/taiga-ui-kit-components-slides.mjs +5 -0
  33. package/esm2022/components/stepper/step.component.mjs +3 -2
  34. package/esm2022/components/switch/switch.component.mjs +2 -2
  35. package/esm2022/components/textarea/textarea-limit.directive.mjs +3 -4
  36. package/esm2022/components/textarea/textarea.component.mjs +3 -3
  37. package/esm2022/directives/fade/fade.directive.mjs +5 -2
  38. package/esm2022/directives/skeleton/skeleton.directive.mjs +2 -2
  39. package/fesm2022/taiga-ui-kit-components-avatar.mjs +2 -2
  40. package/fesm2022/taiga-ui-kit-components-avatar.mjs.map +1 -1
  41. package/fesm2022/taiga-ui-kit-components-badged-content.mjs +19 -19
  42. package/fesm2022/taiga-ui-kit-components-badged-content.mjs.map +1 -1
  43. package/fesm2022/taiga-ui-kit-components-combo-box.mjs +6 -2
  44. package/fesm2022/taiga-ui-kit-components-combo-box.mjs.map +1 -1
  45. package/fesm2022/taiga-ui-kit-components-confirm.mjs +2 -2
  46. package/fesm2022/taiga-ui-kit-components-confirm.mjs.map +1 -1
  47. package/fesm2022/taiga-ui-kit-components-filter.mjs +1 -2
  48. package/fesm2022/taiga-ui-kit-components-filter.mjs.map +1 -1
  49. package/fesm2022/taiga-ui-kit-components-input-date-time.mjs +6 -2
  50. package/fesm2022/taiga-ui-kit-components-input-date-time.mjs.map +1 -1
  51. package/fesm2022/taiga-ui-kit-components-input-number.mjs +28 -13
  52. package/fesm2022/taiga-ui-kit-components-input-number.mjs.map +1 -1
  53. package/fesm2022/taiga-ui-kit-components-input-pin.mjs +3 -2
  54. package/fesm2022/taiga-ui-kit-components-input-pin.mjs.map +1 -1
  55. package/fesm2022/taiga-ui-kit-components-input-range.mjs +175 -0
  56. package/fesm2022/taiga-ui-kit-components-input-range.mjs.map +1 -0
  57. package/fesm2022/taiga-ui-kit-components-input-time.mjs +6 -2
  58. package/fesm2022/taiga-ui-kit-components-input-time.mjs.map +1 -1
  59. package/fesm2022/taiga-ui-kit-components-radio-list.mjs +2 -9
  60. package/fesm2022/taiga-ui-kit-components-radio-list.mjs.map +1 -1
  61. package/fesm2022/taiga-ui-kit-components-range.mjs +17 -6
  62. package/fesm2022/taiga-ui-kit-components-range.mjs.map +1 -1
  63. package/fesm2022/taiga-ui-kit-components-slider.mjs +2 -1
  64. package/fesm2022/taiga-ui-kit-components-slider.mjs.map +1 -1
  65. package/fesm2022/taiga-ui-kit-components-slides.mjs +57 -0
  66. package/fesm2022/taiga-ui-kit-components-slides.mjs.map +1 -0
  67. package/fesm2022/taiga-ui-kit-components-stepper.mjs +2 -1
  68. package/fesm2022/taiga-ui-kit-components-stepper.mjs.map +1 -1
  69. package/fesm2022/taiga-ui-kit-components-switch.mjs +2 -2
  70. package/fesm2022/taiga-ui-kit-components-switch.mjs.map +1 -1
  71. package/fesm2022/taiga-ui-kit-components-textarea.mjs +4 -5
  72. package/fesm2022/taiga-ui-kit-components-textarea.mjs.map +1 -1
  73. package/fesm2022/taiga-ui-kit-components.mjs +2 -0
  74. package/fesm2022/taiga-ui-kit-components.mjs.map +1 -1
  75. package/fesm2022/taiga-ui-kit-directives-fade.mjs +4 -1
  76. package/fesm2022/taiga-ui-kit-directives-fade.mjs.map +1 -1
  77. package/fesm2022/taiga-ui-kit-directives-skeleton.mjs +1 -1
  78. package/fesm2022/taiga-ui-kit-directives-skeleton.mjs.map +1 -1
  79. package/package.json +22 -10
  80. package/styles/components/switch.less +2 -1
@@ -0,0 +1,166 @@
1
+ import { NgIf } from '@angular/common';
2
+ import { ChangeDetectionStrategy, Component, computed, ElementRef, inject, Input, signal, ViewChild, ViewChildren, } from '@angular/core';
3
+ import { FormsModule } from '@angular/forms';
4
+ import { TUI_IDENTITY_VALUE_TRANSFORMER, tuiAsControl, TuiControl, } from '@taiga-ui/cdk/classes';
5
+ import { EMPTY_QUERY } from '@taiga-ui/cdk/constants';
6
+ import { TUI_IS_MOBILE, tuiFallbackValueProvider } from '@taiga-ui/cdk/tokens';
7
+ import { tuiIsNativeFocused } from '@taiga-ui/cdk/utils/focus';
8
+ import { TUI_TEXTFIELD_OPTIONS, TuiTextfield } from '@taiga-ui/core/components/textfield';
9
+ import { TuiInputNumber, TuiInputNumberDirective, TuiQuantumValueTransformerBase, } from '@taiga-ui/kit/components/input-number';
10
+ import { TuiRange } from '@taiga-ui/kit/components/range';
11
+ import { tuiSliderOptionsProvider, } from '@taiga-ui/kit/components/slider';
12
+ import { PolymorpheusOutlet } from '@taiga-ui/polymorpheus';
13
+ import * as i0 from "@angular/core";
14
+ import * as i1 from "@angular/forms";
15
+ import * as i2 from "@taiga-ui/kit/components/input-number";
16
+ import * as i3 from "@taiga-ui/core/components/textfield";
17
+ class TuiInputRangeComponent extends TuiControl {
18
+ constructor() {
19
+ super(...arguments);
20
+ this.inputNumberRefs = EMPTY_QUERY;
21
+ this.isMobile = inject(TUI_IS_MOBILE);
22
+ this.quantum = signal(0);
23
+ this.quantumTransformer = computed((quantum = this.quantum()) => quantum
24
+ ? new TuiQuantumValueTransformerBase(quantum)
25
+ : TUI_IDENTITY_VALUE_TRANSFORMER);
26
+ this.size = inject(TUI_TEXTFIELD_OPTIONS).size;
27
+ this.textfieldValueStart = this.value()[0];
28
+ this.textfieldValueEnd = this.value()[1];
29
+ this.lastActiveSide = 'start';
30
+ this.min = 0;
31
+ this.max = 100;
32
+ this.step = 1;
33
+ this.segments = 1;
34
+ this.keySteps = null;
35
+ this.content = ['', ''];
36
+ this.prefix = ['', ''];
37
+ this.postfix = ['', ''];
38
+ }
39
+ // TODO(v5): use signal inputs
40
+ set quantumSetter(x) {
41
+ this.quantum.set(x);
42
+ }
43
+ writeValue(value) {
44
+ super.writeValue(value);
45
+ this.setTextfieldValues(this.value());
46
+ }
47
+ ngAfterViewInit() {
48
+ if (this.range) {
49
+ this.range.legacyMode = false; // TODO(v5): remove backward compatibility
50
+ }
51
+ }
52
+ get hideStartContent() {
53
+ return !this.content[0] || tuiIsNativeFocused(this.textfieldStart);
54
+ }
55
+ get hideEndContent() {
56
+ return !this.content[1] || tuiIsNativeFocused(this.textfieldEnd);
57
+ }
58
+ takeStep(event, coefficients) {
59
+ if (!this.interactive() || !this.range) {
60
+ return;
61
+ }
62
+ event.preventDefault();
63
+ const [start, end] = this.value();
64
+ const newValue = this.valueGuard(this.range.takeStep(coefficients));
65
+ if (newValue[0] !== start || newValue[1] !== end) {
66
+ this.onExternalValueUpdate(newValue);
67
+ }
68
+ }
69
+ onInput([start, end]) {
70
+ const [prevStart, prevEnd] = this.value();
71
+ this.setValue([start ?? prevStart, end ?? prevEnd]);
72
+ }
73
+ onExternalValueUpdate(value) {
74
+ this.setValue(value);
75
+ this.setTextfieldValues(this.value());
76
+ setTimeout((end = Number.MAX_SAFE_INTEGER) => {
77
+ if (tuiIsNativeFocused(this.activeTextfield)) {
78
+ this.activeTextfield?.setSelectionRange(end, end);
79
+ }
80
+ });
81
+ }
82
+ focusToTextfield() {
83
+ if (!this.isMobile) {
84
+ this.activeTextfield?.focus();
85
+ }
86
+ }
87
+ onActiveThumbChange(activeThumb) {
88
+ // TODO(v5): remove backward compatibility
89
+ this.lastActiveSide = activeThumb === 'left' ? 'start' : 'end';
90
+ }
91
+ setTextfieldValues([start, end]) {
92
+ this.textfieldValueStart = start;
93
+ this.textfieldValueEnd = end;
94
+ }
95
+ get textfieldStart() {
96
+ return this.inputNumberRefs.first?.nativeElement || null;
97
+ }
98
+ get textfieldEnd() {
99
+ return this.inputNumberRefs.last?.nativeElement || null;
100
+ }
101
+ get activeTextfield() {
102
+ return this.lastActiveSide === 'start' ? this.textfieldStart : this.textfieldEnd;
103
+ }
104
+ setValue(value) {
105
+ this.onChange(this.valueGuard(value));
106
+ }
107
+ valueGuard(value) {
108
+ const [prevStart, prevEnd] = this.value();
109
+ const [start, end] = value.map((x) => this.quantumTransformer().toControlValue(x) ?? x);
110
+ return [Math.min(start, prevEnd), Math.max(end, prevStart)];
111
+ }
112
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiInputRangeComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
113
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "16.2.12", type: TuiInputRangeComponent, isStandalone: true, selector: "tui-input-range", inputs: { min: "min", max: "max", step: "step", segments: "segments", keySteps: "keySteps", content: "content", prefix: ["prefix", "prefix", (x) => x ?? ['', '']], postfix: ["postfix", "postfix", (x) => x ?? ['', '']], quantumSetter: ["quantum", "quantumSetter"] }, host: { attributes: { "new": "" }, properties: { "attr.data-size": "size()" } }, providers: [
114
+ tuiAsControl(TuiInputRangeComponent),
115
+ tuiSliderOptionsProvider({ trackColor: 'transparent' }),
116
+ tuiFallbackValueProvider([0, 0]),
117
+ ], viewQueries: [{ propertyName: "range", first: true, predicate: TuiRange, descendants: true }, { propertyName: "inputNumberRefs", predicate: TuiInputNumberDirective, descendants: true, read: ElementRef }], usesInheritance: true, ngImport: i0, template: "<tui-textfield [content]=\"hideStartContent ? '' : content[0]\">\n <ng-container ngProjectAs=\"label\">\n <ng-content select=\"label\" />\n </ng-container>\n\n <input\n tuiInputNumber\n [disabled]=\"disabled()\"\n [invalid]=\"invalid()\"\n [max]=\"value()[1]\"\n [min]=\"min\"\n [postfix]=\"postfix[0]\"\n [prefix]=\"prefix[0]\"\n [readOnly]=\"readOnly()\"\n [(ngModel)]=\"textfieldValueStart\"\n (blur)=\"textfieldValueStart = value()[0]\"\n (keydown.arrowDown)=\"takeStep($event, [-1, 0])\"\n (keydown.arrowUp)=\"takeStep($event, [1, 0])\"\n (ngModelChange)=\"onInput([$event, null])\"\n />\n\n <input\n tuiInputNumber\n tuiTextfieldAppearance=\"none\"\n class=\"t-end\"\n [class._hidden]=\"!hideEndContent\"\n [disabled]=\"disabled()\"\n [invalid]=\"invalid()\"\n [max]=\"max\"\n [min]=\"value()[0]\"\n [postfix]=\"postfix[1]\"\n [prefix]=\"prefix[1]\"\n [readOnly]=\"readOnly()\"\n [(ngModel)]=\"textfieldValueEnd\"\n (blur)=\"textfieldValueEnd = value()[1]\"\n (keydown.arrowDown)=\"takeStep($event, [0, -1])\"\n (keydown.arrowUp)=\"takeStep($event, [0, 1])\"\n (ngModelChange)=\"onInput([null, $event])\"\n />\n\n <div\n class=\"t-content-end\"\n [class._hidden]=\"hideEndContent\"\n >\n <ng-container *polymorpheusOutlet=\"content[1] as text; context: {$implicit: value()[1]}\">\n {{ text }}\n </ng-container>\n </div>\n</tui-textfield>\n\n<tui-range\n *ngIf=\"interactive()\"\n [focusable]=\"false\"\n [keySteps]=\"keySteps\"\n [max]=\"max\"\n [min]=\"min\"\n [ngModel]=\"value()\"\n [segments]=\"segments\"\n [step]=\"step\"\n (activeThumbChange)=\"onActiveThumbChange($event)\"\n (mousedown.prevent)=\"focusToTextfield()\"\n (ngModelChange)=\"onExternalValueUpdate($event)\"\n/>\n", styles: [":host{position:relative;display:block}.t-end{position:absolute;top:0;bottom:0;right:0;left:50%;display:flex;inline-size:50%;text-align:end;outline:none!important;border:none;padding-inline-end:var(--t-padding);color:var(--tui-text-primary);transition:none}.t-end:dir(rtl){right:unset;inset-inline-end:0}.t-content-end{color:var(--tui-text-primary)}tui-textfield:has(label:not(:empty)) .t-content-end{padding-block-start:calc(var(--t-height) / 3)}tui-textfield._with-label .t-content-end{padding-block-start:calc(var(--t-height) / 3)}._hidden{opacity:0}tui-range{position:absolute;top:100%;left:1rem;right:1rem;z-index:1;margin:calc(-1 * var(--tui-thickness)) 0 0}:host[data-size=m] tui-range{right:.75rem;left:.75rem}:host[data-size=s] tui-range{right:.625rem;left:.625rem}tui-textfield::ng-deep .t-clear{display:none!important}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: PolymorpheusOutlet, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }, { kind: "directive", type: i2.TuiInputNumberDirective, selector: "input[tuiInputNumber]", inputs: ["min", "max", "prefix", "postfix"] }, { kind: "component", type: TuiRange, selector: "tui-range", inputs: ["min", "max", "step", "size", "segments", "keySteps", "focusable", "margin", "limit"] }, { kind: "component", type: i3.TuiTextfieldComponent, selector: "tui-textfield:not([multi])" }, { kind: "directive", type: i3.TuiTextfieldOptionsDirective, selector: "[tuiTextfieldAppearance],[tuiTextfieldSize],[tuiTextfieldCleaner]", inputs: ["tuiTextfieldAppearance", "tuiTextfieldSize", "tuiTextfieldCleaner"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
118
+ }
119
+ export { TuiInputRangeComponent };
120
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiInputRangeComponent, decorators: [{
121
+ type: Component,
122
+ args: [{ standalone: true, selector: 'tui-input-range', imports: [
123
+ FormsModule,
124
+ NgIf,
125
+ PolymorpheusOutlet,
126
+ TuiInputNumber,
127
+ TuiRange,
128
+ TuiTextfield,
129
+ ], changeDetection: ChangeDetectionStrategy.OnPush, providers: [
130
+ tuiAsControl(TuiInputRangeComponent),
131
+ tuiSliderOptionsProvider({ trackColor: 'transparent' }),
132
+ tuiFallbackValueProvider([0, 0]),
133
+ ], host: {
134
+ new: '',
135
+ // TODO: use css :host:has(tui-textfield[data-size]) after browser bump
136
+ '[attr.data-size]': 'size()',
137
+ }, template: "<tui-textfield [content]=\"hideStartContent ? '' : content[0]\">\n <ng-container ngProjectAs=\"label\">\n <ng-content select=\"label\" />\n </ng-container>\n\n <input\n tuiInputNumber\n [disabled]=\"disabled()\"\n [invalid]=\"invalid()\"\n [max]=\"value()[1]\"\n [min]=\"min\"\n [postfix]=\"postfix[0]\"\n [prefix]=\"prefix[0]\"\n [readOnly]=\"readOnly()\"\n [(ngModel)]=\"textfieldValueStart\"\n (blur)=\"textfieldValueStart = value()[0]\"\n (keydown.arrowDown)=\"takeStep($event, [-1, 0])\"\n (keydown.arrowUp)=\"takeStep($event, [1, 0])\"\n (ngModelChange)=\"onInput([$event, null])\"\n />\n\n <input\n tuiInputNumber\n tuiTextfieldAppearance=\"none\"\n class=\"t-end\"\n [class._hidden]=\"!hideEndContent\"\n [disabled]=\"disabled()\"\n [invalid]=\"invalid()\"\n [max]=\"max\"\n [min]=\"value()[0]\"\n [postfix]=\"postfix[1]\"\n [prefix]=\"prefix[1]\"\n [readOnly]=\"readOnly()\"\n [(ngModel)]=\"textfieldValueEnd\"\n (blur)=\"textfieldValueEnd = value()[1]\"\n (keydown.arrowDown)=\"takeStep($event, [0, -1])\"\n (keydown.arrowUp)=\"takeStep($event, [0, 1])\"\n (ngModelChange)=\"onInput([null, $event])\"\n />\n\n <div\n class=\"t-content-end\"\n [class._hidden]=\"hideEndContent\"\n >\n <ng-container *polymorpheusOutlet=\"content[1] as text; context: {$implicit: value()[1]}\">\n {{ text }}\n </ng-container>\n </div>\n</tui-textfield>\n\n<tui-range\n *ngIf=\"interactive()\"\n [focusable]=\"false\"\n [keySteps]=\"keySteps\"\n [max]=\"max\"\n [min]=\"min\"\n [ngModel]=\"value()\"\n [segments]=\"segments\"\n [step]=\"step\"\n (activeThumbChange)=\"onActiveThumbChange($event)\"\n (mousedown.prevent)=\"focusToTextfield()\"\n (ngModelChange)=\"onExternalValueUpdate($event)\"\n/>\n", styles: [":host{position:relative;display:block}.t-end{position:absolute;top:0;bottom:0;right:0;left:50%;display:flex;inline-size:50%;text-align:end;outline:none!important;border:none;padding-inline-end:var(--t-padding);color:var(--tui-text-primary);transition:none}.t-end:dir(rtl){right:unset;inset-inline-end:0}.t-content-end{color:var(--tui-text-primary)}tui-textfield:has(label:not(:empty)) .t-content-end{padding-block-start:calc(var(--t-height) / 3)}tui-textfield._with-label .t-content-end{padding-block-start:calc(var(--t-height) / 3)}._hidden{opacity:0}tui-range{position:absolute;top:100%;left:1rem;right:1rem;z-index:1;margin:calc(-1 * var(--tui-thickness)) 0 0}:host[data-size=m] tui-range{right:.75rem;left:.75rem}:host[data-size=s] tui-range{right:.625rem;left:.625rem}tui-textfield::ng-deep .t-clear{display:none!important}\n"] }]
138
+ }], propDecorators: { inputNumberRefs: [{
139
+ type: ViewChildren,
140
+ args: [TuiInputNumberDirective, { read: ElementRef }]
141
+ }], range: [{
142
+ type: ViewChild,
143
+ args: [TuiRange]
144
+ }], min: [{
145
+ type: Input
146
+ }], max: [{
147
+ type: Input
148
+ }], step: [{
149
+ type: Input
150
+ }], segments: [{
151
+ type: Input
152
+ }], keySteps: [{
153
+ type: Input
154
+ }], content: [{
155
+ type: Input
156
+ }], prefix: [{
157
+ type: Input,
158
+ args: [{ transform: (x) => x ?? ['', ''] }]
159
+ }], postfix: [{
160
+ type: Input,
161
+ args: [{ transform: (x) => x ?? ['', ''] }]
162
+ }], quantumSetter: [{
163
+ type: Input,
164
+ args: ['quantum']
165
+ }] } });
166
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtcmFuZ2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2l0L2NvbXBvbmVudHMvaW5wdXQtcmFuZ2UvaW5wdXQtcmFuZ2UuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2l0L2NvbXBvbmVudHMvaW5wdXQtcmFuZ2UvaW5wdXQtcmFuZ2UudGVtcGxhdGUuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDckMsT0FBTyxFQUVILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsUUFBUSxFQUNSLFVBQVUsRUFDVixNQUFNLEVBQ04sS0FBSyxFQUVMLE1BQU0sRUFDTixTQUFTLEVBQ1QsWUFBWSxHQUNmLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQ0gsOEJBQThCLEVBQzlCLFlBQVksRUFDWixVQUFVLEdBQ2IsTUFBTSx1QkFBdUIsQ0FBQztBQUMvQixPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDcEQsT0FBTyxFQUFDLGFBQWEsRUFBRSx3QkFBd0IsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBRTdFLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQzdELE9BQU8sRUFBQyxxQkFBcUIsRUFBRSxZQUFZLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUN4RixPQUFPLEVBQ0gsY0FBYyxFQUNkLHVCQUF1QixFQUN2Qiw4QkFBOEIsR0FDakMsTUFBTSx1Q0FBdUMsQ0FBQztBQUMvQyxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sZ0NBQWdDLENBQUM7QUFDeEQsT0FBTyxFQUVILHdCQUF3QixHQUMzQixNQUFNLGlDQUFpQyxDQUFDO0FBQ3pDLE9BQU8sRUFB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TUFBTTtzQkFEWixLQUFLO3VCQUFDLEVBQUMsU0FBUyxFQUFFLENBQUMsQ0FBbUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFDO2dCQUluRSxPQUFPO3NCQURiLEtBQUs7dUJBQUMsRUFBQyxTQUFTLEVBQUUsQ0FBQyxDQUFtQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUM7Z0JBSy9ELGFBQWE7c0JBRHZCLEtBQUs7dUJBQUMsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TmdJZn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gICAgdHlwZSBBZnRlclZpZXdJbml0LFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBjb21wdXRlZCxcbiAgICBFbGVtZW50UmVmLFxuICAgIGluamVjdCxcbiAgICBJbnB1dCxcbiAgICB0eXBlIFF1ZXJ5TGlzdCxcbiAgICBzaWduYWwsXG4gICAgVmlld0NoaWxkLFxuICAgIFZpZXdDaGlsZHJlbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0Zvcm1zTW9kdWxlfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge1xuICAgIFRVSV9JREVOVElUWV9WQUxVRV9UUkFOU0ZPUk1FUixcbiAgICB0dWlBc0NvbnRyb2wsXG4gICAgVHVpQ29udHJvbCxcbn0gZnJvbSAnQHRhaWdhLXVpL2Nkay9jbGFzc2VzJztcbmltcG9ydCB7RU1QVFlfUVVFUll9IGZyb20gJ0B0YWlnYS11aS9jZGsvY29uc3RhbnRzJztcbmltcG9ydCB7VFVJX0lTX01PQklMRSwgdHVpRmFsbGJhY2tWYWx1ZVByb3ZpZGVyfSBmcm9tICdAdGFpZ2EtdWkvY2RrL3Rva2Vucyc7XG5pbXBvcnQge3R5cGUgVHVpQ29udGV4dH0gZnJvbSAnQHRhaWdhLXVpL2Nkay90eXBlcyc7XG5pbXBvcnQge3R1aUlzTmF0aXZlRm9jdXNlZH0gZnJvbSAnQHRhaWdhLXVpL2Nkay91dGlscy9mb2N1cyc7XG5pbXBvcnQge1RVSV9URVhURklFTERfT1BUSU9OUywgVHVpVGV4dGZpZWxkfSBmcm9tICdAdGFpZ2EtdWkvY29yZS9jb21wb25lbnRzL3RleHRmaWVsZCc7XG5pbXBvcnQge1xuICAgIFR1aUlucHV0TnVtYmVyLFxuICAgIFR1aUlucHV0TnVtYmVyRGlyZWN0aXZlLFxuICAgIFR1aVF1YW50dW1WYWx1ZVRyYW5zZm9ybWVyQmFzZSxcbn0gZnJvbSAnQHRhaWdhLXVpL2tpdC9jb21wb25lbnRzL2lucHV0LW51bWJlcic7XG5pbXBvcnQge1R1aVJhbmdlfSBmcm9tICdAdGFpZ2EtdWkva2l0L2NvbXBvbmVudHMvcmFuZ2UnO1xuaW1wb3J0IHtcbiAgICB0eXBlIFR1aUtleVN0ZXBzLFxuICAgIHR1aVNsaWRlck9wdGlvbnNQcm92aWRlcixcbn0gZnJvbSAnQHRhaWdhLXVpL2tpdC9jb21wb25lbnRzL3NsaWRlcic7XG5pbXBvcnQge3R5cGUgUG9seW1vcnBoZXVzQ29udGVudCwgUG9seW1vcnBoZXVzT3V0bGV0fSBmcm9tICdAdGFpZ2EtdWkvcG9seW1vcnBoZXVzJztcblxuQENvbXBvbmVudCh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBzZWxlY3RvcjogJ3R1aS1pbnB1dC1yYW5nZScsXG4gICAgaW1wb3J0czogW1xuICAgICAgICBGb3Jtc01vZHVsZSxcbiAgICAgICAgTmdJZixcbiAgICAgICAgUG9seW1vcnBoZXVzT3V0bGV0LFxuICAgICAgICBUdWlJbnB1dE51bWJlcixcbiAgICAgICAgVHVpUmFuZ2UsXG4gICAgICAgIFR1aVRleHRmaWVsZCxcbiAgICBdLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9pbnB1dC1yYW5nZS50ZW1wbGF0ZS5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9pbnB1dC1yYW5nZS5zdHlsZS5sZXNzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHR1aUFzQ29udHJvbChUdWlJbnB1dFJhbmdlQ29tcG9uZW50KSxcbiAgICAgICAgdHVpU2xpZGVyT3B0aW9uc1Byb3ZpZGVyKHt0cmFja0NvbG9yOiAndHJhbnNwYXJlbnQnfSksXG4gICAgICAgIHR1aUZhbGxiYWNrVmFsdWVQcm92aWRlcihbMCwgMF0pLFxuICAgIF0sXG4gICAgaG9zdDoge1xuICAgICAgICBuZXc6ICcnLCAvLyBUT0RPKHY1KTogcmVtb3ZlIGFmdGVyIGRlbGV0aW9uIG9mIGxlZ2FjeSBjb250cm9sXG4gICAgICAgIC8vIFRPRE86IHVzZSBjc3MgOmhvc3Q6aGFzKHR1aS10ZXh0ZmllbGRbZGF0YS1zaXplXSkgYWZ0ZXIgYnJvd3NlciBidW1wXG4gICAgICAgICdbYXR0ci5kYXRhLXNpemVdJzogJ3NpemUoKScsXG4gICAgfSxcbn0pXG5leHBvcnQgY2xhc3MgVHVpSW5wdXRSYW5nZUNvbXBvbmVudFxuICAgIGV4dGVuZHMgVHVpQ29udHJvbDxyZWFkb25seSBbbnVtYmVyLCBudW1iZXJdPlxuICAgIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdFxue1xuICAgIEBWaWV3Q2hpbGRyZW4oVHVpSW5wdXROdW1iZXJEaXJlY3RpdmUsIHtyZWFkOiBFbGVtZW50UmVmfSlcbiAgICBwcml2YXRlIHJlYWRvbmx5IGlucHV0TnVtYmVyUmVmczogUXVlcnlMaXN0PEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD4+ID1cbiAgICAgICAgRU1QVFlfUVVFUlk7XG5cbiAgICBAVmlld0NoaWxkKFR1aVJhbmdlKVxuICAgIHByaXZhdGUgcmVhZG9ubHkgcmFuZ2U/OiBUdWlSYW5nZTtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgaXNNb2JpbGUgPSBpbmplY3QoVFVJX0lTX01PQklMRSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBxdWFudHVtID0gc2lnbmFsKDApO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgcXVhbnR1bVRyYW5zZm9ybWVyID0gY29tcHV0ZWQoKHF1YW50dW0gPSB0aGlzLnF1YW50dW0oKSkgPT5cbiAgICAgICAgcXVhbnR1bVxuICAgICAgICAgICAgPyBuZXcgVHVpUXVhbnR1bVZhbHVlVHJhbnNmb3JtZXJCYXNlKHF1YW50dW0pXG4gICAgICAgICAgICA6IFRVSV9JREVOVElUWV9WQUxVRV9UUkFOU0ZPUk1FUixcbiAgICApO1xuXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHNpemUgPSBpbmplY3QoVFVJX1RFWFRGSUVMRF9PUFRJT05TKS5zaXplO1xuICAgIHByb3RlY3RlZCB0ZXh0ZmllbGRWYWx1ZVN0YXJ0ID0gdGhpcy52YWx1ZSgpWzBdO1xuICAgIHByb3RlY3RlZCB0ZXh0ZmllbGRWYWx1ZUVuZCA9IHRoaXMudmFsdWUoKVsxXTtcbiAgICBwcm90ZWN0ZWQgbGFzdEFjdGl2ZVNpZGU6ICdlbmQnIHwgJ3N0YXJ0JyA9ICdzdGFydCc7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBtaW4gPSAwO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgbWF4ID0gMTAwO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc3RlcCA9IDE7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzZWdtZW50cyA9IDE7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBrZXlTdGVwczogVHVpS2V5U3RlcHMgfCBudWxsID0gbnVsbDtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGNvbnRlbnQ6IHJlYWRvbmx5IFtcbiAgICAgICAgUG9seW1vcnBoZXVzQ29udGVudDxUdWlDb250ZXh0PG51bWJlcj4+LFxuICAgICAgICBQb2x5bW9ycGhldXNDb250ZW50PFR1aUNvbnRleHQ8bnVtYmVyPj4sXG4gICAgXSA9IFsnJywgJyddO1xuXG4gICAgQElucHV0KHt0cmFuc2Zvcm06ICh4OiByZWFkb25seSBbc3RyaW5nLCBzdHJpbmddIHwgbnVsbCkgPT4geCA/PyBbJycsICcnXX0pXG4gICAgcHVibGljIHByZWZpeDogcmVhZG9ubHkgW3N0cmluZywgc3RyaW5nXSA9IFsnJywgJyddO1xuXG4gICAgQElucHV0KHt0cmFuc2Zvcm06ICh4OiByZWFkb25seSBbc3RyaW5nLCBzdHJpbmddIHwgbnVsbCkgPT4geCA/PyBbJycsICcnXX0pXG4gICAgcHVibGljIHBvc3RmaXg6IHJlYWRvbmx5IFtzdHJpbmcsIHN0cmluZ10gPSBbJycsICcnXTtcblxuICAgIC8vIFRPRE8odjUpOiB1c2Ugc2lnbmFsIGlucHV0c1xuICAgIEBJbnB1dCgncXVhbnR1bScpXG4gICAgcHVibGljIHNldCBxdWFudHVtU2V0dGVyKHg6IG51bWJlcikge1xuICAgICAgICB0aGlzLnF1YW50dW0uc2V0KHgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvdmVycmlkZSB3cml0ZVZhbHVlKHZhbHVlOiBbbnVtYmVyLCBudW1iZXJdKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLndyaXRlVmFsdWUodmFsdWUpO1xuICAgICAgICB0aGlzLnNldFRleHRmaWVsZFZhbHVlcyh0aGlzLnZhbHVlKCkpO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLnJhbmdlKSB7XG4gICAgICAgICAgICB0aGlzLnJhbmdlLmxlZ2FjeU1vZGUgPSBmYWxzZTsgLy8gVE9ETyh2NSk6IHJlbW92ZSBiYWNrd2FyZCBjb21wYXRpYmlsaXR5XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IGhpZGVTdGFydENvbnRlbnQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhdGhpcy5jb250ZW50WzBdIHx8IHR1aUlzTmF0aXZlRm9jdXNlZCh0aGlzLnRleHRmaWVsZFN0YXJ0KTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IGhpZGVFbmRDb250ZW50KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gIXRoaXMuY29udGVudFsxXSB8fCB0dWlJc05hdGl2ZUZvY3VzZWQodGhpcy50ZXh0ZmllbGRFbmQpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCB0YWtlU3RlcChcbiAgICAgICAgZXZlbnQ6IEV2ZW50IHwgS2V5Ym9hcmRFdmVudCxcbiAgICAgICAgY29lZmZpY2llbnRzOiByZWFkb25seSBbbnVtYmVyLCBudW1iZXJdLFxuICAgICk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuaW50ZXJhY3RpdmUoKSB8fCAhdGhpcy5yYW5nZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcblxuICAgICAgICBjb25zdCBbc3RhcnQsIGVuZF0gPSB0aGlzLnZhbHVlKCk7XG4gICAgICAgIGNvbnN0IG5ld1ZhbHVlID0gdGhpcy52YWx1ZUd1YXJkKHRoaXMucmFuZ2UudGFrZVN0ZXAoY29lZmZpY2llbnRzKSk7XG5cbiAgICAgICAgaWYgKG5ld1ZhbHVlWzBdICE9PSBzdGFydCB8fCBuZXdWYWx1ZVsxXSAhPT0gZW5kKSB7XG4gICAgICAgICAgICB0aGlzLm9uRXh0ZXJuYWxWYWx1ZVVwZGF0ZShuZXdWYWx1ZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb25JbnB1dChbc3RhcnQsIGVuZF06IFtudW1iZXIgfCBudWxsLCBudW1iZXIgfCBudWxsXSk6IHZvaWQge1xuICAgICAgICBjb25zdCBbcHJldlN0YXJ0LCBwcmV2RW5kXSA9IHRoaXMudmFsdWUoKTtcblxuICAgICAgICB0aGlzLnNldFZhbHVlKFtzdGFydCA/PyBwcmV2U3RhcnQsIGVuZCA/PyBwcmV2RW5kXSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG9uRXh0ZXJuYWxWYWx1ZVVwZGF0ZSh2YWx1ZTogcmVhZG9ubHkgW251bWJlciwgbnVtYmVyXSk6IHZvaWQge1xuICAgICAgICB0aGlzLnNldFZhbHVlKHZhbHVlKTtcbiAgICAgICAgdGhpcy5zZXRUZXh0ZmllbGRWYWx1ZXModGhpcy52YWx1ZSgpKTtcblxuICAgICAgICBzZXRUaW1lb3V0KChlbmQgPSBOdW1iZXIuTUFYX1NBRkVfSU5URUdFUikgPT4ge1xuICAgICAgICAgICAgaWYgKHR1aUlzTmF0aXZlRm9jdXNlZCh0aGlzLmFjdGl2ZVRleHRmaWVsZCkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmFjdGl2ZVRleHRmaWVsZD8uc2V0U2VsZWN0aW9uUmFuZ2UoZW5kLCBlbmQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZm9jdXNUb1RleHRmaWVsZCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmlzTW9iaWxlKSB7XG4gICAgICAgICAgICB0aGlzLmFjdGl2ZVRleHRmaWVsZD8uZm9jdXMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBvbkFjdGl2ZVRodW1iQ2hhbmdlKGFjdGl2ZVRodW1iOiAnbGVmdCcgfCAncmlnaHQnKTogdm9pZCB7XG4gICAgICAgIC8vIFRPRE8odjUpOiByZW1vdmUgYmFja3dhcmQgY29tcGF0aWJpbGl0eVxuICAgICAgICB0aGlzLmxhc3RBY3RpdmVTaWRlID0gYWN0aXZlVGh1bWIgPT09ICdsZWZ0JyA/ICdzdGFydCcgOiAnZW5kJztcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgc2V0VGV4dGZpZWxkVmFsdWVzKFtzdGFydCwgZW5kXTogcmVhZG9ubHkgW251bWJlciwgbnVtYmVyXSk6IHZvaWQge1xuICAgICAgICB0aGlzLnRleHRmaWVsZFZhbHVlU3RhcnQgPSBzdGFydDtcbiAgICAgICAgdGhpcy50ZXh0ZmllbGRWYWx1ZUVuZCA9IGVuZDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldCB0ZXh0ZmllbGRTdGFydCgpOiBIVE1MSW5wdXRFbGVtZW50IHwgbnVsbCB7XG4gICAgICAgIHJldHVybiB0aGlzLmlucHV0TnVtYmVyUmVmcy5maXJzdD8ubmF0aXZlRWxlbWVudCB8fCBudWxsO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0IHRleHRmaWVsZEVuZCgpOiBIVE1MSW5wdXRFbGVtZW50IHwgbnVsbCB7XG4gICAgICAgIHJldHVybiB0aGlzLmlucHV0TnVtYmVyUmVmcy5sYXN0Py5uYXRpdmVFbGVtZW50IHx8IG51bGw7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXQgYWN0aXZlVGV4dGZpZWxkKCk6IEhUTUxJbnB1dEVsZW1lbnQgfCBudWxsIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubGFzdEFjdGl2ZVNpZGUgPT09ICdzdGFydCcgPyB0aGlzLnRleHRmaWVsZFN0YXJ0IDogdGhpcy50ZXh0ZmllbGRFbmQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRWYWx1ZSh2YWx1ZTogcmVhZG9ubHkgW251bWJlciwgbnVtYmVyXSk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uQ2hhbmdlKHRoaXMudmFsdWVHdWFyZCh2YWx1ZSkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgdmFsdWVHdWFyZCh2YWx1ZTogcmVhZG9ubHkgW251bWJlciwgbnVtYmVyXSk6IHJlYWRvbmx5IFtudW1iZXIsIG51bWJlcl0ge1xuICAgICAgICBjb25zdCBbcHJldlN0YXJ0LCBwcmV2RW5kXSA9IHRoaXMudmFsdWUoKTtcbiAgICAgICAgY29uc3QgW3N0YXJ0LCBlbmRdID0gdmFsdWUubWFwKFxuICAgICAgICAgICAgKHgpID0+IHRoaXMucXVhbnR1bVRyYW5zZm9ybWVyKCkudG9Db250cm9sVmFsdWUoeCkgPz8geCxcbiAgICAgICAgKSBhcyB1bmtub3duIGFzIHJlYWRvbmx5IFtudW1iZXIsIG51bWJlcl07XG5cbiAgICAgICAgcmV0dXJuIFtNYXRoLm1pbihzdGFydCwgcHJldkVuZCksIE1hdGgubWF4KGVuZCwgcHJldlN0YXJ0KV07XG4gICAgfVxufVxuIiwiPHR1aS10ZXh0ZmllbGQgW2NvbnRlbnRdPVwiaGlkZVN0YXJ0Q29udGVudCA/ICcnIDogY29udGVudFswXVwiPlxuICAgIDxuZy1jb250YWluZXIgbmdQcm9qZWN0QXM9XCJsYWJlbFwiPlxuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJsYWJlbFwiIC8+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8aW5wdXRcbiAgICAgICAgdHVpSW5wdXROdW1iZXJcbiAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkKClcIlxuICAgICAgICBbaW52YWxpZF09XCJpbnZhbGlkKClcIlxuICAgICAgICBbbWF4XT1cInZhbHVlKClbMV1cIlxuICAgICAgICBbbWluXT1cIm1pblwiXG4gICAgICAgIFtwb3N0Zml4XT1cInBvc3RmaXhbMF1cIlxuICAgICAgICBbcHJlZml4XT1cInByZWZpeFswXVwiXG4gICAgICAgIFtyZWFkT25seV09XCJyZWFkT25seSgpXCJcbiAgICAgICAgWyhuZ01vZGVsKV09XCJ0ZXh0ZmllbGRWYWx1ZVN0YXJ0XCJcbiAgICAgICAgKGJsdXIpPVwidGV4dGZpZWxkVmFsdWVTdGFydCA9IHZhbHVlKClbMF1cIlxuICAgICAgICAoa2V5ZG93bi5hcnJvd0Rvd24pPVwidGFrZVN0ZXAoJGV2ZW50LCBbLTEsIDBdKVwiXG4gICAgICAgIChrZXlkb3duLmFycm93VXApPVwidGFrZVN0ZXAoJGV2ZW50LCBbMSwgMF0pXCJcbiAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25JbnB1dChbJGV2ZW50LCBudWxsXSlcIlxuICAgIC8+XG5cbiAgICA8aW5wdXRcbiAgICAgICAgdHVpSW5wdXROdW1iZXJcbiAgICAgICAgdHVpVGV4dGZpZWxkQXBwZWFyYW5jZT1cIm5vbmVcIlxuICAgICAgICBjbGFzcz1cInQtZW5kXCJcbiAgICAgICAgW2NsYXNzLl9oaWRkZW5dPVwiIWhpZGVFbmRDb250ZW50XCJcbiAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkKClcIlxuICAgICAgICBbaW52YWxpZF09XCJpbnZhbGlkKClcIlxuICAgICAgICBbbWF4XT1cIm1heFwiXG4gICAgICAgIFttaW5dPVwidmFsdWUoKVswXVwiXG4gICAgICAgIFtwb3N0Zml4XT1cInBvc3RmaXhbMV1cIlxuICAgICAgICBbcHJlZml4XT1cInByZWZpeFsxXVwiXG4gICAgICAgIFtyZWFkT25seV09XCJyZWFkT25seSgpXCJcbiAgICAgICAgWyhuZ01vZGVsKV09XCJ0ZXh0ZmllbGRWYWx1ZUVuZFwiXG4gICAgICAgIChibHVyKT1cInRleHRmaWVsZFZhbHVlRW5kID0gdmFsdWUoKVsxXVwiXG4gICAgICAgIChrZXlkb3duLmFycm93RG93bik9XCJ0YWtlU3RlcCgkZXZlbnQsIFswLCAtMV0pXCJcbiAgICAgICAgKGtleWRvd24uYXJyb3dVcCk9XCJ0YWtlU3RlcCgkZXZlbnQsIFswLCAxXSlcIlxuICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJvbklucHV0KFtudWxsLCAkZXZlbnRdKVwiXG4gICAgLz5cblxuICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJ0LWNvbnRlbnQtZW5kXCJcbiAgICAgICAgW2NsYXNzLl9oaWRkZW5dPVwiaGlkZUVuZENvbnRlbnRcIlxuICAgID5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqcG9seW1vcnBoZXVzT3V0bGV0PVwiY29udGVudFsxXSBhcyB0ZXh0OyBjb250ZXh0OiB7JGltcGxpY2l0OiB2YWx1ZSgpWzFdfVwiPlxuICAgICAgICAgICAge3sgdGV4dCB9fVxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbjwvdHVpLXRleHRmaWVsZD5cblxuPHR1aS1yYW5nZVxuICAgICpuZ0lmPVwiaW50ZXJhY3RpdmUoKVwiXG4gICAgW2ZvY3VzYWJsZV09XCJmYWxzZVwiXG4gICAgW2tleVN0ZXBzXT1cImtleVN0ZXBzXCJcbiAgICBbbWF4XT1cIm1heFwiXG4gICAgW21pbl09XCJtaW5cIlxuICAgIFtuZ01vZGVsXT1cInZhbHVlKClcIlxuICAgIFtzZWdtZW50c109XCJzZWdtZW50c1wiXG4gICAgW3N0ZXBdPVwic3RlcFwiXG4gICAgKGFjdGl2ZVRodW1iQ2hhbmdlKT1cIm9uQWN0aXZlVGh1bWJDaGFuZ2UoJGV2ZW50KVwiXG4gICAgKG1vdXNlZG93bi5wcmV2ZW50KT1cImZvY3VzVG9UZXh0ZmllbGQoKVwiXG4gICAgKG5nTW9kZWxDaGFuZ2UpPVwib25FeHRlcm5hbFZhbHVlVXBkYXRlKCRldmVudClcIlxuLz5cbiJdfQ==
@@ -0,0 +1,4 @@
1
+ import { TuiLabel } from '@taiga-ui/core/components/label';
2
+ import { TuiInputRangeComponent } from './input-range.component';
3
+ export const TuiInputRange = [TuiInputRangeComponent, TuiLabel];
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtcmFuZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9raXQvY29tcG9uZW50cy9pbnB1dC1yYW5nZS9pbnB1dC1yYW5nZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0saUNBQWlDLENBQUM7QUFFekQsT0FBTyxFQUFDLHNCQUFzQixFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFFL0QsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLENBQUMsc0JBQXNCLEVBQUUsUUFBUSxDQUFVLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1R1aUxhYmVsfSBmcm9tICdAdGFpZ2EtdWkvY29yZS9jb21wb25lbnRzL2xhYmVsJztcblxuaW1wb3J0IHtUdWlJbnB1dFJhbmdlQ29tcG9uZW50fSBmcm9tICcuL2lucHV0LXJhbmdlLmNvbXBvbmVudCc7XG5cbmV4cG9ydCBjb25zdCBUdWlJbnB1dFJhbmdlID0gW1R1aUlucHV0UmFuZ2VDb21wb25lbnQsIFR1aUxhYmVsXSBhcyBjb25zdDtcbiJdfQ==
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './index';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFpZ2EtdWkta2l0LWNvbXBvbmVudHMtaW5wdXQtcmFuZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9raXQvY29tcG9uZW50cy9pbnB1dC1yYW5nZS90YWlnYS11aS1raXQtY29tcG9uZW50cy1pbnB1dC1yYW5nZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ==
@@ -66,8 +66,12 @@ class TuiInputTimeDirective extends TuiControl {
66
66
  }
67
67
  }
68
68
  writeValue(value) {
69
- super.writeValue(value);
70
- untracked(() => this.textfield.value.set(this.stringify(this.value())));
69
+ const reset = this.control.pristine && this.control.untouched && !value;
70
+ const changed = untracked(() => value !== this.value());
71
+ if (changed || reset) {
72
+ super.writeValue(value);
73
+ untracked(() => this.textfield.value.set(this.stringify(this.value())));
74
+ }
71
75
  }
72
76
  onInput(valueWithAffixes) {
73
77
  const value = valueWithAffixes
@@ -152,4 +156,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
152
156
  type: Input,
153
157
  args: ['postfix']
154
158
  }] } });
155
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtdGltZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9raXQvY29tcG9uZW50cy9pbnB1dC10aW1lL2lucHV0LXRpbWUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxRQUFRLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNwRixPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFDcEQsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFFbEQsT0FBTyxFQUNILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIseUJBQXlCLEVBQ3pCLDZCQUE2QixFQUU3QiwyQkFBMkIsR0FFOUIsTUFBTSxjQUFjLENBQUM7QUFDdEIsT0FBTyxFQUFDLFlBQVksRUFBRSxVQUFVLEVBQUUsdUJBQXVCLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUN4RixPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDaEQsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ25ELE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBQ3RFLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLHFDQUFxQyxDQUFDO0FBQ3ZFLE9BQU8sRUFDSCxzQkFBc0IsRUFFdEIscUJBQXFCLEVBQ3JCLHFCQUFxQixFQUNyQix1QkFBdUIsRUFDdkIsbUJBQW1CLEVBQ25CLGdCQUFnQixHQUNuQixNQUFNLHFDQUFxQyxDQUFDO0FBQzdDLE9BQU8sRUFDSCxvQkFBb0IsRUFDcEIsa0JBQWtCLEVBQ2xCLGVBQWUsR0FDbEIsTUFBTSxvQ0FBb0MsQ0FBQztBQUM1QyxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0s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Q3JDLHVCQUF1QixDQUFDLHNCQUFzQixDQUFDO1lBQy9DLGtCQUFrQixDQUFDLGVBQWUsQ0FBQztTQUN0Qzs7U0FTUSxxQkFBcUI7NEZBQXJCLHFCQUFxQjtrQkFsQmpDLFNBQVM7bUJBQUM7b0JBQ1AsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRSxxQkFBcUI7b0JBQy9CLFNBQVMsRUFBRTt3QkFDUCxZQUFZLHVCQUF1Qjt3QkFDbkMsc0JBQXNCLHVCQUF1Qjt3QkFDN0MsY0FBYyx1QkFBdUI7d0JBQ3JDLHVCQUF1QixDQUFDLHNCQUFzQixDQUFDO3dCQUMvQyxrQkFBa0IsQ0FBQyxlQUFlLENBQUM7cUJBQ3RDO29CQUNELGNBQWMsRUFBRSxDQUFDLGdCQUFnQixFQUFFLGdCQUFnQixDQUFDO29CQUNwRCxJQUFJLEVBQUU7d0JBQ0YsU0FBUyxFQUFFLFNBQVM7d0JBQ3BCLFlBQVksRUFBRSxZQUFZO3dCQUMxQixTQUFTLEVBQUUsVUFBVTt3QkFDckIsU0FBUyxFQUFFLDhCQUE4QjtxQkFDNUM7aUJBQ0o7OEJBd0NVLE1BQU07c0JBRFosS0FBSztnQkFVSyxVQUFVO3NCQURwQixLQUFLO3VCQUFDLE1BQU07Z0JBT0YsWUFBWTtzQkFEdEIsS0FBSzt1QkFBQyxRQUFRO2dCQU9KLGFBQWE7c0JBRHZCLEtBQUs7dUJBQUMsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Y29tcHV0ZWQsIERpcmVjdGl2ZSwgaW5qZWN0LCBJbnB1dCwgc2lnbmFsLCB1bnRyYWNrZWR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHt0b1NpZ25hbH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHtNYXNraXRvRGlyZWN0aXZlfSBmcm9tICdAbWFza2l0by9hbmd1bGFyJztcbmltcG9ydCB7dHlwZSBNYXNraXRvT3B0aW9uc30gZnJvbSAnQG1hc2tpdG8vY29yZSc7XG5pbXBvcnQge1xuICAgIG1hc2tpdG9BZGRPbkZvY3VzUGx1Z2luLFxuICAgIG1hc2tpdG9DYXJldEd1YXJkLFxuICAgIG1hc2tpdG9SZW1vdmVPbkJsdXJQbHVnaW4sXG4gICAgbWFza2l0b1NlbGVjdGlvbkNoYW5nZUhhbmRsZXIsXG4gICAgdHlwZSBNYXNraXRvVGltZU1vZGUsXG4gICAgbWFza2l0b1RpbWVPcHRpb25zR2VuZXJhdG9yLFxuICAgIHR5cGUgTWFza2l0b1RpbWVQYXJhbXMsXG59IGZyb20gJ0BtYXNraXRvL2tpdCc7XG5pbXBvcnQge3R1aUFzQ29udHJvbCwgVHVpQ29udHJvbCwgdHVpVmFsdWVUcmFuc2Zvcm1lckZyb219IGZyb20gJ0B0YWlnYS11aS9jZGsvY2xhc3Nlcyc7XG5pbXBvcnQge1R1aVRpbWV9IGZyb20gJ0B0YWlnYS11aS9jZGsvZGF0ZS10aW1lJztcbmltcG9ydCB7VFVJX0lTX01PQklMRX0gZnJvbSAnQHRhaWdhLXVpL2Nkay90b2tlbnMnO1xuaW1wb3J0IHt0dWlEaXJlY3RpdmVCaW5kaW5nfSBmcm9tICdAdGFpZ2EtdWkvY2RrL3V0aWxzL21pc2NlbGxhbmVvdXMnO1xuaW1wb3J0IHt0dWlBc09wdGlvbkNvbnRlbnR9IGZyb20gJ0B0YWlnYS11aS9jb3JlL2NvbXBvbmVudHMvZGF0YS1saXN0JztcbmltcG9ydCB7XG4gICAgdHVpQXNUZXh0ZmllbGRBY2Nlc3NvcixcbiAgICB0eXBlIFR1aVRleHRmaWVsZEFjY2Vzc29yLFxuICAgIFR1aVRleHRmaWVsZENvbXBvbmVudCxcbiAgICBUdWlUZXh0ZmllbGREaXJlY3RpdmUsXG4gICAgdHVpVGV4dGZpZWxkSWNvbkJpbmRpbmcsXG4gICAgVHVpV2l0aE5hdGl2ZVBpY2tlcixcbiAgICBUdWlXaXRoVGV4dGZpZWxkLFxufSBmcm9tICdAdGFpZ2EtdWkvY29yZS9jb21wb25lbnRzL3RleHRmaWVsZCc7XG5pbXBvcnQge1xuICAgIFR1aURyb3Bkb3duRGlyZWN0aXZlLFxuICAgIHR1aURyb3Bkb3duRW5hYmxlZCxcbiAgICB0dWlEcm9wZG93bk9wZW4sXG59IGZyb20gJ0B0YWlnYS11aS9jb3JlL2RpcmVjdGl2ZXMvZHJvcGRvd24nO1xuaW1wb3J0IHt0dWlBc0F1eGlsaWFyeX0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvdG9rZW5zJztcbmltcG9ydCB7VHVpU2VsZWN0T3B0aW9ufSBmcm9tICdAdGFpZ2EtdWkva2l0L2NvbXBvbmVudHMvc2VsZWN0JztcbmltcG9ydCB7VFVJX1RJTUVfVEVYVFN9IGZyb20gJ0B0YWlnYS11aS9raXQvdG9rZW5zJztcbmltcG9ydCB7dHVpTWFza2l0b30gZnJvbSAnQHRhaWdhLXVpL2tpdC91dGlscyc7XG5cbmltcG9ydCB7VFVJX0lOUFVUX1RJTUVfT1BUSU9OU30gZnJvbSAnLi9pbnB1dC10aW1lLm9wdGlvbnMnO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAnaW5wdXRbdHVpSW5wdXRUaW1lXScsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHR1aUFzQ29udHJvbChUdWlJbnB1dFRpbWVEaXJlY3RpdmUpLFxuICAgICAgICB0dWlBc1RleHRmaWVsZEFjY2Vzc29yKFR1aUlucHV0VGltZURpcmVjdGl2ZSksXG4gICAgICAgIHR1aUFzQXV4aWxpYXJ5KFR1aUlucHV0VGltZURpcmVjdGl2ZSksXG4gICAgICAgIHR1aVZhbHVlVHJhbnNmb3JtZXJGcm9tKFRVSV9JTlBVVF9USU1FX09QVElPTlMpLFxuICAgICAgICB0dWlBc09wdGlvbkNvbnRlbnQoVHVpU2VsZWN0T3B0aW9uKSxcbiAgICBdLFxuICAgIGhvc3REaXJlY3RpdmVzOiBbVHVpV2l0aFRleHRmaWVsZCwgTWFza2l0b0RpcmVjdGl2ZV0sXG4gICAgaG9zdDoge1xuICAgICAgICBpbnB1dG1vZGU6ICdudW1lcmljJyxcbiAgICAgICAgJ1tkaXNhYmxlZF0nOiAnZGlzYWJsZWQoKScsXG4gICAgICAgICcoY2xpY2spJzogJ3RvZ2dsZSgpJyxcbiAgICAgICAgJyhpbnB1dCknOiAnb25JbnB1dCgkZXZlbnQudGFyZ2V0LnZhbHVlKScsXG4gICAgfSxcbn0pXG5leHBvcnQgY2xhc3MgVHVpSW5wdXRUaW1lRGlyZWN0aXZlXG4gICAgZXh0ZW5kcyBUdWlDb250cm9sPFR1aVRpbWUgfCBudWxsPlxuICAgIGltcGxlbWVudHMgVHVpVGV4dGZpZWxkQWNjZXNzb3I8VHVpVGltZSB8IG51bGw+XG57XG4gICAgcHJpdmF0ZSByZWFkb25seSB0ZXh0ZmllbGQgPSBpbmplY3QoVHVpVGV4dGZpZWxkRGlyZWN0aXZlKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRyb3Bkb3duID0gaW5qZWN0KFR1aURyb3Bkb3duRGlyZWN0aXZlKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IG9wZW4gPSB0dWlEcm9wZG93bk9wZW4oKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IG9wdGlvbnMgPSBpbmplY3QoVFVJX0lOUFVUX1RJTUVfT1BUSU9OUyk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBmaWxsZXJzID0gdG9TaWduYWwoaW5qZWN0KFRVSV9USU1FX1RFWFRTKSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBwcmVmaXggPSBzaWduYWwoJycpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgcG9zdGZpeCA9IHNpZ25hbCgnJyk7XG5cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgaWNvbiA9IHR1aVRleHRmaWVsZEljb25CaW5kaW5nKFRVSV9JTlBVVF9USU1FX09QVElPTlMpO1xuICAgIHByb3RlY3RlZCByZWFkb25seSBkcm9wZG93bkVuYWJsZWQgPSB0dWlEcm9wZG93bkVuYWJsZWQoXG4gICAgICAgIGNvbXB1dGVkKCgpID0+ICF0aGlzLm5hdGl2ZSAmJiB0aGlzLmludGVyYWN0aXZlKCkpLFxuICAgICk7XG5cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgZmlsbGVyID0gdHVpRGlyZWN0aXZlQmluZGluZyhcbiAgICAgICAgVHVpVGV4dGZpZWxkQ29tcG9uZW50LFxuICAgICAgICAnZmlsbGVyU2V0dGVyJyxcbiAgICAgICAgY29tcHV0ZWQoKGZpbGxlciA9IHRoaXMuZmlsbGVycygpPy5bdGhpcy50aW1lTW9kZSgpXSA/PyAnJykgPT5cbiAgICAgICAgICAgIHRoaXMucG9zdGZpeCgpID8gJycgOiB0aGlzLnByZWZpeCgpICsgZmlsbGVyLFxuICAgICAgICApLFxuICAgICAgICB7fSxcbiAgICApO1xuXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IG1hc2sgPSB0dWlNYXNraXRvKFxuICAgICAgICBjb21wdXRlZCgoKSA9PlxuICAgICAgICAgICAgdGhpcy5jb21wdXRlTWFzayh7XG4gICAgICAgICAgICAgICAgLi4udGhpcy5vcHRpb25zLFxuICAgICAgICAgICAgICAgIG1vZGU6IHRoaXMudGltZU1vZGUoKSxcbiAgICAgICAgICAgICAgICBzdGVwOiB0aGlzLmludGVyYWN0aXZlKCkgJiYgIXRoaXMuZHJvcGRvd24uX2NvbnRlbnQoKSA/IDEgOiAwLFxuICAgICAgICAgICAgICAgIHByZWZpeDogdGhpcy5wcmVmaXgoKSxcbiAgICAgICAgICAgICAgICBwb3N0Zml4OiB0aGlzLnBvc3RmaXgoKSxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICApLFxuICAgICk7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBhY2NlcHQ6IHJlYWRvbmx5IFR1aVRpbWVbXSA9IFtdO1xuXG4gICAgcHVibGljIHJlYWRvbmx5IG5hdGl2ZSA9XG4gICAgICAgICEhaW5qZWN0KFR1aVdpdGhOYXRpdmVQaWNrZXIsIHtvcHRpb25hbDogdHJ1ZX0pICYmIGluamVjdChUVUlfSVNfTU9CSUxFKTtcblxuICAgIHB1YmxpYyByZWFkb25seSB0aW1lTW9kZSA9IHNpZ25hbCh0aGlzLm9wdGlvbnMubW9kZSk7XG5cbiAgICAvLyBUT0RPKHY1KTogdXNlIHNpZ25hbCBpbnB1dHNcbiAgICBASW5wdXQoJ21vZGUnKVxuICAgIHB1YmxpYyBzZXQgbW9kZVNldHRlcih4OiBNYXNraXRvVGltZU1vZGUpIHtcbiAgICAgICAgdGhpcy50aW1lTW9kZS5zZXQoeCk7XG4gICAgfVxuXG4gICAgLy8gVE9ETyh2NSk6IHVzZSBzaWduYWwgaW5wdXRzXG4gICAgQElucHV0KCdwcmVmaXgnKVxuICAgIHB1YmxpYyBzZXQgcHJlZml4U2V0dGVyKHg6IHN0cmluZykge1xuICAgICAgICB0aGlzLnByZWZpeC5zZXQoeCk7XG4gICAgfVxuXG4gICAgLy8gVE9ETyh2NSk6IHVzZSBzaWduYWwgaW5wdXRzXG4gICAgQElucHV0KCdwb3N0Zml4JylcbiAgICBwdWJsaWMgc2V0IHBvc3RmaXhTZXR0ZXIoeDogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMucG9zdGZpeC5zZXQoeCk7XG4gICAgfVxuXG4gICAgcHVibGljIHNldFZhbHVlKHZhbHVlOiBUdWlUaW1lIHwgbnVsbCk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uQ2hhbmdlKHZhbHVlKTtcblxuICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMudGV4dGZpZWxkLnZhbHVlLnNldCh0aGlzLnN0cmluZ2lmeSh2YWx1ZSkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy50ZXh0ZmllbGQuc2V0VmFsdWUodmFsdWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCF2YWx1ZSAmJiB0aGlzLmRyb3Bkb3duRW5hYmxlZCgpKSB7XG4gICAgICAgICAgICB0aGlzLm9wZW4uc2V0KHRydWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIG92ZXJyaWRlIHdyaXRlVmFsdWUodmFsdWU6IFR1aVRpbWUgfCBudWxsKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLndyaXRlVmFsdWUodmFsdWUpO1xuICAgICAgICB1bnRyYWNrZWQoKCkgPT4gdGhpcy50ZXh0ZmllbGQudmFsdWUuc2V0KHRoaXMuc3RyaW5naWZ5KHRoaXMudmFsdWUoKSkpKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb25JbnB1dCh2YWx1ZVdpdGhBZmZpeGVzOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSB2YWx1ZVdpdGhBZmZpeGVzXG4gICAgICAgICAgICAucmVwbGFjZSh0aGlzLnByZWZpeCgpLCAnJylcbiAgICAgICAgICAgIC5yZXBsYWNlKHRoaXMucG9zdGZpeCgpLCAnJyk7XG4gICAgICAgIGNvbnN0IHRpbWUgPVxuICAgICAgICAgICAgdmFsdWUubGVuZ3RoID09PSB0aGlzLnRpbWVNb2RlKCkubGVuZ3RoID8gVHVpVGltZS5mcm9tU3RyaW5nKHZhbHVlKSA6IG51bGw7XG4gICAgICAgIGNvbnN0IG5ld1ZhbHVlID1cbiAgICAgICAgICAgIHRoaXMuYWNjZXB0Lmxlbmd0aCAmJiB0aW1lID8gdGhpcy5maW5kTmVhcmVzdFRpbWUodGltZSwgdGhpcy5hY2NlcHQpIDogdGltZTtcblxuICAgICAgICB0aGlzLmNvbnRyb2w/LmNvbnRyb2w/LnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoe2VtaXRFdmVudDogZmFsc2V9KTtcbiAgICAgICAgdGhpcy5vbkNoYW5nZShuZXdWYWx1ZSk7XG5cbiAgICAgICAgaWYgKG5ld1ZhbHVlICYmIG5ld1ZhbHVlICE9PSB0aW1lKSB7XG4gICAgICAgICAgICB0aGlzLnRleHRmaWVsZC52YWx1ZS5zZXQodGhpcy5zdHJpbmdpZnkobmV3VmFsdWUpKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCB0b2dnbGUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMub3Blbi51cGRhdGUoKHgpID0+ICF4KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNvbXB1dGVNYXNrKHBhcmFtczogUmVxdWlyZWQ8TWFza2l0b1RpbWVQYXJhbXM+KTogTWFza2l0b09wdGlvbnMge1xuICAgICAgICBjb25zdCBvcHRpb25zID0gbWFza2l0b1RpbWVPcHRpb25zR2VuZXJhdG9yKHBhcmFtcyk7XG4gICAgICAgIGNvbnN0IHttb2RlLCBwcmVmaXgsIHBvc3RmaXh9ID0gcGFyYW1zO1xuICAgICAgICBjb25zdCBpbnB1dE1vZGVTd2l0Y2hQbHVnaW4gPSBtYXNraXRvU2VsZWN0aW9uQ2hhbmdlSGFuZGxlcigoZWxlbWVudCkgPT4ge1xuICAgICAgICAgICAgZWxlbWVudC5pbnB1dE1vZGUgPVxuICAgICAgICAgICAgICAgIGVsZW1lbnQuc2VsZWN0aW9uU3RhcnQhID49IG1vZGUuaW5kZXhPZignIEFBJykgPyAndGV4dCcgOiAnbnVtZXJpYyc7XG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCBjYXJldEd1YXJkUGx1Z2luID0gbWFza2l0b0NhcmV0R3VhcmQoKHZhbHVlKSA9PiBbXG4gICAgICAgICAgICBwcmVmaXgubGVuZ3RoLFxuICAgICAgICAgICAgdmFsdWUubGVuZ3RoIC0gcG9zdGZpeC5sZW5ndGgsXG4gICAgICAgIF0pO1xuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAuLi5vcHRpb25zLFxuICAgICAgICAgICAgcGx1Z2luczogb3B0aW9ucy5wbHVnaW5zLmNvbmNhdChcbiAgICAgICAgICAgICAgICBjYXJldEd1YXJkUGx1Z2luLFxuICAgICAgICAgICAgICAgIG1hc2tpdG9BZGRPbkZvY3VzUGx1Z2luKHByZWZpeCArIHBvc3RmaXgpLFxuICAgICAgICAgICAgICAgIG1hc2tpdG9SZW1vdmVPbkJsdXJQbHVnaW4ocHJlZml4ICsgcG9zdGZpeCksXG4gICAgICAgICAgICAgICAgbW9kZS5pbmNsdWRlcygnQUEnKSA/IGlucHV0TW9kZVN3aXRjaFBsdWdpbiA6IFtdLFxuICAgICAgICAgICAgKSxcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGZpbmROZWFyZXN0VGltZSh2YWx1ZTogVHVpVGltZSwgaXRlbXM6IHJlYWRvbmx5IFR1aVRpbWVbXSk6IFR1aVRpbWUgfCBudWxsIHtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXJlc3RyaWN0ZWQtc3ludGF4XG4gICAgICAgIHJldHVybiBpdGVtcy5yZWR1Y2UoKHByZXZpb3VzLCBjdXJyZW50KSA9PlxuICAgICAgICAgICAgTWF0aC5hYnMoY3VycmVudC52YWx1ZU9mKCkgLSB2YWx1ZS52YWx1ZU9mKCkpIDxcbiAgICAgICAgICAgIE1hdGguYWJzKHByZXZpb3VzLnZhbHVlT2YoKSAtIHZhbHVlLnZhbHVlT2YoKSlcbiAgICAgICAgICAgICAgICA/IGN1cnJlbnRcbiAgICAgICAgICAgICAgICA6IHByZXZpb3VzLFxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgc3RyaW5naWZ5KHRpbWU6IFR1aVRpbWUgfCBudWxsKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucHJlZml4KCkgKyAodGltZT8udG9TdHJpbmcodGhpcy50aW1lTW9kZSgpKSB8fCAnJykgKyB0aGlzLnBvc3RmaXgoKTtcbiAgICB9XG59XG4iXX0=
159
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtdGltZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9raXQvY29tcG9uZW50cy9pbnB1dC10aW1lL2lucHV0LXRpbWUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxRQUFRLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNwRixPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFDcEQsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFFbEQsT0FBTyxFQUNILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIseUJBQXlCLEVBQ3pCLDZCQUE2QixFQUU3QiwyQkFBMkIsR0FFOUIsTUFBTSxjQUFjLENBQUM7QUFDdEIsT0FBTyxFQUFDLFlBQVksRUFBRSxVQUFVLEVBQUUsdUJBQXVCLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUN4RixPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDaEQsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ25ELE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBQ3RFLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLHFDQUFxQyxDQUFDO0FBQ3ZFLE9BQU8sRUFDSCxzQkFBc0IsRUFFdEIscUJBQXFCLEVBQ3JCLHFCQUFxQixFQUNyQix1QkFBdUIsRUFDdkIsbUJBQW1CLEVBQ25CLGdCQUFnQixHQUNuQixNQUFNLHFDQUFxQyxDQUFDO0FBQzdDLE9BQU8sRUFDSCxvQkFBb0IsRUFDcEIsa0JBQWtCLEVBQ2xCLGVBQWUsR0FDbEIsTUFBTSxvQ0FBb0MsQ0FBQztBQUM1QyxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0s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RUFBRSxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ3BGLENBQUM7K0dBaEpRLHFCQUFxQjttR0FBckIscUJBQXFCLG9ZQWZuQjtZQUNQLFlBQVksQ0FBQyxxQkFBcUIsQ0FBQztZQUNuQyxzQkFBc0IsQ0FBQyxxQkFBcUIsQ0FBQztZQUM3QyxjQUFjLENBQUMscUJBQXFCLENBQUM7WUFDckMsdUJBQXVCLENBQUMsc0JBQXNCLENBQUM7WUFDL0Msa0JBQWtCLENBQUMsZUFBZSxDQUFDO1NBQ3RDOztTQVNRLHFCQUFxQjs0RkFBckIscUJBQXFCO2tCQWxCakMsU0FBUzttQkFBQztvQkFDUCxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFLHFCQUFxQjtvQkFDL0IsU0FBUyxFQUFFO3dCQUNQLFlBQVksdUJBQXVCO3dCQUNuQyxzQkFBc0IsdUJBQXVCO3dCQUM3QyxjQUFjLHVCQUF1Qjt3QkFDckMsdUJBQXVCLENBQUMsc0JBQXNCLENBQUM7d0JBQy9DLGtCQUFrQixDQUFDLGVBQWUsQ0FBQztxQkFDdEM7b0JBQ0QsY0FBYyxFQUFFLENBQUMsZ0JBQWdCLEVBQUUsZ0JBQWdCLENBQUM7b0JBQ3BELElBQUksRUFBRTt3QkFDRixTQUFTLEVBQUUsU0FBUzt3QkFDcEIsWUFBWSxFQUFFLFlBQVk7d0JBQzFCLFNBQVMsRUFBRSxVQUFVO3dCQUNyQixTQUFTLEVBQUUsOEJBQThCO3FCQUM1QztpQkFDSjs4QkF3Q1UsTUFBTTtzQkFEWixLQUFLO2dCQVVLLFVBQVU7c0JBRHBCLEtBQUs7dUJBQUMsTUFBTTtnQkFPRixZQUFZO3NCQUR0QixLQUFLO3VCQUFDLFFBQVE7Z0JBT0osYUFBYTtzQkFEdkIsS0FBSzt1QkFBQyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtjb21wdXRlZCwgRGlyZWN0aXZlLCBpbmplY3QsIElucHV0LCBzaWduYWwsIHVudHJhY2tlZH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge3RvU2lnbmFsfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQge01hc2tpdG9EaXJlY3RpdmV9IGZyb20gJ0BtYXNraXRvL2FuZ3VsYXInO1xuaW1wb3J0IHt0eXBlIE1hc2tpdG9PcHRpb25zfSBmcm9tICdAbWFza2l0by9jb3JlJztcbmltcG9ydCB7XG4gICAgbWFza2l0b0FkZE9uRm9jdXNQbHVnaW4sXG4gICAgbWFza2l0b0NhcmV0R3VhcmQsXG4gICAgbWFza2l0b1JlbW92ZU9uQmx1clBsdWdpbixcbiAgICBtYXNraXRvU2VsZWN0aW9uQ2hhbmdlSGFuZGxlcixcbiAgICB0eXBlIE1hc2tpdG9UaW1lTW9kZSxcbiAgICBtYXNraXRvVGltZU9wdGlvbnNHZW5lcmF0b3IsXG4gICAgdHlwZSBNYXNraXRvVGltZVBhcmFtcyxcbn0gZnJvbSAnQG1hc2tpdG8va2l0JztcbmltcG9ydCB7dHVpQXNDb250cm9sLCBUdWlDb250cm9sLCB0dWlWYWx1ZVRyYW5zZm9ybWVyRnJvbX0gZnJvbSAnQHRhaWdhLXVpL2Nkay9jbGFzc2VzJztcbmltcG9ydCB7VHVpVGltZX0gZnJvbSAnQHRhaWdhLXVpL2Nkay9kYXRlLXRpbWUnO1xuaW1wb3J0IHtUVUlfSVNfTU9CSUxFfSBmcm9tICdAdGFpZ2EtdWkvY2RrL3Rva2Vucyc7XG5pbXBvcnQge3R1aURpcmVjdGl2ZUJpbmRpbmd9IGZyb20gJ0B0YWlnYS11aS9jZGsvdXRpbHMvbWlzY2VsbGFuZW91cyc7XG5pbXBvcnQge3R1aUFzT3B0aW9uQ29udGVudH0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvY29tcG9uZW50cy9kYXRhLWxpc3QnO1xuaW1wb3J0IHtcbiAgICB0dWlBc1RleHRmaWVsZEFjY2Vzc29yLFxuICAgIHR5cGUgVHVpVGV4dGZpZWxkQWNjZXNzb3IsXG4gICAgVHVpVGV4dGZpZWxkQ29tcG9uZW50LFxuICAgIFR1aVRleHRmaWVsZERpcmVjdGl2ZSxcbiAgICB0dWlUZXh0ZmllbGRJY29uQmluZGluZyxcbiAgICBUdWlXaXRoTmF0aXZlUGlja2VyLFxuICAgIFR1aVdpdGhUZXh0ZmllbGQsXG59IGZyb20gJ0B0YWlnYS11aS9jb3JlL2NvbXBvbmVudHMvdGV4dGZpZWxkJztcbmltcG9ydCB7XG4gICAgVHVpRHJvcGRvd25EaXJlY3RpdmUsXG4gICAgdHVpRHJvcGRvd25FbmFibGVkLFxuICAgIHR1aURyb3Bkb3duT3Blbixcbn0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvZGlyZWN0aXZlcy9kcm9wZG93bic7XG5pbXBvcnQge3R1aUFzQXV4aWxpYXJ5fSBmcm9tICdAdGFpZ2EtdWkvY29yZS90b2tlbnMnO1xuaW1wb3J0IHtUdWlTZWxlY3RPcHRpb259IGZyb20gJ0B0YWlnYS11aS9raXQvY29tcG9uZW50cy9zZWxlY3QnO1xuaW1wb3J0IHtUVUlfVElNRV9URVhUU30gZnJvbSAnQHRhaWdhLXVpL2tpdC90b2tlbnMnO1xuaW1wb3J0IHt0dWlNYXNraXRvfSBmcm9tICdAdGFpZ2EtdWkva2l0L3V0aWxzJztcblxuaW1wb3J0IHtUVUlfSU5QVVRfVElNRV9PUFRJT05TfSBmcm9tICcuL2lucHV0LXRpbWUub3B0aW9ucyc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgc2VsZWN0b3I6ICdpbnB1dFt0dWlJbnB1dFRpbWVdJyxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgdHVpQXNDb250cm9sKFR1aUlucHV0VGltZURpcmVjdGl2ZSksXG4gICAgICAgIHR1aUFzVGV4dGZpZWxkQWNjZXNzb3IoVHVpSW5wdXRUaW1lRGlyZWN0aXZlKSxcbiAgICAgICAgdHVpQXNBdXhpbGlhcnkoVHVpSW5wdXRUaW1lRGlyZWN0aXZlKSxcbiAgICAgICAgdHVpVmFsdWVUcmFuc2Zvcm1lckZyb20oVFVJX0lOUFVUX1RJTUVfT1BUSU9OUyksXG4gICAgICAgIHR1aUFzT3B0aW9uQ29udGVudChUdWlTZWxlY3RPcHRpb24pLFxuICAgIF0sXG4gICAgaG9zdERpcmVjdGl2ZXM6IFtUdWlXaXRoVGV4dGZpZWxkLCBNYXNraXRvRGlyZWN0aXZlXSxcbiAgICBob3N0OiB7XG4gICAgICAgIGlucHV0bW9kZTogJ251bWVyaWMnLFxuICAgICAgICAnW2Rpc2FibGVkXSc6ICdkaXNhYmxlZCgpJyxcbiAgICAgICAgJyhjbGljayknOiAndG9nZ2xlKCknLFxuICAgICAgICAnKGlucHV0KSc6ICdvbklucHV0KCRldmVudC50YXJnZXQudmFsdWUpJyxcbiAgICB9LFxufSlcbmV4cG9ydCBjbGFzcyBUdWlJbnB1dFRpbWVEaXJlY3RpdmVcbiAgICBleHRlbmRzIFR1aUNvbnRyb2w8VHVpVGltZSB8IG51bGw+XG4gICAgaW1wbGVtZW50cyBUdWlUZXh0ZmllbGRBY2Nlc3NvcjxUdWlUaW1lIHwgbnVsbD5cbntcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRleHRmaWVsZCA9IGluamVjdChUdWlUZXh0ZmllbGREaXJlY3RpdmUpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZHJvcGRvd24gPSBpbmplY3QoVHVpRHJvcGRvd25EaXJlY3RpdmUpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgb3BlbiA9IHR1aURyb3Bkb3duT3BlbigpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgb3B0aW9ucyA9IGluamVjdChUVUlfSU5QVVRfVElNRV9PUFRJT05TKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGZpbGxlcnMgPSB0b1NpZ25hbChpbmplY3QoVFVJX1RJTUVfVEVYVFMpKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHByZWZpeCA9IHNpZ25hbCgnJyk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBwb3N0Zml4ID0gc2lnbmFsKCcnKTtcblxuICAgIHByb3RlY3RlZCByZWFkb25seSBpY29uID0gdHVpVGV4dGZpZWxkSWNvbkJpbmRpbmcoVFVJX0lOUFVUX1RJTUVfT1BUSU9OUyk7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGRyb3Bkb3duRW5hYmxlZCA9IHR1aURyb3Bkb3duRW5hYmxlZChcbiAgICAgICAgY29tcHV0ZWQoKCkgPT4gIXRoaXMubmF0aXZlICYmIHRoaXMuaW50ZXJhY3RpdmUoKSksXG4gICAgKTtcblxuICAgIHByb3RlY3RlZCByZWFkb25seSBmaWxsZXIgPSB0dWlEaXJlY3RpdmVCaW5kaW5nKFxuICAgICAgICBUdWlUZXh0ZmllbGRDb21wb25lbnQsXG4gICAgICAgICdmaWxsZXJTZXR0ZXInLFxuICAgICAgICBjb21wdXRlZCgoZmlsbGVyID0gdGhpcy5maWxsZXJzKCk/Llt0aGlzLnRpbWVNb2RlKCldID8/ICcnKSA9PlxuICAgICAgICAgICAgdGhpcy5wb3N0Zml4KCkgPyAnJyA6IHRoaXMucHJlZml4KCkgKyBmaWxsZXIsXG4gICAgICAgICksXG4gICAgICAgIHt9LFxuICAgICk7XG5cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgbWFzayA9IHR1aU1hc2tpdG8oXG4gICAgICAgIGNvbXB1dGVkKCgpID0+XG4gICAgICAgICAgICB0aGlzLmNvbXB1dGVNYXNrKHtcbiAgICAgICAgICAgICAgICAuLi50aGlzLm9wdGlvbnMsXG4gICAgICAgICAgICAgICAgbW9kZTogdGhpcy50aW1lTW9kZSgpLFxuICAgICAgICAgICAgICAgIHN0ZXA6IHRoaXMuaW50ZXJhY3RpdmUoKSAmJiAhdGhpcy5kcm9wZG93bi5fY29udGVudCgpID8gMSA6IDAsXG4gICAgICAgICAgICAgICAgcHJlZml4OiB0aGlzLnByZWZpeCgpLFxuICAgICAgICAgICAgICAgIHBvc3RmaXg6IHRoaXMucG9zdGZpeCgpLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICksXG4gICAgKTtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGFjY2VwdDogcmVhZG9ubHkgVHVpVGltZVtdID0gW107XG5cbiAgICBwdWJsaWMgcmVhZG9ubHkgbmF0aXZlID1cbiAgICAgICAgISFpbmplY3QoVHVpV2l0aE5hdGl2ZVBpY2tlciwge29wdGlvbmFsOiB0cnVlfSkgJiYgaW5qZWN0KFRVSV9JU19NT0JJTEUpO1xuXG4gICAgcHVibGljIHJlYWRvbmx5IHRpbWVNb2RlID0gc2lnbmFsKHRoaXMub3B0aW9ucy5tb2RlKTtcblxuICAgIC8vIFRPRE8odjUpOiB1c2Ugc2lnbmFsIGlucHV0c1xuICAgIEBJbnB1dCgnbW9kZScpXG4gICAgcHVibGljIHNldCBtb2RlU2V0dGVyKHg6IE1hc2tpdG9UaW1lTW9kZSkge1xuICAgICAgICB0aGlzLnRpbWVNb2RlLnNldCh4KTtcbiAgICB9XG5cbiAgICAvLyBUT0RPKHY1KTogdXNlIHNpZ25hbCBpbnB1dHNcbiAgICBASW5wdXQoJ3ByZWZpeCcpXG4gICAgcHVibGljIHNldCBwcmVmaXhTZXR0ZXIoeDogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMucHJlZml4LnNldCh4KTtcbiAgICB9XG5cbiAgICAvLyBUT0RPKHY1KTogdXNlIHNpZ25hbCBpbnB1dHNcbiAgICBASW5wdXQoJ3Bvc3RmaXgnKVxuICAgIHB1YmxpYyBzZXQgcG9zdGZpeFNldHRlcih4OiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5wb3N0Zml4LnNldCh4KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0VmFsdWUodmFsdWU6IFR1aVRpbWUgfCBudWxsKTogdm9pZCB7XG4gICAgICAgIHRoaXMub25DaGFuZ2UodmFsdWUpO1xuXG4gICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy50ZXh0ZmllbGQudmFsdWUuc2V0KHRoaXMuc3RyaW5naWZ5KHZhbHVlKSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnRleHRmaWVsZC5zZXRWYWx1ZSh2YWx1ZSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIXZhbHVlICYmIHRoaXMuZHJvcGRvd25FbmFibGVkKCkpIHtcbiAgICAgICAgICAgIHRoaXMub3Blbi5zZXQodHJ1ZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgb3ZlcnJpZGUgd3JpdGVWYWx1ZSh2YWx1ZTogVHVpVGltZSB8IG51bGwpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgcmVzZXQgPSB0aGlzLmNvbnRyb2wucHJpc3RpbmUgJiYgdGhpcy5jb250cm9sLnVudG91Y2hlZCAmJiAhdmFsdWU7XG4gICAgICAgIGNvbnN0IGNoYW5nZWQgPSB1bnRyYWNrZWQoKCkgPT4gdmFsdWUgIT09IHRoaXMudmFsdWUoKSk7XG5cbiAgICAgICAgaWYgKGNoYW5nZWQgfHwgcmVzZXQpIHtcbiAgICAgICAgICAgIHN1cGVyLndyaXRlVmFsdWUodmFsdWUpO1xuICAgICAgICAgICAgdW50cmFja2VkKCgpID0+IHRoaXMudGV4dGZpZWxkLnZhbHVlLnNldCh0aGlzLnN0cmluZ2lmeSh0aGlzLnZhbHVlKCkpKSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb25JbnB1dCh2YWx1ZVdpdGhBZmZpeGVzOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSB2YWx1ZVdpdGhBZmZpeGVzXG4gICAgICAgICAgICAucmVwbGFjZSh0aGlzLnByZWZpeCgpLCAnJylcbiAgICAgICAgICAgIC5yZXBsYWNlKHRoaXMucG9zdGZpeCgpLCAnJyk7XG4gICAgICAgIGNvbnN0IHRpbWUgPVxuICAgICAgICAgICAgdmFsdWUubGVuZ3RoID09PSB0aGlzLnRpbWVNb2RlKCkubGVuZ3RoID8gVHVpVGltZS5mcm9tU3RyaW5nKHZhbHVlKSA6IG51bGw7XG4gICAgICAgIGNvbnN0IG5ld1ZhbHVlID1cbiAgICAgICAgICAgIHRoaXMuYWNjZXB0Lmxlbmd0aCAmJiB0aW1lID8gdGhpcy5maW5kTmVhcmVzdFRpbWUodGltZSwgdGhpcy5hY2NlcHQpIDogdGltZTtcblxuICAgICAgICB0aGlzLmNvbnRyb2w/LmNvbnRyb2w/LnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoe2VtaXRFdmVudDogZmFsc2V9KTtcbiAgICAgICAgdGhpcy5vbkNoYW5nZShuZXdWYWx1ZSk7XG5cbiAgICAgICAgaWYgKG5ld1ZhbHVlICYmIG5ld1ZhbHVlICE9PSB0aW1lKSB7XG4gICAgICAgICAgICB0aGlzLnRleHRmaWVsZC52YWx1ZS5zZXQodGhpcy5zdHJpbmdpZnkobmV3VmFsdWUpKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCB0b2dnbGUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMub3Blbi51cGRhdGUoKHgpID0+ICF4KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNvbXB1dGVNYXNrKHBhcmFtczogUmVxdWlyZWQ8TWFza2l0b1RpbWVQYXJhbXM+KTogTWFza2l0b09wdGlvbnMge1xuICAgICAgICBjb25zdCBvcHRpb25zID0gbWFza2l0b1RpbWVPcHRpb25zR2VuZXJhdG9yKHBhcmFtcyk7XG4gICAgICAgIGNvbnN0IHttb2RlLCBwcmVmaXgsIHBvc3RmaXh9ID0gcGFyYW1zO1xuICAgICAgICBjb25zdCBpbnB1dE1vZGVTd2l0Y2hQbHVnaW4gPSBtYXNraXRvU2VsZWN0aW9uQ2hhbmdlSGFuZGxlcigoZWxlbWVudCkgPT4ge1xuICAgICAgICAgICAgZWxlbWVudC5pbnB1dE1vZGUgPVxuICAgICAgICAgICAgICAgIGVsZW1lbnQuc2VsZWN0aW9uU3RhcnQhID49IG1vZGUuaW5kZXhPZignIEFBJykgPyAndGV4dCcgOiAnbnVtZXJpYyc7XG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCBjYXJldEd1YXJkUGx1Z2luID0gbWFza2l0b0NhcmV0R3VhcmQoKHZhbHVlKSA9PiBbXG4gICAgICAgICAgICBwcmVmaXgubGVuZ3RoLFxuICAgICAgICAgICAgdmFsdWUubGVuZ3RoIC0gcG9zdGZpeC5sZW5ndGgsXG4gICAgICAgIF0pO1xuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAuLi5vcHRpb25zLFxuICAgICAgICAgICAgcGx1Z2luczogb3B0aW9ucy5wbHVnaW5zLmNvbmNhdChcbiAgICAgICAgICAgICAgICBjYXJldEd1YXJkUGx1Z2luLFxuICAgICAgICAgICAgICAgIG1hc2tpdG9BZGRPbkZvY3VzUGx1Z2luKHByZWZpeCArIHBvc3RmaXgpLFxuICAgICAgICAgICAgICAgIG1hc2tpdG9SZW1vdmVPbkJsdXJQbHVnaW4ocHJlZml4ICsgcG9zdGZpeCksXG4gICAgICAgICAgICAgICAgbW9kZS5pbmNsdWRlcygnQUEnKSA/IGlucHV0TW9kZVN3aXRjaFBsdWdpbiA6IFtdLFxuICAgICAgICAgICAgKSxcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGZpbmROZWFyZXN0VGltZSh2YWx1ZTogVHVpVGltZSwgaXRlbXM6IHJlYWRvbmx5IFR1aVRpbWVbXSk6IFR1aVRpbWUgfCBudWxsIHtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXJlc3RyaWN0ZWQtc3ludGF4XG4gICAgICAgIHJldHVybiBpdGVtcy5yZWR1Y2UoKHByZXZpb3VzLCBjdXJyZW50KSA9PlxuICAgICAgICAgICAgTWF0aC5hYnMoY3VycmVudC52YWx1ZU9mKCkgLSB2YWx1ZS52YWx1ZU9mKCkpIDxcbiAgICAgICAgICAgIE1hdGguYWJzKHByZXZpb3VzLnZhbHVlT2YoKSAtIHZhbHVlLnZhbHVlT2YoKSlcbiAgICAgICAgICAgICAgICA/IGN1cnJlbnRcbiAgICAgICAgICAgICAgICA6IHByZXZpb3VzLFxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgc3RyaW5naWZ5KHRpbWU6IFR1aVRpbWUgfCBudWxsKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucHJlZml4KCkgKyAodGltZT8udG9TdHJpbmcodGhpcy50aW1lTW9kZSgpKSB8fCAnJykgKyB0aGlzLnBvc3RmaXgoKTtcbiAgICB9XG59XG4iXX0=
@@ -6,7 +6,7 @@ import { EMPTY_QUERY, TUI_DEFAULT_IDENTITY_MATCHER, TUI_FALSE_HANDLER, } from '@
6
6
  import { TuiValidator } from '@taiga-ui/cdk/directives/validator';
7
7
  import { TuiIdService } from '@taiga-ui/cdk/services';
8
8
  import { TuiRadio } from '@taiga-ui/kit/components/radio';
9
- import { PolymorpheusOutlet, PolymorpheusTemplate, } from '@taiga-ui/polymorpheus';
9
+ import { PolymorpheusOutlet } from '@taiga-ui/polymorpheus';
10
10
  import * as i0 from "@angular/core";
11
11
  import * as i1 from "@angular/forms";
12
12
  import * as i2 from "@taiga-ui/kit/components/radio";
@@ -43,14 +43,7 @@ class TuiRadioList extends TuiControl {
43
43
  export { TuiRadioList };
44
44
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiRadioList, decorators: [{
45
45
  type: Component,
46
- args: [{ standalone: true, selector: 'tui-radio-list', imports: [
47
- FormsModule,
48
- NgForOf,
49
- PolymorpheusOutlet,
50
- PolymorpheusTemplate,
51
- TuiRadio,
52
- TuiValidator,
53
- ], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [tuiAsControl(TuiRadioList)], host: {
46
+ args: [{ standalone: true, selector: 'tui-radio-list', imports: [FormsModule, NgForOf, PolymorpheusOutlet, TuiRadio, TuiValidator], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [tuiAsControl(TuiRadioList)], host: {
54
47
  '[attr.data-size]': 'size',
55
48
  '(focusout)': 'onFocusOut()',
56
49
  }, template: "<label\n *ngFor=\"let item of items; index as index\"\n class=\"t-item\"\n [class.t-item_disabled]=\"disabled() || disabledItemHandler(item)\"\n>\n <input\n tuiRadio\n type=\"radio\"\n [disabled]=\"disabled() || disabledItemHandler(item)\"\n [identityMatcher]=\"identityMatcher\"\n [name]=\"name\"\n [ngModel]=\"value()\"\n [ngModelOptions]=\"{standalone: true}\"\n [size]=\"size\"\n [tuiValidator]=\"validator()\"\n [value]=\"item\"\n (ngModelChange)=\"onChange($event)\"\n />\n <ng-container *polymorpheusOutlet=\"itemContent as text; context: {$implicit: item, active: itemIsActive(item)}\">\n {{ text }}\n </ng-container>\n</label>\n", styles: ["tui-radio-list{display:flex;flex-direction:column;align-items:flex-start;gap:.75rem 1.5rem;font:var(--tui-font-text-m)}tui-radio-list[data-size=s],tui-radio-list[data-size=s] [tuiTitle]{font:var(--tui-font-text-ui-s)}tui-radio-list[data-size=s] [tuiSubtitle],tui-radio-list[data-size=s] [tuiTitle] [tuiSubtitle]{font:var(--tui-font-text-xs)}tui-radio-list[data-size=s]>.t-item,tui-radio-list[data-size=s] [tuiTitle]>.t-item{gap:.5rem}tui-radio-list [tuiTitle]{font:var(--tui-font-text-m)}tui-radio-list [tuiSubtitle]{color:var(--tui-text-tertiary)}tui-radio-list>.t-item{display:flex;gap:.75rem}tui-radio-list>.t-item_disabled{opacity:var(--tui-disabled-opacity)}\n"] }]
@@ -68,4 +61,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
68
61
  }], itemContent: [{
69
62
  type: Input
70
63
  }] } });
71
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW8tbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9raXQvY29tcG9uZW50cy9yYWRpby1saXN0L3JhZGlvLWxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2l0L2NvbXBvbmVudHMvcmFkaW8tbGlzdC9yYWRpby1saXN0LnRlbXBsYXRlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ3hDLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFFBQVEsRUFDUixNQUFNLEVBQ04sS0FBSyxFQUVMLFlBQVksRUFDWixpQkFBaUIsR0FDcEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLFdBQVcsRUFBRSxTQUFTLEVBQW9CLFVBQVUsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3BGLE9BQU8sRUFBQyxZQUFZLEVBQUUsVUFBVSxFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFDL0QsT0FBTyxFQUNILFdBQVcsRUFDWCw0QkFBNEIsRUFDNUIsaUJBQWlCLEdBQ3BCLE1BQU0seUJBQXlCLENBQUM7QUFDakMsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLG9DQUFvQyxDQUFDO0FBQ2hFLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUdwRCxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sZ0NBQWdDLENBQUM7QUFDeEQsT0FBTyxFQUVILGtCQUFrQixFQUNsQixvQkFBb0IsR0FDdkIsTUFBTSx3QkFBd0IsQ0FBQzs7OztBQUVoQyxNQUFNLEtBQUssR0FBZ0IsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFDLEtBQUssRUFBRSxTQUFTLEVBQUMsQ0FBQyxDQUFDO0FBRXRELE1BcUJhLFlBQWdCLFNBQVEsVUFBYTtJQXJCbEQ7O1FBdUJxQixhQUFRLEdBQXlCLFdBQVcsQ0FBQztRQUU3QyxPQUFFLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBRTVDLGNBQVMsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQ2hDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUNwRCxDQUFDO1FBR0ssVUFBSyxHQUFpQixFQUFFLENBQUM7UUFHekIsU0FBSSxHQUFhLEdBQUcsQ0FBQztRQUdyQixvQkFBZSxHQUEwQiw0QkFBNEIsQ0FBQztRQUd0RSx3QkFBbUIsR0FBeUIsaUJBQWlCLENBQUM7UUFHOUQsZ0JBQVcsR0FBbUQsQ0FBQyxFQUFDLFNBQVMsRUFBQyxFQUFFLEVBQUUsQ0FDakYsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0tBbUJ6QjtJQWpCRyxJQUFjLElBQUk7UUFDZCxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDO0lBQzdDLENBQUM7SUFFUyxVQUFVO1FBQ2hCLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxDQUFDLENBQUM7UUFFckUsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBRTtZQUNqQixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7U0FDcEI7SUFDTCxDQUFDO0lBRVMsWUFBWSxDQUFDLElBQU87UUFDMUIsT0FBTyxJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssSUFBSTtZQUN4QixDQUFDLENBQUMsSUFBSSxLQUFLLElBQUk7WUFDZixDQUFDLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDbkQsQ0FBQzsrR0ExQ1EsWUFBWTttR0FBWixZQUFZLGtUQU5WLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxDQUFDLHVEQU96QixTQUFTLHVFQ3JEM0Isd3VCQXNCQSxrdEJEYVEsV0FBVyxrMEJBQ1gsT0FBTyxtSEFDUCxrQkFBa0IsOFhBR2xCLFlBQVk7O1NBWVAsWUFBWTs0RkFBWixZQUFZO2tCQXJCeEIsU0FBUztpQ0FDTSxJQUFJLFlBQ04sZ0JBQWdCLFdBQ2pCO3dCQUNMLFdBQVc7d0JBQ1gsT0FBTzt3QkFDUCxrQkFBa0I7d0JBQ2xCLG9CQUFvQjt3QkFDcEIsUUFBUTt3QkFDUixZQUFZO3FCQUNmLGlCQUdjLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU0sYUFDcEMsQ0FBQyxZQUFZLGNBQWMsQ0FBQyxRQUNqQzt3QkFDRixrQkFBa0IsRUFBRSxNQUFNO3dCQUMxQixZQUFZLEVBQUUsY0FBYztxQkFDL0I7OEJBSWdCLFFBQVE7c0JBRHhCLFlBQVk7dUJBQUMsU0FBUztnQkFVaEIsS0FBSztzQkFEWCxLQUFLO2dCQUlDLElBQUk7c0JBRFYsS0FBSztnQkFJQyxlQUFlO3NCQURyQixLQUFLO2dCQUlDLG1CQUFtQjtzQkFEekIsS0FBSztnQkFJQyxXQUFXO3NCQURqQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtOZ0Zvck9mfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb21wb25lbnQsXG4gICAgY29tcHV0ZWQsXG4gICAgaW5qZWN0LFxuICAgIElucHV0LFxuICAgIHR5cGUgUXVlcnlMaXN0LFxuICAgIFZpZXdDaGlsZHJlbixcbiAgICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0Zvcm1zTW9kdWxlLCBOZ0NvbnRyb2wsIHR5cGUgVmFsaWRhdG9yRm4sIFZhbGlkYXRvcnN9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7dHVpQXNDb250cm9sLCBUdWlDb250cm9sfSBmcm9tICdAdGFpZ2EtdWkvY2RrL2NsYXNzZXMnO1xuaW1wb3J0IHtcbiAgICBFTVBUWV9RVUVSWSxcbiAgICBUVUlfREVGQVVMVF9JREVOVElUWV9NQVRDSEVSLFxuICAgIFRVSV9GQUxTRV9IQU5ETEVSLFxufSBmcm9tICdAdGFpZ2EtdWkvY2RrL2NvbnN0YW50cyc7XG5pbXBvcnQge1R1aVZhbGlkYXRvcn0gZnJvbSAnQHRhaWdhLXVpL2Nkay9kaXJlY3RpdmVzL3ZhbGlkYXRvcic7XG5pbXBvcnQge1R1aUlkU2VydmljZX0gZnJvbSAnQHRhaWdhLXVpL2Nkay9zZXJ2aWNlcyc7XG5pbXBvcnQge3R5cGUgVHVpQm9vbGVhbkhhbmRsZXIsIHR5cGUgVHVpSWRlbnRpdHlNYXRjaGVyfSBmcm9tICdAdGFpZ2EtdWkvY2RrL3R5cGVzJztcbmltcG9ydCB7dHlwZSBUdWlTaXplUywgdHlwZSBUdWlWYWx1ZUNvbnRlbnRDb250ZXh0fSBmcm9tICdAdGFpZ2EtdWkvY29yZS90eXBlcyc7XG5pbXBvcnQge1R1aVJhZGlvfSBmcm9tICdAdGFpZ2EtdWkva2l0L2NvbXBvbmVudHMvcmFkaW8nO1xuaW1wb3J0IHtcbiAgICB0eXBlIFBvbHltb3JwaGV1c0NvbnRlbnQsXG4gICAgUG9seW1vcnBoZXVzT3V0bGV0LFxuICAgIFBvbHltb3JwaGV1c1RlbXBsYXRlLFxufSBmcm9tICdAdGFpZ2EtdWkvcG9seW1vcnBoZXVzJztcblxuY29uc3QgRVJST1I6IFZhbGlkYXRvckZuID0gKCkgPT4gKHtlcnJvcjogJ0ludmFsaWQnfSk7XG5cbkBDb21wb25lbnQoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgc2VsZWN0b3I6ICd0dWktcmFkaW8tbGlzdCcsXG4gICAgaW1wb3J0czogW1xuICAgICAgICBGb3Jtc01vZHVsZSxcbiAgICAgICAgTmdGb3JPZixcbiAgICAgICAgUG9seW1vcnBoZXVzT3V0bGV0LFxuICAgICAgICBQb2x5bW9ycGhldXNUZW1wbGF0ZSxcbiAgICAgICAgVHVpUmFkaW8sXG4gICAgICAgIFR1aVZhbGlkYXRvcixcbiAgICBdLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9yYWRpby1saXN0LnRlbXBsYXRlLmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3JhZGlvLWxpc3Quc3R5bGUubGVzcyddLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJvdmlkZXJzOiBbdHVpQXNDb250cm9sKFR1aVJhZGlvTGlzdCldLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJ1thdHRyLmRhdGEtc2l6ZV0nOiAnc2l6ZScsXG4gICAgICAgICcoZm9jdXNvdXQpJzogJ29uRm9jdXNPdXQoKScsXG4gICAgfSxcbn0pXG5leHBvcnQgY2xhc3MgVHVpUmFkaW9MaXN0PFQ+IGV4dGVuZHMgVHVpQ29udHJvbDxUPiB7XG4gICAgQFZpZXdDaGlsZHJlbihOZ0NvbnRyb2wpXG4gICAgcHJpdmF0ZSByZWFkb25seSBjb250cm9sczogUXVlcnlMaXN0PE5nQ29udHJvbD4gPSBFTVBUWV9RVUVSWTtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgaWQgPSBpbmplY3QoVHVpSWRTZXJ2aWNlKS5nZW5lcmF0ZSgpO1xuXG4gICAgcHJvdGVjdGVkIHZhbGlkYXRvciA9IGNvbXB1dGVkKCgpID0+XG4gICAgICAgIHRoaXMuaW52YWxpZCgpID8gRVJST1IgOiBWYWxpZGF0b3JzLm51bGxWYWxpZGF0b3IsXG4gICAgKTtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGl0ZW1zOiByZWFkb25seSBUW10gPSBbXTtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNpemU6IFR1aVNpemVTID0gJ20nO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgaWRlbnRpdHlNYXRjaGVyOiBUdWlJZGVudGl0eU1hdGNoZXI8VD4gPSBUVUlfREVGQVVMVF9JREVOVElUWV9NQVRDSEVSO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZGlzYWJsZWRJdGVtSGFuZGxlcjogVHVpQm9vbGVhbkhhbmRsZXI8VD4gPSBUVUlfRkFMU0VfSEFORExFUjtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGl0ZW1Db250ZW50OiBQb2x5bW9ycGhldXNDb250ZW50PFR1aVZhbHVlQ29udGVudENvbnRleHQ8VD4+ID0gKHskaW1wbGljaXR9KSA9PlxuICAgICAgICBTdHJpbmcoJGltcGxpY2l0KTtcblxuICAgIHByb3RlY3RlZCBnZXQgbmFtZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gYCR7dGhpcy5jb250cm9sLm5hbWV9LSR7dGhpcy5pZH1gO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBvbkZvY3VzT3V0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNvbnRyb2xzLmZvckVhY2goKGNvbnRyb2wpID0+IGNvbnRyb2wuY29udHJvbD8ubWFya0FzVG91Y2hlZCgpKTtcblxuICAgICAgICBpZiAoIXRoaXMudG91Y2hlZCgpKSB7XG4gICAgICAgICAgICB0aGlzLm9uVG91Y2hlZCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGl0ZW1Jc0FjdGl2ZShpdGVtOiBUKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnZhbHVlKCkgPT09IG51bGxcbiAgICAgICAgICAgID8gaXRlbSA9PT0gbnVsbFxuICAgICAgICAgICAgOiB0aGlzLmlkZW50aXR5TWF0Y2hlcih0aGlzLnZhbHVlKCksIGl0ZW0pO1xuICAgIH1cbn1cbiIsIjxsYWJlbFxuICAgICpuZ0Zvcj1cImxldCBpdGVtIG9mIGl0ZW1zOyBpbmRleCBhcyBpbmRleFwiXG4gICAgY2xhc3M9XCJ0LWl0ZW1cIlxuICAgIFtjbGFzcy50LWl0ZW1fZGlzYWJsZWRdPVwiZGlzYWJsZWQoKSB8fCBkaXNhYmxlZEl0ZW1IYW5kbGVyKGl0ZW0pXCJcbj5cbiAgICA8aW5wdXRcbiAgICAgICAgdHVpUmFkaW9cbiAgICAgICAgdHlwZT1cInJhZGlvXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkKCkgfHwgZGlzYWJsZWRJdGVtSGFuZGxlcihpdGVtKVwiXG4gICAgICAgIFtpZGVudGl0eU1hdGNoZXJdPVwiaWRlbnRpdHlNYXRjaGVyXCJcbiAgICAgICAgW25hbWVdPVwibmFtZVwiXG4gICAgICAgIFtuZ01vZGVsXT1cInZhbHVlKClcIlxuICAgICAgICBbbmdNb2RlbE9wdGlvbnNdPVwie3N0YW5kYWxvbmU6IHRydWV9XCJcbiAgICAgICAgW3NpemVdPVwic2l6ZVwiXG4gICAgICAgIFt0dWlWYWxpZGF0b3JdPVwidmFsaWRhdG9yKClcIlxuICAgICAgICBbdmFsdWVdPVwiaXRlbVwiXG4gICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uQ2hhbmdlKCRldmVudClcIlxuICAgIC8+XG4gICAgPG5nLWNvbnRhaW5lciAqcG9seW1vcnBoZXVzT3V0bGV0PVwiaXRlbUNvbnRlbnQgYXMgdGV4dDsgY29udGV4dDogeyRpbXBsaWNpdDogaXRlbSwgYWN0aXZlOiBpdGVtSXNBY3RpdmUoaXRlbSl9XCI+XG4gICAgICAgIHt7IHRleHQgfX1cbiAgICA8L25nLWNvbnRhaW5lcj5cbjwvbGFiZWw+XG4iXX0=
64
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW8tbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9raXQvY29tcG9uZW50cy9yYWRpby1saXN0L3JhZGlvLWxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2l0L2NvbXBvbmVudHMvcmFkaW8tbGlzdC9yYWRpby1saXN0LnRlbXBsYXRlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ3hDLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFFBQVEsRUFDUixNQUFNLEVBQ04sS0FBSyxFQUVMLFlBQVksRUFDWixpQkFBaUIsR0FDcEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLFdBQVcsRUFBRSxTQUFTLEVBQW9CLFVBQVUsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3BGLE9BQU8sRUFBQyxZQUFZLEVBQUUsVUFBVSxFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFDL0QsT0FBTyxFQUNILFdBQVcsRUFDWCw0QkFBNEIsRUFDNUIsaUJBQWlCLEdBQ3BCLE1BQU0seUJBQXlCLENBQUM7QUFDakMsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLG9DQUFvQyxDQUFDO0FBQ2hFLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUdwRCxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sZ0NBQWdDLENBQUM7QUFDeEQsT0FBTyxFQUEyQixrQkFBa0IsRUFBQyxNQUFNLHdCQUF3QixDQUFDOzs7O0FBRXBGLE1BQU0sS0FBSyxHQUFnQixHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUMsS0FBSyxFQUFFLFNBQVMsRUFBQyxDQUFDLENBQUM7QUFFdEQsTUFjYSxZQUFnQixTQUFRLFVBQWE7SUFkbEQ7O1FBZ0JxQixhQUFRLEdBQXlCLFdBQVcsQ0FBQztRQUU3QyxPQUFFLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBRTVDLGNBQVMsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQ2hDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUNwRCxDQUFDO1FBR0ssVUFBSyxHQUFpQixFQUFFLENBQUM7UUFHekIsU0FBSSxHQUFhLEdBQUcsQ0FBQztRQUdyQixvQkFBZSxHQUEwQiw0QkFBNEIsQ0FBQztRQUd0RSx3QkFBbUIsR0FBeUIsaUJBQWlCLENBQUM7UUFHOUQsZ0JBQVcsR0FBbUQsQ0FBQyxFQUFDLFNBQVMsRUFBQyxFQUFFLEVBQUUsQ0FDakYsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0tBbUJ6QjtJQWpCRyxJQUFjLElBQUk7UUFDZCxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDO0lBQzdDLENBQUM7SUFFUyxVQUFVO1FBQ2hCLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxDQUFDLENBQUM7UUFFckUsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBRTtZQUNqQixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7U0FDcEI7SUFDTCxDQUFDO0lBRVMsWUFBWSxDQUFDLElBQU87UUFDMUIsT0FBTyxJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssSUFBSTtZQUN4QixDQUFDLENBQUMsSUFBSSxLQUFLLElBQUk7WUFDZixDQUFDLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDbkQsQ0FBQzsrR0ExQ1EsWUFBWTttR0FBWixZQUFZLGtUQU5WLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxDQUFDLHVEQU96QixTQUFTLHVFQzFDM0Isd3VCQXNCQSxrdEJEUWMsV0FBVyxrMEJBQUUsT0FBTyxtSEFBRSxrQkFBa0IsOFhBQVksWUFBWTs7U0FXakUsWUFBWTs0RkFBWixZQUFZO2tCQWR4QixTQUFTO2lDQUNNLElBQUksWUFDTixnQkFBZ0IsV0FDakIsQ0FBQyxXQUFXLEVBQUUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLFFBQVEsRUFBRSxZQUFZLENBQUMsaUJBRzVELGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU0sYUFDcEMsQ0FBQyxZQUFZLGNBQWMsQ0FBQyxRQUNqQzt3QkFDRixrQkFBa0IsRUFBRSxNQUFNO3dCQUMxQixZQUFZLEVBQUUsY0FBYztxQkFDL0I7OEJBSWdCLFFBQVE7c0JBRHhCLFlBQVk7dUJBQUMsU0FBUztnQkFVaEIsS0FBSztzQkFEWCxLQUFLO2dCQUlDLElBQUk7c0JBRFYsS0FBSztnQkFJQyxlQUFlO3NCQURyQixLQUFLO2dCQUlDLG1CQUFtQjtzQkFEekIsS0FBSztnQkFJQyxXQUFXO3NCQURqQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtOZ0Zvck9mfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb21wb25lbnQsXG4gICAgY29tcHV0ZWQsXG4gICAgaW5qZWN0LFxuICAgIElucHV0LFxuICAgIHR5cGUgUXVlcnlMaXN0LFxuICAgIFZpZXdDaGlsZHJlbixcbiAgICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0Zvcm1zTW9kdWxlLCBOZ0NvbnRyb2wsIHR5cGUgVmFsaWRhdG9yRm4sIFZhbGlkYXRvcnN9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7dHVpQXNDb250cm9sLCBUdWlDb250cm9sfSBmcm9tICdAdGFpZ2EtdWkvY2RrL2NsYXNzZXMnO1xuaW1wb3J0IHtcbiAgICBFTVBUWV9RVUVSWSxcbiAgICBUVUlfREVGQVVMVF9JREVOVElUWV9NQVRDSEVSLFxuICAgIFRVSV9GQUxTRV9IQU5ETEVSLFxufSBmcm9tICdAdGFpZ2EtdWkvY2RrL2NvbnN0YW50cyc7XG5pbXBvcnQge1R1aVZhbGlkYXRvcn0gZnJvbSAnQHRhaWdhLXVpL2Nkay9kaXJlY3RpdmVzL3ZhbGlkYXRvcic7XG5pbXBvcnQge1R1aUlkU2VydmljZX0gZnJvbSAnQHRhaWdhLXVpL2Nkay9zZXJ2aWNlcyc7XG5pbXBvcnQge3R5cGUgVHVpQm9vbGVhbkhhbmRsZXIsIHR5cGUgVHVpSWRlbnRpdHlNYXRjaGVyfSBmcm9tICdAdGFpZ2EtdWkvY2RrL3R5cGVzJztcbmltcG9ydCB7dHlwZSBUdWlTaXplUywgdHlwZSBUdWlWYWx1ZUNvbnRlbnRDb250ZXh0fSBmcm9tICdAdGFpZ2EtdWkvY29yZS90eXBlcyc7XG5pbXBvcnQge1R1aVJhZGlvfSBmcm9tICdAdGFpZ2EtdWkva2l0L2NvbXBvbmVudHMvcmFkaW8nO1xuaW1wb3J0IHt0eXBlIFBvbHltb3JwaGV1c0NvbnRlbnQsIFBvbHltb3JwaGV1c091dGxldH0gZnJvbSAnQHRhaWdhLXVpL3BvbHltb3JwaGV1cyc7XG5cbmNvbnN0IEVSUk9SOiBWYWxpZGF0b3JGbiA9ICgpID0+ICh7ZXJyb3I6ICdJbnZhbGlkJ30pO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAndHVpLXJhZGlvLWxpc3QnLFxuICAgIGltcG9ydHM6IFtGb3Jtc01vZHVsZSwgTmdGb3JPZiwgUG9seW1vcnBoZXVzT3V0bGV0LCBUdWlSYWRpbywgVHVpVmFsaWRhdG9yXSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vcmFkaW8tbGlzdC50ZW1wbGF0ZS5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9yYWRpby1saXN0LnN0eWxlLmxlc3MnXSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogW3R1aUFzQ29udHJvbChUdWlSYWRpb0xpc3QpXSxcbiAgICBob3N0OiB7XG4gICAgICAgICdbYXR0ci5kYXRhLXNpemVdJzogJ3NpemUnLFxuICAgICAgICAnKGZvY3Vzb3V0KSc6ICdvbkZvY3VzT3V0KCknLFxuICAgIH0sXG59KVxuZXhwb3J0IGNsYXNzIFR1aVJhZGlvTGlzdDxUPiBleHRlbmRzIFR1aUNvbnRyb2w8VD4ge1xuICAgIEBWaWV3Q2hpbGRyZW4oTmdDb250cm9sKVxuICAgIHByaXZhdGUgcmVhZG9ubHkgY29udHJvbHM6IFF1ZXJ5TGlzdDxOZ0NvbnRyb2w+ID0gRU1QVFlfUVVFUlk7XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IGlkID0gaW5qZWN0KFR1aUlkU2VydmljZSkuZ2VuZXJhdGUoKTtcblxuICAgIHByb3RlY3RlZCB2YWxpZGF0b3IgPSBjb21wdXRlZCgoKSA9PlxuICAgICAgICB0aGlzLmludmFsaWQoKSA/IEVSUk9SIDogVmFsaWRhdG9ycy5udWxsVmFsaWRhdG9yLFxuICAgICk7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBpdGVtczogcmVhZG9ubHkgVFtdID0gW107XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzaXplOiBUdWlTaXplUyA9ICdtJztcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGlkZW50aXR5TWF0Y2hlcjogVHVpSWRlbnRpdHlNYXRjaGVyPFQ+ID0gVFVJX0RFRkFVTFRfSURFTlRJVFlfTUFUQ0hFUjtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGRpc2FibGVkSXRlbUhhbmRsZXI6IFR1aUJvb2xlYW5IYW5kbGVyPFQ+ID0gVFVJX0ZBTFNFX0hBTkRMRVI7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBpdGVtQ29udGVudDogUG9seW1vcnBoZXVzQ29udGVudDxUdWlWYWx1ZUNvbnRlbnRDb250ZXh0PFQ+PiA9ICh7JGltcGxpY2l0fSkgPT5cbiAgICAgICAgU3RyaW5nKCRpbXBsaWNpdCk7XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IG5hbWUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIGAke3RoaXMuY29udHJvbC5uYW1lfS0ke3RoaXMuaWR9YDtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb25Gb2N1c091dCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jb250cm9scy5mb3JFYWNoKChjb250cm9sKSA9PiBjb250cm9sLmNvbnRyb2w/Lm1hcmtBc1RvdWNoZWQoKSk7XG5cbiAgICAgICAgaWYgKCF0aGlzLnRvdWNoZWQoKSkge1xuICAgICAgICAgICAgdGhpcy5vblRvdWNoZWQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBpdGVtSXNBY3RpdmUoaXRlbTogVCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy52YWx1ZSgpID09PSBudWxsXG4gICAgICAgICAgICA/IGl0ZW0gPT09IG51bGxcbiAgICAgICAgICAgIDogdGhpcy5pZGVudGl0eU1hdGNoZXIodGhpcy52YWx1ZSgpLCBpdGVtKTtcbiAgICB9XG59XG4iLCI8bGFiZWxcbiAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBpdGVtczsgaW5kZXggYXMgaW5kZXhcIlxuICAgIGNsYXNzPVwidC1pdGVtXCJcbiAgICBbY2xhc3MudC1pdGVtX2Rpc2FibGVkXT1cImRpc2FibGVkKCkgfHwgZGlzYWJsZWRJdGVtSGFuZGxlcihpdGVtKVwiXG4+XG4gICAgPGlucHV0XG4gICAgICAgIHR1aVJhZGlvXG4gICAgICAgIHR5cGU9XCJyYWRpb1wiXG4gICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZCgpIHx8IGRpc2FibGVkSXRlbUhhbmRsZXIoaXRlbSlcIlxuICAgICAgICBbaWRlbnRpdHlNYXRjaGVyXT1cImlkZW50aXR5TWF0Y2hlclwiXG4gICAgICAgIFtuYW1lXT1cIm5hbWVcIlxuICAgICAgICBbbmdNb2RlbF09XCJ2YWx1ZSgpXCJcbiAgICAgICAgW25nTW9kZWxPcHRpb25zXT1cIntzdGFuZGFsb25lOiB0cnVlfVwiXG4gICAgICAgIFtzaXplXT1cInNpemVcIlxuICAgICAgICBbdHVpVmFsaWRhdG9yXT1cInZhbGlkYXRvcigpXCJcbiAgICAgICAgW3ZhbHVlXT1cIml0ZW1cIlxuICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJvbkNoYW5nZSgkZXZlbnQpXCJcbiAgICAvPlxuICAgIDxuZy1jb250YWluZXIgKnBvbHltb3JwaGV1c091dGxldD1cIml0ZW1Db250ZW50IGFzIHRleHQ7IGNvbnRleHQ6IHskaW1wbGljaXQ6IGl0ZW0sIGFjdGl2ZTogaXRlbUlzQWN0aXZlKGl0ZW0pfVwiPlxuICAgICAgICB7eyB0ZXh0IH19XG4gICAgPC9uZy1jb250YWluZXI+XG48L2xhYmVsPlxuIl19
@@ -33,6 +33,11 @@ class TuiRange extends TuiControl {
33
33
  this.slidersRefs = EMPTY_QUERY;
34
34
  this.start = computed(() => this.toPercent(this.value()[0]));
35
35
  this.end = computed(() => 100 - this.toPercent(this.value()[1]));
36
+ /**
37
+ * TODO(v5): standardize logic between `TuiSlider` & `TuiInputSlider` & `Range` & `InputRange`
38
+ * For non-linear slider (with `[keySteps]` property) `step` means percentage
39
+ */
40
+ this.legacyMode = true;
36
41
  }
37
42
  ngOnChanges() {
38
43
  this.changes.update((x) => x + 1);
@@ -46,11 +51,20 @@ class TuiRange extends TuiControl {
46
51
  }
47
52
  this.lastActiveThumb = end ? 'end' : 'start';
48
53
  }
54
+ takeStep(coefficients) {
55
+ return this.value().map((value, i) => {
56
+ const fraction = this.toPercent(value) / 100;
57
+ const newFractionValue = fraction + coefficients[i] * this.fractionStep;
58
+ return this.toValue(newFractionValue);
59
+ });
60
+ }
49
61
  toValue(fraction) {
50
62
  return tuiPercentageToKeyStepValue(tuiClamp(tuiQuantize(fraction, this.fractionStep), 0, 1) * 100, this.computedKeySteps);
51
63
  }
52
64
  get fractionStep() {
53
- return this.step / (this.max - this.min);
65
+ return this.legacyMode || !this.keySteps
66
+ ? this.step / (this.max - this.min)
67
+ : this.step / 100;
54
68
  }
55
69
  get computedKeySteps() {
56
70
  return this.computePureKeySteps(this.keySteps, this.min, this.max);
@@ -65,11 +79,8 @@ class TuiRange extends TuiControl {
65
79
  const [startThumb, endThumb] = this.slidersRefs.map((x) => x?.nativeElement);
66
80
  const isEndThumb = target === this.el ? this.lastActiveThumb === 'end' : target === endThumb;
67
81
  const activeThumbElement = isEndThumb ? endThumb : startThumb;
68
- const previousValue = this.value()[isEndThumb ? 1 : 0];
69
- /** @bad TODO think about a solution without twice conversion */
70
- const previousFraction = this.toPercent(previousValue) / 100;
71
- const newFractionValue = previousFraction + coefficient * this.fractionStep;
72
- this.processValue(this.toValue(newFractionValue), isEndThumb);
82
+ const newValue = this.takeStep(isEndThumb ? [0, coefficient] : [coefficient, 0]);
83
+ this.processValue(newValue[isEndThumb ? 1 : 0], isEndThumb);
73
84
  activeThumbElement?.focus();
74
85
  }
75
86
  toPercent(value) {
@@ -150,4 +161,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
150
161
  type: ViewChildren,
151
162
  args: [TuiSliderComponent, { read: ElementRef }]
152
163
  }], computePureKeySteps: [] } });
153
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFuZ2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2l0L2NvbXBvbmVudHMvcmFuZ2UvcmFuZ2UuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2l0L2NvbXBvbmVudHMvcmFuZ2UvcmFuZ2UudGVtcGxhdGUuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsUUFBUSxFQUNSLFVBQVUsRUFDVixNQUFNLEVBQ04sS0FBSyxFQUdMLE1BQU0sRUFDTixZQUFZLEdBQ2YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUNqRCxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDcEQsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDOUQsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFDLFFBQVEsRUFBRSxXQUFXLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUMvRCxPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFFMUQsT0FBTyxFQUNILGtCQUFrQixFQUVsQiwyQkFBMkIsRUFDM0IsMkJBQTJCLEVBQzNCLFNBQVMsRUFDVCxrQkFBa0IsR0FDckIsTUFBTSxpQ0FBaUMsQ0FBQztBQUV6QyxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sMEJBQTBCLENBQUM7Ozs7O0FBRXhELE1BNkJhLFFBQVMsU0FBUSxVQUE0QjtJQTdCMUQ7O1FBOEJJLHVEQUF1RDtRQUN0QyxZQUFPLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3BCLE9BQUUsR0FB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LGFBQ3BDLENBQUMsd0JBQXdCLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxrQkFDN0I7d0JBQ1o7NEJBQ0ksU0FBUyxFQUFFLGNBQWM7NEJBQ3pCLE9BQU8sRUFBRSxDQUFDLG1CQUFtQixDQUFDO3lCQUNqQztxQkFDSixRQUNLO3dCQUNGLGtCQUFrQixFQUFFLE1BQU07d0JBQzFCLGlCQUFpQixFQUFFLElBQUk7d0JBQ3ZCLHNCQUFzQixFQUFFLFlBQVk7d0JBQ3BDLHFCQUFxQixFQUFFLFNBQVM7d0JBQ2hDLG1CQUFtQixFQUFFLE9BQU87d0JBQzVCLG9CQUFvQixFQUFFLG9CQUFvQjt3QkFDMUMsbUJBQW1CLEVBQUUsWUFBWTt3QkFDakMsWUFBWSxFQUFFLGFBQWE7d0JBQzNCLDJCQUEyQixFQUFFLGdDQUFnQzt3QkFDN0QsNkJBQTZCLEVBQUUsaUNBQWlDO3dCQUNoRSw4QkFBOEIsRUFBRSwyQ0FBMkM7d0JBQzNFLDZCQUE2QixFQUFFLDJDQUEyQztxQkFDN0U7OEJBV00sR0FBRztzQkFEVCxLQUFLO2dCQUlDLEdBQUc7c0JBRFQsS0FBSztnQkFJQyxJQUFJO3NCQURWLEtBQUs7Z0JBSUMsSUFBSTtzQkFEVixLQUFLO2dCQUlDLFFBQVE7c0JBRGQsS0FBSztnQkFJQyxRQUFRO3NCQURkLEtBQUs7Z0JBSUMsU0FBUztzQkFEZixLQUFLO2dCQUlDLE1BQU07c0JBRFosS0FBSztnQkFJQyxLQUFLO3NCQURYLEtBQUs7Z0JBSVUsV0FBVztzQkFEMUIsWUFBWTt1QkFBQyxrQkFBa0IsRUFBRSxFQUFDLElBQUksRUFBRSxVQUFVLEVBQUM7Z0JBaUU1QyxtQkFBbUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBjb21wdXRlZCxcbiAgICBFbGVtZW50UmVmLFxuICAgIGluamVjdCxcbiAgICBJbnB1dCxcbiAgICB0eXBlIE9uQ2hhbmdlcyxcbiAgICB0eXBlIFF1ZXJ5TGlzdCxcbiAgICBzaWduYWwsXG4gICAgVmlld0NoaWxkcmVuLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Rm9ybXNNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7VHVpQ29udHJvbH0gZnJvbSAnQHRhaWdhLXVpL2Nkay9jbGFzc2VzJztcbmltcG9ydCB7RU1QVFlfUVVFUll9IGZyb20gJ0B0YWlnYS11aS9jZGsvY29uc3RhbnRzJztcbmltcG9ydCB7dHVpRmFsbGJhY2tWYWx1ZVByb3ZpZGVyfSBmcm9tICdAdGFpZ2EtdWkvY2RrL3Rva2Vucyc7XG5pbXBvcnQge3R1aUluamVjdEVsZW1lbnR9IGZyb20gJ0B0YWlnYS11aS9jZGsvdXRpbHMvZG9tJztcbmltcG9ydCB7dHVpQ2xhbXAsIHR1aVF1YW50aXplfSBmcm9tICdAdGFpZ2EtdWkvY2RrL3V0aWxzL21hdGgnO1xuaW1wb3J0IHt0dWlQdXJlfSBmcm9tICdAdGFpZ2EtdWkvY2RrL3V0aWxzL21pc2NlbGxhbmVvdXMnO1xuaW1wb3J0IHt0eXBlIFR1aVNpemVTfSBmcm9tICdAdGFpZ2EtdWkvY29yZS90eXBlcyc7XG5pbXBvcnQge1xuICAgIFRVSV9TTElERVJfT1BUSU9OUyxcbiAgICB0eXBlIFR1aUtleVN0ZXBzLFxuICAgIHR1aUtleVN0ZXBWYWx1ZVRvUGVyY2VudGFnZSxcbiAgICB0dWlQZXJjZW50YWdlVG9LZXlTdGVwVmFsdWUsXG4gICAgVHVpU2xpZGVyLFxuICAgIFR1aVNsaWRlckNvbXBvbmVudCxcbn0gZnJvbSAnQHRhaWdhLXVpL2tpdC9jb21wb25lbnRzL3NsaWRlcic7XG5cbmltcG9ydCB7VHVpUmFuZ2VDaGFuZ2V9IGZyb20gJy4vcmFuZ2UtY2hhbmdlLmRpcmVjdGl2ZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgc2VsZWN0b3I6ICd0dWktcmFuZ2UnLFxuICAgIGltcG9ydHM6IFtGb3Jtc01vZHVsZSwgVHVpU2xpZGVyXSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vcmFuZ2UudGVtcGxhdGUuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vcmFuZ2Uuc3R5bGUubGVzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogW3R1aUZhbGxiYWNrVmFsdWVQcm92aWRlcihbMCwgMF0pXSxcbiAgICBob3N0RGlyZWN0aXZlczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBkaXJlY3RpdmU6IFR1aVJhbmdlQ2hhbmdlLFxuICAgICAgICAgICAgb3V0cHV0czogWydhY3RpdmVUaHVtYkNoYW5nZSddLFxuICAgICAgICB9LFxuICAgIF0sXG4gICAgaG9zdDoge1xuICAgICAgICAnW2F0dHIuZGF0YS1zaXplXSc6ICdzaXplJyxcbiAgICAgICAgJ1thdHRyLnRhYmluZGV4XSc6ICctMScsXG4gICAgICAgICdbYXR0ci5hcmlhLWRpc2FibGVkXSc6ICdkaXNhYmxlZCgpJyxcbiAgICAgICAgJ1tzdHlsZS4tLXQtc3RhcnQuJV0nOiAnc3RhcnQoKScsXG4gICAgICAgICdbc3R5bGUuLS10LWVuZC4lXSc6ICdlbmQoKScsXG4gICAgICAgICdbc3R5bGUuYmFja2dyb3VuZF0nOiAnb3B0aW9ucy50cmFja0NvbG9yJyxcbiAgICAgICAgJ1tjbGFzcy5fZGlzYWJsZWRdJzogJ2Rpc2FibGVkKCknLFxuICAgICAgICAnKGZvY3Vzb3V0KSc6ICdvblRvdWNoZWQoKScsXG4gICAgICAgICcoa2V5ZG93bi5hcnJvd1VwLnByZXZlbnQpJzogJ2NoYW5nZUJ5U3RlcCgxLCAkZXZlbnQudGFyZ2V0KScsXG4gICAgICAgICcoa2V5ZG93bi5hcnJvd0Rvd24ucHJldmVudCknOiAnY2hhbmdlQnlTdGVwKC0xLCAkZXZlbnQudGFyZ2V0KScsXG4gICAgICAgICcoa2V5ZG93bi5hcnJvd1JpZ2h0LnByZXZlbnQpJzogJ2NoYW5nZUJ5U3RlcChydGwgPyAtMSA6IDEsICRldmVudC50YXJnZXQpJyxcbiAgICAgICAgJyhrZXlkb3duLmFycm93TGVmdC5wcmV2ZW50KSc6ICdjaGFuZ2VCeVN0ZXAocnRsID8gMSA6IC0xLCAkZXZlbnQudGFyZ2V0KScsXG4gICAgfSxcbn0pXG5leHBvcnQgY2xhc3MgVHVpUmFuZ2UgZXh0ZW5kcyBUdWlDb250cm9sPFtudW1iZXIsIG51bWJlcl0+IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgICAvLyBUT0RPOiByZWZhY3RvciB0byBzaWduYWwgaW5wdXRzIGFmdGVyIEFuZ3VsYXIgdXBkYXRlXG4gICAgcHJpdmF0ZSByZWFkb25seSBjaGFuZ2VzID0gc2lnbmFsKDEpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZWwgPSB0dWlJbmplY3RFbGVtZW50KCk7XG5cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgb3B0aW9ucyA9IGluamVjdChUVUlfU0xJREVSX09QVElPTlMpO1xuICAgIHByb3RlY3RlZCBsYXN0QWN0aXZlVGh1bWI6ICdlbmQnIHwgJ3N0YXJ0JyA9ICdlbmQnO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgbWluID0gMDtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIG1heCA9IDEwMDtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHN0ZXAgPSAxO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2l6ZTogVHVpU2l6ZVMgPSB0aGlzLm9wdGlvbnMuc2l6ZTtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNlZ21lbnRzID0gMTtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGtleVN0ZXBzOiBUdWlLZXlTdGVwcyB8IG51bGwgPSBudWxsO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZm9jdXNhYmxlID0gdHJ1ZTtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIG1hcmdpbiA9IDA7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBsaW1pdCA9IEluZmluaXR5O1xuXG4gICAgQFZpZXdDaGlsZHJlbihUdWlTbGlkZXJDb21wb25lbnQsIHtyZWFkOiBFbGVtZW50UmVmfSlcbiAgICBwdWJsaWMgcmVhZG9ubHkgc2xpZGVyc1JlZnM6IFF1ZXJ5TGlzdDxFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+PiA9IEVNUFRZX1FVRVJZO1xuXG4gICAgcHVibGljIHJlYWRvbmx5IHN0YXJ0ID0gY29tcHV0ZWQoKCkgPT4gdGhpcy50b1BlcmNlbnQodGhpcy52YWx1ZSgpWzBdKSk7XG4gICAgcHVibGljIHJlYWRvbmx5IGVuZCA9IGNvbXB1dGVkKCgpID0+IDEwMCAtIHRoaXMudG9QZXJjZW50KHRoaXMudmFsdWUoKVsxXSkpO1xuXG4gICAgcHVibGljIG5nT25DaGFuZ2VzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNoYW5nZXMudXBkYXRlKCh4KSA9PiB4ICsgMSk7XG4gICAgfVxuXG4gICAgcHVibGljIHByb2Nlc3NWYWx1ZSh2YWx1ZTogbnVtYmVyLCBlbmQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgaWYgKGVuZCkge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVFbmQodmFsdWUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVTdGFydCh2YWx1ZSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmxhc3RBY3RpdmVUaHVtYiA9IGVuZCA/ICdlbmQnIDogJ3N0YXJ0JztcbiAgICB9XG5cbiAgICBwdWJsaWMgdG9WYWx1ZShmcmFjdGlvbjogbnVtYmVyKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHR1aVBlcmNlbnRhZ2VUb0tleVN0ZXBWYWx1ZShcbiAgICAgICAgICAgIHR1aUNsYW1wKHR1aVF1YW50aXplKGZyYWN0aW9uLCB0aGlzLmZyYWN0aW9uU3RlcCksIDAsIDEpICogMTAwLFxuICAgICAgICAgICAgdGhpcy5jb21wdXRlZEtleVN0ZXBzLFxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgZnJhY3Rpb25TdGVwKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLnN0ZXAgLyAodGhpcy5tYXggLSB0aGlzLm1pbik7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldCBjb21wdXRlZEtleVN0ZXBzKCk6IFR1aUtleVN0ZXBzIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29tcHV0ZVB1cmVLZXlTdGVwcyh0aGlzLmtleVN0ZXBzLCB0aGlzLm1pbiwgdGhpcy5tYXgpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgc2VnbWVudFdpZHRoUmF0aW8oKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIDEgLyB0aGlzLnNlZ21lbnRzO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgcnRsKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5lbC5tYXRjaGVzKCdbZGlyPVwicnRsXCJdIDpzY29wZScpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBjaGFuZ2VCeVN0ZXAoY29lZmZpY2llbnQ6IG51bWJlciwgdGFyZ2V0OiBIVE1MRWxlbWVudCk6IHZvaWQge1xuICAgICAgICBjb25zdCBbc3RhcnRUaHVtYiwgZW5kVGh1bWJdID0gdGhpcy5zbGlkZXJzUmVmcy5tYXAoKHgpID0+IHg/Lm5hdGl2ZUVsZW1lbnQpO1xuXG4gICAgICAgIGNvbnN0IGlzRW5kVGh1bWIgPVxuICAgICAgICAgICAgdGFyZ2V0ID09PSB0aGlzLmVsID8gdGhpcy5sYXN0QWN0aXZlVGh1bWIgPT09ICdlbmQnIDogdGFyZ2V0ID09PSBlbmRUaHVtYjtcbiAgICAgICAgY29uc3QgYWN0aXZlVGh1bWJFbGVtZW50ID0gaXNFbmRUaHVtYiA/IGVuZFRodW1iIDogc3RhcnRUaHVtYjtcbiAgICAgICAgY29uc3QgcHJldmlvdXNWYWx1ZSA9IHRoaXMudmFsdWUoKVtpc0VuZFRodW1iID8gMSA6IDBdO1xuICAgICAgICAvKiogQGJhZCBUT0RPIHRoaW5rIGFib3V0IGEgc29sdXRpb24gd2l0aG91dCB0d2ljZSBjb252ZXJzaW9uICovXG4gICAgICAgIGNvbnN0IHByZXZpb3VzRnJhY3Rpb24gPSB0aGlzLnRvUGVyY2VudChwcmV2aW91c1ZhbHVlKSAvIDEwMDtcbiAgICAgICAgY29uc3QgbmV3RnJhY3Rpb25WYWx1ZSA9IHByZXZpb3VzRnJhY3Rpb24gKyBjb2VmZmljaWVudCAqIHRoaXMuZnJhY3Rpb25TdGVwO1xuXG4gICAgICAgIHRoaXMucHJvY2Vzc1ZhbHVlKHRoaXMudG9WYWx1ZShuZXdGcmFjdGlvblZhbHVlKSwgaXNFbmRUaHVtYik7XG4gICAgICAgIGFjdGl2ZVRodW1iRWxlbWVudD8uZm9jdXMoKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgdG9QZXJjZW50KHZhbHVlOiBudW1iZXIpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgdGhpcy5jaGFuZ2VzKCkgJiYgdHVpS2V5U3RlcFZhbHVlVG9QZXJjZW50YWdlKHZhbHVlLCB0aGlzLmNvbXB1dGVkS2V5U3RlcHMpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgQHR1aVB1cmVcbiAgICBwcml2YXRlIGNvbXB1dGVQdXJlS2V5U3RlcHMoXG4gICAgICAgIGtleVN0ZXBzOiBUdWlLZXlTdGVwcyB8IG51bGwsXG4gICAgICAgIG1pbjogbnVtYmVyLFxuICAgICAgICBtYXg6IG51bWJlcixcbiAgICApOiBUdWlLZXlTdGVwcyB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICBrZXlTdGVwcyB8fCBbXG4gICAgICAgICAgICAgICAgWzAsIG1pbl0sXG4gICAgICAgICAgICAgICAgWzEwMCwgbWF4XSxcbiAgICAgICAgICAgIF1cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZVN0YXJ0KHZhbHVlOiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgbmV3VmFsdWUgPSBNYXRoLm1pbih2YWx1ZSwgdGhpcy52YWx1ZSgpWzFdKTtcbiAgICAgICAgY29uc3QgZGlzdGFuY2UgPSB0aGlzLnZhbHVlKClbMV0gLSBuZXdWYWx1ZTtcblxuICAgICAgICBpZiAoIXRoaXMuY2hlY2tEaXN0YW5jZShkaXN0YW5jZSkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMub25DaGFuZ2UoW25ld1ZhbHVlLCB0aGlzLnZhbHVlKClbMV1dKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZUVuZCh2YWx1ZTogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IG5ld1ZhbHVlID0gTWF0aC5tYXgodmFsdWUsIHRoaXMudmFsdWUoKVswXSk7XG4gICAgICAgIGNvbnN0IGRpc3RhbmNlID0gbmV3VmFsdWUgLSB0aGlzLnZhbHVlKClbMF07XG5cbiAgICAgICAgaWYgKCF0aGlzLmNoZWNrRGlzdGFuY2UoZGlzdGFuY2UpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLm9uQ2hhbmdlKFt0aGlzLnZhbHVlKClbMF0sIG5ld1ZhbHVlXSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjaGVja0Rpc3RhbmNlKGRpc3RhbmNlOiBudW1iZXIpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHR1aUNsYW1wKGRpc3RhbmNlLCB0aGlzLm1hcmdpbiwgdGhpcy5saW1pdCkgPT09IGRpc3RhbmNlO1xuICAgIH1cbn1cbiIsIjxkaXZcbiAgICBjbGFzcz1cInQtdHJhY2tcIlxuICAgIFtzdHlsZS4tLXQtYmctc2l6ZS1yYXRpb109XCIxIC0gc2VnbWVudFdpZHRoUmF0aW9cIlxuICAgIFtzdHlsZS4tLXQtc2VnbWVudC13aWR0aC4lXT1cInNlZ21lbnRXaWR0aFJhdGlvICogMTAwXCJcbj5cbiAgICA8aW5wdXRcbiAgICAgICAgYXV0b21hdGlvbi1pZD1cInR1aS1yYW5nZV9fbGVmdFwiXG4gICAgICAgIHJlYWRvbmx5XG4gICAgICAgIHN0ZXA9XCJhbnlcIlxuICAgICAgICB0dWlTbGlkZXJcbiAgICAgICAgdHlwZT1cInJhbmdlXCJcbiAgICAgICAgY2xhc3M9XCJ0LXRodW1iXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkKClcIlxuICAgICAgICBba2V5U3RlcHNdPVwiY29tcHV0ZWRLZXlTdGVwc1wiXG4gICAgICAgIFttYXhdPVwibWF4XCJcbiAgICAgICAgW21pbl09XCJtaW5cIlxuICAgICAgICBbbmdNb2RlbF09XCJ2YWx1ZSgpWzBdXCJcbiAgICAgICAgW25nTW9kZWxPcHRpb25zXT1cIntzdGFuZGFsb25lOiB0cnVlfVwiXG4gICAgICAgIFtzaXplXT1cInNpemVcIlxuICAgICAgICBbdGFiSW5kZXhdPVwiZm9jdXNhYmxlID8gMCA6IC0xXCJcbiAgICAvPlxuICAgIDxpbnB1dFxuICAgICAgICBhdXRvbWF0aW9uLWlkPVwidHVpLXJhbmdlX19yaWdodFwiXG4gICAgICAgIHJlYWRvbmx5XG4gICAgICAgIHN0ZXA9XCJhbnlcIlxuICAgICAgICB0dWlTbGlkZXJcbiAgICAgICAgdHlwZT1cInJhbmdlXCJcbiAgICAgICAgY2xhc3M9XCJ0LXRodW1iXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkKClcIlxuICAgICAgICBba2V5U3RlcHNdPVwiY29tcHV0ZWRLZXlTdGVwc1wiXG4gICAgICAgIFttYXhdPVwibWF4XCJcbiAgICAgICAgW21pbl09XCJtaW5cIlxuICAgICAgICBbbmdNb2RlbF09XCJ2YWx1ZSgpWzFdXCJcbiAgICAgICAgW25nTW9kZWxPcHRpb25zXT1cIntzdGFuZGFsb25lOiB0cnVlfVwiXG4gICAgICAgIFtzaXplXT1cInNpemVcIlxuICAgICAgICBbdGFiSW5kZXhdPVwiZm9jdXNhYmxlID8gMCA6IC0xXCJcbiAgICAvPlxuPC9kaXY+XG4iXX0=
164
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFuZ2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2l0L2NvbXBvbmVudHMvcmFuZ2UvcmFuZ2UuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2l0L2NvbXBvbmVudHMvcmFuZ2UvcmFuZ2UudGVtcGxhdGUuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsUUFBUSxFQUNSLFVBQVUsRUFDVixNQUFNLEVBQ04sS0FBSyxFQUdMLE1BQU0sRUFDTixZQUFZLEdBQ2YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUNqRCxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDcEQsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDOUQsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFDLFFBQVEsRUFBRSxXQUFXLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUMvRCxPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFFMUQsT0FBTyxFQUNILGtCQUFrQixFQUVsQiwyQkFBMkIsRUFDM0IsMkJBQTJCLEVBQzNCLFNBQVMsRUFDVCxrQkFBa0IsR0FDckIsTUFBTSxpQ0FBaUMsQ0FBQztBQUV6QyxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sMEJBQTBCLENBQUM7Ozs7O0FBRXhELE1BNkJhLFFBQVMsU0FBUSxVQUE0QjtJQTdCMUQ7O1FBOEJJLHVEQUF1RDtRQUN0QyxZQUFPLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3BCLE9BQUUsR0FB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QURWLEtBQUs7Z0JBSUMsUUFBUTtzQkFEZCxLQUFLO2dCQUlDLFFBQVE7c0JBRGQsS0FBSztnQkFJQyxTQUFTO3NCQURmLEtBQUs7Z0JBSUMsTUFBTTtzQkFEWixLQUFLO2dCQUlDLEtBQUs7c0JBRFgsS0FBSztnQkFJVSxXQUFXO3NCQUQxQixZQUFZO3VCQUFDLGtCQUFrQixFQUFFLEVBQUMsSUFBSSxFQUFFLFVBQVUsRUFBQztnQkE4RTVDLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIGNvbXB1dGVkLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgaW5qZWN0LFxuICAgIElucHV0LFxuICAgIHR5cGUgT25DaGFuZ2VzLFxuICAgIHR5cGUgUXVlcnlMaXN0LFxuICAgIHNpZ25hbCxcbiAgICBWaWV3Q2hpbGRyZW4sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtGb3Jtc01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtUdWlDb250cm9sfSBmcm9tICdAdGFpZ2EtdWkvY2RrL2NsYXNzZXMnO1xuaW1wb3J0IHtFTVBUWV9RVUVSWX0gZnJvbSAnQHRhaWdhLXVpL2Nkay9jb25zdGFudHMnO1xuaW1wb3J0IHt0dWlGYWxsYmFja1ZhbHVlUHJvdmlkZXJ9IGZyb20gJ0B0YWlnYS11aS9jZGsvdG9rZW5zJztcbmltcG9ydCB7dHVpSW5qZWN0RWxlbWVudH0gZnJvbSAnQHRhaWdhLXVpL2Nkay91dGlscy9kb20nO1xuaW1wb3J0IHt0dWlDbGFtcCwgdHVpUXVhbnRpemV9IGZyb20gJ0B0YWlnYS11aS9jZGsvdXRpbHMvbWF0aCc7XG5pbXBvcnQge3R1aVB1cmV9IGZyb20gJ0B0YWlnYS11aS9jZGsvdXRpbHMvbWlzY2VsbGFuZW91cyc7XG5pbXBvcnQge3R5cGUgVHVpU2l6ZVN9IGZyb20gJ0B0YWlnYS11aS9jb3JlL3R5cGVzJztcbmltcG9ydCB7XG4gICAgVFVJX1NMSURFUl9PUFRJT05TLFxuICAgIHR5cGUgVHVpS2V5U3RlcHMsXG4gICAgdHVpS2V5U3RlcFZhbHVlVG9QZXJjZW50YWdlLFxuICAgIHR1aVBlcmNlbnRhZ2VUb0tleVN0ZXBWYWx1ZSxcbiAgICBUdWlTbGlkZXIsXG4gICAgVHVpU2xpZGVyQ29tcG9uZW50LFxufSBmcm9tICdAdGFpZ2EtdWkva2l0L2NvbXBvbmVudHMvc2xpZGVyJztcblxuaW1wb3J0IHtUdWlSYW5nZUNoYW5nZX0gZnJvbSAnLi9yYW5nZS1jaGFuZ2UuZGlyZWN0aXZlJztcblxuQENvbXBvbmVudCh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBzZWxlY3RvcjogJ3R1aS1yYW5nZScsXG4gICAgaW1wb3J0czogW0Zvcm1zTW9kdWxlLCBUdWlTbGlkZXJdLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9yYW5nZS50ZW1wbGF0ZS5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9yYW5nZS5zdHlsZS5sZXNzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJvdmlkZXJzOiBbdHVpRmFsbGJhY2tWYWx1ZVByb3ZpZGVyKFswLCAwXSldLFxuICAgIGhvc3REaXJlY3RpdmVzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIGRpcmVjdGl2ZTogVHVpUmFuZ2VDaGFuZ2UsXG4gICAgICAgICAgICBvdXRwdXRzOiBbJ2FjdGl2ZVRodW1iQ2hhbmdlJ10sXG4gICAgICAgIH0sXG4gICAgXSxcbiAgICBob3N0OiB7XG4gICAgICAgICdbYXR0ci5kYXRhLXNpemVdJzogJ3NpemUnLFxuICAgICAgICAnW2F0dHIudGFiaW5kZXhdJzogJy0xJyxcbiAgICAgICAgJ1thdHRyLmFyaWEtZGlzYWJsZWRdJzogJ2Rpc2FibGVkKCknLFxuICAgICAgICAnW3N0eWxlLi0tdC1zdGFydC4lXSc6ICdzdGFydCgpJyxcbiAgICAgICAgJ1tzdHlsZS4tLXQtZW5kLiVdJzogJ2VuZCgpJyxcbiAgICAgICAgJ1tzdHlsZS5iYWNrZ3JvdW5kXSc6ICdvcHRpb25zLnRyYWNrQ29sb3InLFxuICAgICAgICAnW2NsYXNzLl9kaXNhYmxlZF0nOiAnZGlzYWJsZWQoKScsXG4gICAgICAgICcoZm9jdXNvdXQpJzogJ29uVG91Y2hlZCgpJyxcbiAgICAgICAgJyhrZXlkb3duLmFycm93VXAucHJldmVudCknOiAnY2hhbmdlQnlTdGVwKDEsICRldmVudC50YXJnZXQpJyxcbiAgICAgICAgJyhrZXlkb3duLmFycm93RG93bi5wcmV2ZW50KSc6ICdjaGFuZ2VCeVN0ZXAoLTEsICRldmVudC50YXJnZXQpJyxcbiAgICAgICAgJyhrZXlkb3duLmFycm93UmlnaHQucHJldmVudCknOiAnY2hhbmdlQnlTdGVwKHJ0bCA/IC0xIDogMSwgJGV2ZW50LnRhcmdldCknLFxuICAgICAgICAnKGtleWRvd24uYXJyb3dMZWZ0LnByZXZlbnQpJzogJ2NoYW5nZUJ5U3RlcChydGwgPyAxIDogLTEsICRldmVudC50YXJnZXQpJyxcbiAgICB9LFxufSlcbmV4cG9ydCBjbGFzcyBUdWlSYW5nZSBleHRlbmRzIFR1aUNvbnRyb2w8W251bWJlciwgbnVtYmVyXT4gaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICAgIC8vIFRPRE86IHJlZmFjdG9yIHRvIHNpZ25hbCBpbnB1dHMgYWZ0ZXIgQW5ndWxhciB1cGRhdGVcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNoYW5nZXMgPSBzaWduYWwoMSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBlbCA9IHR1aUluamVjdEVsZW1lbnQoKTtcblxuICAgIHByb3RlY3RlZCByZWFkb25seSBvcHRpb25zID0gaW5qZWN0KFRVSV9TTElERVJfT1BUSU9OUyk7XG4gICAgcHJvdGVjdGVkIGxhc3RBY3RpdmVUaHVtYjogJ2VuZCcgfCAnc3RhcnQnID0gJ2VuZCc7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBtaW4gPSAwO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgbWF4ID0gMTAwO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc3RlcCA9IDE7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzaXplOiBUdWlTaXplUyA9IHRoaXMub3B0aW9ucy5zaXplO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2VnbWVudHMgPSAxO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMga2V5U3RlcHM6IFR1aUtleVN0ZXBzIHwgbnVsbCA9IG51bGw7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBmb2N1c2FibGUgPSB0cnVlO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgbWFyZ2luID0gMDtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGxpbWl0ID0gSW5maW5pdHk7XG5cbiAgICBAVmlld0NoaWxkcmVuKFR1aVNsaWRlckNvbXBvbmVudCwge3JlYWQ6IEVsZW1lbnRSZWZ9KVxuICAgIHB1YmxpYyByZWFkb25seSBzbGlkZXJzUmVmczogUXVlcnlMaXN0PEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD4+ID0gRU1QVFlfUVVFUlk7XG5cbiAgICBwdWJsaWMgcmVhZG9ubHkgc3RhcnQgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnRvUGVyY2VudCh0aGlzLnZhbHVlKClbMF0pKTtcbiAgICBwdWJsaWMgcmVhZG9ubHkgZW5kID0gY29tcHV0ZWQoKCkgPT4gMTAwIC0gdGhpcy50b1BlcmNlbnQodGhpcy52YWx1ZSgpWzFdKSk7XG5cbiAgICAvKipcbiAgICAgKiBUT0RPKHY1KTogc3RhbmRhcmRpemUgbG9naWMgYmV0d2VlbiBgVHVpU2xpZGVyYCAmIGBUdWlJbnB1dFNsaWRlcmAgJiBgUmFuZ2VgICYgYElucHV0UmFuZ2VgXG4gICAgICogRm9yIG5vbi1saW5lYXIgc2xpZGVyICh3aXRoIGBba2V5U3RlcHNdYCBwcm9wZXJ0eSkgYHN0ZXBgIG1lYW5zIHBlcmNlbnRhZ2VcbiAgICAgKi9cbiAgICBwdWJsaWMgbGVnYWN5TW9kZSA9IHRydWU7XG5cbiAgICBwdWJsaWMgbmdPbkNoYW5nZXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY2hhbmdlcy51cGRhdGUoKHgpID0+IHggKyAxKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcHJvY2Vzc1ZhbHVlKHZhbHVlOiBudW1iZXIsIGVuZDogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICBpZiAoZW5kKSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZUVuZCh2YWx1ZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVN0YXJ0KHZhbHVlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMubGFzdEFjdGl2ZVRodW1iID0gZW5kID8gJ2VuZCcgOiAnc3RhcnQnO1xuICAgIH1cblxuICAgIHB1YmxpYyB0YWtlU3RlcChjb2VmZmljaWVudHM6IHJlYWRvbmx5IFtudW1iZXIsIG51bWJlcl0pOiByZWFkb25seSBbbnVtYmVyLCBudW1iZXJdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudmFsdWUoKS5tYXAoKHZhbHVlLCBpKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBmcmFjdGlvbiA9IHRoaXMudG9QZXJjZW50KHZhbHVlKSAvIDEwMDtcbiAgICAgICAgICAgIGNvbnN0IG5ld0ZyYWN0aW9uVmFsdWUgPSBmcmFjdGlvbiArIGNvZWZmaWNpZW50c1tpXSEgKiB0aGlzLmZyYWN0aW9uU3RlcDtcblxuICAgICAgICAgICAgcmV0dXJuIHRoaXMudG9WYWx1ZShuZXdGcmFjdGlvblZhbHVlKTtcbiAgICAgICAgfSkgYXMgW251bWJlciwgbnVtYmVyXTtcbiAgICB9XG5cbiAgICBwdWJsaWMgdG9WYWx1ZShmcmFjdGlvbjogbnVtYmVyKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHR1aVBlcmNlbnRhZ2VUb0tleVN0ZXBWYWx1ZShcbiAgICAgICAgICAgIHR1aUNsYW1wKHR1aVF1YW50aXplKGZyYWN0aW9uLCB0aGlzLmZyYWN0aW9uU3RlcCksIDAsIDEpICogMTAwLFxuICAgICAgICAgICAgdGhpcy5jb21wdXRlZEtleVN0ZXBzLFxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgZnJhY3Rpb25TdGVwKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLmxlZ2FjeU1vZGUgfHwgIXRoaXMua2V5U3RlcHNcbiAgICAgICAgICAgID8gdGhpcy5zdGVwIC8gKHRoaXMubWF4IC0gdGhpcy5taW4pXG4gICAgICAgICAgICA6IHRoaXMuc3RlcCAvIDEwMDtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IGNvbXB1dGVkS2V5U3RlcHMoKTogVHVpS2V5U3RlcHMge1xuICAgICAgICByZXR1cm4gdGhpcy5jb21wdXRlUHVyZUtleVN0ZXBzKHRoaXMua2V5U3RlcHMsIHRoaXMubWluLCB0aGlzLm1heCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldCBzZWdtZW50V2lkdGhSYXRpbygpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gMSAvIHRoaXMuc2VnbWVudHM7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldCBydGwoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmVsLm1hdGNoZXMoJ1tkaXI9XCJydGxcIl0gOnNjb3BlJyk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGNoYW5nZUJ5U3RlcChjb2VmZmljaWVudDogbnVtYmVyLCB0YXJnZXQ6IEhUTUxFbGVtZW50KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IFtzdGFydFRodW1iLCBlbmRUaHVtYl0gPSB0aGlzLnNsaWRlcnNSZWZzLm1hcCgoeCkgPT4geD8ubmF0aXZlRWxlbWVudCk7XG4gICAgICAgIGNvbnN0IGlzRW5kVGh1bWIgPVxuICAgICAgICAgICAgdGFyZ2V0ID09PSB0aGlzLmVsID8gdGhpcy5sYXN0QWN0aXZlVGh1bWIgPT09ICdlbmQnIDogdGFyZ2V0ID09PSBlbmRUaHVtYjtcbiAgICAgICAgY29uc3QgYWN0aXZlVGh1bWJFbGVtZW50ID0gaXNFbmRUaHVtYiA/IGVuZFRodW1iIDogc3RhcnRUaHVtYjtcbiAgICAgICAgY29uc3QgbmV3VmFsdWUgPSB0aGlzLnRha2VTdGVwKGlzRW5kVGh1bWIgPyBbMCwgY29lZmZpY2llbnRdIDogW2NvZWZmaWNpZW50LCAwXSk7XG5cbiAgICAgICAgdGhpcy5wcm9jZXNzVmFsdWUobmV3VmFsdWVbaXNFbmRUaHVtYiA/IDEgOiAwXSwgaXNFbmRUaHVtYik7XG4gICAgICAgIGFjdGl2ZVRodW1iRWxlbWVudD8uZm9jdXMoKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgdG9QZXJjZW50KHZhbHVlOiBudW1iZXIpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgdGhpcy5jaGFuZ2VzKCkgJiYgdHVpS2V5U3RlcFZhbHVlVG9QZXJjZW50YWdlKHZhbHVlLCB0aGlzLmNvbXB1dGVkS2V5U3RlcHMpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgQHR1aVB1cmVcbiAgICBwcml2YXRlIGNvbXB1dGVQdXJlS2V5U3RlcHMoXG4gICAgICAgIGtleVN0ZXBzOiBUdWlLZXlTdGVwcyB8IG51bGwsXG4gICAgICAgIG1pbjogbnVtYmVyLFxuICAgICAgICBtYXg6IG51bWJlcixcbiAgICApOiBUdWlLZXlTdGVwcyB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICBrZXlTdGVwcyB8fCBbXG4gICAgICAgICAgICAgICAgWzAsIG1pbl0sXG4gICAgICAgICAgICAgICAgWzEwMCwgbWF4XSxcbiAgICAgICAgICAgIF1cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZVN0YXJ0KHZhbHVlOiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgbmV3VmFsdWUgPSBNYXRoLm1pbih2YWx1ZSwgdGhpcy52YWx1ZSgpWzFdKTtcbiAgICAgICAgY29uc3QgZGlzdGFuY2UgPSB0aGlzLnZhbHVlKClbMV0gLSBuZXdWYWx1ZTtcblxuICAgICAgICBpZiAoIXRoaXMuY2hlY2tEaXN0YW5jZShkaXN0YW5jZSkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMub25DaGFuZ2UoW25ld1ZhbHVlLCB0aGlzLnZhbHVlKClbMV1dKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZUVuZCh2YWx1ZTogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IG5ld1ZhbHVlID0gTWF0aC5tYXgodmFsdWUsIHRoaXMudmFsdWUoKVswXSk7XG4gICAgICAgIGNvbnN0IGRpc3RhbmNlID0gbmV3VmFsdWUgLSB0aGlzLnZhbHVlKClbMF07XG5cbiAgICAgICAgaWYgKCF0aGlzLmNoZWNrRGlzdGFuY2UoZGlzdGFuY2UpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLm9uQ2hhbmdlKFt0aGlzLnZhbHVlKClbMF0sIG5ld1ZhbHVlXSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjaGVja0Rpc3RhbmNlKGRpc3RhbmNlOiBudW1iZXIpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHR1aUNsYW1wKGRpc3RhbmNlLCB0aGlzLm1hcmdpbiwgdGhpcy5saW1pdCkgPT09IGRpc3RhbmNlO1xuICAgIH1cbn1cbiIsIjxkaXZcbiAgICBjbGFzcz1cInQtdHJhY2tcIlxuICAgIFtzdHlsZS4tLXQtYmctc2l6ZS1yYXRpb109XCIxIC0gc2VnbWVudFdpZHRoUmF0aW9cIlxuICAgIFtzdHlsZS4tLXQtc2VnbWVudC13aWR0aC4lXT1cInNlZ21lbnRXaWR0aFJhdGlvICogMTAwXCJcbj5cbiAgICA8aW5wdXRcbiAgICAgICAgYXV0b21hdGlvbi1pZD1cInR1aS1yYW5nZV9fbGVmdFwiXG4gICAgICAgIHJlYWRvbmx5XG4gICAgICAgIHN0ZXA9XCJhbnlcIlxuICAgICAgICB0dWlTbGlkZXJcbiAgICAgICAgdHlwZT1cInJhbmdlXCJcbiAgICAgICAgY2xhc3M9XCJ0LXRodW1iXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkKClcIlxuICAgICAgICBba2V5U3RlcHNdPVwiY29tcHV0ZWRLZXlTdGVwc1wiXG4gICAgICAgIFttYXhdPVwibWF4XCJcbiAgICAgICAgW21pbl09XCJtaW5cIlxuICAgICAgICBbbmdNb2RlbF09XCJ2YWx1ZSgpWzBdXCJcbiAgICAgICAgW25nTW9kZWxPcHRpb25zXT1cIntzdGFuZGFsb25lOiB0cnVlfVwiXG4gICAgICAgIFtzaXplXT1cInNpemVcIlxuICAgICAgICBbdGFiSW5kZXhdPVwiZm9jdXNhYmxlID8gMCA6IC0xXCJcbiAgICAvPlxuICAgIDxpbnB1dFxuICAgICAgICBhdXRvbWF0aW9uLWlkPVwidHVpLXJhbmdlX19yaWdodFwiXG4gICAgICAgIHJlYWRvbmx5XG4gICAgICAgIHN0ZXA9XCJhbnlcIlxuICAgICAgICB0dWlTbGlkZXJcbiAgICAgICAgdHlwZT1cInJhbmdlXCJcbiAgICAgICAgY2xhc3M9XCJ0LXRodW1iXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkKClcIlxuICAgICAgICBba2V5U3RlcHNdPVwiY29tcHV0ZWRLZXlTdGVwc1wiXG4gICAgICAgIFttYXhdPVwibWF4XCJcbiAgICAgICAgW21pbl09XCJtaW5cIlxuICAgICAgICBbbmdNb2RlbF09XCJ2YWx1ZSgpWzFdXCJcbiAgICAgICAgW25nTW9kZWxPcHRpb25zXT1cIntzdGFuZGFsb25lOiB0cnVlfVwiXG4gICAgICAgIFtzaXplXT1cInNpemVcIlxuICAgICAgICBbdGFiSW5kZXhdPVwiZm9jdXNhYmxlID8gMCA6IC0xXCJcbiAgICAvPlxuPC9kaXY+XG4iXX0=
@@ -28,7 +28,8 @@ class TuiSliderKeyStepsBase {
28
28
  this.max = steps?.[steps.length - 1]?.[1];
29
29
  }
30
30
  /**
31
- * TODO(v5): standardize logic between `TuiSlider` & `TuiInputSlider` (for non-linear slider `step` means percentage)
31
+ * TODO(v5): standardize logic between `TuiSlider` & `TuiInputSlider` & `Range` & `InputRange`
32
+ * For non-linear slider (with `[keySteps]` property) `step` means percentage
32
33
  * Add these host-bindings to `TuiSliderKeyStepsBase`:
33
34
  * ```
34
35
  * host: {
@@ -106,4 +107,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
106
107
  }], propDecorators: { keySteps: [{
107
108
  type: Input
108
109
  }] } });
109
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpZGVyLWtleS1zdGVwcy5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9raXQvY29tcG9uZW50cy9zbGlkZXIvaGVscGVycy9zbGlkZXIta2V5LXN0ZXBzLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3JGLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUNwRCxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDekMsT0FBTyxFQUFDLFVBQVUsRUFBMkIsTUFBTSx1QkFBdUIsQ0FBQztBQUMzRSxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDMUQsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDOUQsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBQzFELE9BQU8sRUFBQyxTQUFTLEVBQUUsS0FBSyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBRXRDLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBQyw0QkFBNEIsRUFBbUIsTUFBTSxhQUFhLENBQUM7O0FBRTNFLE1BU2EscUJBQXFCO0lBVGxDO1FBVXFCLGFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDNUIsWUFBTyxHQUFHLE1BQU0sQ0FBQyxTQUFTLEVBQUUsRUFBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUMsQ0FBQyxDQUFDO1FBTXBFLFNBQUksR0FBa0IsQ0FBQyxDQUFDO1FBRXhCLGdCQUFXLEdBQUcsTUFBTSxDQUE2QyxJQUFJ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SUFBSTtvQkFDaEIsUUFBUSxFQUNKLHlIQUF5SDtvQkFDN0gsU0FBUyxFQUFFLENBQUMsd0JBQXdCLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQ3hDLElBQUksRUFBRTt3QkFDRixTQUFTLEVBQUUsU0FBUzt3QkFDcEIsWUFBWSxFQUFFLFlBQVk7d0JBQzFCLFFBQVEsRUFBRSxhQUFhO3dCQUN2QixTQUFTLEVBQUUsK0JBQStCO3dCQUMxQyxVQUFVLEVBQUUsK0JBQStCO3FCQUM5QztpQkFDSjs4QkFPYyxRQUFRO3NCQURsQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEaXJlY3RpdmUsIGZvcndhcmRSZWYsIGluamVjdCwgSU5KRUNUT1IsIElucHV0LCBzaWduYWx9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHt0b1NpZ25hbH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHtOZ0NvbnRyb2x9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7VHVpQ29udHJvbCwgdHlwZSBUdWlWYWx1ZVRyYW5zZm9ybWVyfSBmcm9tICdAdGFpZ2EtdWkvY2RrL2NsYXNzZXMnO1xuaW1wb3J0IHt0dWlDb250cm9sVmFsdWV9IGZyb20gJ0B0YWlnYS11aS9jZGsvb2JzZXJ2YWJsZXMnO1xuaW1wb3J0IHt0dWlGYWxsYmFja1ZhbHVlUHJvdmlkZXJ9IGZyb20gJ0B0YWlnYS11aS9jZGsvdG9rZW5zJztcbmltcG9ydCB7dHVpUHVyZX0gZnJvbSAnQHRhaWdhLXVpL2Nkay91dGlscy9taXNjZWxsYW5lb3VzJztcbmltcG9ydCB7c3dpdGNoTWFwLCB0aW1lcn0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7VHVpU2xpZGVyQ29tcG9uZW50fSBmcm9tICcuLi9zbGlkZXIuY29tcG9uZW50JztcbmltcG9ydCB7dHVpQ3JlYXRlS2V5U3RlcHNUcmFuc2Zvcm1lciwgdHlwZSBUdWlLZXlTdGVwc30gZnJvbSAnLi9rZXktc3RlcHMnO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAnaW5wdXRbdHVpU2xpZGVyXVtrZXlTdGVwc10nLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJ1thdHRyLmFyaWEtdmFsdWVtaW5dJzogJ21pbicsXG4gICAgICAgICdbYXR0ci5hcmlhLXZhbHVlbWF4XSc6ICdtYXgnLFxuICAgICAgICAnW2F0dHIuYXJpYS12YWx1ZW5vd10nOiAndmFsdWUoKScsXG4gICAgfSxcbn0pXG5leHBvcnQgY2xhc3MgVHVpU2xpZGVyS2V5U3RlcHNCYXNlIHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGluamVjdG9yID0gaW5qZWN0KElOSkVDVE9SKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvbnRyb2wgPSBpbmplY3QoTmdDb250cm9sLCB7c2VsZjogdHJ1ZSwgb3B0aW9uYWw6IHRydWV9KTtcblxuICAgIHByb3RlY3RlZCBtaW4/OiBudW1iZXI7XG4gICAgcHJvdGVjdGVkIG1heD86IG51bWJlcjtcblxuICAgIEBJbnB1dCh7dHJhbnNmb3JtOiAoeDogbnVtYmVyIHwgJ2FueScpID0+ICh4ID09PSAnYW55JyA/IG51bGwgOiB4KX0pXG4gICAgcHVibGljIHN0ZXA6IG51bWJlciB8IG51bGwgPSAxO1xuXG4gICAgcHVibGljIHRyYW5zZm9ybWVyID0gc2lnbmFsPFR1aVZhbHVlVHJhbnNmb3JtZXI8bnVtYmVyLCBudW1iZXI+IHwgbnVsbD4obnVsbCk7XG4gICAgcHVibGljIHZhbHVlID0gdG9TaWduYWwoXG4gICAgICAgIHRpbWVyKDApIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2FuZ3VsYXIvaXNzdWVzLzU0NDE4XG4gICAgICAgICAgICAucGlwZShzd2l0Y2hNYXAoKCkgPT4gdHVpQ29udHJvbFZhbHVlPG51bWJlcj4odGhpcy5jb250cm9sKSkpLFxuICAgICk7XG5cbiAgICBAdHVpUHVyZVxuICAgIHB1YmxpYyBnZXQgc2xpZGVyKCk6IFR1aVNsaWRlckNvbXBvbmVudCB7XG4gICAgICAgIHJldHVybiB0aGlzLmluamVjdG9yLmdldChUdWlTbGlkZXJDb21wb25lbnQpO1xuICAgIH1cblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNldCBrZXlTdGVwcyhzdGVwczogVHVpS2V5U3RlcHMgfCBudWxsKSB7XG4gICAgICAgIHRoaXMudHJhbnNmb3JtZXIuc2V0KHN0ZXBzICYmIHR1aUNyZWF0ZUtleVN0ZXBzVHJhbnNmb3JtZXIoc3RlcHMsIHRoaXMuc2xpZGVyKSk7XG4gICAgICAgIHRoaXMubWluID0gc3RlcHM/LlswXVsxXTtcbiAgICAgICAgdGhpcy5tYXggPSBzdGVwcz8uW3N0ZXBzLmxlbmd0aCAtIDFdPy5bMV07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVE9ETyh2NSk6IHN0YW5kYXJkaXplIGxvZ2ljIGJldHdlZW4gYFR1aVNsaWRlcmAgJiBgVHVpSW5wdXRTbGlkZXJgIChmb3Igbm9uLWxpbmVhciBzbGlkZXIgYHN0ZXBgIG1lYW5zIHBlcmNlbnRhZ2UpXG4gICAgICogQWRkIHRoZXNlIGhvc3QtYmluZGluZ3MgdG8gYFR1aVNsaWRlcktleVN0ZXBzQmFzZWA6XG4gICAgICogYGBgXG4gICAgICogaG9zdDoge1xuICAgICAqICAgICAnW2F0dHIubWluXSc6ICcwJyxcbiAgICAgKiAgICAgJ1thdHRyLnN0ZXBdJzogJzEnLFxuICAgICAqICAgICAnW2F0dHIubWF4XSc6ICd0b3RhbFN0ZXBzJyxcbiAgICAgKiB9LFxuICAgICAqIGBgYFxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgdG90YWxTdGVwcygpOiBudW1iZXIge1xuICAgICAgICAvKipcbiAgICAgICAgICogTm90LWludGVnZXIgYW1vdW50IG9mIHN0ZXBzIGlzIGludmFsaWQgdXNhZ2Ugb2YgbmF0aXZlIHNsaWRlcnNcbiAgICAgICAgICogYGBgaHRtbFxuICAgICAgICAgKiA8aW5wdXQgdHlwZT1cInJhbmdlXCIgW21heF09XCIxMDBcIiBbc3RlcF09XCIzLjMzXCIgLz5cbiAgICAgICAgICogYGBgXG4gICAgICAgICAqIChpbXBvc3NpYmxlIHRvIHNlbGVjdCAxMDA7IDk5LjkgaXMgbWF4IGFsbG93ZWQgdmFsdWUpXG4gICAgICAgICAqL1xuICAgICAgICByZXR1cm4gdGhpcy5zdGVwID8gTWF0aC5yb3VuZCgxMDAgLyB0aGlzLnN0ZXApIDogSW5maW5pdHk7XG4gICAgfVxuXG4gICAgcHVibGljIHRha2VTdGVwKGNvZWZmaWNpZW50OiBudW1iZXIpOiBudW1iZXIge1xuICAgICAgICBjb25zdCBuZXdWYWx1ZSA9IHRoaXMuc2xpZGVyLnZhbHVlICsgY29lZmZpY2llbnQ7XG5cbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIHRoaXMudHJhbnNmb3JtZXIoKT8udG9Db250cm9sVmFsdWUodGhpcy5zbGlkZXIudmFsdWUgKyBjb2VmZmljaWVudCkgPz9cbiAgICAgICAgICAgIG5ld1ZhbHVlXG4gICAgICAgICk7XG4gICAgfVxufVxuXG5ARGlyZWN0aXZlKHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOlxuICAgICAgICAnaW5wdXRbdHVpU2xpZGVyXVtrZXlTdGVwc11bbmdNb2RlbF0saW5wdXRbdHVpU2xpZGVyXVtrZXlTdGVwc11bZm9ybUNvbnRyb2xdLGlucHV0W3R1aVNsaWRlcl1ba2V5U3RlcHNdW2Zvcm1Db250cm9sTmFtZV0nLFxuICAgIHByb3ZpZGVyczogW3R1aUZhbGxiYWNrVmFsdWVQcm92aWRlcigwKV0sXG4gICAgaG9zdDoge1xuICAgICAgICAnW3ZhbHVlXSc6ICd2YWx1ZSgpJyxcbiAgICAgICAgJ1tkaXNhYmxlZF0nOiAnZGlzYWJsZWQoKScsXG4gICAgICAgICcoYmx1ciknOiAnb25Ub3VjaGVkKCknLFxuICAgICAgICAnKGlucHV0KSc6ICdvbkNoYW5nZSgkZXZlbnQudGFyZ2V0LnZhbHVlKScsXG4gICAgICAgICcoY2hhbmdlKSc6ICdvbkNoYW5nZSgkZXZlbnQudGFyZ2V0LnZhbHVlKScsXG4gICAgfSxcbn0pXG5leHBvcnQgY2xhc3MgVHVpU2xpZGVyS2V5U3RlcHMgZXh0ZW5kcyBUdWlDb250cm9sPG51bWJlcj4ge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgc2xpZGVyID0gaW5qZWN0PFR1aVNsaWRlckNvbXBvbmVudD4oXG4gICAgICAgIGZvcndhcmRSZWYoKCkgPT4gVHVpU2xpZGVyQ29tcG9uZW50KSxcbiAgICApO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2V0IGtleVN0ZXBzKHN0ZXBzOiBUdWlLZXlTdGVwcykge1xuICAgICAgICB0aGlzLnRyYW5zZm9ybWVyID0gdHVpQ3JlYXRlS2V5U3RlcHNUcmFuc2Zvcm1lcihzdGVwcywgdGhpcy5zbGlkZXIpO1xuICAgIH1cbn1cbiJdfQ==
110
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpZGVyLWtleS1zdGVwcy5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9raXQvY29tcG9uZW50cy9zbGlkZXIvaGVscGVycy9zbGlkZXIta2V5LXN0ZXBzLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3JGLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUNwRCxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDekMsT0FBTyxFQUFDLFVBQVUsRUFBMkIsTUFBTSx1QkFBdUIsQ0FBQztBQUMzRSxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDMUQsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDOUQsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBQzFELE9BQU8sRUFBQyxTQUFTLEVBQUUsS0FBSyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBRXRDLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBQyw0QkFBNEIsRUFBbUIsTUFBTSxhQUFhLENBQUM7O0FBRTNFLE1BU2EscUJBQXFCO0lBVGxDO1FBVXFCLGFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDNUIsWUFBTyxHQUFHLE1BQU0sQ0FBQyxTQUFTLEVBQUUsRUFBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUMsQ0FBQyxDQUFDO1FBTXBFLFNBQUksR0FBa0IsQ0FBQyxDQUFDO1FBRXhCLGdCQUFXLEdBQUcsTUFBTSxDQUE2QyxJQUFJ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LElBQUk7b0JBQ2hCLFFBQVEsRUFDSix5SEFBeUg7b0JBQzdILFNBQVMsRUFBRSxDQUFDLHdCQUF3QixDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUN4QyxJQUFJLEVBQUU7d0JBQ0YsU0FBUyxFQUFFLFNBQVM7d0JBQ3BCLFlBQVksRUFBRSxZQUFZO3dCQUMxQixRQUFRLEVBQUUsYUFBYTt3QkFDdkIsU0FBUyxFQUFFLCtCQUErQjt3QkFDMUMsVUFBVSxFQUFFLCtCQUErQjtxQkFDOUM7aUJBQ0o7OEJBT2MsUUFBUTtzQkFEbEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RGlyZWN0aXZlLCBmb3J3YXJkUmVmLCBpbmplY3QsIElOSkVDVE9SLCBJbnB1dCwgc2lnbmFsfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7dG9TaWduYWx9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7TmdDb250cm9sfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge1R1aUNvbnRyb2wsIHR5cGUgVHVpVmFsdWVUcmFuc2Zvcm1lcn0gZnJvbSAnQHRhaWdhLXVpL2Nkay9jbGFzc2VzJztcbmltcG9ydCB7dHVpQ29udHJvbFZhbHVlfSBmcm9tICdAdGFpZ2EtdWkvY2RrL29ic2VydmFibGVzJztcbmltcG9ydCB7dHVpRmFsbGJhY2tWYWx1ZVByb3ZpZGVyfSBmcm9tICdAdGFpZ2EtdWkvY2RrL3Rva2Vucyc7XG5pbXBvcnQge3R1aVB1cmV9IGZyb20gJ0B0YWlnYS11aS9jZGsvdXRpbHMvbWlzY2VsbGFuZW91cyc7XG5pbXBvcnQge3N3aXRjaE1hcCwgdGltZXJ9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQge1R1aVNsaWRlckNvbXBvbmVudH0gZnJvbSAnLi4vc2xpZGVyLmNvbXBvbmVudCc7XG5pbXBvcnQge3R1aUNyZWF0ZUtleVN0ZXBzVHJhbnNmb3JtZXIsIHR5cGUgVHVpS2V5U3RlcHN9IGZyb20gJy4va2V5LXN0ZXBzJztcblxuQERpcmVjdGl2ZSh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBzZWxlY3RvcjogJ2lucHV0W3R1aVNsaWRlcl1ba2V5U3RlcHNdJyxcbiAgICBob3N0OiB7XG4gICAgICAgICdbYXR0ci5hcmlhLXZhbHVlbWluXSc6ICdtaW4nLFxuICAgICAgICAnW2F0dHIuYXJpYS12YWx1ZW1heF0nOiAnbWF4JyxcbiAgICAgICAgJ1thdHRyLmFyaWEtdmFsdWVub3ddJzogJ3ZhbHVlKCknLFxuICAgIH0sXG59KVxuZXhwb3J0IGNsYXNzIFR1aVNsaWRlcktleVN0ZXBzQmFzZSB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBpbmplY3RvciA9IGluamVjdChJTkpFQ1RPUik7XG4gICAgcHJpdmF0ZSByZWFkb25seSBjb250cm9sID0gaW5qZWN0KE5nQ29udHJvbCwge3NlbGY6IHRydWUsIG9wdGlvbmFsOiB0cnVlfSk7XG5cbiAgICBwcm90ZWN0ZWQgbWluPzogbnVtYmVyO1xuICAgIHByb3RlY3RlZCBtYXg/OiBudW1iZXI7XG5cbiAgICBASW5wdXQoe3RyYW5zZm9ybTogKHg6IG51bWJlciB8ICdhbnknKSA9PiAoeCA9PT0gJ2FueScgPyBudWxsIDogeCl9KVxuICAgIHB1YmxpYyBzdGVwOiBudW1iZXIgfCBudWxsID0gMTtcblxuICAgIHB1YmxpYyB0cmFuc2Zvcm1lciA9IHNpZ25hbDxUdWlWYWx1ZVRyYW5zZm9ybWVyPG51bWJlciwgbnVtYmVyPiB8IG51bGw+KG51bGwpO1xuICAgIHB1YmxpYyB2YWx1ZSA9IHRvU2lnbmFsKFxuICAgICAgICB0aW1lcigwKSAvLyBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9hbmd1bGFyL2lzc3Vlcy81NDQxOFxuICAgICAgICAgICAgLnBpcGUoc3dpdGNoTWFwKCgpID0+IHR1aUNvbnRyb2xWYWx1ZTxudW1iZXI+KHRoaXMuY29udHJvbCkpKSxcbiAgICApO1xuXG4gICAgQHR1aVB1cmVcbiAgICBwdWJsaWMgZ2V0IHNsaWRlcigpOiBUdWlTbGlkZXJDb21wb25lbnQge1xuICAgICAgICByZXR1cm4gdGhpcy5pbmplY3Rvci5nZXQoVHVpU2xpZGVyQ29tcG9uZW50KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzZXQga2V5U3RlcHMoc3RlcHM6IFR1aUtleVN0ZXBzIHwgbnVsbCkge1xuICAgICAgICB0aGlzLnRyYW5zZm9ybWVyLnNldChzdGVwcyAmJiB0dWlDcmVhdGVLZXlTdGVwc1RyYW5zZm9ybWVyKHN0ZXBzLCB0aGlzLnNsaWRlcikpO1xuICAgICAgICB0aGlzLm1pbiA9IHN0ZXBzPy5bMF1bMV07XG4gICAgICAgIHRoaXMubWF4ID0gc3RlcHM/LltzdGVwcy5sZW5ndGggLSAxXT8uWzFdO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRPRE8odjUpOiBzdGFuZGFyZGl6ZSBsb2dpYyBiZXR3ZWVuIGBUdWlTbGlkZXJgICYgYFR1aUlucHV0U2xpZGVyYCAmIGBSYW5nZWAgJiBgSW5wdXRSYW5nZWBcbiAgICAgKiBGb3Igbm9uLWxpbmVhciBzbGlkZXIgKHdpdGggYFtrZXlTdGVwc11gIHByb3BlcnR5KSBgc3RlcGAgbWVhbnMgcGVyY2VudGFnZVxuICAgICAqIEFkZCB0aGVzZSBob3N0LWJpbmRpbmdzIHRvIGBUdWlTbGlkZXJLZXlTdGVwc0Jhc2VgOlxuICAgICAqIGBgYFxuICAgICAqIGhvc3Q6IHtcbiAgICAgKiAgICAgJ1thdHRyLm1pbl0nOiAnMCcsXG4gICAgICogICAgICdbYXR0ci5zdGVwXSc6ICcxJyxcbiAgICAgKiAgICAgJ1thdHRyLm1heF0nOiAndG90YWxTdGVwcycsXG4gICAgICogfSxcbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IHRvdGFsU3RlcHMoKTogbnVtYmVyIHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIE5vdC1pbnRlZ2VyIGFtb3VudCBvZiBzdGVwcyBpcyBpbnZhbGlkIHVzYWdlIG9mIG5hdGl2ZSBzbGlkZXJzXG4gICAgICAgICAqIGBgYGh0bWxcbiAgICAgICAgICogPGlucHV0IHR5cGU9XCJyYW5nZVwiIFttYXhdPVwiMTAwXCIgW3N0ZXBdPVwiMy4zM1wiIC8+XG4gICAgICAgICAqIGBgYFxuICAgICAgICAgKiAoaW1wb3NzaWJsZSB0byBzZWxlY3QgMTAwOyA5OS45IGlzIG1heCBhbGxvd2VkIHZhbHVlKVxuICAgICAgICAgKi9cbiAgICAgICAgcmV0dXJuIHRoaXMuc3RlcCA/IE1hdGgucm91bmQoMTAwIC8gdGhpcy5zdGVwKSA6IEluZmluaXR5O1xuICAgIH1cblxuICAgIHB1YmxpYyB0YWtlU3RlcChjb2VmZmljaWVudDogbnVtYmVyKTogbnVtYmVyIHtcbiAgICAgICAgY29uc3QgbmV3VmFsdWUgPSB0aGlzLnNsaWRlci52YWx1ZSArIGNvZWZmaWNpZW50O1xuXG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICB0aGlzLnRyYW5zZm9ybWVyKCk/LnRvQ29udHJvbFZhbHVlKHRoaXMuc2xpZGVyLnZhbHVlICsgY29lZmZpY2llbnQpID8/XG4gICAgICAgICAgICBuZXdWYWx1ZVxuICAgICAgICApO1xuICAgIH1cbn1cblxuQERpcmVjdGl2ZSh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBzZWxlY3RvcjpcbiAgICAgICAgJ2lucHV0W3R1aVNsaWRlcl1ba2V5U3RlcHNdW25nTW9kZWxdLGlucHV0W3R1aVNsaWRlcl1ba2V5U3RlcHNdW2Zvcm1Db250cm9sXSxpbnB1dFt0dWlTbGlkZXJdW2tleVN0ZXBzXVtmb3JtQ29udHJvbE5hbWVdJyxcbiAgICBwcm92aWRlcnM6IFt0dWlGYWxsYmFja1ZhbHVlUHJvdmlkZXIoMCldLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJ1t2YWx1ZV0nOiAndmFsdWUoKScsXG4gICAgICAgICdbZGlzYWJsZWRdJzogJ2Rpc2FibGVkKCknLFxuICAgICAgICAnKGJsdXIpJzogJ29uVG91Y2hlZCgpJyxcbiAgICAgICAgJyhpbnB1dCknOiAnb25DaGFuZ2UoJGV2ZW50LnRhcmdldC52YWx1ZSknLFxuICAgICAgICAnKGNoYW5nZSknOiAnb25DaGFuZ2UoJGV2ZW50LnRhcmdldC52YWx1ZSknLFxuICAgIH0sXG59KVxuZXhwb3J0IGNsYXNzIFR1aVNsaWRlcktleVN0ZXBzIGV4dGVuZHMgVHVpQ29udHJvbDxudW1iZXI+IHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHNsaWRlciA9IGluamVjdDxUdWlTbGlkZXJDb21wb25lbnQ+KFxuICAgICAgICBmb3J3YXJkUmVmKCgpID0+IFR1aVNsaWRlckNvbXBvbmVudCksXG4gICAgKTtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNldCBrZXlTdGVwcyhzdGVwczogVHVpS2V5U3RlcHMpIHtcbiAgICAgICAgdGhpcy50cmFuc2Zvcm1lciA9IHR1aUNyZWF0ZUtleVN0ZXBzVHJhbnNmb3JtZXIoc3RlcHMsIHRoaXMuc2xpZGVyKTtcbiAgICB9XG59XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export * from './slides.directive';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9raXQvY29tcG9uZW50cy9zbGlkZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxvQkFBb0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vc2xpZGVzLmRpcmVjdGl2ZSc7XG4iXX0=