@taiga-ui/kit 4.47.0 → 4.48.0-canary.0b5890f

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (73) hide show
  1. package/components/combo-box/combo-box.directive.d.ts +3 -2
  2. package/components/index.d.ts +1 -0
  3. package/components/input-chip/input-chip.directive.d.ts +6 -2
  4. package/components/input-date/input-date.component.d.ts +2 -1
  5. package/components/input-date/input-date.directive.d.ts +1 -0
  6. package/components/input-date-multi/input-date-multi.directive.d.ts +3 -3
  7. package/components/input-date-time/input-date-time.component.d.ts +2 -1
  8. package/components/input-month/input-month.component.d.ts +2 -1
  9. package/components/input-number/step/input-number-step.component.d.ts +5 -2
  10. package/components/input-phone/index.d.ts +2 -0
  11. package/components/input-phone/input-phone.directive.d.ts +27 -0
  12. package/components/input-phone/input-phone.options.d.ts +8 -0
  13. package/components/input-phone/utils/complete-phone-insertion-preprocessor.d.ts +9 -0
  14. package/components/input-phone/utils/create-phone-mask-expression.d.ts +7 -0
  15. package/components/input-time/input-time.component.d.ts +2 -1
  16. package/components/range/range.component.d.ts +5 -4
  17. package/directives/copy/copy.component.d.ts +15 -0
  18. package/directives/copy/copy.d.ts +3 -0
  19. package/directives/copy/copy.directive.d.ts +3 -3
  20. package/directives/copy/index.d.ts +2 -0
  21. package/esm2022/components/combo-box/combo-box.directive.mjs +10 -10
  22. package/esm2022/components/index.mjs +2 -1
  23. package/esm2022/components/input-chip/input-chip.directive.mjs +29 -17
  24. package/esm2022/components/input-date/input-date.component.mjs +5 -5
  25. package/esm2022/components/input-date/input-date.directive.mjs +10 -3
  26. package/esm2022/components/input-date-multi/input-date-multi.directive.mjs +7 -13
  27. package/esm2022/components/input-date-time/input-date-time.component.mjs +5 -4
  28. package/esm2022/components/input-month/input-month.component.mjs +5 -5
  29. package/esm2022/components/input-month/input-month.directive.mjs +3 -4
  30. package/esm2022/components/input-number/step/input-number-step.component.mjs +21 -20
  31. package/esm2022/components/input-phone/index.mjs +3 -0
  32. package/esm2022/components/input-phone/input-phone.directive.mjs +137 -0
  33. package/esm2022/components/input-phone/input-phone.options.mjs +9 -0
  34. package/esm2022/components/input-phone/taiga-ui-kit-components-input-phone.mjs +5 -0
  35. package/esm2022/components/input-phone/utils/complete-phone-insertion-preprocessor.mjs +41 -0
  36. package/esm2022/components/input-phone/utils/create-phone-mask-expression.mjs +17 -0
  37. package/esm2022/components/input-time/input-time.component.mjs +6 -6
  38. package/esm2022/components/input-time/input-time.directive.mjs +3 -4
  39. package/esm2022/components/range/range-change.directive.mjs +22 -20
  40. package/esm2022/components/range/range.component.mjs +22 -23
  41. package/esm2022/directives/copy/copy.component.mjs +48 -0
  42. package/esm2022/directives/copy/copy.directive.mjs +7 -7
  43. package/esm2022/directives/copy/copy.mjs +4 -0
  44. package/esm2022/directives/copy/copy.options.mjs +2 -4
  45. package/esm2022/directives/copy/index.mjs +4 -1
  46. package/esm2022/directives/fluid-typography/fluid-typography.options.mjs +2 -2
  47. package/fesm2022/taiga-ui-kit-components-combo-box.mjs +9 -9
  48. package/fesm2022/taiga-ui-kit-components-combo-box.mjs.map +1 -1
  49. package/fesm2022/taiga-ui-kit-components-input-chip.mjs +28 -17
  50. package/fesm2022/taiga-ui-kit-components-input-chip.mjs.map +1 -1
  51. package/fesm2022/taiga-ui-kit-components-input-date-multi.mjs +6 -12
  52. package/fesm2022/taiga-ui-kit-components-input-date-multi.mjs.map +1 -1
  53. package/fesm2022/taiga-ui-kit-components-input-date-time.mjs +3 -3
  54. package/fesm2022/taiga-ui-kit-components-input-date-time.mjs.map +1 -1
  55. package/fesm2022/taiga-ui-kit-components-input-date.mjs +11 -5
  56. package/fesm2022/taiga-ui-kit-components-input-date.mjs.map +1 -1
  57. package/fesm2022/taiga-ui-kit-components-input-month.mjs +4 -6
  58. package/fesm2022/taiga-ui-kit-components-input-month.mjs.map +1 -1
  59. package/fesm2022/taiga-ui-kit-components-input-number.mjs +20 -19
  60. package/fesm2022/taiga-ui-kit-components-input-number.mjs.map +1 -1
  61. package/fesm2022/taiga-ui-kit-components-input-phone.mjs +206 -0
  62. package/fesm2022/taiga-ui-kit-components-input-phone.mjs.map +1 -0
  63. package/fesm2022/taiga-ui-kit-components-input-time.mjs +5 -6
  64. package/fesm2022/taiga-ui-kit-components-input-time.mjs.map +1 -1
  65. package/fesm2022/taiga-ui-kit-components-range.mjs +42 -41
  66. package/fesm2022/taiga-ui-kit-components-range.mjs.map +1 -1
  67. package/fesm2022/taiga-ui-kit-components.mjs +1 -0
  68. package/fesm2022/taiga-ui-kit-components.mjs.map +1 -1
  69. package/fesm2022/taiga-ui-kit-directives-copy.mjs +57 -18
  70. package/fesm2022/taiga-ui-kit-directives-copy.mjs.map +1 -1
  71. package/fesm2022/taiga-ui-kit-directives-fluid-typography.mjs +1 -1
  72. package/fesm2022/taiga-ui-kit-directives-fluid-typography.mjs.map +1 -1
  73. package/package.json +20 -14
@@ -9,13 +9,14 @@ export declare class TuiComboBox<T> extends TuiControl<T | string | null> implem
9
9
  private readonly open;
10
10
  private readonly dropdownEnabled;
11
11
  private readonly dropdown;
12
- private readonly itemsHandlers;
12
+ private readonly handlers;
13
13
  private readonly matcher;
14
14
  private readonly strict;
15
15
  private readonly datalist;
16
16
  private readonly options;
17
- protected readonly nonStrictValueEffect: import("@angular/core").EffectRef;
17
+ protected readonly nonStrictControlEffect: import("@angular/core").EffectRef;
18
18
  protected readonly matchingEffect: import("@angular/core").EffectRef;
19
+ protected readonly newValueEffect: import("@angular/core").EffectRef;
19
20
  protected readonly blurEffect: import("@angular/core").EffectRef;
20
21
  set strictSetter(x: boolean);
21
22
  set matcherSetter(x: TuiStringMatcher<T> | null);
@@ -33,6 +33,7 @@ export * from '@taiga-ui/kit/components/input-month';
33
33
  export * from '@taiga-ui/kit/components/input-month-range';
34
34
  export * from '@taiga-ui/kit/components/input-number';
35
35
  export * from '@taiga-ui/kit/components/input-password';
36
+ export * from '@taiga-ui/kit/components/input-phone';
36
37
  export * from '@taiga-ui/kit/components/input-phone-international';
37
38
  export * from '@taiga-ui/kit/components/input-pin';
38
39
  export * from '@taiga-ui/kit/components/input-slider';
@@ -5,7 +5,7 @@ import type { TuiItemsHandlers } from '@taiga-ui/core/directives/items-handlers'
5
5
  import * as i0 from "@angular/core";
6
6
  import * as i1 from "@taiga-ui/cdk/directives/native-validator";
7
7
  import * as i2 from "@taiga-ui/core/components/textfield";
8
- export declare class TuiInputChipDirective<T> extends TuiControl<T[]> implements TuiTextfieldAccessor<T[]> {
8
+ export declare class TuiInputChipBaseDirective<T> extends TuiControl<T[]> implements TuiTextfieldAccessor<T[]> {
9
9
  private readonly options;
10
10
  private readonly mobile;
11
11
  private readonly dropdown;
@@ -23,6 +23,10 @@ export declare class TuiInputChipDirective<T> extends TuiControl<T[]> implements
23
23
  protected onPaste(event: ClipboardEvent | DragEvent): void;
24
24
  protected onBackspace(key: string): void;
25
25
  protected scrollTo(): void;
26
+ static ɵfac: i0.ɵɵFactoryDeclaration<TuiInputChipBaseDirective<any>, never>;
27
+ static ɵdir: i0.ɵɵDirectiveDeclaration<TuiInputChipBaseDirective<any>, never, never, { "separator": { "alias": "separator"; "required": false; }; "unique": { "alias": "unique"; "required": false; }; }, {}, never, never, true, never>;
28
+ }
29
+ export declare class TuiInputChipDirective<T> extends TuiInputChipBaseDirective<T> {
26
30
  static ɵfac: i0.ɵɵFactoryDeclaration<TuiInputChipDirective<any>, never>;
27
- static ɵdir: i0.ɵɵDirectiveDeclaration<TuiInputChipDirective<any>, "input[tuiInputChip]", never, { "separator": { "alias": "separator"; "required": false; }; "unique": { "alias": "unique"; "required": false; }; }, {}, never, never, true, [{ directive: typeof i1.TuiNativeValidator; inputs: {}; outputs: {}; }, { directive: typeof i2.TuiTextfieldBase; inputs: { "invalid": "invalid"; "focused": "focused"; "readOnly": "readOnly"; "state": "state"; }; outputs: {}; }]>;
31
+ static ɵdir: i0.ɵɵDirectiveDeclaration<TuiInputChipDirective<any>, "input[tuiInputChip]", never, {}, {}, never, never, true, [{ directive: typeof i1.TuiNativeValidator; inputs: {}; outputs: {}; }, { directive: typeof i2.TuiTextfieldBase; inputs: { "invalid": "invalid"; "focused": "focused"; "readOnly": "readOnly"; "state": "state"; }; outputs: {}; }]>;
28
32
  }
@@ -1,9 +1,10 @@
1
1
  import { TuiInputDateDirective } from './input-date.directive';
2
2
  import * as i0 from "@angular/core";
3
+ import * as i1 from "@taiga-ui/core/components/textfield";
3
4
  export declare class TuiInputDateComponent {
4
5
  protected readonly host: TuiInputDateDirective;
5
6
  list: string | null;
6
7
  protected onInput(value: string): void;
7
8
  static ɵfac: i0.ɵɵFactoryDeclaration<TuiInputDateComponent, never>;
8
- static ɵcmp: i0.ɵɵComponentDeclaration<TuiInputDateComponent, "input[tuiInputDate][type=\"date\"]", never, { "list": { "alias": "list"; "required": false; }; }, {}, never, never, true, never>;
9
+ static ɵcmp: i0.ɵɵComponentDeclaration<TuiInputDateComponent, "input[tuiInputDate][type=\"date\"]", never, { "list": { "alias": "list"; "required": false; }; }, {}, never, never, true, [{ directive: typeof i1.TuiWithNativePicker; inputs: {}; outputs: {}; }]>;
9
10
  }
@@ -34,6 +34,7 @@ export declare abstract class TuiInputDateBase<T extends TuiDay | TuiDayRange |
34
34
  protected abstract onValueChange(value: string): void;
35
35
  set minSetter(min: Exclude<T, TuiDayRange> | TuiDay | null);
36
36
  set maxSetter(max: Exclude<T, TuiDayRange> | TuiDay | null);
37
+ writeValue(value: T | null): void;
37
38
  setDate(value: TuiDay | TuiDayRange): void;
38
39
  protected processCalendar(calendar: TuiCalendar | TuiCalendarRange): void;
39
40
  protected onClick(): void;
@@ -1,14 +1,15 @@
1
1
  import { TuiDay } from '@taiga-ui/cdk/date-time';
2
2
  import { TuiCalendar } from '@taiga-ui/core/components/calendar';
3
- import { TuiInputChipDirective } from '@taiga-ui/kit/components/input-chip';
3
+ import { TuiInputChipBaseDirective } from '@taiga-ui/kit/components/input-chip';
4
4
  import * as i0 from "@angular/core";
5
5
  import * as i1 from "@taiga-ui/cdk/directives/native-validator";
6
6
  import * as i2 from "@taiga-ui/core/directives/dropdown";
7
7
  import * as i3 from "@maskito/angular";
8
8
  import * as i4 from "@taiga-ui/core/components/textfield";
9
- export declare class TuiInputDateMultiDirective extends TuiInputChipDirective<TuiDay> {
9
+ export declare class TuiInputDateMultiDirective extends TuiInputChipBaseDirective<TuiDay> {
10
10
  private readonly dateOptions;
11
11
  protected readonly icon: import("@angular/core").Signal<string>;
12
+ protected readonly filler: import("@angular/core").Signal<string>;
12
13
  protected readonly stringify: void;
13
14
  protected readonly mask: import("@angular/core").Signal<import("@maskito/core").MaskitoOptions | null>;
14
15
  protected readonly format: import("@angular/core").Signal<import("@taiga-ui/core/tokens").TuiDateFormatSettings>;
@@ -19,7 +20,6 @@ export declare class TuiInputDateMultiDirective extends TuiInputChipDirective<Tu
19
20
  readonly calendar: import("@angular/core").Signal<TuiCalendar | null>;
20
21
  set minSetter(min: TuiDay | null);
21
22
  set maxSetter(max: TuiDay | null);
22
- protected clear(): void;
23
23
  protected processCalendar(calendar: TuiCalendar): void;
24
24
  protected onClick(): void;
25
25
  protected onValueChange(value: string): void;
@@ -1,6 +1,7 @@
1
1
  import { TuiNativeTimePicker } from '@taiga-ui/kit/components/input-time';
2
2
  import { TuiInputDateTimeDirective } from './input-date-time.directive';
3
3
  import * as i0 from "@angular/core";
4
+ import * as i1 from "@taiga-ui/core/components/textfield";
4
5
  export declare class TuiInputDateTimeComponent extends TuiNativeTimePicker {
5
6
  protected readonly host: TuiInputDateTimeDirective;
6
7
  protected readonly step: import("@angular/core").Signal<number>;
@@ -9,5 +10,5 @@ export declare class TuiInputDateTimeComponent extends TuiNativeTimePicker {
9
10
  protected max: import("@angular/core").Signal<string>;
10
11
  protected onInput(value: string): void;
11
12
  static ɵfac: i0.ɵɵFactoryDeclaration<TuiInputDateTimeComponent, never>;
12
- static ɵcmp: i0.ɵɵComponentDeclaration<TuiInputDateTimeComponent, "input[tuiInputDateTime][type=\"datetime-local\"]", never, {}, {}, never, never, true, never>;
13
+ static ɵcmp: i0.ɵɵComponentDeclaration<TuiInputDateTimeComponent, "input[tuiInputDateTime][type=\"datetime-local\"]", never, {}, {}, never, never, true, [{ directive: typeof i1.TuiWithNativePicker; inputs: {}; outputs: {}; }]>;
13
14
  }
@@ -1,6 +1,7 @@
1
1
  import { TuiMonth } from '@taiga-ui/cdk/date-time';
2
2
  import { TuiInputMonthDirective } from './input-month.directive';
3
3
  import * as i0 from "@angular/core";
4
+ import * as i1 from "@taiga-ui/core/components/textfield";
4
5
  export declare class TuiInputMonthComponent {
5
6
  protected readonly host: TuiInputMonthDirective;
6
7
  protected readonly min: import("@angular/core").WritableSignal<TuiMonth | null>;
@@ -10,5 +11,5 @@ export declare class TuiInputMonthComponent {
10
11
  set maxSetter(x: TuiMonth | null);
11
12
  protected onInput(value: string): void;
12
13
  static ɵfac: i0.ɵɵFactoryDeclaration<TuiInputMonthComponent, never>;
13
- static ɵcmp: i0.ɵɵComponentDeclaration<TuiInputMonthComponent, "input[tuiInputMonth][type=\"month\"]", never, { "minSetter": { "alias": "min"; "required": false; }; "maxSetter": { "alias": "max"; "required": false; }; }, {}, never, never, true, never>;
14
+ static ɵcmp: i0.ɵɵComponentDeclaration<TuiInputMonthComponent, "input[tuiInputMonth][type=\"month\"]", never, { "minSetter": { "alias": "min"; "required": false; }; "maxSetter": { "alias": "max"; "required": false; }; }, {}, never, never, true, [{ directive: typeof i1.TuiWithNativePicker; inputs: {}; outputs: {}; }]>;
14
15
  }
@@ -1,15 +1,18 @@
1
+ import { Subject } from 'rxjs';
1
2
  import { TuiInputNumberDirective } from '../input-number.directive';
2
3
  import type { TuiInputNumberOptions } from '../input-number.options';
3
4
  import * as i0 from "@angular/core";
4
5
  export declare class TuiInputNumberStep {
5
- private readonly destroyRef;
6
- private readonly zone;
7
6
  protected readonly el: HTMLInputElement;
8
7
  protected readonly appearance: import("@angular/core").WritableSignal<string>;
9
8
  protected readonly options: TuiInputNumberOptions;
10
9
  protected readonly input: TuiInputNumberDirective;
11
10
  protected readonly step: import("@angular/core").WritableSignal<number>;
12
11
  protected readonly value: import("@angular/core").Signal<number>;
12
+ protected readonly step$: Subject<number>;
13
+ protected readonly doc: Document;
14
+ protected readonly stop$: import("rxjs").Observable<Event>;
15
+ protected readonly stepping: import("rxjs").Subscription;
13
16
  set stepSetter(x: number);
14
17
  protected onStep(step: number): void;
15
18
  static ɵfac: i0.ɵɵFactoryDeclaration<TuiInputNumberStep, never>;
@@ -0,0 +1,2 @@
1
+ export * from './input-phone.directive';
2
+ export * from './input-phone.options';
@@ -0,0 +1,27 @@
1
+ import type { MaskitoOptions } from '@maskito/core';
2
+ import { TuiControl } from '@taiga-ui/cdk/classes';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@taiga-ui/core/components/textfield";
5
+ import * as i2 from "@maskito/angular";
6
+ export declare class TuiInputPhone extends TuiControl<string | null> {
7
+ private readonly textfield;
8
+ private readonly host;
9
+ protected readonly nonRemovablePrefix: import("@angular/core").Signal<string>;
10
+ protected inputMode: import("@angular/core").Signal<"text" | "numeric">;
11
+ protected readonly valueEffect: import("@angular/core").EffectRef;
12
+ protected readonly blurEffect: import("@angular/core").EffectRef;
13
+ protected readonly options: import("./input-phone.options").TuiInputPhoneOptions;
14
+ protected readonly el: HTMLInputElement;
15
+ protected readonly mask: import("@angular/core").Signal<MaskitoOptions>;
16
+ protected readonly maskito: import("@angular/core").Signal<MaskitoOptions | null>;
17
+ readonly countryCode: import("@angular/core").WritableSignal<string>;
18
+ readonly allowText: import("@angular/core").WritableSignal<boolean>;
19
+ readonly phoneMask: import("@angular/core").WritableSignal<string>;
20
+ set allowTextSetter(allow: boolean);
21
+ set maskSetter(mask: string);
22
+ protected onInput(value: string): void;
23
+ private get maxPhoneLength();
24
+ private calculateMask;
25
+ static ɵfac: i0.ɵɵFactoryDeclaration<TuiInputPhone, never>;
26
+ static ɵdir: i0.ɵɵDirectiveDeclaration<TuiInputPhone, "input[tuiInputPhone]", never, { "allowTextSetter": { "alias": "allowText"; "required": false; }; "maskSetter": { "alias": "mask"; "required": false; }; }, {}, never, never, true, [{ directive: typeof i1.TuiWithTextfield; inputs: {}; outputs: {}; }, { directive: typeof i2.MaskitoDirective; inputs: {}; outputs: {}; }]>;
27
+ }
@@ -0,0 +1,8 @@
1
+ import type { TuiValueTransformer } from '@taiga-ui/cdk/classes';
2
+ export interface TuiInputPhoneOptions {
3
+ readonly allowText: boolean;
4
+ readonly mask: string;
5
+ readonly valueTransformer: TuiValueTransformer<string | null, any>;
6
+ }
7
+ export declare const TUI_INPUT_PHONE_DEFAULT_OPTIONS: TuiInputPhoneOptions;
8
+ export declare const TUI_INPUT_PHONE_OPTIONS: import("@angular/core").InjectionToken<TuiInputPhoneOptions>, tuiInputPhoneOptionsProvider: (item: Partial<TuiInputPhoneOptions> | import("@angular/core").ProviderToken<Partial<TuiInputPhoneOptions>>) => import("@angular/core").FactoryProvider;
@@ -0,0 +1,9 @@
1
+ import type { MaskitoPreprocessor } from '@maskito/core';
2
+ /**
3
+ * `InputPhone` component sets country code as non-removable prefix.
4
+ * This prefix appears on focus and cannot be erased.
5
+ * But users sometimes can copy complete phone number (from any different source)
6
+ * and try to insert the whole string inside our `InputPhone` textfield.
7
+ * This preprocessor helps to avoid country prefix duplication on paste/drop/autofill events.
8
+ */
9
+ export declare function tuiCreateCompletePhoneInsertionPreprocessor(countryCode: string, phoneMaskAfterCountryCode: string): MaskitoPreprocessor;
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Create {@link https://maskito.dev/core-concepts/mask-expression pattern mask expression} for phone number
3
+ *
4
+ * @example
5
+ * tuiCreatePhoneMaskExpression('+1', '(###) ###-####');
6
+ */
7
+ export declare function tuiCreatePhoneMaskExpression(countryCode: string, phoneMaskAfterCountryCode: string): Array<RegExp | string>;
@@ -4,6 +4,7 @@ import { TuiTime } from '@taiga-ui/cdk/date-time';
4
4
  import { TuiTextfieldDirective } from '@taiga-ui/core/components/textfield';
5
5
  import { TuiInputTimeDirective } from './input-time.directive';
6
6
  import * as i0 from "@angular/core";
7
+ import * as i1 from "@taiga-ui/core/components/textfield";
7
8
  export declare abstract class TuiNativeTimePicker {
8
9
  protected readonly list: string | null;
9
10
  protected getStep(timeMode: MaskitoTimeMode): number;
@@ -19,5 +20,5 @@ export declare class TuiInputTimeComponent extends TuiNativeTimePicker {
19
20
  protected readonly step: import("@angular/core").Signal<number>;
20
21
  protected setValue(value: string): void;
21
22
  static ɵfac: i0.ɵɵFactoryDeclaration<TuiInputTimeComponent, never>;
22
- static ɵcmp: i0.ɵɵComponentDeclaration<TuiInputTimeComponent, "input[tuiInputTime][type=\"time\"]", never, {}, {}, never, never, true, never>;
23
+ static ɵcmp: i0.ɵɵComponentDeclaration<TuiInputTimeComponent, "input[tuiInputTime][type=\"time\"]", never, {}, {}, never, never, true, [{ directive: typeof i1.TuiWithNativePicker; inputs: {}; outputs: {}; }]>;
23
24
  }
@@ -9,7 +9,7 @@ export declare class TuiRange extends TuiControl<[number, number]> implements On
9
9
  private readonly changes;
10
10
  private readonly el;
11
11
  protected readonly options: import("@taiga-ui/kit/components/slider").TuiSliderOptions;
12
- protected lastActiveThumb: 'left' | 'right';
12
+ protected lastActiveThumb: 'end' | 'start';
13
13
  min: number;
14
14
  max: number;
15
15
  step: number;
@@ -20,14 +20,15 @@ export declare class TuiRange extends TuiControl<[number, number]> implements On
20
20
  margin: number;
21
21
  limit: number;
22
22
  readonly slidersRefs: QueryList<ElementRef<HTMLInputElement>>;
23
- readonly left: import("@angular/core").Signal<number>;
24
- readonly right: import("@angular/core").Signal<number>;
23
+ readonly start: import("@angular/core").Signal<number>;
24
+ readonly end: import("@angular/core").Signal<number>;
25
25
  ngOnChanges(): void;
26
- processValue(value: number, right: boolean): void;
26
+ processValue(value: number, end: boolean): void;
27
27
  toValue(fraction: number): number;
28
28
  protected get fractionStep(): number;
29
29
  protected get computedKeySteps(): TuiKeySteps;
30
30
  protected get segmentWidthRatio(): number;
31
+ protected get rtl(): boolean;
31
32
  protected changeByStep(coefficient: number, target: HTMLElement): void;
32
33
  protected toPercent(value: number): number;
33
34
  private computePureKeySteps;
@@ -0,0 +1,15 @@
1
+ import type { TuiSizeL } from '@taiga-ui/core/types';
2
+ import { BehaviorSubject } from 'rxjs';
3
+ import * as i0 from "@angular/core";
4
+ export declare class TuiCopyComponent {
5
+ protected readonly notification: import("@taiga-ui/core/components/notification").TuiNotificationOptions;
6
+ protected readonly options: import("./copy.options").TuiCopyOptions;
7
+ protected readonly copied$: BehaviorSubject<boolean>;
8
+ protected readonly texts: import("@angular/core").Signal<readonly [copy: string, copied: string] | undefined>;
9
+ protected readonly hint: import("@angular/core").Signal<boolean | undefined>;
10
+ size: TuiSizeL;
11
+ protected get icon(): string;
12
+ protected get check(): string;
13
+ static ɵfac: i0.ɵɵFactoryDeclaration<TuiCopyComponent, never>;
14
+ static ɵcmp: i0.ɵɵComponentDeclaration<TuiCopyComponent, "tui-copy", never, { "size": { "alias": "size"; "required": false; }; }, {}, never, ["*"], true, never>;
15
+ }
@@ -0,0 +1,3 @@
1
+ import { TuiCopyComponent } from './copy.component';
2
+ import { TuiCopyDirective } from './copy.directive';
3
+ export declare const TuiCopy: readonly [typeof TuiCopyComponent, typeof TuiCopyDirective];
@@ -2,7 +2,7 @@ import { TuiTextfieldComponent } from '@taiga-ui/core/components/textfield';
2
2
  import * as i0 from "@angular/core";
3
3
  import * as i1 from "@taiga-ui/core/directives/appearance";
4
4
  import * as i2 from "@taiga-ui/core/directives/hint";
5
- export declare class TuiCopy {
5
+ export declare class TuiCopyDirective {
6
6
  private readonly options;
7
7
  private readonly copied$;
8
8
  private readonly doc;
@@ -12,6 +12,6 @@ export declare class TuiCopy {
12
12
  tuiCopy: string;
13
13
  protected get disabled(): boolean;
14
14
  protected copy(): void;
15
- static ɵfac: i0.ɵɵFactoryDeclaration<TuiCopy, never>;
16
- static ɵdir: i0.ɵɵDirectiveDeclaration<TuiCopy, "tui-icon[tuiCopy]", never, { "tuiCopy": { "alias": "tuiCopy"; "required": false; }; }, {}, never, never, true, [{ directive: typeof i1.TuiWithAppearance; inputs: {}; outputs: {}; }, { directive: typeof i2.TuiHintDirective; inputs: { "tuiHintAppearance": "tuiHintAppearance"; "tuiHintContext": "tuiHintContext"; }; outputs: {}; }]>;
15
+ static ɵfac: i0.ɵɵFactoryDeclaration<TuiCopyDirective, never>;
16
+ static ɵdir: i0.ɵɵDirectiveDeclaration<TuiCopyDirective, "tui-icon[tuiCopy]", never, { "tuiCopy": { "alias": "tuiCopy"; "required": false; }; }, {}, never, never, true, [{ directive: typeof i1.TuiWithAppearance; inputs: {}; outputs: {}; }, { directive: typeof i2.TuiHintDirective; inputs: { "tuiHintAppearance": "tuiHintAppearance"; "tuiHintContext": "tuiHintContext"; }; outputs: {}; }]>;
17
17
  }
@@ -1,2 +1,4 @@
1
+ export * from './copy';
2
+ export * from './copy.component';
1
3
  export * from './copy.directive';
2
4
  export * from './copy.options';
@@ -16,14 +16,14 @@ class TuiComboBox extends TuiControl {
16
16
  this.open = tuiDropdownOpen();
17
17
  this.dropdownEnabled = tuiDropdownEnabled(this.interactive);
18
18
  this.dropdown = inject(TuiDropdownDirective);
19
- this.itemsHandlers = inject(TUI_ITEMS_HANDLERS);
19
+ this.handlers = inject(TUI_ITEMS_HANDLERS);
20
20
  this.matcher = signal(TUI_STRICT_MATCHER);
21
21
  this.strict = signal(true);
22
22
  this.datalist = tuiInjectAuxiliary((x) => x !== this && 'options' in x && isSignal(x.options));
23
23
  this.options = computed(() => this.datalist()
24
24
  ?.options?.() // TODO(v5): remove optional call `?.()`
25
- .filter((x) => !this.itemsHandlers.disabledItemHandler()(x)) ?? []);
26
- this.nonStrictValueEffect = effect(() => {
25
+ .filter((x) => !this.handlers.disabledItemHandler()(x)) ?? []);
26
+ this.nonStrictControlEffect = effect(() => {
27
27
  if (!this.options().length &&
28
28
  !this.strict() &&
29
29
  this.stringify(this.value()) !== this.textfield.value()) {
@@ -37,10 +37,9 @@ class TuiComboBox extends TuiControl {
37
37
  return;
38
38
  }
39
39
  const textfieldValue = this.textfield.value();
40
- const selectedOption = options.find((x) => matcher(x, textfieldValue, this.itemsHandlers.stringify()));
40
+ const selectedOption = options.find((x) => matcher(x, textfieldValue, this.handlers.stringify()));
41
41
  const value = untracked(() => this.value());
42
42
  const unchanged = this.stringify(value) === textfieldValue;
43
- const stringified = this.stringify(selectedOption);
44
43
  const fallback = this.strict() || !textfieldValue ? null : textfieldValue;
45
44
  this.onChange(selectedOption ??
46
45
  /**
@@ -50,9 +49,10 @@ class TuiComboBox extends TuiControl {
50
49
  * Users can still able to patch form value with `null` on new items if they wish the such behavior.
51
50
  */
52
51
  (unchanged ? value : fallback));
53
- if (stringified && stringified !== textfieldValue) {
54
- this.textfield.value.set(stringified);
55
- }
52
+ }, TUI_ALLOW_SIGNAL_WRITES);
53
+ this.newValueEffect = effect(() => {
54
+ const stringified = this.stringify(this.value());
55
+ this.textfield.value.update((x) => stringified || x);
56
56
  }, TUI_ALLOW_SIGNAL_WRITES);
57
57
  this.blurEffect = effect(() => {
58
58
  const incomplete = untracked(() => this.strict() && this.value() === null);
@@ -97,7 +97,7 @@ class TuiComboBox extends TuiControl {
97
97
  }
98
98
  }
99
99
  stringify(value) {
100
- return value != null ? this.itemsHandlers.stringify()(value) : '';
100
+ return value != null ? this.handlers.stringify()(value) : '';
101
101
  }
102
102
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiComboBox, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
103
103
  static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: TuiComboBox, isStandalone: true, selector: "input[tuiComboBox]", inputs: { strictSetter: ["strict", "strictSetter"], matcherSetter: ["matcher", "matcherSetter"] }, host: { listeners: { "click": "toggleDropdown()", "input": "toggleDropdown(true)", "keydown.enter": "keydownEnter($event)" }, properties: { "disabled": "disabled()" } }, providers: [
@@ -132,4 +132,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
132
132
  type: Input,
133
133
  args: ['matcher']
134
134
  }] } });
135
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tYm8tYm94LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tpdC9jb21wb25lbnRzL2NvbWJvLWJveC9jb21iby1ib3guZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxRQUFRLEVBQ1IsU0FBUyxFQUNULE1BQU0sRUFDTixNQUFNLEVBQ04sS0FBSyxFQUNMLFFBQVEsRUFDUixNQUFNLEVBQ04sU0FBUyxHQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxZQUFZLEVBQUUsVUFBVSxFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFDL0QsT0FBTyxFQUFDLHVCQUF1QixFQUFFLGtCQUFrQixFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFHcEYsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0scUNBQXFDLENBQUM7QUFFdkUsT0FBTyxFQUNILHNCQUFzQixFQUN0QixrQkFBa0IsRUFDbEIscUJBQXFCLEVBQ3JCLHFCQUFxQixFQUNyQixnQkFBZ0IsR0FDbkIsTUFBTSxxQ0FBcUMsQ0FBQztBQUM3QyxPQUFPLEVBQ0gsb0JBQW9CLEVBQ3BCLGtCQUFrQixFQUNsQixlQUFlLEdBQ2xCLE1BQU0sb0NBQW9DLENBQUM7QUFFNUMsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sMENBQTBDLENBQUM7QUFDNUUsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLGlDQUFpQyxDQUFDOzs7QUFFaEUsTUFnQmEsV0FDVCxTQUFRLFVBQTZCO0lBakJ6Qzs7UUFvQnFCLFNBQUksR0FBNkIsTUFBTSxDQUFDLHFCQUFxQixDQUFDLENBQUM7UUFDL0QsY0FBUyxHQUE2QixNQUFNLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUNwRSxTQUFJLEdBQUcsZUFBZSxFQUFFLENBQUM7UUFDekIsb0JBQWUsR0FBRyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENB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QUNuQyxZQUFZLGFBQWE7cUJBQzVCO29CQUNELGNBQWMsRUFBRSxDQUFDLGdCQUFnQixDQUFDO29CQUNsQyxJQUFJLEVBQUU7d0JBQ0YsWUFBWSxFQUFFLFlBQVk7d0JBQzFCLFNBQVMsRUFBRSxrQkFBa0I7d0JBQzdCLFNBQVMsRUFBRSxzQkFBc0I7d0JBQ2pDLGlCQUFpQixFQUFFLHNCQUFzQjtxQkFDNUM7aUJBQ0o7OEJBK0VjLFlBQVk7c0JBRHRCLEtBQUs7dUJBQUMsUUFBUTtnQkFPSixhQUFhO3NCQUR2QixLQUFLO3VCQUFDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIGNvbXB1dGVkLFxuICAgIERpcmVjdGl2ZSxcbiAgICBlZmZlY3QsXG4gICAgaW5qZWN0LFxuICAgIElucHV0LFxuICAgIGlzU2lnbmFsLFxuICAgIHNpZ25hbCxcbiAgICB1bnRyYWNrZWQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHt0dWlBc0NvbnRyb2wsIFR1aUNvbnRyb2x9IGZyb20gJ0B0YWlnYS11aS9jZGsvY2xhc3Nlcyc7XG5pbXBvcnQge1RVSV9BTExPV19TSUdOQUxfV1JJVEVTLCBUVUlfU1RSSUNUX01BVENIRVJ9IGZyb20gJ0B0YWlnYS11aS9jZGsvY29uc3RhbnRzJztcbmltcG9ydCB0eXBlIHtUdWlTdHJpbmdNYXRjaGVyfSBmcm9tICdAdGFpZ2EtdWkvY2RrL3R5cGVzJztcbmltcG9ydCB0eXBlIHtUdWlEYXRhTGlzdEFjY2Vzc29yfSBmcm9tICdAdGFpZ2EtdWkvY29yZS9jb21wb25lbnRzL2RhdGEtbGlzdCc7XG5pbXBvcnQge3R1aUFzT3B0aW9uQ29udGVudH0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvY29tcG9uZW50cy9kYXRhLWxpc3QnO1xuaW1wb3J0IHR5cGUge1R1aVRleHRmaWVsZEFjY2Vzc29yfSBmcm9tICdAdGFpZ2EtdWkvY29yZS9jb21wb25lbnRzL3RleHRmaWVsZCc7XG5pbXBvcnQge1xuICAgIHR1aUFzVGV4dGZpZWxkQWNjZXNzb3IsXG4gICAgdHVpSW5qZWN0QXV4aWxpYXJ5LFxuICAgIFR1aVRleHRmaWVsZENvbXBvbmVudCxcbiAgICBUdWlUZXh0ZmllbGREaXJlY3RpdmUsXG4gICAgVHVpV2l0aFRleHRmaWVsZCxcbn0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvY29tcG9uZW50cy90ZXh0ZmllbGQnO1xuaW1wb3J0IHtcbiAgICBUdWlEcm9wZG93bkRpcmVjdGl2ZSxcbiAgICB0dWlEcm9wZG93bkVuYWJsZWQsXG4gICAgdHVpRHJvcGRvd25PcGVuLFxufSBmcm9tICdAdGFpZ2EtdWkvY29yZS9kaXJlY3RpdmVzL2Ryb3Bkb3duJztcbmltcG9ydCB0eXBlIHtUdWlJdGVtc0hhbmRsZXJzfSBmcm9tICdAdGFpZ2EtdWkvY29yZS9kaXJlY3RpdmVzL2l0ZW1zLWhhbmRsZXJzJztcbmltcG9ydCB7VFVJX0lURU1TX0hBTkRMRVJTfSBmcm9tICdAdGFpZ2EtdWkvY29yZS9kaXJlY3RpdmVzL2l0ZW1zLWhhbmRsZXJzJztcbmltcG9ydCB7VHVpU2VsZWN0T3B0aW9ufSBmcm9tICdAdGFpZ2EtdWkva2l0L2NvbXBvbmVudHMvc2VsZWN0JztcblxuQERpcmVjdGl2ZSh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBzZWxlY3RvcjogJ2lucHV0W3R1aUNvbWJvQm94XScsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHR1aUFzT3B0aW9uQ29udGVudChUdWlTZWxlY3RPcHRpb24pLFxuICAgICAgICB0dWlBc1RleHRmaWVsZEFjY2Vzc29yKFR1aUNvbWJvQm94KSxcbiAgICAgICAgdHVpQXNDb250cm9sKFR1aUNvbWJvQm94KSxcbiAgICBdLFxuICAgIGhvc3REaXJlY3RpdmVzOiBbVHVpV2l0aFRleHRmaWVsZF0sXG4gICAgaG9zdDoge1xuICAgICAgICAnW2Rpc2FibGVkXSc6ICdkaXNhYmxlZCgpJyxcbiAgICAgICAgJyhjbGljayknOiAndG9nZ2xlRHJvcGRvd24oKScsXG4gICAgICAgICcoaW5wdXQpJzogJ3RvZ2dsZURyb3Bkb3duKHRydWUpJyxcbiAgICAgICAgJyhrZXlkb3duLmVudGVyKSc6ICdrZXlkb3duRW50ZXIoJGV2ZW50KScsXG4gICAgfSxcbn0pXG5leHBvcnQgY2xhc3MgVHVpQ29tYm9Cb3g8VD5cbiAgICBleHRlbmRzIFR1aUNvbnRyb2w8VCB8IHN0cmluZyB8IG51bGw+XG4gICAgaW1wbGVtZW50cyBUdWlUZXh0ZmllbGRBY2Nlc3NvcjxUPlxue1xuICAgIHByaXZhdGUgcmVhZG9ubHkgaG9zdDogVHVpVGV4dGZpZWxkQ29tcG9uZW50PFQ+ID0gaW5qZWN0KFR1aVRleHRmaWVsZENvbXBvbmVudCk7XG4gICAgcHJpdmF0ZSByZWFkb25seSB0ZXh0ZmllbGQ6IFR1aVRleHRmaWVsZERpcmVjdGl2ZTxUPiA9IGluamVjdChUdWlUZXh0ZmllbGREaXJlY3RpdmUpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgb3BlbiA9IHR1aURyb3Bkb3duT3BlbigpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZHJvcGRvd25FbmFibGVkID0gdHVpRHJvcGRvd25FbmFibGVkKHRoaXMuaW50ZXJhY3RpdmUpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZHJvcGRvd24gPSBpbmplY3QoVHVpRHJvcGRvd25EaXJlY3RpdmUpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgaXRlbXNIYW5kbGVyczogVHVpSXRlbXNIYW5kbGVyczxUIHwgc3RyaW5nPiA9XG4gICAgICAgIGluamVjdChUVUlfSVRFTVNfSEFORExFUlMpO1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBtYXRjaGVyID0gc2lnbmFsPFR1aVN0cmluZ01hdGNoZXI8VD4gfCBudWxsPihUVUlfU1RSSUNUX01BVENIRVIpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgc3RyaWN0ID0gc2lnbmFsKHRydWUpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZGF0YWxpc3QgPSB0dWlJbmplY3RBdXhpbGlhcnk8VHVpRGF0YUxpc3RBY2Nlc3NvcjxUPj4oXG4gICAgICAgICh4KSA9PiB4ICE9PSB0aGlzICYmICdvcHRpb25zJyBpbiB4ICYmIGlzU2lnbmFsKHgub3B0aW9ucyksXG4gICAgKTtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgb3B0aW9ucyA9IGNvbXB1dGVkKFxuICAgICAgICAoKSA9PlxuICAgICAgICAgICAgdGhpcy5kYXRhbGlzdCgpXG4gICAgICAgICAgICAgICAgPy5vcHRpb25zPy4oKSAvLyBUT0RPKHY1KTogcmVtb3ZlIG9wdGlvbmFsIGNhbGwgYD8uKClgXG4gICAgICAgICAgICAgICAgLmZpbHRlcigoeCkgPT4gIXRoaXMuaXRlbXNIYW5kbGVycy5kaXNhYmxlZEl0ZW1IYW5kbGVyKCkoeCkpID8/IFtdLFxuICAgICk7XG5cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgbm9uU3RyaWN0VmFsdWVFZmZlY3QgPSBlZmZlY3QoKCkgPT4ge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgICAhdGhpcy5vcHRpb25zKCkubGVuZ3RoICYmXG4gICAgICAgICAgICAhdGhpcy5zdHJpY3QoKSAmJlxuICAgICAgICAgICAgdGhpcy5zdHJpbmdpZnkodGhpcy52YWx1ZSgpKSAhPT0gdGhpcy50ZXh0ZmllbGQudmFsdWUoKVxuICAgICAgICApIHtcbiAgICAgICAgICAgIHRoaXMub25DaGFuZ2UodGhpcy50ZXh0ZmllbGQudmFsdWUoKSB8fCBudWxsKTtcbiAgICAgICAgfVxuICAgIH0sIFRVSV9BTExPV19TSUdOQUxfV1JJVEVTKTtcblxuICAgIHByb3RlY3RlZCByZWFkb25seSBtYXRjaGluZ0VmZmVjdCA9IGVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IG9wdGlvbnMgPSB0aGlzLm9wdGlvbnMoKTtcbiAgICAgICAgY29uc3QgbWF0Y2hlciA9IHRoaXMubWF0Y2hlcigpO1xuXG4gICAgICAgIGlmICghb3B0aW9ucy5sZW5ndGggfHwgIW1hdGNoZXIpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHRleHRmaWVsZFZhbHVlID0gdGhpcy50ZXh0ZmllbGQudmFsdWUoKTtcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWRPcHRpb24gPSBvcHRpb25zLmZpbmQoKHgpID0+XG4gICAgICAgICAgICBtYXRjaGVyKHgsIHRleHRmaWVsZFZhbHVlLCB0aGlzLml0ZW1zSGFuZGxlcnMuc3RyaW5naWZ5KCkpLFxuICAgICAgICApO1xuICAgICAgICBjb25zdCB2YWx1ZSA9IHVudHJhY2tlZCgoKSA9PiB0aGlzLnZhbHVlKCkpO1xuICAgICAgICBjb25zdCB1bmNoYW5nZWQgPSB0aGlzLnN0cmluZ2lmeSh2YWx1ZSkgPT09IHRleHRmaWVsZFZhbHVlO1xuICAgICAgICBjb25zdCBzdHJpbmdpZmllZCA9IHRoaXMuc3RyaW5naWZ5KHNlbGVjdGVkT3B0aW9uKTtcbiAgICAgICAgY29uc3QgZmFsbGJhY2sgPSB0aGlzLnN0cmljdCgpIHx8ICF0ZXh0ZmllbGRWYWx1ZSA/IG51bGwgOiB0ZXh0ZmllbGRWYWx1ZTtcblxuICAgICAgICB0aGlzLm9uQ2hhbmdlKFxuICAgICAgICAgICAgc2VsZWN0ZWRPcHRpb24gPz9cbiAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgKiBEb24ndCBjbGVhciBhbHJlYWR5IG5vdC1udWxsIGZvcm0gY29udHJvbCB2YWx1ZSBvbiBuZXcgYHRoaXMub3B0aW9ucygpYCBhcnJheS5cbiAgICAgICAgICAgICAgICAgKiBPdGhlcndpc2UsIGBDb21ib0JveGAgYmVjb21lcyBpbmNvbXBhdGlibGUgd2l0aCB2aXJ0dWFsIHNjcm9sbFxuICAgICAgICAgICAgICAgICAqICh3aGljaCBkaXNwbGF5cyBsYXJnZSBsaXN0cyBvZiBlbGVtZW50cyBieSBvbmx5IHJlbmRlcmluZyB0aGUgaXRlbXMgdGhhdCBmaXQgb24tc2NyZWVuKS5cbiAgICAgICAgICAgICAgICAgKiBVc2VycyBjYW4gc3RpbGwgYWJsZSB0byBwYXRjaCBmb3JtIHZhbHVlIHdpdGggYG51bGxgIG9uIG5ldyBpdGVtcyBpZiB0aGV5IHdpc2ggdGhlIHN1Y2ggYmVoYXZpb3IuXG4gICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgKHVuY2hhbmdlZCA/IHZhbHVlIDogZmFsbGJhY2spLFxuICAgICAgICApO1xuXG4gICAgICAgIGlmIChzdHJpbmdpZmllZCAmJiBzdHJpbmdpZmllZCAhPT0gdGV4dGZpZWxkVmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMudGV4dGZpZWxkLnZhbHVlLnNldChzdHJpbmdpZmllZCk7XG4gICAgICAgIH1cbiAgICB9LCBUVUlfQUxMT1dfU0lHTkFMX1dSSVRFUyk7XG5cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgYmx1ckVmZmVjdCA9IGVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IGluY29tcGxldGUgPSB1bnRyYWNrZWQoKCkgPT4gdGhpcy5zdHJpY3QoKSAmJiB0aGlzLnZhbHVlKCkgPT09IG51bGwpO1xuXG4gICAgICAgIGlmICghdGhpcy5ob3N0LmZvY3VzZWQoKSAmJiBpbmNvbXBsZXRlKSB7XG4gICAgICAgICAgICB0aGlzLnRleHRmaWVsZC52YWx1ZS5zZXQoJycpO1xuICAgICAgICB9XG4gICAgfSwgVFVJX0FMTE9XX1NJR05BTF9XUklURVMpO1xuXG4gICAgLy8gVE9ETyh2NSk6IHVzZSBzaWduYWwgaW5wdXRcbiAgICBASW5wdXQoJ3N0cmljdCcpXG4gICAgcHVibGljIHNldCBzdHJpY3RTZXR0ZXIoeDogYm9vbGVhbikge1xuICAgICAgICB0aGlzLnN0cmljdC5zZXQoeCk7XG4gICAgfVxuXG4gICAgLy8gVE9ETyh2NSk6IHVzZSBzaWduYWwgaW5wdXRcbiAgICBASW5wdXQoJ21hdGNoZXInKVxuICAgIHB1YmxpYyBzZXQgbWF0Y2hlclNldHRlcih4OiBUdWlTdHJpbmdNYXRjaGVyPFQ+IHwgbnVsbCkge1xuICAgICAgICB0aGlzLm1hdGNoZXIuc2V0KHgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXRWYWx1ZSh2YWx1ZTogVCB8IG51bGwpOiB2b2lkIHtcbiAgICAgICAgdGhpcy50ZXh0ZmllbGQuc2V0VmFsdWUodmFsdWUpO1xuICAgICAgICB0aGlzLm9uQ2hhbmdlKHZhbHVlKTtcblxuICAgICAgICBpZiAoIXZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLnRvZ2dsZURyb3Bkb3duKHRydWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIG92ZXJyaWRlIHdyaXRlVmFsdWUodmFsdWU6IFQgfCBzdHJpbmcgfCBudWxsKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLndyaXRlVmFsdWUodmFsdWUpO1xuICAgICAgICB0aGlzLnRleHRmaWVsZC52YWx1ZS5zZXQodGhpcy5zdHJpbmdpZnkodmFsdWUpKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgdG9nZ2xlRHJvcGRvd24ob3BlbiA9ICF0aGlzLm9wZW4oKSk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5kcm9wZG93bkVuYWJsZWQoKSAmJiB0aGlzLmRyb3Bkb3duLl9jb250ZW50KCkpIHtcbiAgICAgICAgICAgIHRoaXMub3Blbi5zZXQob3Blbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQga2V5ZG93bkVudGVyKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5vcGVuKCkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMub3B0aW9ucygpO1xuXG4gICAgICAgIGlmIChvcHRpb25zLmxlbmd0aCA9PT0gMSAmJiBvcHRpb25zWzBdKSB7XG4gICAgICAgICAgICB0aGlzLnNldFZhbHVlKG9wdGlvbnNbMF0pO1xuICAgICAgICAgICAgdGhpcy50b2dnbGVEcm9wZG93bihmYWxzZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHN0cmluZ2lmeSh2YWx1ZT86IFQgfCBzdHJpbmcgfCBudWxsKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlICE9IG51bGwgPyB0aGlzLml0ZW1zSGFuZGxlcnMuc3RyaW5naWZ5KCkodmFsdWUpIDogJyc7XG4gICAgfVxufVxuIl19
135
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tYm8tYm94LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tpdC9jb21wb25lbnRzL2NvbWJvLWJveC9jb21iby1ib3guZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxRQUFRLEVBQ1IsU0FBUyxFQUNULE1BQU0sRUFDTixNQUFNLEVBQ04sS0FBSyxFQUNMLFFBQVEsRUFDUixNQUFNLEVBQ04sU0FBUyxHQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxZQUFZLEVBQUUsVUFBVSxFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFDL0QsT0FBTyxFQUFDLHVCQUF1QixFQUFFLGtCQUFrQixFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFHcEYsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0scUNBQXFDLENBQUM7QUFFdkUsT0FBTyxFQUNILHNCQUFzQixFQUN0QixrQkFBa0IsRUFDbEIscUJBQXFCLEVBQ3JCLHFCQUFxQixFQUNyQixnQkFBZ0IsR0FDbkIsTUFBTSxxQ0FBcUMsQ0FBQztBQUM3QyxPQUFPLEVBQ0gsb0JBQW9CLEVBQ3BCLGtCQUFrQixFQUNsQixlQUFlLEdBQ2xCLE1BQU0sb0NBQW9DLENBQUM7QUFFNUMsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sMENBQTBDLENBQUM7QUFDNUUsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLGlDQUFpQyxDQUFDOzs7QUFFaEUsTUFnQmEsV0FDVCxTQUFRLFVBQTZCO0lBakJ6Qzs7UUFvQnFCLFNBQUksR0FBNkIsTUFBTSxDQUFDLHFCQUFxQixDQUFDLENBQUM7UUFDL0QsY0FBUyxHQUE2QixNQUFNLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUNwRSxTQUFJLEdBQUcsZUFBZSxFQUFFLENBQUM7UUFDekIsb0JBQWUsR0FBRyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENB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QkFBb0I7b0JBQzlCLFNBQVMsRUFBRTt3QkFDUCxrQkFBa0IsQ0FBQyxlQUFlLENBQUM7d0JBQ25DLHNCQUFzQixhQUFhO3dCQUNuQyxZQUFZLGFBQWE7cUJBQzVCO29CQUNELGNBQWMsRUFBRSxDQUFDLGdCQUFnQixDQUFDO29CQUNsQyxJQUFJLEVBQUU7d0JBQ0YsWUFBWSxFQUFFLFlBQVk7d0JBQzFCLFNBQVMsRUFBRSxrQkFBa0I7d0JBQzdCLFNBQVMsRUFBRSxzQkFBc0I7d0JBQ2pDLGlCQUFpQixFQUFFLHNCQUFzQjtxQkFDNUM7aUJBQ0o7OEJBK0VjLFlBQVk7c0JBRHRCLEtBQUs7dUJBQUMsUUFBUTtnQkFPSixhQUFhO3NCQUR2QixLQUFLO3VCQUFDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIGNvbXB1dGVkLFxuICAgIERpcmVjdGl2ZSxcbiAgICBlZmZlY3QsXG4gICAgaW5qZWN0LFxuICAgIElucHV0LFxuICAgIGlzU2lnbmFsLFxuICAgIHNpZ25hbCxcbiAgICB1bnRyYWNrZWQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHt0dWlBc0NvbnRyb2wsIFR1aUNvbnRyb2x9IGZyb20gJ0B0YWlnYS11aS9jZGsvY2xhc3Nlcyc7XG5pbXBvcnQge1RVSV9BTExPV19TSUdOQUxfV1JJVEVTLCBUVUlfU1RSSUNUX01BVENIRVJ9IGZyb20gJ0B0YWlnYS11aS9jZGsvY29uc3RhbnRzJztcbmltcG9ydCB0eXBlIHtUdWlTdHJpbmdNYXRjaGVyfSBmcm9tICdAdGFpZ2EtdWkvY2RrL3R5cGVzJztcbmltcG9ydCB0eXBlIHtUdWlEYXRhTGlzdEFjY2Vzc29yfSBmcm9tICdAdGFpZ2EtdWkvY29yZS9jb21wb25lbnRzL2RhdGEtbGlzdCc7XG5pbXBvcnQge3R1aUFzT3B0aW9uQ29udGVudH0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvY29tcG9uZW50cy9kYXRhLWxpc3QnO1xuaW1wb3J0IHR5cGUge1R1aVRleHRmaWVsZEFjY2Vzc29yfSBmcm9tICdAdGFpZ2EtdWkvY29yZS9jb21wb25lbnRzL3RleHRmaWVsZCc7XG5pbXBvcnQge1xuICAgIHR1aUFzVGV4dGZpZWxkQWNjZXNzb3IsXG4gICAgdHVpSW5qZWN0QXV4aWxpYXJ5LFxuICAgIFR1aVRleHRmaWVsZENvbXBvbmVudCxcbiAgICBUdWlUZXh0ZmllbGREaXJlY3RpdmUsXG4gICAgVHVpV2l0aFRleHRmaWVsZCxcbn0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvY29tcG9uZW50cy90ZXh0ZmllbGQnO1xuaW1wb3J0IHtcbiAgICBUdWlEcm9wZG93bkRpcmVjdGl2ZSxcbiAgICB0dWlEcm9wZG93bkVuYWJsZWQsXG4gICAgdHVpRHJvcGRvd25PcGVuLFxufSBmcm9tICdAdGFpZ2EtdWkvY29yZS9kaXJlY3RpdmVzL2Ryb3Bkb3duJztcbmltcG9ydCB0eXBlIHtUdWlJdGVtc0hhbmRsZXJzfSBmcm9tICdAdGFpZ2EtdWkvY29yZS9kaXJlY3RpdmVzL2l0ZW1zLWhhbmRsZXJzJztcbmltcG9ydCB7VFVJX0lURU1TX0hBTkRMRVJTfSBmcm9tICdAdGFpZ2EtdWkvY29yZS9kaXJlY3RpdmVzL2l0ZW1zLWhhbmRsZXJzJztcbmltcG9ydCB7VHVpU2VsZWN0T3B0aW9ufSBmcm9tICdAdGFpZ2EtdWkva2l0L2NvbXBvbmVudHMvc2VsZWN0JztcblxuQERpcmVjdGl2ZSh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBzZWxlY3RvcjogJ2lucHV0W3R1aUNvbWJvQm94XScsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHR1aUFzT3B0aW9uQ29udGVudChUdWlTZWxlY3RPcHRpb24pLFxuICAgICAgICB0dWlBc1RleHRmaWVsZEFjY2Vzc29yKFR1aUNvbWJvQm94KSxcbiAgICAgICAgdHVpQXNDb250cm9sKFR1aUNvbWJvQm94KSxcbiAgICBdLFxuICAgIGhvc3REaXJlY3RpdmVzOiBbVHVpV2l0aFRleHRmaWVsZF0sXG4gICAgaG9zdDoge1xuICAgICAgICAnW2Rpc2FibGVkXSc6ICdkaXNhYmxlZCgpJyxcbiAgICAgICAgJyhjbGljayknOiAndG9nZ2xlRHJvcGRvd24oKScsXG4gICAgICAgICcoaW5wdXQpJzogJ3RvZ2dsZURyb3Bkb3duKHRydWUpJyxcbiAgICAgICAgJyhrZXlkb3duLmVudGVyKSc6ICdrZXlkb3duRW50ZXIoJGV2ZW50KScsXG4gICAgfSxcbn0pXG5leHBvcnQgY2xhc3MgVHVpQ29tYm9Cb3g8VD5cbiAgICBleHRlbmRzIFR1aUNvbnRyb2w8VCB8IHN0cmluZyB8IG51bGw+XG4gICAgaW1wbGVtZW50cyBUdWlUZXh0ZmllbGRBY2Nlc3NvcjxUPlxue1xuICAgIHByaXZhdGUgcmVhZG9ubHkgaG9zdDogVHVpVGV4dGZpZWxkQ29tcG9uZW50PFQ+ID0gaW5qZWN0KFR1aVRleHRmaWVsZENvbXBvbmVudCk7XG4gICAgcHJpdmF0ZSByZWFkb25seSB0ZXh0ZmllbGQ6IFR1aVRleHRmaWVsZERpcmVjdGl2ZTxUPiA9IGluamVjdChUdWlUZXh0ZmllbGREaXJlY3RpdmUpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgb3BlbiA9IHR1aURyb3Bkb3duT3BlbigpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZHJvcGRvd25FbmFibGVkID0gdHVpRHJvcGRvd25FbmFibGVkKHRoaXMuaW50ZXJhY3RpdmUpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZHJvcGRvd24gPSBpbmplY3QoVHVpRHJvcGRvd25EaXJlY3RpdmUpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgaGFuZGxlcnM6IFR1aUl0ZW1zSGFuZGxlcnM8VCB8IHN0cmluZz4gPSBpbmplY3QoVFVJX0lURU1TX0hBTkRMRVJTKTtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgbWF0Y2hlciA9IHNpZ25hbDxUdWlTdHJpbmdNYXRjaGVyPFQ+IHwgbnVsbD4oVFVJX1NUUklDVF9NQVRDSEVSKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHN0cmljdCA9IHNpZ25hbCh0cnVlKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRhdGFsaXN0ID0gdHVpSW5qZWN0QXV4aWxpYXJ5PFR1aURhdGFMaXN0QWNjZXNzb3I8VD4+KFxuICAgICAgICAoeCkgPT4geCAhPT0gdGhpcyAmJiAnb3B0aW9ucycgaW4geCAmJiBpc1NpZ25hbCh4Lm9wdGlvbnMpLFxuICAgICk7XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IG9wdGlvbnMgPSBjb21wdXRlZChcbiAgICAgICAgKCkgPT5cbiAgICAgICAgICAgIHRoaXMuZGF0YWxpc3QoKVxuICAgICAgICAgICAgICAgID8ub3B0aW9ucz8uKCkgLy8gVE9ETyh2NSk6IHJlbW92ZSBvcHRpb25hbCBjYWxsIGA/LigpYFxuICAgICAgICAgICAgICAgIC5maWx0ZXIoKHgpID0+ICF0aGlzLmhhbmRsZXJzLmRpc2FibGVkSXRlbUhhbmRsZXIoKSh4KSkgPz8gW10sXG4gICAgKTtcblxuICAgIHByb3RlY3RlZCByZWFkb25seSBub25TdHJpY3RDb250cm9sRWZmZWN0ID0gZWZmZWN0KCgpID0+IHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgIXRoaXMub3B0aW9ucygpLmxlbmd0aCAmJlxuICAgICAgICAgICAgIXRoaXMuc3RyaWN0KCkgJiZcbiAgICAgICAgICAgIHRoaXMuc3RyaW5naWZ5KHRoaXMudmFsdWUoKSkgIT09IHRoaXMudGV4dGZpZWxkLnZhbHVlKClcbiAgICAgICAgKSB7XG4gICAgICAgICAgICB0aGlzLm9uQ2hhbmdlKHRoaXMudGV4dGZpZWxkLnZhbHVlKCkgfHwgbnVsbCk7XG4gICAgICAgIH1cbiAgICB9LCBUVUlfQUxMT1dfU0lHTkFMX1dSSVRFUyk7XG5cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgbWF0Y2hpbmdFZmZlY3QgPSBlZmZlY3QoKCkgPT4ge1xuICAgICAgICBjb25zdCBvcHRpb25zID0gdGhpcy5vcHRpb25zKCk7XG4gICAgICAgIGNvbnN0IG1hdGNoZXIgPSB0aGlzLm1hdGNoZXIoKTtcblxuICAgICAgICBpZiAoIW9wdGlvbnMubGVuZ3RoIHx8ICFtYXRjaGVyKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB0ZXh0ZmllbGRWYWx1ZSA9IHRoaXMudGV4dGZpZWxkLnZhbHVlKCk7XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkT3B0aW9uID0gb3B0aW9ucy5maW5kKCh4KSA9PlxuICAgICAgICAgICAgbWF0Y2hlcih4LCB0ZXh0ZmllbGRWYWx1ZSwgdGhpcy5oYW5kbGVycy5zdHJpbmdpZnkoKSksXG4gICAgICAgICk7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gdW50cmFja2VkKCgpID0+IHRoaXMudmFsdWUoKSk7XG4gICAgICAgIGNvbnN0IHVuY2hhbmdlZCA9IHRoaXMuc3RyaW5naWZ5KHZhbHVlKSA9PT0gdGV4dGZpZWxkVmFsdWU7XG4gICAgICAgIGNvbnN0IGZhbGxiYWNrID0gdGhpcy5zdHJpY3QoKSB8fCAhdGV4dGZpZWxkVmFsdWUgPyBudWxsIDogdGV4dGZpZWxkVmFsdWU7XG5cbiAgICAgICAgdGhpcy5vbkNoYW5nZShcbiAgICAgICAgICAgIHNlbGVjdGVkT3B0aW9uID8/XG4gICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICogRG9uJ3QgY2xlYXIgYWxyZWFkeSBub3QtbnVsbCBmb3JtIGNvbnRyb2wgdmFsdWUgb24gbmV3IGB0aGlzLm9wdGlvbnMoKWAgYXJyYXkuXG4gICAgICAgICAgICAgICAgICogT3RoZXJ3aXNlLCBgQ29tYm9Cb3hgIGJlY29tZXMgaW5jb21wYXRpYmxlIHdpdGggdmlydHVhbCBzY3JvbGxcbiAgICAgICAgICAgICAgICAgKiAod2hpY2ggZGlzcGxheXMgbGFyZ2UgbGlzdHMgb2YgZWxlbWVudHMgYnkgb25seSByZW5kZXJpbmcgdGhlIGl0ZW1zIHRoYXQgZml0IG9uLXNjcmVlbikuXG4gICAgICAgICAgICAgICAgICogVXNlcnMgY2FuIHN0aWxsIGFibGUgdG8gcGF0Y2ggZm9ybSB2YWx1ZSB3aXRoIGBudWxsYCBvbiBuZXcgaXRlbXMgaWYgdGhleSB3aXNoIHRoZSBzdWNoIGJlaGF2aW9yLlxuICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgICh1bmNoYW5nZWQgPyB2YWx1ZSA6IGZhbGxiYWNrKSxcbiAgICAgICAgKTtcbiAgICB9LCBUVUlfQUxMT1dfU0lHTkFMX1dSSVRFUyk7XG5cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgbmV3VmFsdWVFZmZlY3QgPSBlZmZlY3QoKCkgPT4ge1xuICAgICAgICBjb25zdCBzdHJpbmdpZmllZCA9IHRoaXMuc3RyaW5naWZ5KHRoaXMudmFsdWUoKSk7XG5cbiAgICAgICAgdGhpcy50ZXh0ZmllbGQudmFsdWUudXBkYXRlKCh4KSA9PiBzdHJpbmdpZmllZCB8fCB4KTtcbiAgICB9LCBUVUlfQUxMT1dfU0lHTkFMX1dSSVRFUyk7XG5cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgYmx1ckVmZmVjdCA9IGVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IGluY29tcGxldGUgPSB1bnRyYWNrZWQoKCkgPT4gdGhpcy5zdHJpY3QoKSAmJiB0aGlzLnZhbHVlKCkgPT09IG51bGwpO1xuXG4gICAgICAgIGlmICghdGhpcy5ob3N0LmZvY3VzZWQoKSAmJiBpbmNvbXBsZXRlKSB7XG4gICAgICAgICAgICB0aGlzLnRleHRmaWVsZC52YWx1ZS5zZXQoJycpO1xuICAgICAgICB9XG4gICAgfSwgVFVJX0FMTE9XX1NJR05BTF9XUklURVMpO1xuXG4gICAgLy8gVE9ETyh2NSk6IHVzZSBzaWduYWwgaW5wdXRcbiAgICBASW5wdXQoJ3N0cmljdCcpXG4gICAgcHVibGljIHNldCBzdHJpY3RTZXR0ZXIoeDogYm9vbGVhbikge1xuICAgICAgICB0aGlzLnN0cmljdC5zZXQoeCk7XG4gICAgfVxuXG4gICAgLy8gVE9ETyh2NSk6IHVzZSBzaWduYWwgaW5wdXRcbiAgICBASW5wdXQoJ21hdGNoZXInKVxuICAgIHB1YmxpYyBzZXQgbWF0Y2hlclNldHRlcih4OiBUdWlTdHJpbmdNYXRjaGVyPFQ+IHwgbnVsbCkge1xuICAgICAgICB0aGlzLm1hdGNoZXIuc2V0KHgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXRWYWx1ZSh2YWx1ZTogVCB8IG51bGwpOiB2b2lkIHtcbiAgICAgICAgdGhpcy50ZXh0ZmllbGQuc2V0VmFsdWUodmFsdWUpO1xuICAgICAgICB0aGlzLm9uQ2hhbmdlKHZhbHVlKTtcblxuICAgICAgICBpZiAoIXZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLnRvZ2dsZURyb3Bkb3duKHRydWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIG92ZXJyaWRlIHdyaXRlVmFsdWUodmFsdWU6IFQgfCBzdHJpbmcgfCBudWxsKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLndyaXRlVmFsdWUodmFsdWUpO1xuICAgICAgICB0aGlzLnRleHRmaWVsZC52YWx1ZS5zZXQodGhpcy5zdHJpbmdpZnkodmFsdWUpKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgdG9nZ2xlRHJvcGRvd24ob3BlbiA9ICF0aGlzLm9wZW4oKSk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5kcm9wZG93bkVuYWJsZWQoKSAmJiB0aGlzLmRyb3Bkb3duLl9jb250ZW50KCkpIHtcbiAgICAgICAgICAgIHRoaXMub3Blbi5zZXQob3Blbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQga2V5ZG93bkVudGVyKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5vcGVuKCkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMub3B0aW9ucygpO1xuXG4gICAgICAgIGlmIChvcHRpb25zLmxlbmd0aCA9PT0gMSAmJiBvcHRpb25zWzBdKSB7XG4gICAgICAgICAgICB0aGlzLnNldFZhbHVlKG9wdGlvbnNbMF0pO1xuICAgICAgICAgICAgdGhpcy50b2dnbGVEcm9wZG93bihmYWxzZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHN0cmluZ2lmeSh2YWx1ZT86IFQgfCBzdHJpbmcgfCBudWxsKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlICE9IG51bGwgPyB0aGlzLmhhbmRsZXJzLnN0cmluZ2lmeSgpKHZhbHVlKSA6ICcnO1xuICAgIH1cbn1cbiJdfQ==
@@ -33,6 +33,7 @@ export * from '@taiga-ui/kit/components/input-month';
33
33
  export * from '@taiga-ui/kit/components/input-month-range';
34
34
  export * from '@taiga-ui/kit/components/input-number';
35
35
  export * from '@taiga-ui/kit/components/input-password';
36
+ export * from '@taiga-ui/kit/components/input-phone';
36
37
  export * from '@taiga-ui/kit/components/input-phone-international';
37
38
  export * from '@taiga-ui/kit/components/input-pin';
38
39
  export * from '@taiga-ui/kit/components/input-slider';
@@ -66,4 +67,4 @@ export * from '@taiga-ui/kit/components/tabs';
66
67
  export * from '@taiga-ui/kit/components/textarea';
67
68
  export * from '@taiga-ui/kit/components/tiles';
68
69
  export * from '@taiga-ui/kit/components/tree';
69
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9raXQvY29tcG9uZW50cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLG9DQUFvQyxDQUFDO0FBQ25ELGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMsNkNBQTZDLENBQUM7QUFDNUQsY0FBYyx5Q0FBeUMsQ0FBQztBQUN4RCxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMsc0NBQXNDLENBQUM7QUFDckQsY0FBYyx5Q0FBeUMsQ0FBQztBQUN4RCxjQUFjLHlDQUF5QyxDQUFDO0FBQ3hELGNBQWMseUNBQXlDLENBQUM7QUFDeEQsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxjQUFjLGtDQUFrQyxDQUFDO0FBQ2pELGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLDRDQUE0QyxDQUFDO0FBQzNELGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYyw0Q0FBNEMsQ0FBQztBQUMzRCxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYyw2Q0FBNkMsQ0FBQztBQUM1RCxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMsc0NBQXNDLENBQUM7QUFDckQsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLDJDQUEyQyxDQUFDO0FBQzFELGNBQWMsMkNBQTJDLENBQUM7QUFDMUQsY0FBYywwQ0FBMEMsQ0FBQztBQUN6RCxjQUFjLHVDQUF1QyxDQUFDO0FBQ3RELGNBQWMsc0NBQXNDLENBQUM7QUFDckQsY0FBYyw0Q0FBNEMsQ0FBQztBQUMzRCxjQUFjLHVDQUF1QyxDQUFDO0FBQ3RELGNBQWMseUNBQXlDLENBQUM7QUFDeEQsY0FBYyxvREFBb0QsQ0FBQztBQUNuRSxjQUFjLG9DQUFvQyxDQUFDO0FBQ25ELGNBQWMsdUNBQXVDLENBQUM7QUFDdEQsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMsMENBQTBDLENBQUM7QUFDekQsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyx1Q0FBdUMsQ0FBQztBQUN0RCxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyxnQ0FBZ0MsQ0FBQztBQUMvQyxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMsZ0NBQWdDLENBQUM7QUFDL0MsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLDBDQUEwQyxDQUFDO0FBQ3pELGNBQWMsb0NBQW9DLENBQUM7QUFDbkQsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMsK0JBQStCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICdAdGFpZ2EtdWkva2l0L2NvbXBvbmVudHMvYWNjb3JkaW9uJztcbmV4cG9ydCAqIGZyb20gJ0B0YWlnYS11aS9raXQvY29tcG9uZW50cy9hY3Rpb24tYmFyJztcbmV4cG9ydCAqIGZyb20gJ0B0YWlnYS11aS9raXQvY29tcG9uZW50cy9hdmF0YXInO1xuZXhwb3J0ICogZnJvbSAnQHRhaWdhLXVpL2tpdC9jb21wb25lbnRzL2JhZGdlJztcbmV4cG9ydCAqIGZyb20gJ0B0YWlnYS11aS9raXQvY29tcG9uZW50cy9iYWRnZS1ub3RpZmljYXRpb24nO1xuZXhwb3J0ICogZnJvbSAnQHRhaWdhLXVpL2tpdC9jb21wb25lbnRzL2JhZGdlZC1jb250ZW50JztcbmV4cG9ydCAqIGZyb20gJ0B0YWlnYS11aS9raXQvY29tcG9uZW50cy9ibG9jayc7XG5leHBvcnQgKiBmcm9tICdAdGFpZ2EtdWkva2l0L2NvbXBvbmVudHMvYnJlYWRjcnVtYnMnO1xuZXhwb3J0ICogZnJvbSAnQHRhaWdhLXVpL2tpdC9jb21wb25lbnRzL2J1dHRvbi1sb2FkaW5nJztcbmV4cG9ydCAqIGZyb20gJ0B0YWlnYS11aS9raXQvY29tcG9uZW50cy9jYWxlbmRhci1tb250aCc7XG5leHBvcnQgKiBmcm9tICdAdGFpZ2EtdWkva2l0L2NvbXBvbmVudHMvY2FsZW5kYXItcmFuZ2UnO1xuZXhwb3J0ICogZnJvbSAnQHRhaWdhLXVpL2tpdC9jb21wb25lbnRzL2Nhcm91c2VsJztcbmV4cG9ydCAqIGZyb20gJ0B0YWlnYS11aS9raXQvY29tcG9uZW50cy9jaGVja2JveCc7XG5leHBvcnQgKiBmcm9tICdAdGFpZ2EtdWkva2l0L2NvbXBvbmVudHMvY2hpcCc7XG5leHBvcnQgKiBmcm9tICdAdGFpZ2EtdWkva2l0L2NvbXBvbmVudHMvY29tYm8tYm94JztcbmV4cG9ydCAqIGZyb20gJ0B0YWlnYS11aS9raXQvY29tcG9uZW50cy9jb21tZW50JztcbmV4cG9ydCAqIGZyb20gJ0B0YWlnYS11aS9raXQvY29tcG9uZW50cy9jb21wYXNzJztcbmV4cG9ydCAqIGZyb20gJ0B0YWlnYS11aS9raXQvY29tcG9uZW50cy9jb25maXJtJztcbmV4cG9ydCAqIGZyb20gJ0B0YWlnYS11aS9raXQvY29tcG9uZW50cy9kYXRhLWxpc3Qtd3JhcHBlcic7XG5leHBvcnQgKiBmcm9tICdAdGFpZ2EtdWkva2l0L2NvbXBvbmVudHMvZHJhd2VyJztcbmV4cG9ydCAqIGZyb20gJ0B0YWlnYS11aS9raXQvY29tcG9uZW50cy9lbGFzdGljLWNvbnRhaW5lcic7XG5leHBvcnQgKiBmcm9tICdAdGFpZ2EtdWkva2l0L2NvbXBvbmVudHMvZmlsZXMnO1xuZXhwb3J0ICogZnJvbSAnQHRhaWdhLXVpL2tpdC9jb21wb25lbnRzL2ZpbHRlcic7XG5leHBvcnQgKiBmcm9tICdAdGFpZ2EtdWkva2l0L2NvbXBvbmVudHMvZmxvYXRpbmctY29udGFpbmVyJztcbmV4cG9ydCAqIGZyb20gJ0B0YWlnYS11aS9raXQvY29tcG9uZW50cy9pbnB1dC1jaGlwJztcbmV4cG9ydCAqIGZyb20gJ0B0YWlnYS11aS9raXQvY29tcG9uZW50cy9pbnB1dC1jb2xvcic7XG5leHBvcnQgKiBmcm9tICdAdGFpZ2EtdWkva2l0L2NvbXBvbmVudHMvaW5wdXQtZGF0ZSc7XG5leHBvcnQgKiBmcm9tICdAdGFpZ2EtdWkva2l0L2NvbXBvbmVudHMvaW5wdXQtZGF0ZS1tdWx0aSc7XG5leHBvcnQgKiBmcm9tICdAdGFpZ2EtdWkva2l0L2NvbXBvbmVudHMvaW5wdXQtZGF0ZS1yYW5nZSc7XG5leHBvcnQgKiBmcm9tICdAdGFpZ2EtdWkva2l0L2NvbXBvbmVudHMvaW5wdXQtZGF0ZS10aW1lJztcbmV4cG9ydCAqIGZyb20gJ0B0YWlnYS11aS9raXQvY29tcG9uZW50cy9pbnB1dC1pbmxpbmUnO1xuZXhwb3J0ICogZnJvbSAnQHRhaWdhLXVpL2tpdC9jb21wb25lbnRzL2lucHV0LW1vbnRoJztcbmV4cG9ydCAqIGZyb20gJ0B0YWlnYS11aS9raXQvY29tcG9uZW50cy9pbnB1dC1tb250aC1yYW5nZSc7XG5leHBvcnQgKiBmcm9tICdAdGFpZ2EtdWkva2l0L2NvbXBvbmVudHMvaW5wdXQtbnVtYmVyJztcbmV4cG9ydCAqIGZyb20gJ0B0YWlnYS11aS9raXQvY29tcG9uZW50cy9pbnB1dC1wYXNzd29yZCc7XG5leHBvcnQgKiBmcm9tICdAdGFpZ2EtdWkva2l0L2NvbXBvbmVudHMvaW5wdXQtcGhvbmUtaW50ZXJuYXRpb25hbCc7XG5leHBvcnQgKiBmcm9tICdAdGFpZ2EtdWkva2l0L2NvbXBvbmVudHMvaW5wdXQtcGluJztcbmV4cG9ydCAqIGZyb20gJ0B0YWlnYS11aS9raXQvY29tcG9uZW50cy9pbnB1dC1zbGlkZXInO1xuZXhwb3J0ICogZnJvbSAnQHRhaWdhLXVpL2tpdC9jb21wb25lbnRzL2lucHV0LXRpbWUnO1xuZXhwb3J0ICogZnJvbSAnQHRhaWdhLXVpL2tpdC9jb21wb25lbnRzL2lucHV0LXllYXInO1xuZXhwb3J0ICogZnJvbSAnQHRhaWdhLXVpL2tpdC9jb21wb25lbnRzL2l0ZW1zLXdpdGgtbW9yZSc7XG5leHBvcnQgKiBmcm9tICdAdGFpZ2EtdWkva2l0L2NvbXBvbmVudHMvbGlrZSc7XG5leHBvcnQgKiBmcm9tICdAdGFpZ2EtdWkva2l0L2NvbXBvbmVudHMvbGluZS1jbGFtcCc7XG5leHBvcnQgKiBmcm9tICdAdGFpZ2EtdWkva2l0L2NvbXBvbmVudHMvbWVzc2FnZSc7XG5leHBvcnQgKiBmcm9tICdAdGFpZ2EtdWkva2l0L2NvbXBvbmVudHMvbXVsdGktc2VsZWN0JztcbmV4cG9ydCAqIGZyb20gJ0B0YWlnYS11aS9raXQvY29tcG9uZW50cy9wYWdlcic7XG5leHBvcnQgKiBmcm9tICdAdGFpZ2EtdWkva2l0L2NvbXBvbmVudHMvcGFnaW5hdGlvbic7XG5leHBvcnQgKiBmcm9tICdAdGFpZ2EtdWkva2l0L2NvbXBvbmVudHMvcGRmLXZpZXdlcic7XG5leHBvcnQgKiBmcm9tICdAdGFpZ2EtdWkva2l0L2NvbXBvbmVudHMvcGluJztcbmV4cG9ydCAqIGZyb20gJ0B0YWlnYS11aS9raXQvY29tcG9uZW50cy9wcmV2aWV3JztcbmV4cG9ydCAqIGZyb20gJ0B0YWlnYS11aS9raXQvY29tcG9uZW50cy9wcm9ncmVzcyc7XG5leHBvcnQgKiBmcm9tICdAdGFpZ2EtdWkva2l0L2NvbXBvbmVudHMvcHVsc2UnO1xuZXhwb3J0ICogZnJvbSAnQHRhaWdhLXVpL2tpdC9jb21wb25lbnRzL3B1c2gnO1xuZXhwb3J0ICogZnJvbSAnQHRhaWdhLXVpL2tpdC9jb21wb25lbnRzL3JhZGlvJztcbmV4cG9ydCAqIGZyb20gJ0B0YWlnYS11aS9raXQvY29tcG9uZW50cy9yYWRpby1saXN0JztcbmV4cG9ydCAqIGZyb20gJ0B0YWlnYS11aS9raXQvY29tcG9uZW50cy9yYW5nZSc7XG5leHBvcnQgKiBmcm9tICdAdGFpZ2EtdWkva2l0L2NvbXBvbmVudHMvcmF0aW5nJztcbmV4cG9ydCAqIGZyb20gJ0B0YWlnYS11aS9raXQvY29tcG9uZW50cy9yb3V0YWJsZS1kaWFsb2cnO1xuZXhwb3J0ICogZnJvbSAnQHRhaWdhLXVpL2tpdC9jb21wb25lbnRzL3NlZ21lbnRlZCc7XG5leHBvcnQgKiBmcm9tICdAdGFpZ2EtdWkva2l0L2NvbXBvbmVudHMvc2VsZWN0JztcbmV4cG9ydCAqIGZyb20gJ0B0YWlnYS11aS9raXQvY29tcG9uZW50cy9zbGlkZXInO1xuZXhwb3J0ICogZnJvbSAnQHRhaWdhLXVpL2tpdC9jb21wb25lbnRzL3N0YXR1cyc7XG5leHBvcnQgKiBmcm9tICdAdGFpZ2EtdWkva2l0L2NvbXBvbmVudHMvc3RlcHBlcic7XG5leHBvcnQgKiBmcm9tICdAdGFpZ2EtdWkva2l0L2NvbXBvbmVudHMvc3dpdGNoJztcbmV4cG9ydCAqIGZyb20gJ0B0YWlnYS11aS9raXQvY29tcG9uZW50cy90YWJzJztcbmV4cG9ydCAqIGZyb20gJ0B0YWlnYS11aS9raXQvY29tcG9uZW50cy90ZXh0YXJlYSc7XG5leHBvcnQgKiBmcm9tICdAdGFpZ2EtdWkva2l0L2NvbXBvbmVudHMvdGlsZXMnO1xuZXhwb3J0ICogZnJvbSAnQHRhaWdhLXVpL2tpdC9jb21wb25lbnRzL3RyZWUnO1xuIl19
70
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9raXQvY29tcG9uZW50cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLG9DQUFvQyxDQUFDO0FBQ25ELGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMsNkNBQTZDLENBQUM7QUFDNUQsY0FBYyx5Q0FBeUMsQ0FBQztBQUN4RCxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMsc0NBQXNDLENBQUM7QUFDckQsY0FBYyx5Q0FBeUMsQ0FBQztBQUN4RCxjQUFjLHlDQUF5QyxDQUFDO0FBQ3hELGNBQWMseUNBQXlDLENBQUM7QUFDeEQsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxjQUFjLGtDQUFrQyxDQUFDO0FBQ2pELGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLDRDQUE0QyxDQUFDO0FBQzNELGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYyw0Q0FBNEMsQ0FBQztBQUMzRCxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYyw2Q0FBNkMsQ0FBQztBQUM1RCxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMsc0NBQXNDLENBQUM7QUFDckQsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLDJDQUEyQyxDQUFDO0FBQzFELGNBQWMsMkNBQTJDLENBQUM7QUFDMUQsY0FBYywwQ0FBMEMsQ0FBQztBQUN6RCxjQUFjLHVDQUF1QyxDQUFDO0FBQ3RELGNBQWMsc0NBQXNDLENBQUM7QUFDckQsY0FBYyw0Q0FBNEMsQ0FBQztBQUMzRCxjQUFjLHVDQUF1QyxDQUFDO0FBQ3RELGNBQWMseUNBQXlDLENBQUM7QUFDeEQsY0FBYyxzQ0FBc0MsQ0FBQztBQUNyRCxjQUFjLG9EQUFvRCxDQUFDO0FBQ25FLGNBQWMsb0NBQW9DLENBQUM7QUFDbkQsY0FBYyx1Q0FBdUMsQ0FBQztBQUN0RCxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYywwQ0FBMEMsQ0FBQztBQUN6RCxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLHVDQUF1QyxDQUFDO0FBQ3RELGNBQWMsZ0NBQWdDLENBQUM7QUFDL0MsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMsZ0NBQWdDLENBQUM7QUFDL0MsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYyxnQ0FBZ0MsQ0FBQztBQUMvQyxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsMENBQTBDLENBQUM7QUFDekQsY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLGtDQUFrQyxDQUFDO0FBQ2pELGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMsZ0NBQWdDLENBQUM7QUFDL0MsY0FBYywrQkFBK0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJ0B0YWlnYS11aS9raXQvY29tcG9uZW50cy9hY2NvcmRpb24nO1xuZXhwb3J0ICogZnJvbSAnQHRhaWdhLXVpL2tpdC9jb21wb25lbnRzL2FjdGlvbi1iYXInO1xuZXhwb3J0ICogZnJvbSAnQHRhaWdhLXVpL2tpdC9jb21wb25lbnRzL2F2YXRhcic7XG5leHBvcnQgKiBmcm9tICdAdGFpZ2EtdWkva2l0L2NvbXBvbmVudHMvYmFkZ2UnO1xuZXhwb3J0ICogZnJvbSAnQHRhaWdhLXVpL2tpdC9jb21wb25lbnRzL2JhZGdlLW5vdGlmaWNhdGlvbic7XG5leHBvcnQgKiBmcm9tICdAdGFpZ2EtdWkva2l0L2NvbXBvbmVudHMvYmFkZ2VkLWNvbnRlbnQnO1xuZXhwb3J0ICogZnJvbSAnQHRhaWdhLXVpL2tpdC9jb21wb25lbnRzL2Jsb2NrJztcbmV4cG9ydCAqIGZyb20gJ0B0YWlnYS11aS9raXQvY29tcG9uZW50cy9icmVhZGNydW1icyc7XG5leHBvcnQgKiBmcm9tICdAdGFpZ2EtdWkva2l0L2NvbXBvbmVudHMvYnV0dG9uLWxvYWRpbmcnO1xuZXhwb3J0ICogZnJvbSAnQHRhaWdhLXVpL2tpdC9jb21wb25lbnRzL2NhbGVuZGFyLW1vbnRoJztcbmV4cG9ydCAqIGZyb20gJ0B0YWlnYS11aS9raXQvY29tcG9uZW50cy9jYWxlbmRhci1yYW5nZSc7XG5leHBvcnQgKiBmcm9tICdAdGFpZ2EtdWkva2l0L2NvbXBvbmVudHMvY2Fyb3VzZWwnO1xuZXhwb3J0ICogZnJvbSAnQHRhaWdhLXVpL2tpdC9jb21wb25lbnRzL2NoZWNrYm94JztcbmV4cG9ydCAqIGZyb20gJ0B0YWlnYS11aS9raXQvY29tcG9uZW50cy9jaGlwJztcbmV4cG9ydCAqIGZyb20gJ0B0YWlnYS11aS9raXQvY29tcG9uZW50cy9jb21iby1ib3gnO1xuZXhwb3J0ICogZnJvbSAnQHRhaWdhLXVpL2tpdC9jb21wb25lbnRzL2NvbW1lbnQnO1xuZXhwb3J0ICogZnJvbSAnQHRhaWdhLXVpL2tpdC9jb21wb25lbnRzL2NvbXBhc3MnO1xuZXhwb3J0ICogZnJvbSAnQHRhaWdhLXVpL2tpdC9jb21wb25lbnRzL2NvbmZpcm0nO1xuZXhwb3J0ICogZnJvbSAnQHRhaWdhLXVpL2tpdC9jb21wb25lbnRzL2RhdGEtbGlzdC13cmFwcGVyJztcbmV4cG9ydCAqIGZyb20gJ0B0YWlnYS11aS9raXQvY29tcG9uZW50cy9kcmF3ZXInO1xuZXhwb3J0ICogZnJvbSAnQHRhaWdhLXVpL2tpdC9jb21wb25lbnRzL2VsYXN0aWMtY29udGFpbmVyJztcbmV4cG9ydCAqIGZyb20gJ0B0YWlnYS11aS9raXQvY29tcG9uZW50cy9maWxlcyc7XG5leHBvcnQgKiBmcm9tICdAdGFpZ2EtdWkva2l0L2NvbXBvbmVudHMvZmlsdGVyJztcbmV4cG9ydCAqIGZyb20gJ0B0YWlnYS11aS9raXQvY29tcG9uZW50cy9mbG9hdGluZy1jb250YWluZXInO1xuZXhwb3J0ICogZnJvbSAnQHRhaWdhLXVpL2tpdC9jb21wb25lbnRzL2lucHV0LWNoaXAnO1xuZXhwb3J0ICogZnJvbSAnQHRhaWdhLXVpL2tpdC9jb21wb25lbnRzL2lucHV0LWNvbG9yJztcbmV4cG9ydCAqIGZyb20gJ0B0YWlnYS11aS9raXQvY29tcG9uZW50cy9pbnB1dC1kYXRlJztcbmV4cG9ydCAqIGZyb20gJ0B0YWlnYS11aS9raXQvY29tcG9uZW50cy9pbnB1dC1kYXRlLW11bHRpJztcbmV4cG9ydCAqIGZyb20gJ0B0YWlnYS11aS9raXQvY29tcG9uZW50cy9pbnB1dC1kYXRlLXJhbmdlJztcbmV4cG9ydCAqIGZyb20gJ0B0YWlnYS11aS9raXQvY29tcG9uZW50cy9pbnB1dC1kYXRlLXRpbWUnO1xuZXhwb3J0ICogZnJvbSAnQHRhaWdhLXVpL2tpdC9jb21wb25lbnRzL2lucHV0LWlubGluZSc7XG5leHBvcnQgKiBmcm9tICdAdGFpZ2EtdWkva2l0L2NvbXBvbmVudHMvaW5wdXQtbW9udGgnO1xuZXhwb3J0ICogZnJvbSAnQHRhaWdhLXVpL2tpdC9jb21wb25lbnRzL2lucHV0LW1vbnRoLXJhbmdlJztcbmV4cG9ydCAqIGZyb20gJ0B0YWlnYS11aS9raXQvY29tcG9uZW50cy9pbnB1dC1udW1iZXInO1xuZXhwb3J0ICogZnJvbSAnQHRhaWdhLXVpL2tpdC9jb21wb25lbnRzL2lucHV0LXBhc3N3b3JkJztcbmV4cG9ydCAqIGZyb20gJ0B0YWlnYS11aS9raXQvY29tcG9uZW50cy9pbnB1dC1waG9uZSc7XG5leHBvcnQgKiBmcm9tICdAdGFpZ2EtdWkva2l0L2NvbXBvbmVudHMvaW5wdXQtcGhvbmUtaW50ZXJuYXRpb25hbCc7XG5leHBvcnQgKiBmcm9tICdAdGFpZ2EtdWkva2l0L2NvbXBvbmVudHMvaW5wdXQtcGluJztcbmV4cG9ydCAqIGZyb20gJ0B0YWlnYS11aS9raXQvY29tcG9uZW50cy9pbnB1dC1zbGlkZXInO1xuZXhwb3J0ICogZnJvbSAnQHRhaWdhLXVpL2tpdC9jb21wb25lbnRzL2lucHV0LXRpbWUnO1xuZXhwb3J0ICogZnJvbSAnQHRhaWdhLXVpL2tpdC9jb21wb25lbnRzL2lucHV0LXllYXInO1xuZXhwb3J0ICogZnJvbSAnQHRhaWdhLXVpL2tpdC9jb21wb25lbnRzL2l0ZW1zLXdpdGgtbW9yZSc7XG5leHBvcnQgKiBmcm9tICdAdGFpZ2EtdWkva2l0L2NvbXBvbmVudHMvbGlrZSc7XG5leHBvcnQgKiBmcm9tICdAdGFpZ2EtdWkva2l0L2NvbXBvbmVudHMvbGluZS1jbGFtcCc7XG5leHBvcnQgKiBmcm9tICdAdGFpZ2EtdWkva2l0L2NvbXBvbmVudHMvbWVzc2FnZSc7XG5leHBvcnQgKiBmcm9tICdAdGFpZ2EtdWkva2l0L2NvbXBvbmVudHMvbXVsdGktc2VsZWN0JztcbmV4cG9ydCAqIGZyb20gJ0B0YWlnYS11aS9raXQvY29tcG9uZW50cy9wYWdlcic7XG5leHBvcnQgKiBmcm9tICdAdGFpZ2EtdWkva2l0L2NvbXBvbmVudHMvcGFnaW5hdGlvbic7XG5leHBvcnQgKiBmcm9tICdAdGFpZ2EtdWkva2l0L2NvbXBvbmVudHMvcGRmLXZpZXdlcic7XG5leHBvcnQgKiBmcm9tICdAdGFpZ2EtdWkva2l0L2NvbXBvbmVudHMvcGluJztcbmV4cG9ydCAqIGZyb20gJ0B0YWlnYS11aS9raXQvY29tcG9uZW50cy9wcmV2aWV3JztcbmV4cG9ydCAqIGZyb20gJ0B0YWlnYS11aS9raXQvY29tcG9uZW50cy9wcm9ncmVzcyc7XG5leHBvcnQgKiBmcm9tICdAdGFpZ2EtdWkva2l0L2NvbXBvbmVudHMvcHVsc2UnO1xuZXhwb3J0ICogZnJvbSAnQHRhaWdhLXVpL2tpdC9jb21wb25lbnRzL3B1c2gnO1xuZXhwb3J0ICogZnJvbSAnQHRhaWdhLXVpL2tpdC9jb21wb25lbnRzL3JhZGlvJztcbmV4cG9ydCAqIGZyb20gJ0B0YWlnYS11aS9raXQvY29tcG9uZW50cy9yYWRpby1saXN0JztcbmV4cG9ydCAqIGZyb20gJ0B0YWlnYS11aS9raXQvY29tcG9uZW50cy9yYW5nZSc7XG5leHBvcnQgKiBmcm9tICdAdGFpZ2EtdWkva2l0L2NvbXBvbmVudHMvcmF0aW5nJztcbmV4cG9ydCAqIGZyb20gJ0B0YWlnYS11aS9raXQvY29tcG9uZW50cy9yb3V0YWJsZS1kaWFsb2cnO1xuZXhwb3J0ICogZnJvbSAnQHRhaWdhLXVpL2tpdC9jb21wb25lbnRzL3NlZ21lbnRlZCc7XG5leHBvcnQgKiBmcm9tICdAdGFpZ2EtdWkva2l0L2NvbXBvbmVudHMvc2VsZWN0JztcbmV4cG9ydCAqIGZyb20gJ0B0YWlnYS11aS9raXQvY29tcG9uZW50cy9zbGlkZXInO1xuZXhwb3J0ICogZnJvbSAnQHRhaWdhLXVpL2tpdC9jb21wb25lbnRzL3N0YXR1cyc7XG5leHBvcnQgKiBmcm9tICdAdGFpZ2EtdWkva2l0L2NvbXBvbmVudHMvc3RlcHBlcic7XG5leHBvcnQgKiBmcm9tICdAdGFpZ2EtdWkva2l0L2NvbXBvbmVudHMvc3dpdGNoJztcbmV4cG9ydCAqIGZyb20gJ0B0YWlnYS11aS9raXQvY29tcG9uZW50cy90YWJzJztcbmV4cG9ydCAqIGZyb20gJ0B0YWlnYS11aS9raXQvY29tcG9uZW50cy90ZXh0YXJlYSc7XG5leHBvcnQgKiBmcm9tICdAdGFpZ2EtdWkva2l0L2NvbXBvbmVudHMvdGlsZXMnO1xuZXhwb3J0ICogZnJvbSAnQHRhaWdhLXVpL2tpdC9jb21wb25lbnRzL3RyZWUnO1xuIl19
@@ -14,7 +14,8 @@ import { TUI_INPUT_CHIP_OPTIONS } from './input-chip.options';
14
14
  import * as i0 from "@angular/core";
15
15
  import * as i1 from "@taiga-ui/cdk/directives/native-validator";
16
16
  import * as i2 from "@taiga-ui/core/components/textfield";
17
- class TuiInputChipDirective extends TuiControl {
17
+ // TODO(v5): remove base component after angular update
18
+ class TuiInputChipBaseDirective extends TuiControl {
18
19
  constructor() {
19
20
  super(...arguments);
20
21
  this.options = inject(TUI_INPUT_CHIP_OPTIONS);
@@ -83,8 +84,32 @@ class TuiInputChipDirective extends TuiControl {
83
84
  });
84
85
  });
85
86
  }
87
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiInputChipBaseDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
88
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: TuiInputChipBaseDirective, isStandalone: true, inputs: { separator: "separator", unique: "unique" }, host: { attributes: { "enterkeyhint": "enter" }, listeners: { "keydown.enter.prevent": "onEnter()", "keydown.zoneless": "onBackspace($event.key)", "input": "onInput()", "paste.prevent": "onPaste($event)", "drop.prevent": "onPaste($event)" }, properties: { "disabled": "disabled()" } }, usesInheritance: true, ngImport: i0 }); }
89
+ }
90
+ export { TuiInputChipBaseDirective };
91
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiInputChipBaseDirective, decorators: [{
92
+ type: Directive,
93
+ args: [{
94
+ standalone: true,
95
+ host: {
96
+ enterkeyhint: 'enter',
97
+ '[disabled]': 'disabled()',
98
+ '(keydown.enter.prevent)': 'onEnter()',
99
+ '(keydown.zoneless)': 'onBackspace($event.key)',
100
+ '(input)': 'onInput()',
101
+ '(paste.prevent)': 'onPaste($event)',
102
+ '(drop.prevent)': 'onPaste($event)',
103
+ },
104
+ }]
105
+ }], propDecorators: { separator: [{
106
+ type: Input
107
+ }], unique: [{
108
+ type: Input
109
+ }] } });
110
+ class TuiInputChipDirective extends TuiInputChipBaseDirective {
86
111
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiInputChipDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
87
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: TuiInputChipDirective, isStandalone: true, selector: "input[tuiInputChip]", inputs: { separator: "separator", unique: "unique" }, host: { attributes: { "enterkeyhint": "enter" }, listeners: { "keydown.enter.prevent": "onEnter()", "keydown.zoneless": "onBackspace($event.key)", "input": "onInput()", "paste.prevent": "onPaste($event)", "drop.prevent": "onPaste($event)" }, properties: { "disabled": "disabled()" } }, providers: [
112
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: TuiInputChipDirective, isStandalone: true, selector: "input[tuiInputChip]", providers: [
88
113
  tuiAsControl(TuiInputChipDirective),
89
114
  tuiFallbackValueProvider([]),
90
115
  tuiAsTextfieldAccessor(TuiInputChipDirective),
@@ -108,19 +133,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
108
133
  inputs: ['invalid', 'focused', 'readOnly', 'state'],
109
134
  },
110
135
  ],
111
- host: {
112
- enterkeyhint: 'enter',
113
- '[disabled]': 'disabled()',
114
- '(keydown.enter.prevent)': 'onEnter()',
115
- '(keydown.zoneless)': 'onBackspace($event.key)',
116
- '(input)': 'onInput()',
117
- '(paste.prevent)': 'onPaste($event)',
118
- '(drop.prevent)': 'onPaste($event)',
119
- },
120
136
  }]
121
- }], propDecorators: { separator: [{
122
- type: Input
123
- }], unique: [{
124
- type: Input
125
- }] } });
126
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtY2hpcC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9raXQvY29tcG9uZW50cy9pbnB1dC1jaGlwL2lucHV0LWNoaXAuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN2RCxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUM5RCxPQUFPLEVBQUMsWUFBWSxFQUFFLFVBQVUsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBQy9ELE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxzQ0FBc0MsQ0FBQztBQUNuRSxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSwyQ0FBMkMsQ0FBQztBQUM3RSxPQUFPLEVBQUMsYUFBYSxFQUFFLHdCQUF3QixFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDN0UsT0FBTyxFQUFDLHVCQUF1QixFQUFFLGdCQUFnQixFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDbEYsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFFdEUsT0FBTyxFQUNILHNCQUFzQixFQUN0QixnQkFBZ0IsRUFDaEIsMEJBQTBCLEdBQzdCLE1BQU0scUNBQXFDLENBQUM7QUFDN0MsT0FBTyxFQUNILG9CQUFvQixFQUNwQixlQUFlLEVBQ2YsZUFBZSxHQUNsQixNQUFNLG9DQUFvQyxDQUFDO0FBRTVDLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLDBDQUEwQyxDQUFDO0FBQzVFLE9BQU8sRUFBQyxNQUFNLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFFNUIsT0FBTyxFQUFDLHNCQUFzQixFQUFDLE1BQU0sc0JBQXNCLENBQUM7Ozs7QUFFNUQsTUF5QmEscUJBQ1QsU0FBUSxVQUFlO0lBMUIzQjs7UUE2QnFCLFlBQU8sR0FB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QUcsRUFBRSxNQUFNLENBQUMsZ0JBQWdCO2FBQy9CLENBQUMsQ0FBQztRQUNQLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzsrR0FwR1EscUJBQXFCO21HQUFyQixxQkFBcUIsc1pBdEJuQjtZQUNQLFlBQVksQ0FBQyxxQkFBcUIsQ0FBQztZQUNuQyx3QkFBd0IsQ0FBQyxFQUFFLENBQUM7WUFDNUIsc0JBQXNCLENBQUMscUJBQXFCLENBQUM7U0FDaEQ7O1NBa0JRLHFCQUFxQjs0RkFBckIscUJBQXFCO2tCQXpCakMsU0FBUzttQkFBQztvQkFDUCxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFLHFCQUFxQjtvQkFDL0IsU0FBUyxFQUFFO3dCQUNQLFlBQVksdUJBQXVCO3dCQUNuQyx3QkFBd0IsQ0FBQyxFQUFFLENBQUM7d0JBQzVCLHNCQUFzQix1QkFBdUI7cUJBQ2hEO29CQUNELGNBQWMsRUFBRTt3QkFDWixrQkFBa0I7d0JBQ2xCOzRCQUNJLFNBQVMsRUFBRSxnQkFBZ0I7NEJBQzNCLE1BQU0sRUFBRSxDQUFDLFNBQVMsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE9BQU8sQ0FBQzt5QkFDdEQ7cUJBQ0o7b0JBQ0QsSUFBSSxFQUFFO3dCQUNGLFlBQVksRUFBRSxPQUFPO3dCQUNyQixZQUFZLEVBQUUsWUFBWTt3QkFDMUIseUJBQXlCLEVBQUUsV0FBVzt3QkFDdEMsb0JBQW9CLEVBQUUseUJBQXlCO3dCQUMvQyxTQUFTLEVBQUUsV0FBVzt3QkFDdEIsaUJBQWlCLEVBQUUsaUJBQWlCO3dCQUNwQyxnQkFBZ0IsRUFBRSxpQkFBaUI7cUJBQ3RDO2lCQUNKOzhCQThCVSxTQUFTO3NCQURmLEtBQUs7Z0JBSUMsTUFBTTtzQkFEWixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEaXJlY3RpdmUsIGluamVjdCwgSW5wdXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHt0YWtlVW50aWxEZXN0cm95ZWR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7dHVpQXNDb250cm9sLCBUdWlDb250cm9sfSBmcm9tICdAdGFpZ2EtdWkvY2RrL2NsYXNzZXMnO1xuaW1wb3J0IHtUdWlBY3RpdmVab25lfSBmcm9tICdAdGFpZ2EtdWkvY2RrL2RpcmVjdGl2ZXMvYWN0aXZlLXpvbmUnO1xuaW1wb3J0IHtUdWlOYXRpdmVWYWxpZGF0b3J9IGZyb20gJ0B0YWlnYS11aS9jZGsvZGlyZWN0aXZlcy9uYXRpdmUtdmFsaWRhdG9yJztcbmltcG9ydCB7VFVJX0lTX01PQklMRSwgdHVpRmFsbGJhY2tWYWx1ZVByb3ZpZGVyfSBmcm9tICdAdGFpZ2EtdWkvY2RrL3Rva2Vucyc7XG5pbXBvcnQge3R1aUdldENsaXBib2FyZERhdGFUZXh0LCB0dWlJbmplY3RFbGVtZW50fSBmcm9tICdAdGFpZ2EtdWkvY2RrL3V0aWxzL2RvbSc7XG5pbXBvcnQge3R1aURpcmVjdGl2ZUJpbmRpbmd9IGZyb20gJ0B0YWlnYS11aS9jZGsvdXRpbHMvbWlzY2VsbGFuZW91cyc7XG5pbXBvcnQgdHlwZSB7VHVpVGV4dGZpZWxkQWNjZXNzb3J9IGZyb20gJ0B0YWlnYS11aS9jb3JlL2NvbXBvbmVudHMvdGV4dGZpZWxkJztcbmltcG9ydCB7XG4gICAgdHVpQXNUZXh0ZmllbGRBY2Nlc3NvcixcbiAgICBUdWlUZXh0ZmllbGRCYXNlLFxuICAgIFR1aVRleHRmaWVsZE11bHRpQ29tcG9uZW50LFxufSBmcm9tICdAdGFpZ2EtdWkvY29yZS9jb21wb25lbnRzL3RleHRmaWVsZCc7XG5pbXBvcnQge1xuICAgIFR1aURyb3Bkb3duRGlyZWN0aXZlLFxuICAgIFR1aURyb3Bkb3duT3BlbixcbiAgICB0dWlEcm9wZG93bk9wZW4sXG59IGZyb20gJ0B0YWlnYS11aS9jb3JlL2RpcmVjdGl2ZXMvZHJvcGRvd24nO1xuaW1wb3J0IHR5cGUge1R1aUl0ZW1zSGFuZGxlcnN9IGZyb20gJ0B0YWlnYS11aS9jb3JlL2RpcmVjdGl2ZXMvaXRlbXMtaGFuZGxlcnMnO1xuaW1wb3J0IHtUVUlfSVRFTVNfSEFORExFUlN9IGZyb20gJ0B0YWlnYS11aS9jb3JlL2RpcmVjdGl2ZXMvaXRlbXMtaGFuZGxlcnMnO1xuaW1wb3J0IHtmaWx0ZXJ9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQge1RVSV9JTlBVVF9DSElQX09QVElPTlN9IGZyb20gJy4vaW5wdXQtY2hpcC5vcHRpb25zJztcblxuQERpcmVjdGl2ZSh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBzZWxlY3RvcjogJ2lucHV0W3R1aUlucHV0Q2hpcF0nLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB0dWlBc0NvbnRyb2woVHVpSW5wdXRDaGlwRGlyZWN0aXZlKSxcbiAgICAgICAgdHVpRmFsbGJhY2tWYWx1ZVByb3ZpZGVyKFtdKSxcbiAgICAgICAgdHVpQXNUZXh0ZmllbGRBY2Nlc3NvcihUdWlJbnB1dENoaXBEaXJlY3RpdmUpLFxuICAgIF0sXG4gICAgaG9zdERpcmVjdGl2ZXM6IFtcbiAgICAgICAgVHVpTmF0aXZlVmFsaWRhdG9yLFxuICAgICAgICB7XG4gICAgICAgICAgICBkaXJlY3RpdmU6IFR1aVRleHRmaWVsZEJhc2UsXG4gICAgICAgICAgICBpbnB1dHM6IFsnaW52YWxpZCcsICdmb2N1c2VkJywgJ3JlYWRPbmx5JywgJ3N0YXRlJ10sXG4gICAgICAgIH0sXG4gICAgXSxcbiAgICBob3N0OiB7XG4gICAgICAgIGVudGVya2V5aGludDogJ2VudGVyJyxcbiAgICAgICAgJ1tkaXNhYmxlZF0nOiAnZGlzYWJsZWQoKScsXG4gICAgICAgICcoa2V5ZG93bi5lbnRlci5wcmV2ZW50KSc6ICdvbkVudGVyKCknLFxuICAgICAgICAnKGtleWRvd24uem9uZWxlc3MpJzogJ29uQmFja3NwYWNlKCRldmVudC5rZXkpJyxcbiAgICAgICAgJyhpbnB1dCknOiAnb25JbnB1dCgpJyxcbiAgICAgICAgJyhwYXN0ZS5wcmV2ZW50KSc6ICdvblBhc3RlKCRldmVudCknLFxuICAgICAgICAnKGRyb3AucHJldmVudCknOiAnb25QYXN0ZSgkZXZlbnQpJyxcbiAgICB9LFxufSlcbmV4cG9ydCBjbGFzcyBUdWlJbnB1dENoaXBEaXJlY3RpdmU8VD5cbiAgICBleHRlbmRzIFR1aUNvbnRyb2w8VFtdPlxuICAgIGltcGxlbWVudHMgVHVpVGV4dGZpZWxkQWNjZXNzb3I8VFtdPlxue1xuICAgIHByaXZhdGUgcmVhZG9ubHkgb3B0aW9ucyA9IGluamVjdChUVUlfSU5QVVRfQ0hJUF9PUFRJT05TKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IG1vYmlsZSA9IGluamVjdChUVUlfSVNfTU9CSUxFKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRyb3Bkb3duID0gaW5qZWN0KFR1aURyb3Bkb3duRGlyZWN0aXZlKTtcblxuICAgIHByb3RlY3RlZCByZWFkb25seSB0ZXh0ZmllbGQgPSBpbmplY3QoVHVpVGV4dGZpZWxkTXVsdGlDb21wb25lbnQpO1xuICAgIHByb3RlY3RlZCByZWFkb25seSBvcGVuID0gdHVpRHJvcGRvd25PcGVuKCk7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGhhbmRsZXJzOiBUdWlJdGVtc0hhbmRsZXJzPFQ+ID0gaW5qZWN0KFRVSV9JVEVNU19IQU5ETEVSUyk7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGVuYWJsZWQgPSB0dWlEaXJlY3RpdmVCaW5kaW5nKFxuICAgICAgICBUdWlEcm9wZG93bk9wZW4sXG4gICAgICAgICd0dWlEcm9wZG93bkVuYWJsZWQnLFxuICAgICAgICB0aGlzLmludGVyYWN0aXZlLFxuICAgICAgICB7fSxcbiAgICApO1xuXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHN1YiA9IGluamVjdChUdWlBY3RpdmVab25lKVxuICAgICAgICAudHVpQWN0aXZlWm9uZUNoYW5nZS5waXBlKFxuICAgICAgICAgICAgZmlsdGVyKChhY3RpdmUpID0+ICFhY3RpdmUgJiYgIXRoaXMuZWwubWF0Y2hlcygnc2VsZWN0JykpLFxuICAgICAgICAgICAgdGFrZVVudGlsRGVzdHJveWVkKCksXG4gICAgICAgIClcbiAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLm9uRW50ZXIoKTtcbiAgICAgICAgICAgIHRoaXMudGV4dGZpZWxkLnZhbHVlLnNldCgnJyk7XG4gICAgICAgIH0pO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2VwYXJhdG9yID0gdGhpcy5vcHRpb25zLnNlcGFyYXRvcjtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHVuaXF1ZSA9IHRoaXMub3B0aW9ucy51bmlxdWU7XG5cbiAgICBwdWJsaWMgcmVhZG9ubHkgZWwgPSB0dWlJbmplY3RFbGVtZW50PEhUTUxJbnB1dEVsZW1lbnQ+KCk7XG5cbiAgICBwdWJsaWMgc2V0VmFsdWUodmFsdWU6IFRbXSk6IHZvaWQge1xuICAgICAgICB0aGlzLnRleHRmaWVsZC52YWx1ZS5zZXQoJycpO1xuICAgICAgICB0aGlzLm9uQ2hhbmdlKFxuICAgICAgICAgICAgdGhpcy51bmlxdWUgPyBBcnJheS5mcm9tKG5ldyBTZXQodmFsdWUucmV2ZXJzZSgpKSkucmV2ZXJzZSgpIDogdmFsdWUsXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG9uRW50ZXIoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy50ZXh0ZmllbGQudmFsdWUoKS50cmltKCk7XG4gICAgICAgIGNvbnN0IGl0ZW1zOiBhbnlbXSA9IHRoaXMuc2VwYXJhdG9yID8gdmFsdWUuc3BsaXQodGhpcy5zZXBhcmF0b3IpIDogW3ZhbHVlXTtcbiAgICAgICAgY29uc3QgdmFsaWQgPSBpdGVtcy5maWx0ZXIoXG4gICAgICAgICAgICAoaXRlbSkgPT4gaXRlbSAmJiAhdGhpcy5oYW5kbGVycy5kaXNhYmxlZEl0ZW1IYW5kbGVyKCkoaXRlbSksXG4gICAgICAgICk7XG5cbiAgICAgICAgaWYgKCF2YWx1ZSB8fCAhdmFsaWQubGVuZ3RoKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnNldFZhbHVlKFsuLi50aGlzLnZhbHVlKCksIC4uLnZhbGlkXSk7XG4gICAgICAgIHRoaXMuc2Nyb2xsVG8oKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb25JbnB1dCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vcGVuLnNldCghIXRoaXMuZHJvcGRvd24uY29udGVudCk7XG5cbiAgICAgICAgaWYgKHRoaXMuc2VwYXJhdG9yICYmIHRoaXMudGV4dGZpZWxkLnZhbHVlKCkubWF0Y2godGhpcy5zZXBhcmF0b3IpKSB7XG4gICAgICAgICAgICB0aGlzLm9uRW50ZXIoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc2Nyb2xsVG8oKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBvblBhc3RlKGV2ZW50OiBDbGlwYm9hcmRFdmVudCB8IERyYWdFdmVudCk6IHZvaWQge1xuICAgICAgICBjb25zdCB2YWx1ZSA9XG4gICAgICAgICAgICAnZGF0YVRyYW5zZmVyJyBpbiBldmVudFxuICAgICAgICAgICAgICAgID8gZXZlbnQuZGF0YVRyYW5zZmVyPy5nZXREYXRhKCd0ZXh0L3BsYWluJykgfHwgJydcbiAgICAgICAgICAgICAgICA6IHR1aUdldENsaXBib2FyZERhdGFUZXh0KGV2ZW50KTtcblxuICAgICAgICB0aGlzLnRleHRmaWVsZC52YWx1ZS5zZXQodmFsdWUpO1xuICAgICAgICB0aGlzLm9uRW50ZXIoKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb25CYWNrc3BhY2Uoa2V5OiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgLy8gKGtleWRvd24uYmFja3NwYWNlKSBkb2Vzbid0IGVtaXQgZXZlbnQgb24gZW1wdHkgaW5wdXQgaW4gaW9zIHNhZmFyaVxuICAgICAgICBpZiAoXG4gICAgICAgICAgICBrZXkgPT09ICdCYWNrc3BhY2UnICYmXG4gICAgICAgICAgICAhdGhpcy50ZXh0ZmllbGQudmFsdWUoKSAmJlxuICAgICAgICAgICAgdGhpcy5pbnRlcmFjdGl2ZSgpICYmXG4gICAgICAgICAgICAodGhpcy5tb2JpbGUgfHwgIXRoaXMudGV4dGZpZWxkLml0ZW0pXG4gICAgICAgICkge1xuICAgICAgICAgICAgdGhpcy5vbkNoYW5nZSh0aGlzLnZhbHVlKCkuc2xpY2UoMCwgLTEpKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBzY3JvbGxUbygpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgc2lnbiA9IHRoaXMudGV4dGZpZWxkLmVsLm1hdGNoZXMoJ1tkaXI9XCJydGxcIl0gOnNjb3BlJykgPyAtMSA6IDE7XG5cbiAgICAgICAgLy8gQWxsb3cgY2hhbmdlIGRldGVjdGlvbiB0byBydW4gYW5kIGFkZCBuZXcgdGFnIHRvIERPTVxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMudGV4dGZpZWxkLmVsLnNjcm9sbFRvKHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBzaWduICogTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIsXG4gICAgICAgICAgICAgICAgdG9wOiBOdW1iZXIuTUFYX1NBRkVfSU5URUdFUixcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG59XG4iXX0=
137
+ }] });
138
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtY2hpcC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9raXQvY29tcG9uZW50cy9pbnB1dC1jaGlwL2lucHV0LWNoaXAuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN2RCxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUM5RCxPQUFPLEVBQUMsWUFBWSxFQUFFLFVBQVUsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBQy9ELE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxzQ0FBc0MsQ0FBQztBQUNuRSxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSwyQ0FBMkMsQ0FBQztBQUM3RSxPQUFPLEVBQUMsYUFBYSxFQUFFLHdCQUF3QixFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDN0UsT0FBTyxFQUFDLHVCQUF1QixFQUFFLGdCQUFnQixFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDbEYsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFFdEUsT0FBTyxFQUNILHNCQUFzQixFQUN0QixnQkFBZ0IsRUFDaEIsMEJBQTBCLEdBQzdCLE1BQU0scUNBQXFDLENBQUM7QUFDN0MsT0FBTyxFQUNILG9CQUFvQixFQUNwQixlQUFlLEVBQ2YsZUFBZSxHQUNsQixNQUFNLG9DQUFvQyxDQUFDO0FBRTVDLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLDBDQUEwQyxDQUFDO0FBQzVFLE9BQU8sRUFBQyxNQUFNLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFFNUIsT0FBTyxFQUFDLHNCQUFzQixFQUFDLE1BQU0sc0JBQXNCLENBQUM7Ozs7QUFFNUQsdURBQXVEO0FBQ3ZELE1BWWEseUJBQ1QsU0FBUSxVQUFlO0lBYjNCOztRQWdCcUIsWUFBTyxHQUFHLE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO1FBQ3pDLFdBQU0sR0FBRyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDL0IsYUFBUSxHQUFHLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBRXRDLGNBQVMsR0FBRyxNQUFNLENBQUMsMEJBQTBCLENBQUMsQ0FBQztRQUMvQyxTQUFJLEdBQUcsZUFBZSxFQUFFLENBQUM7UUFDekIsYUFBUSxHQUF3QixNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUMzRCxZQUFPLEdBQUcsbUJBQW1CLENBQzVDLGVBQWUsRUFDZixvQkFBb0IsRUFDcEIsSUFBSSxDQUFDLFdBQVcsRUFDaEIsRUFBRSxDQUNMLENBQUM7UUFFaUIsUUFBRyxHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUM7YUFDekMsbUJBQW1CLENBQUMsSUFBSSxDQUNyQixNQUFNLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsRUFDekQsa0JBQWtCLEVBQUUsQ0FDdkI7YUFDQSxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ1osSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2YsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ2pDLENBQUMsQ0FBQyxDQUFDO1FBR0EsY0FBUyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDO1FBR25DLFdBQU0sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQztRQUVwQixPQUFFLEdBQUcsZ0JBQWdCLEVBQW9CLENBQUM7S0FtRTdEO0lBakVVLFFBQVEsQ0FBQyxLQUFVO1FBQ3RCLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUM3QixJQUFJLENBQUMsUUFBUSxDQUNULElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUN2RSxDQUFDO0lBQ04sQ0FBQztJQUVTLE9BQU87UUFDYixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzVDLE1BQU0sS0FBSyxHQUFVLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzVFLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQ3RCLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLG1CQUFtQixFQUFFLENBQUMsSUFBSSxDQUFDLENBQy9ELENBQUM7UUFFRixJQUFJLENBQUMsS0FBSyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRTtZQUN6QixPQUFPO1NBQ1Y7UUFFRCxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxFQUFFLEVBQUUsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQzNDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNwQixDQUFDO0lBRVMsT0FBTztRQUNiLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRXZDLElBQUksSUFBSSxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUU7WUFDaEUsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1NBQ2xCO2FBQU07WUFDSCxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7U0FDbkI7SUFDTCxDQUFDO0lBRVMsT0FBTyxDQUFDLEtBQWlDO1FBQy9DLE1BQU0sS0FBSyxHQUNQLGNBQWMsSUFBSSxLQUFLO1lBQ25CLENBQUMsQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUFFLE9BQU8sQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFO1lBQ2pELENBQUMsQ0FBQyx1QkFBdUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUV6QyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDaEMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ25CLENBQUM7SUFFUyxXQUFXLENBQUMsR0FBVztRQUM3QixzRUFBc0U7UUFDdEUsSUFDSSxHQUFHLEtBQUssV0FBVztZQUNuQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFO1lBQ3ZCLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDbEIsQ0FBQyxJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFDdkM7WUFDRSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUM1QztJQUNMLENBQUM7SUFFUyxRQUFRO1FBQ2QsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFdEUsdURBQXVEO1FBQ3ZELFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDWixJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBQ3ZCLElBQUksRUFBRSxJQUFJLEdBQUcsTUFBTSxDQUFDLGdCQUFnQjtnQkFDcEMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxnQkFBZ0I7YUFDL0IsQ0FBQyxDQUFDO1FBQ1AsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDOytHQXBHUSx5QkFBeUI7bUdBQXpCLHlCQUF5Qjs7U0FBekIseUJBQXlCOzRGQUF6Qix5QkFBeUI7a0JBWnJDLFNBQVM7bUJBQUM7b0JBQ1AsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLElBQUksRUFBRTt3QkFDRixZQUFZLEVBQUUsT0FBTzt3QkFDckIsWUFBWSxFQUFFLFlBQVk7d0JBQzFCLHlCQUF5QixFQUFFLFdBQVc7d0JBQ3RDLG9CQUFvQixFQUFFLHlCQUF5Qjt3QkFDL0MsU0FBUyxFQUFFLFdBQVc7d0JBQ3RCLGlCQUFpQixFQUFFLGlCQUFpQjt3QkFDcEMsZ0JBQWdCLEVBQUUsaUJBQWlCO3FCQUN0QztpQkFDSjs4QkE4QlUsU0FBUztzQkFEZixLQUFLO2dCQUlDLE1BQU07c0JBRFosS0FBSzs7QUF3RVYsTUFnQmEscUJBQXlCLFNBQVEseUJBQTRCOytHQUE3RCxxQkFBcUI7bUdBQXJCLHFCQUFxQixrRUFibkI7WUFDUCxZQUFZLENBQUMscUJBQXFCLENBQUM7WUFDbkMsd0JBQXdCLENBQUMsRUFBRSxDQUFDO1lBQzVCLHNCQUFzQixDQUFDLHFCQUFxQixDQUFDO1NBQ2hEOztTQVNRLHFCQUFxQjs0RkFBckIscUJBQXFCO2tCQWhCakMsU0FBUzttQkFBQztvQkFDUCxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFLHFCQUFxQjtvQkFDL0IsU0FBUyxFQUFFO3dCQUNQLFlBQVksdUJBQXVCO3dCQUNuQyx3QkFBd0IsQ0FBQyxFQUFFLENBQUM7d0JBQzVCLHNCQUFzQix1QkFBdUI7cUJBQ2hEO29CQUNELGNBQWMsRUFBRTt3QkFDWixrQkFBa0I7d0JBQ2xCOzRCQUNJLFNBQVMsRUFBRSxnQkFBZ0I7NEJBQzNCLE1BQU0sRUFBRSxDQUFDLFNBQVMsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE9BQU8sQ0FBQzt5QkFDdEQ7cUJBQ0o7aUJBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0RpcmVjdGl2ZSwgaW5qZWN0LCBJbnB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge3Rha2VVbnRpbERlc3Ryb3llZH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHt0dWlBc0NvbnRyb2wsIFR1aUNvbnRyb2x9IGZyb20gJ0B0YWlnYS11aS9jZGsvY2xhc3Nlcyc7XG5pbXBvcnQge1R1aUFjdGl2ZVpvbmV9IGZyb20gJ0B0YWlnYS11aS9jZGsvZGlyZWN0aXZlcy9hY3RpdmUtem9uZSc7XG5pbXBvcnQge1R1aU5hdGl2ZVZhbGlkYXRvcn0gZnJvbSAnQHRhaWdhLXVpL2Nkay9kaXJlY3RpdmVzL25hdGl2ZS12YWxpZGF0b3InO1xuaW1wb3J0IHtUVUlfSVNfTU9CSUxFLCB0dWlGYWxsYmFja1ZhbHVlUHJvdmlkZXJ9IGZyb20gJ0B0YWlnYS11aS9jZGsvdG9rZW5zJztcbmltcG9ydCB7dHVpR2V0Q2xpcGJvYXJkRGF0YVRleHQsIHR1aUluamVjdEVsZW1lbnR9IGZyb20gJ0B0YWlnYS11aS9jZGsvdXRpbHMvZG9tJztcbmltcG9ydCB7dHVpRGlyZWN0aXZlQmluZGluZ30gZnJvbSAnQHRhaWdhLXVpL2Nkay91dGlscy9taXNjZWxsYW5lb3VzJztcbmltcG9ydCB0eXBlIHtUdWlUZXh0ZmllbGRBY2Nlc3Nvcn0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvY29tcG9uZW50cy90ZXh0ZmllbGQnO1xuaW1wb3J0IHtcbiAgICB0dWlBc1RleHRmaWVsZEFjY2Vzc29yLFxuICAgIFR1aVRleHRmaWVsZEJhc2UsXG4gICAgVHVpVGV4dGZpZWxkTXVsdGlDb21wb25lbnQsXG59IGZyb20gJ0B0YWlnYS11aS9jb3JlL2NvbXBvbmVudHMvdGV4dGZpZWxkJztcbmltcG9ydCB7XG4gICAgVHVpRHJvcGRvd25EaXJlY3RpdmUsXG4gICAgVHVpRHJvcGRvd25PcGVuLFxuICAgIHR1aURyb3Bkb3duT3Blbixcbn0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvZGlyZWN0aXZlcy9kcm9wZG93bic7XG5pbXBvcnQgdHlwZSB7VHVpSXRlbXNIYW5kbGVyc30gZnJvbSAnQHRhaWdhLXVpL2NvcmUvZGlyZWN0aXZlcy9pdGVtcy1oYW5kbGVycyc7XG5pbXBvcnQge1RVSV9JVEVNU19IQU5ETEVSU30gZnJvbSAnQHRhaWdhLXVpL2NvcmUvZGlyZWN0aXZlcy9pdGVtcy1oYW5kbGVycyc7XG5pbXBvcnQge2ZpbHRlcn0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7VFVJX0lOUFVUX0NISVBfT1BUSU9OU30gZnJvbSAnLi9pbnB1dC1jaGlwLm9wdGlvbnMnO1xuXG4vLyBUT0RPKHY1KTogcmVtb3ZlIGJhc2UgY29tcG9uZW50IGFmdGVyIGFuZ3VsYXIgdXBkYXRlXG5ARGlyZWN0aXZlKHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgZW50ZXJrZXloaW50OiAnZW50ZXInLFxuICAgICAgICAnW2Rpc2FibGVkXSc6ICdkaXNhYmxlZCgpJyxcbiAgICAgICAgJyhrZXlkb3duLmVudGVyLnByZXZlbnQpJzogJ29uRW50ZXIoKScsXG4gICAgICAgICcoa2V5ZG93bi56b25lbGVzcyknOiAnb25CYWNrc3BhY2UoJGV2ZW50LmtleSknLFxuICAgICAgICAnKGlucHV0KSc6ICdvbklucHV0KCknLFxuICAgICAgICAnKHBhc3RlLnByZXZlbnQpJzogJ29uUGFzdGUoJGV2ZW50KScsXG4gICAgICAgICcoZHJvcC5wcmV2ZW50KSc6ICdvblBhc3RlKCRldmVudCknLFxuICAgIH0sXG59KVxuZXhwb3J0IGNsYXNzIFR1aUlucHV0Q2hpcEJhc2VEaXJlY3RpdmU8VD5cbiAgICBleHRlbmRzIFR1aUNvbnRyb2w8VFtdPlxuICAgIGltcGxlbWVudHMgVHVpVGV4dGZpZWxkQWNjZXNzb3I8VFtdPlxue1xuICAgIHByaXZhdGUgcmVhZG9ubHkgb3B0aW9ucyA9IGluamVjdChUVUlfSU5QVVRfQ0hJUF9PUFRJT05TKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IG1vYmlsZSA9IGluamVjdChUVUlfSVNfTU9CSUxFKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRyb3Bkb3duID0gaW5qZWN0KFR1aURyb3Bkb3duRGlyZWN0aXZlKTtcblxuICAgIHByb3RlY3RlZCByZWFkb25seSB0ZXh0ZmllbGQgPSBpbmplY3QoVHVpVGV4dGZpZWxkTXVsdGlDb21wb25lbnQpO1xuICAgIHByb3RlY3RlZCByZWFkb25seSBvcGVuID0gdHVpRHJvcGRvd25PcGVuKCk7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGhhbmRsZXJzOiBUdWlJdGVtc0hhbmRsZXJzPFQ+ID0gaW5qZWN0KFRVSV9JVEVNU19IQU5ETEVSUyk7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGVuYWJsZWQgPSB0dWlEaXJlY3RpdmVCaW5kaW5nKFxuICAgICAgICBUdWlEcm9wZG93bk9wZW4sXG4gICAgICAgICd0dWlEcm9wZG93bkVuYWJsZWQnLFxuICAgICAgICB0aGlzLmludGVyYWN0aXZlLFxuICAgICAgICB7fSxcbiAgICApO1xuXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHN1YiA9IGluamVjdChUdWlBY3RpdmVab25lKVxuICAgICAgICAudHVpQWN0aXZlWm9uZUNoYW5nZS5waXBlKFxuICAgICAgICAgICAgZmlsdGVyKChhY3RpdmUpID0+ICFhY3RpdmUgJiYgIXRoaXMuZWwubWF0Y2hlcygnc2VsZWN0JykpLFxuICAgICAgICAgICAgdGFrZVVudGlsRGVzdHJveWVkKCksXG4gICAgICAgIClcbiAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLm9uRW50ZXIoKTtcbiAgICAgICAgICAgIHRoaXMudGV4dGZpZWxkLnZhbHVlLnNldCgnJyk7XG4gICAgICAgIH0pO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2VwYXJhdG9yID0gdGhpcy5vcHRpb25zLnNlcGFyYXRvcjtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHVuaXF1ZSA9IHRoaXMub3B0aW9ucy51bmlxdWU7XG5cbiAgICBwdWJsaWMgcmVhZG9ubHkgZWwgPSB0dWlJbmplY3RFbGVtZW50PEhUTUxJbnB1dEVsZW1lbnQ+KCk7XG5cbiAgICBwdWJsaWMgc2V0VmFsdWUodmFsdWU6IFRbXSk6IHZvaWQge1xuICAgICAgICB0aGlzLnRleHRmaWVsZC52YWx1ZS5zZXQoJycpO1xuICAgICAgICB0aGlzLm9uQ2hhbmdlKFxuICAgICAgICAgICAgdGhpcy51bmlxdWUgPyBBcnJheS5mcm9tKG5ldyBTZXQodmFsdWUucmV2ZXJzZSgpKSkucmV2ZXJzZSgpIDogdmFsdWUsXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG9uRW50ZXIoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy50ZXh0ZmllbGQudmFsdWUoKS50cmltKCk7XG4gICAgICAgIGNvbnN0IGl0ZW1zOiBhbnlbXSA9IHRoaXMuc2VwYXJhdG9yID8gdmFsdWUuc3BsaXQodGhpcy5zZXBhcmF0b3IpIDogW3ZhbHVlXTtcbiAgICAgICAgY29uc3QgdmFsaWQgPSBpdGVtcy5maWx0ZXIoXG4gICAgICAgICAgICAoaXRlbSkgPT4gaXRlbSAmJiAhdGhpcy5oYW5kbGVycy5kaXNhYmxlZEl0ZW1IYW5kbGVyKCkoaXRlbSksXG4gICAgICAgICk7XG5cbiAgICAgICAgaWYgKCF2YWx1ZSB8fCAhdmFsaWQubGVuZ3RoKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnNldFZhbHVlKFsuLi50aGlzLnZhbHVlKCksIC4uLnZhbGlkXSk7XG4gICAgICAgIHRoaXMuc2Nyb2xsVG8oKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb25JbnB1dCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vcGVuLnNldCghIXRoaXMuZHJvcGRvd24uY29udGVudCk7XG5cbiAgICAgICAgaWYgKHRoaXMuc2VwYXJhdG9yICYmIHRoaXMudGV4dGZpZWxkLnZhbHVlKCkubWF0Y2godGhpcy5zZXBhcmF0b3IpKSB7XG4gICAgICAgICAgICB0aGlzLm9uRW50ZXIoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc2Nyb2xsVG8oKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBvblBhc3RlKGV2ZW50OiBDbGlwYm9hcmRFdmVudCB8IERyYWdFdmVudCk6IHZvaWQge1xuICAgICAgICBjb25zdCB2YWx1ZSA9XG4gICAgICAgICAgICAnZGF0YVRyYW5zZmVyJyBpbiBldmVudFxuICAgICAgICAgICAgICAgID8gZXZlbnQuZGF0YVRyYW5zZmVyPy5nZXREYXRhKCd0ZXh0L3BsYWluJykgfHwgJydcbiAgICAgICAgICAgICAgICA6IHR1aUdldENsaXBib2FyZERhdGFUZXh0KGV2ZW50KTtcblxuICAgICAgICB0aGlzLnRleHRmaWVsZC52YWx1ZS5zZXQodmFsdWUpO1xuICAgICAgICB0aGlzLm9uRW50ZXIoKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb25CYWNrc3BhY2Uoa2V5OiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgLy8gKGtleWRvd24uYmFja3NwYWNlKSBkb2Vzbid0IGVtaXQgZXZlbnQgb24gZW1wdHkgaW5wdXQgaW4gaW9zIHNhZmFyaVxuICAgICAgICBpZiAoXG4gICAgICAgICAgICBrZXkgPT09ICdCYWNrc3BhY2UnICYmXG4gICAgICAgICAgICAhdGhpcy50ZXh0ZmllbGQudmFsdWUoKSAmJlxuICAgICAgICAgICAgdGhpcy5pbnRlcmFjdGl2ZSgpICYmXG4gICAgICAgICAgICAodGhpcy5tb2JpbGUgfHwgIXRoaXMudGV4dGZpZWxkLml0ZW0pXG4gICAgICAgICkge1xuICAgICAgICAgICAgdGhpcy5vbkNoYW5nZSh0aGlzLnZhbHVlKCkuc2xpY2UoMCwgLTEpKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBzY3JvbGxUbygpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgc2lnbiA9IHRoaXMudGV4dGZpZWxkLmVsLm1hdGNoZXMoJ1tkaXI9XCJydGxcIl0gOnNjb3BlJykgPyAtMSA6IDE7XG5cbiAgICAgICAgLy8gQWxsb3cgY2hhbmdlIGRldGVjdGlvbiB0byBydW4gYW5kIGFkZCBuZXcgdGFnIHRvIERPTVxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMudGV4dGZpZWxkLmVsLnNjcm9sbFRvKHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBzaWduICogTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIsXG4gICAgICAgICAgICAgICAgdG9wOiBOdW1iZXIuTUFYX1NBRkVfSU5URUdFUixcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG59XG5cbkBEaXJlY3RpdmUoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgc2VsZWN0b3I6ICdpbnB1dFt0dWlJbnB1dENoaXBdJyxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgdHVpQXNDb250cm9sKFR1aUlucHV0Q2hpcERpcmVjdGl2ZSksXG4gICAgICAgIHR1aUZhbGxiYWNrVmFsdWVQcm92aWRlcihbXSksXG4gICAgICAgIHR1aUFzVGV4dGZpZWxkQWNjZXNzb3IoVHVpSW5wdXRDaGlwRGlyZWN0aXZlKSxcbiAgICBdLFxuICAgIGhvc3REaXJlY3RpdmVzOiBbXG4gICAgICAgIFR1aU5hdGl2ZVZhbGlkYXRvcixcbiAgICAgICAge1xuICAgICAgICAgICAgZGlyZWN0aXZlOiBUdWlUZXh0ZmllbGRCYXNlLFxuICAgICAgICAgICAgaW5wdXRzOiBbJ2ludmFsaWQnLCAnZm9jdXNlZCcsICdyZWFkT25seScsICdzdGF0ZSddLFxuICAgICAgICB9LFxuICAgIF0sXG59KVxuZXhwb3J0IGNsYXNzIFR1aUlucHV0Q2hpcERpcmVjdGl2ZTxUPiBleHRlbmRzIFR1aUlucHV0Q2hpcEJhc2VEaXJlY3RpdmU8VD4ge31cbiJdfQ==