@taiga-ui/kit 3.37.0 → 3.38.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.
Files changed (132) hide show
  1. package/bundles/taiga-ui-kit-components-badged-content.umd.js +1 -1
  2. package/bundles/taiga-ui-kit-components-badged-content.umd.js.map +1 -1
  3. package/bundles/taiga-ui-kit-components-breadcrumbs.umd.js +1 -1
  4. package/bundles/taiga-ui-kit-components-breadcrumbs.umd.js.map +1 -1
  5. package/bundles/taiga-ui-kit-components-calendar-month.umd.js +1 -1
  6. package/bundles/taiga-ui-kit-components-calendar-month.umd.js.map +1 -1
  7. package/bundles/taiga-ui-kit-components-combo-box.umd.js +17 -3
  8. package/bundles/taiga-ui-kit-components-combo-box.umd.js.map +1 -1
  9. package/bundles/taiga-ui-kit-components-input-copy.umd.js +17 -14
  10. package/bundles/taiga-ui-kit-components-input-copy.umd.js.map +1 -1
  11. package/bundles/taiga-ui-kit-components-input-count.umd.js +1 -1
  12. package/bundles/taiga-ui-kit-components-input-count.umd.js.map +1 -1
  13. package/bundles/taiga-ui-kit-components-input-date-range.umd.js +19 -17
  14. package/bundles/taiga-ui-kit-components-input-date-range.umd.js.map +1 -1
  15. package/bundles/taiga-ui-kit-components-input-date-time.umd.js +25 -19
  16. package/bundles/taiga-ui-kit-components-input-date-time.umd.js.map +1 -1
  17. package/bundles/taiga-ui-kit-components-input-date.umd.js +17 -14
  18. package/bundles/taiga-ui-kit-components-input-date.umd.js.map +1 -1
  19. package/bundles/taiga-ui-kit-components-input-month-range.umd.js +17 -3
  20. package/bundles/taiga-ui-kit-components-input-month-range.umd.js.map +1 -1
  21. package/bundles/taiga-ui-kit-components-input-month.umd.js +17 -3
  22. package/bundles/taiga-ui-kit-components-input-month.umd.js.map +1 -1
  23. package/bundles/taiga-ui-kit-components-input-number.umd.js +67 -25
  24. package/bundles/taiga-ui-kit-components-input-number.umd.js.map +1 -1
  25. package/bundles/taiga-ui-kit-components-input-password.umd.js +13 -16
  26. package/bundles/taiga-ui-kit-components-input-password.umd.js.map +1 -1
  27. package/bundles/taiga-ui-kit-components-input-phone-international.umd.js +18 -4
  28. package/bundles/taiga-ui-kit-components-input-phone-international.umd.js.map +1 -1
  29. package/bundles/taiga-ui-kit-components-input-phone.umd.js +17 -3
  30. package/bundles/taiga-ui-kit-components-input-phone.umd.js.map +1 -1
  31. package/bundles/taiga-ui-kit-components-input-range.umd.js +1 -1
  32. package/bundles/taiga-ui-kit-components-input-range.umd.js.map +1 -1
  33. package/bundles/taiga-ui-kit-components-input-tag.umd.js +11 -8
  34. package/bundles/taiga-ui-kit-components-input-tag.umd.js.map +1 -1
  35. package/bundles/taiga-ui-kit-components-input-time.umd.js +17 -14
  36. package/bundles/taiga-ui-kit-components-input-time.umd.js.map +1 -1
  37. package/bundles/taiga-ui-kit-components-input-year.umd.js +39 -12
  38. package/bundles/taiga-ui-kit-components-input-year.umd.js.map +1 -1
  39. package/bundles/taiga-ui-kit-components-input.umd.js +17 -3
  40. package/bundles/taiga-ui-kit-components-input.umd.js.map +1 -1
  41. package/bundles/taiga-ui-kit-components-progress.umd.js +1 -1
  42. package/bundles/taiga-ui-kit-components-select.umd.js +17 -3
  43. package/bundles/taiga-ui-kit-components-select.umd.js.map +1 -1
  44. package/bundles/taiga-ui-kit-components-text-area.umd.js +3 -3
  45. package/bundles/taiga-ui-kit-components-text-area.umd.js.map +1 -1
  46. package/components/combo-box/combo-box.component.d.ts +5 -3
  47. package/components/input/input.component.d.ts +5 -3
  48. package/components/input-copy/input-copy.component.d.ts +3 -3
  49. package/components/input-date/input-date.component.d.ts +4 -4
  50. package/components/input-date-range/input-date-range.component.d.ts +4 -4
  51. package/components/input-date-time/input-date-time.component.d.ts +5 -5
  52. package/components/input-month/input-month.component.d.ts +5 -3
  53. package/components/input-month-range/input-month-range.component.d.ts +5 -3
  54. package/components/input-number/input-number.component.d.ts +9 -5
  55. package/components/input-password/input-password.component.d.ts +1 -2
  56. package/components/input-phone/input-phone.component.d.ts +5 -3
  57. package/components/input-phone-international/input-phone-international.component.d.ts +5 -3
  58. package/components/input-tag/input-tag.component.d.ts +1 -1
  59. package/components/input-time/input-time.component.d.ts +3 -3
  60. package/components/input-year/input-year.component.d.ts +8 -4
  61. package/components/input-year/input-year.directive.d.ts +1 -0
  62. package/components/select/select.component.d.ts +5 -3
  63. package/esm2015/components/badged-content/badged-content.component.js +1 -1
  64. package/esm2015/components/breadcrumbs/breadcrumbs.component.js +1 -1
  65. package/esm2015/components/calendar-month/calendar-month.component.js +1 -1
  66. package/esm2015/components/combo-box/combo-box.component.js +16 -6
  67. package/esm2015/components/input/input.component.js +16 -6
  68. package/esm2015/components/input-copy/input-copy.component.js +15 -12
  69. package/esm2015/components/input-count/input-count.component.js +1 -1
  70. package/esm2015/components/input-date/input-date.component.js +15 -12
  71. package/esm2015/components/input-date-range/input-date-range.component.js +17 -15
  72. package/esm2015/components/input-date-time/input-date-time.component.js +18 -12
  73. package/esm2015/components/input-month/input-month.component.js +16 -6
  74. package/esm2015/components/input-month-range/input-month-range.component.js +16 -6
  75. package/esm2015/components/input-number/input-number.component.js +61 -30
  76. package/esm2015/components/input-password/input-password.component.js +12 -16
  77. package/esm2015/components/input-phone/input-phone.component.js +16 -6
  78. package/esm2015/components/input-phone-international/input-phone-international.component.js +17 -7
  79. package/esm2015/components/input-range/input-range.component.js +2 -2
  80. package/esm2015/components/input-tag/input-tag.component.js +9 -6
  81. package/esm2015/components/input-time/input-time.component.js +15 -12
  82. package/esm2015/components/input-year/input-year.component.js +28 -13
  83. package/esm2015/components/input-year/input-year.directive.js +5 -1
  84. package/esm2015/components/progress/progress-label/progress-label.component.js +1 -1
  85. package/esm2015/components/select/select.component.js +16 -6
  86. package/esm2015/components/text-area/text-area.component.js +5 -5
  87. package/fesm2015/taiga-ui-kit-components-badged-content.js +1 -1
  88. package/fesm2015/taiga-ui-kit-components-badged-content.js.map +1 -1
  89. package/fesm2015/taiga-ui-kit-components-breadcrumbs.js +1 -1
  90. package/fesm2015/taiga-ui-kit-components-breadcrumbs.js.map +1 -1
  91. package/fesm2015/taiga-ui-kit-components-calendar-month.js +1 -1
  92. package/fesm2015/taiga-ui-kit-components-calendar-month.js.map +1 -1
  93. package/fesm2015/taiga-ui-kit-components-combo-box.js +15 -5
  94. package/fesm2015/taiga-ui-kit-components-combo-box.js.map +1 -1
  95. package/fesm2015/taiga-ui-kit-components-input-copy.js +14 -11
  96. package/fesm2015/taiga-ui-kit-components-input-copy.js.map +1 -1
  97. package/fesm2015/taiga-ui-kit-components-input-count.js +1 -1
  98. package/fesm2015/taiga-ui-kit-components-input-count.js.map +1 -1
  99. package/fesm2015/taiga-ui-kit-components-input-date-range.js +16 -14
  100. package/fesm2015/taiga-ui-kit-components-input-date-range.js.map +1 -1
  101. package/fesm2015/taiga-ui-kit-components-input-date-time.js +17 -11
  102. package/fesm2015/taiga-ui-kit-components-input-date-time.js.map +1 -1
  103. package/fesm2015/taiga-ui-kit-components-input-date.js +14 -11
  104. package/fesm2015/taiga-ui-kit-components-input-date.js.map +1 -1
  105. package/fesm2015/taiga-ui-kit-components-input-month-range.js +15 -5
  106. package/fesm2015/taiga-ui-kit-components-input-month-range.js.map +1 -1
  107. package/fesm2015/taiga-ui-kit-components-input-month.js +15 -5
  108. package/fesm2015/taiga-ui-kit-components-input-month.js.map +1 -1
  109. package/fesm2015/taiga-ui-kit-components-input-number.js +60 -29
  110. package/fesm2015/taiga-ui-kit-components-input-number.js.map +1 -1
  111. package/fesm2015/taiga-ui-kit-components-input-password.js +11 -15
  112. package/fesm2015/taiga-ui-kit-components-input-password.js.map +1 -1
  113. package/fesm2015/taiga-ui-kit-components-input-phone-international.js +16 -6
  114. package/fesm2015/taiga-ui-kit-components-input-phone-international.js.map +1 -1
  115. package/fesm2015/taiga-ui-kit-components-input-phone.js +15 -5
  116. package/fesm2015/taiga-ui-kit-components-input-phone.js.map +1 -1
  117. package/fesm2015/taiga-ui-kit-components-input-range.js +1 -1
  118. package/fesm2015/taiga-ui-kit-components-input-range.js.map +1 -1
  119. package/fesm2015/taiga-ui-kit-components-input-tag.js +8 -5
  120. package/fesm2015/taiga-ui-kit-components-input-tag.js.map +1 -1
  121. package/fesm2015/taiga-ui-kit-components-input-time.js +14 -11
  122. package/fesm2015/taiga-ui-kit-components-input-time.js.map +1 -1
  123. package/fesm2015/taiga-ui-kit-components-input-year.js +31 -12
  124. package/fesm2015/taiga-ui-kit-components-input-year.js.map +1 -1
  125. package/fesm2015/taiga-ui-kit-components-input.js +15 -5
  126. package/fesm2015/taiga-ui-kit-components-input.js.map +1 -1
  127. package/fesm2015/taiga-ui-kit-components-progress.js +1 -1
  128. package/fesm2015/taiga-ui-kit-components-select.js +15 -5
  129. package/fesm2015/taiga-ui-kit-components-select.js.map +1 -1
  130. package/fesm2015/taiga-ui-kit-components-text-area.js +4 -4
  131. package/fesm2015/taiga-ui-kit-components-text-area.js.map +1 -1
  132. package/package.json +7 -7
@@ -18,16 +18,15 @@ export declare class TuiInputPasswordComponent extends AbstractTuiControl<string
18
18
  readonly computedAppearance$: Observable<string>;
19
19
  readonly type: TuiContextWithImplicit<TuiSizeL | TuiSizeS>;
20
20
  constructor(control: NgControl | null, cdr: ChangeDetectorRef, textfieldSize: TuiTextfieldSizeDirective, passwordTexts$: Observable<[string, string]>, options: TuiInputPasswordOptions, hintOptions: TuiHintOptionsDirective | null, mode$: Observable<TuiBrightness | null>);
21
+ get size(): TuiSizeL | TuiSizeS;
21
22
  get nativeFocusableElement(): TuiNativeFocusableElement | null;
22
23
  get focused(): boolean;
23
24
  get icon(): PolymorpheusContent<TuiContextWithImplicit<TuiSizeL | TuiSizeS>>;
24
- get context(): TuiContextWithImplicit<TuiSizeL | TuiSizeS>;
25
25
  get inputType(): TuiInputType;
26
26
  onValueChange(textValue: string): void;
27
27
  onFocused(focused: boolean): void;
28
28
  togglePasswordVisibility(): void;
29
29
  protected getFallbackValue(): string;
30
- private getContext;
31
30
  static ɵfac: i0.ɵɵFactoryDeclaration<TuiInputPasswordComponent, [{ optional: true; self: true; }, null, null, null, null, { optional: true; }, null]>;
32
31
  static ɵcmp: i0.ɵɵComponentDeclaration<TuiInputPasswordComponent, "tui-input-password", never, {}, {}, never, ["*", "input"]>;
33
32
  }
@@ -2,12 +2,13 @@ import { ChangeDetectorRef, EventEmitter, TemplateRef } from '@angular/core';
2
2
  import { NgControl } from '@angular/forms';
3
3
  import { MaskitoOptions } from '@maskito/core';
4
4
  import { AbstractTuiControl, TuiActiveZoneDirective, TuiContextWithImplicit, TuiFocusableElementAccessor, TuiInputMode } from '@taiga-ui/cdk';
5
- import { TuiDataListHost, TuiTextfieldCleanerDirective } from '@taiga-ui/core';
5
+ import { TuiDataListHost, TuiSizeL, TuiSizeS, TuiTextfieldCleanerDirective, TuiTextfieldSizeDirective } from '@taiga-ui/core';
6
6
  import { TuiInputPhoneOptions } from './input-phone.options';
7
7
  import * as i0 from "@angular/core";
8
8
  export declare class TuiInputPhoneComponent extends AbstractTuiControl<string> implements TuiFocusableElementAccessor, TuiDataListHost<string> {
9
9
  private readonly textfieldCleaner;
10
10
  private readonly options;
11
+ private readonly textfieldSize;
11
12
  private readonly dropdown?;
12
13
  private readonly textfield?;
13
14
  set countryCodeSetter(newCountryCode: string);
@@ -18,7 +19,8 @@ export declare class TuiInputPhoneComponent extends AbstractTuiControl<string> i
18
19
  readonly datalist?: TemplateRef<TuiContextWithImplicit<TuiActiveZoneDirective>>;
19
20
  countryCode: string;
20
21
  open: boolean;
21
- constructor(control: NgControl | null, cdr: ChangeDetectorRef, textfieldCleaner: TuiTextfieldCleanerDirective, options: TuiInputPhoneOptions);
22
+ constructor(control: NgControl | null, cdr: ChangeDetectorRef, textfieldCleaner: TuiTextfieldCleanerDirective, options: TuiInputPhoneOptions, textfieldSize: TuiTextfieldSizeDirective);
23
+ get size(): TuiSizeL | TuiSizeS;
22
24
  get nativeFocusableElement(): HTMLInputElement | null;
23
25
  get focused(): boolean;
24
26
  get nativeValue(): string;
@@ -40,6 +42,6 @@ export declare class TuiInputPhoneComponent extends AbstractTuiControl<string> i
40
42
  private focusInput;
41
43
  private updateSearch;
42
44
  private updateValueWithNewCountryCode;
43
- static ɵfac: i0.ɵɵFactoryDeclaration<TuiInputPhoneComponent, [{ optional: true; self: true; }, null, null, null]>;
45
+ static ɵfac: i0.ɵɵFactoryDeclaration<TuiInputPhoneComponent, [{ optional: true; self: true; }, null, null, null, null]>;
44
46
  static ɵcmp: i0.ɵɵComponentDeclaration<TuiInputPhoneComponent, "tui-input-phone", never, { "countryCodeSetter": "countryCode"; "phoneMaskAfterCountryCode": "phoneMaskAfterCountryCode"; "allowText": "allowText"; "search": "search"; }, { "searchChange": "searchChange"; }, ["datalist"], ["*", "input"]>;
45
47
  }
@@ -1,7 +1,7 @@
1
1
  import { ChangeDetectorRef, EventEmitter } from '@angular/core';
2
2
  import { NgControl } from '@angular/forms';
3
3
  import { AbstractTuiControl, TuiContextWithImplicit, TuiFocusableElementAccessor, TuiMapper } from '@taiga-ui/cdk';
4
- import { TuiFlagPipe, TuiSizeL, TuiSizeM, TuiSizeS } from '@taiga-ui/core';
4
+ import { TuiFlagPipe, TuiSizeL, TuiSizeM, TuiSizeS, TuiTextfieldSizeDirective } from '@taiga-ui/core';
5
5
  import { TuiCountryIsoCode } from '@taiga-ui/i18n';
6
6
  import { TuiToCountryCodePipe } from '@taiga-ui/kit/pipes';
7
7
  import { PolymorpheusContent } from '@tinkoff/ng-polymorpheus';
@@ -14,6 +14,7 @@ export declare class TuiInputPhoneInternationalComponent extends AbstractTuiCont
14
14
  private readonly options;
15
15
  private readonly flagPipe;
16
16
  private readonly extractCountryCodePipe;
17
+ private readonly textfieldSize;
17
18
  private readonly inputPhoneComponent?;
18
19
  private readonly primitiveTextfield?;
19
20
  set isoCode(code: TuiCountryIsoCode);
@@ -22,7 +23,8 @@ export declare class TuiInputPhoneInternationalComponent extends AbstractTuiCont
22
23
  countryIsoCode: TuiCountryIsoCode;
23
24
  open: boolean;
24
25
  readonly arrow: PolymorpheusContent<TuiContextWithImplicit<TuiSizeL | TuiSizeM | TuiSizeS>>;
25
- constructor(control: NgControl | null, cdr: ChangeDetectorRef, countriesNames$: Observable<Record<TuiCountryIsoCode, string>>, countriesMasks: Record<TuiCountryIsoCode, string>, options: TuiInputPhoneInternationalOptions, flagPipe: TuiFlagPipe, extractCountryCodePipe: TuiToCountryCodePipe);
26
+ constructor(control: NgControl | null, cdr: ChangeDetectorRef, countriesNames$: Observable<Record<TuiCountryIsoCode, string>>, countriesMasks: Record<TuiCountryIsoCode, string>, options: TuiInputPhoneInternationalOptions, flagPipe: TuiFlagPipe, extractCountryCodePipe: TuiToCountryCodePipe, textfieldSize: TuiTextfieldSizeDirective);
27
+ get size(): TuiSizeL | TuiSizeS;
26
28
  get nativeFocusableElement(): HTMLElement | null;
27
29
  get focused(): boolean;
28
30
  get inputPhoneCountryCode(): string;
@@ -53,6 +55,6 @@ export declare class TuiInputPhoneInternationalComponent extends AbstractTuiCont
53
55
  private calculateMaskAfterCountryCode;
54
56
  private close;
55
57
  private updateCountryIsoCode;
56
- static ɵfac: i0.ɵɵFactoryDeclaration<TuiInputPhoneInternationalComponent, [{ optional: true; self: true; }, null, null, null, null, null, null]>;
58
+ static ɵfac: i0.ɵɵFactoryDeclaration<TuiInputPhoneInternationalComponent, [{ optional: true; self: true; }, null, null, null, null, null, null, null]>;
57
59
  static ɵcmp: i0.ɵɵComponentDeclaration<TuiInputPhoneInternationalComponent, "tui-input-phone-international", never, { "isoCode": "countryIsoCode"; "countries": "countries"; }, { "countryIsoCodeChange": "countryIsoCodeChange"; }, never, ["*"]>;
58
60
  }
@@ -46,9 +46,9 @@ export declare class TuiInputTagComponent extends AbstractTuiMultipleControl<str
46
46
  get appearance(): string;
47
47
  get size(): TuiSizeL | TuiSizeS;
48
48
  get labelOutside(): boolean;
49
+ get iconLeft(): PolymorpheusContent<TuiContextWithImplicit<TuiSizeL | TuiSizeS>>;
49
50
  get icon(): PolymorpheusContent<TuiContextWithImplicit<TuiSizeL | TuiSizeS>>;
50
51
  get iconCleaner(): PolymorpheusContent<TuiContextWithImplicit<TuiSizeL | TuiSizeS>>;
51
- get iconLeft(): PolymorpheusContent<TuiContextWithImplicit<TuiSizeL | TuiSizeS>>;
52
52
  get hasCleaner(): boolean;
53
53
  get hasNativeValue(): boolean;
54
54
  get hasValue(): boolean;
@@ -10,8 +10,8 @@ export declare class TuiInputTimeComponent extends AbstractTuiNullableControl<Tu
10
10
  private readonly timeTexts$;
11
11
  private readonly options;
12
12
  private readonly isMobile;
13
- private readonly textfieldSize;
14
13
  private readonly isIos;
14
+ private readonly textfieldSize;
15
15
  private readonly textfield?;
16
16
  disabledItemHandler: TuiBooleanHandler<TuiTime>;
17
17
  items: readonly TuiTime[];
@@ -21,14 +21,14 @@ export declare class TuiInputTimeComponent extends AbstractTuiNullableControl<Tu
21
21
  /** @deprecated use `tuiTextfieldPostfix` from {@link TuiTextfieldControllerModule} instead */
22
22
  postfix: TuiInputTimeOptions['postfix'];
23
23
  open: boolean;
24
- constructor(control: NgControl | null, cdr: ChangeDetectorRef, timeTexts$: Observable<Record<TuiTimeMode, string>>, options: TuiInputTimeOptions, isMobile: boolean, textfieldSize: TuiTextfieldSizeDirective, isIos: boolean);
24
+ constructor(control: NgControl | null, cdr: ChangeDetectorRef, timeTexts$: Observable<Record<TuiTimeMode, string>>, options: TuiInputTimeOptions, isMobile: boolean, isIos: boolean, textfieldSize: TuiTextfieldSizeDirective);
25
+ get size(): TuiSizeL | TuiSizeS;
25
26
  get nativeFocusableElement(): HTMLInputElement | null;
26
27
  get focused(): boolean;
27
28
  get canOpen(): boolean;
28
29
  get filtered(): readonly TuiTime[];
29
30
  get showNativePicker(): boolean;
30
31
  get nativeDatalist(): boolean;
31
- get size(): TuiSizeL | TuiSizeS;
32
32
  get maskOptions(): MaskitoOptions;
33
33
  get computedValue(): string;
34
34
  get computedSearch(): string;
@@ -2,27 +2,31 @@ import { ChangeDetectorRef } from '@angular/core';
2
2
  import { NgControl } from '@angular/forms';
3
3
  import { MaskitoOptions } from '@maskito/core';
4
4
  import { AbstractTuiNullableControl, TuiBooleanHandler, TuiFocusableElementAccessor, TuiYear } from '@taiga-ui/cdk';
5
- import { TuiWithOptionalMinMax } from '@taiga-ui/core';
5
+ import { TuiSizeL, TuiSizeS, TuiTextfieldSizeDirective, TuiWithOptionalMinMax } from '@taiga-ui/core';
6
6
  import { TuiInputDateOptions } from '@taiga-ui/kit/tokens';
7
7
  import * as i0 from "@angular/core";
8
8
  export declare class TuiInputYearComponent extends AbstractTuiNullableControl<number> implements TuiWithOptionalMinMax<number>, TuiFocusableElementAccessor {
9
9
  private readonly options;
10
+ private readonly textfieldSize;
10
11
  private readonly textfield?;
11
12
  min: number;
12
13
  max: number;
13
14
  disabledItemHandler: TuiBooleanHandler<number>;
14
15
  open: boolean;
16
+ nativeValue: string;
15
17
  readonly initialItem: number;
16
- constructor(control: NgControl | null, cdr: ChangeDetectorRef, options: TuiInputDateOptions);
18
+ constructor(control: NgControl | null, cdr: ChangeDetectorRef, options: TuiInputDateOptions, textfieldSize: TuiTextfieldSizeDirective);
19
+ get size(): TuiSizeL | TuiSizeS;
17
20
  get nativeFocusableElement(): HTMLInputElement | null;
18
21
  get focused(): boolean;
19
22
  get calendarIcon(): TuiInputDateOptions['icon'];
20
- getMaskOptions(max: number): MaskitoOptions;
23
+ getMaskOptions(min: number, max: number): MaskitoOptions;
21
24
  onValueChange(value: string): void;
22
25
  onYearClick({ year }: TuiYear): void;
23
26
  onFocused(focused: boolean): void;
24
27
  onOpenChange(open: boolean): void;
25
28
  toggle(): void;
26
- static ɵfac: i0.ɵɵFactoryDeclaration<TuiInputYearComponent, [{ optional: true; self: true; }, null, null]>;
29
+ writeValue(value: number | null): void;
30
+ static ɵfac: i0.ɵɵFactoryDeclaration<TuiInputYearComponent, [{ optional: true; self: true; }, null, null, null]>;
27
31
  static ɵcmp: i0.ɵɵComponentDeclaration<TuiInputYearComponent, "tui-input-year", never, { "min": "min"; "max": "max"; "disabledItemHandler": "disabledItemHandler"; }, {}, never, ["*", "input"]>;
28
32
  }
@@ -3,6 +3,7 @@ import { TuiInputYearComponent } from './input-year.component';
3
3
  import * as i0 from "@angular/core";
4
4
  export declare class TuiInputYearDirective extends AbstractTuiTextfieldHost<TuiInputYearComponent> {
5
5
  onValueChange(value: string): void;
6
+ get value(): string;
6
7
  process(input: HTMLInputElement): void;
7
8
  static ɵfac: i0.ɵɵFactoryDeclaration<TuiInputYearDirective, never>;
8
9
  static ɵdir: i0.ɵɵDirectiveDeclaration<TuiInputYearDirective, "tui-input-year", never, {}, {}, never>;
@@ -1,7 +1,7 @@
1
1
  import { ChangeDetectorRef } from '@angular/core';
2
2
  import { NgControl } from '@angular/forms';
3
3
  import { AbstractTuiNullableControl, TuiActiveZoneDirective, TuiContextWithImplicit, TuiFocusableElementAccessor } from '@taiga-ui/cdk';
4
- import { TuiDataListHost, TuiSizeL, TuiSizeM, TuiSizeS, TuiTextfieldCleanerDirective, TuiValueContentContext } from '@taiga-ui/core';
4
+ import { TuiDataListHost, TuiSizeL, TuiSizeM, TuiSizeS, TuiTextfieldCleanerDirective, TuiTextfieldSizeDirective, TuiValueContentContext } from '@taiga-ui/core';
5
5
  import { TuiArrowMode } from '@taiga-ui/kit/components/arrow';
6
6
  import { TuiItemsHandlers } from '@taiga-ui/kit/tokens';
7
7
  import { PolymorpheusContent } from '@tinkoff/ng-polymorpheus';
@@ -9,6 +9,7 @@ import { TuiSelectOptions } from './select.options';
9
9
  import * as i0 from "@angular/core";
10
10
  export declare class TuiSelectComponent<T> extends AbstractTuiNullableControl<T> implements TuiFocusableElementAccessor, TuiDataListHost<T> {
11
11
  private readonly textfieldCleaner;
12
+ private readonly textfieldSize;
12
13
  private readonly arrowMode;
13
14
  private readonly itemsHandlers;
14
15
  private readonly options;
@@ -20,7 +21,8 @@ export declare class TuiSelectComponent<T> extends AbstractTuiNullableControl<T>
20
21
  identityMatcher: TuiItemsHandlers<T>['identityMatcher'];
21
22
  valueContent: TuiSelectOptions<T>['valueContent'];
22
23
  readonly datalist: PolymorpheusContent<TuiContextWithImplicit<TuiActiveZoneDirective>>;
23
- constructor(control: NgControl | null, cdr: ChangeDetectorRef, textfieldCleaner: TuiTextfieldCleanerDirective, arrowMode: TuiArrowMode, itemsHandlers: TuiItemsHandlers<T>, options: TuiSelectOptions<T>, isMobile: boolean);
24
+ constructor(control: NgControl | null, cdr: ChangeDetectorRef, textfieldCleaner: TuiTextfieldCleanerDirective, textfieldSize: TuiTextfieldSizeDirective, arrowMode: TuiArrowMode, itemsHandlers: TuiItemsHandlers<T>, options: TuiSelectOptions<T>, isMobile: boolean);
25
+ get size(): TuiSizeL | TuiSizeS;
24
26
  get arrow(): PolymorpheusContent<TuiContextWithImplicit<TuiSizeL | TuiSizeM | TuiSizeS>>;
25
27
  get nativeFocusableElement(): HTMLInputElement | null;
26
28
  get focused(): boolean;
@@ -32,6 +34,6 @@ export declare class TuiSelectComponent<T> extends AbstractTuiNullableControl<T>
32
34
  onKeyDownDelete(): void;
33
35
  handleOption(option: T): void;
34
36
  private focusInput;
35
- static ɵfac: i0.ɵɵFactoryDeclaration<TuiSelectComponent<any>, [{ optional: true; self: true; }, null, null, null, null, null, null]>;
37
+ static ɵfac: i0.ɵɵFactoryDeclaration<TuiSelectComponent<any>, [{ optional: true; self: true; }, null, null, null, null, null, null, null]>;
36
38
  static ɵcmp: i0.ɵɵComponentDeclaration<TuiSelectComponent<any>, "tui-select", never, { "stringify": "stringify"; "identityMatcher": "identityMatcher"; "valueContent": "valueContent"; }, {}, ["nativeSelect", "datalist"], ["*", "input", "select"]>;
37
39
  }
@@ -51,7 +51,7 @@ export class TuiBadgedContentComponent {
51
51
  }
52
52
  }
53
53
  TuiBadgedContentComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiBadgedContentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
54
- TuiBadgedContentComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TuiBadgedContentComponent, selector: "tui-badged-content", inputs: { contentTop: "contentTop", contentBottom: "contentBottom", size: "size", colorTop: "colorTop", colorBottom: "colorBottom", rounded: "rounded" }, host: { properties: { "class._with-top": "this.contentTop", "class._with-bottom": "this.contentBottom", "attr.data-size": "this.size", "class._rounded": "this.rounded" } }, ngImport: i0, template: "<ng-content></ng-content>\n\n<div\n *ngIf=\"topNotification\"\n class=\"t-notification t-notification_top\"\n [style.background]=\"topNotification\"\n [style.boxShadow]=\"boxShadow\"\n></div>\n\n<div\n *ngIf=\"bottomNotification\"\n class=\"t-notification t-notification_bottom\"\n [style.background]=\"bottomNotification\"\n [style.boxShadow]=\"boxShadow\"\n></div>\n\n<div\n *ngIf=\"contentTop\"\n class=\"t-content t-content_top\"\n [style.boxShadow]=\"boxShadow\"\n>\n <ng-container *polymorpheusOutlet=\"contentTop as content\">\n <tui-badge\n *ngIf=\"contentIsNumber(content)\"\n [status]=\"getStatus(colorTop)\"\n [style.backgroundColor]=\"colorTop\"\n [size]=\"badgeSize\"\n [value]=\"content\"\n ></tui-badge>\n <tui-svg\n *ngIf=\"contentIsString(content)\"\n class=\"t-icon\"\n [style.color]=\"colorTop\"\n [src]=\"content\"\n ></tui-svg>\n </ng-container>\n</div>\n\n<div\n *ngIf=\"contentBottom && sizeBig\"\n class=\"t-content t-content_bottom\"\n [style.boxShadow]=\"boxShadow\"\n>\n <ng-container *polymorpheusOutlet=\"contentBottom as content\">\n <tui-badge\n *ngIf=\"contentIsNumber(content)\"\n [status]=\"getStatus(colorBottom)\"\n [style.backgroundColor]=\"colorBottom\"\n [size]=\"badgeSize\"\n [value]=\"content\"\n ></tui-badge>\n <tui-svg\n *ngIf=\"contentIsString(content)\"\n class=\"t-icon\"\n [style.color]=\"colorBottom\"\n [src]=\"content\"\n ></tui-svg>\n </ng-container>\n</div>\n", styles: [":host{position:relative;display:inline-block;color:var(--tui-base-01)}.t-notification{position:absolute;border-radius:100%;box-shadow:0 0 0 2px currentColor;background-color:currentColor}:host[data-size=xs]:not(._rounded) .t-notification_top,:host[data-size=s]:not(._rounded) .t-notification_top,:host[data-size=m]:not(._rounded) .t-notification_top{top:-.125rem;right:-.125rem}:host[data-size=l]:not(._rounded) .t-notification_top,:host[data-size=xl]:not(._rounded) .t-notification_top{top:-.25rem;right:-.25rem}:host[data-size=xxl]:not(._rounded) .t-notification_top{top:-.5rem;right:-.5rem}:host[data-size=xs]._rounded .t-notification_top{top:0;right:0}:host[data-size=s]._rounded .t-notification_top{top:.0625rem;right:.0625rem}:host[data-size=m]._rounded .t-notification_top{top:.1875rem;right:.1875rem}:host[data-size=l]._rounded .t-notification_top{top:.25rem;right:.25rem}:host[data-size=xl]._rounded .t-notification_top{top:.375rem;right:.375rem}:host[data-size=xxl]._rounded .t-notification_top{top:.5rem;right:.5rem}:host[data-size=m]:not(._rounded) .t-notification_bottom{bottom:-.125rem;right:-.125rem}:host[data-size=l]:not(._rounded) .t-notification_bottom,:host[data-size=xl]:not(._rounded) .t-notification_bottom{bottom:-.25rem;right:-.25rem}:host[data-size=xxl]:not(._rounded) .t-notification_bottom{bottom:-.5rem;right:-.5rem}:host[data-size=m]._rounded .t-notification_bottom{bottom:.1875rem;right:.1875rem}:host[data-size=l]._rounded .t-notification_bottom{bottom:.25rem;right:.25rem}:host[data-size=xl]._rounded .t-notification_bottom{bottom:.375rem;right:.375rem}:host[data-size=xxl]._rounded .t-notification_bottom{bottom:.5rem;right:.5rem}:host[data-size=xs] .t-notification,:host[data-size=s] .t-notification,:host[data-size=m] .t-notification{width:.5rem;height:.5rem}:host[data-size=l] .t-notification{width:.75rem;height:.75rem}:host[data-size=xl] .t-notification{width:1rem;height:1rem}:host[data-size=xxl] .t-notification{width:1.5rem;height:1.5rem}.t-icon{color:var(--tui-success-fill)}:host[data-size=xs] .t-icon{transform:scale(.66666667);margin:-.25rem}:host[data-size=s] .t-icon,:host[data-size=m] .t-icon{width:1.5rem;height:1.5rem;margin:-.125rem}:host[data-size=l] .t-icon,:host[data-size=xl] .t-icon{transform:scale(1.2)}:host[data-size=xxl] .t-icon{transform:scale(1.6)}.t-content{position:absolute;display:flex;align-items:center;justify-content:center;border-radius:6.25rem;overflow:hidden;background-color:currentColor;box-shadow:0 0 0 2px currentColor}:host[data-size=xxl]._with-top:not(._rounded) .t-content_top,:host[data-size=l]._with-top:not(._rounded) .t-content_top{right:-.5rem;top:-.5rem}:host[data-size=xl]._with-top:not(._rounded) .t-content_top{right:-.375rem;top:-.375rem}:host[data-size=m]._with-top:not(._rounded) .t-content_top,:host[data-size=s]._with-top:not(._rounded) .t-content_top,:host[data-size=xs]._with-top:not(._rounded) .t-content_top{right:-.25rem;top:-.25rem}:host[data-size=xxl]._with-top._rounded .t-content_top{right:.25rem;top:.25rem}:host[data-size=xl]._with-top._rounded .t-content_top{right:.125rem;top:.125rem}:host[data-size=l]._with-top._rounded .t-content_top,:host[data-size=m]._with-top._rounded .t-content_top,:host[data-size=s]._with-top._rounded .t-content_top,:host[data-size=xs]._with-top._rounded .t-content_top{right:-.25rem;top:-.25rem}:host[data-size=xxl]._with-bottom:not(._rounded) .t-content_bottom,:host[data-size=l]._with-bottom:not(._rounded) .t-content_bottom{bottom:-.5rem;right:-.5rem}:host[data-size=xl]._with-bottom:not(._rounded) .t-content_bottom{bottom:-.375rem;right:-.375rem}:host[data-size=m]._with-bottom:not(._rounded) .t-content_bottom{bottom:-.25rem;right:-.25rem}:host[data-size=xxl]._with-bottom._rounded .t-content_bottom{bottom:.25rem;right:.25rem}:host[data-size=xl]._with-bottom._rounded .t-content_bottom{bottom:.125rem;right:.125rem}:host[data-size=l]._with-bottom._rounded .t-content_bottom,:host[data-size=m]._with-bottom._rounded .t-content_bottom{bottom:-.25rem;right:-.25rem}:host[data-size=xxl] .t-content{height:2rem;min-width:2rem}:host[data-size=xl] .t-content,:host[data-size=l] .t-content{height:1.5rem;min-width:1.5rem}:host[data-size=m] .t-content,:host[data-size=s] .t-content{height:1.25rem;min-width:1.25rem}:host[data-size=xs] .t-content{height:1rem;min-width:1rem}\n"], components: [{ type: i1.TuiBadgeComponent, selector: "tui-badge", inputs: ["value", "size", "status", "hoverable"] }, { type: i2.TuiSvgComponent, selector: "tui-svg", inputs: ["src"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.PolymorpheusOutletDirective, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
54
+ TuiBadgedContentComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TuiBadgedContentComponent, selector: "tui-badged-content", inputs: { contentTop: "contentTop", contentBottom: "contentBottom", size: "size", colorTop: "colorTop", colorBottom: "colorBottom", rounded: "rounded" }, host: { properties: { "class._with-top": "this.contentTop", "class._with-bottom": "this.contentBottom", "attr.data-size": "this.size", "class._rounded": "this.rounded" } }, ngImport: i0, template: "<ng-content></ng-content>\n\n<div\n *ngIf=\"topNotification\"\n class=\"t-notification t-notification_top\"\n [style.background]=\"topNotification\"\n [style.boxShadow]=\"boxShadow\"\n></div>\n\n<div\n *ngIf=\"bottomNotification\"\n class=\"t-notification t-notification_bottom\"\n [style.background]=\"bottomNotification\"\n [style.boxShadow]=\"boxShadow\"\n></div>\n\n<div\n *ngIf=\"contentTop\"\n class=\"t-content t-content_top\"\n [style.boxShadow]=\"boxShadow\"\n>\n <ng-container *polymorpheusOutlet=\"contentTop as content\">\n <tui-badge\n *ngIf=\"contentIsNumber(content)\"\n [status]=\"getStatus(colorTop)\"\n [style.backgroundColor]=\"colorTop\"\n [size]=\"badgeSize\"\n [value]=\"content\"\n ></tui-badge>\n <tui-svg\n *ngIf=\"contentIsString(content)\"\n class=\"t-icon\"\n [style.color]=\"colorTop\"\n [src]=\"content\"\n ></tui-svg>\n </ng-container>\n</div>\n\n<div\n *ngIf=\"contentBottom && sizeBig\"\n class=\"t-content t-content_bottom\"\n [style.boxShadow]=\"boxShadow\"\n>\n <ng-container *polymorpheusOutlet=\"contentBottom as content\">\n <tui-badge\n *ngIf=\"contentIsNumber(content)\"\n [status]=\"getStatus(colorBottom)\"\n [style.backgroundColor]=\"colorBottom\"\n [size]=\"badgeSize\"\n [value]=\"content\"\n ></tui-badge>\n <tui-svg\n *ngIf=\"contentIsString(content)\"\n class=\"t-icon\"\n [style.color]=\"colorBottom\"\n [src]=\"content\"\n ></tui-svg>\n </ng-container>\n</div>\n", styles: [":host{position:relative;display:inline-block;color:var(--tui-base-01);height:-webkit-min-content;height:min-content}.t-notification{position:absolute;border-radius:100%;box-shadow:0 0 0 2px currentColor;background-color:currentColor}:host[data-size=xs]:not(._rounded) .t-notification_top,:host[data-size=s]:not(._rounded) .t-notification_top,:host[data-size=m]:not(._rounded) .t-notification_top{top:-.125rem;right:-.125rem}:host[data-size=l]:not(._rounded) .t-notification_top,:host[data-size=xl]:not(._rounded) .t-notification_top{top:-.25rem;right:-.25rem}:host[data-size=xxl]:not(._rounded) .t-notification_top{top:-.5rem;right:-.5rem}:host[data-size=xs]._rounded .t-notification_top{top:0;right:0}:host[data-size=s]._rounded .t-notification_top{top:.0625rem;right:.0625rem}:host[data-size=m]._rounded .t-notification_top{top:.1875rem;right:.1875rem}:host[data-size=l]._rounded .t-notification_top{top:.25rem;right:.25rem}:host[data-size=xl]._rounded .t-notification_top{top:.375rem;right:.375rem}:host[data-size=xxl]._rounded .t-notification_top{top:.5rem;right:.5rem}:host[data-size=m]:not(._rounded) .t-notification_bottom{bottom:-.125rem;right:-.125rem}:host[data-size=l]:not(._rounded) .t-notification_bottom,:host[data-size=xl]:not(._rounded) .t-notification_bottom{bottom:-.25rem;right:-.25rem}:host[data-size=xxl]:not(._rounded) .t-notification_bottom{bottom:-.5rem;right:-.5rem}:host[data-size=m]._rounded .t-notification_bottom{bottom:.1875rem;right:.1875rem}:host[data-size=l]._rounded .t-notification_bottom{bottom:.25rem;right:.25rem}:host[data-size=xl]._rounded .t-notification_bottom{bottom:.375rem;right:.375rem}:host[data-size=xxl]._rounded .t-notification_bottom{bottom:.5rem;right:.5rem}:host[data-size=xs] .t-notification,:host[data-size=s] .t-notification,:host[data-size=m] .t-notification{width:.5rem;height:.5rem}:host[data-size=l] .t-notification{width:.75rem;height:.75rem}:host[data-size=xl] .t-notification{width:1rem;height:1rem}:host[data-size=xxl] .t-notification{width:1.5rem;height:1.5rem}.t-icon{color:var(--tui-success-fill)}:host[data-size=xs] .t-icon{transform:scale(.66666667);margin:-.25rem}:host[data-size=s] .t-icon,:host[data-size=m] .t-icon{width:1.5rem;height:1.5rem;margin:-.125rem}:host[data-size=l] .t-icon,:host[data-size=xl] .t-icon{transform:scale(1.2)}:host[data-size=xxl] .t-icon{transform:scale(1.6)}.t-content{position:absolute;display:flex;align-items:center;justify-content:center;border-radius:6.25rem;overflow:hidden;background-color:currentColor;box-shadow:0 0 0 2px currentColor}:host[data-size=xxl]._with-top:not(._rounded) .t-content_top,:host[data-size=l]._with-top:not(._rounded) .t-content_top{right:-.5rem;top:-.5rem}:host[data-size=xl]._with-top:not(._rounded) .t-content_top{right:-.375rem;top:-.375rem}:host[data-size=m]._with-top:not(._rounded) .t-content_top,:host[data-size=s]._with-top:not(._rounded) .t-content_top,:host[data-size=xs]._with-top:not(._rounded) .t-content_top{right:-.25rem;top:-.25rem}:host[data-size=xxl]._with-top._rounded .t-content_top{right:.25rem;top:.25rem}:host[data-size=xl]._with-top._rounded .t-content_top{right:.125rem;top:.125rem}:host[data-size=l]._with-top._rounded .t-content_top,:host[data-size=m]._with-top._rounded .t-content_top,:host[data-size=s]._with-top._rounded .t-content_top,:host[data-size=xs]._with-top._rounded .t-content_top{right:-.25rem;top:-.25rem}:host[data-size=xxl]._with-bottom:not(._rounded) .t-content_bottom,:host[data-size=l]._with-bottom:not(._rounded) .t-content_bottom{bottom:-.5rem;right:-.5rem}:host[data-size=xl]._with-bottom:not(._rounded) .t-content_bottom{bottom:-.375rem;right:-.375rem}:host[data-size=m]._with-bottom:not(._rounded) .t-content_bottom{bottom:-.25rem;right:-.25rem}:host[data-size=xxl]._with-bottom._rounded .t-content_bottom{bottom:.25rem;right:.25rem}:host[data-size=xl]._with-bottom._rounded .t-content_bottom{bottom:.125rem;right:.125rem}:host[data-size=l]._with-bottom._rounded .t-content_bottom,:host[data-size=m]._with-bottom._rounded .t-content_bottom{bottom:-.25rem;right:-.25rem}:host[data-size=xxl] .t-content{height:2rem;min-width:2rem}:host[data-size=xl] .t-content,:host[data-size=l] .t-content{height:1.5rem;min-width:1.5rem}:host[data-size=m] .t-content,:host[data-size=s] .t-content{height:1.25rem;min-width:1.25rem}:host[data-size=xs] .t-content{height:1rem;min-width:1rem}\n"], components: [{ type: i1.TuiBadgeComponent, selector: "tui-badge", inputs: ["value", "size", "status", "hoverable"] }, { type: i2.TuiSvgComponent, selector: "tui-svg", inputs: ["src"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.PolymorpheusOutletDirective, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
55
55
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiBadgedContentComponent, decorators: [{
56
56
  type: Component,
57
57
  args: [{
@@ -20,7 +20,7 @@ TuiBreadcrumbsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0"
20
20
  provide: TuiModeDirective,
21
21
  useExisting: forwardRef(() => TuiBreadcrumbsComponent),
22
22
  },
23
- ], queries: [{ propertyName: "items", predicate: TuiItemDirective, read: TemplateRef }], usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"items.changes | async\"></ng-container>\n<ng-container *ngFor=\"let item of items; let last = last\">\n <ng-container [ngTemplateOutlet]=\"item\"></ng-container>\n <tui-svg\n *ngIf=\"!last\"\n class=\"t-icon\"\n [src]=\"options.icon\"\n ></tui-svg>\n</ng-container>\n", styles: [":host{display:flex;align-items:center;height:2.5rem;font:var(--tui-font-text-s);color:var(--tui-text-01)}:host[data-size=l]{font:var(--tui-font-text-m)}.t-icon{margin:0 .25rem;opacity:.4}\n"], components: [{ type: i1.TuiSvgComponent, selector: "tui-svg", inputs: ["src"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], pipes: { "async": i2.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
23
+ ], queries: [{ propertyName: "items", predicate: TuiItemDirective, read: TemplateRef }], usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"items.changes | async\"></ng-container>\n<ng-container *ngFor=\"let item of items; let last = last\">\n <ng-container [ngTemplateOutlet]=\"item\"></ng-container>\n <tui-svg\n *ngIf=\"!last\"\n class=\"t-icon\"\n [src]=\"options.icon\"\n ></tui-svg>\n</ng-container>\n", styles: [":host{display:flex;align-items:center;height:2.5rem;white-space:nowrap;font:var(--tui-font-text-s);color:var(--tui-text-01)}:host[data-size=l]{font:var(--tui-font-text-m)}.t-icon{margin:0 .25rem;opacity:.4}\n"], components: [{ type: i1.TuiSvgComponent, selector: "tui-svg", inputs: ["src"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], pipes: { "async": i2.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
24
24
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiBreadcrumbsComponent, decorators: [{
25
25
  type: Component,
26
26
  args: [{
@@ -151,7 +151,7 @@ export class TuiCalendarMonthComponent {
151
151
  }
152
152
  }
153
153
  TuiCalendarMonthComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiCalendarMonthComponent, deps: [{ token: TUI_CALENDAR_MONTHS }], target: i0.ɵɵFactoryTarget.Component });
154
- TuiCalendarMonthComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TuiCalendarMonthComponent, selector: "tui-calendar-month", inputs: { value: "value", year: "year", disabledItemHandler: "disabledItemHandler", min: "min", max: "max" }, outputs: { monthClick: "monthClick", hoveredItemChange: "hoveredItemChange", yearChange: "yearChange" }, host: { properties: { "class._single": "this.isSingle" } }, ngImport: i0, template: "<tui-scrollbar\n *ngIf=\"isYearPickerShown; else monthSelect\"\n class=\"t-scrollbar\"\n>\n <tui-primitive-year-picker\n [min]=\"min\"\n [max]=\"max\"\n [initialItem]=\"year\"\n [value]=\"value\"\n (yearClick)=\"onPickerYearClick($event)\"\n ></tui-primitive-year-picker>\n</tui-scrollbar>\n<ng-template #monthSelect>\n <tui-primitive-spin-button\n [focusable]=\"false\"\n [leftDisabled]=\"previousYearDisabled\"\n [rightDisabled]=\"nextYearDisabled\"\n (leftClick)=\"onPreviousYear()\"\n (rightClick)=\"onNextYear()\"\n >\n <button\n tuiLink\n type=\"button\"\n automation-id=\"tui-calendar-month__active-year\"\n [tuiFocusable]=\"false\"\n (click)=\"onYearClick()\"\n >\n {{ year.formattedYear }}\n </button>\n </tui-primitive-spin-button>\n <div class=\"t-row\">\n <ng-container *ngFor=\"let month of months$ | async; let index = index\">\n <div\n *tuiLet=\"getTuiMonth(index, year.year) as item\"\n class=\"t-cell\"\n [class.t-cell_today]=\"isItemToday(item)\"\n [class.t-cell_interval]=\"isItemInsideRange(item)\"\n [attr.data-range]=\"getItemRange(item)\"\n [attr.data-state]=\"getItemState(item)\"\n (tuiHoveredChange)=\"onItemHovered($event, item)\"\n (tuiPressedChange)=\"onItemHovered($event, item)\"\n (click)=\"onItemClick(item)\"\n >\n <div class=\"t-item\">{{ month }}</div>\n </div>\n </ng-container>\n </div>\n</ng-template>\n", styles: [":host{display:block;font:var(--tui-font-text-m)}.t-row{position:relative;z-index:0;display:flex;justify-content:space-between;height:2.25rem}.t-item{position:relative;flex:1;line-height:2rem;border-radius:var(--tui-radius-m)}.t-item:before,.t-item:after{content:\"\";position:absolute;top:0;left:0;right:0;bottom:0;z-index:-1;border-radius:var(--tui-radius-m)}.t-item:after{border-radius:.5rem}.t-cell{position:relative;display:flex;align-items:center;justify-content:center;width:3.6875rem;text-align:center;outline:none;cursor:pointer;background-clip:content-box;box-sizing:border-box;border:.125rem solid transparent}.t-cell:before{content:\"\";position:absolute;top:0;left:0;right:0;bottom:0;z-index:-1;border-radius:var(--tui-radius-m)}.t-cell_today:after{position:absolute;left:50%;transform:translate(-50%);content:\"\";bottom:.3125rem;height:.125rem;width:.75rem;border-radius:.375rem;background-color:var(--tui-text-01)}.t-cell_interval:before{background:var(--tui-base-02)}:host._single .t-cell_interval:before{background:var(--tui-secondary-hover)}.t-cell_interval:not(:last-child):before{right:-.25rem;border-top-right-radius:0;border-bottom-right-radius:0}.t-cell_interval:not([data-range=\"start\"]):not(:first-child):before{border-top-left-radius:0;border-bottom-left-radius:0}.t-cell_interval:last-child:first-child:before{right:0}.t-cell_interval:first-child>.t-item{border-top-left-radius:var(--tui-radius-m);border-bottom-left-radius:var(--tui-radius-m)}.t-cell_interval:last-child>.t-item{border-top-right-radius:var(--tui-radius-m);border-bottom-right-radius:var(--tui-radius-m)}.t-cell_interval>.t-item{border-radius:0}.t-cell[data-range]:after{background-color:var(--tui-primary-text)}.t-cell[data-range]>.t-item{color:var(--tui-primary-text)}.t-cell[data-range]>.t-item:before,.t-cell[data-range]>.t-item:after{background-color:var(--tui-primary)}.t-cell[data-range][data-state=hover]>.t-item:before,.t-cell[data-range][data-state=hover]>.t-item:after{background-color:var(--tui-primary-hover)}.t-cell[data-range][data-state=active]>.t-item:before,.t-cell[data-range][data-state=active]>.t-item:after{background-color:var(--tui-primary-active)}.t-cell[data-range=end]:before{background:var(--tui-base-02)}:host._single .t-cell[data-range=end]:before{background:var(--tui-secondary-hover)}.t-cell[data-range=end]:not(:first-child):before{border-top-left-radius:0;border-bottom-left-radius:0}.t-cell[data-range=end]>.t-item:before{left:.625rem;border-top-left-radius:0;border-bottom-left-radius:0}.t-cell[data-range=end]>.t-item:after{left:-2rem;right:100%;transform:translate(1.6rem) scaleY(.83) scaleX(.5) rotate(45deg)}.t-cell[data-range=start]>.t-item:before{right:.625rem;border-top-right-radius:0;border-bottom-right-radius:0}.t-cell[data-range=start]>.t-item:after{left:100%;right:-2rem;transform:translate(-1.6rem) scaleY(.83) scaleX(.5) rotate(45deg)}.t-cell[data-range=single]>.t-item:after{display:none}.t-cell[data-state=disabled]{pointer-events:none}.t-cell[data-state=disabled]>.t-item{opacity:.36}.t-cell[data-state=hover]:hover:not([data-range])>.t-item{background-color:var(--tui-secondary-hover)}.t-cell[data-state=active]:hover:not([data-range])>.t-item{background-color:var(--tui-secondary-active)}:host{display:block;height:13.625rem;width:15.75rem;padding:1.125rem;box-sizing:content-box}.t-row{flex-wrap:wrap;margin-top:1.4375rem}.t-cell{box-sizing:content-box}.t-cell:nth-child(n + 5){margin-top:1.75rem}.t-cell_interval:nth-child(4n):before{right:0}.t-scrollbar{height:inherit;width:inherit}\n"], components: [{ type: i1.TuiScrollbarComponent, selector: "tui-scrollbar", inputs: ["hidden"] }, { type: i1.TuiPrimitiveYearPickerComponent, selector: "tui-primitive-year-picker", inputs: ["value", "initialItem", "min", "max", "disabledItemHandler"], outputs: ["yearClick"] }, { type: i1.TuiPrimitiveSpinButtonComponent, selector: "tui-primitive-spin-button", inputs: ["disabled", "mode", "leftDisabled", "rightDisabled"], outputs: ["leftClick", "rightClick"] }, { type: i1.TuiLinkComponent, selector: "a[tuiLink], button[tuiLink]", inputs: ["pseudo", "icon", "iconAlign", "iconRotated", "mode"], exportAs: ["tuiLink"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.TuiFocusableDirective, selector: "[tuiFocusable]", inputs: ["tuiFocusable"] }, { type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i3.TuiLetDirective, selector: "[tuiLet]", inputs: ["tuiLet"] }, { type: i3.TuiHoveredDirective, selector: "[tuiHoveredChange]", outputs: ["tuiHoveredChange"] }, { type: i3.TuiPressedDirective, selector: "[tuiPressedChange]", outputs: ["tuiPressedChange"] }], pipes: { "async": i2.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
154
+ TuiCalendarMonthComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TuiCalendarMonthComponent, selector: "tui-calendar-month", inputs: { value: "value", year: "year", disabledItemHandler: "disabledItemHandler", min: "min", max: "max" }, outputs: { monthClick: "monthClick", hoveredItemChange: "hoveredItemChange", yearChange: "yearChange" }, host: { properties: { "class._single": "this.isSingle" } }, ngImport: i0, template: "<tui-scrollbar\n *ngIf=\"isYearPickerShown; else monthSelect\"\n class=\"t-scrollbar\"\n>\n <tui-primitive-year-picker\n [min]=\"min\"\n [max]=\"max\"\n [initialItem]=\"year\"\n [value]=\"value\"\n (yearClick)=\"onPickerYearClick($event)\"\n ></tui-primitive-year-picker>\n</tui-scrollbar>\n<ng-template #monthSelect>\n <tui-primitive-spin-button\n [focusable]=\"false\"\n [leftDisabled]=\"previousYearDisabled\"\n [rightDisabled]=\"nextYearDisabled\"\n (leftClick)=\"onPreviousYear()\"\n (rightClick)=\"onNextYear()\"\n >\n <button\n tuiLink\n type=\"button\"\n automation-id=\"tui-calendar-month__active-year\"\n [tuiFocusable]=\"false\"\n (click)=\"onYearClick()\"\n >\n {{ year.formattedYear }}\n </button>\n </tui-primitive-spin-button>\n <div class=\"t-row\">\n <ng-container *ngFor=\"let month of months$ | async; let index = index\">\n <div\n *tuiLet=\"getTuiMonth(index, year.year) as item\"\n class=\"t-cell\"\n [class.t-cell_today]=\"isItemToday(item)\"\n [class.t-cell_interval]=\"isItemInsideRange(item)\"\n [attr.data-range]=\"getItemRange(item)\"\n [attr.data-state]=\"getItemState(item)\"\n (tuiHoveredChange)=\"onItemHovered($event, item)\"\n (tuiPressedChange)=\"onItemHovered($event, item)\"\n (click)=\"onItemClick(item)\"\n >\n <div class=\"t-item\">{{ month }}</div>\n </div>\n </ng-container>\n </div>\n</ng-template>\n", styles: [":host{display:block;font:var(--tui-font-text-m)}.t-row{position:relative;z-index:0;display:flex;justify-content:space-between;height:2.25rem}.t-item{position:relative;flex:1;line-height:2rem;border-radius:var(--tui-radius-m)}.t-item:before,.t-item:after{content:\"\";position:absolute;top:0;left:0;right:0;bottom:0;z-index:-1;border-radius:var(--tui-radius-m)}.t-item:after{border-radius:.5rem}.t-cell{position:relative;display:flex;align-items:center;justify-content:center;width:3.9375rem;text-align:center;outline:none;cursor:pointer;background-clip:content-box;box-sizing:border-box;border:.125rem solid transparent}.t-cell:before{content:\"\";position:absolute;top:0;left:0;right:0;bottom:0;z-index:-1;border-radius:var(--tui-radius-m)}.t-cell_today:after{position:absolute;left:50%;transform:translate(-50%);content:\"\";bottom:.3125rem;height:.125rem;width:.75rem;border-radius:.375rem;background-color:var(--tui-text-01)}.t-cell_interval:before{background:var(--tui-base-02)}:host._single .t-cell_interval:before{background:var(--tui-secondary-hover)}.t-cell_interval:not(:last-child):before{right:-.25rem;border-top-right-radius:0;border-bottom-right-radius:0}.t-cell_interval:not([data-range=\"start\"]):not(:first-child):before{border-top-left-radius:0;border-bottom-left-radius:0}.t-cell_interval:last-child:first-child:before{right:0}.t-cell_interval:first-child>.t-item{border-top-left-radius:var(--tui-radius-m);border-bottom-left-radius:var(--tui-radius-m)}.t-cell_interval:last-child>.t-item{border-top-right-radius:var(--tui-radius-m);border-bottom-right-radius:var(--tui-radius-m)}.t-cell_interval>.t-item{border-radius:0}.t-cell[data-range]:after{background-color:var(--tui-primary-text)}.t-cell[data-range]>.t-item{color:var(--tui-primary-text)}.t-cell[data-range]>.t-item:before,.t-cell[data-range]>.t-item:after{background-color:var(--tui-primary)}.t-cell[data-range][data-state=hover]>.t-item:before,.t-cell[data-range][data-state=hover]>.t-item:after{background-color:var(--tui-primary-hover)}.t-cell[data-range][data-state=active]>.t-item:before,.t-cell[data-range][data-state=active]>.t-item:after{background-color:var(--tui-primary-active)}.t-cell[data-range=end]:before{background:var(--tui-base-02)}:host._single .t-cell[data-range=end]:before{background:var(--tui-secondary-hover)}.t-cell[data-range=end]:not(:first-child):before{border-top-left-radius:0;border-bottom-left-radius:0}.t-cell[data-range=end]>.t-item:before{left:.625rem;border-top-left-radius:0;border-bottom-left-radius:0}.t-cell[data-range=end]>.t-item:after{left:-2rem;right:100%;transform:translate(1.6rem) scaleY(.83) scaleX(.5) rotate(45deg)}.t-cell[data-range=start]>.t-item:before{right:.625rem;border-top-right-radius:0;border-bottom-right-radius:0}.t-cell[data-range=start]>.t-item:after{left:100%;right:-2rem;transform:translate(-1.6rem) scaleY(.83) scaleX(.5) rotate(45deg)}.t-cell[data-range=single]>.t-item:after{display:none}.t-cell[data-state=disabled]{pointer-events:none}.t-cell[data-state=disabled]>.t-item{opacity:.36}.t-cell[data-state=hover]:hover:not([data-range])>.t-item{background-color:var(--tui-secondary-hover)}.t-cell[data-state=active]:hover:not([data-range])>.t-item{background-color:var(--tui-secondary-active)}:host{display:block;height:13.625rem;width:15.75rem;padding:1.125rem;box-sizing:content-box}.t-row{flex-wrap:wrap;margin-top:1.4375rem}.t-cell:nth-child(n + 5){margin-top:1.75rem}.t-cell_interval:nth-child(4n):before{right:0}.t-scrollbar{height:inherit;width:inherit}\n"], components: [{ type: i1.TuiScrollbarComponent, selector: "tui-scrollbar", inputs: ["hidden"] }, { type: i1.TuiPrimitiveYearPickerComponent, selector: "tui-primitive-year-picker", inputs: ["value", "initialItem", "min", "max", "disabledItemHandler"], outputs: ["yearClick"] }, { type: i1.TuiPrimitiveSpinButtonComponent, selector: "tui-primitive-spin-button", inputs: ["disabled", "mode", "leftDisabled", "rightDisabled"], outputs: ["leftClick", "rightClick"] }, { type: i1.TuiLinkComponent, selector: "a[tuiLink], button[tuiLink]", inputs: ["pseudo", "icon", "iconAlign", "iconRotated", "mode"], exportAs: ["tuiLink"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.TuiFocusableDirective, selector: "[tuiFocusable]", inputs: ["tuiFocusable"] }, { type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i3.TuiLetDirective, selector: "[tuiLet]", inputs: ["tuiLet"] }, { type: i3.TuiHoveredDirective, selector: "[tuiHoveredChange]", outputs: ["tuiHoveredChange"] }, { type: i3.TuiPressedDirective, selector: "[tuiPressedChange]", outputs: ["tuiPressedChange"] }], pipes: { "async": i2.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
155
155
  __decorate([
156
156
  tuiPure
157
157
  ], TuiCalendarMonthComponent.prototype, "calculateDisabledItemHandlerWithMinMax", null);
@@ -1,7 +1,7 @@
1
- import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChild, EventEmitter, Inject, Input, Optional, Output, Self, TemplateRef, ViewChild, } from '@angular/core';
1
+ import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChild, EventEmitter, HostBinding, Inject, Input, Optional, Output, Self, TemplateRef, ViewChild, } from '@angular/core';
2
2
  import { NgControl } from '@angular/forms';
3
3
  import { AbstractTuiNullableControl, TUI_STRICT_MATCHER, tuiAsControl, tuiAsFocusableItemAccessor, tuiIsNativeFocused, tuiIsPresent, } from '@taiga-ui/cdk';
4
- import { TUI_DATA_LIST_ACCESSOR, tuiAsDataListHost, tuiAsOptionContent, TuiDataListDirective, TuiHostedDropdownComponent, TuiPrimitiveTextfieldComponent, } from '@taiga-ui/core';
4
+ import { TUI_DATA_LIST_ACCESSOR, TUI_TEXTFIELD_SIZE, tuiAsDataListHost, tuiAsOptionContent, TuiDataListDirective, TuiHostedDropdownComponent, TuiPrimitiveTextfieldComponent, } from '@taiga-ui/core';
5
5
  import { TUI_ARROW_MODE } from '@taiga-ui/kit/components/arrow';
6
6
  import { TUI_SELECT_OPTION } from '@taiga-ui/kit/components/select-option';
7
7
  import { FIXED_DROPDOWN_CONTROLLER_PROVIDER } from '@taiga-ui/kit/providers';
@@ -13,10 +13,11 @@ import * as i3 from "@angular/common";
13
13
  import * as i4 from "@tinkoff/ng-polymorpheus";
14
14
  import * as i5 from "@angular/forms";
15
15
  export class TuiComboBoxComponent extends AbstractTuiNullableControl {
16
- constructor(control, cdr, arrowMode, itemsHandlers) {
16
+ constructor(control, cdr, arrowMode, itemsHandlers, textfieldSize) {
17
17
  super(control, cdr);
18
18
  this.arrowMode = arrowMode;
19
19
  this.itemsHandlers = itemsHandlers;
20
+ this.textfieldSize = textfieldSize;
20
21
  this.stringify = this.itemsHandlers.stringify;
21
22
  this.strictMatcher = TUI_STRICT_MATCHER;
22
23
  this.identityMatcher = this.itemsHandlers.identityMatcher;
@@ -25,6 +26,9 @@ export class TuiComboBoxComponent extends AbstractTuiNullableControl {
25
26
  this.searchChange = new EventEmitter();
26
27
  this.open = false;
27
28
  }
29
+ get size() {
30
+ return this.textfieldSize.size;
31
+ }
28
32
  get arrow() {
29
33
  return !this.interactive ? this.arrowMode.disabled : this.arrowMode.interactive;
30
34
  }
@@ -124,8 +128,8 @@ export class TuiComboBoxComponent extends AbstractTuiNullableControl {
124
128
  }
125
129
  }
126
130
  }
127
- TuiComboBoxComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiComboBoxComponent, deps: [{ token: NgControl, optional: true, self: true }, { token: ChangeDetectorRef }, { token: TUI_ARROW_MODE }, { token: TUI_ITEMS_HANDLERS }], target: i0.ɵɵFactoryTarget.Component });
128
- TuiComboBoxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TuiComboBoxComponent, selector: "tui-combo-box", inputs: { stringify: "stringify", strictMatcher: "strictMatcher", identityMatcher: "identityMatcher", valueContent: "valueContent", strict: "strict", search: "search" }, outputs: { searchChange: "searchChange" }, providers: [
131
+ TuiComboBoxComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiComboBoxComponent, deps: [{ token: NgControl, optional: true, self: true }, { token: ChangeDetectorRef }, { token: TUI_ARROW_MODE }, { token: TUI_ITEMS_HANDLERS }, { token: TUI_TEXTFIELD_SIZE }], target: i0.ɵɵFactoryTarget.Component });
132
+ TuiComboBoxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TuiComboBoxComponent, selector: "tui-combo-box", inputs: { stringify: "stringify", strictMatcher: "strictMatcher", identityMatcher: "identityMatcher", valueContent: "valueContent", strict: "strict", search: "search" }, outputs: { searchChange: "searchChange" }, host: { properties: { "attr.data-size": "this.size" } }, providers: [
129
133
  tuiAsFocusableItemAccessor(TuiComboBoxComponent),
130
134
  tuiAsDataListHost(TuiComboBoxComponent),
131
135
  tuiAsControl(TuiComboBoxComponent),
@@ -162,6 +166,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
162
166
  }] }, { type: undefined, decorators: [{
163
167
  type: Inject,
164
168
  args: [TUI_ITEMS_HANDLERS]
169
+ }] }, { type: i1.TuiTextfieldSizeDirective, decorators: [{
170
+ type: Inject,
171
+ args: [TUI_TEXTFIELD_SIZE]
165
172
  }] }]; }, propDecorators: { accessor: [{
166
173
  type: ContentChild,
167
174
  args: [TUI_DATA_LIST_ACCESSOR]
@@ -188,5 +195,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
188
195
  }], datalist: [{
189
196
  type: ContentChild,
190
197
  args: [TuiDataListDirective, { read: TemplateRef }]
198
+ }], size: [{
199
+ type: HostBinding,
200
+ args: ['attr.data-size']
191
201
  }] } });
192
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tYm8tYm94LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tpdC9jb21wb25lbnRzL2NvbWJvLWJveC9jb21iby1ib3guY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2l0L2NvbXBvbmVudHMvY29tYm8tYm94L2NvbWJvLWJveC50ZW1wbGF0ZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxZQUFZLEVBQ1osWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBQ0wsUUFBUSxFQUNSLE1BQU0sRUFDTixJQUFJLEVBQ0osV0FBVyxFQUNYLFNBQVMsR0FDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDekMsT0FBTyxFQUNILDBCQUEwQixFQUMxQixrQkFBa0IsRUFFbEIsWUFBWSxFQUNaLDBCQUEwQixFQUcxQixrQkFBa0IsRUFDbEIsWUFBWSxHQUVmLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDSCxzQkFBc0IsRUFDdEIsaUJBQWlCLEVBQ2pCLGtCQUFrQixFQUVsQixvQkFBb0IsRUFFcEIsMEJBQTBCLEVBQzFCLDhCQUE4QixHQUtqQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBQyxjQUFjLEVBQWUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUM1RSxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSx3Q0FBd0MsQ0FBQztBQUN6RSxPQUFPLEVBQUMsa0NBQWtDLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUMzRSxPQUFPLEVBQUMsa0JBQWtCLEVBQW1CLE1BQU0sc0JBQXNCLENBQUM7Ozs7Ozs7QUFnQjFFLE1BQU0sT0FBTyxvQkFDVCxTQUFRLDBCQUE2QjtJQXlDckMsWUFJSSxPQUF5QixFQUNF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b0I7a0JBYmhDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLGVBQWU7b0JBQ3pCLFdBQVcsRUFBRSwyQkFBMkI7b0JBQ3hDLFNBQVMsRUFBRSxDQUFDLHdCQUF3QixDQUFDO29CQUNyQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsU0FBUyxFQUFFO3dCQUNQLDBCQUEwQixzQkFBc0I7d0JBQ2hELGlCQUFpQixzQkFBc0I7d0JBQ3ZDLFlBQVksc0JBQXNCO3dCQUNsQyxrQkFBa0IsQ0FBQyxpQkFBaUIsQ0FBQztxQkFDeEM7b0JBQ0QsYUFBYSxFQUFFLENBQUMsa0NBQWtDLENBQUM7aUJBQ3REOzswQkE0Q1EsUUFBUTs7MEJBQ1IsSUFBSTs7MEJBQ0osTUFBTTsyQkFBQyxTQUFTOzswQkFFaEIsTUFBTTsyQkFBQyxpQkFBaUI7OzBCQUN4QixNQUFNOzJCQUFDLGNBQWM7OzBCQUVyQixNQUFNOzJCQUFDLGtCQUFrQjs0Q0E3Q2IsUUFBUTtzQkFEeEIsWUFBWTt1QkFBQyxzQkFBNkI7Z0JBSTFCLGNBQWM7c0JBRDlCLFNBQVM7dUJBQUMsMEJBQTBCO2dCQUlwQixTQUFTO3NCQUR6QixTQUFTO3VCQUFDLDhCQUE4QjtnQkFJekMsU0FBUztzQkFEUixLQUFLO2dCQUlOLGFBQWE7c0JBRFosS0FBSztnQkFJTixlQUFlO3NCQURkLEtBQUs7Z0JBS04sWUFBWTtzQkFEWCxLQUFLO2dCQUlOLE1BQU07c0JBREwsS0FBSztnQkFJTixNQUFNO3NCQURMLEtBQUs7Z0JBSUcsWUFBWTtzQkFEcEIsTUFBTTtnQkFJRSxRQUFRO3NCQURoQixZQUFZO3VCQUFDLG9CQUFvQixFQUFFLEVBQUMsSUFBSSxFQUFFLFdBQVcsRUFBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIENvbnRlbnRDaGlsZCxcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSW5qZWN0LFxuICAgIElucHV0LFxuICAgIE9wdGlvbmFsLFxuICAgIE91dHB1dCxcbiAgICBTZWxmLFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge05nQ29udHJvbH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtcbiAgICBBYnN0cmFjdFR1aU51bGxhYmxlQ29udHJvbCxcbiAgICBUVUlfU1RSSUNUX01BVENIRVIsXG4gICAgVHVpQWN0aXZlWm9uZURpcmVjdGl2ZSxcbiAgICB0dWlBc0NvbnRyb2wsXG4gICAgdHVpQXNGb2N1c2FibGVJdGVtQWNjZXNzb3IsXG4gICAgVHVpQ29udGV4dFdpdGhJbXBsaWNpdCxcbiAgICBUdWlGb2N1c2FibGVFbGVtZW50QWNjZXNzb3IsXG4gICAgdHVpSXNOYXRpdmVGb2N1c2VkLFxuICAgIHR1aUlzUHJlc2VudCxcbiAgICBUdWlTdHJpbmdNYXRjaGVyLFxufSBmcm9tICdAdGFpZ2EtdWkvY2RrJztcbmltcG9ydCB7XG4gICAgVFVJX0RBVEFfTElTVF9BQ0NFU1NPUixcbiAgICB0dWlBc0RhdGFMaXN0SG9zdCxcbiAgICB0dWlBc09wdGlvbkNvbnRlbnQsXG4gICAgVHVpRGF0YUxpc3RBY2Nlc3NvcixcbiAgICBUdWlEYXRhTGlzdERpcmVjdGl2ZSxcbiAgICBUdWlEYXRhTGlzdEhvc3QsXG4gICAgVHVpSG9zdGVkRHJvcGRvd25Db21wb25lbnQsXG4gICAgVHVpUHJpbWl0aXZlVGV4dGZpZWxkQ29tcG9uZW50LFxuICAgIFR1aVNpemVMLFxuICAgIFR1aVNpemVNLFxuICAgIFR1aVNpemVTLFxuICAgIFR1aVZhbHVlQ29udGVudENvbnRleHQsXG59IGZyb20gJ0B0YWlnYS11aS9jb3JlJztcbmltcG9ydCB7VFVJX0FSUk9XX01PREUsIFR1aUFycm93TW9kZX0gZnJvbSAnQHRhaWdhLXVpL2tpdC9jb21wb25lbnRzL2Fycm93JztcbmltcG9ydCB7VFVJX1NFTEVDVF9PUFRJT059IGZyb20gJ0B0YWlnYS11aS9raXQvY29tcG9uZW50cy9zZWxlY3Qtb3B0aW9uJztcbmltcG9ydCB7RklYRURfRFJPUERPV05fQ09OVFJPTExFUl9QUk9WSURFUn0gZnJvbSAnQHRhaWdhLXVpL2tpdC9wcm92aWRlcnMnO1xuaW1wb3J0IHtUVUlfSVRFTVNfSEFORExFUlMsIFR1aUl0ZW1zSGFuZGxlcnN9IGZyb20gJ0B0YWlnYS11aS9raXQvdG9rZW5zJztcbmltcG9ydCB7UG9seW1vcnBoZXVzQ29udGVudH0gZnJvbSAnQHRpbmtvZmYvbmctcG9seW1vcnBoZXVzJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd0dWktY29tYm8tYm94JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vY29tYm8tYm94LnRlbXBsYXRlLmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2NvbWJvLWJveC5zdHlsZS5sZXNzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHR1aUFzRm9jdXNhYmxlSXRlbUFjY2Vzc29yKFR1aUNvbWJvQm94Q29tcG9uZW50KSxcbiAgICAgICAgdHVpQXNEYXRhTGlzdEhvc3QoVHVpQ29tYm9Cb3hDb21wb25lbnQpLFxuICAgICAgICB0dWlBc0NvbnRyb2woVHVpQ29tYm9Cb3hDb21wb25lbnQpLFxuICAgICAgICB0dWlBc09wdGlvbkNvbnRlbnQoVFVJX1NFTEVDVF9PUFRJT04pLFxuICAgIF0sXG4gICAgdmlld1Byb3ZpZGVyczogW0ZJWEVEX0RST1BET1dOX0NPTlRST0xMRVJfUFJPVklERVJdLFxufSlcbmV4cG9ydCBjbGFzcyBUdWlDb21ib0JveENvbXBvbmVudDxUPlxuICAgIGV4dGVuZHMgQWJzdHJhY3RUdWlOdWxsYWJsZUNvbnRyb2w8VD5cbiAgICBpbXBsZW1lbnRzIFR1aUZvY3VzYWJsZUVsZW1lbnRBY2Nlc3NvciwgVHVpRGF0YUxpc3RIb3N0PFQ+XG57XG4gICAgQENvbnRlbnRDaGlsZChUVUlfREFUQV9MSVNUX0FDQ0VTU09SIGFzIGFueSlcbiAgICBwcml2YXRlIHJlYWRvbmx5IGFjY2Vzc29yPzogVHVpRGF0YUxpc3RBY2Nlc3NvcjxUPjtcblxuICAgIEBWaWV3Q2hpbGQoVHVpSG9zdGVkRHJvcGRvd25Db21wb25lbnQpXG4gICAgcHJpdmF0ZSByZWFkb25seSBob3N0ZWREcm9wZG93bj86IFR1aUhvc3RlZERyb3Bkb3duQ29tcG9uZW50O1xuXG4gICAgQFZpZXdDaGlsZChUdWlQcmltaXRpdmVUZXh0ZmllbGRDb21wb25lbnQpXG4gICAgcHJpdmF0ZSByZWFkb25seSB0ZXh0ZmllbGQ/OiBUdWlQcmltaXRpdmVUZXh0ZmllbGRDb21wb25lbnQ7XG5cbiAgICBASW5wdXQoKVxuICAgIHN0cmluZ2lmeTogVHVpSXRlbXNIYW5kbGVyczxUPlsnc3RyaW5naWZ5J10gPSB0aGlzLml0ZW1zSGFuZGxlcnMuc3RyaW5naWZ5O1xuXG4gICAgQElucHV0KClcbiAgICBzdHJpY3RNYXRjaGVyOiBUdWlTdHJpbmdNYXRjaGVyPFQ+ID0gVFVJX1NUUklDVF9NQVRDSEVSO1xuXG4gICAgQElucHV0KClcbiAgICBpZGVudGl0eU1hdGNoZXI6IFR1aUl0ZW1zSGFuZGxlcnM8VD5bJ2lkZW50aXR5TWF0Y2hlciddID1cbiAgICAgICAgdGhpcy5pdGVtc0hhbmRsZXJzLmlkZW50aXR5TWF0Y2hlcjtcblxuICAgIEBJbnB1dCgpXG4gICAgdmFsdWVDb250ZW50OiBQb2x5bW9ycGhldXNDb250ZW50PFR1aVZhbHVlQ29udGVudENvbnRleHQ8VD4+O1xuXG4gICAgQElucHV0KClcbiAgICBzdHJpY3QgPSB0cnVlO1xuXG4gICAgQElucHV0KClcbiAgICBzZWFyY2g6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXG4gICAgQE91dHB1dCgpXG4gICAgcmVhZG9ubHkgc2VhcmNoQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmcgfCBudWxsPigpO1xuXG4gICAgQENvbnRlbnRDaGlsZChUdWlEYXRhTGlzdERpcmVjdGl2ZSwge3JlYWQ6IFRlbXBsYXRlUmVmfSlcbiAgICByZWFkb25seSBkYXRhbGlzdDogUG9seW1vcnBoZXVzQ29udGVudDxcbiAgICAgICAgVHVpQ29udGV4dFdpdGhJbXBsaWNpdDxUdWlBY3RpdmVab25lRGlyZWN0aXZlPlxuICAgID47XG5cbiAgICBvcGVuID0gZmFsc2U7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQE9wdGlvbmFsKClcbiAgICAgICAgQFNlbGYoKVxuICAgICAgICBASW5qZWN0KE5nQ29udHJvbClcbiAgICAgICAgY29udHJvbDogTmdDb250cm9sIHwgbnVsbCxcbiAgICAgICAgQEluamVjdChDaGFuZ2VEZXRlY3RvclJlZikgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgQEluamVjdChUVUlfQVJST1dfTU9ERSlcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBhcnJvd01vZGU6IFR1aUFycm93TW9kZSxcbiAgICAgICAgQEluamVjdChUVUlfSVRFTVNfSEFORExFUlMpXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgaXRlbXNIYW5kbGVyczogVHVpSXRlbXNIYW5kbGVyczxUPixcbiAgICApIHtcbiAgICAgICAgc3VwZXIoY29udHJvbCwgY2RyKTtcbiAgICB9XG5cbiAgICBnZXQgYXJyb3coKTogUG9seW1vcnBoZXVzQ29udGVudDxcbiAgICAgICAgVHVpQ29udGV4dFdpdGhJbXBsaWNpdDxUdWlTaXplTCB8IFR1aVNpemVNIHwgVHVpU2l6ZVM+XG4gICAgPiB7XG4gICAgICAgIHJldHVybiAhdGhpcy5pbnRlcmFjdGl2ZSA/IHRoaXMuYXJyb3dNb2RlLmRpc2FibGVkIDogdGhpcy5hcnJvd01vZGUuaW50ZXJhY3RpdmU7XG4gICAgfVxuXG4gICAgZ2V0IG5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQoKTogSFRNTElucHV0RWxlbWVudCB8IG51bGwge1xuICAgICAgICByZXR1cm4gdGhpcy50ZXh0ZmllbGQ/Lm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQgPz8gbnVsbDtcbiAgICB9XG5cbiAgICBnZXQgZm9jdXNlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIHR1aUlzTmF0aXZlRm9jdXNlZCh0aGlzLm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQpIHx8XG4gICAgICAgICAgICAoISF0aGlzLmhvc3RlZERyb3Bkb3duICYmIHRoaXMuaG9zdGVkRHJvcGRvd24uZm9jdXNlZClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBnZXQgbmF0aXZlVmFsdWUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudmFsdWUgPT09IG51bGwgPyB0aGlzLnNlYXJjaCB8fCAnJyA6IHRoaXMuc3RyaW5naWZ5KHRoaXMudmFsdWUpO1xuICAgIH1cblxuICAgIGdldCBzaG93VmFsdWVUZW1wbGF0ZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHR1aUlzUHJlc2VudCh0aGlzLnZhbHVlKSAmJiAhdGhpcy5mb2N1c2VkO1xuICAgIH1cblxuICAgIGdldCBjb21wdXRlZENvbnRlbnQoKTogUG9seW1vcnBoZXVzQ29udGVudDxUdWlWYWx1ZUNvbnRlbnRDb250ZXh0PFQ+PiB7XG4gICAgICAgIHJldHVybiB0aGlzLnZhbHVlQ29udGVudCB8fCB0aGlzLm5hdGl2ZVZhbHVlO1xuICAgIH1cblxuICAgIG9uQWN0aXZlWm9uZShhY3RpdmU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy51cGRhdGVGb2N1c2VkKGFjdGl2ZSk7XG4gICAgfVxuXG4gICAgY2hlY2tPcHRpb24ob3B0aW9uOiBUKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5pc1N0cmljdE1hdGNoKG9wdGlvbikpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMudmFsdWUgPSBvcHRpb247XG4gICAgICAgIHRoaXMudXBkYXRlU2VhcmNoKG51bGwpO1xuICAgIH1cblxuICAgIGhhbmRsZU9wdGlvbihpdGVtOiBUKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZm9jdXNJbnB1dCgpO1xuICAgICAgICB0aGlzLmNsb3NlKCk7XG4gICAgICAgIHRoaXMudXBkYXRlU2VhcmNoKG51bGwpO1xuICAgICAgICB0aGlzLnZhbHVlID0gaXRlbTtcblxuICAgICAgICBpZiAodGhpcy52YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5zZXROYXRpdmVWYWx1ZSh0aGlzLnN0cmluZ2lmeShpdGVtKSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbkZpZWxkS2V5RG93bkVudGVyKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5vcGVuKSB7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMuYWNjZXNzb3I/LmdldE9wdGlvbnMoKSB8fCBbXTtcblxuICAgICAgICBpZiAob3B0aW9ucy5sZW5ndGggIT09IDEpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMudmFsdWUgPSBvcHRpb25zWzBdO1xuICAgICAgICB0aGlzLnVwZGF0ZVNlYXJjaChudWxsKTtcbiAgICAgICAgdGhpcy5jbG9zZSgpO1xuICAgIH1cblxuICAgIG9uVmFsdWVDaGFuZ2UodmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICB0aGlzLnVwZGF0ZVNlYXJjaCh2YWx1ZSk7XG5cbiAgICAgICAgY29uc3QgbWF0Y2ggPSB0aGlzLmFjY2Vzc29yPy5nZXRPcHRpb25zKCkuZmluZChpdGVtID0+IHRoaXMuaXNTdHJpY3RNYXRjaChpdGVtKSk7XG5cbiAgICAgICAgaWYgKG1hdGNoICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMudmFsdWUgPSBtYXRjaDtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlU2VhcmNoKG51bGwpO1xuXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5zdHJpY3QgfHwgdGhpcy5zZWFyY2ggPT09ICcnKSB7XG4gICAgICAgICAgICB0aGlzLnZhbHVlID0gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuaG9zdGVkRHJvcGRvd24/LnVwZGF0ZU9wZW4odHJ1ZSk7XG4gICAgfVxuXG4gICAgLyoqIEBkZXByZWNhdGVkIHVzZSAndmFsdWUnIHNldHRlciAqL1xuICAgIG92ZXJyaWRlIHVwZGF0ZVZhbHVlKHZhbHVlOiBUIHwgbnVsbCk6IHZvaWQge1xuICAgICAgICBzdXBlci51cGRhdGVWYWx1ZSh2YWx1ZSk7XG4gICAgfVxuXG4gICAgdG9nZ2xlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmhvc3RlZERyb3Bkb3duPy51cGRhdGVPcGVuKCF0aGlzLm9wZW4pO1xuICAgIH1cblxuICAgIHByaXZhdGUgaXNTdHJpY3RNYXRjaChpdGVtOiBUKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnN0cmljdE1hdGNoZXIoaXRlbSwgdGhpcy5zZWFyY2ggfHwgJycsIHRoaXMuc3RyaW5naWZ5KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNsb3NlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmhvc3RlZERyb3Bkb3duPy51cGRhdGVPcGVuKGZhbHNlKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZVNlYXJjaChzZWFyY2g6IHN0cmluZyB8IG51bGwpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuc2VhcmNoID09PSBzZWFyY2gpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuc2VhcmNoID0gc2VhcmNoO1xuICAgICAgICB0aGlzLnNlYXJjaENoYW5nZS5lbWl0KHNlYXJjaCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXROYXRpdmVWYWx1ZSh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQpIHtcbiAgICAgICAgICAgIHRoaXMubmF0aXZlRm9jdXNhYmxlRWxlbWVudC52YWx1ZSA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBmb2N1c0lucHV0KHByZXZlbnRTY3JvbGw6IGJvb2xlYW4gPSBmYWxzZSk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5uYXRpdmVGb2N1c2FibGVFbGVtZW50KSB7XG4gICAgICAgICAgICB0aGlzLm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQuZm9jdXMoe3ByZXZlbnRTY3JvbGx9KTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIjx0dWktaG9zdGVkLWRyb3Bkb3duXG4gICAgY2xhc3M9XCJ0LWhvc3RlZFwiXG4gICAgW2Nhbk9wZW5dPVwiaW50ZXJhY3RpdmVcIlxuICAgIFtjb250ZW50XT1cImRhdGFsaXN0IHx8ICcnXCJcbiAgICBbKG9wZW4pXT1cIm9wZW5cIlxuICAgICh0dWlBY3RpdmVab25lQ2hhbmdlKT1cIm9uQWN0aXZlWm9uZSgkZXZlbnQpXCJcbj5cbiAgICA8dHVpLXByaW1pdGl2ZS10ZXh0ZmllbGRcbiAgICAgICAgYXV0b21hdGlvbi1pZD1cInR1aS1jb21iby1ib3hfX3RleHRmaWVsZFwiXG4gICAgICAgIGNsYXNzPVwidC10ZXh0ZmllbGRcIlxuICAgICAgICBbcHNldWRvRm9jdXNdPVwiY29tcHV0ZWRGb2N1c2VkXCJcbiAgICAgICAgW3BzZXVkb0hvdmVyXT1cInBzZXVkb0hvdmVyXCJcbiAgICAgICAgW2ludmFsaWRdPVwiY29tcHV0ZWRJbnZhbGlkXCJcbiAgICAgICAgW25hdGl2ZUlkXT1cIm5hdGl2ZUlkXCJcbiAgICAgICAgW3JlYWRPbmx5XT1cInJlYWRPbmx5XCJcbiAgICAgICAgW3R1aVRleHRmaWVsZEljb25dPVwiYXJyb3cgPyBpY29uIDogJydcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiY29tcHV0ZWREaXNhYmxlZFwiXG4gICAgICAgIFtmb2N1c2FibGVdPVwiY29tcHV0ZWRGb2N1c2FibGVcIlxuICAgICAgICBbdmFsdWVdPVwibmF0aXZlVmFsdWVcIlxuICAgICAgICAodmFsdWVDaGFuZ2UpPVwib25WYWx1ZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgKGNsaWNrKT1cInRvZ2dsZSgpXCJcbiAgICAgICAgKGtleWRvd24uZW50ZXIpPVwib25GaWVsZEtleURvd25FbnRlcigkZXZlbnQpXCJcbiAgICA+XG4gICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICAgICAgPG5nLWNvbnRlbnRcbiAgICAgICAgICAgIHNlbGVjdD1cImlucHV0XCJcbiAgICAgICAgICAgIG5nUHJvamVjdEFzPVwiaW5wdXRcIlxuICAgICAgICA+PC9uZy1jb250ZW50PlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgICAqbmdJZj1cInNob3dWYWx1ZVRlbXBsYXRlXCJcbiAgICAgICAgICAgIG5nUHJvamVjdEFzPVwidHVpQ29udGVudFwiXG4gICAgICAgICAgICBhdXRvbWF0aW9uLWlkPVwidHVpLWNvbWJvLWJveF9fdGVtcGxhdGVcIlxuICAgICAgICAgICAgY2xhc3M9XCJ0LXZhbHVlXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICpwb2x5bW9ycGhldXNPdXRsZXQ9XCJjb21wdXRlZENvbnRlbnQgYXMgdGV4dDsgY29udGV4dDogeyRpbXBsaWNpdDogdmFsdWUhLCBhY3RpdmU6IGNvbXB1dGVkRm9jdXNlZH1cIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHt7IHRleHQgfX1cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L3R1aS1wcmltaXRpdmUtdGV4dGZpZWxkPlxuXG4gICAgPG5nLXRlbXBsYXRlICNpY29uPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgICB0dWlXcmFwcGVyXG4gICAgICAgICAgICBhcHBlYXJhbmNlPVwiaWNvblwiXG4gICAgICAgICAgICBjbGFzcz1cInQtaWNvblwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKnBvbHltb3JwaGV1c091dGxldD1cImFycm93XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG48L3R1aS1ob3N0ZWQtZHJvcGRvd24+XG4iXX0=
202
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tYm8tYm94LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tpdC9jb21wb25lbnRzL2NvbWJvLWJveC9jb21iby1ib3guY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2l0L2NvbXBvbmVudHMvY29tYm8tYm94L2NvbWJvLWJveC50ZW1wbGF0ZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxZQUFZLEVBQ1osWUFBWSxFQUNaLFdBQVcsRUFDWCxNQUFNLEVBQ04sS0FBSyxFQUNMLFFBQVEsRUFDUixNQUFNLEVBQ04sSUFBSSxFQUNKLFdBQVcsRUFDWCxTQUFTLEdBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3pDLE9BQU8sRUFDSCwwQkFBMEIsRUFDMUIsa0JBQWtCLEVBRWxCLFlBQVksRUFDWiwwQkFBMEIsRUFHMUIsa0JBQWtCLEVBQ2xCLFlBQVksR0FFZixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0gsc0JBQXNCLEVBQ3RCLGtCQUFrQixFQUNsQixpQkFBaUIsRUFDakIsa0JBQWtCLEVBRWxCLG9CQUFvQixFQUVwQiwwQkFBMEIsRUFDMUIsOEJBQThCLEdBTWpDLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFDLGNBQWMsRUFBZSxNQUFNLGdDQUFnQyxDQUFDO0FBQzVFLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLHdDQUF3QyxDQUFDO0FBQ3pFLE9BQU8sRUFBQyxrQ0FBa0MsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQzNFLE9BQU8sRUFBQyxrQkFBa0IsRUFBbUIsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7OztBQWdCMUUsTUFBTSxPQUFPLG9CQUNULFNBQVEsMEJBQTZC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QUFFLFdBQVcsRUFBQztnQkFzQm5ELElBQUk7c0JBRFAsV0FBVzt1QkFBQyxnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBDb250ZW50Q2hpbGQsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIEluamVjdCxcbiAgICBJbnB1dCxcbiAgICBPcHRpb25hbCxcbiAgICBPdXRwdXQsXG4gICAgU2VsZixcbiAgICBUZW1wbGF0ZVJlZixcbiAgICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtOZ0NvbnRyb2x9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7XG4gICAgQWJzdHJhY3RUdWlOdWxsYWJsZUNvbnRyb2wsXG4gICAgVFVJX1NUUklDVF9NQVRDSEVSLFxuICAgIFR1aUFjdGl2ZVpvbmVEaXJlY3RpdmUsXG4gICAgdHVpQXNDb250cm9sLFxuICAgIHR1aUFzRm9jdXNhYmxlSXRlbUFjY2Vzc29yLFxuICAgIFR1aUNvbnRleHRXaXRoSW1wbGljaXQsXG4gICAgVHVpRm9jdXNhYmxlRWxlbWVudEFjY2Vzc29yLFxuICAgIHR1aUlzTmF0aXZlRm9jdXNlZCxcbiAgICB0dWlJc1ByZXNlbnQsXG4gICAgVHVpU3RyaW5nTWF0Y2hlcixcbn0gZnJvbSAnQHRhaWdhLXVpL2Nkayc7XG5pbXBvcnQge1xuICAgIFRVSV9EQVRBX0xJU1RfQUNDRVNTT1IsXG4gICAgVFVJX1RFWFRGSUVMRF9TSVpFLFxuICAgIHR1aUFzRGF0YUxpc3RIb3N0LFxuICAgIHR1aUFzT3B0aW9uQ29udGVudCxcbiAgICBUdWlEYXRhTGlzdEFjY2Vzc29yLFxuICAgIFR1aURhdGFMaXN0RGlyZWN0aXZlLFxuICAgIFR1aURhdGFMaXN0SG9zdCxcbiAgICBUdWlIb3N0ZWREcm9wZG93bkNvbXBvbmVudCxcbiAgICBUdWlQcmltaXRpdmVUZXh0ZmllbGRDb21wb25lbnQsXG4gICAgVHVpU2l6ZUwsXG4gICAgVHVpU2l6ZU0sXG4gICAgVHVpU2l6ZVMsXG4gICAgVHVpVGV4dGZpZWxkU2l6ZURpcmVjdGl2ZSxcbiAgICBUdWlWYWx1ZUNvbnRlbnRDb250ZXh0LFxufSBmcm9tICdAdGFpZ2EtdWkvY29yZSc7XG5pbXBvcnQge1RVSV9BUlJPV19NT0RFLCBUdWlBcnJvd01vZGV9IGZyb20gJ0B0YWlnYS11aS9raXQvY29tcG9uZW50cy9hcnJvdyc7XG5pbXBvcnQge1RVSV9TRUxFQ1RfT1BUSU9OfSBmcm9tICdAdGFpZ2EtdWkva2l0L2NvbXBvbmVudHMvc2VsZWN0LW9wdGlvbic7XG5pbXBvcnQge0ZJWEVEX0RST1BET1dOX0NPTlRST0xMRVJfUFJPVklERVJ9IGZyb20gJ0B0YWlnYS11aS9raXQvcHJvdmlkZXJzJztcbmltcG9ydCB7VFVJX0lURU1TX0hBTkRMRVJTLCBUdWlJdGVtc0hhbmRsZXJzfSBmcm9tICdAdGFpZ2EtdWkva2l0L3Rva2Vucyc7XG5pbXBvcnQge1BvbHltb3JwaGV1c0NvbnRlbnR9IGZyb20gJ0B0aW5rb2ZmL25nLXBvbHltb3JwaGV1cyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndHVpLWNvbWJvLWJveCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2NvbWJvLWJveC50ZW1wbGF0ZS5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9jb21iby1ib3guc3R5bGUubGVzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB0dWlBc0ZvY3VzYWJsZUl0ZW1BY2Nlc3NvcihUdWlDb21ib0JveENvbXBvbmVudCksXG4gICAgICAgIHR1aUFzRGF0YUxpc3RIb3N0KFR1aUNvbWJvQm94Q29tcG9uZW50KSxcbiAgICAgICAgdHVpQXNDb250cm9sKFR1aUNvbWJvQm94Q29tcG9uZW50KSxcbiAgICAgICAgdHVpQXNPcHRpb25Db250ZW50KFRVSV9TRUxFQ1RfT1BUSU9OKSxcbiAgICBdLFxuICAgIHZpZXdQcm92aWRlcnM6IFtGSVhFRF9EUk9QRE9XTl9DT05UUk9MTEVSX1BST1ZJREVSXSxcbn0pXG5leHBvcnQgY2xhc3MgVHVpQ29tYm9Cb3hDb21wb25lbnQ8VD5cbiAgICBleHRlbmRzIEFic3RyYWN0VHVpTnVsbGFibGVDb250cm9sPFQ+XG4gICAgaW1wbGVtZW50cyBUdWlGb2N1c2FibGVFbGVtZW50QWNjZXNzb3IsIFR1aURhdGFMaXN0SG9zdDxUPlxue1xuICAgIEBDb250ZW50Q2hpbGQoVFVJX0RBVEFfTElTVF9BQ0NFU1NPUiBhcyBhbnkpXG4gICAgcHJpdmF0ZSByZWFkb25seSBhY2Nlc3Nvcj86IFR1aURhdGFMaXN0QWNjZXNzb3I8VD47XG5cbiAgICBAVmlld0NoaWxkKFR1aUhvc3RlZERyb3Bkb3duQ29tcG9uZW50KVxuICAgIHByaXZhdGUgcmVhZG9ubHkgaG9zdGVkRHJvcGRvd24/OiBUdWlIb3N0ZWREcm9wZG93bkNvbXBvbmVudDtcblxuICAgIEBWaWV3Q2hpbGQoVHVpUHJpbWl0aXZlVGV4dGZpZWxkQ29tcG9uZW50KVxuICAgIHByaXZhdGUgcmVhZG9ubHkgdGV4dGZpZWxkPzogVHVpUHJpbWl0aXZlVGV4dGZpZWxkQ29tcG9uZW50O1xuXG4gICAgQElucHV0KClcbiAgICBzdHJpbmdpZnk6IFR1aUl0ZW1zSGFuZGxlcnM8VD5bJ3N0cmluZ2lmeSddID0gdGhpcy5pdGVtc0hhbmRsZXJzLnN0cmluZ2lmeTtcblxuICAgIEBJbnB1dCgpXG4gICAgc3RyaWN0TWF0Y2hlcjogVHVpU3RyaW5nTWF0Y2hlcjxUPiA9IFRVSV9TVFJJQ1RfTUFUQ0hFUjtcblxuICAgIEBJbnB1dCgpXG4gICAgaWRlbnRpdHlNYXRjaGVyOiBUdWlJdGVtc0hhbmRsZXJzPFQ+WydpZGVudGl0eU1hdGNoZXInXSA9XG4gICAgICAgIHRoaXMuaXRlbXNIYW5kbGVycy5pZGVudGl0eU1hdGNoZXI7XG5cbiAgICBASW5wdXQoKVxuICAgIHZhbHVlQ29udGVudDogUG9seW1vcnBoZXVzQ29udGVudDxUdWlWYWx1ZUNvbnRlbnRDb250ZXh0PFQ+PjtcblxuICAgIEBJbnB1dCgpXG4gICAgc3RyaWN0ID0gdHJ1ZTtcblxuICAgIEBJbnB1dCgpXG4gICAgc2VhcmNoOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcblxuICAgIEBPdXRwdXQoKVxuICAgIHJlYWRvbmx5IHNlYXJjaENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nIHwgbnVsbD4oKTtcblxuICAgIEBDb250ZW50Q2hpbGQoVHVpRGF0YUxpc3REaXJlY3RpdmUsIHtyZWFkOiBUZW1wbGF0ZVJlZn0pXG4gICAgcmVhZG9ubHkgZGF0YWxpc3Q6IFBvbHltb3JwaGV1c0NvbnRlbnQ8XG4gICAgICAgIFR1aUNvbnRleHRXaXRoSW1wbGljaXQ8VHVpQWN0aXZlWm9uZURpcmVjdGl2ZT5cbiAgICA+O1xuXG4gICAgb3BlbiA9IGZhbHNlO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBPcHRpb25hbCgpXG4gICAgICAgIEBTZWxmKClcbiAgICAgICAgQEluamVjdChOZ0NvbnRyb2wpXG4gICAgICAgIGNvbnRyb2w6IE5nQ29udHJvbCB8IG51bGwsXG4gICAgICAgIEBJbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIEBJbmplY3QoVFVJX0FSUk9XX01PREUpIHByaXZhdGUgcmVhZG9ubHkgYXJyb3dNb2RlOiBUdWlBcnJvd01vZGUsXG4gICAgICAgIEBJbmplY3QoVFVJX0lURU1TX0hBTkRMRVJTKSBwcml2YXRlIHJlYWRvbmx5IGl0ZW1zSGFuZGxlcnM6IFR1aUl0ZW1zSGFuZGxlcnM8VD4sXG4gICAgICAgIEBJbmplY3QoVFVJX1RFWFRGSUVMRF9TSVpFKVxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHRleHRmaWVsZFNpemU6IFR1aVRleHRmaWVsZFNpemVEaXJlY3RpdmUsXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKGNvbnRyb2wsIGNkcik7XG4gICAgfVxuXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLmRhdGEtc2l6ZScpXG4gICAgZ2V0IHNpemUoKTogVHVpU2l6ZUwgfCBUdWlTaXplUyB7XG4gICAgICAgIHJldHVybiB0aGlzLnRleHRmaWVsZFNpemUuc2l6ZTtcbiAgICB9XG5cbiAgICBnZXQgYXJyb3coKTogUG9seW1vcnBoZXVzQ29udGVudDxcbiAgICAgICAgVHVpQ29udGV4dFdpdGhJbXBsaWNpdDxUdWlTaXplTCB8IFR1aVNpemVNIHwgVHVpU2l6ZVM+XG4gICAgPiB7XG4gICAgICAgIHJldHVybiAhdGhpcy5pbnRlcmFjdGl2ZSA/IHRoaXMuYXJyb3dNb2RlLmRpc2FibGVkIDogdGhpcy5hcnJvd01vZGUuaW50ZXJhY3RpdmU7XG4gICAgfVxuXG4gICAgZ2V0IG5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQoKTogSFRNTElucHV0RWxlbWVudCB8IG51bGwge1xuICAgICAgICByZXR1cm4gdGhpcy50ZXh0ZmllbGQ/Lm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQgPz8gbnVsbDtcbiAgICB9XG5cbiAgICBnZXQgZm9jdXNlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIHR1aUlzTmF0aXZlRm9jdXNlZCh0aGlzLm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQpIHx8XG4gICAgICAgICAgICAoISF0aGlzLmhvc3RlZERyb3Bkb3duICYmIHRoaXMuaG9zdGVkRHJvcGRvd24uZm9jdXNlZClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBnZXQgbmF0aXZlVmFsdWUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudmFsdWUgPT09IG51bGwgPyB0aGlzLnNlYXJjaCB8fCAnJyA6IHRoaXMuc3RyaW5naWZ5KHRoaXMudmFsdWUpO1xuICAgIH1cblxuICAgIGdldCBzaG93VmFsdWVUZW1wbGF0ZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHR1aUlzUHJlc2VudCh0aGlzLnZhbHVlKSAmJiAhdGhpcy5mb2N1c2VkO1xuICAgIH1cblxuICAgIGdldCBjb21wdXRlZENvbnRlbnQoKTogUG9seW1vcnBoZXVzQ29udGVudDxUdWlWYWx1ZUNvbnRlbnRDb250ZXh0PFQ+PiB7XG4gICAgICAgIHJldHVybiB0aGlzLnZhbHVlQ29udGVudCB8fCB0aGlzLm5hdGl2ZVZhbHVlO1xuICAgIH1cblxuICAgIG9uQWN0aXZlWm9uZShhY3RpdmU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy51cGRhdGVGb2N1c2VkKGFjdGl2ZSk7XG4gICAgfVxuXG4gICAgY2hlY2tPcHRpb24ob3B0aW9uOiBUKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5pc1N0cmljdE1hdGNoKG9wdGlvbikpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMudmFsdWUgPSBvcHRpb247XG4gICAgICAgIHRoaXMudXBkYXRlU2VhcmNoKG51bGwpO1xuICAgIH1cblxuICAgIGhhbmRsZU9wdGlvbihpdGVtOiBUKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZm9jdXNJbnB1dCgpO1xuICAgICAgICB0aGlzLmNsb3NlKCk7XG4gICAgICAgIHRoaXMudXBkYXRlU2VhcmNoKG51bGwpO1xuICAgICAgICB0aGlzLnZhbHVlID0gaXRlbTtcblxuICAgICAgICBpZiAodGhpcy52YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5zZXROYXRpdmVWYWx1ZSh0aGlzLnN0cmluZ2lmeShpdGVtKSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbkZpZWxkS2V5RG93bkVudGVyKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5vcGVuKSB7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMuYWNjZXNzb3I/LmdldE9wdGlvbnMoKSB8fCBbXTtcblxuICAgICAgICBpZiAob3B0aW9ucy5sZW5ndGggIT09IDEpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMudmFsdWUgPSBvcHRpb25zWzBdO1xuICAgICAgICB0aGlzLnVwZGF0ZVNlYXJjaChudWxsKTtcbiAgICAgICAgdGhpcy5jbG9zZSgpO1xuICAgIH1cblxuICAgIG9uVmFsdWVDaGFuZ2UodmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICB0aGlzLnVwZGF0ZVNlYXJjaCh2YWx1ZSk7XG5cbiAgICAgICAgY29uc3QgbWF0Y2ggPSB0aGlzLmFjY2Vzc29yPy5nZXRPcHRpb25zKCkuZmluZChpdGVtID0+IHRoaXMuaXNTdHJpY3RNYXRjaChpdGVtKSk7XG5cbiAgICAgICAgaWYgKG1hdGNoICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMudmFsdWUgPSBtYXRjaDtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlU2VhcmNoKG51bGwpO1xuXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5zdHJpY3QgfHwgdGhpcy5zZWFyY2ggPT09ICcnKSB7XG4gICAgICAgICAgICB0aGlzLnZhbHVlID0gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuaG9zdGVkRHJvcGRvd24/LnVwZGF0ZU9wZW4odHJ1ZSk7XG4gICAgfVxuXG4gICAgLyoqIEBkZXByZWNhdGVkIHVzZSAndmFsdWUnIHNldHRlciAqL1xuICAgIG92ZXJyaWRlIHVwZGF0ZVZhbHVlKHZhbHVlOiBUIHwgbnVsbCk6IHZvaWQge1xuICAgICAgICBzdXBlci51cGRhdGVWYWx1ZSh2YWx1ZSk7XG4gICAgfVxuXG4gICAgdG9nZ2xlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmhvc3RlZERyb3Bkb3duPy51cGRhdGVPcGVuKCF0aGlzLm9wZW4pO1xuICAgIH1cblxuICAgIHByaXZhdGUgaXNTdHJpY3RNYXRjaChpdGVtOiBUKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnN0cmljdE1hdGNoZXIoaXRlbSwgdGhpcy5zZWFyY2ggfHwgJycsIHRoaXMuc3RyaW5naWZ5KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNsb3NlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmhvc3RlZERyb3Bkb3duPy51cGRhdGVPcGVuKGZhbHNlKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZVNlYXJjaChzZWFyY2g6IHN0cmluZyB8IG51bGwpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuc2VhcmNoID09PSBzZWFyY2gpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuc2VhcmNoID0gc2VhcmNoO1xuICAgICAgICB0aGlzLnNlYXJjaENoYW5nZS5lbWl0KHNlYXJjaCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXROYXRpdmVWYWx1ZSh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQpIHtcbiAgICAgICAgICAgIHRoaXMubmF0aXZlRm9jdXNhYmxlRWxlbWVudC52YWx1ZSA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBmb2N1c0lucHV0KHByZXZlbnRTY3JvbGw6IGJvb2xlYW4gPSBmYWxzZSk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5uYXRpdmVGb2N1c2FibGVFbGVtZW50KSB7XG4gICAgICAgICAgICB0aGlzLm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQuZm9jdXMoe3ByZXZlbnRTY3JvbGx9KTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIjx0dWktaG9zdGVkLWRyb3Bkb3duXG4gICAgY2xhc3M9XCJ0LWhvc3RlZFwiXG4gICAgW2Nhbk9wZW5dPVwiaW50ZXJhY3RpdmVcIlxuICAgIFtjb250ZW50XT1cImRhdGFsaXN0IHx8ICcnXCJcbiAgICBbKG9wZW4pXT1cIm9wZW5cIlxuICAgICh0dWlBY3RpdmVab25lQ2hhbmdlKT1cIm9uQWN0aXZlWm9uZSgkZXZlbnQpXCJcbj5cbiAgICA8dHVpLXByaW1pdGl2ZS10ZXh0ZmllbGRcbiAgICAgICAgYXV0b21hdGlvbi1pZD1cInR1aS1jb21iby1ib3hfX3RleHRmaWVsZFwiXG4gICAgICAgIGNsYXNzPVwidC10ZXh0ZmllbGRcIlxuICAgICAgICBbcHNldWRvRm9jdXNdPVwiY29tcHV0ZWRGb2N1c2VkXCJcbiAgICAgICAgW3BzZXVkb0hvdmVyXT1cInBzZXVkb0hvdmVyXCJcbiAgICAgICAgW2ludmFsaWRdPVwiY29tcHV0ZWRJbnZhbGlkXCJcbiAgICAgICAgW25hdGl2ZUlkXT1cIm5hdGl2ZUlkXCJcbiAgICAgICAgW3JlYWRPbmx5XT1cInJlYWRPbmx5XCJcbiAgICAgICAgW3R1aVRleHRmaWVsZEljb25dPVwiYXJyb3cgPyBpY29uIDogJydcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiY29tcHV0ZWREaXNhYmxlZFwiXG4gICAgICAgIFtmb2N1c2FibGVdPVwiY29tcHV0ZWRGb2N1c2FibGVcIlxuICAgICAgICBbdmFsdWVdPVwibmF0aXZlVmFsdWVcIlxuICAgICAgICAodmFsdWVDaGFuZ2UpPVwib25WYWx1ZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgKGNsaWNrKT1cInRvZ2dsZSgpXCJcbiAgICAgICAgKGtleWRvd24uZW50ZXIpPVwib25GaWVsZEtleURvd25FbnRlcigkZXZlbnQpXCJcbiAgICA+XG4gICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICAgICAgPG5nLWNvbnRlbnRcbiAgICAgICAgICAgIHNlbGVjdD1cImlucHV0XCJcbiAgICAgICAgICAgIG5nUHJvamVjdEFzPVwiaW5wdXRcIlxuICAgICAgICA+PC9uZy1jb250ZW50PlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgICAqbmdJZj1cInNob3dWYWx1ZVRlbXBsYXRlXCJcbiAgICAgICAgICAgIG5nUHJvamVjdEFzPVwidHVpQ29udGVudFwiXG4gICAgICAgICAgICBhdXRvbWF0aW9uLWlkPVwidHVpLWNvbWJvLWJveF9fdGVtcGxhdGVcIlxuICAgICAgICAgICAgY2xhc3M9XCJ0LXZhbHVlXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICpwb2x5bW9ycGhldXNPdXRsZXQ9XCJjb21wdXRlZENvbnRlbnQgYXMgdGV4dDsgY29udGV4dDogeyRpbXBsaWNpdDogdmFsdWUhLCBhY3RpdmU6IGNvbXB1dGVkRm9jdXNlZH1cIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHt7IHRleHQgfX1cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L3R1aS1wcmltaXRpdmUtdGV4dGZpZWxkPlxuXG4gICAgPG5nLXRlbXBsYXRlICNpY29uPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgICB0dWlXcmFwcGVyXG4gICAgICAgICAgICBhcHBlYXJhbmNlPVwiaWNvblwiXG4gICAgICAgICAgICBjbGFzcz1cInQtaWNvblwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKnBvbHltb3JwaGV1c091dGxldD1cImFycm93XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG48L3R1aS1ob3N0ZWQtZHJvcGRvd24+XG4iXX0=
@@ -1,17 +1,21 @@
1
- import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChild, Inject, Optional, Self, TemplateRef, ViewChild, } from '@angular/core';
1
+ import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChild, HostBinding, Inject, Optional, Self, TemplateRef, ViewChild, } from '@angular/core';
2
2
  import { NgControl } from '@angular/forms';
3
3
  import { AbstractTuiControl, tuiAsControl, tuiAsFocusableItemAccessor, tuiIsNativeFocused, } from '@taiga-ui/cdk';
4
- import { tuiAsDataListHost, TuiDataListDirective, TuiHostedDropdownComponent, TuiPrimitiveTextfieldComponent, } from '@taiga-ui/core';
4
+ import { TUI_TEXTFIELD_SIZE, tuiAsDataListHost, TuiDataListDirective, TuiHostedDropdownComponent, TuiPrimitiveTextfieldComponent, } from '@taiga-ui/core';
5
5
  import { FIXED_DROPDOWN_CONTROLLER_PROVIDER, TUI_VALUE_ACCESSOR_PROVIDER, } from '@taiga-ui/kit/providers';
6
6
  import * as i0 from "@angular/core";
7
7
  import * as i1 from "@taiga-ui/core";
8
8
  import * as i2 from "@taiga-ui/cdk";
9
9
  import * as i3 from "@angular/forms";
10
10
  export class TuiInputComponent extends AbstractTuiControl {
11
- constructor(control, cdr) {
11
+ constructor(control, cdr, textfieldSize) {
12
12
  super(control, cdr);
13
+ this.textfieldSize = textfieldSize;
13
14
  this.open = false;
14
15
  }
16
+ get size() {
17
+ return this.textfieldSize.size;
18
+ }
15
19
  get nativeFocusableElement() {
16
20
  return this.computedDisabled || !this.textfield
17
21
  ? null
@@ -51,8 +55,8 @@ export class TuiInputComponent extends AbstractTuiControl {
51
55
  }
52
56
  }
53
57
  }
54
- TuiInputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiInputComponent, deps: [{ token: NgControl, optional: true, self: true }, { token: ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
55
- TuiInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TuiInputComponent, selector: "tui-input", providers: [
58
+ TuiInputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiInputComponent, deps: [{ token: NgControl, optional: true, self: true }, { token: ChangeDetectorRef }, { token: TUI_TEXTFIELD_SIZE }], target: i0.ɵɵFactoryTarget.Component });
59
+ TuiInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TuiInputComponent, selector: "tui-input", host: { properties: { "attr.data-size": "this.size" } }, providers: [
56
60
  TUI_VALUE_ACCESSOR_PROVIDER,
57
61
  tuiAsFocusableItemAccessor(TuiInputComponent),
58
62
  tuiAsDataListHost(TuiInputComponent),
@@ -83,6 +87,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
83
87
  }] }, { type: i0.ChangeDetectorRef, decorators: [{
84
88
  type: Inject,
85
89
  args: [ChangeDetectorRef]
90
+ }] }, { type: i1.TuiTextfieldSizeDirective, decorators: [{
91
+ type: Inject,
92
+ args: [TUI_TEXTFIELD_SIZE]
86
93
  }] }]; }, propDecorators: { hostedDropdown: [{
87
94
  type: ViewChild,
88
95
  args: [TuiHostedDropdownComponent]
@@ -92,5 +99,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
92
99
  }], datalist: [{
93
100
  type: ContentChild,
94
101
  args: [TuiDataListDirective, { read: TemplateRef }]
102
+ }], size: [{
103
+ type: HostBinding,
104
+ args: ['attr.data-size']
95
105
  }] } });
96
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2l0L2NvbXBvbmVudHMvaW5wdXQvaW5wdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2l0L2NvbXBvbmVudHMvaW5wdXQvaW5wdXQudGVtcGxhdGUuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsWUFBWSxFQUNaLE1BQU0sRUFDTixRQUFRLEVBQ1IsSUFBSSxFQUNKLFdBQVcsRUFDWCxTQUFTLEdBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3pDLE9BQU8sRUFDSCxrQkFBa0IsRUFFbEIsWUFBWSxFQUNaLDBCQUEwQixFQUcxQixrQkFBa0IsR0FDckIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNILGlCQUFpQixFQUNqQixvQkFBb0IsRUFFcEIsMEJBQTBCLEVBQzFCLDhCQUE4QixHQUNqQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFDSCxrQ0FBa0MsRUFDbEMsMkJBQTJCLEdBQzlCLE1BQU0seUJBQXlCLENBQUM7Ozs7O0FBZ0JqQyxNQUFNLE9BQU8saUJBQ1QsU0FBUSxrQkFBMEI7SUFnQmxDLFlBSUksT0FBeUIsRUFDRSxHQUFzQjtRQUVqRCxLQUFLLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBVHhCLFNBQUksR0FBRyxLQUFLLENBQUM7SUFVYixDQUFDO0lBRUQsSUFBSSxzQkFBc0I7UUFDdEIsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUztZQUMzQyxDQUFDLENBQUMsSUFBSTtZQUNOLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLHNCQUFzQixDQUFDO0lBQ2hELENBQUM7SUFFRCxJQUFJLE9BQU87UUFDUCxPQUFPLENBQ0gsa0JBQWtCLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDO1lBQy9DLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FDekQsQ0FBQztJQUNOLENBQUM7SUFFRCxJQUFJLE9BQU87UUFDUCxPQUFPLElBQUksQ0FBQyxXQUFXLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDL0MsQ0FBQztJQUVELGFBQWEsQ0FBQyxLQUFhO1FBQ3ZCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO0lBQ3JCLENBQUM7SUFFRCxZQUFZLENBQUMsTUFBZTtRQUN4QixJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFRCxZQUFZLENBQUMsSUFBYTtRQUN0QixJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNsQixJQUFJLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMxQixJQUFJLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQztJQUN0QixDQUFDO0lBRVMsZ0JBQWdCO1FBQ3RCLE9BQU8sRUFBRSxDQUFDO0lBQ2QsQ0FBQztJQUVPLFVBQVUsQ0FBQyxnQkFBeUIsS0FBSztRQUM3QyxJQUFJLElBQUksQ0FBQyxzQkFBc0IsRUFBRTtZQUM3QixJQUFJLENBQUMsc0JBQXNCLENBQUMsS0FBSyxDQUFDLEVBQUMsYUFBYSxFQUFDLENBQUMsQ0FBQztTQUN0RDtJQUNMLENBQUM7SUFFTyxjQUFjLENBQUMsS0FBYTtRQUNoQyxJQUFJLElBQUksQ0FBQyxzQkFBc0IsRUFBRTtZQUM3QixJQUFJLENBQUMsc0JBQXNCLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztTQUM3QztJQUNMLENBQUM7OytHQTFFUSxpQkFBaUIsa0JBb0JkLFNBQVMseUNBRVQsaUJBQWlCO21HQXRCcEIsaUJBQWlCLG9DQVJmO1FBQ1AsMkJBQTJCO1FBQzNCLDBCQUEwQixDQUFDLGlCQUFpQixDQUFDO1FBQzdDLGlCQUFpQixDQUFDLGlCQUFpQixDQUFDO1FBQ3BDLFlBQVksQ0FBQyxpQkFBaUIsQ0FBQztLQUNsQyxnRUFhYSxvQkFBb0IsMkJBQVMsV0FBVyw2RUFOM0MsMEJBQTBCLDRFQUcxQiw4QkFBOEIsdUVDdEQ3QyxtMUJBMkJBLG8rQkRrQm1CLENBQUMsa0NBQWtDLENBQUM7NEZBRTFDLGlCQUFpQjtrQkFiN0IsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsV0FBVztvQkFDckIsV0FBVyxFQUFFLHVCQUF1QjtvQkFDcEMsU0FBUyxFQUFFLENBQUMsb0JBQW9CLENBQUM7b0JBQ2pDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxTQUFTLEVBQUU7d0JBQ1AsMkJBQTJCO3dCQUMzQiwwQkFBMEIsbUJBQW1CO3dCQUM3QyxpQkFBaUIsbUJBQW1CO3dCQUNwQyxZQUFZLG1CQUFtQjtxQkFDbEM7b0JBQ0QsYUFBYSxFQUFFLENBQUMsa0NBQWtDLENBQUM7aUJBQ3REOzswQkFtQlEsUUFBUTs7MEJBQ1IsSUFBSTs7MEJBQ0osTUFBTTsyQkFBQyxTQUFTOzswQkFFaEIsTUFBTTsyQkFBQyxpQkFBaUI7NENBakJaLGNBQWM7c0JBRDlCLFNBQVM7dUJBQUMsMEJBQTBCO2dCQUlwQixTQUFTO3NCQUR6QixTQUFTO3VCQUFDLDhCQUE4QjtnQkFJaEMsUUFBUTtzQkFEaEIsWUFBWTt1QkFBQyxvQkFBb0IsRUFBRSxFQUFDLElBQUksRUFBRSxXQUFXLEVBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBDb250ZW50Q2hpbGQsXG4gICAgSW5qZWN0LFxuICAgIE9wdGlvbmFsLFxuICAgIFNlbGYsXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TmdDb250cm9sfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge1xuICAgIEFic3RyYWN0VHVpQ29udHJvbCxcbiAgICBUdWlBY3RpdmVab25lRGlyZWN0aXZlLFxuICAgIHR1aUFzQ29udHJvbCxcbiAgICB0dWlBc0ZvY3VzYWJsZUl0ZW1BY2Nlc3NvcixcbiAgICBUdWlDb250ZXh0V2l0aEltcGxpY2l0LFxuICAgIFR1aUZvY3VzYWJsZUVsZW1lbnRBY2Nlc3NvcixcbiAgICB0dWlJc05hdGl2ZUZvY3VzZWQsXG59IGZyb20gJ0B0YWlnYS11aS9jZGsnO1xuaW1wb3J0IHtcbiAgICB0dWlBc0RhdGFMaXN0SG9zdCxcbiAgICBUdWlEYXRhTGlzdERpcmVjdGl2ZSxcbiAgICBUdWlEYXRhTGlzdEhvc3QsXG4gICAgVHVpSG9zdGVkRHJvcGRvd25Db21wb25lbnQsXG4gICAgVHVpUHJpbWl0aXZlVGV4dGZpZWxkQ29tcG9uZW50LFxufSBmcm9tICdAdGFpZ2EtdWkvY29yZSc7XG5pbXBvcnQge1xuICAgIEZJWEVEX0RST1BET1dOX0NPTlRST0xMRVJfUFJPVklERVIsXG4gICAgVFVJX1ZBTFVFX0FDQ0VTU09SX1BST1ZJREVSLFxufSBmcm9tICdAdGFpZ2EtdWkva2l0L3Byb3ZpZGVycyc7XG5pbXBvcnQge1BvbHltb3JwaGV1c0NvbnRlbnR9IGZyb20gJ0B0aW5rb2ZmL25nLXBvbHltb3JwaGV1cyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndHVpLWlucHV0JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vaW5wdXQudGVtcGxhdGUuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vaW5wdXQuc3R5bGUubGVzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICBUVUlfVkFMVUVfQUNDRVNTT1JfUFJPVklERVIsXG4gICAgICAgIHR1aUFzRm9jdXNhYmxlSXRlbUFjY2Vzc29yKFR1aUlucHV0Q29tcG9uZW50KSxcbiAgICAgICAgdHVpQXNEYXRhTGlzdEhvc3QoVHVpSW5wdXRDb21wb25lbnQpLFxuICAgICAgICB0dWlBc0NvbnRyb2woVHVpSW5wdXRDb21wb25lbnQpLFxuICAgIF0sXG4gICAgdmlld1Byb3ZpZGVyczogW0ZJWEVEX0RST1BET1dOX0NPTlRST0xMRVJfUFJPVklERVJdLFxufSlcbmV4cG9ydCBjbGFzcyBUdWlJbnB1dENvbXBvbmVudFxuICAgIGV4dGVuZHMgQWJzdHJhY3RUdWlDb250cm9sPHN0cmluZz5cbiAgICBpbXBsZW1lbnRzIFR1aUZvY3VzYWJsZUVsZW1lbnRBY2Nlc3NvciwgVHVpRGF0YUxpc3RIb3N0PHN0cmluZz5cbntcbiAgICBAVmlld0NoaWxkKFR1aUhvc3RlZERyb3Bkb3duQ29tcG9uZW50KVxuICAgIHByaXZhdGUgcmVhZG9ubHkgaG9zdGVkRHJvcGRvd24/OiBUdWlIb3N0ZWREcm9wZG93bkNvbXBvbmVudDtcblxuICAgIEBWaWV3Q2hpbGQoVHVpUHJpbWl0aXZlVGV4dGZpZWxkQ29tcG9uZW50KVxuICAgIHByaXZhdGUgcmVhZG9ubHkgdGV4dGZpZWxkPzogVHVpUHJpbWl0aXZlVGV4dGZpZWxkQ29tcG9uZW50O1xuXG4gICAgQENvbnRlbnRDaGlsZChUdWlEYXRhTGlzdERpcmVjdGl2ZSwge3JlYWQ6IFRlbXBsYXRlUmVmfSlcbiAgICByZWFkb25seSBkYXRhbGlzdDogUG9seW1vcnBoZXVzQ29udGVudDxcbiAgICAgICAgVHVpQ29udGV4dFdpdGhJbXBsaWNpdDxUdWlBY3RpdmVab25lRGlyZWN0aXZlPlxuICAgID47XG5cbiAgICBvcGVuID0gZmFsc2U7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQE9wdGlvbmFsKClcbiAgICAgICAgQFNlbGYoKVxuICAgICAgICBASW5qZWN0KE5nQ29udHJvbClcbiAgICAgICAgY29udHJvbDogTmdDb250cm9sIHwgbnVsbCxcbiAgICAgICAgQEluamVjdChDaGFuZ2VEZXRlY3RvclJlZikgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICApIHtcbiAgICAgICAgc3VwZXIoY29udHJvbCwgY2RyKTtcbiAgICB9XG5cbiAgICBnZXQgbmF0aXZlRm9jdXNhYmxlRWxlbWVudCgpOiBIVE1MSW5wdXRFbGVtZW50IHwgbnVsbCB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbXB1dGVkRGlzYWJsZWQgfHwgIXRoaXMudGV4dGZpZWxkXG4gICAgICAgICAgICA/IG51bGxcbiAgICAgICAgICAgIDogdGhpcy50ZXh0ZmllbGQubmF0aXZlRm9jdXNhYmxlRWxlbWVudDtcbiAgICB9XG5cbiAgICBnZXQgZm9jdXNlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIHR1aUlzTmF0aXZlRm9jdXNlZCh0aGlzLm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQpIHx8XG4gICAgICAgICAgICAoISF0aGlzLmhvc3RlZERyb3Bkb3duICYmIHRoaXMuaG9zdGVkRHJvcGRvd24uZm9jdXNlZClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBnZXQgY2FuT3BlbigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaW50ZXJhY3RpdmUgJiYgISF0aGlzLmRhdGFsaXN0O1xuICAgIH1cblxuICAgIG9uVmFsdWVDaGFuZ2UodmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gICAgICAgIHRoaXMub3BlbiA9IHRydWU7XG4gICAgfVxuXG4gICAgb25BY3RpdmVab25lKGFjdGl2ZTogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLnVwZGF0ZUZvY3VzZWQoYWN0aXZlKTtcbiAgICB9XG5cbiAgICBoYW5kbGVPcHRpb24oaXRlbTogdW5rbm93bik6IHZvaWQge1xuICAgICAgICB0aGlzLnNldE5hdGl2ZVZhbHVlKFN0cmluZyhpdGVtKSk7XG4gICAgICAgIHRoaXMuZm9jdXNJbnB1dCgpO1xuICAgICAgICB0aGlzLnZhbHVlID0gU3RyaW5nKGl0ZW0pO1xuICAgICAgICB0aGlzLm9wZW4gPSBmYWxzZTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0RmFsbGJhY2tWYWx1ZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gJyc7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBmb2N1c0lucHV0KHByZXZlbnRTY3JvbGw6IGJvb2xlYW4gPSBmYWxzZSk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5uYXRpdmVGb2N1c2FibGVFbGVtZW50KSB7XG4gICAgICAgICAgICB0aGlzLm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQuZm9jdXMoe3ByZXZlbnRTY3JvbGx9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgc2V0TmF0aXZlVmFsdWUodmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5uYXRpdmVGb2N1c2FibGVFbGVtZW50KSB7XG4gICAgICAgICAgICB0aGlzLm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQudmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIjx0dWktaG9zdGVkLWRyb3Bkb3duXG4gICAgY2xhc3M9XCJ0LWhvc3RlZFwiXG4gICAgW2Nhbk9wZW5dPVwiY2FuT3BlblwiXG4gICAgW2NvbnRlbnRdPVwiZGF0YWxpc3QgfHwgJydcIlxuICAgIFsob3BlbildPVwib3BlblwiXG4gICAgKHR1aUFjdGl2ZVpvbmVDaGFuZ2UpPVwib25BY3RpdmVab25lKCRldmVudClcIlxuPlxuICAgIDx0dWktcHJpbWl0aXZlLXRleHRmaWVsZFxuICAgICAgICBhdXRvbWF0aW9uLWlkPVwidHVpLWlucHV0X190ZXh0ZmllbGRcIlxuICAgICAgICBjbGFzcz1cInQtdGV4dGZpZWxkXCJcbiAgICAgICAgW3BzZXVkb0ZvY3VzXT1cImNvbXB1dGVkRm9jdXNlZFwiXG4gICAgICAgIFtwc2V1ZG9Ib3Zlcl09XCJwc2V1ZG9Ib3ZlclwiXG4gICAgICAgIFtpbnZhbGlkXT1cImNvbXB1dGVkSW52YWxpZFwiXG4gICAgICAgIFtuYXRpdmVJZF09XCJuYXRpdmVJZFwiXG4gICAgICAgIFtyZWFkT25seV09XCJyZWFkT25seVwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJjb21wdXRlZERpc2FibGVkXCJcbiAgICAgICAgW2ZvY3VzYWJsZV09XCJjb21wdXRlZEZvY3VzYWJsZVwiXG4gICAgICAgIFt2YWx1ZV09XCJ2YWx1ZVwiXG4gICAgICAgICh2YWx1ZUNoYW5nZSk9XCJvblZhbHVlQ2hhbmdlKCRldmVudClcIlxuICAgID5cbiAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgICAgICA8bmctY29udGVudFxuICAgICAgICAgICAgc2VsZWN0PVwiaW5wdXRcIlxuICAgICAgICAgICAgbmdQcm9qZWN0QXM9XCJpbnB1dFwiXG4gICAgICAgID48L25nLWNvbnRlbnQ+XG4gICAgPC90dWktcHJpbWl0aXZlLXRleHRmaWVsZD5cbjwvdHVpLWhvc3RlZC1kcm9wZG93bj5cbiJdfQ==
106
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2l0L2NvbXBvbmVudHMvaW5wdXQvaW5wdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2l0L2NvbXBvbmVudHMvaW5wdXQvaW5wdXQudGVtcGxhdGUuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsWUFBWSxFQUNaLFdBQVcsRUFDWCxNQUFNLEVBQ04sUUFBUSxFQUNSLElBQUksRUFDSixXQUFXLEVBQ1gsU0FBUyxHQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6QyxPQUFPLEVBQ0gsa0JBQWtCLEVBRWxCLFlBQVksRUFDWiwwQkFBMEIsRUFHMUIsa0JBQWtCLEdBQ3JCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDSCxrQkFBa0IsRUFDbEIsaUJBQWlCLEVBQ2pCLG9CQUFvQixFQUVwQiwwQkFBMEIsRUFDMUIsOEJBQThCLEdBSWpDLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUNILGtDQUFrQyxFQUNsQywyQkFBMkIsR0FDOUIsTUFBTSx5QkFBeUIsQ0FBQzs7Ozs7QUFnQmpDLE1BQU0sT0FBTyxpQkFDVCxTQUFRLGtCQUEwQjtJQWdCbEMsWUFJSSxPQUF5QixFQUNFLEdBQXNCLEVBRWhDLGFBQXdDO1FBRXpELEtBQUssQ0FBQyxPQUFPLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFGSCxrQkFBYSxHQUFiLGFBQWEsQ0FBMkI7UUFUN0QsU0FBSSxHQUFHLEtBQUssQ0FBQztJQVliLENBQUM7SUFFRCxJQUNJLElBQUk7UUFDSixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDO0lBQ25DLENBQUM7SUFFRCxJQUFJ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QUFRO3NCQURoQixZQUFZO3VCQUFDLG9CQUFvQixFQUFFLEVBQUMsSUFBSSxFQUFFLFdBQVcsRUFBQztnQkFvQm5ELElBQUk7c0JBRFAsV0FBVzt1QkFBQyxnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBDb250ZW50Q2hpbGQsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSW5qZWN0LFxuICAgIE9wdGlvbmFsLFxuICAgIFNlbGYsXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TmdDb250cm9sfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge1xuICAgIEFic3RyYWN0VHVpQ29udHJvbCxcbiAgICBUdWlBY3RpdmVab25lRGlyZWN0aXZlLFxuICAgIHR1aUFzQ29udHJvbCxcbiAgICB0dWlBc0ZvY3VzYWJsZUl0ZW1BY2Nlc3NvcixcbiAgICBUdWlDb250ZXh0V2l0aEltcGxpY2l0LFxuICAgIFR1aUZvY3VzYWJsZUVsZW1lbnRBY2Nlc3NvcixcbiAgICB0dWlJc05hdGl2ZUZvY3VzZWQsXG59IGZyb20gJ0B0YWlnYS11aS9jZGsnO1xuaW1wb3J0IHtcbiAgICBUVUlfVEVYVEZJRUxEX1NJWkUsXG4gICAgdHVpQXNEYXRhTGlzdEhvc3QsXG4gICAgVHVpRGF0YUxpc3REaXJlY3RpdmUsXG4gICAgVHVpRGF0YUxpc3RIb3N0LFxuICAgIFR1aUhvc3RlZERyb3Bkb3duQ29tcG9uZW50LFxuICAgIFR1aVByaW1pdGl2ZVRleHRmaWVsZENvbXBvbmVudCxcbiAgICBUdWlTaXplTCxcbiAgICBUdWlTaXplUyxcbiAgICBUdWlUZXh0ZmllbGRTaXplRGlyZWN0aXZlLFxufSBmcm9tICdAdGFpZ2EtdWkvY29yZSc7XG5pbXBvcnQge1xuICAgIEZJWEVEX0RST1BET1dOX0NPTlRST0xMRVJfUFJPVklERVIsXG4gICAgVFVJX1ZBTFVFX0FDQ0VTU09SX1BST1ZJREVSLFxufSBmcm9tICdAdGFpZ2EtdWkva2l0L3Byb3ZpZGVycyc7XG5pbXBvcnQge1BvbHltb3JwaGV1c0NvbnRlbnR9IGZyb20gJ0B0aW5rb2ZmL25nLXBvbHltb3JwaGV1cyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndHVpLWlucHV0JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vaW5wdXQudGVtcGxhdGUuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vaW5wdXQuc3R5bGUubGVzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICBUVUlfVkFMVUVfQUNDRVNTT1JfUFJPVklERVIsXG4gICAgICAgIHR1aUFzRm9jdXNhYmxlSXRlbUFjY2Vzc29yKFR1aUlucHV0Q29tcG9uZW50KSxcbiAgICAgICAgdHVpQXNEYXRhTGlzdEhvc3QoVHVpSW5wdXRDb21wb25lbnQpLFxuICAgICAgICB0dWlBc0NvbnRyb2woVHVpSW5wdXRDb21wb25lbnQpLFxuICAgIF0sXG4gICAgdmlld1Byb3ZpZGVyczogW0ZJWEVEX0RST1BET1dOX0NPTlRST0xMRVJfUFJPVklERVJdLFxufSlcbmV4cG9ydCBjbGFzcyBUdWlJbnB1dENvbXBvbmVudFxuICAgIGV4dGVuZHMgQWJzdHJhY3RUdWlDb250cm9sPHN0cmluZz5cbiAgICBpbXBsZW1lbnRzIFR1aUZvY3VzYWJsZUVsZW1lbnRBY2Nlc3NvciwgVHVpRGF0YUxpc3RIb3N0PHN0cmluZz5cbntcbiAgICBAVmlld0NoaWxkKFR1aUhvc3RlZERyb3Bkb3duQ29tcG9uZW50KVxuICAgIHByaXZhdGUgcmVhZG9ubHkgaG9zdGVkRHJvcGRvd24/OiBUdWlIb3N0ZWREcm9wZG93bkNvbXBvbmVudDtcblxuICAgIEBWaWV3Q2hpbGQoVHVpUHJpbWl0aXZlVGV4dGZpZWxkQ29tcG9uZW50KVxuICAgIHByaXZhdGUgcmVhZG9ubHkgdGV4dGZpZWxkPzogVHVpUHJpbWl0aXZlVGV4dGZpZWxkQ29tcG9uZW50O1xuXG4gICAgQENvbnRlbnRDaGlsZChUdWlEYXRhTGlzdERpcmVjdGl2ZSwge3JlYWQ6IFRlbXBsYXRlUmVmfSlcbiAgICByZWFkb25seSBkYXRhbGlzdDogUG9seW1vcnBoZXVzQ29udGVudDxcbiAgICAgICAgVHVpQ29udGV4dFdpdGhJbXBsaWNpdDxUdWlBY3RpdmVab25lRGlyZWN0aXZlPlxuICAgID47XG5cbiAgICBvcGVuID0gZmFsc2U7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQE9wdGlvbmFsKClcbiAgICAgICAgQFNlbGYoKVxuICAgICAgICBASW5qZWN0KE5nQ29udHJvbClcbiAgICAgICAgY29udHJvbDogTmdDb250cm9sIHwgbnVsbCxcbiAgICAgICAgQEluamVjdChDaGFuZ2VEZXRlY3RvclJlZikgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgQEluamVjdChUVUlfVEVYVEZJRUxEX1NJWkUpXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgdGV4dGZpZWxkU2l6ZTogVHVpVGV4dGZpZWxkU2l6ZURpcmVjdGl2ZSxcbiAgICApIHtcbiAgICAgICAgc3VwZXIoY29udHJvbCwgY2RyKTtcbiAgICB9XG5cbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuZGF0YS1zaXplJylcbiAgICBnZXQgc2l6ZSgpOiBUdWlTaXplTCB8IFR1aVNpemVTIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudGV4dGZpZWxkU2l6ZS5zaXplO1xuICAgIH1cblxuICAgIGdldCBuYXRpdmVGb2N1c2FibGVFbGVtZW50KCk6IEhUTUxJbnB1dEVsZW1lbnQgfCBudWxsIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29tcHV0ZWREaXNhYmxlZCB8fCAhdGhpcy50ZXh0ZmllbGRcbiAgICAgICAgICAgID8gbnVsbFxuICAgICAgICAgICAgOiB0aGlzLnRleHRmaWVsZC5uYXRpdmVGb2N1c2FibGVFbGVtZW50O1xuICAgIH1cblxuICAgIGdldCBmb2N1c2VkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgdHVpSXNOYXRpdmVGb2N1c2VkKHRoaXMubmF0aXZlRm9jdXNhYmxlRWxlbWVudCkgfHxcbiAgICAgICAgICAgICghIXRoaXMuaG9zdGVkRHJvcGRvd24gJiYgdGhpcy5ob3N0ZWREcm9wZG93bi5mb2N1c2VkKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIGdldCBjYW5PcGVuKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5pbnRlcmFjdGl2ZSAmJiAhIXRoaXMuZGF0YWxpc3Q7XG4gICAgfVxuXG4gICAgb25WYWx1ZUNoYW5nZSh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5vcGVuID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBvbkFjdGl2ZVpvbmUoYWN0aXZlOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMudXBkYXRlRm9jdXNlZChhY3RpdmUpO1xuICAgIH1cblxuICAgIGhhbmRsZU9wdGlvbihpdGVtOiB1bmtub3duKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2V0TmF0aXZlVmFsdWUoU3RyaW5nKGl0ZW0pKTtcbiAgICAgICAgdGhpcy5mb2N1c0lucHV0KCk7XG4gICAgICAgIHRoaXMudmFsdWUgPSBTdHJpbmcoaXRlbSk7XG4gICAgICAgIHRoaXMub3BlbiA9IGZhbHNlO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXRGYWxsYmFja1ZhbHVlKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiAnJztcbiAgICB9XG5cbiAgICBwcml2YXRlIGZvY3VzSW5wdXQocHJldmVudFNjcm9sbDogYm9vbGVhbiA9IGZhbHNlKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQpIHtcbiAgICAgICAgICAgIHRoaXMubmF0aXZlRm9jdXNhYmxlRWxlbWVudC5mb2N1cyh7cHJldmVudFNjcm9sbH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXROYXRpdmVWYWx1ZSh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQpIHtcbiAgICAgICAgICAgIHRoaXMubmF0aXZlRm9jdXNhYmxlRWxlbWVudC52YWx1ZSA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiPHR1aS1ob3N0ZWQtZHJvcGRvd25cbiAgICBjbGFzcz1cInQtaG9zdGVkXCJcbiAgICBbY2FuT3Blbl09XCJjYW5PcGVuXCJcbiAgICBbY29udGVudF09XCJkYXRhbGlzdCB8fCAnJ1wiXG4gICAgWyhvcGVuKV09XCJvcGVuXCJcbiAgICAodHVpQWN0aXZlWm9uZUNoYW5nZSk9XCJvbkFjdGl2ZVpvbmUoJGV2ZW50KVwiXG4+XG4gICAgPHR1aS1wcmltaXRpdmUtdGV4dGZpZWxkXG4gICAgICAgIGF1dG9tYXRpb24taWQ9XCJ0dWktaW5wdXRfX3RleHRmaWVsZFwiXG4gICAgICAgIGNsYXNzPVwidC10ZXh0ZmllbGRcIlxuICAgICAgICBbcHNldWRvRm9jdXNdPVwiY29tcHV0ZWRGb2N1c2VkXCJcbiAgICAgICAgW3BzZXVkb0hvdmVyXT1cInBzZXVkb0hvdmVyXCJcbiAgICAgICAgW2ludmFsaWRdPVwiY29tcHV0ZWRJbnZhbGlkXCJcbiAgICAgICAgW25hdGl2ZUlkXT1cIm5hdGl2ZUlkXCJcbiAgICAgICAgW3JlYWRPbmx5XT1cInJlYWRPbmx5XCJcbiAgICAgICAgW2Rpc2FibGVkXT1cImNvbXB1dGVkRGlzYWJsZWRcIlxuICAgICAgICBbZm9jdXNhYmxlXT1cImNvbXB1dGVkRm9jdXNhYmxlXCJcbiAgICAgICAgW3ZhbHVlXT1cInZhbHVlXCJcbiAgICAgICAgKHZhbHVlQ2hhbmdlKT1cIm9uVmFsdWVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgPlxuICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgICAgIDxuZy1jb250ZW50XG4gICAgICAgICAgICBzZWxlY3Q9XCJpbnB1dFwiXG4gICAgICAgICAgICBuZ1Byb2plY3RBcz1cImlucHV0XCJcbiAgICAgICAgPjwvbmctY29udGVudD5cbiAgICA8L3R1aS1wcmltaXRpdmUtdGV4dGZpZWxkPlxuPC90dWktaG9zdGVkLWRyb3Bkb3duPlxuIl19