@taiga-ui/core 5.0.0-canary.b049509 → 5.0.0-canary.c343ecb

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 (60) hide show
  1. package/fesm2022/taiga-ui-core-classes.mjs +3 -3
  2. package/fesm2022/taiga-ui-core-components-button.mjs +6 -6
  3. package/fesm2022/taiga-ui-core-components-calendar.mjs +23 -33
  4. package/fesm2022/taiga-ui-core-components-calendar.mjs.map +1 -1
  5. package/fesm2022/taiga-ui-core-components-cell.mjs +7 -7
  6. package/fesm2022/taiga-ui-core-components-cell.mjs.map +1 -1
  7. package/fesm2022/taiga-ui-core-components-data-list.mjs +17 -17
  8. package/fesm2022/taiga-ui-core-components-data-list.mjs.map +1 -1
  9. package/fesm2022/taiga-ui-core-components-error.mjs +10 -12
  10. package/fesm2022/taiga-ui-core-components-error.mjs.map +1 -1
  11. package/fesm2022/taiga-ui-core-components-expand.mjs +3 -3
  12. package/fesm2022/taiga-ui-core-components-icon.mjs +8 -12
  13. package/fesm2022/taiga-ui-core-components-icon.mjs.map +1 -1
  14. package/fesm2022/taiga-ui-core-components-input.mjs +6 -6
  15. package/fesm2022/taiga-ui-core-components-label.mjs +6 -6
  16. package/fesm2022/taiga-ui-core-components-link.mjs +6 -6
  17. package/fesm2022/taiga-ui-core-components-loader.mjs +3 -3
  18. package/fesm2022/taiga-ui-core-components-notification.mjs +17 -19
  19. package/fesm2022/taiga-ui-core-components-notification.mjs.map +1 -1
  20. package/fesm2022/taiga-ui-core-components-root.mjs +3 -3
  21. package/fesm2022/taiga-ui-core-components-scrollbar.mjs +24 -30
  22. package/fesm2022/taiga-ui-core-components-scrollbar.mjs.map +1 -1
  23. package/fesm2022/taiga-ui-core-components-spin-button.mjs +3 -3
  24. package/fesm2022/taiga-ui-core-components-textfield.mjs +22 -24
  25. package/fesm2022/taiga-ui-core-components-textfield.mjs.map +1 -1
  26. package/fesm2022/taiga-ui-core-components-title.mjs +6 -6
  27. package/fesm2022/taiga-ui-core-directives-appearance.mjs +12 -16
  28. package/fesm2022/taiga-ui-core-directives-appearance.mjs.map +1 -1
  29. package/fesm2022/taiga-ui-core-directives-button-x.mjs +3 -3
  30. package/fesm2022/taiga-ui-core-directives-date-format.mjs +3 -3
  31. package/fesm2022/taiga-ui-core-directives-group.mjs +6 -6
  32. package/fesm2022/taiga-ui-core-directives-icons.mjs +9 -9
  33. package/fesm2022/taiga-ui-core-directives-items-handlers.mjs +12 -18
  34. package/fesm2022/taiga-ui-core-directives-items-handlers.mjs.map +1 -1
  35. package/fesm2022/taiga-ui-core-directives-number-format.mjs +3 -3
  36. package/fesm2022/taiga-ui-core-pipes-format-number.mjs +3 -3
  37. package/fesm2022/taiga-ui-core-portals-alert.mjs +9 -9
  38. package/fesm2022/taiga-ui-core-portals-dialog.mjs +13 -15
  39. package/fesm2022/taiga-ui-core-portals-dialog.mjs.map +1 -1
  40. package/fesm2022/taiga-ui-core-portals-dropdown.mjs +57 -69
  41. package/fesm2022/taiga-ui-core-portals-dropdown.mjs.map +1 -1
  42. package/fesm2022/taiga-ui-core-portals-hint.mjs +40 -48
  43. package/fesm2022/taiga-ui-core-portals-hint.mjs.map +1 -1
  44. package/fesm2022/taiga-ui-core-portals-modal.mjs +6 -6
  45. package/fesm2022/taiga-ui-core-portals-popup.mjs +11 -15
  46. package/fesm2022/taiga-ui-core-portals-popup.mjs.map +1 -1
  47. package/fesm2022/taiga-ui-core-services.mjs +7 -9
  48. package/fesm2022/taiga-ui-core-services.mjs.map +1 -1
  49. package/fesm2022/taiga-ui-core-tokens.mjs +16 -32
  50. package/fesm2022/taiga-ui-core-tokens.mjs.map +1 -1
  51. package/package.json +50 -50
  52. package/styles/components/appearance.less +1 -0
  53. package/styles/components/notification.less +1 -1
  54. package/styles/mixins/slider.less +12 -15
  55. package/styles/mixins/slider.scss +12 -17
  56. package/styles/theme/appearance/action.less +0 -14
  57. package/styles/theme/appearance/floating.less +5 -0
  58. package/tokens/i18n.d.ts +4 -0
  59. package/tokens/index.d.ts +0 -1
  60. package/tokens/theme.d.ts +0 -2
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-core-components-scrollbar.mjs","sources":["../../../projects/core/components/scrollbar/scroll-ref.directive.ts","../../../projects/core/components/scrollbar/scrollbar.service.ts","../../../projects/core/components/scrollbar/scrollbar.directive.ts","../../../projects/core/components/scrollbar/scrollbar.options.ts","../../../projects/core/components/scrollbar/scroll-controls.component.ts","../../../projects/core/components/scrollbar/scroll-controls.template.html","../../../projects/core/components/scrollbar/scrollbar.component.ts","../../../projects/core/components/scrollbar/scrollbar.template.html","../../../projects/core/components/scrollbar/scroll-into-view.directive.ts","../../../projects/core/components/scrollbar/scrollable.directive.ts","../../../projects/core/components/scrollbar/taiga-ui-core-components-scrollbar.ts"],"sourcesContent":["import {DOCUMENT} from '@angular/common';\nimport {Directive, ElementRef, inject, InjectionToken} from '@angular/core';\nimport {tuiProvide} from '@taiga-ui/cdk/utils/di';\n\nexport const SCROLL_REF_SELECTOR = '[tuiScrollRef]';\nexport const TUI_SCROLL_REF = new InjectionToken(ngDevMode ? 'TUI_SCROLL_REF' : '', {\n factory: () => new ElementRef(inject(DOCUMENT).documentElement),\n});\n\n@Directive({\n selector: '[tuiScrollRef]',\n providers: [tuiProvide(TUI_SCROLL_REF, ElementRef)],\n})\nexport class TuiScrollRef {}\n","import {inject, Injectable} from '@angular/core';\nimport {tuiTypedFromEvent, tuiZonefree} from '@taiga-ui/cdk/observables';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {filter, map, merge, Observable, switchMap, takeUntil} from 'rxjs';\n\nimport {TUI_SCROLL_REF} from './scroll-ref.directive';\n\n@Injectable()\nexport class TuiScrollbarService extends Observable<[number, number]> {\n private readonly el = tuiInjectElement();\n private readonly element = inject(TUI_SCROLL_REF).nativeElement;\n private readonly scroll$ = merge(\n tuiTypedFromEvent(this.el.parentElement!, 'mousedown').pipe(\n filter(({target}) => target !== this.el),\n map((event) => this.getScrolled(event, 0.5, 0.5)),\n ),\n tuiTypedFromEvent(this.el, 'mousedown').pipe(\n tuiZonefree(),\n switchMap((event) => {\n const {ownerDocument} = this.el;\n const rect = this.el.getBoundingClientRect();\n const vertical = getOffsetVertical(event, rect);\n const horizontal = getOffsetHorizontal(event, rect);\n\n return tuiTypedFromEvent(ownerDocument, 'mousemove').pipe(\n map((event) => this.getScrolled(event, vertical, horizontal)),\n takeUntil(tuiTypedFromEvent(ownerDocument, 'mouseup')),\n );\n }),\n ),\n );\n\n constructor() {\n super((subscriber) => this.scroll$.subscribe(subscriber));\n }\n\n private getScrolled(\n {clientY, clientX}: MouseEvent,\n offsetY: number,\n offsetX: number,\n ): [number, number] {\n const {offsetHeight, offsetWidth} = this.el;\n const {top, left, right, width, height} =\n this.el.parentElement!.getBoundingClientRect();\n const rtl = this.el.matches('[dir=\"rtl\"] :scope');\n const inline = rtl ? right : left;\n const multiplier = rtl ? -1 : 1;\n const maxTop = this.element.scrollHeight - height;\n const maxLeft = this.element.scrollWidth - width;\n const scrolledTop =\n (clientY - top - offsetHeight * offsetY) / (height - offsetHeight);\n const scrolledLeft =\n (clientX - inline - offsetWidth * offsetX * multiplier) /\n (width - offsetWidth);\n\n return [maxTop * scrolledTop, maxLeft * scrolledLeft];\n }\n}\n\nfunction getOffsetVertical({clientY}: MouseEvent, {top, height}: DOMRect): number {\n return (clientY - top) / height;\n}\n\nfunction getOffsetHorizontal({clientX}: MouseEvent, {left, width}: DOMRect): number {\n return (clientX - left) / width;\n}\n","import {Directive, inject, input} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {WA_ANIMATION_FRAME} from '@ng-web-apis/common';\nimport {\n tuiScrollFrom,\n tuiZonefree,\n tuiZonefreeScheduler,\n} from '@taiga-ui/cdk/observables';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {merge, throttleTime} from 'rxjs';\n\nimport {TUI_SCROLL_REF} from './scroll-ref.directive';\nimport {TuiScrollbarService} from './scrollbar.service';\n\nconst MIN_WIDTH = 24;\n\ninterface ComputedDimension {\n scrollTop: number;\n scrollHeight: number;\n clientHeight: number;\n scrollLeft: number;\n scrollWidth: number;\n clientWidth: number;\n}\n\n@Directive({\n selector: '[tuiScrollbar]',\n providers: [TuiScrollbarService],\n})\nexport class TuiScrollbarDirective {\n private readonly el = inject(TUI_SCROLL_REF).nativeElement;\n private readonly style = tuiInjectElement().style;\n\n protected readonly scrollSub = inject(TuiScrollbarService)\n .pipe(takeUntilDestroyed())\n .subscribe(([top, left]) => {\n this.el.style.scrollBehavior = 'auto';\n\n if (this.tuiScrollbar() === 'horizontal') {\n this.el.scrollLeft = left;\n } else {\n this.el.scrollTop = top;\n }\n\n this.el.style.scrollBehavior = '';\n });\n\n protected readonly styleSub = merge(\n inject(WA_ANIMATION_FRAME).pipe(throttleTime(100, tuiZonefreeScheduler())),\n tuiScrollFrom(this.el),\n )\n .pipe(tuiZonefree(), takeUntilDestroyed())\n .subscribe(() => {\n const dimension: ComputedDimension = {\n scrollTop: this.el.scrollTop,\n scrollHeight: this.el.scrollHeight,\n clientHeight: this.el.clientHeight,\n scrollLeft: this.el.scrollLeft,\n scrollWidth: this.el.scrollWidth,\n clientWidth: this.el.clientWidth,\n };\n\n const thumb = `${this.getThumb(dimension) * 100}%`;\n const view = `${this.getView(dimension) * 100}%`;\n\n if (this.tuiScrollbar() === 'vertical') {\n this.style.top = thumb;\n this.style.height = view;\n } else {\n this.style.left = thumb;\n this.style.insetInlineStart = thumb;\n this.style.width = view;\n }\n });\n\n public readonly tuiScrollbar = input<'horizontal' | 'vertical'>('vertical');\n\n private getScrolled(dimension: ComputedDimension): number {\n return this.tuiScrollbar() === 'vertical'\n ? dimension.scrollTop / (dimension.scrollHeight - dimension.clientHeight)\n : dimension.scrollLeft / (dimension.scrollWidth - dimension.clientWidth);\n }\n\n private getCompensation(dimension: ComputedDimension): number {\n if (\n ((dimension.clientHeight * dimension.clientHeight) / dimension.scrollHeight >\n MIN_WIDTH &&\n this.tuiScrollbar() === 'vertical') ||\n ((dimension.clientWidth * dimension.clientWidth) / dimension.scrollWidth >\n MIN_WIDTH &&\n this.tuiScrollbar() === 'horizontal')\n ) {\n return 0;\n }\n\n return this.tuiScrollbar() === 'vertical'\n ? MIN_WIDTH / dimension.clientHeight\n : MIN_WIDTH / dimension.clientWidth;\n }\n\n private getThumb(dimension: ComputedDimension): number {\n const compensation = this.getCompensation(dimension) || this.getView(dimension);\n\n return Math.abs(this.getScrolled(dimension) * (1 - compensation));\n }\n\n private getView(dimension: ComputedDimension): number {\n return this.tuiScrollbar() === 'vertical'\n ? Math.ceil((dimension.clientHeight / dimension.scrollHeight) * 100) / 100\n : Math.ceil((dimension.clientWidth / dimension.scrollWidth) * 100) / 100;\n }\n}\n","import {tuiCreateOptions} from '@taiga-ui/cdk/utils/di';\n\nexport interface TuiScrollbarOptions {\n mode: 'always' | 'hidden' | 'hover' | 'native';\n}\n\nexport const TUI_DEFAULT_SCROLLBAR_OPTIONS: TuiScrollbarOptions = {\n mode: 'always',\n};\n\nexport const [TUI_SCROLLBAR_OPTIONS, tuiScrollbarOptionsProvider] =\n tuiCreateOptions<TuiScrollbarOptions>(TUI_DEFAULT_SCROLLBAR_OPTIONS);\n","import {AsyncPipe} from '@angular/common';\nimport {ChangeDetectionStrategy, Component, inject} from '@angular/core';\nimport {WA_ANIMATION_FRAME} from '@ng-web-apis/common';\nimport {TuiAnimated} from '@taiga-ui/cdk/directives/animated';\nimport {tuiZonefreeScheduler, tuiZoneOptimized} from '@taiga-ui/cdk/observables';\nimport {distinctUntilChanged, map, startWith, throttleTime} from 'rxjs';\n\nimport {TUI_SCROLL_REF} from './scroll-ref.directive';\nimport {TuiScrollbarDirective} from './scrollbar.directive';\nimport {TUI_SCROLLBAR_OPTIONS} from './scrollbar.options';\n\n@Component({\n selector: 'tui-scroll-controls',\n imports: [AsyncPipe, TuiAnimated, TuiScrollbarDirective],\n templateUrl: './scroll-controls.template.html',\n styleUrl: './scroll-controls.style.less',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiScrollControls {\n private readonly scrollRef = inject(TUI_SCROLL_REF).nativeElement;\n\n protected readonly nativeScrollbar = inject(TUI_SCROLLBAR_OPTIONS).mode === 'native';\n protected readonly refresh$ = inject(WA_ANIMATION_FRAME).pipe(\n throttleTime(300, tuiZonefreeScheduler()),\n map(() => this.scrollbars),\n startWith([false, false]),\n distinctUntilChanged((a, b) => a[0] === b[0] && a[1] === b[1]),\n tuiZoneOptimized(),\n );\n\n private get scrollbars(): [boolean, boolean] {\n const {clientHeight, scrollHeight, clientWidth, scrollWidth} = this.scrollRef;\n\n return [\n Math.ceil((clientHeight / scrollHeight) * 100) < 100,\n Math.ceil((clientWidth / scrollWidth) * 100) < 100,\n ];\n }\n}\n","@if (nativeScrollbar) {\n} @else {\n @if (refresh$ | async; as bars) {\n @if (bars[0]) {\n <div\n tuiAnimated\n class=\"t-bar t-bar_vertical\"\n [class.t-bar_has-horizontal]=\"bars[1]\"\n (mousedown.capture.prevent)=\"(0)\"\n >\n <div\n tuiScrollbar=\"vertical\"\n class=\"t-thumb\"\n ></div>\n </div>\n }\n @if (bars[1]) {\n <div\n tuiAnimated\n class=\"t-bar t-bar_horizontal\"\n [class.t-bar_has-vertical]=\"bars[0]\"\n (mousedown.capture.prevent)=\"(0)\"\n >\n <div\n tuiScrollbar=\"horizontal\"\n class=\"t-thumb\"\n ></div>\n </div>\n }\n }\n}\n","import {ChangeDetectionStrategy, Component, ElementRef, inject} from '@angular/core';\nimport {WA_IS_IOS} from '@ng-web-apis/platform';\nimport {tuiGetElementOffset, tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\n\nimport {TuiScrollControls} from './scroll-controls.component';\nimport {TUI_SCROLL_REF} from './scroll-ref.directive';\nimport {TUI_SCROLLBAR_OPTIONS} from './scrollbar.options';\n\n/**\n * An event for scrolling an element into view within {@link TuiScrollbar}.\n */\nexport const TUI_SCROLL_INTO_VIEW = 'tui-scroll-into-view';\n\n/**\n * An event to notify {@link TuiScrollbar} that\n * it should control a nested element.\n */\nexport const TUI_SCROLLABLE = 'tui-scrollable';\n\n@Component({\n selector: 'tui-scrollbar',\n imports: [TuiScrollControls],\n templateUrl: './scrollbar.template.html',\n styleUrl: './scrollbar.style.less',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: TUI_SCROLL_REF,\n useFactory: () => inject(TuiScrollbar).browserScrollRef,\n },\n ],\n host: {\n '[class._native-hidden]':\n 'options.mode !== \"native\" && (!isIOS || options.mode === \"hidden\")',\n [`(${TUI_SCROLLABLE}.stop)`]: 'scrollRef = $event.detail',\n [`(${TUI_SCROLL_INTO_VIEW}.stop)`]: 'scrollIntoView($event.detail)',\n },\n})\nexport class TuiScrollbar {\n private readonly el = tuiInjectElement();\n\n protected readonly options = inject(TUI_SCROLLBAR_OPTIONS);\n protected readonly isIOS = inject(WA_IS_IOS);\n protected readonly browserScrollRef = new ElementRef(this.el);\n\n protected get delegated(): boolean {\n return this.scrollRef !== this.el || this.options.mode === 'native';\n }\n\n protected get scrollRef(): HTMLElement {\n return this.browserScrollRef.nativeElement;\n }\n\n protected set scrollRef(element: HTMLElement) {\n this.browserScrollRef.nativeElement = element;\n }\n\n protected scrollIntoView(detail: HTMLElement): void {\n if (this.delegated) {\n return;\n }\n\n const {offsetHeight, offsetWidth} = detail;\n const {offsetTop, offsetLeft} = tuiGetElementOffset(this.scrollRef, detail);\n const scrollTop = offsetTop + offsetHeight / 2 - this.scrollRef.clientHeight / 2;\n const scrollLeft = offsetLeft + offsetWidth / 2 - this.scrollRef.clientWidth / 2;\n\n this.scrollRef.scrollTo?.(scrollLeft, scrollTop);\n }\n}\n","@if (!isIOS && options.mode !== 'native' && options.mode !== 'hidden') {\n <tui-scroll-controls\n class=\"t-bars\"\n [class.t-hover-mode]=\"options.mode === 'hover'\"\n />\n}\n<div\n class=\"t-content\"\n [class.t-content_delegated]=\"delegated\"\n>\n <ng-content />\n</div>\n","import {DestroyRef, Directive, effect, inject, input} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {timer} from 'rxjs';\n\nimport {TUI_SCROLL_INTO_VIEW} from './scrollbar.component';\n\n/**\n * Directive scrolls element into view inside tui-scrollbar\n */\n@Directive({\n selector: '[tuiScrollIntoView]',\n})\nexport class TuiScrollIntoView {\n private readonly el = tuiInjectElement();\n private readonly destroyRef = inject(DestroyRef);\n\n public readonly tuiScrollIntoView = input<boolean>();\n\n protected readonly dispatchEvent = effect(() => {\n const scroll = this.tuiScrollIntoView();\n\n if (!scroll) {\n return;\n }\n\n // Timeout is necessary in order to give element render cycle to get into its final spot\n // (for example if it is inside dropdown box which has to be positioned first)\n timer(0)\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.el.dispatchEvent(\n new CustomEvent<Element>(TUI_SCROLL_INTO_VIEW, {\n bubbles: true,\n detail: this.el,\n }),\n );\n });\n });\n}\n","import {Directive, type OnInit} from '@angular/core';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\n\nimport {TUI_SCROLLABLE} from './scrollbar.component';\n\n@Directive({\n selector: '[tuiScrollable]',\n})\nexport class TuiScrollable implements OnInit {\n private readonly el = tuiInjectElement();\n\n public ngOnInit(): void {\n this.el.dispatchEvent(\n new CustomEvent(TUI_SCROLLABLE, {bubbles: true, detail: this.el}),\n );\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"taiga-ui-core-components-scrollbar.mjs","sources":["../../../projects/core/components/scrollbar/scroll-ref.directive.ts","../../../projects/core/components/scrollbar/scrollbar.service.ts","../../../projects/core/components/scrollbar/scrollbar.directive.ts","../../../projects/core/components/scrollbar/scrollbar.options.ts","../../../projects/core/components/scrollbar/scroll-controls.component.ts","../../../projects/core/components/scrollbar/scroll-controls.template.html","../../../projects/core/components/scrollbar/scrollbar.component.ts","../../../projects/core/components/scrollbar/scrollbar.template.html","../../../projects/core/components/scrollbar/scroll-into-view.directive.ts","../../../projects/core/components/scrollbar/scrollable.directive.ts","../../../projects/core/components/scrollbar/taiga-ui-core-components-scrollbar.ts"],"sourcesContent":["import {DOCUMENT} from '@angular/common';\nimport {Directive, ElementRef, inject, InjectionToken} from '@angular/core';\nimport {tuiProvide} from '@taiga-ui/cdk/utils/di';\n\nexport const SCROLL_REF_SELECTOR = '[tuiScrollRef]';\nexport const TUI_SCROLL_REF = new InjectionToken(ngDevMode ? 'TUI_SCROLL_REF' : '', {\n factory: () => new ElementRef(inject(DOCUMENT).documentElement),\n});\n\n@Directive({\n selector: '[tuiScrollRef]',\n providers: [tuiProvide(TUI_SCROLL_REF, ElementRef)],\n})\nexport class TuiScrollRef {}\n","import {inject, Injectable} from '@angular/core';\nimport {tuiTypedFromEvent, tuiZonefree} from '@taiga-ui/cdk/observables';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {filter, map, merge, Observable, switchMap, takeUntil} from 'rxjs';\n\nimport {TUI_SCROLL_REF} from './scroll-ref.directive';\n\n@Injectable()\nexport class TuiScrollbarService extends Observable<[number, number]> {\n private readonly el = tuiInjectElement();\n private readonly element = inject(TUI_SCROLL_REF).nativeElement;\n private readonly scroll$ = merge(\n tuiTypedFromEvent(this.el.parentElement!, 'mousedown').pipe(\n filter(({target}) => target !== this.el),\n map((event) => this.getScrolled(event, 0.5, 0.5)),\n ),\n tuiTypedFromEvent(this.el, 'mousedown').pipe(\n tuiZonefree(),\n switchMap((event) => {\n const {ownerDocument} = this.el;\n const rect = this.el.getBoundingClientRect();\n const vertical = getOffsetVertical(event, rect);\n const horizontal = getOffsetHorizontal(event, rect);\n\n return tuiTypedFromEvent(ownerDocument, 'mousemove').pipe(\n map((event) => this.getScrolled(event, vertical, horizontal)),\n takeUntil(tuiTypedFromEvent(ownerDocument, 'mouseup')),\n );\n }),\n ),\n );\n\n constructor() {\n super((subscriber) => this.scroll$.subscribe(subscriber));\n }\n\n private getScrolled(\n {clientY, clientX}: MouseEvent,\n offsetY: number,\n offsetX: number,\n ): [number, number] {\n const {offsetHeight, offsetWidth} = this.el;\n const {top, left, right, width, height} =\n this.el.parentElement!.getBoundingClientRect();\n const rtl = this.el.matches('[dir=\"rtl\"] :scope');\n const inline = rtl ? right : left;\n const multiplier = rtl ? -1 : 1;\n const maxTop = this.element.scrollHeight - height;\n const maxLeft = this.element.scrollWidth - width;\n const scrolledTop =\n (clientY - top - offsetHeight * offsetY) / (height - offsetHeight);\n const scrolledLeft =\n (clientX - inline - offsetWidth * offsetX * multiplier) /\n (width - offsetWidth);\n\n return [maxTop * scrolledTop, maxLeft * scrolledLeft];\n }\n}\n\nfunction getOffsetVertical({clientY}: MouseEvent, {top, height}: DOMRect): number {\n return (clientY - top) / height;\n}\n\nfunction getOffsetHorizontal({clientX}: MouseEvent, {left, width}: DOMRect): number {\n return (clientX - left) / width;\n}\n","import {Directive, inject, input} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {WA_ANIMATION_FRAME} from '@ng-web-apis/common';\nimport {\n tuiScrollFrom,\n tuiZonefree,\n tuiZonefreeScheduler,\n} from '@taiga-ui/cdk/observables';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {merge, throttleTime} from 'rxjs';\n\nimport {TUI_SCROLL_REF} from './scroll-ref.directive';\nimport {TuiScrollbarService} from './scrollbar.service';\n\nconst MIN_WIDTH = 24;\n\ninterface ComputedDimension {\n scrollTop: number;\n scrollHeight: number;\n clientHeight: number;\n scrollLeft: number;\n scrollWidth: number;\n clientWidth: number;\n}\n\n@Directive({\n selector: '[tuiScrollbar]',\n providers: [TuiScrollbarService],\n})\nexport class TuiScrollbarDirective {\n private readonly el = inject(TUI_SCROLL_REF).nativeElement;\n private readonly style = tuiInjectElement().style;\n\n protected readonly scrollSub = inject(TuiScrollbarService)\n .pipe(takeUntilDestroyed())\n .subscribe(([top, left]) => {\n this.el.style.scrollBehavior = 'auto';\n\n if (this.tuiScrollbar() === 'horizontal') {\n this.el.scrollLeft = left;\n } else {\n this.el.scrollTop = top;\n }\n\n this.el.style.scrollBehavior = '';\n });\n\n protected readonly styleSub = merge(\n inject(WA_ANIMATION_FRAME).pipe(throttleTime(100, tuiZonefreeScheduler())),\n tuiScrollFrom(this.el),\n )\n .pipe(tuiZonefree(), takeUntilDestroyed())\n .subscribe(() => {\n const dimension: ComputedDimension = {\n scrollTop: this.el.scrollTop,\n scrollHeight: this.el.scrollHeight,\n clientHeight: this.el.clientHeight,\n scrollLeft: this.el.scrollLeft,\n scrollWidth: this.el.scrollWidth,\n clientWidth: this.el.clientWidth,\n };\n\n const thumb = `${this.getThumb(dimension) * 100}%`;\n const view = `${this.getView(dimension) * 100}%`;\n\n if (this.tuiScrollbar() === 'vertical') {\n this.style.top = thumb;\n this.style.height = view;\n } else {\n this.style.left = thumb;\n this.style.insetInlineStart = thumb;\n this.style.width = view;\n }\n });\n\n public readonly tuiScrollbar = input<'horizontal' | 'vertical'>('vertical');\n\n private getScrolled(dimension: ComputedDimension): number {\n return this.tuiScrollbar() === 'vertical'\n ? dimension.scrollTop / (dimension.scrollHeight - dimension.clientHeight)\n : dimension.scrollLeft / (dimension.scrollWidth - dimension.clientWidth);\n }\n\n private getCompensation(dimension: ComputedDimension): number {\n if (\n ((dimension.clientHeight * dimension.clientHeight) / dimension.scrollHeight >\n MIN_WIDTH &&\n this.tuiScrollbar() === 'vertical') ||\n ((dimension.clientWidth * dimension.clientWidth) / dimension.scrollWidth >\n MIN_WIDTH &&\n this.tuiScrollbar() === 'horizontal')\n ) {\n return 0;\n }\n\n return this.tuiScrollbar() === 'vertical'\n ? MIN_WIDTH / dimension.clientHeight\n : MIN_WIDTH / dimension.clientWidth;\n }\n\n private getThumb(dimension: ComputedDimension): number {\n const compensation = this.getCompensation(dimension) || this.getView(dimension);\n\n return Math.abs(this.getScrolled(dimension) * (1 - compensation));\n }\n\n private getView(dimension: ComputedDimension): number {\n return this.tuiScrollbar() === 'vertical'\n ? Math.ceil((dimension.clientHeight / dimension.scrollHeight) * 100) / 100\n : Math.ceil((dimension.clientWidth / dimension.scrollWidth) * 100) / 100;\n }\n}\n","import {tuiCreateOptions} from '@taiga-ui/cdk/utils/di';\n\nexport interface TuiScrollbarOptions {\n mode: 'always' | 'hidden' | 'hover' | 'native';\n}\n\nexport const TUI_DEFAULT_SCROLLBAR_OPTIONS: TuiScrollbarOptions = {mode: 'always'};\n\nexport const [TUI_SCROLLBAR_OPTIONS, tuiScrollbarOptionsProvider] =\n tuiCreateOptions<TuiScrollbarOptions>(TUI_DEFAULT_SCROLLBAR_OPTIONS);\n","import {AsyncPipe} from '@angular/common';\nimport {ChangeDetectionStrategy, Component, inject} from '@angular/core';\nimport {WA_ANIMATION_FRAME} from '@ng-web-apis/common';\nimport {TuiAnimated} from '@taiga-ui/cdk/directives/animated';\nimport {tuiZonefreeScheduler, tuiZoneOptimized} from '@taiga-ui/cdk/observables';\nimport {distinctUntilChanged, map, startWith, throttleTime} from 'rxjs';\n\nimport {TUI_SCROLL_REF} from './scroll-ref.directive';\nimport {TuiScrollbarDirective} from './scrollbar.directive';\nimport {TUI_SCROLLBAR_OPTIONS} from './scrollbar.options';\n\n@Component({\n selector: 'tui-scroll-controls',\n imports: [AsyncPipe, TuiAnimated, TuiScrollbarDirective],\n templateUrl: './scroll-controls.template.html',\n styleUrl: './scroll-controls.style.less',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiScrollControls {\n private readonly scrollRef = inject(TUI_SCROLL_REF).nativeElement;\n\n protected readonly nativeScrollbar = inject(TUI_SCROLLBAR_OPTIONS).mode === 'native';\n protected readonly refresh$ = inject(WA_ANIMATION_FRAME).pipe(\n throttleTime(300, tuiZonefreeScheduler()),\n map(() => this.scrollbars),\n startWith([false, false]),\n distinctUntilChanged((a, b) => a[0] === b[0] && a[1] === b[1]),\n tuiZoneOptimized(),\n );\n\n private get scrollbars(): [boolean, boolean] {\n const {clientHeight, scrollHeight, clientWidth, scrollWidth} = this.scrollRef;\n\n return [\n Math.ceil((clientHeight / scrollHeight) * 100) < 100,\n Math.ceil((clientWidth / scrollWidth) * 100) < 100,\n ];\n }\n}\n","@if (nativeScrollbar) {\n} @else {\n @if (refresh$ | async; as bars) {\n @if (bars[0]) {\n <div\n tuiAnimated\n class=\"t-bar t-bar_vertical\"\n [class.t-bar_has-horizontal]=\"bars[1]\"\n (mousedown.capture.prevent)=\"(0)\"\n >\n <div\n tuiScrollbar=\"vertical\"\n class=\"t-thumb\"\n ></div>\n </div>\n }\n @if (bars[1]) {\n <div\n tuiAnimated\n class=\"t-bar t-bar_horizontal\"\n [class.t-bar_has-vertical]=\"bars[0]\"\n (mousedown.capture.prevent)=\"(0)\"\n >\n <div\n tuiScrollbar=\"horizontal\"\n class=\"t-thumb\"\n ></div>\n </div>\n }\n }\n}\n","import {ChangeDetectionStrategy, Component, ElementRef, inject} from '@angular/core';\nimport {WA_IS_IOS} from '@ng-web-apis/platform';\nimport {tuiGetElementOffset, tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\n\nimport {TuiScrollControls} from './scroll-controls.component';\nimport {TUI_SCROLL_REF} from './scroll-ref.directive';\nimport {TUI_SCROLLBAR_OPTIONS} from './scrollbar.options';\n\n/**\n * An event for scrolling an element into view within {@link TuiScrollbar}.\n */\nexport const TUI_SCROLL_INTO_VIEW = 'tui-scroll-into-view';\n\n/**\n * An event to notify {@link TuiScrollbar} that\n * it should control a nested element.\n */\nexport const TUI_SCROLLABLE = 'tui-scrollable';\n\n@Component({\n selector: 'tui-scrollbar',\n imports: [TuiScrollControls],\n templateUrl: './scrollbar.template.html',\n styleUrl: './scrollbar.style.less',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: TUI_SCROLL_REF,\n useFactory: () => inject(TuiScrollbar).browserScrollRef,\n },\n ],\n host: {\n '[class._native-hidden]':\n 'options.mode !== \"native\" && (!isIOS || options.mode === \"hidden\")',\n [`(${TUI_SCROLLABLE}.stop)`]: 'scrollRef = $event.detail',\n [`(${TUI_SCROLL_INTO_VIEW}.stop)`]: 'scrollIntoView($event.detail)',\n },\n})\nexport class TuiScrollbar {\n private readonly el = tuiInjectElement();\n\n protected readonly options = inject(TUI_SCROLLBAR_OPTIONS);\n protected readonly isIOS = inject(WA_IS_IOS);\n protected readonly browserScrollRef = new ElementRef(this.el);\n\n protected get delegated(): boolean {\n return this.scrollRef !== this.el || this.options.mode === 'native';\n }\n\n protected get scrollRef(): HTMLElement {\n return this.browserScrollRef.nativeElement;\n }\n\n protected set scrollRef(element: HTMLElement) {\n this.browserScrollRef.nativeElement = element;\n }\n\n protected scrollIntoView(detail: HTMLElement): void {\n if (this.delegated) {\n return;\n }\n\n const {offsetHeight, offsetWidth} = detail;\n const {offsetTop, offsetLeft} = tuiGetElementOffset(this.scrollRef, detail);\n const scrollTop = offsetTop + offsetHeight / 2 - this.scrollRef.clientHeight / 2;\n const scrollLeft = offsetLeft + offsetWidth / 2 - this.scrollRef.clientWidth / 2;\n\n this.scrollRef.scrollTo?.(scrollLeft, scrollTop);\n }\n}\n","@if (!isIOS && options.mode !== 'native' && options.mode !== 'hidden') {\n <tui-scroll-controls\n class=\"t-bars\"\n [class.t-hover-mode]=\"options.mode === 'hover'\"\n />\n}\n<div\n class=\"t-content\"\n [class.t-content_delegated]=\"delegated\"\n>\n <ng-content />\n</div>\n","import {DestroyRef, Directive, effect, inject, input} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {timer} from 'rxjs';\n\nimport {TUI_SCROLL_INTO_VIEW} from './scrollbar.component';\n\n/**\n * Directive scrolls element into view inside tui-scrollbar\n */\n@Directive({selector: '[tuiScrollIntoView]'})\nexport class TuiScrollIntoView {\n private readonly el = tuiInjectElement();\n private readonly destroyRef = inject(DestroyRef);\n\n public readonly tuiScrollIntoView = input<boolean>();\n\n protected readonly dispatchEvent = effect(() => {\n const scroll = this.tuiScrollIntoView();\n\n if (!scroll) {\n return;\n }\n\n // Timeout is necessary in order to give element render cycle to get into its final spot\n // (for example if it is inside dropdown box which has to be positioned first)\n timer(0)\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.el.dispatchEvent(\n new CustomEvent<Element>(TUI_SCROLL_INTO_VIEW, {\n bubbles: true,\n detail: this.el,\n }),\n );\n });\n });\n}\n","import {Directive, type OnInit} from '@angular/core';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\n\nimport {TUI_SCROLLABLE} from './scrollbar.component';\n\n@Directive({selector: '[tuiScrollable]'})\nexport class TuiScrollable implements OnInit {\n private readonly el = tuiInjectElement();\n\n public ngOnInit(): void {\n this.el.dispatchEvent(\n new CustomEvent(TUI_SCROLLABLE, {bubbles: true, detail: this.el}),\n );\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -24,10 +24,10 @@ class TuiSpinButton {
24
24
  this.rightClick.emit();
25
25
  }
26
26
  }
27
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiSpinButton, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
28
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.17", type: TuiSpinButton, isStandalone: true, selector: "tui-spin-button", inputs: { focusable: { classPropertyName: "focusable", publicName: "focusable", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, leftDisabled: { classPropertyName: "leftDisabled", publicName: "leftDisabled", isSignal: true, isRequired: false, transformFunction: null }, rightDisabled: { classPropertyName: "rightDisabled", publicName: "rightDisabled", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { leftClick: "leftClick", rightClick: "rightClick" }, host: { listeners: { "mousedown.zoneless.prevent": "(0)", "keydown.arrowLeft.prevent": "onLeftClick()", "keydown.arrowRight.prevent": "onRightClick()" } }, ngImport: i0, template: "@if (spinTexts(); as texts) {\n <button\n appearance=\"flat\"\n automation-id=\"tui-spin-button__left\"\n size=\"xs\"\n tuiIconButton\n type=\"button\"\n class=\"t-button\"\n [class.t-button_hidden]=\"disabled() || leftDisabled()\"\n [iconStart]=\"icons.decrement\"\n [tabIndex]=\"focusable() ? 0 : -1\"\n (click)=\"onLeftClick()\"\n >\n {{ texts[0] }}\n </button>\n <span class=\"t-content t-calendar-title\">\n <ng-content />\n </span>\n <button\n appearance=\"flat\"\n automation-id=\"tui-spin-button__right\"\n size=\"xs\"\n tuiIconButton\n type=\"button\"\n class=\"t-button\"\n [class.t-button_hidden]=\"disabled() || rightDisabled()\"\n [iconStart]=\"icons.increment\"\n [tabIndex]=\"focusable() ? 0 : -1\"\n (click)=\"onRightClick()\"\n >\n {{ texts[1] }}\n </button>\n}\n", styles: [":host{display:flex;align-items:center;justify-content:space-between;font:var(--tui-font-body-l);text-align:center;font-weight:700}.t-button{transform:scaleX(var(--tui-inline))}.t-button_hidden{visibility:hidden}.t-content{padding:0 .5rem}\n"], dependencies: [{ kind: "directive", type: TuiButton, selector: "a[tuiButton],button[tuiButton],a[tuiIconButton],button[tuiIconButton]", inputs: ["size"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
27
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: TuiSpinButton, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
28
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.18", type: TuiSpinButton, isStandalone: true, selector: "tui-spin-button", inputs: { focusable: { classPropertyName: "focusable", publicName: "focusable", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, leftDisabled: { classPropertyName: "leftDisabled", publicName: "leftDisabled", isSignal: true, isRequired: false, transformFunction: null }, rightDisabled: { classPropertyName: "rightDisabled", publicName: "rightDisabled", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { leftClick: "leftClick", rightClick: "rightClick" }, host: { listeners: { "mousedown.zoneless.prevent": "(0)", "keydown.arrowLeft.prevent": "onLeftClick()", "keydown.arrowRight.prevent": "onRightClick()" } }, ngImport: i0, template: "@if (spinTexts(); as texts) {\n <button\n appearance=\"flat\"\n automation-id=\"tui-spin-button__left\"\n size=\"xs\"\n tuiIconButton\n type=\"button\"\n class=\"t-button\"\n [class.t-button_hidden]=\"disabled() || leftDisabled()\"\n [iconStart]=\"icons.decrement\"\n [tabIndex]=\"focusable() ? 0 : -1\"\n (click)=\"onLeftClick()\"\n >\n {{ texts[0] }}\n </button>\n <span class=\"t-content t-calendar-title\">\n <ng-content />\n </span>\n <button\n appearance=\"flat\"\n automation-id=\"tui-spin-button__right\"\n size=\"xs\"\n tuiIconButton\n type=\"button\"\n class=\"t-button\"\n [class.t-button_hidden]=\"disabled() || rightDisabled()\"\n [iconStart]=\"icons.increment\"\n [tabIndex]=\"focusable() ? 0 : -1\"\n (click)=\"onRightClick()\"\n >\n {{ texts[1] }}\n </button>\n}\n", styles: [":host{display:flex;align-items:center;justify-content:space-between;font:var(--tui-font-body-l);text-align:center;font-weight:700}.t-button{transform:scaleX(var(--tui-inline))}.t-button_hidden{visibility:hidden}.t-content{padding:0 .5rem}\n"], dependencies: [{ kind: "directive", type: TuiButton, selector: "a[tuiButton],button[tuiButton],a[tuiIconButton],button[tuiIconButton]", inputs: ["size"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
29
29
  }
30
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiSpinButton, decorators: [{
30
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: TuiSpinButton, decorators: [{
31
31
  type: Component,
32
32
  args: [{ selector: 'tui-spin-button', imports: [TuiButton], changeDetection: ChangeDetectionStrategy.OnPush, host: {
33
33
  '(mousedown.zoneless.prevent)': '(0)',
@@ -64,10 +64,10 @@ class TuiTextfieldOptionsDirective {
64
64
  alias: 'tuiTextfieldCleaner',
65
65
  });
66
66
  }
67
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiTextfieldOptionsDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
68
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.17", type: TuiTextfieldOptionsDirective, isStandalone: true, selector: "[tuiTextfieldAppearance],[tuiTextfieldSize],[tuiTextfieldCleaner]", inputs: { appearance: { classPropertyName: "appearance", publicName: "tuiTextfieldAppearance", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "tuiTextfieldSize", isSignal: true, isRequired: false, transformFunction: null }, cleaner: { classPropertyName: "cleaner", publicName: "tuiTextfieldCleaner", isSignal: true, isRequired: false, transformFunction: null } }, providers: [tuiProvide(TUI_TEXTFIELD_OPTIONS, TuiTextfieldOptionsDirective)], ngImport: i0 }); }
67
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: TuiTextfieldOptionsDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
68
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.18", type: TuiTextfieldOptionsDirective, isStandalone: true, selector: "[tuiTextfieldAppearance],[tuiTextfieldSize],[tuiTextfieldCleaner]", inputs: { appearance: { classPropertyName: "appearance", publicName: "tuiTextfieldAppearance", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "tuiTextfieldSize", isSignal: true, isRequired: false, transformFunction: null }, cleaner: { classPropertyName: "cleaner", publicName: "tuiTextfieldCleaner", isSignal: true, isRequired: false, transformFunction: null } }, providers: [tuiProvide(TUI_TEXTFIELD_OPTIONS, TuiTextfieldOptionsDirective)], ngImport: i0 }); }
69
69
  }
70
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiTextfieldOptionsDirective, decorators: [{
70
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: TuiTextfieldOptionsDirective, decorators: [{
71
71
  type: Directive,
72
72
  args: [{
73
73
  selector: '[tuiTextfieldAppearance],[tuiTextfieldSize],[tuiTextfieldCleaner]',
@@ -91,10 +91,10 @@ class TuiSelectLike {
91
91
  event.preventDefault();
92
92
  this.el.focus();
93
93
  }
94
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiSelectLike, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
95
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.17", type: TuiSelectLike, isStandalone: true, selector: "[tuiSelectLike]", host: { attributes: { "tuiSelectLike": "", "inputmode": "none", "spellcheck": "false", "autocomplete": "off" }, listeners: { "beforeinput": "options.cleaner() && $event.inputType.includes(\"delete\") || $event.preventDefault()", "input.capture": "$event.inputType?.includes(\"delete\") && clear()", "mousedown": "prevent($event)" } }, ngImport: i0 }); }
94
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: TuiSelectLike, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
95
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.18", type: TuiSelectLike, isStandalone: true, selector: "[tuiSelectLike]", host: { attributes: { "tuiSelectLike": "", "inputmode": "none", "spellcheck": "false", "autocomplete": "off" }, listeners: { "beforeinput": "options.cleaner() && $event.inputType.includes(\"delete\") || $event.preventDefault()", "input.capture": "$event.inputType?.includes(\"delete\") && clear()", "mousedown": "prevent($event)" } }, ngImport: i0 }); }
96
96
  }
97
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiSelectLike, decorators: [{
97
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: TuiSelectLike, decorators: [{
98
98
  type: Directive,
99
99
  args: [{
100
100
  selector: '[tuiSelectLike]',
@@ -183,13 +183,13 @@ class TuiTextfieldComponent {
183
183
  });
184
184
  }
185
185
  }
186
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiTextfieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
187
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.17", type: TuiTextfieldComponent, isStandalone: true, selector: "tui-textfield:not([multi])", inputs: { content: { classPropertyName: "content", publicName: "content", isSignal: true, isRequired: false, transformFunction: null }, filler: { classPropertyName: "filler", publicName: "filler", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "animationstart": "0", "animationcancel": "0", "click.self.prevent": "0", "pointerdown.self.prevent": "onIconClick()", "scroll.capture.zoneless": "onScroll($event.target)", "tuiActiveZoneChange": "!$event && control()?.valueAccessor?.onTouched?.()" }, properties: { "attr.data-size": "options.size()", "class._with-label": "hasLabel", "class._with-template": "content() && control()?.value != null", "class._disabled": "input()?.nativeElement?.disabled" }, classAttribute: "tui-interactive" }, providers: [
186
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: TuiTextfieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
187
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.18", type: TuiTextfieldComponent, isStandalone: true, selector: "tui-textfield:not([multi])", inputs: { content: { classPropertyName: "content", publicName: "content", isSignal: true, isRequired: false, transformFunction: null }, filler: { classPropertyName: "filler", publicName: "filler", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "animationstart": "0", "animationcancel": "0", "click.self.prevent": "0", "pointerdown.self.prevent": "onIconClick()", "scroll.capture.zoneless": "onScroll($event.target)", "tuiActiveZoneChange": "!$event && control()?.valueAccessor?.onTouched?.()" }, properties: { "attr.data-size": "options.size()", "class._with-label": "hasLabel", "class._with-template": "content() && control()?.value != null", "class._disabled": "input()?.nativeElement?.disabled" }, classAttribute: "tui-interactive" }, providers: [
188
188
  tuiButtonOptionsProvider({ size: 'xs', appearance: 'icon' }),
189
189
  tuiAsDataListHost(TuiTextfieldComponent),
190
190
  ], queries: [{ propertyName: "label", first: true, predicate: i0.forwardRef(() => TuiLabel), descendants: true, read: ElementRef, isSignal: true }, { propertyName: "accessor", first: true, predicate: TUI_TEXTFIELD_ACCESSOR, descendants: true, isSignal: true }, { propertyName: "control", first: true, predicate: NgControl, descendants: true, isSignal: true }, { propertyName: "auxiliaries", predicate: TUI_AUXILIARY, descendants: true, isSignal: true }, { propertyName: "input", first: true, predicate: TUI_TEXTFIELD_ACCESSOR, descendants: true, read: ElementRef, isSignal: true }], viewQueries: [{ propertyName: "ghost", first: true, predicate: ["ghost"], descendants: true, isSignal: true }, { propertyName: "vcr", first: true, predicate: ["vcr"], descendants: true, read: ViewContainerRef, isSignal: true }], hostDirectives: [{ directive: i1.TuiAppearance }, { directive: i2.TuiDropdownDirective }, { directive: i2.TuiDropdownFixed }, { directive: i2.TuiWithDropdownOpen }, { directive: i3.TuiWithIcons }, { directive: i4.TuiWithItemsHandlers }, { directive: i5.TuiWithOptionContent }], ngImport: i0, template: "@if (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 (pointerdown)=\"input()?.nativeElement?.focus()\"\n (waResizeObserver)=\"$event[0] && onResize($event[0])\"\n>\n <ng-content />\n <ng-container #vcr />\n @if (options.cleaner()) {\n <button\n tuiButtonX\n (click)=\"accessor()?.setValue(null)\"\n >\n {{ clear() }}\n </button>\n }\n <ng-content select=\"tui-icon\" />\n</span>\n@if (control()?.value != null) {\n <span class=\"t-template\">\n <ng-container *polymorpheusOutlet=\"content() as text; context: {$implicit: control()?.value}\">\n {{ text }}\n </ng-container>\n </span>\n}\n@if (showFiller()) {\n <input\n #ghost\n aria-hidden=\"true\"\n disabled\n class=\"t-filler\"\n [value]=\"computedFiller()\"\n />\n}\n", styles: ["tui-textfield{scrollbar-width:none;-ms-overflow-style:none;transition-property:color;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;--t-height: var(--tui-height-l);--t-padding: var(--tui-padding-l);--t-label-y: -.75rem;--t-label-font: var(--tui-font-body-s);--t-end: 0rem;--t-start: 0rem;position:relative;display:flex;flex-wrap:wrap;align-items:flex-start;min-block-size:var(--t-height);padding:0 var(--t-padding);border-radius:var(--tui-radius-l);font:var(--tui-font-ui-m);line-height:1.25rem;box-sizing:border-box;gap:0 .25rem;isolation:isolate}tui-textfield::-webkit-scrollbar,tui-textfield::-webkit-scrollbar-thumb{display:none}tui-textfield[tuiAppearance]{outline:none}tui-textfield[tuiAppearance][data-appearance=\"\"]{color:var(--tui-text-tertiary)}@media (hover: hover) and (pointer: fine){tui-textfield[tuiAppearance][data-appearance=\"\"]:not([data-mode~=readonly]):is(a,button,select,textarea,input,label,.tui-interactive):not(:disabled):hover:not([data-state]){color:var(--tui-text-secondary)}}tui-textfield[tuiAppearance][data-appearance=\"\"]:not([data-mode~=readonly])[data-state=hover]{color:var(--tui-text-secondary)}tui-textfield[data-icon-start]{--t-start: 2.25rem}tui-textfield[data-icon-end]{--t-end: 2.25rem}tui-textfield[tuiIcons]:before{z-index:1;block-size:var(--t-height);margin-inline-end:.5rem;pointer-events:none}tui-textfield[tuiIcons]:after{position:relative;block-size:var(--t-height);cursor:pointer;border-inline:var(--t-padding) solid transparent;margin:0 calc(-1 * var(--t-padding))}tui-textfield::-webkit-resizer{border:.25rem solid transparent;inline-size:.5rem;block-size:.5rem;box-sizing:content-box;color:var(--tui-text-tertiary);background:linear-gradient(-45deg,transparent,transparent .125rem,currentColor .125rem,currentColor .1875rem,transparent .1875rem,transparent .25rem,currentColor .25rem,currentColor .3125rem,transparent .35rem);background-clip:content-box}tui-textfield [tuiLabel],tui-textfield>.t-content,tui-textfield>.t-template{pointer-events:none}tui-textfield[data-size=s]{--t-height: var(--tui-height-s);--t-padding: var(--tui-padding-s);border-radius:var(--tui-radius-m);gap:0;font:var(--tui-font-ui-s);line-height:1rem}tui-textfield[data-size=s][data-icon-start]{--t-start: 1.25rem}tui-textfield[data-size=s][data-icon-end]{--t-end: 1.25rem}tui-textfield[data-size=s]:before{margin-inline:-.125rem .5rem;font-size:1rem}tui-textfield[data-size=s]:after{margin-inline-start:calc(.625rem - var(--t-padding));margin-inline-end:calc(-.125rem - var(--t-padding));font-size:1rem}tui-textfield[data-size=s]>.t-content{margin-inline-end:-.375rem}tui-textfield[data-size=m]{--t-height: var(--tui-height-m);--t-padding: var(--tui-padding-m);--t-label-font: var(--tui-font-body-xs);--t-label-y: -.5625rem;border-radius:var(--tui-radius-m);font:var(--tui-font-ui-s);line-height:1rem}tui-textfield[data-size=m][data-icon-start]{--t-start: 1.75rem}tui-textfield[data-size=m][data-icon-end]{--t-end: 1.75rem}tui-textfield[data-size=m]:before{margin-inline:-.125rem .125rem}tui-textfield[data-size=m]:after{margin-inline-start:calc(.25rem - var(--t-padding));margin-inline-end:calc(-.125rem - var(--t-padding))}tui-textfield[data-size=m]>.t-content{margin-inline-end:-.125rem}tui-textfield[data-size=l]{--t-label: -.7rem}tui-textfield:is(._disabled,[data-state=disabled]){pointer-events:none;opacity:var(--tui-disabled-opacity)}tui-textfield:is(._disabled,[data-state=disabled]) [tuiAppearance]:is(._disabled,:disabled,[data-state=disabled]){opacity:1}tui-textfield:is(._disabled,[data-state=disabled]) tui-icon{display:none}tui-textfield._with-label>.t-template,tui-textfield._with-label .t-filler,tui-textfield._with-label [tuiInput]{padding-block-start:calc(var(--t-height) / 3);padding-block-end:0}tui-textfield._with-label:is(:not([data-focus=true]),[data-mode~=readonly])>.t-template::placeholder,tui-textfield._with-label:is(:not([data-focus=true]),[data-mode~=readonly]) [tuiInput]::placeholder,tui-textfield._with-label:is(:not([data-focus=true]),[data-mode~=readonly])>.t-template._empty,tui-textfield._with-label:is(:not([data-focus=true]),[data-mode~=readonly]) [tuiInput]._empty{color:transparent}tui-textfield>.t-template,tui-textfield .t-filler,tui-textfield [tuiInput]{position:absolute;inset-block-start:0;inset-inline:0;inline-size:auto;block-size:100%;-webkit-appearance:none;appearance:none;background:none;font:inherit;resize:none;outline:none;color:var(--tui-text-primary);box-sizing:border-box;border-radius:inherit;border-width:0;overscroll-behavior:none;padding-inline-start:calc(var(--t-start, 0rem) + var(--t-padding));padding-inline-end:calc(var(--t-end, 0rem) + var(--t-side, 0rem) + var(--t-padding))}tui-textfield>.t-template:is(input,textarea):read-only~.t-filler,tui-textfield .t-filler:is(input,textarea):read-only~.t-filler,tui-textfield [tuiInput]:is(input,textarea):read-only~.t-filler{display:none}tui-textfield>.t-template:disabled,tui-textfield .t-filler:disabled,tui-textfield [tuiInput]:disabled{animation:tuiPresent 1s infinite;opacity:1}tui-textfield>.t-template[inputmode=none],tui-textfield .t-filler[inputmode=none],tui-textfield [tuiInput][inputmode=none]{caret-color:transparent}tui-textfield>.t-template{display:flex;block-size:100%;align-items:center}tui-textfield._with-template [tuiInput]:first-of-type{color:transparent!important}tui-textfield [tuiInput]:-webkit-autofill [tuiLabel],tui-textfield [tuiInput][chrome-autofilled] [tuiLabel],tui-textfield [tuiInput]:not(._empty,:placeholder-shown) [tuiLabel],tui-textfield[multi][multi]:not(._empty) [tuiLabel],tui-textfield [tuiInput]:-webkit-autofill:not(tui-textfield)~[tuiLabel],tui-textfield [tuiInput][chrome-autofilled]:not(tui-textfield)~[tuiLabel],tui-textfield [tuiInput]:not(._empty,:placeholder-shown):not(tui-textfield)~[tuiLabel],tui-textfield[multi][multi]:not(._empty):not(tui-textfield)~[tuiLabel]{font:var(--t-label-font);line-height:var(--t-height);transform:translateY(var(--t-label-y))}tui-textfield [tuiLabel][tuiLabel][tuiLabel]{transition-property:all;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;position:relative;display:block;flex:1;align-self:flex-start;font-size:inherit;-webkit-user-select:none;user-select:none;line-height:var(--t-height);transition-duration:inherit}tui-textfield [tuiLabel],tui-textfield [tuiInput]::placeholder,tui-textfield [tuiInput]._empty{color:var(--tui-text-secondary)}tui-textfield select option[value=\"\"]:disabled{color:transparent}tui-textfield select optgroup,tui-textfield select option{background-color:var(--tui-background-elevation-3)}tui-textfield select optgroup,tui-textfield select option:not(:disabled){color:var(--tui-text-primary)}tui-textfield button,tui-textfield a,tui-textfield tui-icon{pointer-events:auto}tui-textfield>.t-content{z-index:1;display:flex;block-size:var(--t-height);align-items:center;gap:inherit;margin-inline-start:auto;isolation:isolate;border-radius:inherit}tui-textfield textarea~.t-content{min-inline-size:.5rem}tui-textfield:is([data-mode~=readonly],[data-state=disabled],._empty) [tuiButtonX],tui-textfield [tuiInput]._empty~.t-content [tuiButtonX],tui-textfield [tuiInput]:disabled~.t-content [tuiButtonX]{display:none}tui-textfield .t-filler{pointer-events:none!important;color:var(--tui-text-tertiary)}tui-textfield [tuiFluidTypography]{font-weight:700}tui-textfield [tuiSelectLike]:not(:read-only){cursor:pointer}tui-textfield:has(input[type=tel]){direction:ltr}tui-textfield:is([data-mode~=invalid],.tui-invalid,:invalid):not([data-mode~=readonly],[data-mode~=valid],[data-state=disabled],:disabled,._disabled) [tuiInput]:not(._empty)~[tuiLabel],tui-textfield:is([data-mode~=invalid],.tui-invalid,:invalid):not([data-mode~=readonly],[data-mode~=valid],[data-state=disabled],:disabled,._disabled)[multi]:not(._empty) [tuiLabel]{color:var(--tui-text-negative)}tui-textfield:not([data-mode~=readonly]):focus-visible:not([data-focus=false]) [tuiInput]::placeholder,tui-textfield:not([data-mode~=readonly]):focus-visible:not([data-focus=false]) [tuiInput]._empty{color:var(--tui-text-tertiary)}tui-textfield:not([data-mode~=readonly]):focus-visible:not([data-focus=false]) [tuiLabel]{color:var(--tui-text-primary)!important;font:var(--t-label-font);line-height:var(--t-height);transform:translateY(var(--t-label-y))}tui-textfield:not([data-mode~=readonly])[data-focus=true] [tuiInput]::placeholder,tui-textfield:not([data-mode~=readonly])[data-focus=true] [tuiInput]._empty{color:var(--tui-text-tertiary)}tui-textfield:not([data-mode~=readonly])[data-focus=true] [tuiLabel]{color:var(--tui-text-primary)!important;font:var(--t-label-font);line-height:var(--t-height);transform:translateY(var(--t-label-y))}\n"], dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "directive", type: PolymorpheusOutlet, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }, { kind: "directive", type: TuiButtonX, selector: "[tuiButtonX]" }, { kind: "directive", type: WaResizeObserver, selector: "[waResizeObserver]", inputs: ["waResizeBox"], outputs: ["waResizeObserver"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
191
191
  }
192
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiTextfieldComponent, decorators: [{
192
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: TuiTextfieldComponent, decorators: [{
193
193
  type: Component,
194
194
  args: [{ selector: 'tui-textfield:not([multi])', imports: [AsyncPipe, PolymorpheusOutlet, TuiButtonX, WaResizeObserver], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [
195
195
  tuiButtonOptionsProvider({ size: 'xs', appearance: 'icon' }),
@@ -230,10 +230,10 @@ class TuiTextfieldItemComponent {
230
230
  this.content = computed(() => this.textfield.item() ??
231
231
  this.handlers.stringify()(this.context.$implicit.item));
232
232
  }
233
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiTextfieldItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
234
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.17", type: TuiTextfieldItemComponent, isStandalone: true, selector: "tui-textfield-item", host: { listeners: { "pointerdown.self.prevent": "0", "keydown.arrowLeft.prevent": "el.previousElementSibling?.firstChild?.focus()", "keydown.arrowRight.prevent": "el.nextElementSibling?.firstChild?.focus()" }, properties: { "class._string": "!textfield.item()", "class._disabled": "handlers.disabledItemHandler()(context.$implicit.item)" } }, ngImport: i0, template: '<ng-container *polymorpheusOutlet="content() as text; context: context">{{ text }}</ng-container>', isInline: true, styles: [":host{max-inline-size:100%;flex-shrink:0;white-space:nowrap;text-overflow:ellipsis;color:var(--tui-text-primary)}:host._string{overflow:hidden}:host._string._disabled{opacity:var(--tui-disabled-opacity)}:host._string:after{content:\",\\a0\"}:host:last-of-type{max-inline-size:80%}:host-context(tui-textfield:not([data-focus=\"true\"])):last-of-type:after{display:none}:host-context(tui-textfield:has([tuiSelectLike])):last-of-type:after,:host-context(tui-textfield[data-mode~=\"readonly\"]):last-of-type:after{content:\"\\a0\"}\n"], dependencies: [{ kind: "directive", type: PolymorpheusOutlet, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }], changeDetection: i0.ChangeDetectionStrategy.Default }); }
233
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: TuiTextfieldItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
234
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.18", type: TuiTextfieldItemComponent, isStandalone: true, selector: "tui-textfield-item", host: { listeners: { "pointerdown.self.prevent": "0", "keydown.arrowLeft.prevent": "el.previousElementSibling?.firstChild?.focus()", "keydown.arrowRight.prevent": "el.nextElementSibling?.firstChild?.focus()" }, properties: { "class._string": "!textfield.item()", "class._disabled": "handlers.disabledItemHandler()(context.$implicit.item)" } }, ngImport: i0, template: '<ng-container *polymorpheusOutlet="content() as text; context: context">{{ text }}</ng-container>', isInline: true, styles: [":host{max-inline-size:100%;flex-shrink:0;white-space:nowrap;text-overflow:ellipsis;color:var(--tui-text-primary)}:host._string{overflow:hidden}:host._string._disabled{opacity:var(--tui-disabled-opacity)}:host._string:after{content:\",\\a0\"}:host:last-of-type{max-inline-size:80%}:host-context(tui-textfield:not([data-focus=\"true\"])):last-of-type:after{display:none}:host-context(tui-textfield:has([tuiSelectLike])):last-of-type:after,:host-context(tui-textfield[data-mode~=\"readonly\"]):last-of-type:after{content:\"\\a0\"}\n"], dependencies: [{ kind: "directive", type: PolymorpheusOutlet, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }], changeDetection: i0.ChangeDetectionStrategy.Default }); }
235
235
  }
236
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiTextfieldItemComponent, decorators: [{
236
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: TuiTextfieldItemComponent, decorators: [{
237
237
  type: Component,
238
238
  args: [{ selector: 'tui-textfield-item', imports: [PolymorpheusOutlet], template: '<ng-container *polymorpheusOutlet="content() as text; context: context">{{ text }}</ng-container>', changeDetection: ChangeDetectionStrategy.Default, host: {
239
239
  '[class._string]': '!textfield.item()',
@@ -301,15 +301,15 @@ class TuiTextfieldMultiComponent extends TuiTextfieldComponent {
301
301
  // Empty catch block - silently ignore showPicker errors
302
302
  }
303
303
  }
304
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiTextfieldMultiComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
305
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.17", type: TuiTextfieldMultiComponent, isStandalone: true, selector: "tui-textfield[multi]", inputs: { rows: { classPropertyName: "rows", publicName: "rows", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "click.prevent": "onClick($event.target)", "tuiActiveZoneChange": "!$event && el.scrollTo({left: 0})" }, properties: { "attr.data-state": "control()?.disabled ? \"disabled\" : null", "class._empty": "!control()?.value?.length", "style.--t-item-height.px": "height()", "style.--t-rows": "rows()" } }, providers: [
304
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: TuiTextfieldMultiComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
305
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.18", type: TuiTextfieldMultiComponent, isStandalone: true, selector: "tui-textfield[multi]", inputs: { rows: { classPropertyName: "rows", publicName: "rows", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "click.prevent": "onClick($event.target)", "tuiActiveZoneChange": "!$event && el.scrollTo({left: 0})" }, properties: { "attr.data-state": "control()?.disabled ? \"disabled\" : null", "class._empty": "!control()?.value?.length", "style.--t-item-height.px": "height()", "style.--t-rows": "rows()" } }, providers: [
306
306
  tuiButtonOptionsProvider({ size: 'xs', appearance: 'icon' }),
307
307
  tuiAsDataListHost(TuiTextfieldMultiComponent),
308
308
  tuiProvide(TuiTextfieldComponent, TuiTextfieldMultiComponent),
309
309
  tuiProvide(TUI_SCROLL_REF, ElementRef),
310
310
  ], queries: [{ propertyName: "cva", first: true, predicate: TuiControl, descendants: true, isSignal: true }, { propertyName: "item", first: true, predicate: TuiItem, descendants: true, read: TemplateRef, isSignal: true }], usesInheritance: true, ngImport: i0, template: "@if (control()?.control?.valueChanges | async) {}\n@if (rows() > 1) {\n <tui-scroll-controls class=\"t-scrollbar\" />\n}\n\n<div\n class=\"t-items\"\n [class.t-items_horizontal]=\"rows() === 1\"\n (click)=\"input()?.nativeElement?.focus()\"\n (pointerdown.self.zoneless.prevent)=\"(0)\"\n (waResizeObserver)=\"$event[0] && onItems($event[0])\"\n>\n <ng-content select=\"label\" />\n @for (item of control()?.value; track item) {\n <ng-template\n [polymorpheusOutlet]=\"component\"\n [polymorpheusOutletContext]=\"{$implicit: {item, index: $index}}\"\n />\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.stop)=\"input()?.nativeElement?.focus()\"\n (pointerdown.zoneless.prevent)=\"(0)\"\n (waResizeObserver)=\"$event[0] && onResize($event[0])\"\n>\n <ng-content />\n @if (options.cleaner()) {\n <button\n tuiButtonX\n (click)=\"accessor()?.setValue([])\"\n >\n {{ clear() }}\n </button>\n }\n <ng-container #vcr />\n <ng-content select=\"tui-icon\" />\n</span>\n\n@if (control()?.value != null) {\n <span class=\"t-template\">\n <ng-container *polymorpheusOutlet=\"content() as text; context: {$implicit: control()?.value}\">\n {{ text }}\n </ng-container>\n </span>\n}\n", styles: ["tui-textfield{scrollbar-width:none;-ms-overflow-style:none;transition-property:color;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;--t-height: var(--tui-height-l);--t-padding: var(--tui-padding-l);--t-label-y: -.75rem;--t-label-font: var(--tui-font-body-s);--t-end: 0rem;--t-start: 0rem;position:relative;display:flex;flex-wrap:wrap;align-items:flex-start;min-block-size:var(--t-height);padding:0 var(--t-padding);border-radius:var(--tui-radius-l);font:var(--tui-font-ui-m);line-height:1.25rem;box-sizing:border-box;gap:0 .25rem;isolation:isolate}tui-textfield::-webkit-scrollbar,tui-textfield::-webkit-scrollbar-thumb{display:none}tui-textfield[tuiAppearance]{outline:none}tui-textfield[tuiAppearance][data-appearance=\"\"]{color:var(--tui-text-tertiary)}@media (hover: hover) and (pointer: fine){tui-textfield[tuiAppearance][data-appearance=\"\"]:not([data-mode~=readonly]):is(a,button,select,textarea,input,label,.tui-interactive):not(:disabled):hover:not([data-state]){color:var(--tui-text-secondary)}}tui-textfield[tuiAppearance][data-appearance=\"\"]:not([data-mode~=readonly])[data-state=hover]{color:var(--tui-text-secondary)}tui-textfield[data-icon-start]{--t-start: 2.25rem}tui-textfield[data-icon-end]{--t-end: 2.25rem}tui-textfield[tuiIcons]:before{z-index:1;block-size:var(--t-height);margin-inline-end:.5rem;pointer-events:none}tui-textfield[tuiIcons]:after{position:relative;block-size:var(--t-height);cursor:pointer;border-inline:var(--t-padding) solid transparent;margin:0 calc(-1 * var(--t-padding))}tui-textfield::-webkit-resizer{border:.25rem solid transparent;inline-size:.5rem;block-size:.5rem;box-sizing:content-box;color:var(--tui-text-tertiary);background:linear-gradient(-45deg,transparent,transparent .125rem,currentColor .125rem,currentColor .1875rem,transparent .1875rem,transparent .25rem,currentColor .25rem,currentColor .3125rem,transparent .35rem);background-clip:content-box}tui-textfield [tuiLabel],tui-textfield>.t-content,tui-textfield>.t-template{pointer-events:none}tui-textfield[data-size=s]{--t-height: var(--tui-height-s);--t-padding: var(--tui-padding-s);border-radius:var(--tui-radius-m);gap:0;font:var(--tui-font-ui-s);line-height:1rem}tui-textfield[data-size=s][data-icon-start]{--t-start: 1.25rem}tui-textfield[data-size=s][data-icon-end]{--t-end: 1.25rem}tui-textfield[data-size=s]:before{margin-inline:-.125rem .5rem;font-size:1rem}tui-textfield[data-size=s]:after{margin-inline-start:calc(.625rem - var(--t-padding));margin-inline-end:calc(-.125rem - var(--t-padding));font-size:1rem}tui-textfield[data-size=s]>.t-content{margin-inline-end:-.375rem}tui-textfield[data-size=m]{--t-height: var(--tui-height-m);--t-padding: var(--tui-padding-m);--t-label-font: var(--tui-font-body-xs);--t-label-y: -.5625rem;border-radius:var(--tui-radius-m);font:var(--tui-font-ui-s);line-height:1rem}tui-textfield[data-size=m][data-icon-start]{--t-start: 1.75rem}tui-textfield[data-size=m][data-icon-end]{--t-end: 1.75rem}tui-textfield[data-size=m]:before{margin-inline:-.125rem .125rem}tui-textfield[data-size=m]:after{margin-inline-start:calc(.25rem - var(--t-padding));margin-inline-end:calc(-.125rem - var(--t-padding))}tui-textfield[data-size=m]>.t-content{margin-inline-end:-.125rem}tui-textfield[data-size=l]{--t-label: -.7rem}tui-textfield:is(._disabled,[data-state=disabled]){pointer-events:none;opacity:var(--tui-disabled-opacity)}tui-textfield:is(._disabled,[data-state=disabled]) [tuiAppearance]:is(._disabled,:disabled,[data-state=disabled]){opacity:1}tui-textfield:is(._disabled,[data-state=disabled]) tui-icon{display:none}tui-textfield._with-label>.t-template,tui-textfield._with-label .t-filler,tui-textfield._with-label [tuiInput]{padding-block-start:calc(var(--t-height) / 3);padding-block-end:0}tui-textfield._with-label:is(:not([data-focus=true]),[data-mode~=readonly])>.t-template::placeholder,tui-textfield._with-label:is(:not([data-focus=true]),[data-mode~=readonly]) [tuiInput]::placeholder,tui-textfield._with-label:is(:not([data-focus=true]),[data-mode~=readonly])>.t-template._empty,tui-textfield._with-label:is(:not([data-focus=true]),[data-mode~=readonly]) [tuiInput]._empty{color:transparent}tui-textfield>.t-template,tui-textfield .t-filler,tui-textfield [tuiInput]{position:absolute;inset-block-start:0;inset-inline:0;inline-size:auto;block-size:100%;-webkit-appearance:none;appearance:none;background:none;font:inherit;resize:none;outline:none;color:var(--tui-text-primary);box-sizing:border-box;border-radius:inherit;border-width:0;overscroll-behavior:none;padding-inline-start:calc(var(--t-start, 0rem) + var(--t-padding));padding-inline-end:calc(var(--t-end, 0rem) + var(--t-side, 0rem) + var(--t-padding))}tui-textfield>.t-template:is(input,textarea):read-only~.t-filler,tui-textfield .t-filler:is(input,textarea):read-only~.t-filler,tui-textfield [tuiInput]:is(input,textarea):read-only~.t-filler{display:none}tui-textfield>.t-template:disabled,tui-textfield .t-filler:disabled,tui-textfield [tuiInput]:disabled{animation:tuiPresent 1s infinite;opacity:1}tui-textfield>.t-template[inputmode=none],tui-textfield .t-filler[inputmode=none],tui-textfield [tuiInput][inputmode=none]{caret-color:transparent}tui-textfield>.t-template{display:flex;block-size:100%;align-items:center}tui-textfield._with-template [tuiInput]:first-of-type{color:transparent!important}tui-textfield [tuiInput]:-webkit-autofill [tuiLabel],tui-textfield [tuiInput][chrome-autofilled] [tuiLabel],tui-textfield [tuiInput]:not(._empty,:placeholder-shown) [tuiLabel],tui-textfield[multi][multi]:not(._empty) [tuiLabel],tui-textfield [tuiInput]:-webkit-autofill:not(tui-textfield)~[tuiLabel],tui-textfield [tuiInput][chrome-autofilled]:not(tui-textfield)~[tuiLabel],tui-textfield [tuiInput]:not(._empty,:placeholder-shown):not(tui-textfield)~[tuiLabel],tui-textfield[multi][multi]:not(._empty):not(tui-textfield)~[tuiLabel]{font:var(--t-label-font);line-height:var(--t-height);transform:translateY(var(--t-label-y))}tui-textfield [tuiLabel][tuiLabel][tuiLabel]{transition-property:all;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;position:relative;display:block;flex:1;align-self:flex-start;font-size:inherit;-webkit-user-select:none;user-select:none;line-height:var(--t-height);transition-duration:inherit}tui-textfield [tuiLabel],tui-textfield [tuiInput]::placeholder,tui-textfield [tuiInput]._empty{color:var(--tui-text-secondary)}tui-textfield select option[value=\"\"]:disabled{color:transparent}tui-textfield select optgroup,tui-textfield select option{background-color:var(--tui-background-elevation-3)}tui-textfield select optgroup,tui-textfield select option:not(:disabled){color:var(--tui-text-primary)}tui-textfield button,tui-textfield a,tui-textfield tui-icon{pointer-events:auto}tui-textfield>.t-content{z-index:1;display:flex;block-size:var(--t-height);align-items:center;gap:inherit;margin-inline-start:auto;isolation:isolate;border-radius:inherit}tui-textfield textarea~.t-content{min-inline-size:.5rem}tui-textfield:is([data-mode~=readonly],[data-state=disabled],._empty) [tuiButtonX],tui-textfield [tuiInput]._empty~.t-content [tuiButtonX],tui-textfield [tuiInput]:disabled~.t-content [tuiButtonX]{display:none}tui-textfield .t-filler{pointer-events:none!important;color:var(--tui-text-tertiary)}tui-textfield [tuiFluidTypography]{font-weight:700}tui-textfield [tuiSelectLike]:not(:read-only){cursor:pointer}tui-textfield:has(input[type=tel]){direction:ltr}tui-textfield:is([data-mode~=invalid],.tui-invalid,:invalid):not([data-mode~=readonly],[data-mode~=valid],[data-state=disabled],:disabled,._disabled) [tuiInput]:not(._empty)~[tuiLabel],tui-textfield:is([data-mode~=invalid],.tui-invalid,:invalid):not([data-mode~=readonly],[data-mode~=valid],[data-state=disabled],:disabled,._disabled)[multi]:not(._empty) [tuiLabel]{color:var(--tui-text-negative)}tui-textfield:not([data-mode~=readonly]):focus-visible:not([data-focus=false]) [tuiInput]::placeholder,tui-textfield:not([data-mode~=readonly]):focus-visible:not([data-focus=false]) [tuiInput]._empty{color:var(--tui-text-tertiary)}tui-textfield:not([data-mode~=readonly]):focus-visible:not([data-focus=false]) [tuiLabel]{color:var(--tui-text-primary)!important;font:var(--t-label-font);line-height:var(--t-height);transform:translateY(var(--t-label-y))}tui-textfield:not([data-mode~=readonly])[data-focus=true] [tuiInput]::placeholder,tui-textfield:not([data-mode~=readonly])[data-focus=true] [tuiInput]._empty{color:var(--tui-text-tertiary)}tui-textfield:not([data-mode~=readonly])[data-focus=true] [tuiLabel]{color:var(--tui-text-primary)!important;font:var(--t-label-font);line-height:var(--t-height);transform:translateY(var(--t-label-y))}tui-textfield[multi][multi]{flex-wrap:nowrap;overflow:scroll;align-items:stretch;cursor:text;gap:0;max-block-size:calc(var(--t-vertical) * 2 + var(--t-item-height) * var(--t-rows));overscroll-behavior:none;scroll-behavior:var(--tui-scroll-behavior)}tui-textfield[multi][multi]:before,tui-textfield[multi][multi]:after{position:sticky;inset-block-start:0;inset-inline-start:0;block-size:var(--t-height)}tui-textfield[multi][multi][tuiChevron]:after{inset-block-start:.375rem;block-size:calc(var(--t-height) - .75rem)}tui-textfield[multi][multi]>.t-scrollbar{transform:translate(calc(var(--t-padding) * var(--tui-inline)));margin-inline-start:calc(-1 * var(--t-start));margin-inline-end:calc(1px - 100% + var(--t-start))}tui-textfield[multi][multi]>.t-scrollbar .t-bar_horizontal{display:none}tui-textfield[multi][multi]>.t-items{position:sticky;display:flex;inset-inline-start:var(--t-start);min-inline-size:0;max-block-size:var(--t-height);min-block-size:fit-content;flex:1;align-items:center;flex-wrap:wrap;padding:var(--t-vertical) 0;transition-duration:inherit;box-sizing:border-box}tui-textfield[multi][multi]>.t-items:after{content:\"\";min-inline-size:1px;min-block-size:1px}tui-textfield[multi][multi]>.t-items_horizontal{clip-path:inset(0 0 0 calc(var(--t-start) / 2 - var(--t-padding) - .25rem));flex-wrap:nowrap}[dir=rtl] tui-textfield[multi][multi]>.t-items_horizontal{clip-path:inset(0 calc(var(--t-start) / 2 - var(--t-padding) - .25rem) 0 0)}tui-textfield[multi][multi]>.t-items_horizontal>.t-input{padding-inline-end:calc(var(--t-side, 0rem) + var(--t-end) + var(--t-padding))}tui-textfield[multi][multi]>.t-items:not(tui-textfield[multi][multi]>.t-items_horizontal){--t-scroll: 0}tui-textfield[multi][multi]>.t-items>label[tuiLabel]{position:absolute;inset-block-start:0;inline-size:100%}tui-textfield[multi][multi]>.t-items>.t-input{position:relative;display:flex;align-items:center;flex:1;block-size:1.25em;max-block-size:1.25rem;max-inline-size:100%;pointer-events:none;transform:translate(var(--t-scroll))}tui-textfield[multi][multi]>.t-items>.t-input .t-filler,tui-textfield[multi][multi]>.t-items>.t-input [tuiInput]{block-size:100%;padding:0;pointer-events:auto}tui-textfield[multi][multi]>.t-items>.t-input .t-ghost{visibility:hidden;white-space:pre;text-overflow:clip;padding-inline-end:.125rem;min-block-size:var(--t-item-height, 1em)}tui-textfield[multi][multi]>.t-items>.t-input .t-filler_hidden{display:none}tui-textfield[multi][multi]>.t-content{position:sticky;inset-block-start:0;inset-inline-start:calc(100% - var(--t-side, 0rem) - var(--t-end) + var(--t-padding) - var(--t-offset));margin:0;gap:.25rem}tui-textfield[multi][multi]>.t-items input:not(:focus)::placeholder,tui-textfield[multi][multi][data-mode~=readonly]>.t-items input::placeholder,tui-textfield[multi][multi][data-mode~=readonly]>.t-items label~.t-input input::placeholder{opacity:0}tui-textfield[multi][multi]._empty>.t-items input::placeholder,tui-textfield[multi][multi][data-focus=true]:not([data-mode~=readonly]):not(:focus-within)>.t-items input::placeholder{opacity:1}tui-textfield[multi][multi][data-state=disabled],tui-textfield[multi][multi][data-mode~=readonly]{pointer-events:none}tui-textfield[multi][multi][data-state=disabled] select,tui-textfield[multi][multi][data-mode~=readonly] select{display:none}tui-textfield[multi][multi][data-size=l]{--t-vertical: .625rem;--t-offset: calc(1rem - var(--t-end) / 4.5)}tui-textfield[multi][multi][data-size=l]:before{margin-inline-end:.75rem}tui-textfield[multi][multi][data-size=l]:after{inset-inline-start:calc(100% - var(--t-end) - .375rem + .25 * (1em - 1rem));margin-inline-start:-.75rem;margin-inline-end:calc(.5 * (1.5rem - 1em) - var(--t-padding))}tui-textfield[multi][multi][data-size=l]._with-label{--t-vertical: 1.125rem}tui-textfield[multi][multi][data-size=l]._with-label>.t-items{padding:1.75rem 0 .5rem}tui-textfield[multi][multi][data-size=m]{--t-vertical: .5rem;--t-offset: calc(.75rem + var(--t-end) / 14)}tui-textfield[multi][multi][data-size=m]:before{inset-inline-start:-.125rem;margin-inline-end:.375rem}tui-textfield[multi][multi][data-size=m]:after{inset-inline-start:calc(100% - var(--t-end) - .25rem);border-width:.625rem;margin-inline-start:-.125rem;margin-inline-end:calc(.5 * (1.5rem - 1em) - var(--t-padding))}tui-textfield[multi][multi][data-size=m]._with-label{--t-vertical: .875rem}tui-textfield[multi][multi][data-size=m]._with-label>.t-items{padding:1.375rem 0 .375rem}tui-textfield[multi][multi][data-size=m]>.t-content{transform:translate(.125rem)}tui-textfield[multi][multi][data-size=s]{--t-vertical: .125rem;--t-offset: calc(.625rem + var(--t-end) / 10)}tui-textfield[multi][multi][data-size=s]:before{inset-inline-start:-.125rem;margin-inline-end:.375rem}tui-textfield[multi][multi][data-size=s]:after{inset-inline-start:calc(100% - var(--t-end) - .125rem);border-width:.5rem;margin-inline-end:calc(-1 * var(--t-padding))}tui-textfield[multi][multi][data-size=s]>.t-content{gap:0;transform:translate(calc(.375rem - var(--t-end) / 10))}tui-textfield[multi][multi] tui-textfield-item{transform:translate(var(--t-scroll))}tui-textfield[multi][multi] input::placeholder{transition-property:color;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out}tui-textfield[multi][multi] select{opacity:0;pointer-events:none!important}tui-textfield[multi][multi]._empty>.t-items select~.t-filler{display:block}tui-textfield[multi][multi]._empty:not([data-focus=true])>.t-items select~.t-filler{color:var(--tui-text-secondary)}tui-textfield[multi][multi]:has([tuiSelectLike]){cursor:pointer}\n"], dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "directive", type: PolymorpheusOutlet, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }, { kind: "directive", type: TuiButtonX, selector: "[tuiButtonX]" }, { kind: "component", type: TuiScrollControls, selector: "tui-scroll-controls" }, { kind: "directive", type: WaResizeObserver, selector: "[waResizeObserver]", inputs: ["waResizeBox"], outputs: ["waResizeObserver"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
311
311
  }
312
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiTextfieldMultiComponent, decorators: [{
312
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: TuiTextfieldMultiComponent, decorators: [{
313
313
  type: Component,
314
314
  args: [{ selector: 'tui-textfield[multi]', imports: [
315
315
  AsyncPipe,
@@ -358,14 +358,12 @@ class TuiTextfieldContent {
358
358
  ngOnDestroy() {
359
359
  this.ref?.destroy();
360
360
  }
361
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiTextfieldContent, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
362
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.17", type: TuiTextfieldContent, isStandalone: true, selector: "ng-template[tuiTextfieldContent]", ngImport: i0 }); }
361
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: TuiTextfieldContent, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
362
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.18", type: TuiTextfieldContent, isStandalone: true, selector: "ng-template[tuiTextfieldContent]", ngImport: i0 }); }
363
363
  }
364
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiTextfieldContent, decorators: [{
364
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: TuiTextfieldContent, decorators: [{
365
365
  type: Directive,
366
- args: [{
367
- selector: 'ng-template[tuiTextfieldContent]',
368
- }]
366
+ args: [{ selector: 'ng-template[tuiTextfieldContent]' }]
369
367
  }] });
370
368
 
371
369
  function tuiTextfieldIcon(token) {
@@ -386,10 +384,10 @@ class TuiWithNativePicker {
386
384
  constructor() {
387
385
  tuiInjectElement().type = 'text';
388
386
  }
389
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiWithNativePicker, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
390
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.17", type: TuiWithNativePicker, isStandalone: true, ngImport: i0 }); }
387
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: TuiWithNativePicker, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
388
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.18", type: TuiWithNativePicker, isStandalone: true, ngImport: i0 }); }
391
389
  }
392
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiWithNativePicker, decorators: [{
390
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: TuiWithNativePicker, decorators: [{
393
391
  type: Directive
394
392
  }], ctorParameters: () => [] });
395
393
 
@@ -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.component.ts","../../../projects/core/components/textfield/textfield.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 type Signal,\n signal,\n SkipSelf,\n} from '@angular/core';\nimport {tuiProvide} from '@taiga-ui/cdk/utils/di';\nimport {type TuiSizeL, type TuiSizeS} from '@taiga-ui/core/types';\n\nconst DEFAULT = {appearance: 'textfield', size: 'l', cleaner: true} as const;\n\nexport interface TuiTextfieldOptions {\n readonly appearance: Signal<string>;\n readonly size: Signal<TuiSizeL | TuiSizeS>;\n readonly cleaner: Signal<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 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 public readonly appearance = input(this.options.appearance(), {\n alias: 'tuiTextfieldAppearance',\n });\n\n public readonly size = input(this.options.size(), {\n alias: 'tuiTextfieldSize',\n transform: (size: TuiSizeL | TuiSizeS | ''): TuiSizeL | TuiSizeS =>\n size || DEFAULT.size,\n });\n\n public readonly cleaner = input(this.options.cleaner(), {\n alias: 'tuiTextfieldCleaner',\n });\n}\n","import {Directive, inject} from '@angular/core';\nimport {WA_IS_ANDROID} from '@ng-web-apis/platform';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\n\nimport {TUI_TEXTFIELD_OPTIONS} from './textfield.options';\n\n@Directive({\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(WA_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/di';\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 {AsyncPipe} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n contentChild,\n contentChildren,\n ElementRef,\n forwardRef,\n inject,\n input,\n type Signal,\n viewChild,\n ViewContainerRef,\n ViewEncapsulation,\n} from '@angular/core';\nimport {NgControl} from '@angular/forms';\nimport {WaResizeObserver} from '@ng-web-apis/resize-observer';\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 {tuiGenerateId, tuiPx} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {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 {TuiAppearance} from '@taiga-ui/core/directives/appearance';\nimport {TuiButtonX} from '@taiga-ui/core/directives/button-x';\nimport {TuiWithIcons} from '@taiga-ui/core/directives/icons';\nimport {TuiWithItemsHandlers} from '@taiga-ui/core/directives/items-handlers';\nimport {\n TuiDropdownDirective,\n TuiDropdownFixed,\n TuiDropdownOpen,\n TuiWithDropdownOpen,\n} from '@taiga-ui/core/portals/dropdown';\nimport {TUI_AUXILIARY, TUI_CLEAR_WORD} from '@taiga-ui/core/tokens';\nimport {type TuiSizeL, type TuiSizeS} from '@taiga-ui/core/types';\nimport {type PolymorpheusContent, PolymorpheusOutlet} from '@taiga-ui/polymorpheus';\n\nimport {TUI_TEXTFIELD_OPTIONS} from './textfield.options';\nimport {TUI_TEXTFIELD_ACCESSOR, type TuiTextfieldAccessor} from './textfield-accessor';\n\n@Component({\n selector: 'tui-textfield:not([multi])',\n imports: [AsyncPipe, PolymorpheusOutlet, TuiButtonX, 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 TuiAppearance,\n TuiDropdownDirective,\n TuiDropdownFixed,\n TuiWithDropdownOpen,\n TuiWithIcons,\n TuiWithItemsHandlers,\n TuiWithOptionContent,\n ],\n host: {\n class: 'tui-interactive',\n '[attr.data-size]': 'options.size()',\n '[class._with-label]': 'hasLabel', // TODO :has([tuiLabel]\n '[class._with-template]': 'content() && control()?.value != null',\n '[class._disabled]': 'input()?.nativeElement?.disabled', // TODO :has([tuiInput]:disabled)\n '(animationstart)': '0', // TODO :has([tuiInput]:disabled)\n '(animationcancel)': '0', // TODO :has([tuiInput]:disabled)\n '(click.self.prevent)': '0',\n // TODO preventing breaks resize: both, but not preventing breaks focus, fix\n '(pointerdown.self.prevent)': 'onIconClick()',\n '(scroll.capture.zoneless)': 'onScroll($event.target)',\n '(tuiActiveZoneChange)': '!$event && control()?.valueAccessor?.onTouched?.()',\n },\n})\nexport class TuiTextfieldComponent<T> implements TuiDataListHost<T> {\n private readonly autoId = tuiGenerateId();\n private readonly focusedIn = tuiFocusedIn(tuiInjectElement());\n\n protected readonly ghost = viewChild<ElementRef<HTMLElement>>('ghost');\n protected readonly dropdown = inject(TuiDropdownDirective);\n protected readonly open = inject(TuiDropdownOpen);\n protected readonly clear = inject(TUI_CLEAR_WORD);\n protected readonly label = contentChild(\n forwardRef(() => TuiLabel),\n {read: ElementRef},\n );\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 protected readonly accessor = contentChild<TuiTextfieldAccessor<T>>(\n TUI_TEXTFIELD_ACCESSOR,\n {descendants: true},\n );\n\n public readonly vcr = viewChild('vcr', {read: ViewContainerRef});\n public readonly control = contentChild(NgControl);\n public readonly auxiliaries = contentChildren(TUI_AUXILIARY, {descendants: true});\n public readonly focused = computed(() => this.open.open() || this.focusedIn());\n public readonly options = inject(TUI_TEXTFIELD_OPTIONS);\n public readonly el = tuiInjectElement();\n public readonly input: Signal<ElementRef<HTMLInputElement> | undefined> =\n contentChild(TUI_TEXTFIELD_ACCESSOR, {read: ElementRef});\n\n public readonly content = input<PolymorpheusContent<TuiContext<T>>>();\n public readonly filler = input('');\n public readonly value = tuiValue(this.input);\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 handleOption(option: T): void {\n this.accessor()?.setValue(option);\n this.open.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.open.enabled() ||\n this.input()?.nativeElement.matches('input:read-only,textarea:read-only')\n ) {\n return;\n }\n\n this.open.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","@if (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 (pointerdown)=\"input()?.nativeElement?.focus()\"\n (waResizeObserver)=\"$event[0] && onResize($event[0])\"\n>\n <ng-content />\n <ng-container #vcr />\n @if (options.cleaner()) {\n <button\n tuiButtonX\n (click)=\"accessor()?.setValue(null)\"\n >\n {{ clear() }}\n </button>\n }\n <ng-content select=\"tui-icon\" />\n</span>\n@if (control()?.value != null) {\n <span class=\"t-template\">\n <ng-container *polymorpheusOutlet=\"content() as text; context: {$implicit: control()?.value}\">\n {{ text }}\n </ng-container>\n </span>\n}\n@if (showFiller()) {\n <input\n #ghost\n aria-hidden=\"true\"\n disabled\n class=\"t-filler\"\n [value]=\"computedFiller()\"\n />\n}\n","import {ChangeDetectionStrategy, Component, computed, 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 PolymorpheusComponent,\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 selector: 'tui-textfield-item',\n imports: [PolymorpheusOutlet],\n template:\n '<ng-container *polymorpheusOutlet=\"content() as text; context: context\">{{ text }}</ng-container>',\n styleUrl: './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)': '0',\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 = inject(TuiTextfieldMultiComponent);\n protected readonly content = computed(\n () =>\n this.textfield.item() ??\n this.handlers.stringify()(this.context.$implicit.item),\n );\n}\n\nexport const TUI_TEXTFIELD_ITEM: PolymorpheusContent<TuiContext<TuiTextfieldItem<any>>> =\n new PolymorpheusComponent(TuiTextfieldItemComponent);\n","import {AsyncPipe} 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 {TuiControl} from '@taiga-ui/cdk/classes';\nimport {TuiItem} from '@taiga-ui/cdk/directives/item';\nimport {tuiZonefree} from '@taiga-ui/cdk/observables';\nimport {tuiProvide} from '@taiga-ui/cdk/utils/di';\nimport {tuiIsElement} from '@taiga-ui/cdk/utils/dom';\nimport {tuiArrayToggle, tuiPx} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {tuiButtonOptionsProvider} from '@taiga-ui/core/components/button';\nimport {tuiAsDataListHost} from '@taiga-ui/core/components/data-list';\nimport {TUI_SCROLL_REF, TuiScrollControls} from '@taiga-ui/core/components/scrollbar';\nimport {TuiButtonX} from '@taiga-ui/core/directives/button-x';\nimport {TUI_ITEMS_HANDLERS} from '@taiga-ui/core/directives/items-handlers';\nimport {PolymorpheusOutlet} from '@taiga-ui/polymorpheus';\nimport {filter, fromEvent} from 'rxjs';\n\nimport {TuiTextfieldComponent} from '../textfield.component';\nimport {TUI_TEXTFIELD_ITEM} from './textfield-item.component';\n\n@Component({\n selector: 'tui-textfield[multi]',\n imports: [\n AsyncPipe,\n PolymorpheusOutlet,\n TuiButtonX,\n TuiScrollControls,\n WaResizeObserver,\n ],\n templateUrl: './textfield-multi.template.html',\n styleUrl: './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 host: {\n '[attr.data-state]': 'control()?.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)': '!$event && el.scrollTo({left: 0})',\n },\n})\nexport class TuiTextfieldMultiComponent<T> extends TuiTextfieldComponent<T> {\n protected readonly height = signal<number | null>(null);\n protected readonly handlers = inject(TUI_ITEMS_HANDLERS);\n protected readonly component = TUI_TEXTFIELD_ITEM;\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 public readonly cva = contentChild(TuiControl);\n public readonly item = contentChild(TuiItem, {read: TemplateRef, descendants: true});\n public readonly rows = input(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 el = this.input()?.nativeElement;\n const placeholder = el?.matches('input') ? el.placeholder : 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 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.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","@if (control()?.control?.valueChanges | async) {}\n@if (rows() > 1) {\n <tui-scroll-controls class=\"t-scrollbar\" />\n}\n\n<div\n class=\"t-items\"\n [class.t-items_horizontal]=\"rows() === 1\"\n (click)=\"input()?.nativeElement?.focus()\"\n (pointerdown.self.zoneless.prevent)=\"(0)\"\n (waResizeObserver)=\"$event[0] && onItems($event[0])\"\n>\n <ng-content select=\"label\" />\n @for (item of control()?.value; track item) {\n <ng-template\n [polymorpheusOutlet]=\"component\"\n [polymorpheusOutletContext]=\"{$implicit: {item, index: $index}}\"\n />\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.stop)=\"input()?.nativeElement?.focus()\"\n (pointerdown.zoneless.prevent)=\"(0)\"\n (waResizeObserver)=\"$event[0] && onResize($event[0])\"\n>\n <ng-content />\n @if (options.cleaner()) {\n <button\n tuiButtonX\n (click)=\"accessor()?.setValue([])\"\n >\n {{ clear() }}\n </button>\n }\n <ng-container #vcr />\n <ng-content select=\"tui-icon\" />\n</span>\n\n@if (control()?.value != null) {\n <span class=\"t-template\">\n <ng-container *polymorpheusOutlet=\"content() as text; context: {$implicit: control()?.value}\">\n {{ text }}\n </ng-container>\n </span>\n}\n","import {TuiItem} from '@taiga-ui/cdk/directives/item';\nimport {TuiLabel} from '@taiga-ui/core/components/label';\nimport {TuiDropdownContent} from '@taiga-ui/core/portals/dropdown';\n\nimport {TuiTextfieldComponent} from './textfield.component';\nimport {TuiTextfieldOptionsDirective} from './textfield.options';\nimport {TuiTextfieldMultiComponent} from './textfield-multi/textfield-multi.component';\n\nexport const TuiTextfield = [\n TuiItem,\n TuiLabel,\n TuiTextfieldComponent,\n TuiTextfieldOptionsDirective,\n TuiTextfieldMultiComponent,\n TuiDropdownContent,\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 {\n Directive,\n type DoCheck,\n inject,\n type OnDestroy,\n TemplateRef,\n} from '@angular/core';\n\nimport {TuiTextfieldComponent} from './textfield.component';\n\n@Directive({\n selector: 'ng-template[tuiTextfieldContent]',\n})\nexport class TuiTextfieldContent implements DoCheck, OnDestroy {\n private readonly ref = inject(TuiTextfieldComponent)\n .vcr()\n ?.createEmbeddedView(inject(TemplateRef));\n\n public ngDoCheck(): void {\n this.ref?.detectChanges();\n }\n\n public ngOnDestroy(): void {\n this.ref?.destroy();\n }\n}\n","import {computed, inject, type ProviderToken, type Signal} from '@angular/core';\nimport {type TuiStringHandler} from '@taiga-ui/cdk/types';\nimport {tuiIconEnd} 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 tuiTextfieldIcon(\n token: ProviderToken<{icon: TuiStringHandler<TuiSizeL | TuiSizeS>}>,\n): Signal<string> {\n const {size} = inject(TUI_TEXTFIELD_OPTIONS);\n const {icon} = inject(token);\n\n return tuiIconEnd(\n computed(() => icon(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()\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":[],"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.component.ts","../../../projects/core/components/textfield/textfield.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 type Signal,\n signal,\n SkipSelf,\n} from '@angular/core';\nimport {tuiProvide} from '@taiga-ui/cdk/utils/di';\nimport {type TuiSizeL, type TuiSizeS} from '@taiga-ui/core/types';\n\nconst DEFAULT = {appearance: 'textfield', size: 'l', cleaner: true} as const;\n\nexport interface TuiTextfieldOptions {\n readonly appearance: Signal<string>;\n readonly size: Signal<TuiSizeL | TuiSizeS>;\n readonly cleaner: Signal<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 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 public readonly appearance = input(this.options.appearance(), {\n alias: 'tuiTextfieldAppearance',\n });\n\n public readonly size = input(this.options.size(), {\n alias: 'tuiTextfieldSize',\n transform: (size: TuiSizeL | TuiSizeS | ''): TuiSizeL | TuiSizeS =>\n size || DEFAULT.size,\n });\n\n public readonly cleaner = input(this.options.cleaner(), {\n alias: 'tuiTextfieldCleaner',\n });\n}\n","import {Directive, inject} from '@angular/core';\nimport {WA_IS_ANDROID} from '@ng-web-apis/platform';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\n\nimport {TUI_TEXTFIELD_OPTIONS} from './textfield.options';\n\n@Directive({\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(WA_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/di';\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 {AsyncPipe} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n contentChild,\n contentChildren,\n ElementRef,\n forwardRef,\n inject,\n input,\n type Signal,\n viewChild,\n ViewContainerRef,\n ViewEncapsulation,\n} from '@angular/core';\nimport {NgControl} from '@angular/forms';\nimport {WaResizeObserver} from '@ng-web-apis/resize-observer';\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 {tuiGenerateId, tuiPx} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {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 {TuiAppearance} from '@taiga-ui/core/directives/appearance';\nimport {TuiButtonX} from '@taiga-ui/core/directives/button-x';\nimport {TuiWithIcons} from '@taiga-ui/core/directives/icons';\nimport {TuiWithItemsHandlers} from '@taiga-ui/core/directives/items-handlers';\nimport {\n TuiDropdownDirective,\n TuiDropdownFixed,\n TuiDropdownOpen,\n TuiWithDropdownOpen,\n} from '@taiga-ui/core/portals/dropdown';\nimport {TUI_AUXILIARY, TUI_CLEAR_WORD} from '@taiga-ui/core/tokens';\nimport {type TuiSizeL, type TuiSizeS} from '@taiga-ui/core/types';\nimport {type PolymorpheusContent, PolymorpheusOutlet} from '@taiga-ui/polymorpheus';\n\nimport {TUI_TEXTFIELD_OPTIONS} from './textfield.options';\nimport {TUI_TEXTFIELD_ACCESSOR, type TuiTextfieldAccessor} from './textfield-accessor';\n\n@Component({\n selector: 'tui-textfield:not([multi])',\n imports: [AsyncPipe, PolymorpheusOutlet, TuiButtonX, 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 TuiAppearance,\n TuiDropdownDirective,\n TuiDropdownFixed,\n TuiWithDropdownOpen,\n TuiWithIcons,\n TuiWithItemsHandlers,\n TuiWithOptionContent,\n ],\n host: {\n class: 'tui-interactive',\n '[attr.data-size]': 'options.size()',\n '[class._with-label]': 'hasLabel', // TODO :has([tuiLabel]\n '[class._with-template]': 'content() && control()?.value != null',\n '[class._disabled]': 'input()?.nativeElement?.disabled', // TODO :has([tuiInput]:disabled)\n '(animationstart)': '0', // TODO :has([tuiInput]:disabled)\n '(animationcancel)': '0', // TODO :has([tuiInput]:disabled)\n '(click.self.prevent)': '0',\n // TODO preventing breaks resize: both, but not preventing breaks focus, fix\n '(pointerdown.self.prevent)': 'onIconClick()',\n '(scroll.capture.zoneless)': 'onScroll($event.target)',\n '(tuiActiveZoneChange)': '!$event && control()?.valueAccessor?.onTouched?.()',\n },\n})\nexport class TuiTextfieldComponent<T> implements TuiDataListHost<T> {\n private readonly autoId = tuiGenerateId();\n private readonly focusedIn = tuiFocusedIn(tuiInjectElement());\n\n protected readonly ghost = viewChild<ElementRef<HTMLElement>>('ghost');\n protected readonly dropdown = inject(TuiDropdownDirective);\n protected readonly open = inject(TuiDropdownOpen);\n protected readonly clear = inject(TUI_CLEAR_WORD);\n protected readonly label = contentChild(\n forwardRef(() => TuiLabel),\n {read: ElementRef},\n );\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 protected readonly accessor = contentChild<TuiTextfieldAccessor<T>>(\n TUI_TEXTFIELD_ACCESSOR,\n {descendants: true},\n );\n\n public readonly vcr = viewChild('vcr', {read: ViewContainerRef});\n public readonly control = contentChild(NgControl);\n public readonly auxiliaries = contentChildren(TUI_AUXILIARY, {descendants: true});\n public readonly focused = computed(() => this.open.open() || this.focusedIn());\n public readonly options = inject(TUI_TEXTFIELD_OPTIONS);\n public readonly el = tuiInjectElement();\n public readonly input: Signal<ElementRef<HTMLInputElement> | undefined> =\n contentChild(TUI_TEXTFIELD_ACCESSOR, {read: ElementRef});\n\n public readonly content = input<PolymorpheusContent<TuiContext<T>>>();\n public readonly filler = input('');\n public readonly value = tuiValue(this.input);\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 handleOption(option: T): void {\n this.accessor()?.setValue(option);\n this.open.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.open.enabled() ||\n this.input()?.nativeElement.matches('input:read-only,textarea:read-only')\n ) {\n return;\n }\n\n this.open.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","@if (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 (pointerdown)=\"input()?.nativeElement?.focus()\"\n (waResizeObserver)=\"$event[0] && onResize($event[0])\"\n>\n <ng-content />\n <ng-container #vcr />\n @if (options.cleaner()) {\n <button\n tuiButtonX\n (click)=\"accessor()?.setValue(null)\"\n >\n {{ clear() }}\n </button>\n }\n <ng-content select=\"tui-icon\" />\n</span>\n@if (control()?.value != null) {\n <span class=\"t-template\">\n <ng-container *polymorpheusOutlet=\"content() as text; context: {$implicit: control()?.value}\">\n {{ text }}\n </ng-container>\n </span>\n}\n@if (showFiller()) {\n <input\n #ghost\n aria-hidden=\"true\"\n disabled\n class=\"t-filler\"\n [value]=\"computedFiller()\"\n />\n}\n","import {ChangeDetectionStrategy, Component, computed, 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 PolymorpheusComponent,\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 selector: 'tui-textfield-item',\n imports: [PolymorpheusOutlet],\n template:\n '<ng-container *polymorpheusOutlet=\"content() as text; context: context\">{{ text }}</ng-container>',\n styleUrl: './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)': '0',\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 = inject(TuiTextfieldMultiComponent);\n protected readonly content = computed(\n () =>\n this.textfield.item() ??\n this.handlers.stringify()(this.context.$implicit.item),\n );\n}\n\nexport const TUI_TEXTFIELD_ITEM: PolymorpheusContent<TuiContext<TuiTextfieldItem<any>>> =\n new PolymorpheusComponent(TuiTextfieldItemComponent);\n","import {AsyncPipe} 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 {TuiControl} from '@taiga-ui/cdk/classes';\nimport {TuiItem} from '@taiga-ui/cdk/directives/item';\nimport {tuiZonefree} from '@taiga-ui/cdk/observables';\nimport {tuiProvide} from '@taiga-ui/cdk/utils/di';\nimport {tuiIsElement} from '@taiga-ui/cdk/utils/dom';\nimport {tuiArrayToggle, tuiPx} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {tuiButtonOptionsProvider} from '@taiga-ui/core/components/button';\nimport {tuiAsDataListHost} from '@taiga-ui/core/components/data-list';\nimport {TUI_SCROLL_REF, TuiScrollControls} from '@taiga-ui/core/components/scrollbar';\nimport {TuiButtonX} from '@taiga-ui/core/directives/button-x';\nimport {TUI_ITEMS_HANDLERS} from '@taiga-ui/core/directives/items-handlers';\nimport {PolymorpheusOutlet} from '@taiga-ui/polymorpheus';\nimport {filter, fromEvent} from 'rxjs';\n\nimport {TuiTextfieldComponent} from '../textfield.component';\nimport {TUI_TEXTFIELD_ITEM} from './textfield-item.component';\n\n@Component({\n selector: 'tui-textfield[multi]',\n imports: [\n AsyncPipe,\n PolymorpheusOutlet,\n TuiButtonX,\n TuiScrollControls,\n WaResizeObserver,\n ],\n templateUrl: './textfield-multi.template.html',\n styleUrl: './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 host: {\n '[attr.data-state]': 'control()?.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)': '!$event && el.scrollTo({left: 0})',\n },\n})\nexport class TuiTextfieldMultiComponent<T> extends TuiTextfieldComponent<T> {\n protected readonly height = signal<number | null>(null);\n protected readonly handlers = inject(TUI_ITEMS_HANDLERS);\n protected readonly component = TUI_TEXTFIELD_ITEM;\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 public readonly cva = contentChild(TuiControl);\n public readonly item = contentChild(TuiItem, {read: TemplateRef, descendants: true});\n public readonly rows = input(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 el = this.input()?.nativeElement;\n const placeholder = el?.matches('input') ? el.placeholder : 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 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.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","@if (control()?.control?.valueChanges | async) {}\n@if (rows() > 1) {\n <tui-scroll-controls class=\"t-scrollbar\" />\n}\n\n<div\n class=\"t-items\"\n [class.t-items_horizontal]=\"rows() === 1\"\n (click)=\"input()?.nativeElement?.focus()\"\n (pointerdown.self.zoneless.prevent)=\"(0)\"\n (waResizeObserver)=\"$event[0] && onItems($event[0])\"\n>\n <ng-content select=\"label\" />\n @for (item of control()?.value; track item) {\n <ng-template\n [polymorpheusOutlet]=\"component\"\n [polymorpheusOutletContext]=\"{$implicit: {item, index: $index}}\"\n />\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.stop)=\"input()?.nativeElement?.focus()\"\n (pointerdown.zoneless.prevent)=\"(0)\"\n (waResizeObserver)=\"$event[0] && onResize($event[0])\"\n>\n <ng-content />\n @if (options.cleaner()) {\n <button\n tuiButtonX\n (click)=\"accessor()?.setValue([])\"\n >\n {{ clear() }}\n </button>\n }\n <ng-container #vcr />\n <ng-content select=\"tui-icon\" />\n</span>\n\n@if (control()?.value != null) {\n <span class=\"t-template\">\n <ng-container *polymorpheusOutlet=\"content() as text; context: {$implicit: control()?.value}\">\n {{ text }}\n </ng-container>\n </span>\n}\n","import {TuiItem} from '@taiga-ui/cdk/directives/item';\nimport {TuiLabel} from '@taiga-ui/core/components/label';\nimport {TuiDropdownContent} from '@taiga-ui/core/portals/dropdown';\n\nimport {TuiTextfieldComponent} from './textfield.component';\nimport {TuiTextfieldOptionsDirective} from './textfield.options';\nimport {TuiTextfieldMultiComponent} from './textfield-multi/textfield-multi.component';\n\nexport const TuiTextfield = [\n TuiItem,\n TuiLabel,\n TuiTextfieldComponent,\n TuiTextfieldOptionsDirective,\n TuiTextfieldMultiComponent,\n TuiDropdownContent,\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 {\n Directive,\n type DoCheck,\n inject,\n type OnDestroy,\n TemplateRef,\n} from '@angular/core';\n\nimport {TuiTextfieldComponent} from './textfield.component';\n\n@Directive({selector: 'ng-template[tuiTextfieldContent]'})\nexport class TuiTextfieldContent implements DoCheck, OnDestroy {\n private readonly ref = inject(TuiTextfieldComponent)\n .vcr()\n ?.createEmbeddedView(inject(TemplateRef));\n\n public ngDoCheck(): void {\n this.ref?.detectChanges();\n }\n\n public ngOnDestroy(): void {\n this.ref?.destroy();\n }\n}\n","import {computed, inject, type ProviderToken, type Signal} from '@angular/core';\nimport {type TuiStringHandler} from '@taiga-ui/cdk/types';\nimport {tuiIconEnd} 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 tuiTextfieldIcon(\n token: ProviderToken<{icon: TuiStringHandler<TuiSizeL | TuiSizeS>}>,\n): Signal<string> {\n const {size} = inject(TUI_TEXTFIELD_OPTIONS);\n const {icon} = inject(token);\n\n return tuiIconEnd(\n computed(() => icon(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()\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":[],"mappings":"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"}