@taiga-ui/core 4.42.0 → 4.43.0-canary.0505af2

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 (143) 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/calendar/calendar-year.component.d.ts +5 -4
  4. package/components/calendar/calendar.component.d.ts +1 -0
  5. package/components/data-list/data-list.tokens.d.ts +3 -2
  6. package/components/data-list/option/option-content.d.ts +2 -1
  7. package/components/data-list/option/option.directive.d.ts +2 -0
  8. package/components/dialog/dialog.tokens.d.ts +4 -3
  9. package/components/link/link.options.d.ts +2 -1
  10. package/components/loader/loader.options.d.ts +2 -1
  11. package/components/textfield/select-like.directive.d.ts +4 -3
  12. package/components/textfield/textfield-accessor.d.ts +2 -1
  13. package/components/textfield/textfield-dropdown.directive.d.ts +9 -5
  14. package/components/textfield/textfield-multi/textfield-multi.component.d.ts +3 -3
  15. package/components/textfield/textfield.component.d.ts +8 -4
  16. package/components/textfield/textfield.options.d.ts +2 -1
  17. package/directives/appearance/appearance.options.d.ts +2 -1
  18. package/directives/dropdown/dropdown-hover.options.d.ts +2 -1
  19. package/directives/dropdown/dropdown-options.directive.d.ts +2 -1
  20. package/directives/dropdown/dropdown.directive.d.ts +5 -4
  21. package/directives/dropdown/dropdown.providers.d.ts +3 -2
  22. package/directives/group/group.options.d.ts +2 -1
  23. package/directives/hint/hint-options.directive.d.ts +2 -1
  24. package/directives/hint/hint.providers.d.ts +2 -1
  25. package/directives/items-handlers/items-handlers.tokens.d.ts +2 -1
  26. package/esm2022/components/alert/alert.component.mjs +3 -3
  27. package/esm2022/components/alert/alert.tokens.mjs +28 -21
  28. package/esm2022/components/calendar/calendar-sheet.component.mjs +3 -3
  29. package/esm2022/components/calendar/calendar-sheet.options.mjs +6 -3
  30. package/esm2022/components/calendar/calendar-year.component.mjs +22 -18
  31. package/esm2022/components/calendar/calendar.component.mjs +5 -3
  32. package/esm2022/components/data-list/data-list.component.mjs +3 -3
  33. package/esm2022/components/data-list/data-list.tokens.mjs +5 -4
  34. package/esm2022/components/data-list/option/option-content.mjs +3 -4
  35. package/esm2022/components/data-list/option/option.directive.mjs +14 -2
  36. package/esm2022/components/dialog/dialog.component.mjs +3 -3
  37. package/esm2022/components/dialog/dialog.tokens.mjs +12 -5
  38. package/esm2022/components/dialog/dialogs.component.mjs +3 -3
  39. package/esm2022/components/label/label.directive.mjs +2 -2
  40. package/esm2022/components/link/link.options.mjs +6 -3
  41. package/esm2022/components/loader/loader.component.mjs +3 -3
  42. package/esm2022/components/loader/loader.options.mjs +6 -3
  43. package/esm2022/components/notification/notification.directive.mjs +2 -2
  44. package/esm2022/components/root/root.component.mjs +2 -2
  45. package/esm2022/components/textfield/select-like.directive.mjs +14 -10
  46. package/esm2022/components/textfield/textfield-accessor.mjs +4 -3
  47. package/esm2022/components/textfield/textfield-dropdown.directive.mjs +22 -15
  48. package/esm2022/components/textfield/textfield-multi/textfield-item.component.mjs +5 -4
  49. package/esm2022/components/textfield/textfield-multi/textfield-multi.component.mjs +27 -15
  50. package/esm2022/components/textfield/textfield.component.mjs +48 -39
  51. package/esm2022/components/textfield/textfield.options.mjs +9 -7
  52. package/esm2022/directives/appearance/appearance.options.mjs +6 -3
  53. package/esm2022/directives/dropdown/dropdown-hover.options.mjs +6 -3
  54. package/esm2022/directives/dropdown/dropdown-open.directive.mjs +2 -2
  55. package/esm2022/directives/dropdown/dropdown-options.directive.mjs +6 -4
  56. package/esm2022/directives/dropdown/dropdown.component.mjs +3 -3
  57. package/esm2022/directives/dropdown/dropdown.directive.mjs +21 -16
  58. package/esm2022/directives/dropdown/dropdown.providers.mjs +6 -4
  59. package/esm2022/directives/group/group.directive.mjs +2 -2
  60. package/esm2022/directives/group/group.options.mjs +6 -3
  61. package/esm2022/directives/hint/hint-options.directive.mjs +6 -4
  62. package/esm2022/directives/hint/hint.providers.mjs +5 -3
  63. package/esm2022/directives/items-handlers/items-handlers.tokens.mjs +5 -4
  64. package/esm2022/tokens/animations-speed.mjs +5 -4
  65. package/esm2022/tokens/assets-path.mjs +5 -3
  66. package/esm2022/tokens/auxiliary.mjs +6 -3
  67. package/esm2022/tokens/common-icons.mjs +6 -3
  68. package/esm2022/tokens/dark-mode.mjs +34 -31
  69. package/esm2022/tokens/date-format.mjs +5 -4
  70. package/esm2022/tokens/day-type-handler.mjs +5 -3
  71. package/esm2022/tokens/first-day-of-week.mjs +5 -3
  72. package/esm2022/tokens/i18n.mjs +23 -9
  73. package/esm2022/tokens/icon-resolver.mjs +7 -6
  74. package/esm2022/tokens/icon.mjs +8 -4
  75. package/esm2022/tokens/icons.mjs +5 -4
  76. package/esm2022/tokens/media.mjs +8 -6
  77. package/esm2022/tokens/number-format.mjs +5 -4
  78. package/esm2022/tokens/reduced-motion.mjs +6 -5
  79. package/esm2022/tokens/scroll-ref.mjs +5 -4
  80. package/esm2022/tokens/selection-stream.mjs +7 -6
  81. package/esm2022/tokens/spin-icons.mjs +7 -5
  82. package/esm2022/tokens/theme.mjs +5 -3
  83. package/esm2022/tokens/viewport.mjs +27 -25
  84. package/fesm2022/taiga-ui-core-components-alert.mjs +29 -22
  85. package/fesm2022/taiga-ui-core-components-alert.mjs.map +1 -1
  86. package/fesm2022/taiga-ui-core-components-calendar.mjs +30 -23
  87. package/fesm2022/taiga-ui-core-components-calendar.mjs.map +1 -1
  88. package/fesm2022/taiga-ui-core-components-data-list.mjs +19 -8
  89. package/fesm2022/taiga-ui-core-components-data-list.mjs.map +1 -1
  90. package/fesm2022/taiga-ui-core-components-dialog.mjs +15 -9
  91. package/fesm2022/taiga-ui-core-components-dialog.mjs.map +1 -1
  92. package/fesm2022/taiga-ui-core-components-label.mjs +2 -2
  93. package/fesm2022/taiga-ui-core-components-label.mjs.map +1 -1
  94. package/fesm2022/taiga-ui-core-components-link.mjs +5 -3
  95. package/fesm2022/taiga-ui-core-components-link.mjs.map +1 -1
  96. package/fesm2022/taiga-ui-core-components-loader.mjs +7 -5
  97. package/fesm2022/taiga-ui-core-components-loader.mjs.map +1 -1
  98. package/fesm2022/taiga-ui-core-components-notification.mjs +2 -2
  99. package/fesm2022/taiga-ui-core-components-notification.mjs.map +1 -1
  100. package/fesm2022/taiga-ui-core-components-root.mjs +1 -1
  101. package/fesm2022/taiga-ui-core-components-root.mjs.map +1 -1
  102. package/fesm2022/taiga-ui-core-components-textfield.mjs +116 -84
  103. package/fesm2022/taiga-ui-core-components-textfield.mjs.map +1 -1
  104. package/fesm2022/taiga-ui-core-directives-appearance.mjs +5 -3
  105. package/fesm2022/taiga-ui-core-directives-appearance.mjs.map +1 -1
  106. package/fesm2022/taiga-ui-core-directives-dropdown.mjs +35 -24
  107. package/fesm2022/taiga-ui-core-directives-dropdown.mjs.map +1 -1
  108. package/fesm2022/taiga-ui-core-directives-group.mjs +7 -5
  109. package/fesm2022/taiga-ui-core-directives-group.mjs.map +1 -1
  110. package/fesm2022/taiga-ui-core-directives-hint.mjs +8 -4
  111. package/fesm2022/taiga-ui-core-directives-hint.mjs.map +1 -1
  112. package/fesm2022/taiga-ui-core-directives-items-handlers.mjs +5 -3
  113. package/fesm2022/taiga-ui-core-directives-items-handlers.mjs.map +1 -1
  114. package/fesm2022/taiga-ui-core-tokens.mjs +143 -87
  115. package/fesm2022/taiga-ui-core-tokens.mjs.map +1 -1
  116. package/package.json +9 -9
  117. package/styles/components/label.less +2 -2
  118. package/styles/components/notification.less +57 -10
  119. package/styles/components/textfield.less +36 -17
  120. package/styles/mixins/mixins.less +1 -1
  121. package/styles/mixins/slider.less +3 -3
  122. package/styles/mixins/slider.scss +3 -3
  123. package/styles/theme/appearance/table.less +1 -1
  124. package/tokens/animations-speed.d.ts +2 -1
  125. package/tokens/assets-path.d.ts +2 -1
  126. package/tokens/auxiliary.d.ts +2 -1
  127. package/tokens/common-icons.d.ts +2 -1
  128. package/tokens/dark-mode.d.ts +3 -2
  129. package/tokens/date-format.d.ts +2 -1
  130. package/tokens/day-type-handler.d.ts +2 -1
  131. package/tokens/first-day-of-week.d.ts +2 -1
  132. package/tokens/i18n.d.ts +8 -7
  133. package/tokens/icon-resolver.d.ts +3 -2
  134. package/tokens/icon.d.ts +3 -2
  135. package/tokens/icons.d.ts +3 -2
  136. package/tokens/media.d.ts +2 -1
  137. package/tokens/number-format.d.ts +2 -1
  138. package/tokens/reduced-motion.d.ts +2 -1
  139. package/tokens/scroll-ref.d.ts +2 -2
  140. package/tokens/selection-stream.d.ts +2 -1
  141. package/tokens/spin-icons.d.ts +2 -1
  142. package/tokens/theme.d.ts +2 -1
  143. 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,6 +1,6 @@
1
1
  import { EventEmitter } from '@angular/core';
2
- import type { TuiDay } from '@taiga-ui/cdk/date-time';
3
- import { TuiDayRange, TuiMonthRange, TuiYear } from '@taiga-ui/cdk/date-time';
2
+ import type { TuiDayRange } from '@taiga-ui/cdk/date-time';
3
+ import { TuiDay, TuiMonthRange, TuiYear } from '@taiga-ui/cdk/date-time';
4
4
  import type { TuiBooleanHandler } from '@taiga-ui/cdk/types';
5
5
  import * as i0 from "@angular/core";
6
6
  export declare class TuiCalendarYear {
@@ -10,12 +10,13 @@ export declare class TuiCalendarYear {
10
10
  initialItem: number;
11
11
  min: number | null;
12
12
  max: number | null;
13
+ rangeMode: boolean;
13
14
  disabledItemHandler: TuiBooleanHandler<number>;
14
15
  readonly yearClick: EventEmitter<number>;
15
16
  isDisabled(item: number): boolean;
16
17
  getItemRange(item: number): 'active' | 'end' | 'middle' | 'start' | null;
17
18
  onItemHovered(hovered: boolean, item: number): void;
18
- protected get isSingle(): boolean;
19
+ protected get isRangePicking(): boolean;
19
20
  protected get rows(): number;
20
21
  protected scrollItemIntoView(item: number): boolean;
21
22
  protected getItem(rowIndex: number, colIndex: number): number;
@@ -24,5 +25,5 @@ export declare class TuiCalendarYear {
24
25
  private get calculatedMax();
25
26
  private updateHoveredItem;
26
27
  static ɵfac: i0.ɵɵFactoryDeclaration<TuiCalendarYear, never>;
27
- static ɵcmp: i0.ɵɵComponentDeclaration<TuiCalendarYear, "tui-calendar-year", never, { "value": { "alias": "value"; "required": false; }; "initialItem": { "alias": "initialItem"; "required": false; }; "min": { "alias": "min"; "required": false; }; "max": { "alias": "max"; "required": false; }; "disabledItemHandler": { "alias": "disabledItemHandler"; "required": false; }; }, { "yearClick": "yearClick"; }, never, never, true, never>;
28
+ static ɵcmp: i0.ɵɵComponentDeclaration<TuiCalendarYear, "tui-calendar-year", never, { "value": { "alias": "value"; "required": false; }; "initialItem": { "alias": "initialItem"; "required": false; }; "min": { "alias": "min"; "required": false; }; "max": { "alias": "max"; "required": false; }; "rangeMode": { "alias": "rangeMode"; "required": false; }; "disabledItemHandler": { "alias": "disabledItemHandler"; "required": false; }; }, { "yearClick": "yearClick"; }, never, never, true, never>;
28
29
  }
@@ -9,6 +9,7 @@ export declare class TuiCalendar {
9
9
  private readonly cdr;
10
10
  private day;
11
11
  private view;
12
+ protected readonly options: import("./calendar-sheet.options").TuiCalendarSheetOptions;
12
13
  month: TuiMonth;
13
14
  disabledItemHandler: TuiBooleanHandler<TuiDay>;
14
15
  min: TuiDay | null;
@@ -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;
@@ -17,9 +17,11 @@ export declare class TuiOptionNew<T = unknown> implements OnDestroy {
17
17
  static ɵdir: i0.ɵɵDirectiveDeclaration<TuiOptionNew<any>, "button[tuiOption][new], a[tuiOption][new], label[tuiOption][new]", never, { "disabled": { "alias": "disabled"; "required": false; }; }, {}, never, never, true, [{ directive: typeof i1.TuiWithIcons; inputs: {}; outputs: {}; }]>;
18
18
  }
19
19
  export declare class TuiOptionWithValue<T = unknown> {
20
+ private readonly host;
20
21
  disabled: boolean;
21
22
  readonly value: import("@angular/core").WritableSignal<T | undefined>;
22
23
  set valueSetter(x: T);
24
+ protected onClick(value?: T | undefined): void;
23
25
  static ɵfac: i0.ɵɵFactoryDeclaration<TuiOptionWithValue<any>, never>;
24
26
  static ɵdir: i0.ɵɵDirectiveDeclaration<TuiOptionWithValue<any>, "button[tuiOption][value][new], a[tuiOption][value][new], label[tuiOption][value][new]", never, { "disabled": { "alias": "disabled"; "required": false; }; "valueSetter": { "alias": "value"; "required": true; }; }, {}, never, never, true, never>;
25
27
  }
@@ -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;
@@ -1,9 +1,10 @@
1
1
  import * as i0 from "@angular/core";
2
2
  export declare class TuiSelectLike {
3
+ private readonly el;
3
4
  private readonly isAndroid;
4
5
  protected readonly nothing: undefined;
5
- protected clear(element: HTMLInputElement): void;
6
- protected prevent(event: MouseEvent, element: HTMLInputElement): void;
6
+ protected clear(): void;
7
+ protected prevent(event: MouseEvent): void;
7
8
  static ɵfac: i0.ɵɵFactoryDeclaration<TuiSelectLike, never>;
8
- static ɵdir: i0.ɵɵDirectiveDeclaration<TuiSelectLike, never, never, {}, {}, never, never, true, never>;
9
+ static ɵdir: i0.ɵɵDirectiveDeclaration<TuiSelectLike, "[tuiSelectLike]", never, {}, {}, never, never, true, never>;
9
10
  }
@@ -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;
@@ -1,12 +1,16 @@
1
- import type { PolymorpheusContent } from '@taiga-ui/polymorpheus';
1
+ import type { OnDestroy } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
- export declare class TuiTextfieldDropdownDirective {
3
+ export declare class TuiTextfieldDropdownDirective implements OnDestroy {
4
+ private readonly directive;
5
+ constructor();
6
+ ngOnDestroy(): void;
4
7
  static ɵfac: i0.ɵɵFactoryDeclaration<TuiTextfieldDropdownDirective, never>;
5
8
  static ɵdir: i0.ɵɵDirectiveDeclaration<TuiTextfieldDropdownDirective, "ng-template[tuiTextfieldDropdown]", never, {}, {}, never, never, true, never>;
6
9
  }
10
+ /**
11
+ * @deprecated remove in v5
12
+ */
7
13
  export declare class TuiWithTextfieldDropdown {
8
- private readonly dropdown;
9
- protected set template(template: PolymorpheusContent);
10
14
  static ɵfac: i0.ɵɵFactoryDeclaration<TuiWithTextfieldDropdown, never>;
11
- static ɵdir: i0.ɵɵDirectiveDeclaration<TuiWithTextfieldDropdown, never, never, {}, {}, ["template"], never, true, never>;
15
+ static ɵdir: i0.ɵɵDirectiveDeclaration<TuiWithTextfieldDropdown, never, never, {}, {}, never, never, true, never>;
12
16
  }
@@ -3,7 +3,7 @@ import { TemplateRef } from '@angular/core';
3
3
  import type { TuiContext } from '@taiga-ui/cdk/types';
4
4
  import type { TuiDataListHost } from '@taiga-ui/core/components/data-list';
5
5
  import type { PolymorpheusContent } from '@taiga-ui/polymorpheus';
6
- import { TuiTextfieldComponent } from '../textfield.component';
6
+ import { TuiTextfieldBaseComponent } from '../textfield.component';
7
7
  import type { TuiTextfieldItem } from './textfield-item.component';
8
8
  import * as i0 from "@angular/core";
9
9
  import * as i1 from "@taiga-ui/core/directives/dropdown";
@@ -11,7 +11,7 @@ import * as i2 from "../textfield-dropdown.directive";
11
11
  import * as i3 from "@taiga-ui/core/directives/icons";
12
12
  import * as i4 from "@taiga-ui/core/directives";
13
13
  import * as i5 from "@taiga-ui/core/components/data-list";
14
- export declare class TuiTextfieldMultiComponent<T> extends TuiTextfieldComponent<T> implements TuiDataListHost<T>, AfterContentInit {
14
+ export declare class TuiTextfieldMultiComponent<T> extends TuiTextfieldBaseComponent<T> implements TuiDataListHost<T>, AfterContentInit {
15
15
  protected readonly height: import("@angular/core").WritableSignal<number | null>;
16
16
  protected readonly handlers: import("@taiga-ui/core/directives").TuiItemsHandlers<unknown>;
17
17
  protected readonly component: PolymorpheusContent<TuiContext<TuiTextfieldItem<T>>>;
@@ -21,7 +21,7 @@ export declare class TuiTextfieldMultiComponent<T> extends TuiTextfieldComponent
21
21
  handleOption(option: T): void;
22
22
  protected onItems({ target }: ResizeObserverEntry): void;
23
23
  protected onLeft(event: any): void;
24
- protected focus(): void;
24
+ protected onClick(target: HTMLElement): void;
25
25
  static ɵfac: i0.ɵɵFactoryDeclaration<TuiTextfieldMultiComponent<any>, never>;
26
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
27
  }
@@ -14,7 +14,7 @@ import * as i2 from "@taiga-ui/core/directives/icons";
14
14
  import * as i3 from "@taiga-ui/core/directives/items-handlers";
15
15
  import * as i4 from "@taiga-ui/core/components/data-list";
16
16
  import * as i5 from "./textfield-dropdown.directive";
17
- export declare class TuiTextfieldComponent<T> implements TuiDataListHost<T>, AfterContentInit {
17
+ export declare class TuiTextfieldBaseComponent<T> implements TuiDataListHost<T>, AfterContentInit {
18
18
  private readonly filler;
19
19
  private readonly autoId;
20
20
  private readonly focusedIn;
@@ -22,8 +22,6 @@ export declare class TuiTextfieldComponent<T> implements TuiDataListHost<T>, Aft
22
22
  private readonly inputQuery;
23
23
  protected readonly ghost?: ElementRef<HTMLElement>;
24
24
  protected readonly label?: ElementRef<HTMLElement>;
25
- protected readonly ngControl?: NgControl;
26
- protected readonly control?: TuiControl<unknown>;
27
25
  protected readonly auxiliaryQuery: QueryList<object>;
28
26
  protected readonly open: import("@angular/core").WritableSignal<boolean>;
29
27
  protected readonly dropdown: TuiDropdownDirective;
@@ -34,6 +32,8 @@ export declare class TuiTextfieldComponent<T> implements TuiDataListHost<T>, Aft
34
32
  protected showFiller: import("@angular/core").Signal<boolean>;
35
33
  readonly vcr?: ViewContainerRef;
36
34
  readonly accessor?: TuiTextfieldAccessor<T>;
35
+ readonly control?: NgControl;
36
+ readonly cva?: TuiControl<unknown>;
37
37
  readonly input?: ElementRef<HTMLInputElement>;
38
38
  content: PolymorpheusContent<TuiContext<T>>;
39
39
  readonly focused: import("@angular/core").Signal<boolean>;
@@ -50,6 +50,10 @@ export declare class TuiTextfieldComponent<T> implements TuiDataListHost<T>, Aft
50
50
  protected onResize({ contentRect }: ResizeObserverEntry): void;
51
51
  protected onIconClick(): void;
52
52
  protected onScroll(element: HTMLElement): void;
53
+ static ɵfac: i0.ɵɵFactoryDeclaration<TuiTextfieldBaseComponent<any>, never>;
54
+ static ɵdir: i0.ɵɵDirectiveDeclaration<TuiTextfieldBaseComponent<any>, never, never, { "content": { "alias": "content"; "required": false; }; "fillerSetter": { "alias": "filler"; "required": false; }; }, {}, ["label", "accessor", "control", "cva", "input", "auxiliaryQuery"], never, false, never>;
55
+ }
56
+ export declare class TuiTextfieldComponent<T> extends TuiTextfieldBaseComponent<T> {
53
57
  static ɵfac: i0.ɵɵFactoryDeclaration<TuiTextfieldComponent<any>, never>;
54
- static ɵcmp: i0.ɵɵComponentDeclaration<TuiTextfieldComponent<any>, "tui-textfield:not([multi])", never, { "content": { "alias": "content"; "required": false; }; "fillerSetter": { "alias": "filler"; "required": false; }; }, {}, ["label", "ngControl", "control", "accessor", "input", "auxiliaryQuery"], ["input", "select", "textarea", "label", "*", "tui-icon"], true, [{ directive: typeof i1.TuiDropdownDirective; inputs: {}; outputs: {}; }, { directive: typeof i1.TuiDropdownFixed; inputs: {}; outputs: {}; }, { directive: typeof i1.TuiWithDropdownOpen; inputs: {}; outputs: {}; }, { directive: typeof i2.TuiWithIcons; inputs: {}; outputs: {}; }, { directive: typeof i3.TuiWithItemsHandlers; inputs: {}; outputs: {}; }, { directive: typeof i4.TuiWithOptionContent; inputs: {}; outputs: {}; }, { directive: typeof i5.TuiWithTextfieldDropdown; inputs: {}; outputs: {}; }]>;
58
+ static ɵcmp: i0.ɵɵComponentDeclaration<TuiTextfieldComponent<any>, "tui-textfield:not([multi])", never, {}, {}, never, ["input", "select", "textarea", "label", "*", "tui-icon"], true, [{ directive: typeof i1.TuiDropdownDirective; inputs: {}; outputs: {}; }, { directive: typeof i1.TuiDropdownFixed; inputs: {}; outputs: {}; }, { directive: typeof i1.TuiWithDropdownOpen; inputs: {}; outputs: {}; }, { directive: typeof i2.TuiWithIcons; inputs: {}; outputs: {}; }, { directive: typeof i3.TuiWithItemsHandlers; inputs: {}; outputs: {}; }, { directive: typeof i4.TuiWithOptionContent; inputs: {}; outputs: {}; }, { directive: typeof i5.TuiWithTextfieldDropdown; inputs: {}; outputs: {}; }]>;
55
59
  }
@@ -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,4 +1,4 @@
1
- import type { AfterViewChecked, ComponentRef, OnChanges, OnDestroy } from '@angular/core';
1
+ import type { AfterViewChecked, ComponentRef, OnDestroy } from '@angular/core';
2
2
  import type { TuiContext } from '@taiga-ui/cdk/types';
3
3
  import type { TuiRectAccessor, TuiVehicle } from '@taiga-ui/core/classes';
4
4
  import type { TuiPortalItem } from '@taiga-ui/core/types';
@@ -7,7 +7,7 @@ import { PolymorpheusComponent } from '@taiga-ui/polymorpheus';
7
7
  import * as i0 from "@angular/core";
8
8
  import * as i1 from "./dropdown.driver";
9
9
  import * as i2 from "./dropdown-position.directive";
10
- export declare class TuiDropdownDirective implements AfterViewChecked, OnDestroy, OnChanges, TuiPortalItem, TuiRectAccessor, TuiVehicle {
10
+ export declare class TuiDropdownDirective implements AfterViewChecked, OnDestroy, TuiPortalItem, TuiRectAccessor, TuiVehicle {
11
11
  private readonly refresh$;
12
12
  private readonly service;
13
13
  private readonly cdr;
@@ -17,11 +17,12 @@ export declare class TuiDropdownDirective implements AfterViewChecked, OnDestroy
17
17
  readonly type = "dropdown";
18
18
  readonly component: PolymorpheusComponent<any>;
19
19
  ref: import("@angular/core").WritableSignal<ComponentRef<unknown> | null>;
20
- content: PolymorpheusContent<TuiContext<() => void>>;
20
+ readonly _content: import("@angular/core").WritableSignal<PolymorpheusContent<TuiContext<() => void>>>;
21
21
  set tuiDropdown(content: PolymorpheusContent<TuiContext<() => void>>);
22
22
  get position(): 'absolute' | 'fixed';
23
+ get content(): PolymorpheusContent<TuiContext<() => void>>;
24
+ set content(x: PolymorpheusContent<TuiContext<() => void>>);
23
25
  ngAfterViewChecked(): void;
24
- ngOnChanges(): void;
25
26
  ngOnDestroy(): void;
26
27
  getClientRect(): DOMRect;
27
28
  toggle(show: boolean): void;
@@ -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