@taiga-ui/kit 4.56.0 → 4.57.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/input-range/input-range.component.d.ts +11 -7
- package/components/input-slider/input-slider.directive.d.ts +1 -2
- package/esm2022/components/input-range/input-range.component.mjs +34 -13
- package/esm2022/components/input-slider/input-slider.directive.mjs +8 -13
- package/fesm2022/taiga-ui-kit-components-input-range.mjs +32 -11
- package/fesm2022/taiga-ui-kit-components-input-range.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-input-slider.mjs +7 -12
- package/fesm2022/taiga-ui-kit-components-input-slider.mjs.map +1 -1
- package/package.json +20 -20
|
@@ -17,15 +17,14 @@ export declare class TuiInputRangeComponent extends TuiControl<readonly [
|
|
|
17
17
|
protected textfieldValueStart: number;
|
|
18
18
|
protected textfieldValueEnd: number;
|
|
19
19
|
protected lastActiveSide: 'end' | 'start';
|
|
20
|
+
protected readonly content: import("@angular/core").WritableSignal<readonly [PolymorpheusContent<TuiContext<number>>, PolymorpheusContent<TuiContext<number>>]>;
|
|
21
|
+
protected readonly contentStart: import("@angular/core").Signal<PolymorpheusContent<TuiContext<number>>>;
|
|
22
|
+
protected readonly contentEnd: import("@angular/core").Signal<PolymorpheusContent<TuiContext<number>>>;
|
|
20
23
|
min: number;
|
|
21
24
|
max: number;
|
|
22
25
|
step: number;
|
|
23
26
|
segments: number;
|
|
24
27
|
keySteps: TuiKeySteps | null;
|
|
25
|
-
content: readonly [
|
|
26
|
-
PolymorpheusContent<TuiContext<number>>,
|
|
27
|
-
PolymorpheusContent<TuiContext<number>>
|
|
28
|
-
];
|
|
29
28
|
prefix: readonly [
|
|
30
29
|
string,
|
|
31
30
|
string
|
|
@@ -35,13 +34,17 @@ export declare class TuiInputRangeComponent extends TuiControl<readonly [
|
|
|
35
34
|
string
|
|
36
35
|
];
|
|
37
36
|
set quantumSetter(x: number);
|
|
37
|
+
set contentSetter(x: readonly [
|
|
38
|
+
PolymorpheusContent<TuiContext<number>>,
|
|
39
|
+
PolymorpheusContent<TuiContext<number>>
|
|
40
|
+
]);
|
|
38
41
|
writeValue(value: [
|
|
39
42
|
number,
|
|
40
43
|
number
|
|
41
44
|
]): void;
|
|
42
45
|
ngAfterViewInit(): void;
|
|
43
|
-
protected get
|
|
44
|
-
protected get
|
|
46
|
+
protected get contentStartHidden(): boolean;
|
|
47
|
+
protected get contentEndHidden(): boolean;
|
|
45
48
|
protected takeStep(event: Event | KeyboardEvent, coefficients: readonly [
|
|
46
49
|
number,
|
|
47
50
|
number
|
|
@@ -65,8 +68,9 @@ export declare class TuiInputRangeComponent extends TuiControl<readonly [
|
|
|
65
68
|
private get activeTextfield();
|
|
66
69
|
private setValue;
|
|
67
70
|
private valueGuard;
|
|
71
|
+
private isPrimitive;
|
|
68
72
|
static ɵfac: i0.ɵɵFactoryDeclaration<TuiInputRangeComponent, never>;
|
|
69
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<TuiInputRangeComponent, "tui-input-range", never, { "min": { "alias": "min"; "required": false; }; "max": { "alias": "max"; "required": false; }; "step": { "alias": "step"; "required": false; }; "segments": { "alias": "segments"; "required": false; }; "keySteps": { "alias": "keySteps"; "required": false; }; "
|
|
73
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<TuiInputRangeComponent, "tui-input-range", never, { "min": { "alias": "min"; "required": false; }; "max": { "alias": "max"; "required": false; }; "step": { "alias": "step"; "required": false; }; "segments": { "alias": "segments"; "required": false; }; "keySteps": { "alias": "keySteps"; "required": false; }; "prefix": { "alias": "prefix"; "required": false; }; "postfix": { "alias": "postfix"; "required": false; }; "quantumSetter": { "alias": "quantum"; "required": false; }; "contentSetter": { "alias": "content"; "required": false; }; }, {}, never, ["label"], true, never>;
|
|
70
74
|
static ngAcceptInputType_prefix: readonly [
|
|
71
75
|
string,
|
|
72
76
|
string
|
|
@@ -3,7 +3,7 @@ import * as i0 from "@angular/core";
|
|
|
3
3
|
import * as i1 from "@taiga-ui/kit/components/input-number";
|
|
4
4
|
export declare class TuiInputSliderDirective {
|
|
5
5
|
private readonly isMobile;
|
|
6
|
-
private readonly
|
|
6
|
+
private readonly el;
|
|
7
7
|
private readonly slider;
|
|
8
8
|
private readonly controlTransformer;
|
|
9
9
|
private readonly keyStepsTransformer;
|
|
@@ -13,7 +13,6 @@ export declare class TuiInputSliderDirective {
|
|
|
13
13
|
protected readonly textfieldToSliderSync: import("@angular/core").EffectRef;
|
|
14
14
|
protected readonly sliderInitEffect: import("@angular/core").EffectRef;
|
|
15
15
|
protected onStep(coefficient: number): void;
|
|
16
|
-
private onSliderInput;
|
|
17
16
|
static ɵfac: i0.ɵɵFactoryDeclaration<TuiInputSliderDirective, never>;
|
|
18
17
|
static ɵdir: i0.ɵɵDirectiveDeclaration<TuiInputSliderDirective, "input[tuiInputSlider]", never, {}, {}, never, never, true, [{ directive: typeof i1.TuiInputNumberDirective; inputs: { "min": "min"; "max": "max"; "prefix": "prefix"; "postfix": "postfix"; "invalid": "invalid"; "readOnly": "readOnly"; }; outputs: {}; }, { directive: typeof i1.TuiWithQuantumValueTransformer; inputs: {}; outputs: {}; }]>;
|
|
19
18
|
}
|
|
@@ -2,14 +2,14 @@ import { NgIf } from '@angular/common';
|
|
|
2
2
|
import { ChangeDetectionStrategy, Component, computed, ElementRef, inject, Input, signal, ViewChild, ViewChildren, } from '@angular/core';
|
|
3
3
|
import { FormsModule } from '@angular/forms';
|
|
4
4
|
import { tuiAsControl, TuiControl } from '@taiga-ui/cdk/classes';
|
|
5
|
-
import { EMPTY_QUERY } from '@taiga-ui/cdk/constants';
|
|
5
|
+
import { CHAR_EN_DASH, CHAR_NO_BREAK_SPACE, EMPTY_QUERY } from '@taiga-ui/cdk/constants';
|
|
6
6
|
import { TUI_IS_MOBILE, tuiFallbackValueProvider } from '@taiga-ui/cdk/tokens';
|
|
7
7
|
import { tuiIsNativeFocused } from '@taiga-ui/cdk/utils/focus';
|
|
8
8
|
import { TUI_TEXTFIELD_OPTIONS, TuiTextfield } from '@taiga-ui/core/components/textfield';
|
|
9
9
|
import { TuiInputNumber, TuiInputNumberDirective, TuiQuantumValueTransformerBase, } from '@taiga-ui/kit/components/input-number';
|
|
10
10
|
import { TuiRange } from '@taiga-ui/kit/components/range';
|
|
11
11
|
import { tuiSliderOptionsProvider, } from '@taiga-ui/kit/components/slider';
|
|
12
|
-
import { PolymorpheusOutlet } from '@taiga-ui/polymorpheus';
|
|
12
|
+
import { PolymorpheusOutlet, } from '@taiga-ui/polymorpheus';
|
|
13
13
|
import * as i0 from "@angular/core";
|
|
14
14
|
import * as i1 from "@angular/forms";
|
|
15
15
|
import * as i2 from "@taiga-ui/kit/components/input-number";
|
|
@@ -25,12 +25,23 @@ class TuiInputRangeComponent extends TuiControl {
|
|
|
25
25
|
this.textfieldValueStart = this.value()[0];
|
|
26
26
|
this.textfieldValueEnd = this.value()[1];
|
|
27
27
|
this.lastActiveSide = 'start';
|
|
28
|
+
this.content = signal(['', '']);
|
|
29
|
+
this.contentStart = computed(() => {
|
|
30
|
+
const [start, end] = this.content().map((x, i) => {
|
|
31
|
+
const value = this.value()[i];
|
|
32
|
+
return typeof x === 'function' ? x({ $implicit: value }) : x || value;
|
|
33
|
+
});
|
|
34
|
+
if (this.interactive() || !this.isPrimitive(start) || !this.isPrimitive(end)) {
|
|
35
|
+
return this.content()[0];
|
|
36
|
+
}
|
|
37
|
+
return `${start}${CHAR_NO_BREAK_SPACE}${CHAR_EN_DASH}${CHAR_NO_BREAK_SPACE}${end}`;
|
|
38
|
+
});
|
|
39
|
+
this.contentEnd = computed(() => this.contentStart() === this.content()[0] ? this.content()[1] : '');
|
|
28
40
|
this.min = 0;
|
|
29
41
|
this.max = 100;
|
|
30
42
|
this.step = 1;
|
|
31
43
|
this.segments = 1;
|
|
32
44
|
this.keySteps = null;
|
|
33
|
-
this.content = ['', ''];
|
|
34
45
|
this.prefix = ['', ''];
|
|
35
46
|
this.postfix = ['', ''];
|
|
36
47
|
}
|
|
@@ -38,6 +49,10 @@ class TuiInputRangeComponent extends TuiControl {
|
|
|
38
49
|
set quantumSetter(x) {
|
|
39
50
|
this.quantum.set(x);
|
|
40
51
|
}
|
|
52
|
+
// TODO(v5): use signal inputs
|
|
53
|
+
set contentSetter(x) {
|
|
54
|
+
this.content.set(x);
|
|
55
|
+
}
|
|
41
56
|
writeValue(value) {
|
|
42
57
|
super.writeValue(value);
|
|
43
58
|
this.setTextfieldValues(this.value());
|
|
@@ -47,11 +62,12 @@ class TuiInputRangeComponent extends TuiControl {
|
|
|
47
62
|
this.range.legacyMode = false; // TODO(v5): remove backward compatibility
|
|
48
63
|
}
|
|
49
64
|
}
|
|
50
|
-
get
|
|
51
|
-
return
|
|
65
|
+
get contentStartHidden() {
|
|
66
|
+
return this.interactive() && tuiIsNativeFocused(this.textfieldStart);
|
|
52
67
|
}
|
|
53
|
-
get
|
|
54
|
-
return !this.content[1] ||
|
|
68
|
+
get contentEndHidden() {
|
|
69
|
+
return (!this.content()[1] ||
|
|
70
|
+
(this.interactive() && tuiIsNativeFocused(this.textfieldEnd)));
|
|
55
71
|
}
|
|
56
72
|
takeStep(event, coefficients) {
|
|
57
73
|
if (!this.interactive() || !this.range) {
|
|
@@ -107,12 +123,15 @@ class TuiInputRangeComponent extends TuiControl {
|
|
|
107
123
|
const [start, end] = value.map((x) => this.quantumTransformer().toControlValue(x) ?? x);
|
|
108
124
|
return [Math.min(start, prevEnd), Math.max(end, prevStart)];
|
|
109
125
|
}
|
|
126
|
+
isPrimitive(x) {
|
|
127
|
+
return Object(x) !== x;
|
|
128
|
+
}
|
|
110
129
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiInputRangeComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
111
|
-
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",
|
|
130
|
+
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", prefix: ["prefix", "prefix", (x) => x ?? ['', '']], postfix: ["postfix", "postfix", (x) => x ?? ['', '']], quantumSetter: ["quantum", "quantumSetter"], contentSetter: ["content", "contentSetter"] }, host: { attributes: { "new": "" }, properties: { "attr.data-size": "size()", "style.--t-icon-lock": "contentEnd() ? \"none\" : null" } }, providers: [
|
|
112
131
|
tuiAsControl(TuiInputRangeComponent),
|
|
113
132
|
tuiSliderOptionsProvider({ trackColor: 'transparent' }),
|
|
114
133
|
tuiFallbackValueProvider([0, 0]),
|
|
115
|
-
], 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]=\"
|
|
134
|
+
], 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]=\"contentStartHidden ? '' : contentStart()\">\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]=\"!contentEndHidden || !this.interactive()\"\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]=\"contentEndHidden\"\n >\n <ng-container *polymorpheusOutlet=\"contentEnd() 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._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 }); }
|
|
116
135
|
}
|
|
117
136
|
export { TuiInputRangeComponent };
|
|
118
137
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiInputRangeComponent, decorators: [{
|
|
@@ -132,7 +151,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
132
151
|
new: '',
|
|
133
152
|
// TODO: use css :host:has(tui-textfield[data-size]) after browser bump
|
|
134
153
|
'[attr.data-size]': 'size()',
|
|
135
|
-
|
|
154
|
+
'[style.--t-icon-lock]': 'contentEnd() ? "none" : null',
|
|
155
|
+
}, template: "<tui-textfield [content]=\"contentStartHidden ? '' : contentStart()\">\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]=\"!contentEndHidden || !this.interactive()\"\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]=\"contentEndHidden\"\n >\n <ng-container *polymorpheusOutlet=\"contentEnd() 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._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"] }]
|
|
136
156
|
}], propDecorators: { inputNumberRefs: [{
|
|
137
157
|
type: ViewChildren,
|
|
138
158
|
args: [TuiInputNumberDirective, { read: ElementRef }]
|
|
@@ -149,8 +169,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
149
169
|
type: Input
|
|
150
170
|
}], keySteps: [{
|
|
151
171
|
type: Input
|
|
152
|
-
}], content: [{
|
|
153
|
-
type: Input
|
|
154
172
|
}], prefix: [{
|
|
155
173
|
type: Input,
|
|
156
174
|
args: [{ transform: (x) => x ?? ['', ''] }]
|
|
@@ -160,5 +178,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
160
178
|
}], quantumSetter: [{
|
|
161
179
|
type: Input,
|
|
162
180
|
args: ['quantum']
|
|
181
|
+
}], contentSetter: [{
|
|
182
|
+
type: Input,
|
|
183
|
+
args: ['content']
|
|
163
184
|
}] } });
|
|
164
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtcmFuZ2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2l0L2NvbXBvbmVudHMvaW5wdXQtcmFuZ2UvaW5wdXQtcmFuZ2UuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2l0L2NvbXBvbmVudHMvaW5wdXQtcmFuZ2UvaW5wdXQtcmFuZ2UudGVtcGxhdGUuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDckMsT0FBTyxFQUVILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsUUFBUSxFQUNSLFVBQVUsRUFDVixNQUFNLEVBQ04sS0FBSyxFQUVMLE1BQU0sRUFDTixTQUFTLEVBQ1QsWUFBWSxHQUNmLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUMsWUFBWSxFQUFFLFVBQVUsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBQy9ELE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUNwRCxPQUFPLEVBQUMsYUFBYSxFQUFFLHdCQUF3QixFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFFN0UsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDN0QsT0FBTyxFQUFDLHFCQUFxQixFQUFFLFlBQVksRUFBQyxNQUFNLHFDQUFxQyxDQUFDO0FBQ3hGLE9BQU8sRUFDSCxjQUFjLEVBQ2QsdUJBQXVCLEVBQ3ZCLDhCQUE4QixHQUNqQyxNQUFNLHVDQUF1QyxDQUFDO0FBQy9DLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN4RCxPQUFPLEVBRUgsd0JBQXdCLEdBQzNCLE1BQU0saUNBQWlDLENBQUM7QUFDekMsT0FBTyxFQUEyQixrQkFBa0IsRUFB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LEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBQztnQkFJbkUsT0FBTztzQkFEYixLQUFLO3VCQUFDLEVBQUMsU0FBUyxFQUFFLENBQUMsQ0FBbUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFDO2dCQUsvRCxhQUFhO3NCQUR2QixLQUFLO3VCQUFDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge05nSWZ9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICAgIHR5cGUgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb21wb25lbnQsXG4gICAgY29tcHV0ZWQsXG4gICAgRWxlbWVudFJlZixcbiAgICBpbmplY3QsXG4gICAgSW5wdXQsXG4gICAgdHlwZSBRdWVyeUxpc3QsXG4gICAgc2lnbmFsLFxuICAgIFZpZXdDaGlsZCxcbiAgICBWaWV3Q2hpbGRyZW4sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtGb3Jtc01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHt0dWlBc0NvbnRyb2wsIFR1aUNvbnRyb2x9IGZyb20gJ0B0YWlnYS11aS9jZGsvY2xhc3Nlcyc7XG5pbXBvcnQge0VNUFRZX1FVRVJZfSBmcm9tICdAdGFpZ2EtdWkvY2RrL2NvbnN0YW50cyc7XG5pbXBvcnQge1RVSV9JU19NT0JJTEUsIHR1aUZhbGxiYWNrVmFsdWVQcm92aWRlcn0gZnJvbSAnQHRhaWdhLXVpL2Nkay90b2tlbnMnO1xuaW1wb3J0IHt0eXBlIFR1aUNvbnRleHR9IGZyb20gJ0B0YWlnYS11aS9jZGsvdHlwZXMnO1xuaW1wb3J0IHt0dWlJc05hdGl2ZUZvY3VzZWR9IGZyb20gJ0B0YWlnYS11aS9jZGsvdXRpbHMvZm9jdXMnO1xuaW1wb3J0IHtUVUlfVEVYVEZJRUxEX09QVElPTlMsIFR1aVRleHRmaWVsZH0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvY29tcG9uZW50cy90ZXh0ZmllbGQnO1xuaW1wb3J0IHtcbiAgICBUdWlJbnB1dE51bWJlcixcbiAgICBUdWlJbnB1dE51bWJlckRpcmVjdGl2ZSxcbiAgICBUdWlRdWFudHVtVmFsdWVUcmFuc2Zvcm1lckJhc2UsXG59IGZyb20gJ0B0YWlnYS11aS9raXQvY29tcG9uZW50cy9pbnB1dC1udW1iZXInO1xuaW1wb3J0IHtUdWlSYW5nZX0gZnJvbSAnQHRhaWdhLXVpL2tpdC9jb21wb25lbnRzL3JhbmdlJztcbmltcG9ydCB7XG4gICAgdHlwZSBUdWlLZXlTdGVwcyxcbiAgICB0dWlTbGlkZXJPcHRpb25zUHJvdmlkZXIsXG59IGZyb20gJ0B0YWlnYS11aS9raXQvY29tcG9uZW50cy9zbGlkZXInO1xuaW1wb3J0IHt0eXBlIFBvbHltb3JwaGV1c0NvbnRlbnQsIFBvbHltb3JwaGV1c091dGxldH0gZnJvbSAnQHRhaWdhLXVpL3BvbHltb3JwaGV1cyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgc2VsZWN0b3I6ICd0dWktaW5wdXQtcmFuZ2UnLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgRm9ybXNNb2R1bGUsXG4gICAgICAgIE5nSWYsXG4gICAgICAgIFBvbHltb3JwaGV1c091dGxldCxcbiAgICAgICAgVHVpSW5wdXROdW1iZXIsXG4gICAgICAgIFR1aVJhbmdlLFxuICAgICAgICBUdWlUZXh0ZmllbGQsXG4gICAgXSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vaW5wdXQtcmFuZ2UudGVtcGxhdGUuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vaW5wdXQtcmFuZ2Uuc3R5bGUubGVzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB0dWlBc0NvbnRyb2woVHVpSW5wdXRSYW5nZUNvbXBvbmVudCksXG4gICAgICAgIHR1aVNsaWRlck9wdGlvbnNQcm92aWRlcih7dHJhY2tDb2xvcjogJ3RyYW5zcGFyZW50J30pLFxuICAgICAgICB0dWlGYWxsYmFja1ZhbHVlUHJvdmlkZXIoWzAsIDBdKSxcbiAgICBdLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgbmV3OiAnJywgLy8gVE9ETyh2NSk6IHJlbW92ZSBhZnRlciBkZWxldGlvbiBvZiBsZWdhY3kgY29udHJvbFxuICAgICAgICAvLyBUT0RPOiB1c2UgY3NzIDpob3N0Omhhcyh0dWktdGV4dGZpZWxkW2RhdGEtc2l6ZV0pIGFmdGVyIGJyb3dzZXIgYnVtcFxuICAgICAgICAnW2F0dHIuZGF0YS1zaXplXSc6ICdzaXplKCknLFxuICAgIH0sXG59KVxuZXhwb3J0IGNsYXNzIFR1aUlucHV0UmFuZ2VDb21wb25lbnRcbiAgICBleHRlbmRzIFR1aUNvbnRyb2w8cmVhZG9ubHkgW251bWJlciwgbnVtYmVyXT5cbiAgICBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXRcbntcbiAgICBAVmlld0NoaWxkcmVuKFR1aUlucHV0TnVtYmVyRGlyZWN0aXZlLCB7cmVhZDogRWxlbWVudFJlZn0pXG4gICAgcHJpdmF0ZSByZWFkb25seSBpbnB1dE51bWJlclJlZnM6IFF1ZXJ5TGlzdDxFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+PiA9XG4gICAgICAgIEVNUFRZX1FVRVJZO1xuXG4gICAgQFZpZXdDaGlsZChUdWlSYW5nZSlcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJhbmdlPzogVHVpUmFuZ2U7XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IGlzTW9iaWxlID0gaW5qZWN0KFRVSV9JU19NT0JJTEUpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgcXVhbnR1bSA9IHNpZ25hbCgwKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHF1YW50dW1UcmFuc2Zvcm1lciA9IGNvbXB1dGVkKFxuICAgICAgICAoKSA9PiBuZXcgVHVpUXVhbnR1bVZhbHVlVHJhbnNmb3JtZXJCYXNlKHRoaXMucXVhbnR1bSgpKSxcbiAgICApO1xuXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHNpemUgPSBpbmplY3QoVFVJX1RFWFRGSUVMRF9PUFRJT05TKS5zaXplO1xuICAgIHByb3RlY3RlZCB0ZXh0ZmllbGRWYWx1ZVN0YXJ0ID0gdGhpcy52YWx1ZSgpWzBdO1xuICAgIHByb3RlY3RlZCB0ZXh0ZmllbGRWYWx1ZUVuZCA9IHRoaXMudmFsdWUoKVsxXTtcbiAgICBwcm90ZWN0ZWQgbGFzdEFjdGl2ZVNpZGU6ICdlbmQnIHwgJ3N0YXJ0JyA9ICdzdGFydCc7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBtaW4gPSAwO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgbWF4ID0gMTAwO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc3RlcCA9IDE7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzZWdtZW50cyA9IDE7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBrZXlTdGVwczogVHVpS2V5U3RlcHMgfCBudWxsID0gbnVsbDtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGNvbnRlbnQ6IHJlYWRvbmx5IFtcbiAgICAgICAgUG9seW1vcnBoZXVzQ29udGVudDxUdWlDb250ZXh0PG51bWJlcj4+LFxuICAgICAgICBQb2x5bW9ycGhldXNDb250ZW50PFR1aUNvbnRleHQ8bnVtYmVyPj4sXG4gICAgXSA9IFsnJywgJyddO1xuXG4gICAgQElucHV0KHt0cmFuc2Zvcm06ICh4OiByZWFkb25seSBbc3RyaW5nLCBzdHJpbmddIHwgbnVsbCkgPT4geCA/PyBbJycsICcnXX0pXG4gICAgcHVibGljIHByZWZpeDogcmVhZG9ubHkgW3N0cmluZywgc3RyaW5nXSA9IFsnJywgJyddO1xuXG4gICAgQElucHV0KHt0cmFuc2Zvcm06ICh4OiByZWFkb25seSBbc3RyaW5nLCBzdHJpbmddIHwgbnVsbCkgPT4geCA/PyBbJycsICcnXX0pXG4gICAgcHVibGljIHBvc3RmaXg6IHJlYWRvbmx5IFtzdHJpbmcsIHN0cmluZ10gPSBbJycsICcnXTtcblxuICAgIC8vIFRPRE8odjUpOiB1c2Ugc2lnbmFsIGlucHV0c1xuICAgIEBJbnB1dCgncXVhbnR1bScpXG4gICAgcHVibGljIHNldCBxdWFudHVtU2V0dGVyKHg6IG51bWJlcikge1xuICAgICAgICB0aGlzLnF1YW50dW0uc2V0KHgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvdmVycmlkZSB3cml0ZVZhbHVlKHZhbHVlOiBbbnVtYmVyLCBudW1iZXJdKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLndyaXRlVmFsdWUodmFsdWUpO1xuICAgICAgICB0aGlzLnNldFRleHRmaWVsZFZhbHVlcyh0aGlzLnZhbHVlKCkpO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLnJhbmdlKSB7XG4gICAgICAgICAgICB0aGlzLnJhbmdlLmxlZ2FjeU1vZGUgPSBmYWxzZTsgLy8gVE9ETyh2NSk6IHJlbW92ZSBiYWNrd2FyZCBjb21wYXRpYmlsaXR5XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IGhpZGVTdGFydENvbnRlbnQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhdGhpcy5jb250ZW50WzBdIHx8IHR1aUlzTmF0aXZlRm9jdXNlZCh0aGlzLnRleHRmaWVsZFN0YXJ0KTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IGhpZGVFbmRDb250ZW50KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gIXRoaXMuY29udGVudFsxXSB8fCB0dWlJc05hdGl2ZUZvY3VzZWQodGhpcy50ZXh0ZmllbGRFbmQpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCB0YWtlU3RlcChcbiAgICAgICAgZXZlbnQ6IEV2ZW50IHwgS2V5Ym9hcmRFdmVudCxcbiAgICAgICAgY29lZmZpY2llbnRzOiByZWFkb25seSBbbnVtYmVyLCBudW1iZXJdLFxuICAgICk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuaW50ZXJhY3RpdmUoKSB8fCAhdGhpcy5yYW5nZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcblxuICAgICAgICBjb25zdCBbc3RhcnQsIGVuZF0gPSB0aGlzLnZhbHVlKCk7XG4gICAgICAgIGNvbnN0IG5ld1ZhbHVlID0gdGhpcy52YWx1ZUd1YXJkKHRoaXMucmFuZ2UudGFrZVN0ZXAoY29lZmZpY2llbnRzKSk7XG5cbiAgICAgICAgaWYgKG5ld1ZhbHVlWzBdICE9PSBzdGFydCB8fCBuZXdWYWx1ZVsxXSAhPT0gZW5kKSB7XG4gICAgICAgICAgICB0aGlzLm9uRXh0ZXJuYWxWYWx1ZVVwZGF0ZShuZXdWYWx1ZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb25JbnB1dChbc3RhcnQsIGVuZF06IFtudW1iZXIgfCBudWxsLCBudW1iZXIgfCBudWxsXSk6IHZvaWQge1xuICAgICAgICBjb25zdCBbcHJldlN0YXJ0LCBwcmV2RW5kXSA9IHRoaXMudmFsdWUoKTtcblxuICAgICAgICB0aGlzLnNldFZhbHVlKFtzdGFydCA/PyBwcmV2U3RhcnQsIGVuZCA/PyBwcmV2RW5kXSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG9uRXh0ZXJuYWxWYWx1ZVVwZGF0ZSh2YWx1ZTogcmVhZG9ubHkgW251bWJlciwgbnVtYmVyXSk6IHZvaWQge1xuICAgICAgICB0aGlzLnNldFZhbHVlKHZhbHVlKTtcbiAgICAgICAgdGhpcy5zZXRUZXh0ZmllbGRWYWx1ZXModGhpcy52YWx1ZSgpKTtcblxuICAgICAgICBzZXRUaW1lb3V0KChlbmQgPSBOdW1iZXIuTUFYX1NBRkVfSU5URUdFUikgPT4ge1xuICAgICAgICAgICAgaWYgKHR1aUlzTmF0aXZlRm9jdXNlZCh0aGlzLmFjdGl2ZVRleHRmaWVsZCkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmFjdGl2ZVRleHRmaWVsZD8uc2V0U2VsZWN0aW9uUmFuZ2UoZW5kLCBlbmQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZm9jdXNUb1RleHRmaWVsZCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmlzTW9iaWxlKSB7XG4gICAgICAgICAgICB0aGlzLmFjdGl2ZVRleHRmaWVsZD8uZm9jdXMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBvbkFjdGl2ZVRodW1iQ2hhbmdlKGFjdGl2ZVRodW1iOiAnbGVmdCcgfCAncmlnaHQnKTogdm9pZCB7XG4gICAgICAgIC8vIFRPRE8odjUpOiByZW1vdmUgYmFja3dhcmQgY29tcGF0aWJpbGl0eVxuICAgICAgICB0aGlzLmxhc3RBY3RpdmVTaWRlID0gYWN0aXZlVGh1bWIgPT09ICdsZWZ0JyA/ICdzdGFydCcgOiAnZW5kJztcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgc2V0VGV4dGZpZWxkVmFsdWVzKFtzdGFydCwgZW5kXTogcmVhZG9ubHkgW251bWJlciwgbnVtYmVyXSk6IHZvaWQge1xuICAgICAgICB0aGlzLnRleHRmaWVsZFZhbHVlU3RhcnQgPSBzdGFydDtcbiAgICAgICAgdGhpcy50ZXh0ZmllbGRWYWx1ZUVuZCA9IGVuZDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldCB0ZXh0ZmllbGRTdGFydCgpOiBIVE1MSW5wdXRFbGVtZW50IHwgbnVsbCB7XG4gICAgICAgIHJldHVybiB0aGlzLmlucHV0TnVtYmVyUmVmcy5maXJzdD8ubmF0aXZlRWxlbWVudCB8fCBudWxsO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0IHRleHRmaWVsZEVuZCgpOiBIVE1MSW5wdXRFbGVtZW50IHwgbnVsbCB7XG4gICAgICAgIHJldHVybiB0aGlzLmlucHV0TnVtYmVyUmVmcy5sYXN0Py5uYXRpdmVFbGVtZW50IHx8IG51bGw7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXQgYWN0aXZlVGV4dGZpZWxkKCk6IEhUTUxJbnB1dEVsZW1lbnQgfCBudWxsIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubGFzdEFjdGl2ZVNpZGUgPT09ICdzdGFydCcgPyB0aGlzLnRleHRmaWVsZFN0YXJ0IDogdGhpcy50ZXh0ZmllbGRFbmQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRWYWx1ZSh2YWx1ZTogcmVhZG9ubHkgW251bWJlciwgbnVtYmVyXSk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uQ2hhbmdlKHRoaXMudmFsdWVHdWFyZCh2YWx1ZSkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgdmFsdWVHdWFyZCh2YWx1ZTogcmVhZG9ubHkgW251bWJlciwgbnVtYmVyXSk6IHJlYWRvbmx5IFtudW1iZXIsIG51bWJlcl0ge1xuICAgICAgICBjb25zdCBbcHJldlN0YXJ0LCBwcmV2RW5kXSA9IHRoaXMudmFsdWUoKTtcbiAgICAgICAgY29uc3QgW3N0YXJ0LCBlbmRdID0gdmFsdWUubWFwKFxuICAgICAgICAgICAgKHgpID0+IHRoaXMucXVhbnR1bVRyYW5zZm9ybWVyKCkudG9Db250cm9sVmFsdWUoeCkgPz8geCxcbiAgICAgICAgKSBhcyB1bmtub3duIGFzIHJlYWRvbmx5IFtudW1iZXIsIG51bWJlcl07XG5cbiAgICAgICAgcmV0dXJuIFtNYXRoLm1pbihzdGFydCwgcHJldkVuZCksIE1hdGgubWF4KGVuZCwgcHJldlN0YXJ0KV07XG4gICAgfVxufVxuIiwiPHR1aS10ZXh0ZmllbGQgW2NvbnRlbnRdPVwiaGlkZVN0YXJ0Q29udGVudCA/ICcnIDogY29udGVudFswXVwiPlxuICAgIDxuZy1jb250YWluZXIgbmdQcm9qZWN0QXM9XCJsYWJlbFwiPlxuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJsYWJlbFwiIC8+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8aW5wdXRcbiAgICAgICAgdHVpSW5wdXROdW1iZXJcbiAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkKClcIlxuICAgICAgICBbaW52YWxpZF09XCJpbnZhbGlkKClcIlxuICAgICAgICBbbWF4XT1cInZhbHVlKClbMV1cIlxuICAgICAgICBbbWluXT1cIm1pblwiXG4gICAgICAgIFtwb3N0Zml4XT1cInBvc3RmaXhbMF1cIlxuICAgICAgICBbcHJlZml4XT1cInByZWZpeFswXVwiXG4gICAgICAgIFtyZWFkT25seV09XCJyZWFkT25seSgpXCJcbiAgICAgICAgWyhuZ01vZGVsKV09XCJ0ZXh0ZmllbGRWYWx1ZVN0YXJ0XCJcbiAgICAgICAgKGJsdXIpPVwidGV4dGZpZWxkVmFsdWVTdGFydCA9IHZhbHVlKClbMF1cIlxuICAgICAgICAoa2V5ZG93bi5hcnJvd0Rvd24pPVwidGFrZVN0ZXAoJGV2ZW50LCBbLTEsIDBdKVwiXG4gICAgICAgIChrZXlkb3duLmFycm93VXApPVwidGFrZVN0ZXAoJGV2ZW50LCBbMSwgMF0pXCJcbiAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25JbnB1dChbJGV2ZW50LCBudWxsXSlcIlxuICAgIC8+XG5cbiAgICA8aW5wdXRcbiAgICAgICAgdHVpSW5wdXROdW1iZXJcbiAgICAgICAgdHVpVGV4dGZpZWxkQXBwZWFyYW5jZT1cIm5vbmVcIlxuICAgICAgICBjbGFzcz1cInQtZW5kXCJcbiAgICAgICAgW2NsYXNzLl9oaWRkZW5dPVwiIWhpZGVFbmRDb250ZW50XCJcbiAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkKClcIlxuICAgICAgICBbaW52YWxpZF09XCJpbnZhbGlkKClcIlxuICAgICAgICBbbWF4XT1cIm1heFwiXG4gICAgICAgIFttaW5dPVwidmFsdWUoKVswXVwiXG4gICAgICAgIFtwb3N0Zml4XT1cInBvc3RmaXhbMV1cIlxuICAgICAgICBbcHJlZml4XT1cInByZWZpeFsxXVwiXG4gICAgICAgIFtyZWFkT25seV09XCJyZWFkT25seSgpXCJcbiAgICAgICAgWyhuZ01vZGVsKV09XCJ0ZXh0ZmllbGRWYWx1ZUVuZFwiXG4gICAgICAgIChibHVyKT1cInRleHRmaWVsZFZhbHVlRW5kID0gdmFsdWUoKVsxXVwiXG4gICAgICAgIChrZXlkb3duLmFycm93RG93bik9XCJ0YWtlU3RlcCgkZXZlbnQsIFswLCAtMV0pXCJcbiAgICAgICAgKGtleWRvd24uYXJyb3dVcCk9XCJ0YWtlU3RlcCgkZXZlbnQsIFswLCAxXSlcIlxuICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJvbklucHV0KFtudWxsLCAkZXZlbnRdKVwiXG4gICAgLz5cblxuICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJ0LWNvbnRlbnQtZW5kXCJcbiAgICAgICAgW2NsYXNzLl9oaWRkZW5dPVwiaGlkZUVuZENvbnRlbnRcIlxuICAgID5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqcG9seW1vcnBoZXVzT3V0bGV0PVwiY29udGVudFsxXSBhcyB0ZXh0OyBjb250ZXh0OiB7JGltcGxpY2l0OiB2YWx1ZSgpWzFdfVwiPlxuICAgICAgICAgICAge3sgdGV4dCB9fVxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbjwvdHVpLXRleHRmaWVsZD5cblxuPHR1aS1yYW5nZVxuICAgICpuZ0lmPVwiaW50ZXJhY3RpdmUoKVwiXG4gICAgW2ZvY3VzYWJsZV09XCJmYWxzZVwiXG4gICAgW2tleVN0ZXBzXT1cImtleVN0ZXBzXCJcbiAgICBbbWF4XT1cIm1heFwiXG4gICAgW21pbl09XCJtaW5cIlxuICAgIFtuZ01vZGVsXT1cInZhbHVlKClcIlxuICAgIFtzZWdtZW50c109XCJzZWdtZW50c1wiXG4gICAgW3N0ZXBdPVwic3RlcFwiXG4gICAgKGFjdGl2ZVRodW1iQ2hhbmdlKT1cIm9uQWN0aXZlVGh1bWJDaGFuZ2UoJGV2ZW50KVwiXG4gICAgKG1vdXNlZG93bi5wcmV2ZW50KT1cImZvY3VzVG9UZXh0ZmllbGQoKVwiXG4gICAgKG5nTW9kZWxDaGFuZ2UpPVwib25FeHRlcm5hbFZhbHVlVXBkYXRlKCRldmVudClcIlxuLz5cbiJdfQ==
|
|
185
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtcmFuZ2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2l0L2NvbXBvbmVudHMvaW5wdXQtcmFuZ2UvaW5wdXQtcmFuZ2UuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2l0L2NvbXBvbmVudHMvaW5wdXQtcmFuZ2UvaW5wdXQtcmFuZ2UudGVtcGxhdGUuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDckMsT0FBTyxFQUVILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsUUFBUSxFQUNSLFVBQVUsRUFDVixNQUFNLEVBQ04sS0FBSyxFQUVMLE1BQU0sRUFDTixTQUFTLEVBQ1QsWUFBWSxHQUNmLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUMsWUFBWSxFQUFFLFVBQVUsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBQy9ELE9BQU8sRUFBQyxZQUFZLEVBQUUsbUJBQW1CLEVBQUUsV0FBVyxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDdkYsT0FBTyxFQUFDLGFBQWEsRUFBRSx3QkFBd0IsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBRTdFLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQzdELE9BQU8sRUFBQyxxQkFBcUIsRUFBRSxZQUFZLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUN4RixPQUFPLEVBQ0gsY0FBYyxFQUNkLHVCQUF1QixFQUN2Qiw4QkFBOEIsR0FDakMsTUFBTSx1Q0FBdUMsQ0FBQztBQUMvQyxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sZ0NBQWdDLENBQUM7QUFDeEQsT0FBTyxFQUVILHdCQUF3QixHQUMzQixNQUFNLGlDQUFpQyxDQUFDO0FBQ3pD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QURULEtBQUs7Z0JBSUMsSUFBSTtzQkFEVixLQUFLO2dCQUlDLFFBQVE7c0JBRGQsS0FBSztnQkFJQyxRQUFRO3NCQURkLEtBQUs7Z0JBSUMsTUFBTTtzQkFEWixLQUFLO3VCQUFDLEVBQUMsU0FBUyxFQUFFLENBQUMsQ0FBbUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFDO2dCQUluRSxPQUFPO3NCQURiLEtBQUs7dUJBQUMsRUFBQyxTQUFTLEVBQUUsQ0FBQyxDQUFtQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUM7Z0JBSy9ELGFBQWE7c0JBRHZCLEtBQUs7dUJBQUMsU0FBUztnQkFPTCxhQUFhO3NCQUR2QixLQUFLO3VCQUFDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge05nSWZ9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICAgIHR5cGUgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb21wb25lbnQsXG4gICAgY29tcHV0ZWQsXG4gICAgRWxlbWVudFJlZixcbiAgICBpbmplY3QsXG4gICAgSW5wdXQsXG4gICAgdHlwZSBRdWVyeUxpc3QsXG4gICAgc2lnbmFsLFxuICAgIFZpZXdDaGlsZCxcbiAgICBWaWV3Q2hpbGRyZW4sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtGb3Jtc01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHt0dWlBc0NvbnRyb2wsIFR1aUNvbnRyb2x9IGZyb20gJ0B0YWlnYS11aS9jZGsvY2xhc3Nlcyc7XG5pbXBvcnQge0NIQVJfRU5fREFTSCwgQ0hBUl9OT19CUkVBS19TUEFDRSwgRU1QVFlfUVVFUll9IGZyb20gJ0B0YWlnYS11aS9jZGsvY29uc3RhbnRzJztcbmltcG9ydCB7VFVJX0lTX01PQklMRSwgdHVpRmFsbGJhY2tWYWx1ZVByb3ZpZGVyfSBmcm9tICdAdGFpZ2EtdWkvY2RrL3Rva2Vucyc7XG5pbXBvcnQge3R5cGUgVHVpQ29udGV4dH0gZnJvbSAnQHRhaWdhLXVpL2Nkay90eXBlcyc7XG5pbXBvcnQge3R1aUlzTmF0aXZlRm9jdXNlZH0gZnJvbSAnQHRhaWdhLXVpL2Nkay91dGlscy9mb2N1cyc7XG5pbXBvcnQge1RVSV9URVhURklFTERfT1BUSU9OUywgVHVpVGV4dGZpZWxkfSBmcm9tICdAdGFpZ2EtdWkvY29yZS9jb21wb25lbnRzL3RleHRmaWVsZCc7XG5pbXBvcnQge1xuICAgIFR1aUlucHV0TnVtYmVyLFxuICAgIFR1aUlucHV0TnVtYmVyRGlyZWN0aXZlLFxuICAgIFR1aVF1YW50dW1WYWx1ZVRyYW5zZm9ybWVyQmFzZSxcbn0gZnJvbSAnQHRhaWdhLXVpL2tpdC9jb21wb25lbnRzL2lucHV0LW51bWJlcic7XG5pbXBvcnQge1R1aVJhbmdlfSBmcm9tICdAdGFpZ2EtdWkva2l0L2NvbXBvbmVudHMvcmFuZ2UnO1xuaW1wb3J0IHtcbiAgICB0eXBlIFR1aUtleVN0ZXBzLFxuICAgIHR1aVNsaWRlck9wdGlvbnNQcm92aWRlcixcbn0gZnJvbSAnQHRhaWdhLXVpL2tpdC9jb21wb25lbnRzL3NsaWRlcic7XG5pbXBvcnQge1xuICAgIHR5cGUgUG9seW1vcnBoZXVzQ29udGVudCxcbiAgICBQb2x5bW9ycGhldXNPdXRsZXQsXG4gICAgdHlwZSBQb2x5bW9ycGhldXNQcmltaXRpdmUsXG59IGZyb20gJ0B0YWlnYS11aS9wb2x5bW9ycGhldXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAndHVpLWlucHV0LXJhbmdlJyxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIEZvcm1zTW9kdWxlLFxuICAgICAgICBOZ0lmLFxuICAgICAgICBQb2x5bW9ycGhldXNPdXRsZXQsXG4gICAgICAgIFR1aUlucHV0TnVtYmVyLFxuICAgICAgICBUdWlSYW5nZSxcbiAgICAgICAgVHVpVGV4dGZpZWxkLFxuICAgIF0sXG4gICAgdGVtcGxhdGVVcmw6ICcuL2lucHV0LXJhbmdlLnRlbXBsYXRlLmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2lucHV0LXJhbmdlLnN0eWxlLmxlc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgdHVpQXNDb250cm9sKFR1aUlucHV0UmFuZ2VDb21wb25lbnQpLFxuICAgICAgICB0dWlTbGlkZXJPcHRpb25zUHJvdmlkZXIoe3RyYWNrQ29sb3I6ICd0cmFuc3BhcmVudCd9KSxcbiAgICAgICAgdHVpRmFsbGJhY2tWYWx1ZVByb3ZpZGVyKFswLCAwXSksXG4gICAgXSxcbiAgICBob3N0OiB7XG4gICAgICAgIG5ldzogJycsIC8vIFRPRE8odjUpOiByZW1vdmUgYWZ0ZXIgZGVsZXRpb24gb2YgbGVnYWN5IGNvbnRyb2xcbiAgICAgICAgLy8gVE9ETzogdXNlIGNzcyA6aG9zdDpoYXModHVpLXRleHRmaWVsZFtkYXRhLXNpemVdKSBhZnRlciBicm93c2VyIGJ1bXBcbiAgICAgICAgJ1thdHRyLmRhdGEtc2l6ZV0nOiAnc2l6ZSgpJyxcbiAgICAgICAgJ1tzdHlsZS4tLXQtaWNvbi1sb2NrXSc6ICdjb250ZW50RW5kKCkgPyBcIm5vbmVcIiA6IG51bGwnLFxuICAgIH0sXG59KVxuZXhwb3J0IGNsYXNzIFR1aUlucHV0UmFuZ2VDb21wb25lbnRcbiAgICBleHRlbmRzIFR1aUNvbnRyb2w8cmVhZG9ubHkgW251bWJlciwgbnVtYmVyXT5cbiAgICBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXRcbntcbiAgICBAVmlld0NoaWxkcmVuKFR1aUlucHV0TnVtYmVyRGlyZWN0aXZlLCB7cmVhZDogRWxlbWVudFJlZn0pXG4gICAgcHJpdmF0ZSByZWFkb25seSBpbnB1dE51bWJlclJlZnM6IFF1ZXJ5TGlzdDxFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+PiA9XG4gICAgICAgIEVNUFRZX1FVRVJZO1xuXG4gICAgQFZpZXdDaGlsZChUdWlSYW5nZSlcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJhbmdlPzogVHVpUmFuZ2U7XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IGlzTW9iaWxlID0gaW5qZWN0KFRVSV9JU19NT0JJTEUpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgcXVhbnR1bSA9IHNpZ25hbCgwKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHF1YW50dW1UcmFuc2Zvcm1lciA9IGNvbXB1dGVkKFxuICAgICAgICAoKSA9PiBuZXcgVHVpUXVhbnR1bVZhbHVlVHJhbnNmb3JtZXJCYXNlKHRoaXMucXVhbnR1bSgpKSxcbiAgICApO1xuXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHNpemUgPSBpbmplY3QoVFVJX1RFWFRGSUVMRF9PUFRJT05TKS5zaXplO1xuICAgIHByb3RlY3RlZCB0ZXh0ZmllbGRWYWx1ZVN0YXJ0ID0gdGhpcy52YWx1ZSgpWzBdO1xuICAgIHByb3RlY3RlZCB0ZXh0ZmllbGRWYWx1ZUVuZCA9IHRoaXMudmFsdWUoKVsxXTtcbiAgICBwcm90ZWN0ZWQgbGFzdEFjdGl2ZVNpZGU6ICdlbmQnIHwgJ3N0YXJ0JyA9ICdzdGFydCc7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGNvbnRlbnQgPSBzaWduYWw8XG4gICAgICAgIHJlYWRvbmx5IFtcbiAgICAgICAgICAgIFBvbHltb3JwaGV1c0NvbnRlbnQ8VHVpQ29udGV4dDxudW1iZXI+PixcbiAgICAgICAgICAgIFBvbHltb3JwaGV1c0NvbnRlbnQ8VHVpQ29udGV4dDxudW1iZXI+PixcbiAgICAgICAgXVxuICAgID4oWycnLCAnJ10pO1xuXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGNvbnRlbnRTdGFydCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICAgICAgY29uc3QgW3N0YXJ0LCBlbmRdID0gdGhpcy5jb250ZW50KCkubWFwKCh4LCBpKSA9PiB7XG4gICAgICAgICAgICBjb25zdCB2YWx1ZSA9IHRoaXMudmFsdWUoKVtpXSE7XG5cbiAgICAgICAgICAgIHJldHVybiB0eXBlb2YgeCA9PT0gJ2Z1bmN0aW9uJyA/IHgoeyRpbXBsaWNpdDogdmFsdWV9KSA6IHggfHwgdmFsdWU7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmICh0aGlzLmludGVyYWN0aXZlKCkgfHwgIXRoaXMuaXNQcmltaXRpdmUoc3RhcnQpIHx8ICF0aGlzLmlzUHJpbWl0aXZlKGVuZCkpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmNvbnRlbnQoKVswXTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBgJHtzdGFydH0ke0NIQVJfTk9fQlJFQUtfU1BBQ0V9JHtDSEFSX0VOX0RBU0h9JHtDSEFSX05PX0JSRUFLX1NQQUNFfSR7ZW5kfWA7XG4gICAgfSk7XG5cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgY29udGVudEVuZCA9IGNvbXB1dGVkKCgpID0+XG4gICAgICAgIHRoaXMuY29udGVudFN0YXJ0KCkgPT09IHRoaXMuY29udGVudCgpWzBdID8gdGhpcy5jb250ZW50KClbMV0gOiAnJyxcbiAgICApO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgbWluID0gMDtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIG1heCA9IDEwMDtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHN0ZXAgPSAxO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2VnbWVudHMgPSAxO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMga2V5U3RlcHM6IFR1aUtleVN0ZXBzIHwgbnVsbCA9IG51bGw7XG5cbiAgICBASW5wdXQoe3RyYW5zZm9ybTogKHg6IHJlYWRvbmx5IFtzdHJpbmcsIHN0cmluZ10gfCBudWxsKSA9PiB4ID8/IFsnJywgJyddfSlcbiAgICBwdWJsaWMgcHJlZml4OiByZWFkb25seSBbc3RyaW5nLCBzdHJpbmddID0gWycnLCAnJ107XG5cbiAgICBASW5wdXQoe3RyYW5zZm9ybTogKHg6IHJlYWRvbmx5IFtzdHJpbmcsIHN0cmluZ10gfCBudWxsKSA9PiB4ID8/IFsnJywgJyddfSlcbiAgICBwdWJsaWMgcG9zdGZpeDogcmVhZG9ubHkgW3N0cmluZywgc3RyaW5nXSA9IFsnJywgJyddO1xuXG4gICAgLy8gVE9ETyh2NSk6IHVzZSBzaWduYWwgaW5wdXRzXG4gICAgQElucHV0KCdxdWFudHVtJylcbiAgICBwdWJsaWMgc2V0IHF1YW50dW1TZXR0ZXIoeDogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMucXVhbnR1bS5zZXQoeCk7XG4gICAgfVxuXG4gICAgLy8gVE9ETyh2NSk6IHVzZSBzaWduYWwgaW5wdXRzXG4gICAgQElucHV0KCdjb250ZW50JylcbiAgICBwdWJsaWMgc2V0IGNvbnRlbnRTZXR0ZXIoXG4gICAgICAgIHg6IHJlYWRvbmx5IFtcbiAgICAgICAgICAgIFBvbHltb3JwaGV1c0NvbnRlbnQ8VHVpQ29udGV4dDxudW1iZXI+PixcbiAgICAgICAgICAgIFBvbHltb3JwaGV1c0NvbnRlbnQ8VHVpQ29udGV4dDxudW1iZXI+PixcbiAgICAgICAgXSxcbiAgICApIHtcbiAgICAgICAgdGhpcy5jb250ZW50LnNldCh4KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb3ZlcnJpZGUgd3JpdGVWYWx1ZSh2YWx1ZTogW251bWJlciwgbnVtYmVyXSk6IHZvaWQge1xuICAgICAgICBzdXBlci53cml0ZVZhbHVlKHZhbHVlKTtcbiAgICAgICAgdGhpcy5zZXRUZXh0ZmllbGRWYWx1ZXModGhpcy52YWx1ZSgpKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5yYW5nZSkge1xuICAgICAgICAgICAgdGhpcy5yYW5nZS5sZWdhY3lNb2RlID0gZmFsc2U7IC8vIFRPRE8odjUpOiByZW1vdmUgYmFja3dhcmQgY29tcGF0aWJpbGl0eVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldCBjb250ZW50U3RhcnRIaWRkZW4oKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmludGVyYWN0aXZlKCkgJiYgdHVpSXNOYXRpdmVGb2N1c2VkKHRoaXMudGV4dGZpZWxkU3RhcnQpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgY29udGVudEVuZEhpZGRlbigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICF0aGlzLmNvbnRlbnQoKVsxXSB8fFxuICAgICAgICAgICAgKHRoaXMuaW50ZXJhY3RpdmUoKSAmJiB0dWlJc05hdGl2ZUZvY3VzZWQodGhpcy50ZXh0ZmllbGRFbmQpKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCB0YWtlU3RlcChcbiAgICAgICAgZXZlbnQ6IEV2ZW50IHwgS2V5Ym9hcmRFdmVudCxcbiAgICAgICAgY29lZmZpY2llbnRzOiByZWFkb25seSBbbnVtYmVyLCBudW1iZXJdLFxuICAgICk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuaW50ZXJhY3RpdmUoKSB8fCAhdGhpcy5yYW5nZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcblxuICAgICAgICBjb25zdCBbc3RhcnQsIGVuZF0gPSB0aGlzLnZhbHVlKCk7XG4gICAgICAgIGNvbnN0IG5ld1ZhbHVlID0gdGhpcy52YWx1ZUd1YXJkKHRoaXMucmFuZ2UudGFrZVN0ZXAoY29lZmZpY2llbnRzKSk7XG5cbiAgICAgICAgaWYgKG5ld1ZhbHVlWzBdICE9PSBzdGFydCB8fCBuZXdWYWx1ZVsxXSAhPT0gZW5kKSB7XG4gICAgICAgICAgICB0aGlzLm9uRXh0ZXJuYWxWYWx1ZVVwZGF0ZShuZXdWYWx1ZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb25JbnB1dChbc3RhcnQsIGVuZF06IFtudW1iZXIgfCBudWxsLCBudW1iZXIgfCBudWxsXSk6IHZvaWQge1xuICAgICAgICBjb25zdCBbcHJldlN0YXJ0LCBwcmV2RW5kXSA9IHRoaXMudmFsdWUoKTtcblxuICAgICAgICB0aGlzLnNldFZhbHVlKFtzdGFydCA/PyBwcmV2U3RhcnQsIGVuZCA/PyBwcmV2RW5kXSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG9uRXh0ZXJuYWxWYWx1ZVVwZGF0ZSh2YWx1ZTogcmVhZG9ubHkgW251bWJlciwgbnVtYmVyXSk6IHZvaWQge1xuICAgICAgICB0aGlzLnNldFZhbHVlKHZhbHVlKTtcbiAgICAgICAgdGhpcy5zZXRUZXh0ZmllbGRWYWx1ZXModGhpcy52YWx1ZSgpKTtcblxuICAgICAgICBzZXRUaW1lb3V0KChlbmQgPSBOdW1iZXIuTUFYX1NBRkVfSU5URUdFUikgPT4ge1xuICAgICAgICAgICAgaWYgKHR1aUlzTmF0aXZlRm9jdXNlZCh0aGlzLmFjdGl2ZVRleHRmaWVsZCkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmFjdGl2ZVRleHRmaWVsZD8uc2V0U2VsZWN0aW9uUmFuZ2UoZW5kLCBlbmQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZm9jdXNUb1RleHRmaWVsZCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmlzTW9iaWxlKSB7XG4gICAgICAgICAgICB0aGlzLmFjdGl2ZVRleHRmaWVsZD8uZm9jdXMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBvbkFjdGl2ZVRodW1iQ2hhbmdlKGFjdGl2ZVRodW1iOiAnbGVmdCcgfCAncmlnaHQnKTogdm9pZCB7XG4gICAgICAgIC8vIFRPRE8odjUpOiByZW1vdmUgYmFja3dhcmQgY29tcGF0aWJpbGl0eVxuICAgICAgICB0aGlzLmxhc3RBY3RpdmVTaWRlID0gYWN0aXZlVGh1bWIgPT09ICdsZWZ0JyA/ICdzdGFydCcgOiAnZW5kJztcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgc2V0VGV4dGZpZWxkVmFsdWVzKFtzdGFydCwgZW5kXTogcmVhZG9ubHkgW251bWJlciwgbnVtYmVyXSk6IHZvaWQge1xuICAgICAgICB0aGlzLnRleHRmaWVsZFZhbHVlU3RhcnQgPSBzdGFydDtcbiAgICAgICAgdGhpcy50ZXh0ZmllbGRWYWx1ZUVuZCA9IGVuZDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldCB0ZXh0ZmllbGRTdGFydCgpOiBIVE1MSW5wdXRFbGVtZW50IHwgbnVsbCB7XG4gICAgICAgIHJldHVybiB0aGlzLmlucHV0TnVtYmVyUmVmcy5maXJzdD8ubmF0aXZlRWxlbWVudCB8fCBudWxsO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0IHRleHRmaWVsZEVuZCgpOiBIVE1MSW5wdXRFbGVtZW50IHwgbnVsbCB7XG4gICAgICAgIHJldHVybiB0aGlzLmlucHV0TnVtYmVyUmVmcy5sYXN0Py5uYXRpdmVFbGVtZW50IHx8IG51bGw7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXQgYWN0aXZlVGV4dGZpZWxkKCk6IEhUTUxJbnB1dEVsZW1lbnQgfCBudWxsIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubGFzdEFjdGl2ZVNpZGUgPT09ICdzdGFydCcgPyB0aGlzLnRleHRmaWVsZFN0YXJ0IDogdGhpcy50ZXh0ZmllbGRFbmQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRWYWx1ZSh2YWx1ZTogcmVhZG9ubHkgW251bWJlciwgbnVtYmVyXSk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uQ2hhbmdlKHRoaXMudmFsdWVHdWFyZCh2YWx1ZSkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgdmFsdWVHdWFyZCh2YWx1ZTogcmVhZG9ubHkgW251bWJlciwgbnVtYmVyXSk6IHJlYWRvbmx5IFtudW1iZXIsIG51bWJlcl0ge1xuICAgICAgICBjb25zdCBbcHJldlN0YXJ0LCBwcmV2RW5kXSA9IHRoaXMudmFsdWUoKTtcbiAgICAgICAgY29uc3QgW3N0YXJ0LCBlbmRdID0gdmFsdWUubWFwKFxuICAgICAgICAgICAgKHgpID0+IHRoaXMucXVhbnR1bVRyYW5zZm9ybWVyKCkudG9Db250cm9sVmFsdWUoeCkgPz8geCxcbiAgICAgICAgKSBhcyB1bmtub3duIGFzIHJlYWRvbmx5IFtudW1iZXIsIG51bWJlcl07XG5cbiAgICAgICAgcmV0dXJuIFtNYXRoLm1pbihzdGFydCwgcHJldkVuZCksIE1hdGgubWF4KGVuZCwgcHJldlN0YXJ0KV07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpc1ByaW1pdGl2ZSh4OiBQb2x5bW9ycGhldXNDb250ZW50KTogeCBpcyBQb2x5bW9ycGhldXNQcmltaXRpdmUge1xuICAgICAgICByZXR1cm4gT2JqZWN0KHgpICE9PSB4O1xuICAgIH1cbn1cbiIsIjx0dWktdGV4dGZpZWxkIFtjb250ZW50XT1cImNvbnRlbnRTdGFydEhpZGRlbiA/ICcnIDogY29udGVudFN0YXJ0KClcIj5cbiAgICA8bmctY29udGFpbmVyIG5nUHJvamVjdEFzPVwibGFiZWxcIj5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwibGFiZWxcIiAvPlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPGlucHV0XG4gICAgICAgIHR1aUlucHV0TnVtYmVyXG4gICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZCgpXCJcbiAgICAgICAgW2ludmFsaWRdPVwiaW52YWxpZCgpXCJcbiAgICAgICAgW21heF09XCJ2YWx1ZSgpWzFdXCJcbiAgICAgICAgW21pbl09XCJtaW5cIlxuICAgICAgICBbcG9zdGZpeF09XCJwb3N0Zml4WzBdXCJcbiAgICAgICAgW3ByZWZpeF09XCJwcmVmaXhbMF1cIlxuICAgICAgICBbcmVhZE9ubHldPVwicmVhZE9ubHkoKVwiXG4gICAgICAgIFsobmdNb2RlbCldPVwidGV4dGZpZWxkVmFsdWVTdGFydFwiXG4gICAgICAgIChibHVyKT1cInRleHRmaWVsZFZhbHVlU3RhcnQgPSB2YWx1ZSgpWzBdXCJcbiAgICAgICAgKGtleWRvd24uYXJyb3dEb3duKT1cInRha2VTdGVwKCRldmVudCwgWy0xLCAwXSlcIlxuICAgICAgICAoa2V5ZG93bi5hcnJvd1VwKT1cInRha2VTdGVwKCRldmVudCwgWzEsIDBdKVwiXG4gICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uSW5wdXQoWyRldmVudCwgbnVsbF0pXCJcbiAgICAvPlxuXG4gICAgPGlucHV0XG4gICAgICAgIHR1aUlucHV0TnVtYmVyXG4gICAgICAgIHR1aVRleHRmaWVsZEFwcGVhcmFuY2U9XCJub25lXCJcbiAgICAgICAgY2xhc3M9XCJ0LWVuZFwiXG4gICAgICAgIFtjbGFzcy5faGlkZGVuXT1cIiFjb250ZW50RW5kSGlkZGVuIHx8ICF0aGlzLmludGVyYWN0aXZlKClcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWQoKVwiXG4gICAgICAgIFtpbnZhbGlkXT1cImludmFsaWQoKVwiXG4gICAgICAgIFttYXhdPVwibWF4XCJcbiAgICAgICAgW21pbl09XCJ2YWx1ZSgpWzBdXCJcbiAgICAgICAgW3Bvc3RmaXhdPVwicG9zdGZpeFsxXVwiXG4gICAgICAgIFtwcmVmaXhdPVwicHJlZml4WzFdXCJcbiAgICAgICAgW3JlYWRPbmx5XT1cInJlYWRPbmx5KClcIlxuICAgICAgICBbKG5nTW9kZWwpXT1cInRleHRmaWVsZFZhbHVlRW5kXCJcbiAgICAgICAgKGJsdXIpPVwidGV4dGZpZWxkVmFsdWVFbmQgPSB2YWx1ZSgpWzFdXCJcbiAgICAgICAgKGtleWRvd24uYXJyb3dEb3duKT1cInRha2VTdGVwKCRldmVudCwgWzAsIC0xXSlcIlxuICAgICAgICAoa2V5ZG93bi5hcnJvd1VwKT1cInRha2VTdGVwKCRldmVudCwgWzAsIDFdKVwiXG4gICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uSW5wdXQoW251bGwsICRldmVudF0pXCJcbiAgICAvPlxuXG4gICAgPGRpdlxuICAgICAgICBjbGFzcz1cInQtY29udGVudC1lbmRcIlxuICAgICAgICBbY2xhc3MuX2hpZGRlbl09XCJjb250ZW50RW5kSGlkZGVuXCJcbiAgICA+XG4gICAgICAgIDxuZy1jb250YWluZXIgKnBvbHltb3JwaGV1c091dGxldD1cImNvbnRlbnRFbmQoKSBhcyB0ZXh0OyBjb250ZXh0OiB7JGltcGxpY2l0OiB2YWx1ZSgpWzFdfVwiPlxuICAgICAgICAgICAge3sgdGV4dCB9fVxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbjwvdHVpLXRleHRmaWVsZD5cblxuPHR1aS1yYW5nZVxuICAgICpuZ0lmPVwiaW50ZXJhY3RpdmUoKVwiXG4gICAgW2ZvY3VzYWJsZV09XCJmYWxzZVwiXG4gICAgW2tleVN0ZXBzXT1cImtleVN0ZXBzXCJcbiAgICBbbWF4XT1cIm1heFwiXG4gICAgW21pbl09XCJtaW5cIlxuICAgIFtuZ01vZGVsXT1cInZhbHVlKClcIlxuICAgIFtzZWdtZW50c109XCJzZWdtZW50c1wiXG4gICAgW3N0ZXBdPVwic3RlcFwiXG4gICAgKGFjdGl2ZVRodW1iQ2hhbmdlKT1cIm9uQWN0aXZlVGh1bWJDaGFuZ2UoJGV2ZW50KVwiXG4gICAgKG1vdXNlZG93bi5wcmV2ZW50KT1cImZvY3VzVG9UZXh0ZmllbGQoKVwiXG4gICAgKG5nTW9kZWxDaGFuZ2UpPVwib25FeHRlcm5hbFZhbHVlVXBkYXRlKCRldmVudClcIlxuLz5cbiJdfQ==
|
|
@@ -2,19 +2,19 @@ import { ChangeDetectionStrategy, Component, computed, Directive, effect, inject
|
|
|
2
2
|
import { TUI_IDENTITY_VALUE_TRANSFORMER, TuiNonNullableValueTransformer, TuiValueTransformer, } from '@taiga-ui/cdk/classes';
|
|
3
3
|
import { TUI_ALLOW_SIGNAL_WRITES } from '@taiga-ui/cdk/constants';
|
|
4
4
|
import { TUI_IS_MOBILE } from '@taiga-ui/cdk/tokens';
|
|
5
|
-
import { tuiInjectElement
|
|
5
|
+
import { tuiInjectElement } from '@taiga-ui/cdk/utils/dom';
|
|
6
6
|
import { tuiClamp } from '@taiga-ui/cdk/utils/math';
|
|
7
7
|
import { tuiWithStyles } from '@taiga-ui/cdk/utils/miscellaneous';
|
|
8
8
|
import { tuiInjectAuxiliary } from '@taiga-ui/core/components/textfield';
|
|
9
9
|
import { TuiInputNumberDirective, tuiInputNumberOptionsProvider, TuiWithQuantumValueTransformer, } from '@taiga-ui/kit/components/input-number';
|
|
10
10
|
import { TuiSliderComponent } from '@taiga-ui/kit/components/slider';
|
|
11
|
-
import { filter, fromEvent } from 'rxjs';
|
|
11
|
+
import { filter, fromEvent, switchMap, tap } from 'rxjs';
|
|
12
12
|
import * as i0 from "@angular/core";
|
|
13
13
|
import * as i1 from "@taiga-ui/kit/components/input-number";
|
|
14
14
|
class TuiInputSliderDirective {
|
|
15
15
|
constructor() {
|
|
16
16
|
this.isMobile = inject(TUI_IS_MOBILE);
|
|
17
|
-
this.
|
|
17
|
+
this.el = tuiInjectElement();
|
|
18
18
|
this.slider = tuiInjectAuxiliary((x) => x instanceof TuiSliderComponent);
|
|
19
19
|
this.controlTransformer = inject(TuiValueTransformer, { self: true });
|
|
20
20
|
this.keyStepsTransformer = computed(() => this.slider()?.keySteps?.transformer() ?? TUI_IDENTITY_VALUE_TRANSFORMER);
|
|
@@ -46,12 +46,13 @@ class TuiInputSliderDirective {
|
|
|
46
46
|
return;
|
|
47
47
|
}
|
|
48
48
|
slider.el.style.setProperty('--tui-slider-track-color', 'transparent');
|
|
49
|
+
slider.el.setAttribute('tabindex', '-1');
|
|
49
50
|
if (slider.keySteps) {
|
|
50
51
|
slider.keySteps.value = this.value;
|
|
51
52
|
}
|
|
52
|
-
const subscription = fromEvent(slider.el, 'input'
|
|
53
|
-
.pipe(
|
|
54
|
-
.subscribe((
|
|
53
|
+
const subscription = fromEvent(slider.el, 'input')
|
|
54
|
+
.pipe(tap(() => this.inputNumber.setValue(this.keyStepsTransformer().toControlValue(slider.el.valueAsNumber))), filter(() => !this.isMobile), switchMap(() => fromEvent(this.el.ownerDocument, 'pointerup', { once: true })))
|
|
55
|
+
.subscribe(() => this.el.focus());
|
|
55
56
|
onCleanup(() => subscription.unsubscribe());
|
|
56
57
|
});
|
|
57
58
|
}
|
|
@@ -63,12 +64,6 @@ class TuiInputSliderDirective {
|
|
|
63
64
|
this.inputNumber.setValue(newValue);
|
|
64
65
|
}
|
|
65
66
|
}
|
|
66
|
-
onSliderInput(value) {
|
|
67
|
-
this.inputNumber.setValue(this.keyStepsTransformer().toControlValue(value));
|
|
68
|
-
if (!this.isMobile) {
|
|
69
|
-
this.element.focus();
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
67
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiInputSliderDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
73
68
|
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: TuiInputSliderDirective, isStandalone: true, selector: "input[tuiInputSlider]", host: { listeners: { "blur": "inputNumber.setValue(value() ?? null)", "keydown.arrowUp": "onStep(1)", "keydown.arrowDown": "onStep(-1)" } }, providers: [
|
|
74
69
|
tuiInputNumberOptionsProvider({
|
|
@@ -111,4 +106,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
111
106
|
class: 'tui-input-slider',
|
|
112
107
|
}, styles: ["tui-textfield [tuiInputSlider]~.t-content .t-clear{display:none!important}\n", "tui-textfield [tuiInputSlider]~[tuiSlider]:disabled{display:none}\n"] }]
|
|
113
108
|
}] });
|
|
114
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtc2xpZGVyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tpdC9jb21wb25lbnRzL2lucHV0LXNsaWRlci9pbnB1dC1zbGlkZXIuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFFBQVEsRUFDUixTQUFTLEVBQ1QsTUFBTSxFQUNOLE1BQU0sRUFDTixpQkFBaUIsR0FDcEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNILDhCQUE4QixFQUM5Qiw4QkFBOEIsRUFDOUIsbUJBQW1CLEdBQ3RCLE1BQU0sdUJBQXVCLENBQUM7QUFDL0IsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDaEUsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ25ELE9BQU8sRUFBQyxnQkFBZ0IsRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDbkYsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQ2xELE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQztBQUNoRSxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUN2RSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLDZCQUE2QixFQUM3Qiw4QkFBOEIsR0FDakMsTUFBTSx1Q0FBdUMsQ0FBQztBQUMvQyxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxpQ0FBaUMsQ0FBQztBQUNuRSxPQUFPLEVBQUMsTUFBTSxFQUFFLFNBQVMsRUFBQyxNQUFNLE1BQU0sQ0FBQzs7O0FBRXZDLE1BcUJhLHVCQUF1QjtJQXJCcEM7UUFzQnFCLGFBQVEsR0FBRyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDakMsWUFBTyxHQUFHLGdCQUFn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Q2pDLFNBQVMsRUFBRTt3QkFDUCw2QkFBNkIsQ0FBQzs0QkFDMUIsZ0JBQWdCLEVBQUUsSUFBSSw4QkFBOEIsRUFBRTt5QkFDekQsQ0FBQztxQkFDTDtvQkFDRCxjQUFjLEVBQUU7d0JBQ1o7NEJBQ0ksU0FBUyxFQUFFLHVCQUF1Qjs0QkFDbEMsTUFBTSxFQUFFLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxVQUFVLENBQUM7eUJBQ3JFO3dCQUNELDhCQUE4QjtxQkFDakM7b0JBQ0QsSUFBSSxFQUFFO3dCQUNGLFFBQVEsRUFBRSx1Q0FBdUM7d0JBQ2pELG1CQUFtQixFQUFFLFdBQVc7d0JBQ2hDLHFCQUFxQixFQUFFLFlBQVk7cUJBQ3RDO2lCQUNKOztBQTJGRCxNQWVNLG9CQUFvQjsrR0FBcEIsb0JBQW9CO21HQUFwQixvQkFBb0Isc0hBYlosRUFBRTs7NEZBYVYsb0JBQW9CO2tCQWZ6QixTQUFTO2lDQUNNLElBQUksWUFDTixFQUFFLGlCQU9HLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU0sUUFDekM7d0JBQ0YsS0FBSyxFQUFFLGtCQUFrQjtxQkFDNUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBjb21wdXRlZCxcbiAgICBEaXJlY3RpdmUsXG4gICAgZWZmZWN0LFxuICAgIGluamVjdCxcbiAgICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICAgIFRVSV9JREVOVElUWV9WQUxVRV9UUkFOU0ZPUk1FUixcbiAgICBUdWlOb25OdWxsYWJsZVZhbHVlVHJhbnNmb3JtZXIsXG4gICAgVHVpVmFsdWVUcmFuc2Zvcm1lcixcbn0gZnJvbSAnQHRhaWdhLXVpL2Nkay9jbGFzc2VzJztcbmltcG9ydCB7VFVJX0FMTE9XX1NJR05BTF9XUklURVN9IGZyb20gJ0B0YWlnYS11aS9jZGsvY29uc3RhbnRzJztcbmltcG9ydCB7VFVJX0lTX01PQklMRX0gZnJvbSAnQHRhaWdhLXVpL2Nkay90b2tlbnMnO1xuaW1wb3J0IHt0dWlJbmplY3RFbGVtZW50LCB0dWlJc0VsZW1lbnQsIHR1aUlzSW5wdXR9IGZyb20gJ0B0YWlnYS11aS9jZGsvdXRpbHMvZG9tJztcbmltcG9ydCB7dHVpQ2xhbXB9IGZyb20gJ0B0YWlnYS11aS9jZGsvdXRpbHMvbWF0aCc7XG5pbXBvcnQge3R1aVdpdGhTdHlsZXN9IGZyb20gJ0B0YWlnYS11aS9jZGsvdXRpbHMvbWlzY2VsbGFuZW91cyc7XG5pbXBvcnQge3R1aUluamVjdEF1eGlsaWFyeX0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvY29tcG9uZW50cy90ZXh0ZmllbGQnO1xuaW1wb3J0IHtcbiAgICBUdWlJbnB1dE51bWJlckRpcmVjdGl2ZSxcbiAgICB0dWlJbnB1dE51bWJlck9wdGlvbnNQcm92aWRlcixcbiAgICBUdWlXaXRoUXVhbnR1bVZhbHVlVHJhbnNmb3JtZXIsXG59IGZyb20gJ0B0YWlnYS11aS9raXQvY29tcG9uZW50cy9pbnB1dC1udW1iZXInO1xuaW1wb3J0IHtUdWlTbGlkZXJDb21wb25lbnR9IGZyb20gJ0B0YWlnYS11aS9raXQvY29tcG9uZW50cy9zbGlkZXInO1xuaW1wb3J0IHtmaWx0ZXIsIGZyb21FdmVudH0gZnJvbSAncnhqcyc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgc2VsZWN0b3I6ICdpbnB1dFt0dWlJbnB1dFNsaWRlcl0nLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB0dWlJbnB1dE51bWJlck9wdGlvbnNQcm92aWRlcih7XG4gICAgICAgICAgICB2YWx1ZVRyYW5zZm9ybWVyOiBuZXcgVHVpTm9uTnVsbGFibGVWYWx1ZVRyYW5zZm9ybWVyKCksXG4gICAgICAgIH0pLFxuICAgIF0sXG4gICAgaG9zdERpcmVjdGl2ZXM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgZGlyZWN0aXZlOiBUdWlJbnB1dE51bWJlckRpcmVjdGl2ZSxcbiAgICAgICAgICAgIGlucHV0czogWydtaW4nLCAnbWF4JywgJ3ByZWZpeCcsICdwb3N0Zml4JywgJ2ludmFsaWQnLCAncmVhZE9ubHknXSxcbiAgICAgICAgfSxcbiAgICAgICAgVHVpV2l0aFF1YW50dW1WYWx1ZVRyYW5zZm9ybWVyLFxuICAgIF0sXG4gICAgaG9zdDoge1xuICAgICAgICAnKGJsdXIpJzogJ2lucHV0TnVtYmVyLnNldFZhbHVlKHZhbHVlKCkgPz8gbnVsbCknLFxuICAgICAgICAnKGtleWRvd24uYXJyb3dVcCknOiAnb25TdGVwKDEpJyxcbiAgICAgICAgJyhrZXlkb3duLmFycm93RG93biknOiAnb25TdGVwKC0xKScsXG4gICAgfSxcbn0pXG5leHBvcnQgY2xhc3MgVHVpSW5wdXRTbGlkZXJEaXJlY3RpdmUge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgaXNNb2JpbGUgPSBpbmplY3QoVFVJX0lTX01PQklMRSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBlbGVtZW50ID0gdHVpSW5qZWN0RWxlbWVudDxIVE1MSW5wdXRFbGVtZW50PigpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgc2xpZGVyID0gdHVpSW5qZWN0QXV4aWxpYXJ5PFR1aVNsaWRlckNvbXBvbmVudD4oXG4gICAgICAgICh4KSA9PiB4IGluc3RhbmNlb2YgVHVpU2xpZGVyQ29tcG9uZW50LFxuICAgICk7XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvbnRyb2xUcmFuc2Zvcm1lciA9IGluamVjdDxcbiAgICAgICAgVHVpVmFsdWVUcmFuc2Zvcm1lcjxudW1iZXIgfCBudWxsLCBudW1iZXI+XG4gICAgPihUdWlWYWx1ZVRyYW5zZm9ybWVyLCB7c2VsZjogdHJ1ZX0pO1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBrZXlTdGVwc1RyYW5zZm9ybWVyID0gY29tcHV0ZWQoXG4gICAgICAgICgpID0+IHRoaXMuc2xpZGVyKCk/LmtleVN0ZXBzPy50cmFuc2Zvcm1lcigpID8/IFRVSV9JREVOVElUWV9WQUxVRV9UUkFOU0ZPUk1FUixcbiAgICApO1xuXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGlucHV0TnVtYmVyID0gaW5qZWN0KFR1aUlucHV0TnVtYmVyRGlyZWN0aXZlLCB7c2VsZjogdHJ1ZX0pO1xuICAgIHByb3RlY3RlZCByZWFkb25seSB2YWx1ZSA9IGNvbXB1dGVkKCgpID0+XG4gICAgICAgIHRoaXMuY29udHJvbFRyYW5zZm9ybWVyLnRvQ29udHJvbFZhbHVlKHRoaXMuaW5wdXROdW1iZXIudmFsdWUoKSksXG4gICAgKTtcblxuICAgIHByb3RlY3RlZCByZWFkb25seSBub3RoaW5nID0gdHVpV2l0aFN0eWxlcyhUdWlJbnB1dFNsaWRlclN0eWxlcyk7XG5cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgdGV4dGZpZWxkVG9TbGlkZXJTeW5jID0gZWZmZWN0KCgpID0+IHtcbiAgICAgICAgY29uc3Qgc2xpZGVyID0gdGhpcy5zbGlkZXIoKTtcblxuICAgICAgICBpZiAoIXNsaWRlcikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgc2xpZGVyLmtleVN0ZXBzPy50cmFuc2Zvcm1lcigpICYmXG4gICAgICAgICAgICBOdW1iZXIuaXNGaW5pdGUoc2xpZGVyLmtleVN0ZXBzPy50b3RhbFN0ZXBzKVxuICAgICAgICApIHtcbiAgICAgICAgICAgIC8vIFRPRE8odjUpOiBtb3ZlIGFsbCBpZi1jb25kaXRpb24gYm9keSBpbnNpZGUgYFR1aVNsaWRlcktleVN0ZXBzQmFzZWBcbiAgICAgICAgICAgIHNsaWRlci5taW4gPSAwO1xuICAgICAgICAgICAgc2xpZGVyLnN0ZXAgPSAxO1xuICAgICAgICAgICAgc2xpZGVyLm1heCA9IHNsaWRlci5rZXlTdGVwcz8udG90YWxTdGVwcyA/PyAxMDA7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBzbGlkZXIubWluID0gdGhpcy5pbnB1dE51bWJlci5taW4oKTtcbiAgICAgICAgICAgIHNsaWRlci5tYXggPSB0aGlzLmlucHV0TnVtYmVyLm1heCgpO1xuICAgICAgICB9XG5cbiAgICAgICAgc2xpZGVyLnZhbHVlID0gdGhpcy5rZXlTdGVwc1RyYW5zZm9ybWVyKCkuZnJvbUNvbnRyb2xWYWx1ZSh0aGlzLnZhbHVlKCkpO1xuICAgICAgICBzbGlkZXIuZWwuZGlzYWJsZWQgPSAhdGhpcy5pbnB1dE51bWJlci5pbnRlcmFjdGl2ZSgpO1xuICAgIH0sIFRVSV9BTExPV19TSUdOQUxfV1JJVEVTKTtcblxuICAgIHByb3RlY3RlZCByZWFkb25seSBzbGlkZXJJbml0RWZmZWN0ID0gZWZmZWN0KChvbkNsZWFudXApID0+IHtcbiAgICAgICAgY29uc3Qgc2xpZGVyID0gdGhpcy5zbGlkZXIoKTtcblxuICAgICAgICBpZiAoIXNsaWRlcikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgc2xpZGVyLmVsLnN0eWxlLnNldFByb3BlcnR5KCctLXR1aS1zbGlkZXItdHJhY2stY29sb3InLCAndHJhbnNwYXJlbnQnKTtcblxuICAgICAgICBpZiAoc2xpZGVyLmtleVN0ZXBzKSB7XG4gICAgICAgICAgICBzbGlkZXIua2V5U3RlcHMudmFsdWUgPSB0aGlzLnZhbHVlO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgc3Vic2NyaXB0aW9uID0gZnJvbUV2ZW50KHNsaWRlci5lbCwgJ2lucHV0JywgKHgpID0+IHgudGFyZ2V0KVxuICAgICAgICAgICAgLnBpcGUoZmlsdGVyKHR1aUlzRWxlbWVudCksIGZpbHRlcih0dWlJc0lucHV0KSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKHgpID0+IHRoaXMub25TbGlkZXJJbnB1dCh4LnZhbHVlQXNOdW1iZXIpKTtcblxuICAgICAgICBvbkNsZWFudXAoKCkgPT4gc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCkpO1xuICAgIH0pO1xuXG4gICAgcHJvdGVjdGVkIG9uU3RlcChjb2VmZmljaWVudDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHNsaWRlciA9IHRoaXMuc2xpZGVyKCk7XG5cbiAgICAgICAgaWYgKHNsaWRlciAmJiB0aGlzLmlucHV0TnVtYmVyLmludGVyYWN0aXZlKCkpIHtcbiAgICAgICAgICAgIGNvbnN0IG5ld1ZhbHVlID0gdHVpQ2xhbXAoXG4gICAgICAgICAgICAgICAgc2xpZGVyLmtleVN0ZXBzPy50YWtlU3RlcChjb2VmZmljaWVudCkgPz9cbiAgICAgICAgICAgICAgICAgICAgc2xpZGVyLnZhbHVlICsgY29lZmZpY2llbnQgKiBzbGlkZXIuc3RlcCxcbiAgICAgICAgICAgICAgICB0aGlzLmlucHV0TnVtYmVyLm1pbigpLFxuICAgICAgICAgICAgICAgIHRoaXMuaW5wdXROdW1iZXIubWF4KCksXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICB0aGlzLmlucHV0TnVtYmVyLnNldFZhbHVlKG5ld1ZhbHVlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgb25TbGlkZXJJbnB1dCh2YWx1ZTogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaW5wdXROdW1iZXIuc2V0VmFsdWUodGhpcy5rZXlTdGVwc1RyYW5zZm9ybWVyKCkudG9Db250cm9sVmFsdWUodmFsdWUpKTtcblxuICAgICAgICBpZiAoIXRoaXMuaXNNb2JpbGUpIHtcbiAgICAgICAgICAgIHRoaXMuZWxlbWVudC5mb2N1cygpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHRlbXBsYXRlOiAnJyxcbiAgICBzdHlsZXM6IFtcbiAgICAgICAgLy8gVE9ETzogdHVpLXRleHRmaWVsZDpoYXMoW3R1aUlucHV0U2xpZGVyXSkgLnQtY2xlYXJcbiAgICAgICAgJ3R1aS10ZXh0ZmllbGQgW3R1aUlucHV0U2xpZGVyXSB+IC50LWNvbnRlbnQgLnQtY2xlYXIge2Rpc3BsYXk6IG5vbmUgIWltcG9ydGFudH0nLFxuICAgICAgICAvLyBUT0RPOiB0dWktdGV4dGZpZWxkOmhhcyhbdHVpSW5wdXRTbGlkZXJdKSBbdHVpU2xpZGVyXTpkaXNhYmxlZFxuICAgICAgICAndHVpLXRleHRmaWVsZCBbdHVpSW5wdXRTbGlkZXJdIH4gW3R1aVNsaWRlcl06ZGlzYWJsZWQge2Rpc3BsYXk6IG5vbmV9JyxcbiAgICBdLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgaG9zdDoge1xuICAgICAgICBjbGFzczogJ3R1aS1pbnB1dC1zbGlkZXInLFxuICAgIH0sXG59KVxuY2xhc3MgVHVpSW5wdXRTbGlkZXJTdHlsZXMge31cbiJdfQ==
|
|
109
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtc2xpZGVyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tpdC9jb21wb25lbnRzL2lucHV0LXNsaWRlci9pbnB1dC1zbGlkZXIuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFFBQVEsRUFDUixTQUFTLEVBQ1QsTUFBTSxFQUNOLE1BQU0sRUFDTixpQkFBaUIsR0FDcEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNILDhCQUE4QixFQUM5Qiw4QkFBOEIsRUFDOUIsbUJBQW1CLEdBQ3RCLE1BQU0sdUJBQXVCLENBQUM7QUFDL0IsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDaEUsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ25ELE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUNsRCxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFDaEUsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0scUNBQXFDLENBQUM7QUFDdkUsT0FBTyxFQUNILHVCQUF1QixFQUN2Qiw2QkFBNkIsRUFDN0IsOEJBQThCLEdBQ2pDLE1BQU0sdUNBQXVDLENBQUM7QUFDL0MsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0saUNBQWlDLENBQUM7QUFDbkUsT0FBTyxFQUFDLE1BQU0sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBQyxNQUFNLE1BQU0sQ0FBQzs7O0FBRXZELE1BcUJhLHVCQUF1QjtJQXJCcEM7UUFzQnFCLGFBQVEsR0FBRyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDakMsT0FBRSxHQUFHLGdCQUFn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QztvQkFDUCxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFLHVCQUF1QjtvQkFDakMsU0FBUyxFQUFFO3dCQUNQLDZCQUE2QixDQUFDOzRCQUMxQixnQkFBZ0IsRUFBRSxJQUFJLDhCQUE4QixFQUFFO3lCQUN6RCxDQUFDO3FCQUNMO29CQUNELGNBQWMsRUFBRTt3QkFDWjs0QkFDSSxTQUFTLEVBQUUsdUJBQXVCOzRCQUNsQyxNQUFNLEVBQUUsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFVBQVUsQ0FBQzt5QkFDckU7d0JBQ0QsOEJBQThCO3FCQUNqQztvQkFDRCxJQUFJLEVBQUU7d0JBQ0YsUUFBUSxFQUFFLHVDQUF1Qzt3QkFDakQsbUJBQW1CLEVBQUUsV0FBVzt3QkFDaEMscUJBQXFCLEVBQUUsWUFBWTtxQkFDdEM7aUJBQ0o7O0FBZ0dELE1BZU0sb0JBQW9COytHQUFwQixvQkFBb0I7bUdBQXBCLG9CQUFvQixzSEFiWixFQUFFOzs0RkFhVixvQkFBb0I7a0JBZnpCLFNBQVM7aUNBQ00sSUFBSSxZQUNOLEVBQUUsaUJBT0csaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTSxRQUN6Qzt3QkFDRixLQUFLLEVBQUUsa0JBQWtCO3FCQUM1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIGNvbXB1dGVkLFxuICAgIERpcmVjdGl2ZSxcbiAgICBlZmZlY3QsXG4gICAgaW5qZWN0LFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gICAgVFVJX0lERU5USVRZX1ZBTFVFX1RSQU5TRk9STUVSLFxuICAgIFR1aU5vbk51bGxhYmxlVmFsdWVUcmFuc2Zvcm1lcixcbiAgICBUdWlWYWx1ZVRyYW5zZm9ybWVyLFxufSBmcm9tICdAdGFpZ2EtdWkvY2RrL2NsYXNzZXMnO1xuaW1wb3J0IHtUVUlfQUxMT1dfU0lHTkFMX1dSSVRFU30gZnJvbSAnQHRhaWdhLXVpL2Nkay9jb25zdGFudHMnO1xuaW1wb3J0IHtUVUlfSVNfTU9CSUxFfSBmcm9tICdAdGFpZ2EtdWkvY2RrL3Rva2Vucyc7XG5pbXBvcnQge3R1aUluamVjdEVsZW1lbnR9IGZyb20gJ0B0YWlnYS11aS9jZGsvdXRpbHMvZG9tJztcbmltcG9ydCB7dHVpQ2xhbXB9IGZyb20gJ0B0YWlnYS11aS9jZGsvdXRpbHMvbWF0aCc7XG5pbXBvcnQge3R1aVdpdGhTdHlsZXN9IGZyb20gJ0B0YWlnYS11aS9jZGsvdXRpbHMvbWlzY2VsbGFuZW91cyc7XG5pbXBvcnQge3R1aUluamVjdEF1eGlsaWFyeX0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvY29tcG9uZW50cy90ZXh0ZmllbGQnO1xuaW1wb3J0IHtcbiAgICBUdWlJbnB1dE51bWJlckRpcmVjdGl2ZSxcbiAgICB0dWlJbnB1dE51bWJlck9wdGlvbnNQcm92aWRlcixcbiAgICBUdWlXaXRoUXVhbnR1bVZhbHVlVHJhbnNmb3JtZXIsXG59IGZyb20gJ0B0YWlnYS11aS9raXQvY29tcG9uZW50cy9pbnB1dC1udW1iZXInO1xuaW1wb3J0IHtUdWlTbGlkZXJDb21wb25lbnR9IGZyb20gJ0B0YWlnYS11aS9raXQvY29tcG9uZW50cy9zbGlkZXInO1xuaW1wb3J0IHtmaWx0ZXIsIGZyb21FdmVudCwgc3dpdGNoTWFwLCB0YXB9IGZyb20gJ3J4anMnO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAnaW5wdXRbdHVpSW5wdXRTbGlkZXJdJyxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgdHVpSW5wdXROdW1iZXJPcHRpb25zUHJvdmlkZXIoe1xuICAgICAgICAgICAgdmFsdWVUcmFuc2Zvcm1lcjogbmV3IFR1aU5vbk51bGxhYmxlVmFsdWVUcmFuc2Zvcm1lcigpLFxuICAgICAgICB9KSxcbiAgICBdLFxuICAgIGhvc3REaXJlY3RpdmVzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIGRpcmVjdGl2ZTogVHVpSW5wdXROdW1iZXJEaXJlY3RpdmUsXG4gICAgICAgICAgICBpbnB1dHM6IFsnbWluJywgJ21heCcsICdwcmVmaXgnLCAncG9zdGZpeCcsICdpbnZhbGlkJywgJ3JlYWRPbmx5J10sXG4gICAgICAgIH0sXG4gICAgICAgIFR1aVdpdGhRdWFudHVtVmFsdWVUcmFuc2Zvcm1lcixcbiAgICBdLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJyhibHVyKSc6ICdpbnB1dE51bWJlci5zZXRWYWx1ZSh2YWx1ZSgpID8/IG51bGwpJyxcbiAgICAgICAgJyhrZXlkb3duLmFycm93VXApJzogJ29uU3RlcCgxKScsXG4gICAgICAgICcoa2V5ZG93bi5hcnJvd0Rvd24pJzogJ29uU3RlcCgtMSknLFxuICAgIH0sXG59KVxuZXhwb3J0IGNsYXNzIFR1aUlucHV0U2xpZGVyRGlyZWN0aXZlIHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGlzTW9iaWxlID0gaW5qZWN0KFRVSV9JU19NT0JJTEUpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZWwgPSB0dWlJbmplY3RFbGVtZW50PEhUTUxJbnB1dEVsZW1lbnQ+KCk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBzbGlkZXIgPSB0dWlJbmplY3RBdXhpbGlhcnk8VHVpU2xpZGVyQ29tcG9uZW50PihcbiAgICAgICAgKHgpID0+IHggaW5zdGFuY2VvZiBUdWlTbGlkZXJDb21wb25lbnQsXG4gICAgKTtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgY29udHJvbFRyYW5zZm9ybWVyID0gaW5qZWN0PFxuICAgICAgICBUdWlWYWx1ZVRyYW5zZm9ybWVyPG51bWJlciB8IG51bGwsIG51bWJlcj5cbiAgICA+KFR1aVZhbHVlVHJhbnNmb3JtZXIsIHtzZWxmOiB0cnVlfSk7XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IGtleVN0ZXBzVHJhbnNmb3JtZXIgPSBjb21wdXRlZChcbiAgICAgICAgKCkgPT4gdGhpcy5zbGlkZXIoKT8ua2V5U3RlcHM/LnRyYW5zZm9ybWVyKCkgPz8gVFVJX0lERU5USVRZX1ZBTFVFX1RSQU5TRk9STUVSLFxuICAgICk7XG5cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgaW5wdXROdW1iZXIgPSBpbmplY3QoVHVpSW5wdXROdW1iZXJEaXJlY3RpdmUsIHtzZWxmOiB0cnVlfSk7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHZhbHVlID0gY29tcHV0ZWQoKCkgPT5cbiAgICAgICAgdGhpcy5jb250cm9sVHJhbnNmb3JtZXIudG9Db250cm9sVmFsdWUodGhpcy5pbnB1dE51bWJlci52YWx1ZSgpKSxcbiAgICApO1xuXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IG5vdGhpbmcgPSB0dWlXaXRoU3R5bGVzKFR1aUlucHV0U2xpZGVyU3R5bGVzKTtcblxuICAgIHByb3RlY3RlZCByZWFkb25seSB0ZXh0ZmllbGRUb1NsaWRlclN5bmMgPSBlZmZlY3QoKCkgPT4ge1xuICAgICAgICBjb25zdCBzbGlkZXIgPSB0aGlzLnNsaWRlcigpO1xuXG4gICAgICAgIGlmICghc2xpZGVyKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoXG4gICAgICAgICAgICBzbGlkZXIua2V5U3RlcHM/LnRyYW5zZm9ybWVyKCkgJiZcbiAgICAgICAgICAgIE51bWJlci5pc0Zpbml0ZShzbGlkZXIua2V5U3RlcHM/LnRvdGFsU3RlcHMpXG4gICAgICAgICkge1xuICAgICAgICAgICAgLy8gVE9ETyh2NSk6IG1vdmUgYWxsIGlmLWNvbmRpdGlvbiBib2R5IGluc2lkZSBgVHVpU2xpZGVyS2V5U3RlcHNCYXNlYFxuICAgICAgICAgICAgc2xpZGVyLm1pbiA9IDA7XG4gICAgICAgICAgICBzbGlkZXIuc3RlcCA9IDE7XG4gICAgICAgICAgICBzbGlkZXIubWF4ID0gc2xpZGVyLmtleVN0ZXBzPy50b3RhbFN0ZXBzID8/IDEwMDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHNsaWRlci5taW4gPSB0aGlzLmlucHV0TnVtYmVyLm1pbigpO1xuICAgICAgICAgICAgc2xpZGVyLm1heCA9IHRoaXMuaW5wdXROdW1iZXIubWF4KCk7XG4gICAgICAgIH1cblxuICAgICAgICBzbGlkZXIudmFsdWUgPSB0aGlzLmtleVN0ZXBzVHJhbnNmb3JtZXIoKS5mcm9tQ29udHJvbFZhbHVlKHRoaXMudmFsdWUoKSk7XG4gICAgICAgIHNsaWRlci5lbC5kaXNhYmxlZCA9ICF0aGlzLmlucHV0TnVtYmVyLmludGVyYWN0aXZlKCk7XG4gICAgfSwgVFVJX0FMTE9XX1NJR05BTF9XUklURVMpO1xuXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHNsaWRlckluaXRFZmZlY3QgPSBlZmZlY3QoKG9uQ2xlYW51cCkgPT4ge1xuICAgICAgICBjb25zdCBzbGlkZXIgPSB0aGlzLnNsaWRlcigpO1xuXG4gICAgICAgIGlmICghc2xpZGVyKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBzbGlkZXIuZWwuc3R5bGUuc2V0UHJvcGVydHkoJy0tdHVpLXNsaWRlci10cmFjay1jb2xvcicsICd0cmFuc3BhcmVudCcpO1xuICAgICAgICBzbGlkZXIuZWwuc2V0QXR0cmlidXRlKCd0YWJpbmRleCcsICctMScpO1xuXG4gICAgICAgIGlmIChzbGlkZXIua2V5U3RlcHMpIHtcbiAgICAgICAgICAgIHNsaWRlci5rZXlTdGVwcy52YWx1ZSA9IHRoaXMudmFsdWU7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBzdWJzY3JpcHRpb24gPSBmcm9tRXZlbnQoc2xpZGVyLmVsLCAnaW5wdXQnKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgdGFwKCgpID0+XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5wdXROdW1iZXIuc2V0VmFsdWUoXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmtleVN0ZXBzVHJhbnNmb3JtZXIoKS50b0NvbnRyb2xWYWx1ZShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzbGlkZXIuZWwudmFsdWVBc051bWJlcixcbiAgICAgICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICBmaWx0ZXIoKCkgPT4gIXRoaXMuaXNNb2JpbGUpLFxuICAgICAgICAgICAgICAgIHN3aXRjaE1hcCgoKSA9PlxuICAgICAgICAgICAgICAgICAgICBmcm9tRXZlbnQodGhpcy5lbC5vd25lckRvY3VtZW50LCAncG9pbnRlcnVwJywge29uY2U6IHRydWV9KSxcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLmVsLmZvY3VzKCkpO1xuXG4gICAgICAgIG9uQ2xlYW51cCgoKSA9PiBzdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKSk7XG4gICAgfSk7XG5cbiAgICBwcm90ZWN0ZWQgb25TdGVwKGNvZWZmaWNpZW50OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgc2xpZGVyID0gdGhpcy5zbGlkZXIoKTtcblxuICAgICAgICBpZiAoc2xpZGVyICYmIHRoaXMuaW5wdXROdW1iZXIuaW50ZXJhY3RpdmUoKSkge1xuICAgICAgICAgICAgY29uc3QgbmV3VmFsdWUgPSB0dWlDbGFtcChcbiAgICAgICAgICAgICAgICBzbGlkZXIua2V5U3RlcHM/LnRha2VTdGVwKGNvZWZmaWNpZW50KSA/P1xuICAgICAgICAgICAgICAgICAgICBzbGlkZXIudmFsdWUgKyBjb2VmZmljaWVudCAqIHNsaWRlci5zdGVwLFxuICAgICAgICAgICAgICAgIHRoaXMuaW5wdXROdW1iZXIubWluKCksXG4gICAgICAgICAgICAgICAgdGhpcy5pbnB1dE51bWJlci5tYXgoKSxcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIHRoaXMuaW5wdXROdW1iZXIuc2V0VmFsdWUobmV3VmFsdWUpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHRlbXBsYXRlOiAnJyxcbiAgICBzdHlsZXM6IFtcbiAgICAgICAgLy8gVE9ETzogdHVpLXRleHRmaWVsZDpoYXMoW3R1aUlucHV0U2xpZGVyXSkgLnQtY2xlYXJcbiAgICAgICAgJ3R1aS10ZXh0ZmllbGQgW3R1aUlucHV0U2xpZGVyXSB+IC50LWNvbnRlbnQgLnQtY2xlYXIge2Rpc3BsYXk6IG5vbmUgIWltcG9ydGFudH0nLFxuICAgICAgICAvLyBUT0RPOiB0dWktdGV4dGZpZWxkOmhhcyhbdHVpSW5wdXRTbGlkZXJdKSBbdHVpU2xpZGVyXTpkaXNhYmxlZFxuICAgICAgICAndHVpLXRleHRmaWVsZCBbdHVpSW5wdXRTbGlkZXJdIH4gW3R1aVNsaWRlcl06ZGlzYWJsZWQge2Rpc3BsYXk6IG5vbmV9JyxcbiAgICBdLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgaG9zdDoge1xuICAgICAgICBjbGFzczogJ3R1aS1pbnB1dC1zbGlkZXInLFxuICAgIH0sXG59KVxuY2xhc3MgVHVpSW5wdXRTbGlkZXJTdHlsZXMge31cbiJdfQ==
|
|
@@ -5,7 +5,7 @@ import { inject, signal, computed, ElementRef, Component, ChangeDetectionStrateg
|
|
|
5
5
|
import * as i1 from '@angular/forms';
|
|
6
6
|
import { FormsModule } from '@angular/forms';
|
|
7
7
|
import { TuiControl, tuiAsControl } from '@taiga-ui/cdk/classes';
|
|
8
|
-
import { EMPTY_QUERY } from '@taiga-ui/cdk/constants';
|
|
8
|
+
import { EMPTY_QUERY, CHAR_NO_BREAK_SPACE, CHAR_EN_DASH } from '@taiga-ui/cdk/constants';
|
|
9
9
|
import { TUI_IS_MOBILE, tuiFallbackValueProvider } from '@taiga-ui/cdk/tokens';
|
|
10
10
|
import { tuiIsNativeFocused } from '@taiga-ui/cdk/utils/focus';
|
|
11
11
|
import * as i3 from '@taiga-ui/core/components/textfield';
|
|
@@ -27,12 +27,23 @@ class TuiInputRangeComponent extends TuiControl {
|
|
|
27
27
|
this.textfieldValueStart = this.value()[0];
|
|
28
28
|
this.textfieldValueEnd = this.value()[1];
|
|
29
29
|
this.lastActiveSide = 'start';
|
|
30
|
+
this.content = signal(['', '']);
|
|
31
|
+
this.contentStart = computed(() => {
|
|
32
|
+
const [start, end] = this.content().map((x, i) => {
|
|
33
|
+
const value = this.value()[i];
|
|
34
|
+
return typeof x === 'function' ? x({ $implicit: value }) : x || value;
|
|
35
|
+
});
|
|
36
|
+
if (this.interactive() || !this.isPrimitive(start) || !this.isPrimitive(end)) {
|
|
37
|
+
return this.content()[0];
|
|
38
|
+
}
|
|
39
|
+
return `${start}${CHAR_NO_BREAK_SPACE}${CHAR_EN_DASH}${CHAR_NO_BREAK_SPACE}${end}`;
|
|
40
|
+
});
|
|
41
|
+
this.contentEnd = computed(() => this.contentStart() === this.content()[0] ? this.content()[1] : '');
|
|
30
42
|
this.min = 0;
|
|
31
43
|
this.max = 100;
|
|
32
44
|
this.step = 1;
|
|
33
45
|
this.segments = 1;
|
|
34
46
|
this.keySteps = null;
|
|
35
|
-
this.content = ['', ''];
|
|
36
47
|
this.prefix = ['', ''];
|
|
37
48
|
this.postfix = ['', ''];
|
|
38
49
|
}
|
|
@@ -40,6 +51,10 @@ class TuiInputRangeComponent extends TuiControl {
|
|
|
40
51
|
set quantumSetter(x) {
|
|
41
52
|
this.quantum.set(x);
|
|
42
53
|
}
|
|
54
|
+
// TODO(v5): use signal inputs
|
|
55
|
+
set contentSetter(x) {
|
|
56
|
+
this.content.set(x);
|
|
57
|
+
}
|
|
43
58
|
writeValue(value) {
|
|
44
59
|
super.writeValue(value);
|
|
45
60
|
this.setTextfieldValues(this.value());
|
|
@@ -49,11 +64,12 @@ class TuiInputRangeComponent extends TuiControl {
|
|
|
49
64
|
this.range.legacyMode = false; // TODO(v5): remove backward compatibility
|
|
50
65
|
}
|
|
51
66
|
}
|
|
52
|
-
get
|
|
53
|
-
return
|
|
67
|
+
get contentStartHidden() {
|
|
68
|
+
return this.interactive() && tuiIsNativeFocused(this.textfieldStart);
|
|
54
69
|
}
|
|
55
|
-
get
|
|
56
|
-
return !this.content[1] ||
|
|
70
|
+
get contentEndHidden() {
|
|
71
|
+
return (!this.content()[1] ||
|
|
72
|
+
(this.interactive() && tuiIsNativeFocused(this.textfieldEnd)));
|
|
57
73
|
}
|
|
58
74
|
takeStep(event, coefficients) {
|
|
59
75
|
if (!this.interactive() || !this.range) {
|
|
@@ -109,12 +125,15 @@ class TuiInputRangeComponent extends TuiControl {
|
|
|
109
125
|
const [start, end] = value.map((x) => this.quantumTransformer().toControlValue(x) ?? x);
|
|
110
126
|
return [Math.min(start, prevEnd), Math.max(end, prevStart)];
|
|
111
127
|
}
|
|
128
|
+
isPrimitive(x) {
|
|
129
|
+
return Object(x) !== x;
|
|
130
|
+
}
|
|
112
131
|
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",
|
|
132
|
+
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", prefix: ["prefix", "prefix", (x) => x ?? ['', '']], postfix: ["postfix", "postfix", (x) => x ?? ['', '']], quantumSetter: ["quantum", "quantumSetter"], contentSetter: ["content", "contentSetter"] }, host: { attributes: { "new": "" }, properties: { "attr.data-size": "size()", "style.--t-icon-lock": "contentEnd() ? \"none\" : null" } }, providers: [
|
|
114
133
|
tuiAsControl(TuiInputRangeComponent),
|
|
115
134
|
tuiSliderOptionsProvider({ trackColor: 'transparent' }),
|
|
116
135
|
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]=\"
|
|
136
|
+
], 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]=\"contentStartHidden ? '' : contentStart()\">\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]=\"!contentEndHidden || !this.interactive()\"\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]=\"contentEndHidden\"\n >\n <ng-container *polymorpheusOutlet=\"contentEnd() 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._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
137
|
}
|
|
119
138
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiInputRangeComponent, decorators: [{
|
|
120
139
|
type: Component,
|
|
@@ -133,7 +152,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
133
152
|
new: '',
|
|
134
153
|
// TODO: use css :host:has(tui-textfield[data-size]) after browser bump
|
|
135
154
|
'[attr.data-size]': 'size()',
|
|
136
|
-
|
|
155
|
+
'[style.--t-icon-lock]': 'contentEnd() ? "none" : null',
|
|
156
|
+
}, template: "<tui-textfield [content]=\"contentStartHidden ? '' : contentStart()\">\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]=\"!contentEndHidden || !this.interactive()\"\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]=\"contentEndHidden\"\n >\n <ng-container *polymorpheusOutlet=\"contentEnd() 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._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"] }]
|
|
137
157
|
}], propDecorators: { inputNumberRefs: [{
|
|
138
158
|
type: ViewChildren,
|
|
139
159
|
args: [TuiInputNumberDirective, { read: ElementRef }]
|
|
@@ -150,8 +170,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
150
170
|
type: Input
|
|
151
171
|
}], keySteps: [{
|
|
152
172
|
type: Input
|
|
153
|
-
}], content: [{
|
|
154
|
-
type: Input
|
|
155
173
|
}], prefix: [{
|
|
156
174
|
type: Input,
|
|
157
175
|
args: [{ transform: (x) => x ?? ['', ''] }]
|
|
@@ -161,6 +179,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
161
179
|
}], quantumSetter: [{
|
|
162
180
|
type: Input,
|
|
163
181
|
args: ['quantum']
|
|
182
|
+
}], contentSetter: [{
|
|
183
|
+
type: Input,
|
|
184
|
+
args: ['content']
|
|
164
185
|
}] } });
|
|
165
186
|
|
|
166
187
|
const TuiInputRange = [TuiInputRangeComponent, TuiLabel];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-kit-components-input-range.mjs","sources":["../../../projects/kit/components/input-range/input-range.component.ts","../../../projects/kit/components/input-range/input-range.template.html","../../../projects/kit/components/input-range/input-range.ts","../../../projects/kit/components/input-range/taiga-ui-kit-components-input-range.ts"],"sourcesContent":["import {NgIf} from '@angular/common';\nimport {\n type AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n computed,\n ElementRef,\n inject,\n Input,\n type QueryList,\n signal,\n ViewChild,\n ViewChildren,\n} from '@angular/core';\nimport {FormsModule} from '@angular/forms';\nimport {tuiAsControl, TuiControl} from '@taiga-ui/cdk/classes';\nimport {EMPTY_QUERY} from '@taiga-ui/cdk/constants';\nimport {TUI_IS_MOBILE, tuiFallbackValueProvider} from '@taiga-ui/cdk/tokens';\nimport {type TuiContext} from '@taiga-ui/cdk/types';\nimport {tuiIsNativeFocused} from '@taiga-ui/cdk/utils/focus';\nimport {TUI_TEXTFIELD_OPTIONS, TuiTextfield} from '@taiga-ui/core/components/textfield';\nimport {\n TuiInputNumber,\n TuiInputNumberDirective,\n TuiQuantumValueTransformerBase,\n} from '@taiga-ui/kit/components/input-number';\nimport {TuiRange} from '@taiga-ui/kit/components/range';\nimport {\n type TuiKeySteps,\n tuiSliderOptionsProvider,\n} from '@taiga-ui/kit/components/slider';\nimport {type PolymorpheusContent, PolymorpheusOutlet} from '@taiga-ui/polymorpheus';\n\n@Component({\n standalone: true,\n selector: 'tui-input-range',\n imports: [\n FormsModule,\n NgIf,\n PolymorpheusOutlet,\n TuiInputNumber,\n TuiRange,\n TuiTextfield,\n ],\n templateUrl: './input-range.template.html',\n styleUrls: ['./input-range.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n tuiAsControl(TuiInputRangeComponent),\n tuiSliderOptionsProvider({trackColor: 'transparent'}),\n tuiFallbackValueProvider([0, 0]),\n ],\n host: {\n new: '', // TODO(v5): remove after deletion of legacy control\n // TODO: use css :host:has(tui-textfield[data-size]) after browser bump\n '[attr.data-size]': 'size()',\n },\n})\nexport class TuiInputRangeComponent\n extends TuiControl<readonly [number, number]>\n implements AfterViewInit\n{\n @ViewChildren(TuiInputNumberDirective, {read: ElementRef})\n private readonly inputNumberRefs: QueryList<ElementRef<HTMLInputElement>> =\n EMPTY_QUERY;\n\n @ViewChild(TuiRange)\n private readonly range?: TuiRange;\n\n private readonly isMobile = inject(TUI_IS_MOBILE);\n private readonly quantum = signal(0);\n private readonly quantumTransformer = computed(\n () => new TuiQuantumValueTransformerBase(this.quantum()),\n );\n\n protected readonly size = inject(TUI_TEXTFIELD_OPTIONS).size;\n protected textfieldValueStart = this.value()[0];\n protected textfieldValueEnd = this.value()[1];\n protected lastActiveSide: 'end' | 'start' = 'start';\n\n @Input()\n public min = 0;\n\n @Input()\n public max = 100;\n\n @Input()\n public step = 1;\n\n @Input()\n public segments = 1;\n\n @Input()\n public keySteps: TuiKeySteps | null = null;\n\n @Input()\n public content: readonly [\n PolymorpheusContent<TuiContext<number>>,\n PolymorpheusContent<TuiContext<number>>,\n ] = ['', ''];\n\n @Input({transform: (x: readonly [string, string] | null) => x ?? ['', '']})\n public prefix: readonly [string, string] = ['', ''];\n\n @Input({transform: (x: readonly [string, string] | null) => x ?? ['', '']})\n public postfix: readonly [string, string] = ['', ''];\n\n // TODO(v5): use signal inputs\n @Input('quantum')\n public set quantumSetter(x: number) {\n this.quantum.set(x);\n }\n\n public override writeValue(value: [number, number]): void {\n super.writeValue(value);\n this.setTextfieldValues(this.value());\n }\n\n public ngAfterViewInit(): void {\n if (this.range) {\n this.range.legacyMode = false; // TODO(v5): remove backward compatibility\n }\n }\n\n protected get hideStartContent(): boolean {\n return !this.content[0] || tuiIsNativeFocused(this.textfieldStart);\n }\n\n protected get hideEndContent(): boolean {\n return !this.content[1] || tuiIsNativeFocused(this.textfieldEnd);\n }\n\n protected takeStep(\n event: Event | KeyboardEvent,\n coefficients: readonly [number, number],\n ): void {\n if (!this.interactive() || !this.range) {\n return;\n }\n\n event.preventDefault();\n\n const [start, end] = this.value();\n const newValue = this.valueGuard(this.range.takeStep(coefficients));\n\n if (newValue[0] !== start || newValue[1] !== end) {\n this.onExternalValueUpdate(newValue);\n }\n }\n\n protected onInput([start, end]: [number | null, number | null]): void {\n const [prevStart, prevEnd] = this.value();\n\n this.setValue([start ?? prevStart, end ?? prevEnd]);\n }\n\n protected onExternalValueUpdate(value: readonly [number, number]): void {\n this.setValue(value);\n this.setTextfieldValues(this.value());\n\n setTimeout((end = Number.MAX_SAFE_INTEGER) => {\n if (tuiIsNativeFocused(this.activeTextfield)) {\n this.activeTextfield?.setSelectionRange(end, end);\n }\n });\n }\n\n protected focusToTextfield(): void {\n if (!this.isMobile) {\n this.activeTextfield?.focus();\n }\n }\n\n protected onActiveThumbChange(activeThumb: 'left' | 'right'): void {\n // TODO(v5): remove backward compatibility\n this.lastActiveSide = activeThumb === 'left' ? 'start' : 'end';\n }\n\n protected setTextfieldValues([start, end]: readonly [number, number]): void {\n this.textfieldValueStart = start;\n this.textfieldValueEnd = end;\n }\n\n private get textfieldStart(): HTMLInputElement | null {\n return this.inputNumberRefs.first?.nativeElement || null;\n }\n\n private get textfieldEnd(): HTMLInputElement | null {\n return this.inputNumberRefs.last?.nativeElement || null;\n }\n\n private get activeTextfield(): HTMLInputElement | null {\n return this.lastActiveSide === 'start' ? this.textfieldStart : this.textfieldEnd;\n }\n\n private setValue(value: readonly [number, number]): void {\n this.onChange(this.valueGuard(value));\n }\n\n private valueGuard(value: readonly [number, number]): readonly [number, number] {\n const [prevStart, prevEnd] = this.value();\n const [start, end] = value.map(\n (x) => this.quantumTransformer().toControlValue(x) ?? x,\n ) as unknown as readonly [number, number];\n\n return [Math.min(start, prevEnd), Math.max(end, prevStart)];\n }\n}\n","<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","import {TuiLabel} from '@taiga-ui/core/components/label';\n\nimport {TuiInputRangeComponent} from './input-range.component';\n\nexport const TuiInputRange = [TuiInputRangeComponent, TuiLabel] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"taiga-ui-kit-components-input-range.mjs","sources":["../../../projects/kit/components/input-range/input-range.component.ts","../../../projects/kit/components/input-range/input-range.template.html","../../../projects/kit/components/input-range/input-range.ts","../../../projects/kit/components/input-range/taiga-ui-kit-components-input-range.ts"],"sourcesContent":["import {NgIf} from '@angular/common';\nimport {\n type AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n computed,\n ElementRef,\n inject,\n Input,\n type QueryList,\n signal,\n ViewChild,\n ViewChildren,\n} from '@angular/core';\nimport {FormsModule} from '@angular/forms';\nimport {tuiAsControl, TuiControl} from '@taiga-ui/cdk/classes';\nimport {CHAR_EN_DASH, CHAR_NO_BREAK_SPACE, EMPTY_QUERY} from '@taiga-ui/cdk/constants';\nimport {TUI_IS_MOBILE, tuiFallbackValueProvider} from '@taiga-ui/cdk/tokens';\nimport {type TuiContext} from '@taiga-ui/cdk/types';\nimport {tuiIsNativeFocused} from '@taiga-ui/cdk/utils/focus';\nimport {TUI_TEXTFIELD_OPTIONS, TuiTextfield} from '@taiga-ui/core/components/textfield';\nimport {\n TuiInputNumber,\n TuiInputNumberDirective,\n TuiQuantumValueTransformerBase,\n} from '@taiga-ui/kit/components/input-number';\nimport {TuiRange} from '@taiga-ui/kit/components/range';\nimport {\n type TuiKeySteps,\n tuiSliderOptionsProvider,\n} from '@taiga-ui/kit/components/slider';\nimport {\n type PolymorpheusContent,\n PolymorpheusOutlet,\n type PolymorpheusPrimitive,\n} from '@taiga-ui/polymorpheus';\n\n@Component({\n standalone: true,\n selector: 'tui-input-range',\n imports: [\n FormsModule,\n NgIf,\n PolymorpheusOutlet,\n TuiInputNumber,\n TuiRange,\n TuiTextfield,\n ],\n templateUrl: './input-range.template.html',\n styleUrls: ['./input-range.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n tuiAsControl(TuiInputRangeComponent),\n tuiSliderOptionsProvider({trackColor: 'transparent'}),\n tuiFallbackValueProvider([0, 0]),\n ],\n host: {\n new: '', // TODO(v5): remove after deletion of legacy control\n // TODO: use css :host:has(tui-textfield[data-size]) after browser bump\n '[attr.data-size]': 'size()',\n '[style.--t-icon-lock]': 'contentEnd() ? \"none\" : null',\n },\n})\nexport class TuiInputRangeComponent\n extends TuiControl<readonly [number, number]>\n implements AfterViewInit\n{\n @ViewChildren(TuiInputNumberDirective, {read: ElementRef})\n private readonly inputNumberRefs: QueryList<ElementRef<HTMLInputElement>> =\n EMPTY_QUERY;\n\n @ViewChild(TuiRange)\n private readonly range?: TuiRange;\n\n private readonly isMobile = inject(TUI_IS_MOBILE);\n private readonly quantum = signal(0);\n private readonly quantumTransformer = computed(\n () => new TuiQuantumValueTransformerBase(this.quantum()),\n );\n\n protected readonly size = inject(TUI_TEXTFIELD_OPTIONS).size;\n protected textfieldValueStart = this.value()[0];\n protected textfieldValueEnd = this.value()[1];\n protected lastActiveSide: 'end' | 'start' = 'start';\n protected readonly content = signal<\n readonly [\n PolymorpheusContent<TuiContext<number>>,\n PolymorpheusContent<TuiContext<number>>,\n ]\n >(['', '']);\n\n protected readonly contentStart = computed(() => {\n const [start, end] = this.content().map((x, i) => {\n const value = this.value()[i]!;\n\n return typeof x === 'function' ? x({$implicit: value}) : x || value;\n });\n\n if (this.interactive() || !this.isPrimitive(start) || !this.isPrimitive(end)) {\n return this.content()[0];\n }\n\n return `${start}${CHAR_NO_BREAK_SPACE}${CHAR_EN_DASH}${CHAR_NO_BREAK_SPACE}${end}`;\n });\n\n protected readonly contentEnd = computed(() =>\n this.contentStart() === this.content()[0] ? this.content()[1] : '',\n );\n\n @Input()\n public min = 0;\n\n @Input()\n public max = 100;\n\n @Input()\n public step = 1;\n\n @Input()\n public segments = 1;\n\n @Input()\n public keySteps: TuiKeySteps | null = null;\n\n @Input({transform: (x: readonly [string, string] | null) => x ?? ['', '']})\n public prefix: readonly [string, string] = ['', ''];\n\n @Input({transform: (x: readonly [string, string] | null) => x ?? ['', '']})\n public postfix: readonly [string, string] = ['', ''];\n\n // TODO(v5): use signal inputs\n @Input('quantum')\n public set quantumSetter(x: number) {\n this.quantum.set(x);\n }\n\n // TODO(v5): use signal inputs\n @Input('content')\n public set contentSetter(\n x: readonly [\n PolymorpheusContent<TuiContext<number>>,\n PolymorpheusContent<TuiContext<number>>,\n ],\n ) {\n this.content.set(x);\n }\n\n public override writeValue(value: [number, number]): void {\n super.writeValue(value);\n this.setTextfieldValues(this.value());\n }\n\n public ngAfterViewInit(): void {\n if (this.range) {\n this.range.legacyMode = false; // TODO(v5): remove backward compatibility\n }\n }\n\n protected get contentStartHidden(): boolean {\n return this.interactive() && tuiIsNativeFocused(this.textfieldStart);\n }\n\n protected get contentEndHidden(): boolean {\n return (\n !this.content()[1] ||\n (this.interactive() && tuiIsNativeFocused(this.textfieldEnd))\n );\n }\n\n protected takeStep(\n event: Event | KeyboardEvent,\n coefficients: readonly [number, number],\n ): void {\n if (!this.interactive() || !this.range) {\n return;\n }\n\n event.preventDefault();\n\n const [start, end] = this.value();\n const newValue = this.valueGuard(this.range.takeStep(coefficients));\n\n if (newValue[0] !== start || newValue[1] !== end) {\n this.onExternalValueUpdate(newValue);\n }\n }\n\n protected onInput([start, end]: [number | null, number | null]): void {\n const [prevStart, prevEnd] = this.value();\n\n this.setValue([start ?? prevStart, end ?? prevEnd]);\n }\n\n protected onExternalValueUpdate(value: readonly [number, number]): void {\n this.setValue(value);\n this.setTextfieldValues(this.value());\n\n setTimeout((end = Number.MAX_SAFE_INTEGER) => {\n if (tuiIsNativeFocused(this.activeTextfield)) {\n this.activeTextfield?.setSelectionRange(end, end);\n }\n });\n }\n\n protected focusToTextfield(): void {\n if (!this.isMobile) {\n this.activeTextfield?.focus();\n }\n }\n\n protected onActiveThumbChange(activeThumb: 'left' | 'right'): void {\n // TODO(v5): remove backward compatibility\n this.lastActiveSide = activeThumb === 'left' ? 'start' : 'end';\n }\n\n protected setTextfieldValues([start, end]: readonly [number, number]): void {\n this.textfieldValueStart = start;\n this.textfieldValueEnd = end;\n }\n\n private get textfieldStart(): HTMLInputElement | null {\n return this.inputNumberRefs.first?.nativeElement || null;\n }\n\n private get textfieldEnd(): HTMLInputElement | null {\n return this.inputNumberRefs.last?.nativeElement || null;\n }\n\n private get activeTextfield(): HTMLInputElement | null {\n return this.lastActiveSide === 'start' ? this.textfieldStart : this.textfieldEnd;\n }\n\n private setValue(value: readonly [number, number]): void {\n this.onChange(this.valueGuard(value));\n }\n\n private valueGuard(value: readonly [number, number]): readonly [number, number] {\n const [prevStart, prevEnd] = this.value();\n const [start, end] = value.map(\n (x) => this.quantumTransformer().toControlValue(x) ?? x,\n ) as unknown as readonly [number, number];\n\n return [Math.min(start, prevEnd), Math.max(end, prevStart)];\n }\n\n private isPrimitive(x: PolymorpheusContent): x is PolymorpheusPrimitive {\n return Object(x) !== x;\n }\n}\n","<tui-textfield [content]=\"contentStartHidden ? '' : contentStart()\">\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]=\"!contentEndHidden || !this.interactive()\"\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]=\"contentEndHidden\"\n >\n <ng-container *polymorpheusOutlet=\"contentEnd() 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","import {TuiLabel} from '@taiga-ui/core/components/label';\n\nimport {TuiInputRangeComponent} from './input-range.component';\n\nexport const TuiInputRange = [TuiInputRangeComponent, TuiLabel] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -4,18 +4,18 @@ import { inject, computed, effect, Directive, Component, ViewEncapsulation, Chan
|
|
|
4
4
|
import { TuiValueTransformer, TUI_IDENTITY_VALUE_TRANSFORMER, TuiNonNullableValueTransformer } from '@taiga-ui/cdk/classes';
|
|
5
5
|
import { TUI_ALLOW_SIGNAL_WRITES } from '@taiga-ui/cdk/constants';
|
|
6
6
|
import { TUI_IS_MOBILE } from '@taiga-ui/cdk/tokens';
|
|
7
|
-
import { tuiInjectElement
|
|
7
|
+
import { tuiInjectElement } from '@taiga-ui/cdk/utils/dom';
|
|
8
8
|
import { tuiClamp } from '@taiga-ui/cdk/utils/math';
|
|
9
9
|
import { tuiWithStyles } from '@taiga-ui/cdk/utils/miscellaneous';
|
|
10
10
|
import { tuiInjectAuxiliary } from '@taiga-ui/core/components/textfield';
|
|
11
11
|
import * as i1 from '@taiga-ui/kit/components/input-number';
|
|
12
12
|
import { TuiInputNumberDirective, tuiInputNumberOptionsProvider, TuiWithQuantumValueTransformer } from '@taiga-ui/kit/components/input-number';
|
|
13
|
-
import { fromEvent, filter } from 'rxjs';
|
|
13
|
+
import { fromEvent, tap, filter, switchMap } from 'rxjs';
|
|
14
14
|
|
|
15
15
|
class TuiInputSliderDirective {
|
|
16
16
|
constructor() {
|
|
17
17
|
this.isMobile = inject(TUI_IS_MOBILE);
|
|
18
|
-
this.
|
|
18
|
+
this.el = tuiInjectElement();
|
|
19
19
|
this.slider = tuiInjectAuxiliary((x) => x instanceof TuiSliderComponent);
|
|
20
20
|
this.controlTransformer = inject(TuiValueTransformer, { self: true });
|
|
21
21
|
this.keyStepsTransformer = computed(() => this.slider()?.keySteps?.transformer() ?? TUI_IDENTITY_VALUE_TRANSFORMER);
|
|
@@ -47,12 +47,13 @@ class TuiInputSliderDirective {
|
|
|
47
47
|
return;
|
|
48
48
|
}
|
|
49
49
|
slider.el.style.setProperty('--tui-slider-track-color', 'transparent');
|
|
50
|
+
slider.el.setAttribute('tabindex', '-1');
|
|
50
51
|
if (slider.keySteps) {
|
|
51
52
|
slider.keySteps.value = this.value;
|
|
52
53
|
}
|
|
53
|
-
const subscription = fromEvent(slider.el, 'input'
|
|
54
|
-
.pipe(
|
|
55
|
-
.subscribe((
|
|
54
|
+
const subscription = fromEvent(slider.el, 'input')
|
|
55
|
+
.pipe(tap(() => this.inputNumber.setValue(this.keyStepsTransformer().toControlValue(slider.el.valueAsNumber))), filter(() => !this.isMobile), switchMap(() => fromEvent(this.el.ownerDocument, 'pointerup', { once: true })))
|
|
56
|
+
.subscribe(() => this.el.focus());
|
|
56
57
|
onCleanup(() => subscription.unsubscribe());
|
|
57
58
|
});
|
|
58
59
|
}
|
|
@@ -64,12 +65,6 @@ class TuiInputSliderDirective {
|
|
|
64
65
|
this.inputNumber.setValue(newValue);
|
|
65
66
|
}
|
|
66
67
|
}
|
|
67
|
-
onSliderInput(value) {
|
|
68
|
-
this.inputNumber.setValue(this.keyStepsTransformer().toControlValue(value));
|
|
69
|
-
if (!this.isMobile) {
|
|
70
|
-
this.element.focus();
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
68
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiInputSliderDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
74
69
|
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: TuiInputSliderDirective, isStandalone: true, selector: "input[tuiInputSlider]", host: { listeners: { "blur": "inputNumber.setValue(value() ?? null)", "keydown.arrowUp": "onStep(1)", "keydown.arrowDown": "onStep(-1)" } }, providers: [
|
|
75
70
|
tuiInputNumberOptionsProvider({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-kit-components-input-slider.mjs","sources":["../../../projects/kit/components/input-slider/input-slider.directive.ts","../../../projects/kit/components/input-slider/input-slider.ts","../../../projects/kit/components/input-slider/taiga-ui-kit-components-input-slider.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n computed,\n Directive,\n effect,\n inject,\n ViewEncapsulation,\n} from '@angular/core';\nimport {\n TUI_IDENTITY_VALUE_TRANSFORMER,\n TuiNonNullableValueTransformer,\n TuiValueTransformer,\n} from '@taiga-ui/cdk/classes';\nimport {TUI_ALLOW_SIGNAL_WRITES} from '@taiga-ui/cdk/constants';\nimport {TUI_IS_MOBILE} from '@taiga-ui/cdk/tokens';\nimport {tuiInjectElement, tuiIsElement, tuiIsInput} from '@taiga-ui/cdk/utils/dom';\nimport {tuiClamp} from '@taiga-ui/cdk/utils/math';\nimport {tuiWithStyles} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {tuiInjectAuxiliary} from '@taiga-ui/core/components/textfield';\nimport {\n TuiInputNumberDirective,\n tuiInputNumberOptionsProvider,\n TuiWithQuantumValueTransformer,\n} from '@taiga-ui/kit/components/input-number';\nimport {TuiSliderComponent} from '@taiga-ui/kit/components/slider';\nimport {filter, fromEvent} from 'rxjs';\n\n@Directive({\n standalone: true,\n selector: 'input[tuiInputSlider]',\n providers: [\n tuiInputNumberOptionsProvider({\n valueTransformer: new TuiNonNullableValueTransformer(),\n }),\n ],\n hostDirectives: [\n {\n directive: TuiInputNumberDirective,\n inputs: ['min', 'max', 'prefix', 'postfix', 'invalid', 'readOnly'],\n },\n TuiWithQuantumValueTransformer,\n ],\n host: {\n '(blur)': 'inputNumber.setValue(value() ?? null)',\n '(keydown.arrowUp)': 'onStep(1)',\n '(keydown.arrowDown)': 'onStep(-1)',\n },\n})\nexport class TuiInputSliderDirective {\n private readonly isMobile = inject(TUI_IS_MOBILE);\n private readonly element = tuiInjectElement<HTMLInputElement>();\n private readonly slider = tuiInjectAuxiliary<TuiSliderComponent>(\n (x) => x instanceof TuiSliderComponent,\n );\n\n private readonly controlTransformer = inject<\n TuiValueTransformer<number | null, number>\n >(TuiValueTransformer, {self: true});\n\n private readonly keyStepsTransformer = computed(\n () => this.slider()?.keySteps?.transformer() ?? TUI_IDENTITY_VALUE_TRANSFORMER,\n );\n\n protected readonly inputNumber = inject(TuiInputNumberDirective, {self: true});\n protected readonly value = computed(() =>\n this.controlTransformer.toControlValue(this.inputNumber.value()),\n );\n\n protected readonly nothing = tuiWithStyles(TuiInputSliderStyles);\n\n protected readonly textfieldToSliderSync = effect(() => {\n const slider = this.slider();\n\n if (!slider) {\n return;\n }\n\n if (\n slider.keySteps?.transformer() &&\n Number.isFinite(slider.keySteps?.totalSteps)\n ) {\n // TODO(v5): move all if-condition body inside `TuiSliderKeyStepsBase`\n slider.min = 0;\n slider.step = 1;\n slider.max = slider.keySteps?.totalSteps ?? 100;\n } else {\n slider.min = this.inputNumber.min();\n slider.max = this.inputNumber.max();\n }\n\n slider.value = this.keyStepsTransformer().fromControlValue(this.value());\n slider.el.disabled = !this.inputNumber.interactive();\n }, TUI_ALLOW_SIGNAL_WRITES);\n\n protected readonly sliderInitEffect = effect((onCleanup) => {\n const slider = this.slider();\n\n if (!slider) {\n return;\n }\n\n slider.el.style.setProperty('--tui-slider-track-color', 'transparent');\n\n if (slider.keySteps) {\n slider.keySteps.value = this.value;\n }\n\n const subscription = fromEvent(slider.el, 'input', (x) => x.target)\n .pipe(filter(tuiIsElement), filter(tuiIsInput))\n .subscribe((x) => this.onSliderInput(x.valueAsNumber));\n\n onCleanup(() => subscription.unsubscribe());\n });\n\n protected onStep(coefficient: number): void {\n const slider = this.slider();\n\n if (slider && this.inputNumber.interactive()) {\n const newValue = tuiClamp(\n slider.keySteps?.takeStep(coefficient) ??\n slider.value + coefficient * slider.step,\n this.inputNumber.min(),\n this.inputNumber.max(),\n );\n\n this.inputNumber.setValue(newValue);\n }\n }\n\n private onSliderInput(value: number): void {\n this.inputNumber.setValue(this.keyStepsTransformer().toControlValue(value));\n\n if (!this.isMobile) {\n this.element.focus();\n }\n }\n}\n\n@Component({\n standalone: true,\n template: '',\n styles: [\n // TODO: tui-textfield:has([tuiInputSlider]) .t-clear\n 'tui-textfield [tuiInputSlider] ~ .t-content .t-clear {display: none !important}',\n // TODO: tui-textfield:has([tuiInputSlider]) [tuiSlider]:disabled\n 'tui-textfield [tuiInputSlider] ~ [tuiSlider]:disabled {display: none}',\n ],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'tui-input-slider',\n },\n})\nclass TuiInputSliderStyles {}\n","import {\n TuiSliderComponent,\n TuiSliderKeySteps,\n TuiSliderKeyStepsBase,\n} from '@taiga-ui/kit/components/slider';\n\nimport {TuiInputSliderDirective} from './input-slider.directive';\n\nexport const TuiInputSlider = [\n TuiSliderComponent,\n TuiSliderKeyStepsBase,\n TuiSliderKeySteps,\n TuiInputSliderDirective,\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"taiga-ui-kit-components-input-slider.mjs","sources":["../../../projects/kit/components/input-slider/input-slider.directive.ts","../../../projects/kit/components/input-slider/input-slider.ts","../../../projects/kit/components/input-slider/taiga-ui-kit-components-input-slider.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n computed,\n Directive,\n effect,\n inject,\n ViewEncapsulation,\n} from '@angular/core';\nimport {\n TUI_IDENTITY_VALUE_TRANSFORMER,\n TuiNonNullableValueTransformer,\n TuiValueTransformer,\n} from '@taiga-ui/cdk/classes';\nimport {TUI_ALLOW_SIGNAL_WRITES} from '@taiga-ui/cdk/constants';\nimport {TUI_IS_MOBILE} from '@taiga-ui/cdk/tokens';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {tuiClamp} from '@taiga-ui/cdk/utils/math';\nimport {tuiWithStyles} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {tuiInjectAuxiliary} from '@taiga-ui/core/components/textfield';\nimport {\n TuiInputNumberDirective,\n tuiInputNumberOptionsProvider,\n TuiWithQuantumValueTransformer,\n} from '@taiga-ui/kit/components/input-number';\nimport {TuiSliderComponent} from '@taiga-ui/kit/components/slider';\nimport {filter, fromEvent, switchMap, tap} from 'rxjs';\n\n@Directive({\n standalone: true,\n selector: 'input[tuiInputSlider]',\n providers: [\n tuiInputNumberOptionsProvider({\n valueTransformer: new TuiNonNullableValueTransformer(),\n }),\n ],\n hostDirectives: [\n {\n directive: TuiInputNumberDirective,\n inputs: ['min', 'max', 'prefix', 'postfix', 'invalid', 'readOnly'],\n },\n TuiWithQuantumValueTransformer,\n ],\n host: {\n '(blur)': 'inputNumber.setValue(value() ?? null)',\n '(keydown.arrowUp)': 'onStep(1)',\n '(keydown.arrowDown)': 'onStep(-1)',\n },\n})\nexport class TuiInputSliderDirective {\n private readonly isMobile = inject(TUI_IS_MOBILE);\n private readonly el = tuiInjectElement<HTMLInputElement>();\n private readonly slider = tuiInjectAuxiliary<TuiSliderComponent>(\n (x) => x instanceof TuiSliderComponent,\n );\n\n private readonly controlTransformer = inject<\n TuiValueTransformer<number | null, number>\n >(TuiValueTransformer, {self: true});\n\n private readonly keyStepsTransformer = computed(\n () => this.slider()?.keySteps?.transformer() ?? TUI_IDENTITY_VALUE_TRANSFORMER,\n );\n\n protected readonly inputNumber = inject(TuiInputNumberDirective, {self: true});\n protected readonly value = computed(() =>\n this.controlTransformer.toControlValue(this.inputNumber.value()),\n );\n\n protected readonly nothing = tuiWithStyles(TuiInputSliderStyles);\n\n protected readonly textfieldToSliderSync = effect(() => {\n const slider = this.slider();\n\n if (!slider) {\n return;\n }\n\n if (\n slider.keySteps?.transformer() &&\n Number.isFinite(slider.keySteps?.totalSteps)\n ) {\n // TODO(v5): move all if-condition body inside `TuiSliderKeyStepsBase`\n slider.min = 0;\n slider.step = 1;\n slider.max = slider.keySteps?.totalSteps ?? 100;\n } else {\n slider.min = this.inputNumber.min();\n slider.max = this.inputNumber.max();\n }\n\n slider.value = this.keyStepsTransformer().fromControlValue(this.value());\n slider.el.disabled = !this.inputNumber.interactive();\n }, TUI_ALLOW_SIGNAL_WRITES);\n\n protected readonly sliderInitEffect = effect((onCleanup) => {\n const slider = this.slider();\n\n if (!slider) {\n return;\n }\n\n slider.el.style.setProperty('--tui-slider-track-color', 'transparent');\n slider.el.setAttribute('tabindex', '-1');\n\n if (slider.keySteps) {\n slider.keySteps.value = this.value;\n }\n\n const subscription = fromEvent(slider.el, 'input')\n .pipe(\n tap(() =>\n this.inputNumber.setValue(\n this.keyStepsTransformer().toControlValue(\n slider.el.valueAsNumber,\n ),\n ),\n ),\n filter(() => !this.isMobile),\n switchMap(() =>\n fromEvent(this.el.ownerDocument, 'pointerup', {once: true}),\n ),\n )\n .subscribe(() => this.el.focus());\n\n onCleanup(() => subscription.unsubscribe());\n });\n\n protected onStep(coefficient: number): void {\n const slider = this.slider();\n\n if (slider && this.inputNumber.interactive()) {\n const newValue = tuiClamp(\n slider.keySteps?.takeStep(coefficient) ??\n slider.value + coefficient * slider.step,\n this.inputNumber.min(),\n this.inputNumber.max(),\n );\n\n this.inputNumber.setValue(newValue);\n }\n }\n}\n\n@Component({\n standalone: true,\n template: '',\n styles: [\n // TODO: tui-textfield:has([tuiInputSlider]) .t-clear\n 'tui-textfield [tuiInputSlider] ~ .t-content .t-clear {display: none !important}',\n // TODO: tui-textfield:has([tuiInputSlider]) [tuiSlider]:disabled\n 'tui-textfield [tuiInputSlider] ~ [tuiSlider]:disabled {display: none}',\n ],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'tui-input-slider',\n },\n})\nclass TuiInputSliderStyles {}\n","import {\n TuiSliderComponent,\n TuiSliderKeySteps,\n TuiSliderKeyStepsBase,\n} from '@taiga-ui/kit/components/slider';\n\nimport {TuiInputSliderDirective} from './input-slider.directive';\n\nexport const TuiInputSlider = [\n TuiSliderComponent,\n TuiSliderKeyStepsBase,\n TuiSliderKeySteps,\n TuiInputSliderDirective,\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@taiga-ui/kit",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.57.0",
|
|
4
4
|
"description": "Taiga UI Angular main components kit",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"angular",
|
|
@@ -155,12 +155,6 @@
|
|
|
155
155
|
"esm": "./esm2022/components/compass/taiga-ui-kit-components-compass.mjs",
|
|
156
156
|
"default": "./fesm2022/taiga-ui-kit-components-compass.mjs"
|
|
157
157
|
},
|
|
158
|
-
"./components/confirm": {
|
|
159
|
-
"types": "./components/confirm/index.d.ts",
|
|
160
|
-
"esm2022": "./esm2022/components/confirm/taiga-ui-kit-components-confirm.mjs",
|
|
161
|
-
"esm": "./esm2022/components/confirm/taiga-ui-kit-components-confirm.mjs",
|
|
162
|
-
"default": "./fesm2022/taiga-ui-kit-components-confirm.mjs"
|
|
163
|
-
},
|
|
164
158
|
"./components/data-list-wrapper": {
|
|
165
159
|
"types": "./components/data-list-wrapper/index.d.ts",
|
|
166
160
|
"esm2022": "./esm2022/components/data-list-wrapper/taiga-ui-kit-components-data-list-wrapper.mjs",
|
|
@@ -179,6 +173,12 @@
|
|
|
179
173
|
"esm": "./esm2022/components/elastic-container/taiga-ui-kit-components-elastic-container.mjs",
|
|
180
174
|
"default": "./fesm2022/taiga-ui-kit-components-elastic-container.mjs"
|
|
181
175
|
},
|
|
176
|
+
"./components/confirm": {
|
|
177
|
+
"types": "./components/confirm/index.d.ts",
|
|
178
|
+
"esm2022": "./esm2022/components/confirm/taiga-ui-kit-components-confirm.mjs",
|
|
179
|
+
"esm": "./esm2022/components/confirm/taiga-ui-kit-components-confirm.mjs",
|
|
180
|
+
"default": "./fesm2022/taiga-ui-kit-components-confirm.mjs"
|
|
181
|
+
},
|
|
182
182
|
"./components/files": {
|
|
183
183
|
"types": "./components/files/index.d.ts",
|
|
184
184
|
"esm2022": "./esm2022/components/files/taiga-ui-kit-components-files.mjs",
|
|
@@ -209,12 +209,6 @@
|
|
|
209
209
|
"esm": "./esm2022/components/input-color/taiga-ui-kit-components-input-color.mjs",
|
|
210
210
|
"default": "./fesm2022/taiga-ui-kit-components-input-color.mjs"
|
|
211
211
|
},
|
|
212
|
-
"./components/input-date": {
|
|
213
|
-
"types": "./components/input-date/index.d.ts",
|
|
214
|
-
"esm2022": "./esm2022/components/input-date/taiga-ui-kit-components-input-date.mjs",
|
|
215
|
-
"esm": "./esm2022/components/input-date/taiga-ui-kit-components-input-date.mjs",
|
|
216
|
-
"default": "./fesm2022/taiga-ui-kit-components-input-date.mjs"
|
|
217
|
-
},
|
|
218
212
|
"./components/input-date-multi": {
|
|
219
213
|
"types": "./components/input-date-multi/index.d.ts",
|
|
220
214
|
"esm2022": "./esm2022/components/input-date-multi/taiga-ui-kit-components-input-date-multi.mjs",
|
|
@@ -227,6 +221,12 @@
|
|
|
227
221
|
"esm": "./esm2022/components/input-date-range/taiga-ui-kit-components-input-date-range.mjs",
|
|
228
222
|
"default": "./fesm2022/taiga-ui-kit-components-input-date-range.mjs"
|
|
229
223
|
},
|
|
224
|
+
"./components/input-date": {
|
|
225
|
+
"types": "./components/input-date/index.d.ts",
|
|
226
|
+
"esm2022": "./esm2022/components/input-date/taiga-ui-kit-components-input-date.mjs",
|
|
227
|
+
"esm": "./esm2022/components/input-date/taiga-ui-kit-components-input-date.mjs",
|
|
228
|
+
"default": "./fesm2022/taiga-ui-kit-components-input-date.mjs"
|
|
229
|
+
},
|
|
230
230
|
"./components/input-date-time": {
|
|
231
231
|
"types": "./components/input-date-time/index.d.ts",
|
|
232
232
|
"esm2022": "./esm2022/components/input-date-time/taiga-ui-kit-components-input-date-time.mjs",
|
|
@@ -665,17 +665,17 @@
|
|
|
665
665
|
"@angular/core": ">=16.0.0",
|
|
666
666
|
"@angular/forms": ">=16.0.0",
|
|
667
667
|
"@angular/router": ">=16.0.0",
|
|
668
|
-
"@maskito/angular": "^3.
|
|
669
|
-
"@maskito/core": "^3.
|
|
670
|
-
"@maskito/kit": "^3.
|
|
671
|
-
"@maskito/phone": "^3.
|
|
668
|
+
"@maskito/angular": "^3.11.1",
|
|
669
|
+
"@maskito/core": "^3.11.1",
|
|
670
|
+
"@maskito/kit": "^3.11.1",
|
|
671
|
+
"@maskito/phone": "^3.11.1",
|
|
672
672
|
"@ng-web-apis/common": "^4.12.0",
|
|
673
673
|
"@ng-web-apis/intersection-observer": "^4.12.0",
|
|
674
674
|
"@ng-web-apis/mutation-observer": "^4.12.0",
|
|
675
675
|
"@ng-web-apis/resize-observer": "^4.12.0",
|
|
676
|
-
"@taiga-ui/cdk": "^4.
|
|
677
|
-
"@taiga-ui/core": "^4.
|
|
678
|
-
"@taiga-ui/i18n": "^4.
|
|
676
|
+
"@taiga-ui/cdk": "^4.57.0",
|
|
677
|
+
"@taiga-ui/core": "^4.57.0",
|
|
678
|
+
"@taiga-ui/i18n": "^4.57.0",
|
|
679
679
|
"@taiga-ui/polymorpheus": "^4.9.0",
|
|
680
680
|
"rxjs": ">=7.0.0"
|
|
681
681
|
},
|