@taiga-ui/core 4.37.0 → 4.38.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -20,6 +20,7 @@ export declare class TuiTextfieldComponent<T> implements TuiDataListHost<T>, Aft
20
20
  private readonly open;
21
21
  private readonly focusedIn;
22
22
  private readonly contentReady$;
23
+ private readonly inputQuery;
23
24
  protected readonly label?: ElementRef<HTMLElement>;
24
25
  protected readonly control?: NgControl;
25
26
  protected readonly auxiliaryQuery: QueryList<object>;
@@ -34,7 +35,7 @@ export declare class TuiTextfieldComponent<T> implements TuiDataListHost<T>, Aft
34
35
  readonly focused: import("@angular/core").Signal<boolean>;
35
36
  readonly options: import("./textfield.options").TuiTextfieldOptions;
36
37
  readonly el: HTMLElement;
37
- readonly value: import("@angular/core").Signal<string>;
38
+ readonly value: import("@angular/core").WritableSignal<string>;
38
39
  readonly auxiliaries: import("@angular/core").Signal<readonly object[]>;
39
40
  set fillerSetter(filler: string);
40
41
  get id(): string;
@@ -19,7 +19,7 @@ export declare class TuiTextfieldBase<T> implements OnChanges, TuiTextfieldAcces
19
19
  protected readonly textfield: TuiTextfieldComponent<T>;
20
20
  readOnly: boolean;
21
21
  invalid: boolean | null;
22
- readonly value: import("@angular/core").Signal<string>;
22
+ readonly value: import("@angular/core").WritableSignal<string>;
23
23
  set focusedSetter(focused: boolean | null);
24
24
  set stateSetter(state: TuiInteractiveState | null);
25
25
  get mode(): string | null;
@@ -1,3 +1,4 @@
1
+ import type { AfterViewInit } from '@angular/core';
1
2
  import { TuiDropdownDirective } from './dropdown.directive';
2
3
  import * as i0 from "@angular/core";
3
4
  import * as i1 from "@taiga-ui/cdk/directives/active-zone";
@@ -6,11 +7,12 @@ import * as i1 from "@taiga-ui/cdk/directives/active-zone";
6
7
  * This component is used to show template in a portal
7
8
  * using default style of white rounded box with a shadow
8
9
  */
9
- export declare class TuiDropdownComponent {
10
+ export declare class TuiDropdownComponent implements AfterViewInit {
10
11
  private readonly el;
11
12
  private readonly accessor;
12
13
  private readonly viewport;
13
14
  private readonly vvs;
15
+ private readonly styles$;
14
16
  protected readonly animation: import("@angular/animations").AnimationOptions;
15
17
  protected readonly options: import("./dropdown-options.directive").TuiDropdownOptions;
16
18
  protected readonly directive: TuiDropdownDirective;
@@ -20,7 +22,7 @@ export declare class TuiDropdownComponent {
20
22
  };
21
23
  protected readonly position: "fixed" | "absolute";
22
24
  protected readonly theme: import("@angular/core").Signal<string | null | undefined>;
23
- protected readonly sub: import("rxjs").Subscription;
25
+ ngAfterViewInit(): void;
24
26
  protected readonly close: () => void;
25
27
  private getStyles;
26
28
  static ɵfac: i0.ɵɵFactoryDeclaration<TuiDropdownComponent, never>;
@@ -63,7 +63,7 @@ class TuiDialogComponent {
63
63
  }
64
64
  }
65
65
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiDialogComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
66
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiDialogComponent, isStandalone: true, selector: "tui-dialog", host: { properties: { "@tuiSlideInTop": "slideInTop()", "@tuiFadeIn": "slideInTop()", "attr.data-appearance": "context.appearance", "attr.data-size": "size", "class._centered": "header" } }, providers: [TuiDialogCloseService], ngImport: i0, template: "<header\n *ngIf=\"header\"\n class=\"t-header\"\n>\n <ng-container *polymorpheusOutlet=\"header as text; context: context\">\n {{ text }}\n </ng-container>\n</header>\n<div class=\"t-content\">\n <h2\n class=\"t-heading\"\n [class.t-heading_closable]=\"context.closeable && !header\"\n [id]=\"context.id\"\n [textContent]=\"context.label\"\n ></h2>\n <section>\n <ng-container *polymorpheusOutlet=\"context.content as text; context: context\">\n <div [innerHTML]=\"text\"></div>\n <div class=\"t-buttons\">\n <button\n size=\"m\"\n tuiAutoFocus\n tuiButton\n type=\"button\"\n (click)=\"context.$implicit.complete()\"\n >\n {{ context.data?.button || 'OK' }}\n </button>\n </div>\n </ng-container>\n </section>\n</div>\n<div class=\"t-filler\"></div>\n\n<!-- Close button is insensitive to `context.closeable === Observable<false>` by design -->\n<button\n *ngIf=\"context.closeable\"\n automation-id=\"tui-dialog__close\"\n tuiIconButton\n type=\"button\"\n class=\"t-close\"\n [appearance]=\"isMobile() ? 'icon' : 'neutral'\"\n [iconStart]=\"icons.close\"\n [size]=\"isMobile() ? 'xs' : 's'\"\n [style.border-radius.%]=\"100\"\n (click)=\"close$.next()\"\n (mousedown.prevent.zoneless)=\"(0)\"\n>\n {{ closeWord$ | async }}\n</button>\n", styles: [":host{position:relative;display:flex;font:var(--tui-font-text-m);flex-direction:column;box-sizing:border-box;margin:auto;border-radius:1.5rem;border:2.5rem solid transparent}:host:after{position:absolute;top:0;left:0;inline-size:100%;block-size:100%;content:\"\";border-radius:inherit;pointer-events:none;box-shadow:var(--tui-shadow-popup)}:host[data-size=auto]{inline-size:auto}:host[data-size=s]{inline-size:30rem}:host[data-size=s] .t-content{padding:1.5rem}:host[data-size=s] .t-heading{font:var(--tui-font-heading-5)}:host[data-size=m]{inline-size:42.5rem}:host[data-size=l]{inline-size:55rem}:host[data-size=fullscreen],:host[data-size=page]{min-inline-size:100vw;min-block-size:100%;border-radius:0;border:none;background:var(--tui-background-elevation-1);box-shadow:0 4rem var(--tui-background-elevation-1)}:host[data-size=fullscreen] .t-content,:host[data-size=page] .t-content{padding:3rem calc(50vw - 22.5rem)}:host[data-size=fullscreen] .t-heading,:host[data-size=page] .t-heading{font:var(--tui-font-heading-3)}:host._centered{text-align:center}:host :host-context(tui-root._mobile)[data-size]{min-inline-size:100%;inline-size:100%;max-inline-size:100%;border-radius:0;border:none;margin:auto 0 0}:host :host-context(tui-root._mobile)[data-size] .t-content{padding:1rem}:host :host-context(tui-root._mobile)[data-size] .t-heading{font:var(--tui-font-heading-5)}:host[data-size=page] .t-content,:host-context(tui-root._mobile) :host[data-size=page] .t-content{padding:0}.t-heading{margin:0 0 .5rem;overflow-wrap:break-word;font:var(--tui-font-heading-4)}.t-heading_closable{padding-inline-end:2rem}.t-heading:empty{display:none}.t-header{display:flex;border-top-left-radius:inherit;border-top-right-radius:inherit;overflow:hidden}:host[data-size=fullscreen] :host-context(tui-root._mobile) .t-header{flex:1}.t-content{border-radius:inherit;padding:1.75rem;background:var(--tui-background-elevation-1)}.t-content:not(:first-child){border-top-left-radius:0;border-top-right-radius:0}.t-content>section{border-radius:inherit}.t-filler{flex-grow:1}.t-close{transition-property:background;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;position:absolute;top:1rem;right:1rem}.t-buttons{margin-top:1.25rem;text-align:end}\n"], dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: PolymorpheusOutlet, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }, { kind: "directive", type: TuiAutoFocus, selector: "[tuiAutoFocus]", inputs: ["tuiAutoFocus"] }, { kind: "directive", type: TuiButton, selector: "a[tuiButton],button[tuiButton],a[tuiIconButton],button[tuiIconButton]", inputs: ["size"] }], animations: [tuiSlideInTop, tuiFadeIn], changeDetection: i0.ChangeDetectionStrategy.Default }); }
66
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiDialogComponent, isStandalone: true, selector: "tui-dialog", host: { properties: { "@tuiSlideInTop": "slideInTop()", "@tuiFadeIn": "slideInTop()", "attr.data-appearance": "context.appearance", "attr.data-size": "size", "class._centered": "header" } }, providers: [TuiDialogCloseService], ngImport: i0, template: "<header\n *ngIf=\"header\"\n class=\"t-header\"\n>\n <ng-container *polymorpheusOutlet=\"header as text; context: context\">\n {{ text }}\n </ng-container>\n</header>\n<div class=\"t-content\">\n <h2\n class=\"t-heading\"\n [class.t-heading_closable]=\"context.closeable && !header\"\n [id]=\"context.id\"\n [textContent]=\"context.label\"\n ></h2>\n <section>\n <ng-container *polymorpheusOutlet=\"context.content as text; context: context\">\n <div [innerHTML]=\"text\"></div>\n <div class=\"t-buttons\">\n <button\n size=\"m\"\n tuiAutoFocus\n tuiButton\n type=\"button\"\n (click)=\"context.$implicit.complete()\"\n >\n {{ context.data?.button || 'OK' }}\n </button>\n </div>\n </ng-container>\n </section>\n</div>\n<div class=\"t-filler\"></div>\n\n<!-- Close button is insensitive to `context.closeable === Observable<false>` by design -->\n<button\n *ngIf=\"context.closeable\"\n automation-id=\"tui-dialog__close\"\n tuiIconButton\n type=\"button\"\n class=\"t-close\"\n [appearance]=\"isMobile() ? 'icon' : 'neutral'\"\n [iconStart]=\"icons.close\"\n [size]=\"isMobile() ? 'xs' : 's'\"\n [style.border-radius.%]=\"100\"\n (click)=\"close$.next()\"\n (mousedown.prevent.zoneless)=\"(0)\"\n>\n {{ closeWord$ | async }}\n</button>\n", styles: [":host{position:relative;display:flex;font:var(--tui-font-text-m);flex-direction:column;box-sizing:border-box;margin:auto;border-radius:1.5rem;border:2.5rem solid transparent}:host:after{position:absolute;top:0;left:0;inline-size:100%;block-size:100%;content:\"\";border-radius:inherit;pointer-events:none;box-shadow:var(--tui-shadow-popup)}:host[data-size=auto]{inline-size:auto}:host[data-size=s]{inline-size:30rem}:host[data-size=s] .t-content{padding:1.5rem}:host[data-size=s] .t-heading{font:var(--tui-font-heading-5)}:host[data-size=m]{inline-size:42.5rem}:host[data-size=l]{inline-size:55rem}:host[data-size=fullscreen],:host[data-size=page]{min-inline-size:100vw;min-block-size:100%;border-radius:0;border:none;background:var(--tui-background-elevation-1);box-shadow:0 4rem var(--tui-background-elevation-1)}:host[data-size=fullscreen] .t-content,:host[data-size=page] .t-content{padding:3rem calc(50vw - 22.5rem)}:host[data-size=fullscreen] .t-heading,:host[data-size=page] .t-heading{font:var(--tui-font-heading-3)}:host._centered{text-align:center}:host :host-context(tui-root._mobile)[data-size]{min-inline-size:100%;inline-size:100%;max-inline-size:100%;border-radius:0;border:none;margin:auto 0 0;background:var(--tui-background-elevation-1);padding-bottom:env(safe-area-inset-bottom)}:host :host-context(tui-root._mobile)[data-size] .t-content{padding:1rem}:host :host-context(tui-root._mobile)[data-size] .t-heading{font:var(--tui-font-heading-5)}:host :host-context(tui-root._mobile)[data-size=fullscreen],:host :host-context(tui-root._mobile)[data-size=page]{padding:env(safe-area-inset-top) 0 env(safe-area-inset-bottom)}:host :host-context(tui-root._mobile)[data-size=fullscreen] .t-close,:host :host-context(tui-root._mobile)[data-size=page] .t-close{top:calc(1rem + env(safe-area-inset-top))}:host[data-size=page] .t-content,:host-context(tui-root._mobile) :host[data-size=page] .t-content{padding:0}.t-heading{margin:0 0 .5rem;overflow-wrap:break-word;font:var(--tui-font-heading-4)}.t-heading_closable{padding-inline-end:2rem}.t-heading:empty{display:none}.t-header{display:flex;border-top-left-radius:inherit;border-top-right-radius:inherit;overflow:hidden}:host[data-size=fullscreen] :host-context(tui-root._mobile) .t-header{flex:1}.t-content{border-radius:inherit;padding:1.75rem;background:var(--tui-background-elevation-1)}.t-content:not(:first-child){border-top-left-radius:0;border-top-right-radius:0}.t-content>section{border-radius:inherit}.t-filler{flex-grow:1}.t-close{transition-property:background;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;position:absolute;top:1rem;right:1rem}.t-buttons{margin-top:1.25rem;text-align:end}\n"], dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: PolymorpheusOutlet, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }, { kind: "directive", type: TuiAutoFocus, selector: "[tuiAutoFocus]", inputs: ["tuiAutoFocus"] }, { kind: "directive", type: TuiButton, selector: "a[tuiButton],button[tuiButton],a[tuiIconButton],button[tuiIconButton]", inputs: ["size"] }], animations: [tuiSlideInTop, tuiFadeIn], changeDetection: i0.ChangeDetectionStrategy.Default }); }
67
67
  }
68
68
  export { TuiDialogComponent };
69
69
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiDialogComponent, decorators: [{
@@ -74,6 +74,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
74
74
  '[attr.data-appearance]': 'context.appearance',
75
75
  '[attr.data-size]': 'size',
76
76
  '[class._centered]': 'header',
77
- }, template: "<header\n *ngIf=\"header\"\n class=\"t-header\"\n>\n <ng-container *polymorpheusOutlet=\"header as text; context: context\">\n {{ text }}\n </ng-container>\n</header>\n<div class=\"t-content\">\n <h2\n class=\"t-heading\"\n [class.t-heading_closable]=\"context.closeable && !header\"\n [id]=\"context.id\"\n [textContent]=\"context.label\"\n ></h2>\n <section>\n <ng-container *polymorpheusOutlet=\"context.content as text; context: context\">\n <div [innerHTML]=\"text\"></div>\n <div class=\"t-buttons\">\n <button\n size=\"m\"\n tuiAutoFocus\n tuiButton\n type=\"button\"\n (click)=\"context.$implicit.complete()\"\n >\n {{ context.data?.button || 'OK' }}\n </button>\n </div>\n </ng-container>\n </section>\n</div>\n<div class=\"t-filler\"></div>\n\n<!-- Close button is insensitive to `context.closeable === Observable<false>` by design -->\n<button\n *ngIf=\"context.closeable\"\n automation-id=\"tui-dialog__close\"\n tuiIconButton\n type=\"button\"\n class=\"t-close\"\n [appearance]=\"isMobile() ? 'icon' : 'neutral'\"\n [iconStart]=\"icons.close\"\n [size]=\"isMobile() ? 'xs' : 's'\"\n [style.border-radius.%]=\"100\"\n (click)=\"close$.next()\"\n (mousedown.prevent.zoneless)=\"(0)\"\n>\n {{ closeWord$ | async }}\n</button>\n", styles: [":host{position:relative;display:flex;font:var(--tui-font-text-m);flex-direction:column;box-sizing:border-box;margin:auto;border-radius:1.5rem;border:2.5rem solid transparent}:host:after{position:absolute;top:0;left:0;inline-size:100%;block-size:100%;content:\"\";border-radius:inherit;pointer-events:none;box-shadow:var(--tui-shadow-popup)}:host[data-size=auto]{inline-size:auto}:host[data-size=s]{inline-size:30rem}:host[data-size=s] .t-content{padding:1.5rem}:host[data-size=s] .t-heading{font:var(--tui-font-heading-5)}:host[data-size=m]{inline-size:42.5rem}:host[data-size=l]{inline-size:55rem}:host[data-size=fullscreen],:host[data-size=page]{min-inline-size:100vw;min-block-size:100%;border-radius:0;border:none;background:var(--tui-background-elevation-1);box-shadow:0 4rem var(--tui-background-elevation-1)}:host[data-size=fullscreen] .t-content,:host[data-size=page] .t-content{padding:3rem calc(50vw - 22.5rem)}:host[data-size=fullscreen] .t-heading,:host[data-size=page] .t-heading{font:var(--tui-font-heading-3)}:host._centered{text-align:center}:host :host-context(tui-root._mobile)[data-size]{min-inline-size:100%;inline-size:100%;max-inline-size:100%;border-radius:0;border:none;margin:auto 0 0}:host :host-context(tui-root._mobile)[data-size] .t-content{padding:1rem}:host :host-context(tui-root._mobile)[data-size] .t-heading{font:var(--tui-font-heading-5)}:host[data-size=page] .t-content,:host-context(tui-root._mobile) :host[data-size=page] .t-content{padding:0}.t-heading{margin:0 0 .5rem;overflow-wrap:break-word;font:var(--tui-font-heading-4)}.t-heading_closable{padding-inline-end:2rem}.t-heading:empty{display:none}.t-header{display:flex;border-top-left-radius:inherit;border-top-right-radius:inherit;overflow:hidden}:host[data-size=fullscreen] :host-context(tui-root._mobile) .t-header{flex:1}.t-content{border-radius:inherit;padding:1.75rem;background:var(--tui-background-elevation-1)}.t-content:not(:first-child){border-top-left-radius:0;border-top-right-radius:0}.t-content>section{border-radius:inherit}.t-filler{flex-grow:1}.t-close{transition-property:background;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;position:absolute;top:1rem;right:1rem}.t-buttons{margin-top:1.25rem;text-align:end}\n"] }]
77
+ }, template: "<header\n *ngIf=\"header\"\n class=\"t-header\"\n>\n <ng-container *polymorpheusOutlet=\"header as text; context: context\">\n {{ text }}\n </ng-container>\n</header>\n<div class=\"t-content\">\n <h2\n class=\"t-heading\"\n [class.t-heading_closable]=\"context.closeable && !header\"\n [id]=\"context.id\"\n [textContent]=\"context.label\"\n ></h2>\n <section>\n <ng-container *polymorpheusOutlet=\"context.content as text; context: context\">\n <div [innerHTML]=\"text\"></div>\n <div class=\"t-buttons\">\n <button\n size=\"m\"\n tuiAutoFocus\n tuiButton\n type=\"button\"\n (click)=\"context.$implicit.complete()\"\n >\n {{ context.data?.button || 'OK' }}\n </button>\n </div>\n </ng-container>\n </section>\n</div>\n<div class=\"t-filler\"></div>\n\n<!-- Close button is insensitive to `context.closeable === Observable<false>` by design -->\n<button\n *ngIf=\"context.closeable\"\n automation-id=\"tui-dialog__close\"\n tuiIconButton\n type=\"button\"\n class=\"t-close\"\n [appearance]=\"isMobile() ? 'icon' : 'neutral'\"\n [iconStart]=\"icons.close\"\n [size]=\"isMobile() ? 'xs' : 's'\"\n [style.border-radius.%]=\"100\"\n (click)=\"close$.next()\"\n (mousedown.prevent.zoneless)=\"(0)\"\n>\n {{ closeWord$ | async }}\n</button>\n", styles: [":host{position:relative;display:flex;font:var(--tui-font-text-m);flex-direction:column;box-sizing:border-box;margin:auto;border-radius:1.5rem;border:2.5rem solid transparent}:host:after{position:absolute;top:0;left:0;inline-size:100%;block-size:100%;content:\"\";border-radius:inherit;pointer-events:none;box-shadow:var(--tui-shadow-popup)}:host[data-size=auto]{inline-size:auto}:host[data-size=s]{inline-size:30rem}:host[data-size=s] .t-content{padding:1.5rem}:host[data-size=s] .t-heading{font:var(--tui-font-heading-5)}:host[data-size=m]{inline-size:42.5rem}:host[data-size=l]{inline-size:55rem}:host[data-size=fullscreen],:host[data-size=page]{min-inline-size:100vw;min-block-size:100%;border-radius:0;border:none;background:var(--tui-background-elevation-1);box-shadow:0 4rem var(--tui-background-elevation-1)}:host[data-size=fullscreen] .t-content,:host[data-size=page] .t-content{padding:3rem calc(50vw - 22.5rem)}:host[data-size=fullscreen] .t-heading,:host[data-size=page] .t-heading{font:var(--tui-font-heading-3)}:host._centered{text-align:center}:host :host-context(tui-root._mobile)[data-size]{min-inline-size:100%;inline-size:100%;max-inline-size:100%;border-radius:0;border:none;margin:auto 0 0;background:var(--tui-background-elevation-1);padding-bottom:env(safe-area-inset-bottom)}:host :host-context(tui-root._mobile)[data-size] .t-content{padding:1rem}:host :host-context(tui-root._mobile)[data-size] .t-heading{font:var(--tui-font-heading-5)}:host :host-context(tui-root._mobile)[data-size=fullscreen],:host :host-context(tui-root._mobile)[data-size=page]{padding:env(safe-area-inset-top) 0 env(safe-area-inset-bottom)}:host :host-context(tui-root._mobile)[data-size=fullscreen] .t-close,:host :host-context(tui-root._mobile)[data-size=page] .t-close{top:calc(1rem + env(safe-area-inset-top))}:host[data-size=page] .t-content,:host-context(tui-root._mobile) :host[data-size=page] .t-content{padding:0}.t-heading{margin:0 0 .5rem;overflow-wrap:break-word;font:var(--tui-font-heading-4)}.t-heading_closable{padding-inline-end:2rem}.t-heading:empty{display:none}.t-header{display:flex;border-top-left-radius:inherit;border-top-right-radius:inherit;overflow:hidden}:host[data-size=fullscreen] :host-context(tui-root._mobile) .t-header{flex:1}.t-content{border-radius:inherit;padding:1.75rem;background:var(--tui-background-elevation-1)}.t-content:not(:first-child){border-top-left-radius:0;border-top-right-radius:0}.t-content>section{border-radius:inherit}.t-filler{flex-grow:1}.t-close{transition-property:background;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;position:absolute;top:1rem;right:1rem}.t-buttons{margin-top:1.25rem;text-align:end}\n"] }]
78
78
  }], ctorParameters: function () { return []; } });
79
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvY29tcG9uZW50cy9kaWFsb2cvZGlhbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvY29tcG9uZW50cy9kaWFsb2cvZGlhbG9nLnRlbXBsYXRlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxJQUFJLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUNoRCxPQUFPLEVBQUMsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDbkYsT0FBTyxFQUFDLGtCQUFrQixFQUFFLFFBQVEsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBQ3hFLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUVqRSxPQUFPLEVBQUMsU0FBUyxFQUFFLGFBQWEsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQ25FLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUMzRCxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUM3RCxPQUFPLEVBQ0gsb0JBQW9CLEVBQ3BCLGNBQWMsRUFDZCxnQkFBZ0IsR0FDbkIsTUFBTSx1QkFBdUIsQ0FBQztBQUMvQixPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFFcEQsT0FBTyxFQUFDLGFBQWEsRUFBRSxrQkFBa0IsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBRXpFLE9BQU8sRUFDSCxVQUFVLEVBQ1YsTUFBTSxFQUNOLFlBQVksRUFDWixHQUFHLEVBQ0gsS0FBSyxFQUNMLEVBQUUsRUFDRixPQUFPLEVBQ1AsU0FBUyxF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LEVBQUU7WUFDdkIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1NBQ2hEO2FBQU07WUFDSCxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztTQUNyQztJQUNMLENBQUM7K0dBN0RRLGtCQUFrQjttR0FBbEIsa0JBQWtCLHdQQVZoQixDQUFDLHFCQUFxQixDQUFDLDBCQ2pEdEMscWdEQWtEQSw4d0VEUGMsU0FBUyw4Q0FBRSxJQUFJLDZGQUFFLGtCQUFrQiw4SEFBRSxZQUFZLHFGQUFFLFNBQVMsc0hBTzFELENBQUMsYUFBYSxFQUFFLFNBQVMsQ0FBQzs7U0FTN0Isa0JBQWtCOzRGQUFsQixrQkFBa0I7a0JBbkI5QixTQUFTO2lDQUNNLElBQUksWUFDTixZQUFZLFdBQ2IsQ0FBQyxTQUFTLEVBQUUsSUFBSSxFQUFFLGtCQUFrQixFQUFFLFlBQVksRUFBRSxTQUFTLENBQUMsbUJBS3RELHVCQUF1QixDQUFDLE9BQU8sYUFDckMsQ0FBQyxxQkFBcUIsQ0FBQyxjQUN0QixDQUFDLGFBQWEsRUFBRSxTQUFTLENBQUMsUUFDaEM7d0JBQ0Ysa0JBQWtCLEVBQUUsY0FBYzt3QkFDbEMsY0FBYyxFQUFFLGNBQWM7d0JBQzlCLHdCQUF3QixFQUFFLG9CQUFvQjt3QkFDOUMsa0JBQWtCLEVBQUUsTUFBTTt3QkFDMUIsbUJBQW1CLEVBQUUsUUFBUTtxQkFDaEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0FzeW5jUGlwZSwgTmdJZn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgY29tcHV0ZWQsIGluamVjdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge3Rha2VVbnRpbERlc3Ryb3llZCwgdG9TaWduYWx9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7VFVJX1RSVUVfSEFORExFUn0gZnJvbSAnQHRhaWdhLXVpL2Nkay9jb25zdGFudHMnO1xuaW1wb3J0IHtUdWlBdXRvRm9jdXN9IGZyb20gJ0B0YWlnYS11aS9jZGsvZGlyZWN0aXZlcy9hdXRvLWZvY3VzJztcbmltcG9ydCB0eXBlIHtUdWlQb3BvdmVyfSBmcm9tICdAdGFpZ2EtdWkvY2RrL3NlcnZpY2VzJztcbmltcG9ydCB7dHVpRmFkZUluLCB0dWlTbGlkZUluVG9wfSBmcm9tICdAdGFpZ2EtdWkvY29yZS9hbmltYXRpb25zJztcbmltcG9ydCB7VHVpQnV0dG9ufSBmcm9tICdAdGFpZ2EtdWkvY29yZS9jb21wb25lbnRzL2J1dHRvbic7XG5pbXBvcnQge1R1aUJyZWFrcG9pbnRTZXJ2aWNlfSBmcm9tICdAdGFpZ2EtdWkvY29yZS9zZXJ2aWNlcyc7XG5pbXBvcnQge1xuICAgIFRVSV9BTklNQVRJT05TX1NQRUVELFxuICAgIFRVSV9DTE9TRV9XT1JELFxuICAgIFRVSV9DT01NT05fSUNPTlMsXG59IGZyb20gJ0B0YWlnYS11aS9jb3JlL3Rva2Vucyc7XG5pbXBvcnQge3R1aUdldER1cmF0aW9ufSBmcm9tICdAdGFpZ2EtdWkvY29yZS91dGlscyc7XG5pbXBvcnQgdHlwZSB7UG9seW1vcnBoZXVzQ29udGVudH0gZnJvbSAnQHRhaWdhLXVpL3BvbHltb3JwaGV1cyc7XG5pbXBvcnQge2luamVjdENvbnRleHQsIFBvbHltb3JwaGV1c091dGxldH0gZnJvbSAnQHRhaWdhLXVpL3BvbHltb3JwaGV1cyc7XG5pbXBvcnQgdHlwZSB7T2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1xuICAgIGV4aGF1c3RNYXAsXG4gICAgZmlsdGVyLFxuICAgIGlzT2JzZXJ2YWJsZSxcbiAgICBtYXAsXG4gICAgbWVyZ2UsXG4gICAgb2YsXG4gICAgU3ViamVjdCxcbiAgICBzd2l0Y2hNYXAsXG4gICAgdGFrZSxcbn0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB0eXBlIHtUdWlEaWFsb2dPcHRpb25zLCBUdWlEaWFsb2dTaXplfSBmcm9tICcuL2RpYWxvZy5pbnRlcmZhY2VzJztcbmltcG9ydCB7VFVJX0RJQUxPR1NfQ0xPU0V9IGZyb20gJy4vZGlhbG9nLnRva2Vucyc7XG5pbXBvcnQge1R1aURpYWxvZ0Nsb3NlU2VydmljZX0gZnJvbSAnLi9kaWFsb2ctY2xvc2Uuc2VydmljZSc7XG5cbmNvbnN0IFJFUVVJUkVEX0VSUk9SID0gbmV3IEVycm9yKCdSZXF1aXJlZCBkaWFsb2cgd2FzIGRpc21pc3NlZCcpO1xuXG5mdW5jdGlvbiB0b09ic2VydmFibGU8VD4odmFsdWVPclN0cmVhbTogT2JzZXJ2YWJsZTxUPiB8IFQpOiBPYnNlcnZhYmxlPFQ+IHtcbiAgICByZXR1cm4gaXNPYnNlcnZhYmxlKHZhbHVlT3JTdHJlYW0pID8gdmFsdWVPclN0cmVhbSA6IG9mKHZhbHVlT3JTdHJlYW0pO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAndHVpLWRpYWxvZycsXG4gICAgaW1wb3J0czogW0FzeW5jUGlwZSwgTmdJZiwgUG9seW1vcnBoZXVzT3V0bGV0LCBUdWlBdXRvRm9jdXMsIFR1aUJ1dHRvbl0sXG4gICAgdGVtcGxhdGVVcmw6ICcuL2RpYWxvZy50ZW1wbGF0ZS5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9kaWFsb2cuc3R5bGUubGVzcyddLFxuICAgIC8vIFNvIHdlIGRvbid0IGZvcmNlIE9uUHVzaCBvbiBkaWFsb2cgY29udGVudFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvcHJlZmVyLW9uLXB1c2gtY29tcG9uZW50LWNoYW5nZS1kZXRlY3Rpb25cbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LkRlZmF1bHQsXG4gICAgcHJvdmlkZXJzOiBbVHVpRGlhbG9nQ2xvc2VTZXJ2aWNlXSxcbiAgICBhbmltYXRpb25zOiBbdHVpU2xpZGVJblRvcCwgdHVpRmFkZUluXSxcbiAgICBob3N0OiB7XG4gICAgICAgICdbQHR1aVNsaWRlSW5Ub3BdJzogJ3NsaWRlSW5Ub3AoKScsXG4gICAgICAgICdbQHR1aUZhZGVJbl0nOiAnc2xpZGVJblRvcCgpJyxcbiAgICAgICAgJ1thdHRyLmRhdGEtYXBwZWFyYW5jZV0nOiAnY29udGV4dC5hcHBlYXJhbmNlJyxcbiAgICAgICAgJ1thdHRyLmRhdGEtc2l6ZV0nOiAnc2l6ZScsXG4gICAgICAgICdbY2xhc3MuX2NlbnRlcmVkXSc6ICdoZWFkZXInLFxuICAgIH0sXG59KVxuZXhwb3J0IGNsYXNzIFR1aURpYWxvZ0NvbXBvbmVudDxPLCBJPiB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBzcGVlZCA9IGluamVjdChUVUlfQU5JTUFUSU9OU19TUEVFRCk7XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IGFuaW1hdGlvbiA9IHtcbiAgICAgICAgdmFsdWU6ICcnLFxuICAgICAgICBwYXJhbXM6IHtcbiAgICAgICAgICAgIHN0YXJ0OiAnMi41cmVtJyxcbiAgICAgICAgICAgIGR1cmF0aW9uOiB0dWlHZXREdXJhdGlvbih0aGlzLnNwZWVkKSxcbiAgICAgICAgfSxcbiAgICB9IGFzIGNvbnN0O1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBmdWxsc2NyZWVuQW5pbWF0aW9uID0ge1xuICAgICAgICB2YWx1ZTogJycsXG4gICAgICAgIHBhcmFtczoge1xuICAgICAgICAgICAgc3RhcnQ6ICcxMDB2aCcsXG4gICAgICAgICAgICBkdXJhdGlvbjogdHVpR2V0RHVyYXRpb24odGhpcy5zcGVlZCksXG4gICAgICAgIH0sXG4gICAgfSBhcyBjb25zdDtcblxuICAgIHByb3RlY3RlZCByZWFkb25seSBjbG9zZSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICAgIHByb3RlY3RlZCByZWFkb25seSBjb250ZXh0ID0gaW5qZWN0Q29udGV4dDxUdWlQb3BvdmVyPFR1aURpYWxvZ09wdGlvbnM8ST4sIE8+PigpO1xuICAgIHByb3RlY3RlZCByZWFkb25seSBjbG9zZVdvcmQkID0gaW5qZWN0KFRVSV9DTE9TRV9XT1JEKTtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgaWNvbnMgPSBpbmplY3QoVFVJX0NPTU1PTl9JQ09OUyk7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHNsaWRlSW5Ub3AgPSBjb21wdXRlZCgoKSA9PlxuICAgICAgICB0aGlzLnNpemUgPT09ICdmdWxsc2NyZWVuJyB8fCB0aGlzLnNpemUgPT09ICdwYWdlJyB8fCB0aGlzLmlzTW9iaWxlKClcbiAgICAgICAgICAgID8gdGhpcy5mdWxsc2NyZWVuQW5pbWF0aW9uXG4gICAgICAgICAgICA6IHRoaXMuYW5pbWF0aW9uLFxuICAgICk7XG5cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgaXNNb2JpbGUgPSB0b1NpZ25hbChcbiAgICAgICAgaW5qZWN0KFR1aUJyZWFrcG9pbnRTZXJ2aWNlKS5waXBlKG1hcCgoYnJlYWtwb2ludCkgPT4gYnJlYWtwb2ludCA9PT0gJ21vYmlsZScpKSxcbiAgICApO1xuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIG1lcmdlKFxuICAgICAgICAgICAgdGhpcy5jbG9zZSQucGlwZShzd2l0Y2hNYXAoKCkgPT4gdG9PYnNlcnZhYmxlKHRoaXMuY29udGV4dC5jbG9zZWFibGUpKSksXG4gICAgICAgICAgICBpbmplY3QoVHVpRGlhbG9nQ2xvc2VTZXJ2aWNlKS5waXBlKFxuICAgICAgICAgICAgICAgIGV4aGF1c3RNYXAoKCkgPT4gdG9PYnNlcnZhYmxlKHRoaXMuY29udGV4dC5kaXNtaXNzaWJsZSkucGlwZSh0YWtlKDEpKSksXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgaW5qZWN0KFRVSV9ESUFMT0dTX0NMT1NFKS5waXBlKG1hcChUVUlfVFJVRV9IQU5ETEVSKSksXG4gICAgICAgIClcbiAgICAgICAgICAgIC5waXBlKGZpbHRlcihCb29sZWFuKSwgdGFrZVVudGlsRGVzdHJveWVkKCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmNsb3NlKCk7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IHNpemUoKTogVHVpRGlhbG9nU2l6ZSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbnRleHQuc2l6ZTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IGhlYWRlcigpOiBQb2x5bW9ycGhldXNDb250ZW50PFR1aVBvcG92ZXI8VHVpRGlhbG9nT3B0aW9uczxJPiwgTz4+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29udGV4dC5oZWFkZXI7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjbG9zZSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuY29udGV4dC5yZXF1aXJlZCkge1xuICAgICAgICAgICAgdGhpcy5jb250ZXh0LiRpbXBsaWNpdC5lcnJvcihSRVFVSVJFRF9FUlJPUik7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmNvbnRleHQuJGltcGxpY2l0LmNvbXBsZXRlKCk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCI8aGVhZGVyXG4gICAgKm5nSWY9XCJoZWFkZXJcIlxuICAgIGNsYXNzPVwidC1oZWFkZXJcIlxuPlxuICAgIDxuZy1jb250YWluZXIgKnBvbHltb3JwaGV1c091dGxldD1cImhlYWRlciBhcyB0ZXh0OyBjb250ZXh0OiBjb250ZXh0XCI+XG4gICAgICAgIHt7IHRleHQgfX1cbiAgICA8L25nLWNvbnRhaW5lcj5cbjwvaGVhZGVyPlxuPGRpdiBjbGFzcz1cInQtY29udGVudFwiPlxuICAgIDxoMlxuICAgICAgICBjbGFzcz1cInQtaGVhZGluZ1wiXG4gICAgICAgIFtjbGFzcy50LWhlYWRpbmdfY2xvc2FibGVdPVwiY29udGV4dC5jbG9zZWFibGUgJiYgIWhlYWRlclwiXG4gICAgICAgIFtpZF09XCJjb250ZXh0LmlkXCJcbiAgICAgICAgW3RleHRDb250ZW50XT1cImNvbnRleHQubGFiZWxcIlxuICAgID48L2gyPlxuICAgIDxzZWN0aW9uPlxuICAgICAgICA8bmctY29udGFpbmVyICpwb2x5bW9ycGhldXNPdXRsZXQ9XCJjb250ZXh0LmNvbnRlbnQgYXMgdGV4dDsgY29udGV4dDogY29udGV4dFwiPlxuICAgICAgICAgICAgPGRpdiBbaW5uZXJIVE1MXT1cInRleHRcIj48L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0LWJ1dHRvbnNcIj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIHNpemU9XCJtXCJcbiAgICAgICAgICAgICAgICAgICAgdHVpQXV0b0ZvY3VzXG4gICAgICAgICAgICAgICAgICAgIHR1aUJ1dHRvblxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImNvbnRleHQuJGltcGxpY2l0LmNvbXBsZXRlKClcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge3sgY29udGV4dC5kYXRhPy5idXR0b24gfHwgJ09LJyB9fVxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvc2VjdGlvbj5cbjwvZGl2PlxuPGRpdiBjbGFzcz1cInQtZmlsbGVyXCI+PC9kaXY+XG5cbjwhLS0gQ2xvc2UgYnV0dG9uIGlzIGluc2Vuc2l0aXZlIHRvIGBjb250ZXh0LmNsb3NlYWJsZSA9PT0gT2JzZXJ2YWJsZTxmYWxzZT5gIGJ5IGRlc2lnbiAtLT5cbjxidXR0b25cbiAgICAqbmdJZj1cImNvbnRleHQuY2xvc2VhYmxlXCJcbiAgICBhdXRvbWF0aW9uLWlkPVwidHVpLWRpYWxvZ19fY2xvc2VcIlxuICAgIHR1aUljb25CdXR0b25cbiAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICBjbGFzcz1cInQtY2xvc2VcIlxuICAgIFthcHBlYXJhbmNlXT1cImlzTW9iaWxlKCkgPyAnaWNvbicgOiAnbmV1dHJhbCdcIlxuICAgIFtpY29uU3RhcnRdPVwiaWNvbnMuY2xvc2VcIlxuICAgIFtzaXplXT1cImlzTW9iaWxlKCkgPyAneHMnIDogJ3MnXCJcbiAgICBbc3R5bGUuYm9yZGVyLXJhZGl1cy4lXT1cIjEwMFwiXG4gICAgKGNsaWNrKT1cImNsb3NlJC5uZXh0KClcIlxuICAgIChtb3VzZWRvd24ucHJldmVudC56b25lbGVzcyk9XCIoMClcIlxuPlxuICAgIHt7IGNsb3NlV29yZCQgfCBhc3luYyB9fVxuPC9idXR0b24+XG4iXX0=
79
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvY29tcG9uZW50cy9kaWFsb2cvZGlhbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvY29tcG9uZW50cy9kaWFsb2cvZGlhbG9nLnRlbXBsYXRlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxJQUFJLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUNoRCxPQUFPLEVBQUMsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDbkYsT0FBTyxFQUFDLGtCQUFrQixFQUFFLFFBQVEsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBQ3hFLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUVqRSxPQUFPLEVBQUMsU0FBUyxFQUFFLGFBQWEsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQ25FLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUMzRCxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUM3RCxPQUFPLEVBQ0gsb0JBQW9CLEVBQ3BCLGNBQWMsRUFDZCxnQkFBZ0IsR0FDbkIsTUFBTSx1QkFBdUIsQ0FBQztBQUMvQixPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFFcEQsT0FBTyxFQUFDLGFBQWEsRUFBRSxrQkFBa0IsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBRXpFLE9BQU8sRUFDSCxVQUFVLEVBQ1YsTUFBTSxFQUNOLFlBQVksRUFDWixHQUFHLEVBQ0gsS0FBSyxFQUNMLEVBQUUsRUFDRixPQUFPLEVBQ1AsU0FBUyxF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LEVBQUU7WUFDdkIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1NBQ2hEO2FBQU07WUFDSCxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztTQUNyQztJQUNMLENBQUM7K0dBN0RRLGtCQUFrQjttR0FBbEIsa0JBQWtCLHdQQVZoQixDQUFDLHFCQUFxQixDQUFDLDBCQ2pEdEMscWdEQWtEQSxxc0ZEUGMsU0FBUyw4Q0FBRSxJQUFJLDZGQUFFLGtCQUFrQiw4SEFBRSxZQUFZLHFGQUFFLFNBQVMsc0hBTzFELENBQUMsYUFBYSxFQUFFLFNBQVMsQ0FBQzs7U0FTN0Isa0JBQWtCOzRGQUFsQixrQkFBa0I7a0JBbkI5QixTQUFTO2lDQUNNLElBQUksWUFDTixZQUFZLFdBQ2IsQ0FBQyxTQUFTLEVBQUUsSUFBSSxFQUFFLGtCQUFrQixFQUFFLFlBQVksRUFBRSxTQUFTLENBQUMsbUJBS3RELHVCQUF1QixDQUFDLE9BQU8sYUFDckMsQ0FBQyxxQkFBcUIsQ0FBQyxjQUN0QixDQUFDLGFBQWEsRUFBRSxTQUFTLENBQUMsUUFDaEM7d0JBQ0Ysa0JBQWtCLEVBQUUsY0FBYzt3QkFDbEMsY0FBYyxFQUFFLGNBQWM7d0JBQzlCLHdCQUF3QixFQUFFLG9CQUFvQjt3QkFDOUMsa0JBQWtCLEVBQUUsTUFBTTt3QkFDMUIsbUJBQW1CLEVBQUUsUUFBUTtxQkFDaEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0FzeW5jUGlwZSwgTmdJZn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgY29tcHV0ZWQsIGluamVjdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge3Rha2VVbnRpbERlc3Ryb3llZCwgdG9TaWduYWx9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7VFVJX1RSVUVfSEFORExFUn0gZnJvbSAnQHRhaWdhLXVpL2Nkay9jb25zdGFudHMnO1xuaW1wb3J0IHtUdWlBdXRvRm9jdXN9IGZyb20gJ0B0YWlnYS11aS9jZGsvZGlyZWN0aXZlcy9hdXRvLWZvY3VzJztcbmltcG9ydCB0eXBlIHtUdWlQb3BvdmVyfSBmcm9tICdAdGFpZ2EtdWkvY2RrL3NlcnZpY2VzJztcbmltcG9ydCB7dHVpRmFkZUluLCB0dWlTbGlkZUluVG9wfSBmcm9tICdAdGFpZ2EtdWkvY29yZS9hbmltYXRpb25zJztcbmltcG9ydCB7VHVpQnV0dG9ufSBmcm9tICdAdGFpZ2EtdWkvY29yZS9jb21wb25lbnRzL2J1dHRvbic7XG5pbXBvcnQge1R1aUJyZWFrcG9pbnRTZXJ2aWNlfSBmcm9tICdAdGFpZ2EtdWkvY29yZS9zZXJ2aWNlcyc7XG5pbXBvcnQge1xuICAgIFRVSV9BTklNQVRJT05TX1NQRUVELFxuICAgIFRVSV9DTE9TRV9XT1JELFxuICAgIFRVSV9DT01NT05fSUNPTlMsXG59IGZyb20gJ0B0YWlnYS11aS9jb3JlL3Rva2Vucyc7XG5pbXBvcnQge3R1aUdldER1cmF0aW9ufSBmcm9tICdAdGFpZ2EtdWkvY29yZS91dGlscyc7XG5pbXBvcnQgdHlwZSB7UG9seW1vcnBoZXVzQ29udGVudH0gZnJvbSAnQHRhaWdhLXVpL3BvbHltb3JwaGV1cyc7XG5pbXBvcnQge2luamVjdENvbnRleHQsIFBvbHltb3JwaGV1c091dGxldH0gZnJvbSAnQHRhaWdhLXVpL3BvbHltb3JwaGV1cyc7XG5pbXBvcnQgdHlwZSB7T2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1xuICAgIGV4aGF1c3RNYXAsXG4gICAgZmlsdGVyLFxuICAgIGlzT2JzZXJ2YWJsZSxcbiAgICBtYXAsXG4gICAgbWVyZ2UsXG4gICAgb2YsXG4gICAgU3ViamVjdCxcbiAgICBzd2l0Y2hNYXAsXG4gICAgdGFrZSxcbn0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB0eXBlIHtUdWlEaWFsb2dPcHRpb25zLCBUdWlEaWFsb2dTaXplfSBmcm9tICcuL2RpYWxvZy5pbnRlcmZhY2VzJztcbmltcG9ydCB7VFVJX0RJQUxPR1NfQ0xPU0V9IGZyb20gJy4vZGlhbG9nLnRva2Vucyc7XG5pbXBvcnQge1R1aURpYWxvZ0Nsb3NlU2VydmljZX0gZnJvbSAnLi9kaWFsb2ctY2xvc2Uuc2VydmljZSc7XG5cbmNvbnN0IFJFUVVJUkVEX0VSUk9SID0gbmV3IEVycm9yKCdSZXF1aXJlZCBkaWFsb2cgd2FzIGRpc21pc3NlZCcpO1xuXG5mdW5jdGlvbiB0b09ic2VydmFibGU8VD4odmFsdWVPclN0cmVhbTogT2JzZXJ2YWJsZTxUPiB8IFQpOiBPYnNlcnZhYmxlPFQ+IHtcbiAgICByZXR1cm4gaXNPYnNlcnZhYmxlKHZhbHVlT3JTdHJlYW0pID8gdmFsdWVPclN0cmVhbSA6IG9mKHZhbHVlT3JTdHJlYW0pO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAndHVpLWRpYWxvZycsXG4gICAgaW1wb3J0czogW0FzeW5jUGlwZSwgTmdJZiwgUG9seW1vcnBoZXVzT3V0bGV0LCBUdWlBdXRvRm9jdXMsIFR1aUJ1dHRvbl0sXG4gICAgdGVtcGxhdGVVcmw6ICcuL2RpYWxvZy50ZW1wbGF0ZS5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9kaWFsb2cuc3R5bGUubGVzcyddLFxuICAgIC8vIFNvIHdlIGRvbid0IGZvcmNlIE9uUHVzaCBvbiBkaWFsb2cgY29udGVudFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvcHJlZmVyLW9uLXB1c2gtY29tcG9uZW50LWNoYW5nZS1kZXRlY3Rpb25cbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LkRlZmF1bHQsXG4gICAgcHJvdmlkZXJzOiBbVHVpRGlhbG9nQ2xvc2VTZXJ2aWNlXSxcbiAgICBhbmltYXRpb25zOiBbdHVpU2xpZGVJblRvcCwgdHVpRmFkZUluXSxcbiAgICBob3N0OiB7XG4gICAgICAgICdbQHR1aVNsaWRlSW5Ub3BdJzogJ3NsaWRlSW5Ub3AoKScsXG4gICAgICAgICdbQHR1aUZhZGVJbl0nOiAnc2xpZGVJblRvcCgpJyxcbiAgICAgICAgJ1thdHRyLmRhdGEtYXBwZWFyYW5jZV0nOiAnY29udGV4dC5hcHBlYXJhbmNlJyxcbiAgICAgICAgJ1thdHRyLmRhdGEtc2l6ZV0nOiAnc2l6ZScsXG4gICAgICAgICdbY2xhc3MuX2NlbnRlcmVkXSc6ICdoZWFkZXInLFxuICAgIH0sXG59KVxuZXhwb3J0IGNsYXNzIFR1aURpYWxvZ0NvbXBvbmVudDxPLCBJPiB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBzcGVlZCA9IGluamVjdChUVUlfQU5JTUFUSU9OU19TUEVFRCk7XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IGFuaW1hdGlvbiA9IHtcbiAgICAgICAgdmFsdWU6ICcnLFxuICAgICAgICBwYXJhbXM6IHtcbiAgICAgICAgICAgIHN0YXJ0OiAnMi41cmVtJyxcbiAgICAgICAgICAgIGR1cmF0aW9uOiB0dWlHZXREdXJhdGlvbih0aGlzLnNwZWVkKSxcbiAgICAgICAgfSxcbiAgICB9IGFzIGNvbnN0O1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBmdWxsc2NyZWVuQW5pbWF0aW9uID0ge1xuICAgICAgICB2YWx1ZTogJycsXG4gICAgICAgIHBhcmFtczoge1xuICAgICAgICAgICAgc3RhcnQ6ICcxMDB2aCcsXG4gICAgICAgICAgICBkdXJhdGlvbjogdHVpR2V0RHVyYXRpb24odGhpcy5zcGVlZCksXG4gICAgICAgIH0sXG4gICAgfSBhcyBjb25zdDtcblxuICAgIHByb3RlY3RlZCByZWFkb25seSBjbG9zZSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICAgIHByb3RlY3RlZCByZWFkb25seSBjb250ZXh0ID0gaW5qZWN0Q29udGV4dDxUdWlQb3BvdmVyPFR1aURpYWxvZ09wdGlvbnM8ST4sIE8+PigpO1xuICAgIHByb3RlY3RlZCByZWFkb25seSBjbG9zZVdvcmQkID0gaW5qZWN0KFRVSV9DTE9TRV9XT1JEKTtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgaWNvbnMgPSBpbmplY3QoVFVJX0NPTU1PTl9JQ09OUyk7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHNsaWRlSW5Ub3AgPSBjb21wdXRlZCgoKSA9PlxuICAgICAgICB0aGlzLnNpemUgPT09ICdmdWxsc2NyZWVuJyB8fCB0aGlzLnNpemUgPT09ICdwYWdlJyB8fCB0aGlzLmlzTW9iaWxlKClcbiAgICAgICAgICAgID8gdGhpcy5mdWxsc2NyZWVuQW5pbWF0aW9uXG4gICAgICAgICAgICA6IHRoaXMuYW5pbWF0aW9uLFxuICAgICk7XG5cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgaXNNb2JpbGUgPSB0b1NpZ25hbChcbiAgICAgICAgaW5qZWN0KFR1aUJyZWFrcG9pbnRTZXJ2aWNlKS5waXBlKG1hcCgoYnJlYWtwb2ludCkgPT4gYnJlYWtwb2ludCA9PT0gJ21vYmlsZScpKSxcbiAgICApO1xuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIG1lcmdlKFxuICAgICAgICAgICAgdGhpcy5jbG9zZSQucGlwZShzd2l0Y2hNYXAoKCkgPT4gdG9PYnNlcnZhYmxlKHRoaXMuY29udGV4dC5jbG9zZWFibGUpKSksXG4gICAgICAgICAgICBpbmplY3QoVHVpRGlhbG9nQ2xvc2VTZXJ2aWNlKS5waXBlKFxuICAgICAgICAgICAgICAgIGV4aGF1c3RNYXAoKCkgPT4gdG9PYnNlcnZhYmxlKHRoaXMuY29udGV4dC5kaXNtaXNzaWJsZSkucGlwZSh0YWtlKDEpKSksXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgaW5qZWN0KFRVSV9ESUFMT0dTX0NMT1NFKS5waXBlKG1hcChUVUlfVFJVRV9IQU5ETEVSKSksXG4gICAgICAgIClcbiAgICAgICAgICAgIC5waXBlKGZpbHRlcihCb29sZWFuKSwgdGFrZVVudGlsRGVzdHJveWVkKCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmNsb3NlKCk7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IHNpemUoKTogVHVpRGlhbG9nU2l6ZSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbnRleHQuc2l6ZTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IGhlYWRlcigpOiBQb2x5bW9ycGhldXNDb250ZW50PFR1aVBvcG92ZXI8VHVpRGlhbG9nT3B0aW9uczxJPiwgTz4+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29udGV4dC5oZWFkZXI7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjbG9zZSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuY29udGV4dC5yZXF1aXJlZCkge1xuICAgICAgICAgICAgdGhpcy5jb250ZXh0LiRpbXBsaWNpdC5lcnJvcihSRVFVSVJFRF9FUlJPUik7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmNvbnRleHQuJGltcGxpY2l0LmNvbXBsZXRlKCk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCI8aGVhZGVyXG4gICAgKm5nSWY9XCJoZWFkZXJcIlxuICAgIGNsYXNzPVwidC1oZWFkZXJcIlxuPlxuICAgIDxuZy1jb250YWluZXIgKnBvbHltb3JwaGV1c091dGxldD1cImhlYWRlciBhcyB0ZXh0OyBjb250ZXh0OiBjb250ZXh0XCI+XG4gICAgICAgIHt7IHRleHQgfX1cbiAgICA8L25nLWNvbnRhaW5lcj5cbjwvaGVhZGVyPlxuPGRpdiBjbGFzcz1cInQtY29udGVudFwiPlxuICAgIDxoMlxuICAgICAgICBjbGFzcz1cInQtaGVhZGluZ1wiXG4gICAgICAgIFtjbGFzcy50LWhlYWRpbmdfY2xvc2FibGVdPVwiY29udGV4dC5jbG9zZWFibGUgJiYgIWhlYWRlclwiXG4gICAgICAgIFtpZF09XCJjb250ZXh0LmlkXCJcbiAgICAgICAgW3RleHRDb250ZW50XT1cImNvbnRleHQubGFiZWxcIlxuICAgID48L2gyPlxuICAgIDxzZWN0aW9uPlxuICAgICAgICA8bmctY29udGFpbmVyICpwb2x5bW9ycGhldXNPdXRsZXQ9XCJjb250ZXh0LmNvbnRlbnQgYXMgdGV4dDsgY29udGV4dDogY29udGV4dFwiPlxuICAgICAgICAgICAgPGRpdiBbaW5uZXJIVE1MXT1cInRleHRcIj48L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0LWJ1dHRvbnNcIj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIHNpemU9XCJtXCJcbiAgICAgICAgICAgICAgICAgICAgdHVpQXV0b0ZvY3VzXG4gICAgICAgICAgICAgICAgICAgIHR1aUJ1dHRvblxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImNvbnRleHQuJGltcGxpY2l0LmNvbXBsZXRlKClcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge3sgY29udGV4dC5kYXRhPy5idXR0b24gfHwgJ09LJyB9fVxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvc2VjdGlvbj5cbjwvZGl2PlxuPGRpdiBjbGFzcz1cInQtZmlsbGVyXCI+PC9kaXY+XG5cbjwhLS0gQ2xvc2UgYnV0dG9uIGlzIGluc2Vuc2l0aXZlIHRvIGBjb250ZXh0LmNsb3NlYWJsZSA9PT0gT2JzZXJ2YWJsZTxmYWxzZT5gIGJ5IGRlc2lnbiAtLT5cbjxidXR0b25cbiAgICAqbmdJZj1cImNvbnRleHQuY2xvc2VhYmxlXCJcbiAgICBhdXRvbWF0aW9uLWlkPVwidHVpLWRpYWxvZ19fY2xvc2VcIlxuICAgIHR1aUljb25CdXR0b25cbiAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICBjbGFzcz1cInQtY2xvc2VcIlxuICAgIFthcHBlYXJhbmNlXT1cImlzTW9iaWxlKCkgPyAnaWNvbicgOiAnbmV1dHJhbCdcIlxuICAgIFtpY29uU3RhcnRdPVwiaWNvbnMuY2xvc2VcIlxuICAgIFtzaXplXT1cImlzTW9iaWxlKCkgPyAneHMnIDogJ3MnXCJcbiAgICBbc3R5bGUuYm9yZGVyLXJhZGl1cy4lXT1cIjEwMFwiXG4gICAgKGNsaWNrKT1cImNsb3NlJC5uZXh0KClcIlxuICAgIChtb3VzZWRvd24ucHJldmVudC56b25lbGVzcyk9XCIoMClcIlxuPlxuICAgIHt7IGNsb3NlV29yZCQgfCBhc3luYyB9fVxuPC9idXR0b24+XG4iXX0=
@@ -53,7 +53,7 @@ class TuiRoot {
53
53
  : !this.isChildRoot;
54
54
  }
55
55
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiRoot, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
56
- 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.37.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 }], ngImport: i0, template: "<div class=\"t-root-content\"><ng-content /></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 tuiPresent{to{content:\"\"}}@keyframes tuiSkeletonVibe{to{opacity:.5}}.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}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 }); }
56
+ 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.38.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 }], ngImport: i0, template: "<div class=\"t-root-content\"><ng-content /></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 tuiPresent{to{content:\"\"}}@keyframes tuiSkeletonVibe{to{opacity:.5}}.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}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 }); }
57
57
  }
58
58
  export { TuiRoot };
59
59
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiRoot, decorators: [{
@@ -4,9 +4,9 @@ import { toSignal } from '@angular/core/rxjs-interop';
4
4
  import { NgControl } from '@angular/forms';
5
5
  import { WaResizeObserver } from '@ng-web-apis/resize-observer';
6
6
  import { EMPTY_QUERY } from '@taiga-ui/cdk/constants';
7
- import { tuiControlValue, tuiQueryListChanges } from '@taiga-ui/cdk/observables';
7
+ import { tuiQueryListChanges } from '@taiga-ui/cdk/observables';
8
8
  import { tuiInjectId } from '@taiga-ui/cdk/services';
9
- import { tuiInjectElement } from '@taiga-ui/cdk/utils/dom';
9
+ import { tuiInjectElement, tuiValue } from '@taiga-ui/cdk/utils/dom';
10
10
  import { tuiFocusedIn } from '@taiga-ui/cdk/utils/focus';
11
11
  import { tuiPx } from '@taiga-ui/cdk/utils/miscellaneous';
12
12
  import { TuiButton, tuiButtonOptionsProvider } from '@taiga-ui/core/components/button';
@@ -17,7 +17,7 @@ import { TuiWithIcons } from '@taiga-ui/core/directives/icons';
17
17
  import { TuiWithItemsHandlers } from '@taiga-ui/core/directives/items-handlers';
18
18
  import { TUI_CLEAR_WORD, TUI_COMMON_ICONS } from '@taiga-ui/core/tokens';
19
19
  import { PolymorpheusOutlet } from '@taiga-ui/polymorpheus';
20
- import { fromEvent, map, merge, ReplaySubject, startWith, switchMap } from 'rxjs';
20
+ import { ReplaySubject, startWith, switchMap } from 'rxjs';
21
21
  import { TuiTextfieldDirective } from './textfield.directive';
22
22
  import { TUI_TEXTFIELD_OPTIONS } from './textfield.options';
23
23
  import { TUI_TEXTFIELD_ACCESSOR } from './textfield-accessor';
@@ -39,6 +39,7 @@ class TuiTextfieldComponent {
39
39
  this.open = tuiDropdownOpen();
40
40
  this.focusedIn = tuiFocusedIn(tuiInjectElement());
41
41
  this.contentReady$ = new ReplaySubject(1);
42
+ this.inputQuery = signal(undefined);
42
43
  this.auxiliaryQuery = EMPTY_QUERY;
43
44
  this.icons = inject(TUI_COMMON_ICONS);
44
45
  this.clear = toSignal(inject(TUI_CLEAR_WORD));
@@ -52,7 +53,7 @@ class TuiTextfieldComponent {
52
53
  this.focused = computed(() => this.open() || this.focusedIn());
53
54
  this.options = inject(TUI_TEXTFIELD_OPTIONS);
54
55
  this.el = tuiInjectElement();
55
- this.value = toSignal(merge(fromEvent(tuiInjectElement(), 'input'), this.contentReady$.pipe(switchMap(() => tuiControlValue(this.control ?? null)))).pipe(map(() => this.input?.nativeElement.value ?? '')), { initialValue: '' });
56
+ this.value = tuiValue(this.inputQuery);
56
57
  // TODO: Refactor to signal queries when Angular is updated
57
58
  this.auxiliaries = toSignal(this.contentReady$.pipe(switchMap(() => tuiQueryListChanges(this.auxiliaryQuery)), startWith([])), { requireSync: true });
58
59
  }
@@ -67,6 +68,7 @@ class TuiTextfieldComponent {
67
68
  }
68
69
  ngAfterContentInit() {
69
70
  this.contentReady$.next(true);
71
+ this.inputQuery.set(this.input);
70
72
  }
71
73
  handleOption(option) {
72
74
  this.accessor?.setValue(option);
@@ -93,7 +95,7 @@ class TuiTextfieldComponent {
93
95
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiTextfieldComponent, isStandalone: true, selector: "tui-textfield", inputs: { content: "content", fillerSetter: ["filler", "fillerSetter"] }, host: { listeners: { "mousedown": "onIconClick($event)" }, properties: { "attr.data-size": "options.size()", "class._with-label": "hasLabel", "class._with-template": "content", "class._disabled": "input?.nativeElement.disabled" } }, providers: [
94
96
  tuiButtonOptionsProvider({ size: 'xs', appearance: 'icon' }),
95
97
  tuiAsDataListHost(TuiTextfieldComponent),
96
- ], queries: [{ propertyName: "label", first: true, predicate: i0.forwardRef(function () { return TuiLabel; }), descendants: true, read: ElementRef }, { propertyName: "control", first: true, predicate: NgControl, descendants: true }, { propertyName: "accessor", first: true, predicate: TUI_TEXTFIELD_ACCESSOR, descendants: true }, { propertyName: "input", first: true, predicate: i0.forwardRef(function () { return TuiTextfieldDirective; }), descendants: true, read: ElementRef, static: true }, { propertyName: "auxiliaryQuery", predicate: TUI_AUXILIARY, descendants: true }], viewQueries: [{ propertyName: "vcr", first: true, predicate: ["vcr"], descendants: true, read: ViewContainerRef, static: true }], hostDirectives: [{ directive: i1.TuiDropdownDirective }, { directive: i1.TuiDropdownFixed }, { directive: i1.TuiWithDropdownOpen }, { directive: i2.TuiWithIcons }, { directive: i3.TuiWithItemsHandlers }, { directive: i4.TuiWithOptionContent }, { directive: i5.TuiWithTextfieldDropdown }], ngImport: i0, template: "<ng-content select=\"input\" />\n<ng-content select=\"select\" />\n<ng-content select=\"textarea\" />\n<ng-content select=\"label\" />\n<span\n class=\"t-content\"\n (mousedown.prevent)=\"input?.nativeElement?.focus()\"\n (waResizeObserver)=\"$event[0] && onResize($event[0])\"\n>\n <ng-content />\n <button\n *ngIf=\"options.cleaner()\"\n appearance=\"icon\"\n size=\"xs\"\n tabindex=\"-1\"\n tuiIconButton\n type=\"button\"\n class=\"t-clear\"\n [iconStart]=\"icons.close\"\n (click)=\"accessor?.setValue(null)\"\n (pointerdown.zoneless.prevent)=\"input?.nativeElement?.focus()\"\n >\n {{ clear() }}\n </button>\n <ng-container #vcr />\n <ng-content select=\"tui-icon\" />\n</span>\n<span\n *ngIf=\"control?.value != null\"\n class=\"t-template\"\n>\n <ng-container *polymorpheusOutlet=\"content as text; context: {$implicit: control?.value}\">\n {{ text }}\n </ng-container>\n</span>\n<input\n *ngIf=\"showFiller()\"\n aria-hidden=\"true\"\n disabled\n class=\"t-filler\"\n [value]=\"computedFiller()\"\n/>\n", styles: ["tui-textfield{scrollbar-width:none;-ms-overflow-style:none;transition-property:color;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;--t-height: var(--tui-height-l);--t-padding: var(--tui-padding-l);position:relative;display:flex;flex-wrap:wrap;align-items:center;cursor:pointer;min-block-size:var(--t-height);color:var(--tui-text-tertiary);padding:0 var(--t-padding);border-radius:var(--tui-radius-l);font:var(--tui-font-text-ui-m);box-sizing:border-box;gap:0 .25rem}tui-textfield::-webkit-scrollbar,tui-textfield::-webkit-scrollbar-thumb{display:none}tui-textfield[style*=\"--t-icon-start:\"]{--t-left: 2.25rem}tui-textfield[style*=\"--t-icon-end:\"]{--t-right: 2.25rem}tui-textfield::-webkit-resizer{border:.25rem solid transparent;inline-size:.5rem;block-size:.5rem;box-sizing:content-box;color:var(--tui-text-tertiary);background:linear-gradient(-45deg,transparent,transparent .125rem,currentColor .125rem,currentColor .1875rem,transparent .1875rem,transparent .25rem,currentColor .25rem,currentColor .3125rem,transparent .35rem);background-clip:content-box}tui-textfield label,tui-textfield>.t-content,tui-textfield>.t-template{pointer-events:none}tui-textfield input,tui-textfield select,tui-textfield textarea{font:var(--tui-font-text-ui-m);resize:none;padding-block-start:1.125rem;padding-block-end:1.125rem}tui-textfield[data-size=s]{--t-height: var(--tui-height-s);--t-padding: var(--tui-padding-s);border-radius:var(--tui-radius-m);gap:0;font:var(--tui-font-text-ui-s)}tui-textfield[data-size=s][style*=\"--t-icon-start:\"]{--t-left: 1.25rem}tui-textfield[data-size=s][style*=\"--t-icon-end:\"]{--t-right: 1.25rem}tui-textfield[data-size=s]:before{margin:0 .5rem 0 -.125rem;font-size:1rem}tui-textfield[data-size=s]:after{margin:0 -.175rem 0 .575rem;font-size:1rem}tui-textfield[data-size=s] input,tui-textfield[data-size=s] select,tui-textfield[data-size=s] textarea{font:var(--tui-font-text-ui-s);padding-block-start:.5rem;padding-block-end:.5rem}tui-textfield[data-size=s]>.t-content{margin-inline-end:-.325rem}tui-textfield[data-size=m]{--t-height: var(--tui-height-m);--t-padding: var(--tui-padding-m);border-radius:var(--tui-radius-m);font:var(--tui-font-text-ui-s)}tui-textfield[data-size=m][style*=\"--t-icon-start:\"]{--t-left: 1.75rem}tui-textfield[data-size=m][style*=\"--t-icon-end:\"]{--t-right: 1.75rem}tui-textfield[data-size=m]:before{margin:0 .125rem 0 -.125rem}tui-textfield[data-size=m]:after{margin:0 -.125rem 0 .25rem}tui-textfield[data-size=m] input,tui-textfield[data-size=m] select,tui-textfield[data-size=m] textarea{font:var(--tui-font-text-ui-s);padding-block-start:.875rem;padding-block-end:.875rem}tui-textfield[data-size=m]>.t-content{margin-inline-end:-.125rem}tui-textfield:hover{color:var(--tui-text-secondary)}tui-textfield:hover:has(input:read-only),tui-textfield:hover:has(textarea:read-only),tui-textfield:hover:has(select[data-mode~=readonly]){color:var(--tui-text-tertiary)}tui-textfield:before{z-index:1;margin-inline-end:.5rem}tui-textfield:has(:disabled:not(.t-filler,button,option)):before,tui-textfield:has(:disabled:not(.t-filler,button,option)):after,tui-textfield:has(:disabled:not(.t-filler,button,option))>.t-template{opacity:var(--tui-disabled-opacity)}tui-textfield._disabled:before,tui-textfield._disabled:after,tui-textfield._disabled>.t-template{opacity:var(--tui-disabled-opacity)}tui-textfield:has(label:not(:empty))>.t-template,tui-textfield:has(label:not(:empty)) input:not([type=range]),tui-textfield:has(label:not(:empty)) select:defined,tui-textfield:has(label:not(:empty)) textarea:defined{padding-block-start:calc(var(--t-height) / 3);padding-block-end:0}tui-textfield:has(label:not(:empty))>.t-template::placeholder,tui-textfield:has(label:not(:empty)) input:not([type=range])::placeholder,tui-textfield:has(label:not(:empty)) select:defined::placeholder,tui-textfield:has(label:not(:empty)) textarea:defined::placeholder,tui-textfield:has(label:not(:empty))>.t-template._empty,tui-textfield:has(label:not(:empty)) input:not([type=range])._empty,tui-textfield:has(label:not(:empty)) select:defined._empty,tui-textfield:has(label:not(:empty)) textarea:defined._empty{color:transparent}tui-textfield._with-label>.t-template,tui-textfield._with-label input:not([type=range]),tui-textfield._with-label select:defined,tui-textfield._with-label textarea:defined{padding-top:calc(var(--t-height) / 3);padding-block-end:0}tui-textfield._with-label>.t-template::placeholder,tui-textfield._with-label input:not([type=range])::placeholder,tui-textfield._with-label select:defined::placeholder,tui-textfield._with-label textarea:defined::placeholder,tui-textfield._with-label>.t-template._empty,tui-textfield._with-label input:not([type=range])._empty,tui-textfield._with-label select:defined._empty,tui-textfield._with-label textarea:defined._empty{color:transparent}tui-textfield>.t-template,tui-textfield input:defined,tui-textfield select:defined,tui-textfield textarea:defined{position:absolute;top:0;left:0;inline-size:100%;block-size:100%;-webkit-appearance:none;appearance:none;box-sizing:border-box;border-radius:inherit;border-width:0;overscroll-behavior:none;padding-inline-start:calc(var(--t-left, 0rem) + var(--t-padding));padding-inline-end:calc(var(--t-right, 0rem) + var(--t-side) + var(--t-padding))}tui-textfield>.t-template{display:flex;align-items:center;color:var(--tui-text-primary)}tui-textfield._with-template input:not([type=range]),tui-textfield._with-template select,tui-textfield._with-template textarea{color:transparent!important}tui-textfield input:not([type=range]),tui-textfield select:defined,tui-textfield textarea:defined{pointer-events:auto;background:transparent}tui-textfield input:not([type=range]):read-only~.t-filler,tui-textfield select:defined:read-only~.t-filler,tui-textfield textarea:defined:read-only~.t-filler{display:none}tui-textfield input:not([type=range]):disabled~label,tui-textfield select:defined:disabled~label,tui-textfield textarea:defined:disabled~label,tui-textfield input:not([type=range]):disabled~.t-content,tui-textfield select:defined:disabled~.t-content,tui-textfield textarea:defined:disabled~.t-content{opacity:var(--tui-disabled-opacity)}tui-textfield input:not([type=range]):disabled~label>tui-icon,tui-textfield select:defined:disabled~label>tui-icon,tui-textfield textarea:defined:disabled~label>tui-icon,tui-textfield input:not([type=range]):disabled~.t-content>tui-icon,tui-textfield select:defined:disabled~.t-content>tui-icon,tui-textfield textarea:defined:disabled~.t-content>tui-icon{display:none}tui-textfield input:not([type=range]):-webkit-autofill~label,tui-textfield select:defined:-webkit-autofill~label,tui-textfield textarea:defined:-webkit-autofill~label,tui-textfield input:not([type=range]):not(._empty):not(:placeholder-shown)~label,tui-textfield select:defined:not(._empty):not(:placeholder-shown)~label,tui-textfield textarea:defined:not(._empty):not(:placeholder-shown)~label{font-size:.83em;transform:translateY(-.7em)}tui-textfield input:not([type=range]):-webkit-autofill:not(:disabled)[data-mode~=invalid]~label,tui-textfield select:defined:-webkit-autofill:not(:disabled)[data-mode~=invalid]~label,tui-textfield textarea:defined:-webkit-autofill:not(:disabled)[data-mode~=invalid]~label,tui-textfield input:not([type=range]):not(._empty):not(:placeholder-shown):not(:disabled)[data-mode~=invalid]~label,tui-textfield select:defined:not(._empty):not(:placeholder-shown):not(:disabled)[data-mode~=invalid]~label,tui-textfield textarea:defined:not(._empty):not(:placeholder-shown):not(:disabled)[data-mode~=invalid]~label,tui-textfield input:not([type=range]):-webkit-autofill:invalid:not(:disabled):not([data-mode])~label,tui-textfield select:defined:-webkit-autofill:invalid:not(:disabled):not([data-mode])~label,tui-textfield textarea:defined:-webkit-autofill:invalid:not(:disabled):not([data-mode])~label,tui-textfield input:not([type=range]):not(._empty):not(:placeholder-shown):invalid:not(:disabled):not([data-mode])~label,tui-textfield select:defined:not(._empty):not(:placeholder-shown):invalid:not(:disabled):not([data-mode])~label,tui-textfield textarea:defined:not(._empty):not(:placeholder-shown):invalid:not(:disabled):not([data-mode])~label{color:var(--tui-text-negative)}tui-textfield input:not([type=range]):-webkit-autofill:not(:disabled):not([data-mode~=readonly])~.t-content .t-clear,tui-textfield select:defined:-webkit-autofill:not(:disabled):not([data-mode~=readonly])~.t-content .t-clear,tui-textfield textarea:defined:-webkit-autofill:not(:disabled):not([data-mode~=readonly])~.t-content .t-clear,tui-textfield input:not([type=range]):not(._empty):not(:placeholder-shown):not(:disabled):not([data-mode~=readonly])~.t-content .t-clear,tui-textfield select:defined:not(._empty):not(:placeholder-shown):not(:disabled):not([data-mode~=readonly])~.t-content .t-clear,tui-textfield textarea:defined:not(._empty):not(:placeholder-shown):not(:disabled):not([data-mode~=readonly])~.t-content .t-clear{display:flex}tui-textfield input:not([type=range]):not([data-mode~=readonly]):focus-visible:not([data-focus=false])::placeholder,tui-textfield select:defined:not([data-mode~=readonly]):focus-visible:not([data-focus=false])::placeholder,tui-textfield textarea:defined:not([data-mode~=readonly]):focus-visible:not([data-focus=false])::placeholder,tui-textfield input:not([type=range]):not([data-mode~=readonly]):focus-visible:not([data-focus=false])._empty,tui-textfield select:defined:not([data-mode~=readonly]):focus-visible:not([data-focus=false])._empty,tui-textfield textarea:defined:not([data-mode~=readonly]):focus-visible:not([data-focus=false])._empty{color:var(--tui-text-tertiary)}tui-textfield input:not([type=range]):not([data-mode~=readonly]):focus-visible:not([data-focus=false])~label,tui-textfield select:defined:not([data-mode~=readonly]):focus-visible:not([data-focus=false])~label,tui-textfield textarea:defined:not([data-mode~=readonly]):focus-visible:not([data-focus=false])~label{color:var(--tui-text-primary)!important;font-size:.83em;transform:translateY(-.7em)}tui-textfield input:not([type=range]):not([data-mode~=readonly])[data-focus=true]::placeholder,tui-textfield select:defined:not([data-mode~=readonly])[data-focus=true]::placeholder,tui-textfield textarea:defined:not([data-mode~=readonly])[data-focus=true]::placeholder,tui-textfield input:not([type=range]):not([data-mode~=readonly])[data-focus=true]._empty,tui-textfield select:defined:not([data-mode~=readonly])[data-focus=true]._empty,tui-textfield textarea:defined:not([data-mode~=readonly])[data-focus=true]._empty{color:var(--tui-text-tertiary)}tui-textfield input:not([type=range]):not([data-mode~=readonly])[data-focus=true]~label,tui-textfield select:defined:not([data-mode~=readonly])[data-focus=true]~label,tui-textfield textarea:defined:not([data-mode~=readonly])[data-focus=true]~label{color:var(--tui-text-primary)!important;font-size:.83em;transform:translateY(-.7em)}tui-textfield input:not([type=range]):not([data-mode~=readonly])[tuiWrapper]:not(._focused):has(:focus-visible)::placeholder,tui-textfield select:defined:not([data-mode~=readonly])[tuiWrapper]:not(._focused):has(:focus-visible)::placeholder,tui-textfield textarea:defined:not([data-mode~=readonly])[tuiWrapper]:not(._focused):has(:focus-visible)::placeholder,tui-textfield input:not([type=range]):not([data-mode~=readonly])[tuiWrapper]._focused::placeholder,tui-textfield select:defined:not([data-mode~=readonly])[tuiWrapper]._focused::placeholder,tui-textfield textarea:defined:not([data-mode~=readonly])[tuiWrapper]._focused::placeholder,tui-textfield input:not([type=range]):not([data-mode~=readonly])[tuiWrapper]:not(._focused):has(:focus-visible)._empty,tui-textfield select:defined:not([data-mode~=readonly])[tuiWrapper]:not(._focused):has(:focus-visible)._empty,tui-textfield textarea:defined:not([data-mode~=readonly])[tuiWrapper]:not(._focused):has(:focus-visible)._empty,tui-textfield input:not([type=range]):not([data-mode~=readonly])[tuiWrapper]._focused._empty,tui-textfield select:defined:not([data-mode~=readonly])[tuiWrapper]._focused._empty,tui-textfield textarea:defined:not([data-mode~=readonly])[tuiWrapper]._focused._empty{color:var(--tui-text-tertiary)}tui-textfield input:not([type=range]):not([data-mode~=readonly])[tuiWrapper]:not(._focused):has(:focus-visible)~label,tui-textfield select:defined:not([data-mode~=readonly])[tuiWrapper]:not(._focused):has(:focus-visible)~label,tui-textfield textarea:defined:not([data-mode~=readonly])[tuiWrapper]:not(._focused):has(:focus-visible)~label,tui-textfield input:not([type=range]):not([data-mode~=readonly])[tuiWrapper]._focused~label,tui-textfield select:defined:not([data-mode~=readonly])[tuiWrapper]._focused~label,tui-textfield textarea:defined:not([data-mode~=readonly])[tuiWrapper]._focused~label{color:var(--tui-text-primary)!important;font-size:.83em;transform:translateY(-.7em)}@supports (-webkit-touch-callout: none){tui-textfield input:not([type=range])._ios-fix,tui-textfield select:defined._ios-fix,tui-textfield textarea:defined._ios-fix{position:fixed;left:1000rem}}tui-textfield [tuiLabel][tuiLabel][tuiLabel]{transition-property:all;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;position:relative;display:block;flex:1;align-self:flex-start;font-size:inherit;line-height:var(--t-height)}tui-textfield label:defined,tui-textfield input:defined::placeholder,tui-textfield textarea:defined::placeholder,tui-textfield select:defined._empty{color:var(--tui-text-secondary)}tui-textfield select:not([data-mode~=readonly]){cursor:pointer}tui-textfield select option[value=\"\"]:disabled{color:transparent}tui-textfield select optgroup,tui-textfield select option{background-color:var(--tui-background-elevation-3)}tui-textfield select optgroup,tui-textfield select option:not(:disabled){color:var(--tui-text-primary)}tui-textfield button,tui-textfield a{pointer-events:auto}tui-textfield>.t-content{display:flex;block-size:var(--t-height);align-items:center;gap:inherit;margin-inline-start:auto;isolation:isolate;border-radius:inherit}tui-textfield>.t-content>tui-icon{pointer-events:auto}tui-textfield textarea~.t-content{min-inline-size:.5rem}tui-textfield .t-clear{z-index:1;display:none;pointer-events:auto}tui-textfield>.t-filler:defined{pointer-events:none;background:none;color:var(--tui-text-tertiary);opacity:1}tui-textfield [tuiFluidTypography]{font-weight:700}\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: WaResizeObserver, selector: "[waResizeObserver]", inputs: ["box"], outputs: ["waResizeObserver"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
98
+ ], queries: [{ propertyName: "label", first: true, predicate: i0.forwardRef(function () { return TuiLabel; }), descendants: true, read: ElementRef }, { propertyName: "control", first: true, predicate: NgControl, descendants: true }, { propertyName: "accessor", first: true, predicate: TUI_TEXTFIELD_ACCESSOR, descendants: true }, { propertyName: "input", first: true, predicate: i0.forwardRef(function () { return TuiTextfieldDirective; }), descendants: true, read: ElementRef, static: true }, { propertyName: "auxiliaryQuery", predicate: TUI_AUXILIARY, descendants: true }], viewQueries: [{ propertyName: "vcr", first: true, predicate: ["vcr"], descendants: true, read: ViewContainerRef, static: true }], hostDirectives: [{ directive: i1.TuiDropdownDirective }, { directive: i1.TuiDropdownFixed }, { directive: i1.TuiWithDropdownOpen }, { directive: i2.TuiWithIcons }, { directive: i3.TuiWithItemsHandlers }, { directive: i4.TuiWithOptionContent }, { directive: i5.TuiWithTextfieldDropdown }], ngImport: i0, template: "<ng-content select=\"input\" />\n<ng-content select=\"select\" />\n<ng-content select=\"textarea\" />\n<ng-content select=\"label\" />\n<span\n class=\"t-content\"\n (pointerdown.prevent)=\"input?.nativeElement?.focus()\"\n (waResizeObserver)=\"$event[0] && onResize($event[0])\"\n>\n <ng-content />\n <button\n *ngIf=\"options.cleaner()\"\n appearance=\"icon\"\n size=\"xs\"\n tabindex=\"-1\"\n tuiIconButton\n type=\"button\"\n class=\"t-clear\"\n [iconStart]=\"icons.close\"\n (click)=\"accessor?.setValue(null)\"\n (pointerdown.zoneless.prevent)=\"input?.nativeElement?.focus()\"\n >\n {{ clear() }}\n </button>\n <ng-container #vcr />\n <ng-content select=\"tui-icon\" />\n</span>\n<span\n *ngIf=\"control?.value != null\"\n class=\"t-template\"\n>\n <ng-container *polymorpheusOutlet=\"content as text; context: {$implicit: control?.value}\">\n {{ text }}\n </ng-container>\n</span>\n<input\n *ngIf=\"showFiller()\"\n aria-hidden=\"true\"\n disabled\n class=\"t-filler\"\n [value]=\"computedFiller()\"\n/>\n", styles: ["tui-textfield{scrollbar-width:none;-ms-overflow-style:none;transition-property:color;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;--t-height: var(--tui-height-l);--t-padding: var(--tui-padding-l);position:relative;display:flex;flex-wrap:wrap;align-items:center;cursor:pointer;min-block-size:var(--t-height);color:var(--tui-text-tertiary);padding:0 var(--t-padding);border-radius:var(--tui-radius-l);font:var(--tui-font-text-ui-m);box-sizing:border-box;gap:0 .25rem}tui-textfield::-webkit-scrollbar,tui-textfield::-webkit-scrollbar-thumb{display:none}tui-textfield[style*=\"--t-icon-start:\"]{--t-left: 2.25rem}tui-textfield[style*=\"--t-icon-end:\"]{--t-right: 2.25rem}tui-textfield::-webkit-resizer{border:.25rem solid transparent;inline-size:.5rem;block-size:.5rem;box-sizing:content-box;color:var(--tui-text-tertiary);background:linear-gradient(-45deg,transparent,transparent .125rem,currentColor .125rem,currentColor .1875rem,transparent .1875rem,transparent .25rem,currentColor .25rem,currentColor .3125rem,transparent .35rem);background-clip:content-box}tui-textfield label,tui-textfield>.t-content,tui-textfield>.t-template{pointer-events:none}tui-textfield input,tui-textfield select,tui-textfield textarea{font:var(--tui-font-text-ui-m);resize:none;padding-block-start:1.125rem;padding-block-end:1.125rem}tui-textfield[data-size=s]{--t-height: var(--tui-height-s);--t-padding: var(--tui-padding-s);border-radius:var(--tui-radius-m);gap:0;font:var(--tui-font-text-ui-s)}tui-textfield[data-size=s][style*=\"--t-icon-start:\"]{--t-left: 1.25rem}tui-textfield[data-size=s][style*=\"--t-icon-end:\"]{--t-right: 1.25rem}tui-textfield[data-size=s]:before{margin:0 .5rem 0 -.125rem;font-size:1rem}tui-textfield[data-size=s]:after{margin:0 -.175rem 0 .575rem;font-size:1rem}tui-textfield[data-size=s] input,tui-textfield[data-size=s] select,tui-textfield[data-size=s] textarea{font:var(--tui-font-text-ui-s);padding-block-start:.5rem;padding-block-end:.5rem}tui-textfield[data-size=s]>.t-content{margin-inline-end:-.325rem}tui-textfield[data-size=m]{--t-height: var(--tui-height-m);--t-padding: var(--tui-padding-m);border-radius:var(--tui-radius-m);font:var(--tui-font-text-ui-s)}tui-textfield[data-size=m][style*=\"--t-icon-start:\"]{--t-left: 1.75rem}tui-textfield[data-size=m][style*=\"--t-icon-end:\"]{--t-right: 1.75rem}tui-textfield[data-size=m]:before{margin:0 .125rem 0 -.125rem}tui-textfield[data-size=m]:after{margin:0 -.125rem 0 .25rem}tui-textfield[data-size=m] input,tui-textfield[data-size=m] select,tui-textfield[data-size=m] textarea{font:var(--tui-font-text-ui-s);padding-block-start:.875rem;padding-block-end:.875rem}tui-textfield[data-size=m]>.t-content{margin-inline-end:-.125rem}tui-textfield:hover{color:var(--tui-text-secondary)}tui-textfield:hover:has(input:read-only),tui-textfield:hover:has(textarea:read-only),tui-textfield:hover:has(select[data-mode~=readonly]){color:var(--tui-text-tertiary)}tui-textfield:before{z-index:1;margin-inline-end:.5rem}tui-textfield:has(:disabled:not(.t-filler,button,option)):before,tui-textfield:has(:disabled:not(.t-filler,button,option)):after,tui-textfield:has(:disabled:not(.t-filler,button,option))>.t-template{opacity:var(--tui-disabled-opacity)}tui-textfield._disabled:before,tui-textfield._disabled:after,tui-textfield._disabled>.t-template{opacity:var(--tui-disabled-opacity)}tui-textfield:has(label:not(:empty))>.t-template,tui-textfield:has(label:not(:empty)) input:not([type=range]),tui-textfield:has(label:not(:empty)) select:defined,tui-textfield:has(label:not(:empty)) textarea:defined{padding-block-start:calc(var(--t-height) / 3);padding-block-end:0}tui-textfield:has(label:not(:empty))>.t-template::placeholder,tui-textfield:has(label:not(:empty)) input:not([type=range])::placeholder,tui-textfield:has(label:not(:empty)) select:defined::placeholder,tui-textfield:has(label:not(:empty)) textarea:defined::placeholder,tui-textfield:has(label:not(:empty))>.t-template._empty,tui-textfield:has(label:not(:empty)) input:not([type=range])._empty,tui-textfield:has(label:not(:empty)) select:defined._empty,tui-textfield:has(label:not(:empty)) textarea:defined._empty{color:transparent}tui-textfield._with-label>.t-template,tui-textfield._with-label input:not([type=range]),tui-textfield._with-label select:defined,tui-textfield._with-label textarea:defined{padding-top:calc(var(--t-height) / 3);padding-block-end:0}tui-textfield._with-label>.t-template::placeholder,tui-textfield._with-label input:not([type=range])::placeholder,tui-textfield._with-label select:defined::placeholder,tui-textfield._with-label textarea:defined::placeholder,tui-textfield._with-label>.t-template._empty,tui-textfield._with-label input:not([type=range])._empty,tui-textfield._with-label select:defined._empty,tui-textfield._with-label textarea:defined._empty{color:transparent}tui-textfield>.t-template,tui-textfield input:defined,tui-textfield select:defined,tui-textfield textarea:defined{position:absolute;top:0;left:0;inline-size:100%;block-size:100%;-webkit-appearance:none;appearance:none;box-sizing:border-box;border-radius:inherit;border-width:0;overscroll-behavior:none;padding-inline-start:calc(var(--t-left, 0rem) + var(--t-padding));padding-inline-end:calc(var(--t-right, 0rem) + var(--t-side) + var(--t-padding))}tui-textfield>.t-template{display:flex;align-items:center;color:var(--tui-text-primary)}tui-textfield._with-template input:not([type=range]),tui-textfield._with-template select,tui-textfield._with-template textarea{color:transparent!important}tui-textfield input:not([type=range]),tui-textfield select:defined,tui-textfield textarea:defined{pointer-events:auto;background:transparent}tui-textfield input:not([type=range]):read-only~.t-filler,tui-textfield select:defined:read-only~.t-filler,tui-textfield textarea:defined:read-only~.t-filler{display:none}tui-textfield input:not([type=range]):disabled~label,tui-textfield select:defined:disabled~label,tui-textfield textarea:defined:disabled~label,tui-textfield input:not([type=range]):disabled~.t-content,tui-textfield select:defined:disabled~.t-content,tui-textfield textarea:defined:disabled~.t-content{opacity:var(--tui-disabled-opacity)}tui-textfield input:not([type=range]):disabled~label>tui-icon,tui-textfield select:defined:disabled~label>tui-icon,tui-textfield textarea:defined:disabled~label>tui-icon,tui-textfield input:not([type=range]):disabled~.t-content>tui-icon,tui-textfield select:defined:disabled~.t-content>tui-icon,tui-textfield textarea:defined:disabled~.t-content>tui-icon{display:none}tui-textfield input:not([type=range]):-webkit-autofill~label,tui-textfield select:defined:-webkit-autofill~label,tui-textfield textarea:defined:-webkit-autofill~label,tui-textfield input:not([type=range]):not(._empty):not(:placeholder-shown)~label,tui-textfield select:defined:not(._empty):not(:placeholder-shown)~label,tui-textfield textarea:defined:not(._empty):not(:placeholder-shown)~label{font-size:.83em;transform:translateY(-.7em)}tui-textfield input:not([type=range]):-webkit-autofill:not(:disabled)[data-mode~=invalid]~label,tui-textfield select:defined:-webkit-autofill:not(:disabled)[data-mode~=invalid]~label,tui-textfield textarea:defined:-webkit-autofill:not(:disabled)[data-mode~=invalid]~label,tui-textfield input:not([type=range]):not(._empty):not(:placeholder-shown):not(:disabled)[data-mode~=invalid]~label,tui-textfield select:defined:not(._empty):not(:placeholder-shown):not(:disabled)[data-mode~=invalid]~label,tui-textfield textarea:defined:not(._empty):not(:placeholder-shown):not(:disabled)[data-mode~=invalid]~label,tui-textfield input:not([type=range]):-webkit-autofill:invalid:not(:disabled):not([data-mode])~label,tui-textfield select:defined:-webkit-autofill:invalid:not(:disabled):not([data-mode])~label,tui-textfield textarea:defined:-webkit-autofill:invalid:not(:disabled):not([data-mode])~label,tui-textfield input:not([type=range]):not(._empty):not(:placeholder-shown):invalid:not(:disabled):not([data-mode])~label,tui-textfield select:defined:not(._empty):not(:placeholder-shown):invalid:not(:disabled):not([data-mode])~label,tui-textfield textarea:defined:not(._empty):not(:placeholder-shown):invalid:not(:disabled):not([data-mode])~label{color:var(--tui-text-negative)}tui-textfield input:not([type=range]):-webkit-autofill:not(:disabled):not([data-mode~=readonly])~.t-content .t-clear,tui-textfield select:defined:-webkit-autofill:not(:disabled):not([data-mode~=readonly])~.t-content .t-clear,tui-textfield textarea:defined:-webkit-autofill:not(:disabled):not([data-mode~=readonly])~.t-content .t-clear,tui-textfield input:not([type=range]):not(._empty):not(:placeholder-shown):not(:disabled):not([data-mode~=readonly])~.t-content .t-clear,tui-textfield select:defined:not(._empty):not(:placeholder-shown):not(:disabled):not([data-mode~=readonly])~.t-content .t-clear,tui-textfield textarea:defined:not(._empty):not(:placeholder-shown):not(:disabled):not([data-mode~=readonly])~.t-content .t-clear{display:flex}tui-textfield input:not([type=range]):not([data-mode~=readonly]):focus-visible:not([data-focus=false])::placeholder,tui-textfield select:defined:not([data-mode~=readonly]):focus-visible:not([data-focus=false])::placeholder,tui-textfield textarea:defined:not([data-mode~=readonly]):focus-visible:not([data-focus=false])::placeholder,tui-textfield input:not([type=range]):not([data-mode~=readonly]):focus-visible:not([data-focus=false])._empty,tui-textfield select:defined:not([data-mode~=readonly]):focus-visible:not([data-focus=false])._empty,tui-textfield textarea:defined:not([data-mode~=readonly]):focus-visible:not([data-focus=false])._empty{color:var(--tui-text-tertiary)}tui-textfield input:not([type=range]):not([data-mode~=readonly]):focus-visible:not([data-focus=false])~label,tui-textfield select:defined:not([data-mode~=readonly]):focus-visible:not([data-focus=false])~label,tui-textfield textarea:defined:not([data-mode~=readonly]):focus-visible:not([data-focus=false])~label{color:var(--tui-text-primary)!important;font-size:.83em;transform:translateY(-.7em)}tui-textfield input:not([type=range]):not([data-mode~=readonly])[data-focus=true]::placeholder,tui-textfield select:defined:not([data-mode~=readonly])[data-focus=true]::placeholder,tui-textfield textarea:defined:not([data-mode~=readonly])[data-focus=true]::placeholder,tui-textfield input:not([type=range]):not([data-mode~=readonly])[data-focus=true]._empty,tui-textfield select:defined:not([data-mode~=readonly])[data-focus=true]._empty,tui-textfield textarea:defined:not([data-mode~=readonly])[data-focus=true]._empty{color:var(--tui-text-tertiary)}tui-textfield input:not([type=range]):not([data-mode~=readonly])[data-focus=true]~label,tui-textfield select:defined:not([data-mode~=readonly])[data-focus=true]~label,tui-textfield textarea:defined:not([data-mode~=readonly])[data-focus=true]~label{color:var(--tui-text-primary)!important;font-size:.83em;transform:translateY(-.7em)}tui-textfield input:not([type=range]):not([data-mode~=readonly])[tuiWrapper]:not(._focused):has(:focus-visible)::placeholder,tui-textfield select:defined:not([data-mode~=readonly])[tuiWrapper]:not(._focused):has(:focus-visible)::placeholder,tui-textfield textarea:defined:not([data-mode~=readonly])[tuiWrapper]:not(._focused):has(:focus-visible)::placeholder,tui-textfield input:not([type=range]):not([data-mode~=readonly])[tuiWrapper]._focused::placeholder,tui-textfield select:defined:not([data-mode~=readonly])[tuiWrapper]._focused::placeholder,tui-textfield textarea:defined:not([data-mode~=readonly])[tuiWrapper]._focused::placeholder,tui-textfield input:not([type=range]):not([data-mode~=readonly])[tuiWrapper]:not(._focused):has(:focus-visible)._empty,tui-textfield select:defined:not([data-mode~=readonly])[tuiWrapper]:not(._focused):has(:focus-visible)._empty,tui-textfield textarea:defined:not([data-mode~=readonly])[tuiWrapper]:not(._focused):has(:focus-visible)._empty,tui-textfield input:not([type=range]):not([data-mode~=readonly])[tuiWrapper]._focused._empty,tui-textfield select:defined:not([data-mode~=readonly])[tuiWrapper]._focused._empty,tui-textfield textarea:defined:not([data-mode~=readonly])[tuiWrapper]._focused._empty{color:var(--tui-text-tertiary)}tui-textfield input:not([type=range]):not([data-mode~=readonly])[tuiWrapper]:not(._focused):has(:focus-visible)~label,tui-textfield select:defined:not([data-mode~=readonly])[tuiWrapper]:not(._focused):has(:focus-visible)~label,tui-textfield textarea:defined:not([data-mode~=readonly])[tuiWrapper]:not(._focused):has(:focus-visible)~label,tui-textfield input:not([type=range]):not([data-mode~=readonly])[tuiWrapper]._focused~label,tui-textfield select:defined:not([data-mode~=readonly])[tuiWrapper]._focused~label,tui-textfield textarea:defined:not([data-mode~=readonly])[tuiWrapper]._focused~label{color:var(--tui-text-primary)!important;font-size:.83em;transform:translateY(-.7em)}@supports (-webkit-touch-callout: none){tui-textfield input:not([type=range])._ios-fix,tui-textfield select:defined._ios-fix,tui-textfield textarea:defined._ios-fix{position:fixed;left:1000rem}}tui-textfield [tuiLabel][tuiLabel][tuiLabel]{transition-property:all;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;position:relative;display:block;flex:1;align-self:flex-start;font-size:inherit;line-height:var(--t-height)}tui-textfield label:defined,tui-textfield input:defined::placeholder,tui-textfield textarea:defined::placeholder,tui-textfield select:defined._empty{color:var(--tui-text-secondary)}tui-textfield select:not([data-mode~=readonly]){cursor:pointer}tui-textfield select option[value=\"\"]:disabled{color:transparent}tui-textfield select optgroup,tui-textfield select option{background-color:var(--tui-background-elevation-3)}tui-textfield select optgroup,tui-textfield select option:not(:disabled){color:var(--tui-text-primary)}tui-textfield button,tui-textfield a{pointer-events:auto}tui-textfield>.t-content{display:flex;block-size:var(--t-height);align-items:center;gap:inherit;margin-inline-start:auto;isolation:isolate;border-radius:inherit}tui-textfield>.t-content>tui-icon{pointer-events:auto}tui-textfield textarea~.t-content{min-inline-size:.5rem}tui-textfield .t-clear{z-index:1;display:none;pointer-events:auto}tui-textfield>.t-filler:defined{pointer-events:none;background:none;color:var(--tui-text-tertiary);opacity:1}tui-textfield [tuiFluidTypography]{font-weight:700}\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: WaResizeObserver, selector: "[waResizeObserver]", inputs: ["box"], outputs: ["waResizeObserver"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
97
99
  }
98
100
  export { TuiTextfieldComponent };
99
101
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiTextfieldComponent, decorators: [{
@@ -115,7 +117,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
115
117
  '[class._with-template]': 'content',
116
118
  '[class._disabled]': 'input?.nativeElement.disabled',
117
119
  '(mousedown)': 'onIconClick($event)',
118
- }, template: "<ng-content select=\"input\" />\n<ng-content select=\"select\" />\n<ng-content select=\"textarea\" />\n<ng-content select=\"label\" />\n<span\n class=\"t-content\"\n (mousedown.prevent)=\"input?.nativeElement?.focus()\"\n (waResizeObserver)=\"$event[0] && onResize($event[0])\"\n>\n <ng-content />\n <button\n *ngIf=\"options.cleaner()\"\n appearance=\"icon\"\n size=\"xs\"\n tabindex=\"-1\"\n tuiIconButton\n type=\"button\"\n class=\"t-clear\"\n [iconStart]=\"icons.close\"\n (click)=\"accessor?.setValue(null)\"\n (pointerdown.zoneless.prevent)=\"input?.nativeElement?.focus()\"\n >\n {{ clear() }}\n </button>\n <ng-container #vcr />\n <ng-content select=\"tui-icon\" />\n</span>\n<span\n *ngIf=\"control?.value != null\"\n class=\"t-template\"\n>\n <ng-container *polymorpheusOutlet=\"content as text; context: {$implicit: control?.value}\">\n {{ text }}\n </ng-container>\n</span>\n<input\n *ngIf=\"showFiller()\"\n aria-hidden=\"true\"\n disabled\n class=\"t-filler\"\n [value]=\"computedFiller()\"\n/>\n", styles: ["tui-textfield{scrollbar-width:none;-ms-overflow-style:none;transition-property:color;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;--t-height: var(--tui-height-l);--t-padding: var(--tui-padding-l);position:relative;display:flex;flex-wrap:wrap;align-items:center;cursor:pointer;min-block-size:var(--t-height);color:var(--tui-text-tertiary);padding:0 var(--t-padding);border-radius:var(--tui-radius-l);font:var(--tui-font-text-ui-m);box-sizing:border-box;gap:0 .25rem}tui-textfield::-webkit-scrollbar,tui-textfield::-webkit-scrollbar-thumb{display:none}tui-textfield[style*=\"--t-icon-start:\"]{--t-left: 2.25rem}tui-textfield[style*=\"--t-icon-end:\"]{--t-right: 2.25rem}tui-textfield::-webkit-resizer{border:.25rem solid transparent;inline-size:.5rem;block-size:.5rem;box-sizing:content-box;color:var(--tui-text-tertiary);background:linear-gradient(-45deg,transparent,transparent .125rem,currentColor .125rem,currentColor .1875rem,transparent .1875rem,transparent .25rem,currentColor .25rem,currentColor .3125rem,transparent .35rem);background-clip:content-box}tui-textfield label,tui-textfield>.t-content,tui-textfield>.t-template{pointer-events:none}tui-textfield input,tui-textfield select,tui-textfield textarea{font:var(--tui-font-text-ui-m);resize:none;padding-block-start:1.125rem;padding-block-end:1.125rem}tui-textfield[data-size=s]{--t-height: var(--tui-height-s);--t-padding: var(--tui-padding-s);border-radius:var(--tui-radius-m);gap:0;font:var(--tui-font-text-ui-s)}tui-textfield[data-size=s][style*=\"--t-icon-start:\"]{--t-left: 1.25rem}tui-textfield[data-size=s][style*=\"--t-icon-end:\"]{--t-right: 1.25rem}tui-textfield[data-size=s]:before{margin:0 .5rem 0 -.125rem;font-size:1rem}tui-textfield[data-size=s]:after{margin:0 -.175rem 0 .575rem;font-size:1rem}tui-textfield[data-size=s] input,tui-textfield[data-size=s] select,tui-textfield[data-size=s] textarea{font:var(--tui-font-text-ui-s);padding-block-start:.5rem;padding-block-end:.5rem}tui-textfield[data-size=s]>.t-content{margin-inline-end:-.325rem}tui-textfield[data-size=m]{--t-height: var(--tui-height-m);--t-padding: var(--tui-padding-m);border-radius:var(--tui-radius-m);font:var(--tui-font-text-ui-s)}tui-textfield[data-size=m][style*=\"--t-icon-start:\"]{--t-left: 1.75rem}tui-textfield[data-size=m][style*=\"--t-icon-end:\"]{--t-right: 1.75rem}tui-textfield[data-size=m]:before{margin:0 .125rem 0 -.125rem}tui-textfield[data-size=m]:after{margin:0 -.125rem 0 .25rem}tui-textfield[data-size=m] input,tui-textfield[data-size=m] select,tui-textfield[data-size=m] textarea{font:var(--tui-font-text-ui-s);padding-block-start:.875rem;padding-block-end:.875rem}tui-textfield[data-size=m]>.t-content{margin-inline-end:-.125rem}tui-textfield:hover{color:var(--tui-text-secondary)}tui-textfield:hover:has(input:read-only),tui-textfield:hover:has(textarea:read-only),tui-textfield:hover:has(select[data-mode~=readonly]){color:var(--tui-text-tertiary)}tui-textfield:before{z-index:1;margin-inline-end:.5rem}tui-textfield:has(:disabled:not(.t-filler,button,option)):before,tui-textfield:has(:disabled:not(.t-filler,button,option)):after,tui-textfield:has(:disabled:not(.t-filler,button,option))>.t-template{opacity:var(--tui-disabled-opacity)}tui-textfield._disabled:before,tui-textfield._disabled:after,tui-textfield._disabled>.t-template{opacity:var(--tui-disabled-opacity)}tui-textfield:has(label:not(:empty))>.t-template,tui-textfield:has(label:not(:empty)) input:not([type=range]),tui-textfield:has(label:not(:empty)) select:defined,tui-textfield:has(label:not(:empty)) textarea:defined{padding-block-start:calc(var(--t-height) / 3);padding-block-end:0}tui-textfield:has(label:not(:empty))>.t-template::placeholder,tui-textfield:has(label:not(:empty)) input:not([type=range])::placeholder,tui-textfield:has(label:not(:empty)) select:defined::placeholder,tui-textfield:has(label:not(:empty)) textarea:defined::placeholder,tui-textfield:has(label:not(:empty))>.t-template._empty,tui-textfield:has(label:not(:empty)) input:not([type=range])._empty,tui-textfield:has(label:not(:empty)) select:defined._empty,tui-textfield:has(label:not(:empty)) textarea:defined._empty{color:transparent}tui-textfield._with-label>.t-template,tui-textfield._with-label input:not([type=range]),tui-textfield._with-label select:defined,tui-textfield._with-label textarea:defined{padding-top:calc(var(--t-height) / 3);padding-block-end:0}tui-textfield._with-label>.t-template::placeholder,tui-textfield._with-label input:not([type=range])::placeholder,tui-textfield._with-label select:defined::placeholder,tui-textfield._with-label textarea:defined::placeholder,tui-textfield._with-label>.t-template._empty,tui-textfield._with-label input:not([type=range])._empty,tui-textfield._with-label select:defined._empty,tui-textfield._with-label textarea:defined._empty{color:transparent}tui-textfield>.t-template,tui-textfield input:defined,tui-textfield select:defined,tui-textfield textarea:defined{position:absolute;top:0;left:0;inline-size:100%;block-size:100%;-webkit-appearance:none;appearance:none;box-sizing:border-box;border-radius:inherit;border-width:0;overscroll-behavior:none;padding-inline-start:calc(var(--t-left, 0rem) + var(--t-padding));padding-inline-end:calc(var(--t-right, 0rem) + var(--t-side) + var(--t-padding))}tui-textfield>.t-template{display:flex;align-items:center;color:var(--tui-text-primary)}tui-textfield._with-template input:not([type=range]),tui-textfield._with-template select,tui-textfield._with-template textarea{color:transparent!important}tui-textfield input:not([type=range]),tui-textfield select:defined,tui-textfield textarea:defined{pointer-events:auto;background:transparent}tui-textfield input:not([type=range]):read-only~.t-filler,tui-textfield select:defined:read-only~.t-filler,tui-textfield textarea:defined:read-only~.t-filler{display:none}tui-textfield input:not([type=range]):disabled~label,tui-textfield select:defined:disabled~label,tui-textfield textarea:defined:disabled~label,tui-textfield input:not([type=range]):disabled~.t-content,tui-textfield select:defined:disabled~.t-content,tui-textfield textarea:defined:disabled~.t-content{opacity:var(--tui-disabled-opacity)}tui-textfield input:not([type=range]):disabled~label>tui-icon,tui-textfield select:defined:disabled~label>tui-icon,tui-textfield textarea:defined:disabled~label>tui-icon,tui-textfield input:not([type=range]):disabled~.t-content>tui-icon,tui-textfield select:defined:disabled~.t-content>tui-icon,tui-textfield textarea:defined:disabled~.t-content>tui-icon{display:none}tui-textfield input:not([type=range]):-webkit-autofill~label,tui-textfield select:defined:-webkit-autofill~label,tui-textfield textarea:defined:-webkit-autofill~label,tui-textfield input:not([type=range]):not(._empty):not(:placeholder-shown)~label,tui-textfield select:defined:not(._empty):not(:placeholder-shown)~label,tui-textfield textarea:defined:not(._empty):not(:placeholder-shown)~label{font-size:.83em;transform:translateY(-.7em)}tui-textfield input:not([type=range]):-webkit-autofill:not(:disabled)[data-mode~=invalid]~label,tui-textfield select:defined:-webkit-autofill:not(:disabled)[data-mode~=invalid]~label,tui-textfield textarea:defined:-webkit-autofill:not(:disabled)[data-mode~=invalid]~label,tui-textfield input:not([type=range]):not(._empty):not(:placeholder-shown):not(:disabled)[data-mode~=invalid]~label,tui-textfield select:defined:not(._empty):not(:placeholder-shown):not(:disabled)[data-mode~=invalid]~label,tui-textfield textarea:defined:not(._empty):not(:placeholder-shown):not(:disabled)[data-mode~=invalid]~label,tui-textfield input:not([type=range]):-webkit-autofill:invalid:not(:disabled):not([data-mode])~label,tui-textfield select:defined:-webkit-autofill:invalid:not(:disabled):not([data-mode])~label,tui-textfield textarea:defined:-webkit-autofill:invalid:not(:disabled):not([data-mode])~label,tui-textfield input:not([type=range]):not(._empty):not(:placeholder-shown):invalid:not(:disabled):not([data-mode])~label,tui-textfield select:defined:not(._empty):not(:placeholder-shown):invalid:not(:disabled):not([data-mode])~label,tui-textfield textarea:defined:not(._empty):not(:placeholder-shown):invalid:not(:disabled):not([data-mode])~label{color:var(--tui-text-negative)}tui-textfield input:not([type=range]):-webkit-autofill:not(:disabled):not([data-mode~=readonly])~.t-content .t-clear,tui-textfield select:defined:-webkit-autofill:not(:disabled):not([data-mode~=readonly])~.t-content .t-clear,tui-textfield textarea:defined:-webkit-autofill:not(:disabled):not([data-mode~=readonly])~.t-content .t-clear,tui-textfield input:not([type=range]):not(._empty):not(:placeholder-shown):not(:disabled):not([data-mode~=readonly])~.t-content .t-clear,tui-textfield select:defined:not(._empty):not(:placeholder-shown):not(:disabled):not([data-mode~=readonly])~.t-content .t-clear,tui-textfield textarea:defined:not(._empty):not(:placeholder-shown):not(:disabled):not([data-mode~=readonly])~.t-content .t-clear{display:flex}tui-textfield input:not([type=range]):not([data-mode~=readonly]):focus-visible:not([data-focus=false])::placeholder,tui-textfield select:defined:not([data-mode~=readonly]):focus-visible:not([data-focus=false])::placeholder,tui-textfield textarea:defined:not([data-mode~=readonly]):focus-visible:not([data-focus=false])::placeholder,tui-textfield input:not([type=range]):not([data-mode~=readonly]):focus-visible:not([data-focus=false])._empty,tui-textfield select:defined:not([data-mode~=readonly]):focus-visible:not([data-focus=false])._empty,tui-textfield textarea:defined:not([data-mode~=readonly]):focus-visible:not([data-focus=false])._empty{color:var(--tui-text-tertiary)}tui-textfield input:not([type=range]):not([data-mode~=readonly]):focus-visible:not([data-focus=false])~label,tui-textfield select:defined:not([data-mode~=readonly]):focus-visible:not([data-focus=false])~label,tui-textfield textarea:defined:not([data-mode~=readonly]):focus-visible:not([data-focus=false])~label{color:var(--tui-text-primary)!important;font-size:.83em;transform:translateY(-.7em)}tui-textfield input:not([type=range]):not([data-mode~=readonly])[data-focus=true]::placeholder,tui-textfield select:defined:not([data-mode~=readonly])[data-focus=true]::placeholder,tui-textfield textarea:defined:not([data-mode~=readonly])[data-focus=true]::placeholder,tui-textfield input:not([type=range]):not([data-mode~=readonly])[data-focus=true]._empty,tui-textfield select:defined:not([data-mode~=readonly])[data-focus=true]._empty,tui-textfield textarea:defined:not([data-mode~=readonly])[data-focus=true]._empty{color:var(--tui-text-tertiary)}tui-textfield input:not([type=range]):not([data-mode~=readonly])[data-focus=true]~label,tui-textfield select:defined:not([data-mode~=readonly])[data-focus=true]~label,tui-textfield textarea:defined:not([data-mode~=readonly])[data-focus=true]~label{color:var(--tui-text-primary)!important;font-size:.83em;transform:translateY(-.7em)}tui-textfield input:not([type=range]):not([data-mode~=readonly])[tuiWrapper]:not(._focused):has(:focus-visible)::placeholder,tui-textfield select:defined:not([data-mode~=readonly])[tuiWrapper]:not(._focused):has(:focus-visible)::placeholder,tui-textfield textarea:defined:not([data-mode~=readonly])[tuiWrapper]:not(._focused):has(:focus-visible)::placeholder,tui-textfield input:not([type=range]):not([data-mode~=readonly])[tuiWrapper]._focused::placeholder,tui-textfield select:defined:not([data-mode~=readonly])[tuiWrapper]._focused::placeholder,tui-textfield textarea:defined:not([data-mode~=readonly])[tuiWrapper]._focused::placeholder,tui-textfield input:not([type=range]):not([data-mode~=readonly])[tuiWrapper]:not(._focused):has(:focus-visible)._empty,tui-textfield select:defined:not([data-mode~=readonly])[tuiWrapper]:not(._focused):has(:focus-visible)._empty,tui-textfield textarea:defined:not([data-mode~=readonly])[tuiWrapper]:not(._focused):has(:focus-visible)._empty,tui-textfield input:not([type=range]):not([data-mode~=readonly])[tuiWrapper]._focused._empty,tui-textfield select:defined:not([data-mode~=readonly])[tuiWrapper]._focused._empty,tui-textfield textarea:defined:not([data-mode~=readonly])[tuiWrapper]._focused._empty{color:var(--tui-text-tertiary)}tui-textfield input:not([type=range]):not([data-mode~=readonly])[tuiWrapper]:not(._focused):has(:focus-visible)~label,tui-textfield select:defined:not([data-mode~=readonly])[tuiWrapper]:not(._focused):has(:focus-visible)~label,tui-textfield textarea:defined:not([data-mode~=readonly])[tuiWrapper]:not(._focused):has(:focus-visible)~label,tui-textfield input:not([type=range]):not([data-mode~=readonly])[tuiWrapper]._focused~label,tui-textfield select:defined:not([data-mode~=readonly])[tuiWrapper]._focused~label,tui-textfield textarea:defined:not([data-mode~=readonly])[tuiWrapper]._focused~label{color:var(--tui-text-primary)!important;font-size:.83em;transform:translateY(-.7em)}@supports (-webkit-touch-callout: none){tui-textfield input:not([type=range])._ios-fix,tui-textfield select:defined._ios-fix,tui-textfield textarea:defined._ios-fix{position:fixed;left:1000rem}}tui-textfield [tuiLabel][tuiLabel][tuiLabel]{transition-property:all;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;position:relative;display:block;flex:1;align-self:flex-start;font-size:inherit;line-height:var(--t-height)}tui-textfield label:defined,tui-textfield input:defined::placeholder,tui-textfield textarea:defined::placeholder,tui-textfield select:defined._empty{color:var(--tui-text-secondary)}tui-textfield select:not([data-mode~=readonly]){cursor:pointer}tui-textfield select option[value=\"\"]:disabled{color:transparent}tui-textfield select optgroup,tui-textfield select option{background-color:var(--tui-background-elevation-3)}tui-textfield select optgroup,tui-textfield select option:not(:disabled){color:var(--tui-text-primary)}tui-textfield button,tui-textfield a{pointer-events:auto}tui-textfield>.t-content{display:flex;block-size:var(--t-height);align-items:center;gap:inherit;margin-inline-start:auto;isolation:isolate;border-radius:inherit}tui-textfield>.t-content>tui-icon{pointer-events:auto}tui-textfield textarea~.t-content{min-inline-size:.5rem}tui-textfield .t-clear{z-index:1;display:none;pointer-events:auto}tui-textfield>.t-filler:defined{pointer-events:none;background:none;color:var(--tui-text-tertiary);opacity:1}tui-textfield [tuiFluidTypography]{font-weight:700}\n"] }]
120
+ }, template: "<ng-content select=\"input\" />\n<ng-content select=\"select\" />\n<ng-content select=\"textarea\" />\n<ng-content select=\"label\" />\n<span\n class=\"t-content\"\n (pointerdown.prevent)=\"input?.nativeElement?.focus()\"\n (waResizeObserver)=\"$event[0] && onResize($event[0])\"\n>\n <ng-content />\n <button\n *ngIf=\"options.cleaner()\"\n appearance=\"icon\"\n size=\"xs\"\n tabindex=\"-1\"\n tuiIconButton\n type=\"button\"\n class=\"t-clear\"\n [iconStart]=\"icons.close\"\n (click)=\"accessor?.setValue(null)\"\n (pointerdown.zoneless.prevent)=\"input?.nativeElement?.focus()\"\n >\n {{ clear() }}\n </button>\n <ng-container #vcr />\n <ng-content select=\"tui-icon\" />\n</span>\n<span\n *ngIf=\"control?.value != null\"\n class=\"t-template\"\n>\n <ng-container *polymorpheusOutlet=\"content as text; context: {$implicit: control?.value}\">\n {{ text }}\n </ng-container>\n</span>\n<input\n *ngIf=\"showFiller()\"\n aria-hidden=\"true\"\n disabled\n class=\"t-filler\"\n [value]=\"computedFiller()\"\n/>\n", styles: ["tui-textfield{scrollbar-width:none;-ms-overflow-style:none;transition-property:color;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;--t-height: var(--tui-height-l);--t-padding: var(--tui-padding-l);position:relative;display:flex;flex-wrap:wrap;align-items:center;cursor:pointer;min-block-size:var(--t-height);color:var(--tui-text-tertiary);padding:0 var(--t-padding);border-radius:var(--tui-radius-l);font:var(--tui-font-text-ui-m);box-sizing:border-box;gap:0 .25rem}tui-textfield::-webkit-scrollbar,tui-textfield::-webkit-scrollbar-thumb{display:none}tui-textfield[style*=\"--t-icon-start:\"]{--t-left: 2.25rem}tui-textfield[style*=\"--t-icon-end:\"]{--t-right: 2.25rem}tui-textfield::-webkit-resizer{border:.25rem solid transparent;inline-size:.5rem;block-size:.5rem;box-sizing:content-box;color:var(--tui-text-tertiary);background:linear-gradient(-45deg,transparent,transparent .125rem,currentColor .125rem,currentColor .1875rem,transparent .1875rem,transparent .25rem,currentColor .25rem,currentColor .3125rem,transparent .35rem);background-clip:content-box}tui-textfield label,tui-textfield>.t-content,tui-textfield>.t-template{pointer-events:none}tui-textfield input,tui-textfield select,tui-textfield textarea{font:var(--tui-font-text-ui-m);resize:none;padding-block-start:1.125rem;padding-block-end:1.125rem}tui-textfield[data-size=s]{--t-height: var(--tui-height-s);--t-padding: var(--tui-padding-s);border-radius:var(--tui-radius-m);gap:0;font:var(--tui-font-text-ui-s)}tui-textfield[data-size=s][style*=\"--t-icon-start:\"]{--t-left: 1.25rem}tui-textfield[data-size=s][style*=\"--t-icon-end:\"]{--t-right: 1.25rem}tui-textfield[data-size=s]:before{margin:0 .5rem 0 -.125rem;font-size:1rem}tui-textfield[data-size=s]:after{margin:0 -.175rem 0 .575rem;font-size:1rem}tui-textfield[data-size=s] input,tui-textfield[data-size=s] select,tui-textfield[data-size=s] textarea{font:var(--tui-font-text-ui-s);padding-block-start:.5rem;padding-block-end:.5rem}tui-textfield[data-size=s]>.t-content{margin-inline-end:-.325rem}tui-textfield[data-size=m]{--t-height: var(--tui-height-m);--t-padding: var(--tui-padding-m);border-radius:var(--tui-radius-m);font:var(--tui-font-text-ui-s)}tui-textfield[data-size=m][style*=\"--t-icon-start:\"]{--t-left: 1.75rem}tui-textfield[data-size=m][style*=\"--t-icon-end:\"]{--t-right: 1.75rem}tui-textfield[data-size=m]:before{margin:0 .125rem 0 -.125rem}tui-textfield[data-size=m]:after{margin:0 -.125rem 0 .25rem}tui-textfield[data-size=m] input,tui-textfield[data-size=m] select,tui-textfield[data-size=m] textarea{font:var(--tui-font-text-ui-s);padding-block-start:.875rem;padding-block-end:.875rem}tui-textfield[data-size=m]>.t-content{margin-inline-end:-.125rem}tui-textfield:hover{color:var(--tui-text-secondary)}tui-textfield:hover:has(input:read-only),tui-textfield:hover:has(textarea:read-only),tui-textfield:hover:has(select[data-mode~=readonly]){color:var(--tui-text-tertiary)}tui-textfield:before{z-index:1;margin-inline-end:.5rem}tui-textfield:has(:disabled:not(.t-filler,button,option)):before,tui-textfield:has(:disabled:not(.t-filler,button,option)):after,tui-textfield:has(:disabled:not(.t-filler,button,option))>.t-template{opacity:var(--tui-disabled-opacity)}tui-textfield._disabled:before,tui-textfield._disabled:after,tui-textfield._disabled>.t-template{opacity:var(--tui-disabled-opacity)}tui-textfield:has(label:not(:empty))>.t-template,tui-textfield:has(label:not(:empty)) input:not([type=range]),tui-textfield:has(label:not(:empty)) select:defined,tui-textfield:has(label:not(:empty)) textarea:defined{padding-block-start:calc(var(--t-height) / 3);padding-block-end:0}tui-textfield:has(label:not(:empty))>.t-template::placeholder,tui-textfield:has(label:not(:empty)) input:not([type=range])::placeholder,tui-textfield:has(label:not(:empty)) select:defined::placeholder,tui-textfield:has(label:not(:empty)) textarea:defined::placeholder,tui-textfield:has(label:not(:empty))>.t-template._empty,tui-textfield:has(label:not(:empty)) input:not([type=range])._empty,tui-textfield:has(label:not(:empty)) select:defined._empty,tui-textfield:has(label:not(:empty)) textarea:defined._empty{color:transparent}tui-textfield._with-label>.t-template,tui-textfield._with-label input:not([type=range]),tui-textfield._with-label select:defined,tui-textfield._with-label textarea:defined{padding-top:calc(var(--t-height) / 3);padding-block-end:0}tui-textfield._with-label>.t-template::placeholder,tui-textfield._with-label input:not([type=range])::placeholder,tui-textfield._with-label select:defined::placeholder,tui-textfield._with-label textarea:defined::placeholder,tui-textfield._with-label>.t-template._empty,tui-textfield._with-label input:not([type=range])._empty,tui-textfield._with-label select:defined._empty,tui-textfield._with-label textarea:defined._empty{color:transparent}tui-textfield>.t-template,tui-textfield input:defined,tui-textfield select:defined,tui-textfield textarea:defined{position:absolute;top:0;left:0;inline-size:100%;block-size:100%;-webkit-appearance:none;appearance:none;box-sizing:border-box;border-radius:inherit;border-width:0;overscroll-behavior:none;padding-inline-start:calc(var(--t-left, 0rem) + var(--t-padding));padding-inline-end:calc(var(--t-right, 0rem) + var(--t-side) + var(--t-padding))}tui-textfield>.t-template{display:flex;align-items:center;color:var(--tui-text-primary)}tui-textfield._with-template input:not([type=range]),tui-textfield._with-template select,tui-textfield._with-template textarea{color:transparent!important}tui-textfield input:not([type=range]),tui-textfield select:defined,tui-textfield textarea:defined{pointer-events:auto;background:transparent}tui-textfield input:not([type=range]):read-only~.t-filler,tui-textfield select:defined:read-only~.t-filler,tui-textfield textarea:defined:read-only~.t-filler{display:none}tui-textfield input:not([type=range]):disabled~label,tui-textfield select:defined:disabled~label,tui-textfield textarea:defined:disabled~label,tui-textfield input:not([type=range]):disabled~.t-content,tui-textfield select:defined:disabled~.t-content,tui-textfield textarea:defined:disabled~.t-content{opacity:var(--tui-disabled-opacity)}tui-textfield input:not([type=range]):disabled~label>tui-icon,tui-textfield select:defined:disabled~label>tui-icon,tui-textfield textarea:defined:disabled~label>tui-icon,tui-textfield input:not([type=range]):disabled~.t-content>tui-icon,tui-textfield select:defined:disabled~.t-content>tui-icon,tui-textfield textarea:defined:disabled~.t-content>tui-icon{display:none}tui-textfield input:not([type=range]):-webkit-autofill~label,tui-textfield select:defined:-webkit-autofill~label,tui-textfield textarea:defined:-webkit-autofill~label,tui-textfield input:not([type=range]):not(._empty):not(:placeholder-shown)~label,tui-textfield select:defined:not(._empty):not(:placeholder-shown)~label,tui-textfield textarea:defined:not(._empty):not(:placeholder-shown)~label{font-size:.83em;transform:translateY(-.7em)}tui-textfield input:not([type=range]):-webkit-autofill:not(:disabled)[data-mode~=invalid]~label,tui-textfield select:defined:-webkit-autofill:not(:disabled)[data-mode~=invalid]~label,tui-textfield textarea:defined:-webkit-autofill:not(:disabled)[data-mode~=invalid]~label,tui-textfield input:not([type=range]):not(._empty):not(:placeholder-shown):not(:disabled)[data-mode~=invalid]~label,tui-textfield select:defined:not(._empty):not(:placeholder-shown):not(:disabled)[data-mode~=invalid]~label,tui-textfield textarea:defined:not(._empty):not(:placeholder-shown):not(:disabled)[data-mode~=invalid]~label,tui-textfield input:not([type=range]):-webkit-autofill:invalid:not(:disabled):not([data-mode])~label,tui-textfield select:defined:-webkit-autofill:invalid:not(:disabled):not([data-mode])~label,tui-textfield textarea:defined:-webkit-autofill:invalid:not(:disabled):not([data-mode])~label,tui-textfield input:not([type=range]):not(._empty):not(:placeholder-shown):invalid:not(:disabled):not([data-mode])~label,tui-textfield select:defined:not(._empty):not(:placeholder-shown):invalid:not(:disabled):not([data-mode])~label,tui-textfield textarea:defined:not(._empty):not(:placeholder-shown):invalid:not(:disabled):not([data-mode])~label{color:var(--tui-text-negative)}tui-textfield input:not([type=range]):-webkit-autofill:not(:disabled):not([data-mode~=readonly])~.t-content .t-clear,tui-textfield select:defined:-webkit-autofill:not(:disabled):not([data-mode~=readonly])~.t-content .t-clear,tui-textfield textarea:defined:-webkit-autofill:not(:disabled):not([data-mode~=readonly])~.t-content .t-clear,tui-textfield input:not([type=range]):not(._empty):not(:placeholder-shown):not(:disabled):not([data-mode~=readonly])~.t-content .t-clear,tui-textfield select:defined:not(._empty):not(:placeholder-shown):not(:disabled):not([data-mode~=readonly])~.t-content .t-clear,tui-textfield textarea:defined:not(._empty):not(:placeholder-shown):not(:disabled):not([data-mode~=readonly])~.t-content .t-clear{display:flex}tui-textfield input:not([type=range]):not([data-mode~=readonly]):focus-visible:not([data-focus=false])::placeholder,tui-textfield select:defined:not([data-mode~=readonly]):focus-visible:not([data-focus=false])::placeholder,tui-textfield textarea:defined:not([data-mode~=readonly]):focus-visible:not([data-focus=false])::placeholder,tui-textfield input:not([type=range]):not([data-mode~=readonly]):focus-visible:not([data-focus=false])._empty,tui-textfield select:defined:not([data-mode~=readonly]):focus-visible:not([data-focus=false])._empty,tui-textfield textarea:defined:not([data-mode~=readonly]):focus-visible:not([data-focus=false])._empty{color:var(--tui-text-tertiary)}tui-textfield input:not([type=range]):not([data-mode~=readonly]):focus-visible:not([data-focus=false])~label,tui-textfield select:defined:not([data-mode~=readonly]):focus-visible:not([data-focus=false])~label,tui-textfield textarea:defined:not([data-mode~=readonly]):focus-visible:not([data-focus=false])~label{color:var(--tui-text-primary)!important;font-size:.83em;transform:translateY(-.7em)}tui-textfield input:not([type=range]):not([data-mode~=readonly])[data-focus=true]::placeholder,tui-textfield select:defined:not([data-mode~=readonly])[data-focus=true]::placeholder,tui-textfield textarea:defined:not([data-mode~=readonly])[data-focus=true]::placeholder,tui-textfield input:not([type=range]):not([data-mode~=readonly])[data-focus=true]._empty,tui-textfield select:defined:not([data-mode~=readonly])[data-focus=true]._empty,tui-textfield textarea:defined:not([data-mode~=readonly])[data-focus=true]._empty{color:var(--tui-text-tertiary)}tui-textfield input:not([type=range]):not([data-mode~=readonly])[data-focus=true]~label,tui-textfield select:defined:not([data-mode~=readonly])[data-focus=true]~label,tui-textfield textarea:defined:not([data-mode~=readonly])[data-focus=true]~label{color:var(--tui-text-primary)!important;font-size:.83em;transform:translateY(-.7em)}tui-textfield input:not([type=range]):not([data-mode~=readonly])[tuiWrapper]:not(._focused):has(:focus-visible)::placeholder,tui-textfield select:defined:not([data-mode~=readonly])[tuiWrapper]:not(._focused):has(:focus-visible)::placeholder,tui-textfield textarea:defined:not([data-mode~=readonly])[tuiWrapper]:not(._focused):has(:focus-visible)::placeholder,tui-textfield input:not([type=range]):not([data-mode~=readonly])[tuiWrapper]._focused::placeholder,tui-textfield select:defined:not([data-mode~=readonly])[tuiWrapper]._focused::placeholder,tui-textfield textarea:defined:not([data-mode~=readonly])[tuiWrapper]._focused::placeholder,tui-textfield input:not([type=range]):not([data-mode~=readonly])[tuiWrapper]:not(._focused):has(:focus-visible)._empty,tui-textfield select:defined:not([data-mode~=readonly])[tuiWrapper]:not(._focused):has(:focus-visible)._empty,tui-textfield textarea:defined:not([data-mode~=readonly])[tuiWrapper]:not(._focused):has(:focus-visible)._empty,tui-textfield input:not([type=range]):not([data-mode~=readonly])[tuiWrapper]._focused._empty,tui-textfield select:defined:not([data-mode~=readonly])[tuiWrapper]._focused._empty,tui-textfield textarea:defined:not([data-mode~=readonly])[tuiWrapper]._focused._empty{color:var(--tui-text-tertiary)}tui-textfield input:not([type=range]):not([data-mode~=readonly])[tuiWrapper]:not(._focused):has(:focus-visible)~label,tui-textfield select:defined:not([data-mode~=readonly])[tuiWrapper]:not(._focused):has(:focus-visible)~label,tui-textfield textarea:defined:not([data-mode~=readonly])[tuiWrapper]:not(._focused):has(:focus-visible)~label,tui-textfield input:not([type=range]):not([data-mode~=readonly])[tuiWrapper]._focused~label,tui-textfield select:defined:not([data-mode~=readonly])[tuiWrapper]._focused~label,tui-textfield textarea:defined:not([data-mode~=readonly])[tuiWrapper]._focused~label{color:var(--tui-text-primary)!important;font-size:.83em;transform:translateY(-.7em)}@supports (-webkit-touch-callout: none){tui-textfield input:not([type=range])._ios-fix,tui-textfield select:defined._ios-fix,tui-textfield textarea:defined._ios-fix{position:fixed;left:1000rem}}tui-textfield [tuiLabel][tuiLabel][tuiLabel]{transition-property:all;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;position:relative;display:block;flex:1;align-self:flex-start;font-size:inherit;line-height:var(--t-height)}tui-textfield label:defined,tui-textfield input:defined::placeholder,tui-textfield textarea:defined::placeholder,tui-textfield select:defined._empty{color:var(--tui-text-secondary)}tui-textfield select:not([data-mode~=readonly]){cursor:pointer}tui-textfield select option[value=\"\"]:disabled{color:transparent}tui-textfield select optgroup,tui-textfield select option{background-color:var(--tui-background-elevation-3)}tui-textfield select optgroup,tui-textfield select option:not(:disabled){color:var(--tui-text-primary)}tui-textfield button,tui-textfield a{pointer-events:auto}tui-textfield>.t-content{display:flex;block-size:var(--t-height);align-items:center;gap:inherit;margin-inline-start:auto;isolation:isolate;border-radius:inherit}tui-textfield>.t-content>tui-icon{pointer-events:auto}tui-textfield textarea~.t-content{min-inline-size:.5rem}tui-textfield .t-clear{z-index:1;display:none;pointer-events:auto}tui-textfield>.t-filler:defined{pointer-events:none;background:none;color:var(--tui-text-tertiary);opacity:1}tui-textfield [tuiFluidTypography]{font-weight:700}\n"] }]
119
121
  }], propDecorators: { label: [{
120
122
  type: ContentChild,
121
123
  args: [forwardRef(() => TuiLabel), { read: ElementRef }]
@@ -143,4 +145,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
143
145
  type: Input,
144
146
  args: ['filler']
145
147
  }] } });
146
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dGZpZWxkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvY29tcG9uZW50cy90ZXh0ZmllbGQvdGV4dGZpZWxkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvY29tcG9uZW50cy90ZXh0ZmllbGQvdGV4dGZpZWxkLnRlbXBsYXRlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBRXJDLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFFBQVEsRUFDUixZQUFZLEVBQ1osZUFBZSxFQUNmLFVBQVUsRUFDVixVQUFVLEVBQ1YsTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEVBQ04sU0FBUyxFQUNULGdCQUFnQixFQUNoQixpQkFBaUIsR0FDcEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBQ3BELE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6QyxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUM5RCxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDcEQsT0FBTyxFQUFDLGVBQWUsRUFBRSxtQkFBbUIsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQy9FLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUVuRCxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDdkQsT0FBTyxFQUFDLEtBQUssRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBQ3hELE9BQU8sRUFBQyxTQUFTLEVBQUUsd0JBQXdCLEVBQUMs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QztnQkFvQm5DLEdBQUc7c0JBRGxCLFNBQVM7dUJBQUMsS0FBSyxFQUFFLEVBQUMsSUFBSSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUM7Z0JBSXhDLFFBQVE7c0JBRHZCLFlBQVk7dUJBQUMsc0JBQXNCLEVBQUUsRUFBQyxXQUFXLEVBQUUsSUFBSSxFQUFDO2dCQU96QyxLQUFLO3NCQUpwQixZQUFZO3VCQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQyxFQUFFO3dCQUNuRCxJQUFJLEVBQUUsVUFBVTt3QkFDaEIsTUFBTSxFQUFFLElBQUk7cUJBQ2Y7Z0JBSU0sT0FBTztzQkFEYixLQUFLO2dCQTBCSyxZQUFZO3NCQUR0QixLQUFLO3VCQUFDLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge05nSWZ9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgdHlwZSB7QWZ0ZXJDb250ZW50SW5pdCwgUXVlcnlMaXN0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIGNvbXB1dGVkLFxuICAgIENvbnRlbnRDaGlsZCxcbiAgICBDb250ZW50Q2hpbGRyZW4sXG4gICAgRWxlbWVudFJlZixcbiAgICBmb3J3YXJkUmVmLFxuICAgIGluamVjdCxcbiAgICBJbnB1dCxcbiAgICBzaWduYWwsXG4gICAgVmlld0NoaWxkLFxuICAgIFZpZXdDb250YWluZXJSZWYsXG4gICAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHt0b1NpZ25hbH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHtOZ0NvbnRyb2x9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7V2FSZXNpemVPYnNlcnZlcn0gZnJvbSAnQG5nLXdlYi1hcGlzL3Jlc2l6ZS1vYnNlcnZlcic7XG5pbXBvcnQge0VNUFRZX1FVRVJZfSBmcm9tICdAdGFpZ2EtdWkvY2RrL2NvbnN0YW50cyc7XG5pbXBvcnQge3R1aUNvbnRyb2xWYWx1ZSwgdHVpUXVlcnlMaXN0Q2hhbmdlc30gZnJvbSAnQHRhaWdhLXVpL2Nkay9vYnNlcnZhYmxlcyc7XG5pbXBvcnQge3R1aUluamVjdElkfSBmcm9tICdAdGFpZ2EtdWkvY2RrL3NlcnZpY2VzJztcbmltcG9ydCB0eXBlIHtUdWlDb250ZXh0fSBmcm9tICdAdGFpZ2EtdWkvY2RrL3R5cGVzJztcbmltcG9ydCB7dHVpSW5qZWN0RWxlbWVudH0gZnJvbSAnQHRhaWdhLXVpL2Nkay91dGlscy9kb20nO1xuaW1wb3J0IHt0dWlGb2N1c2VkSW59IGZyb20gJ0B0YWlnYS11aS9jZGsvdXRpbHMvZm9jdXMnO1xuaW1wb3J0IHt0dWlQeH0gZnJvbSAnQHRhaWdhLXVpL2Nkay91dGlscy9taXNjZWxsYW5lb3VzJztcbmltcG9ydCB7VHVpQnV0dG9uLCB0dWlCdXR0b25PcHRpb25zUHJvdmlkZXJ9IGZyb20gJ0B0YWlnYS11aS9jb3JlL2NvbXBvbmVudHMvYnV0dG9uJztcbmltcG9ydCB0eXBlIHtUdWlEYXRhTGlzdEhvc3R9IGZyb20gJ0B0YWlnYS11aS9jb3JlL2NvbXBvbmVudHMvZGF0YS1saXN0JztcbmltcG9ydCB7XG4gICAgdHVpQXNEYXRhTGlzdEhvc3QsXG4gICAgVHVpV2l0aE9wdGlvbkNvbnRlbnQsXG59IGZyb20gJ0B0YWlnYS11aS9jb3JlL2NvbXBvbmVudHMvZGF0YS1saXN0JztcbmltcG9ydCB7VHVpTGFiZWx9IGZyb20gJ0B0YWlnYS11aS9jb3JlL2NvbXBvbmVudHMvbGFiZWwnO1xuaW1wb3J0IHtcbiAgICBUdWlEcm9wZG93bkRpcmVjdGl2ZSxcbiAgICBUdWlEcm9wZG93bkZpeGVkLFxuICAgIFR1aURyb3Bkb3duT3BlbixcbiAgICB0dWlEcm9wZG93bk9wZW4sXG4gICAgVHVpV2l0aERyb3Bkb3duT3Blbixcbn0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvZGlyZWN0aXZlcy9kcm9wZG93bic7XG5pbXBvcnQge1R1aVdpdGhJY29uc30gZnJvbSAnQHRhaWdhLXVpL2NvcmUvZGlyZWN0aXZlcy9pY29ucyc7XG5pbXBvcnQge1R1aVdpdGhJdGVtc0hhbmRsZXJzfSBmcm9tICdAdGFpZ2EtdWkvY29yZS9kaXJlY3RpdmVzL2l0ZW1zLWhhbmRsZXJzJztcbmltcG9ydCB7VFVJX0NMRUFSX1dPUkQsIFRVSV9DT01NT05fSUNPTlN9IGZyb20gJ0B0YWlnYS11aS9jb3JlL3Rva2Vucyc7XG5pbXBvcnQgdHlwZSB7VHVpU2l6ZUwsIFR1aVNpemVTfSBmcm9tICdAdGFpZ2EtdWkvY29yZS90eXBlcyc7XG5pbXBvcnQgdHlwZSB7UG9seW1vcnBoZXVzQ29udGVudH0gZnJvbSAnQHRhaWdhLXVpL3BvbHltb3JwaGV1cyc7XG5pbXBvcnQge1BvbHltb3JwaGV1c091dGxldH0gZnJvbSAnQHRhaWdhLXVpL3BvbHltb3JwaGV1cyc7XG5pbXBvcnQge2Zyb21FdmVudCwgbWFwLCBtZXJnZSwgUmVwbGF5U3ViamVjdCwgc3RhcnRXaXRoLCBzd2l0Y2hNYXB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQge1R1aVRleHRmaWVsZERpcmVjdGl2ZX0gZnJvbSAnLi90ZXh0ZmllbGQuZGlyZWN0aXZlJztcbmltcG9ydCB7VFVJX1RFWFRGSUVMRF9PUFRJT05TfSBmcm9tICcuL3RleHRmaWVsZC5vcHRpb25zJztcbmltcG9ydCB0eXBlIHtUdWlUZXh0ZmllbGRBY2Nlc3Nvcn0gZnJvbSAnLi90ZXh0ZmllbGQtYWNjZXNzb3InO1xuaW1wb3J0IHtUVUlfVEVYVEZJRUxEX0FDQ0VTU09SfSBmcm9tICcuL3RleHRmaWVsZC1hY2Nlc3Nvcic7XG5pbXBvcnQge1RVSV9BVVhJTElBUll9IGZyb20gJy4vdGV4dGZpZWxkLWF1eGlsaWFyeSc7XG5pbXBvcnQge1R1aVdpdGhUZXh0ZmllbGREcm9wZG93bn0gZnJvbSAnLi90ZXh0ZmllbGQtZHJvcGRvd24uZGlyZWN0aXZlJztcblxuQENvbXBvbmVudCh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBzZWxlY3RvcjogJ3R1aS10ZXh0ZmllbGQnLFxuICAgIGltcG9ydHM6IFtOZ0lmLCBQb2x5bW9ycGhldXNPdXRsZXQsIFR1aUJ1dHRvbiwgV2FSZXNpemVPYnNlcnZlcl0sXG4gICAgdGVtcGxhdGVVcmw6ICcuL3RleHRmaWVsZC50ZW1wbGF0ZS5odG1sJyxcbiAgICBzdHlsZXM6IFsnQGltcG9ydCBcIkB0YWlnYS11aS9jb3JlL3N0eWxlcy9jb21wb25lbnRzL3RleHRmaWVsZC5sZXNzXCI7J10sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgdHVpQnV0dG9uT3B0aW9uc1Byb3ZpZGVyKHtzaXplOiAneHMnLCBhcHBlYXJhbmNlOiAnaWNvbid9KSxcbiAgICAgICAgdHVpQXNEYXRhTGlzdEhvc3QoVHVpVGV4dGZpZWxkQ29tcG9uZW50KSxcbiAgICBdLFxuICAgIGhvc3REaXJlY3RpdmVzOiBbXG4gICAgICAgIFR1aURyb3Bkb3duRGlyZWN0aXZlLFxuICAgICAgICBUdWlEcm9wZG93bkZpeGVkLFxuICAgICAgICBUdWlXaXRoRHJvcGRvd25PcGVuLFxuICAgICAgICBUdWlXaXRoSWNvbnMsXG4gICAgICAgIFR1aVdpdGhJdGVtc0hhbmRsZXJzLFxuICAgICAgICBUdWlXaXRoT3B0aW9uQ29udGVudCxcbiAgICAgICAgVHVpV2l0aFRleHRmaWVsZERyb3Bkb3duLFxuICAgIF0sXG4gICAgaG9zdDoge1xuICAgICAgICAnW2F0dHIuZGF0YS1zaXplXSc6ICdvcHRpb25zLnNpemUoKScsXG4gICAgICAgICdbY2xhc3MuX3dpdGgtbGFiZWxdJzogJ2hhc0xhYmVsJyxcbiAgICAgICAgJ1tjbGFzcy5fd2l0aC10ZW1wbGF0ZV0nOiAnY29udGVudCcsXG4gICAgICAgICdbY2xhc3MuX2Rpc2FibGVkXSc6ICdpbnB1dD8ubmF0aXZlRWxlbWVudC5kaXNhYmxlZCcsXG4gICAgICAgICcobW91c2Vkb3duKSc6ICdvbkljb25DbGljaygkZXZlbnQpJyxcbiAgICB9LFxufSlcbmV4cG9ydCBjbGFzcyBUdWlUZXh0ZmllbGRDb21wb25lbnQ8VD4gaW1wbGVtZW50cyBUdWlEYXRhTGlzdEhvc3Q8VD4sIEFmdGVyQ29udGVudEluaXQge1xuICAgIC8vIFRPRE86IHJlZmFjdG9yIHRvIHNpZ25hbCBpbnB1dHMgYWZ0ZXIgQW5ndWxhciB1cGRhdGVcbiAgICBwcml2YXRlIHJlYWRvbmx5IGZpbGxlciA9IHNpZ25hbCgnJyk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBhdXRvSWQgPSB0dWlJbmplY3RJZCgpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZHJvcGRvd24gPSBpbmplY3QoVHVpRHJvcGRvd25EaXJlY3RpdmUpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZHJvcGRvd25PcGVuID0gaW5qZWN0KFR1aURyb3Bkb3duT3Blbik7XG4gICAgcHJpdmF0ZSByZWFkb25seSBvcGVuID0gdHVpRHJvcGRvd25PcGVuKCk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBmb2N1c2VkSW4gPSB0dWlGb2N1c2VkSW4odHVpSW5qZWN0RWxlbWVudCgpKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvbnRlbnRSZWFkeSQgPSBuZXcgUmVwbGF5U3ViamVjdDxib29sZWFuPigxKTtcblxuICAgIEBDb250ZW50Q2hpbGQoZm9yd2FyZFJlZigoKSA9PiBUdWlMYWJlbCksIHtyZWFkOiBFbGVtZW50UmVmfSlcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgbGFiZWw/OiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcblxuICAgIEBDb250ZW50Q2hpbGQoTmdDb250cm9sKVxuICAgIHByb3RlY3RlZCByZWFkb25seSBjb250cm9sPzogTmdDb250cm9sO1xuXG4gICAgQENvbnRlbnRDaGlsZHJlbihUVUlfQVVYSUxJQVJZLCB7ZGVzY2VuZGFudHM6IHRydWV9KVxuICAgIHByb3RlY3RlZCByZWFkb25seSBhdXhpbGlhcnlRdWVyeTogUXVlcnlMaXN0PG9iamVjdD4gPSBFTVBUWV9RVUVSWTtcblxuICAgIHByb3RlY3RlZCByZWFkb25seSBpY29ucyA9IGluamVjdChUVUlfQ09NTU9OX0lDT05TKTtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgY2xlYXIgPSB0b1NpZ25hbChpbmplY3QoVFVJX0NMRUFSX1dPUkQpKTtcblxuICAgIHByb3RlY3RlZCBjb21wdXRlZEZpbGxlciA9IGNvbXB1dGVkKCh2YWx1ZSA9IHRoaXMudmFsdWUoKSkgPT4ge1xuICAgICAgICBjb25zdCBmaWxsZWRWYWx1ZSA9IHZhbHVlICsgdGhpcy5maWxsZXIoKS5zbGljZSh2YWx1ZS5sZW5ndGgpO1xuXG4gICAgICAgIHJldHVybiBmaWxsZWRWYWx1ZS5sZW5ndGggPiB2YWx1ZS5sZW5ndGggPyBmaWxsZWRWYWx1ZSA6ICcnO1xuICAgIH0pO1xuXG4gICAgcHJvdGVjdGVkIHNob3dGaWxsZXIgPSBjb21wdXRlZDxib29sZWFuPihcbiAgICAgICAgKCkgPT5cbiAgICAgICAgICAgIHRoaXMuZm9jdXNlZCgpICYmXG4gICAgICAgICAgICAhIXRoaXMuY29tcHV0ZWRGaWxsZXIoKSAmJlxuICAgICAgICAgICAgKCEhdGhpcy52YWx1ZSgpIHx8ICF0aGlzLmlucHV0Py5uYXRpdmVFbGVtZW50LnBsYWNlaG9sZGVyKSxcbiAgICApO1xuXG4gICAgQFZpZXdDaGlsZCgndmNyJywge3JlYWQ6IFZpZXdDb250YWluZXJSZWYsIHN0YXRpYzogdHJ1ZX0pXG4gICAgcHVibGljIHJlYWRvbmx5IHZjcj86IFZpZXdDb250YWluZXJSZWY7XG5cbiAgICBAQ29udGVudENoaWxkKFRVSV9URVhURklFTERfQUNDRVNTT1IsIHtkZXNjZW5kYW50czogdHJ1ZX0pXG4gICAgcHVibGljIHJlYWRvbmx5IGFjY2Vzc29yPzogVHVpVGV4dGZpZWxkQWNjZXNzb3I8VD47XG5cbiAgICBAQ29udGVudENoaWxkKGZvcndhcmRSZWYoKCkgPT4gVHVpVGV4dGZpZWxkRGlyZWN0aXZlKSwge1xuICAgICAgICByZWFkOiBFbGVtZW50UmVmLFxuICAgICAgICBzdGF0aWM6IHRydWUsXG4gICAgfSlcbiAgICBwdWJsaWMgcmVhZG9ubHkgaW5wdXQ/OiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgY29udGVudDogUG9seW1vcnBoZXVzQ29udGVudDxUdWlDb250ZXh0PFQ+PjtcblxuICAgIHB1YmxpYyByZWFkb25seSBmb2N1c2VkID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5vcGVuKCkgfHwgdGhpcy5mb2N1c2VkSW4oKSk7XG4gICAgcHVibGljIHJlYWRvbmx5IG9wdGlvbnMgPSBpbmplY3QoVFVJX1RFWFRGSUVMRF9PUFRJT05TKTtcbiAgICBwdWJsaWMgcmVhZG9ubHkgZWwgPSB0dWlJbmplY3RFbGVtZW50KCk7XG4gICAgcHVibGljIHJlYWRvbmx5IHZhbHVlID0gdG9TaWduYWwoXG4gICAgICAgIG1lcmdlKFxuICAgICAgICAgICAgZnJvbUV2ZW50KHR1aUluamVjdEVsZW1lbnQoKSwgJ2lucHV0JyksXG4gICAgICAgICAgICB0aGlzLmNvbnRlbnRSZWFkeSQucGlwZShcbiAgICAgICAgICAgICAgICBzd2l0Y2hNYXAoKCkgPT4gdHVpQ29udHJvbFZhbHVlKHRoaXMuY29udHJvbCA/PyBudWxsKSksXG4gICAgICAgICAgICApLFxuICAgICAgICApLnBpcGUobWFwKCgpID0+IHRoaXMuaW5wdXQ/Lm5hdGl2ZUVsZW1lbnQudmFsdWUgPz8gJycpKSxcbiAgICAgICAge2luaXRpYWxWYWx1ZTogJyd9LFxuICAgICk7XG5cbiAgICAvLyBUT0RPOiBSZWZhY3RvciB0byBzaWduYWwgcXVlcmllcyB3aGVuIEFuZ3VsYXIgaXMgdXBkYXRlZFxuICAgIHB1YmxpYyByZWFkb25seSBhdXhpbGlhcmllcyA9IHRvU2lnbmFsPHJlYWRvbmx5IG9iamVjdFtdPihcbiAgICAgICAgdGhpcy5jb250ZW50UmVhZHkkLnBpcGUoXG4gICAgICAgICAgICBzd2l0Y2hNYXAoKCkgPT4gdHVpUXVlcnlMaXN0Q2hhbmdlcyh0aGlzLmF1eGlsaWFyeVF1ZXJ5KSksXG4gICAgICAgICAgICBzdGFydFdpdGgoW10pLFxuICAgICAgICApLFxuICAgICAgICB7cmVxdWlyZVN5bmM6IHRydWV9LFxuICAgICk7XG5cbiAgICBASW5wdXQoJ2ZpbGxlcicpXG4gICAgcHVibGljIHNldCBmaWxsZXJTZXR0ZXIoZmlsbGVyOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5maWxsZXIuc2V0KGZpbGxlcik7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBpZCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5pbnB1dD8ubmF0aXZlRWxlbWVudC5pZCB8fCB0aGlzLmF1dG9JZDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHNpemUoKTogVHVpU2l6ZUwgfCBUdWlTaXplUyB7XG4gICAgICAgIHJldHVybiB0aGlzLm9wdGlvbnMuc2l6ZSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY29udGVudFJlYWR5JC5uZXh0KHRydWUpO1xuICAgIH1cblxuICAgIHB1YmxpYyBoYW5kbGVPcHRpb24ob3B0aW9uOiBUKTogdm9pZCB7XG4gICAgICAgIHRoaXMuYWNjZXNzb3I/LnNldFZhbHVlKG9wdGlvbik7XG4gICAgICAgIHRoaXMub3Blbi5zZXQoZmFsc2UpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgaGFzTGFiZWwoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBCb29sZWFuKHRoaXMubGFiZWw/Lm5hdGl2ZUVsZW1lbnQ/LmNoaWxkTm9kZXMubGVuZ3RoKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb25SZXNpemUoe2NvbnRlbnRSZWN0fTogUmVzaXplT2JzZXJ2ZXJFbnRyeSk6IHZvaWQge1xuICAgICAgICB0aGlzLmVsLnN0eWxlLnNldFByb3BlcnR5KCctLXQtc2lkZScsIHR1aVB4KGNvbnRlbnRSZWN0LndpZHRoKSk7XG4gICAgfVxuXG4gICAgLy8gQ2xpY2sgb24gOjpiZWZvcmUsOjphZnRlciBwc2V1ZG8tZWxlbWVudHMgKFtpY29uU3RhcnRdIC8gW2ljb25FbmRdKVxuICAgIHByb3RlY3RlZCBvbkljb25DbGljayhldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKGV2ZW50LnRhcmdldCAhPT0gdGhpcy5lbCB8fCB0aGlzLmlucHV0Py5uYXRpdmVFbGVtZW50Lm1hdGNoZXMoJzpyZWFkLW9ubHknKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgdGhpcy5pbnB1dD8ubmF0aXZlRWxlbWVudC5mb2N1cyh7cHJldmVudFNjcm9sbDogdHJ1ZX0pO1xuXG4gICAgICAgIGlmICh0aGlzLmRyb3Bkb3duT3Blbi50dWlEcm9wZG93bkVuYWJsZWQgJiYgdGhpcy5kcm9wZG93bi5jb250ZW50KSB7XG4gICAgICAgICAgICB0aGlzLm9wZW4udXBkYXRlKCh4KSA9PiAheCk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCI8bmctY29udGVudCBzZWxlY3Q9XCJpbnB1dFwiIC8+XG48bmctY29udGVudCBzZWxlY3Q9XCJzZWxlY3RcIiAvPlxuPG5nLWNvbnRlbnQgc2VsZWN0PVwidGV4dGFyZWFcIiAvPlxuPG5nLWNvbnRlbnQgc2VsZWN0PVwibGFiZWxcIiAvPlxuPHNwYW5cbiAgICBjbGFzcz1cInQtY29udGVudFwiXG4gICAgKG1vdXNlZG93bi5wcmV2ZW50KT1cImlucHV0Py5uYXRpdmVFbGVtZW50Py5mb2N1cygpXCJcbiAgICAod2FSZXNpemVPYnNlcnZlcik9XCIkZXZlbnRbMF0gJiYgb25SZXNpemUoJGV2ZW50WzBdKVwiXG4+XG4gICAgPG5nLWNvbnRlbnQgLz5cbiAgICA8YnV0dG9uXG4gICAgICAgICpuZ0lmPVwib3B0aW9ucy5jbGVhbmVyKClcIlxuICAgICAgICBhcHBlYXJhbmNlPVwiaWNvblwiXG4gICAgICAgIHNpemU9XCJ4c1wiXG4gICAgICAgIHRhYmluZGV4PVwiLTFcIlxuICAgICAgICB0dWlJY29uQnV0dG9uXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICBjbGFzcz1cInQtY2xlYXJcIlxuICAgICAgICBbaWNvblN0YXJ0XT1cImljb25zLmNsb3NlXCJcbiAgICAgICAgKGNsaWNrKT1cImFjY2Vzc29yPy5zZXRWYWx1ZShudWxsKVwiXG4gICAgICAgIChwb2ludGVyZG93bi56b25lbGVzcy5wcmV2ZW50KT1cImlucHV0Py5uYXRpdmVFbGVtZW50Py5mb2N1cygpXCJcbiAgICA+XG4gICAgICAgIHt7IGNsZWFyKCkgfX1cbiAgICA8L2J1dHRvbj5cbiAgICA8bmctY29udGFpbmVyICN2Y3IgLz5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJ0dWktaWNvblwiIC8+XG48L3NwYW4+XG48c3BhblxuICAgICpuZ0lmPVwiY29udHJvbD8udmFsdWUgIT0gbnVsbFwiXG4gICAgY2xhc3M9XCJ0LXRlbXBsYXRlXCJcbj5cbiAgICA8bmctY29udGFpbmVyICpwb2x5bW9ycGhldXNPdXRsZXQ9XCJjb250ZW50IGFzIHRleHQ7IGNvbnRleHQ6IHskaW1wbGljaXQ6IGNvbnRyb2w/LnZhbHVlfVwiPlxuICAgICAgICB7eyB0ZXh0IH19XG4gICAgPC9uZy1jb250YWluZXI+XG48L3NwYW4+XG48aW5wdXRcbiAgICAqbmdJZj1cInNob3dGaWxsZXIoKVwiXG4gICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICBkaXNhYmxlZFxuICAgIGNsYXNzPVwidC1maWxsZXJcIlxuICAgIFt2YWx1ZV09XCJjb21wdXRlZEZpbGxlcigpXCJcbi8+XG4iXX0=
148
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dGZpZWxkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvY29tcG9uZW50cy90ZXh0ZmllbGQvdGV4dGZpZWxkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvY29tcG9uZW50cy90ZXh0ZmllbGQvdGV4dGZpZWxkLnRlbXBsYXRlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBRXJDLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFFBQVEsRUFDUixZQUFZLEVBQ1osZUFBZSxFQUNmLFVBQVUsRUFDVixVQUFVLEVBQ1YsTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEVBQ04sU0FBUyxFQUNULGdCQUFnQixFQUNoQixpQkFBaUIsR0FDcEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBQ3BELE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6QyxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUM5RCxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDcEQsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDOUQsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBRW5ELE9BQU8sRUFBQyxnQkFBZ0IsRUFBRSxRQUFRLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUNuRSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDdkQsT0FBTyxFQUFDLEtBQUssRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBQ3hELE9BQU8sRUFBQyxTQUFTLEVBQUUsd0JBQXdCLEVBQUMs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QUFFLENBQUMscUJBQXFCLENBQUMsRUFBRTt3QkFDbkQsSUFBSSxFQUFFLFVBQVU7d0JBQ2hCLE1BQU0sRUFBRSxJQUFJO3FCQUNmO2dCQUlNLE9BQU87c0JBRGIsS0FBSztnQkFrQkssWUFBWTtzQkFEdEIsS0FBSzt1QkFBQyxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtOZ0lmfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHR5cGUge0FmdGVyQ29udGVudEluaXQsIFF1ZXJ5TGlzdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBjb21wdXRlZCxcbiAgICBDb250ZW50Q2hpbGQsXG4gICAgQ29udGVudENoaWxkcmVuLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgZm9yd2FyZFJlZixcbiAgICBpbmplY3QsXG4gICAgSW5wdXQsXG4gICAgc2lnbmFsLFxuICAgIFZpZXdDaGlsZCxcbiAgICBWaWV3Q29udGFpbmVyUmVmLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7dG9TaWduYWx9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7TmdDb250cm9sfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge1dhUmVzaXplT2JzZXJ2ZXJ9IGZyb20gJ0BuZy13ZWItYXBpcy9yZXNpemUtb2JzZXJ2ZXInO1xuaW1wb3J0IHtFTVBUWV9RVUVSWX0gZnJvbSAnQHRhaWdhLXVpL2Nkay9jb25zdGFudHMnO1xuaW1wb3J0IHt0dWlRdWVyeUxpc3RDaGFuZ2VzfSBmcm9tICdAdGFpZ2EtdWkvY2RrL29ic2VydmFibGVzJztcbmltcG9ydCB7dHVpSW5qZWN0SWR9IGZyb20gJ0B0YWlnYS11aS9jZGsvc2VydmljZXMnO1xuaW1wb3J0IHR5cGUge1R1aUNvbnRleHR9IGZyb20gJ0B0YWlnYS11aS9jZGsvdHlwZXMnO1xuaW1wb3J0IHt0dWlJbmplY3RFbGVtZW50LCB0dWlWYWx1ZX0gZnJvbSAnQHRhaWdhLXVpL2Nkay91dGlscy9kb20nO1xuaW1wb3J0IHt0dWlGb2N1c2VkSW59IGZyb20gJ0B0YWlnYS11aS9jZGsvdXRpbHMvZm9jdXMnO1xuaW1wb3J0IHt0dWlQeH0gZnJvbSAnQHRhaWdhLXVpL2Nkay91dGlscy9taXNjZWxsYW5lb3VzJztcbmltcG9ydCB7VHVpQnV0dG9uLCB0dWlCdXR0b25PcHRpb25zUHJvdmlkZXJ9IGZyb20gJ0B0YWlnYS11aS9jb3JlL2NvbXBvbmVudHMvYnV0dG9uJztcbmltcG9ydCB0eXBlIHtUdWlEYXRhTGlzdEhvc3R9IGZyb20gJ0B0YWlnYS11aS9jb3JlL2NvbXBvbmVudHMvZGF0YS1saXN0JztcbmltcG9ydCB7XG4gICAgdHVpQXNEYXRhTGlzdEhvc3QsXG4gICAgVHVpV2l0aE9wdGlvbkNvbnRlbnQsXG59IGZyb20gJ0B0YWlnYS11aS9jb3JlL2NvbXBvbmVudHMvZGF0YS1saXN0JztcbmltcG9ydCB7VHVpTGFiZWx9IGZyb20gJ0B0YWlnYS11aS9jb3JlL2NvbXBvbmVudHMvbGFiZWwnO1xuaW1wb3J0IHtcbiAgICBUdWlEcm9wZG93bkRpcmVjdGl2ZSxcbiAgICBUdWlEcm9wZG93bkZpeGVkLFxuICAgIFR1aURyb3Bkb3duT3BlbixcbiAgICB0dWlEcm9wZG93bk9wZW4sXG4gICAgVHVpV2l0aERyb3Bkb3duT3Blbixcbn0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvZGlyZWN0aXZlcy9kcm9wZG93bic7XG5pbXBvcnQge1R1aVdpdGhJY29uc30gZnJvbSAnQHRhaWdhLXVpL2NvcmUvZGlyZWN0aXZlcy9pY29ucyc7XG5pbXBvcnQge1R1aVdpdGhJdGVtc0hhbmRsZXJzfSBmcm9tICdAdGFpZ2EtdWkvY29yZS9kaXJlY3RpdmVzL2l0ZW1zLWhhbmRsZXJzJztcbmltcG9ydCB7VFVJX0NMRUFSX1dPUkQsIFRVSV9DT01NT05fSUNPTlN9IGZyb20gJ0B0YWlnYS11aS9jb3JlL3Rva2Vucyc7XG5pbXBvcnQgdHlwZSB7VHVpU2l6ZUwsIFR1aVNpemVTfSBmcm9tICdAdGFpZ2EtdWkvY29yZS90eXBlcyc7XG5pbXBvcnQgdHlwZSB7UG9seW1vcnBoZXVzQ29udGVudH0gZnJvbSAnQHRhaWdhLXVpL3BvbHltb3JwaGV1cyc7XG5pbXBvcnQge1BvbHltb3JwaGV1c091dGxldH0gZnJvbSAnQHRhaWdhLXVpL3BvbHltb3JwaGV1cyc7XG5pbXBvcnQge1JlcGxheVN1YmplY3QsIHN0YXJ0V2l0aCwgc3dpdGNoTWFwfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHtUdWlUZXh0ZmllbGREaXJlY3RpdmV9IGZyb20gJy4vdGV4dGZpZWxkLmRpcmVjdGl2ZSc7XG5pbXBvcnQge1RVSV9URVhURklFTERfT1BUSU9OU30gZnJvbSAnLi90ZXh0ZmllbGQub3B0aW9ucyc7XG5pbXBvcnQgdHlwZSB7VHVpVGV4dGZpZWxkQWNjZXNzb3J9IGZyb20gJy4vdGV4dGZpZWxkLWFjY2Vzc29yJztcbmltcG9ydCB7VFVJX1RFWFRGSUVMRF9BQ0NFU1NPUn0gZnJvbSAnLi90ZXh0ZmllbGQtYWNjZXNzb3InO1xuaW1wb3J0IHtUVUlfQVVYSUxJQVJZfSBmcm9tICcuL3RleHRmaWVsZC1hdXhpbGlhcnknO1xuaW1wb3J0IHtUdWlXaXRoVGV4dGZpZWxkRHJvcGRvd259IGZyb20gJy4vdGV4dGZpZWxkLWRyb3Bkb3duLmRpcmVjdGl2ZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgc2VsZWN0b3I6ICd0dWktdGV4dGZpZWxkJyxcbiAgICBpbXBvcnRzOiBbTmdJZiwgUG9seW1vcnBoZXVzT3V0bGV0LCBUdWlCdXR0b24sIFdhUmVzaXplT2JzZXJ2ZXJdLFxuICAgIHRlbXBsYXRlVXJsOiAnLi90ZXh0ZmllbGQudGVtcGxhdGUuaHRtbCcsXG4gICAgc3R5bGVzOiBbJ0BpbXBvcnQgXCJAdGFpZ2EtdWkvY29yZS9zdHlsZXMvY29tcG9uZW50cy90ZXh0ZmllbGQubGVzc1wiOyddLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHR1aUJ1dHRvbk9wdGlvbnNQcm92aWRlcih7c2l6ZTogJ3hzJywgYXBwZWFyYW5jZTogJ2ljb24nfSksXG4gICAgICAgIHR1aUFzRGF0YUxpc3RIb3N0KFR1aVRleHRmaWVsZENvbXBvbmVudCksXG4gICAgXSxcbiAgICBob3N0RGlyZWN0aXZlczogW1xuICAgICAgICBUdWlEcm9wZG93bkRpcmVjdGl2ZSxcbiAgICAgICAgVHVpRHJvcGRvd25GaXhlZCxcbiAgICAgICAgVHVpV2l0aERyb3Bkb3duT3BlbixcbiAgICAgICAgVHVpV2l0aEljb25zLFxuICAgICAgICBUdWlXaXRoSXRlbXNIYW5kbGVycyxcbiAgICAgICAgVHVpV2l0aE9wdGlvbkNvbnRlbnQsXG4gICAgICAgIFR1aVdpdGhUZXh0ZmllbGREcm9wZG93bixcbiAgICBdLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJ1thdHRyLmRhdGEtc2l6ZV0nOiAnb3B0aW9ucy5zaXplKCknLFxuICAgICAgICAnW2NsYXNzLl93aXRoLWxhYmVsXSc6ICdoYXNMYWJlbCcsXG4gICAgICAgICdbY2xhc3MuX3dpdGgtdGVtcGxhdGVdJzogJ2NvbnRlbnQnLFxuICAgICAgICAnW2NsYXNzLl9kaXNhYmxlZF0nOiAnaW5wdXQ/Lm5hdGl2ZUVsZW1lbnQuZGlzYWJsZWQnLFxuICAgICAgICAnKG1vdXNlZG93biknOiAnb25JY29uQ2xpY2soJGV2ZW50KScsXG4gICAgfSxcbn0pXG5leHBvcnQgY2xhc3MgVHVpVGV4dGZpZWxkQ29tcG9uZW50PFQ+IGltcGxlbWVudHMgVHVpRGF0YUxpc3RIb3N0PFQ+LCBBZnRlckNvbnRlbnRJbml0IHtcbiAgICAvLyBUT0RPOiByZWZhY3RvciB0byBzaWduYWwgaW5wdXRzIGFmdGVyIEFuZ3VsYXIgdXBkYXRlXG4gICAgcHJpdmF0ZSByZWFkb25seSBmaWxsZXIgPSBzaWduYWwoJycpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgYXV0b0lkID0gdHVpSW5qZWN0SWQoKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRyb3Bkb3duID0gaW5qZWN0KFR1aURyb3Bkb3duRGlyZWN0aXZlKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRyb3Bkb3duT3BlbiA9IGluamVjdChUdWlEcm9wZG93bk9wZW4pO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgb3BlbiA9IHR1aURyb3Bkb3duT3BlbigpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZm9jdXNlZEluID0gdHVpRm9jdXNlZEluKHR1aUluamVjdEVsZW1lbnQoKSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBjb250ZW50UmVhZHkkID0gbmV3IFJlcGxheVN1YmplY3Q8Ym9vbGVhbj4oMSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBpbnB1dFF1ZXJ5ID0gc2lnbmFsPEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD4gfCB1bmRlZmluZWQ+KFxuICAgICAgICB1bmRlZmluZWQsXG4gICAgKTtcblxuICAgIEBDb250ZW50Q2hpbGQoZm9yd2FyZFJlZigoKSA9PiBUdWlMYWJlbCksIHtyZWFkOiBFbGVtZW50UmVmfSlcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgbGFiZWw/OiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcblxuICAgIEBDb250ZW50Q2hpbGQoTmdDb250cm9sKVxuICAgIHByb3RlY3RlZCByZWFkb25seSBjb250cm9sPzogTmdDb250cm9sO1xuXG4gICAgQENvbnRlbnRDaGlsZHJlbihUVUlfQVVYSUxJQVJZLCB7ZGVzY2VuZGFudHM6IHRydWV9KVxuICAgIHByb3RlY3RlZCByZWFkb25seSBhdXhpbGlhcnlRdWVyeTogUXVlcnlMaXN0PG9iamVjdD4gPSBFTVBUWV9RVUVSWTtcblxuICAgIHByb3RlY3RlZCByZWFkb25seSBpY29ucyA9IGluamVjdChUVUlfQ09NTU9OX0lDT05TKTtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgY2xlYXIgPSB0b1NpZ25hbChpbmplY3QoVFVJX0NMRUFSX1dPUkQpKTtcblxuICAgIHByb3RlY3RlZCBjb21wdXRlZEZpbGxlciA9IGNvbXB1dGVkKCh2YWx1ZSA9IHRoaXMudmFsdWUoKSkgPT4ge1xuICAgICAgICBjb25zdCBmaWxsZWRWYWx1ZSA9IHZhbHVlICsgdGhpcy5maWxsZXIoKS5zbGljZSh2YWx1ZS5sZW5ndGgpO1xuXG4gICAgICAgIHJldHVybiBmaWxsZWRWYWx1ZS5sZW5ndGggPiB2YWx1ZS5sZW5ndGggPyBmaWxsZWRWYWx1ZSA6ICcnO1xuICAgIH0pO1xuXG4gICAgcHJvdGVjdGVkIHNob3dGaWxsZXIgPSBjb21wdXRlZDxib29sZWFuPihcbiAgICAgICAgKCkgPT5cbiAgICAgICAgICAgIHRoaXMuZm9jdXNlZCgpICYmXG4gICAgICAgICAgICAhIXRoaXMuY29tcHV0ZWRGaWxsZXIoKSAmJlxuICAgICAgICAgICAgKCEhdGhpcy52YWx1ZSgpIHx8ICF0aGlzLmlucHV0Py5uYXRpdmVFbGVtZW50LnBsYWNlaG9sZGVyKSxcbiAgICApO1xuXG4gICAgQFZpZXdDaGlsZCgndmNyJywge3JlYWQ6IFZpZXdDb250YWluZXJSZWYsIHN0YXRpYzogdHJ1ZX0pXG4gICAgcHVibGljIHJlYWRvbmx5IHZjcj86IFZpZXdDb250YWluZXJSZWY7XG5cbiAgICBAQ29udGVudENoaWxkKFRVSV9URVhURklFTERfQUNDRVNTT1IsIHtkZXNjZW5kYW50czogdHJ1ZX0pXG4gICAgcHVibGljIHJlYWRvbmx5IGFjY2Vzc29yPzogVHVpVGV4dGZpZWxkQWNjZXNzb3I8VD47XG5cbiAgICAvLyBUT0RPOiBSZXBsYWNlIHdpdGggc2lnbmFsIHF1ZXJ5IHdoZW4gQW5ndWxhciBpcyB1cGRhdGVkIHY1XG4gICAgQENvbnRlbnRDaGlsZChmb3J3YXJkUmVmKCgpID0+IFR1aVRleHRmaWVsZERpcmVjdGl2ZSksIHtcbiAgICAgICAgcmVhZDogRWxlbWVudFJlZixcbiAgICAgICAgc3RhdGljOiB0cnVlLFxuICAgIH0pXG4gICAgcHVibGljIHJlYWRvbmx5IGlucHV0PzogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PjtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGNvbnRlbnQ6IFBvbHltb3JwaGV1c0NvbnRlbnQ8VHVpQ29udGV4dDxUPj47XG5cbiAgICBwdWJsaWMgcmVhZG9ubHkgZm9jdXNlZCA9IGNvbXB1dGVkKCgpID0+IHRoaXMub3BlbigpIHx8IHRoaXMuZm9jdXNlZEluKCkpO1xuICAgIHB1YmxpYyByZWFkb25seSBvcHRpb25zID0gaW5qZWN0KFRVSV9URVhURklFTERfT1BUSU9OUyk7XG4gICAgcHVibGljIHJlYWRvbmx5IGVsID0gdHVpSW5qZWN0RWxlbWVudCgpO1xuICAgIHB1YmxpYyByZWFkb25seSB2YWx1ZSA9IHR1aVZhbHVlKHRoaXMuaW5wdXRRdWVyeSk7XG5cbiAgICAvLyBUT0RPOiBSZWZhY3RvciB0byBzaWduYWwgcXVlcmllcyB3aGVuIEFuZ3VsYXIgaXMgdXBkYXRlZFxuICAgIHB1YmxpYyByZWFkb25seSBhdXhpbGlhcmllcyA9IHRvU2lnbmFsPHJlYWRvbmx5IG9iamVjdFtdPihcbiAgICAgICAgdGhpcy5jb250ZW50UmVhZHkkLnBpcGUoXG4gICAgICAgICAgICBzd2l0Y2hNYXAoKCkgPT4gdHVpUXVlcnlMaXN0Q2hhbmdlcyh0aGlzLmF1eGlsaWFyeVF1ZXJ5KSksXG4gICAgICAgICAgICBzdGFydFdpdGgoW10pLFxuICAgICAgICApLFxuICAgICAgICB7cmVxdWlyZVN5bmM6IHRydWV9LFxuICAgICk7XG5cbiAgICBASW5wdXQoJ2ZpbGxlcicpXG4gICAgcHVibGljIHNldCBmaWxsZXJTZXR0ZXIoZmlsbGVyOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5maWxsZXIuc2V0KGZpbGxlcik7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBpZCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5pbnB1dD8ubmF0aXZlRWxlbWVudC5pZCB8fCB0aGlzLmF1dG9JZDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHNpemUoKTogVHVpU2l6ZUwgfCBUdWlTaXplUyB7XG4gICAgICAgIHJldHVybiB0aGlzLm9wdGlvbnMuc2l6ZSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY29udGVudFJlYWR5JC5uZXh0KHRydWUpO1xuICAgICAgICB0aGlzLmlucHV0UXVlcnkuc2V0KHRoaXMuaW5wdXQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBoYW5kbGVPcHRpb24ob3B0aW9uOiBUKTogdm9pZCB7XG4gICAgICAgIHRoaXMuYWNjZXNzb3I/LnNldFZhbHVlKG9wdGlvbik7XG4gICAgICAgIHRoaXMub3Blbi5zZXQoZmFsc2UpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgaGFzTGFiZWwoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBCb29sZWFuKHRoaXMubGFiZWw/Lm5hdGl2ZUVsZW1lbnQ/LmNoaWxkTm9kZXMubGVuZ3RoKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb25SZXNpemUoe2NvbnRlbnRSZWN0fTogUmVzaXplT2JzZXJ2ZXJFbnRyeSk6IHZvaWQge1xuICAgICAgICB0aGlzLmVsLnN0eWxlLnNldFByb3BlcnR5KCctLXQtc2lkZScsIHR1aVB4KGNvbnRlbnRSZWN0LndpZHRoKSk7XG4gICAgfVxuXG4gICAgLy8gQ2xpY2sgb24gOjpiZWZvcmUsOjphZnRlciBwc2V1ZG8tZWxlbWVudHMgKFtpY29uU3RhcnRdIC8gW2ljb25FbmRdKVxuICAgIHByb3RlY3RlZCBvbkljb25DbGljayhldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKGV2ZW50LnRhcmdldCAhPT0gdGhpcy5lbCB8fCB0aGlzLmlucHV0Py5uYXRpdmVFbGVtZW50Lm1hdGNoZXMoJzpyZWFkLW9ubHknKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgdGhpcy5pbnB1dD8ubmF0aXZlRWxlbWVudC5mb2N1cyh7cHJldmVudFNjcm9sbDogdHJ1ZX0pO1xuXG4gICAgICAgIGlmICh0aGlzLmRyb3Bkb3duT3Blbi50dWlEcm9wZG93bkVuYWJsZWQgJiYgdGhpcy5kcm9wZG93bi5jb250ZW50KSB7XG4gICAgICAgICAgICB0aGlzLm9wZW4udXBkYXRlKCh4KSA9PiAheCk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCI8bmctY29udGVudCBzZWxlY3Q9XCJpbnB1dFwiIC8+XG48bmctY29udGVudCBzZWxlY3Q9XCJzZWxlY3RcIiAvPlxuPG5nLWNvbnRlbnQgc2VsZWN0PVwidGV4dGFyZWFcIiAvPlxuPG5nLWNvbnRlbnQgc2VsZWN0PVwibGFiZWxcIiAvPlxuPHNwYW5cbiAgICBjbGFzcz1cInQtY29udGVudFwiXG4gICAgKHBvaW50ZXJkb3duLnByZXZlbnQpPVwiaW5wdXQ/Lm5hdGl2ZUVsZW1lbnQ/LmZvY3VzKClcIlxuICAgICh3YVJlc2l6ZU9ic2VydmVyKT1cIiRldmVudFswXSAmJiBvblJlc2l6ZSgkZXZlbnRbMF0pXCJcbj5cbiAgICA8bmctY29udGVudCAvPlxuICAgIDxidXR0b25cbiAgICAgICAgKm5nSWY9XCJvcHRpb25zLmNsZWFuZXIoKVwiXG4gICAgICAgIGFwcGVhcmFuY2U9XCJpY29uXCJcbiAgICAgICAgc2l6ZT1cInhzXCJcbiAgICAgICAgdGFiaW5kZXg9XCItMVwiXG4gICAgICAgIHR1aUljb25CdXR0b25cbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIGNsYXNzPVwidC1jbGVhclwiXG4gICAgICAgIFtpY29uU3RhcnRdPVwiaWNvbnMuY2xvc2VcIlxuICAgICAgICAoY2xpY2spPVwiYWNjZXNzb3I/LnNldFZhbHVlKG51bGwpXCJcbiAgICAgICAgKHBvaW50ZXJkb3duLnpvbmVsZXNzLnByZXZlbnQpPVwiaW5wdXQ/Lm5hdGl2ZUVsZW1lbnQ/LmZvY3VzKClcIlxuICAgID5cbiAgICAgICAge3sgY2xlYXIoKSB9fVxuICAgIDwvYnV0dG9uPlxuICAgIDxuZy1jb250YWluZXIgI3ZjciAvPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cInR1aS1pY29uXCIgLz5cbjwvc3Bhbj5cbjxzcGFuXG4gICAgKm5nSWY9XCJjb250cm9sPy52YWx1ZSAhPSBudWxsXCJcbiAgICBjbGFzcz1cInQtdGVtcGxhdGVcIlxuPlxuICAgIDxuZy1jb250YWluZXIgKnBvbHltb3JwaGV1c091dGxldD1cImNvbnRlbnQgYXMgdGV4dDsgY29udGV4dDogeyRpbXBsaWNpdDogY29udHJvbD8udmFsdWV9XCI+XG4gICAgICAgIHt7IHRleHQgfX1cbiAgICA8L25nLWNvbnRhaW5lcj5cbjwvc3Bhbj5cbjxpbnB1dFxuICAgICpuZ0lmPVwic2hvd0ZpbGxlcigpXCJcbiAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgIGRpc2FibGVkXG4gICAgY2xhc3M9XCJ0LWZpbGxlclwiXG4gICAgW3ZhbHVlXT1cImNvbXB1dGVkRmlsbGVyKClcIlxuLz5cbiJdfQ==