@taiga-ui/core 4.28.0-canary.dd3ec63 → 4.29.0-canary.06ea748
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.
- package/components/textfield/index.d.ts +2 -0
- package/components/textfield/select-like.directive.d.ts +6 -0
- package/components/textfield/textfield-icon.d.ts +6 -0
- package/directives/dropdown/{dropdown-fixed.directive.d.ts → dropdown-limit-width.d.ts} +5 -0
- package/directives/dropdown/dropdown.bindings.d.ts +2 -0
- package/directives/dropdown/index.d.ts +1 -1
- package/esm2022/components/root/root.component.mjs +1 -1
- package/esm2022/components/textfield/index.mjs +3 -1
- package/esm2022/components/textfield/select-like.directive.mjs +23 -0
- package/esm2022/components/textfield/textfield-icon.mjs +10 -0
- package/esm2022/directives/dropdown/dropdown-limit-width.mjs +37 -0
- package/esm2022/directives/dropdown/dropdown.bindings.mjs +4 -1
- package/esm2022/directives/dropdown/index.mjs +2 -2
- package/fesm2022/taiga-ui-core-components-root.mjs +1 -1
- package/fesm2022/taiga-ui-core-components-textfield.mjs +31 -5
- package/fesm2022/taiga-ui-core-components-textfield.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-directives-dropdown.mjs +19 -1
- package/fesm2022/taiga-ui-core-directives-dropdown.mjs.map +1 -1
- package/package.json +4 -4
- package/styles/theme/variables.less +1 -1
- package/esm2022/directives/dropdown/dropdown-fixed.directive.mjs +0 -21
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
export * from './select-like.directive';
|
|
1
2
|
export * from './textfield';
|
|
2
3
|
export * from './textfield.component';
|
|
3
4
|
export * from './textfield.directive';
|
|
@@ -5,4 +6,5 @@ export * from './textfield.options';
|
|
|
5
6
|
export * from './textfield-auxiliary';
|
|
6
7
|
export * from './textfield-content.directive';
|
|
7
8
|
export * from './textfield-dropdown.directive';
|
|
9
|
+
export * from './textfield-icon';
|
|
8
10
|
export * from './select.directive';
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import * as i0 from "@angular/core";
|
|
2
|
+
export declare class TuiSelectLike {
|
|
3
|
+
protected clear(element: HTMLInputElement): void;
|
|
4
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<TuiSelectLike, never>;
|
|
5
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<TuiSelectLike, never, never, {}, {}, never, never, true, never>;
|
|
6
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { ProviderToken, Signal } from '@angular/core';
|
|
2
|
+
import type { TuiHandler } from '@taiga-ui/cdk/types';
|
|
3
|
+
import type { TuiSizeL, TuiSizeS } from '@taiga-ui/core/types';
|
|
4
|
+
export declare function tuiTextfieldIconBinding(token: ProviderToken<{
|
|
5
|
+
icon: TuiHandler<TuiSizeL | TuiSizeS, string>;
|
|
6
|
+
}>): Signal<string>;
|
|
@@ -4,3 +4,8 @@ export declare class TuiDropdownFixed {
|
|
|
4
4
|
static ɵfac: i0.ɵɵFactoryDeclaration<TuiDropdownFixed, never>;
|
|
5
5
|
static ɵdir: i0.ɵɵDirectiveDeclaration<TuiDropdownFixed, never, never, {}, {}, never, never, true, never>;
|
|
6
6
|
}
|
|
7
|
+
export declare class TuiDropdownAuto {
|
|
8
|
+
constructor();
|
|
9
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<TuiDropdownAuto, never>;
|
|
10
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<TuiDropdownAuto, never, never, {}, {}, never, never, true, never>;
|
|
11
|
+
}
|
|
@@ -3,5 +3,7 @@ import type { PolymorpheusContent } from '@taiga-ui/polymorpheus';
|
|
|
3
3
|
type C = PolymorpheusContent;
|
|
4
4
|
export declare function tuiDropdown(value: C | WritableSignal<C>): WritableSignal<C>;
|
|
5
5
|
export declare function tuiDropdown(value: Signal<C>): Signal<C>;
|
|
6
|
+
export declare function tuiDropdownEnabled(value: WritableSignal<boolean> | boolean): WritableSignal<boolean>;
|
|
7
|
+
export declare function tuiDropdownEnabled(value: Signal<boolean>): Signal<boolean>;
|
|
6
8
|
export declare function tuiDropdownOpen(): WritableSignal<boolean>;
|
|
7
9
|
export {};
|
|
@@ -6,9 +6,9 @@ export * from './dropdown.driver';
|
|
|
6
6
|
export * from './dropdown.providers';
|
|
7
7
|
export * from './dropdown.service';
|
|
8
8
|
export * from './dropdown-context.directive';
|
|
9
|
-
export * from './dropdown-fixed.directive';
|
|
10
9
|
export * from './dropdown-hover.directive';
|
|
11
10
|
export * from './dropdown-hover.options';
|
|
11
|
+
export * from './dropdown-limit-width';
|
|
12
12
|
export * from './dropdown-manual.directive';
|
|
13
13
|
export * from './dropdown-open.directive';
|
|
14
14
|
export * from './dropdown-open-legacy.directive';
|
|
@@ -42,7 +42,7 @@ class TuiRoot extends TuiPortals {
|
|
|
42
42
|
console.assert(!!inject(EVENT_MANAGER_PLUGINS).find((plugin) => plugin instanceof PreventEventPlugin), 'NG_EVENT_PLUGINS is missing from global providers');
|
|
43
43
|
}
|
|
44
44
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiRoot, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
45
|
-
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.
|
|
45
|
+
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.29.0-canary.06ea748" }, listeners: { "touchstart.passive.zoneless": "0" }, properties: { "style.--tui-duration.ms": "duration", "style.--tui-scroll-behavior": "reducedMotion ? \"auto\" : \"smooth\"", "class._mobile": "isMobileRes()" } }, usesInheritance: true, hostDirectives: [{ directive: i1.TuiPlatform }, { directive: i2.TuiVisualViewport }, { directive: i3.TuiFontSize }], ngImport: i0, template: "<div class=\"t-root-content\"><ng-content /></div>\n<tui-scroll-controls\n *ngIf=\"scrollbars\"\n class=\"t-root-scrollbar\"\n/>\n<ng-container #viewContainer />\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", 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: TuiScrollControls, selector: "tui-scroll-controls" }], viewProviders: [tuiAsPortal(TuiPopupService)], changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None }); }
|
|
46
46
|
}
|
|
47
47
|
export { TuiRoot };
|
|
48
48
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiRoot, decorators: [{
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
export * from './select-like.directive';
|
|
1
2
|
export * from './textfield';
|
|
2
3
|
export * from './textfield.component';
|
|
3
4
|
export * from './textfield.directive';
|
|
@@ -5,6 +6,7 @@ export * from './textfield.options';
|
|
|
5
6
|
export * from './textfield-auxiliary';
|
|
6
7
|
export * from './textfield-content.directive';
|
|
7
8
|
export * from './textfield-dropdown.directive';
|
|
9
|
+
export * from './textfield-icon';
|
|
8
10
|
// Moving it down for order of compilation
|
|
9
11
|
export * from './select.directive';
|
|
10
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2NvbXBvbmVudHMvdGV4dGZpZWxkL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsZ0NBQWdDLENBQUM7QUFDL0MsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQywwQ0FBMEM7QUFDMUMsY0FBYyxvQkFBb0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vc2VsZWN0LWxpa2UuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vdGV4dGZpZWxkJztcbmV4cG9ydCAqIGZyb20gJy4vdGV4dGZpZWxkLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3RleHRmaWVsZC5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi90ZXh0ZmllbGQub3B0aW9ucyc7XG5leHBvcnQgKiBmcm9tICcuL3RleHRmaWVsZC1hdXhpbGlhcnknO1xuZXhwb3J0ICogZnJvbSAnLi90ZXh0ZmllbGQtY29udGVudC5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi90ZXh0ZmllbGQtZHJvcGRvd24uZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vdGV4dGZpZWxkLWljb24nO1xuLy8gTW92aW5nIGl0IGRvd24gZm9yIG9yZGVyIG9mIGNvbXBpbGF0aW9uXG5leHBvcnQgKiBmcm9tICcuL3NlbGVjdC5kaXJlY3RpdmUnO1xuIl19
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { Directive } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
class TuiSelectLike {
|
|
4
|
+
clear(element) {
|
|
5
|
+
element.value = '';
|
|
6
|
+
}
|
|
7
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiSelectLike, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
8
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: TuiSelectLike, isStandalone: true, host: { attributes: { "inputmode": "none" }, listeners: { "beforeinput": "$event.inputType.includes(\"delete\") || $event.preventDefault()", "input.capture": "$event.inputType?.includes(\"delete\") && clear($event.target)" } }, ngImport: i0 }); }
|
|
9
|
+
}
|
|
10
|
+
export { TuiSelectLike };
|
|
11
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiSelectLike, decorators: [{
|
|
12
|
+
type: Directive,
|
|
13
|
+
args: [{
|
|
14
|
+
standalone: true,
|
|
15
|
+
host: {
|
|
16
|
+
inputmode: 'none',
|
|
17
|
+
// Click on cleaner icon does not trigger `beforeinput` event --> handle all kind of deletion in input event
|
|
18
|
+
'(beforeinput)': '$event.inputType.includes("delete") || $event.preventDefault()',
|
|
19
|
+
'(input.capture)': '$event.inputType?.includes("delete") && clear($event.target)',
|
|
20
|
+
},
|
|
21
|
+
}]
|
|
22
|
+
}] });
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LWxpa2UuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9jb21wb25lbnRzL3RleHRmaWVsZC9zZWxlY3QtbGlrZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQzs7QUFFeEMsTUFTYSxhQUFhO0lBQ1osS0FBSyxDQUFDLE9BQXlCO1FBQ3JDLE9BQU8sQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7K0dBSFEsYUFBYTttR0FBYixhQUFhOztTQUFiLGFBQWE7NEZBQWIsYUFBYTtrQkFUekIsU0FBUzttQkFBQztvQkFDUCxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsSUFBSSxFQUFFO3dCQUNGLFNBQVMsRUFBRSxNQUFNO3dCQUNqQiw0R0FBNEc7d0JBQzVHLGVBQWUsRUFBRSxnRUFBZ0U7d0JBQ2pGLGlCQUFpQixFQUFFLDhEQUE4RDtxQkFDcEY7aUJBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0RpcmVjdGl2ZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaG9zdDoge1xuICAgICAgICBpbnB1dG1vZGU6ICdub25lJyxcbiAgICAgICAgLy8gQ2xpY2sgb24gY2xlYW5lciBpY29uIGRvZXMgbm90IHRyaWdnZXIgYGJlZm9yZWlucHV0YCBldmVudCAtLT4gaGFuZGxlIGFsbCBraW5kIG9mIGRlbGV0aW9uIGluIGlucHV0IGV2ZW50XG4gICAgICAgICcoYmVmb3JlaW5wdXQpJzogJyRldmVudC5pbnB1dFR5cGUuaW5jbHVkZXMoXCJkZWxldGVcIikgfHwgJGV2ZW50LnByZXZlbnREZWZhdWx0KCknLFxuICAgICAgICAnKGlucHV0LmNhcHR1cmUpJzogJyRldmVudC5pbnB1dFR5cGU/LmluY2x1ZGVzKFwiZGVsZXRlXCIpICYmIGNsZWFyKCRldmVudC50YXJnZXQpJyxcbiAgICB9LFxufSlcbmV4cG9ydCBjbGFzcyBUdWlTZWxlY3RMaWtlIHtcbiAgICBwcm90ZWN0ZWQgY2xlYXIoZWxlbWVudDogSFRNTElucHV0RWxlbWVudCk6IHZvaWQge1xuICAgICAgICBlbGVtZW50LnZhbHVlID0gJyc7XG4gICAgfVxufVxuIl19
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { computed, inject } from '@angular/core';
|
|
2
|
+
import { tuiDirectiveBinding } from '@taiga-ui/cdk/utils/miscellaneous';
|
|
3
|
+
import { TuiIcons } from '@taiga-ui/core/directives/icons';
|
|
4
|
+
import { TUI_TEXTFIELD_OPTIONS } from './textfield.options';
|
|
5
|
+
export function tuiTextfieldIconBinding(token) {
|
|
6
|
+
const textfield = inject(TUI_TEXTFIELD_OPTIONS);
|
|
7
|
+
const options = inject(token);
|
|
8
|
+
return tuiDirectiveBinding(TuiIcons, 'iconEnd', computed(() => options.icon(textfield.size())), {});
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dGZpZWxkLWljb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2NvbXBvbmVudHMvdGV4dGZpZWxkL3RleHRmaWVsZC1pY29uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBQyxRQUFRLEVBQUUsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRS9DLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBQ3RFLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxpQ0FBaUMsQ0FBQztBQUd6RCxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUUxRCxNQUFNLFVBQVUsdUJBQXVCLENBQ25DLEtBQXFFO0lBRXJFLE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0lBQ2hELE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUU5QixPQUFPLG1CQUFtQixDQUN0QixRQUFRLEVBQ1IsU0FBUyxFQUNULFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQzlDLEVBQUUsQ0FDTCxDQUFDO0FBQ04sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHtQcm92aWRlclRva2VuLCBTaWduYWx9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtjb21wdXRlZCwgaW5qZWN0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB0eXBlIHtUdWlIYW5kbGVyfSBmcm9tICdAdGFpZ2EtdWkvY2RrL3R5cGVzJztcbmltcG9ydCB7dHVpRGlyZWN0aXZlQmluZGluZ30gZnJvbSAnQHRhaWdhLXVpL2Nkay91dGlscy9taXNjZWxsYW5lb3VzJztcbmltcG9ydCB7VHVpSWNvbnN9IGZyb20gJ0B0YWlnYS11aS9jb3JlL2RpcmVjdGl2ZXMvaWNvbnMnO1xuaW1wb3J0IHR5cGUge1R1aVNpemVMLCBUdWlTaXplU30gZnJvbSAnQHRhaWdhLXVpL2NvcmUvdHlwZXMnO1xuXG5pbXBvcnQge1RVSV9URVhURklFTERfT1BUSU9OU30gZnJvbSAnLi90ZXh0ZmllbGQub3B0aW9ucyc7XG5cbmV4cG9ydCBmdW5jdGlvbiB0dWlUZXh0ZmllbGRJY29uQmluZGluZyhcbiAgICB0b2tlbjogUHJvdmlkZXJUb2tlbjx7aWNvbjogVHVpSGFuZGxlcjxUdWlTaXplTCB8IFR1aVNpemVTLCBzdHJpbmc+fT4sXG4pOiBTaWduYWw8c3RyaW5nPiB7XG4gICAgY29uc3QgdGV4dGZpZWxkID0gaW5qZWN0KFRVSV9URVhURklFTERfT1BUSU9OUyk7XG4gICAgY29uc3Qgb3B0aW9ucyA9IGluamVjdCh0b2tlbik7XG5cbiAgICByZXR1cm4gdHVpRGlyZWN0aXZlQmluZGluZyhcbiAgICAgICAgVHVpSWNvbnMsXG4gICAgICAgICdpY29uRW5kJyxcbiAgICAgICAgY29tcHV0ZWQoKCkgPT4gb3B0aW9ucy5pY29uKHRleHRmaWVsZC5zaXplKCkpKSxcbiAgICAgICAge30sXG4gICAgKTtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { Directive, inject } from '@angular/core';
|
|
2
|
+
import { tuiOverrideOptions } from '@taiga-ui/core/utils/miscellaneous';
|
|
3
|
+
import { TUI_DROPDOWN_DEFAULT_OPTIONS, TUI_DROPDOWN_OPTIONS, tuiDropdownOptionsProvider, } from './dropdown-options.directive';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
class TuiDropdownFixed {
|
|
6
|
+
constructor() {
|
|
7
|
+
const override = tuiOverrideOptions({ limitWidth: 'fixed' }, TUI_DROPDOWN_DEFAULT_OPTIONS);
|
|
8
|
+
override(inject(TUI_DROPDOWN_OPTIONS, { self: true, optional: true }), null);
|
|
9
|
+
}
|
|
10
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiDropdownFixed, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
11
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: TuiDropdownFixed, isStandalone: true, providers: [tuiDropdownOptionsProvider({})], ngImport: i0 }); }
|
|
12
|
+
}
|
|
13
|
+
export { TuiDropdownFixed };
|
|
14
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiDropdownFixed, decorators: [{
|
|
15
|
+
type: Directive,
|
|
16
|
+
args: [{
|
|
17
|
+
standalone: true,
|
|
18
|
+
providers: [tuiDropdownOptionsProvider({})],
|
|
19
|
+
}]
|
|
20
|
+
}], ctorParameters: function () { return []; } });
|
|
21
|
+
class TuiDropdownAuto {
|
|
22
|
+
constructor() {
|
|
23
|
+
/**
|
|
24
|
+
* Update directive props with new defaults before inputs are processed
|
|
25
|
+
* TODO: find better way to override TuiDropdownFixed host directive from parent component
|
|
26
|
+
*/
|
|
27
|
+
inject(TUI_DROPDOWN_OPTIONS).limitWidth = 'auto';
|
|
28
|
+
}
|
|
29
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiDropdownAuto, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
30
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: TuiDropdownAuto, isStandalone: true, ngImport: i0 }); }
|
|
31
|
+
}
|
|
32
|
+
export { TuiDropdownAuto };
|
|
33
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiDropdownAuto, decorators: [{
|
|
34
|
+
type: Directive,
|
|
35
|
+
args: [{ standalone: true }]
|
|
36
|
+
}], ctorParameters: function () { return []; } });
|
|
37
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24tbGltaXQtd2lkdGguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2RpcmVjdGl2ZXMvZHJvcGRvd24vZHJvcGRvd24tbGltaXQtd2lkdGgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDaEQsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sb0NBQW9DLENBQUM7QUFFdEUsT0FBTyxFQUNILDRCQUE0QixFQUM1QixvQkFBb0IsRUFDcEIsMEJBQTBCLEdBQzdCLE1BQU0sOEJBQThCLENBQUM7O0FBRXRDLE1BSWEsZ0JBQWdCO0lBQ3pCO1FBQ0ksTUFBTSxRQUFRLEdBQUcsa0JBQWtCLENBQy9CLEVBQUMsVUFBVSxFQUFFLE9BQU8sRUFBQyxFQUNyQiw0QkFBNEIsQ0FDL0IsQ0FBQztRQUVGLFFBQVEsQ0FBQyxNQUFNLENBQUMsb0JBQW9CLEVBQUUsRUFBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQy9FLENBQUM7K0dBUlEsZ0JBQWdCO21HQUFoQixnQkFBZ0IsaUNBRmQsQ0FBQywwQkFBMEIsQ0FBQyxFQUFFLENBQUMsQ0FBQzs7U0FFbEMsZ0JBQWdCOzRGQUFoQixnQkFBZ0I7a0JBSjVCLFNBQVM7bUJBQUM7b0JBQ1AsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFNBQVMsRUFBRSxDQUFDLDBCQUEwQixDQUFDLEVBQUUsQ0FBQyxDQUFDO2lCQUM5Qzs7QUFZRCxNQUNhLGVBQWU7SUFDeEI7UUFDSTs7O1dBR0c7UUFDRixNQUFNLENBQUMsb0JBQW9CLENBQVMsQ0FBQyxVQUFVLEdBQUcsTUFBTSxDQUFDO0lBQzlELENBQUM7K0dBUFEsZUFBZTttR0FBZixlQUFlOztTQUFmLGVBQWU7NEZBQWYsZUFBZTtrQkFEM0IsU0FBUzttQkFBQyxFQUFDLFVBQVUsRUFBRSxJQUFJLEVBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0RpcmVjdGl2ZSwgaW5qZWN0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7dHVpT3ZlcnJpZGVPcHRpb25zfSBmcm9tICdAdGFpZ2EtdWkvY29yZS91dGlscy9taXNjZWxsYW5lb3VzJztcblxuaW1wb3J0IHtcbiAgICBUVUlfRFJPUERPV05fREVGQVVMVF9PUFRJT05TLFxuICAgIFRVSV9EUk9QRE9XTl9PUFRJT05TLFxuICAgIHR1aURyb3Bkb3duT3B0aW9uc1Byb3ZpZGVyLFxufSBmcm9tICcuL2Ryb3Bkb3duLW9wdGlvbnMuZGlyZWN0aXZlJztcblxuQERpcmVjdGl2ZSh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBwcm92aWRlcnM6IFt0dWlEcm9wZG93bk9wdGlvbnNQcm92aWRlcih7fSldLFxufSlcbmV4cG9ydCBjbGFzcyBUdWlEcm9wZG93bkZpeGVkIHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgY29uc3Qgb3ZlcnJpZGUgPSB0dWlPdmVycmlkZU9wdGlvbnMoXG4gICAgICAgICAgICB7bGltaXRXaWR0aDogJ2ZpeGVkJ30sXG4gICAgICAgICAgICBUVUlfRFJPUERPV05fREVGQVVMVF9PUFRJT05TLFxuICAgICAgICApO1xuXG4gICAgICAgIG92ZXJyaWRlKGluamVjdChUVUlfRFJPUERPV05fT1BUSU9OUywge3NlbGY6IHRydWUsIG9wdGlvbmFsOiB0cnVlfSksIG51bGwpO1xuICAgIH1cbn1cblxuQERpcmVjdGl2ZSh7c3RhbmRhbG9uZTogdHJ1ZX0pXG5leHBvcnQgY2xhc3MgVHVpRHJvcGRvd25BdXRvIHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFVwZGF0ZSBkaXJlY3RpdmUgcHJvcHMgd2l0aCBuZXcgZGVmYXVsdHMgYmVmb3JlIGlucHV0cyBhcmUgcHJvY2Vzc2VkXG4gICAgICAgICAqIFRPRE86IGZpbmQgYmV0dGVyIHdheSB0byBvdmVycmlkZSBUdWlEcm9wZG93bkZpeGVkIGhvc3QgZGlyZWN0aXZlIGZyb20gcGFyZW50IGNvbXBvbmVudFxuICAgICAgICAgKi9cbiAgICAgICAgKGluamVjdChUVUlfRFJPUERPV05fT1BUSU9OUykgYXMgYW55KS5saW1pdFdpZHRoID0gJ2F1dG8nO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -6,6 +6,9 @@ import { TuiDropdownOpen } from './dropdown-open.directive';
|
|
|
6
6
|
export function tuiDropdown(value) {
|
|
7
7
|
return tuiDirectiveBinding(TuiDropdownDirective, 'tuiDropdown', value, {});
|
|
8
8
|
}
|
|
9
|
+
export function tuiDropdownEnabled(value) {
|
|
10
|
+
return tuiDirectiveBinding(TuiDropdownOpen, 'tuiDropdownEnabled', value, {});
|
|
11
|
+
}
|
|
9
12
|
export function tuiDropdownOpen() {
|
|
10
13
|
const open = tuiDirectiveBinding(TuiDropdownOpen, 'tuiDropdownOpen', false, {});
|
|
11
14
|
inject(TuiDropdownOpen)
|
|
@@ -13,4 +16,4 @@ export function tuiDropdownOpen() {
|
|
|
13
16
|
.subscribe((value) => open.set(value));
|
|
14
17
|
return open;
|
|
15
18
|
}
|
|
16
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24uYmluZGluZ3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2RpcmVjdGl2ZXMvZHJvcGRvd24vZHJvcGRvd24uYmluZGluZ3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNyQyxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUM5RCxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQztBQUd0RSxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUMxRCxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFNMUQsTUFBTSxVQUFVLFdBQVcsQ0FBQyxLQUFvQjtJQUM1QyxPQUFPLG1CQUFtQixDQUFDLG9CQUFvQixFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFDL0UsQ0FBQztBQU1ELE1BQU0sVUFBVSxrQkFBa0IsQ0FBQyxLQUFnQztJQUMvRCxPQUFPLG1CQUFtQixDQUFDLGVBQWUsRUFBRSxvQkFBb0IsRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFDakYsQ0FBQztBQUVELE1BQU0sVUFBVSxlQUFlO0lBQzNCLE1BQU0sSUFBSSxHQUE0QixtQkFBbUIsQ0FDckQsZUFBZSxFQUNmLGlCQUFpQixFQUNqQixLQUFLLEVBQ0wsRUFBRSxDQUNMLENBQUM7SUFFRixNQUFNLENBQUMsZUFBZSxDQUFDO1NBQ2xCLHFCQUFxQixDQUFDLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1NBQ2hELFNBQVMsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBRTNDLE9BQU8sSUFBSSxDQUFDO0FBQ2hCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7U2lnbmFsLCBXcml0YWJsZVNpZ25hbH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge2luamVjdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge3Rha2VVbnRpbERlc3Ryb3llZH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHt0dWlEaXJlY3RpdmVCaW5kaW5nfSBmcm9tICdAdGFpZ2EtdWkvY2RrL3V0aWxzL21pc2NlbGxhbmVvdXMnO1xuaW1wb3J0IHR5cGUge1BvbHltb3JwaGV1c0NvbnRlbnR9IGZyb20gJ0B0YWlnYS11aS9wb2x5bW9ycGhldXMnO1xuXG5pbXBvcnQge1R1aURyb3Bkb3duRGlyZWN0aXZlfSBmcm9tICcuL2Ryb3Bkb3duLmRpcmVjdGl2ZSc7XG5pbXBvcnQge1R1aURyb3Bkb3duT3Blbn0gZnJvbSAnLi9kcm9wZG93bi1vcGVuLmRpcmVjdGl2ZSc7XG5cbnR5cGUgQyA9IFBvbHltb3JwaGV1c0NvbnRlbnQ7XG5cbmV4cG9ydCBmdW5jdGlvbiB0dWlEcm9wZG93bih2YWx1ZTogQyB8IFdyaXRhYmxlU2lnbmFsPEM+KTogV3JpdGFibGVTaWduYWw8Qz47XG5leHBvcnQgZnVuY3Rpb24gdHVpRHJvcGRvd24odmFsdWU6IFNpZ25hbDxDPik6IFNpZ25hbDxDPjtcbmV4cG9ydCBmdW5jdGlvbiB0dWlEcm9wZG93bih2YWx1ZTogQyB8IFNpZ25hbDxDPik6IFNpZ25hbDxDPiB7XG4gICAgcmV0dXJuIHR1aURpcmVjdGl2ZUJpbmRpbmcoVHVpRHJvcGRvd25EaXJlY3RpdmUsICd0dWlEcm9wZG93bicsIHZhbHVlLCB7fSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0dWlEcm9wZG93bkVuYWJsZWQoXG4gICAgdmFsdWU6IFdyaXRhYmxlU2lnbmFsPGJvb2xlYW4+IHwgYm9vbGVhbixcbik6IFdyaXRhYmxlU2lnbmFsPGJvb2xlYW4+O1xuZXhwb3J0IGZ1bmN0aW9uIHR1aURyb3Bkb3duRW5hYmxlZCh2YWx1ZTogU2lnbmFsPGJvb2xlYW4+KTogU2lnbmFsPGJvb2xlYW4+O1xuZXhwb3J0IGZ1bmN0aW9uIHR1aURyb3Bkb3duRW5hYmxlZCh2YWx1ZTogU2lnbmFsPGJvb2xlYW4+IHwgYm9vbGVhbik6IFNpZ25hbDxib29sZWFuPiB7XG4gICAgcmV0dXJuIHR1aURpcmVjdGl2ZUJpbmRpbmcoVHVpRHJvcGRvd25PcGVuLCAndHVpRHJvcGRvd25FbmFibGVkJywgdmFsdWUsIHt9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHR1aURyb3Bkb3duT3BlbigpOiBXcml0YWJsZVNpZ25hbDxib29sZWFuPiB7XG4gICAgY29uc3Qgb3BlbjogV3JpdGFibGVTaWduYWw8Ym9vbGVhbj4gPSB0dWlEaXJlY3RpdmVCaW5kaW5nKFxuICAgICAgICBUdWlEcm9wZG93bk9wZW4sXG4gICAgICAgICd0dWlEcm9wZG93bk9wZW4nLFxuICAgICAgICBmYWxzZSxcbiAgICAgICAge30sXG4gICAgKTtcblxuICAgIGluamVjdChUdWlEcm9wZG93bk9wZW4pXG4gICAgICAgIC50dWlEcm9wZG93bk9wZW5DaGFuZ2UucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQoKSlcbiAgICAgICAgLnN1YnNjcmliZSgodmFsdWUpID0+IG9wZW4uc2V0KHZhbHVlKSk7XG5cbiAgICByZXR1cm4gb3Blbjtcbn1cbiJdfQ==
|
|
@@ -6,9 +6,9 @@ export * from './dropdown.driver';
|
|
|
6
6
|
export * from './dropdown.providers';
|
|
7
7
|
export * from './dropdown.service';
|
|
8
8
|
export * from './dropdown-context.directive';
|
|
9
|
-
export * from './dropdown-fixed.directive';
|
|
10
9
|
export * from './dropdown-hover.directive';
|
|
11
10
|
export * from './dropdown-hover.options';
|
|
11
|
+
export * from './dropdown-limit-width';
|
|
12
12
|
export * from './dropdown-manual.directive';
|
|
13
13
|
export * from './dropdown-open.directive';
|
|
14
14
|
export * from './dropdown-open-legacy.directive';
|
|
@@ -19,4 +19,4 @@ export * from './dropdown-position-sided.directive';
|
|
|
19
19
|
export * from './dropdown-selection.directive';
|
|
20
20
|
export * from './dropdowns.component';
|
|
21
21
|
export * from './with-dropdown-open.directive';
|
|
22
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2RpcmVjdGl2ZXMvZHJvcGRvd24vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxZQUFZLENBQUM7QUFDM0IsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMsZ0NBQWdDLENBQUM7QUFDL0MsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLGdDQUFnQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9kcm9wZG93bic7XG5leHBvcnQgKiBmcm9tICcuL2Ryb3Bkb3duLmJpbmRpbmdzJztcbmV4cG9ydCAqIGZyb20gJy4vZHJvcGRvd24uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vZHJvcGRvd24uZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vZHJvcGRvd24uZHJpdmVyJztcbmV4cG9ydCAqIGZyb20gJy4vZHJvcGRvd24ucHJvdmlkZXJzJztcbmV4cG9ydCAqIGZyb20gJy4vZHJvcGRvd24uc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2Ryb3Bkb3duLWNvbnRleHQuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vZHJvcGRvd24taG92ZXIuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vZHJvcGRvd24taG92ZXIub3B0aW9ucyc7XG5leHBvcnQgKiBmcm9tICcuL2Ryb3Bkb3duLWxpbWl0LXdpZHRoJztcbmV4cG9ydCAqIGZyb20gJy4vZHJvcGRvd24tbWFudWFsLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2Ryb3Bkb3duLW9wZW4uZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vZHJvcGRvd24tb3Blbi1sZWdhY3kuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vZHJvcGRvd24tb3B0aW9ucy5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9kcm9wZG93bi1wb3J0YWwuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vZHJvcGRvd24tcG9zaXRpb24uZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vZHJvcGRvd24tcG9zaXRpb24tc2lkZWQuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vZHJvcGRvd24tc2VsZWN0aW9uLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2Ryb3Bkb3ducy5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi93aXRoLWRyb3Bkb3duLW9wZW4uZGlyZWN0aXZlJztcbiJdfQ==
|
|
@@ -43,7 +43,7 @@ class TuiRoot extends TuiPortals {
|
|
|
43
43
|
console.assert(!!inject(EVENT_MANAGER_PLUGINS).find((plugin) => plugin instanceof PreventEventPlugin), 'NG_EVENT_PLUGINS is missing from global providers');
|
|
44
44
|
}
|
|
45
45
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiRoot, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
46
|
-
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.
|
|
46
|
+
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.29.0-canary.06ea748" }, listeners: { "touchstart.passive.zoneless": "0" }, properties: { "style.--tui-duration.ms": "duration", "style.--tui-scroll-behavior": "reducedMotion ? \"auto\" : \"smooth\"", "class._mobile": "isMobileRes()" } }, usesInheritance: true, hostDirectives: [{ directive: i1.TuiPlatform }, { directive: i2.TuiVisualViewport }, { directive: i3.TuiFontSize }], ngImport: i0, template: "<div class=\"t-root-content\"><ng-content /></div>\n<tui-scroll-controls\n *ngIf=\"scrollbars\"\n class=\"t-root-scrollbar\"\n/>\n<ng-container #viewContainer />\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", 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: TuiScrollControls, selector: "tui-scroll-controls" }], viewProviders: [tuiAsPortal(TuiPopupService)], changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None }); }
|
|
47
47
|
}
|
|
48
48
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiRoot, decorators: [{
|
|
49
49
|
type: Component,
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { Directive, signal, Optional, SkipSelf, inject, Input, computed, TemplateRef, ContentChild, DestroyRef, ElementRef, ViewContainerRef, Component, ViewEncapsulation, ChangeDetectionStrategy, forwardRef, ContentChildren, ViewChild } from '@angular/core';
|
|
1
3
|
import { TuiLabel } from '@taiga-ui/core/components/label';
|
|
2
4
|
import * as i3$1 from '@angular/common';
|
|
3
5
|
import { NgIf, DOCUMENT, CommonModule } from '@angular/common';
|
|
4
|
-
import * as i0 from '@angular/core';
|
|
5
|
-
import { signal, Optional, SkipSelf, inject, Directive, Input, computed, TemplateRef, ContentChild, DestroyRef, ElementRef, ViewContainerRef, Component, ViewEncapsulation, ChangeDetectionStrategy, forwardRef, ContentChildren, ViewChild } from '@angular/core';
|
|
6
6
|
import { WA_NAVIGATOR } from '@ng-web-apis/common';
|
|
7
7
|
import * as i1$1 from '@taiga-ui/cdk/directives/native-validator';
|
|
8
8
|
import { TuiNativeValidator } from '@taiga-ui/cdk/directives/native-validator';
|
|
9
|
-
import { tuiCreateToken, tuiProvide, tuiPx } from '@taiga-ui/cdk/utils/miscellaneous';
|
|
9
|
+
import { tuiCreateToken, tuiProvide, tuiPx, tuiDirectiveBinding } from '@taiga-ui/cdk/utils/miscellaneous';
|
|
10
10
|
import * as i2 from '@taiga-ui/core/directives/appearance';
|
|
11
11
|
import { tuiAppearance, tuiAppearanceState, tuiAppearanceMode, tuiAppearanceFocus, TuiAppearance } from '@taiga-ui/core/directives/appearance';
|
|
12
12
|
import { toSignal, takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
@@ -23,10 +23,30 @@ import { tuiAsDataListHost } from '@taiga-ui/core/components/data-list';
|
|
|
23
23
|
import * as i1 from '@taiga-ui/core/directives/dropdown';
|
|
24
24
|
import { tuiDropdown, tuiDropdownOpen, TuiDropdownFixed, TuiDropdownDirective, TuiWithDropdownOpen } from '@taiga-ui/core/directives/dropdown';
|
|
25
25
|
import * as i3 from '@taiga-ui/core/directives/icons';
|
|
26
|
-
import { TuiWithIcons } from '@taiga-ui/core/directives/icons';
|
|
26
|
+
import { TuiWithIcons, TuiIcons } from '@taiga-ui/core/directives/icons';
|
|
27
27
|
import { TUI_COMMON_ICONS, TUI_CLEAR_WORD } from '@taiga-ui/core/tokens';
|
|
28
28
|
import { PolymorpheusOutlet } from '@taiga-ui/polymorpheus';
|
|
29
29
|
|
|
30
|
+
class TuiSelectLike {
|
|
31
|
+
clear(element) {
|
|
32
|
+
element.value = '';
|
|
33
|
+
}
|
|
34
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiSelectLike, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
35
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: TuiSelectLike, isStandalone: true, host: { attributes: { "inputmode": "none" }, listeners: { "beforeinput": "$event.inputType.includes(\"delete\") || $event.preventDefault()", "input.capture": "$event.inputType?.includes(\"delete\") && clear($event.target)" } }, ngImport: i0 }); }
|
|
36
|
+
}
|
|
37
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiSelectLike, decorators: [{
|
|
38
|
+
type: Directive,
|
|
39
|
+
args: [{
|
|
40
|
+
standalone: true,
|
|
41
|
+
host: {
|
|
42
|
+
inputmode: 'none',
|
|
43
|
+
// Click on cleaner icon does not trigger `beforeinput` event --> handle all kind of deletion in input event
|
|
44
|
+
'(beforeinput)': '$event.inputType.includes("delete") || $event.preventDefault()',
|
|
45
|
+
'(input.capture)': '$event.inputType?.includes("delete") && clear($event.target)',
|
|
46
|
+
},
|
|
47
|
+
}]
|
|
48
|
+
}] });
|
|
49
|
+
|
|
30
50
|
const DEFAULT = {
|
|
31
51
|
appearance: 'textfield',
|
|
32
52
|
size: 'l',
|
|
@@ -406,9 +426,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
406
426
|
}]
|
|
407
427
|
}] });
|
|
408
428
|
|
|
429
|
+
function tuiTextfieldIconBinding(token) {
|
|
430
|
+
const textfield = inject(TUI_TEXTFIELD_OPTIONS);
|
|
431
|
+
const options = inject(token);
|
|
432
|
+
return tuiDirectiveBinding(TuiIcons, 'iconEnd', computed(() => options.icon(textfield.size())), {});
|
|
433
|
+
}
|
|
434
|
+
|
|
409
435
|
/**
|
|
410
436
|
* Generated bundle index. Do not edit.
|
|
411
437
|
*/
|
|
412
438
|
|
|
413
|
-
export { TUI_AUXILIARY, TUI_TEXTFIELD_OPTIONS, TuiSelect, TuiTextfield, TuiTextfieldBase, TuiTextfieldComponent, TuiTextfieldContent, TuiTextfieldDirective, TuiTextfieldDropdownDirective, TuiTextfieldOptionsDirective, TuiWithTextfield, TuiWithTextfieldDropdown, tuiAsAuxiliary, tuiInjectAuxiliary, tuiTextfieldOptionsProvider };
|
|
439
|
+
export { TUI_AUXILIARY, TUI_TEXTFIELD_OPTIONS, TuiSelect, TuiSelectLike, TuiTextfield, TuiTextfieldBase, TuiTextfieldComponent, TuiTextfieldContent, TuiTextfieldDirective, TuiTextfieldDropdownDirective, TuiTextfieldOptionsDirective, TuiWithTextfield, TuiWithTextfieldDropdown, tuiAsAuxiliary, tuiInjectAuxiliary, tuiTextfieldIconBinding, tuiTextfieldOptionsProvider };
|
|
414
440
|
//# sourceMappingURL=taiga-ui-core-components-textfield.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-core-components-textfield.mjs","sources":["../../../projects/core/components/textfield/textfield.options.ts","../../../projects/core/components/textfield/textfield-auxiliary.ts","../../../projects/core/components/textfield/textfield-dropdown.directive.ts","../../../projects/core/components/textfield/textfield.component.ts","../../../projects/core/components/textfield/textfield.template.html","../../../projects/core/components/textfield/textfield.directive.ts","../../../projects/core/components/textfield/select.directive.ts","../../../projects/core/components/textfield/select.template.html","../../../projects/core/components/textfield/textfield.ts","../../../projects/core/components/textfield/textfield-content.directive.ts","../../../projects/core/components/textfield/taiga-ui-core-components-textfield.ts"],"sourcesContent":["import type {Provider, WritableSignal} from '@angular/core';\nimport {Directive, inject, Input, Optional, signal, SkipSelf} from '@angular/core';\nimport {tuiCreateToken, tuiProvide} from '@taiga-ui/cdk/utils/miscellaneous';\nimport type {TuiSizeL, TuiSizeS} from '@taiga-ui/core/types';\n\nconst DEFAULT = {\n appearance: 'textfield',\n size: 'l',\n cleaner: true,\n} as const;\n\nexport interface TuiTextfieldOptions {\n readonly appearance: WritableSignal<string>;\n readonly size: WritableSignal<TuiSizeL | TuiSizeS>;\n readonly cleaner: WritableSignal<boolean>;\n}\n\nexport const TUI_TEXTFIELD_OPTIONS = tuiCreateToken<TuiTextfieldOptions>({\n appearance: signal(DEFAULT.appearance),\n size: signal(DEFAULT.size),\n cleaner: signal(DEFAULT.cleaner),\n});\n\nexport function tuiTextfieldOptionsProvider(\n options: Partial<TuiTextfieldOptions>,\n): Provider {\n return {\n provide: TUI_TEXTFIELD_OPTIONS,\n deps: [[new Optional(), new SkipSelf(), TUI_TEXTFIELD_OPTIONS]],\n useFactory: (parent: TuiTextfieldOptions | null) => ({\n appearance: signal(parent?.appearance() ?? DEFAULT.appearance),\n size: signal(parent?.size() ?? DEFAULT.size),\n cleaner: signal(parent?.cleaner() ?? DEFAULT.cleaner),\n ...options,\n }),\n };\n}\n\n@Directive({\n standalone: true,\n selector: '[tuiTextfieldAppearance],[tuiTextfieldSize],[tuiTextfieldCleaner]',\n providers: [tuiProvide(TUI_TEXTFIELD_OPTIONS, TuiTextfieldOptionsDirective)],\n})\nexport class TuiTextfieldOptionsDirective implements TuiTextfieldOptions {\n private readonly options = inject(TUI_TEXTFIELD_OPTIONS, {skipSelf: true});\n\n // TODO: refactor to signal inputs after Angular update\n public appearance = signal(this.options.appearance());\n public size = signal(this.options.size());\n public cleaner = signal(this.options.cleaner());\n\n @Input()\n public set tuiTextfieldAppearance(appearance: string) {\n this.appearance.set(appearance);\n }\n\n @Input()\n public set tuiTextfieldSize(size: TuiSizeL | TuiSizeS) {\n this.size.set(size);\n }\n\n @Input()\n public set tuiTextfieldCleaner(enabled: boolean) {\n this.cleaner.set(enabled);\n }\n}\n","import type {Provider, Signal, Type} from '@angular/core';\nimport {computed, inject} from '@angular/core';\nimport {tuiCreateToken, tuiProvide} from '@taiga-ui/cdk/utils/miscellaneous';\n\nimport {TuiTextfieldComponent} from './textfield.component';\n\nexport const TUI_AUXILIARY = tuiCreateToken(null);\n\nexport function tuiAsAuxiliary(x: Type<unknown>): Provider {\n return tuiProvide(TUI_AUXILIARY, x);\n}\n\nexport function tuiInjectAuxiliary<T>(\n predicate: (auxiliary: Type<unknown>, index: number) => boolean,\n): Signal<T | null> {\n const {auxiliaries} = inject(TuiTextfieldComponent);\n\n return computed(() => (auxiliaries().find(predicate) ?? null) as T | null);\n}\n","import {ContentChild, Directive, TemplateRef} from '@angular/core';\nimport {tuiDropdown} from '@taiga-ui/core/directives/dropdown';\nimport type {PolymorpheusContent} from '@taiga-ui/polymorpheus';\n\n@Directive({\n standalone: true,\n selector: 'ng-template[tuiTextfieldDropdown]',\n})\nexport class TuiTextfieldDropdownDirective {}\n\n@Directive({\n standalone: true,\n})\nexport class TuiWithTextfieldDropdown {\n private readonly dropdown = tuiDropdown(null);\n\n @ContentChild(TuiTextfieldDropdownDirective, {read: TemplateRef, descendants: true})\n protected set template(template: PolymorpheusContent) {\n this.dropdown.set(template);\n }\n}\n","import {NgIf} from '@angular/common';\nimport type {AfterContentInit, QueryList, Type} from '@angular/core';\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n ContentChild,\n ContentChildren,\n DestroyRef,\n ElementRef,\n forwardRef,\n inject,\n Input,\n signal,\n ViewChild,\n ViewContainerRef,\n ViewEncapsulation,\n} from '@angular/core';\nimport {takeUntilDestroyed, toSignal} from '@angular/core/rxjs-interop';\nimport {NgControl} from '@angular/forms';\nimport {WaResizeObserver} from '@ng-web-apis/resize-observer';\nimport {EMPTY_QUERY} from '@taiga-ui/cdk/constants';\nimport {tuiQueryListChanges} from '@taiga-ui/cdk/observables';\nimport {tuiInjectId} from '@taiga-ui/cdk/services';\nimport type {TuiContext, TuiStringHandler} from '@taiga-ui/cdk/types';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {tuiFocusedIn} from '@taiga-ui/cdk/utils/focus';\nimport {tuiPx} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TuiButton, tuiButtonOptionsProvider} from '@taiga-ui/core/components/button';\nimport type {TuiDataListHost} from '@taiga-ui/core/components/data-list';\nimport {tuiAsDataListHost} from '@taiga-ui/core/components/data-list';\nimport {TuiLabel} from '@taiga-ui/core/components/label';\nimport {\n TuiDropdownDirective,\n TuiDropdownFixed,\n tuiDropdownOpen,\n TuiWithDropdownOpen,\n} from '@taiga-ui/core/directives/dropdown';\nimport {TuiWithIcons} from '@taiga-ui/core/directives/icons';\nimport {TUI_CLEAR_WORD, TUI_COMMON_ICONS} from '@taiga-ui/core/tokens';\nimport type {TuiSizeL, TuiSizeS} from '@taiga-ui/core/types';\nimport type {PolymorpheusContent} from '@taiga-ui/polymorpheus';\nimport {PolymorpheusOutlet} from '@taiga-ui/polymorpheus';\n\nimport {TuiTextfieldDirective} from './textfield.directive';\nimport {TUI_TEXTFIELD_OPTIONS} from './textfield.options';\nimport {TUI_AUXILIARY} from './textfield-auxiliary';\nimport {TuiWithTextfieldDropdown} from './textfield-dropdown.directive';\n\n@Component({\n standalone: true,\n selector: 'tui-textfield',\n imports: [NgIf, PolymorpheusOutlet, TuiButton, WaResizeObserver],\n templateUrl: './textfield.template.html',\n styles: ['@import \"@taiga-ui/core/styles/components/textfield.less\";'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n tuiButtonOptionsProvider({size: 'xs', appearance: 'icon'}),\n tuiAsDataListHost(TuiTextfieldComponent),\n ],\n hostDirectives: [\n TuiDropdownFixed,\n TuiDropdownDirective,\n TuiWithDropdownOpen,\n TuiWithTextfieldDropdown,\n TuiWithIcons,\n ],\n host: {\n '[attr.data-size]': 'options.size()',\n '[class._with-label]': 'hasLabel',\n '[class._with-template]': 'content',\n '[class._disabled]': 'input?.nativeElement.disabled',\n },\n})\nexport class TuiTextfieldComponent<T> implements TuiDataListHost<T>, AfterContentInit {\n // TODO: refactor to signal inputs after Angular update\n private readonly filler = signal('');\n private readonly autoId = tuiInjectId();\n private readonly open = tuiDropdownOpen();\n private readonly focusedIn = tuiFocusedIn(tuiInjectElement());\n private readonly destroyRef = inject(DestroyRef);\n\n @ContentChild(forwardRef(() => TuiLabel), {read: ElementRef})\n protected readonly label?: ElementRef<HTMLElement>;\n\n @ContentChild(NgControl)\n protected readonly control?: NgControl;\n\n @ContentChildren(TUI_AUXILIARY, {descendants: true})\n protected readonly auxiliaryQuery: QueryList<Type<unknown>> = EMPTY_QUERY;\n\n protected readonly icons = inject(TUI_COMMON_ICONS);\n protected readonly clear = toSignal(inject(TUI_CLEAR_WORD));\n\n protected computedFiller = computed(() => {\n const value = this.directive?.value() || '';\n const filledValue = value + this.filler().slice(value.length);\n\n return filledValue.length > value.length ? filledValue : '';\n });\n\n protected showFiller = computed<boolean>(\n () =>\n this.focused() &&\n !!this.computedFiller() &&\n (!!this.directive?.value() || !this.input?.nativeElement.placeholder),\n );\n\n @ViewChild('vcr', {read: ViewContainerRef, static: true})\n public readonly vcr?: ViewContainerRef;\n\n @ContentChild(forwardRef(() => TuiTextfieldDirective), {static: true})\n public readonly directive?: TuiTextfieldDirective<T>;\n\n @ContentChild(forwardRef(() => TuiTextfieldDirective), {\n read: ElementRef,\n static: true,\n })\n public readonly input?: ElementRef<HTMLInputElement>;\n\n @Input()\n public stringify: TuiStringHandler<T> = String;\n\n @Input()\n public content: PolymorpheusContent<TuiContext<T>>;\n\n public readonly focused = computed(() => this.open() || this.focusedIn());\n public readonly options = inject(TUI_TEXTFIELD_OPTIONS);\n public readonly el = tuiInjectElement();\n public readonly auxiliaries = signal<ReadonlyArray<Type<unknown>>>([]);\n\n @Input('filler')\n public set fillerSetter(filler: string) {\n this.filler.set(filler);\n }\n\n public get id(): string {\n return this.input?.nativeElement.id || this.autoId;\n }\n\n public get size(): TuiSizeL | TuiSizeS {\n return this.options.size();\n }\n\n // TODO: Refactor to signal queries when Angular is updated\n public ngAfterContentInit(): void {\n tuiQueryListChanges(this.auxiliaryQuery)\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((auxiliaries) => this.auxiliaries.set(auxiliaries));\n }\n\n public handleOption(option: T): void {\n this.directive?.setValue(option);\n this.open.set(false);\n }\n\n protected get hasLabel(): boolean {\n return Boolean(this.label?.nativeElement?.childNodes.length);\n }\n\n protected onResize({contentRect}: ResizeObserverEntry): void {\n this.el.style.setProperty('--t-side', tuiPx(contentRect.width));\n }\n}\n","<ng-content select=\"input\" />\n<ng-content select=\"select\" />\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)=\"directive?.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 class=\"t-template\">\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","import type {OnChanges} from '@angular/core';\nimport {computed, Directive, inject, Input, signal} from '@angular/core';\nimport {toSignal} from '@angular/core/rxjs-interop';\nimport {NgControl} from '@angular/forms';\nimport {TuiNativeValidator} from '@taiga-ui/cdk/directives/native-validator';\nimport {tuiControlValue} from '@taiga-ui/cdk/observables';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {\n TuiAppearance,\n tuiAppearance,\n tuiAppearanceFocus,\n tuiAppearanceMode,\n tuiAppearanceState,\n} from '@taiga-ui/core/directives/appearance';\nimport type {TuiInteractiveState} from '@taiga-ui/core/types';\nimport {fromEvent, map, merge, switchMap, timer} from 'rxjs';\n\nimport {TuiTextfieldComponent} from './textfield.component';\nimport {TUI_TEXTFIELD_OPTIONS} from './textfield.options';\n\n@Directive()\nexport class TuiTextfieldBase<T> implements OnChanges {\n // TODO: refactor to signal inputs after Angular update\n private readonly focused = signal<boolean | null>(null);\n\n protected readonly control = inject(NgControl, {optional: true});\n protected readonly a = tuiAppearance(inject(TUI_TEXTFIELD_OPTIONS).appearance);\n protected readonly s = tuiAppearanceState(null);\n protected readonly m = tuiAppearanceMode(this.mode);\n protected readonly f = tuiAppearanceFocus(\n computed(() => this.focused() ?? this.textfield.focused()),\n );\n\n protected readonly el = tuiInjectElement<HTMLInputElement>();\n protected readonly textfield: TuiTextfieldComponent<T> =\n inject(TuiTextfieldComponent);\n\n @Input()\n public readOnly = false;\n\n @Input()\n public invalid: boolean | null = null;\n\n public readonly value = toSignal(\n merge(\n fromEvent(this.el, 'input'),\n timer(0) // https://github.com/angular/angular/issues/54418\n .pipe(switchMap(() => tuiControlValue(this.control))),\n ).pipe(map(() => this.el.value)),\n {initialValue: this.el.value},\n );\n\n @Input('focused')\n public set focusedSetter(focused: boolean | null) {\n this.focused.set(focused);\n }\n\n @Input('state')\n public set stateSetter(state: TuiInteractiveState | null) {\n this.s.set(state);\n }\n\n public get mode(): string | null {\n if (this.readOnly) {\n return 'readonly';\n }\n\n if (this.invalid === false) {\n return 'valid';\n }\n\n if (this.invalid) {\n return 'invalid';\n }\n\n return null;\n }\n\n // TODO: refactor to signal inputs after Angular update\n public ngOnChanges(): void {\n this.m.set(this.mode);\n }\n\n public setValue(value: T | null): void {\n this.el.focus();\n this.el.select();\n\n if (value == null) {\n this.el.ownerDocument.execCommand('delete');\n } else {\n this.el.ownerDocument.execCommand(\n 'insertText',\n false,\n this.textfield.stringify(value),\n );\n }\n }\n}\n\n@Directive({\n standalone: true,\n // TODO: Remove :not in v.5\n selector:\n 'input[tuiTextfield]:not([tuiInputCard]):not([tuiInputExpire]):not([tuiInputCVC])',\n hostDirectives: [TuiNativeValidator, TuiAppearance],\n host: {\n '[id]': 'textfield.id',\n '[readOnly]': 'readOnly',\n '[class._empty]': 'el.value === \"\"',\n '(input)': '0',\n '(focusin)': '0',\n '(focusout)': '0',\n },\n})\nexport class TuiTextfieldDirective<T> extends TuiTextfieldBase<T> {}\n\n@Directive({\n standalone: true,\n hostDirectives: [\n {\n directive: TuiTextfieldDirective,\n inputs: ['invalid', 'focused', 'readOnly', 'state'],\n },\n ],\n})\nexport class TuiWithTextfield {}\n","import {CommonModule, DOCUMENT} from '@angular/common';\nimport {ChangeDetectionStrategy, Component, inject, Input} from '@angular/core';\nimport {WA_NAVIGATOR} from '@ng-web-apis/common';\nimport {TuiNativeValidator} from '@taiga-ui/cdk/directives/native-validator';\nimport {tuiProvide} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TuiAppearance} from '@taiga-ui/core/directives/appearance';\n\nimport {TuiTextfieldBase, TuiTextfieldDirective} from './textfield.directive';\n\n@Component({\n standalone: true,\n selector: 'select[tuiTextfield]',\n imports: [CommonModule],\n templateUrl: './select.template.html',\n // We want this template to follow change detection to parent textfield.\n // eslint-disable-next-line @angular-eslint/prefer-on-push-component-change-detection\n changeDetection: ChangeDetectionStrategy.Default,\n providers: [tuiProvide(TuiTextfieldDirective, TuiSelect)],\n hostDirectives: [TuiNativeValidator, TuiAppearance],\n host: {\n '[id]': 'textfield.id',\n '[class._empty]': 'stringified === \"\"',\n '[attr.aria-label]': 'ariaLabel',\n '(input)': '0',\n '(focusin)': '0',\n '(focusout)': '0',\n '(keydown.space.prevent)': '0',\n '(keydown.enter.prevent)': '0',\n '(keydown.backspace)': 'setValue(\"\")',\n '(mousedown.prevent)': 'focus()',\n '(keydown.control.c)': 'onCopy()',\n '(keydown.meta.c)': 'onCopy()',\n },\n})\nexport class TuiSelect<T> extends TuiTextfieldBase<T> {\n private readonly nav = inject(WA_NAVIGATOR);\n private readonly doc = inject(DOCUMENT);\n\n @Input()\n public placeholder = '';\n\n public override setValue(value: T): void {\n this.control?.control?.setValue(value);\n this.el.dispatchEvent(new Event('input', {bubbles: true}));\n }\n\n public focus(): void {\n this.el.classList.add('_ios-fix');\n this.el.focus();\n this.el.classList.remove('_ios-fix');\n }\n\n protected get ariaLabel(): string | null {\n return this.doc.querySelector(`label[for=\"${this.el.id}\"]`)\n ? null\n : this.el.getAttribute('aria-label') || this.placeholder;\n }\n\n protected get stringified(): string {\n return this.textfield.stringify(this.control?.value ?? '');\n }\n\n protected async onCopy(): Promise<void> {\n await this.nav.clipboard.writeText(this.stringified);\n }\n}\n","<option\n *ngIf=\"placeholder && !stringified; else selected\"\n disabled\n selected\n value=\"\"\n>\n {{ placeholder }}\n</option>\n<ng-template #selected>\n <option\n *ngFor=\"let item of [stringified]\"\n selected\n [value]=\"item\"\n >\n {{ item }}\n </option>\n</ng-template>\n","import {TuiLabel} from '@taiga-ui/core/components/label';\n\nimport {TuiSelect} from './select.directive';\nimport {TuiTextfieldComponent} from './textfield.component';\nimport {TuiTextfieldDirective} from './textfield.directive';\nimport {TuiTextfieldOptionsDirective} from './textfield.options';\nimport {TuiTextfieldDropdownDirective} from './textfield-dropdown.directive';\n\nexport const TuiTextfield = [\n TuiLabel,\n TuiSelect,\n TuiTextfieldComponent,\n TuiTextfieldDirective,\n TuiTextfieldOptionsDirective,\n TuiTextfieldDropdownDirective,\n] as const;\n","import type {DoCheck} from '@angular/core';\nimport {Directive, inject, TemplateRef} from '@angular/core';\n\nimport {TuiTextfieldComponent} from './textfield.component';\n\n@Directive({\n standalone: true,\n selector: 'ng-template[tuiTextfieldContent]',\n})\nexport class TuiTextfieldContent implements DoCheck {\n private readonly ref = inject(TuiTextfieldComponent).vcr?.createEmbeddedView(\n inject(TemplateRef),\n );\n\n public ngDoCheck(): void {\n this.ref?.detectChanges();\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i2.TuiWithTextfieldDropdown","i1","i3"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"taiga-ui-core-components-textfield.mjs","sources":["../../../projects/core/components/textfield/select-like.directive.ts","../../../projects/core/components/textfield/textfield.options.ts","../../../projects/core/components/textfield/textfield-auxiliary.ts","../../../projects/core/components/textfield/textfield-dropdown.directive.ts","../../../projects/core/components/textfield/textfield.component.ts","../../../projects/core/components/textfield/textfield.template.html","../../../projects/core/components/textfield/textfield.directive.ts","../../../projects/core/components/textfield/select.directive.ts","../../../projects/core/components/textfield/select.template.html","../../../projects/core/components/textfield/textfield.ts","../../../projects/core/components/textfield/textfield-content.directive.ts","../../../projects/core/components/textfield/textfield-icon.ts","../../../projects/core/components/textfield/taiga-ui-core-components-textfield.ts"],"sourcesContent":["import {Directive} from '@angular/core';\n\n@Directive({\n standalone: true,\n host: {\n inputmode: 'none',\n // Click on cleaner icon does not trigger `beforeinput` event --> handle all kind of deletion in input event\n '(beforeinput)': '$event.inputType.includes(\"delete\") || $event.preventDefault()',\n '(input.capture)': '$event.inputType?.includes(\"delete\") && clear($event.target)',\n },\n})\nexport class TuiSelectLike {\n protected clear(element: HTMLInputElement): void {\n element.value = '';\n }\n}\n","import type {Provider, WritableSignal} from '@angular/core';\nimport {Directive, inject, Input, Optional, signal, SkipSelf} from '@angular/core';\nimport {tuiCreateToken, tuiProvide} from '@taiga-ui/cdk/utils/miscellaneous';\nimport type {TuiSizeL, TuiSizeS} from '@taiga-ui/core/types';\n\nconst DEFAULT = {\n appearance: 'textfield',\n size: 'l',\n cleaner: true,\n} as const;\n\nexport interface TuiTextfieldOptions {\n readonly appearance: WritableSignal<string>;\n readonly size: WritableSignal<TuiSizeL | TuiSizeS>;\n readonly cleaner: WritableSignal<boolean>;\n}\n\nexport const TUI_TEXTFIELD_OPTIONS = tuiCreateToken<TuiTextfieldOptions>({\n appearance: signal(DEFAULT.appearance),\n size: signal(DEFAULT.size),\n cleaner: signal(DEFAULT.cleaner),\n});\n\nexport function tuiTextfieldOptionsProvider(\n options: Partial<TuiTextfieldOptions>,\n): Provider {\n return {\n provide: TUI_TEXTFIELD_OPTIONS,\n deps: [[new Optional(), new SkipSelf(), TUI_TEXTFIELD_OPTIONS]],\n useFactory: (parent: TuiTextfieldOptions | null) => ({\n appearance: signal(parent?.appearance() ?? DEFAULT.appearance),\n size: signal(parent?.size() ?? DEFAULT.size),\n cleaner: signal(parent?.cleaner() ?? DEFAULT.cleaner),\n ...options,\n }),\n };\n}\n\n@Directive({\n standalone: true,\n selector: '[tuiTextfieldAppearance],[tuiTextfieldSize],[tuiTextfieldCleaner]',\n providers: [tuiProvide(TUI_TEXTFIELD_OPTIONS, TuiTextfieldOptionsDirective)],\n})\nexport class TuiTextfieldOptionsDirective implements TuiTextfieldOptions {\n private readonly options = inject(TUI_TEXTFIELD_OPTIONS, {skipSelf: true});\n\n // TODO: refactor to signal inputs after Angular update\n public appearance = signal(this.options.appearance());\n public size = signal(this.options.size());\n public cleaner = signal(this.options.cleaner());\n\n @Input()\n public set tuiTextfieldAppearance(appearance: string) {\n this.appearance.set(appearance);\n }\n\n @Input()\n public set tuiTextfieldSize(size: TuiSizeL | TuiSizeS) {\n this.size.set(size);\n }\n\n @Input()\n public set tuiTextfieldCleaner(enabled: boolean) {\n this.cleaner.set(enabled);\n }\n}\n","import type {Provider, Signal, Type} from '@angular/core';\nimport {computed, inject} from '@angular/core';\nimport {tuiCreateToken, tuiProvide} from '@taiga-ui/cdk/utils/miscellaneous';\n\nimport {TuiTextfieldComponent} from './textfield.component';\n\nexport const TUI_AUXILIARY = tuiCreateToken(null);\n\nexport function tuiAsAuxiliary(x: Type<unknown>): Provider {\n return tuiProvide(TUI_AUXILIARY, x);\n}\n\nexport function tuiInjectAuxiliary<T>(\n predicate: (auxiliary: Type<unknown>, index: number) => boolean,\n): Signal<T | null> {\n const {auxiliaries} = inject(TuiTextfieldComponent);\n\n return computed(() => (auxiliaries().find(predicate) ?? null) as T | null);\n}\n","import {ContentChild, Directive, TemplateRef} from '@angular/core';\nimport {tuiDropdown} from '@taiga-ui/core/directives/dropdown';\nimport type {PolymorpheusContent} from '@taiga-ui/polymorpheus';\n\n@Directive({\n standalone: true,\n selector: 'ng-template[tuiTextfieldDropdown]',\n})\nexport class TuiTextfieldDropdownDirective {}\n\n@Directive({\n standalone: true,\n})\nexport class TuiWithTextfieldDropdown {\n private readonly dropdown = tuiDropdown(null);\n\n @ContentChild(TuiTextfieldDropdownDirective, {read: TemplateRef, descendants: true})\n protected set template(template: PolymorpheusContent) {\n this.dropdown.set(template);\n }\n}\n","import {NgIf} from '@angular/common';\nimport type {AfterContentInit, QueryList, Type} from '@angular/core';\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n ContentChild,\n ContentChildren,\n DestroyRef,\n ElementRef,\n forwardRef,\n inject,\n Input,\n signal,\n ViewChild,\n ViewContainerRef,\n ViewEncapsulation,\n} from '@angular/core';\nimport {takeUntilDestroyed, toSignal} from '@angular/core/rxjs-interop';\nimport {NgControl} from '@angular/forms';\nimport {WaResizeObserver} from '@ng-web-apis/resize-observer';\nimport {EMPTY_QUERY} from '@taiga-ui/cdk/constants';\nimport {tuiQueryListChanges} from '@taiga-ui/cdk/observables';\nimport {tuiInjectId} from '@taiga-ui/cdk/services';\nimport type {TuiContext, TuiStringHandler} from '@taiga-ui/cdk/types';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {tuiFocusedIn} from '@taiga-ui/cdk/utils/focus';\nimport {tuiPx} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TuiButton, tuiButtonOptionsProvider} from '@taiga-ui/core/components/button';\nimport type {TuiDataListHost} from '@taiga-ui/core/components/data-list';\nimport {tuiAsDataListHost} from '@taiga-ui/core/components/data-list';\nimport {TuiLabel} from '@taiga-ui/core/components/label';\nimport {\n TuiDropdownDirective,\n TuiDropdownFixed,\n tuiDropdownOpen,\n TuiWithDropdownOpen,\n} from '@taiga-ui/core/directives/dropdown';\nimport {TuiWithIcons} from '@taiga-ui/core/directives/icons';\nimport {TUI_CLEAR_WORD, TUI_COMMON_ICONS} from '@taiga-ui/core/tokens';\nimport type {TuiSizeL, TuiSizeS} from '@taiga-ui/core/types';\nimport type {PolymorpheusContent} from '@taiga-ui/polymorpheus';\nimport {PolymorpheusOutlet} from '@taiga-ui/polymorpheus';\n\nimport {TuiTextfieldDirective} from './textfield.directive';\nimport {TUI_TEXTFIELD_OPTIONS} from './textfield.options';\nimport {TUI_AUXILIARY} from './textfield-auxiliary';\nimport {TuiWithTextfieldDropdown} from './textfield-dropdown.directive';\n\n@Component({\n standalone: true,\n selector: 'tui-textfield',\n imports: [NgIf, PolymorpheusOutlet, TuiButton, WaResizeObserver],\n templateUrl: './textfield.template.html',\n styles: ['@import \"@taiga-ui/core/styles/components/textfield.less\";'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n tuiButtonOptionsProvider({size: 'xs', appearance: 'icon'}),\n tuiAsDataListHost(TuiTextfieldComponent),\n ],\n hostDirectives: [\n TuiDropdownFixed,\n TuiDropdownDirective,\n TuiWithDropdownOpen,\n TuiWithTextfieldDropdown,\n TuiWithIcons,\n ],\n host: {\n '[attr.data-size]': 'options.size()',\n '[class._with-label]': 'hasLabel',\n '[class._with-template]': 'content',\n '[class._disabled]': 'input?.nativeElement.disabled',\n },\n})\nexport class TuiTextfieldComponent<T> implements TuiDataListHost<T>, AfterContentInit {\n // TODO: refactor to signal inputs after Angular update\n private readonly filler = signal('');\n private readonly autoId = tuiInjectId();\n private readonly open = tuiDropdownOpen();\n private readonly focusedIn = tuiFocusedIn(tuiInjectElement());\n private readonly destroyRef = inject(DestroyRef);\n\n @ContentChild(forwardRef(() => TuiLabel), {read: ElementRef})\n protected readonly label?: ElementRef<HTMLElement>;\n\n @ContentChild(NgControl)\n protected readonly control?: NgControl;\n\n @ContentChildren(TUI_AUXILIARY, {descendants: true})\n protected readonly auxiliaryQuery: QueryList<Type<unknown>> = EMPTY_QUERY;\n\n protected readonly icons = inject(TUI_COMMON_ICONS);\n protected readonly clear = toSignal(inject(TUI_CLEAR_WORD));\n\n protected computedFiller = computed(() => {\n const value = this.directive?.value() || '';\n const filledValue = value + this.filler().slice(value.length);\n\n return filledValue.length > value.length ? filledValue : '';\n });\n\n protected showFiller = computed<boolean>(\n () =>\n this.focused() &&\n !!this.computedFiller() &&\n (!!this.directive?.value() || !this.input?.nativeElement.placeholder),\n );\n\n @ViewChild('vcr', {read: ViewContainerRef, static: true})\n public readonly vcr?: ViewContainerRef;\n\n @ContentChild(forwardRef(() => TuiTextfieldDirective), {static: true})\n public readonly directive?: TuiTextfieldDirective<T>;\n\n @ContentChild(forwardRef(() => TuiTextfieldDirective), {\n read: ElementRef,\n static: true,\n })\n public readonly input?: ElementRef<HTMLInputElement>;\n\n @Input()\n public stringify: TuiStringHandler<T> = String;\n\n @Input()\n public content: PolymorpheusContent<TuiContext<T>>;\n\n public readonly focused = computed(() => this.open() || this.focusedIn());\n public readonly options = inject(TUI_TEXTFIELD_OPTIONS);\n public readonly el = tuiInjectElement();\n public readonly auxiliaries = signal<ReadonlyArray<Type<unknown>>>([]);\n\n @Input('filler')\n public set fillerSetter(filler: string) {\n this.filler.set(filler);\n }\n\n public get id(): string {\n return this.input?.nativeElement.id || this.autoId;\n }\n\n public get size(): TuiSizeL | TuiSizeS {\n return this.options.size();\n }\n\n // TODO: Refactor to signal queries when Angular is updated\n public ngAfterContentInit(): void {\n tuiQueryListChanges(this.auxiliaryQuery)\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((auxiliaries) => this.auxiliaries.set(auxiliaries));\n }\n\n public handleOption(option: T): void {\n this.directive?.setValue(option);\n this.open.set(false);\n }\n\n protected get hasLabel(): boolean {\n return Boolean(this.label?.nativeElement?.childNodes.length);\n }\n\n protected onResize({contentRect}: ResizeObserverEntry): void {\n this.el.style.setProperty('--t-side', tuiPx(contentRect.width));\n }\n}\n","<ng-content select=\"input\" />\n<ng-content select=\"select\" />\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)=\"directive?.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 class=\"t-template\">\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","import type {OnChanges} from '@angular/core';\nimport {computed, Directive, inject, Input, signal} from '@angular/core';\nimport {toSignal} from '@angular/core/rxjs-interop';\nimport {NgControl} from '@angular/forms';\nimport {TuiNativeValidator} from '@taiga-ui/cdk/directives/native-validator';\nimport {tuiControlValue} from '@taiga-ui/cdk/observables';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {\n TuiAppearance,\n tuiAppearance,\n tuiAppearanceFocus,\n tuiAppearanceMode,\n tuiAppearanceState,\n} from '@taiga-ui/core/directives/appearance';\nimport type {TuiInteractiveState} from '@taiga-ui/core/types';\nimport {fromEvent, map, merge, switchMap, timer} from 'rxjs';\n\nimport {TuiTextfieldComponent} from './textfield.component';\nimport {TUI_TEXTFIELD_OPTIONS} from './textfield.options';\n\n@Directive()\nexport class TuiTextfieldBase<T> implements OnChanges {\n // TODO: refactor to signal inputs after Angular update\n private readonly focused = signal<boolean | null>(null);\n\n protected readonly control = inject(NgControl, {optional: true});\n protected readonly a = tuiAppearance(inject(TUI_TEXTFIELD_OPTIONS).appearance);\n protected readonly s = tuiAppearanceState(null);\n protected readonly m = tuiAppearanceMode(this.mode);\n protected readonly f = tuiAppearanceFocus(\n computed(() => this.focused() ?? this.textfield.focused()),\n );\n\n protected readonly el = tuiInjectElement<HTMLInputElement>();\n protected readonly textfield: TuiTextfieldComponent<T> =\n inject(TuiTextfieldComponent);\n\n @Input()\n public readOnly = false;\n\n @Input()\n public invalid: boolean | null = null;\n\n public readonly value = toSignal(\n merge(\n fromEvent(this.el, 'input'),\n timer(0) // https://github.com/angular/angular/issues/54418\n .pipe(switchMap(() => tuiControlValue(this.control))),\n ).pipe(map(() => this.el.value)),\n {initialValue: this.el.value},\n );\n\n @Input('focused')\n public set focusedSetter(focused: boolean | null) {\n this.focused.set(focused);\n }\n\n @Input('state')\n public set stateSetter(state: TuiInteractiveState | null) {\n this.s.set(state);\n }\n\n public get mode(): string | null {\n if (this.readOnly) {\n return 'readonly';\n }\n\n if (this.invalid === false) {\n return 'valid';\n }\n\n if (this.invalid) {\n return 'invalid';\n }\n\n return null;\n }\n\n // TODO: refactor to signal inputs after Angular update\n public ngOnChanges(): void {\n this.m.set(this.mode);\n }\n\n public setValue(value: T | null): void {\n this.el.focus();\n this.el.select();\n\n if (value == null) {\n this.el.ownerDocument.execCommand('delete');\n } else {\n this.el.ownerDocument.execCommand(\n 'insertText',\n false,\n this.textfield.stringify(value),\n );\n }\n }\n}\n\n@Directive({\n standalone: true,\n // TODO: Remove :not in v.5\n selector:\n 'input[tuiTextfield]:not([tuiInputCard]):not([tuiInputExpire]):not([tuiInputCVC])',\n hostDirectives: [TuiNativeValidator, TuiAppearance],\n host: {\n '[id]': 'textfield.id',\n '[readOnly]': 'readOnly',\n '[class._empty]': 'el.value === \"\"',\n '(input)': '0',\n '(focusin)': '0',\n '(focusout)': '0',\n },\n})\nexport class TuiTextfieldDirective<T> extends TuiTextfieldBase<T> {}\n\n@Directive({\n standalone: true,\n hostDirectives: [\n {\n directive: TuiTextfieldDirective,\n inputs: ['invalid', 'focused', 'readOnly', 'state'],\n },\n ],\n})\nexport class TuiWithTextfield {}\n","import {CommonModule, DOCUMENT} from '@angular/common';\nimport {ChangeDetectionStrategy, Component, inject, Input} from '@angular/core';\nimport {WA_NAVIGATOR} from '@ng-web-apis/common';\nimport {TuiNativeValidator} from '@taiga-ui/cdk/directives/native-validator';\nimport {tuiProvide} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TuiAppearance} from '@taiga-ui/core/directives/appearance';\n\nimport {TuiTextfieldBase, TuiTextfieldDirective} from './textfield.directive';\n\n@Component({\n standalone: true,\n selector: 'select[tuiTextfield]',\n imports: [CommonModule],\n templateUrl: './select.template.html',\n // We want this template to follow change detection to parent textfield.\n // eslint-disable-next-line @angular-eslint/prefer-on-push-component-change-detection\n changeDetection: ChangeDetectionStrategy.Default,\n providers: [tuiProvide(TuiTextfieldDirective, TuiSelect)],\n hostDirectives: [TuiNativeValidator, TuiAppearance],\n host: {\n '[id]': 'textfield.id',\n '[class._empty]': 'stringified === \"\"',\n '[attr.aria-label]': 'ariaLabel',\n '(input)': '0',\n '(focusin)': '0',\n '(focusout)': '0',\n '(keydown.space.prevent)': '0',\n '(keydown.enter.prevent)': '0',\n '(keydown.backspace)': 'setValue(\"\")',\n '(mousedown.prevent)': 'focus()',\n '(keydown.control.c)': 'onCopy()',\n '(keydown.meta.c)': 'onCopy()',\n },\n})\nexport class TuiSelect<T> extends TuiTextfieldBase<T> {\n private readonly nav = inject(WA_NAVIGATOR);\n private readonly doc = inject(DOCUMENT);\n\n @Input()\n public placeholder = '';\n\n public override setValue(value: T): void {\n this.control?.control?.setValue(value);\n this.el.dispatchEvent(new Event('input', {bubbles: true}));\n }\n\n public focus(): void {\n this.el.classList.add('_ios-fix');\n this.el.focus();\n this.el.classList.remove('_ios-fix');\n }\n\n protected get ariaLabel(): string | null {\n return this.doc.querySelector(`label[for=\"${this.el.id}\"]`)\n ? null\n : this.el.getAttribute('aria-label') || this.placeholder;\n }\n\n protected get stringified(): string {\n return this.textfield.stringify(this.control?.value ?? '');\n }\n\n protected async onCopy(): Promise<void> {\n await this.nav.clipboard.writeText(this.stringified);\n }\n}\n","<option\n *ngIf=\"placeholder && !stringified; else selected\"\n disabled\n selected\n value=\"\"\n>\n {{ placeholder }}\n</option>\n<ng-template #selected>\n <option\n *ngFor=\"let item of [stringified]\"\n selected\n [value]=\"item\"\n >\n {{ item }}\n </option>\n</ng-template>\n","import {TuiLabel} from '@taiga-ui/core/components/label';\n\nimport {TuiSelect} from './select.directive';\nimport {TuiTextfieldComponent} from './textfield.component';\nimport {TuiTextfieldDirective} from './textfield.directive';\nimport {TuiTextfieldOptionsDirective} from './textfield.options';\nimport {TuiTextfieldDropdownDirective} from './textfield-dropdown.directive';\n\nexport const TuiTextfield = [\n TuiLabel,\n TuiSelect,\n TuiTextfieldComponent,\n TuiTextfieldDirective,\n TuiTextfieldOptionsDirective,\n TuiTextfieldDropdownDirective,\n] as const;\n","import type {DoCheck} from '@angular/core';\nimport {Directive, inject, TemplateRef} from '@angular/core';\n\nimport {TuiTextfieldComponent} from './textfield.component';\n\n@Directive({\n standalone: true,\n selector: 'ng-template[tuiTextfieldContent]',\n})\nexport class TuiTextfieldContent implements DoCheck {\n private readonly ref = inject(TuiTextfieldComponent).vcr?.createEmbeddedView(\n inject(TemplateRef),\n );\n\n public ngDoCheck(): void {\n this.ref?.detectChanges();\n }\n}\n","import type {ProviderToken, Signal} from '@angular/core';\nimport {computed, inject} from '@angular/core';\nimport type {TuiHandler} from '@taiga-ui/cdk/types';\nimport {tuiDirectiveBinding} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TuiIcons} from '@taiga-ui/core/directives/icons';\nimport type {TuiSizeL, TuiSizeS} from '@taiga-ui/core/types';\n\nimport {TUI_TEXTFIELD_OPTIONS} from './textfield.options';\n\nexport function tuiTextfieldIconBinding(\n token: ProviderToken<{icon: TuiHandler<TuiSizeL | TuiSizeS, string>}>,\n): Signal<string> {\n const textfield = inject(TUI_TEXTFIELD_OPTIONS);\n const options = inject(token);\n\n return tuiDirectiveBinding(\n TuiIcons,\n 'iconEnd',\n computed(() => options.icon(textfield.size())),\n {},\n );\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i2.TuiWithTextfieldDropdown","i1","i3"],"mappings":"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"}
|
|
@@ -918,6 +918,9 @@ const TuiDropdown = [
|
|
|
918
918
|
function tuiDropdown(value) {
|
|
919
919
|
return tuiDirectiveBinding(TuiDropdownDirective, 'tuiDropdown', value, {});
|
|
920
920
|
}
|
|
921
|
+
function tuiDropdownEnabled(value) {
|
|
922
|
+
return tuiDirectiveBinding(TuiDropdownOpen, 'tuiDropdownEnabled', value, {});
|
|
923
|
+
}
|
|
921
924
|
function tuiDropdownOpen() {
|
|
922
925
|
const open = tuiDirectiveBinding(TuiDropdownOpen, 'tuiDropdownOpen', false, {});
|
|
923
926
|
inject(TuiDropdownOpen)
|
|
@@ -941,6 +944,21 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
941
944
|
providers: [tuiDropdownOptionsProvider({})],
|
|
942
945
|
}]
|
|
943
946
|
}], ctorParameters: function () { return []; } });
|
|
947
|
+
class TuiDropdownAuto {
|
|
948
|
+
constructor() {
|
|
949
|
+
/**
|
|
950
|
+
* Update directive props with new defaults before inputs are processed
|
|
951
|
+
* TODO: find better way to override TuiDropdownFixed host directive from parent component
|
|
952
|
+
*/
|
|
953
|
+
inject(TUI_DROPDOWN_OPTIONS).limitWidth = 'auto';
|
|
954
|
+
}
|
|
955
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiDropdownAuto, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
956
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: TuiDropdownAuto, isStandalone: true, ngImport: i0 }); }
|
|
957
|
+
}
|
|
958
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiDropdownAuto, decorators: [{
|
|
959
|
+
type: Directive,
|
|
960
|
+
args: [{ standalone: true }]
|
|
961
|
+
}], ctorParameters: function () { return []; } });
|
|
944
962
|
|
|
945
963
|
/**
|
|
946
964
|
* Host element for dynamically created portals, for example using {@link TuiDropdownDirective}.
|
|
@@ -982,5 +1000,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
982
1000
|
* Generated bundle index. Do not edit.
|
|
983
1001
|
*/
|
|
984
1002
|
|
|
985
|
-
export { TUI_DROPDOWN_COMPONENT, TUI_DROPDOWN_CONTEXT, TUI_DROPDOWN_DEFAULT_OPTIONS, TUI_DROPDOWN_HOVER_DEFAULT_OPTIONS, TUI_DROPDOWN_HOVER_OPTIONS, TUI_DROPDOWN_OPTIONS, TuiDropdown, TuiDropdownComponent, TuiDropdownContext, TuiDropdownDirective, TuiDropdownDriver, TuiDropdownDriverDirective, TuiDropdownFixed, TuiDropdownHover, TuiDropdownManual, TuiDropdownOpen, TuiDropdownOpenLegacy, TuiDropdownOptionsDirective, TuiDropdownPortal, TuiDropdownPosition, TuiDropdownPositionSided, TuiDropdownSelection, TuiDropdownService, TuiDropdowns, TuiWithDropdownOpen, tuiDropdown, tuiDropdownHoverOptionsProvider, tuiDropdownOpen, tuiDropdownOptionsProvider };
|
|
1003
|
+
export { TUI_DROPDOWN_COMPONENT, TUI_DROPDOWN_CONTEXT, TUI_DROPDOWN_DEFAULT_OPTIONS, TUI_DROPDOWN_HOVER_DEFAULT_OPTIONS, TUI_DROPDOWN_HOVER_OPTIONS, TUI_DROPDOWN_OPTIONS, TuiDropdown, TuiDropdownAuto, TuiDropdownComponent, TuiDropdownContext, TuiDropdownDirective, TuiDropdownDriver, TuiDropdownDriverDirective, TuiDropdownFixed, TuiDropdownHover, TuiDropdownManual, TuiDropdownOpen, TuiDropdownOpenLegacy, TuiDropdownOptionsDirective, TuiDropdownPortal, TuiDropdownPosition, TuiDropdownPositionSided, TuiDropdownSelection, TuiDropdownService, TuiDropdowns, TuiWithDropdownOpen, tuiDropdown, tuiDropdownEnabled, tuiDropdownHoverOptionsProvider, tuiDropdownOpen, tuiDropdownOptionsProvider };
|
|
986
1004
|
//# sourceMappingURL=taiga-ui-core-directives-dropdown.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-core-directives-dropdown.mjs","sources":["../../../projects/core/directives/dropdown/dropdown.driver.ts","../../../projects/core/directives/dropdown/dropdown.providers.ts","../../../projects/core/directives/dropdown/dropdown.service.ts","../../../projects/core/directives/dropdown/dropdown-options.directive.ts","../../../projects/core/directives/dropdown/dropdown-position.directive.ts","../../../projects/core/directives/dropdown/dropdown.directive.ts","../../../projects/core/directives/dropdown/dropdown.component.ts","../../../projects/core/directives/dropdown/dropdown.template.html","../../../projects/core/directives/dropdown/dropdown-context.directive.ts","../../../projects/core/directives/dropdown/dropdown-hover.options.ts","../../../projects/core/directives/dropdown/dropdown-open.directive.ts","../../../projects/core/directives/dropdown/dropdown-hover.directive.ts","../../../projects/core/directives/dropdown/dropdown-manual.directive.ts","../../../projects/core/directives/dropdown/dropdown-open-legacy.directive.ts","../../../projects/core/directives/dropdown/dropdown-portal.directive.ts","../../../projects/core/directives/dropdown/dropdown-position-sided.directive.ts","../../../projects/core/directives/dropdown/dropdown-selection.directive.ts","../../../projects/core/directives/dropdown/dropdown.ts","../../../projects/core/directives/dropdown/dropdown.bindings.ts","../../../projects/core/directives/dropdown/dropdown-fixed.directive.ts","../../../projects/core/directives/dropdown/dropdowns.component.ts","../../../projects/core/directives/dropdown/with-dropdown-open.directive.ts","../../../projects/core/directives/dropdown/taiga-ui-core-directives-dropdown.ts"],"sourcesContent":["import {Directive, Injectable} from '@angular/core';\nimport type {TuiDriver} from '@taiga-ui/core/classes';\nimport {TuiDriverDirective} from '@taiga-ui/core/classes';\nimport {BehaviorSubject} from 'rxjs';\n\n@Injectable()\nexport class TuiDropdownDriver extends BehaviorSubject<boolean> implements TuiDriver {\n public readonly type = 'dropdown';\n\n constructor() {\n super(false);\n }\n}\n\n@Directive({\n standalone: true,\n})\nexport class TuiDropdownDriverDirective extends TuiDriverDirective {\n public readonly type = 'dropdown';\n}\n","import type {Type} from '@angular/core';\nimport {\n tuiCreateToken,\n tuiCreateTokenFromFactory,\n} from '@taiga-ui/cdk/utils/miscellaneous';\n\nimport {TuiDropdownComponent} from './dropdown.component';\n\n/**\n * A component to display a dropdown\n */\nexport const TUI_DROPDOWN_COMPONENT = tuiCreateTokenFromFactory<Type<any>>(\n () => TuiDropdownComponent,\n);\n\nexport const TUI_DROPDOWN_CONTEXT = tuiCreateToken<Record<any, any>>();\n","import {Injectable} from '@angular/core';\nimport {TuiPortalService} from '@taiga-ui/cdk/classes';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TuiDropdownService extends TuiPortalService {}\n","import type {FactoryProvider} from '@angular/core';\nimport {Directive, inject, Input, Optional, Self, SkipSelf} from '@angular/core';\nimport {tuiCreateToken, tuiProvide} from '@taiga-ui/cdk/utils/miscellaneous';\nimport type {TuiVerticalDirection} from '@taiga-ui/core/types';\nimport {tuiOverrideOptions} from '@taiga-ui/core/utils';\n\nexport type TuiDropdownAlign = 'center' | 'left' | 'right';\nexport type TuiDropdownWidth = 'auto' | 'fixed' | 'min';\n\nexport interface TuiDropdownOptions {\n readonly align: TuiDropdownAlign;\n readonly appearance: string;\n readonly direction: TuiVerticalDirection | null;\n readonly limitWidth: TuiDropdownWidth;\n readonly maxHeight: number;\n readonly minHeight: number;\n readonly offset: number;\n}\n\n/** Default values for dropdown options */\nexport const TUI_DROPDOWN_DEFAULT_OPTIONS: TuiDropdownOptions = {\n align: 'left',\n direction: null,\n limitWidth: 'auto',\n maxHeight: 400,\n minHeight: 80,\n offset: 4,\n appearance: '',\n};\n\n/**\n * Default parameters for dropdown directive\n */\nexport const TUI_DROPDOWN_OPTIONS = tuiCreateToken(TUI_DROPDOWN_DEFAULT_OPTIONS);\n\nexport const tuiDropdownOptionsProvider: (\n options: Partial<TuiDropdownOptions>,\n) => FactoryProvider = (override: Partial<TuiDropdownOptions>) => ({\n provide: TUI_DROPDOWN_OPTIONS,\n deps: [\n [new Optional(), new Self(), TuiDropdownOptionsDirective],\n [new Optional(), new SkipSelf(), TUI_DROPDOWN_OPTIONS],\n ],\n useFactory: tuiOverrideOptions(override, TUI_DROPDOWN_DEFAULT_OPTIONS),\n});\n\n@Directive({\n standalone: true,\n selector:\n '[tuiDropdownAlign], [tuiDropdownAppearance], [tuiDropdownDirection], [tuiDropdownLimitWidth], [tuiDropdownMinHeight], [tuiDropdownMaxHeight], [tuiDropdownOffset]',\n providers: [tuiProvide(TUI_DROPDOWN_OPTIONS, TuiDropdownOptionsDirective)],\n})\nexport class TuiDropdownOptionsDirective implements TuiDropdownOptions {\n private readonly options = inject(TUI_DROPDOWN_OPTIONS, {skipSelf: true});\n\n @Input('tuiDropdownAlign')\n public align = this.options.align;\n\n @Input('tuiDropdownAppearance')\n public appearance = this.options.appearance;\n\n @Input('tuiDropdownDirection')\n public direction = this.options.direction;\n\n @Input('tuiDropdownLimitWidth')\n public limitWidth = this.options.limitWidth;\n\n @Input('tuiDropdownMinHeight')\n public minHeight = this.options.minHeight;\n\n @Input('tuiDropdownMaxHeight')\n public maxHeight = this.options.maxHeight;\n\n @Input('tuiDropdownOffset')\n public offset = this.options.offset;\n}\n","import {Directive, EventEmitter, inject, Output} from '@angular/core';\nimport {EMPTY_CLIENT_RECT} from '@taiga-ui/cdk/constants';\nimport {tuiPure} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {\n tuiFallbackAccessor,\n TuiPositionAccessor,\n TuiRectAccessor,\n} from '@taiga-ui/core/classes';\nimport {TUI_VIEWPORT} from '@taiga-ui/core/tokens';\nimport type {TuiPoint, TuiVerticalDirection} from '@taiga-ui/core/types';\n\nimport {TuiDropdownDirective} from './dropdown.directive';\nimport {TUI_DROPDOWN_OPTIONS} from './dropdown-options.directive';\n\n@Directive({\n standalone: true,\n})\nexport class TuiDropdownPosition extends TuiPositionAccessor {\n private readonly options = inject(TUI_DROPDOWN_OPTIONS);\n private readonly viewport = inject(TUI_VIEWPORT);\n\n private previous?: TuiVerticalDirection;\n\n @Output('tuiDropdownDirectionChange')\n public readonly directionChange = new EventEmitter<TuiVerticalDirection>();\n\n public readonly type = 'dropdown';\n public readonly accessor: TuiRectAccessor | null =\n tuiFallbackAccessor<TuiRectAccessor>('dropdown')(\n inject<any>(TuiRectAccessor),\n inject(TuiDropdownDirective, {optional: true})!,\n );\n\n @tuiPure\n public emitDirection(direction: TuiVerticalDirection): void {\n this.directionChange.emit(direction);\n }\n\n public getPosition({width, height}: DOMRect): TuiPoint {\n if (!width && !height) {\n this.previous = undefined;\n }\n\n const hostRect = this.accessor?.getClientRect() ?? EMPTY_CLIENT_RECT;\n const viewportRect = this.viewport.getClientRect();\n const {minHeight, align, direction, offset, limitWidth} = this.options;\n const viewport = {\n top: viewportRect.top - offset,\n bottom: viewportRect.bottom + offset,\n right: viewportRect.right - offset,\n left: viewportRect.left + offset,\n } as const;\n const previous = this.previous || direction || 'bottom';\n const available = {\n top: hostRect.top - 2 * offset - viewport.top,\n bottom: viewport.bottom - hostRect.bottom - 2 * offset,\n } as const;\n const rectWidth = limitWidth === 'fixed' ? hostRect.width : width;\n const right = Math.max(hostRect.right - rectWidth, offset);\n const left = hostRect.left + width < viewport.right ? hostRect.left : right;\n const position = {\n top: hostRect.top - offset - height,\n bottom: hostRect.bottom + offset,\n right: Math.max(viewport.left, right),\n center:\n hostRect.left + hostRect.width / 2 + width / 2 < viewport.right\n ? hostRect.left + hostRect.width / 2 - width / 2\n : right,\n left: Math.max(viewport.left, left),\n } as const;\n const better: TuiVerticalDirection =\n available.top > available.bottom ? 'top' : 'bottom';\n\n if (\n (available[previous] > minHeight && direction) ||\n available[previous] > height\n ) {\n this.emitDirection(previous);\n\n return [position[previous], position[align]];\n }\n\n this.previous = better;\n this.emitDirection(better);\n\n return [position[better], position[align]];\n }\n}\n","import type {AfterViewChecked, ComponentRef, OnChanges, OnDestroy} from '@angular/core';\nimport {\n ChangeDetectorRef,\n Directive,\n inject,\n INJECTOR,\n Input,\n signal,\n TemplateRef,\n} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {tuiZonefreeScheduler} from '@taiga-ui/cdk/observables';\nimport type {TuiContext} from '@taiga-ui/cdk/types';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {tuiPure} from '@taiga-ui/cdk/utils/miscellaneous';\nimport type {TuiRectAccessor, TuiVehicle} from '@taiga-ui/core/classes';\nimport {tuiAsRectAccessor, tuiAsVehicle} from '@taiga-ui/core/classes';\nimport type {TuiPortalItem} from '@taiga-ui/core/types';\nimport {tuiCheckFixedPosition} from '@taiga-ui/core/utils';\nimport type {PolymorpheusContent} from '@taiga-ui/polymorpheus';\nimport {PolymorpheusComponent, PolymorpheusTemplate} from '@taiga-ui/polymorpheus';\nimport {Subject, throttleTime} from 'rxjs';\n\nimport {TuiDropdownDriverDirective} from './dropdown.driver';\nimport {TUI_DROPDOWN_COMPONENT} from './dropdown.providers';\nimport {TuiDropdownService} from './dropdown.service';\nimport {TuiDropdownPosition} from './dropdown-position.directive';\n\n@Directive({\n standalone: true,\n selector: '[tuiDropdown]:not(ng-container):not(ng-template)',\n providers: [\n tuiAsRectAccessor(TuiDropdownDirective),\n tuiAsVehicle(TuiDropdownDirective),\n ],\n exportAs: 'tuiDropdown',\n hostDirectives: [\n TuiDropdownDriverDirective,\n {\n directive: TuiDropdownPosition,\n outputs: ['tuiDropdownDirectionChange'],\n },\n ],\n})\nexport class TuiDropdownDirective\n implements\n AfterViewChecked,\n OnDestroy,\n OnChanges,\n TuiPortalItem,\n TuiRectAccessor,\n TuiVehicle\n{\n private readonly refresh$ = new Subject<void>();\n private readonly service = inject(TuiDropdownService);\n private readonly cdr = inject(ChangeDetectorRef);\n\n protected readonly sub = this.refresh$\n .pipe(throttleTime(0, tuiZonefreeScheduler()), takeUntilDestroyed())\n .subscribe(() => {\n this.ref()?.changeDetectorRef.detectChanges();\n this.ref()?.changeDetectorRef.markForCheck();\n });\n\n public readonly el = tuiInjectElement();\n public readonly type = 'dropdown';\n public readonly component = new PolymorpheusComponent(\n inject(TUI_DROPDOWN_COMPONENT),\n inject(INJECTOR),\n );\n\n public ref = signal<ComponentRef<unknown> | null>(null);\n public content: PolymorpheusContent<TuiContext<() => void>>;\n\n @Input()\n public set tuiDropdown(content: PolymorpheusContent<TuiContext<() => void>>) {\n this.content =\n content instanceof TemplateRef\n ? new PolymorpheusTemplate(content, this.cdr)\n : content;\n }\n\n @tuiPure\n public get position(): 'absolute' | 'fixed' {\n return tuiCheckFixedPosition(this.el) ? 'fixed' : 'absolute';\n }\n\n public ngAfterViewChecked(): void {\n this.refresh$.next();\n }\n\n public ngOnChanges(): void {\n if (!this.content) {\n this.toggle(false);\n }\n }\n\n public ngOnDestroy(): void {\n this.toggle(false);\n }\n\n public getClientRect(): DOMRect {\n return this.el.getBoundingClientRect();\n }\n\n public toggle(show: boolean): void {\n const ref = this.ref();\n\n if (show && this.content && !ref) {\n this.ref.set(this.service.add(this.component));\n } else if (!show && ref) {\n this.ref.set(null);\n this.service.remove(ref);\n }\n }\n}\n","import {ChangeDetectionStrategy, Component, computed, inject} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {WA_WINDOW} from '@ng-web-apis/common';\nimport {TuiActiveZone} from '@taiga-ui/cdk/directives/active-zone';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {tuiClamp} from '@taiga-ui/cdk/utils/math';\nimport {tuiPx} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {tuiDropdownAnimation} from '@taiga-ui/core/animations';\nimport {\n tuiPositionAccessorFor,\n TuiRectAccessor,\n tuiRectAccessorFor,\n} from '@taiga-ui/core/classes';\nimport {TuiScrollbar} from '@taiga-ui/core/components/scrollbar';\nimport {TuiPositionService, TuiVisualViewportService} from '@taiga-ui/core/services';\nimport {TUI_ANIMATIONS_SPEED, TUI_DARK_MODE} from '@taiga-ui/core/tokens';\nimport {tuiToAnimationOptions} from '@taiga-ui/core/utils';\nimport {PolymorpheusOutlet, PolymorpheusTemplate} from '@taiga-ui/polymorpheus';\nimport {map, takeWhile} from 'rxjs';\n\nimport {TuiDropdownDirective} from './dropdown.directive';\nimport {TUI_DROPDOWN_CONTEXT} from './dropdown.providers';\nimport {TUI_DROPDOWN_OPTIONS} from './dropdown-options.directive';\nimport {TuiDropdownPosition} from './dropdown-position.directive';\n\n/**\n * @description:\n * This component is used to show template in a portal\n * using default style of white rounded box with a shadow\n */\n@Component({\n standalone: true,\n selector: 'tui-dropdown',\n imports: [PolymorpheusOutlet, PolymorpheusTemplate, TuiScrollbar],\n templateUrl: './dropdown.template.html',\n styleUrls: ['./dropdown.style.less'],\n // @bad TODO: OnPush\n // eslint-disable-next-line @angular-eslint/prefer-on-push-component-change-detection\n changeDetection: ChangeDetectionStrategy.Default,\n providers: [\n TuiPositionService,\n tuiPositionAccessorFor('dropdown', TuiDropdownPosition),\n tuiRectAccessorFor('dropdown', TuiDropdownDirective),\n ],\n animations: [tuiDropdownAnimation],\n hostDirectives: [TuiActiveZone],\n host: {\n '[@tuiDropdownAnimation]': 'animation',\n '[attr.data-appearance]': 'options.appearance',\n '[attr.tuiTheme]': 'theme()',\n },\n})\nexport class TuiDropdownComponent {\n private readonly el = tuiInjectElement();\n private readonly accessor = inject(TuiRectAccessor);\n private readonly win = inject(WA_WINDOW);\n private readonly vvs = inject(TuiVisualViewportService);\n\n protected readonly animation = tuiToAnimationOptions(inject(TUI_ANIMATIONS_SPEED));\n protected readonly options = inject(TUI_DROPDOWN_OPTIONS);\n protected readonly directive = inject(TuiDropdownDirective);\n protected readonly context = inject(TUI_DROPDOWN_CONTEXT, {optional: true});\n protected readonly darkMode = inject(TUI_DARK_MODE);\n\n // TODO(v5): use `TUI_DARK_MODE` instead of element attribute to get current theme\n protected readonly theme = computed(() => {\n this.darkMode();\n\n return this.directive.el.closest('[tuiTheme]')?.getAttribute('tuiTheme');\n });\n\n protected readonly sub = inject(TuiPositionService)\n .pipe(\n takeWhile(\n () =>\n this.directive.el.isConnected &&\n !!this.directive.el.getBoundingClientRect().height,\n ),\n map((v) => (this.directive.position === 'fixed' ? this.vvs.correct(v) : v)),\n map(([top, left]) => this.getStyles(top, left)),\n takeUntilDestroyed(),\n )\n .subscribe({\n next: (styles) => Object.assign(this.el.style, styles),\n complete: () => this.close?.(),\n });\n\n protected readonly close = (): void => this.directive.toggle(false);\n\n private getStyles(top: number, left: number): Record<string, string> {\n const {right} = this.el.getBoundingClientRect();\n const {maxHeight, minHeight, offset, limitWidth} = this.options;\n const {innerHeight} = this.win;\n const clientRect = this.el.offsetParent?.getBoundingClientRect();\n const {position} = this.directive;\n const rect = this.accessor.getClientRect();\n const offsetX = position === 'fixed' ? 0 : -(clientRect?.left || 0);\n const offsetY = position === 'fixed' ? 0 : -(clientRect?.top || 0);\n\n top += offsetY;\n left += offsetX;\n\n const sided = right <= rect.left || left >= rect.right;\n const isIntersecting =\n left < rect.right && right > rect.left && top < offsetY + 2 * offset;\n const available = isIntersecting\n ? rect.top - 2 * offset\n : offsetY + innerHeight - top - offset;\n\n return {\n position,\n top: tuiPx(Math.round(Math.max(top, offsetY + offset))),\n left: tuiPx(Math.round(left)),\n maxHeight: sided\n ? tuiPx(maxHeight)\n : tuiPx(Math.round(tuiClamp(available, minHeight, maxHeight))),\n width: limitWidth === 'fixed' ? tuiPx(Math.round(rect.width)) : '',\n minWidth: limitWidth === 'min' ? tuiPx(Math.round(rect.width)) : '',\n };\n }\n}\n","<tui-scrollbar class=\"t-scroll\">\n <div\n *polymorpheusOutlet=\"directive.content as text; context: {$implicit: close}\"\n class=\"t-primitive\"\n >\n {{ text }}\n </div>\n</tui-scrollbar>\n","import {computed, Directive, inject} from '@angular/core';\nimport {EMPTY_CLIENT_RECT} from '@taiga-ui/cdk/constants';\nimport {TuiActiveZone} from '@taiga-ui/cdk/directives/active-zone';\nimport {TUI_IS_TOUCH} from '@taiga-ui/cdk/tokens';\nimport {tuiGetActualTarget, tuiPointToClientRect} from '@taiga-ui/cdk/utils/dom';\nimport {tuiAsDriver, tuiAsRectAccessor, TuiRectAccessor} from '@taiga-ui/core/classes';\nimport {shouldCall} from '@taiga-ui/event-plugins';\n\nimport {TuiDropdownDriver} from './dropdown.driver';\n\nfunction activeZoneFilter(this: TuiDropdownContext, event?: Event): boolean {\n return (\n !event ||\n (this.driver.value && !this.activeZone.contains(tuiGetActualTarget(event)))\n );\n}\n\n@Directive({\n standalone: true,\n selector: '[tuiDropdownContext]',\n providers: [\n TuiActiveZone,\n TuiDropdownDriver,\n tuiAsDriver(TuiDropdownDriver),\n tuiAsRectAccessor(TuiDropdownContext),\n ],\n host: {\n '[style.user-select]': 'userSelect()',\n '[style.-webkit-user-select]': 'userSelect()',\n '[style.-webkit-touch-callout]': 'userSelect()',\n '(document:pointerdown.zoneless)': 'closeDropdown($event)',\n '(document:contextmenu.capture.zoneless)': 'closeDropdown($event)',\n '(document:keydown.esc)': 'closeDropdown()',\n '(longtap)': 'onContextMenu($event.detail.clientX, $event.detail.clientY)',\n },\n})\nexport class TuiDropdownContext extends TuiRectAccessor {\n private readonly isTouch = inject(TUI_IS_TOUCH);\n private currentRect = EMPTY_CLIENT_RECT;\n\n protected readonly userSelect = computed(() => (this.isTouch() ? 'none' : null));\n protected readonly activeZone = inject(TuiActiveZone);\n protected readonly driver = inject(TuiDropdownDriver);\n\n public readonly type = 'dropdown';\n\n public getClientRect(): DOMRect {\n return this.currentRect;\n }\n\n @shouldCall(activeZoneFilter)\n protected closeDropdown(_event?: Event): void {\n this.driver.next(false);\n this.currentRect = EMPTY_CLIENT_RECT;\n }\n\n protected onContextMenu(x: number, y: number): void {\n this.currentRect = tuiPointToClientRect(x, y);\n this.driver.next(true);\n }\n}\n","import type {Provider} from '@angular/core';\nimport {tuiCreateToken, tuiProvideOptions} from '@taiga-ui/cdk/utils/miscellaneous';\n\nexport interface TuiDropdownHoverOptions {\n readonly hideDelay: number;\n readonly showDelay: number;\n}\n\n/** Default values for hint options */\nexport const TUI_DROPDOWN_HOVER_DEFAULT_OPTIONS: TuiDropdownHoverOptions = {\n showDelay: 200,\n hideDelay: 500,\n};\n\n/**\n * Default parameters for dropdown hover directive\n */\nexport const TUI_DROPDOWN_HOVER_OPTIONS = tuiCreateToken(\n TUI_DROPDOWN_HOVER_DEFAULT_OPTIONS,\n);\n\nexport function tuiDropdownHoverOptionsProvider(\n options: Partial<TuiDropdownHoverOptions>,\n): Provider {\n return tuiProvideOptions(\n TUI_DROPDOWN_HOVER_OPTIONS,\n options,\n TUI_DROPDOWN_HOVER_DEFAULT_OPTIONS,\n );\n}\n","import type {OnChanges} from '@angular/core';\nimport {\n computed,\n ContentChild,\n Directive,\n ElementRef,\n EventEmitter,\n inject,\n Input,\n Output,\n} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {TuiActiveZone} from '@taiga-ui/cdk/directives/active-zone';\nimport {TuiObscured} from '@taiga-ui/cdk/directives/obscured';\nimport {tuiWatch} from '@taiga-ui/cdk/observables';\nimport {\n tuiGetActualTarget,\n tuiInjectElement,\n tuiIsElement,\n tuiIsElementEditable,\n tuiIsHTMLElement,\n} from '@taiga-ui/cdk/utils/dom';\nimport {\n tuiGetClosestFocusable,\n tuiIsNativeFocusedIn,\n tuiIsNativeKeyboardFocusable,\n} from '@taiga-ui/cdk/utils/focus';\nimport {tuiAsDriver} from '@taiga-ui/core/classes';\nimport {tuiIsEditingKey} from '@taiga-ui/core/utils/miscellaneous';\nimport {shouldCall} from '@taiga-ui/event-plugins';\nimport {filter, fromEvent, map, merge} from 'rxjs';\n\nimport {TuiDropdownDirective} from './dropdown.directive';\nimport {TuiDropdownDriver} from './dropdown.driver';\n\nfunction shouldClose(this: TuiDropdownOpen, event: Event | KeyboardEvent): boolean {\n return (\n 'key' in event &&\n event.key.toLowerCase() === 'escape' &&\n this.tuiDropdownEnabled &&\n !!this.tuiDropdownOpen &&\n !this['dropdown']()?.nextElementSibling\n );\n}\n\n@Directive({\n standalone: true,\n selector: '[tuiDropdown][tuiDropdownOpen],[tuiDropdown][tuiDropdownOpenChange]',\n providers: [TuiDropdownDriver, tuiAsDriver(TuiDropdownDriver)],\n hostDirectives: [\n TuiObscured,\n {\n directive: TuiActiveZone,\n inputs: ['tuiActiveZoneParent'],\n outputs: ['tuiActiveZoneChange'],\n },\n ],\n host: {\n '(click)': 'onClick($event.target)',\n '(keydown.arrowDown)': 'onArrow($event, false)',\n '(keydown.arrowUp)': 'onArrow($event, true)',\n '(document:keydown.zoneless.capture)': 'onEsc($event)',\n '(document:keydown.zoneless)': 'onKeydown($event)',\n },\n})\nexport class TuiDropdownOpen implements OnChanges {\n @ContentChild('tuiDropdownHost', {descendants: true, read: ElementRef})\n private readonly dropdownHost?: ElementRef<HTMLElement>;\n\n private readonly directive = inject(TuiDropdownDirective);\n private readonly el = tuiInjectElement();\n private readonly obscured = inject(TuiObscured);\n\n private readonly dropdown = computed(\n () => this.directive.ref()?.location.nativeElement,\n );\n\n protected readonly sub = merge(\n this.obscured.tuiObscured.pipe(filter(Boolean)),\n inject(TuiActiveZone).tuiActiveZoneChange.pipe(filter((a) => !a)),\n fromEvent(this.el, 'focusin').pipe(\n map(tuiGetActualTarget),\n filter((target) => !this.host.contains(target) || !this.directive.ref()),\n ),\n )\n .pipe(tuiWatch(), takeUntilDestroyed())\n .subscribe(() => this.toggle(false));\n\n @Input()\n public tuiDropdownEnabled = true;\n\n @Input()\n public tuiDropdownOpen: boolean | '' = false;\n\n @Output()\n public readonly tuiDropdownOpenChange = new EventEmitter<boolean>();\n\n // TODO: make it private when all legacy controls will be deleted from @taiga-ui/legacy (5.0)\n public readonly driver = inject(TuiDropdownDriver);\n\n public ngOnChanges(): void {\n this.update(!!this.tuiDropdownOpen);\n }\n\n public toggle(open: boolean): void {\n if (this.focused && !open) {\n this.host.focus({preventScroll: true});\n }\n\n this.update(open);\n }\n\n @shouldCall(shouldClose)\n protected onEsc(event: Event): void {\n event.preventDefault();\n this.toggle(false);\n }\n\n protected onClick(target: HTMLElement): void {\n if (!this.editable && this.host.contains(target)) {\n this.update(!this.tuiDropdownOpen);\n }\n }\n\n protected onArrow(event: KeyboardEvent, up: boolean): void {\n if (\n !tuiIsElement(event.target) ||\n !this.host.contains(event.target) ||\n !this.tuiDropdownEnabled\n ) {\n return;\n }\n\n event.preventDefault();\n this.focusDropdown(up);\n }\n\n protected onKeydown({key, target, defaultPrevented}: KeyboardEvent): void {\n if (\n !defaultPrevented &&\n tuiIsEditingKey(key) &&\n this.editable &&\n this.focused &&\n tuiIsHTMLElement(target) &&\n !tuiIsElementEditable(target)\n ) {\n this.host.focus({preventScroll: true});\n }\n }\n\n private get host(): HTMLElement {\n const initial = this.dropdownHost?.nativeElement || this.el;\n const focusable = tuiIsNativeKeyboardFocusable(initial)\n ? initial\n : tuiGetClosestFocusable({initial, root: this.el});\n\n return this.dropdownHost?.nativeElement || focusable || this.el;\n }\n\n private get editable(): boolean {\n return tuiIsElementEditable(this.host);\n }\n\n private get focused(): boolean {\n return tuiIsNativeFocusedIn(this.host) || tuiIsNativeFocusedIn(this.dropdown());\n }\n\n private update(open: boolean): void {\n if (open && !this.tuiDropdownEnabled) {\n return this.drive();\n }\n\n this.tuiDropdownOpen = open;\n this.tuiDropdownOpenChange.emit(open);\n this.drive();\n }\n\n private drive(open = !!this.tuiDropdownOpen && this.tuiDropdownEnabled): void {\n this.obscured.tuiObscuredEnabled = open;\n this.driver.next(open);\n }\n\n private focusDropdown(previous: boolean): void {\n const root = this.dropdown();\n\n if (!root) {\n this.update(true);\n\n return;\n }\n\n const doc = this.el.ownerDocument;\n const child = root.appendChild(doc.createElement('div'));\n const initial = previous ? child : root;\n const focusable = tuiGetClosestFocusable({initial, previous, root});\n\n child.remove();\n focusable?.focus();\n }\n}\n","import {DOCUMENT} from '@angular/common';\nimport {ContentChild, Directive, ElementRef, inject, Input} from '@angular/core';\nimport {toObservable} from '@angular/core/rxjs-interop';\nimport {TuiActiveZone} from '@taiga-ui/cdk/directives/active-zone';\nimport {tuiTypedFromEvent, tuiZoneOptimized} from '@taiga-ui/cdk/observables';\nimport {\n tuiGetActualTarget,\n tuiInjectElement,\n tuiIsElement,\n} from '@taiga-ui/cdk/utils/dom';\nimport {tuiAsDriver, TuiDriver} from '@taiga-ui/core/classes';\nimport {\n delay,\n distinctUntilChanged,\n filter,\n fromEvent,\n map,\n merge,\n of,\n share,\n startWith,\n switchMap,\n takeUntil,\n tap,\n} from 'rxjs';\n\nimport {TuiDropdownDirective} from './dropdown.directive';\nimport {TUI_DROPDOWN_HOVER_OPTIONS} from './dropdown-hover.options';\nimport {TuiDropdownOpen} from './dropdown-open.directive';\n\n@Directive({\n standalone: true,\n selector: '[tuiDropdownHover]',\n providers: [TuiActiveZone, tuiAsDriver(TuiDropdownHover)],\n host: {\n '(click.capture)': 'onClick($event)',\n },\n})\nexport class TuiDropdownHover extends TuiDriver {\n @ContentChild('tuiDropdownHost', {descendants: true, read: ElementRef})\n private readonly dropdownHost?: ElementRef<HTMLElement>;\n\n private readonly el = tuiInjectElement();\n private readonly doc = inject(DOCUMENT);\n private readonly options = inject(TUI_DROPDOWN_HOVER_OPTIONS);\n private readonly activeZone = inject(TuiActiveZone);\n private readonly open = inject(TuiDropdownOpen, {optional: true});\n /**\n * Dropdown can be removed not only via click/touch –\n * swipe on mobile devices removes dropdown sheet without triggering new mouseover / mouseout events.\n */\n private readonly dropdownExternalRemoval$ = toObservable(\n inject(TuiDropdownDirective).ref,\n ).pipe(filter((x) => !x && this.hovered));\n\n private readonly stream$ = merge(\n this.dropdownExternalRemoval$.pipe(\n switchMap(() =>\n tuiTypedFromEvent(this.doc, 'pointerdown').pipe(\n map(tuiGetActualTarget),\n delay(this.hideDelay),\n startWith(null),\n takeUntil(fromEvent(this.doc, 'mouseover')),\n ),\n ),\n ),\n tuiTypedFromEvent(this.doc, 'mouseover').pipe(map(tuiGetActualTarget)),\n tuiTypedFromEvent(this.doc, 'mouseout').pipe(map((e) => e.relatedTarget)),\n ).pipe(\n map((element) => tuiIsElement(element) && this.isHovered(element)),\n distinctUntilChanged(),\n switchMap((v) => of(v).pipe(delay(v ? this.showDelay : this.hideDelay))),\n tuiZoneOptimized(),\n tap((hovered) => {\n this.hovered = hovered;\n this.open?.toggle(hovered);\n }),\n share(),\n );\n\n @Input('tuiDropdownShowDelay')\n public showDelay = this.options.showDelay;\n\n @Input('tuiDropdownHideDelay')\n public hideDelay = this.options.hideDelay;\n\n public hovered = false;\n\n public readonly type = 'dropdown';\n\n constructor() {\n super((subscriber) => this.stream$.subscribe(subscriber));\n }\n\n protected onClick(event: MouseEvent): void {\n if (this.hovered && this.open) {\n event.preventDefault();\n }\n }\n\n private isHovered(element: Element): boolean {\n const host = this.dropdownHost?.nativeElement || this.el;\n const hovered = host.contains(element);\n const child = !this.el.contains(element) && this.activeZone.contains(element);\n\n return hovered || child;\n }\n}\n","import type {OnChanges} from '@angular/core';\nimport {Directive, inject, Input} from '@angular/core';\nimport {tuiAsDriver} from '@taiga-ui/core/classes';\n\nimport {TuiDropdownDriver} from './dropdown.driver';\n\n@Directive({\n standalone: true,\n selector: '[tuiDropdownManual]',\n providers: [TuiDropdownDriver, tuiAsDriver(TuiDropdownDriver)],\n})\nexport class TuiDropdownManual implements OnChanges {\n private readonly driver = inject(TuiDropdownDriver);\n\n @Input()\n public tuiDropdownManual: boolean | '' = false;\n\n public ngOnChanges(): void {\n this.driver.next(!!this.tuiDropdownManual);\n }\n}\n","import {Directive, Input, Output} from '@angular/core';\nimport {distinctUntilChanged, Subject} from 'rxjs';\n\n/**\n * @deprecated TODO: remove in v.5 when legacy controls are dropped\n */\n@Directive({\n standalone: true,\n selector:\n '[tuiDropdownOpen]:not([tuiDropdown]),[tuiDropdownOpenChange]:not([tuiDropdown])',\n})\nexport class TuiDropdownOpenLegacy {\n private readonly openStateSub = new Subject<boolean>();\n\n @Output()\n public readonly tuiDropdownOpenChange =\n this.openStateSub.pipe(distinctUntilChanged());\n\n @Input()\n public set tuiDropdownOpen(open: boolean) {\n this.emitOpenChange(open);\n }\n\n public emitOpenChange(open: boolean): void {\n this.openStateSub.next(open);\n }\n}\n","import type {EmbeddedViewRef, OnDestroy} from '@angular/core';\nimport {Directive, inject, Input, TemplateRef} from '@angular/core';\n\nimport {TuiDropdownService} from './dropdown.service';\n\n/**\n * @deprecated use {@link TuiPopup} directive instead\n */\n@Directive({\n standalone: true,\n selector: 'ng-template[tuiDropdown]',\n})\nexport class TuiDropdownPortal implements OnDestroy {\n private readonly template = inject(TemplateRef);\n private readonly service = inject(TuiDropdownService);\n\n private viewRef?: EmbeddedViewRef<unknown>;\n\n @Input()\n public set tuiDropdown(show: boolean) {\n this.viewRef?.destroy();\n\n if (show) {\n this.viewRef = this.service.addTemplate(this.template);\n }\n }\n\n public ngOnDestroy(): void {\n this.viewRef?.destroy();\n }\n}\n","import {Directive, inject, Input} from '@angular/core';\nimport {EMPTY_CLIENT_RECT} from '@taiga-ui/cdk/constants';\nimport {tuiAsPositionAccessor, TuiPositionAccessor} from '@taiga-ui/core/classes';\nimport {TUI_VIEWPORT} from '@taiga-ui/core/tokens';\nimport type {TuiPoint} from '@taiga-ui/core/types';\n\nimport {TUI_DROPDOWN_OPTIONS} from './dropdown-options.directive';\nimport {TuiDropdownPosition} from './dropdown-position.directive';\n\n@Directive({\n standalone: true,\n selector: '[tuiDropdownSided]',\n providers: [TuiDropdownPosition, tuiAsPositionAccessor(TuiDropdownPositionSided)],\n})\nexport class TuiDropdownPositionSided extends TuiPositionAccessor {\n private readonly options = inject(TUI_DROPDOWN_OPTIONS);\n private readonly viewport = inject(TUI_VIEWPORT);\n private readonly vertical = inject(TuiDropdownPosition);\n private previous = this.options.direction || 'bottom';\n\n @Input()\n public tuiDropdownSided: boolean | string = '';\n\n @Input()\n public tuiDropdownSidedOffset = 4;\n\n public readonly type = 'dropdown';\n\n public getPosition(rect: DOMRect): TuiPoint {\n if (this.tuiDropdownSided === false) {\n return this.vertical.getPosition(rect);\n }\n\n const {height, width} = rect;\n const hostRect = this.vertical.accessor?.getClientRect() ?? EMPTY_CLIENT_RECT;\n const viewport = this.viewport.getClientRect();\n const {direction, minHeight, offset} = this.options;\n const align = this.options.align === 'center' ? 'left' : this.options.align;\n const available = {\n top: hostRect.bottom - viewport.top,\n left: hostRect.left - offset - viewport.left,\n right: viewport.right - hostRect.right - offset,\n bottom: viewport.bottom - hostRect.top,\n } as const;\n const position = {\n top: hostRect.bottom - height + this.tuiDropdownSidedOffset + 1, // 1 for border\n left: hostRect.left - width - offset,\n right: hostRect.right + offset,\n bottom: hostRect.top - this.tuiDropdownSidedOffset - 1, // 1 for border\n } as const;\n const better = available.top > available.bottom ? 'top' : 'bottom';\n const maxLeft = available.left > available.right ? position.left : position.right;\n const left = available[align] > width ? position[align] : maxLeft;\n\n if (\n (available[this.previous] > minHeight && direction) ||\n this.previous === better\n ) {\n this.vertical.emitDirection(this.previous);\n\n return [position[this.previous], left];\n }\n\n this.previous = better;\n this.vertical.emitDirection(better);\n\n return [position[better], left];\n }\n}\n","import {DOCUMENT} from '@angular/common';\nimport type {OnDestroy} from '@angular/core';\nimport {Directive, inject, Input, ViewContainerRef} from '@angular/core';\nimport {\n CHAR_NO_BREAK_SPACE,\n CHAR_ZERO_WIDTH_SPACE,\n EMPTY_CLIENT_RECT,\n TUI_TRUE_HANDLER,\n} from '@taiga-ui/cdk/constants';\nimport {TUI_RANGE} from '@taiga-ui/cdk/tokens';\nimport type {TuiBooleanHandler} from '@taiga-ui/cdk/types';\nimport {\n tuiInjectElement,\n tuiIsElement,\n tuiIsTextfield,\n tuiIsTextNode,\n} from '@taiga-ui/cdk/utils/dom';\nimport {tuiGetNativeFocused} from '@taiga-ui/cdk/utils/focus';\nimport {tuiIsString, tuiPx} from '@taiga-ui/cdk/utils/miscellaneous';\nimport type {TuiRectAccessor} from '@taiga-ui/core/classes';\nimport {tuiAsDriver, tuiAsRectAccessor, TuiDriver} from '@taiga-ui/core/classes';\nimport {TUI_SELECTION_STREAM} from '@taiga-ui/core/tokens';\nimport {tuiGetWordRange} from '@taiga-ui/core/utils';\nimport {BehaviorSubject, combineLatest, distinctUntilChanged, map} from 'rxjs';\n\nimport {TuiDropdownDirective} from './dropdown.directive';\n\n@Directive({\n standalone: true,\n selector: '[tuiDropdownSelection]',\n providers: [\n tuiAsDriver(TuiDropdownSelection),\n tuiAsRectAccessor(TuiDropdownSelection),\n ],\n})\nexport class TuiDropdownSelection\n extends TuiDriver\n implements TuiRectAccessor, OnDestroy\n{\n private ghost?: HTMLElement;\n\n protected readonly doc = inject(DOCUMENT);\n protected readonly vcr = inject(ViewContainerRef);\n protected readonly dropdown = inject(TuiDropdownDirective);\n protected readonly el = tuiInjectElement();\n protected readonly handler$ = new BehaviorSubject<TuiBooleanHandler<Range>>(\n TUI_TRUE_HANDLER,\n );\n\n protected readonly stream$ = combineLatest([\n this.handler$,\n inject(TUI_SELECTION_STREAM).pipe(\n map(() => this.getRange()),\n distinctUntilChanged(\n (x, y) =>\n x.startOffset === y.startOffset &&\n x.endOffset === y.endOffset &&\n x.commonAncestorContainer === y.commonAncestorContainer,\n ),\n ),\n ]).pipe(\n map(([handler, range]) => {\n const contained = this.el.contains(range.commonAncestorContainer);\n\n this.range =\n contained && tuiIsTextNode(range.commonAncestorContainer)\n ? range\n : this.range;\n\n return (contained && handler(this.range)) || this.inDropdown(range);\n }),\n );\n\n protected range = inject(TUI_RANGE);\n\n @Input('tuiDropdownSelectionPosition')\n public position: 'selection' | 'tag' | 'word' = 'selection';\n\n public readonly type = 'dropdown';\n\n constructor() {\n super((subscriber) => this.stream$.subscribe(subscriber));\n }\n\n @Input()\n public set tuiDropdownSelection(visible: TuiBooleanHandler<Range> | string) {\n if (!tuiIsString(visible)) {\n this.handler$.next(visible);\n }\n }\n\n public getClientRect(): DOMRect {\n switch (this.position) {\n case 'tag': {\n const {commonAncestorContainer} = this.range;\n const element = tuiIsElement(commonAncestorContainer)\n ? commonAncestorContainer\n : commonAncestorContainer.parentNode;\n\n return element && tuiIsElement(element)\n ? element.getBoundingClientRect()\n : EMPTY_CLIENT_RECT;\n }\n case 'word':\n return tuiGetWordRange(this.range).getBoundingClientRect();\n default:\n return this.range.getBoundingClientRect();\n }\n }\n\n public ngOnDestroy(): void {\n if (this.ghost) {\n this.vcr.element.nativeElement.removeChild(this.ghost);\n }\n }\n\n protected getRange(): Range {\n const active = tuiGetNativeFocused(this.doc);\n const selection = this.doc.getSelection();\n const range =\n active && tuiIsTextfield(active) && this.el.contains(active)\n ? this.veryVerySadInputFix(active)\n : (selection?.rangeCount && selection.getRangeAt(0)) || this.range;\n\n return range.cloneRange();\n }\n\n /**\n * Check if given range is at least partially inside dropdown\n */\n protected inDropdown(range: Range): boolean {\n const {startContainer, endContainer} = range;\n const inDropdown = this.boxContains(range.commonAncestorContainer);\n const hostToDropdown =\n this.boxContains(endContainer) && this.el.contains(startContainer);\n const dropdownToHost =\n this.boxContains(startContainer) && this.el.contains(endContainer);\n\n return inDropdown || hostToDropdown || dropdownToHost;\n }\n\n /**\n * Check if Node is inside dropdown\n */\n private boxContains(node: Node): boolean {\n return !!this.dropdown.ref()?.location.nativeElement.contains(node);\n }\n\n private veryVerySadInputFix(element: HTMLInputElement | HTMLTextAreaElement): Range {\n const {ghost = this.initGhost(element)} = this;\n const {top, left, width, height} = element.getBoundingClientRect();\n const {selectionStart, selectionEnd, value} = element;\n const range = this.doc.createRange();\n const hostRect = this.el.getBoundingClientRect();\n\n ghost.style.top = tuiPx(top - hostRect.top);\n ghost.style.left = tuiPx(left - hostRect.left);\n ghost.style.width = tuiPx(width);\n ghost.style.height = tuiPx(height);\n ghost.textContent = CHAR_ZERO_WIDTH_SPACE + value + CHAR_NO_BREAK_SPACE;\n\n range.setStart(ghost.firstChild as Node, selectionStart || 0);\n range.setEnd(ghost.firstChild as Node, selectionEnd || 0);\n\n return range;\n }\n\n /**\n * Create an invisible DIV styled exactly like input/textarea element inside directive\n */\n private initGhost(element: HTMLInputElement | HTMLTextAreaElement): HTMLElement {\n const ghost = this.doc.createElement('div');\n const {font, letterSpacing, textTransform, padding} = getComputedStyle(element);\n\n ghost.style.position = 'absolute';\n ghost.style.pointerEvents = 'none';\n ghost.style.opacity = '0';\n ghost.style.whiteSpace = 'pre-wrap';\n ghost.style.font = font;\n ghost.style.letterSpacing = letterSpacing;\n ghost.style.textTransform = textTransform;\n ghost.style.padding = padding;\n\n this.vcr.element.nativeElement.appendChild(ghost);\n this.ghost = ghost;\n\n return ghost;\n }\n}\n","import {TuiDropdownComponent} from './dropdown.component';\nimport {TuiDropdownDirective} from './dropdown.directive';\nimport {TuiDropdownDriverDirective} from './dropdown.driver';\nimport {TuiDropdownContext} from './dropdown-context.directive';\nimport {TuiDropdownHover} from './dropdown-hover.directive';\nimport {TuiDropdownManual} from './dropdown-manual.directive';\nimport {TuiDropdownOpen} from './dropdown-open.directive';\nimport {TuiDropdownOpenLegacy} from './dropdown-open-legacy.directive';\nimport {TuiDropdownOptionsDirective} from './dropdown-options.directive';\nimport {TuiDropdownPortal} from './dropdown-portal.directive';\nimport {TuiDropdownPosition} from './dropdown-position.directive';\nimport {TuiDropdownPositionSided} from './dropdown-position-sided.directive';\nimport {TuiDropdownSelection} from './dropdown-selection.directive';\n\nexport const TuiDropdown = [\n TuiDropdownOptionsDirective,\n TuiDropdownDriverDirective,\n TuiDropdownDirective,\n TuiDropdownComponent,\n TuiDropdownOpen,\n TuiDropdownOpenLegacy,\n TuiDropdownPortal,\n TuiDropdownManual,\n TuiDropdownHover,\n TuiDropdownContext,\n TuiDropdownPosition,\n TuiDropdownPositionSided,\n TuiDropdownSelection,\n] as const;\n","import type {Signal, WritableSignal} from '@angular/core';\nimport {inject} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {tuiDirectiveBinding} from '@taiga-ui/cdk/utils/miscellaneous';\nimport type {PolymorpheusContent} from '@taiga-ui/polymorpheus';\n\nimport {TuiDropdownDirective} from './dropdown.directive';\nimport {TuiDropdownOpen} from './dropdown-open.directive';\n\ntype C = PolymorpheusContent;\n\nexport function tuiDropdown(value: C | WritableSignal<C>): WritableSignal<C>;\nexport function tuiDropdown(value: Signal<C>): Signal<C>;\nexport function tuiDropdown(value: C | Signal<C>): Signal<C> {\n return tuiDirectiveBinding(TuiDropdownDirective, 'tuiDropdown', value, {});\n}\n\nexport function tuiDropdownOpen(): WritableSignal<boolean> {\n const open: WritableSignal<boolean> = tuiDirectiveBinding(\n TuiDropdownOpen,\n 'tuiDropdownOpen',\n false,\n {},\n );\n\n inject(TuiDropdownOpen)\n .tuiDropdownOpenChange.pipe(takeUntilDestroyed())\n .subscribe((value) => open.set(value));\n\n return open;\n}\n","import {Directive, inject} from '@angular/core';\nimport {tuiOverrideOptions} from '@taiga-ui/core/utils/miscellaneous';\n\nimport {\n TUI_DROPDOWN_DEFAULT_OPTIONS,\n TUI_DROPDOWN_OPTIONS,\n tuiDropdownOptionsProvider,\n} from './dropdown-options.directive';\n\n@Directive({\n standalone: true,\n providers: [tuiDropdownOptionsProvider({})],\n})\nexport class TuiDropdownFixed {\n constructor() {\n const override = tuiOverrideOptions(\n {limitWidth: 'fixed'},\n TUI_DROPDOWN_DEFAULT_OPTIONS,\n );\n\n override(inject(TUI_DROPDOWN_OPTIONS, {self: true, optional: true}), null);\n }\n}\n","import {ChangeDetectionStrategy, Component} from '@angular/core';\nimport {tuiAsPortal, TuiPortals} from '@taiga-ui/cdk/classes';\n\nimport {TuiDropdownService} from './dropdown.service';\n\n/**\n * Host element for dynamically created portals, for example using {@link TuiDropdownDirective}.\n */\n@Component({\n standalone: true,\n selector: 'tui-dropdowns',\n template: '<ng-container #viewContainer />',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [tuiAsPortal(TuiDropdownService)],\n})\nexport class TuiDropdowns extends TuiPortals {}\n","import {Directive} from '@angular/core';\n\nimport {TuiDropdownOpen} from './dropdown-open.directive';\n\n@Directive({\n standalone: true,\n hostDirectives: [\n {\n directive: TuiDropdownOpen,\n inputs: ['tuiDropdownOpen: open', 'tuiDropdownEnabled'],\n outputs: ['tuiDropdownOpenChange: openChange'],\n },\n ],\n})\nexport class TuiWithDropdownOpen {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.TuiDropdownDriverDirective","i2.TuiDropdownPosition","i1","i2","tuiOverrideOptions","i1.TuiDropdownOpen"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKA,MACa,iBAAkB,SAAQ,eAAwB,CAAA;AAG3D,IAAA,WAAA,GAAA;QACI,KAAK,CAAC,KAAK,CAAC,CAAC;QAHD,IAAI,CAAA,IAAA,GAAG,UAAU,CAAC;KAIjC;+GALQ,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;mHAAjB,iBAAiB,EAAA,CAAA,CAAA,EAAA;;4FAAjB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAD7B,UAAU;;AASX,MAGa,0BAA2B,SAAQ,kBAAkB,CAAA;AAHlE,IAAA,WAAA,GAAA;;QAIoB,IAAI,CAAA,IAAA,GAAG,UAAU,CAAC;AACrC,KAAA;+GAFY,0BAA0B,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAA1B,0BAA0B,EAAA,YAAA,EAAA,IAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FAA1B,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBAHtC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,UAAU,EAAE,IAAI;AACnB,iBAAA,CAAA;;;ACRD;;AAEG;AACU,MAAA,sBAAsB,GAAG,yBAAyB,CAC3D,MAAM,oBAAoB,EAC5B;AAEW,MAAA,oBAAoB,GAAG,cAAc;;ACZlD,MAGa,kBAAmB,SAAQ,gBAAgB,CAAA;+GAA3C,kBAAkB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,cAFf,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAET,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAH9B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAE,MAAM;AACrB,iBAAA,CAAA;;;ACcD;AACa,MAAA,4BAA4B,GAAuB;AAC5D,IAAA,KAAK,EAAE,MAAM;AACb,IAAA,SAAS,EAAE,IAAI;AACf,IAAA,UAAU,EAAE,MAAM;AAClB,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,EAAE;AACb,IAAA,MAAM,EAAE,CAAC;AACT,IAAA,UAAU,EAAE,EAAE;EAChB;AAEF;;AAEG;MACU,oBAAoB,GAAG,cAAc,CAAC,4BAA4B,EAAE;MAEpE,0BAA0B,GAEhB,CAAC,QAAqC,MAAM;AAC/D,IAAA,OAAO,EAAE,oBAAoB;AAC7B,IAAA,IAAI,EAAE;QACF,CAAC,IAAI,QAAQ,EAAE,EAAE,IAAI,IAAI,EAAE,EAAE,2BAA2B,CAAC;QACzD,CAAC,IAAI,QAAQ,EAAE,EAAE,IAAI,QAAQ,EAAE,EAAE,oBAAoB,CAAC;AACzD,KAAA;AACD,IAAA,UAAU,EAAE,kBAAkB,CAAC,QAAQ,EAAE,4BAA4B,CAAC;AACzE,CAAA,EAAE;AAEH,MAMa,2BAA2B,CAAA;AANxC,IAAA,WAAA,GAAA;QAOqB,IAAO,CAAA,OAAA,GAAG,MAAM,CAAC,oBAAoB,EAAE,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC,CAAC;AAGnE,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;AAG3B,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC;AAGrC,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;AAGnC,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC;AAGrC,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;AAGnC,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;AAGnC,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;AACvC,KAAA;+GAvBY,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAA3B,2BAA2B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,mKAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,CAAA,kBAAA,EAAA,OAAA,CAAA,EAAA,UAAA,EAAA,CAAA,uBAAA,EAAA,YAAA,CAAA,EAAA,SAAA,EAAA,CAAA,sBAAA,EAAA,WAAA,CAAA,EAAA,UAAA,EAAA,CAAA,uBAAA,EAAA,YAAA,CAAA,EAAA,SAAA,EAAA,CAAA,sBAAA,EAAA,WAAA,CAAA,EAAA,SAAA,EAAA,CAAA,sBAAA,EAAA,WAAA,CAAA,EAAA,MAAA,EAAA,CAAA,mBAAA,EAAA,QAAA,CAAA,EAAA,EAAA,SAAA,EAFzB,CAAC,UAAU,CAAC,oBAAoB,EAAE,2BAA2B,CAAC,CAAC,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FAEjE,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBANvC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EACJ,mKAAmK;AACvK,oBAAA,SAAS,EAAE,CAAC,UAAU,CAAC,oBAAoB,8BAA8B,CAAC;AAC7E,iBAAA,CAAA;8BAKU,KAAK,EAAA,CAAA;sBADX,KAAK;uBAAC,kBAAkB,CAAA;gBAIlB,UAAU,EAAA,CAAA;sBADhB,KAAK;uBAAC,uBAAuB,CAAA;gBAIvB,SAAS,EAAA,CAAA;sBADf,KAAK;uBAAC,sBAAsB,CAAA;gBAItB,UAAU,EAAA,CAAA;sBADhB,KAAK;uBAAC,uBAAuB,CAAA;gBAIvB,SAAS,EAAA,CAAA;sBADf,KAAK;uBAAC,sBAAsB,CAAA;gBAItB,SAAS,EAAA,CAAA;sBADf,KAAK;uBAAC,sBAAsB,CAAA;gBAItB,MAAM,EAAA,CAAA;sBADZ,KAAK;uBAAC,mBAAmB,CAAA;;;AC3D9B,MAGa,mBAAoB,SAAQ,mBAAmB,CAAA;AAH5D,IAAA,WAAA,GAAA;;AAIqB,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,oBAAoB,CAAC,CAAC;AACvC,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;AAKjC,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,YAAY,EAAwB,CAAC;QAE3D,IAAI,CAAA,IAAA,GAAG,UAAU,CAAC;QAClB,IAAQ,CAAA,QAAA,GACpB,mBAAmB,CAAkB,UAAU,CAAC,CAC5C,MAAM,CAAM,eAAe,CAAC,EAC5B,MAAM,CAAC,oBAAoB,EAAE,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAE,CAClD,CAAC;AAwDT,KAAA;AArDU,IAAA,aAAa,CAAC,SAA+B,EAAA;AAChD,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;KACxC;AAEM,IAAA,WAAW,CAAC,EAAC,KAAK,EAAE,MAAM,EAAU,EAAA;AACvC,QAAA,IAAI,CAAC,KAAK,IAAI,CAAC,MAAM,EAAE;AACnB,YAAA,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC;AAC7B,SAAA;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,aAAa,EAAE,IAAI,iBAAiB,CAAC;QACrE,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC;AACnD,QAAA,MAAM,EAAC,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAC,GAAG,IAAI,CAAC,OAAO,CAAC;AACvE,QAAA,MAAM,QAAQ,GAAG;AACb,YAAA,GAAG,EAAE,YAAY,CAAC,GAAG,GAAG,MAAM;AAC9B,YAAA,MAAM,EAAE,YAAY,CAAC,MAAM,GAAG,MAAM;AACpC,YAAA,KAAK,EAAE,YAAY,CAAC,KAAK,GAAG,MAAM;AAClC,YAAA,IAAI,EAAE,YAAY,CAAC,IAAI,GAAG,MAAM;SAC1B,CAAC;QACX,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,SAAS,IAAI,QAAQ,CAAC;AACxD,QAAA,MAAM,SAAS,GAAG;YACd,GAAG,EAAE,QAAQ,CAAC,GAAG,GAAG,CAAC,GAAG,MAAM,GAAG,QAAQ,CAAC,GAAG;YAC7C,MAAM,EAAE,QAAQ,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,GAAG,MAAM;SAChD,CAAC;AACX,QAAA,MAAM,SAAS,GAAG,UAAU,KAAK,OAAO,GAAG,QAAQ,CAAC,KAAK,GAAG,KAAK,CAAC;AAClE,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,GAAG,SAAS,EAAE,MAAM,CAAC,CAAC;QAC3D,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,GAAG,KAAK,GAAG,QAAQ,CAAC,KAAK,GAAG,QAAQ,CAAC,IAAI,GAAG,KAAK,CAAC;AAC5E,QAAA,MAAM,QAAQ,GAAG;AACb,YAAA,GAAG,EAAE,QAAQ,CAAC,GAAG,GAAG,MAAM,GAAG,MAAM;AACnC,YAAA,MAAM,EAAE,QAAQ,CAAC,MAAM,GAAG,MAAM;YAChC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC;AACrC,YAAA,MAAM,EACF,QAAQ,CAAC,IAAI,GAAG,QAAQ,CAAC,KAAK,GAAG,CAAC,GAAG,KAAK,GAAG,CAAC,GAAG,QAAQ,CAAC,KAAK;AAC3D,kBAAE,QAAQ,CAAC,IAAI,GAAG,QAAQ,CAAC,KAAK,GAAG,CAAC,GAAG,KAAK,GAAG,CAAC;AAChD,kBAAE,KAAK;YACf,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;SAC7B,CAAC;AACX,QAAA,MAAM,MAAM,GACR,SAAS,CAAC,GAAG,GAAG,SAAS,CAAC,MAAM,GAAG,KAAK,GAAG,QAAQ,CAAC;QAExD,IACI,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,SAAS,IAAI,SAAS;AAC7C,YAAA,SAAS,CAAC,QAAQ,CAAC,GAAG,MAAM,EAC9B;AACE,YAAA,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;YAE7B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;AAChD,SAAA;AAED,QAAA,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC;AACvB,QAAA,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAE3B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;KAC9C;+GArEQ,mBAAmB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAnB,mBAAmB,EAAA,YAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,eAAA,EAAA,4BAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;AAiBrB,UAAA,CAAA;IADN,OAAO;AAGP,CAAA,EAAA,mBAAA,CAAA,SAAA,EAAA,eAAA,EAAA,IAAA,CAAA,CAAA;4FAnBQ,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAH/B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,UAAU,EAAE,IAAI;AACnB,iBAAA,CAAA;8BAQmB,eAAe,EAAA,CAAA;sBAD9B,MAAM;uBAAC,4BAA4B,CAAA;gBAW7B,aAAa,EAAA,EAAA,EAAA,EAAA,CAAA;;ACNxB,MAgBa,oBAAoB,CAAA;AAhBjC,IAAA,WAAA,GAAA;AAyBqB,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,OAAO,EAAQ,CAAC;AAC/B,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,kBAAkB,CAAC,CAAC;AACrC,QAAA,IAAA,CAAA,GAAG,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC;QAE9B,IAAG,CAAA,GAAA,GAAG,IAAI,CAAC,QAAQ;aACjC,IAAI,CAAC,YAAY,CAAC,CAAC,EAAE,oBAAoB,EAAE,CAAC,EAAE,kBAAkB,EAAE,CAAC;aACnE,SAAS,CAAC,MAAK;YACZ,IAAI,CAAC,GAAG,EAAE,EAAE,iBAAiB,CAAC,aAAa,EAAE,CAAC;YAC9C,IAAI,CAAC,GAAG,EAAE,EAAE,iBAAiB,CAAC,YAAY,EAAE,CAAC;AACjD,SAAC,CAAC,CAAC;QAES,IAAE,CAAA,EAAA,GAAG,gBAAgB,EAAE,CAAC;QACxB,IAAI,CAAA,IAAA,GAAG,UAAU,CAAC;AAClB,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,qBAAqB,CACjD,MAAM,CAAC,sBAAsB,CAAC,EAC9B,MAAM,CAAC,QAAQ,CAAC,CACnB,CAAC;AAEK,QAAA,IAAA,CAAA,GAAG,GAAG,MAAM,CAA+B,IAAI,CAAC,CAAC;AA4C3D,KAAA;IAzCG,IACW,WAAW,CAAC,OAAoD,EAAA;AACvE,QAAA,IAAI,CAAC,OAAO;AACR,YAAA,OAAO,YAAY,WAAW;kBACxB,IAAI,oBAAoB,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC;kBAC3C,OAAO,CAAC;KACrB;AAGD,IAAA,IAAW,QAAQ,GAAA;AACf,QAAA,OAAO,qBAAqB,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,OAAO,GAAG,UAAU,CAAC;KAChE;IAEM,kBAAkB,GAAA;AACrB,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;KACxB;IAEM,WAAW,GAAA;AACd,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;AACf,YAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACtB,SAAA;KACJ;IAEM,WAAW,GAAA;AACd,QAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;KACtB;IAEM,aAAa,GAAA;AAChB,QAAA,OAAO,IAAI,CAAC,EAAE,CAAC,qBAAqB,EAAE,CAAC;KAC1C;AAEM,IAAA,MAAM,CAAC,IAAa,EAAA;AACvB,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAEvB,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC,GAAG,EAAE;AAC9B,YAAA,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;AAClD,SAAA;AAAM,aAAA,IAAI,CAAC,IAAI,IAAI,GAAG,EAAE;AACrB,YAAA,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACnB,YAAA,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAC5B,SAAA;KACJ;+GAtEQ,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAApB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,oBAAoB,EAblB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kDAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,SAAA,EAAA;YACP,iBAAiB,CAAC,oBAAoB,CAAC;YACvC,YAAY,CAAC,oBAAoB,CAAC;AACrC,SAAA,EAAA,QAAA,EAAA,CAAA,aAAA,CAAA,EAAA,aAAA,EAAA,IAAA,EAAA,cAAA,EAAA,CAAA,EAAA,SAAA,EAAAA,0BAAA,EAAA,EAAA,EAAA,SAAA,EAAAC,mBAAA,EAAA,OAAA,EAAA,CAAA,4BAAA,EAAA,4BAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;AAiDD,UAAA,CAAA;IADC,OAAO;AAGP,CAAA,EAAA,oBAAA,CAAA,SAAA,EAAA,UAAA,EAAA,IAAA,CAAA,CAAA;4FAzCQ,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAhBhC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,kDAAkD;AAC5D,oBAAA,SAAS,EAAE;AACP,wBAAA,iBAAiB,CAAsB,oBAAA,CAAA;AACvC,wBAAA,YAAY,CAAsB,oBAAA,CAAA;AACrC,qBAAA;AACD,oBAAA,QAAQ,EAAE,aAAa;AACvB,oBAAA,cAAc,EAAE;wBACZ,0BAA0B;AAC1B,wBAAA;AACI,4BAAA,SAAS,EAAE,mBAAmB;4BAC9B,OAAO,EAAE,CAAC,4BAA4B,CAAC;AAC1C,yBAAA;AACJ,qBAAA;AACJ,iBAAA,CAAA;8BAgCc,WAAW,EAAA,CAAA;sBADrB,KAAK;gBASK,QAAQ,EAAA,EAAA,EAAA,EAAA,CAAA;;AC1DvB;;;;AAIG;AACH,MAsBa,oBAAoB,CAAA;AAtBjC,IAAA,WAAA,GAAA;QAuBqB,IAAE,CAAA,EAAA,GAAG,gBAAgB,EAAE,CAAC;AACxB,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,eAAe,CAAC,CAAC;AACnC,QAAA,IAAA,CAAA,GAAG,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;AACxB,QAAA,IAAA,CAAA,GAAG,GAAG,MAAM,CAAC,wBAAwB,CAAC,CAAC;QAErC,IAAS,CAAA,SAAA,GAAG,qBAAqB,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC,CAAC;AAChE,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,oBAAoB,CAAC,CAAC;AACvC,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,oBAAoB,CAAC,CAAC;QACzC,IAAO,CAAA,OAAA,GAAG,MAAM,CAAC,oBAAoB,EAAE,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC,CAAC;AACzD,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC;;AAGjC,QAAA,IAAA,CAAA,KAAK,GAAG,QAAQ,CAAC,MAAK;YACrC,IAAI,CAAC,QAAQ,EAAE,CAAC;AAEhB,YAAA,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,YAAY,CAAC,UAAU,CAAC,CAAC;AAC7E,SAAC,CAAC,CAAC;AAEgB,QAAA,IAAA,CAAA,GAAG,GAAG,MAAM,CAAC,kBAAkB,CAAC;AAC9C,aAAA,IAAI,CACD,SAAS,CACL,MACI,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,WAAW;AAC7B,YAAA,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,qBAAqB,EAAE,CAAC,MAAM,CACzD,EACD,GAAG,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,KAAK,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAC3E,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,EAC/C,kBAAkB,EAAE,CACvB;AACA,aAAA,SAAS,CAAC;AACP,YAAA,IAAI,EAAE,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC;YACtD,QAAQ,EAAE,MAAM,IAAI,CAAC,KAAK,IAAI;AACjC,SAAA,CAAC,CAAC;AAEY,QAAA,IAAA,CAAA,KAAK,GAAG,MAAY,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAiCvE,KAAA;IA/BW,SAAS,CAAC,GAAW,EAAE,IAAY,EAAA;QACvC,MAAM,EAAC,KAAK,EAAC,GAAG,IAAI,CAAC,EAAE,CAAC,qBAAqB,EAAE,CAAC;AAChD,QAAA,MAAM,EAAC,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAC,GAAG,IAAI,CAAC,OAAO,CAAC;AAChE,QAAA,MAAM,EAAC,WAAW,EAAC,GAAG,IAAI,CAAC,GAAG,CAAC;QAC/B,MAAM,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC,YAAY,EAAE,qBAAqB,EAAE,CAAC;AACjE,QAAA,MAAM,EAAC,QAAQ,EAAC,GAAG,IAAI,CAAC,SAAS,CAAC;QAClC,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC;QAC3C,MAAM,OAAO,GAAG,QAAQ,KAAK,OAAO,GAAG,CAAC,GAAG,EAAE,UAAU,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC;QACpE,MAAM,OAAO,GAAG,QAAQ,KAAK,OAAO,GAAG,CAAC,GAAG,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;QAEnE,GAAG,IAAI,OAAO,CAAC;QACf,IAAI,IAAI,OAAO,CAAC;AAEhB,QAAA,MAAM,KAAK,GAAG,KAAK,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC;QACvD,MAAM,cAAc,GAChB,IAAI,GAAG,IAAI,CAAC,KAAK,IAAI,KAAK,GAAG,IAAI,CAAC,IAAI,IAAI,GAAG,GAAG,OAAO,GAAG,CAAC,GAAG,MAAM,CAAC;QACzE,MAAM,SAAS,GAAG,cAAc;AAC5B,cAAE,IAAI,CAAC,GAAG,GAAG,CAAC,GAAG,MAAM;cACrB,OAAO,GAAG,WAAW,GAAG,GAAG,GAAG,MAAM,CAAC;QAE3C,OAAO;YACH,QAAQ;AACR,YAAA,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC;YACvD,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AAC7B,YAAA,SAAS,EAAE,KAAK;AACZ,kBAAE,KAAK,CAAC,SAAS,CAAC;AAClB,kBAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;YAClE,KAAK,EAAE,UAAU,KAAK,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE;YAClE,QAAQ,EAAE,UAAU,KAAK,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE;SACtE,CAAC;KACL;+GAnEQ,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAApB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,oBAAoB,EAblB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,cAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,uBAAA,EAAA,WAAA,EAAA,sBAAA,EAAA,oBAAA,EAAA,eAAA,EAAA,SAAA,EAAA,EAAA,EAAA,SAAA,EAAA;YACP,kBAAkB;AAClB,YAAA,sBAAsB,CAAC,UAAU,EAAE,mBAAmB,CAAC;AACvD,YAAA,kBAAkB,CAAC,UAAU,EAAE,oBAAoB,CAAC;SACvD,EC3CL,cAAA,EAAA,CAAA,EAAA,SAAA,EAAA,EAAA,CAAA,aAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,gOAQA,gnBDyBc,kBAAkB,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,2BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAwB,YAAY,EAWpD,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,QAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAC,oBAAoB,CAAC,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,OAAA,EAAA,CAAA,CAAA,EAAA;;4FAQzB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAtBhC,SAAS;AACM,YAAA,IAAA,EAAA,CAAA,EAAA,UAAA,EAAA,IAAI,EACN,QAAA,EAAA,cAAc,EACf,OAAA,EAAA,CAAC,kBAAkB,EAAE,oBAAoB,EAAE,YAAY,CAAC,EAAA,eAAA,EAKhD,uBAAuB,CAAC,OAAO,EACrC,SAAA,EAAA;wBACP,kBAAkB;AAClB,wBAAA,sBAAsB,CAAC,UAAU,EAAE,mBAAmB,CAAC;AACvD,wBAAA,kBAAkB,CAAC,UAAU,EAAE,oBAAoB,CAAC;AACvD,qBAAA,EAAA,UAAA,EACW,CAAC,oBAAoB,CAAC,kBAClB,CAAC,aAAa,CAAC,EACzB,IAAA,EAAA;AACF,wBAAA,yBAAyB,EAAE,WAAW;AACtC,wBAAA,wBAAwB,EAAE,oBAAoB;AAC9C,wBAAA,iBAAiB,EAAE,SAAS;AAC/B,qBAAA,EAAA,QAAA,EAAA,gOAAA,EAAA,MAAA,EAAA,CAAA,wjBAAA,CAAA,EAAA,CAAA;;;AExCL,SAAS,gBAAgB,CAA2B,KAAa,EAAA;IAC7D,QACI,CAAC,KAAK;SACL,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC,EAC7E;AACN,CAAC;AAED,MAmBa,kBAAmB,SAAQ,eAAe,CAAA;AAnBvD,IAAA,WAAA,GAAA;;AAoBqB,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;QACxC,IAAW,CAAA,WAAA,GAAG,iBAAiB,CAAC;QAErB,IAAU,CAAA,UAAA,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,OAAO,EAAE,GAAG,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC;AAC9D,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC;AACnC,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC;QAEtC,IAAI,CAAA,IAAA,GAAG,UAAU,CAAC;AAgBrC,KAAA;IAdU,aAAa,GAAA;QAChB,OAAO,IAAI,CAAC,WAAW,CAAC;KAC3B;AAGS,IAAA,aAAa,CAAC,MAAc,EAAA;AAClC,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACxB,QAAA,IAAI,CAAC,WAAW,GAAG,iBAAiB,CAAC;KACxC;IAES,aAAa,CAAC,CAAS,EAAE,CAAS,EAAA;QACxC,IAAI,CAAC,WAAW,GAAG,oBAAoB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC9C,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC1B;+GAvBQ,kBAAkB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,kBAAkB,EAhBhB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,+BAAA,EAAA,uBAAA,EAAA,uCAAA,EAAA,uBAAA,EAAA,sBAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,6DAAA,EAAA,EAAA,UAAA,EAAA,EAAA,mBAAA,EAAA,cAAA,EAAA,2BAAA,EAAA,cAAA,EAAA,6BAAA,EAAA,cAAA,EAAA,EAAA,EAAA,SAAA,EAAA;YACP,aAAa;YACb,iBAAiB;YACjB,WAAW,CAAC,iBAAiB,CAAC;YAC9B,iBAAiB,CAAC,kBAAkB,CAAC;AACxC,SAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;AA0BS,UAAA,CAAA;IADT,UAAU,CAAC,gBAAgB,CAAC;AAI5B,CAAA,EAAA,kBAAA,CAAA,SAAA,EAAA,eAAA,EAAA,IAAA,CAAA,CAAA;4FAlBQ,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAnB9B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,sBAAsB;AAChC,oBAAA,SAAS,EAAE;wBACP,aAAa;wBACb,iBAAiB;wBACjB,WAAW,CAAC,iBAAiB,CAAC;AAC9B,wBAAA,iBAAiB,CAAoB,kBAAA,CAAA;AACxC,qBAAA;AACD,oBAAA,IAAI,EAAE;AACF,wBAAA,qBAAqB,EAAE,cAAc;AACrC,wBAAA,6BAA6B,EAAE,cAAc;AAC7C,wBAAA,+BAA+B,EAAE,cAAc;AAC/C,wBAAA,iCAAiC,EAAE,uBAAuB;AAC1D,wBAAA,yCAAyC,EAAE,uBAAuB;AAClE,wBAAA,wBAAwB,EAAE,iBAAiB;AAC3C,wBAAA,WAAW,EAAE,6DAA6D;AAC7E,qBAAA;AACJ,iBAAA,CAAA;8BAgBa,aAAa,EAAA,EAAA,EAAA,EAAA,CAAA;;AC3C3B;AACa,MAAA,kCAAkC,GAA4B;AACvE,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;EAChB;AAEF;;AAEG;MACU,0BAA0B,GAAG,cAAc,CACpD,kCAAkC,EACpC;AAEI,SAAU,+BAA+B,CAC3C,OAAyC,EAAA;IAEzC,OAAO,iBAAiB,CACpB,0BAA0B,EAC1B,OAAO,EACP,kCAAkC,CACrC,CAAC;AACN;;ACMA,SAAS,WAAW,CAAwB,KAA4B,EAAA;IACpE,QACI,KAAK,IAAI,KAAK;AACd,QAAA,KAAK,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,QAAQ;AACpC,QAAA,IAAI,CAAC,kBAAkB;QACvB,CAAC,CAAC,IAAI,CAAC,eAAe;QACtB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,kBAAkB,EACzC;AACN,CAAC;AAED,MAoBa,eAAe,CAAA;AApB5B,IAAA,WAAA,GAAA;AAwBqB,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,oBAAoB,CAAC,CAAC;QACzC,IAAE,CAAA,EAAA,GAAG,gBAAgB,EAAE,CAAC;AACxB,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;AAE/B,QAAA,IAAA,CAAA,QAAQ,GAAG,QAAQ,CAChC,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,QAAQ,CAAC,aAAa,CACrD,CAAC;AAEiB,QAAA,IAAA,CAAA,GAAG,GAAG,KAAK,CAC1B,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,EAC/C,MAAM,CAAC,aAAa,CAAC,CAAC,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EACjE,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC,IAAI,CAC9B,GAAG,CAAC,kBAAkB,CAAC,EACvB,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,CAC3E,CACJ;AACI,aAAA,IAAI,CAAC,QAAQ,EAAE,EAAE,kBAAkB,EAAE,CAAC;aACtC,SAAS,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAGlC,IAAkB,CAAA,kBAAA,GAAG,IAAI,CAAC;QAG1B,IAAe,CAAA,eAAA,GAAiB,KAAK,CAAC;AAG7B,QAAA,IAAA,CAAA,qBAAqB,GAAG,IAAI,YAAY,EAAW,CAAC;;AAGpD,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC;AAqGtD,KAAA;IAnGU,WAAW,GAAA;QACd,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;KACvC;AAEM,IAAA,MAAM,CAAC,IAAa,EAAA;AACvB,QAAA,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,EAAE;YACvB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAC,aAAa,EAAE,IAAI,EAAC,CAAC,CAAC;AAC1C,SAAA;AAED,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;KACrB;AAGS,IAAA,KAAK,CAAC,KAAY,EAAA;QACxB,KAAK,CAAC,cAAc,EAAE,CAAC;AACvB,QAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;KACtB;AAES,IAAA,OAAO,CAAC,MAAmB,EAAA;AACjC,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;YAC9C,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;AACtC,SAAA;KACJ;IAES,OAAO,CAAC,KAAoB,EAAE,EAAW,EAAA;AAC/C,QAAA,IACI,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC;YAC3B,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC;YACjC,CAAC,IAAI,CAAC,kBAAkB,EAC1B;YACE,OAAO;AACV,SAAA;QAED,KAAK,CAAC,cAAc,EAAE,CAAC;AACvB,QAAA,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;KAC1B;AAES,IAAA,SAAS,CAAC,EAAC,GAAG,EAAE,MAAM,EAAE,gBAAgB,EAAgB,EAAA;AAC9D,QAAA,IACI,CAAC,gBAAgB;YACjB,eAAe,CAAC,GAAG,CAAC;AACpB,YAAA,IAAI,CAAC,QAAQ;AACb,YAAA,IAAI,CAAC,OAAO;YACZ,gBAAgB,CAAC,MAAM,CAAC;AACxB,YAAA,CAAC,oBAAoB,CAAC,MAAM,CAAC,EAC/B;YACE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAC,aAAa,EAAE,IAAI,EAAC,CAAC,CAAC;AAC1C,SAAA;KACJ;AAED,IAAA,IAAY,IAAI,GAAA;QACZ,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,EAAE,aAAa,IAAI,IAAI,CAAC,EAAE,CAAC;AAC5D,QAAA,MAAM,SAAS,GAAG,4BAA4B,CAAC,OAAO,CAAC;AACnD,cAAE,OAAO;AACT,cAAE,sBAAsB,CAAC,EAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,EAAC,CAAC,CAAC;QAEvD,OAAO,IAAI,CAAC,YAAY,EAAE,aAAa,IAAI,SAAS,IAAI,IAAI,CAAC,EAAE,CAAC;KACnE;AAED,IAAA,IAAY,QAAQ,GAAA;AAChB,QAAA,OAAO,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC1C;AAED,IAAA,IAAY,OAAO,GAAA;AACf,QAAA,OAAO,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,oBAAoB,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;KACnF;AAEO,IAAA,MAAM,CAAC,IAAa,EAAA;AACxB,QAAA,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE;AAClC,YAAA,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC;AACvB,SAAA;AAED,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;AAC5B,QAAA,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtC,IAAI,CAAC,KAAK,EAAE,CAAC;KAChB;IAEO,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,kBAAkB,EAAA;AAClE,QAAA,IAAI,CAAC,QAAQ,CAAC,kBAAkB,GAAG,IAAI,CAAC;AACxC,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC1B;AAEO,IAAA,aAAa,CAAC,QAAiB,EAAA;AACnC,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QAE7B,IAAI,CAAC,IAAI,EAAE;AACP,YAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAElB,OAAO;AACV,SAAA;AAED,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC;AAClC,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;QACzD,MAAM,OAAO,GAAG,QAAQ,GAAG,KAAK,GAAG,IAAI,CAAC;AACxC,QAAA,MAAM,SAAS,GAAG,sBAAsB,CAAC,EAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAC,CAAC,CAAC;QAEpE,KAAK,CAAC,MAAM,EAAE,CAAC;QACf,SAAS,EAAE,KAAK,EAAE,CAAC;KACtB;+GArIQ,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAf,eAAe,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,qEAAA,EAAA,MAAA,EAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,EAAA,OAAA,EAAA,EAAA,qBAAA,EAAA,uBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,wBAAA,EAAA,mBAAA,EAAA,wBAAA,EAAA,iBAAA,EAAA,uBAAA,EAAA,mCAAA,EAAA,eAAA,EAAA,2BAAA,EAAA,mBAAA,EAAA,EAAA,EAAA,SAAA,EAjBb,CAAC,iBAAiB,EAAE,WAAW,CAAC,iBAAiB,CAAC,CAAC,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,cAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAkBH,UAAU,EAAA,CAAA,EAAA,aAAA,EAAA,IAAA,EAAA,cAAA,EAAA,CAAA,EAAA,SAAA,EAAAC,IAAA,CAAA,WAAA,EAAA,EAAA,EAAA,SAAA,EAAAC,EAAA,CAAA,aAAA,EAAA,MAAA,EAAA,CAAA,qBAAA,EAAA,qBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,qBAAA,EAAA,qBAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;AA+C3D,UAAA,CAAA;IADT,UAAU,CAAC,WAAW,CAAC;AAIvB,CAAA,EAAA,eAAA,CAAA,SAAA,EAAA,OAAA,EAAA,IAAA,CAAA,CAAA;4FAnDQ,eAAe,EAAA,UAAA,EAAA,CAAA;kBApB3B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,qEAAqE;oBAC/E,SAAS,EAAE,CAAC,iBAAiB,EAAE,WAAW,CAAC,iBAAiB,CAAC,CAAC;AAC9D,oBAAA,cAAc,EAAE;wBACZ,WAAW;AACX,wBAAA;AACI,4BAAA,SAAS,EAAE,aAAa;4BACxB,MAAM,EAAE,CAAC,qBAAqB,CAAC;4BAC/B,OAAO,EAAE,CAAC,qBAAqB,CAAC;AACnC,yBAAA;AACJ,qBAAA;AACD,oBAAA,IAAI,EAAE;AACF,wBAAA,SAAS,EAAE,wBAAwB;AACnC,wBAAA,qBAAqB,EAAE,wBAAwB;AAC/C,wBAAA,mBAAmB,EAAE,uBAAuB;AAC5C,wBAAA,qCAAqC,EAAE,eAAe;AACtD,wBAAA,6BAA6B,EAAE,mBAAmB;AACrD,qBAAA;AACJ,iBAAA,CAAA;8BAGoB,YAAY,EAAA,CAAA;sBAD5B,YAAY;uBAAC,iBAAiB,EAAE,EAAC,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAC,CAAA;gBAuB/D,kBAAkB,EAAA,CAAA;sBADxB,KAAK;gBAIC,eAAe,EAAA,CAAA;sBADrB,KAAK;gBAIU,qBAAqB,EAAA,CAAA;sBADpC,MAAM;gBAmBG,KAAK,EAAA,EAAA,EAAA,EAAA,CAAA;;ACnFnB,MAQa,gBAAiB,SAAQ,SAAS,CAAA;AAoD3C,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,CAAC,CAAC,UAAU,KAAK,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC;QAjD7C,IAAE,CAAA,EAAA,GAAG,gBAAgB,EAAE,CAAC;AACxB,QAAA,IAAA,CAAA,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;AACvB,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,0BAA0B,CAAC,CAAC;AAC7C,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC;QACnC,IAAI,CAAA,IAAA,GAAG,MAAM,CAAC,eAAe,EAAE,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC,CAAC;AAClE;;;AAGG;AACc,QAAA,IAAA,CAAA,wBAAwB,GAAG,YAAY,CACpD,MAAM,CAAC,oBAAoB,CAAC,CAAC,GAAG,CACnC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;AAEzB,QAAA,IAAA,CAAA,OAAO,GAAG,KAAK,CAC5B,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAC9B,SAAS,CAAC,MACN,iBAAiB,CAAC,IAAI,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC,IAAI,CAC3C,GAAG,CAAC,kBAAkB,CAAC,EACvB,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EACrB,SAAS,CAAC,IAAI,CAAC,EACf,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC,CAC9C,CACJ,CACJ,EACD,iBAAiB,CAAC,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,EACtE,iBAAiB,CAAC,IAAI,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,aAAa,CAAC,CAAC,CAC5E,CAAC,IAAI,CACF,GAAG,CAAC,CAAC,OAAO,KAAK,YAAY,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,EAClE,oBAAoB,EAAE,EACtB,SAAS,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EACxE,gBAAgB,EAAE,EAClB,GAAG,CAAC,CAAC,OAAO,KAAI;AACZ,YAAA,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;AACvB,YAAA,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;AAC/B,SAAC,CAAC,EACF,KAAK,EAAE,CACV,CAAC;AAGK,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;AAGnC,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QAEnC,IAAO,CAAA,OAAA,GAAG,KAAK,CAAC;QAEP,IAAI,CAAA,IAAA,GAAG,UAAU,CAAC;KAIjC;AAES,IAAA,OAAO,CAAC,KAAiB,EAAA;AAC/B,QAAA,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,IAAI,EAAE;YAC3B,KAAK,CAAC,cAAc,EAAE,CAAC;AAC1B,SAAA;KACJ;AAEO,IAAA,SAAS,CAAC,OAAgB,EAAA;QAC9B,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,EAAE,aAAa,IAAI,IAAI,CAAC,EAAE,CAAC;QACzD,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACvC,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAE9E,OAAO,OAAO,IAAI,KAAK,CAAC;KAC3B;+GApEQ,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAhB,gBAAgB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,CAAA,sBAAA,EAAA,WAAA,CAAA,EAAA,SAAA,EAAA,CAAA,sBAAA,EAAA,WAAA,CAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,EAAA,EAAA,SAAA,EALd,CAAC,aAAa,EAAE,WAAW,CAAC,gBAAgB,CAAC,CAAC,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,cAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAME,UAAU,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FAD5D,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAR5B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,oBAAoB;AAC9B,oBAAA,SAAS,EAAE,CAAC,aAAa,EAAE,WAAW,kBAAkB,CAAC;AACzD,oBAAA,IAAI,EAAE;AACF,wBAAA,iBAAiB,EAAE,iBAAiB;AACvC,qBAAA;AACJ,iBAAA,CAAA;0EAGoB,YAAY,EAAA,CAAA;sBAD5B,YAAY;uBAAC,iBAAiB,EAAE,EAAC,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAC,CAAA;gBA0C/D,SAAS,EAAA,CAAA;sBADf,KAAK;uBAAC,sBAAsB,CAAA;gBAItB,SAAS,EAAA,CAAA;sBADf,KAAK;uBAAC,sBAAsB,CAAA;;;AC7EjC,MAKa,iBAAiB,CAAA;AAL9B,IAAA,WAAA,GAAA;AAMqB,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC;QAG7C,IAAiB,CAAA,iBAAA,GAAiB,KAAK,CAAC;AAKlD,KAAA;IAHU,WAAW,GAAA;QACd,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;KAC9C;+GARQ,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAjB,iBAAiB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,EAAA,SAAA,EAFf,CAAC,iBAAiB,EAAE,WAAW,CAAC,iBAAiB,CAAC,CAAC,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FAErD,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAL7B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,qBAAqB;oBAC/B,SAAS,EAAE,CAAC,iBAAiB,EAAE,WAAW,CAAC,iBAAiB,CAAC,CAAC;AACjE,iBAAA,CAAA;8BAKU,iBAAiB,EAAA,CAAA;sBADvB,KAAK;;;ACXV;;AAEG;AACH,MAKa,qBAAqB,CAAA;AALlC,IAAA,WAAA,GAAA;AAMqB,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,OAAO,EAAW,CAAC;QAGvC,IAAqB,CAAA,qBAAA,GACjC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC,CAAC;AAUtD,KAAA;IARG,IACW,eAAe,CAAC,IAAa,EAAA;AACpC,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;KAC7B;AAEM,IAAA,cAAc,CAAC,IAAa,EAAA;AAC/B,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAChC;+GAdQ,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAArB,qBAAqB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iFAAA,EAAA,MAAA,EAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,EAAA,OAAA,EAAA,EAAA,qBAAA,EAAA,uBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FAArB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBALjC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EACJ,iFAAiF;AACxF,iBAAA,CAAA;8BAKmB,qBAAqB,EAAA,CAAA;sBADpC,MAAM;gBAKI,eAAe,EAAA,CAAA;sBADzB,KAAK;;;ACbV;;AAEG;AACH,MAIa,iBAAiB,CAAA;AAJ9B,IAAA,WAAA,GAAA;AAKqB,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;AAC/B,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,kBAAkB,CAAC,CAAC;AAgBzD,KAAA;IAZG,IACW,WAAW,CAAC,IAAa,EAAA;AAChC,QAAA,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC;AAExB,QAAA,IAAI,IAAI,EAAE;AACN,YAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC1D,SAAA;KACJ;IAEM,WAAW,GAAA;AACd,QAAA,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC;KAC3B;+GAjBQ,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAjB,iBAAiB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FAAjB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAJ7B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,0BAA0B;AACvC,iBAAA,CAAA;8BAQc,WAAW,EAAA,CAAA;sBADrB,KAAK;;;ACTV,MAKa,wBAAyB,SAAQ,mBAAmB,CAAA;AALjE,IAAA,WAAA,GAAA;;AAMqB,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,oBAAoB,CAAC,CAAC;AACvC,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;AAChC,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,mBAAmB,CAAC,CAAC;QAChD,IAAQ,CAAA,QAAA,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,QAAQ,CAAC;QAG/C,IAAgB,CAAA,gBAAA,GAAqB,EAAE,CAAC;QAGxC,IAAsB,CAAA,sBAAA,GAAG,CAAC,CAAC;QAElB,IAAI,CAAA,IAAA,GAAG,UAAU,CAAC;AA0CrC,KAAA;AAxCU,IAAA,WAAW,CAAC,IAAa,EAAA;AAC5B,QAAA,IAAI,IAAI,CAAC,gBAAgB,KAAK,KAAK,EAAE;YACjC,OAAO,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;AAC1C,SAAA;AAED,QAAA,MAAM,EAAC,MAAM,EAAE,KAAK,EAAC,GAAG,IAAI,CAAC;AAC7B,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,aAAa,EAAE,IAAI,iBAAiB,CAAC;QAC9E,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC;QAC/C,MAAM,EAAC,SAAS,EAAE,SAAS,EAAE,MAAM,EAAC,GAAG,IAAI,CAAC,OAAO,CAAC;QACpD,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,KAAK,QAAQ,GAAG,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;AAC5E,QAAA,MAAM,SAAS,GAAG;AACd,YAAA,GAAG,EAAE,QAAQ,CAAC,MAAM,GAAG,QAAQ,CAAC,GAAG;YACnC,IAAI,EAAE,QAAQ,CAAC,IAAI,GAAG,MAAM,GAAG,QAAQ,CAAC,IAAI;YAC5C,KAAK,EAAE,QAAQ,CAAC,KAAK,GAAG,QAAQ,CAAC,KAAK,GAAG,MAAM;AAC/C,YAAA,MAAM,EAAE,QAAQ,CAAC,MAAM,GAAG,QAAQ,CAAC,GAAG;SAChC,CAAC;AACX,QAAA,MAAM,QAAQ,GAAG;YACb,GAAG,EAAE,QAAQ,CAAC,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC,sBAAsB,GAAG,CAAC;AAC/D,YAAA,IAAI,EAAE,QAAQ,CAAC,IAAI,GAAG,KAAK,GAAG,MAAM;AACpC,YAAA,KAAK,EAAE,QAAQ,CAAC,KAAK,GAAG,MAAM;YAC9B,MAAM,EAAE,QAAQ,CAAC,GAAG,GAAG,IAAI,CAAC,sBAAsB,GAAG,CAAC;SAChD,CAAC;AACX,QAAA,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,GAAG,SAAS,CAAC,MAAM,GAAG,KAAK,GAAG,QAAQ,CAAC;QACnE,MAAM,OAAO,GAAG,SAAS,CAAC,IAAI,GAAG,SAAS,CAAC,KAAK,GAAG,QAAQ,CAAC,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC;AAClF,QAAA,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC;QAElE,IACI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,SAAS,IAAI,SAAS;AAClD,YAAA,IAAI,CAAC,QAAQ,KAAK,MAAM,EAC1B;YACE,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAE3C,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,CAAC;AAC1C,SAAA;AAED,QAAA,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC;AACvB,QAAA,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAEpC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC;KACnC;+GArDQ,wBAAwB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAxB,wBAAwB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,sBAAA,EAAA,wBAAA,EAAA,EAAA,SAAA,EAFtB,CAAC,mBAAmB,EAAE,qBAAqB,CAAC,wBAAwB,CAAC,CAAC,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FAExE,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBALpC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,oBAAoB;AAC9B,oBAAA,SAAS,EAAE,CAAC,mBAAmB,EAAE,qBAAqB,0BAA0B,CAAC;AACpF,iBAAA,CAAA;8BAQU,gBAAgB,EAAA,CAAA;sBADtB,KAAK;gBAIC,sBAAsB,EAAA,CAAA;sBAD5B,KAAK;;;ACIV,MAQa,oBACT,SAAQ,SAAS,CAAA;AA4CjB,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,CAAC,CAAC,UAAU,KAAK,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC;AAxC3C,QAAA,IAAA,CAAA,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;AACvB,QAAA,IAAA,CAAA,GAAG,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC;AAC/B,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,oBAAoB,CAAC,CAAC;QACxC,IAAE,CAAA,EAAA,GAAG,gBAAgB,EAAE,CAAC;AACxB,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,eAAe,CAC7C,gBAAgB,CACnB,CAAC;QAEiB,IAAO,CAAA,OAAA,GAAG,aAAa,CAAC;AACvC,YAAA,IAAI,CAAC,QAAQ;AACb,YAAA,MAAM,CAAC,oBAAoB,CAAC,CAAC,IAAI,CAC7B,GAAG,CAAC,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC,EAC1B,oBAAoB,CAChB,CAAC,CAAC,EAAE,CAAC,KACD,CAAC,CAAC,WAAW,KAAK,CAAC,CAAC,WAAW;AAC/B,gBAAA,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,SAAS;AAC3B,gBAAA,CAAC,CAAC,uBAAuB,KAAK,CAAC,CAAC,uBAAuB,CAC9D,CACJ;AACJ,SAAA,CAAC,CAAC,IAAI,CACH,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,KAAK,CAAC,KAAI;AACrB,YAAA,MAAM,SAAS,GAAG,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;AAElE,YAAA,IAAI,CAAC,KAAK;AACN,gBAAA,SAAS,IAAI,aAAa,CAAC,KAAK,CAAC,uBAAuB,CAAC;AACrD,sBAAE,KAAK;AACP,sBAAE,IAAI,CAAC,KAAK,CAAC;AAErB,YAAA,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;SACvE,CAAC,CACL,CAAC;AAEQ,QAAA,IAAA,CAAA,KAAK,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;QAG7B,IAAQ,CAAA,QAAA,GAAiC,WAAW,CAAC;QAE5C,IAAI,CAAA,IAAA,GAAG,UAAU,CAAC;KAIjC;IAED,IACW,oBAAoB,CAAC,OAA0C,EAAA;AACtE,QAAA,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE;AACvB,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAC/B,SAAA;KACJ;IAEM,aAAa,GAAA;QAChB,QAAQ,IAAI,CAAC,QAAQ;YACjB,KAAK,KAAK,EAAE;AACR,gBAAA,MAAM,EAAC,uBAAuB,EAAC,GAAG,IAAI,CAAC,KAAK,CAAC;AAC7C,gBAAA,MAAM,OAAO,GAAG,YAAY,CAAC,uBAAuB,CAAC;AACjD,sBAAE,uBAAuB;AACzB,sBAAE,uBAAuB,CAAC,UAAU,CAAC;AAEzC,gBAAA,OAAO,OAAO,IAAI,YAAY,CAAC,OAAO,CAAC;AACnC,sBAAE,OAAO,CAAC,qBAAqB,EAAE;sBAC/B,iBAAiB,CAAC;AAC3B,aAAA;AACD,YAAA,KAAK,MAAM;gBACP,OAAO,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,qBAAqB,EAAE,CAAC;AAC/D,YAAA;AACI,gBAAA,OAAO,IAAI,CAAC,KAAK,CAAC,qBAAqB,EAAE,CAAC;AACjD,SAAA;KACJ;IAEM,WAAW,GAAA;QACd,IAAI,IAAI,CAAC,KAAK,EAAE;AACZ,YAAA,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC1D,SAAA;KACJ;IAES,QAAQ,GAAA;QACd,MAAM,MAAM,GAAG,mBAAmB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC7C,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;AAC1C,QAAA,MAAM,KAAK,GACP,MAAM,IAAI,cAAc,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC;AACxD,cAAE,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC;AAClC,cAAE,CAAC,SAAS,EAAE,UAAU,IAAI,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC;AAE3E,QAAA,OAAO,KAAK,CAAC,UAAU,EAAE,CAAC;KAC7B;AAED;;AAEG;AACO,IAAA,UAAU,CAAC,KAAY,EAAA;AAC7B,QAAA,MAAM,EAAC,cAAc,EAAE,YAAY,EAAC,GAAG,KAAK,CAAC;QAC7C,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;AACnE,QAAA,MAAM,cAAc,GAChB,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;AACvE,QAAA,MAAM,cAAc,GAChB,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;AAEvE,QAAA,OAAO,UAAU,IAAI,cAAc,IAAI,cAAc,CAAC;KACzD;AAED;;AAEG;AACK,IAAA,WAAW,CAAC,IAAU,EAAA;AAC1B,QAAA,OAAO,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,EAAE,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;KACvE;AAEO,IAAA,mBAAmB,CAAC,OAA+C,EAAA;AACvE,QAAA,MAAM,EAAC,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAC,GAAG,IAAI,CAAC;AAC/C,QAAA,MAAM,EAAC,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAC,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC;QACnE,MAAM,EAAC,cAAc,EAAE,YAAY,EAAE,KAAK,EAAC,GAAG,OAAO,CAAC;QACtD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;QACrC,MAAM,QAAQ,GAAG,IAAI,CAAC,EAAE,CAAC,qBAAqB,EAAE,CAAC;AAEjD,QAAA,KAAK,CAAC,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;AAC5C,QAAA,KAAK,CAAC,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC/C,KAAK,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;QACjC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;QACnC,KAAK,CAAC,WAAW,GAAG,qBAAqB,GAAG,KAAK,GAAG,mBAAmB,CAAC;QAExE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,UAAkB,EAAE,cAAc,IAAI,CAAC,CAAC,CAAC;QAC9D,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,UAAkB,EAAE,YAAY,IAAI,CAAC,CAAC,CAAC;AAE1D,QAAA,OAAO,KAAK,CAAC;KAChB;AAED;;AAEG;AACK,IAAA,SAAS,CAAC,OAA+C,EAAA;QAC7D,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AAC5C,QAAA,MAAM,EAAC,IAAI,EAAE,aAAa,EAAE,aAAa,EAAE,OAAO,EAAC,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;AAEhF,QAAA,KAAK,CAAC,KAAK,CAAC,QAAQ,GAAG,UAAU,CAAC;AAClC,QAAA,KAAK,CAAC,KAAK,CAAC,aAAa,GAAG,MAAM,CAAC;AACnC,QAAA,KAAK,CAAC,KAAK,CAAC,OAAO,GAAG,GAAG,CAAC;AAC1B,QAAA,KAAK,CAAC,KAAK,CAAC,UAAU,GAAG,UAAU,CAAC;AACpC,QAAA,KAAK,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;AACxB,QAAA,KAAK,CAAC,KAAK,CAAC,aAAa,GAAG,aAAa,CAAC;AAC1C,QAAA,KAAK,CAAC,KAAK,CAAC,aAAa,GAAG,aAAa,CAAC;AAC1C,QAAA,KAAK,CAAC,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC;QAE9B,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;AAClD,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;AAEnB,QAAA,OAAO,KAAK,CAAC;KAChB;+GAxJQ,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAApB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,oBAAoB,EALlB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,CAAA,8BAAA,EAAA,UAAA,CAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,EAAA,SAAA,EAAA;YACP,WAAW,CAAC,oBAAoB,CAAC;YACjC,iBAAiB,CAAC,oBAAoB,CAAC;AAC1C,SAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FAEQ,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBARhC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,wBAAwB;AAClC,oBAAA,SAAS,EAAE;AACP,wBAAA,WAAW,CAAsB,oBAAA,CAAA;AACjC,wBAAA,iBAAiB,CAAsB,oBAAA,CAAA;AAC1C,qBAAA;AACJ,iBAAA,CAAA;0EA0CU,QAAQ,EAAA,CAAA;sBADd,KAAK;uBAAC,8BAA8B,CAAA;gBAU1B,oBAAoB,EAAA,CAAA;sBAD9B,KAAK;;;ACtEG,MAAA,WAAW,GAAG;IACvB,2BAA2B;IAC3B,0BAA0B;IAC1B,oBAAoB;IACpB,oBAAoB;IACpB,eAAe;IACf,qBAAqB;IACrB,iBAAiB;IACjB,iBAAiB;IACjB,gBAAgB;IAChB,kBAAkB;IAClB,mBAAmB;IACnB,wBAAwB;IACxB,oBAAoB;;;ACdlB,SAAU,WAAW,CAAC,KAAoB,EAAA;IAC5C,OAAO,mBAAmB,CAAC,oBAAoB,EAAE,aAAa,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;AAC/E,CAAC;SAEe,eAAe,GAAA;AAC3B,IAAA,MAAM,IAAI,GAA4B,mBAAmB,CACrD,eAAe,EACf,iBAAiB,EACjB,KAAK,EACL,EAAE,CACL,CAAC;IAEF,MAAM,CAAC,eAAe,CAAC;AAClB,SAAA,qBAAqB,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC;AAChD,SAAA,SAAS,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;AAE3C,IAAA,OAAO,IAAI,CAAC;AAChB;;ACrBA,MAIa,gBAAgB,CAAA;AACzB,IAAA,WAAA,GAAA;AACI,QAAA,MAAM,QAAQ,GAAGC,oBAAkB,CAC/B,EAAC,UAAU,EAAE,OAAO,EAAC,EACrB,4BAA4B,CAC/B,CAAC;AAEF,QAAA,QAAQ,CAAC,MAAM,CAAC,oBAAoB,EAAE,EAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAC,CAAC,EAAE,IAAI,CAAC,CAAC;KAC9E;+GARQ,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAhB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,gBAAgB,iCAFd,CAAC,0BAA0B,CAAC,EAAE,CAAC,CAAC,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FAElC,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAJ5B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,SAAS,EAAE,CAAC,0BAA0B,CAAC,EAAE,CAAC,CAAC;AAC9C,iBAAA,CAAA;;;ACPD;;AAEG;AACH,MAOa,YAAa,SAAQ,UAAU,CAAA;+GAA/B,YAAY,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAZ,YAAY,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,eAAA,EAAA,SAAA,EAFV,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC,iDAFlC,iCAAiC,EAAA,QAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FAIlC,YAAY,EAAA,UAAA,EAAA,CAAA;kBAPxB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,eAAe;AACzB,oBAAA,QAAQ,EAAE,iCAAiC;oBAC3C,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAC/C,oBAAA,SAAS,EAAE,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC;AAC/C,iBAAA,CAAA;;;ACVD,MAUa,mBAAmB,CAAA;+GAAnB,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAnB,mBAAmB,EAAA,YAAA,EAAA,IAAA,EAAA,cAAA,EAAA,CAAA,EAAA,SAAA,EAAAC,eAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,MAAA,EAAA,oBAAA,EAAA,oBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,uBAAA,EAAA,YAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FAAnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAV/B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,cAAc,EAAE;AACZ,wBAAA;AACI,4BAAA,SAAS,EAAE,eAAe;AAC1B,4BAAA,MAAM,EAAE,CAAC,uBAAuB,EAAE,oBAAoB,CAAC;4BACvD,OAAO,EAAE,CAAC,mCAAmC,CAAC;AACjD,yBAAA;AACJ,qBAAA;AACJ,iBAAA,CAAA;;;ACbD;;AAEG;;;;"}
|
|
1
|
+
{"version":3,"file":"taiga-ui-core-directives-dropdown.mjs","sources":["../../../projects/core/directives/dropdown/dropdown.driver.ts","../../../projects/core/directives/dropdown/dropdown.providers.ts","../../../projects/core/directives/dropdown/dropdown.service.ts","../../../projects/core/directives/dropdown/dropdown-options.directive.ts","../../../projects/core/directives/dropdown/dropdown-position.directive.ts","../../../projects/core/directives/dropdown/dropdown.directive.ts","../../../projects/core/directives/dropdown/dropdown.component.ts","../../../projects/core/directives/dropdown/dropdown.template.html","../../../projects/core/directives/dropdown/dropdown-context.directive.ts","../../../projects/core/directives/dropdown/dropdown-hover.options.ts","../../../projects/core/directives/dropdown/dropdown-open.directive.ts","../../../projects/core/directives/dropdown/dropdown-hover.directive.ts","../../../projects/core/directives/dropdown/dropdown-manual.directive.ts","../../../projects/core/directives/dropdown/dropdown-open-legacy.directive.ts","../../../projects/core/directives/dropdown/dropdown-portal.directive.ts","../../../projects/core/directives/dropdown/dropdown-position-sided.directive.ts","../../../projects/core/directives/dropdown/dropdown-selection.directive.ts","../../../projects/core/directives/dropdown/dropdown.ts","../../../projects/core/directives/dropdown/dropdown.bindings.ts","../../../projects/core/directives/dropdown/dropdown-limit-width.ts","../../../projects/core/directives/dropdown/dropdowns.component.ts","../../../projects/core/directives/dropdown/with-dropdown-open.directive.ts","../../../projects/core/directives/dropdown/taiga-ui-core-directives-dropdown.ts"],"sourcesContent":["import {Directive, Injectable} from '@angular/core';\nimport type {TuiDriver} from '@taiga-ui/core/classes';\nimport {TuiDriverDirective} from '@taiga-ui/core/classes';\nimport {BehaviorSubject} from 'rxjs';\n\n@Injectable()\nexport class TuiDropdownDriver extends BehaviorSubject<boolean> implements TuiDriver {\n public readonly type = 'dropdown';\n\n constructor() {\n super(false);\n }\n}\n\n@Directive({\n standalone: true,\n})\nexport class TuiDropdownDriverDirective extends TuiDriverDirective {\n public readonly type = 'dropdown';\n}\n","import type {Type} from '@angular/core';\nimport {\n tuiCreateToken,\n tuiCreateTokenFromFactory,\n} from '@taiga-ui/cdk/utils/miscellaneous';\n\nimport {TuiDropdownComponent} from './dropdown.component';\n\n/**\n * A component to display a dropdown\n */\nexport const TUI_DROPDOWN_COMPONENT = tuiCreateTokenFromFactory<Type<any>>(\n () => TuiDropdownComponent,\n);\n\nexport const TUI_DROPDOWN_CONTEXT = tuiCreateToken<Record<any, any>>();\n","import {Injectable} from '@angular/core';\nimport {TuiPortalService} from '@taiga-ui/cdk/classes';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TuiDropdownService extends TuiPortalService {}\n","import type {FactoryProvider} from '@angular/core';\nimport {Directive, inject, Input, Optional, Self, SkipSelf} from '@angular/core';\nimport {tuiCreateToken, tuiProvide} from '@taiga-ui/cdk/utils/miscellaneous';\nimport type {TuiVerticalDirection} from '@taiga-ui/core/types';\nimport {tuiOverrideOptions} from '@taiga-ui/core/utils';\n\nexport type TuiDropdownAlign = 'center' | 'left' | 'right';\nexport type TuiDropdownWidth = 'auto' | 'fixed' | 'min';\n\nexport interface TuiDropdownOptions {\n readonly align: TuiDropdownAlign;\n readonly appearance: string;\n readonly direction: TuiVerticalDirection | null;\n readonly limitWidth: TuiDropdownWidth;\n readonly maxHeight: number;\n readonly minHeight: number;\n readonly offset: number;\n}\n\n/** Default values for dropdown options */\nexport const TUI_DROPDOWN_DEFAULT_OPTIONS: TuiDropdownOptions = {\n align: 'left',\n direction: null,\n limitWidth: 'auto',\n maxHeight: 400,\n minHeight: 80,\n offset: 4,\n appearance: '',\n};\n\n/**\n * Default parameters for dropdown directive\n */\nexport const TUI_DROPDOWN_OPTIONS = tuiCreateToken(TUI_DROPDOWN_DEFAULT_OPTIONS);\n\nexport const tuiDropdownOptionsProvider: (\n options: Partial<TuiDropdownOptions>,\n) => FactoryProvider = (override: Partial<TuiDropdownOptions>) => ({\n provide: TUI_DROPDOWN_OPTIONS,\n deps: [\n [new Optional(), new Self(), TuiDropdownOptionsDirective],\n [new Optional(), new SkipSelf(), TUI_DROPDOWN_OPTIONS],\n ],\n useFactory: tuiOverrideOptions(override, TUI_DROPDOWN_DEFAULT_OPTIONS),\n});\n\n@Directive({\n standalone: true,\n selector:\n '[tuiDropdownAlign], [tuiDropdownAppearance], [tuiDropdownDirection], [tuiDropdownLimitWidth], [tuiDropdownMinHeight], [tuiDropdownMaxHeight], [tuiDropdownOffset]',\n providers: [tuiProvide(TUI_DROPDOWN_OPTIONS, TuiDropdownOptionsDirective)],\n})\nexport class TuiDropdownOptionsDirective implements TuiDropdownOptions {\n private readonly options = inject(TUI_DROPDOWN_OPTIONS, {skipSelf: true});\n\n @Input('tuiDropdownAlign')\n public align = this.options.align;\n\n @Input('tuiDropdownAppearance')\n public appearance = this.options.appearance;\n\n @Input('tuiDropdownDirection')\n public direction = this.options.direction;\n\n @Input('tuiDropdownLimitWidth')\n public limitWidth = this.options.limitWidth;\n\n @Input('tuiDropdownMinHeight')\n public minHeight = this.options.minHeight;\n\n @Input('tuiDropdownMaxHeight')\n public maxHeight = this.options.maxHeight;\n\n @Input('tuiDropdownOffset')\n public offset = this.options.offset;\n}\n","import {Directive, EventEmitter, inject, Output} from '@angular/core';\nimport {EMPTY_CLIENT_RECT} from '@taiga-ui/cdk/constants';\nimport {tuiPure} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {\n tuiFallbackAccessor,\n TuiPositionAccessor,\n TuiRectAccessor,\n} from '@taiga-ui/core/classes';\nimport {TUI_VIEWPORT} from '@taiga-ui/core/tokens';\nimport type {TuiPoint, TuiVerticalDirection} from '@taiga-ui/core/types';\n\nimport {TuiDropdownDirective} from './dropdown.directive';\nimport {TUI_DROPDOWN_OPTIONS} from './dropdown-options.directive';\n\n@Directive({\n standalone: true,\n})\nexport class TuiDropdownPosition extends TuiPositionAccessor {\n private readonly options = inject(TUI_DROPDOWN_OPTIONS);\n private readonly viewport = inject(TUI_VIEWPORT);\n\n private previous?: TuiVerticalDirection;\n\n @Output('tuiDropdownDirectionChange')\n public readonly directionChange = new EventEmitter<TuiVerticalDirection>();\n\n public readonly type = 'dropdown';\n public readonly accessor: TuiRectAccessor | null =\n tuiFallbackAccessor<TuiRectAccessor>('dropdown')(\n inject<any>(TuiRectAccessor),\n inject(TuiDropdownDirective, {optional: true})!,\n );\n\n @tuiPure\n public emitDirection(direction: TuiVerticalDirection): void {\n this.directionChange.emit(direction);\n }\n\n public getPosition({width, height}: DOMRect): TuiPoint {\n if (!width && !height) {\n this.previous = undefined;\n }\n\n const hostRect = this.accessor?.getClientRect() ?? EMPTY_CLIENT_RECT;\n const viewportRect = this.viewport.getClientRect();\n const {minHeight, align, direction, offset, limitWidth} = this.options;\n const viewport = {\n top: viewportRect.top - offset,\n bottom: viewportRect.bottom + offset,\n right: viewportRect.right - offset,\n left: viewportRect.left + offset,\n } as const;\n const previous = this.previous || direction || 'bottom';\n const available = {\n top: hostRect.top - 2 * offset - viewport.top,\n bottom: viewport.bottom - hostRect.bottom - 2 * offset,\n } as const;\n const rectWidth = limitWidth === 'fixed' ? hostRect.width : width;\n const right = Math.max(hostRect.right - rectWidth, offset);\n const left = hostRect.left + width < viewport.right ? hostRect.left : right;\n const position = {\n top: hostRect.top - offset - height,\n bottom: hostRect.bottom + offset,\n right: Math.max(viewport.left, right),\n center:\n hostRect.left + hostRect.width / 2 + width / 2 < viewport.right\n ? hostRect.left + hostRect.width / 2 - width / 2\n : right,\n left: Math.max(viewport.left, left),\n } as const;\n const better: TuiVerticalDirection =\n available.top > available.bottom ? 'top' : 'bottom';\n\n if (\n (available[previous] > minHeight && direction) ||\n available[previous] > height\n ) {\n this.emitDirection(previous);\n\n return [position[previous], position[align]];\n }\n\n this.previous = better;\n this.emitDirection(better);\n\n return [position[better], position[align]];\n }\n}\n","import type {AfterViewChecked, ComponentRef, OnChanges, OnDestroy} from '@angular/core';\nimport {\n ChangeDetectorRef,\n Directive,\n inject,\n INJECTOR,\n Input,\n signal,\n TemplateRef,\n} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {tuiZonefreeScheduler} from '@taiga-ui/cdk/observables';\nimport type {TuiContext} from '@taiga-ui/cdk/types';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {tuiPure} from '@taiga-ui/cdk/utils/miscellaneous';\nimport type {TuiRectAccessor, TuiVehicle} from '@taiga-ui/core/classes';\nimport {tuiAsRectAccessor, tuiAsVehicle} from '@taiga-ui/core/classes';\nimport type {TuiPortalItem} from '@taiga-ui/core/types';\nimport {tuiCheckFixedPosition} from '@taiga-ui/core/utils';\nimport type {PolymorpheusContent} from '@taiga-ui/polymorpheus';\nimport {PolymorpheusComponent, PolymorpheusTemplate} from '@taiga-ui/polymorpheus';\nimport {Subject, throttleTime} from 'rxjs';\n\nimport {TuiDropdownDriverDirective} from './dropdown.driver';\nimport {TUI_DROPDOWN_COMPONENT} from './dropdown.providers';\nimport {TuiDropdownService} from './dropdown.service';\nimport {TuiDropdownPosition} from './dropdown-position.directive';\n\n@Directive({\n standalone: true,\n selector: '[tuiDropdown]:not(ng-container):not(ng-template)',\n providers: [\n tuiAsRectAccessor(TuiDropdownDirective),\n tuiAsVehicle(TuiDropdownDirective),\n ],\n exportAs: 'tuiDropdown',\n hostDirectives: [\n TuiDropdownDriverDirective,\n {\n directive: TuiDropdownPosition,\n outputs: ['tuiDropdownDirectionChange'],\n },\n ],\n})\nexport class TuiDropdownDirective\n implements\n AfterViewChecked,\n OnDestroy,\n OnChanges,\n TuiPortalItem,\n TuiRectAccessor,\n TuiVehicle\n{\n private readonly refresh$ = new Subject<void>();\n private readonly service = inject(TuiDropdownService);\n private readonly cdr = inject(ChangeDetectorRef);\n\n protected readonly sub = this.refresh$\n .pipe(throttleTime(0, tuiZonefreeScheduler()), takeUntilDestroyed())\n .subscribe(() => {\n this.ref()?.changeDetectorRef.detectChanges();\n this.ref()?.changeDetectorRef.markForCheck();\n });\n\n public readonly el = tuiInjectElement();\n public readonly type = 'dropdown';\n public readonly component = new PolymorpheusComponent(\n inject(TUI_DROPDOWN_COMPONENT),\n inject(INJECTOR),\n );\n\n public ref = signal<ComponentRef<unknown> | null>(null);\n public content: PolymorpheusContent<TuiContext<() => void>>;\n\n @Input()\n public set tuiDropdown(content: PolymorpheusContent<TuiContext<() => void>>) {\n this.content =\n content instanceof TemplateRef\n ? new PolymorpheusTemplate(content, this.cdr)\n : content;\n }\n\n @tuiPure\n public get position(): 'absolute' | 'fixed' {\n return tuiCheckFixedPosition(this.el) ? 'fixed' : 'absolute';\n }\n\n public ngAfterViewChecked(): void {\n this.refresh$.next();\n }\n\n public ngOnChanges(): void {\n if (!this.content) {\n this.toggle(false);\n }\n }\n\n public ngOnDestroy(): void {\n this.toggle(false);\n }\n\n public getClientRect(): DOMRect {\n return this.el.getBoundingClientRect();\n }\n\n public toggle(show: boolean): void {\n const ref = this.ref();\n\n if (show && this.content && !ref) {\n this.ref.set(this.service.add(this.component));\n } else if (!show && ref) {\n this.ref.set(null);\n this.service.remove(ref);\n }\n }\n}\n","import {ChangeDetectionStrategy, Component, computed, inject} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {WA_WINDOW} from '@ng-web-apis/common';\nimport {TuiActiveZone} from '@taiga-ui/cdk/directives/active-zone';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {tuiClamp} from '@taiga-ui/cdk/utils/math';\nimport {tuiPx} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {tuiDropdownAnimation} from '@taiga-ui/core/animations';\nimport {\n tuiPositionAccessorFor,\n TuiRectAccessor,\n tuiRectAccessorFor,\n} from '@taiga-ui/core/classes';\nimport {TuiScrollbar} from '@taiga-ui/core/components/scrollbar';\nimport {TuiPositionService, TuiVisualViewportService} from '@taiga-ui/core/services';\nimport {TUI_ANIMATIONS_SPEED, TUI_DARK_MODE} from '@taiga-ui/core/tokens';\nimport {tuiToAnimationOptions} from '@taiga-ui/core/utils';\nimport {PolymorpheusOutlet, PolymorpheusTemplate} from '@taiga-ui/polymorpheus';\nimport {map, takeWhile} from 'rxjs';\n\nimport {TuiDropdownDirective} from './dropdown.directive';\nimport {TUI_DROPDOWN_CONTEXT} from './dropdown.providers';\nimport {TUI_DROPDOWN_OPTIONS} from './dropdown-options.directive';\nimport {TuiDropdownPosition} from './dropdown-position.directive';\n\n/**\n * @description:\n * This component is used to show template in a portal\n * using default style of white rounded box with a shadow\n */\n@Component({\n standalone: true,\n selector: 'tui-dropdown',\n imports: [PolymorpheusOutlet, PolymorpheusTemplate, TuiScrollbar],\n templateUrl: './dropdown.template.html',\n styleUrls: ['./dropdown.style.less'],\n // @bad TODO: OnPush\n // eslint-disable-next-line @angular-eslint/prefer-on-push-component-change-detection\n changeDetection: ChangeDetectionStrategy.Default,\n providers: [\n TuiPositionService,\n tuiPositionAccessorFor('dropdown', TuiDropdownPosition),\n tuiRectAccessorFor('dropdown', TuiDropdownDirective),\n ],\n animations: [tuiDropdownAnimation],\n hostDirectives: [TuiActiveZone],\n host: {\n '[@tuiDropdownAnimation]': 'animation',\n '[attr.data-appearance]': 'options.appearance',\n '[attr.tuiTheme]': 'theme()',\n },\n})\nexport class TuiDropdownComponent {\n private readonly el = tuiInjectElement();\n private readonly accessor = inject(TuiRectAccessor);\n private readonly win = inject(WA_WINDOW);\n private readonly vvs = inject(TuiVisualViewportService);\n\n protected readonly animation = tuiToAnimationOptions(inject(TUI_ANIMATIONS_SPEED));\n protected readonly options = inject(TUI_DROPDOWN_OPTIONS);\n protected readonly directive = inject(TuiDropdownDirective);\n protected readonly context = inject(TUI_DROPDOWN_CONTEXT, {optional: true});\n protected readonly darkMode = inject(TUI_DARK_MODE);\n\n // TODO(v5): use `TUI_DARK_MODE` instead of element attribute to get current theme\n protected readonly theme = computed(() => {\n this.darkMode();\n\n return this.directive.el.closest('[tuiTheme]')?.getAttribute('tuiTheme');\n });\n\n protected readonly sub = inject(TuiPositionService)\n .pipe(\n takeWhile(\n () =>\n this.directive.el.isConnected &&\n !!this.directive.el.getBoundingClientRect().height,\n ),\n map((v) => (this.directive.position === 'fixed' ? this.vvs.correct(v) : v)),\n map(([top, left]) => this.getStyles(top, left)),\n takeUntilDestroyed(),\n )\n .subscribe({\n next: (styles) => Object.assign(this.el.style, styles),\n complete: () => this.close?.(),\n });\n\n protected readonly close = (): void => this.directive.toggle(false);\n\n private getStyles(top: number, left: number): Record<string, string> {\n const {right} = this.el.getBoundingClientRect();\n const {maxHeight, minHeight, offset, limitWidth} = this.options;\n const {innerHeight} = this.win;\n const clientRect = this.el.offsetParent?.getBoundingClientRect();\n const {position} = this.directive;\n const rect = this.accessor.getClientRect();\n const offsetX = position === 'fixed' ? 0 : -(clientRect?.left || 0);\n const offsetY = position === 'fixed' ? 0 : -(clientRect?.top || 0);\n\n top += offsetY;\n left += offsetX;\n\n const sided = right <= rect.left || left >= rect.right;\n const isIntersecting =\n left < rect.right && right > rect.left && top < offsetY + 2 * offset;\n const available = isIntersecting\n ? rect.top - 2 * offset\n : offsetY + innerHeight - top - offset;\n\n return {\n position,\n top: tuiPx(Math.round(Math.max(top, offsetY + offset))),\n left: tuiPx(Math.round(left)),\n maxHeight: sided\n ? tuiPx(maxHeight)\n : tuiPx(Math.round(tuiClamp(available, minHeight, maxHeight))),\n width: limitWidth === 'fixed' ? tuiPx(Math.round(rect.width)) : '',\n minWidth: limitWidth === 'min' ? tuiPx(Math.round(rect.width)) : '',\n };\n }\n}\n","<tui-scrollbar class=\"t-scroll\">\n <div\n *polymorpheusOutlet=\"directive.content as text; context: {$implicit: close}\"\n class=\"t-primitive\"\n >\n {{ text }}\n </div>\n</tui-scrollbar>\n","import {computed, Directive, inject} from '@angular/core';\nimport {EMPTY_CLIENT_RECT} from '@taiga-ui/cdk/constants';\nimport {TuiActiveZone} from '@taiga-ui/cdk/directives/active-zone';\nimport {TUI_IS_TOUCH} from '@taiga-ui/cdk/tokens';\nimport {tuiGetActualTarget, tuiPointToClientRect} from '@taiga-ui/cdk/utils/dom';\nimport {tuiAsDriver, tuiAsRectAccessor, TuiRectAccessor} from '@taiga-ui/core/classes';\nimport {shouldCall} from '@taiga-ui/event-plugins';\n\nimport {TuiDropdownDriver} from './dropdown.driver';\n\nfunction activeZoneFilter(this: TuiDropdownContext, event?: Event): boolean {\n return (\n !event ||\n (this.driver.value && !this.activeZone.contains(tuiGetActualTarget(event)))\n );\n}\n\n@Directive({\n standalone: true,\n selector: '[tuiDropdownContext]',\n providers: [\n TuiActiveZone,\n TuiDropdownDriver,\n tuiAsDriver(TuiDropdownDriver),\n tuiAsRectAccessor(TuiDropdownContext),\n ],\n host: {\n '[style.user-select]': 'userSelect()',\n '[style.-webkit-user-select]': 'userSelect()',\n '[style.-webkit-touch-callout]': 'userSelect()',\n '(document:pointerdown.zoneless)': 'closeDropdown($event)',\n '(document:contextmenu.capture.zoneless)': 'closeDropdown($event)',\n '(document:keydown.esc)': 'closeDropdown()',\n '(longtap)': 'onContextMenu($event.detail.clientX, $event.detail.clientY)',\n },\n})\nexport class TuiDropdownContext extends TuiRectAccessor {\n private readonly isTouch = inject(TUI_IS_TOUCH);\n private currentRect = EMPTY_CLIENT_RECT;\n\n protected readonly userSelect = computed(() => (this.isTouch() ? 'none' : null));\n protected readonly activeZone = inject(TuiActiveZone);\n protected readonly driver = inject(TuiDropdownDriver);\n\n public readonly type = 'dropdown';\n\n public getClientRect(): DOMRect {\n return this.currentRect;\n }\n\n @shouldCall(activeZoneFilter)\n protected closeDropdown(_event?: Event): void {\n this.driver.next(false);\n this.currentRect = EMPTY_CLIENT_RECT;\n }\n\n protected onContextMenu(x: number, y: number): void {\n this.currentRect = tuiPointToClientRect(x, y);\n this.driver.next(true);\n }\n}\n","import type {Provider} from '@angular/core';\nimport {tuiCreateToken, tuiProvideOptions} from '@taiga-ui/cdk/utils/miscellaneous';\n\nexport interface TuiDropdownHoverOptions {\n readonly hideDelay: number;\n readonly showDelay: number;\n}\n\n/** Default values for hint options */\nexport const TUI_DROPDOWN_HOVER_DEFAULT_OPTIONS: TuiDropdownHoverOptions = {\n showDelay: 200,\n hideDelay: 500,\n};\n\n/**\n * Default parameters for dropdown hover directive\n */\nexport const TUI_DROPDOWN_HOVER_OPTIONS = tuiCreateToken(\n TUI_DROPDOWN_HOVER_DEFAULT_OPTIONS,\n);\n\nexport function tuiDropdownHoverOptionsProvider(\n options: Partial<TuiDropdownHoverOptions>,\n): Provider {\n return tuiProvideOptions(\n TUI_DROPDOWN_HOVER_OPTIONS,\n options,\n TUI_DROPDOWN_HOVER_DEFAULT_OPTIONS,\n );\n}\n","import type {OnChanges} from '@angular/core';\nimport {\n computed,\n ContentChild,\n Directive,\n ElementRef,\n EventEmitter,\n inject,\n Input,\n Output,\n} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {TuiActiveZone} from '@taiga-ui/cdk/directives/active-zone';\nimport {TuiObscured} from '@taiga-ui/cdk/directives/obscured';\nimport {tuiWatch} from '@taiga-ui/cdk/observables';\nimport {\n tuiGetActualTarget,\n tuiInjectElement,\n tuiIsElement,\n tuiIsElementEditable,\n tuiIsHTMLElement,\n} from '@taiga-ui/cdk/utils/dom';\nimport {\n tuiGetClosestFocusable,\n tuiIsNativeFocusedIn,\n tuiIsNativeKeyboardFocusable,\n} from '@taiga-ui/cdk/utils/focus';\nimport {tuiAsDriver} from '@taiga-ui/core/classes';\nimport {tuiIsEditingKey} from '@taiga-ui/core/utils/miscellaneous';\nimport {shouldCall} from '@taiga-ui/event-plugins';\nimport {filter, fromEvent, map, merge} from 'rxjs';\n\nimport {TuiDropdownDirective} from './dropdown.directive';\nimport {TuiDropdownDriver} from './dropdown.driver';\n\nfunction shouldClose(this: TuiDropdownOpen, event: Event | KeyboardEvent): boolean {\n return (\n 'key' in event &&\n event.key.toLowerCase() === 'escape' &&\n this.tuiDropdownEnabled &&\n !!this.tuiDropdownOpen &&\n !this['dropdown']()?.nextElementSibling\n );\n}\n\n@Directive({\n standalone: true,\n selector: '[tuiDropdown][tuiDropdownOpen],[tuiDropdown][tuiDropdownOpenChange]',\n providers: [TuiDropdownDriver, tuiAsDriver(TuiDropdownDriver)],\n hostDirectives: [\n TuiObscured,\n {\n directive: TuiActiveZone,\n inputs: ['tuiActiveZoneParent'],\n outputs: ['tuiActiveZoneChange'],\n },\n ],\n host: {\n '(click)': 'onClick($event.target)',\n '(keydown.arrowDown)': 'onArrow($event, false)',\n '(keydown.arrowUp)': 'onArrow($event, true)',\n '(document:keydown.zoneless.capture)': 'onEsc($event)',\n '(document:keydown.zoneless)': 'onKeydown($event)',\n },\n})\nexport class TuiDropdownOpen implements OnChanges {\n @ContentChild('tuiDropdownHost', {descendants: true, read: ElementRef})\n private readonly dropdownHost?: ElementRef<HTMLElement>;\n\n private readonly directive = inject(TuiDropdownDirective);\n private readonly el = tuiInjectElement();\n private readonly obscured = inject(TuiObscured);\n\n private readonly dropdown = computed(\n () => this.directive.ref()?.location.nativeElement,\n );\n\n protected readonly sub = merge(\n this.obscured.tuiObscured.pipe(filter(Boolean)),\n inject(TuiActiveZone).tuiActiveZoneChange.pipe(filter((a) => !a)),\n fromEvent(this.el, 'focusin').pipe(\n map(tuiGetActualTarget),\n filter((target) => !this.host.contains(target) || !this.directive.ref()),\n ),\n )\n .pipe(tuiWatch(), takeUntilDestroyed())\n .subscribe(() => this.toggle(false));\n\n @Input()\n public tuiDropdownEnabled = true;\n\n @Input()\n public tuiDropdownOpen: boolean | '' = false;\n\n @Output()\n public readonly tuiDropdownOpenChange = new EventEmitter<boolean>();\n\n // TODO: make it private when all legacy controls will be deleted from @taiga-ui/legacy (5.0)\n public readonly driver = inject(TuiDropdownDriver);\n\n public ngOnChanges(): void {\n this.update(!!this.tuiDropdownOpen);\n }\n\n public toggle(open: boolean): void {\n if (this.focused && !open) {\n this.host.focus({preventScroll: true});\n }\n\n this.update(open);\n }\n\n @shouldCall(shouldClose)\n protected onEsc(event: Event): void {\n event.preventDefault();\n this.toggle(false);\n }\n\n protected onClick(target: HTMLElement): void {\n if (!this.editable && this.host.contains(target)) {\n this.update(!this.tuiDropdownOpen);\n }\n }\n\n protected onArrow(event: KeyboardEvent, up: boolean): void {\n if (\n !tuiIsElement(event.target) ||\n !this.host.contains(event.target) ||\n !this.tuiDropdownEnabled\n ) {\n return;\n }\n\n event.preventDefault();\n this.focusDropdown(up);\n }\n\n protected onKeydown({key, target, defaultPrevented}: KeyboardEvent): void {\n if (\n !defaultPrevented &&\n tuiIsEditingKey(key) &&\n this.editable &&\n this.focused &&\n tuiIsHTMLElement(target) &&\n !tuiIsElementEditable(target)\n ) {\n this.host.focus({preventScroll: true});\n }\n }\n\n private get host(): HTMLElement {\n const initial = this.dropdownHost?.nativeElement || this.el;\n const focusable = tuiIsNativeKeyboardFocusable(initial)\n ? initial\n : tuiGetClosestFocusable({initial, root: this.el});\n\n return this.dropdownHost?.nativeElement || focusable || this.el;\n }\n\n private get editable(): boolean {\n return tuiIsElementEditable(this.host);\n }\n\n private get focused(): boolean {\n return tuiIsNativeFocusedIn(this.host) || tuiIsNativeFocusedIn(this.dropdown());\n }\n\n private update(open: boolean): void {\n if (open && !this.tuiDropdownEnabled) {\n return this.drive();\n }\n\n this.tuiDropdownOpen = open;\n this.tuiDropdownOpenChange.emit(open);\n this.drive();\n }\n\n private drive(open = !!this.tuiDropdownOpen && this.tuiDropdownEnabled): void {\n this.obscured.tuiObscuredEnabled = open;\n this.driver.next(open);\n }\n\n private focusDropdown(previous: boolean): void {\n const root = this.dropdown();\n\n if (!root) {\n this.update(true);\n\n return;\n }\n\n const doc = this.el.ownerDocument;\n const child = root.appendChild(doc.createElement('div'));\n const initial = previous ? child : root;\n const focusable = tuiGetClosestFocusable({initial, previous, root});\n\n child.remove();\n focusable?.focus();\n }\n}\n","import {DOCUMENT} from '@angular/common';\nimport {ContentChild, Directive, ElementRef, inject, Input} from '@angular/core';\nimport {toObservable} from '@angular/core/rxjs-interop';\nimport {TuiActiveZone} from '@taiga-ui/cdk/directives/active-zone';\nimport {tuiTypedFromEvent, tuiZoneOptimized} from '@taiga-ui/cdk/observables';\nimport {\n tuiGetActualTarget,\n tuiInjectElement,\n tuiIsElement,\n} from '@taiga-ui/cdk/utils/dom';\nimport {tuiAsDriver, TuiDriver} from '@taiga-ui/core/classes';\nimport {\n delay,\n distinctUntilChanged,\n filter,\n fromEvent,\n map,\n merge,\n of,\n share,\n startWith,\n switchMap,\n takeUntil,\n tap,\n} from 'rxjs';\n\nimport {TuiDropdownDirective} from './dropdown.directive';\nimport {TUI_DROPDOWN_HOVER_OPTIONS} from './dropdown-hover.options';\nimport {TuiDropdownOpen} from './dropdown-open.directive';\n\n@Directive({\n standalone: true,\n selector: '[tuiDropdownHover]',\n providers: [TuiActiveZone, tuiAsDriver(TuiDropdownHover)],\n host: {\n '(click.capture)': 'onClick($event)',\n },\n})\nexport class TuiDropdownHover extends TuiDriver {\n @ContentChild('tuiDropdownHost', {descendants: true, read: ElementRef})\n private readonly dropdownHost?: ElementRef<HTMLElement>;\n\n private readonly el = tuiInjectElement();\n private readonly doc = inject(DOCUMENT);\n private readonly options = inject(TUI_DROPDOWN_HOVER_OPTIONS);\n private readonly activeZone = inject(TuiActiveZone);\n private readonly open = inject(TuiDropdownOpen, {optional: true});\n /**\n * Dropdown can be removed not only via click/touch –\n * swipe on mobile devices removes dropdown sheet without triggering new mouseover / mouseout events.\n */\n private readonly dropdownExternalRemoval$ = toObservable(\n inject(TuiDropdownDirective).ref,\n ).pipe(filter((x) => !x && this.hovered));\n\n private readonly stream$ = merge(\n this.dropdownExternalRemoval$.pipe(\n switchMap(() =>\n tuiTypedFromEvent(this.doc, 'pointerdown').pipe(\n map(tuiGetActualTarget),\n delay(this.hideDelay),\n startWith(null),\n takeUntil(fromEvent(this.doc, 'mouseover')),\n ),\n ),\n ),\n tuiTypedFromEvent(this.doc, 'mouseover').pipe(map(tuiGetActualTarget)),\n tuiTypedFromEvent(this.doc, 'mouseout').pipe(map((e) => e.relatedTarget)),\n ).pipe(\n map((element) => tuiIsElement(element) && this.isHovered(element)),\n distinctUntilChanged(),\n switchMap((v) => of(v).pipe(delay(v ? this.showDelay : this.hideDelay))),\n tuiZoneOptimized(),\n tap((hovered) => {\n this.hovered = hovered;\n this.open?.toggle(hovered);\n }),\n share(),\n );\n\n @Input('tuiDropdownShowDelay')\n public showDelay = this.options.showDelay;\n\n @Input('tuiDropdownHideDelay')\n public hideDelay = this.options.hideDelay;\n\n public hovered = false;\n\n public readonly type = 'dropdown';\n\n constructor() {\n super((subscriber) => this.stream$.subscribe(subscriber));\n }\n\n protected onClick(event: MouseEvent): void {\n if (this.hovered && this.open) {\n event.preventDefault();\n }\n }\n\n private isHovered(element: Element): boolean {\n const host = this.dropdownHost?.nativeElement || this.el;\n const hovered = host.contains(element);\n const child = !this.el.contains(element) && this.activeZone.contains(element);\n\n return hovered || child;\n }\n}\n","import type {OnChanges} from '@angular/core';\nimport {Directive, inject, Input} from '@angular/core';\nimport {tuiAsDriver} from '@taiga-ui/core/classes';\n\nimport {TuiDropdownDriver} from './dropdown.driver';\n\n@Directive({\n standalone: true,\n selector: '[tuiDropdownManual]',\n providers: [TuiDropdownDriver, tuiAsDriver(TuiDropdownDriver)],\n})\nexport class TuiDropdownManual implements OnChanges {\n private readonly driver = inject(TuiDropdownDriver);\n\n @Input()\n public tuiDropdownManual: boolean | '' = false;\n\n public ngOnChanges(): void {\n this.driver.next(!!this.tuiDropdownManual);\n }\n}\n","import {Directive, Input, Output} from '@angular/core';\nimport {distinctUntilChanged, Subject} from 'rxjs';\n\n/**\n * @deprecated TODO: remove in v.5 when legacy controls are dropped\n */\n@Directive({\n standalone: true,\n selector:\n '[tuiDropdownOpen]:not([tuiDropdown]),[tuiDropdownOpenChange]:not([tuiDropdown])',\n})\nexport class TuiDropdownOpenLegacy {\n private readonly openStateSub = new Subject<boolean>();\n\n @Output()\n public readonly tuiDropdownOpenChange =\n this.openStateSub.pipe(distinctUntilChanged());\n\n @Input()\n public set tuiDropdownOpen(open: boolean) {\n this.emitOpenChange(open);\n }\n\n public emitOpenChange(open: boolean): void {\n this.openStateSub.next(open);\n }\n}\n","import type {EmbeddedViewRef, OnDestroy} from '@angular/core';\nimport {Directive, inject, Input, TemplateRef} from '@angular/core';\n\nimport {TuiDropdownService} from './dropdown.service';\n\n/**\n * @deprecated use {@link TuiPopup} directive instead\n */\n@Directive({\n standalone: true,\n selector: 'ng-template[tuiDropdown]',\n})\nexport class TuiDropdownPortal implements OnDestroy {\n private readonly template = inject(TemplateRef);\n private readonly service = inject(TuiDropdownService);\n\n private viewRef?: EmbeddedViewRef<unknown>;\n\n @Input()\n public set tuiDropdown(show: boolean) {\n this.viewRef?.destroy();\n\n if (show) {\n this.viewRef = this.service.addTemplate(this.template);\n }\n }\n\n public ngOnDestroy(): void {\n this.viewRef?.destroy();\n }\n}\n","import {Directive, inject, Input} from '@angular/core';\nimport {EMPTY_CLIENT_RECT} from '@taiga-ui/cdk/constants';\nimport {tuiAsPositionAccessor, TuiPositionAccessor} from '@taiga-ui/core/classes';\nimport {TUI_VIEWPORT} from '@taiga-ui/core/tokens';\nimport type {TuiPoint} from '@taiga-ui/core/types';\n\nimport {TUI_DROPDOWN_OPTIONS} from './dropdown-options.directive';\nimport {TuiDropdownPosition} from './dropdown-position.directive';\n\n@Directive({\n standalone: true,\n selector: '[tuiDropdownSided]',\n providers: [TuiDropdownPosition, tuiAsPositionAccessor(TuiDropdownPositionSided)],\n})\nexport class TuiDropdownPositionSided extends TuiPositionAccessor {\n private readonly options = inject(TUI_DROPDOWN_OPTIONS);\n private readonly viewport = inject(TUI_VIEWPORT);\n private readonly vertical = inject(TuiDropdownPosition);\n private previous = this.options.direction || 'bottom';\n\n @Input()\n public tuiDropdownSided: boolean | string = '';\n\n @Input()\n public tuiDropdownSidedOffset = 4;\n\n public readonly type = 'dropdown';\n\n public getPosition(rect: DOMRect): TuiPoint {\n if (this.tuiDropdownSided === false) {\n return this.vertical.getPosition(rect);\n }\n\n const {height, width} = rect;\n const hostRect = this.vertical.accessor?.getClientRect() ?? EMPTY_CLIENT_RECT;\n const viewport = this.viewport.getClientRect();\n const {direction, minHeight, offset} = this.options;\n const align = this.options.align === 'center' ? 'left' : this.options.align;\n const available = {\n top: hostRect.bottom - viewport.top,\n left: hostRect.left - offset - viewport.left,\n right: viewport.right - hostRect.right - offset,\n bottom: viewport.bottom - hostRect.top,\n } as const;\n const position = {\n top: hostRect.bottom - height + this.tuiDropdownSidedOffset + 1, // 1 for border\n left: hostRect.left - width - offset,\n right: hostRect.right + offset,\n bottom: hostRect.top - this.tuiDropdownSidedOffset - 1, // 1 for border\n } as const;\n const better = available.top > available.bottom ? 'top' : 'bottom';\n const maxLeft = available.left > available.right ? position.left : position.right;\n const left = available[align] > width ? position[align] : maxLeft;\n\n if (\n (available[this.previous] > minHeight && direction) ||\n this.previous === better\n ) {\n this.vertical.emitDirection(this.previous);\n\n return [position[this.previous], left];\n }\n\n this.previous = better;\n this.vertical.emitDirection(better);\n\n return [position[better], left];\n }\n}\n","import {DOCUMENT} from '@angular/common';\nimport type {OnDestroy} from '@angular/core';\nimport {Directive, inject, Input, ViewContainerRef} from '@angular/core';\nimport {\n CHAR_NO_BREAK_SPACE,\n CHAR_ZERO_WIDTH_SPACE,\n EMPTY_CLIENT_RECT,\n TUI_TRUE_HANDLER,\n} from '@taiga-ui/cdk/constants';\nimport {TUI_RANGE} from '@taiga-ui/cdk/tokens';\nimport type {TuiBooleanHandler} from '@taiga-ui/cdk/types';\nimport {\n tuiInjectElement,\n tuiIsElement,\n tuiIsTextfield,\n tuiIsTextNode,\n} from '@taiga-ui/cdk/utils/dom';\nimport {tuiGetNativeFocused} from '@taiga-ui/cdk/utils/focus';\nimport {tuiIsString, tuiPx} from '@taiga-ui/cdk/utils/miscellaneous';\nimport type {TuiRectAccessor} from '@taiga-ui/core/classes';\nimport {tuiAsDriver, tuiAsRectAccessor, TuiDriver} from '@taiga-ui/core/classes';\nimport {TUI_SELECTION_STREAM} from '@taiga-ui/core/tokens';\nimport {tuiGetWordRange} from '@taiga-ui/core/utils';\nimport {BehaviorSubject, combineLatest, distinctUntilChanged, map} from 'rxjs';\n\nimport {TuiDropdownDirective} from './dropdown.directive';\n\n@Directive({\n standalone: true,\n selector: '[tuiDropdownSelection]',\n providers: [\n tuiAsDriver(TuiDropdownSelection),\n tuiAsRectAccessor(TuiDropdownSelection),\n ],\n})\nexport class TuiDropdownSelection\n extends TuiDriver\n implements TuiRectAccessor, OnDestroy\n{\n private ghost?: HTMLElement;\n\n protected readonly doc = inject(DOCUMENT);\n protected readonly vcr = inject(ViewContainerRef);\n protected readonly dropdown = inject(TuiDropdownDirective);\n protected readonly el = tuiInjectElement();\n protected readonly handler$ = new BehaviorSubject<TuiBooleanHandler<Range>>(\n TUI_TRUE_HANDLER,\n );\n\n protected readonly stream$ = combineLatest([\n this.handler$,\n inject(TUI_SELECTION_STREAM).pipe(\n map(() => this.getRange()),\n distinctUntilChanged(\n (x, y) =>\n x.startOffset === y.startOffset &&\n x.endOffset === y.endOffset &&\n x.commonAncestorContainer === y.commonAncestorContainer,\n ),\n ),\n ]).pipe(\n map(([handler, range]) => {\n const contained = this.el.contains(range.commonAncestorContainer);\n\n this.range =\n contained && tuiIsTextNode(range.commonAncestorContainer)\n ? range\n : this.range;\n\n return (contained && handler(this.range)) || this.inDropdown(range);\n }),\n );\n\n protected range = inject(TUI_RANGE);\n\n @Input('tuiDropdownSelectionPosition')\n public position: 'selection' | 'tag' | 'word' = 'selection';\n\n public readonly type = 'dropdown';\n\n constructor() {\n super((subscriber) => this.stream$.subscribe(subscriber));\n }\n\n @Input()\n public set tuiDropdownSelection(visible: TuiBooleanHandler<Range> | string) {\n if (!tuiIsString(visible)) {\n this.handler$.next(visible);\n }\n }\n\n public getClientRect(): DOMRect {\n switch (this.position) {\n case 'tag': {\n const {commonAncestorContainer} = this.range;\n const element = tuiIsElement(commonAncestorContainer)\n ? commonAncestorContainer\n : commonAncestorContainer.parentNode;\n\n return element && tuiIsElement(element)\n ? element.getBoundingClientRect()\n : EMPTY_CLIENT_RECT;\n }\n case 'word':\n return tuiGetWordRange(this.range).getBoundingClientRect();\n default:\n return this.range.getBoundingClientRect();\n }\n }\n\n public ngOnDestroy(): void {\n if (this.ghost) {\n this.vcr.element.nativeElement.removeChild(this.ghost);\n }\n }\n\n protected getRange(): Range {\n const active = tuiGetNativeFocused(this.doc);\n const selection = this.doc.getSelection();\n const range =\n active && tuiIsTextfield(active) && this.el.contains(active)\n ? this.veryVerySadInputFix(active)\n : (selection?.rangeCount && selection.getRangeAt(0)) || this.range;\n\n return range.cloneRange();\n }\n\n /**\n * Check if given range is at least partially inside dropdown\n */\n protected inDropdown(range: Range): boolean {\n const {startContainer, endContainer} = range;\n const inDropdown = this.boxContains(range.commonAncestorContainer);\n const hostToDropdown =\n this.boxContains(endContainer) && this.el.contains(startContainer);\n const dropdownToHost =\n this.boxContains(startContainer) && this.el.contains(endContainer);\n\n return inDropdown || hostToDropdown || dropdownToHost;\n }\n\n /**\n * Check if Node is inside dropdown\n */\n private boxContains(node: Node): boolean {\n return !!this.dropdown.ref()?.location.nativeElement.contains(node);\n }\n\n private veryVerySadInputFix(element: HTMLInputElement | HTMLTextAreaElement): Range {\n const {ghost = this.initGhost(element)} = this;\n const {top, left, width, height} = element.getBoundingClientRect();\n const {selectionStart, selectionEnd, value} = element;\n const range = this.doc.createRange();\n const hostRect = this.el.getBoundingClientRect();\n\n ghost.style.top = tuiPx(top - hostRect.top);\n ghost.style.left = tuiPx(left - hostRect.left);\n ghost.style.width = tuiPx(width);\n ghost.style.height = tuiPx(height);\n ghost.textContent = CHAR_ZERO_WIDTH_SPACE + value + CHAR_NO_BREAK_SPACE;\n\n range.setStart(ghost.firstChild as Node, selectionStart || 0);\n range.setEnd(ghost.firstChild as Node, selectionEnd || 0);\n\n return range;\n }\n\n /**\n * Create an invisible DIV styled exactly like input/textarea element inside directive\n */\n private initGhost(element: HTMLInputElement | HTMLTextAreaElement): HTMLElement {\n const ghost = this.doc.createElement('div');\n const {font, letterSpacing, textTransform, padding} = getComputedStyle(element);\n\n ghost.style.position = 'absolute';\n ghost.style.pointerEvents = 'none';\n ghost.style.opacity = '0';\n ghost.style.whiteSpace = 'pre-wrap';\n ghost.style.font = font;\n ghost.style.letterSpacing = letterSpacing;\n ghost.style.textTransform = textTransform;\n ghost.style.padding = padding;\n\n this.vcr.element.nativeElement.appendChild(ghost);\n this.ghost = ghost;\n\n return ghost;\n }\n}\n","import {TuiDropdownComponent} from './dropdown.component';\nimport {TuiDropdownDirective} from './dropdown.directive';\nimport {TuiDropdownDriverDirective} from './dropdown.driver';\nimport {TuiDropdownContext} from './dropdown-context.directive';\nimport {TuiDropdownHover} from './dropdown-hover.directive';\nimport {TuiDropdownManual} from './dropdown-manual.directive';\nimport {TuiDropdownOpen} from './dropdown-open.directive';\nimport {TuiDropdownOpenLegacy} from './dropdown-open-legacy.directive';\nimport {TuiDropdownOptionsDirective} from './dropdown-options.directive';\nimport {TuiDropdownPortal} from './dropdown-portal.directive';\nimport {TuiDropdownPosition} from './dropdown-position.directive';\nimport {TuiDropdownPositionSided} from './dropdown-position-sided.directive';\nimport {TuiDropdownSelection} from './dropdown-selection.directive';\n\nexport const TuiDropdown = [\n TuiDropdownOptionsDirective,\n TuiDropdownDriverDirective,\n TuiDropdownDirective,\n TuiDropdownComponent,\n TuiDropdownOpen,\n TuiDropdownOpenLegacy,\n TuiDropdownPortal,\n TuiDropdownManual,\n TuiDropdownHover,\n TuiDropdownContext,\n TuiDropdownPosition,\n TuiDropdownPositionSided,\n TuiDropdownSelection,\n] as const;\n","import type {Signal, WritableSignal} from '@angular/core';\nimport {inject} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {tuiDirectiveBinding} from '@taiga-ui/cdk/utils/miscellaneous';\nimport type {PolymorpheusContent} from '@taiga-ui/polymorpheus';\n\nimport {TuiDropdownDirective} from './dropdown.directive';\nimport {TuiDropdownOpen} from './dropdown-open.directive';\n\ntype C = PolymorpheusContent;\n\nexport function tuiDropdown(value: C | WritableSignal<C>): WritableSignal<C>;\nexport function tuiDropdown(value: Signal<C>): Signal<C>;\nexport function tuiDropdown(value: C | Signal<C>): Signal<C> {\n return tuiDirectiveBinding(TuiDropdownDirective, 'tuiDropdown', value, {});\n}\n\nexport function tuiDropdownEnabled(\n value: WritableSignal<boolean> | boolean,\n): WritableSignal<boolean>;\nexport function tuiDropdownEnabled(value: Signal<boolean>): Signal<boolean>;\nexport function tuiDropdownEnabled(value: Signal<boolean> | boolean): Signal<boolean> {\n return tuiDirectiveBinding(TuiDropdownOpen, 'tuiDropdownEnabled', value, {});\n}\n\nexport function tuiDropdownOpen(): WritableSignal<boolean> {\n const open: WritableSignal<boolean> = tuiDirectiveBinding(\n TuiDropdownOpen,\n 'tuiDropdownOpen',\n false,\n {},\n );\n\n inject(TuiDropdownOpen)\n .tuiDropdownOpenChange.pipe(takeUntilDestroyed())\n .subscribe((value) => open.set(value));\n\n return open;\n}\n","import {Directive, inject} from '@angular/core';\nimport {tuiOverrideOptions} from '@taiga-ui/core/utils/miscellaneous';\n\nimport {\n TUI_DROPDOWN_DEFAULT_OPTIONS,\n TUI_DROPDOWN_OPTIONS,\n tuiDropdownOptionsProvider,\n} from './dropdown-options.directive';\n\n@Directive({\n standalone: true,\n providers: [tuiDropdownOptionsProvider({})],\n})\nexport class TuiDropdownFixed {\n constructor() {\n const override = tuiOverrideOptions(\n {limitWidth: 'fixed'},\n TUI_DROPDOWN_DEFAULT_OPTIONS,\n );\n\n override(inject(TUI_DROPDOWN_OPTIONS, {self: true, optional: true}), null);\n }\n}\n\n@Directive({standalone: true})\nexport class TuiDropdownAuto {\n constructor() {\n /**\n * Update directive props with new defaults before inputs are processed\n * TODO: find better way to override TuiDropdownFixed host directive from parent component\n */\n (inject(TUI_DROPDOWN_OPTIONS) as any).limitWidth = 'auto';\n }\n}\n","import {ChangeDetectionStrategy, Component} from '@angular/core';\nimport {tuiAsPortal, TuiPortals} from '@taiga-ui/cdk/classes';\n\nimport {TuiDropdownService} from './dropdown.service';\n\n/**\n * Host element for dynamically created portals, for example using {@link TuiDropdownDirective}.\n */\n@Component({\n standalone: true,\n selector: 'tui-dropdowns',\n template: '<ng-container #viewContainer />',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [tuiAsPortal(TuiDropdownService)],\n})\nexport class TuiDropdowns extends TuiPortals {}\n","import {Directive} from '@angular/core';\n\nimport {TuiDropdownOpen} from './dropdown-open.directive';\n\n@Directive({\n standalone: true,\n hostDirectives: [\n {\n directive: TuiDropdownOpen,\n inputs: ['tuiDropdownOpen: open', 'tuiDropdownEnabled'],\n outputs: ['tuiDropdownOpenChange: openChange'],\n },\n ],\n})\nexport class TuiWithDropdownOpen {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.TuiDropdownDriverDirective","i2.TuiDropdownPosition","i1","i2","tuiOverrideOptions","i1.TuiDropdownOpen"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@taiga-ui/core",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.29.0-canary.06ea748",
|
|
4
4
|
"description": "Core library for creating Angular components and applications using Taiga UI",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"angular",
|
|
@@ -317,10 +317,10 @@
|
|
|
317
317
|
"@angular/router": ">=16.0.0",
|
|
318
318
|
"@ng-web-apis/common": "^4.11.1",
|
|
319
319
|
"@ng-web-apis/mutation-observer": "^4.11.1",
|
|
320
|
-
"@taiga-ui/cdk": "^4.
|
|
320
|
+
"@taiga-ui/cdk": "^4.29.0",
|
|
321
321
|
"@taiga-ui/event-plugins": "^4.4.1",
|
|
322
|
-
"@taiga-ui/i18n": "^4.
|
|
323
|
-
"@taiga-ui/polymorpheus": "^4.
|
|
322
|
+
"@taiga-ui/i18n": "^4.29.0",
|
|
323
|
+
"@taiga-ui/polymorpheus": "^4.9.0",
|
|
324
324
|
"rxjs": ">=7.0.0"
|
|
325
325
|
},
|
|
326
326
|
"schematics": "./schematics/collection.json",
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
// Fonts
|
|
5
5
|
--tui-font-heading: 'Manrope', @font-fallback;
|
|
6
6
|
--tui-font-text: 'Manrope', @font-fallback;
|
|
7
|
-
--tui-font-offset: 0rem;
|
|
7
|
+
--tui-font-offset: ~'0rem';
|
|
8
8
|
// Heading
|
|
9
9
|
--tui-font-heading-1: bold calc(var(--tui-font-offset) + 3.125rem) / 3.5rem var(--tui-font-heading);
|
|
10
10
|
--tui-font-heading-2: bold calc(var(--tui-font-offset) + 2.75rem) / 3rem var(--tui-font-heading);
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { Directive, inject } from '@angular/core';
|
|
2
|
-
import { tuiOverrideOptions } from '@taiga-ui/core/utils/miscellaneous';
|
|
3
|
-
import { TUI_DROPDOWN_DEFAULT_OPTIONS, TUI_DROPDOWN_OPTIONS, tuiDropdownOptionsProvider, } from './dropdown-options.directive';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
class TuiDropdownFixed {
|
|
6
|
-
constructor() {
|
|
7
|
-
const override = tuiOverrideOptions({ limitWidth: 'fixed' }, TUI_DROPDOWN_DEFAULT_OPTIONS);
|
|
8
|
-
override(inject(TUI_DROPDOWN_OPTIONS, { self: true, optional: true }), null);
|
|
9
|
-
}
|
|
10
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiDropdownFixed, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
11
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: TuiDropdownFixed, isStandalone: true, providers: [tuiDropdownOptionsProvider({})], ngImport: i0 }); }
|
|
12
|
-
}
|
|
13
|
-
export { TuiDropdownFixed };
|
|
14
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiDropdownFixed, decorators: [{
|
|
15
|
-
type: Directive,
|
|
16
|
-
args: [{
|
|
17
|
-
standalone: true,
|
|
18
|
-
providers: [tuiDropdownOptionsProvider({})],
|
|
19
|
-
}]
|
|
20
|
-
}], ctorParameters: function () { return []; } });
|
|
21
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24tZml4ZWQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9kaXJlY3RpdmVzL2Ryb3Bkb3duL2Ryb3Bkb3duLWZpeGVkLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNoRCxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxvQ0FBb0MsQ0FBQztBQUV0RSxPQUFPLEVBQ0gsNEJBQTRCLEVBQzVCLG9CQUFvQixFQUNwQiwwQkFBMEIsR0FDN0IsTUFBTSw4QkFBOEIsQ0FBQzs7QUFFdEMsTUFJYSxnQkFBZ0I7SUFDekI7UUFDSSxNQUFNLFFBQVEsR0FBRyxrQkFBa0IsQ0FDL0IsRUFBQyxVQUFVLEVBQUUsT0FBTyxFQUFDLEVBQ3JCLDRCQUE0QixDQUMvQixDQUFDO1FBRUYsUUFBUSxDQUFDLE1BQU0sQ0FBQyxvQkFBb0IsRUFBRSxFQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDL0UsQ0FBQzsrR0FSUSxnQkFBZ0I7bUdBQWhCLGdCQUFnQixpQ0FGZCxDQUFDLDBCQUEwQixDQUFDLEVBQUUsQ0FBQyxDQUFDOztTQUVsQyxnQkFBZ0I7NEZBQWhCLGdCQUFnQjtrQkFKNUIsU0FBUzttQkFBQztvQkFDUCxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsU0FBUyxFQUFFLENBQUMsMEJBQTBCLENBQUMsRUFBRSxDQUFDLENBQUM7aUJBQzlDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEaXJlY3RpdmUsIGluamVjdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge3R1aU92ZXJyaWRlT3B0aW9uc30gZnJvbSAnQHRhaWdhLXVpL2NvcmUvdXRpbHMvbWlzY2VsbGFuZW91cyc7XG5cbmltcG9ydCB7XG4gICAgVFVJX0RST1BET1dOX0RFRkFVTFRfT1BUSU9OUyxcbiAgICBUVUlfRFJPUERPV05fT1BUSU9OUyxcbiAgICB0dWlEcm9wZG93bk9wdGlvbnNQcm92aWRlcixcbn0gZnJvbSAnLi9kcm9wZG93bi1vcHRpb25zLmRpcmVjdGl2ZSc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgcHJvdmlkZXJzOiBbdHVpRHJvcGRvd25PcHRpb25zUHJvdmlkZXIoe30pXSxcbn0pXG5leHBvcnQgY2xhc3MgVHVpRHJvcGRvd25GaXhlZCB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIGNvbnN0IG92ZXJyaWRlID0gdHVpT3ZlcnJpZGVPcHRpb25zKFxuICAgICAgICAgICAge2xpbWl0V2lkdGg6ICdmaXhlZCd9LFxuICAgICAgICAgICAgVFVJX0RST1BET1dOX0RFRkFVTFRfT1BUSU9OUyxcbiAgICAgICAgKTtcblxuICAgICAgICBvdmVycmlkZShpbmplY3QoVFVJX0RST1BET1dOX09QVElPTlMsIHtzZWxmOiB0cnVlLCBvcHRpb25hbDogdHJ1ZX0pLCBudWxsKTtcbiAgICB9XG59XG4iXX0=
|