@taiga-ui/core 4.74.1 → 4.75.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 (31) hide show
  1. package/components/data-list/data-list.component.d.ts +1 -0
  2. package/components/textfield/textfield.component.d.ts +1 -0
  3. package/components/textfield/textfield.directive.d.ts +7 -4
  4. package/directives/dropdown/dropdown-a11y.directive.d.ts +11 -0
  5. package/directives/dropdown/dropdown-context.directive.d.ts +2 -1
  6. package/directives/dropdown/dropdown-open.directive.d.ts +4 -3
  7. package/directives/dropdown/dropdown.d.ts +2 -1
  8. package/directives/dropdown/dropdown.directive.d.ts +3 -2
  9. package/directives/dropdown/dropdown.providers.d.ts +2 -1
  10. package/directives/dropdown/index.d.ts +1 -0
  11. package/esm2022/components/data-list/data-list.component.mjs +8 -2
  12. package/esm2022/components/root/root.component.mjs +1 -1
  13. package/esm2022/components/textfield/textfield-multi/textfield-multi.component.mjs +7 -7
  14. package/esm2022/components/textfield/textfield.component.mjs +15 -9
  15. package/esm2022/components/textfield/textfield.directive.mjs +10 -5
  16. package/esm2022/directives/dropdown/dropdown-a11y.directive.mjs +52 -0
  17. package/esm2022/directives/dropdown/dropdown-context.directive.mjs +12 -15
  18. package/esm2022/directives/dropdown/dropdown-open.directive.mjs +44 -36
  19. package/esm2022/directives/dropdown/dropdown.directive.mjs +11 -5
  20. package/esm2022/directives/dropdown/dropdown.mjs +3 -1
  21. package/esm2022/directives/dropdown/dropdown.providers.mjs +2 -1
  22. package/esm2022/directives/dropdown/index.mjs +2 -1
  23. package/fesm2022/taiga-ui-core-components-data-list.mjs +7 -1
  24. package/fesm2022/taiga-ui-core-components-data-list.mjs.map +1 -1
  25. package/fesm2022/taiga-ui-core-components-root.mjs +1 -1
  26. package/fesm2022/taiga-ui-core-components-textfield.mjs +30 -21
  27. package/fesm2022/taiga-ui-core-components-textfield.mjs.map +1 -1
  28. package/fesm2022/taiga-ui-core-directives-dropdown.mjs +105 -47
  29. package/fesm2022/taiga-ui-core-directives-dropdown.mjs.map +1 -1
  30. package/package.json +3 -3
  31. package/styles/mixins/hitbox.less +1 -1
@@ -23,6 +23,7 @@ export declare class TuiDataListComponent<T> implements TuiDataListAccessor<T>,
23
23
  ngAfterContentInit(): void;
24
24
  ngAfterContentChecked(): void;
25
25
  getOptions(includeDisabled?: boolean): readonly T[];
26
+ protected get role(): string | null;
26
27
  protected onFocusIn(relatedTarget: HTMLElement, currentTarget: HTMLElement): void;
27
28
  private get elements();
28
29
  static ɵfac: i0.ɵɵFactoryDeclaration<TuiDataListComponent<any>, never>;
@@ -48,6 +48,7 @@ export declare class TuiTextfieldBaseComponent<T> implements TuiDataListHost<T>,
48
48
  get disabled(): boolean;
49
49
  ngAfterContentChecked(): void;
50
50
  handleOption(option: T): void;
51
+ protected get interactiveInput(): ElementRef<HTMLInputElement> | undefined;
51
52
  protected get hasLabel(): boolean;
52
53
  protected onResize({ contentRect }: ResizeObserverEntry): void;
53
54
  protected onIconClick(): void;
@@ -1,12 +1,14 @@
1
1
  import { type OnChanges } from '@angular/core';
2
2
  import { NgControl } from '@angular/forms';
3
+ import { TuiDropdownDirective } from '@taiga-ui/core/directives/dropdown';
3
4
  import { type TuiItemsHandlers } from '@taiga-ui/core/directives/items-handlers';
4
5
  import { type TuiInteractiveState } from '@taiga-ui/core/types';
5
6
  import { TuiTextfieldComponent } from './textfield.component';
6
7
  import { type TuiTextfieldAccessor } from './textfield-accessor';
7
8
  import * as i0 from "@angular/core";
8
- import * as i1 from "@taiga-ui/cdk/directives/native-validator";
9
- import * as i2 from "@taiga-ui/core/directives/appearance";
9
+ import * as i1 from "@taiga-ui/core/directives/dropdown";
10
+ import * as i2 from "@taiga-ui/cdk/directives/native-validator";
11
+ import * as i3 from "@taiga-ui/core/directives/appearance";
10
12
  export declare class TuiTextfieldBase<T> implements OnChanges, TuiTextfieldAccessor<T> {
11
13
  private readonly focused;
12
14
  protected readonly control: NgControl | null;
@@ -17,6 +19,7 @@ export declare class TuiTextfieldBase<T> implements OnChanges, TuiTextfieldAcces
17
19
  protected readonly el: HTMLInputElement;
18
20
  protected readonly handlers: TuiItemsHandlers<T>;
19
21
  protected readonly textfield: TuiTextfieldComponent<T>;
22
+ protected readonly dropdown: TuiDropdownDirective;
20
23
  readOnly: boolean;
21
24
  invalid: boolean | null;
22
25
  readonly value: import("@angular/core").WritableSignal<string>;
@@ -26,11 +29,11 @@ export declare class TuiTextfieldBase<T> implements OnChanges, TuiTextfieldAcces
26
29
  ngOnChanges(): void;
27
30
  setValue(value: T | null): void;
28
31
  static ɵfac: i0.ɵɵFactoryDeclaration<TuiTextfieldBase<any>, never>;
29
- static ɵdir: i0.ɵɵDirectiveDeclaration<TuiTextfieldBase<any>, never, never, { "readOnly": { "alias": "readOnly"; "required": false; }; "invalid": { "alias": "invalid"; "required": false; }; "focusedSetter": { "alias": "focused"; "required": false; }; "stateSetter": { "alias": "state"; "required": false; }; }, {}, never, never, true, never>;
32
+ static ɵdir: i0.ɵɵDirectiveDeclaration<TuiTextfieldBase<any>, never, never, { "readOnly": { "alias": "readOnly"; "required": false; }; "invalid": { "alias": "invalid"; "required": false; }; "focusedSetter": { "alias": "focused"; "required": false; }; "stateSetter": { "alias": "state"; "required": false; }; }, {}, never, never, true, [{ directive: typeof i1.TuiDropdownA11y; inputs: {}; outputs: {}; }]>;
30
33
  }
31
34
  export declare class TuiTextfieldDirective<T> extends TuiTextfieldBase<T> {
32
35
  static ɵfac: i0.ɵɵFactoryDeclaration<TuiTextfieldDirective<any>, never>;
33
- static ɵdir: i0.ɵɵDirectiveDeclaration<TuiTextfieldDirective<any>, "input[tuiTextfield]:not([tuiInputCard]):not([tuiInputExpire]):not([tuiInputCVC])", never, {}, {}, never, never, true, [{ directive: typeof i1.TuiNativeValidator; inputs: {}; outputs: {}; }, { directive: typeof i2.TuiAppearance; inputs: {}; outputs: {}; }]>;
36
+ static ɵdir: i0.ɵɵDirectiveDeclaration<TuiTextfieldDirective<any>, "input[tuiTextfield]:not([tuiInputCard]):not([tuiInputExpire]):not([tuiInputCVC])", never, {}, {}, never, never, true, [{ directive: typeof i2.TuiNativeValidator; inputs: {}; outputs: {}; }, { directive: typeof i3.TuiAppearance; inputs: {}; outputs: {}; }]>;
34
37
  }
35
38
  export declare class TuiWithTextfield {
36
39
  static ɵfac: i0.ɵɵFactoryDeclaration<TuiWithTextfield, never>;
@@ -0,0 +1,11 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare class TuiDropdownA11y {
3
+ private readonly id;
4
+ private readonly host;
5
+ private readonly dropdown;
6
+ protected readonly sync: import("@angular/core").EffectRef;
7
+ readonly _tuiDropdownRole: import("@angular/core").WritableSignal<string>;
8
+ set tuiDropdownRole(role: string);
9
+ static ɵfac: i0.ɵɵFactoryDeclaration<TuiDropdownA11y, never>;
10
+ static ɵdir: i0.ɵɵDirectiveDeclaration<TuiDropdownA11y, "[tuiDropdownA11y]", never, { "tuiDropdownRole": { "alias": "tuiDropdownRole"; "required": false; }; }, {}, never, never, true, never>;
11
+ }
@@ -3,6 +3,7 @@ import { TuiRectAccessor } from '@taiga-ui/core/classes';
3
3
  import { TuiDropdownDriver } from './dropdown.driver';
4
4
  import * as i0 from "@angular/core";
5
5
  export declare class TuiDropdownContext extends TuiRectAccessor {
6
+ private readonly zone;
6
7
  private readonly isTouch;
7
8
  private currentRect;
8
9
  protected readonly userSelect: import("@angular/core").Signal<"none" | null>;
@@ -12,7 +13,7 @@ export declare class TuiDropdownContext extends TuiRectAccessor {
12
13
  protected readonly sub: import("rxjs").Subscription;
13
14
  readonly type = "dropdown";
14
15
  getClientRect(): DOMRect;
15
- protected closeDropdown(_event?: Event): void;
16
+ protected closeDropdown(event?: Event): void;
16
17
  protected onContextMenu(x: number, y: number): void;
17
18
  static ɵfac: i0.ɵɵFactoryDeclaration<TuiDropdownContext, never>;
18
19
  static ɵdir: i0.ɵɵDirectiveDeclaration<TuiDropdownContext, "[tuiDropdownContext]", never, {}, {}, never, never, true, never>;
@@ -1,14 +1,15 @@
1
- import { EventEmitter, type OnChanges } from '@angular/core';
1
+ import { ElementRef, EventEmitter, type OnChanges } from '@angular/core';
2
2
  import { TuiDropdownDriver } from './dropdown.driver';
3
3
  import * as i0 from "@angular/core";
4
4
  import * as i1 from "@taiga-ui/cdk/directives/obscured";
5
5
  import * as i2 from "@taiga-ui/cdk/directives/active-zone";
6
- export declare class TuiDropdownOpen implements OnChanges {
6
+ export declare class TuiDropdownOpen implements OnChanges, ElementRef<Element> {
7
7
  private readonly dropdownHost?;
8
8
  private readonly directive;
9
9
  private readonly el;
10
10
  private readonly obscured;
11
11
  private readonly activeZone;
12
+ private readonly zone;
12
13
  private readonly dropdown;
13
14
  tuiDropdownEnabled: boolean;
14
15
  tuiDropdownOpen: boolean | '';
@@ -16,13 +17,13 @@ export declare class TuiDropdownOpen implements OnChanges {
16
17
  readonly driver: TuiDropdownDriver;
17
18
  readonly sub: import("rxjs").Subscription;
18
19
  readonly sync: import("rxjs").Subscription;
20
+ get nativeElement(): HTMLElement;
19
21
  ngOnChanges(): void;
20
22
  toggle(open: boolean): void;
21
23
  protected onEsc(event: KeyboardEvent): void;
22
24
  protected onClick(target: HTMLElement): void;
23
25
  protected onArrow(event: KeyboardEvent, up: boolean): void;
24
26
  protected onKeydown(event: KeyboardEvent): void;
25
- private get host();
26
27
  private get editable();
27
28
  private get focused();
28
29
  private update;
@@ -11,4 +11,5 @@ import { TuiDropdownPortal } from './dropdown-portal.directive';
11
11
  import { TuiDropdownPosition } from './dropdown-position.directive';
12
12
  import { TuiDropdownPositionSided } from './dropdown-position-sided.directive';
13
13
  import { TuiDropdownSelection } from './dropdown-selection.directive';
14
- export declare const TuiDropdown: readonly [typeof TuiDropdownOptionsDirective, typeof TuiDropdownDriverDirective, typeof TuiDropdownDirective, typeof TuiDropdownComponent, typeof TuiDropdownOpen, typeof TuiDropdownOpenLegacy, typeof TuiDropdownPortal, typeof TuiDropdownManual, typeof TuiDropdownHover, typeof TuiDropdownContext, typeof TuiDropdownPosition, typeof TuiDropdownPositionSided, typeof TuiDropdownSelection];
14
+ import { TuiDropdownA11y } from './dropdown-a11y.directive';
15
+ export declare const TuiDropdown: readonly [typeof TuiDropdownOptionsDirective, typeof TuiDropdownDriverDirective, typeof TuiDropdownDirective, typeof TuiDropdownComponent, typeof TuiDropdownOpen, typeof TuiDropdownOpenLegacy, typeof TuiDropdownPortal, typeof TuiDropdownManual, typeof TuiDropdownHover, typeof TuiDropdownContext, typeof TuiDropdownPosition, typeof TuiDropdownPositionSided, typeof TuiDropdownSelection, typeof TuiDropdownA11y];
@@ -5,7 +5,8 @@ import { type TuiPortalItem } from '@taiga-ui/core/types';
5
5
  import { PolymorpheusComponent, type PolymorpheusContent } from '@taiga-ui/polymorpheus';
6
6
  import * as i0 from "@angular/core";
7
7
  import * as i1 from "./dropdown.driver";
8
- import * as i2 from "./dropdown-position.directive";
8
+ import * as i2 from "./dropdown-a11y.directive";
9
+ import * as i3 from "./dropdown-position.directive";
9
10
  export declare class TuiDropdownDirective implements AfterViewChecked, OnDestroy, TuiPortalItem, TuiRectAccessor, TuiVehicle {
10
11
  private readonly refresh$;
11
12
  private readonly service;
@@ -26,5 +27,5 @@ export declare class TuiDropdownDirective implements AfterViewChecked, OnDestroy
26
27
  getClientRect(): DOMRect;
27
28
  toggle(show: boolean): void;
28
29
  static ɵfac: i0.ɵɵFactoryDeclaration<TuiDropdownDirective, never>;
29
- static ɵdir: i0.ɵɵDirectiveDeclaration<TuiDropdownDirective, "[tuiDropdown]:not(ng-container):not(ng-template)", ["tuiDropdown"], { "tuiDropdown": { "alias": "tuiDropdown"; "required": false; }; }, {}, never, never, true, [{ directive: typeof i1.TuiDropdownDriverDirective; inputs: {}; outputs: {}; }, { directive: typeof i2.TuiDropdownPosition; inputs: {}; outputs: { "tuiDropdownDirectionChange": "tuiDropdownDirectionChange"; }; }]>;
30
+ static ɵdir: i0.ɵɵDirectiveDeclaration<TuiDropdownDirective, "[tuiDropdown]:not(ng-container):not(ng-template)", ["tuiDropdown"], { "tuiDropdown": { "alias": "tuiDropdown"; "required": false; }; }, {}, never, never, true, [{ directive: typeof i1.TuiDropdownDriverDirective; inputs: {}; outputs: {}; }, { directive: typeof i2.TuiDropdownA11y; inputs: { "tuiDropdownRole": "tuiDropdownRole"; }; outputs: {}; }, { directive: typeof i3.TuiDropdownPosition; inputs: {}; outputs: { "tuiDropdownDirectionChange": "tuiDropdownDirectionChange"; }; }]>;
30
31
  }
@@ -1,6 +1,7 @@
1
- import { InjectionToken, type Type } from '@angular/core';
1
+ import { type ElementRef, InjectionToken, type Type } from '@angular/core';
2
2
  /**
3
3
  * A component to display a dropdown
4
4
  */
5
5
  export declare const TUI_DROPDOWN_COMPONENT: InjectionToken<Type<any>>;
6
6
  export declare const TUI_DROPDOWN_CONTEXT: InjectionToken<Record<any, any>>;
7
+ export declare const TUI_DROPDOWN_HOST: InjectionToken<ElementRef<Element>>;
@@ -5,6 +5,7 @@ export * from './dropdown.directive';
5
5
  export * from './dropdown.driver';
6
6
  export * from './dropdown.providers';
7
7
  export * from './dropdown.service';
8
+ export * from './dropdown-a11y.directive';
8
9
  export * from './dropdown-context.directive';
9
10
  export * from './dropdown-hover.directive';
10
11
  export * from './dropdown-hover.options';
@@ -73,6 +73,11 @@ class TuiDataListComponent {
73
73
  .map(({ value }) => (isSignal(value) ? value() : value))
74
74
  .filter(tuiIsPresent);
75
75
  }
76
+ get role() {
77
+ return this.el.parentElement?.closest('[role="menu"],[role="listbox"]')
78
+ ? null
79
+ : this.el.role;
80
+ }
76
81
  onFocusIn(relatedTarget, currentTarget) {
77
82
  if (!currentTarget.contains(relatedTarget) && !this.origin) {
78
83
  this.origin = relatedTarget;
@@ -82,7 +87,7 @@ class TuiDataListComponent {
82
87
  return Array.from(this.el.querySelectorAll('[tuiOption]'));
83
88
  }
84
89
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiDataListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
85
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiDataListComponent, isStandalone: true, selector: "tui-data-list", inputs: { emptyContent: "emptyContent", size: "size" }, host: { attributes: { "role": "listbox" }, listeners: { "focusin": "onFocusIn($event.relatedTarget, $event.currentTarget)", "mousedown.prevent": "(0)", "wheel.zoneless.passive": "handleFocusLossIfNecessary()", "mouseleave": "handleFocusLossIfNecessary($event.target)", "keydown.tab": "handleFocusLossIfNecessary()", "keydown.shift.tab": "handleFocusLossIfNecessary()", "keydown.arrowDown.prevent": "onKeyDownArrow($event.target, 1)", "keydown.arrowUp.prevent": "onKeyDownArrow($event.target, -1)" }, properties: { "attr.data-size": "size" } }, providers: [
90
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiDataListComponent, isStandalone: true, selector: "tui-data-list", inputs: { emptyContent: "emptyContent", size: "size" }, host: { attributes: { "role": "listbox" }, listeners: { "focusin": "onFocusIn($event.relatedTarget, $event.currentTarget)", "mousedown.prevent": "(0)", "wheel.zoneless.passive": "handleFocusLossIfNecessary()", "mouseleave": "handleFocusLossIfNecessary($event.target)", "keydown.tab": "handleFocusLossIfNecessary()", "keydown.shift.tab": "handleFocusLossIfNecessary()", "keydown.arrowDown.prevent": "onKeyDownArrow($event.target, 1)", "keydown.arrowUp.prevent": "onKeyDownArrow($event.target, -1)" }, properties: { "attr.role": "role", "attr.data-size": "size" } }, providers: [
86
91
  tuiAsDataListAccessor(TuiDataListComponent),
87
92
  {
88
93
  provide: TUI_OPTION_CONTENT,
@@ -115,6 +120,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
115
120
  },
116
121
  ], host: {
117
122
  role: 'listbox',
123
+ '[attr.role]': 'role',
118
124
  '[attr.data-size]': 'size',
119
125
  '(focusin)': 'onFocusIn($event.relatedTarget, $event.currentTarget)',
120
126
  '(mousedown.prevent)': '(0)',
@@ -136,4 +142,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
136
142
  }], size: [{
137
143
  type: Input
138
144
  }] } });
139
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvY29tcG9uZW50cy9kYXRhLWxpc3QvZGF0YS1saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvY29tcG9uZW50cy9kYXRhLWxpc3QvZGF0YS1saXN0LnRlbXBsYXRlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ3JDLE9BQU8sRUFHSCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxlQUFlLEVBQ2YsVUFBVSxFQUNWLFVBQVUsRUFDVixNQUFNLEVBQ04sS0FBSyxFQUNMLFFBQVEsRUFDUixNQUFNLEVBRU4sTUFBTSxFQUNOLGlCQUFpQixHQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFDcEQsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQ3BELE9BQU8sRUFDSCxtQkFBbUIsRUFDbkIscUJBQXFCLEVBQ3JCLFdBQVcsR0FDZCxNQUFNLDJCQUEyQixDQUFDO0FBQ25DLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBQyxvQkFBb0IsRUFBRSxZQUFZLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUM3RSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFDL0QsT0FBTyxFQUFDLHlCQUF5QixFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFFaEUsT0FBTyxFQUEyQixrQkFBa0IsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQ3BGLE9BQU8sRUFBQyxhQUFhLEVBQUUsR0FBRyxFQUFFLGFBQWEsRUFBRSxTQUFTLEVBQUUsU0FBUyxF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eEQsTUFBTSxDQUFDLGtCQUFrQixFQUFFO29DQUN2QixJQUFJLEVBQUUsSUFBSTtvQ0FDVixRQUFRLEVBQUUsSUFBSTtvQ0FDZCxRQUFRLEVBQUUsSUFBSTtpQ0FDakIsQ0FBQztnQ0FDRixNQUFNLENBQUMsa0JBQWtCLEVBQUUsRUFBQyxRQUFRLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUMsQ0FBQzt5QkFDbkU7cUJBQ0osUUFDSzt3QkFDRixJQUFJLEVBQUUsU0FBUzt3QkFDZixrQkFBa0IsRUFBRSxNQUFNO3dCQUMxQixXQUFXLEVBQUUsdURBQXVEO3dCQUNwRSxxQkFBcUIsRUFBRSxLQUFLO3dCQUM1QiwwQkFBMEIsRUFBRSw4QkFBOEI7d0JBQzFELGNBQWMsRUFBRSwyQ0FBMkM7d0JBQzNELGVBQWUsRUFBRSw4QkFBOEI7d0JBQy9DLHFCQUFxQixFQUFFLDhCQUE4Qjt3QkFDckQsNkJBQTZCLEVBQUUsa0NBQWtDO3dCQUNqRSwyQkFBMkIsRUFBRSxtQ0FBbUM7cUJBQ25FOzhCQU9nQixrQkFBa0I7c0JBRGxDLGVBQWU7dUJBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLFNBQVMsQ0FBQyxFQUFFLEVBQUMsV0FBVyxFQUFFLElBQUksRUFBQztnQkFJaEQsWUFBWTtzQkFENUIsZUFBZTt1QkFBQyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsa0JBQWtCLENBQUMsRUFBRSxFQUFDLFdBQVcsRUFBRSxJQUFJLEVBQUM7Z0JBY25FLFlBQVk7c0JBRGxCLEtBQUs7Z0JBSUMsSUFBSTtzQkFEVixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtOZ0lmfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgICB0eXBlIEFmdGVyQ29udGVudENoZWNrZWQsXG4gICAgdHlwZSBBZnRlckNvbnRlbnRJbml0LFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBDb250ZW50Q2hpbGRyZW4sXG4gICAgRGVzdHJveVJlZixcbiAgICBmb3J3YXJkUmVmLFxuICAgIGluamVjdCxcbiAgICBJbnB1dCxcbiAgICBpc1NpZ25hbCxcbiAgICBOZ1pvbmUsXG4gICAgdHlwZSBRdWVyeUxpc3QsXG4gICAgc2lnbmFsLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7dG9TaWduYWx9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7RU1QVFlfUVVFUll9IGZyb20gJ0B0YWlnYS11aS9jZGsvY29uc3RhbnRzJztcbmltcG9ydCB7XG4gICAgdHVpUXVlcnlMaXN0Q2hhbmdlcyxcbiAgICB0dWlUYWtlVW50aWxEZXN0cm95ZWQsXG4gICAgdHVpWm9uZWZyZWUsXG59IGZyb20gJ0B0YWlnYS11aS9jZGsvb2JzZXJ2YWJsZXMnO1xuaW1wb3J0IHt0dWlJbmplY3RFbGVtZW50fSBmcm9tICdAdGFpZ2EtdWkvY2RrL3V0aWxzL2RvbSc7XG5pbXBvcnQge3R1aUlzTmF0aXZlRm9jdXNlZEluLCB0dWlNb3ZlRm9jdXN9IGZyb20gJ0B0YWlnYS11aS9jZGsvdXRpbHMvZm9jdXMnO1xuaW1wb3J0IHt0dWlJc1ByZXNlbnR9IGZyb20gJ0B0YWlnYS11aS9jZGsvdXRpbHMvbWlzY2VsbGFuZW91cyc7XG5pbXBvcnQge1RVSV9OT1RISU5HX0ZPVU5EX01FU1NBR0V9IGZyb20gJ0B0YWlnYS11aS9jb3JlL3Rva2Vucyc7XG5pbXBvcnQge3R5cGUgVHVpU2l6ZUwsIHR5cGUgVHVpU2l6ZVN9IGZyb20gJ0B0YWlnYS11aS9jb3JlL3R5cGVzJztcbmltcG9ydCB7dHlwZSBQb2x5bW9ycGhldXNDb250ZW50LCBQb2x5bW9ycGhldXNPdXRsZXR9IGZyb20gJ0B0YWlnYS11aS9wb2x5bW9ycGhldXMnO1xuaW1wb3J0IHtjb21iaW5lTGF0ZXN0LCBtYXAsIFJlcGxheVN1YmplY3QsIHN0YXJ0V2l0aCwgc3dpdGNoTWFwLCB0aW1lcn0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7XG4gICAgVFVJX0RBVEFfTElTVF9IT1NULFxuICAgIHR1aUFzRGF0YUxpc3RBY2Nlc3NvcixcbiAgICB0eXBlIFR1aURhdGFMaXN0QWNjZXNzb3IsXG59IGZyb20gJy4vZGF0YS1saXN0LnRva2Vucyc7XG5pbXBvcnQge1R1aU9wdGlvbldpdGhWYWx1ZX0gZnJvbSAnLi9vcHRpb24vb3B0aW9uLmRpcmVjdGl2ZSc7XG5pbXBvcnQge1RVSV9PUFRJT05fQ09OVEVOVCwgVHVpV2l0aE9wdGlvbkNvbnRlbnR9IGZyb20gJy4vb3B0aW9uL29wdGlvbi1jb250ZW50JztcbmltcG9ydCB7VHVpT3B0aW9ufSBmcm9tICcuL29wdGlvbi9vcHRpb24tbGVnYWN5LmNvbXBvbmVudCc7XG5cbmV4cG9ydCBmdW5jdGlvbiB0dWlJbmplY3REYXRhTGlzdFNpemUoKTogVHVpU2l6ZUwgfCBUdWlTaXplUyB7XG4gICAgY29uc3Qgc2l6ZXMgPSBbJ3MnLCAnbScsICdsJ10gYXMgY29uc3Q7XG4gICAgY29uc3Qgc2l6ZSA9IGluamVjdChUVUlfREFUQV9MSVNUX0hPU1QsIHtvcHRpb25hbDogdHJ1ZX0pPy5zaXplO1xuXG4gICAgcmV0dXJuIHNpemUgJiYgc2l6ZXMuaW5jbHVkZXMoc2l6ZSkgPyBzaXplIDogJ2wnO1xufVxuXG4vLyBUT0RPOiBDb25zaWRlciBhcmlhLWFjdGl2ZWRlc2NlbmRhbnQgZm9yIHByb3BlciBhY2Nlc3NpYmlsaXR5IGltcGxlbWVudGF0aW9uXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAndHVpLWRhdGEtbGlzdCcsXG4gICAgaW1wb3J0czogW05nSWYsIFBvbHltb3JwaGV1c091dGxldF0sXG4gICAgdGVtcGxhdGVVcmw6ICcuL2RhdGEtbGlzdC50ZW1wbGF0ZS5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9kYXRhLWxpc3Quc3R5bGUubGVzcyddLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHR1aUFzRGF0YUxpc3RBY2Nlc3NvcihUdWlEYXRhTGlzdENvbXBvbmVudCksXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IFRVSV9PUFRJT05fQ09OVEVOVCxcbiAgICAgICAgICAgIHVzZUZhY3Rvcnk6ICgpID0+XG4gICAgICAgICAgICAgICAgaW5qZWN0KFR1aVdpdGhPcHRpb25Db250ZW50LCB7b3B0aW9uYWw6IHRydWV9KT8uY29udGVudCA/P1xuICAgICAgICAgICAgICAgIC8vIFRPRE8odjUpOiByZW1vdmUgd2hlbiBhbGwgbGVnYWN5IGNvbnRyb2xzIGFyZSBkZWxldGVkXG4gICAgICAgICAgICAgICAgaW5qZWN0KFRVSV9PUFRJT05fQ09OVEVOVCwge1xuICAgICAgICAgICAgICAgICAgICBob3N0OiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICBza2lwU2VsZjogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgb3B0aW9uYWw6IHRydWUsXG4gICAgICAgICAgICAgICAgfSkgPz9cbiAgICAgICAgICAgICAgICBpbmplY3QoVFVJX09QVElPTl9DT05URU5ULCB7c2tpcFNlbGY6IHRydWUsIG9wdGlvbmFsOiB0cnVlfSksXG4gICAgICAgIH0sXG4gICAgXSxcbiAgICBob3N0OiB7XG4gICAgICAgIHJvbGU6ICdsaXN0Ym94JyxcbiAgICAgICAgJ1thdHRyLmRhdGEtc2l6ZV0nOiAnc2l6ZScsXG4gICAgICAgICcoZm9jdXNpbiknOiAnb25Gb2N1c0luKCRldmVudC5yZWxhdGVkVGFyZ2V0LCAkZXZlbnQuY3VycmVudFRhcmdldCknLFxuICAgICAgICAnKG1vdXNlZG93bi5wcmV2ZW50KSc6ICcoMCknLFxuICAgICAgICAnKHdoZWVsLnpvbmVsZXNzLnBhc3NpdmUpJzogJ2hhbmRsZUZvY3VzTG9zc0lmTmVjZXNzYXJ5KCknLFxuICAgICAgICAnKG1vdXNlbGVhdmUpJzogJ2hhbmRsZUZvY3VzTG9zc0lmTmVjZXNzYXJ5KCRldmVudC50YXJnZXQpJyxcbiAgICAgICAgJyhrZXlkb3duLnRhYiknOiAnaGFuZGxlRm9jdXNMb3NzSWZOZWNlc3NhcnkoKScsXG4gICAgICAgICcoa2V5ZG93bi5zaGlmdC50YWIpJzogJ2hhbmRsZUZvY3VzTG9zc0lmTmVjZXNzYXJ5KCknLFxuICAgICAgICAnKGtleWRvd24uYXJyb3dEb3duLnByZXZlbnQpJzogJ29uS2V5RG93bkFycm93KCRldmVudC50YXJnZXQsIDEpJyxcbiAgICAgICAgJyhrZXlkb3duLmFycm93VXAucHJldmVudCknOiAnb25LZXlEb3duQXJyb3coJGV2ZW50LnRhcmdldCwgLTEpJyxcbiAgICB9LFxufSlcbmV4cG9ydCBjbGFzcyBUdWlEYXRhTGlzdENvbXBvbmVudDxUPlxuICAgIGltcGxlbWVudHMgVHVpRGF0YUxpc3RBY2Nlc3NvcjxUPiwgQWZ0ZXJDb250ZW50Q2hlY2tlZCwgQWZ0ZXJDb250ZW50SW5pdFxue1xuICAgIC8vIFRPRE8odjUpOiBkZWxldGVcbiAgICBAQ29udGVudENoaWxkcmVuKGZvcndhcmRSZWYoKCkgPT4gVHVpT3B0aW9uKSwge2Rlc2NlbmRhbnRzOiB0cnVlfSlcbiAgICBwcml2YXRlIHJlYWRvbmx5IGxlZ2FjeU9wdGlvbnNRdWVyeTogUXVlcnlMaXN0PFR1aU9wdGlvbjxUPj4gPSBFTVBUWV9RVUVSWTtcblxuICAgIEBDb250ZW50Q2hpbGRyZW4oZm9yd2FyZFJlZigoKSA9PiBUdWlPcHRpb25XaXRoVmFsdWUpLCB7ZGVzY2VuZGFudHM6IHRydWV9KVxuICAgIHByaXZhdGUgcmVhZG9ubHkgb3B0aW9uc1F1ZXJ5OiBRdWVyeUxpc3Q8VHVpT3B0aW9uV2l0aFZhbHVlPFQ+PiA9IEVNUFRZX1FVRVJZO1xuXG4gICAgcHJpdmF0ZSBvcmlnaW4/OiBIVE1MRWxlbWVudDtcbiAgICBwcml2YXRlIHJlYWRvbmx5IG5nWm9uZSA9IGluamVjdChOZ1pvbmUpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGVsID0gdHVpSW5qZWN0RWxlbWVudCgpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgY2RyID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvbnRlbnRSZWFkeSQgPSBuZXcgUmVwbGF5U3ViamVjdDxib29sZWFuPigxKTtcblxuICAgIHByb3RlY3RlZCByZWFkb25seSBmYWxsYmFjayA9IHRvU2lnbmFsKGluamVjdChUVUlfTk9USElOR19GT1VORF9NRVNTQUdFKSk7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGVtcHR5ID0gc2lnbmFsKGZhbHNlKTtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGVtcHR5Q29udGVudDogUG9seW1vcnBoZXVzQ29udGVudDtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNpemUgPSB0dWlJbmplY3REYXRhTGlzdFNpemUoKTtcblxuICAgIC8vIFRPRE8odjUpOiB1c2Ugc2lnbmFsIGBjb250ZW50Q2hpbGRyZW5gXG4gICAgcHVibGljIHJlYWRvbmx5IG9wdGlvbnMgPSB0b1NpZ25hbDxyZWFkb25seSBUW10+KFxuICAgICAgICB0aGlzLmNvbnRlbnRSZWFkeSQucGlwZShcbiAgICAgICAgICAgIHN3aXRjaE1hcCgoKSA9PlxuICAgICAgICAgICAgICAgIGNvbWJpbmVMYXRlc3QoW1xuICAgICAgICAgICAgICAgICAgICB0dWlRdWVyeUxpc3RDaGFuZ2VzKHRoaXMubGVnYWN5T3B0aW9uc1F1ZXJ5KSxcbiAgICAgICAgICAgICAgICAgICAgdHVpUXVlcnlMaXN0Q2hhbmdlcyh0aGlzLm9wdGlvbnNRdWVyeSksXG4gICAgICAgICAgICAgICAgXSksXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgbWFwKChbbGVnYWN5T3B0aW9ucywgb3B0aW9uc10pID0+XG4gICAgICAgICAgICAgICAgW1xuICAgICAgICAgICAgICAgICAgICAuLi5sZWdhY3lPcHRpb25zLm1hcCgoe3ZhbHVlfSkgPT4gdmFsdWUpLFxuICAgICAgICAgICAgICAgICAgICAuLi5vcHRpb25zLm1hcCgoe3ZhbHVlfSkgPT4gdmFsdWUoKSksXG4gICAgICAgICAgICAgICAgXS5maWx0ZXIodHVpSXNQcmVzZW50KSxcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBzdGFydFdpdGgoW10pLFxuICAgICAgICApLFxuICAgICAgICB7cmVxdWlyZVN5bmM6IHRydWV9LFxuICAgICk7XG5cbiAgICBwdWJsaWMgb25LZXlEb3duQXJyb3coY3VycmVudDogSFRNTEVsZW1lbnQsIHN0ZXA6IG51bWJlcik6IHZvaWQge1xuICAgICAgICBjb25zdCB7ZWxlbWVudHN9ID0gdGhpcztcblxuICAgICAgICB0dWlNb3ZlRm9jdXMoZWxlbWVudHMuaW5kZXhPZihjdXJyZW50KSwgZWxlbWVudHMsIHN0ZXApO1xuICAgIH1cblxuICAgIHB1YmxpYyBoYW5kbGVGb2N1c0xvc3NJZk5lY2Vzc2FyeShlbGVtZW50OiBFbGVtZW50ID0gdGhpcy5lbCk6IHZvaWQge1xuICAgICAgICBpZiAodHVpSXNOYXRpdmVGb2N1c2VkSW4oZWxlbWVudCkpIHtcbiAgICAgICAgICAgIHRoaXMub3JpZ2luPy5mb2N1cyh7cHJldmVudFNjcm9sbDogdHJ1ZX0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jb250ZW50UmVhZHkkLm5leHQodHJ1ZSk7XG4gICAgfVxuXG4gICAgLy8gVE9ETzogUmVmYWN0b3IgdG8gOmhhcyBhZnRlciBTYWZhcmkgc3VwcG9ydCBidW1wZWQgdG8gMTVcbiAgICBwdWJsaWMgbmdBZnRlckNvbnRlbnRDaGVja2VkKCk6IHZvaWQge1xuICAgICAgICB0aW1lcigwKVxuICAgICAgICAgICAgLnBpcGUodHVpWm9uZWZyZWUodGhpcy5uZ1pvbmUpLCB0dWlUYWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuZW1wdHkuc2V0KCF0aGlzLmVsZW1lbnRzLmxlbmd0aCk7XG4gICAgICAgICAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLy8gVE9ETyh2NSk6IGRlbGV0ZVxuICAgIHB1YmxpYyBnZXRPcHRpb25zKGluY2x1ZGVEaXNhYmxlZCA9IGZhbHNlKTogcmVhZG9ubHkgVFtdIHtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIC4uLnRoaXMubGVnYWN5T3B0aW9uc1F1ZXJ5LCAvLyBUT0RPKHY1KTogZGVsZXRlXG4gICAgICAgICAgICAuLi50aGlzLm9wdGlvbnNRdWVyeSxcbiAgICAgICAgXVxuICAgICAgICAgICAgLmZpbHRlcigoe2Rpc2FibGVkfSkgPT4gaW5jbHVkZURpc2FibGVkIHx8ICFkaXNhYmxlZClcbiAgICAgICAgICAgIC5tYXAoKHt2YWx1ZX0pID0+IChpc1NpZ25hbCh2YWx1ZSkgPyB2YWx1ZSgpIDogdmFsdWUpKVxuICAgICAgICAgICAgLmZpbHRlcih0dWlJc1ByZXNlbnQpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBvbkZvY3VzSW4ocmVsYXRlZFRhcmdldDogSFRNTEVsZW1lbnQsIGN1cnJlbnRUYXJnZXQ6IEhUTUxFbGVtZW50KTogdm9pZCB7XG4gICAgICAgIGlmICghY3VycmVudFRhcmdldC5jb250YWlucyhyZWxhdGVkVGFyZ2V0KSAmJiAhdGhpcy5vcmlnaW4pIHtcbiAgICAgICAgICAgIHRoaXMub3JpZ2luID0gcmVsYXRlZFRhcmdldDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0IGVsZW1lbnRzKCk6IHJlYWRvbmx5IEhUTUxFbGVtZW50W10ge1xuICAgICAgICByZXR1cm4gQXJyYXkuZnJvbSh0aGlzLmVsLnF1ZXJ5U2VsZWN0b3JBbGwoJ1t0dWlPcHRpb25dJykpO1xuICAgIH1cbn1cbiIsIjxuZy1jb250ZW50IC8+XG48ZGl2XG4gICAgKm5nSWY9XCJlbXB0eSgpXCJcbiAgICBjbGFzcz1cInQtZW1wdHlcIlxuPlxuICAgIDxuZy1jb250YWluZXIgKnBvbHltb3JwaGV1c091dGxldD1cImVtcHR5Q29udGVudCB8fCBmYWxsYmFjaygpIGFzIHRleHRcIj5cbiAgICAgICAge3sgdGV4dCB9fVxuICAgIDwvbmctY29udGFpbmVyPlxuPC9kaXY+XG4iXX0=
145
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvY29tcG9uZW50cy9kYXRhLWxpc3QvZGF0YS1saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvY29tcG9uZW50cy9kYXRhLWxpc3QvZGF0YS1saXN0LnRlbXBsYXRlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ3JDLE9BQU8sRUFHSCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxlQUFlLEVBQ2YsVUFBVSxFQUNWLFVBQVUsRUFDVixNQUFNLEVBQ04sS0FBSyxFQUNMLFFBQVEsRUFDUixNQUFNLEVBRU4sTUFBTSxFQUNOLGlCQUFpQixHQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFDcEQsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQ3BELE9BQU8sRUFDSCxtQkFBbUIsRUFDbkIscUJBQXFCLEVBQ3JCLFdBQVcsR0FDZCxNQUFNLDJCQUEyQixDQUFDO0FBQ25DLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBQyxvQkFBb0IsRUFBRSxZQUFZLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUM3RSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFDL0QsT0FBTyxFQUFDLHlCQUF5QixFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFFaEUsT0FBTyxFQUEyQixrQkFBa0IsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQ3BGLE9BQU8sRUFBQyxhQUFhLEVBQUUsR0FBRyxFQUFFLGFBQWEsRUFBRSxTQUFTLEVBQUUsU0FBUyxF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b20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICAgIHR5cGUgQWZ0ZXJDb250ZW50Q2hlY2tlZCxcbiAgICB0eXBlIEFmdGVyQ29udGVudEluaXQsXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIENvbnRlbnRDaGlsZHJlbixcbiAgICBEZXN0cm95UmVmLFxuICAgIGZvcndhcmRSZWYsXG4gICAgaW5qZWN0LFxuICAgIElucHV0LFxuICAgIGlzU2lnbmFsLFxuICAgIE5nWm9uZSxcbiAgICB0eXBlIFF1ZXJ5TGlzdCxcbiAgICBzaWduYWwsXG4gICAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHt0b1NpZ25hbH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHtFTVBUWV9RVUVSWX0gZnJvbSAnQHRhaWdhLXVpL2Nkay9jb25zdGFudHMnO1xuaW1wb3J0IHtcbiAgICB0dWlRdWVyeUxpc3RDaGFuZ2VzLFxuICAgIHR1aVRha2VVbnRpbERlc3Ryb3llZCxcbiAgICB0dWlab25lZnJlZSxcbn0gZnJvbSAnQHRhaWdhLXVpL2Nkay9vYnNlcnZhYmxlcyc7XG5pbXBvcnQge3R1aUluamVjdEVsZW1lbnR9IGZyb20gJ0B0YWlnYS11aS9jZGsvdXRpbHMvZG9tJztcbmltcG9ydCB7dHVpSXNOYXRpdmVGb2N1c2VkSW4sIHR1aU1vdmVGb2N1c30gZnJvbSAnQHRhaWdhLXVpL2Nkay91dGlscy9mb2N1cyc7XG5pbXBvcnQge3R1aUlzUHJlc2VudH0gZnJvbSAnQHRhaWdhLXVpL2Nkay91dGlscy9taXNjZWxsYW5lb3VzJztcbmltcG9ydCB7VFVJX05PVEhJTkdfRk9VTkRfTUVTU0FHRX0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvdG9rZW5zJztcbmltcG9ydCB7dHlwZSBUdWlTaXplTCwgdHlwZSBUdWlTaXplU30gZnJvbSAnQHRhaWdhLXVpL2NvcmUvdHlwZXMnO1xuaW1wb3J0IHt0eXBlIFBvbHltb3JwaGV1c0NvbnRlbnQsIFBvbHltb3JwaGV1c091dGxldH0gZnJvbSAnQHRhaWdhLXVpL3BvbHltb3JwaGV1cyc7XG5pbXBvcnQge2NvbWJpbmVMYXRlc3QsIG1hcCwgUmVwbGF5U3ViamVjdCwgc3RhcnRXaXRoLCBzd2l0Y2hNYXAsIHRpbWVyfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHtcbiAgICBUVUlfREFUQV9MSVNUX0hPU1QsXG4gICAgdHVpQXNEYXRhTGlzdEFjY2Vzc29yLFxuICAgIHR5cGUgVHVpRGF0YUxpc3RBY2Nlc3Nvcixcbn0gZnJvbSAnLi9kYXRhLWxpc3QudG9rZW5zJztcbmltcG9ydCB7VHVpT3B0aW9uV2l0aFZhbHVlfSBmcm9tICcuL29wdGlvbi9vcHRpb24uZGlyZWN0aXZlJztcbmltcG9ydCB7VFVJX09QVElPTl9DT05URU5ULCBUdWlXaXRoT3B0aW9uQ29udGVudH0gZnJvbSAnLi9vcHRpb24vb3B0aW9uLWNvbnRlbnQnO1xuaW1wb3J0IHtUdWlPcHRpb259IGZyb20gJy4vb3B0aW9uL29wdGlvbi1sZWdhY3kuY29tcG9uZW50JztcblxuZXhwb3J0IGZ1bmN0aW9uIHR1aUluamVjdERhdGFMaXN0U2l6ZSgpOiBUdWlTaXplTCB8IFR1aVNpemVTIHtcbiAgICBjb25zdCBzaXplcyA9IFsncycsICdtJywgJ2wnXSBhcyBjb25zdDtcbiAgICBjb25zdCBzaXplID0gaW5qZWN0KFRVSV9EQVRBX0xJU1RfSE9TVCwge29wdGlvbmFsOiB0cnVlfSk/LnNpemU7XG5cbiAgICByZXR1cm4gc2l6ZSAmJiBzaXplcy5pbmNsdWRlcyhzaXplKSA/IHNpemUgOiAnbCc7XG59XG5cbi8vIFRPRE86IENvbnNpZGVyIGFyaWEtYWN0aXZlZGVzY2VuZGFudCBmb3IgcHJvcGVyIGFjY2Vzc2liaWxpdHkgaW1wbGVtZW50YXRpb25cbkBDb21wb25lbnQoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgc2VsZWN0b3I6ICd0dWktZGF0YS1saXN0JyxcbiAgICBpbXBvcnRzOiBbTmdJZiwgUG9seW1vcnBoZXVzT3V0bGV0XSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZGF0YS1saXN0LnRlbXBsYXRlLmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2RhdGEtbGlzdC5zdHlsZS5sZXNzJ10sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgdHVpQXNEYXRhTGlzdEFjY2Vzc29yKFR1aURhdGFMaXN0Q29tcG9uZW50KSxcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogVFVJX09QVElPTl9DT05URU5ULFxuICAgICAgICAgICAgdXNlRmFjdG9yeTogKCkgPT5cbiAgICAgICAgICAgICAgICBpbmplY3QoVHVpV2l0aE9wdGlvbkNvbnRlbnQsIHtvcHRpb25hbDogdHJ1ZX0pPy5jb250ZW50ID8/XG4gICAgICAgICAgICAgICAgLy8gVE9ETyh2NSk6IHJlbW92ZSB3aGVuIGFsbCBsZWdhY3kgY29udHJvbHMgYXJlIGRlbGV0ZWRcbiAgICAgICAgICAgICAgICBpbmplY3QoVFVJX09QVElPTl9DT05URU5ULCB7XG4gICAgICAgICAgICAgICAgICAgIGhvc3Q6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIHNraXBTZWxmOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICBvcHRpb25hbDogdHJ1ZSxcbiAgICAgICAgICAgICAgICB9KSA/P1xuICAgICAgICAgICAgICAgIGluamVjdChUVUlfT1BUSU9OX0NPTlRFTlQsIHtza2lwU2VsZjogdHJ1ZSwgb3B0aW9uYWw6IHRydWV9KSxcbiAgICAgICAgfSxcbiAgICBdLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgcm9sZTogJ2xpc3Rib3gnLFxuICAgICAgICAnW2F0dHIucm9sZV0nOiAncm9sZScsXG4gICAgICAgICdbYXR0ci5kYXRhLXNpemVdJzogJ3NpemUnLFxuICAgICAgICAnKGZvY3VzaW4pJzogJ29uRm9jdXNJbigkZXZlbnQucmVsYXRlZFRhcmdldCwgJGV2ZW50LmN1cnJlbnRUYXJnZXQpJyxcbiAgICAgICAgJyhtb3VzZWRvd24ucHJldmVudCknOiAnKDApJyxcbiAgICAgICAgJyh3aGVlbC56b25lbGVzcy5wYXNzaXZlKSc6ICdoYW5kbGVGb2N1c0xvc3NJZk5lY2Vzc2FyeSgpJyxcbiAgICAgICAgJyhtb3VzZWxlYXZlKSc6ICdoYW5kbGVGb2N1c0xvc3NJZk5lY2Vzc2FyeSgkZXZlbnQudGFyZ2V0KScsXG4gICAgICAgICcoa2V5ZG93bi50YWIpJzogJ2hhbmRsZUZvY3VzTG9zc0lmTmVjZXNzYXJ5KCknLFxuICAgICAgICAnKGtleWRvd24uc2hpZnQudGFiKSc6ICdoYW5kbGVGb2N1c0xvc3NJZk5lY2Vzc2FyeSgpJyxcbiAgICAgICAgJyhrZXlkb3duLmFycm93RG93bi5wcmV2ZW50KSc6ICdvbktleURvd25BcnJvdygkZXZlbnQudGFyZ2V0LCAxKScsXG4gICAgICAgICcoa2V5ZG93bi5hcnJvd1VwLnByZXZlbnQpJzogJ29uS2V5RG93bkFycm93KCRldmVudC50YXJnZXQsIC0xKScsXG4gICAgfSxcbn0pXG5leHBvcnQgY2xhc3MgVHVpRGF0YUxpc3RDb21wb25lbnQ8VD5cbiAgICBpbXBsZW1lbnRzIFR1aURhdGFMaXN0QWNjZXNzb3I8VD4sIEFmdGVyQ29udGVudENoZWNrZWQsIEFmdGVyQ29udGVudEluaXRcbntcbiAgICAvLyBUT0RPKHY1KTogZGVsZXRlXG4gICAgQENvbnRlbnRDaGlsZHJlbihmb3J3YXJkUmVmKCgpID0+IFR1aU9wdGlvbiksIHtkZXNjZW5kYW50czogdHJ1ZX0pXG4gICAgcHJpdmF0ZSByZWFkb25seSBsZWdhY3lPcHRpb25zUXVlcnk6IFF1ZXJ5TGlzdDxUdWlPcHRpb248VD4+ID0gRU1QVFlfUVVFUlk7XG5cbiAgICBAQ29udGVudENoaWxkcmVuKGZvcndhcmRSZWYoKCkgPT4gVHVpT3B0aW9uV2l0aFZhbHVlKSwge2Rlc2NlbmRhbnRzOiB0cnVlfSlcbiAgICBwcml2YXRlIHJlYWRvbmx5IG9wdGlvbnNRdWVyeTogUXVlcnlMaXN0PFR1aU9wdGlvbldpdGhWYWx1ZTxUPj4gPSBFTVBUWV9RVUVSWTtcblxuICAgIHByaXZhdGUgb3JpZ2luPzogSFRNTEVsZW1lbnQ7XG4gICAgcHJpdmF0ZSByZWFkb25seSBuZ1pvbmUgPSBpbmplY3QoTmdab25lKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG4gICAgcHJpdmF0ZSByZWFkb25seSBlbCA9IHR1aUluamVjdEVsZW1lbnQoKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNkciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG4gICAgcHJpdmF0ZSByZWFkb25seSBjb250ZW50UmVhZHkkID0gbmV3IFJlcGxheVN1YmplY3Q8Ym9vbGVhbj4oMSk7XG5cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgZmFsbGJhY2sgPSB0b1NpZ25hbChpbmplY3QoVFVJX05PVEhJTkdfRk9VTkRfTUVTU0FHRSkpO1xuICAgIHByb3RlY3RlZCByZWFkb25seSBlbXB0eSA9IHNpZ25hbChmYWxzZSk7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBlbXB0eUNvbnRlbnQ6IFBvbHltb3JwaGV1c0NvbnRlbnQ7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzaXplID0gdHVpSW5qZWN0RGF0YUxpc3RTaXplKCk7XG5cbiAgICAvLyBUT0RPKHY1KTogdXNlIHNpZ25hbCBgY29udGVudENoaWxkcmVuYFxuICAgIHB1YmxpYyByZWFkb25seSBvcHRpb25zID0gdG9TaWduYWw8cmVhZG9ubHkgVFtdPihcbiAgICAgICAgdGhpcy5jb250ZW50UmVhZHkkLnBpcGUoXG4gICAgICAgICAgICBzd2l0Y2hNYXAoKCkgPT5cbiAgICAgICAgICAgICAgICBjb21iaW5lTGF0ZXN0KFtcbiAgICAgICAgICAgICAgICAgICAgdHVpUXVlcnlMaXN0Q2hhbmdlcyh0aGlzLmxlZ2FjeU9wdGlvbnNRdWVyeSksXG4gICAgICAgICAgICAgICAgICAgIHR1aVF1ZXJ5TGlzdENoYW5nZXModGhpcy5vcHRpb25zUXVlcnkpLFxuICAgICAgICAgICAgICAgIF0pLFxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIG1hcCgoW2xlZ2FjeU9wdGlvbnMsIG9wdGlvbnNdKSA9PlxuICAgICAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgICAgICAgLi4ubGVnYWN5T3B0aW9ucy5tYXAoKHt2YWx1ZX0pID0+IHZhbHVlKSxcbiAgICAgICAgICAgICAgICAgICAgLi4ub3B0aW9ucy5tYXAoKHt2YWx1ZX0pID0+IHZhbHVlKCkpLFxuICAgICAgICAgICAgICAgIF0uZmlsdGVyKHR1aUlzUHJlc2VudCksXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgc3RhcnRXaXRoKFtdKSxcbiAgICAgICAgKSxcbiAgICAgICAge3JlcXVpcmVTeW5jOiB0cnVlfSxcbiAgICApO1xuXG4gICAgcHVibGljIG9uS2V5RG93bkFycm93KGN1cnJlbnQ6IEhUTUxFbGVtZW50LCBzdGVwOiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qge2VsZW1lbnRzfSA9IHRoaXM7XG5cbiAgICAgICAgdHVpTW92ZUZvY3VzKGVsZW1lbnRzLmluZGV4T2YoY3VycmVudCksIGVsZW1lbnRzLCBzdGVwKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgaGFuZGxlRm9jdXNMb3NzSWZOZWNlc3NhcnkoZWxlbWVudDogRWxlbWVudCA9IHRoaXMuZWwpOiB2b2lkIHtcbiAgICAgICAgaWYgKHR1aUlzTmF0aXZlRm9jdXNlZEluKGVsZW1lbnQpKSB7XG4gICAgICAgICAgICB0aGlzLm9yaWdpbj8uZm9jdXMoe3ByZXZlbnRTY3JvbGw6IHRydWV9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY29udGVudFJlYWR5JC5uZXh0KHRydWUpO1xuICAgIH1cblxuICAgIC8vIFRPRE86IFJlZmFjdG9yIHRvIDpoYXMgYWZ0ZXIgU2FmYXJpIHN1cHBvcnQgYnVtcGVkIHRvIDE1XG4gICAgcHVibGljIG5nQWZ0ZXJDb250ZW50Q2hlY2tlZCgpOiB2b2lkIHtcbiAgICAgICAgdGltZXIoMClcbiAgICAgICAgICAgIC5waXBlKHR1aVpvbmVmcmVlKHRoaXMubmdab25lKSwgdHVpVGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZikpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmVtcHR5LnNldCghdGhpcy5lbGVtZW50cy5sZW5ndGgpO1xuICAgICAgICAgICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8vIFRPRE8odjUpOiBkZWxldGVcbiAgICBwdWJsaWMgZ2V0T3B0aW9ucyhpbmNsdWRlRGlzYWJsZWQgPSBmYWxzZSk6IHJlYWRvbmx5IFRbXSB7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICAuLi50aGlzLmxlZ2FjeU9wdGlvbnNRdWVyeSwgLy8gVE9ETyh2NSk6IGRlbGV0ZVxuICAgICAgICAgICAgLi4udGhpcy5vcHRpb25zUXVlcnksXG4gICAgICAgIF1cbiAgICAgICAgICAgIC5maWx0ZXIoKHtkaXNhYmxlZH0pID0+IGluY2x1ZGVEaXNhYmxlZCB8fCAhZGlzYWJsZWQpXG4gICAgICAgICAgICAubWFwKCh7dmFsdWV9KSA9PiAoaXNTaWduYWwodmFsdWUpID8gdmFsdWUoKSA6IHZhbHVlKSlcbiAgICAgICAgICAgIC5maWx0ZXIodHVpSXNQcmVzZW50KTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IHJvbGUoKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgICAgIHJldHVybiB0aGlzLmVsLnBhcmVudEVsZW1lbnQ/LmNsb3Nlc3QoJ1tyb2xlPVwibWVudVwiXSxbcm9sZT1cImxpc3Rib3hcIl0nKVxuICAgICAgICAgICAgPyBudWxsXG4gICAgICAgICAgICA6IHRoaXMuZWwucm9sZTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb25Gb2N1c0luKHJlbGF0ZWRUYXJnZXQ6IEhUTUxFbGVtZW50LCBjdXJyZW50VGFyZ2V0OiBIVE1MRWxlbWVudCk6IHZvaWQge1xuICAgICAgICBpZiAoIWN1cnJlbnRUYXJnZXQuY29udGFpbnMocmVsYXRlZFRhcmdldCkgJiYgIXRoaXMub3JpZ2luKSB7XG4gICAgICAgICAgICB0aGlzLm9yaWdpbiA9IHJlbGF0ZWRUYXJnZXQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGdldCBlbGVtZW50cygpOiByZWFkb25seSBIVE1MRWxlbWVudFtdIHtcbiAgICAgICAgcmV0dXJuIEFycmF5LmZyb20odGhpcy5lbC5xdWVyeVNlbGVjdG9yQWxsKCdbdHVpT3B0aW9uXScpKTtcbiAgICB9XG59XG4iLCI8bmctY29udGVudCAvPlxuPGRpdlxuICAgICpuZ0lmPVwiZW1wdHkoKVwiXG4gICAgY2xhc3M9XCJ0LWVtcHR5XCJcbj5cbiAgICA8bmctY29udGFpbmVyICpwb2x5bW9ycGhldXNPdXRsZXQ9XCJlbXB0eUNvbnRlbnQgfHwgZmFsbGJhY2soKSBhcyB0ZXh0XCI+XG4gICAgICAgIHt7IHRleHQgfX1cbiAgICA8L25nLWNvbnRhaW5lcj5cbjwvZGl2PlxuIl19
@@ -61,7 +61,7 @@ class TuiRoot {
61
61
  : !this.isChildRoot;
62
62
  }
63
63
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiRoot, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
64
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiRoot, isStandalone: true, selector: "tui-root", host: { attributes: { "data-tui-version": "4.74.1" }, listeners: { "touchstart.passive.zoneless": "0", "document:fullscreenchange": "top.set(isTopLayer)" }, properties: { "style.--tui-duration.ms": "duration", "style.--tui-scroll-behavior": "reducedMotion ? \"auto\" : \"smooth\"", "class._mobile": "isMobileRes()" } }, hostDirectives: [{ directive: i1.TuiPlatform }, { directive: i2.TuiVisualViewport }, { directive: i3.TuiFontSize }, { directive: i4.TuiActiveZone }], ngImport: i0, template: "<div class=\"t-root-content\">\n <ng-content />\n</div>\n<ng-container *ngIf=\"top()\">\n <tui-scroll-controls\n *ngIf=\"scrollbars\"\n class=\"t-root-scrollbar\"\n />\n <tui-popups />\n <ng-content select=\"tuiOverContent\" />\n <tui-dialogs />\n <ng-content select=\"tuiOverDialogs\" />\n <tui-alerts />\n <ng-content select=\"tuiOverAlerts\" />\n <tui-dropdowns />\n <ng-content select=\"tuiOverDropdowns\" />\n <tui-hints />\n <ng-content select=\"tuiOverHints\" />\n</ng-container>\n", styles: ["@keyframes tuiSkeletonVibe{to{opacity:.5}}@keyframes tuiPresent{to{opacity:.99999}}@keyframes tuiFade{0%{opacity:0}}@keyframes tuiSlide{0%{transform:var(--tui-from, translateY(100%))}}@keyframes tuiScale{0%{transform:scale(var(--tui-scale, 0))}}@keyframes tuiCollapse{0%{grid-template-rows:0fr}to{grid-template-rows:1fr}}.tui-enter,.tui-leave{animation-duration:var(--tui-duration);animation-timing-function:ease-in-out;pointer-events:none}.tui-leave{animation-direction:reverse}\n", ".tui-zero-scrollbar{scrollbar-width:none;-ms-overflow-style:none}.tui-zero-scrollbar::-webkit-scrollbar,.tui-zero-scrollbar::-webkit-scrollbar-thumb{display:none}body,input{margin:0}tui-root{position:relative;display:block;font:var(--tui-font-text-s);color:var(--tui-text-primary);flex:1;border-image:conic-gradient(var(--tui-background-base) 0 0) fill 0/0/0 0 100vh 0;-webkit-tap-highlight-color:transparent}:root{--tui-inline-start: left;--tui-inline-end: right;--tui-inline: 1}[dir=rtl]{--tui-inline-start: right;--tui-inline-end: left;--tui-inline: -1}tui-root>.t-root-scrollbar{position:fixed;top:0;left:0;bottom:0;right:0;z-index:0;display:none;margin:0}[data-tui-theme] tui-root>.t-root-scrollbar{display:block}.t-root-content{position:relative;top:var(--t-root-top);block-size:100%;isolation:isolate}.t-root-content>*{--t-root-top: 0}[tuiDropdownButton][tuiDropdownButton]{display:none}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: TuiAlerts, selector: "tui-alerts" }, { kind: "component", type: TuiDialogs, selector: "tui-dialogs" }, { kind: "component", type: TuiDropdowns, selector: "tui-dropdowns" }, { kind: "component", type: TuiHints, selector: "tui-hints" }, { kind: "component", type: TuiPopups, selector: "tui-popups" }, { kind: "component", type: TuiScrollControls, selector: "tui-scroll-controls" }], changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None }); }
64
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiRoot, isStandalone: true, selector: "tui-root", host: { attributes: { "data-tui-version": "4.75.0" }, listeners: { "touchstart.passive.zoneless": "0", "document:fullscreenchange": "top.set(isTopLayer)" }, properties: { "style.--tui-duration.ms": "duration", "style.--tui-scroll-behavior": "reducedMotion ? \"auto\" : \"smooth\"", "class._mobile": "isMobileRes()" } }, hostDirectives: [{ directive: i1.TuiPlatform }, { directive: i2.TuiVisualViewport }, { directive: i3.TuiFontSize }, { directive: i4.TuiActiveZone }], ngImport: i0, template: "<div class=\"t-root-content\">\n <ng-content />\n</div>\n<ng-container *ngIf=\"top()\">\n <tui-scroll-controls\n *ngIf=\"scrollbars\"\n class=\"t-root-scrollbar\"\n />\n <tui-popups />\n <ng-content select=\"tuiOverContent\" />\n <tui-dialogs />\n <ng-content select=\"tuiOverDialogs\" />\n <tui-alerts />\n <ng-content select=\"tuiOverAlerts\" />\n <tui-dropdowns />\n <ng-content select=\"tuiOverDropdowns\" />\n <tui-hints />\n <ng-content select=\"tuiOverHints\" />\n</ng-container>\n", styles: ["@keyframes tuiSkeletonVibe{to{opacity:.5}}@keyframes tuiPresent{to{opacity:.99999}}@keyframes tuiFade{0%{opacity:0}}@keyframes tuiSlide{0%{transform:var(--tui-from, translateY(100%))}}@keyframes tuiScale{0%{transform:scale(var(--tui-scale, 0))}}@keyframes tuiCollapse{0%{grid-template-rows:0fr}to{grid-template-rows:1fr}}.tui-enter,.tui-leave{animation-duration:var(--tui-duration);animation-timing-function:ease-in-out;pointer-events:none}.tui-leave{animation-direction:reverse}\n", ".tui-zero-scrollbar{scrollbar-width:none;-ms-overflow-style:none}.tui-zero-scrollbar::-webkit-scrollbar,.tui-zero-scrollbar::-webkit-scrollbar-thumb{display:none}body,input{margin:0}tui-root{position:relative;display:block;font:var(--tui-font-text-s);color:var(--tui-text-primary);flex:1;border-image:conic-gradient(var(--tui-background-base) 0 0) fill 0/0/0 0 100vh 0;-webkit-tap-highlight-color:transparent}:root{--tui-inline-start: left;--tui-inline-end: right;--tui-inline: 1}[dir=rtl]{--tui-inline-start: right;--tui-inline-end: left;--tui-inline: -1}tui-root>.t-root-scrollbar{position:fixed;top:0;left:0;bottom:0;right:0;z-index:0;display:none;margin:0}[data-tui-theme] tui-root>.t-root-scrollbar{display:block}.t-root-content{position:relative;top:var(--t-root-top);block-size:100%;isolation:isolate}.t-root-content>*{--t-root-top: 0}[tuiDropdownButton][tuiDropdownButton]{display:none}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: TuiAlerts, selector: "tui-alerts" }, { kind: "component", type: TuiDialogs, selector: "tui-dialogs" }, { kind: "component", type: TuiDropdowns, selector: "tui-dropdowns" }, { kind: "component", type: TuiHints, selector: "tui-hints" }, { kind: "component", type: TuiPopups, selector: "tui-popups" }, { kind: "component", type: TuiScrollControls, selector: "tui-scroll-controls" }], changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None }); }
65
65
  }
66
66
  export { TuiRoot };
67
67
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiRoot, decorators: [{