@taiga-ui/core 4.71.1 → 4.73.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-core-components-textfield.mjs","sources":["../../../projects/core/components/textfield/textfield.options.ts","../../../projects/core/components/textfield/select-like.directive.ts","../../../projects/core/components/textfield/textfield-accessor.ts","../../../projects/core/components/textfield/textfield-dropdown.directive.ts","../../../projects/core/components/textfield/textfield.component.ts","../../../projects/core/components/textfield/textfield.template.html","../../../projects/core/components/textfield/textfield.directive.ts","../../../projects/core/components/textfield/select.directive.ts","../../../projects/core/components/textfield/select.template.html","../../../projects/core/components/textfield/textfield-multi/textfield-item.component.ts","../../../projects/core/components/textfield/textfield-multi/textfield-multi.component.ts","../../../projects/core/components/textfield/textfield-multi/textfield-multi.template.html","../../../projects/core/components/textfield/textfield.ts","../../../projects/core/components/textfield/textfield-auxiliary.ts","../../../projects/core/components/textfield/textfield-content.directive.ts","../../../projects/core/components/textfield/textfield-icon.ts","../../../projects/core/components/textfield/with-native-picker.directive.ts","../../../projects/core/components/textfield/taiga-ui-core-components-textfield.ts"],"sourcesContent":["import {\n Directive,\n inject,\n InjectionToken,\n Input,\n Optional,\n type Provider,\n signal,\n SkipSelf,\n type WritableSignal,\n} from '@angular/core';\nimport {tuiProvide} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {type TuiSizeL, type TuiSizeS} from '@taiga-ui/core/types';\n\nconst DEFAULT = {\n appearance: 'textfield',\n size: 'l',\n cleaner: true,\n} as const;\n\nexport interface TuiTextfieldOptions {\n readonly appearance: WritableSignal<string>;\n readonly size: WritableSignal<TuiSizeL | TuiSizeS>;\n readonly cleaner: WritableSignal<boolean>;\n}\n\nexport const TUI_TEXTFIELD_OPTIONS = new InjectionToken<TuiTextfieldOptions>(\n ngDevMode ? 'TUI_TEXTFIELD_OPTIONS' : '',\n {\n factory: () => ({\n appearance: signal(DEFAULT.appearance),\n size: signal(DEFAULT.size),\n cleaner: signal(DEFAULT.cleaner),\n }),\n },\n);\n\nexport function tuiTextfieldOptionsProvider(\n options: Partial<TuiTextfieldOptions>,\n): Provider {\n return {\n provide: TUI_TEXTFIELD_OPTIONS,\n deps: [[new Optional(), new SkipSelf(), TUI_TEXTFIELD_OPTIONS]],\n useFactory: (parent: TuiTextfieldOptions | null) => ({\n appearance: signal(parent?.appearance() ?? DEFAULT.appearance),\n size: signal(parent?.size() ?? DEFAULT.size),\n cleaner: signal(parent?.cleaner() ?? DEFAULT.cleaner),\n ...options,\n }),\n };\n}\n\n@Directive({\n standalone: true,\n selector: '[tuiTextfieldAppearance],[tuiTextfieldSize],[tuiTextfieldCleaner]',\n providers: [tuiProvide(TUI_TEXTFIELD_OPTIONS, TuiTextfieldOptionsDirective)],\n})\nexport class TuiTextfieldOptionsDirective implements TuiTextfieldOptions {\n private readonly options = inject(TUI_TEXTFIELD_OPTIONS, {skipSelf: true});\n\n // TODO: refactor to signal inputs after Angular update\n public appearance = signal(this.options.appearance());\n public size = signal(this.options.size());\n public cleaner = signal(this.options.cleaner());\n\n @Input()\n public set tuiTextfieldAppearance(appearance: string) {\n this.appearance.set(appearance);\n }\n\n @Input()\n public set tuiTextfieldSize(size: TuiSizeL | TuiSizeS) {\n this.size.set(size);\n }\n\n @Input()\n public set tuiTextfieldCleaner(enabled: boolean) {\n this.cleaner.set(enabled);\n }\n}\n","import {Directive, inject} from '@angular/core';\nimport {TUI_IS_ANDROID} from '@taiga-ui/cdk/tokens';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\n\nimport {TUI_TEXTFIELD_OPTIONS} from './textfield.options';\n\n@Directive({\n standalone: true,\n selector: '[tuiSelectLike]',\n host: {\n tuiSelectLike: '',\n inputmode: 'none',\n spellcheck: 'false',\n autocomplete: 'off',\n // Click on cleaner icon does not trigger `beforeinput` event --> handle all kind of deletion in input event\n '(beforeinput)':\n 'options.cleaner() && $event.inputType.includes(\"delete\") || $event.preventDefault()',\n '(input.capture)': '$event.inputType?.includes(\"delete\") && clear()',\n // Hide Android text select handle (bubble marker below transparent caret)\n '(mousedown)': 'prevent($event)',\n },\n})\nexport class TuiSelectLike {\n private readonly el = tuiInjectElement<HTMLInputElement>();\n private readonly isAndroid = inject(TUI_IS_ANDROID);\n protected readonly options = inject(TUI_TEXTFIELD_OPTIONS);\n\n protected clear(): void {\n this.el.value = '';\n }\n\n protected prevent(event: MouseEvent): void {\n if (!this.isAndroid) {\n return;\n }\n\n event.preventDefault();\n this.el.focus();\n }\n}\n","import {InjectionToken, type Provider, type Type} from '@angular/core';\nimport {tuiProvide} from '@taiga-ui/cdk/utils/miscellaneous';\n\nexport interface TuiTextfieldAccessor<T = unknown> {\n setValue(value: T | T[] | null): void;\n}\n\nexport const TUI_TEXTFIELD_ACCESSOR = new InjectionToken<TuiTextfieldAccessor>(\n ngDevMode ? 'TUI_TEXTFIELD_ACCESSOR' : '',\n);\n\nexport function tuiAsTextfieldAccessor(accessor: Type<TuiTextfieldAccessor>): Provider {\n return tuiProvide(TUI_TEXTFIELD_ACCESSOR, accessor);\n}\n","import {isPlatformBrowser} from '@angular/common';\nimport {Directive, inject, type OnDestroy, PLATFORM_ID, TemplateRef} from '@angular/core';\nimport {TuiDropdownDirective} from '@taiga-ui/core/directives/dropdown';\n\n// TODO: Change selector to tuiDropdown in v5 and move to TuiDropdown\n@Directive({\n standalone: true,\n selector: 'ng-template[tuiTextfieldDropdown]',\n})\nexport class TuiTextfieldDropdownDirective implements OnDestroy {\n private readonly directive = inject(TuiDropdownDirective);\n\n constructor() {\n this.directive.tuiDropdown = inject(TemplateRef);\n\n if (\n isPlatformBrowser(inject(PLATFORM_ID)) &&\n this.directive.el.matches(':focus-within')\n ) {\n this.directive.toggle(true);\n }\n }\n\n public ngOnDestroy(): void {\n this.directive.tuiDropdown = null;\n }\n}\n\n/**\n * @deprecated remove in v5\n */\n@Directive({\n standalone: true,\n})\nexport class TuiWithTextfieldDropdown {}\n","import {AsyncPipe, NgIf} from '@angular/common';\nimport {\n type AfterContentChecked,\n ChangeDetectionStrategy,\n Component,\n computed,\n ContentChild,\n ContentChildren,\n Directive,\n ElementRef,\n forwardRef,\n inject,\n Input,\n type QueryList,\n signal,\n ViewChild,\n ViewContainerRef,\n ViewEncapsulation,\n} from '@angular/core';\nimport {toSignal} from '@angular/core/rxjs-interop';\nimport {NgControl} from '@angular/forms';\nimport {WaResizeObserver} from '@ng-web-apis/resize-observer';\nimport {TuiControl} from '@taiga-ui/cdk/classes';\nimport {EMPTY_QUERY} from '@taiga-ui/cdk/constants';\nimport {TuiTransitioned} from '@taiga-ui/cdk/directives/transitioned';\nimport {tuiQueryListChanges} from '@taiga-ui/cdk/observables';\nimport {tuiInjectId} from '@taiga-ui/cdk/services';\nimport {type TuiContext} from '@taiga-ui/cdk/types';\nimport {tuiInjectElement, tuiValue} from '@taiga-ui/cdk/utils/dom';\nimport {tuiFocusedIn} from '@taiga-ui/cdk/utils/focus';\nimport {tuiPx} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TuiButton, tuiButtonOptionsProvider} from '@taiga-ui/core/components/button';\nimport {\n tuiAsDataListHost,\n type TuiDataListHost,\n TuiWithOptionContent,\n} from '@taiga-ui/core/components/data-list';\nimport {TuiLabel} from '@taiga-ui/core/components/label';\nimport {\n TuiDropdownDirective,\n TuiDropdownFixed,\n TuiDropdownOpen,\n tuiDropdownOpen,\n TuiWithDropdownOpen,\n} from '@taiga-ui/core/directives/dropdown';\nimport {TuiWithIcons} from '@taiga-ui/core/directives/icons';\nimport {TuiWithItemsHandlers} from '@taiga-ui/core/directives/items-handlers';\nimport {TUI_AUXILIARY, TUI_CLEAR_WORD, TUI_COMMON_ICONS} from '@taiga-ui/core/tokens';\nimport {type TuiSizeL, type TuiSizeS} from '@taiga-ui/core/types';\nimport {type PolymorpheusContent, PolymorpheusOutlet} from '@taiga-ui/polymorpheus';\nimport {ReplaySubject, startWith, switchMap, take} from 'rxjs';\n\nimport {TuiTextfieldBase} from './textfield.directive';\nimport {TUI_TEXTFIELD_OPTIONS} from './textfield.options';\nimport {TUI_TEXTFIELD_ACCESSOR, type TuiTextfieldAccessor} from './textfield-accessor';\nimport {TuiWithTextfieldDropdown} from './textfield-dropdown.directive';\n\n// TODO: Remove base class in v5\n@Directive()\nexport class TuiTextfieldBaseComponent<T>\n implements TuiDataListHost<T>, AfterContentChecked\n{\n // TODO: refactor to signal inputs after Angular update\n private readonly filler = signal('');\n private readonly autoId = tuiInjectId();\n private readonly focusedIn = tuiFocusedIn(tuiInjectElement());\n private readonly contentReady$ = new ReplaySubject<boolean>(1);\n private readonly inputQuery = signal<ElementRef<HTMLInputElement> | undefined>(\n undefined,\n );\n\n @ViewChild('ghost')\n protected readonly ghost?: ElementRef<HTMLElement>;\n\n @ContentChild(forwardRef(() => TuiLabel), {read: ElementRef})\n protected readonly label?: ElementRef<HTMLElement>;\n\n @ContentChildren(TUI_AUXILIARY, {descendants: true})\n protected readonly auxiliaryQuery: QueryList<object> = EMPTY_QUERY;\n\n // TODO: Added just to avoid breaking anything until we refactor to signal queries\n @ContentChild(forwardRef(() => TuiTextfieldBase), {read: ElementRef})\n // eslint-disable-next-line @typescript-eslint/naming-convention\n protected readonly _input?: ElementRef<HTMLInputElement>;\n\n protected readonly open = tuiDropdownOpen();\n protected readonly dropdown = inject(TuiDropdownDirective);\n protected readonly dropdownOpen = inject(TuiDropdownOpen);\n\n protected readonly icons = inject(TUI_COMMON_ICONS);\n protected readonly clear = toSignal(inject(TUI_CLEAR_WORD));\n\n protected readonly computedFiller = computed((value = this.value()) => {\n const filler = value + this.filler().slice(value.length);\n\n return filler.length > value.length ? filler : '';\n });\n\n protected readonly showFiller = computed<boolean>(\n () =>\n this.focused() &&\n !!this.computedFiller() &&\n (!!this.value() || !this.input?.nativeElement.placeholder),\n );\n\n @ViewChild('vcr', {read: ViewContainerRef, static: true})\n public readonly vcr?: ViewContainerRef;\n\n @ContentChild(TUI_TEXTFIELD_ACCESSOR, {descendants: true})\n public readonly accessor?: TuiTextfieldAccessor<T>;\n\n @ContentChild(NgControl)\n public readonly control?: NgControl;\n\n @ContentChild(TuiControl)\n public readonly cva?: TuiControl<unknown>;\n\n // TODO: Replace with signal query when Angular is updated v5\n @ContentChild(forwardRef(() => TuiTextfieldBase), {\n read: ElementRef,\n static: true,\n })\n public readonly input?: ElementRef<HTMLInputElement>;\n\n @Input()\n public content: PolymorpheusContent<TuiContext<T>>;\n\n public readonly focused = computed(() => this.open() || this.focusedIn());\n public readonly options = inject(TUI_TEXTFIELD_OPTIONS);\n public readonly el = tuiInjectElement();\n public readonly value = tuiValue(this.inputQuery);\n\n // TODO: Refactor to signal queries when Angular is updated\n public readonly auxiliaries = toSignal<readonly object[]>(\n this.contentReady$.pipe(\n take(1),\n switchMap(() => tuiQueryListChanges(this.auxiliaryQuery)),\n startWith([]),\n ),\n {requireSync: true},\n );\n\n @Input('filler')\n public set fillerSetter(filler: string) {\n this.filler.set(filler);\n }\n\n public get id(): string {\n return this.input?.nativeElement.id || this.autoId;\n }\n\n public get size(): TuiSizeL | TuiSizeS {\n return this.options.size();\n }\n\n public get disabled(): boolean {\n return (\n this.cva?.disabled() ??\n this.control?.disabled ??\n this.input?.nativeElement?.disabled ??\n false\n );\n }\n\n public ngAfterContentChecked(): void {\n this.contentReady$.next(true);\n this.inputQuery.set(this._input);\n }\n\n public handleOption(option: T): void {\n this.accessor?.setValue(option);\n this.open.set(false);\n }\n\n protected get hasLabel(): boolean {\n return Boolean(this.label?.nativeElement?.childNodes.length);\n }\n\n protected onResize({contentRect}: ResizeObserverEntry): void {\n this.el.style.setProperty('--t-side', tuiPx(contentRect.width));\n }\n\n // Click on ::before,::after pseudo-elements ([iconStart] / [iconEnd])\n protected onIconClick(): void {\n this.input?.nativeElement.focus();\n\n if (\n !this.dropdownOpen.tuiDropdownEnabled ||\n this.input?.nativeElement.matches('input:read-only,textarea:read-only')\n ) {\n return;\n }\n\n this.open.update((open) => !open);\n\n try {\n this.input?.nativeElement.showPicker?.();\n } catch {\n // Empty catch block - silently ignore showPicker errors\n }\n }\n\n protected onScroll(element: HTMLElement): void {\n if (this.input?.nativeElement === element) {\n this.ghost?.nativeElement.scrollTo({\n left: this.input.nativeElement.scrollLeft,\n });\n }\n }\n}\n\n@Component({\n standalone: true,\n selector: 'tui-textfield:not([multi])',\n imports: [AsyncPipe, NgIf, PolymorpheusOutlet, TuiButton, WaResizeObserver],\n templateUrl: './textfield.template.html',\n styles: ['@import \"@taiga-ui/core/styles/components/textfield.less\";'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n tuiButtonOptionsProvider({size: 'xs', appearance: 'icon'}),\n tuiAsDataListHost(TuiTextfieldComponent),\n ],\n hostDirectives: [\n TuiDropdownDirective,\n TuiDropdownFixed,\n TuiTransitioned,\n TuiWithDropdownOpen,\n TuiWithIcons,\n TuiWithItemsHandlers,\n TuiWithOptionContent,\n TuiWithTextfieldDropdown,\n ],\n host: {\n '[attr.data-size]': 'options.size()',\n '[class._with-label]': 'hasLabel',\n '[class._with-template]': 'content && control?.value != null',\n '[class._disabled]': 'disabled',\n '(click.self.prevent)': '0',\n '(pointerdown.self.prevent)': 'onIconClick()',\n '(scroll.capture.zoneless)': 'onScroll($event.target)',\n '(tuiActiveZoneChange)': '!$event && cva?.onTouched()',\n },\n})\nexport class TuiTextfieldComponent<T> extends TuiTextfieldBaseComponent<T> {}\n","<ng-container *ngIf=\"control?.control?.valueChanges | async\" />\n<ng-content select=\"input\" />\n<ng-content select=\"select\" />\n<ng-content select=\"textarea\" />\n<ng-content select=\"label\" />\n<span\n class=\"t-content\"\n (click)=\"input?.nativeElement?.focus()\"\n (pointerdown.zoneless.prevent)=\"(0)\"\n (waResizeObserver)=\"$event[0] && onResize($event[0])\"\n>\n <ng-content />\n <button\n *ngIf=\"options.cleaner()\"\n appearance=\"icon\"\n size=\"xs\"\n tabindex=\"-1\"\n tuiIconButton\n type=\"button\"\n class=\"t-clear\"\n [iconStart]=\"icons.close\"\n (click)=\"accessor?.setValue(null)\"\n >\n {{ clear() }}\n </button>\n <ng-container #vcr />\n <ng-content select=\"tui-icon\" />\n</span>\n<span\n *ngIf=\"control?.value != null\"\n class=\"t-template\"\n>\n <ng-container *polymorpheusOutlet=\"content as text; context: {$implicit: control?.value}\">\n {{ text }}\n </ng-container>\n</span>\n<input\n *ngIf=\"showFiller()\"\n #ghost\n aria-hidden=\"true\"\n disabled\n class=\"t-filler\"\n [value]=\"computedFiller()\"\n/>\n","import {computed, Directive, inject, Input, type OnChanges, signal} from '@angular/core';\nimport {NgControl} from '@angular/forms';\nimport {TuiNativeValidator} from '@taiga-ui/cdk/directives/native-validator';\nimport {tuiInjectElement, tuiValue} from '@taiga-ui/cdk/utils/dom';\nimport {tuiProvide} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {\n TuiAppearance,\n tuiAppearance,\n tuiAppearanceFocus,\n tuiAppearanceMode,\n tuiAppearanceState,\n} from '@taiga-ui/core/directives/appearance';\nimport {\n TUI_ITEMS_HANDLERS,\n type TuiItemsHandlers,\n} from '@taiga-ui/core/directives/items-handlers';\nimport {type TuiInteractiveState} from '@taiga-ui/core/types';\n\nimport {TuiTextfieldComponent} from './textfield.component';\nimport {TUI_TEXTFIELD_OPTIONS} from './textfield.options';\nimport {tuiAsTextfieldAccessor, type TuiTextfieldAccessor} from './textfield-accessor';\n\n// TODO: Drop in v5 after updated Angular and hostDirectives inherit\n@Directive({\n standalone: true,\n providers: [tuiAsTextfieldAccessor(TuiTextfieldBase)],\n host: {\n tuiTextfield: '',\n '[id]': 'textfield.id',\n '[readOnly]': 'readOnly',\n '[class._empty]': 'value() === \"\"',\n '(input)': '0',\n '(focusin)': '0',\n '(focusout)': '0',\n },\n})\nexport class TuiTextfieldBase<T> implements OnChanges, TuiTextfieldAccessor<T> {\n // TODO: refactor to signal inputs after Angular update\n private readonly focused = signal<boolean | null>(null);\n\n protected readonly control = inject(NgControl, {optional: true});\n protected readonly a = tuiAppearance(inject(TUI_TEXTFIELD_OPTIONS).appearance, {});\n protected readonly s = tuiAppearanceState(null, {});\n protected readonly m = tuiAppearanceMode(this.mode, {});\n protected readonly f = tuiAppearanceFocus(\n computed(() => this.focused() ?? this.textfield.focused()),\n {},\n );\n\n protected readonly el = tuiInjectElement<HTMLInputElement>();\n protected readonly handlers: TuiItemsHandlers<T> = inject(TUI_ITEMS_HANDLERS);\n protected readonly textfield: TuiTextfieldComponent<T> =\n inject(TuiTextfieldComponent);\n\n @Input()\n public readOnly = false;\n\n @Input()\n public invalid: boolean | null = null;\n\n public readonly value = tuiValue(this.el);\n\n @Input('focused')\n public set focusedSetter(focused: boolean | null) {\n this.focused.set(focused);\n }\n\n @Input('state')\n public set stateSetter(state: TuiInteractiveState | null) {\n this.s.set(state);\n }\n\n public get mode(): string | null {\n if (this.readOnly) {\n return 'readonly';\n }\n\n if (this.invalid === false) {\n return 'valid';\n }\n\n if (this.invalid) {\n return 'invalid';\n }\n\n return null;\n }\n\n // TODO: refactor to signal inputs after Angular update\n public ngOnChanges(): void {\n this.m.set(this.mode);\n }\n\n public setValue(value: T | null): void {\n this.el.focus();\n this.el.select();\n\n if (value == null) {\n this.el.ownerDocument.execCommand('delete');\n\n // see https://github.com/taiga-family/taiga-ui/issues/11634\n // ensure non-erasable affixes actually deleted\n this.el.value = '';\n } else {\n this.el.ownerDocument.execCommand(\n 'insertText',\n false,\n this.handlers.stringify()(value),\n );\n }\n }\n}\n\n@Directive({\n standalone: true,\n // TODO: Remove :not in v.5\n selector:\n 'input[tuiTextfield]:not([tuiInputCard]):not([tuiInputExpire]):not([tuiInputCVC])',\n providers: [\n tuiAsTextfieldAccessor(TuiTextfieldDirective),\n tuiProvide(TuiTextfieldBase, TuiTextfieldDirective),\n ],\n hostDirectives: [TuiNativeValidator, TuiAppearance],\n})\nexport class TuiTextfieldDirective<T> extends TuiTextfieldBase<T> {}\n\n@Directive({\n standalone: true,\n hostDirectives: [\n {\n directive: TuiTextfieldDirective,\n inputs: ['invalid', 'focused', 'readOnly', 'state'],\n },\n ],\n})\nexport class TuiWithTextfield {}\n","import {DOCUMENT, NgFor, NgIf} from '@angular/common';\nimport {ChangeDetectionStrategy, Component, inject, Input} from '@angular/core';\nimport {WA_NAVIGATOR} from '@ng-web-apis/common';\nimport {TuiNativeValidator} from '@taiga-ui/cdk/directives/native-validator';\nimport {TuiAppearance} from '@taiga-ui/core/directives/appearance';\n\nimport {TuiTextfieldBase} from './textfield.directive';\nimport {tuiAsTextfieldAccessor} from './textfield-accessor';\n\n/**\n * @deprecated use {@link TuiSelect} from @taiga-ui/kit instead, drop in v5\n */\n@Component({\n standalone: true,\n selector: 'select[tuiTextfield]',\n imports: [NgFor, NgIf],\n templateUrl: './select.template.html',\n // We want this template to follow change detection to parent textfield.\n // eslint-disable-next-line @angular-eslint/prefer-on-push-component-change-detection\n changeDetection: ChangeDetectionStrategy.Default,\n providers: [tuiAsTextfieldAccessor(TuiSelect)],\n hostDirectives: [TuiNativeValidator, TuiAppearance],\n host: {\n '[id]': 'textfield.id',\n '[class._empty]': 'stringified === \"\"',\n '[attr.aria-label]': 'ariaLabel',\n '(input)': '0',\n '(focusin)': '0',\n '(focusout)': '0',\n '(keydown.space.prevent)': '0',\n '(keydown.enter.prevent)': '0',\n '(keydown.backspace)': 'setValue(\"\")',\n '(mousedown.prevent)': 'focus()',\n '(keydown.control.c)': 'onCopy()',\n '(keydown.meta.c)': 'onCopy()',\n },\n})\nexport class TuiSelect<T> extends TuiTextfieldBase<T> {\n private readonly nav = inject(WA_NAVIGATOR);\n private readonly doc = inject(DOCUMENT);\n\n @Input()\n public placeholder = '';\n\n public override setValue(value: T): void {\n this.control?.control?.setValue(value);\n this.el.dispatchEvent(new Event('input', {bubbles: true}));\n }\n\n public focus(): void {\n this.el.classList.add('_ios-fix');\n this.el.focus();\n this.el.classList.remove('_ios-fix');\n }\n\n protected get ariaLabel(): string | null {\n return this.doc.querySelector(`label[for=\"${this.el.id}\"]`)\n ? null\n : this.el.getAttribute('aria-label') || this.placeholder;\n }\n\n protected get stringified(): string {\n return this.handlers.stringify()(this.control?.value ?? '');\n }\n\n protected async onCopy(): Promise<void> {\n await this.nav.clipboard.writeText(this.stringified);\n }\n}\n","<option\n *ngIf=\"placeholder && !stringified; else selected\"\n disabled\n selected\n value=\"\"\n>\n {{ placeholder }}\n</option>\n<ng-template #selected>\n <option\n *ngFor=\"let item of [stringified]\"\n selected\n [value]=\"item\"\n >\n {{ item }}\n </option>\n</ng-template>\n","import {ChangeDetectionStrategy, Component, inject} from '@angular/core';\nimport {type TuiContext} from '@taiga-ui/cdk/types';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {TUI_ITEMS_HANDLERS} from '@taiga-ui/core/directives/items-handlers';\nimport {\n injectContext,\n type PolymorpheusContent,\n PolymorpheusOutlet,\n} from '@taiga-ui/polymorpheus';\n\nimport {TuiTextfieldMultiComponent} from './textfield-multi.component';\n\nexport interface TuiTextfieldItem<T> {\n readonly item: T;\n readonly index: number;\n}\n\n/*\n * Internal wrapper for polymorpheus-context\n */\n@Component({\n standalone: true,\n selector: 'tui-textfield-item',\n imports: [PolymorpheusOutlet],\n template:\n '<ng-container *polymorpheusOutlet=\"content as text; context: context\">{{ text }}</ng-container>',\n styleUrls: ['./textfield-item.style.less'],\n // TODO: Set to OnPush in v5 when textfield.item becomes a signal\n // eslint-disable-next-line @angular-eslint/prefer-on-push-component-change-detection\n changeDetection: ChangeDetectionStrategy.Default,\n host: {\n '[class._string]': '!textfield.item',\n '[class._disabled]': 'handlers.disabledItemHandler()(context.$implicit.item)',\n '(pointerdown.self)': 'prevent($event)',\n '(keydown.arrowLeft.prevent)': 'el.previousElementSibling?.firstChild?.focus()',\n '(keydown.arrowRight.prevent)': 'el.nextElementSibling?.firstChild?.focus()',\n },\n})\nexport class TuiTextfieldItemComponent<T> {\n protected readonly el = tuiInjectElement();\n protected readonly handlers = inject(TUI_ITEMS_HANDLERS);\n protected readonly context = injectContext<TuiContext<TuiTextfieldItem<T>>>();\n protected readonly textfield: TuiTextfieldMultiComponent<T> = inject(\n TuiTextfieldMultiComponent,\n );\n\n protected get content(): PolymorpheusContent<TuiContext<TuiTextfieldItem<T>>> {\n return (\n this.textfield.item ?? this.handlers.stringify()(this.context.$implicit.item)\n );\n }\n\n protected prevent(e: Event): void {\n this.textfield.focused() && e.preventDefault();\n }\n}\n","import {AsyncPipe, NgForOf, NgIf} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n ElementRef,\n inject,\n Input,\n signal,\n TemplateRef,\n ViewEncapsulation,\n} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {WaResizeObserver} from '@ng-web-apis/resize-observer';\nimport {TuiItem} from '@taiga-ui/cdk/directives/item';\nimport {tuiZonefree} from '@taiga-ui/cdk/observables';\nimport {type TuiContext} from '@taiga-ui/cdk/types';\nimport {tuiIsElement} from '@taiga-ui/cdk/utils/dom';\nimport {tuiArrayToggle, tuiProvide, tuiPx} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TuiButton, tuiButtonOptionsProvider} from '@taiga-ui/core/components/button';\nimport {\n tuiAsDataListHost,\n TuiWithOptionContent,\n} from '@taiga-ui/core/components/data-list';\nimport {TuiScrollControls} from '@taiga-ui/core/components/scrollbar';\nimport {\n TUI_ITEMS_HANDLERS,\n TuiWithAppearance,\n TuiWithItemsHandlers,\n} from '@taiga-ui/core/directives';\nimport {\n TuiDropdownDirective,\n TuiDropdownFixed,\n TuiWithDropdownOpen,\n} from '@taiga-ui/core/directives/dropdown';\nimport {TuiWithIcons} from '@taiga-ui/core/directives/icons';\nimport {TUI_SCROLL_REF} from '@taiga-ui/core/tokens';\nimport {\n PolymorpheusComponent,\n type PolymorpheusContent,\n PolymorpheusOutlet,\n} from '@taiga-ui/polymorpheus';\nimport {filter, fromEvent} from 'rxjs';\n\nimport {TuiTextfieldBaseComponent, TuiTextfieldComponent} from '../textfield.component';\nimport {TuiWithTextfieldDropdown} from '../textfield-dropdown.directive';\nimport {\n type TuiTextfieldItem,\n TuiTextfieldItemComponent,\n} from './textfield-item.component';\nimport {WA_WINDOW} from '@ng-web-apis/common';\n\n@Component({\n standalone: true,\n selector: 'tui-textfield[multi]',\n imports: [\n AsyncPipe,\n NgForOf,\n NgIf,\n PolymorpheusOutlet,\n TuiButton,\n TuiScrollControls,\n WaResizeObserver,\n ],\n templateUrl: './textfield-multi.template.html',\n styleUrls: ['./textfield-multi.style.less'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n tuiButtonOptionsProvider({size: 'xs', appearance: 'icon'}),\n tuiAsDataListHost(TuiTextfieldMultiComponent),\n tuiProvide(TuiTextfieldComponent, TuiTextfieldMultiComponent),\n tuiProvide(TUI_SCROLL_REF, ElementRef),\n ],\n hostDirectives: [\n TuiDropdownFixed,\n TuiDropdownDirective,\n TuiWithDropdownOpen,\n TuiWithTextfieldDropdown,\n TuiWithIcons,\n TuiWithItemsHandlers,\n TuiWithOptionContent,\n TuiWithAppearance,\n ],\n host: {\n class: 'tui-interactive',\n '[attr.data-state]': 'disabled ? \"disabled\" : null',\n '[class._empty]': '!control?.value?.length',\n '[style.--t-item-height.px]': 'height()',\n '[style.--t-rows]': 'rows',\n '(click.prevent)': 'onClick($event.target)',\n '(tuiActiveZoneChange)':\n '!$event && (el.scrollTo({left: 0}) || cva?.onTouched())',\n // TODO: Remove in v5\n '[attr.data-size]': 'options.size()',\n '[class._with-label]': 'hasLabel',\n '[class._with-template]': 'content && control?.value != null',\n '[class._disabled]': 'disabled',\n '(pointerdown.self.prevent)': 'onIconClick()',\n '(scroll.capture.zoneless)': 'onScroll($event.target)',\n },\n})\nexport class TuiTextfieldMultiComponent<T> extends TuiTextfieldBaseComponent<T> {\n protected readonly height = signal<number | null>(null);\n protected readonly win = inject(WA_WINDOW);\n protected readonly handlers = inject(TUI_ITEMS_HANDLERS);\n protected readonly component: PolymorpheusContent<TuiContext<TuiTextfieldItem<T>>> =\n new PolymorpheusComponent(TuiTextfieldItemComponent);\n\n protected readonly sub = fromEvent(this.el, 'scroll')\n .pipe(\n filter(() => this.rows === 1),\n tuiZonefree(),\n takeUntilDestroyed(),\n )\n .subscribe(() => {\n this.el.style.setProperty('--t-scroll', tuiPx(-1 * this.el.scrollLeft));\n });\n\n @ContentChild(TuiItem, {read: TemplateRef, descendants: true})\n public readonly item?: TemplateRef<unknown>;\n\n @Input()\n public rows = 100;\n\n public override handleOption(option: T): void {\n this.accessor?.setValue(\n tuiArrayToggle(\n this.control?.value ?? [],\n option,\n this.handlers.identityMatcher(),\n ),\n );\n }\n\n protected get placeholder(): string {\n const placeholder = this.input?.nativeElement.matches('input')\n ? this.input.nativeElement.placeholder\n : this.computedFiller();\n const value = this.computedFiller() || this.value();\n const longer = value.length > placeholder.length ? value : placeholder;\n\n return this.focused() ? longer : '';\n }\n\n protected onItems({target}: ResizeObserverEntry): void {\n const height =\n this.rows > 1 && this.control?.value?.length\n ? (target.querySelector('tui-textfield-item')?.clientHeight ?? 0)\n : null;\n\n if (height !== 0) {\n this.height.set(height);\n }\n }\n\n protected onLeft(event: any): void {\n if (this.value() || !tuiIsElement(event.currentTarget)) {\n return;\n }\n\n event.preventDefault();\n event.currentTarget.previousElementSibling?.firstElementChild?.focus();\n }\n\n protected focusInput(): void {\n const selection = this.win.getSelection();\n\n if (!selection?.rangeCount || selection.getRangeAt(0)?.collapsed) {\n this.input?.nativeElement.focus();\n }\n }\n\n protected onClick(target: HTMLElement): void {\n if (\n target === this.el ||\n !this.cva?.interactive() ||\n (!this.el.matches('[tuiChevron]') &&\n !this.el.querySelector('select, [tuiInputDateMulti]')) ||\n target.matches('input:read-only,input[inputmode=\"none\"]')\n ) {\n return;\n }\n\n this.open.update((open) => !open);\n\n try {\n this.input?.nativeElement.showPicker?.();\n } catch {\n // Empty catch block - silently ignore showPicker errors\n }\n }\n}\n","<ng-container *ngIf=\"control?.control?.valueChanges | async\" />\n<tui-scroll-controls\n *ngIf=\"rows > 1\"\n class=\"t-scrollbar\"\n/>\n\n<div\n class=\"t-items\"\n [class.t-items_horizontal]=\"rows === 1\"\n (click)=\"focusInput()\"\n (pointerdown.self.zoneless.prevent)=\"(0)\"\n (waResizeObserver)=\"$event[0] && onItems($event[0])\"\n>\n <ng-content select=\"label\" />\n <ng-template\n *ngFor=\"let item of control?.value; let index = index\"\n [polymorpheusOutlet]=\"component\"\n [polymorpheusOutletContext]=\"{$implicit: {item, index}}\"\n />\n <span\n class=\"t-input\"\n (keydown.arrowLeft)=\"onLeft($event)\"\n >\n <ng-content select=\"input\" />\n <ng-content select=\"select\" />\n <span class=\"t-ghost\">{{ placeholder }}</span>\n <input\n aria-hidden=\"true\"\n disabled\n class=\"t-filler\"\n [class.t-filler_hidden]=\"!showFiller()\"\n [value]=\"computedFiller()\"\n />\n </span>\n</div>\n\n<span\n class=\"t-content\"\n (click)=\"input?.nativeElement?.focus()\"\n (pointerdown.zoneless.prevent)=\"(0)\"\n (waResizeObserver)=\"$event[0] && onResize($event[0])\"\n>\n <ng-content />\n <button\n *ngIf=\"options.cleaner()\"\n appearance=\"icon\"\n size=\"xs\"\n tabindex=\"-1\"\n tuiIconButton\n type=\"button\"\n class=\"t-clear\"\n [iconStart]=\"icons.close\"\n (click)=\"accessor?.setValue([])\"\n >\n {{ clear() }}\n </button>\n <ng-container #vcr />\n <ng-content select=\"tui-icon\" />\n</span>\n\n<span\n *ngIf=\"control?.value != null\"\n class=\"t-template\"\n>\n <ng-container *polymorpheusOutlet=\"content as text; context: {$implicit: control?.value}\">\n {{ text }}\n </ng-container>\n</span>\n","import {TuiItem} from '@taiga-ui/cdk/directives/item';\nimport {TuiLabel} from '@taiga-ui/core/components/label';\n\nimport {TuiSelect} from './select.directive';\nimport {TuiTextfieldComponent} from './textfield.component';\nimport {TuiTextfieldDirective} from './textfield.directive';\nimport {TuiTextfieldOptionsDirective} from './textfield.options';\nimport {TuiTextfieldDropdownDirective} from './textfield-dropdown.directive';\nimport {TuiTextfieldMultiComponent} from './textfield-multi/textfield-multi.component';\n\nexport const TuiTextfield = [\n TuiItem,\n TuiLabel,\n TuiSelect,\n TuiTextfieldComponent,\n TuiTextfieldDirective,\n TuiTextfieldOptionsDirective,\n TuiTextfieldDropdownDirective,\n TuiTextfieldMultiComponent,\n] as const;\n","import {computed, inject, type Signal} from '@angular/core';\n\nimport {TuiTextfieldComponent} from './textfield.component';\n\nexport function tuiInjectAuxiliary<T>(\n predicate: (auxiliary: any, index: number) => boolean,\n): Signal<T | null> {\n const {auxiliaries} = inject(TuiTextfieldComponent);\n\n return computed(() => (auxiliaries().find(predicate) ?? null) as T | null);\n}\n","import {Directive, type DoCheck, inject, TemplateRef} from '@angular/core';\n\nimport {TuiTextfieldComponent} from './textfield.component';\n\n@Directive({\n standalone: true,\n selector: 'ng-template[tuiTextfieldContent]',\n})\nexport class TuiTextfieldContent implements DoCheck {\n private readonly ref = inject(TuiTextfieldComponent).vcr?.createEmbeddedView(\n inject(TemplateRef),\n );\n\n public ngDoCheck(): void {\n this.ref?.detectChanges();\n }\n}\n","import {computed, inject, type ProviderToken, type Signal} from '@angular/core';\nimport {type TuiHandler} from '@taiga-ui/cdk/types';\nimport {tuiDirectiveBinding} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TuiIcons} from '@taiga-ui/core/directives/icons';\nimport {type TuiSizeL, type TuiSizeS} from '@taiga-ui/core/types';\n\nimport {TUI_TEXTFIELD_OPTIONS} from './textfield.options';\n\nexport function tuiTextfieldIconBinding(\n token: ProviderToken<{icon: TuiHandler<TuiSizeL | TuiSizeS, string>}>,\n): Signal<string> {\n const textfield = inject(TUI_TEXTFIELD_OPTIONS);\n const options = inject(token);\n\n return tuiDirectiveBinding(\n TuiIcons,\n 'iconEnd',\n computed(() => options.icon(textfield.size())),\n {},\n );\n}\n","import {Directive} from '@angular/core';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\n\n/**\n * Use it instead of host binding\n * host: { '[type]': '\"text\"' }\n * ___\n * From Angular 19+ all effects are called before host bindings.\n * If effects inside `tuiValue` will be called before `<input />` get `type=\"text\"`,\n * it will cause loss of initial value\n */\n@Directive({standalone: true})\nexport class TuiWithNativePicker {\n constructor() {\n tuiInjectElement<HTMLInputElement>().type = 'text';\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i6.TuiWithTextfieldDropdown","i1","i2","TUI_ITEMS_HANDLERS","TuiWithItemsHandlers"],"mappings":"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"}
1
+ {"version":3,"file":"taiga-ui-core-components-textfield.mjs","sources":["../../../projects/core/components/textfield/textfield.options.ts","../../../projects/core/components/textfield/select-like.directive.ts","../../../projects/core/components/textfield/textfield-accessor.ts","../../../projects/core/components/textfield/textfield-dropdown.directive.ts","../../../projects/core/components/textfield/textfield.component.ts","../../../projects/core/components/textfield/textfield.template.html","../../../projects/core/components/textfield/textfield.directive.ts","../../../projects/core/components/textfield/select.directive.ts","../../../projects/core/components/textfield/select.template.html","../../../projects/core/components/textfield/textfield-multi/textfield-item.component.ts","../../../projects/core/components/textfield/textfield-multi/textfield-multi.component.ts","../../../projects/core/components/textfield/textfield-multi/textfield-multi.template.html","../../../projects/core/components/textfield/textfield.ts","../../../projects/core/components/textfield/textfield-auxiliary.ts","../../../projects/core/components/textfield/textfield-content.directive.ts","../../../projects/core/components/textfield/textfield-icon.ts","../../../projects/core/components/textfield/with-native-picker.directive.ts","../../../projects/core/components/textfield/taiga-ui-core-components-textfield.ts"],"sourcesContent":["import {\n Directive,\n inject,\n InjectionToken,\n Input,\n Optional,\n type Provider,\n signal,\n SkipSelf,\n type WritableSignal,\n} from '@angular/core';\nimport {tuiProvide} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {type TuiSizeL, type TuiSizeS} from '@taiga-ui/core/types';\n\nconst DEFAULT = {\n appearance: 'textfield',\n size: 'l',\n cleaner: true,\n} as const;\n\nexport interface TuiTextfieldOptions {\n readonly appearance: WritableSignal<string>;\n readonly size: WritableSignal<TuiSizeL | TuiSizeS>;\n readonly cleaner: WritableSignal<boolean>;\n}\n\nexport const TUI_TEXTFIELD_OPTIONS = new InjectionToken<TuiTextfieldOptions>(\n ngDevMode ? 'TUI_TEXTFIELD_OPTIONS' : '',\n {\n factory: () => ({\n appearance: signal(DEFAULT.appearance),\n size: signal(DEFAULT.size),\n cleaner: signal(DEFAULT.cleaner),\n }),\n },\n);\n\nexport function tuiTextfieldOptionsProvider(\n options: Partial<TuiTextfieldOptions>,\n): Provider {\n return {\n provide: TUI_TEXTFIELD_OPTIONS,\n deps: [[new Optional(), new SkipSelf(), TUI_TEXTFIELD_OPTIONS]],\n useFactory: (parent: TuiTextfieldOptions | null) => ({\n appearance: signal(parent?.appearance() ?? DEFAULT.appearance),\n size: signal(parent?.size() ?? DEFAULT.size),\n cleaner: signal(parent?.cleaner() ?? DEFAULT.cleaner),\n ...options,\n }),\n };\n}\n\n@Directive({\n standalone: true,\n selector: '[tuiTextfieldAppearance],[tuiTextfieldSize],[tuiTextfieldCleaner]',\n providers: [tuiProvide(TUI_TEXTFIELD_OPTIONS, TuiTextfieldOptionsDirective)],\n})\nexport class TuiTextfieldOptionsDirective implements TuiTextfieldOptions {\n private readonly options = inject(TUI_TEXTFIELD_OPTIONS, {skipSelf: true});\n\n // TODO: refactor to signal inputs after Angular update\n public appearance = signal(this.options.appearance());\n public size = signal(this.options.size());\n public cleaner = signal(this.options.cleaner());\n\n @Input()\n public set tuiTextfieldAppearance(appearance: string) {\n this.appearance.set(appearance);\n }\n\n @Input()\n public set tuiTextfieldSize(size: TuiSizeL | TuiSizeS) {\n this.size.set(size);\n }\n\n @Input()\n public set tuiTextfieldCleaner(enabled: boolean) {\n this.cleaner.set(enabled);\n }\n}\n","import {Directive, inject} from '@angular/core';\nimport {TUI_IS_ANDROID} from '@taiga-ui/cdk/tokens';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\n\nimport {TUI_TEXTFIELD_OPTIONS} from './textfield.options';\n\n@Directive({\n standalone: true,\n selector: '[tuiSelectLike]',\n host: {\n tuiSelectLike: '',\n inputmode: 'none',\n spellcheck: 'false',\n autocomplete: 'off',\n // Click on cleaner icon does not trigger `beforeinput` event --> handle all kind of deletion in input event\n '(beforeinput)':\n 'options.cleaner() && $event.inputType.includes(\"delete\") || $event.preventDefault()',\n '(input.capture)': '$event.inputType?.includes(\"delete\") && clear()',\n // Hide Android text select handle (bubble marker below transparent caret)\n '(mousedown)': 'prevent($event)',\n },\n})\nexport class TuiSelectLike {\n private readonly el = tuiInjectElement<HTMLInputElement>();\n private readonly isAndroid = inject(TUI_IS_ANDROID);\n protected readonly options = inject(TUI_TEXTFIELD_OPTIONS);\n\n protected clear(): void {\n this.el.value = '';\n }\n\n protected prevent(event: MouseEvent): void {\n if (!this.isAndroid) {\n return;\n }\n\n event.preventDefault();\n this.el.focus();\n }\n}\n","import {InjectionToken, type Provider, type Type} from '@angular/core';\nimport {tuiProvide} from '@taiga-ui/cdk/utils/miscellaneous';\n\nexport interface TuiTextfieldAccessor<T = unknown> {\n setValue(value: T | T[] | null): void;\n}\n\nexport const TUI_TEXTFIELD_ACCESSOR = new InjectionToken<TuiTextfieldAccessor>(\n ngDevMode ? 'TUI_TEXTFIELD_ACCESSOR' : '',\n);\n\nexport function tuiAsTextfieldAccessor(accessor: Type<TuiTextfieldAccessor>): Provider {\n return tuiProvide(TUI_TEXTFIELD_ACCESSOR, accessor);\n}\n","import {isPlatformBrowser} from '@angular/common';\nimport {Directive, inject, type OnDestroy, PLATFORM_ID, TemplateRef} from '@angular/core';\nimport {TuiDropdownDirective} from '@taiga-ui/core/directives/dropdown';\n\n// TODO: Change selector to tuiDropdown in v5 and move to TuiDropdown\n@Directive({\n standalone: true,\n selector: 'ng-template[tuiTextfieldDropdown]',\n})\nexport class TuiTextfieldDropdownDirective implements OnDestroy {\n private readonly directive = inject(TuiDropdownDirective);\n\n constructor() {\n this.directive.tuiDropdown = inject(TemplateRef);\n\n if (\n isPlatformBrowser(inject(PLATFORM_ID)) &&\n this.directive.el.matches(':focus-within')\n ) {\n this.directive.toggle(true);\n }\n }\n\n public ngOnDestroy(): void {\n this.directive.tuiDropdown = null;\n }\n}\n\n/**\n * @deprecated remove in v5\n */\n@Directive({\n standalone: true,\n})\nexport class TuiWithTextfieldDropdown {}\n","import {AsyncPipe, NgIf} from '@angular/common';\nimport {\n type AfterContentChecked,\n ChangeDetectionStrategy,\n Component,\n computed,\n ContentChild,\n ContentChildren,\n Directive,\n ElementRef,\n forwardRef,\n inject,\n Input,\n type QueryList,\n signal,\n ViewChild,\n ViewContainerRef,\n ViewEncapsulation,\n} from '@angular/core';\nimport {toSignal} from '@angular/core/rxjs-interop';\nimport {NgControl} from '@angular/forms';\nimport {WaResizeObserver} from '@ng-web-apis/resize-observer';\nimport {TuiControl} from '@taiga-ui/cdk/classes';\nimport {EMPTY_QUERY} from '@taiga-ui/cdk/constants';\nimport {TuiTransitioned} from '@taiga-ui/cdk/directives/transitioned';\nimport {tuiQueryListChanges} from '@taiga-ui/cdk/observables';\nimport {tuiInjectId} from '@taiga-ui/cdk/services';\nimport {type TuiContext} from '@taiga-ui/cdk/types';\nimport {tuiInjectElement, tuiValue} from '@taiga-ui/cdk/utils/dom';\nimport {tuiFocusedIn} from '@taiga-ui/cdk/utils/focus';\nimport {tuiPx} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TuiButton, tuiButtonOptionsProvider} from '@taiga-ui/core/components/button';\nimport {\n tuiAsDataListHost,\n type TuiDataListHost,\n TuiWithOptionContent,\n} from '@taiga-ui/core/components/data-list';\nimport {TuiLabel} from '@taiga-ui/core/components/label';\nimport {\n TuiDropdownDirective,\n TuiDropdownFixed,\n TuiDropdownOpen,\n tuiDropdownOpen,\n TuiWithDropdownOpen,\n} from '@taiga-ui/core/directives/dropdown';\nimport {TuiWithIcons} from '@taiga-ui/core/directives/icons';\nimport {TuiWithItemsHandlers} from '@taiga-ui/core/directives/items-handlers';\nimport {TUI_AUXILIARY, TUI_CLEAR_WORD, TUI_COMMON_ICONS} from '@taiga-ui/core/tokens';\nimport {type TuiSizeL, type TuiSizeS} from '@taiga-ui/core/types';\nimport {type PolymorpheusContent, PolymorpheusOutlet} from '@taiga-ui/polymorpheus';\nimport {ReplaySubject, startWith, switchMap, take} from 'rxjs';\n\nimport {TuiTextfieldBase} from './textfield.directive';\nimport {TUI_TEXTFIELD_OPTIONS} from './textfield.options';\nimport {TUI_TEXTFIELD_ACCESSOR, type TuiTextfieldAccessor} from './textfield-accessor';\nimport {TuiWithTextfieldDropdown} from './textfield-dropdown.directive';\n\n// TODO: Remove base class in v5\n@Directive()\nexport class TuiTextfieldBaseComponent<T>\n implements TuiDataListHost<T>, AfterContentChecked\n{\n // TODO: refactor to signal inputs after Angular update\n private readonly filler = signal('');\n private readonly autoId = tuiInjectId();\n private readonly focusedIn = tuiFocusedIn(tuiInjectElement());\n private readonly contentReady$ = new ReplaySubject<boolean>(1);\n private readonly inputQuery = signal<ElementRef<HTMLInputElement> | undefined>(\n undefined,\n );\n\n @ViewChild('ghost')\n protected readonly ghost?: ElementRef<HTMLElement>;\n\n @ContentChild(forwardRef(() => TuiLabel), {read: ElementRef})\n protected readonly label?: ElementRef<HTMLElement>;\n\n @ContentChildren(TUI_AUXILIARY, {descendants: true})\n protected readonly auxiliaryQuery: QueryList<object> = EMPTY_QUERY;\n\n // TODO: Added just to avoid breaking anything until we refactor to signal queries\n @ContentChild(forwardRef(() => TuiTextfieldBase), {read: ElementRef})\n // eslint-disable-next-line @typescript-eslint/naming-convention\n protected readonly _input?: ElementRef<HTMLInputElement>;\n\n protected readonly open = tuiDropdownOpen();\n protected readonly dropdown = inject(TuiDropdownDirective);\n protected readonly dropdownOpen = inject(TuiDropdownOpen);\n\n protected readonly icons = inject(TUI_COMMON_ICONS);\n protected readonly clear = toSignal(inject(TUI_CLEAR_WORD));\n\n protected readonly computedFiller = computed((value = this.value()) => {\n const filler = value + this.filler().slice(value.length);\n\n return filler.length > value.length ? filler : '';\n });\n\n protected readonly showFiller = computed<boolean>(\n () =>\n this.focused() &&\n !!this.computedFiller() &&\n (!!this.value() || !this.input?.nativeElement.placeholder),\n );\n\n @ViewChild('vcr', {read: ViewContainerRef, static: true})\n public readonly vcr?: ViewContainerRef;\n\n @ContentChild(TUI_TEXTFIELD_ACCESSOR, {descendants: true})\n public readonly accessor?: TuiTextfieldAccessor<T>;\n\n @ContentChild(NgControl)\n public readonly control?: NgControl;\n\n @ContentChild(TuiControl)\n public readonly cva?: TuiControl<unknown>;\n\n // TODO: Replace with signal query when Angular is updated v5\n @ContentChild(forwardRef(() => TuiTextfieldBase), {\n read: ElementRef,\n static: true,\n })\n public readonly input?: ElementRef<HTMLInputElement>;\n\n @Input()\n public content: PolymorpheusContent<TuiContext<T>>;\n\n public readonly focused = computed(() => this.open() || this.focusedIn());\n public readonly options = inject(TUI_TEXTFIELD_OPTIONS);\n public readonly el = tuiInjectElement();\n public readonly value = tuiValue(this.inputQuery);\n\n // TODO: Refactor to signal queries when Angular is updated\n public readonly auxiliaries = toSignal<readonly object[]>(\n this.contentReady$.pipe(\n take(1),\n switchMap(() => tuiQueryListChanges(this.auxiliaryQuery)),\n startWith([]),\n ),\n {requireSync: true},\n );\n\n @Input('filler')\n public set fillerSetter(filler: string) {\n this.filler.set(filler);\n }\n\n public get id(): string {\n return this.input?.nativeElement.id || this.autoId;\n }\n\n public get size(): TuiSizeL | TuiSizeS {\n return this.options.size();\n }\n\n public get disabled(): boolean {\n return (\n this.cva?.disabled() ??\n this.control?.disabled ??\n this.input?.nativeElement?.disabled ??\n false\n );\n }\n\n public ngAfterContentChecked(): void {\n this.contentReady$.next(true);\n this.inputQuery.set(this._input);\n }\n\n public handleOption(option: T): void {\n this.accessor?.setValue(option);\n this.open.set(false);\n }\n\n protected get hasLabel(): boolean {\n return Boolean(this.label?.nativeElement?.childNodes.length);\n }\n\n protected onResize({contentRect}: ResizeObserverEntry): void {\n this.el.style.setProperty('--t-side', tuiPx(contentRect.width));\n }\n\n // Click on ::before,::after pseudo-elements ([iconStart] / [iconEnd])\n protected onIconClick(): void {\n this.input?.nativeElement.focus();\n\n if (\n !this.dropdownOpen.tuiDropdownEnabled ||\n this.input?.nativeElement.matches('input:read-only,textarea:read-only')\n ) {\n return;\n }\n\n this.open.update((open) => !open);\n\n try {\n this.input?.nativeElement.showPicker?.();\n } catch {\n // Empty catch block - silently ignore showPicker errors\n }\n }\n\n protected onScroll(element: HTMLElement): void {\n if (this.input?.nativeElement === element) {\n this.ghost?.nativeElement.scrollTo({\n left: this.input.nativeElement.scrollLeft,\n });\n }\n }\n}\n\n@Component({\n standalone: true,\n selector: 'tui-textfield:not([multi])',\n imports: [AsyncPipe, NgIf, PolymorpheusOutlet, TuiButton, WaResizeObserver],\n templateUrl: './textfield.template.html',\n styles: ['@import \"@taiga-ui/core/styles/components/textfield.less\";'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n tuiButtonOptionsProvider({size: 'xs', appearance: 'icon'}),\n tuiAsDataListHost(TuiTextfieldComponent),\n ],\n hostDirectives: [\n TuiDropdownDirective,\n TuiDropdownFixed,\n TuiTransitioned,\n TuiWithDropdownOpen,\n TuiWithIcons,\n TuiWithItemsHandlers,\n TuiWithOptionContent,\n TuiWithTextfieldDropdown,\n ],\n host: {\n '[attr.data-size]': 'options.size()',\n '[class._with-label]': 'hasLabel',\n '[class._with-template]': 'content && control?.value != null',\n '[class._disabled]': 'disabled',\n '(click.self.prevent)': '0',\n '(pointerdown.self.prevent)': 'onIconClick()',\n '(scroll.capture.zoneless)': 'onScroll($event.target)',\n '(tuiActiveZoneChange)': '!$event && cva?.onTouched()',\n },\n})\nexport class TuiTextfieldComponent<T> extends TuiTextfieldBaseComponent<T> {}\n","<ng-container *ngIf=\"control?.control?.valueChanges | async\" />\n<ng-content select=\"input\" />\n<ng-content select=\"select\" />\n<ng-content select=\"textarea\" />\n<ng-content select=\"label\" />\n<span\n class=\"t-content\"\n (click)=\"input?.nativeElement?.focus()\"\n (pointerdown.zoneless.prevent)=\"(0)\"\n (waResizeObserver)=\"$event[0] && onResize($event[0])\"\n>\n <ng-content />\n <button\n *ngIf=\"options.cleaner()\"\n appearance=\"icon\"\n size=\"xs\"\n tabindex=\"-1\"\n tuiIconButton\n type=\"button\"\n class=\"t-clear\"\n [iconStart]=\"icons.close\"\n (click)=\"accessor?.setValue(null)\"\n >\n {{ clear() }}\n </button>\n <ng-container #vcr />\n <ng-content select=\"tui-icon\" />\n</span>\n<span\n *ngIf=\"control?.value != null\"\n class=\"t-template\"\n>\n <ng-container *polymorpheusOutlet=\"content as text; context: {$implicit: control?.value}\">\n {{ text }}\n </ng-container>\n</span>\n<input\n *ngIf=\"showFiller()\"\n #ghost\n aria-hidden=\"true\"\n disabled\n class=\"t-filler\"\n [value]=\"computedFiller()\"\n/>\n","import {computed, Directive, inject, Input, type OnChanges, signal} from '@angular/core';\nimport {NgControl} from '@angular/forms';\nimport {TuiNativeValidator} from '@taiga-ui/cdk/directives/native-validator';\nimport {tuiInjectElement, tuiValue} from '@taiga-ui/cdk/utils/dom';\nimport {tuiProvide} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {\n TuiAppearance,\n tuiAppearance,\n tuiAppearanceFocus,\n tuiAppearanceMode,\n tuiAppearanceState,\n} from '@taiga-ui/core/directives/appearance';\nimport {\n TUI_ITEMS_HANDLERS,\n type TuiItemsHandlers,\n} from '@taiga-ui/core/directives/items-handlers';\nimport {type TuiInteractiveState} from '@taiga-ui/core/types';\n\nimport {TuiTextfieldComponent} from './textfield.component';\nimport {TUI_TEXTFIELD_OPTIONS} from './textfield.options';\nimport {tuiAsTextfieldAccessor, type TuiTextfieldAccessor} from './textfield-accessor';\n\n// TODO: Drop in v5 after updated Angular and hostDirectives inherit\n@Directive({\n standalone: true,\n providers: [tuiAsTextfieldAccessor(TuiTextfieldBase)],\n host: {\n tuiTextfield: '',\n '[id]': 'textfield.id',\n '[readOnly]': 'readOnly',\n '[class._empty]': 'value() === \"\"',\n '(input)': '0',\n '(focusin)': '0',\n '(focusout)': '0',\n },\n})\nexport class TuiTextfieldBase<T> implements OnChanges, TuiTextfieldAccessor<T> {\n // TODO: refactor to signal inputs after Angular update\n private readonly focused = signal<boolean | null>(null);\n\n protected readonly control = inject(NgControl, {optional: true});\n protected readonly a = tuiAppearance(inject(TUI_TEXTFIELD_OPTIONS).appearance, {});\n protected readonly s = tuiAppearanceState(null, {});\n protected readonly m = tuiAppearanceMode(this.mode, {});\n protected readonly f = tuiAppearanceFocus(\n computed(() => this.focused() ?? this.textfield.focused()),\n {},\n );\n\n protected readonly el = tuiInjectElement<HTMLInputElement>();\n protected readonly handlers: TuiItemsHandlers<T> = inject(TUI_ITEMS_HANDLERS);\n protected readonly textfield: TuiTextfieldComponent<T> =\n inject(TuiTextfieldComponent);\n\n @Input()\n public readOnly = false;\n\n @Input()\n public invalid: boolean | null = null;\n\n public readonly value = tuiValue(this.el);\n\n @Input('focused')\n public set focusedSetter(focused: boolean | null) {\n this.focused.set(focused);\n }\n\n @Input('state')\n public set stateSetter(state: TuiInteractiveState | null) {\n this.s.set(state);\n }\n\n public get mode(): string | null {\n if (this.readOnly) {\n return 'readonly';\n }\n\n if (this.invalid === false) {\n return 'valid';\n }\n\n if (this.invalid) {\n return 'invalid';\n }\n\n return null;\n }\n\n // TODO: refactor to signal inputs after Angular update\n public ngOnChanges(): void {\n this.m.set(this.mode);\n }\n\n public setValue(value: T | null): void {\n this.el.focus();\n this.el.select();\n\n if (value == null) {\n this.el.ownerDocument.execCommand('delete');\n\n // see https://github.com/taiga-family/taiga-ui/issues/11634\n // ensure non-erasable affixes actually deleted\n this.el.value = '';\n } else {\n this.el.ownerDocument.execCommand(\n 'insertText',\n false,\n this.handlers.stringify()(value),\n );\n }\n }\n}\n\n@Directive({\n standalone: true,\n // TODO: Remove :not in v.5\n selector:\n 'input[tuiTextfield]:not([tuiInputCard]):not([tuiInputExpire]):not([tuiInputCVC])',\n providers: [\n tuiAsTextfieldAccessor(TuiTextfieldDirective),\n tuiProvide(TuiTextfieldBase, TuiTextfieldDirective),\n ],\n hostDirectives: [TuiNativeValidator, TuiAppearance],\n})\nexport class TuiTextfieldDirective<T> extends TuiTextfieldBase<T> {}\n\n@Directive({\n standalone: true,\n hostDirectives: [\n {\n directive: TuiTextfieldDirective,\n inputs: ['invalid', 'focused', 'readOnly', 'state'],\n },\n ],\n})\nexport class TuiWithTextfield {}\n","import {DOCUMENT, NgFor, NgIf} from '@angular/common';\nimport {ChangeDetectionStrategy, Component, inject, Input} from '@angular/core';\nimport {WA_NAVIGATOR} from '@ng-web-apis/common';\nimport {TuiNativeValidator} from '@taiga-ui/cdk/directives/native-validator';\nimport {TuiAppearance} from '@taiga-ui/core/directives/appearance';\n\nimport {TuiTextfieldBase} from './textfield.directive';\nimport {tuiAsTextfieldAccessor} from './textfield-accessor';\n\n/**\n * @deprecated use {@link TuiSelect} from @taiga-ui/kit instead, drop in v5\n */\n@Component({\n standalone: true,\n selector: 'select[tuiTextfield]',\n imports: [NgFor, NgIf],\n templateUrl: './select.template.html',\n // We want this template to follow change detection to parent textfield.\n // eslint-disable-next-line @angular-eslint/prefer-on-push-component-change-detection\n changeDetection: ChangeDetectionStrategy.Default,\n providers: [tuiAsTextfieldAccessor(TuiSelect)],\n hostDirectives: [TuiNativeValidator, TuiAppearance],\n host: {\n '[id]': 'textfield.id',\n '[class._empty]': 'stringified === \"\"',\n '[attr.aria-label]': 'ariaLabel',\n '(input)': '0',\n '(focusin)': '0',\n '(focusout)': '0',\n '(keydown.space.prevent)': '0',\n '(keydown.enter.prevent)': '0',\n '(keydown.backspace)': 'setValue(\"\")',\n '(mousedown.prevent)': 'focus()',\n '(keydown.control.c)': 'onCopy()',\n '(keydown.meta.c)': 'onCopy()',\n },\n})\nexport class TuiSelect<T> extends TuiTextfieldBase<T> {\n private readonly nav = inject(WA_NAVIGATOR);\n private readonly doc = inject(DOCUMENT);\n\n @Input()\n public placeholder = '';\n\n public override setValue(value: T): void {\n this.control?.control?.setValue(value);\n this.el.dispatchEvent(new Event('input', {bubbles: true}));\n }\n\n public focus(): void {\n this.el.classList.add('_ios-fix');\n this.el.focus();\n this.el.classList.remove('_ios-fix');\n }\n\n protected get ariaLabel(): string | null {\n return this.doc.querySelector(`label[for=\"${this.el.id}\"]`)\n ? null\n : this.el.getAttribute('aria-label') || this.placeholder;\n }\n\n protected get stringified(): string {\n return this.handlers.stringify()(this.control?.value ?? '');\n }\n\n protected async onCopy(): Promise<void> {\n await this.nav.clipboard.writeText(this.stringified);\n }\n}\n","<option\n *ngIf=\"placeholder && !stringified; else selected\"\n disabled\n selected\n value=\"\"\n>\n {{ placeholder }}\n</option>\n<ng-template #selected>\n <option\n *ngFor=\"let item of [stringified]\"\n selected\n [value]=\"item\"\n >\n {{ item }}\n </option>\n</ng-template>\n","import {ChangeDetectionStrategy, Component, inject} from '@angular/core';\nimport {type TuiContext} from '@taiga-ui/cdk/types';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {TUI_ITEMS_HANDLERS} from '@taiga-ui/core/directives/items-handlers';\nimport {\n injectContext,\n type PolymorpheusContent,\n PolymorpheusOutlet,\n} from '@taiga-ui/polymorpheus';\n\nimport {TuiTextfieldMultiComponent} from './textfield-multi.component';\n\nexport interface TuiTextfieldItem<T> {\n readonly item: T;\n readonly index: number;\n}\n\n/*\n * Internal wrapper for polymorpheus-context\n */\n@Component({\n standalone: true,\n selector: 'tui-textfield-item',\n imports: [PolymorpheusOutlet],\n template:\n '<ng-container *polymorpheusOutlet=\"content as text; context: context\">{{ text }}</ng-container>',\n styleUrls: ['./textfield-item.style.less'],\n // TODO: Set to OnPush in v5 when textfield.item becomes a signal\n // eslint-disable-next-line @angular-eslint/prefer-on-push-component-change-detection\n changeDetection: ChangeDetectionStrategy.Default,\n host: {\n '[class._string]': '!textfield.item',\n '[class._disabled]': 'handlers.disabledItemHandler()(context.$implicit.item)',\n '(pointerdown.self)': 'prevent($event)',\n '(keydown.arrowLeft.prevent)': 'el.previousElementSibling?.firstChild?.focus()',\n '(keydown.arrowRight.prevent)': 'el.nextElementSibling?.firstChild?.focus()',\n },\n})\nexport class TuiTextfieldItemComponent<T> {\n protected readonly el = tuiInjectElement();\n protected readonly handlers = inject(TUI_ITEMS_HANDLERS);\n protected readonly context = injectContext<TuiContext<TuiTextfieldItem<T>>>();\n protected readonly textfield: TuiTextfieldMultiComponent<T> = inject(\n TuiTextfieldMultiComponent,\n );\n\n protected get content(): PolymorpheusContent<TuiContext<TuiTextfieldItem<T>>> {\n return (\n this.textfield.item ?? this.handlers.stringify()(this.context.$implicit.item)\n );\n }\n\n protected prevent(e: Event): void {\n this.textfield.focused() && e.preventDefault();\n }\n}\n","import {AsyncPipe, NgForOf, NgIf} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n ElementRef,\n inject,\n Input,\n signal,\n TemplateRef,\n ViewEncapsulation,\n} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {WaResizeObserver} from '@ng-web-apis/resize-observer';\nimport {TuiItem} from '@taiga-ui/cdk/directives/item';\nimport {tuiZonefree} from '@taiga-ui/cdk/observables';\nimport {type TuiContext} from '@taiga-ui/cdk/types';\nimport {tuiIsElement} from '@taiga-ui/cdk/utils/dom';\nimport {tuiArrayToggle, tuiProvide, tuiPx} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TuiButton, tuiButtonOptionsProvider} from '@taiga-ui/core/components/button';\nimport {\n tuiAsDataListHost,\n TuiWithOptionContent,\n} from '@taiga-ui/core/components/data-list';\nimport {TuiScrollControls} from '@taiga-ui/core/components/scrollbar';\nimport {\n TUI_ITEMS_HANDLERS,\n TuiWithAppearance,\n TuiWithItemsHandlers,\n} from '@taiga-ui/core/directives';\nimport {\n TuiDropdownDirective,\n TuiDropdownFixed,\n TuiWithDropdownOpen,\n} from '@taiga-ui/core/directives/dropdown';\nimport {TuiWithIcons} from '@taiga-ui/core/directives/icons';\nimport {TUI_SCROLL_REF} from '@taiga-ui/core/tokens';\nimport {\n PolymorpheusComponent,\n type PolymorpheusContent,\n PolymorpheusOutlet,\n} from '@taiga-ui/polymorpheus';\nimport {filter, fromEvent} from 'rxjs';\n\nimport {TuiTextfieldBaseComponent, TuiTextfieldComponent} from '../textfield.component';\nimport {TuiWithTextfieldDropdown} from '../textfield-dropdown.directive';\nimport {\n type TuiTextfieldItem,\n TuiTextfieldItemComponent,\n} from './textfield-item.component';\nimport {WA_WINDOW} from '@ng-web-apis/common';\n\n@Component({\n standalone: true,\n selector: 'tui-textfield[multi]',\n imports: [\n AsyncPipe,\n NgForOf,\n NgIf,\n PolymorpheusOutlet,\n TuiButton,\n TuiScrollControls,\n WaResizeObserver,\n ],\n templateUrl: './textfield-multi.template.html',\n styleUrls: ['./textfield-multi.style.less'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n tuiButtonOptionsProvider({size: 'xs', appearance: 'icon'}),\n tuiAsDataListHost(TuiTextfieldMultiComponent),\n tuiProvide(TuiTextfieldComponent, TuiTextfieldMultiComponent),\n tuiProvide(TUI_SCROLL_REF, ElementRef),\n ],\n hostDirectives: [\n TuiDropdownFixed,\n TuiDropdownDirective,\n TuiWithDropdownOpen,\n TuiWithTextfieldDropdown,\n TuiWithIcons,\n TuiWithItemsHandlers,\n TuiWithOptionContent,\n TuiWithAppearance,\n ],\n host: {\n class: 'tui-interactive',\n '[attr.data-state]': 'disabled ? \"disabled\" : null',\n '[class._empty]': '!control?.value?.length',\n '[style.--t-item-height.px]': 'height()',\n '[style.--t-rows]': 'rows',\n '(click.prevent)': 'onClick($event.target)',\n '(tuiActiveZoneChange)':\n '!$event && (el.scrollTo({left: 0}) || cva?.onTouched())',\n // TODO: Remove in v5\n '[attr.data-size]': 'options.size()',\n '[class._with-label]': 'hasLabel',\n '[class._with-template]': 'content && control?.value != null',\n '[class._disabled]': 'disabled',\n '(pointerdown.self.prevent)': 'onIconClick()',\n '(scroll.capture.zoneless)': 'onScroll($event.target)',\n },\n})\nexport class TuiTextfieldMultiComponent<T> extends TuiTextfieldBaseComponent<T> {\n protected readonly height = signal<number | null>(null);\n protected readonly win = inject(WA_WINDOW);\n protected readonly handlers = inject(TUI_ITEMS_HANDLERS);\n protected readonly component: PolymorpheusContent<TuiContext<TuiTextfieldItem<T>>> =\n new PolymorpheusComponent(TuiTextfieldItemComponent);\n\n protected readonly sub = fromEvent(this.el, 'scroll')\n .pipe(\n filter(() => this.rows === 1),\n tuiZonefree(),\n takeUntilDestroyed(),\n )\n .subscribe(() => {\n this.el.style.setProperty('--t-scroll', tuiPx(-1 * this.el.scrollLeft));\n });\n\n @ContentChild(TuiItem, {read: TemplateRef, descendants: true})\n public readonly item?: TemplateRef<unknown>;\n\n @Input()\n public rows = 100;\n\n public override handleOption(option: T): void {\n this.accessor?.setValue(\n tuiArrayToggle(\n this.control?.value ?? [],\n option,\n this.handlers.identityMatcher(),\n ),\n );\n }\n\n protected get placeholder(): string {\n const placeholder = this.input?.nativeElement.matches('input')\n ? this.input.nativeElement.placeholder\n : this.computedFiller();\n const value = this.computedFiller() || this.value();\n const longer = value.length > placeholder.length ? value : placeholder;\n\n return this.focused() ? longer : '';\n }\n\n protected onItems({target}: ResizeObserverEntry): void {\n const height =\n this.rows > 1 && this.control?.value?.length\n ? (target.querySelector('tui-textfield-item')?.clientHeight ?? 0)\n : null;\n\n if (height !== 0) {\n this.height.set(height);\n }\n }\n\n protected onLeft(event: any): void {\n if (this.value() || !tuiIsElement(event.currentTarget)) {\n return;\n }\n\n event.preventDefault();\n event.currentTarget.previousElementSibling?.firstElementChild?.focus();\n }\n\n protected focusInput(): void {\n const selection = this.win.getSelection();\n\n if (!selection?.rangeCount || selection.getRangeAt(0)?.collapsed) {\n this.input?.nativeElement.focus();\n }\n }\n\n protected onClick(target: HTMLElement): void {\n if (\n target === this.el ||\n !this.cva?.interactive() ||\n (!this.el.matches('[tuiChevron]') &&\n !this.el.querySelector('select, [tuiInputDateMulti]')) ||\n target.matches('input:read-only,input[inputmode=\"none\"]')\n ) {\n return;\n }\n\n this.open.update((open) => !open);\n\n try {\n this.input?.nativeElement.showPicker?.();\n } catch {\n // Empty catch block - silently ignore showPicker errors\n }\n }\n}\n","<ng-container *ngIf=\"control?.control?.valueChanges | async\" />\n<tui-scroll-controls\n *ngIf=\"rows > 1\"\n class=\"t-scrollbar\"\n/>\n\n<div\n class=\"t-items\"\n [class.t-items_horizontal]=\"rows === 1\"\n (click)=\"focusInput()\"\n (pointerdown.self.zoneless.prevent)=\"(0)\"\n (waResizeObserver)=\"$event[0] && onItems($event[0])\"\n>\n <ng-content select=\"label\" />\n <ng-template\n *ngFor=\"let item of control?.value; let index = index\"\n [polymorpheusOutlet]=\"component\"\n [polymorpheusOutletContext]=\"{$implicit: {item, index}}\"\n />\n <span\n class=\"t-input\"\n (keydown.arrowLeft)=\"onLeft($event)\"\n >\n <ng-content select=\"input\" />\n <ng-content select=\"select\" />\n <span class=\"t-ghost\">{{ placeholder }}</span>\n <input\n aria-hidden=\"true\"\n disabled\n class=\"t-filler\"\n [class.t-filler_hidden]=\"!showFiller()\"\n [value]=\"computedFiller()\"\n />\n </span>\n</div>\n\n<span\n class=\"t-content\"\n (click)=\"input?.nativeElement?.focus()\"\n (pointerdown.zoneless.prevent)=\"(0)\"\n (waResizeObserver)=\"$event[0] && onResize($event[0])\"\n>\n <ng-content />\n <button\n *ngIf=\"options.cleaner()\"\n appearance=\"icon\"\n size=\"xs\"\n tabindex=\"-1\"\n tuiIconButton\n type=\"button\"\n class=\"t-clear\"\n [iconStart]=\"icons.close\"\n (click)=\"accessor?.setValue([])\"\n >\n {{ clear() }}\n </button>\n <ng-container #vcr />\n <ng-content select=\"tui-icon\" />\n</span>\n\n<span\n *ngIf=\"control?.value != null\"\n class=\"t-template\"\n>\n <ng-container *polymorpheusOutlet=\"content as text; context: {$implicit: control?.value}\">\n {{ text }}\n </ng-container>\n</span>\n","import {TuiItem} from '@taiga-ui/cdk/directives/item';\nimport {TuiLabel} from '@taiga-ui/core/components/label';\n\nimport {TuiSelect} from './select.directive';\nimport {TuiTextfieldComponent} from './textfield.component';\nimport {TuiTextfieldDirective} from './textfield.directive';\nimport {TuiTextfieldOptionsDirective} from './textfield.options';\nimport {TuiTextfieldDropdownDirective} from './textfield-dropdown.directive';\nimport {TuiTextfieldMultiComponent} from './textfield-multi/textfield-multi.component';\n\nexport const TuiTextfield = [\n TuiItem,\n TuiLabel,\n TuiSelect,\n TuiTextfieldComponent,\n TuiTextfieldDirective,\n TuiTextfieldOptionsDirective,\n TuiTextfieldDropdownDirective,\n TuiTextfieldMultiComponent,\n] as const;\n","import {computed, inject, type Signal} from '@angular/core';\n\nimport {TuiTextfieldComponent} from './textfield.component';\n\nexport function tuiInjectAuxiliary<T>(\n predicate: (auxiliary: any, index: number) => boolean,\n): Signal<T | null> {\n const {auxiliaries} = inject(TuiTextfieldComponent);\n\n return computed(() => (auxiliaries().find(predicate) ?? null) as T | null);\n}\n","import {Directive, type DoCheck, inject, TemplateRef} from '@angular/core';\n\nimport {TuiTextfieldComponent} from './textfield.component';\n\n@Directive({\n standalone: true,\n selector: 'ng-template[tuiTextfieldContent]',\n})\nexport class TuiTextfieldContent implements DoCheck {\n private readonly ref = inject(TuiTextfieldComponent).vcr?.createEmbeddedView(\n inject(TemplateRef),\n );\n\n public ngDoCheck(): void {\n this.ref?.detectChanges();\n }\n}\n","import {computed, inject, type ProviderToken, type Signal} from '@angular/core';\nimport {type TuiHandler} from '@taiga-ui/cdk/types';\nimport {tuiDirectiveBinding} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TuiIcons} from '@taiga-ui/core/directives/icons';\nimport {type TuiSizeL, type TuiSizeS} from '@taiga-ui/core/types';\n\nimport {TUI_TEXTFIELD_OPTIONS} from './textfield.options';\n\nexport function tuiTextfieldIconBinding(\n token: ProviderToken<{icon: TuiHandler<TuiSizeL | TuiSizeS, string>}>,\n): Signal<string> {\n const textfield = inject(TUI_TEXTFIELD_OPTIONS);\n const options = inject(token);\n\n return tuiDirectiveBinding(\n TuiIcons,\n 'iconEnd',\n computed(() => options.icon(textfield.size())),\n {},\n );\n}\n","import {Directive} from '@angular/core';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\n\n/**\n * Use it instead of host binding\n * host: { '[type]': '\"text\"' }\n * ___\n * From Angular 19+ all effects are called before host bindings.\n * If effects inside `tuiValue` will be called before `<input />` get `type=\"text\"`,\n * it will cause loss of initial value\n */\n@Directive({standalone: true})\nexport class TuiWithNativePicker {\n constructor() {\n tuiInjectElement<HTMLInputElement>().type = 'text';\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i6.TuiWithTextfieldDropdown","i1","i2","TUI_ITEMS_HANDLERS","TuiWithItemsHandlers"],"mappings":"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"}
@@ -25,7 +25,7 @@ import { TUI_IS_TOUCH, TUI_RANGE } from '@taiga-ui/cdk/tokens';
25
25
  import { shouldCall } from '@taiga-ui/event-plugins';
26
26
  import * as i1$1 from '@taiga-ui/cdk/directives/obscured';
27
27
  import { TuiObscured } from '@taiga-ui/cdk/directives/obscured';
28
- import { tuiIsNativeKeyboardFocusable, tuiGetClosestFocusable, tuiIsNativeFocusedIn, tuiGetNativeFocused } from '@taiga-ui/cdk/utils/focus';
28
+ import { tuiIsNativeKeyboardFocusable, tuiGetClosestFocusable, tuiIsNativeFocusedIn, tuiGetFocused } from '@taiga-ui/cdk/utils/focus';
29
29
  import { tuiIsEditingKey, tuiOverrideOptions as tuiOverrideOptions$1 } from '@taiga-ui/core/utils/miscellaneous';
30
30
 
31
31
  class TuiDropdownDriver extends BehaviorSubject {
@@ -259,7 +259,9 @@ class TuiDropdownDirective {
259
259
  this._content.set(x);
260
260
  }
261
261
  ngAfterViewChecked() {
262
- this.refresh$.next();
262
+ if (this.ref()) {
263
+ this.refresh$.next();
264
+ }
263
265
  }
264
266
  ngOnDestroy() {
265
267
  this.toggle(false);
@@ -822,13 +824,20 @@ class TuiDropdownSelection extends TuiDriver {
822
824
  inject(TUI_SELECTION_STREAM).pipe(map(() => this.getRange()), filter((range) => this.isValid(range)), distinctUntilChanged((x, y) => x.startOffset === y.startOffset &&
823
825
  x.endOffset === y.endOffset &&
824
826
  x.commonAncestorContainer === y.commonAncestorContainer)),
825
- ]).pipe(map(([handler, range]) => {
826
- const contained = this.el.contains(range.commonAncestorContainer);
827
+ merge(fromEvent(this.el, 'scroll', { passive: true, capture: true })).pipe(throttleTime(16, undefined, { leading: false, trailing: true }), startWith(0)),
828
+ ]).pipe(tap(([, range]) => {
827
829
  this.range =
828
- contained && tuiIsTextNode(range.commonAncestorContainer)
830
+ this.el.contains(range.commonAncestorContainer) &&
831
+ tuiIsTextNode(range.commonAncestorContainer)
829
832
  ? range
830
833
  : this.range;
831
- return (contained && handler(this.range)) || this.inDropdown(range);
834
+ }), map(([handler, range]) => {
835
+ const contained = this.el.contains(range.commonAncestorContainer);
836
+ const valid = contained && handler(this.range);
837
+ const visible = valid || this.inDropdown(range);
838
+ const active = tuiGetFocused(this.doc);
839
+ const textfield = active && tuiIsTextfield(active) && this.el.contains(active);
840
+ return visible && textfield ? this.isCaretVisible(this.range) : visible;
832
841
  }));
833
842
  this.range = inject(TUI_RANGE);
834
843
  this.position = 'selection';
@@ -865,7 +874,7 @@ class TuiDropdownSelection extends TuiDriver {
865
874
  return this.el.querySelector('tui-textfield .t-ghost') || this.el;
866
875
  }
867
876
  getRange() {
868
- const active = tuiGetNativeFocused(this.doc);
877
+ const active = tuiGetFocused(this.doc);
869
878
  const selection = this.doc.getSelection();
870
879
  const range = active && tuiIsTextfield(active) && this.el.contains(active)
871
880
  ? this.veryVerySadInputFix(active)
@@ -931,6 +940,18 @@ class TuiDropdownSelection extends TuiDriver {
931
940
  this.ghost = ghost;
932
941
  return ghost;
933
942
  }
943
+ isCaretVisible(range) {
944
+ const caret = range.getBoundingClientRect();
945
+ const host = this.ghostHost.getBoundingClientRect();
946
+ const styles = getComputedStyle(this.ghostHost);
947
+ const fontSize = parseFloat(styles.fontSize) || 16;
948
+ const lineHeight = parseFloat(styles.lineHeight) || fontSize * 1.2;
949
+ const visibleTop = Math.max(caret.top, host.top);
950
+ const visibleBottom = Math.min(caret.bottom, host.bottom);
951
+ const visibleHeight = Math.max(0, visibleBottom - visibleTop);
952
+ const threshold = lineHeight * 0.5;
953
+ return visibleHeight >= threshold;
954
+ }
934
955
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiDropdownSelection, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
935
956
  static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: TuiDropdownSelection, isStandalone: true, selector: "[tuiDropdownSelection]", inputs: { position: ["tuiDropdownSelectionPosition", "position"], tuiDropdownSelection: "tuiDropdownSelection" }, providers: [
936
957
  tuiAsDriver(TuiDropdownSelection),