@taiga-ui/core 4.8.0 → 4.8.1

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.
@@ -11,7 +11,7 @@ export declare class TuiDropdownContext extends TuiRectAccessor {
11
11
  protected readonly activeZone: TuiActiveZone;
12
12
  readonly type = "dropdown";
13
13
  getClientRect(): DOMRect;
14
- protected closeDropdown(_element: Element): void;
14
+ protected closeDropdown(_event?: Event): void;
15
15
  protected onContextMenu(x: number, y: number): void;
16
16
  protected onTouchStart(x: number, y: number): void;
17
17
  protected onTouchMove(x: number, y: number): void;
@@ -33,7 +33,7 @@ class TuiRoot {
33
33
  console.assert(!!inject(EVENT_MANAGER_PLUGINS).find((plugin) => plugin instanceof PreventEventPlugin), 'NG_EVENT_PLUGINS is missing from global providers');
34
34
  }
35
35
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiRoot, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
36
- 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.8.0" }, listeners: { "touchstart.passive.silent": "0" }, properties: { "style.--tui-duration.ms": "duration", "style.--tui-scroll-behavior": "reducedMotion ? \"auto\" : \"smooth\"", "class._mobile": "isMobileRes()" } }, hostDirectives: [{ directive: i1.TuiPlatform }], ngImport: i0, template: "<tui-scroll-controls\n *ngIf=\"scrollbars$ | async\"\n class=\"t-root-scrollbar\"\n/>\n<tui-dropdowns>\n <div class=\"t-root-content\">\n <ng-content />\n </div>\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}}html[data-tui-theme],.tui-zero-scrollbar{scrollbar-width:none;-ms-overflow-style:none}html[data-tui-theme]::-webkit-scrollbar,.tui-zero-scrollbar::-webkit-scrollbar,html[data-tui-theme]::-webkit-scrollbar-thumb,.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;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: "pipe", type: AsyncPipe, name: "async" }, { 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" }], changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None }); }
36
+ 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.8.1" }, listeners: { "touchstart.passive.silent": "0" }, properties: { "style.--tui-duration.ms": "duration", "style.--tui-scroll-behavior": "reducedMotion ? \"auto\" : \"smooth\"", "class._mobile": "isMobileRes()" } }, hostDirectives: [{ directive: i1.TuiPlatform }], ngImport: i0, template: "<tui-scroll-controls\n *ngIf=\"scrollbars$ | async\"\n class=\"t-root-scrollbar\"\n/>\n<tui-dropdowns>\n <div class=\"t-root-content\">\n <ng-content />\n </div>\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}}html[data-tui-theme],.tui-zero-scrollbar{scrollbar-width:none;-ms-overflow-style:none}html[data-tui-theme]::-webkit-scrollbar,.tui-zero-scrollbar::-webkit-scrollbar,html[data-tui-theme]::-webkit-scrollbar-thumb,.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;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: "pipe", type: AsyncPipe, name: "async" }, { 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" }], changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None }); }
37
37
  }
38
38
  export { TuiRoot };
39
39
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiRoot, decorators: [{
@@ -3,13 +3,13 @@ import { computed, Directive, inject } from '@angular/core';
3
3
  import { EMPTY_CLIENT_RECT } from '@taiga-ui/cdk/constants';
4
4
  import { TuiActiveZone } from '@taiga-ui/cdk/directives/active-zone';
5
5
  import { TUI_IS_IOS, TUI_IS_TOUCH } from '@taiga-ui/cdk/tokens';
6
- import { tuiPointToClientRect } from '@taiga-ui/cdk/utils/dom';
6
+ import { tuiGetActualTarget, tuiPointToClientRect } from '@taiga-ui/cdk/utils/dom';
7
7
  import { tuiAsDriver, tuiAsRectAccessor, TuiRectAccessor } from '@taiga-ui/core/classes';
8
8
  import { shouldCall } from '@taiga-ui/event-plugins';
9
9
  import { TuiDropdownDriver } from './dropdown.driver';
10
10
  import * as i0 from "@angular/core";
11
- function activeZoneFilter(target) {
12
- return !this.activeZone.contains(target);
11
+ function activeZoneFilter(event) {
12
+ return !event || !this.activeZone.contains(tuiGetActualTarget(event));
13
13
  }
14
14
  const TAP_DELAY = 700;
15
15
  const MOVE_THRESHOLD = 15;
@@ -28,7 +28,7 @@ class TuiDropdownContext extends TuiRectAccessor {
28
28
  getClientRect() {
29
29
  return this.currentRect;
30
30
  }
31
- closeDropdown(_element) {
31
+ closeDropdown(_event) {
32
32
  this.driver.next(false);
33
33
  this.currentRect = EMPTY_CLIENT_RECT;
34
34
  }
@@ -55,7 +55,7 @@ class TuiDropdownContext extends TuiRectAccessor {
55
55
  clearTimeout(this.longTapTimeout);
56
56
  }
57
57
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiDropdownContext, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
58
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: TuiDropdownContext, isStandalone: true, selector: "[tuiDropdownContext]", host: { listeners: { "touchend.silent.passive": "onTouchEnd()", "touchcancel.silent.passive": "onTouchEnd()", "touchmove.silent.passive": "onTouchMove($event.touches[0].clientX, $event.touches[0].clientY)", "touchstart.silent.passive": "onTouchStart($event.touches[0].clientX, $event.touches[0].clientY)", "document:pointerdown.silent": "closeDropdown($event.target)", "document:contextmenu.capture.silent": "closeDropdown($event.target)", "document:keydown.esc": "closeDropdown($event.currentTarget)", "contextmenu.prevent.stop": "onContextMenu($event.clientX, $event.clientY)" }, properties: { "style.user-select": "userSelect()", "style.-webkit-user-select": "userSelect()", "style.-webkit-touch-callout": "userSelect()" } }, providers: [
58
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: TuiDropdownContext, isStandalone: true, selector: "[tuiDropdownContext]", host: { listeners: { "touchend.silent.passive": "onTouchEnd()", "touchcancel.silent.passive": "onTouchEnd()", "touchmove.silent.passive": "onTouchMove($event.touches[0].clientX, $event.touches[0].clientY)", "touchstart.silent.passive": "onTouchStart($event.touches[0].clientX, $event.touches[0].clientY)", "document:pointerdown.silent": "closeDropdown($event)", "document:contextmenu.capture.silent": "closeDropdown($event)", "document:keydown.esc": "closeDropdown()", "contextmenu.prevent.stop": "onContextMenu($event.clientX, $event.clientY)" }, properties: { "style.user-select": "userSelect()", "style.-webkit-user-select": "userSelect()", "style.-webkit-touch-callout": "userSelect()" } }, providers: [
59
59
  TuiActiveZone,
60
60
  TuiDropdownDriver,
61
61
  tuiAsDriver(TuiDropdownDriver),
@@ -85,11 +85,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
85
85
  '(touchcancel.silent.passive)': 'onTouchEnd()',
86
86
  '(touchmove.silent.passive)': 'onTouchMove($event.touches[0].clientX, $event.touches[0].clientY)',
87
87
  '(touchstart.silent.passive)': 'onTouchStart($event.touches[0].clientX, $event.touches[0].clientY)',
88
- '(document:pointerdown.silent)': 'closeDropdown($event.target)',
89
- '(document:contextmenu.capture.silent)': 'closeDropdown($event.target)',
90
- '(document:keydown.esc)': 'closeDropdown($event.currentTarget)',
88
+ '(document:pointerdown.silent)': 'closeDropdown($event)',
89
+ '(document:contextmenu.capture.silent)': 'closeDropdown($event)',
90
+ '(document:keydown.esc)': 'closeDropdown()',
91
91
  '(contextmenu.prevent.stop)': 'onContextMenu($event.clientX, $event.clientY)',
92
92
  },
93
93
  }]
94
94
  }], propDecorators: { closeDropdown: [] } });
95
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24tY29udGV4dC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2RpcmVjdGl2ZXMvZHJvcGRvd24vZHJvcGRvd24tY29udGV4dC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBQyxRQUFRLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUMxRCxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUMxRCxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sc0NBQXNDLENBQUM7QUFDbkUsT0FBTyxFQUFDLFVBQVUsRUFBRSxZQUFZLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUM5RCxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUM3RCxPQUFPLEVBQUMsV0FBVyxFQUFFLGlCQUFpQixFQUFFLGVBQWUsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZGLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUVuRCxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQzs7QUFFcEQsU0FBUyxnQkFBZ0IsQ0FBMkIsTUFBZTtJQUMvRCxPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDN0MsQ0FBQztBQUVELE1BQU0sU0FBUyxHQUFHLEdBQUcsQ0FBQztBQUN0QixNQUFNLGNBQWMsR0FBRyxFQUFFLENBQUM7QUFFMUIsTUF5QmEsa0JBQW1CLFNBQVEsZUFBZTtJQXpCdkQ7O1FBMEJxQixVQUFLLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzNCLFlBQU8sR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDL0IsV0FBTSxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIs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RTt3QkFDeEUsK0JBQStCLEVBQUUsOEJBQThCO3dCQUMvRCx1Q0FBdUMsRUFBRSw4QkFBOEI7d0JBQ3ZFLHdCQUF3QixFQUFFLHFDQUFxQzt3QkFDL0QsNEJBQTRCLEVBQUUsK0NBQStDO3FCQUNoRjtpQkFDSjs4QkFrQmEsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Y29tcHV0ZWQsIERpcmVjdGl2ZSwgaW5qZWN0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7RU1QVFlfQ0xJRU5UX1JFQ1R9IGZyb20gJ0B0YWlnYS11aS9jZGsvY29uc3RhbnRzJztcbmltcG9ydCB7VHVpQWN0aXZlWm9uZX0gZnJvbSAnQHRhaWdhLXVpL2Nkay9kaXJlY3RpdmVzL2FjdGl2ZS16b25lJztcbmltcG9ydCB7VFVJX0lTX0lPUywgVFVJX0lTX1RPVUNIfSBmcm9tICdAdGFpZ2EtdWkvY2RrL3Rva2Vucyc7XG5pbXBvcnQge3R1aVBvaW50VG9DbGllbnRSZWN0fSBmcm9tICdAdGFpZ2EtdWkvY2RrL3V0aWxzL2RvbSc7XG5pbXBvcnQge3R1aUFzRHJpdmVyLCB0dWlBc1JlY3RBY2Nlc3NvciwgVHVpUmVjdEFjY2Vzc29yfSBmcm9tICdAdGFpZ2EtdWkvY29yZS9jbGFzc2VzJztcbmltcG9ydCB7c2hvdWxkQ2FsbH0gZnJvbSAnQHRhaWdhLXVpL2V2ZW50LXBsdWdpbnMnO1xuXG5pbXBvcnQge1R1aURyb3Bkb3duRHJpdmVyfSBmcm9tICcuL2Ryb3Bkb3duLmRyaXZlcic7XG5cbmZ1bmN0aW9uIGFjdGl2ZVpvbmVGaWx0ZXIodGhpczogVHVpRHJvcGRvd25Db250ZXh0LCB0YXJnZXQ6IEVsZW1lbnQpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIXRoaXMuYWN0aXZlWm9uZS5jb250YWlucyh0YXJnZXQpO1xufVxuXG5jb25zdCBUQVBfREVMQVkgPSA3MDA7XG5jb25zdCBNT1ZFX1RIUkVTSE9MRCA9IDE1O1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAnW3R1aURyb3Bkb3duQ29udGV4dF0nLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICBUdWlBY3RpdmVab25lLFxuICAgICAgICBUdWlEcm9wZG93bkRyaXZlcixcbiAgICAgICAgdHVpQXNEcml2ZXIoVHVpRHJvcGRvd25Ecml2ZXIpLFxuICAgICAgICB0dWlBc1JlY3RBY2Nlc3NvcihUdWlEcm9wZG93bkNvbnRleHQpLFxuICAgIF0sXG4gICAgaG9zdDoge1xuICAgICAgICAnW3N0eWxlLnVzZXItc2VsZWN0XSc6ICd1c2VyU2VsZWN0KCknLFxuICAgICAgICAnW3N0eWxlLi13ZWJraXQtdXNlci1zZWxlY3RdJzogJ3VzZXJTZWxlY3QoKScsXG4gICAgICAgICdbc3R5bGUuLXdlYmtpdC10b3VjaC1jYWxsb3V0XSc6ICd1c2VyU2VsZWN0KCknLFxuICAgICAgICAnKHRvdWNoZW5kLnNpbGVudC5wYXNzaXZlKSc6ICdvblRvdWNoRW5kKCknLFxuICAgICAgICAnKHRvdWNoY2FuY2VsLnNpbGVudC5wYXNzaXZlKSc6ICdvblRvdWNoRW5kKCknLFxuICAgICAgICAnKHRvdWNobW92ZS5zaWxlbnQucGFzc2l2ZSknOlxuICAgICAgICAgICAgJ29uVG91Y2hNb3ZlKCRldmVudC50b3VjaGVzWzBdLmNsaWVudFgsICRldmVudC50b3VjaGVzWzBdLmNsaWVudFkpJyxcbiAgICAgICAgJyh0b3VjaHN0YXJ0LnNpbGVudC5wYXNzaXZlKSc6XG4gICAgICAgICAgICAnb25Ub3VjaFN0YXJ0KCRldmVudC50b3VjaGVzWzBdLmNsaWVudFgsICRldmVudC50b3VjaGVzWzBdLmNsaWVudFkpJyxcbiAgICAgICAgJyhkb2N1bWVudDpwb2ludGVyZG93bi5zaWxlbnQpJzogJ2Nsb3NlRHJvcGRvd24oJGV2ZW50LnRhcmdldCknLFxuICAgICAgICAnKGRvY3VtZW50OmNvbnRleHRtZW51LmNhcHR1cmUuc2lsZW50KSc6ICdjbG9zZURyb3Bkb3duKCRldmVudC50YXJnZXQpJyxcbiAgICAgICAgJyhkb2N1bWVudDprZXlkb3duLmVzYyknOiAnY2xvc2VEcm9wZG93bigkZXZlbnQuY3VycmVudFRhcmdldCknLFxuICAgICAgICAnKGNvbnRleHRtZW51LnByZXZlbnQuc3RvcCknOiAnb25Db250ZXh0TWVudSgkZXZlbnQuY2xpZW50WCwgJGV2ZW50LmNsaWVudFkpJyxcbiAgICB9LFxufSlcbmV4cG9ydCBjbGFzcyBUdWlEcm9wZG93bkNvbnRleHQgZXh0ZW5kcyBUdWlSZWN0QWNjZXNzb3Ige1xuICAgIHByaXZhdGUgcmVhZG9ubHkgaXNJT1MgPSBpbmplY3QoVFVJX0lTX0lPUyk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBpc1RvdWNoID0gaW5qZWN0KFRVSV9JU19UT1VDSCk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBkcml2ZXIgPSBpbmplY3QoVHVpRHJvcGRvd25Ecml2ZXIpO1xuICAgIHByaXZhdGUgY3VycmVudFJlY3QgPSBFTVBUWV9DTElFTlRfUkVDVDtcbiAgICBwcml2YXRlIGxvbmdUYXBUaW1lb3V0OiBhbnkgPSBOYU47XG5cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgdXNlclNlbGVjdCA9IGNvbXB1dGVkKCgpID0+ICh0aGlzLmlzVG91Y2goKSA/ICdub25lJyA6IG51bGwpKTtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgYWN0aXZlWm9uZSA9IGluamVjdChUdWlBY3RpdmVab25lKTtcblxuICAgIHB1YmxpYyByZWFkb25seSB0eXBlID0gJ2Ryb3Bkb3duJztcblxuICAgIHB1YmxpYyBnZXRDbGllbnRSZWN0KCk6IERPTVJlY3Qge1xuICAgICAgICByZXR1cm4gdGhpcy5jdXJyZW50UmVjdDtcbiAgICB9XG5cbiAgICBAc2hvdWxkQ2FsbChhY3RpdmVab25lRmlsdGVyKVxuICAgIHByb3RlY3RlZCBjbG9zZURyb3Bkb3duKF9lbGVtZW50OiBFbGVtZW50KTogdm9pZCB7XG4gICAgICAgIHRoaXMuZHJpdmVyLm5leHQoZmFsc2UpO1xuICAgICAgICB0aGlzLmN1cnJlbnRSZWN0ID0gRU1QVFlfQ0xJRU5UX1JFQ1Q7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG9uQ29udGV4dE1lbnUoeDogbnVtYmVyLCB5OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jdXJyZW50UmVjdCA9IHR1aVBvaW50VG9DbGllbnRSZWN0KHgsIHkpO1xuICAgICAgICB0aGlzLmRyaXZlci5uZXh0KHRydWUpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBvblRvdWNoU3RhcnQoeDogbnVtYmVyLCB5OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmlzSU9TIHx8ICF0aGlzLmlzVG91Y2goKSB8fCB0aGlzLmN1cnJlbnRSZWN0ICE9PSBFTVBUWV9DTElFTlRfUkVDVCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5jdXJyZW50UmVjdCA9IHR1aVBvaW50VG9DbGllbnRSZWN0KHgsIHkpO1xuICAgICAgICB0aGlzLmxvbmdUYXBUaW1lb3V0ID0gc2V0VGltZW91dCgoKSA9PiB0aGlzLmRyaXZlci5uZXh0KHRydWUpLCBUQVBfREVMQVkpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBvblRvdWNoTW92ZSh4OiBudW1iZXIsIHk6IG51bWJlcik6IHZvaWQge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgICB0aGlzLmlzSU9TICYmXG4gICAgICAgICAgICB0aGlzLmlzVG91Y2goKSAmJlxuICAgICAgICAgICAgdGhpcy5jdXJyZW50UmVjdCAhPT0gRU1QVFlfQ0xJRU5UX1JFQ1QgJiZcbiAgICAgICAgICAgIE1hdGguaHlwb3QoeCAtIHRoaXMuY3VycmVudFJlY3QueCwgeSAtIHRoaXMuY3VycmVudFJlY3QueSkgPiBNT1ZFX1RIUkVTSE9MRFxuICAgICAgICApIHtcbiAgICAgICAgICAgIHRoaXMub25Ub3VjaEVuZCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG9uVG91Y2hFbmQoKTogdm9pZCB7XG4gICAgICAgIGNsZWFyVGltZW91dCh0aGlzLmxvbmdUYXBUaW1lb3V0KTtcbiAgICB9XG59XG4iXX0=
95
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24tY29udGV4dC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2RpcmVjdGl2ZXMvZHJvcGRvd24vZHJvcGRvd24tY29udGV4dC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBQyxRQUFRLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUMxRCxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUMxRCxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sc0NBQXNDLENBQUM7QUFDbkUsT0FBTyxFQUFDLFVBQVUsRUFBRSxZQUFZLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUM5RCxPQUFPLEVBQUMsa0JBQWtCLEVBQUUsb0JBQW9CLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUNqRixPQUFPLEVBQUMsV0FBVyxFQUFFLGlCQUFpQixFQUFFLGVBQWUsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZGLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUVuRCxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQzs7QUFFcEQsU0FBUyxnQkFBZ0IsQ0FBMkIsS0FBYTtJQUM3RCxPQUFPLENBQUMsS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsa0JBQWtCLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztBQUMxRSxDQUFDO0FBRUQsTUFBTSxTQUFTLEdBQUcsR0FBRyxDQUFDO0FBQ3RCLE1BQU0sY0FBYyxHQUFHLEVBQUUsQ0FBQztBQUUxQixNQXlCYSxrQkFBbUIsU0FBUSxlQUFlO0lBekJ2RDs7UUEwQnFCLFVBQUssR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDM0IsWUFBTyxHQUFHLE1BQU0sQ0FBQyxZQUFZ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QUE0QixFQUN4QixtRUFBbUU7d0JBQ3ZFLDZCQUE2QixFQUN6QixvRUFBb0U7d0JBQ3hFLCtCQUErQixFQUFFLHVCQUF1Qjt3QkFDeEQsdUNBQXVDLEVBQUUsdUJBQXVCO3dCQUNoRSx3QkFBd0IsRUFBRSxpQkFBaUI7d0JBQzNDLDRCQUE0QixFQUFFLCtDQUErQztxQkFDaEY7aUJBQ0o7OEJBa0JhLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2NvbXB1dGVkLCBEaXJlY3RpdmUsIGluamVjdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0VNUFRZX0NMSUVOVF9SRUNUfSBmcm9tICdAdGFpZ2EtdWkvY2RrL2NvbnN0YW50cyc7XG5pbXBvcnQge1R1aUFjdGl2ZVpvbmV9IGZyb20gJ0B0YWlnYS11aS9jZGsvZGlyZWN0aXZlcy9hY3RpdmUtem9uZSc7XG5pbXBvcnQge1RVSV9JU19JT1MsIFRVSV9JU19UT1VDSH0gZnJvbSAnQHRhaWdhLXVpL2Nkay90b2tlbnMnO1xuaW1wb3J0IHt0dWlHZXRBY3R1YWxUYXJnZXQsIHR1aVBvaW50VG9DbGllbnRSZWN0fSBmcm9tICdAdGFpZ2EtdWkvY2RrL3V0aWxzL2RvbSc7XG5pbXBvcnQge3R1aUFzRHJpdmVyLCB0dWlBc1JlY3RBY2Nlc3NvciwgVHVpUmVjdEFjY2Vzc29yfSBmcm9tICdAdGFpZ2EtdWkvY29yZS9jbGFzc2VzJztcbmltcG9ydCB7c2hvdWxkQ2FsbH0gZnJvbSAnQHRhaWdhLXVpL2V2ZW50LXBsdWdpbnMnO1xuXG5pbXBvcnQge1R1aURyb3Bkb3duRHJpdmVyfSBmcm9tICcuL2Ryb3Bkb3duLmRyaXZlcic7XG5cbmZ1bmN0aW9uIGFjdGl2ZVpvbmVGaWx0ZXIodGhpczogVHVpRHJvcGRvd25Db250ZXh0LCBldmVudD86IEV2ZW50KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICFldmVudCB8fCAhdGhpcy5hY3RpdmVab25lLmNvbnRhaW5zKHR1aUdldEFjdHVhbFRhcmdldChldmVudCkpO1xufVxuXG5jb25zdCBUQVBfREVMQVkgPSA3MDA7XG5jb25zdCBNT1ZFX1RIUkVTSE9MRCA9IDE1O1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAnW3R1aURyb3Bkb3duQ29udGV4dF0nLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICBUdWlBY3RpdmVab25lLFxuICAgICAgICBUdWlEcm9wZG93bkRyaXZlcixcbiAgICAgICAgdHVpQXNEcml2ZXIoVHVpRHJvcGRvd25Ecml2ZXIpLFxuICAgICAgICB0dWlBc1JlY3RBY2Nlc3NvcihUdWlEcm9wZG93bkNvbnRleHQpLFxuICAgIF0sXG4gICAgaG9zdDoge1xuICAgICAgICAnW3N0eWxlLnVzZXItc2VsZWN0XSc6ICd1c2VyU2VsZWN0KCknLFxuICAgICAgICAnW3N0eWxlLi13ZWJraXQtdXNlci1zZWxlY3RdJzogJ3VzZXJTZWxlY3QoKScsXG4gICAgICAgICdbc3R5bGUuLXdlYmtpdC10b3VjaC1jYWxsb3V0XSc6ICd1c2VyU2VsZWN0KCknLFxuICAgICAgICAnKHRvdWNoZW5kLnNpbGVudC5wYXNzaXZlKSc6ICdvblRvdWNoRW5kKCknLFxuICAgICAgICAnKHRvdWNoY2FuY2VsLnNpbGVudC5wYXNzaXZlKSc6ICdvblRvdWNoRW5kKCknLFxuICAgICAgICAnKHRvdWNobW92ZS5zaWxlbnQucGFzc2l2ZSknOlxuICAgICAgICAgICAgJ29uVG91Y2hNb3ZlKCRldmVudC50b3VjaGVzWzBdLmNsaWVudFgsICRldmVudC50b3VjaGVzWzBdLmNsaWVudFkpJyxcbiAgICAgICAgJyh0b3VjaHN0YXJ0LnNpbGVudC5wYXNzaXZlKSc6XG4gICAgICAgICAgICAnb25Ub3VjaFN0YXJ0KCRldmVudC50b3VjaGVzWzBdLmNsaWVudFgsICRldmVudC50b3VjaGVzWzBdLmNsaWVudFkpJyxcbiAgICAgICAgJyhkb2N1bWVudDpwb2ludGVyZG93bi5zaWxlbnQpJzogJ2Nsb3NlRHJvcGRvd24oJGV2ZW50KScsXG4gICAgICAgICcoZG9jdW1lbnQ6Y29udGV4dG1lbnUuY2FwdHVyZS5zaWxlbnQpJzogJ2Nsb3NlRHJvcGRvd24oJGV2ZW50KScsXG4gICAgICAgICcoZG9jdW1lbnQ6a2V5ZG93bi5lc2MpJzogJ2Nsb3NlRHJvcGRvd24oKScsXG4gICAgICAgICcoY29udGV4dG1lbnUucHJldmVudC5zdG9wKSc6ICdvbkNvbnRleHRNZW51KCRldmVudC5jbGllbnRYLCAkZXZlbnQuY2xpZW50WSknLFxuICAgIH0sXG59KVxuZXhwb3J0IGNsYXNzIFR1aURyb3Bkb3duQ29udGV4dCBleHRlbmRzIFR1aVJlY3RBY2Nlc3NvciB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBpc0lPUyA9IGluamVjdChUVUlfSVNfSU9TKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGlzVG91Y2ggPSBpbmplY3QoVFVJX0lTX1RPVUNIKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRyaXZlciA9IGluamVjdChUdWlEcm9wZG93bkRyaXZlcik7XG4gICAgcHJpdmF0ZSBjdXJyZW50UmVjdCA9IEVNUFRZX0NMSUVOVF9SRUNUO1xuICAgIHByaXZhdGUgbG9uZ1RhcFRpbWVvdXQ6IGFueSA9IE5hTjtcblxuICAgIHByb3RlY3RlZCByZWFkb25seSB1c2VyU2VsZWN0ID0gY29tcHV0ZWQoKCkgPT4gKHRoaXMuaXNUb3VjaCgpID8gJ25vbmUnIDogbnVsbCkpO1xuICAgIHByb3RlY3RlZCByZWFkb25seSBhY3RpdmVab25lID0gaW5qZWN0KFR1aUFjdGl2ZVpvbmUpO1xuXG4gICAgcHVibGljIHJlYWRvbmx5IHR5cGUgPSAnZHJvcGRvd24nO1xuXG4gICAgcHVibGljIGdldENsaWVudFJlY3QoKTogRE9NUmVjdCB7XG4gICAgICAgIHJldHVybiB0aGlzLmN1cnJlbnRSZWN0O1xuICAgIH1cblxuICAgIEBzaG91bGRDYWxsKGFjdGl2ZVpvbmVGaWx0ZXIpXG4gICAgcHJvdGVjdGVkIGNsb3NlRHJvcGRvd24oX2V2ZW50PzogRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kcml2ZXIubmV4dChmYWxzZSk7XG4gICAgICAgIHRoaXMuY3VycmVudFJlY3QgPSBFTVBUWV9DTElFTlRfUkVDVDtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb25Db250ZXh0TWVudSh4OiBudW1iZXIsIHk6IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLmN1cnJlbnRSZWN0ID0gdHVpUG9pbnRUb0NsaWVudFJlY3QoeCwgeSk7XG4gICAgICAgIHRoaXMuZHJpdmVyLm5leHQodHJ1ZSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG9uVG91Y2hTdGFydCh4OiBudW1iZXIsIHk6IG51bWJlcik6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuaXNJT1MgfHwgIXRoaXMuaXNUb3VjaCgpIHx8IHRoaXMuY3VycmVudFJlY3QgIT09IEVNUFRZX0NMSUVOVF9SRUNUKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmN1cnJlbnRSZWN0ID0gdHVpUG9pbnRUb0NsaWVudFJlY3QoeCwgeSk7XG4gICAgICAgIHRoaXMubG9uZ1RhcFRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHRoaXMuZHJpdmVyLm5leHQodHJ1ZSksIFRBUF9ERUxBWSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG9uVG91Y2hNb3ZlKHg6IG51bWJlciwgeTogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIHRoaXMuaXNJT1MgJiZcbiAgICAgICAgICAgIHRoaXMuaXNUb3VjaCgpICYmXG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRSZWN0ICE9PSBFTVBUWV9DTElFTlRfUkVDVCAmJlxuICAgICAgICAgICAgTWF0aC5oeXBvdCh4IC0gdGhpcy5jdXJyZW50UmVjdC54LCB5IC0gdGhpcy5jdXJyZW50UmVjdC55KSA+IE1PVkVfVEhSRVNIT0xEXG4gICAgICAgICkge1xuICAgICAgICAgICAgdGhpcy5vblRvdWNoRW5kKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb25Ub3VjaEVuZCgpOiB2b2lkIHtcbiAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMubG9uZ1RhcFRpbWVvdXQpO1xuICAgIH1cbn1cbiJdfQ==
@@ -34,7 +34,7 @@ class TuiRoot {
34
34
  console.assert(!!inject(EVENT_MANAGER_PLUGINS).find((plugin) => plugin instanceof PreventEventPlugin), 'NG_EVENT_PLUGINS is missing from global providers');
35
35
  }
36
36
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiRoot, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
37
- 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.8.0" }, listeners: { "touchstart.passive.silent": "0" }, properties: { "style.--tui-duration.ms": "duration", "style.--tui-scroll-behavior": "reducedMotion ? \"auto\" : \"smooth\"", "class._mobile": "isMobileRes()" } }, hostDirectives: [{ directive: i1.TuiPlatform }], ngImport: i0, template: "<tui-scroll-controls\n *ngIf=\"scrollbars$ | async\"\n class=\"t-root-scrollbar\"\n/>\n<tui-dropdowns>\n <div class=\"t-root-content\">\n <ng-content />\n </div>\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}}html[data-tui-theme],.tui-zero-scrollbar{scrollbar-width:none;-ms-overflow-style:none}html[data-tui-theme]::-webkit-scrollbar,.tui-zero-scrollbar::-webkit-scrollbar,html[data-tui-theme]::-webkit-scrollbar-thumb,.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;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: "pipe", type: AsyncPipe, name: "async" }, { 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" }], changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None }); }
37
+ 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.8.1" }, listeners: { "touchstart.passive.silent": "0" }, properties: { "style.--tui-duration.ms": "duration", "style.--tui-scroll-behavior": "reducedMotion ? \"auto\" : \"smooth\"", "class._mobile": "isMobileRes()" } }, hostDirectives: [{ directive: i1.TuiPlatform }], ngImport: i0, template: "<tui-scroll-controls\n *ngIf=\"scrollbars$ | async\"\n class=\"t-root-scrollbar\"\n/>\n<tui-dropdowns>\n <div class=\"t-root-content\">\n <ng-content />\n </div>\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}}html[data-tui-theme],.tui-zero-scrollbar{scrollbar-width:none;-ms-overflow-style:none}html[data-tui-theme]::-webkit-scrollbar,.tui-zero-scrollbar::-webkit-scrollbar,html[data-tui-theme]::-webkit-scrollbar-thumb,.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;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: "pipe", type: AsyncPipe, name: "async" }, { 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" }], changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None }); }
38
38
  }
39
39
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiRoot, decorators: [{
40
40
  type: Component,
@@ -4,7 +4,7 @@ import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
4
4
  import { WA_WINDOW } from '@ng-web-apis/common';
5
5
  import * as i1 from '@taiga-ui/cdk/directives/active-zone';
6
6
  import { TuiActiveZone } from '@taiga-ui/cdk/directives/active-zone';
7
- import { tuiInjectElement, tuiPointToClientRect, tuiGetActualTarget, tuiIsElement, tuiIsHTMLElement, tuiIsElementEditable, tuiIsTextNode, tuiIsTextfield } from '@taiga-ui/cdk/utils/dom';
7
+ import { tuiInjectElement, tuiGetActualTarget, tuiPointToClientRect, tuiIsElement, tuiIsHTMLElement, tuiIsElementEditable, tuiIsTextNode, tuiIsTextfield } from '@taiga-ui/cdk/utils/dom';
8
8
  import { tuiClamp } from '@taiga-ui/cdk/utils/math';
9
9
  import { tuiCreateTokenFromFactory, tuiCreateToken, tuiProvide, tuiPure, tuiPx, tuiProvideOptions, tuiIsString, tuiDirectiveBinding } from '@taiga-ui/cdk/utils/miscellaneous';
10
10
  import { tuiDropdownAnimation } from '@taiga-ui/core/animations';
@@ -341,8 +341,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
341
341
  }, template: "<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", styles: [":host{position:absolute;display:flex;box-shadow:var(--tui-shadow-medium);color:var(--tui-text-primary);background:var(--tui-background-elevation-3);border-radius:var(--tui-radius-m);overflow:hidden;border:1px solid var(--tui-border-normal);box-sizing:border-box;max-inline-size:calc(100% - 8px);isolation:isolate;pointer-events:auto}:host.ng-animating{pointer-events:none}:host:not([style*=top]){visibility:hidden}.t-scroll{flex-grow:1;max-inline-size:100%;overscroll-behavior:none}.t-primitive{padding:1rem}\n"] }]
342
342
  }] });
343
343
 
344
- function activeZoneFilter(target) {
345
- return !this.activeZone.contains(target);
344
+ function activeZoneFilter(event) {
345
+ return !event || !this.activeZone.contains(tuiGetActualTarget(event));
346
346
  }
347
347
  const TAP_DELAY = 700;
348
348
  const MOVE_THRESHOLD = 15;
@@ -361,7 +361,7 @@ class TuiDropdownContext extends TuiRectAccessor {
361
361
  getClientRect() {
362
362
  return this.currentRect;
363
363
  }
364
- closeDropdown(_element) {
364
+ closeDropdown(_event) {
365
365
  this.driver.next(false);
366
366
  this.currentRect = EMPTY_CLIENT_RECT;
367
367
  }
@@ -388,7 +388,7 @@ class TuiDropdownContext extends TuiRectAccessor {
388
388
  clearTimeout(this.longTapTimeout);
389
389
  }
390
390
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiDropdownContext, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
391
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: TuiDropdownContext, isStandalone: true, selector: "[tuiDropdownContext]", host: { listeners: { "touchend.silent.passive": "onTouchEnd()", "touchcancel.silent.passive": "onTouchEnd()", "touchmove.silent.passive": "onTouchMove($event.touches[0].clientX, $event.touches[0].clientY)", "touchstart.silent.passive": "onTouchStart($event.touches[0].clientX, $event.touches[0].clientY)", "document:pointerdown.silent": "closeDropdown($event.target)", "document:contextmenu.capture.silent": "closeDropdown($event.target)", "document:keydown.esc": "closeDropdown($event.currentTarget)", "contextmenu.prevent.stop": "onContextMenu($event.clientX, $event.clientY)" }, properties: { "style.user-select": "userSelect()", "style.-webkit-user-select": "userSelect()", "style.-webkit-touch-callout": "userSelect()" } }, providers: [
391
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: TuiDropdownContext, isStandalone: true, selector: "[tuiDropdownContext]", host: { listeners: { "touchend.silent.passive": "onTouchEnd()", "touchcancel.silent.passive": "onTouchEnd()", "touchmove.silent.passive": "onTouchMove($event.touches[0].clientX, $event.touches[0].clientY)", "touchstart.silent.passive": "onTouchStart($event.touches[0].clientX, $event.touches[0].clientY)", "document:pointerdown.silent": "closeDropdown($event)", "document:contextmenu.capture.silent": "closeDropdown($event)", "document:keydown.esc": "closeDropdown()", "contextmenu.prevent.stop": "onContextMenu($event.clientX, $event.clientY)" }, properties: { "style.user-select": "userSelect()", "style.-webkit-user-select": "userSelect()", "style.-webkit-touch-callout": "userSelect()" } }, providers: [
392
392
  TuiActiveZone,
393
393
  TuiDropdownDriver,
394
394
  tuiAsDriver(TuiDropdownDriver),
@@ -417,9 +417,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
417
417
  '(touchcancel.silent.passive)': 'onTouchEnd()',
418
418
  '(touchmove.silent.passive)': 'onTouchMove($event.touches[0].clientX, $event.touches[0].clientY)',
419
419
  '(touchstart.silent.passive)': 'onTouchStart($event.touches[0].clientX, $event.touches[0].clientY)',
420
- '(document:pointerdown.silent)': 'closeDropdown($event.target)',
421
- '(document:contextmenu.capture.silent)': 'closeDropdown($event.target)',
422
- '(document:keydown.esc)': 'closeDropdown($event.currentTarget)',
420
+ '(document:pointerdown.silent)': 'closeDropdown($event)',
421
+ '(document:contextmenu.capture.silent)': 'closeDropdown($event)',
422
+ '(document:keydown.esc)': 'closeDropdown()',
423
423
  '(contextmenu.prevent.stop)': 'onContextMenu($event.clientX, $event.clientY)',
424
424
  },
425
425
  }]
@@ -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/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 {Subject} from 'rxjs';\n\n@Injectable()\nexport class TuiDropdownDriver extends Subject<boolean> implements TuiDriver {\n public readonly type = 'dropdown';\n}\n\n@Directive({\n standalone: true,\n selector: '[tuiDropdownDriver]',\n})\nexport class TuiDropdownDriverDirective extends TuiDriverDirective {\n public readonly type = 'dropdown';\n}\n","import type {Type} from '@angular/core';\nimport {InjectionToken} from '@angular/core';\nimport {tuiCreateTokenFromFactory} 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 = new InjectionToken<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, Self} from '@angular/core';\nimport {Directive, inject, Input, Optional, 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, inject} from '@angular/core';\nimport {EMPTY_CLIENT_RECT} from '@taiga-ui/cdk/constants';\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 selector: '[tuiDropdownPosition]',\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 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 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 = available.top > available.bottom ? 'top' : 'bottom';\n\n if (\n (available[previous] > minHeight && direction) ||\n available[previous] > height\n ) {\n return [position[previous], position[align]];\n }\n\n this.previous = 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: [TuiDropdownDriverDirective, TuiDropdownPosition],\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, 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} 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 theme = this.directive.el\n .closest('[tuiTheme]')\n ?.getAttribute('tuiTheme');\n\n protected readonly sub = inject(TuiPositionService)\n .pipe(\n takeWhile(() => this.directive.el.isConnected),\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_IOS, TUI_IS_TOUCH} from '@taiga-ui/cdk/tokens';\nimport {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, target: Element): boolean {\n return !this.activeZone.contains(target);\n}\n\nconst TAP_DELAY = 700;\nconst MOVE_THRESHOLD = 15;\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 '(touchend.silent.passive)': 'onTouchEnd()',\n '(touchcancel.silent.passive)': 'onTouchEnd()',\n '(touchmove.silent.passive)':\n 'onTouchMove($event.touches[0].clientX, $event.touches[0].clientY)',\n '(touchstart.silent.passive)':\n 'onTouchStart($event.touches[0].clientX, $event.touches[0].clientY)',\n '(document:pointerdown.silent)': 'closeDropdown($event.target)',\n '(document:contextmenu.capture.silent)': 'closeDropdown($event.target)',\n '(document:keydown.esc)': 'closeDropdown($event.currentTarget)',\n '(contextmenu.prevent.stop)': 'onContextMenu($event.clientX, $event.clientY)',\n },\n})\nexport class TuiDropdownContext extends TuiRectAccessor {\n private readonly isIOS = inject(TUI_IS_IOS);\n private readonly isTouch = inject(TUI_IS_TOUCH);\n private readonly driver = inject(TuiDropdownDriver);\n private currentRect = EMPTY_CLIENT_RECT;\n private longTapTimeout: any = NaN;\n\n protected readonly userSelect = computed(() => (this.isTouch() ? 'none' : null));\n protected readonly activeZone = inject(TuiActiveZone);\n\n public readonly type = 'dropdown';\n\n public getClientRect(): DOMRect {\n return this.currentRect;\n }\n\n @shouldCall(activeZoneFilter)\n protected closeDropdown(_element: Element): 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 protected onTouchStart(x: number, y: number): void {\n if (!this.isIOS || !this.isTouch() || this.currentRect !== EMPTY_CLIENT_RECT) {\n return;\n }\n\n this.currentRect = tuiPointToClientRect(x, y);\n this.longTapTimeout = setTimeout(() => this.driver.next(true), TAP_DELAY);\n }\n\n protected onTouchMove(x: number, y: number): void {\n if (\n this.isIOS &&\n this.isTouch() &&\n this.currentRect !== EMPTY_CLIENT_RECT &&\n Math.hypot(x - this.currentRect.x, y - this.currentRect.y) > MOVE_THRESHOLD\n ) {\n this.onTouchEnd();\n }\n }\n\n protected onTouchEnd(): void {\n clearTimeout(this.longTapTimeout);\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 ChangeDetectorRef,\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.silent.capture)': 'onEsc($event)',\n '(document:keydown.silent)': '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(inject(ChangeDetectorRef)), 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 && this.tuiDropdownEnabled);\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 !this.directive.content ||\n !tuiIsHTMLElement(target) ||\n (tuiIsElementEditable(target) && target !== this.host)\n ) {\n return;\n }\n\n this.update(true);\n this.host.focus({preventScroll: true});\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;\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 {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 {delay, distinctUntilChanged, map, merge, of, share, switchMap, tap} from 'rxjs';\n\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 private readonly stream$ = merge(\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 {BehaviorSubject} 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 @Output()\n public readonly tuiDropdownOpenChange = new BehaviorSubject(false);\n\n @Input()\n public set tuiDropdownOpen(open: boolean) {\n this.tuiDropdownOpenChange.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@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\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 return [position[this.previous], left];\n }\n\n this.previous = 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 {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: `\n <ng-content></ng-content>\n <ng-container #viewContainer></ng-container>\n `,\n styles: [\n `\n :host {\n display: block;\n height: 100%;\n isolation: isolate;\n }\n `,\n ],\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'],\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","i1.TuiDropdownOpen"],"mappings":"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"}
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/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 {Subject} from 'rxjs';\n\n@Injectable()\nexport class TuiDropdownDriver extends Subject<boolean> implements TuiDriver {\n public readonly type = 'dropdown';\n}\n\n@Directive({\n standalone: true,\n selector: '[tuiDropdownDriver]',\n})\nexport class TuiDropdownDriverDirective extends TuiDriverDirective {\n public readonly type = 'dropdown';\n}\n","import type {Type} from '@angular/core';\nimport {InjectionToken} from '@angular/core';\nimport {tuiCreateTokenFromFactory} 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 = new InjectionToken<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, Self} from '@angular/core';\nimport {Directive, inject, Input, Optional, 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, inject} from '@angular/core';\nimport {EMPTY_CLIENT_RECT} from '@taiga-ui/cdk/constants';\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 selector: '[tuiDropdownPosition]',\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 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 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 = available.top > available.bottom ? 'top' : 'bottom';\n\n if (\n (available[previous] > minHeight && direction) ||\n available[previous] > height\n ) {\n return [position[previous], position[align]];\n }\n\n this.previous = 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: [TuiDropdownDriverDirective, TuiDropdownPosition],\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, 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} 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 theme = this.directive.el\n .closest('[tuiTheme]')\n ?.getAttribute('tuiTheme');\n\n protected readonly sub = inject(TuiPositionService)\n .pipe(\n takeWhile(() => this.directive.el.isConnected),\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_IOS, 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 !event || !this.activeZone.contains(tuiGetActualTarget(event));\n}\n\nconst TAP_DELAY = 700;\nconst MOVE_THRESHOLD = 15;\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 '(touchend.silent.passive)': 'onTouchEnd()',\n '(touchcancel.silent.passive)': 'onTouchEnd()',\n '(touchmove.silent.passive)':\n 'onTouchMove($event.touches[0].clientX, $event.touches[0].clientY)',\n '(touchstart.silent.passive)':\n 'onTouchStart($event.touches[0].clientX, $event.touches[0].clientY)',\n '(document:pointerdown.silent)': 'closeDropdown($event)',\n '(document:contextmenu.capture.silent)': 'closeDropdown($event)',\n '(document:keydown.esc)': 'closeDropdown()',\n '(contextmenu.prevent.stop)': 'onContextMenu($event.clientX, $event.clientY)',\n },\n})\nexport class TuiDropdownContext extends TuiRectAccessor {\n private readonly isIOS = inject(TUI_IS_IOS);\n private readonly isTouch = inject(TUI_IS_TOUCH);\n private readonly driver = inject(TuiDropdownDriver);\n private currentRect = EMPTY_CLIENT_RECT;\n private longTapTimeout: any = NaN;\n\n protected readonly userSelect = computed(() => (this.isTouch() ? 'none' : null));\n protected readonly activeZone = inject(TuiActiveZone);\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 protected onTouchStart(x: number, y: number): void {\n if (!this.isIOS || !this.isTouch() || this.currentRect !== EMPTY_CLIENT_RECT) {\n return;\n }\n\n this.currentRect = tuiPointToClientRect(x, y);\n this.longTapTimeout = setTimeout(() => this.driver.next(true), TAP_DELAY);\n }\n\n protected onTouchMove(x: number, y: number): void {\n if (\n this.isIOS &&\n this.isTouch() &&\n this.currentRect !== EMPTY_CLIENT_RECT &&\n Math.hypot(x - this.currentRect.x, y - this.currentRect.y) > MOVE_THRESHOLD\n ) {\n this.onTouchEnd();\n }\n }\n\n protected onTouchEnd(): void {\n clearTimeout(this.longTapTimeout);\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 ChangeDetectorRef,\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.silent.capture)': 'onEsc($event)',\n '(document:keydown.silent)': '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(inject(ChangeDetectorRef)), 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 && this.tuiDropdownEnabled);\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 !this.directive.content ||\n !tuiIsHTMLElement(target) ||\n (tuiIsElementEditable(target) && target !== this.host)\n ) {\n return;\n }\n\n this.update(true);\n this.host.focus({preventScroll: true});\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;\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 {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 {delay, distinctUntilChanged, map, merge, of, share, switchMap, tap} from 'rxjs';\n\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 private readonly stream$ = merge(\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 {BehaviorSubject} 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 @Output()\n public readonly tuiDropdownOpenChange = new BehaviorSubject(false);\n\n @Input()\n public set tuiDropdownOpen(open: boolean) {\n this.tuiDropdownOpenChange.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@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\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 return [position[this.previous], left];\n }\n\n this.previous = 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 {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: `\n <ng-content></ng-content>\n <ng-container #viewContainer></ng-container>\n `,\n styles: [\n `\n :host {\n display: block;\n height: 100%;\n isolation: isolate;\n }\n `,\n ],\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'],\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","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.8.0",
3
+ "version": "4.8.1",
4
4
  "description": "Core library for creating Angular components and applications using Taiga UI",
5
5
  "keywords": [
6
6
  "angular",
@@ -235,12 +235,6 @@
235
235
  "esm": "./esm2022/pipes/auto-color/taiga-ui-core-pipes-auto-color.mjs",
236
236
  "default": "./fesm2022/taiga-ui-core-pipes-auto-color.mjs"
237
237
  },
238
- "./pipes/calendar-sheet": {
239
- "types": "./pipes/calendar-sheet/index.d.ts",
240
- "esm2022": "./esm2022/pipes/calendar-sheet/taiga-ui-core-pipes-calendar-sheet.mjs",
241
- "esm": "./esm2022/pipes/calendar-sheet/taiga-ui-core-pipes-calendar-sheet.mjs",
242
- "default": "./fesm2022/taiga-ui-core-pipes-calendar-sheet.mjs"
243
- },
244
238
  "./pipes/fallback-src": {
245
239
  "types": "./pipes/fallback-src/index.d.ts",
246
240
  "esm2022": "./esm2022/pipes/fallback-src/taiga-ui-core-pipes-fallback-src.mjs",
@@ -259,11 +253,11 @@
259
253
  "esm": "./esm2022/pipes/format-date/taiga-ui-core-pipes-format-date.mjs",
260
254
  "default": "./fesm2022/taiga-ui-core-pipes-format-date.mjs"
261
255
  },
262
- "./pipes/format-number": {
263
- "types": "./pipes/format-number/index.d.ts",
264
- "esm2022": "./esm2022/pipes/format-number/taiga-ui-core-pipes-format-number.mjs",
265
- "esm": "./esm2022/pipes/format-number/taiga-ui-core-pipes-format-number.mjs",
266
- "default": "./fesm2022/taiga-ui-core-pipes-format-number.mjs"
256
+ "./pipes/calendar-sheet": {
257
+ "types": "./pipes/calendar-sheet/index.d.ts",
258
+ "esm2022": "./esm2022/pipes/calendar-sheet/taiga-ui-core-pipes-calendar-sheet.mjs",
259
+ "esm": "./esm2022/pipes/calendar-sheet/taiga-ui-core-pipes-calendar-sheet.mjs",
260
+ "default": "./fesm2022/taiga-ui-core-pipes-calendar-sheet.mjs"
267
261
  },
268
262
  "./pipes/initials": {
269
263
  "types": "./pipes/initials/index.d.ts",
@@ -289,6 +283,12 @@
289
283
  "esm": "./esm2022/utils/dom/taiga-ui-core-utils-dom.mjs",
290
284
  "default": "./fesm2022/taiga-ui-core-utils-dom.mjs"
291
285
  },
286
+ "./pipes/format-number": {
287
+ "types": "./pipes/format-number/index.d.ts",
288
+ "esm2022": "./esm2022/pipes/format-number/taiga-ui-core-pipes-format-number.mjs",
289
+ "esm": "./esm2022/pipes/format-number/taiga-ui-core-pipes-format-number.mjs",
290
+ "default": "./fesm2022/taiga-ui-core-pipes-format-number.mjs"
291
+ },
292
292
  "./utils/format": {
293
293
  "types": "./utils/format/index.d.ts",
294
294
  "esm2022": "./esm2022/utils/format/taiga-ui-core-utils-format.mjs",
@@ -311,9 +311,9 @@
311
311
  "@angular/router": ">=16.0.0",
312
312
  "@ng-web-apis/common": "^4.6.3",
313
313
  "@ng-web-apis/mutation-observer": "^4.6.3",
314
- "@taiga-ui/cdk": "^4.8.0",
314
+ "@taiga-ui/cdk": "^4.8.1",
315
315
  "@taiga-ui/event-plugins": "^4.2.3",
316
- "@taiga-ui/i18n": "^4.8.0",
316
+ "@taiga-ui/i18n": "^4.8.1",
317
317
  "@taiga-ui/polymorpheus": "^4.7.3",
318
318
  "rxjs": ">=7.0.0"
319
319
  },