@taiga-ui/core 4.43.0 → 4.44.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 (134) hide show
  1. package/components/alert/alert.tokens.d.ts +5 -4
  2. package/components/calendar/calendar-sheet.options.d.ts +2 -1
  3. package/components/data-list/data-list.tokens.d.ts +3 -2
  4. package/components/data-list/option/option-content.d.ts +2 -1
  5. package/components/dialog/dialog.factory.d.ts +3 -3
  6. package/components/dialog/dialog.tokens.d.ts +4 -3
  7. package/components/link/link.options.d.ts +2 -1
  8. package/components/loader/loader.options.d.ts +2 -1
  9. package/components/textfield/select-like.directive.d.ts +0 -1
  10. package/components/textfield/textfield-accessor.d.ts +2 -1
  11. package/components/textfield/textfield-multi/textfield-item.component.d.ts +1 -0
  12. package/components/textfield/textfield-multi/textfield-multi.component.d.ts +2 -1
  13. package/components/textfield/textfield.component.d.ts +2 -2
  14. package/components/textfield/textfield.options.d.ts +2 -1
  15. package/directives/appearance/appearance.options.d.ts +2 -1
  16. package/directives/dropdown/dropdown-hover.options.d.ts +2 -1
  17. package/directives/dropdown/dropdown-options.directive.d.ts +2 -1
  18. package/directives/dropdown/dropdown.providers.d.ts +3 -2
  19. package/directives/group/group.options.d.ts +2 -1
  20. package/directives/hint/hint-options.directive.d.ts +2 -1
  21. package/directives/hint/hint.providers.d.ts +2 -1
  22. package/directives/items-handlers/items-handlers.tokens.d.ts +2 -1
  23. package/esm2022/components/alert/alert.component.mjs +3 -3
  24. package/esm2022/components/alert/alert.tokens.mjs +28 -21
  25. package/esm2022/components/calendar/calendar-sheet.component.mjs +3 -3
  26. package/esm2022/components/calendar/calendar-sheet.options.mjs +6 -3
  27. package/esm2022/components/calendar/calendar.component.mjs +3 -3
  28. package/esm2022/components/data-list/data-list.component.mjs +3 -3
  29. package/esm2022/components/data-list/data-list.tokens.mjs +5 -4
  30. package/esm2022/components/data-list/option/option-content.mjs +3 -4
  31. package/esm2022/components/dialog/dialog.component.mjs +3 -3
  32. package/esm2022/components/dialog/dialog.factory.mjs +1 -1
  33. package/esm2022/components/dialog/dialog.tokens.mjs +12 -5
  34. package/esm2022/components/dialog/dialogs.component.mjs +3 -3
  35. package/esm2022/components/label/label.directive.mjs +2 -2
  36. package/esm2022/components/link/link.options.mjs +6 -3
  37. package/esm2022/components/loader/loader.options.mjs +6 -3
  38. package/esm2022/components/notification/notification.directive.mjs +2 -2
  39. package/esm2022/components/root/root.component.mjs +1 -1
  40. package/esm2022/components/textfield/select-like.directive.mjs +4 -16
  41. package/esm2022/components/textfield/textfield-accessor.mjs +4 -3
  42. package/esm2022/components/textfield/textfield-dropdown.directive.mjs +7 -2
  43. package/esm2022/components/textfield/textfield-multi/textfield-item.component.mjs +7 -4
  44. package/esm2022/components/textfield/textfield-multi/textfield-multi.component.mjs +20 -10
  45. package/esm2022/components/textfield/textfield.component.mjs +11 -9
  46. package/esm2022/components/textfield/textfield.options.mjs +9 -7
  47. package/esm2022/directives/appearance/appearance.options.mjs +6 -3
  48. package/esm2022/directives/dropdown/dropdown-hover.options.mjs +6 -3
  49. package/esm2022/directives/dropdown/dropdown-options.directive.mjs +6 -4
  50. package/esm2022/directives/dropdown/dropdown.providers.mjs +6 -4
  51. package/esm2022/directives/group/group.directive.mjs +2 -2
  52. package/esm2022/directives/group/group.options.mjs +6 -3
  53. package/esm2022/directives/hint/hint-options.directive.mjs +6 -4
  54. package/esm2022/directives/hint/hint.providers.mjs +5 -3
  55. package/esm2022/directives/items-handlers/items-handlers.tokens.mjs +5 -4
  56. package/esm2022/tokens/animations-speed.mjs +5 -4
  57. package/esm2022/tokens/assets-path.mjs +5 -3
  58. package/esm2022/tokens/auxiliary.mjs +6 -3
  59. package/esm2022/tokens/common-icons.mjs +6 -3
  60. package/esm2022/tokens/dark-mode.mjs +34 -31
  61. package/esm2022/tokens/date-format.mjs +5 -4
  62. package/esm2022/tokens/day-type-handler.mjs +5 -3
  63. package/esm2022/tokens/first-day-of-week.mjs +5 -3
  64. package/esm2022/tokens/i18n.mjs +23 -9
  65. package/esm2022/tokens/icon-resolver.mjs +7 -6
  66. package/esm2022/tokens/icon.mjs +8 -4
  67. package/esm2022/tokens/icons.mjs +5 -4
  68. package/esm2022/tokens/media.mjs +8 -6
  69. package/esm2022/tokens/number-format.mjs +5 -4
  70. package/esm2022/tokens/reduced-motion.mjs +6 -5
  71. package/esm2022/tokens/scroll-ref.mjs +5 -4
  72. package/esm2022/tokens/selection-stream.mjs +7 -6
  73. package/esm2022/tokens/spin-icons.mjs +7 -5
  74. package/esm2022/tokens/theme.mjs +5 -3
  75. package/esm2022/tokens/viewport.mjs +27 -25
  76. package/fesm2022/taiga-ui-core-components-alert.mjs +29 -22
  77. package/fesm2022/taiga-ui-core-components-alert.mjs.map +1 -1
  78. package/fesm2022/taiga-ui-core-components-calendar.mjs +9 -7
  79. package/fesm2022/taiga-ui-core-components-calendar.mjs.map +1 -1
  80. package/fesm2022/taiga-ui-core-components-data-list.mjs +7 -7
  81. package/fesm2022/taiga-ui-core-components-data-list.mjs.map +1 -1
  82. package/fesm2022/taiga-ui-core-components-dialog.mjs +15 -9
  83. package/fesm2022/taiga-ui-core-components-dialog.mjs.map +1 -1
  84. package/fesm2022/taiga-ui-core-components-label.mjs +2 -2
  85. package/fesm2022/taiga-ui-core-components-label.mjs.map +1 -1
  86. package/fesm2022/taiga-ui-core-components-link.mjs +5 -3
  87. package/fesm2022/taiga-ui-core-components-link.mjs.map +1 -1
  88. package/fesm2022/taiga-ui-core-components-loader.mjs +5 -3
  89. package/fesm2022/taiga-ui-core-components-loader.mjs.map +1 -1
  90. package/fesm2022/taiga-ui-core-components-notification.mjs +2 -2
  91. package/fesm2022/taiga-ui-core-components-notification.mjs.map +1 -1
  92. package/fesm2022/taiga-ui-core-components-root.mjs +1 -1
  93. package/fesm2022/taiga-ui-core-components-textfield.mjs +50 -41
  94. package/fesm2022/taiga-ui-core-components-textfield.mjs.map +1 -1
  95. package/fesm2022/taiga-ui-core-directives-appearance.mjs +5 -3
  96. package/fesm2022/taiga-ui-core-directives-appearance.mjs.map +1 -1
  97. package/fesm2022/taiga-ui-core-directives-dropdown.mjs +12 -6
  98. package/fesm2022/taiga-ui-core-directives-dropdown.mjs.map +1 -1
  99. package/fesm2022/taiga-ui-core-directives-group.mjs +7 -5
  100. package/fesm2022/taiga-ui-core-directives-group.mjs.map +1 -1
  101. package/fesm2022/taiga-ui-core-directives-hint.mjs +8 -4
  102. package/fesm2022/taiga-ui-core-directives-hint.mjs.map +1 -1
  103. package/fesm2022/taiga-ui-core-directives-items-handlers.mjs +5 -3
  104. package/fesm2022/taiga-ui-core-directives-items-handlers.mjs.map +1 -1
  105. package/fesm2022/taiga-ui-core-tokens.mjs +143 -87
  106. package/fesm2022/taiga-ui-core-tokens.mjs.map +1 -1
  107. package/package.json +3 -3
  108. package/styles/components/label.less +2 -2
  109. package/styles/components/notification.less +1 -1
  110. package/styles/components/textfield.less +7 -3
  111. package/styles/mixins/mixins.less +1 -1
  112. package/styles/mixins/slider.less +3 -3
  113. package/styles/mixins/slider.scss +3 -3
  114. package/styles/theme/appearance/table.less +1 -1
  115. package/tokens/animations-speed.d.ts +2 -1
  116. package/tokens/assets-path.d.ts +2 -1
  117. package/tokens/auxiliary.d.ts +2 -1
  118. package/tokens/common-icons.d.ts +2 -1
  119. package/tokens/dark-mode.d.ts +3 -2
  120. package/tokens/date-format.d.ts +2 -1
  121. package/tokens/day-type-handler.d.ts +2 -1
  122. package/tokens/first-day-of-week.d.ts +2 -1
  123. package/tokens/i18n.d.ts +8 -7
  124. package/tokens/icon-resolver.d.ts +3 -2
  125. package/tokens/icon.d.ts +3 -2
  126. package/tokens/icons.d.ts +3 -2
  127. package/tokens/media.d.ts +2 -1
  128. package/tokens/number-format.d.ts +2 -1
  129. package/tokens/reduced-motion.d.ts +2 -1
  130. package/tokens/scroll-ref.d.ts +2 -2
  131. package/tokens/selection-stream.d.ts +2 -1
  132. package/tokens/spin-icons.d.ts +2 -1
  133. package/tokens/theme.d.ts +2 -1
  134. package/tokens/viewport.d.ts +2 -1
@@ -1,12 +1,13 @@
1
1
  import type { FactoryProvider } from '@angular/core';
2
+ import { InjectionToken } from '@angular/core';
2
3
  import { BehaviorSubject } from 'rxjs';
3
4
  import type { TuiAlertOptions } from './alert.interfaces';
4
5
  export declare const TUI_ALERT_DEFAULT_OPTIONS: Omit<TuiAlertOptions, 'appearance' | 'icon'>;
5
- export declare const TUI_ALERT_OPTIONS: import("@angular/core").InjectionToken<TuiAlertOptions<undefined>>;
6
- export declare const TUI_ALERT_POSITION: import("@angular/core").InjectionToken<string>;
7
- export declare const TUI_ALERTS: import("@angular/core").InjectionToken<BehaviorSubject<readonly any[]>>;
6
+ export declare const TUI_ALERT_OPTIONS: InjectionToken<TuiAlertOptions<undefined>>;
7
+ export declare const TUI_ALERT_POSITION: InjectionToken<string>;
8
+ export declare const TUI_ALERTS: InjectionToken<BehaviorSubject<readonly any[]>>;
8
9
  /**
9
10
  * Grouping alerts by their component
10
11
  */
11
- export declare const TUI_ALERTS_GROUPED: import("@angular/core").InjectionToken<import("rxjs").Observable<(readonly any[])[]>>;
12
+ export declare const TUI_ALERTS_GROUPED: InjectionToken<import("rxjs").Observable<(readonly any[])[]>>;
12
13
  export declare function tuiAlertOptionsProvider(options: Partial<TuiAlertOptions>): FactoryProvider;
@@ -1,7 +1,8 @@
1
1
  import type { Provider } from '@angular/core';
2
+ import { InjectionToken } from '@angular/core';
2
3
  export interface TuiCalendarSheetOptions {
3
4
  readonly rangeMode: boolean;
4
5
  }
5
6
  export declare const TUI_CALENDAR_SHEET_DEFAULT_OPTIONS: TuiCalendarSheetOptions;
6
- export declare const TUI_CALENDAR_SHEET_OPTIONS: import("@angular/core").InjectionToken<TuiCalendarSheetOptions>;
7
+ export declare const TUI_CALENDAR_SHEET_OPTIONS: InjectionToken<TuiCalendarSheetOptions>;
7
8
  export declare function tuiCalendarSheetOptionsProvider(options: Partial<TuiCalendarSheetOptions>): Provider;
@@ -1,4 +1,5 @@
1
1
  import type { Provider, Signal, Type } from '@angular/core';
2
+ import { InjectionToken } from '@angular/core';
2
3
  import type { TuiIdentityMatcher, TuiStringHandler } from '@taiga-ui/cdk/types';
3
4
  import type { TuiSizeL, TuiSizeS } from '@taiga-ui/core/types';
4
5
  export interface TuiDataListAccessor<T = unknown> {
@@ -24,10 +25,10 @@ export interface TuiDataListHost<T> {
24
25
  /**
25
26
  * Accessor for data-list options
26
27
  */
27
- export declare const TUI_DATA_LIST_ACCESSOR: import("@angular/core").InjectionToken<TuiDataListAccessor<unknown>>;
28
+ export declare const TUI_DATA_LIST_ACCESSOR: InjectionToken<TuiDataListAccessor<unknown>>;
28
29
  export declare function tuiAsDataListAccessor(accessor: Type<TuiDataListAccessor>): Provider;
29
30
  /**
30
31
  * DataList controller
31
32
  */
32
- export declare const TUI_DATA_LIST_HOST: import("@angular/core").InjectionToken<TuiDataListHost<unknown>>;
33
+ export declare const TUI_DATA_LIST_HOST: InjectionToken<TuiDataListHost<unknown>>;
33
34
  export declare function tuiAsDataListHost<T>(host: Type<TuiDataListHost<T>>): Provider;
@@ -1,11 +1,12 @@
1
1
  import type { Provider, TemplateRef, Type } from '@angular/core';
2
+ import { InjectionToken } from '@angular/core';
2
3
  import type { TuiContext } from '@taiga-ui/cdk/types';
3
4
  import type { PolymorpheusContent } from '@taiga-ui/polymorpheus';
4
5
  import * as i0 from "@angular/core";
5
6
  /**
6
7
  * Content for tuiOption component
7
8
  */
8
- export declare const TUI_OPTION_CONTENT: import("@angular/core").InjectionToken<Type<any> | PolymorpheusContent<TuiContext<TemplateRef<Record<string, unknown>>>>>;
9
+ export declare const TUI_OPTION_CONTENT: InjectionToken<Type<any> | PolymorpheusContent<TuiContext<TemplateRef<Record<string, unknown>>>>>;
9
10
  export declare function tuiAsOptionContent(useValue: PolymorpheusContent<TuiContext<TemplateRef<Record<string, unknown>>>> | Type<any>): Provider;
10
11
  export declare class TuiWithOptionContent {
11
12
  protected readonly localContent: Type<any> | null;
@@ -4,11 +4,11 @@ import type { TuiDialogContext, TuiDialogOptions } from './dialog.interfaces';
4
4
  type SingleUnionOrNever<T, U = T> = [T] extends [never] ? never : T extends U ? [U] extends [T] ? T : never : never;
5
5
  type ReplaceAny<T> = 0 extends T & 1 ? void : T;
6
6
  type ContextKeys<T> = {
7
- [K in keyof T]: ReplaceAny<T[K]> extends TuiDialogContext<any, any> ? K : never;
7
+ [K in keyof T]: ReplaceAny<T[K]> extends TuiDialogContext<any, any> | null ? K : never;
8
8
  }[keyof T];
9
9
  type AssertNotMultipleContexts<T, K extends keyof T> = [K] extends [never] ? new (...args: any[]) => T : [SingleUnionOrNever<K>] extends [never] ? 'Component has multiple context. Cannot determine the type...' : new (...args: any[]) => T;
10
- type ExtractDialogData<T, K extends keyof T = ContextKeys<T>> = [K] extends [never] ? void : [SingleUnionOrNever<K>] extends [never] ? never : T[K] extends TuiDialogContext<any, infer D> ? D : void;
11
- type ExtractDialogResult<T, K extends keyof T = ContextKeys<T>> = [K] extends [never] ? void : [SingleUnionOrNever<K>] extends [never] ? never : T[K] extends TuiDialogContext<infer R, any> ? R : void;
10
+ type ExtractDialogData<T, K extends keyof T = ContextKeys<T>> = [K] extends [never] ? void : [SingleUnionOrNever<K>] extends [never] ? never : T[K] extends TuiDialogContext<any, infer D> | null ? D : void;
11
+ type ExtractDialogResult<T, K extends keyof T = ContextKeys<T>> = [K] extends [never] ? void : [SingleUnionOrNever<K>] extends [never] ? never : T[K] extends TuiDialogContext<infer R, any> | null ? R : void;
12
12
  type Options<T> = Omit<TuiDialogOptions<T>, 'data'> & {
13
13
  injector: Injector;
14
14
  };
@@ -1,15 +1,16 @@
1
1
  import type { Provider } from '@angular/core';
2
+ import { InjectionToken } from '@angular/core';
2
3
  import type { Observable } from 'rxjs';
3
4
  import { BehaviorSubject } from 'rxjs';
4
5
  import type { TuiDialogOptions } from './dialog.interfaces';
5
- export declare const TUI_DIALOGS: import("@angular/core").InjectionToken<BehaviorSubject<readonly any[]>>;
6
+ export declare const TUI_DIALOGS: InjectionToken<BehaviorSubject<readonly any[]>>;
6
7
  export declare const TUI_DIALOG_DEFAULT_OPTIONS: TuiDialogOptions<void>;
7
8
  /**
8
9
  * A stream to close dialogs
9
10
  */
10
- export declare const TUI_DIALOGS_CLOSE: import("@angular/core").InjectionToken<Observable<unknown>>;
11
+ export declare const TUI_DIALOGS_CLOSE: InjectionToken<Observable<unknown>>;
11
12
  /**
12
13
  * Default parameters for dialog component
13
14
  */
14
- export declare const TUI_DIALOG_OPTIONS: import("@angular/core").InjectionToken<TuiDialogOptions<void>>;
15
+ export declare const TUI_DIALOG_OPTIONS: InjectionToken<TuiDialogOptions<void>>;
15
16
  export declare function tuiDialogOptionsProvider(options: Partial<TuiDialogOptions<unknown>>): Provider;
@@ -1,4 +1,5 @@
1
1
  import type { FactoryProvider } from '@angular/core';
2
+ import { InjectionToken } from '@angular/core';
2
3
  import type { TuiAppearanceOptions } from '@taiga-ui/core/directives/appearance';
3
4
  export interface TuiLinkOptions extends TuiAppearanceOptions {
4
5
  /**
@@ -8,5 +9,5 @@ export interface TuiLinkOptions extends TuiAppearanceOptions {
8
9
  readonly pseudo: boolean;
9
10
  }
10
11
  export declare const TUI_LINK_DEFAULT_OPTIONS: TuiLinkOptions;
11
- export declare const TUI_LINK_OPTIONS: import("@angular/core").InjectionToken<TuiLinkOptions>;
12
+ export declare const TUI_LINK_OPTIONS: InjectionToken<TuiLinkOptions>;
12
13
  export declare function tuiLinkOptionsProvider(options: Partial<TuiLinkOptions>): FactoryProvider;
@@ -1,4 +1,5 @@
1
1
  import type { Provider } from '@angular/core';
2
+ import { InjectionToken } from '@angular/core';
2
3
  import type { TuiSizeXS, TuiSizeXXL } from '@taiga-ui/core/types';
3
4
  export interface TuiLoaderOptions {
4
5
  readonly inheritColor: boolean;
@@ -10,5 +11,5 @@ export declare const TUI_LOADER_DEFAULT_OPTIONS: TuiLoaderOptions;
10
11
  /**
11
12
  * Default parameters for loader component
12
13
  */
13
- export declare const TUI_LOADER_OPTIONS: import("@angular/core").InjectionToken<TuiLoaderOptions>;
14
+ export declare const TUI_LOADER_OPTIONS: InjectionToken<TuiLoaderOptions>;
14
15
  export declare function tuiLoaderOptionsProvider(options: Partial<TuiLoaderOptions>): Provider;
@@ -2,7 +2,6 @@ import * as i0 from "@angular/core";
2
2
  export declare class TuiSelectLike {
3
3
  private readonly el;
4
4
  private readonly isAndroid;
5
- protected readonly nothing: undefined;
6
5
  protected clear(): void;
7
6
  protected prevent(event: MouseEvent): void;
8
7
  static ɵfac: i0.ɵɵFactoryDeclaration<TuiSelectLike, never>;
@@ -1,6 +1,7 @@
1
1
  import type { Provider, Type } from '@angular/core';
2
+ import { InjectionToken } from '@angular/core';
2
3
  export interface TuiTextfieldAccessor<T = unknown> {
3
4
  setValue(value: T | T[] | null): void;
4
5
  }
5
- export declare const TUI_TEXTFIELD_ACCESSOR: import("@angular/core").InjectionToken<TuiTextfieldAccessor<unknown>>;
6
+ export declare const TUI_TEXTFIELD_ACCESSOR: InjectionToken<TuiTextfieldAccessor<unknown>>;
6
7
  export declare function tuiAsTextfieldAccessor(accessor: Type<TuiTextfieldAccessor>): Provider;
@@ -8,6 +8,7 @@ export interface TuiTextfieldItem<T> {
8
8
  }
9
9
  export declare class TuiTextfieldItemComponent<T> {
10
10
  protected readonly el: HTMLElement;
11
+ protected readonly handlers: import("@taiga-ui/core/directives/items-handlers").TuiItemsHandlers<unknown>;
11
12
  protected readonly context: TuiContext<TuiTextfieldItem<T>>;
12
13
  protected readonly textfield: TuiTextfieldMultiComponent<T>;
13
14
  protected get content(): PolymorpheusContent<TuiContext<TuiTextfieldItem<T>>>;
@@ -19,9 +19,10 @@ export declare class TuiTextfieldMultiComponent<T> extends TuiTextfieldBaseCompo
19
19
  readonly item?: TemplateRef<unknown>;
20
20
  rows: number;
21
21
  handleOption(option: T): void;
22
+ protected get placeholder(): string;
22
23
  protected onItems({ target }: ResizeObserverEntry): void;
23
24
  protected onLeft(event: any): void;
24
25
  protected onClick(target: HTMLElement): void;
25
26
  static ɵfac: i0.ɵɵFactoryDeclaration<TuiTextfieldMultiComponent<any>, never>;
26
- static ɵcmp: i0.ɵɵComponentDeclaration<TuiTextfieldMultiComponent<any>, "tui-textfield[multi]", never, { "rows": { "alias": "rows"; "required": false; }; }, {}, ["item"], ["label", "input", "*", "tui-icon"], true, [{ directive: typeof i1.TuiDropdownFixed; inputs: {}; outputs: {}; }, { directive: typeof i1.TuiDropdownDirective; inputs: {}; outputs: {}; }, { directive: typeof i1.TuiWithDropdownOpen; inputs: {}; outputs: {}; }, { directive: typeof i2.TuiWithTextfieldDropdown; inputs: {}; outputs: {}; }, { directive: typeof i3.TuiWithIcons; inputs: {}; outputs: {}; }, { directive: typeof i4.TuiWithItemsHandlers; inputs: {}; outputs: {}; }, { directive: typeof i5.TuiWithOptionContent; inputs: {}; outputs: {}; }, { directive: typeof i4.TuiWithAppearance; inputs: {}; outputs: {}; }]>;
27
+ static ɵcmp: i0.ɵɵComponentDeclaration<TuiTextfieldMultiComponent<any>, "tui-textfield[multi]", never, { "rows": { "alias": "rows"; "required": false; }; }, {}, ["item"], ["label", "input", "select", "*", "tui-icon"], true, [{ directive: typeof i1.TuiDropdownFixed; inputs: {}; outputs: {}; }, { directive: typeof i1.TuiDropdownDirective; inputs: {}; outputs: {}; }, { directive: typeof i1.TuiWithDropdownOpen; inputs: {}; outputs: {}; }, { directive: typeof i2.TuiWithTextfieldDropdown; inputs: {}; outputs: {}; }, { directive: typeof i3.TuiWithIcons; inputs: {}; outputs: {}; }, { directive: typeof i4.TuiWithItemsHandlers; inputs: {}; outputs: {}; }, { directive: typeof i5.TuiWithOptionContent; inputs: {}; outputs: {}; }, { directive: typeof i4.TuiWithAppearance; inputs: {}; outputs: {}; }]>;
27
28
  }
@@ -28,8 +28,8 @@ export declare class TuiTextfieldBaseComponent<T> implements TuiDataListHost<T>,
28
28
  protected readonly dropdownOpen: TuiDropdownOpen;
29
29
  protected readonly icons: import("@taiga-ui/core/tokens").TuiCommonIcons;
30
30
  protected readonly clear: import("@angular/core").Signal<string | undefined>;
31
- protected computedFiller: import("@angular/core").Signal<string>;
32
- protected showFiller: import("@angular/core").Signal<boolean>;
31
+ protected readonly computedFiller: import("@angular/core").Signal<string>;
32
+ protected readonly showFiller: import("@angular/core").Signal<boolean>;
33
33
  readonly vcr?: ViewContainerRef;
34
34
  readonly accessor?: TuiTextfieldAccessor<T>;
35
35
  readonly control?: NgControl;
@@ -1,4 +1,5 @@
1
1
  import type { Provider, WritableSignal } from '@angular/core';
2
+ import { InjectionToken } from '@angular/core';
2
3
  import type { TuiSizeL, TuiSizeS } from '@taiga-ui/core/types';
3
4
  import * as i0 from "@angular/core";
4
5
  export interface TuiTextfieldOptions {
@@ -6,7 +7,7 @@ export interface TuiTextfieldOptions {
6
7
  readonly size: WritableSignal<TuiSizeL | TuiSizeS>;
7
8
  readonly cleaner: WritableSignal<boolean>;
8
9
  }
9
- export declare const TUI_TEXTFIELD_OPTIONS: import("@angular/core").InjectionToken<TuiTextfieldOptions>;
10
+ export declare const TUI_TEXTFIELD_OPTIONS: InjectionToken<TuiTextfieldOptions>;
10
11
  export declare function tuiTextfieldOptionsProvider(options: Partial<TuiTextfieldOptions>): Provider;
11
12
  export declare class TuiTextfieldOptionsDirective implements TuiTextfieldOptions {
12
13
  private readonly options;
@@ -1,4 +1,5 @@
1
1
  import type { ExistingProvider, ProviderToken } from '@angular/core';
2
+ import { InjectionToken } from '@angular/core';
2
3
  import type { TuiLooseUnion } from '@taiga-ui/cdk/types';
3
4
  /**
4
5
  * Bundled appearances for autocomplete purposes, not exported on purpose
@@ -8,6 +9,6 @@ export interface TuiAppearanceOptions {
8
9
  readonly appearance: Appearance;
9
10
  }
10
11
  export declare const TUI_APPEARANCE_DEFAULT_OPTIONS: TuiAppearanceOptions;
11
- export declare const TUI_APPEARANCE_OPTIONS: import("@angular/core").InjectionToken<TuiAppearanceOptions>;
12
+ export declare const TUI_APPEARANCE_OPTIONS: InjectionToken<TuiAppearanceOptions>;
12
13
  export declare function tuiAppearanceOptionsProvider(token: ProviderToken<TuiAppearanceOptions>): ExistingProvider;
13
14
  export {};
@@ -1,4 +1,5 @@
1
1
  import type { Provider } from '@angular/core';
2
+ import { InjectionToken } from '@angular/core';
2
3
  export interface TuiDropdownHoverOptions {
3
4
  readonly hideDelay: number;
4
5
  readonly showDelay: number;
@@ -8,5 +9,5 @@ export declare const TUI_DROPDOWN_HOVER_DEFAULT_OPTIONS: TuiDropdownHoverOptions
8
9
  /**
9
10
  * Default parameters for dropdown hover directive
10
11
  */
11
- export declare const TUI_DROPDOWN_HOVER_OPTIONS: import("@angular/core").InjectionToken<TuiDropdownHoverOptions>;
12
+ export declare const TUI_DROPDOWN_HOVER_OPTIONS: InjectionToken<TuiDropdownHoverOptions>;
12
13
  export declare function tuiDropdownHoverOptionsProvider(options: Partial<TuiDropdownHoverOptions>): Provider;
@@ -1,4 +1,5 @@
1
1
  import type { FactoryProvider } from '@angular/core';
2
+ import { InjectionToken } from '@angular/core';
2
3
  import type { TuiVerticalDirection } from '@taiga-ui/core/types';
3
4
  import * as i0 from "@angular/core";
4
5
  export type TuiDropdownAlign = 'center' | 'left' | 'right';
@@ -17,7 +18,7 @@ export declare const TUI_DROPDOWN_DEFAULT_OPTIONS: TuiDropdownOptions;
17
18
  /**
18
19
  * Default parameters for dropdown directive
19
20
  */
20
- export declare const TUI_DROPDOWN_OPTIONS: import("@angular/core").InjectionToken<TuiDropdownOptions>;
21
+ export declare const TUI_DROPDOWN_OPTIONS: InjectionToken<TuiDropdownOptions>;
21
22
  export declare const tuiDropdownOptionsProvider: (options: Partial<TuiDropdownOptions>) => FactoryProvider;
22
23
  export declare class TuiDropdownOptionsDirective implements TuiDropdownOptions {
23
24
  private readonly options;
@@ -1,6 +1,7 @@
1
1
  import type { Type } from '@angular/core';
2
+ import { InjectionToken } from '@angular/core';
2
3
  /**
3
4
  * A component to display a dropdown
4
5
  */
5
- export declare const TUI_DROPDOWN_COMPONENT: import("@angular/core").InjectionToken<Type<any>>;
6
- export declare const TUI_DROPDOWN_CONTEXT: import("@angular/core").InjectionToken<Record<any, any>>;
6
+ export declare const TUI_DROPDOWN_COMPONENT: InjectionToken<Type<any>>;
7
+ export declare const TUI_DROPDOWN_CONTEXT: InjectionToken<Record<any, any>>;
@@ -1,4 +1,5 @@
1
1
  import type { Provider } from '@angular/core';
2
+ import { InjectionToken } from '@angular/core';
2
3
  import type { TuiOrientation, TuiSizeL } from '@taiga-ui/core/types';
3
4
  export interface TuiGroupOptions {
4
5
  readonly size: TuiSizeL;
@@ -7,5 +8,5 @@ export interface TuiGroupOptions {
7
8
  readonly orientation: TuiOrientation;
8
9
  }
9
10
  export declare const TUI_GROUP_DEFAULT_OPTIONS: TuiGroupOptions;
10
- export declare const TUI_GROUP_OPTIONS: import("@angular/core").InjectionToken<TuiGroupOptions>;
11
+ export declare const TUI_GROUP_OPTIONS: InjectionToken<TuiGroupOptions>;
11
12
  export declare function tuiGroupOptionsProvider(options: Partial<TuiGroupOptions>): Provider;
@@ -1,4 +1,5 @@
1
1
  import type { FactoryProvider, OnChanges } from '@angular/core';
2
+ import { InjectionToken } from '@angular/core';
2
3
  import type { PolymorpheusContent } from '@taiga-ui/polymorpheus';
3
4
  import { Subject } from 'rxjs';
4
5
  import * as i0 from "@angular/core";
@@ -16,7 +17,7 @@ export declare const TUI_HINT_DEFAULT_OPTIONS: TuiHintOptions;
16
17
  /**
17
18
  * Default parameters for hint directive
18
19
  */
19
- export declare const TUI_HINT_OPTIONS: import("@angular/core").InjectionToken<TuiHintOptions>;
20
+ export declare const TUI_HINT_OPTIONS: InjectionToken<TuiHintOptions>;
20
21
  export declare const tuiHintOptionsProvider: (options: Partial<TuiHintOptions>) => FactoryProvider;
21
22
  /**
22
23
  * @deprecated: drop in 5.0
@@ -1,5 +1,6 @@
1
1
  import type { Type } from '@angular/core';
2
+ import { InjectionToken } from '@angular/core';
2
3
  /**
3
4
  * A component to display a hint
4
5
  */
5
- export declare const TUI_HINT_COMPONENT: import("@angular/core").InjectionToken<Type<unknown>>;
6
+ export declare const TUI_HINT_COMPONENT: InjectionToken<Type<unknown>>;
@@ -1,4 +1,5 @@
1
1
  import type { Provider, WritableSignal } from '@angular/core';
2
+ import { InjectionToken } from '@angular/core';
2
3
  import type { TuiBooleanHandler, TuiIdentityMatcher, TuiStringHandler } from '@taiga-ui/cdk/types';
3
4
  export interface TuiItemsHandlers<T> {
4
5
  readonly disabledItemHandler: WritableSignal<TuiBooleanHandler<T>>;
@@ -9,5 +10,5 @@ export declare const TUI_DEFAULT_ITEMS_HANDLERS: TuiItemsHandlers<unknown>;
9
10
  /**
10
11
  * Default items handlers for components
11
12
  */
12
- export declare const TUI_ITEMS_HANDLERS: import("@angular/core").InjectionToken<TuiItemsHandlers<unknown>>;
13
+ export declare const TUI_ITEMS_HANDLERS: InjectionToken<TuiItemsHandlers<unknown>>;
13
14
  export declare function tuiItemsHandlersProvider<T>(options: Partial<TuiItemsHandlers<T>>): Provider;
@@ -29,7 +29,7 @@ class TuiAlertComponent {
29
29
  return this.position.endsWith('auto') ? 'translateX(100%)' : 'translateX(-100%)';
30
30
  }
31
31
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiAlertComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
32
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiAlertComponent, isStandalone: true, selector: "tui-alert", host: { attributes: { "role": "alert" }, properties: { "style.margin": "position", "style.--tui-from": "from" } }, hostDirectives: [{ directive: i1.TuiAnimated }], ngImport: i0, template: "<div class=\"t-wrapper\">\n <tui-notification\n size=\"m\"\n [appearance]=\"item.appearance\"\n [class.t-closeable]=\"item.closeable\"\n [icon]=\"item.icon\"\n >\n <span tuiTitle>\n <ng-container *polymorpheusOutlet=\"item.label as text; context: item\">\n {{ text }}\n </ng-container>\n <span tuiSubtitle>\n <span\n *polymorpheusOutlet=\"item.content as text; context: item\"\n [innerHTML]=\"text\"\n ></span>\n </span>\n </span>\n <button\n *ngIf=\"item.closeable\"\n tuiIconButton\n type=\"button\"\n [iconStart]=\"icons.close\"\n (click)=\"item.$implicit.complete()\"\n >\n {{ close() }}\n </button>\n </tui-notification>\n</div>\n", styles: [":host{display:grid;inline-size:18rem;flex-shrink:0;word-break:break-word}:host.tui-enter,:host.tui-leave{animation-name:tuiFade,tuiSlide,tuiCollapse}:host:not(:first-child){margin-top:0!important}:host:not(:last-child){margin-bottom:0!important}.t-wrapper{transition-property:margin;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;grid-row:1 / span 2;overflow:hidden;margin-bottom:.75rem;background:var(--tui-background-base);border-radius:var(--tui-radius-m);box-shadow:var(--tui-shadow-medium)}:host.tui-leave .t-wrapper{margin:0}.t-closeable{padding-inline-end:2.5rem}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: PolymorpheusOutlet, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }, { kind: "directive", type: TuiButton, selector: "a[tuiButton],button[tuiButton],a[tuiIconButton],button[tuiIconButton]", inputs: ["size"] }, { kind: "directive", type: TuiNotification, selector: "tui-notification,a[tuiNotification],button[tuiNotification]", inputs: ["appearance", "icon", "size"] }, { kind: "directive", type: TuiTitle, selector: "[tuiTitle]", inputs: ["tuiTitle"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
32
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiAlertComponent, isStandalone: true, selector: "tui-alert", host: { attributes: { "role": "alert" }, properties: { "style.margin": "position", "style.--tui-from": "from" } }, hostDirectives: [{ directive: i1.TuiAnimated }], ngImport: i0, template: "<div class=\"t-wrapper\">\n <tui-notification\n size=\"m\"\n [appearance]=\"item.appearance\"\n [class.t-closeable]=\"item.closeable\"\n [icon]=\"item.icon\"\n >\n <span tuiTitle>\n <ng-container *polymorpheusOutlet=\"item.label as text; context: item\">\n {{ text }}\n </ng-container>\n <span tuiSubtitle>\n <span\n *polymorpheusOutlet=\"item.content as text; context: item\"\n [innerHTML]=\"text\"\n ></span>\n </span>\n </span>\n <button\n *ngIf=\"item.closeable\"\n tuiIconButton\n type=\"button\"\n [iconStart]=\"icons.close\"\n (click)=\"item.$implicit.complete()\"\n >\n {{ close() }}\n </button>\n </tui-notification>\n</div>\n", styles: [":host{display:grid;inline-size:18rem;flex-shrink:0;word-break:break-word}:host.tui-enter,:host.tui-leave{animation-name:tuiFade,tuiSlide,tuiCollapse}:host:not(:first-child){margin-block-start:0!important}:host:not(:last-child){margin-block-end:0!important}.t-wrapper{transition-property:margin;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;grid-row:1 / span 2;overflow:hidden;margin-block-end:.75rem;background:var(--tui-background-base);border-radius:var(--tui-radius-m);box-shadow:var(--tui-shadow-medium)}:host.tui-leave .t-wrapper{margin:0}.t-closeable{padding-inline-end:2.5rem}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: PolymorpheusOutlet, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }, { kind: "directive", type: TuiButton, selector: "a[tuiButton],button[tuiButton],a[tuiIconButton],button[tuiIconButton]", inputs: ["size"] }, { kind: "directive", type: TuiNotification, selector: "tui-notification,a[tuiNotification],button[tuiNotification]", inputs: ["appearance", "icon", "size"] }, { kind: "directive", type: TuiTitle, selector: "[tuiTitle]", inputs: ["tuiTitle"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
33
33
  }
34
34
  export { TuiAlertComponent };
35
35
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiAlertComponent, decorators: [{
@@ -38,6 +38,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
38
38
  role: 'alert',
39
39
  '[style.margin]': 'position',
40
40
  '[style.--tui-from]': 'from',
41
- }, template: "<div class=\"t-wrapper\">\n <tui-notification\n size=\"m\"\n [appearance]=\"item.appearance\"\n [class.t-closeable]=\"item.closeable\"\n [icon]=\"item.icon\"\n >\n <span tuiTitle>\n <ng-container *polymorpheusOutlet=\"item.label as text; context: item\">\n {{ text }}\n </ng-container>\n <span tuiSubtitle>\n <span\n *polymorpheusOutlet=\"item.content as text; context: item\"\n [innerHTML]=\"text\"\n ></span>\n </span>\n </span>\n <button\n *ngIf=\"item.closeable\"\n tuiIconButton\n type=\"button\"\n [iconStart]=\"icons.close\"\n (click)=\"item.$implicit.complete()\"\n >\n {{ close() }}\n </button>\n </tui-notification>\n</div>\n", styles: [":host{display:grid;inline-size:18rem;flex-shrink:0;word-break:break-word}:host.tui-enter,:host.tui-leave{animation-name:tuiFade,tuiSlide,tuiCollapse}:host:not(:first-child){margin-top:0!important}:host:not(:last-child){margin-bottom:0!important}.t-wrapper{transition-property:margin;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;grid-row:1 / span 2;overflow:hidden;margin-bottom:.75rem;background:var(--tui-background-base);border-radius:var(--tui-radius-m);box-shadow:var(--tui-shadow-medium)}:host.tui-leave .t-wrapper{margin:0}.t-closeable{padding-inline-end:2.5rem}\n"] }]
41
+ }, template: "<div class=\"t-wrapper\">\n <tui-notification\n size=\"m\"\n [appearance]=\"item.appearance\"\n [class.t-closeable]=\"item.closeable\"\n [icon]=\"item.icon\"\n >\n <span tuiTitle>\n <ng-container *polymorpheusOutlet=\"item.label as text; context: item\">\n {{ text }}\n </ng-container>\n <span tuiSubtitle>\n <span\n *polymorpheusOutlet=\"item.content as text; context: item\"\n [innerHTML]=\"text\"\n ></span>\n </span>\n </span>\n <button\n *ngIf=\"item.closeable\"\n tuiIconButton\n type=\"button\"\n [iconStart]=\"icons.close\"\n (click)=\"item.$implicit.complete()\"\n >\n {{ close() }}\n </button>\n </tui-notification>\n</div>\n", styles: [":host{display:grid;inline-size:18rem;flex-shrink:0;word-break:break-word}:host.tui-enter,:host.tui-leave{animation-name:tuiFade,tuiSlide,tuiCollapse}:host:not(:first-child){margin-block-start:0!important}:host:not(:last-child){margin-block-end:0!important}.t-wrapper{transition-property:margin;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;grid-row:1 / span 2;overflow:hidden;margin-block-end:.75rem;background:var(--tui-background-base);border-radius:var(--tui-radius-m);box-shadow:var(--tui-shadow-medium)}:host.tui-leave .t-wrapper{margin:0}.t-closeable{padding-inline-end:2.5rem}\n"] }]
42
42
  }] });
43
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxlcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9jb21wb25lbnRzL2FsZXJ0L2FsZXJ0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvY29tcG9uZW50cy9hbGVydC9hbGVydC50ZW1wbGF0ZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxJQUFJLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUNyQyxPQUFPLEVBQUMsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN6RSxPQUFPLEVBQUMsa0JBQWtCLEVBQUUsUUFBUSxFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFDeEUsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBRTlELE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUMzRCxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sd0NBQXdDLENBQUM7QUFDdkUsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBQ3pELE9BQU8sRUFBQyxjQUFjLEVBQUUsZ0JBQWdCLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUN2RSxPQUFPLEVBQUMsYUFBYSxFQUFFLGtCQUFrQixFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDekUsT0FBTyxFQUFDLEtBQUssRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUcvRSxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQzs7O0FBRWxELE1BY2EsaUJBQWlCO0lBZDlCO1FBZXFCLE9BQUUsR0FBRyxnQkFBZ0IsRUFBRSxDQUFDO1FBRXRCLFVBQUssR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUNqQyxVQUFLLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDO1FBQ3pDLGFBQVEsR0FBRyxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUN0QyxTQUFJLEdBQUcsYUFBYSxFQUFxQyxDQUFDO1FBRTFELFFBQUcsR0FBRyxFQUFFLENBQ3ZCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEtBQUssVUFBVTtZQUNyQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUM7WUFDM0MsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUM1QjthQUNJLElBQUksQ0FDRCxTQUFTLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQ2hFLFNBQVMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxZQUFZLENBQUMsQ0FBQyxFQUMzQyxNQUFNLENBQUMsRUFBQyxLQUFLLEVBQUUsR0FBRyxFQUFFLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsWUFBWSxDQUFDLEVBQUMsQ0FBQyxFQUN2RCxrQkFBa0IsRUFBRSxDQUN2QjthQUNBLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO0tBS3hEO0lBSEcsSUFBVyxJQUFJO1FBQ1gsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLG1CQUFtQixDQUFDO0lBQ3JGLENBQUM7K0dBdkJRLGlCQUFpQjttR0FBakIsaUJBQWlCLHlPQzlCOUIsczRCQTZCQSwycEJEVmMsSUFBSSw2RkFBRSxrQkFBa0IsOEhBQUUsU0FBUyxvSUFBRSxlQUFlLGdKQUFFLFFBQVE7O1NBVy9ELGlCQUFpQjs0RkFBakIsaUJBQWlCO2tCQWQ3QixTQUFTO2lDQUNNLElBQUksWUFDTixXQUFXLFdBQ1osQ0FBQyxJQUFJLEVBQUUsa0JBQWtCLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSxRQUFRLENBQUMsbUJBR3hELHVCQUF1QixDQUFDLE1BQU0sa0JBQy9CLENBQUMsV0FBVyxDQUFDLFFBQ3ZCO3dCQUNGLElBQUksRUFBRSxPQUFPO3dCQUNiLGdCQUFnQixFQUFFLFVBQVU7d0JBQzVCLG9CQUFvQixFQUFFLE1BQU07cUJBQy9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtOZ0lmfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBpbmplY3R9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHt0YWtlVW50aWxEZXN0cm95ZWQsIHRvU2lnbmFsfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQge1R1aUFuaW1hdGVkfSBmcm9tICdAdGFpZ2EtdWkvY2RrL2RpcmVjdGl2ZXMvYW5pbWF0ZWQnO1xuaW1wb3J0IHR5cGUge1R1aVBvcG92ZXJ9IGZyb20gJ0B0YWlnYS11aS9jZGsvc2VydmljZXMnO1xuaW1wb3J0IHt0dWlJbmplY3RFbGVtZW50fSBmcm9tICdAdGFpZ2EtdWkvY2RrL3V0aWxzL2RvbSc7XG5pbXBvcnQge1R1aUJ1dHRvbn0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvY29tcG9uZW50cy9idXR0b24nO1xuaW1wb3J0IHtUdWlOb3RpZmljYXRpb259IGZyb20gJ0B0YWlnYS11aS9jb3JlL2NvbXBvbmVudHMvbm90aWZpY2F0aW9uJztcbmltcG9ydCB7VHVpVGl0bGV9IGZyb20gJ0B0YWlnYS11aS9jb3JlL2RpcmVjdGl2ZXMvdGl0bGUnO1xuaW1wb3J0IHtUVUlfQ0xPU0VfV09SRCwgVFVJX0NPTU1PTl9JQ09OU30gZnJvbSAnQHRhaWdhLXVpL2NvcmUvdG9rZW5zJztcbmltcG9ydCB7aW5qZWN0Q29udGV4dCwgUG9seW1vcnBoZXVzT3V0bGV0fSBmcm9tICdAdGFpZ2EtdWkvcG9seW1vcnBoZXVzJztcbmltcG9ydCB7RU1QVFksIGZyb21FdmVudCwgb2YsIHJlcGVhdCwgc3dpdGNoTWFwLCB0YWtlVW50aWwsIHRpbWVyfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHR5cGUge1R1aUFsZXJ0T3B0aW9uc30gZnJvbSAnLi9hbGVydC5pbnRlcmZhY2VzJztcbmltcG9ydCB7VFVJX0FMRVJUX1BPU0lUSU9OfSBmcm9tICcuL2FsZXJ0LnRva2Vucyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgc2VsZWN0b3I6ICd0dWktYWxlcnQnLFxuICAgIGltcG9ydHM6IFtOZ0lmLCBQb2x5bW9ycGhldXNPdXRsZXQsIFR1aUJ1dHRvbiwgVHVpTm90aWZpY2F0aW9uLCBUdWlUaXRsZV0sXG4gICAgdGVtcGxhdGVVcmw6ICcuL2FsZXJ0LnRlbXBsYXRlLmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2FsZXJ0LnN0eWxlLmxlc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBob3N0RGlyZWN0aXZlczogW1R1aUFuaW1hdGVkXSxcbiAgICBob3N0OiB7XG4gICAgICAgIHJvbGU6ICdhbGVydCcsXG4gICAgICAgICdbc3R5bGUubWFyZ2luXSc6ICdwb3NpdGlvbicsXG4gICAgICAgICdbc3R5bGUuLS10dWktZnJvbV0nOiAnZnJvbScsXG4gICAgfSxcbn0pXG5leHBvcnQgY2xhc3MgVHVpQWxlcnRDb21wb25lbnQ8TywgST4ge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZWwgPSB0dWlJbmplY3RFbGVtZW50KCk7XG5cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgaWNvbnMgPSBpbmplY3QoVFVJX0NPTU1PTl9JQ09OUyk7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGNsb3NlID0gdG9TaWduYWwoaW5qZWN0KFRVSV9DTE9TRV9XT1JEKSk7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHBvc2l0aW9uID0gaW5qZWN0KFRVSV9BTEVSVF9QT1NJVElPTik7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGl0ZW0gPSBpbmplY3RDb250ZXh0PFR1aVBvcG92ZXI8VHVpQWxlcnRPcHRpb25zPEk+LCBPPj4oKTtcblxuICAgIHByb3RlY3RlZCByZWFkb25seSBzdWIgPSBvZihcbiAgICAgICAgdHlwZW9mIHRoaXMuaXRlbS5hdXRvQ2xvc2UgPT09ICdmdW5jdGlvbidcbiAgICAgICAgICAgID8gdGhpcy5pdGVtLmF1dG9DbG9zZSh0aGlzLml0ZW0uYXBwZWFyYW5jZSlcbiAgICAgICAgICAgIDogdGhpcy5pdGVtLmF1dG9DbG9zZSxcbiAgICApXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgICAgc3dpdGNoTWFwKChhdXRvQ2xvc2UpID0+IChhdXRvQ2xvc2UgPyB0aW1lcihhdXRvQ2xvc2UpIDogRU1QVFkpKSxcbiAgICAgICAgICAgIHRha2VVbnRpbChmcm9tRXZlbnQodGhpcy5lbCwgJ21vdXNlZW50ZXInKSksXG4gICAgICAgICAgICByZXBlYXQoe2RlbGF5OiAoKSA9PiBmcm9tRXZlbnQodGhpcy5lbCwgJ21vdXNlbGVhdmUnKX0pLFxuICAgICAgICAgICAgdGFrZVVudGlsRGVzdHJveWVkKCksXG4gICAgICAgIClcbiAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLml0ZW0uJGltcGxpY2l0LmNvbXBsZXRlKCkpO1xuXG4gICAgcHVibGljIGdldCBmcm9tKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLnBvc2l0aW9uLmVuZHNXaXRoKCdhdXRvJykgPyAndHJhbnNsYXRlWCgxMDAlKScgOiAndHJhbnNsYXRlWCgtMTAwJSknO1xuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJ0LXdyYXBwZXJcIj5cbiAgICA8dHVpLW5vdGlmaWNhdGlvblxuICAgICAgICBzaXplPVwibVwiXG4gICAgICAgIFthcHBlYXJhbmNlXT1cIml0ZW0uYXBwZWFyYW5jZVwiXG4gICAgICAgIFtjbGFzcy50LWNsb3NlYWJsZV09XCJpdGVtLmNsb3NlYWJsZVwiXG4gICAgICAgIFtpY29uXT1cIml0ZW0uaWNvblwiXG4gICAgPlxuICAgICAgICA8c3BhbiB0dWlUaXRsZT5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKnBvbHltb3JwaGV1c091dGxldD1cIml0ZW0ubGFiZWwgYXMgdGV4dDsgY29udGV4dDogaXRlbVwiPlxuICAgICAgICAgICAgICAgIHt7IHRleHQgfX1cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPHNwYW4gdHVpU3VidGl0bGU+XG4gICAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAgICAgKnBvbHltb3JwaGV1c091dGxldD1cIml0ZW0uY29udGVudCBhcyB0ZXh0OyBjb250ZXh0OiBpdGVtXCJcbiAgICAgICAgICAgICAgICAgICAgW2lubmVySFRNTF09XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICA+PC9zcGFuPlxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L3NwYW4+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICpuZ0lmPVwiaXRlbS5jbG9zZWFibGVcIlxuICAgICAgICAgICAgdHVpSWNvbkJ1dHRvblxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICBbaWNvblN0YXJ0XT1cImljb25zLmNsb3NlXCJcbiAgICAgICAgICAgIChjbGljayk9XCJpdGVtLiRpbXBsaWNpdC5jb21wbGV0ZSgpXCJcbiAgICAgICAgPlxuICAgICAgICAgICAge3sgY2xvc2UoKSB9fVxuICAgICAgICA8L2J1dHRvbj5cbiAgICA8L3R1aS1ub3RpZmljYXRpb24+XG48L2Rpdj5cbiJdfQ==
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxlcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9jb21wb25lbnRzL2FsZXJ0L2FsZXJ0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvY29tcG9uZW50cy9hbGVydC9hbGVydC50ZW1wbGF0ZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxJQUFJLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUNyQyxPQUFPLEVBQUMsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN6RSxPQUFPLEVBQUMsa0JBQWtCLEVBQUUsUUFBUSxFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFDeEUsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBRTlELE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUMzRCxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sd0NBQXdDLENBQUM7QUFDdkUsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBQ3pELE9BQU8sRUFBQyxjQUFjLEVBQUUsZ0JBQWdCLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUN2RSxPQUFPLEVBQUMsYUFBYSxFQUFFLGtCQUFrQixFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDekUsT0FBTyxFQUFDLEtBQUssRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUcvRSxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQzs7O0FBRWxELE1BY2EsaUJBQWlCO0lBZDlCO1FBZXFCLE9BQUUsR0FBRyxnQkFBZ0IsRUFBRSxDQUFDO1FBRXRCLFVBQUssR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUNqQyxVQUFLLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDO1FBQ3pDLGFBQVEsR0FBRyxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUN0QyxTQUFJLEdBQUcsYUFBYSxFQUFxQyxDQUFDO1FBRTFELFFBQUcsR0FBRyxFQUFFLENBQ3ZCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEtBQUssVUFBVTtZQUNyQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUM7WUFDM0MsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUM1QjthQUNJLElBQUksQ0FDRCxTQUFTLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQ2hFLFNBQVMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxZQUFZLENBQUMsQ0FBQyxFQUMzQyxNQUFNLENBQUMsRUFBQyxLQUFLLEVBQUUsR0FBRyxFQUFFLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsWUFBWSxDQUFDLEVBQUMsQ0FBQyxFQUN2RCxrQkFBa0IsRUFBRSxDQUN2QjthQUNBLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO0tBS3hEO0lBSEcsSUFBVyxJQUFJO1FBQ1gsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLG1CQUFtQixDQUFDO0lBQ3JGLENBQUM7K0dBdkJRLGlCQUFpQjttR0FBakIsaUJBQWlCLHlPQzlCOUIsczRCQTZCQSx5cUJEVmMsSUFBSSw2RkFBRSxrQkFBa0IsOEhBQUUsU0FBUyxvSUFBRSxlQUFlLGdKQUFFLFFBQVE7O1NBVy9ELGlCQUFpQjs0RkFBakIsaUJBQWlCO2tCQWQ3QixTQUFTO2lDQUNNLElBQUksWUFDTixXQUFXLFdBQ1osQ0FBQyxJQUFJLEVBQUUsa0JBQWtCLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSxRQUFRLENBQUMsbUJBR3hELHVCQUF1QixDQUFDLE1BQU0sa0JBQy9CLENBQUMsV0FBVyxDQUFDLFFBQ3ZCO3dCQUNGLElBQUksRUFBRSxPQUFPO3dCQUNiLGdCQUFnQixFQUFFLFVBQVU7d0JBQzVCLG9CQUFvQixFQUFFLE1BQU07cUJBQy9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtOZ0lmfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBpbmplY3R9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHt0YWtlVW50aWxEZXN0cm95ZWQsIHRvU2lnbmFsfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQge1R1aUFuaW1hdGVkfSBmcm9tICdAdGFpZ2EtdWkvY2RrL2RpcmVjdGl2ZXMvYW5pbWF0ZWQnO1xuaW1wb3J0IHR5cGUge1R1aVBvcG92ZXJ9IGZyb20gJ0B0YWlnYS11aS9jZGsvc2VydmljZXMnO1xuaW1wb3J0IHt0dWlJbmplY3RFbGVtZW50fSBmcm9tICdAdGFpZ2EtdWkvY2RrL3V0aWxzL2RvbSc7XG5pbXBvcnQge1R1aUJ1dHRvbn0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvY29tcG9uZW50cy9idXR0b24nO1xuaW1wb3J0IHtUdWlOb3RpZmljYXRpb259IGZyb20gJ0B0YWlnYS11aS9jb3JlL2NvbXBvbmVudHMvbm90aWZpY2F0aW9uJztcbmltcG9ydCB7VHVpVGl0bGV9IGZyb20gJ0B0YWlnYS11aS9jb3JlL2RpcmVjdGl2ZXMvdGl0bGUnO1xuaW1wb3J0IHtUVUlfQ0xPU0VfV09SRCwgVFVJX0NPTU1PTl9JQ09OU30gZnJvbSAnQHRhaWdhLXVpL2NvcmUvdG9rZW5zJztcbmltcG9ydCB7aW5qZWN0Q29udGV4dCwgUG9seW1vcnBoZXVzT3V0bGV0fSBmcm9tICdAdGFpZ2EtdWkvcG9seW1vcnBoZXVzJztcbmltcG9ydCB7RU1QVFksIGZyb21FdmVudCwgb2YsIHJlcGVhdCwgc3dpdGNoTWFwLCB0YWtlVW50aWwsIHRpbWVyfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHR5cGUge1R1aUFsZXJ0T3B0aW9uc30gZnJvbSAnLi9hbGVydC5pbnRlcmZhY2VzJztcbmltcG9ydCB7VFVJX0FMRVJUX1BPU0lUSU9OfSBmcm9tICcuL2FsZXJ0LnRva2Vucyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgc2VsZWN0b3I6ICd0dWktYWxlcnQnLFxuICAgIGltcG9ydHM6IFtOZ0lmLCBQb2x5bW9ycGhldXNPdXRsZXQsIFR1aUJ1dHRvbiwgVHVpTm90aWZpY2F0aW9uLCBUdWlUaXRsZV0sXG4gICAgdGVtcGxhdGVVcmw6ICcuL2FsZXJ0LnRlbXBsYXRlLmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2FsZXJ0LnN0eWxlLmxlc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBob3N0RGlyZWN0aXZlczogW1R1aUFuaW1hdGVkXSxcbiAgICBob3N0OiB7XG4gICAgICAgIHJvbGU6ICdhbGVydCcsXG4gICAgICAgICdbc3R5bGUubWFyZ2luXSc6ICdwb3NpdGlvbicsXG4gICAgICAgICdbc3R5bGUuLS10dWktZnJvbV0nOiAnZnJvbScsXG4gICAgfSxcbn0pXG5leHBvcnQgY2xhc3MgVHVpQWxlcnRDb21wb25lbnQ8TywgST4ge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZWwgPSB0dWlJbmplY3RFbGVtZW50KCk7XG5cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgaWNvbnMgPSBpbmplY3QoVFVJX0NPTU1PTl9JQ09OUyk7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGNsb3NlID0gdG9TaWduYWwoaW5qZWN0KFRVSV9DTE9TRV9XT1JEKSk7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHBvc2l0aW9uID0gaW5qZWN0KFRVSV9BTEVSVF9QT1NJVElPTik7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGl0ZW0gPSBpbmplY3RDb250ZXh0PFR1aVBvcG92ZXI8VHVpQWxlcnRPcHRpb25zPEk+LCBPPj4oKTtcblxuICAgIHByb3RlY3RlZCByZWFkb25seSBzdWIgPSBvZihcbiAgICAgICAgdHlwZW9mIHRoaXMuaXRlbS5hdXRvQ2xvc2UgPT09ICdmdW5jdGlvbidcbiAgICAgICAgICAgID8gdGhpcy5pdGVtLmF1dG9DbG9zZSh0aGlzLml0ZW0uYXBwZWFyYW5jZSlcbiAgICAgICAgICAgIDogdGhpcy5pdGVtLmF1dG9DbG9zZSxcbiAgICApXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgICAgc3dpdGNoTWFwKChhdXRvQ2xvc2UpID0+IChhdXRvQ2xvc2UgPyB0aW1lcihhdXRvQ2xvc2UpIDogRU1QVFkpKSxcbiAgICAgICAgICAgIHRha2VVbnRpbChmcm9tRXZlbnQodGhpcy5lbCwgJ21vdXNlZW50ZXInKSksXG4gICAgICAgICAgICByZXBlYXQoe2RlbGF5OiAoKSA9PiBmcm9tRXZlbnQodGhpcy5lbCwgJ21vdXNlbGVhdmUnKX0pLFxuICAgICAgICAgICAgdGFrZVVudGlsRGVzdHJveWVkKCksXG4gICAgICAgIClcbiAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLml0ZW0uJGltcGxpY2l0LmNvbXBsZXRlKCkpO1xuXG4gICAgcHVibGljIGdldCBmcm9tKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLnBvc2l0aW9uLmVuZHNXaXRoKCdhdXRvJykgPyAndHJhbnNsYXRlWCgxMDAlKScgOiAndHJhbnNsYXRlWCgtMTAwJSknO1xuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJ0LXdyYXBwZXJcIj5cbiAgICA8dHVpLW5vdGlmaWNhdGlvblxuICAgICAgICBzaXplPVwibVwiXG4gICAgICAgIFthcHBlYXJhbmNlXT1cIml0ZW0uYXBwZWFyYW5jZVwiXG4gICAgICAgIFtjbGFzcy50LWNsb3NlYWJsZV09XCJpdGVtLmNsb3NlYWJsZVwiXG4gICAgICAgIFtpY29uXT1cIml0ZW0uaWNvblwiXG4gICAgPlxuICAgICAgICA8c3BhbiB0dWlUaXRsZT5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKnBvbHltb3JwaGV1c091dGxldD1cIml0ZW0ubGFiZWwgYXMgdGV4dDsgY29udGV4dDogaXRlbVwiPlxuICAgICAgICAgICAgICAgIHt7IHRleHQgfX1cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPHNwYW4gdHVpU3VidGl0bGU+XG4gICAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAgICAgKnBvbHltb3JwaGV1c091dGxldD1cIml0ZW0uY29udGVudCBhcyB0ZXh0OyBjb250ZXh0OiBpdGVtXCJcbiAgICAgICAgICAgICAgICAgICAgW2lubmVySFRNTF09XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICA+PC9zcGFuPlxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L3NwYW4+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICpuZ0lmPVwiaXRlbS5jbG9zZWFibGVcIlxuICAgICAgICAgICAgdHVpSWNvbkJ1dHRvblxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICBbaWNvblN0YXJ0XT1cImljb25zLmNsb3NlXCJcbiAgICAgICAgICAgIChjbGljayk9XCJpdGVtLiRpbXBsaWNpdC5jb21wbGV0ZSgpXCJcbiAgICAgICAgPlxuICAgICAgICAgICAge3sgY2xvc2UoKSB9fVxuICAgICAgICA8L2J1dHRvbj5cbiAgICA8L3R1aS1ub3RpZmljYXRpb24+XG48L2Rpdj5cbiJdfQ==
@@ -1,6 +1,5 @@
1
- import { inject } from '@angular/core';
1
+ import { inject, InjectionToken } from '@angular/core';
2
2
  import { TUI_IS_MOBILE } from '@taiga-ui/cdk/tokens';
3
- import { tuiCreateToken, tuiCreateTokenFromFactory, } from '@taiga-ui/cdk/utils/miscellaneous';
4
3
  import { TUI_NOTIFICATION_OPTIONS } from '@taiga-ui/core/components/notification';
5
4
  import { BehaviorSubject, combineLatest, map, of } from 'rxjs';
6
5
  export const TUI_ALERT_DEFAULT_OPTIONS = {
@@ -9,27 +8,35 @@ export const TUI_ALERT_DEFAULT_OPTIONS = {
9
8
  closeable: true,
10
9
  data: undefined,
11
10
  };
12
- export const TUI_ALERT_OPTIONS = tuiCreateTokenFromFactory(() => ({
13
- ...TUI_ALERT_DEFAULT_OPTIONS,
14
- ...inject(TUI_NOTIFICATION_OPTIONS),
15
- }));
16
- export const TUI_ALERT_POSITION = tuiCreateTokenFromFactory(() => inject(TUI_IS_MOBILE) ? '1rem 1rem 0 auto' : '2rem 3rem 0 auto');
17
- export const TUI_ALERTS = tuiCreateToken(new BehaviorSubject([]));
11
+ export const TUI_ALERT_OPTIONS = new InjectionToken(ngDevMode ? 'TUI_ALERT_OPTIONS' : '', {
12
+ factory: () => ({
13
+ ...TUI_ALERT_DEFAULT_OPTIONS,
14
+ ...inject(TUI_NOTIFICATION_OPTIONS),
15
+ }),
16
+ });
17
+ export const TUI_ALERT_POSITION = new InjectionToken(ngDevMode ? 'TUI_ALERT_POSITION' : '', {
18
+ factory: () => (inject(TUI_IS_MOBILE) ? '1rem 1rem 0 auto' : '2rem 3rem 0 auto'),
19
+ });
20
+ export const TUI_ALERTS = new InjectionToken(ngDevMode ? 'TUI_ALERTS' : '', {
21
+ factory: () => new BehaviorSubject([]),
22
+ });
18
23
  /**
19
24
  * Grouping alerts by their component
20
25
  */
21
- export const TUI_ALERTS_GROUPED = tuiCreateTokenFromFactory(() => combineLatest([
22
- of(new Map()),
23
- inject(TUI_ALERTS),
24
- ]).pipe(map(([map, alerts]) => {
25
- map.forEach((_, key) => map.set(key, []));
26
- alerts.forEach((alert) => {
27
- const key = alert.component.component;
28
- const value = map.get(key) || [];
29
- map.set(key, [...value, alert]);
30
- });
31
- return Array.from(map.values());
32
- })));
26
+ export const TUI_ALERTS_GROUPED = new InjectionToken(ngDevMode ? 'TUI_ALERTS_GROUPED' : '', {
27
+ factory: () => combineLatest([
28
+ of(new Map()),
29
+ inject(TUI_ALERTS),
30
+ ]).pipe(map(([map, alerts]) => {
31
+ map.forEach((_, key) => map.set(key, []));
32
+ alerts.forEach((alert) => {
33
+ const key = alert.component.component;
34
+ const value = map.get(key) || [];
35
+ map.set(key, [...value, alert]);
36
+ });
37
+ return Array.from(map.values());
38
+ })),
39
+ });
33
40
  export function tuiAlertOptionsProvider(options) {
34
41
  return {
35
42
  provide: TUI_ALERT_OPTIONS,
@@ -41,4 +48,4 @@ export function tuiAlertOptionsProvider(options) {
41
48
  }),
42
49
  };
43
50
  }
44
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxlcnQudG9rZW5zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9jb21wb25lbnRzL2FsZXJ0L2FsZXJ0LnRva2Vucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRXJDLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUNuRCxPQUFPLEVBQ0gsY0FBYyxFQUNkLHlCQUF5QixHQUM1QixNQUFNLG1DQUFtQyxDQUFDO0FBQzNDLE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLHdDQUF3QyxDQUFDO0FBQ2hGLE9BQU8sRUFBQyxlQUFlLEVBQUUsYUFBYSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFJN0QsTUFBTSxDQUFDLE1BQU0seUJBQXlCLEdBQWlEO0lBQ25GLFNBQVMsRUFBRSxJQUFJO0lBQ2YsS0FBSyxFQUFFLEVBQUU7SUFDVCxTQUFTLEVBQUUsSUFBSTtJQUNmLElBQUksRUFBRSxTQUFTO0NBQ2xCLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyx5QkFBeUIsQ0FBa0IsR0FBRyxFQUFFLENBQUMsQ0FBQztJQUMvRSxHQUFHLHlCQUF5QjtJQUM1QixHQUFHLE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQztDQUN0QyxDQUFDLENBQUMsQ0FBQztBQUVKLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLHlCQUF5QixDQUFTLEdBQUcsRUFBRSxDQUNyRSxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxrQkFBa0IsQ0FDbEUsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxjQUFjLENBQ3BDLElBQUksZUFBZSxDQUFzQyxFQUFFLENBQUMsQ0FDL0QsQ0FBQztBQUVGOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcseUJBQXlCLENBQUMsR0FBRyxFQUFFLENBQzdELGFBQWEsQ0FBQztJQUNWLEVBQUUsQ0FBQyxJQUFJLEdBQUcsRUFBa0QsQ0FBQztJQUM3RCxNQUFNLENBQUMsVUFBVSxDQUFDO0NBQ3JCLENBQUMsQ0FBQyxJQUFJLENBQ0gsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsTUFBTSxDQUFDLEVBQUUsRUFBRTtJQUNsQixHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUUxQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7UUFDckIsTUFBTSxHQUFHLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUM7UUFDdEMsTUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUM7UUFFakMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ3BDLENBQUMsQ0FBQyxDQUFDO0lBRUgsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO0FBQ3BDLENBQUMsQ0FBQyxDQUNMLENBQ0osQ0FBQztBQUVGLE1BQU0sVUFBVSx1QkFBdUIsQ0FDbkMsT0FBaUM7SUFFakMsT0FBTztRQUNILE9BQU8sRUFBRSxpQkFBaUI7UUFDMUIsVUFBVSxFQUFFLEdBQW9CLEVBQUUsQ0FBQyxDQUFDO1lBQ2hDLEdBQUcseUJBQXlCO1lBQzVCLEdBQUcsQ0FBQyxNQUFNLENBQUMsaUJBQWlCLEVBQUUsRUFBQyxRQUFRLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUMsQ0FBQztnQkFDM0QsTUFBTSxDQUFDLHdCQUF3QixDQUFDLENBQUM7WUFDckMsR0FBRyxPQUFPO1NBQ2IsQ0FBQztLQUNMLENBQUM7QUFDTixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge0ZhY3RvcnlQcm92aWRlciwgVHlwZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge2luamVjdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgdHlwZSB7VHVpUG9wb3Zlcn0gZnJvbSAnQHRhaWdhLXVpL2Nkay9zZXJ2aWNlcyc7XG5pbXBvcnQge1RVSV9JU19NT0JJTEV9IGZyb20gJ0B0YWlnYS11aS9jZGsvdG9rZW5zJztcbmltcG9ydCB7XG4gICAgdHVpQ3JlYXRlVG9rZW4sXG4gICAgdHVpQ3JlYXRlVG9rZW5Gcm9tRmFjdG9yeSxcbn0gZnJvbSAnQHRhaWdhLXVpL2Nkay91dGlscy9taXNjZWxsYW5lb3VzJztcbmltcG9ydCB7VFVJX05PVElGSUNBVElPTl9PUFRJT05TfSBmcm9tICdAdGFpZ2EtdWkvY29yZS9jb21wb25lbnRzL25vdGlmaWNhdGlvbic7XG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgbWFwLCBvZn0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB0eXBlIHtUdWlBbGVydE9wdGlvbnN9IGZyb20gJy4vYWxlcnQuaW50ZXJmYWNlcyc7XG5cbmV4cG9ydCBjb25zdCBUVUlfQUxFUlRfREVGQVVMVF9PUFRJT05TOiBPbWl0PFR1aUFsZXJ0T3B0aW9ucywgJ2FwcGVhcmFuY2UnIHwgJ2ljb24nPiA9IHtcbiAgICBhdXRvQ2xvc2U6IDMwMDAsXG4gICAgbGFiZWw6ICcnLFxuICAgIGNsb3NlYWJsZTogdHJ1ZSxcbiAgICBkYXRhOiB1bmRlZmluZWQsXG59O1xuXG5leHBvcnQgY29uc3QgVFVJX0FMRVJUX09QVElPTlMgPSB0dWlDcmVhdGVUb2tlbkZyb21GYWN0b3J5PFR1aUFsZXJ0T3B0aW9ucz4oKCkgPT4gKHtcbiAgICAuLi5UVUlfQUxFUlRfREVGQVVMVF9PUFRJT05TLFxuICAgIC4uLmluamVjdChUVUlfTk9USUZJQ0FUSU9OX09QVElPTlMpLFxufSkpO1xuXG5leHBvcnQgY29uc3QgVFVJX0FMRVJUX1BPU0lUSU9OID0gdHVpQ3JlYXRlVG9rZW5Gcm9tRmFjdG9yeTxzdHJpbmc+KCgpID0+XG4gICAgaW5qZWN0KFRVSV9JU19NT0JJTEUpID8gJzFyZW0gMXJlbSAwIGF1dG8nIDogJzJyZW0gM3JlbSAwIGF1dG8nLFxuKTtcblxuZXhwb3J0IGNvbnN0IFRVSV9BTEVSVFMgPSB0dWlDcmVhdGVUb2tlbihcbiAgICBuZXcgQmVoYXZpb3JTdWJqZWN0PFJlYWRvbmx5QXJyYXk8VHVpUG9wb3ZlcjxhbnksIGFueT4+PihbXSksXG4pO1xuXG4vKipcbiAqIEdyb3VwaW5nIGFsZXJ0cyBieSB0aGVpciBjb21wb25lbnRcbiAqL1xuZXhwb3J0IGNvbnN0IFRVSV9BTEVSVFNfR1JPVVBFRCA9IHR1aUNyZWF0ZVRva2VuRnJvbUZhY3RvcnkoKCkgPT5cbiAgICBjb21iaW5lTGF0ZXN0KFtcbiAgICAgICAgb2YobmV3IE1hcDxUeXBlPGFueT4sIFJlYWRvbmx5QXJyYXk8VHVpUG9wb3ZlcjxhbnksIGFueT4+PigpKSxcbiAgICAgICAgaW5qZWN0KFRVSV9BTEVSVFMpLFxuICAgIF0pLnBpcGUoXG4gICAgICAgIG1hcCgoW21hcCwgYWxlcnRzXSkgPT4ge1xuICAgICAgICAgICAgbWFwLmZvckVhY2goKF8sIGtleSkgPT4gbWFwLnNldChrZXksIFtdKSk7XG5cbiAgICAgICAgICAgIGFsZXJ0cy5mb3JFYWNoKChhbGVydCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGtleSA9IGFsZXJ0LmNvbXBvbmVudC5jb21wb25lbnQ7XG4gICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBtYXAuZ2V0KGtleSkgfHwgW107XG5cbiAgICAgICAgICAgICAgICBtYXAuc2V0KGtleSwgWy4uLnZhbHVlLCBhbGVydF0pO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIHJldHVybiBBcnJheS5mcm9tKG1hcC52YWx1ZXMoKSk7XG4gICAgICAgIH0pLFxuICAgICksXG4pO1xuXG5leHBvcnQgZnVuY3Rpb24gdHVpQWxlcnRPcHRpb25zUHJvdmlkZXIoXG4gICAgb3B0aW9uczogUGFydGlhbDxUdWlBbGVydE9wdGlvbnM+LFxuKTogRmFjdG9yeVByb3ZpZGVyIHtcbiAgICByZXR1cm4ge1xuICAgICAgICBwcm92aWRlOiBUVUlfQUxFUlRfT1BUSU9OUyxcbiAgICAgICAgdXNlRmFjdG9yeTogKCk6IFR1aUFsZXJ0T3B0aW9ucyA9PiAoe1xuICAgICAgICAgICAgLi4uVFVJX0FMRVJUX0RFRkFVTFRfT1BUSU9OUyxcbiAgICAgICAgICAgIC4uLihpbmplY3QoVFVJX0FMRVJUX09QVElPTlMsIHtvcHRpb25hbDogdHJ1ZSwgc2tpcFNlbGY6IHRydWV9KSB8fFxuICAgICAgICAgICAgICAgIGluamVjdChUVUlfTk9USUZJQ0FUSU9OX09QVElPTlMpKSxcbiAgICAgICAgICAgIC4uLm9wdGlvbnMsXG4gICAgICAgIH0pLFxuICAgIH07XG59XG4iXX0=
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxlcnQudG9rZW5zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9jb21wb25lbnRzL2FsZXJ0L2FsZXJ0LnRva2Vucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUMsTUFBTSxFQUFFLGNBQWMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUVyRCxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDbkQsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0sd0NBQXdDLENBQUM7QUFDaEYsT0FBTyxFQUFDLGVBQWUsRUFBRSxhQUFhLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUk3RCxNQUFNLENBQUMsTUFBTSx5QkFBeUIsR0FBaUQ7SUFDbkYsU0FBUyxFQUFFLElBQUk7SUFDZixLQUFLLEVBQUUsRUFBRTtJQUNULFNBQVMsRUFBRSxJQUFJO0lBQ2YsSUFBSSxFQUFFLFNBQVM7Q0FDbEIsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLElBQUksY0FBYyxDQUMvQyxTQUFTLENBQUMsQ0FBQyxDQUFDLG1CQUFtQixDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQ3BDO0lBQ0ksT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFDWixHQUFHLHlCQUF5QjtRQUM1QixHQUFHLE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQztLQUN0QyxDQUFDO0NBQ0wsQ0FDSixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxjQUFjLENBQ2hELFNBQVMsQ0FBQyxDQUFDLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFDckM7SUFDSSxPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQztDQUNuRixDQUNKLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUcsSUFBSSxjQUFjLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtJQUN4RSxPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxlQUFlLENBQXNDLEVBQUUsQ0FBQztDQUM5RSxDQUFDLENBQUM7QUFFSDs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLElBQUksY0FBYyxDQUNoRCxTQUFTLENBQUMsQ0FBQyxDQUFDLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQ3JDO0lBQ0ksT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUNWLGFBQWEsQ0FBQztRQUNWLEVBQUUsQ0FBQyxJQUFJLEdBQUcsRUFBa0QsQ0FBQztRQUM3RCxNQUFNLENBQUMsVUFBVSxDQUFDO0tBQ3JCLENBQUMsQ0FBQyxJQUFJLENBQ0gsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsTUFBTSxDQUFDLEVBQUUsRUFBRTtRQUNsQixHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUUxQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDckIsTUFBTSxHQUFHLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUM7WUFDdEMsTUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUM7WUFFakMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3BDLENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQ3BDLENBQUMsQ0FBQyxDQUNMO0NBQ1IsQ0FDSixDQUFDO0FBRUYsTUFBTSxVQUFVLHVCQUF1QixDQUNuQyxPQUFpQztJQUVqQyxPQUFPO1FBQ0gsT0FBTyxFQUFFLGlCQUFpQjtRQUMxQixVQUFVLEVBQUUsR0FBb0IsRUFBRSxDQUFDLENBQUM7WUFDaEMsR0FBRyx5QkFBeUI7WUFDNUIsR0FBRyxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsRUFBRSxFQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBQyxDQUFDO2dCQUMzRCxNQUFNLENBQUMsd0JBQXdCLENBQUMsQ0FBQztZQUNyQyxHQUFHLE9BQU87U0FDYixDQUFDO0tBQ0wsQ0FBQztBQUNOLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7RmFjdG9yeVByb3ZpZGVyLCBUeXBlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7aW5qZWN0LCBJbmplY3Rpb25Ub2tlbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgdHlwZSB7VHVpUG9wb3Zlcn0gZnJvbSAnQHRhaWdhLXVpL2Nkay9zZXJ2aWNlcyc7XG5pbXBvcnQge1RVSV9JU19NT0JJTEV9IGZyb20gJ0B0YWlnYS11aS9jZGsvdG9rZW5zJztcbmltcG9ydCB7VFVJX05PVElGSUNBVElPTl9PUFRJT05TfSBmcm9tICdAdGFpZ2EtdWkvY29yZS9jb21wb25lbnRzL25vdGlmaWNhdGlvbic7XG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgbWFwLCBvZn0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB0eXBlIHtUdWlBbGVydE9wdGlvbnN9IGZyb20gJy4vYWxlcnQuaW50ZXJmYWNlcyc7XG5cbmV4cG9ydCBjb25zdCBUVUlfQUxFUlRfREVGQVVMVF9PUFRJT05TOiBPbWl0PFR1aUFsZXJ0T3B0aW9ucywgJ2FwcGVhcmFuY2UnIHwgJ2ljb24nPiA9IHtcbiAgICBhdXRvQ2xvc2U6IDMwMDAsXG4gICAgbGFiZWw6ICcnLFxuICAgIGNsb3NlYWJsZTogdHJ1ZSxcbiAgICBkYXRhOiB1bmRlZmluZWQsXG59O1xuXG5leHBvcnQgY29uc3QgVFVJX0FMRVJUX09QVElPTlMgPSBuZXcgSW5qZWN0aW9uVG9rZW48VHVpQWxlcnRPcHRpb25zPihcbiAgICBuZ0Rldk1vZGUgPyAnVFVJX0FMRVJUX09QVElPTlMnIDogJycsXG4gICAge1xuICAgICAgICBmYWN0b3J5OiAoKSA9PiAoe1xuICAgICAgICAgICAgLi4uVFVJX0FMRVJUX0RFRkFVTFRfT1BUSU9OUyxcbiAgICAgICAgICAgIC4uLmluamVjdChUVUlfTk9USUZJQ0FUSU9OX09QVElPTlMpLFxuICAgICAgICB9KSxcbiAgICB9LFxuKTtcblxuZXhwb3J0IGNvbnN0IFRVSV9BTEVSVF9QT1NJVElPTiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxzdHJpbmc+KFxuICAgIG5nRGV2TW9kZSA/ICdUVUlfQUxFUlRfUE9TSVRJT04nIDogJycsXG4gICAge1xuICAgICAgICBmYWN0b3J5OiAoKSA9PiAoaW5qZWN0KFRVSV9JU19NT0JJTEUpID8gJzFyZW0gMXJlbSAwIGF1dG8nIDogJzJyZW0gM3JlbSAwIGF1dG8nKSxcbiAgICB9LFxuKTtcblxuZXhwb3J0IGNvbnN0IFRVSV9BTEVSVFMgPSBuZXcgSW5qZWN0aW9uVG9rZW4obmdEZXZNb2RlID8gJ1RVSV9BTEVSVFMnIDogJycsIHtcbiAgICBmYWN0b3J5OiAoKSA9PiBuZXcgQmVoYXZpb3JTdWJqZWN0PFJlYWRvbmx5QXJyYXk8VHVpUG9wb3ZlcjxhbnksIGFueT4+PihbXSksXG59KTtcblxuLyoqXG4gKiBHcm91cGluZyBhbGVydHMgYnkgdGhlaXIgY29tcG9uZW50XG4gKi9cbmV4cG9ydCBjb25zdCBUVUlfQUxFUlRTX0dST1VQRUQgPSBuZXcgSW5qZWN0aW9uVG9rZW4oXG4gICAgbmdEZXZNb2RlID8gJ1RVSV9BTEVSVFNfR1JPVVBFRCcgOiAnJyxcbiAgICB7XG4gICAgICAgIGZhY3Rvcnk6ICgpID0+XG4gICAgICAgICAgICBjb21iaW5lTGF0ZXN0KFtcbiAgICAgICAgICAgICAgICBvZihuZXcgTWFwPFR5cGU8YW55PiwgUmVhZG9ubHlBcnJheTxUdWlQb3BvdmVyPGFueSwgYW55Pj4+KCkpLFxuICAgICAgICAgICAgICAgIGluamVjdChUVUlfQUxFUlRTKSxcbiAgICAgICAgICAgIF0pLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKChbbWFwLCBhbGVydHNdKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIG1hcC5mb3JFYWNoKChfLCBrZXkpID0+IG1hcC5zZXQoa2V5LCBbXSkpO1xuXG4gICAgICAgICAgICAgICAgICAgIGFsZXJ0cy5mb3JFYWNoKChhbGVydCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qga2V5ID0gYWxlcnQuY29tcG9uZW50LmNvbXBvbmVudDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gbWFwLmdldChrZXkpIHx8IFtdO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBtYXAuc2V0KGtleSwgWy4uLnZhbHVlLCBhbGVydF0pO1xuICAgICAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gQXJyYXkuZnJvbShtYXAudmFsdWVzKCkpO1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgKSxcbiAgICB9LFxuKTtcblxuZXhwb3J0IGZ1bmN0aW9uIHR1aUFsZXJ0T3B0aW9uc1Byb3ZpZGVyKFxuICAgIG9wdGlvbnM6IFBhcnRpYWw8VHVpQWxlcnRPcHRpb25zPixcbik6IEZhY3RvcnlQcm92aWRlciB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgcHJvdmlkZTogVFVJX0FMRVJUX09QVElPTlMsXG4gICAgICAgIHVzZUZhY3Rvcnk6ICgpOiBUdWlBbGVydE9wdGlvbnMgPT4gKHtcbiAgICAgICAgICAgIC4uLlRVSV9BTEVSVF9ERUZBVUxUX09QVElPTlMsXG4gICAgICAgICAgICAuLi4oaW5qZWN0KFRVSV9BTEVSVF9PUFRJT05TLCB7b3B0aW9uYWw6IHRydWUsIHNraXBTZWxmOiB0cnVlfSkgfHxcbiAgICAgICAgICAgICAgICBpbmplY3QoVFVJX05PVElGSUNBVElPTl9PUFRJT05TKSksXG4gICAgICAgICAgICAuLi5vcHRpb25zLFxuICAgICAgICB9KSxcbiAgICB9O1xufVxuIl19