@taiga-ui/core 4.52.0-canary.a4e325d → 4.52.0-canary.f729878

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. package/components/textfield/textfield.component.d.ts +5 -6
  2. package/fesm2022/taiga-ui-core-components-alert.mjs +2 -2
  3. package/fesm2022/taiga-ui-core-components-alert.mjs.map +1 -1
  4. package/fesm2022/taiga-ui-core-components-calendar.mjs +4 -4
  5. package/fesm2022/taiga-ui-core-components-calendar.mjs.map +1 -1
  6. package/fesm2022/taiga-ui-core-components-data-list.mjs +2 -1
  7. package/fesm2022/taiga-ui-core-components-data-list.mjs.map +1 -1
  8. package/fesm2022/taiga-ui-core-components-dialog.mjs +2 -2
  9. package/fesm2022/taiga-ui-core-components-dialog.mjs.map +1 -1
  10. package/fesm2022/taiga-ui-core-components-error.mjs +1 -1
  11. package/fesm2022/taiga-ui-core-components-error.mjs.map +1 -1
  12. package/fesm2022/taiga-ui-core-components-expand.mjs +1 -1
  13. package/fesm2022/taiga-ui-core-components-expand.mjs.map +1 -1
  14. package/fesm2022/taiga-ui-core-components-fullscreen.mjs +1 -1
  15. package/fesm2022/taiga-ui-core-components-fullscreen.mjs.map +1 -1
  16. package/fesm2022/taiga-ui-core-components-loader.mjs +1 -1
  17. package/fesm2022/taiga-ui-core-components-loader.mjs.map +1 -1
  18. package/fesm2022/taiga-ui-core-components-root.mjs +2 -2
  19. package/fesm2022/taiga-ui-core-components-root.mjs.map +1 -1
  20. package/fesm2022/taiga-ui-core-components-scrollbar.mjs +2 -2
  21. package/fesm2022/taiga-ui-core-components-scrollbar.mjs.map +1 -1
  22. package/fesm2022/taiga-ui-core-components-spin-button.mjs +1 -1
  23. package/fesm2022/taiga-ui-core-components-spin-button.mjs.map +1 -1
  24. package/fesm2022/taiga-ui-core-components-textfield.mjs +9 -12
  25. package/fesm2022/taiga-ui-core-components-textfield.mjs.map +1 -1
  26. package/fesm2022/taiga-ui-core-directives-appearance.mjs +2 -2
  27. package/fesm2022/taiga-ui-core-directives-appearance.mjs.map +1 -1
  28. package/fesm2022/taiga-ui-core-directives-dropdown.mjs +1 -1
  29. package/fesm2022/taiga-ui-core-directives-dropdown.mjs.map +1 -1
  30. package/fesm2022/taiga-ui-core-directives-hint.mjs +3 -2
  31. package/fesm2022/taiga-ui-core-directives-hint.mjs.map +1 -1
  32. package/package.json +1 -1
  33. package/styles/components/appearance.less +0 -6
  34. package/styles/theme/appearance/outline.less +2 -1
  35. package/styles/theme/appearance/textfield.less +2 -1
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-core-directives-dropdown.mjs","sources":["../../../projects/core/directives/dropdown/dropdown.driver.ts","../../../projects/core/directives/dropdown/dropdown.providers.ts","../../../projects/core/directives/dropdown/dropdown.service.ts","../../../projects/core/directives/dropdown/dropdown-options.directive.ts","../../../projects/core/directives/dropdown/dropdown-position.directive.ts","../../../projects/core/directives/dropdown/dropdown.directive.ts","../../../projects/core/directives/dropdown/dropdown.component.ts","../../../projects/core/directives/dropdown/dropdown.template.html","../../../projects/core/directives/dropdown/dropdown-context.directive.ts","../../../projects/core/directives/dropdown/dropdown-hover.options.ts","../../../projects/core/directives/dropdown/dropdown-open.directive.ts","../../../projects/core/directives/dropdown/dropdown-hover.directive.ts","../../../projects/core/directives/dropdown/dropdown-manual.directive.ts","../../../projects/core/directives/dropdown/dropdown-open-legacy.directive.ts","../../../projects/core/directives/dropdown/dropdown-portal.directive.ts","../../../projects/core/directives/dropdown/dropdown-position-sided.directive.ts","../../../projects/core/directives/dropdown/dropdown-selection.directive.ts","../../../projects/core/directives/dropdown/dropdown.ts","../../../projects/core/directives/dropdown/dropdown.bindings.ts","../../../projects/core/directives/dropdown/dropdown-limit-width.ts","../../../projects/core/directives/dropdown/dropdowns.component.ts","../../../projects/core/directives/dropdown/with-dropdown-open.directive.ts","../../../projects/core/directives/dropdown/taiga-ui-core-directives-dropdown.ts"],"sourcesContent":["import {Directive, Injectable} from '@angular/core';\nimport {type TuiDriver, TuiDriverDirective} from '@taiga-ui/core/classes';\nimport {BehaviorSubject} from 'rxjs';\n\n@Injectable()\nexport class TuiDropdownDriver extends BehaviorSubject<boolean> implements TuiDriver {\n public readonly type = 'dropdown';\n\n constructor() {\n super(false);\n }\n}\n\n@Directive({\n standalone: true,\n})\nexport class TuiDropdownDriverDirective extends TuiDriverDirective {\n public readonly type = 'dropdown';\n}\n","import {InjectionToken, type Type} from '@angular/core';\n\nimport {TuiDropdownComponent} from './dropdown.component';\n\n/**\n * A component to display a dropdown\n */\nexport const TUI_DROPDOWN_COMPONENT = new InjectionToken<Type<any>>(\n ngDevMode ? 'TUI_DROPDOWN_COMPONENT' : '',\n {\n factory: () => TuiDropdownComponent,\n },\n);\n\nexport const TUI_DROPDOWN_CONTEXT = new InjectionToken<Record<any, any>>(\n ngDevMode ? 'TUI_DROPDOWN_CONTEXT' : '',\n);\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 {\n Directive,\n type FactoryProvider,\n inject,\n InjectionToken,\n Input,\n Optional,\n Self,\n SkipSelf,\n} from '@angular/core';\nimport {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 = new InjectionToken(\n ngDevMode ? 'TUI_DROPDOWN_OPTIONS' : '',\n {\n factory: () => TUI_DROPDOWN_DEFAULT_OPTIONS,\n },\n);\n\nexport const tuiDropdownOptionsProvider: (\n options: Partial<TuiDropdownOptions>,\n) => FactoryProvider = (override: Partial<TuiDropdownOptions>) => ({\n provide: TUI_DROPDOWN_OPTIONS,\n deps: [\n [new Optional(), new Self(), TuiDropdownOptionsDirective],\n [new Optional(), new SkipSelf(), TUI_DROPDOWN_OPTIONS],\n ],\n useFactory: tuiOverrideOptions(override, TUI_DROPDOWN_DEFAULT_OPTIONS),\n});\n\n@Directive({\n standalone: true,\n selector:\n '[tuiDropdownAlign], [tuiDropdownAppearance], [tuiDropdownDirection], [tuiDropdownLimitWidth], [tuiDropdownMinHeight], [tuiDropdownMaxHeight], [tuiDropdownOffset]',\n providers: [tuiProvide(TUI_DROPDOWN_OPTIONS, TuiDropdownOptionsDirective)],\n})\nexport class TuiDropdownOptionsDirective implements TuiDropdownOptions {\n private readonly options = inject(TUI_DROPDOWN_OPTIONS, {skipSelf: true});\n\n @Input('tuiDropdownAlign')\n public align = this.options.align;\n\n @Input('tuiDropdownAppearance')\n public appearance = this.options.appearance;\n\n @Input('tuiDropdownDirection')\n public direction = this.options.direction;\n\n @Input('tuiDropdownLimitWidth')\n public limitWidth = this.options.limitWidth;\n\n @Input('tuiDropdownMinHeight')\n public minHeight = this.options.minHeight;\n\n @Input('tuiDropdownMaxHeight')\n public maxHeight = this.options.maxHeight;\n\n @Input('tuiDropdownOffset')\n public offset = this.options.offset;\n}\n","import {Directive, EventEmitter, inject, Output} from '@angular/core';\nimport {EMPTY_CLIENT_RECT} from '@taiga-ui/cdk/constants';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {tuiPure} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {\n tuiFallbackAccessor,\n TuiPositionAccessor,\n TuiRectAccessor,\n} from '@taiga-ui/core/classes';\nimport {TUI_VIEWPORT} from '@taiga-ui/core/tokens';\nimport {type TuiPoint, type TuiVerticalDirection} from '@taiga-ui/core/types';\n\nimport {TuiDropdownDirective} from './dropdown.directive';\nimport {TUI_DROPDOWN_OPTIONS, type TuiDropdownAlign} from './dropdown-options.directive';\n\n@Directive({\n standalone: true,\n})\nexport class TuiDropdownPosition extends TuiPositionAccessor {\n private readonly el = tuiInjectElement();\n private readonly options = inject(TUI_DROPDOWN_OPTIONS);\n private readonly viewport = inject(TUI_VIEWPORT);\n\n private previous?: TuiVerticalDirection;\n\n @Output('tuiDropdownDirectionChange')\n public readonly directionChange = new EventEmitter<TuiVerticalDirection>();\n\n public readonly type = 'dropdown';\n public readonly accessor: TuiRectAccessor | null =\n tuiFallbackAccessor<TuiRectAccessor>('dropdown')(\n inject<any>(TuiRectAccessor),\n inject(TuiDropdownDirective, {optional: true})!,\n );\n\n @tuiPure\n public emitDirection(direction: TuiVerticalDirection): void {\n this.directionChange.emit(direction);\n }\n\n public getPosition({width, height}: DOMRect): TuiPoint {\n if (!width && !height) {\n this.previous = undefined;\n }\n\n const hostRect = this.accessor?.getClientRect() ?? EMPTY_CLIENT_RECT;\n const viewportRect = this.viewport.getClientRect();\n const {minHeight, direction, offset, limitWidth} = this.options;\n const align = this.getAlign(this.options.align);\n const viewport = {\n top: viewportRect.top - offset,\n bottom: viewportRect.bottom + offset,\n right: viewportRect.right - offset,\n left: viewportRect.left + offset,\n } as const;\n const previous = this.previous || direction || 'bottom';\n const available = {\n top: hostRect.top - 2 * offset - viewport.top,\n bottom: viewport.bottom - hostRect.bottom - 2 * offset,\n } as const;\n const rectWidth = limitWidth === 'fixed' ? hostRect.width : width;\n const right = Math.max(hostRect.right - rectWidth, offset);\n const left = hostRect.left + width < viewport.right ? hostRect.left : right;\n const position = {\n top: hostRect.top - offset - height,\n bottom: hostRect.bottom + offset,\n right: Math.max(viewport.left, right),\n center:\n hostRect.left + hostRect.width / 2 + width / 2 < viewport.right\n ? hostRect.left + hostRect.width / 2 - width / 2\n : right,\n left: Math.max(viewport.left, left),\n } as const;\n const better: TuiVerticalDirection =\n available.top > available.bottom ? 'top' : 'bottom';\n\n if (\n (available[previous] > minHeight && direction) ||\n available[previous] > height\n ) {\n this.emitDirection(previous);\n\n return [position[previous], position[align]];\n }\n\n this.previous = better;\n this.emitDirection(better);\n\n return [position[better], position[align]];\n }\n\n public getAlign(align: TuiDropdownAlign): TuiDropdownAlign {\n const rtl = this.el.matches('[dir=\"rtl\"] :scope');\n\n if (rtl && align === 'left') {\n return 'right';\n }\n\n return rtl && align === 'right' ? 'left' : align;\n }\n}\n","import {coerceArray} from '@angular/cdk/coercion';\nimport {\n type AfterViewChecked,\n ChangeDetectorRef,\n type ComponentRef,\n Directive,\n inject,\n INJECTOR,\n Input,\n type OnDestroy,\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 {\n tuiAsRectAccessor,\n tuiAsVehicle,\n type TuiRectAccessor,\n type TuiVehicle,\n} from '@taiga-ui/core/classes';\nimport {type TuiPortalItem} from '@taiga-ui/core/types';\nimport {tuiCheckFixedPosition} from '@taiga-ui/core/utils';\nimport {\n PolymorpheusComponent,\n type PolymorpheusContent,\n PolymorpheusTemplate,\n} from '@taiga-ui/polymorpheus';\nimport {Subject, throttleTime} from 'rxjs';\n\nimport {TuiDropdownDriver, TuiDropdownDriverDirective} from './dropdown.driver';\nimport {TUI_DROPDOWN_COMPONENT} from './dropdown.providers';\nimport {TuiDropdownService} from './dropdown.service';\nimport {TuiDropdownPosition} from './dropdown-position.directive';\n\n@Directive({\n standalone: true,\n selector: '[tuiDropdown]:not(ng-container):not(ng-template)',\n providers: [\n tuiAsRectAccessor(TuiDropdownDirective),\n tuiAsVehicle(TuiDropdownDirective),\n ],\n exportAs: 'tuiDropdown',\n hostDirectives: [\n TuiDropdownDriverDirective,\n {\n directive: TuiDropdownPosition,\n outputs: ['tuiDropdownDirectionChange'],\n },\n ],\n host: {\n '[class.tui-dropdown-open]': 'ref()',\n },\n})\nexport class TuiDropdownDirective\n implements AfterViewChecked, OnDestroy, TuiPortalItem, TuiRectAccessor, TuiVehicle\n{\n private readonly refresh$ = new Subject<void>();\n private readonly service = inject(TuiDropdownService);\n private readonly cdr = inject(ChangeDetectorRef);\n\n // TODO: think of a better solution later\n private readonly drivers = coerceArray(\n inject(TuiDropdownDriver, {self: true, optional: true}),\n );\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 // TODO(v5): rename to `content`\n // eslint-disable-next-line @typescript-eslint/naming-convention\n public readonly _content = signal<PolymorpheusContent<TuiContext<() => void>>>(null);\n\n @Input()\n public set tuiDropdown(content: PolymorpheusContent<TuiContext<() => void>>) {\n this._content.set(\n content instanceof TemplateRef\n ? new PolymorpheusTemplate(content, this.cdr)\n : content,\n );\n\n if (!this._content()) {\n this.toggle(false);\n }\n }\n\n public get position(): 'absolute' | 'fixed' {\n return tuiCheckFixedPosition(this.el) ? 'fixed' : 'absolute';\n }\n\n // TODO(v5): delete\n public get content(): PolymorpheusContent<TuiContext<() => void>> {\n return this._content();\n }\n\n // TODO(v5): delete\n public set content(x: PolymorpheusContent<TuiContext<() => void>>) {\n this._content.set(x);\n }\n\n public ngAfterViewChecked(): void {\n this.refresh$.next();\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 this.drivers.forEach((driver) => driver?.next(show));\n\n // TODO: Remove in v5, only needed in Angular 16\n this.cdr.markForCheck();\n }\n}\n","import {\n type AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n computed,\n inject,\n} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {EMPTY_CLIENT_RECT} from '@taiga-ui/cdk/constants';\nimport {TuiActiveZone} from '@taiga-ui/cdk/directives/active-zone';\nimport {TuiAnimated} from '@taiga-ui/cdk/directives/animated';\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 {\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_DARK_MODE, TUI_VIEWPORT} from '@taiga-ui/core/tokens';\nimport {PolymorpheusOutlet} 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 selector: 'tui-dropdown',\n imports: [PolymorpheusOutlet, 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 hostDirectives: [TuiActiveZone, TuiAnimated],\n host: {\n '[attr.data-appearance]': 'options.appearance',\n '[attr.tuiTheme]': 'theme()',\n },\n})\nexport class TuiDropdownComponent implements AfterViewInit {\n private readonly el = tuiInjectElement();\n private readonly accessor = inject(TuiRectAccessor);\n private readonly viewport = inject(TUI_VIEWPORT);\n private readonly vvs = inject(TuiVisualViewportService);\n\n private readonly styles$ = inject(TuiPositionService).pipe(\n takeWhile(\n () =>\n this.directive.el.isConnected &&\n !!this.directive.el.getBoundingClientRect().height,\n ),\n map((v) => (this.position === 'fixed' ? this.vvs.correct(v) : v)),\n map(([top, left]) => this.getStyles(left, top)),\n takeUntilDestroyed(),\n );\n\n protected readonly options = inject(TUI_DROPDOWN_OPTIONS);\n protected readonly directive = inject(TuiDropdownDirective);\n protected readonly context = inject(TUI_DROPDOWN_CONTEXT, {optional: true});\n protected readonly darkMode = inject(TUI_DARK_MODE);\n protected readonly position = this.directive.position;\n protected readonly theme = computed((_ = this.darkMode()) =>\n this.directive.el.closest('[tuiTheme]')?.getAttribute('tuiTheme'),\n );\n\n public ngAfterViewInit(): void {\n this.styles$.subscribe({\n next: (styles) => Object.assign(this.el.style, styles),\n complete: () => this.close?.(),\n });\n }\n\n protected readonly close = (): void => this.directive.toggle(false);\n\n private getStyles(x: number, y: number): Record<string, string> {\n const {maxHeight, minHeight, offset, limitWidth} = this.options;\n const parent = this.el.offsetParent?.getBoundingClientRect() || EMPTY_CLIENT_RECT;\n const {left = 0, top = 0} = this.position === 'fixed' ? {} : parent;\n const rect = this.accessor.getClientRect();\n const viewport = this.viewport.getClientRect();\n const above = rect.top - viewport.top - 2 * offset;\n const below = viewport.top + viewport.height - y - offset;\n const available = y > rect.bottom ? below : above;\n const height =\n this.el.getBoundingClientRect().right <= rect.left || x >= rect.right\n ? maxHeight\n : tuiClamp(available, minHeight, maxHeight);\n\n y -= top;\n x -= left;\n\n return {\n position: this.position,\n top: tuiPx(Math.round(Math.max(y, offset - top))),\n left: tuiPx(Math.round(x)),\n maxHeight: tuiPx(Math.round(height)),\n width: limitWidth === 'fixed' ? tuiPx(Math.round(rect.width)) : '',\n minWidth: limitWidth === 'min' ? tuiPx(Math.round(rect.width)) : '',\n maxWidth: tuiPx(Math.round(viewport.width) - 16), // 8px min gap from each side\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 {DOCUMENT} from '@angular/common';\nimport {computed, Directive, inject} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {EMPTY_CLIENT_RECT} from '@taiga-ui/cdk/constants';\nimport {TuiActiveZone} from '@taiga-ui/cdk/directives/active-zone';\nimport {tuiTypedFromEvent, tuiZonefree} from '@taiga-ui/cdk/observables';\nimport {TUI_IS_TOUCH} from '@taiga-ui/cdk/tokens';\nimport {tuiGetActualTarget, tuiPointToClientRect} from '@taiga-ui/cdk/utils/dom';\nimport {tuiAsDriver, tuiAsRectAccessor, TuiRectAccessor} from '@taiga-ui/core/classes';\nimport {shouldCall} from '@taiga-ui/event-plugins';\nimport {merge} from 'rxjs';\n\nimport {TuiDropdownDriver} from './dropdown.driver';\n\nfunction activeZoneFilter(this: TuiDropdownContext, event?: Event): boolean {\n return (\n !event ||\n (this.driver.value && !this.activeZone.contains(tuiGetActualTarget(event)))\n );\n}\n\n@Directive({\n standalone: true,\n selector: '[tuiDropdownContext]',\n providers: [\n TuiActiveZone,\n TuiDropdownDriver,\n tuiAsDriver(TuiDropdownDriver),\n tuiAsRectAccessor(TuiDropdownContext),\n ],\n host: {\n '[style.user-select]': 'userSelect()',\n '[style.-webkit-user-select]': 'userSelect()',\n '[style.-webkit-touch-callout]': 'userSelect()',\n '(document:keydown.esc)': 'closeDropdown()',\n '(longtap)': 'onContextMenu($event.detail.clientX, $event.detail.clientY)',\n },\n})\nexport class TuiDropdownContext extends TuiRectAccessor {\n private readonly isTouch = inject(TUI_IS_TOUCH);\n private currentRect = EMPTY_CLIENT_RECT;\n\n protected readonly userSelect = computed(() => (this.isTouch() ? 'none' : null));\n protected readonly activeZone = inject(TuiActiveZone);\n protected readonly driver = inject(TuiDropdownDriver);\n protected readonly doc = inject(DOCUMENT);\n\n protected readonly sub = merge(\n tuiTypedFromEvent(this.doc, 'pointerdown'),\n tuiTypedFromEvent(this.doc, 'contextmenu', {capture: true}),\n )\n .pipe(tuiZonefree(), takeUntilDestroyed())\n .subscribe((event: Event) => this.closeDropdown(event));\n\n public readonly type = 'dropdown';\n\n public getClientRect(): DOMRect {\n return this.currentRect;\n }\n\n @shouldCall(activeZoneFilter)\n protected closeDropdown(_event?: Event): void {\n this.driver.next(false);\n this.currentRect = EMPTY_CLIENT_RECT;\n }\n\n protected onContextMenu(x: number, y: number): void {\n this.currentRect = tuiPointToClientRect(x, y);\n this.driver.next(true);\n }\n}\n","import {InjectionToken, type Provider} from '@angular/core';\nimport {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 = new InjectionToken(\n ngDevMode ? 'TUI_DROPDOWN_HOVER_OPTIONS' : '',\n {\n factory: () => TUI_DROPDOWN_HOVER_DEFAULT_OPTIONS,\n },\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 {\n computed,\n ContentChild,\n Directive,\n ElementRef,\n EventEmitter,\n inject,\n Input,\n type OnChanges,\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 {\n tuiCloseWatcher,\n tuiIfMap,\n tuiWatch,\n tuiZonefull,\n} 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, merge} from 'rxjs';\n\nimport {TuiDropdownDirective} from './dropdown.directive';\nimport {TuiDropdownDriver} from './dropdown.driver';\n\nfunction shouldClose(this: TuiDropdownOpen, event: KeyboardEvent): boolean {\n return (\n // @ts-ignore\n typeof CloseWatcher === 'undefined' &&\n // ?. for auto fill events\n event.key?.toLowerCase() === 'escape' &&\n this.tuiDropdownEnabled &&\n !!this.tuiDropdownOpen &&\n !this['dropdown']()?.nextElementSibling\n );\n}\n\n@Directive({\n standalone: true,\n selector: '[tuiDropdown][tuiDropdownOpen],[tuiDropdown][tuiDropdownOpenChange]',\n providers: [TuiDropdownDriver, tuiAsDriver(TuiDropdownDriver)],\n hostDirectives: [\n TuiObscured,\n {\n directive: TuiActiveZone,\n inputs: ['tuiActiveZoneParent'],\n outputs: ['tuiActiveZoneChange'],\n },\n ],\n host: {\n '(click)': 'onClick($event.target)',\n '(keydown.arrowDown)': 'onArrow($event, false)',\n '(keydown.arrowUp)': 'onArrow($event, true)',\n '(document:keydown.zoneless.capture)': 'onEsc($event)',\n '(document:keydown.zoneless)': 'onKeydown($event)',\n // TODO: Necessary because startWith(false) + distinctUntilChanged() in TuiActiveZone, think of better solution\n '(tuiActiveZoneChange)': '0',\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 private readonly activeZone = inject(TuiActiveZone);\n\n private readonly dropdown = computed(\n () => this.directive.ref()?.location.nativeElement,\n );\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 public readonly sub = this.driver\n .pipe(\n tuiIfMap(() =>\n merge(\n tuiCloseWatcher(),\n this.obscured.tuiObscured.pipe(filter(Boolean)),\n this.activeZone.tuiActiveZoneChange.pipe(filter((a) => !a)),\n fromEvent(this.el, 'focusin').pipe(\n filter(\n (event) =>\n !this.host.contains(tuiGetActualTarget(event)) ||\n !this.directive.ref(),\n ),\n ),\n ),\n ),\n tuiZonefull(),\n tuiWatch(),\n takeUntilDestroyed(),\n )\n .subscribe(() => this.toggle(false));\n\n public readonly sync = this.driver.pipe(takeUntilDestroyed()).subscribe((open) => {\n if (open !== this.tuiDropdownOpen) {\n this.update(open);\n }\n });\n\n public ngOnChanges(): void {\n this.drive(!!this.tuiDropdownOpen);\n this.tuiDropdownOpenChange.emit(!!this.tuiDropdownOpen);\n }\n\n public toggle(open: boolean): void {\n if (this.focused && !open) {\n this.host.focus({preventScroll: true});\n }\n\n this.update(open);\n }\n\n @shouldCall(shouldClose)\n protected onEsc(event: KeyboardEvent): 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 !this.directive._content()\n ) {\n return;\n }\n\n event.preventDefault();\n this.focusDropdown(up);\n }\n\n protected onKeydown(event: KeyboardEvent): void {\n const target = tuiGetActualTarget(event);\n\n if (\n !event.defaultPrevented &&\n tuiIsEditingKey(event.key) &&\n this.editable &&\n this.focused &&\n tuiIsHTMLElement(target) &&\n !tuiIsElementEditable(target)\n ) {\n this.host.focus({preventScroll: true});\n }\n }\n\n private get host(): HTMLElement {\n const initial = this.dropdownHost?.nativeElement || this.el;\n const focusable = tuiIsNativeKeyboardFocusable(initial)\n ? initial\n : tuiGetClosestFocusable({initial, root: this.el});\n\n return this.dropdownHost?.nativeElement || focusable || this.el;\n }\n\n private get editable(): boolean {\n return tuiIsElementEditable(this.host);\n }\n\n private get focused(): boolean {\n return tuiIsNativeFocusedIn(this.host) || tuiIsNativeFocusedIn(this.dropdown());\n }\n\n private update(open: boolean): void {\n if (open && !this.tuiDropdownEnabled) {\n return this.drive();\n }\n\n this.tuiDropdownOpen = open;\n this.tuiDropdownOpenChange.emit(open);\n this.drive();\n }\n\n private drive(open = !!this.tuiDropdownOpen && this.tuiDropdownEnabled): void {\n this.obscured.tuiObscuredEnabled = open;\n this.driver.next(open);\n }\n\n private focusDropdown(previous: boolean): void {\n const root = this.dropdown();\n\n if (!root) {\n this.update(true);\n\n return;\n }\n\n const doc = this.el.ownerDocument;\n const child = root.appendChild(doc.createElement('div'));\n const initial = previous ? child : root;\n const focusable = tuiGetClosestFocusable({initial, previous, root});\n\n child.remove();\n focusable?.focus();\n }\n}\n","import {DOCUMENT} from '@angular/common';\nimport {ContentChild, Directive, ElementRef, inject, Input} from '@angular/core';\nimport {toObservable} from '@angular/core/rxjs-interop';\nimport {TuiActiveZone} from '@taiga-ui/cdk/directives/active-zone';\nimport {tuiTypedFromEvent, tuiZoneOptimized} from '@taiga-ui/cdk/observables';\nimport {\n tuiGetActualTarget,\n tuiInjectElement,\n tuiIsElement,\n} from '@taiga-ui/cdk/utils/dom';\nimport {tuiAsDriver, TuiDriver} from '@taiga-ui/core/classes';\nimport {\n delay,\n distinctUntilChanged,\n filter,\n fromEvent,\n map,\n merge,\n of,\n share,\n startWith,\n switchMap,\n takeUntil,\n tap,\n} from 'rxjs';\n\nimport {TuiDropdownDirective} from './dropdown.directive';\nimport {TUI_DROPDOWN_HOVER_OPTIONS} from './dropdown-hover.options';\nimport {TuiDropdownOpen} from './dropdown-open.directive';\n\n@Directive({\n standalone: true,\n selector: '[tuiDropdownHover]',\n providers: [TuiActiveZone, tuiAsDriver(TuiDropdownHover)],\n host: {\n '(click.capture)': 'onClick($event)',\n },\n})\nexport class TuiDropdownHover extends TuiDriver {\n @ContentChild('tuiDropdownHost', {descendants: true, read: ElementRef})\n private readonly dropdownHost?: ElementRef<HTMLElement>;\n\n private readonly el = tuiInjectElement();\n private readonly doc = inject(DOCUMENT);\n private readonly options = inject(TUI_DROPDOWN_HOVER_OPTIONS);\n private readonly activeZone = inject(TuiActiveZone);\n private readonly open = inject(TuiDropdownOpen, {optional: true});\n /**\n * Dropdown can be removed not only via click/touch –\n * swipe on mobile devices removes dropdown sheet without triggering new mouseover / mouseout events.\n */\n private readonly dropdownExternalRemoval$ = toObservable(\n inject(TuiDropdownDirective).ref,\n ).pipe(filter((x) => !x && this.hovered));\n\n private readonly stream$ = merge(\n this.dropdownExternalRemoval$.pipe(\n switchMap(() =>\n tuiTypedFromEvent(this.doc, 'pointerdown').pipe(\n map(tuiGetActualTarget),\n delay(this.hideDelay),\n startWith(null),\n takeUntil(fromEvent(this.doc, 'mouseover')),\n ),\n ),\n ),\n tuiTypedFromEvent(this.doc, 'mouseover').pipe(map(tuiGetActualTarget)),\n tuiTypedFromEvent(this.doc, 'mouseout').pipe(map((e) => e.relatedTarget)),\n ).pipe(\n map((element) => tuiIsElement(element) && this.isHovered(element)),\n distinctUntilChanged(),\n switchMap((v) => of(v).pipe(delay(v ? this.showDelay : this.hideDelay))),\n tuiZoneOptimized(),\n tap((hovered) => {\n this.hovered = hovered;\n this.open?.toggle(hovered);\n }),\n share(),\n );\n\n @Input('tuiDropdownShowDelay')\n public showDelay = this.options.showDelay;\n\n @Input('tuiDropdownHideDelay')\n public hideDelay = this.options.hideDelay;\n\n public hovered = false;\n\n public readonly type = 'dropdown';\n\n constructor() {\n super((subscriber) => this.stream$.subscribe(subscriber));\n }\n\n protected onClick(event: MouseEvent): void {\n if (this.hovered && this.open) {\n event.preventDefault();\n }\n }\n\n private isHovered(element: Element): boolean {\n const host = this.dropdownHost?.nativeElement || this.el;\n const hovered = host.contains(element);\n const child = !this.el.contains(element) && this.activeZone.contains(element);\n\n return hovered || child;\n }\n}\n","import {Directive, inject, Input, type OnChanges} from '@angular/core';\nimport {tuiAsDriver} from '@taiga-ui/core/classes';\n\nimport {TuiDropdownDriver} from './dropdown.driver';\n\n@Directive({\n standalone: true,\n selector: '[tuiDropdownManual]',\n providers: [TuiDropdownDriver, tuiAsDriver(TuiDropdownDriver)],\n})\nexport class TuiDropdownManual implements OnChanges {\n private readonly driver = inject(TuiDropdownDriver);\n\n @Input()\n public tuiDropdownManual: boolean | '' = false;\n\n public ngOnChanges(): void {\n this.driver.next(!!this.tuiDropdownManual);\n }\n}\n","import {Directive, Input, Output} from '@angular/core';\nimport {distinctUntilChanged, Subject} from 'rxjs';\n\n/**\n * @deprecated TODO: remove in v.5 when legacy controls are dropped\n */\n@Directive({\n standalone: true,\n selector:\n '[tuiDropdownOpen]:not([tuiDropdown]),[tuiDropdownOpenChange]:not([tuiDropdown])',\n})\nexport class TuiDropdownOpenLegacy {\n private readonly openStateSub = new Subject<boolean>();\n\n @Output()\n public readonly tuiDropdownOpenChange =\n this.openStateSub.pipe(distinctUntilChanged());\n\n @Input()\n public set tuiDropdownOpen(open: boolean) {\n this.emitOpenChange(open);\n }\n\n public emitOpenChange(open: boolean): void {\n this.openStateSub.next(open);\n }\n}\n","import {\n Directive,\n type EmbeddedViewRef,\n inject,\n Input,\n type OnDestroy,\n TemplateRef,\n} from '@angular/core';\n\nimport {TuiDropdownService} from './dropdown.service';\n\n/**\n * @deprecated use {@link TuiPopup} directive instead\n */\n@Directive({\n standalone: true,\n selector: 'ng-template[tuiDropdown]',\n})\nexport class TuiDropdownPortal implements OnDestroy {\n private readonly template = inject(TemplateRef);\n private readonly service = inject(TuiDropdownService);\n\n private viewRef?: EmbeddedViewRef<unknown>;\n\n @Input()\n public set tuiDropdown(show: boolean) {\n this.viewRef?.destroy();\n\n if (show) {\n this.viewRef = this.service.addTemplate(this.template);\n }\n }\n\n public ngOnDestroy(): void {\n this.viewRef?.destroy();\n }\n}\n","import {Directive, inject, Input} from '@angular/core';\nimport {EMPTY_CLIENT_RECT} from '@taiga-ui/cdk/constants';\nimport {tuiAsPositionAccessor, TuiPositionAccessor} from '@taiga-ui/core/classes';\nimport {TUI_VIEWPORT} from '@taiga-ui/core/tokens';\nimport {type TuiPoint} from '@taiga-ui/core/types';\n\nimport {TUI_DROPDOWN_OPTIONS} from './dropdown-options.directive';\nimport {TuiDropdownPosition} from './dropdown-position.directive';\n\n@Directive({\n standalone: true,\n selector: '[tuiDropdownSided]',\n providers: [TuiDropdownPosition, tuiAsPositionAccessor(TuiDropdownPositionSided)],\n})\nexport class TuiDropdownPositionSided extends TuiPositionAccessor {\n private readonly options = inject(TUI_DROPDOWN_OPTIONS);\n private readonly viewport = inject(TUI_VIEWPORT);\n private readonly vertical = inject(TuiDropdownPosition);\n private previous = this.options.direction || 'bottom';\n\n @Input()\n public tuiDropdownSided: boolean | string = '';\n\n @Input()\n public tuiDropdownSidedOffset = 4;\n\n public readonly type = 'dropdown';\n\n public getPosition(rect: DOMRect): TuiPoint {\n if (this.tuiDropdownSided === false) {\n return this.vertical.getPosition(rect);\n }\n\n const {height, width} = rect;\n const hostRect = this.vertical.accessor?.getClientRect() ?? EMPTY_CLIENT_RECT;\n const viewport = this.viewport.getClientRect();\n const {direction, offset} = this.options;\n const adjusted = this.vertical.getAlign(this.options.align);\n const align = adjusted === 'center' ? 'left' : adjusted;\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] > height && direction) ||\n this.previous === better\n ) {\n this.vertical.emitDirection(this.previous);\n\n return [position[this.previous], left];\n }\n\n this.previous = better;\n this.vertical.emitDirection(better);\n\n return [position[better], left];\n }\n}\n","import {DOCUMENT} from '@angular/common';\nimport {Directive, inject, Input, type OnDestroy, 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 {\n tuiAsDriver,\n tuiAsRectAccessor,\n TuiDriver,\n type TuiRectAccessor,\n} 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, filter, 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 filter((range) => this.isValid(range)),\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.ghostHost.removeChild(this.ghost);\n }\n }\n\n private get ghostHost(): HTMLElement {\n return this.el.querySelector('tui-textfield .t-ghost') || this.el;\n }\n\n private 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 private 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 /**\n * Check if range is not inside tui-textfield's DOM elements\n */\n private isValid(range: Range): boolean {\n return (\n !this.el.contains(range.commonAncestorContainer) ||\n !this.el.closest('tui-textfield') ||\n range.intersectsNode(this.ghost || this.el)\n );\n }\n\n private veryVerySadInputFix(element: HTMLInputElement | HTMLTextAreaElement): Range {\n const {ghost = this.initGhost(this.ghostHost)} = this;\n const {top, left, width, height} = this.ghostHost.getBoundingClientRect();\n const {selectionStart, selectionEnd, value} = element;\n const range = this.doc.createRange();\n const hostRect = this.ghostHost.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(\n element: HTMLElement | HTMLInputElement | HTMLTextAreaElement,\n ): HTMLElement {\n const ghost = this.doc.createElement('div');\n const {font, letterSpacing, textTransform, padding, borderTop} =\n 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.boxSizing = 'border-box';\n ghost.style.borderTop = borderTop;\n ghost.style.font = font;\n ghost.style.letterSpacing = letterSpacing;\n ghost.style.textTransform = textTransform;\n ghost.style.padding = padding;\n\n this.ghostHost.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 {inject, type Signal, type WritableSignal} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {tuiDirectiveBinding} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {type PolymorpheusContent} from '@taiga-ui/polymorpheus';\n\nimport {TuiDropdownDirective} from './dropdown.directive';\nimport {TuiDropdownOpen} from './dropdown-open.directive';\n\ntype C = PolymorpheusContent;\n\nexport function tuiDropdown(value: C | WritableSignal<C>): WritableSignal<C>;\nexport function tuiDropdown(value: Signal<C>): Signal<C>;\nexport function tuiDropdown(value: C | Signal<C>): Signal<C> {\n return tuiDirectiveBinding(TuiDropdownDirective, 'tuiDropdown', value, {});\n}\n\nexport function tuiDropdownEnabled(\n value: WritableSignal<boolean> | boolean,\n): WritableSignal<boolean>;\nexport function tuiDropdownEnabled(value: Signal<boolean>): Signal<boolean>;\nexport function tuiDropdownEnabled(value: Signal<boolean> | boolean): Signal<boolean> {\n return tuiDirectiveBinding(TuiDropdownOpen, 'tuiDropdownEnabled', value, {});\n}\n\nexport function tuiDropdownOpen(): WritableSignal<boolean> {\n const open: WritableSignal<boolean> = tuiDirectiveBinding(\n TuiDropdownOpen,\n 'tuiDropdownOpen',\n false,\n {},\n );\n\n inject(TuiDropdownOpen)\n .tuiDropdownOpenChange.pipe(takeUntilDestroyed())\n .subscribe((value) => open.set(value));\n\n return open;\n}\n","import {Directive, inject} from '@angular/core';\nimport {tuiOverrideOptions} from '@taiga-ui/core/utils/miscellaneous';\n\nimport {\n TUI_DROPDOWN_DEFAULT_OPTIONS,\n TUI_DROPDOWN_OPTIONS,\n tuiDropdownOptionsProvider,\n} from './dropdown-options.directive';\n\n@Directive({\n standalone: true,\n providers: [tuiDropdownOptionsProvider({})],\n})\nexport class TuiDropdownFixed {\n constructor() {\n const override = tuiOverrideOptions(\n {limitWidth: 'fixed'},\n TUI_DROPDOWN_DEFAULT_OPTIONS,\n );\n\n override(inject(TUI_DROPDOWN_OPTIONS, {self: true, optional: true}), null);\n }\n}\n\n@Directive({standalone: true})\nexport class TuiDropdownAuto {\n constructor() {\n /**\n * Update directive props with new defaults before inputs are processed\n * TODO: find better way to override TuiDropdownFixed host directive from parent component\n */\n (inject(TUI_DROPDOWN_OPTIONS) as any).limitWidth = 'auto';\n }\n}\n","import {ChangeDetectionStrategy, Component} from '@angular/core';\nimport {tuiAsPortal, TuiPortals} from '@taiga-ui/cdk/classes';\n\nimport {TuiDropdownService} from './dropdown.service';\n\n/**\n * Host element for dynamically created portals, for example using {@link TuiDropdownDirective}.\n */\n@Component({\n standalone: true,\n selector: 'tui-dropdowns',\n template: '<ng-container #viewContainer />',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [tuiAsPortal(TuiDropdownService)],\n host: {style: 'position: absolute; width: 100%; top: 0'},\n})\nexport class TuiDropdowns extends TuiPortals {}\n","import {Directive} from '@angular/core';\n\nimport {TuiDropdownOpen} from './dropdown-open.directive';\n\n@Directive({\n standalone: true,\n hostDirectives: [\n {\n directive: TuiDropdownOpen,\n inputs: ['tuiDropdownOpen: open', 'tuiDropdownEnabled'],\n outputs: ['tuiDropdownOpenChange: openChange'],\n },\n ],\n})\nexport class TuiWithDropdownOpen {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.TuiDropdownDriverDirective","i2.TuiDropdownPosition","i1","i2","tuiOverrideOptions","i1.TuiDropdownOpen"],"mappings":"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"}
1
+ {"version":3,"file":"taiga-ui-core-directives-dropdown.mjs","sources":["../../../projects/core/directives/dropdown/dropdown.driver.ts","../../../projects/core/directives/dropdown/dropdown.providers.ts","../../../projects/core/directives/dropdown/dropdown.service.ts","../../../projects/core/directives/dropdown/dropdown-options.directive.ts","../../../projects/core/directives/dropdown/dropdown-position.directive.ts","../../../projects/core/directives/dropdown/dropdown.directive.ts","../../../projects/core/directives/dropdown/dropdown.component.ts","../../../projects/core/directives/dropdown/dropdown.template.html","../../../projects/core/directives/dropdown/dropdown-context.directive.ts","../../../projects/core/directives/dropdown/dropdown-hover.options.ts","../../../projects/core/directives/dropdown/dropdown-open.directive.ts","../../../projects/core/directives/dropdown/dropdown-hover.directive.ts","../../../projects/core/directives/dropdown/dropdown-manual.directive.ts","../../../projects/core/directives/dropdown/dropdown-open-legacy.directive.ts","../../../projects/core/directives/dropdown/dropdown-portal.directive.ts","../../../projects/core/directives/dropdown/dropdown-position-sided.directive.ts","../../../projects/core/directives/dropdown/dropdown-selection.directive.ts","../../../projects/core/directives/dropdown/dropdown.ts","../../../projects/core/directives/dropdown/dropdown.bindings.ts","../../../projects/core/directives/dropdown/dropdown-limit-width.ts","../../../projects/core/directives/dropdown/dropdowns.component.ts","../../../projects/core/directives/dropdown/with-dropdown-open.directive.ts","../../../projects/core/directives/dropdown/taiga-ui-core-directives-dropdown.ts"],"sourcesContent":["import {Directive, Injectable} from '@angular/core';\nimport {type TuiDriver, TuiDriverDirective} from '@taiga-ui/core/classes';\nimport {BehaviorSubject} from 'rxjs';\n\n@Injectable()\nexport class TuiDropdownDriver extends BehaviorSubject<boolean> implements TuiDriver {\n public readonly type = 'dropdown';\n\n constructor() {\n super(false);\n }\n}\n\n@Directive({\n standalone: true,\n})\nexport class TuiDropdownDriverDirective extends TuiDriverDirective {\n public readonly type = 'dropdown';\n}\n","import {InjectionToken, type Type} from '@angular/core';\n\nimport {TuiDropdownComponent} from './dropdown.component';\n\n/**\n * A component to display a dropdown\n */\nexport const TUI_DROPDOWN_COMPONENT = new InjectionToken<Type<any>>(\n ngDevMode ? 'TUI_DROPDOWN_COMPONENT' : '',\n {\n factory: () => TuiDropdownComponent,\n },\n);\n\nexport const TUI_DROPDOWN_CONTEXT = new InjectionToken<Record<any, any>>(\n ngDevMode ? 'TUI_DROPDOWN_CONTEXT' : '',\n);\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 {\n Directive,\n type FactoryProvider,\n inject,\n InjectionToken,\n Input,\n Optional,\n Self,\n SkipSelf,\n} from '@angular/core';\nimport {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 = new InjectionToken(\n ngDevMode ? 'TUI_DROPDOWN_OPTIONS' : '',\n {\n factory: () => TUI_DROPDOWN_DEFAULT_OPTIONS,\n },\n);\n\nexport const tuiDropdownOptionsProvider: (\n options: Partial<TuiDropdownOptions>,\n) => FactoryProvider = (override: Partial<TuiDropdownOptions>) => ({\n provide: TUI_DROPDOWN_OPTIONS,\n deps: [\n [new Optional(), new Self(), TuiDropdownOptionsDirective],\n [new Optional(), new SkipSelf(), TUI_DROPDOWN_OPTIONS],\n ],\n useFactory: tuiOverrideOptions(override, TUI_DROPDOWN_DEFAULT_OPTIONS),\n});\n\n@Directive({\n standalone: true,\n selector:\n '[tuiDropdownAlign], [tuiDropdownAppearance], [tuiDropdownDirection], [tuiDropdownLimitWidth], [tuiDropdownMinHeight], [tuiDropdownMaxHeight], [tuiDropdownOffset]',\n providers: [tuiProvide(TUI_DROPDOWN_OPTIONS, TuiDropdownOptionsDirective)],\n})\nexport class TuiDropdownOptionsDirective implements TuiDropdownOptions {\n private readonly options = inject(TUI_DROPDOWN_OPTIONS, {skipSelf: true});\n\n @Input('tuiDropdownAlign')\n public align = this.options.align;\n\n @Input('tuiDropdownAppearance')\n public appearance = this.options.appearance;\n\n @Input('tuiDropdownDirection')\n public direction = this.options.direction;\n\n @Input('tuiDropdownLimitWidth')\n public limitWidth = this.options.limitWidth;\n\n @Input('tuiDropdownMinHeight')\n public minHeight = this.options.minHeight;\n\n @Input('tuiDropdownMaxHeight')\n public maxHeight = this.options.maxHeight;\n\n @Input('tuiDropdownOffset')\n public offset = this.options.offset;\n}\n","import {Directive, EventEmitter, inject, Output} from '@angular/core';\nimport {EMPTY_CLIENT_RECT} from '@taiga-ui/cdk/constants';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {tuiPure} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {\n tuiFallbackAccessor,\n TuiPositionAccessor,\n TuiRectAccessor,\n} from '@taiga-ui/core/classes';\nimport {TUI_VIEWPORT} from '@taiga-ui/core/tokens';\nimport {type TuiPoint, type TuiVerticalDirection} from '@taiga-ui/core/types';\n\nimport {TuiDropdownDirective} from './dropdown.directive';\nimport {TUI_DROPDOWN_OPTIONS, type TuiDropdownAlign} from './dropdown-options.directive';\n\n@Directive({\n standalone: true,\n})\nexport class TuiDropdownPosition extends TuiPositionAccessor {\n private readonly el = tuiInjectElement();\n private readonly options = inject(TUI_DROPDOWN_OPTIONS);\n private readonly viewport = inject(TUI_VIEWPORT);\n\n private previous?: TuiVerticalDirection;\n\n @Output('tuiDropdownDirectionChange')\n public readonly directionChange = new EventEmitter<TuiVerticalDirection>();\n\n public readonly type = 'dropdown';\n public readonly accessor: TuiRectAccessor | null =\n tuiFallbackAccessor<TuiRectAccessor>('dropdown')(\n inject<any>(TuiRectAccessor),\n inject(TuiDropdownDirective, {optional: true})!,\n );\n\n @tuiPure\n public emitDirection(direction: TuiVerticalDirection): void {\n this.directionChange.emit(direction);\n }\n\n public getPosition({width, height}: DOMRect): TuiPoint {\n if (!width && !height) {\n this.previous = undefined;\n }\n\n const hostRect = this.accessor?.getClientRect() ?? EMPTY_CLIENT_RECT;\n const viewportRect = this.viewport.getClientRect();\n const {minHeight, direction, offset, limitWidth} = this.options;\n const align = this.getAlign(this.options.align);\n const viewport = {\n top: viewportRect.top - offset,\n bottom: viewportRect.bottom + offset,\n right: viewportRect.right - offset,\n left: viewportRect.left + offset,\n } as const;\n const previous = this.previous || direction || 'bottom';\n const available = {\n top: hostRect.top - 2 * offset - viewport.top,\n bottom: viewport.bottom - hostRect.bottom - 2 * offset,\n } as const;\n const rectWidth = limitWidth === 'fixed' ? hostRect.width : width;\n const right = Math.max(hostRect.right - rectWidth, offset);\n const left = hostRect.left + width < viewport.right ? hostRect.left : right;\n const position = {\n top: hostRect.top - offset - height,\n bottom: hostRect.bottom + offset,\n right: Math.max(viewport.left, right),\n center:\n hostRect.left + hostRect.width / 2 + width / 2 < viewport.right\n ? hostRect.left + hostRect.width / 2 - width / 2\n : right,\n left: Math.max(viewport.left, left),\n } as const;\n const better: TuiVerticalDirection =\n available.top > available.bottom ? 'top' : 'bottom';\n\n if (\n (available[previous] > minHeight && direction) ||\n available[previous] > height\n ) {\n this.emitDirection(previous);\n\n return [position[previous], position[align]];\n }\n\n this.previous = better;\n this.emitDirection(better);\n\n return [position[better], position[align]];\n }\n\n public getAlign(align: TuiDropdownAlign): TuiDropdownAlign {\n const rtl = this.el.matches('[dir=\"rtl\"] :scope');\n\n if (rtl && align === 'left') {\n return 'right';\n }\n\n return rtl && align === 'right' ? 'left' : align;\n }\n}\n","import {coerceArray} from '@angular/cdk/coercion';\nimport {\n type AfterViewChecked,\n ChangeDetectorRef,\n type ComponentRef,\n Directive,\n inject,\n INJECTOR,\n Input,\n type OnDestroy,\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 {\n tuiAsRectAccessor,\n tuiAsVehicle,\n type TuiRectAccessor,\n type TuiVehicle,\n} from '@taiga-ui/core/classes';\nimport {type TuiPortalItem} from '@taiga-ui/core/types';\nimport {tuiCheckFixedPosition} from '@taiga-ui/core/utils';\nimport {\n PolymorpheusComponent,\n type PolymorpheusContent,\n PolymorpheusTemplate,\n} from '@taiga-ui/polymorpheus';\nimport {Subject, throttleTime} from 'rxjs';\n\nimport {TuiDropdownDriver, TuiDropdownDriverDirective} from './dropdown.driver';\nimport {TUI_DROPDOWN_COMPONENT} from './dropdown.providers';\nimport {TuiDropdownService} from './dropdown.service';\nimport {TuiDropdownPosition} from './dropdown-position.directive';\n\n@Directive({\n standalone: true,\n selector: '[tuiDropdown]:not(ng-container):not(ng-template)',\n providers: [\n tuiAsRectAccessor(TuiDropdownDirective),\n tuiAsVehicle(TuiDropdownDirective),\n ],\n exportAs: 'tuiDropdown',\n hostDirectives: [\n TuiDropdownDriverDirective,\n {\n directive: TuiDropdownPosition,\n outputs: ['tuiDropdownDirectionChange'],\n },\n ],\n host: {\n '[class.tui-dropdown-open]': 'ref()',\n },\n})\nexport class TuiDropdownDirective\n implements AfterViewChecked, OnDestroy, TuiPortalItem, TuiRectAccessor, TuiVehicle\n{\n private readonly refresh$ = new Subject<void>();\n private readonly service = inject(TuiDropdownService);\n private readonly cdr = inject(ChangeDetectorRef);\n\n // TODO: think of a better solution later\n private readonly drivers = coerceArray(\n inject(TuiDropdownDriver, {self: true, optional: true}),\n );\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 // TODO(v5): rename to `content`\n // eslint-disable-next-line @typescript-eslint/naming-convention\n public readonly _content = signal<PolymorpheusContent<TuiContext<() => void>>>(null);\n\n @Input()\n public set tuiDropdown(content: PolymorpheusContent<TuiContext<() => void>>) {\n this._content.set(\n content instanceof TemplateRef\n ? new PolymorpheusTemplate(content, this.cdr)\n : content,\n );\n\n if (!this._content()) {\n this.toggle(false);\n }\n }\n\n public get position(): 'absolute' | 'fixed' {\n return tuiCheckFixedPosition(this.el) ? 'fixed' : 'absolute';\n }\n\n // TODO(v5): delete\n public get content(): PolymorpheusContent<TuiContext<() => void>> {\n return this._content();\n }\n\n // TODO(v5): delete\n public set content(x: PolymorpheusContent<TuiContext<() => void>>) {\n this._content.set(x);\n }\n\n public ngAfterViewChecked(): void {\n this.refresh$.next();\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 this.drivers.forEach((driver) => driver?.next(show));\n\n // TODO: Remove in v5, only needed in Angular 16\n this.cdr.markForCheck();\n }\n}\n","import {\n type AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n computed,\n inject,\n} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {EMPTY_CLIENT_RECT} from '@taiga-ui/cdk/constants';\nimport {TuiActiveZone} from '@taiga-ui/cdk/directives/active-zone';\nimport {TuiAnimated} from '@taiga-ui/cdk/directives/animated';\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 {\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_DARK_MODE, TUI_VIEWPORT} from '@taiga-ui/core/tokens';\nimport {PolymorpheusOutlet} 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, 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 hostDirectives: [TuiActiveZone, TuiAnimated],\n host: {\n '[attr.data-appearance]': 'options.appearance',\n '[attr.tuiTheme]': 'theme()',\n },\n})\nexport class TuiDropdownComponent implements AfterViewInit {\n private readonly el = tuiInjectElement();\n private readonly accessor = inject(TuiRectAccessor);\n private readonly viewport = inject(TUI_VIEWPORT);\n private readonly vvs = inject(TuiVisualViewportService);\n\n private readonly styles$ = inject(TuiPositionService).pipe(\n takeWhile(\n () =>\n this.directive.el.isConnected &&\n !!this.directive.el.getBoundingClientRect().height,\n ),\n map((v) => (this.position === 'fixed' ? this.vvs.correct(v) : v)),\n map(([top, left]) => this.getStyles(left, top)),\n takeUntilDestroyed(),\n );\n\n protected readonly options = inject(TUI_DROPDOWN_OPTIONS);\n protected readonly directive = inject(TuiDropdownDirective);\n protected readonly context = inject(TUI_DROPDOWN_CONTEXT, {optional: true});\n protected readonly darkMode = inject(TUI_DARK_MODE);\n protected readonly position = this.directive.position;\n protected readonly theme = computed((_ = this.darkMode()) =>\n this.directive.el.closest('[tuiTheme]')?.getAttribute('tuiTheme'),\n );\n\n public ngAfterViewInit(): void {\n this.styles$.subscribe({\n next: (styles) => Object.assign(this.el.style, styles),\n complete: () => this.close?.(),\n });\n }\n\n protected readonly close = (): void => this.directive.toggle(false);\n\n private getStyles(x: number, y: number): Record<string, string> {\n const {maxHeight, minHeight, offset, limitWidth} = this.options;\n const parent = this.el.offsetParent?.getBoundingClientRect() || EMPTY_CLIENT_RECT;\n const {left = 0, top = 0} = this.position === 'fixed' ? {} : parent;\n const rect = this.accessor.getClientRect();\n const viewport = this.viewport.getClientRect();\n const above = rect.top - viewport.top - 2 * offset;\n const below = viewport.top + viewport.height - y - offset;\n const available = y > rect.bottom ? below : above;\n const height =\n this.el.getBoundingClientRect().right <= rect.left || x >= rect.right\n ? maxHeight\n : tuiClamp(available, minHeight, maxHeight);\n\n y -= top;\n x -= left;\n\n return {\n position: this.position,\n top: tuiPx(Math.round(Math.max(y, offset - top))),\n left: tuiPx(Math.round(x)),\n maxHeight: tuiPx(Math.round(height)),\n width: limitWidth === 'fixed' ? tuiPx(Math.round(rect.width)) : '',\n minWidth: limitWidth === 'min' ? tuiPx(Math.round(rect.width)) : '',\n maxWidth: tuiPx(Math.round(viewport.width) - 16), // 8px min gap from each side\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 {DOCUMENT} from '@angular/common';\nimport {computed, Directive, inject} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {EMPTY_CLIENT_RECT} from '@taiga-ui/cdk/constants';\nimport {TuiActiveZone} from '@taiga-ui/cdk/directives/active-zone';\nimport {tuiTypedFromEvent, tuiZonefree} from '@taiga-ui/cdk/observables';\nimport {TUI_IS_TOUCH} from '@taiga-ui/cdk/tokens';\nimport {tuiGetActualTarget, tuiPointToClientRect} from '@taiga-ui/cdk/utils/dom';\nimport {tuiAsDriver, tuiAsRectAccessor, TuiRectAccessor} from '@taiga-ui/core/classes';\nimport {shouldCall} from '@taiga-ui/event-plugins';\nimport {merge} from 'rxjs';\n\nimport {TuiDropdownDriver} from './dropdown.driver';\n\nfunction activeZoneFilter(this: TuiDropdownContext, event?: Event): boolean {\n return (\n !event ||\n (this.driver.value && !this.activeZone.contains(tuiGetActualTarget(event)))\n );\n}\n\n@Directive({\n standalone: true,\n selector: '[tuiDropdownContext]',\n providers: [\n TuiActiveZone,\n TuiDropdownDriver,\n tuiAsDriver(TuiDropdownDriver),\n tuiAsRectAccessor(TuiDropdownContext),\n ],\n host: {\n '[style.user-select]': 'userSelect()',\n '[style.-webkit-user-select]': 'userSelect()',\n '[style.-webkit-touch-callout]': 'userSelect()',\n '(document:keydown.esc)': 'closeDropdown()',\n '(longtap)': 'onContextMenu($event.detail.clientX, $event.detail.clientY)',\n },\n})\nexport class TuiDropdownContext extends TuiRectAccessor {\n private readonly isTouch = inject(TUI_IS_TOUCH);\n private currentRect = EMPTY_CLIENT_RECT;\n\n protected readonly userSelect = computed(() => (this.isTouch() ? 'none' : null));\n protected readonly activeZone = inject(TuiActiveZone);\n protected readonly driver = inject(TuiDropdownDriver);\n protected readonly doc = inject(DOCUMENT);\n\n protected readonly sub = merge(\n tuiTypedFromEvent(this.doc, 'pointerdown'),\n tuiTypedFromEvent(this.doc, 'contextmenu', {capture: true}),\n )\n .pipe(tuiZonefree(), takeUntilDestroyed())\n .subscribe((event: Event) => this.closeDropdown(event));\n\n public readonly type = 'dropdown';\n\n public getClientRect(): DOMRect {\n return this.currentRect;\n }\n\n @shouldCall(activeZoneFilter)\n protected closeDropdown(_event?: Event): void {\n this.driver.next(false);\n this.currentRect = EMPTY_CLIENT_RECT;\n }\n\n protected onContextMenu(x: number, y: number): void {\n this.currentRect = tuiPointToClientRect(x, y);\n this.driver.next(true);\n }\n}\n","import {InjectionToken, type Provider} from '@angular/core';\nimport {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 = new InjectionToken(\n ngDevMode ? 'TUI_DROPDOWN_HOVER_OPTIONS' : '',\n {\n factory: () => TUI_DROPDOWN_HOVER_DEFAULT_OPTIONS,\n },\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 {\n computed,\n ContentChild,\n Directive,\n ElementRef,\n EventEmitter,\n inject,\n Input,\n type OnChanges,\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 {\n tuiCloseWatcher,\n tuiIfMap,\n tuiWatch,\n tuiZonefull,\n} 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, merge} from 'rxjs';\n\nimport {TuiDropdownDirective} from './dropdown.directive';\nimport {TuiDropdownDriver} from './dropdown.driver';\n\nfunction shouldClose(this: TuiDropdownOpen, event: KeyboardEvent): boolean {\n return (\n // @ts-ignore\n typeof CloseWatcher === 'undefined' &&\n // ?. for auto fill events\n event.key?.toLowerCase() === 'escape' &&\n this.tuiDropdownEnabled &&\n !!this.tuiDropdownOpen &&\n !this['dropdown']()?.nextElementSibling\n );\n}\n\n@Directive({\n standalone: true,\n selector: '[tuiDropdown][tuiDropdownOpen],[tuiDropdown][tuiDropdownOpenChange]',\n providers: [TuiDropdownDriver, tuiAsDriver(TuiDropdownDriver)],\n hostDirectives: [\n TuiObscured,\n {\n directive: TuiActiveZone,\n inputs: ['tuiActiveZoneParent'],\n outputs: ['tuiActiveZoneChange'],\n },\n ],\n host: {\n '(click)': 'onClick($event.target)',\n '(keydown.arrowDown)': 'onArrow($event, false)',\n '(keydown.arrowUp)': 'onArrow($event, true)',\n '(document:keydown.zoneless.capture)': 'onEsc($event)',\n '(document:keydown.zoneless)': 'onKeydown($event)',\n // TODO: Necessary because startWith(false) + distinctUntilChanged() in TuiActiveZone, think of better solution\n '(tuiActiveZoneChange)': '0',\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 private readonly activeZone = inject(TuiActiveZone);\n\n private readonly dropdown = computed(\n () => this.directive.ref()?.location.nativeElement,\n );\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 public readonly sub = this.driver\n .pipe(\n tuiIfMap(() =>\n merge(\n tuiCloseWatcher(),\n this.obscured.tuiObscured.pipe(filter(Boolean)),\n this.activeZone.tuiActiveZoneChange.pipe(filter((a) => !a)),\n fromEvent(this.el, 'focusin').pipe(\n filter(\n (event) =>\n !this.host.contains(tuiGetActualTarget(event)) ||\n !this.directive.ref(),\n ),\n ),\n ),\n ),\n tuiZonefull(),\n tuiWatch(),\n takeUntilDestroyed(),\n )\n .subscribe(() => this.toggle(false));\n\n public readonly sync = this.driver.pipe(takeUntilDestroyed()).subscribe((open) => {\n if (open !== this.tuiDropdownOpen) {\n this.update(open);\n }\n });\n\n public ngOnChanges(): void {\n this.drive(!!this.tuiDropdownOpen);\n this.tuiDropdownOpenChange.emit(!!this.tuiDropdownOpen);\n }\n\n public toggle(open: boolean): void {\n if (this.focused && !open) {\n this.host.focus({preventScroll: true});\n }\n\n this.update(open);\n }\n\n @shouldCall(shouldClose)\n protected onEsc(event: KeyboardEvent): 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 !this.directive._content()\n ) {\n return;\n }\n\n event.preventDefault();\n this.focusDropdown(up);\n }\n\n protected onKeydown(event: KeyboardEvent): void {\n const target = tuiGetActualTarget(event);\n\n if (\n !event.defaultPrevented &&\n tuiIsEditingKey(event.key) &&\n this.editable &&\n this.focused &&\n tuiIsHTMLElement(target) &&\n !tuiIsElementEditable(target)\n ) {\n this.host.focus({preventScroll: true});\n }\n }\n\n private get host(): HTMLElement {\n const initial = this.dropdownHost?.nativeElement || this.el;\n const focusable = tuiIsNativeKeyboardFocusable(initial)\n ? initial\n : tuiGetClosestFocusable({initial, root: this.el});\n\n return this.dropdownHost?.nativeElement || focusable || this.el;\n }\n\n private get editable(): boolean {\n return tuiIsElementEditable(this.host);\n }\n\n private get focused(): boolean {\n return tuiIsNativeFocusedIn(this.host) || tuiIsNativeFocusedIn(this.dropdown());\n }\n\n private update(open: boolean): void {\n if (open && !this.tuiDropdownEnabled) {\n return this.drive();\n }\n\n this.tuiDropdownOpen = open;\n this.tuiDropdownOpenChange.emit(open);\n this.drive();\n }\n\n private drive(open = !!this.tuiDropdownOpen && this.tuiDropdownEnabled): void {\n this.obscured.tuiObscuredEnabled = open;\n this.driver.next(open);\n }\n\n private focusDropdown(previous: boolean): void {\n const root = this.dropdown();\n\n if (!root) {\n this.update(true);\n\n return;\n }\n\n const doc = this.el.ownerDocument;\n const child = root.appendChild(doc.createElement('div'));\n const initial = previous ? child : root;\n const focusable = tuiGetClosestFocusable({initial, previous, root});\n\n child.remove();\n focusable?.focus();\n }\n}\n","import {DOCUMENT} from '@angular/common';\nimport {ContentChild, Directive, ElementRef, inject, Input} from '@angular/core';\nimport {toObservable} from '@angular/core/rxjs-interop';\nimport {TuiActiveZone} from '@taiga-ui/cdk/directives/active-zone';\nimport {tuiTypedFromEvent, tuiZoneOptimized} from '@taiga-ui/cdk/observables';\nimport {\n tuiGetActualTarget,\n tuiInjectElement,\n tuiIsElement,\n} from '@taiga-ui/cdk/utils/dom';\nimport {tuiAsDriver, TuiDriver} from '@taiga-ui/core/classes';\nimport {\n delay,\n distinctUntilChanged,\n filter,\n fromEvent,\n map,\n merge,\n of,\n share,\n startWith,\n switchMap,\n takeUntil,\n tap,\n} from 'rxjs';\n\nimport {TuiDropdownDirective} from './dropdown.directive';\nimport {TUI_DROPDOWN_HOVER_OPTIONS} from './dropdown-hover.options';\nimport {TuiDropdownOpen} from './dropdown-open.directive';\n\n@Directive({\n standalone: true,\n selector: '[tuiDropdownHover]',\n providers: [TuiActiveZone, tuiAsDriver(TuiDropdownHover)],\n host: {\n '(click.capture)': 'onClick($event)',\n },\n})\nexport class TuiDropdownHover extends TuiDriver {\n @ContentChild('tuiDropdownHost', {descendants: true, read: ElementRef})\n private readonly dropdownHost?: ElementRef<HTMLElement>;\n\n private readonly el = tuiInjectElement();\n private readonly doc = inject(DOCUMENT);\n private readonly options = inject(TUI_DROPDOWN_HOVER_OPTIONS);\n private readonly activeZone = inject(TuiActiveZone);\n private readonly open = inject(TuiDropdownOpen, {optional: true});\n /**\n * Dropdown can be removed not only via click/touch –\n * swipe on mobile devices removes dropdown sheet without triggering new mouseover / mouseout events.\n */\n private readonly dropdownExternalRemoval$ = toObservable(\n inject(TuiDropdownDirective).ref,\n ).pipe(filter((x) => !x && this.hovered));\n\n private readonly stream$ = merge(\n this.dropdownExternalRemoval$.pipe(\n switchMap(() =>\n tuiTypedFromEvent(this.doc, 'pointerdown').pipe(\n map(tuiGetActualTarget),\n delay(this.hideDelay),\n startWith(null),\n takeUntil(fromEvent(this.doc, 'mouseover')),\n ),\n ),\n ),\n tuiTypedFromEvent(this.doc, 'mouseover').pipe(map(tuiGetActualTarget)),\n tuiTypedFromEvent(this.doc, 'mouseout').pipe(map((e) => e.relatedTarget)),\n ).pipe(\n map((element) => tuiIsElement(element) && this.isHovered(element)),\n distinctUntilChanged(),\n switchMap((v) => of(v).pipe(delay(v ? this.showDelay : this.hideDelay))),\n tuiZoneOptimized(),\n tap((hovered) => {\n this.hovered = hovered;\n this.open?.toggle(hovered);\n }),\n share(),\n );\n\n @Input('tuiDropdownShowDelay')\n public showDelay = this.options.showDelay;\n\n @Input('tuiDropdownHideDelay')\n public hideDelay = this.options.hideDelay;\n\n public hovered = false;\n\n public readonly type = 'dropdown';\n\n constructor() {\n super((subscriber) => this.stream$.subscribe(subscriber));\n }\n\n protected onClick(event: MouseEvent): void {\n if (this.hovered && this.open) {\n event.preventDefault();\n }\n }\n\n private isHovered(element: Element): boolean {\n const host = this.dropdownHost?.nativeElement || this.el;\n const hovered = host.contains(element);\n const child = !this.el.contains(element) && this.activeZone.contains(element);\n\n return hovered || child;\n }\n}\n","import {Directive, inject, Input, type OnChanges} from '@angular/core';\nimport {tuiAsDriver} from '@taiga-ui/core/classes';\n\nimport {TuiDropdownDriver} from './dropdown.driver';\n\n@Directive({\n standalone: true,\n selector: '[tuiDropdownManual]',\n providers: [TuiDropdownDriver, tuiAsDriver(TuiDropdownDriver)],\n})\nexport class TuiDropdownManual implements OnChanges {\n private readonly driver = inject(TuiDropdownDriver);\n\n @Input()\n public tuiDropdownManual: boolean | '' = false;\n\n public ngOnChanges(): void {\n this.driver.next(!!this.tuiDropdownManual);\n }\n}\n","import {Directive, Input, Output} from '@angular/core';\nimport {distinctUntilChanged, Subject} from 'rxjs';\n\n/**\n * @deprecated TODO: remove in v.5 when legacy controls are dropped\n */\n@Directive({\n standalone: true,\n selector:\n '[tuiDropdownOpen]:not([tuiDropdown]),[tuiDropdownOpenChange]:not([tuiDropdown])',\n})\nexport class TuiDropdownOpenLegacy {\n private readonly openStateSub = new Subject<boolean>();\n\n @Output()\n public readonly tuiDropdownOpenChange =\n this.openStateSub.pipe(distinctUntilChanged());\n\n @Input()\n public set tuiDropdownOpen(open: boolean) {\n this.emitOpenChange(open);\n }\n\n public emitOpenChange(open: boolean): void {\n this.openStateSub.next(open);\n }\n}\n","import {\n Directive,\n type EmbeddedViewRef,\n inject,\n Input,\n type OnDestroy,\n TemplateRef,\n} from '@angular/core';\n\nimport {TuiDropdownService} from './dropdown.service';\n\n/**\n * @deprecated use {@link TuiPopup} directive instead\n */\n@Directive({\n standalone: true,\n selector: 'ng-template[tuiDropdown]',\n})\nexport class TuiDropdownPortal implements OnDestroy {\n private readonly template = inject(TemplateRef);\n private readonly service = inject(TuiDropdownService);\n\n private viewRef?: EmbeddedViewRef<unknown>;\n\n @Input()\n public set tuiDropdown(show: boolean) {\n this.viewRef?.destroy();\n\n if (show) {\n this.viewRef = this.service.addTemplate(this.template);\n }\n }\n\n public ngOnDestroy(): void {\n this.viewRef?.destroy();\n }\n}\n","import {Directive, inject, Input} from '@angular/core';\nimport {EMPTY_CLIENT_RECT} from '@taiga-ui/cdk/constants';\nimport {tuiAsPositionAccessor, TuiPositionAccessor} from '@taiga-ui/core/classes';\nimport {TUI_VIEWPORT} from '@taiga-ui/core/tokens';\nimport {type TuiPoint} from '@taiga-ui/core/types';\n\nimport {TUI_DROPDOWN_OPTIONS} from './dropdown-options.directive';\nimport {TuiDropdownPosition} from './dropdown-position.directive';\n\n@Directive({\n standalone: true,\n selector: '[tuiDropdownSided]',\n providers: [TuiDropdownPosition, tuiAsPositionAccessor(TuiDropdownPositionSided)],\n})\nexport class TuiDropdownPositionSided extends TuiPositionAccessor {\n private readonly options = inject(TUI_DROPDOWN_OPTIONS);\n private readonly viewport = inject(TUI_VIEWPORT);\n private readonly vertical = inject(TuiDropdownPosition);\n private previous = this.options.direction || 'bottom';\n\n @Input()\n public tuiDropdownSided: boolean | string = '';\n\n @Input()\n public tuiDropdownSidedOffset = 4;\n\n public readonly type = 'dropdown';\n\n public getPosition(rect: DOMRect): TuiPoint {\n if (this.tuiDropdownSided === false) {\n return this.vertical.getPosition(rect);\n }\n\n const {height, width} = rect;\n const hostRect = this.vertical.accessor?.getClientRect() ?? EMPTY_CLIENT_RECT;\n const viewport = this.viewport.getClientRect();\n const {direction, offset} = this.options;\n const adjusted = this.vertical.getAlign(this.options.align);\n const align = adjusted === 'center' ? 'left' : adjusted;\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] > height && direction) ||\n this.previous === better\n ) {\n this.vertical.emitDirection(this.previous);\n\n return [position[this.previous], left];\n }\n\n this.previous = better;\n this.vertical.emitDirection(better);\n\n return [position[better], left];\n }\n}\n","import {DOCUMENT} from '@angular/common';\nimport {Directive, inject, Input, type OnDestroy, 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 {\n tuiAsDriver,\n tuiAsRectAccessor,\n TuiDriver,\n type TuiRectAccessor,\n} 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, filter, 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 filter((range) => this.isValid(range)),\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.ghostHost.removeChild(this.ghost);\n }\n }\n\n private get ghostHost(): HTMLElement {\n return this.el.querySelector('tui-textfield .t-ghost') || this.el;\n }\n\n private 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 private 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 /**\n * Check if range is not inside tui-textfield's DOM elements\n */\n private isValid(range: Range): boolean {\n return (\n !this.el.contains(range.commonAncestorContainer) ||\n !this.el.closest('tui-textfield') ||\n range.intersectsNode(this.ghost || this.el)\n );\n }\n\n private veryVerySadInputFix(element: HTMLInputElement | HTMLTextAreaElement): Range {\n const {ghost = this.initGhost(this.ghostHost)} = this;\n const {top, left, width, height} = this.ghostHost.getBoundingClientRect();\n const {selectionStart, selectionEnd, value} = element;\n const range = this.doc.createRange();\n const hostRect = this.ghostHost.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(\n element: HTMLElement | HTMLInputElement | HTMLTextAreaElement,\n ): HTMLElement {\n const ghost = this.doc.createElement('div');\n const {font, letterSpacing, textTransform, padding, borderTop} =\n 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.boxSizing = 'border-box';\n ghost.style.borderTop = borderTop;\n ghost.style.font = font;\n ghost.style.letterSpacing = letterSpacing;\n ghost.style.textTransform = textTransform;\n ghost.style.padding = padding;\n\n this.ghostHost.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 {inject, type Signal, type WritableSignal} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {tuiDirectiveBinding} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {type PolymorpheusContent} from '@taiga-ui/polymorpheus';\n\nimport {TuiDropdownDirective} from './dropdown.directive';\nimport {TuiDropdownOpen} from './dropdown-open.directive';\n\ntype C = PolymorpheusContent;\n\nexport function tuiDropdown(value: C | WritableSignal<C>): WritableSignal<C>;\nexport function tuiDropdown(value: Signal<C>): Signal<C>;\nexport function tuiDropdown(value: C | Signal<C>): Signal<C> {\n return tuiDirectiveBinding(TuiDropdownDirective, 'tuiDropdown', value, {});\n}\n\nexport function tuiDropdownEnabled(\n value: WritableSignal<boolean> | boolean,\n): WritableSignal<boolean>;\nexport function tuiDropdownEnabled(value: Signal<boolean>): Signal<boolean>;\nexport function tuiDropdownEnabled(value: Signal<boolean> | boolean): Signal<boolean> {\n return tuiDirectiveBinding(TuiDropdownOpen, 'tuiDropdownEnabled', value, {});\n}\n\nexport function tuiDropdownOpen(): WritableSignal<boolean> {\n const open: WritableSignal<boolean> = tuiDirectiveBinding(\n TuiDropdownOpen,\n 'tuiDropdownOpen',\n false,\n {},\n );\n\n inject(TuiDropdownOpen)\n .tuiDropdownOpenChange.pipe(takeUntilDestroyed())\n .subscribe((value) => open.set(value));\n\n return open;\n}\n","import {Directive, inject} from '@angular/core';\nimport {tuiOverrideOptions} from '@taiga-ui/core/utils/miscellaneous';\n\nimport {\n TUI_DROPDOWN_DEFAULT_OPTIONS,\n TUI_DROPDOWN_OPTIONS,\n tuiDropdownOptionsProvider,\n} from './dropdown-options.directive';\n\n@Directive({\n standalone: true,\n providers: [tuiDropdownOptionsProvider({})],\n})\nexport class TuiDropdownFixed {\n constructor() {\n const override = tuiOverrideOptions(\n {limitWidth: 'fixed'},\n TUI_DROPDOWN_DEFAULT_OPTIONS,\n );\n\n override(inject(TUI_DROPDOWN_OPTIONS, {self: true, optional: true}), null);\n }\n}\n\n@Directive({standalone: true})\nexport class TuiDropdownAuto {\n constructor() {\n /**\n * Update directive props with new defaults before inputs are processed\n * TODO: find better way to override TuiDropdownFixed host directive from parent component\n */\n (inject(TUI_DROPDOWN_OPTIONS) as any).limitWidth = 'auto';\n }\n}\n","import {ChangeDetectionStrategy, Component} from '@angular/core';\nimport {tuiAsPortal, TuiPortals} from '@taiga-ui/cdk/classes';\n\nimport {TuiDropdownService} from './dropdown.service';\n\n/**\n * Host element for dynamically created portals, for example using {@link TuiDropdownDirective}.\n */\n@Component({\n standalone: true,\n selector: 'tui-dropdowns',\n template: '<ng-container #viewContainer />',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [tuiAsPortal(TuiDropdownService)],\n host: {style: 'position: absolute; width: 100%; top: 0'},\n})\nexport class TuiDropdowns extends TuiPortals {}\n","import {Directive} from '@angular/core';\n\nimport {TuiDropdownOpen} from './dropdown-open.directive';\n\n@Directive({\n standalone: true,\n hostDirectives: [\n {\n directive: TuiDropdownOpen,\n inputs: ['tuiDropdownOpen: open', 'tuiDropdownEnabled'],\n outputs: ['tuiDropdownOpenChange: openChange'],\n },\n ],\n})\nexport class TuiWithDropdownOpen {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.TuiDropdownDriverDirective","i2.TuiDropdownPosition","i1","i2","tuiOverrideOptions","i1.TuiDropdownOpen"],"mappings":"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"}
@@ -416,6 +416,7 @@ class TuiHintUnstyledComponent {
416
416
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.9", ngImport: i0, type: TuiHintUnstyledComponent, decorators: [{
417
417
  type: Component,
418
418
  args: [{
419
+ standalone: true,
419
420
  imports: [PolymorpheusOutlet],
420
421
  template: '<ng-container *polymorpheusOutlet="context.$implicit.content()" />',
421
422
  changeDetection: ChangeDetectionStrategy.OnPush,
@@ -531,7 +532,7 @@ class TuiHintComponent extends TuiHintBaseComponent {
531
532
  }
532
533
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.9", ngImport: i0, type: TuiHintComponent, decorators: [{
533
534
  type: Component,
534
- args: [{ selector: 'tui-hint', imports: [PolymorpheusOutlet], template: `
535
+ args: [{ standalone: true, selector: 'tui-hint', imports: [PolymorpheusOutlet], template: `
535
536
  <ng-content />
536
537
  <span
537
538
  *polymorpheusOutlet="content() as text; context: hint.context"
@@ -696,7 +697,7 @@ class TuiHints {
696
697
  }
697
698
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.9", ngImport: i0, type: TuiHints, decorators: [{
698
699
  type: Component,
699
- args: [{ selector: 'tui-hints', imports: [NgForOf, PolymorpheusOutlet, TuiActiveZone, TuiAnimatedParent], changeDetection: ChangeDetectionStrategy.Default, host: {
700
+ args: [{ standalone: true, selector: 'tui-hints', imports: [NgForOf, PolymorpheusOutlet, TuiActiveZone, TuiAnimatedParent], changeDetection: ChangeDetectionStrategy.Default, host: {
700
701
  'aria-live': 'polite',
701
702
  }, template: "<div\n *ngFor=\"let hint of hints\"\n role=\"tooltip\"\n tuiAnimatedParent\n [tuiActiveZoneParent]=\"hint.activeZone || null\"\n>\n <ng-container *polymorpheusOutlet=\"hint.component; context: {$implicit: hint}\" />\n</div>\n", styles: [":host{position:fixed;top:0;left:0;inline-size:100%;block-size:100%;block-size:0}\n"] }]
702
703
  }] });