@taiga-ui/legacy 4.52.0-canary.a4e325d → 4.52.0-canary.aaf153c

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 (235) hide show
  1. package/components/dialog/dialog.component.d.ts +20 -0
  2. package/components/dialog/dialog.directive.d.ts +7 -0
  3. package/components/dialog/dialog.factory.d.ts +16 -0
  4. package/components/dialog/dialog.interfaces.d.ts +31 -0
  5. package/components/dialog/dialog.service.d.ts +7 -0
  6. package/components/dialog/dialog.tokens.d.ts +8 -0
  7. package/components/dialog/index.d.ts +6 -0
  8. package/components/index.d.ts +2 -16
  9. package/components/input/input.module.d.ts +1 -1
  10. package/components/input-date-range/input-date-range.module.d.ts +8 -9
  11. package/components/input-date-time/input-date-time.component.d.ts +4 -3
  12. package/components/input-date-time/input-date-time.module.d.ts +1 -1
  13. package/components/input-month-range/input-month-range.module.d.ts +1 -1
  14. package/components/input-range/input-range.component.d.ts +1 -1
  15. package/components/input-tag/input-tag.module.d.ts +1 -1
  16. package/components/multi-select/multi-select-group/multi-select-group.component.d.ts +1 -1
  17. package/components/multi-select/multi-select.module.d.ts +9 -10
  18. package/components/pdf-viewer/index.d.ts +4 -0
  19. package/components/pdf-viewer/pdf-viewer.component.d.ts +12 -0
  20. package/components/pdf-viewer/pdf-viewer.directive.d.ts +7 -0
  21. package/components/pdf-viewer/pdf-viewer.options.d.ts +13 -0
  22. package/components/pdf-viewer/pdf-viewer.service.d.ts +13 -0
  23. package/components/select/select.module.d.ts +1 -1
  24. package/fesm2022/taiga-ui-legacy-classes.mjs +21 -21
  25. package/fesm2022/taiga-ui-legacy-classes.mjs.map +1 -1
  26. package/fesm2022/taiga-ui-legacy-components-arrow.mjs +3 -3
  27. package/fesm2022/taiga-ui-legacy-components-arrow.mjs.map +1 -1
  28. package/fesm2022/taiga-ui-legacy-components-dialog.mjs +129 -0
  29. package/fesm2022/taiga-ui-legacy-components-dialog.mjs.map +1 -0
  30. package/fesm2022/taiga-ui-legacy-components-input-date-range.mjs +25 -29
  31. package/fesm2022/taiga-ui-legacy-components-input-date-range.mjs.map +1 -1
  32. package/fesm2022/taiga-ui-legacy-components-input-date-time.mjs +29 -29
  33. package/fesm2022/taiga-ui-legacy-components-input-date-time.mjs.map +1 -1
  34. package/fesm2022/taiga-ui-legacy-components-input-month-range.mjs +12 -12
  35. package/fesm2022/taiga-ui-legacy-components-input-month-range.mjs.map +1 -1
  36. package/fesm2022/taiga-ui-legacy-components-input-number.mjs +21 -21
  37. package/fesm2022/taiga-ui-legacy-components-input-number.mjs.map +1 -1
  38. package/fesm2022/taiga-ui-legacy-components-input-range.mjs +25 -25
  39. package/fesm2022/taiga-ui-legacy-components-input-range.mjs.map +1 -1
  40. package/fesm2022/taiga-ui-legacy-components-input-slider.mjs +18 -19
  41. package/fesm2022/taiga-ui-legacy-components-input-slider.mjs.map +1 -1
  42. package/fesm2022/taiga-ui-legacy-components-input-tag.mjs +22 -22
  43. package/fesm2022/taiga-ui-legacy-components-input-tag.mjs.map +1 -1
  44. package/fesm2022/taiga-ui-legacy-components-input.mjs +14 -15
  45. package/fesm2022/taiga-ui-legacy-components-input.mjs.map +1 -1
  46. package/fesm2022/taiga-ui-legacy-components-multi-select-option.mjs +7 -7
  47. package/fesm2022/taiga-ui-legacy-components-multi-select-option.mjs.map +1 -1
  48. package/fesm2022/taiga-ui-legacy-components-multi-select.mjs +46 -50
  49. package/fesm2022/taiga-ui-legacy-components-multi-select.mjs.map +1 -1
  50. package/fesm2022/taiga-ui-legacy-components-pdf-viewer.mjs +82 -0
  51. package/fesm2022/taiga-ui-legacy-components-pdf-viewer.mjs.map +1 -0
  52. package/fesm2022/taiga-ui-legacy-components-primitive-textfield.mjs +28 -28
  53. package/fesm2022/taiga-ui-legacy-components-primitive-textfield.mjs.map +1 -1
  54. package/fesm2022/taiga-ui-legacy-components-select-option.mjs +8 -8
  55. package/fesm2022/taiga-ui-legacy-components-select-option.mjs.map +1 -1
  56. package/fesm2022/taiga-ui-legacy-components-select.mjs +33 -34
  57. package/fesm2022/taiga-ui-legacy-components-select.mjs.map +1 -1
  58. package/fesm2022/taiga-ui-legacy-components-tag.mjs +13 -14
  59. package/fesm2022/taiga-ui-legacy-components-tag.mjs.map +1 -1
  60. package/fesm2022/taiga-ui-legacy-components-textarea.mjs +23 -23
  61. package/fesm2022/taiga-ui-legacy-components-textarea.mjs.map +1 -1
  62. package/fesm2022/taiga-ui-legacy-components-tooltip.mjs +7 -7
  63. package/fesm2022/taiga-ui-legacy-components-tooltip.mjs.map +1 -1
  64. package/fesm2022/taiga-ui-legacy-components.mjs +2 -16
  65. package/fesm2022/taiga-ui-legacy-components.mjs.map +1 -1
  66. package/fesm2022/taiga-ui-legacy-directives-legacy-dropdown-open-monitor.mjs +3 -3
  67. package/fesm2022/taiga-ui-legacy-directives-legacy-dropdown-open-monitor.mjs.map +1 -1
  68. package/fesm2022/taiga-ui-legacy-directives-textfield-controller.mjs +34 -34
  69. package/fesm2022/taiga-ui-legacy-directives-textfield-controller.mjs.map +1 -1
  70. package/fesm2022/taiga-ui-legacy-directives-unfinished-validator.mjs +4 -5
  71. package/fesm2022/taiga-ui-legacy-directives-unfinished-validator.mjs.map +1 -1
  72. package/fesm2022/taiga-ui-legacy-directives-value-accessor.mjs +7 -7
  73. package/fesm2022/taiga-ui-legacy-directives-value-accessor.mjs.map +1 -1
  74. package/fesm2022/taiga-ui-legacy-directives-wrapper.mjs +7 -7
  75. package/fesm2022/taiga-ui-legacy-directives-wrapper.mjs.map +1 -1
  76. package/fesm2022/taiga-ui-legacy-tokens.mjs.map +1 -1
  77. package/fesm2022/taiga-ui-legacy-utils.mjs +1 -7
  78. package/fesm2022/taiga-ui-legacy-utils.mjs.map +1 -1
  79. package/fesm2022/taiga-ui-legacy.mjs +0 -2
  80. package/fesm2022/taiga-ui-legacy.mjs.map +1 -1
  81. package/index.d.ts +0 -2
  82. package/package.json +19 -95
  83. package/utils/icons-path-factory.d.ts +1 -1
  84. package/utils/index.d.ts +0 -1
  85. package/components/color-selector/color-edit/color-edit.component.d.ts +0 -18
  86. package/components/color-selector/color-edit/color-edit.module.d.ts +0 -21
  87. package/components/color-selector/color-picker/color-picker.component.d.ts +0 -22
  88. package/components/color-selector/color-picker/color-picker.module.d.ts +0 -14
  89. package/components/color-selector/color-selector.component.d.ts +0 -47
  90. package/components/color-selector/color-selector.module.d.ts +0 -24
  91. package/components/color-selector/color-selector.options.d.ts +0 -25
  92. package/components/color-selector/flat-picker/flat-picker.component.d.ts +0 -12
  93. package/components/color-selector/flat-picker/flat-picker.module.d.ts +0 -12
  94. package/components/color-selector/index.d.ts +0 -16
  95. package/components/color-selector/linear-multi-picker/linear-multi-picker.component.d.ts +0 -17
  96. package/components/color-selector/linear-multi-picker/linear-multi-picker.module.d.ts +0 -12
  97. package/components/color-selector/linear-picker/linear-picker.component.d.ts +0 -10
  98. package/components/color-selector/linear-picker/linear-picker.module.d.ts +0 -12
  99. package/components/color-selector/palette/palette.component.d.ts +0 -10
  100. package/components/color-selector/palette/palette.module.d.ts +0 -13
  101. package/components/color-selector/services/picker.service.d.ts +0 -15
  102. package/components/combo-box/combo-box-strict.directive.d.ts +0 -12
  103. package/components/combo-box/combo-box.component.d.ts +0 -52
  104. package/components/combo-box/combo-box.directive.d.ts +0 -13
  105. package/components/combo-box/combo-box.module.d.ts +0 -20
  106. package/components/combo-box/index.d.ts +0 -4
  107. package/components/input-color/index.d.ts +0 -2
  108. package/components/input-color/input-color.component.d.ts +0 -30
  109. package/components/input-color/input-color.module.d.ts +0 -17
  110. package/components/input-copy/index.d.ts +0 -4
  111. package/components/input-copy/input-copy.component.d.ts +0 -33
  112. package/components/input-copy/input-copy.directive.d.ts +0 -11
  113. package/components/input-copy/input-copy.module.d.ts +0 -18
  114. package/components/input-copy/input-copy.options.d.ts +0 -26
  115. package/components/input-date/index.d.ts +0 -3
  116. package/components/input-date/input-date.component.d.ts +0 -62
  117. package/components/input-date/input-date.directive.d.ts +0 -19
  118. package/components/input-date/input-date.module.d.ts +0 -24
  119. package/components/input-date/native-date/native-date.component.d.ts +0 -15
  120. package/components/input-date-multi/index.d.ts +0 -2
  121. package/components/input-date-multi/input-date-multi.component.d.ts +0 -66
  122. package/components/input-date-multi/input-date-multi.module.d.ts +0 -20
  123. package/components/input-month/index.d.ts +0 -3
  124. package/components/input-month/input-month.component.d.ts +0 -44
  125. package/components/input-month/input-month.directive.d.ts +0 -19
  126. package/components/input-month/input-month.module.d.ts +0 -19
  127. package/components/input-password/index.d.ts +0 -4
  128. package/components/input-password/input-password.component.d.ts +0 -33
  129. package/components/input-password/input-password.directive.d.ts +0 -15
  130. package/components/input-password/input-password.module.d.ts +0 -19
  131. package/components/input-password/input-password.options.d.ts +0 -25
  132. package/components/input-phone/index.d.ts +0 -4
  133. package/components/input-phone/input-phone.component.d.ts +0 -49
  134. package/components/input-phone/input-phone.directive.d.ts +0 -13
  135. package/components/input-phone/input-phone.module.d.ts +0 -12
  136. package/components/input-phone/input-phone.options.d.ts +0 -13
  137. package/components/input-phone/utils/complete-phone-insertion-preprocessor.d.ts +0 -9
  138. package/components/input-phone/utils/create-phone-mask-expression.d.ts +0 -7
  139. package/components/input-phone/utils/index.d.ts +0 -2
  140. package/components/input-phone-international/index.d.ts +0 -3
  141. package/components/input-phone-international/input-phone-international.component.d.ts +0 -43
  142. package/components/input-phone-international/input-phone-international.options.d.ts +0 -25
  143. package/components/input-phone-international/utils/extract-value-from-event.d.ts +0 -4
  144. package/components/input-time/index.d.ts +0 -4
  145. package/components/input-time/input-time.component.d.ts +0 -62
  146. package/components/input-time/input-time.directive.d.ts +0 -17
  147. package/components/input-time/input-time.module.d.ts +0 -23
  148. package/components/input-time/input-time.options.d.ts +0 -42
  149. package/components/input-time/native-time/native-time.component.d.ts +0 -12
  150. package/components/input-year/index.d.ts +0 -3
  151. package/components/input-year/input-year.component.d.ts +0 -36
  152. package/components/input-year/input-year.directive.d.ts +0 -14
  153. package/components/input-year/input-year.module.d.ts +0 -18
  154. package/components/island/index.d.ts +0 -1
  155. package/components/island/island.directive.d.ts +0 -20
  156. package/components/sheet/components/sheet/sheet.component.d.ts +0 -31
  157. package/components/sheet/components/sheet/sheet.providers.d.ts +0 -2
  158. package/components/sheet/components/sheet-bar/sheet-bar.component.d.ts +0 -11
  159. package/components/sheet/components/sheet-heading/sheet-heading.component.d.ts +0 -14
  160. package/components/sheet/components/sheets-host/sheets-host.component.d.ts +0 -15
  161. package/components/sheet/directives/sheet-close/sheet-close.directive.d.ts +0 -14
  162. package/components/sheet/directives/sheet-stop/sheet-stop.directive.d.ts +0 -9
  163. package/components/sheet/directives/sheet-top/sheet-top.directive.d.ts +0 -14
  164. package/components/sheet/directives/sheet-wrapper/sheet-wrapper.directive.d.ts +0 -17
  165. package/components/sheet/index.d.ts +0 -14
  166. package/components/sheet/sheet-options.d.ts +0 -27
  167. package/components/sheet/sheet-tokens.d.ts +0 -18
  168. package/components/sheet/sheet.d.ts +0 -21
  169. package/components/sheet/sheet.directive.d.ts +0 -17
  170. package/components/sheet/sheet.module.d.ts +0 -24
  171. package/components/sheet/sheet.service.d.ts +0 -17
  172. package/components/svg/content-processor.d.ts +0 -19
  173. package/components/svg/deprecated-icons.d.ts +0 -5
  174. package/components/svg/index.d.ts +0 -5
  175. package/components/svg/svg-options.d.ts +0 -50
  176. package/components/svg/svg.component.d.ts +0 -50
  177. package/components/svg/svg.service.d.ts +0 -21
  178. package/components/table-bar/index.d.ts +0 -4
  179. package/components/table-bar/table-bar.component.d.ts +0 -17
  180. package/components/table-bar/table-bar.directive.d.ts +0 -11
  181. package/components/table-bar/table-bar.options.d.ts +0 -31
  182. package/components/table-bar/table-bars-host.component.d.ts +0 -10
  183. package/components/table-bar/table-bars.service.d.ts +0 -11
  184. package/fesm2022/taiga-ui-legacy-components-color-selector.mjs +0 -730
  185. package/fesm2022/taiga-ui-legacy-components-color-selector.mjs.map +0 -1
  186. package/fesm2022/taiga-ui-legacy-components-combo-box.mjs +0 -301
  187. package/fesm2022/taiga-ui-legacy-components-combo-box.mjs.map +0 -1
  188. package/fesm2022/taiga-ui-legacy-components-input-color.mjs +0 -127
  189. package/fesm2022/taiga-ui-legacy-components-input-color.mjs.map +0 -1
  190. package/fesm2022/taiga-ui-legacy-components-input-copy.mjs +0 -197
  191. package/fesm2022/taiga-ui-legacy-components-input-copy.mjs.map +0 -1
  192. package/fesm2022/taiga-ui-legacy-components-input-date-multi.mjs +0 -272
  193. package/fesm2022/taiga-ui-legacy-components-input-date-multi.mjs.map +0 -1
  194. package/fesm2022/taiga-ui-legacy-components-input-date.mjs +0 -372
  195. package/fesm2022/taiga-ui-legacy-components-input-date.mjs.map +0 -1
  196. package/fesm2022/taiga-ui-legacy-components-input-month.mjs +0 -231
  197. package/fesm2022/taiga-ui-legacy-components-input-month.mjs.map +0 -1
  198. package/fesm2022/taiga-ui-legacy-components-input-password.mjs +0 -187
  199. package/fesm2022/taiga-ui-legacy-components-input-password.mjs.map +0 -1
  200. package/fesm2022/taiga-ui-legacy-components-input-phone-international.mjs +0 -215
  201. package/fesm2022/taiga-ui-legacy-components-input-phone-international.mjs.map +0 -1
  202. package/fesm2022/taiga-ui-legacy-components-input-phone.mjs +0 -358
  203. package/fesm2022/taiga-ui-legacy-components-input-phone.mjs.map +0 -1
  204. package/fesm2022/taiga-ui-legacy-components-input-time.mjs +0 -434
  205. package/fesm2022/taiga-ui-legacy-components-input-time.mjs.map +0 -1
  206. package/fesm2022/taiga-ui-legacy-components-input-year.mjs +0 -188
  207. package/fesm2022/taiga-ui-legacy-components-input-year.mjs.map +0 -1
  208. package/fesm2022/taiga-ui-legacy-components-island.mjs +0 -68
  209. package/fesm2022/taiga-ui-legacy-components-island.mjs.map +0 -1
  210. package/fesm2022/taiga-ui-legacy-components-sheet.mjs +0 -577
  211. package/fesm2022/taiga-ui-legacy-components-sheet.mjs.map +0 -1
  212. package/fesm2022/taiga-ui-legacy-components-svg.mjs +0 -387
  213. package/fesm2022/taiga-ui-legacy-components-svg.mjs.map +0 -1
  214. package/fesm2022/taiga-ui-legacy-components-table-bar.mjs +0 -145
  215. package/fesm2022/taiga-ui-legacy-components-table-bar.mjs.map +0 -1
  216. package/fesm2022/taiga-ui-legacy-pipes-format-phone.mjs +0 -59
  217. package/fesm2022/taiga-ui-legacy-pipes-format-phone.mjs.map +0 -1
  218. package/fesm2022/taiga-ui-legacy-pipes-iso-to-country-code.mjs +0 -50
  219. package/fesm2022/taiga-ui-legacy-pipes-iso-to-country-code.mjs.map +0 -1
  220. package/fesm2022/taiga-ui-legacy-pipes-to-country-code.mjs +0 -80
  221. package/fesm2022/taiga-ui-legacy-pipes-to-country-code.mjs.map +0 -1
  222. package/fesm2022/taiga-ui-legacy-pipes.mjs +0 -8
  223. package/fesm2022/taiga-ui-legacy-pipes.mjs.map +0 -1
  224. package/fesm2022/taiga-ui-legacy-services.mjs +0 -42
  225. package/fesm2022/taiga-ui-legacy-services.mjs.map +0 -1
  226. package/pipes/format-phone/format-phone.pipe.d.ts +0 -37
  227. package/pipes/format-phone/index.d.ts +0 -1
  228. package/pipes/index.d.ts +0 -3
  229. package/pipes/iso-to-country-code/index.d.ts +0 -1
  230. package/pipes/iso-to-country-code/iso-to-country-code.pipe.d.ts +0 -30
  231. package/pipes/to-country-code/index.d.ts +0 -1
  232. package/pipes/to-country-code/to-country-code.pipe.d.ts +0 -38
  233. package/services/index.d.ts +0 -1
  234. package/services/static-request.service.d.ts +0 -11
  235. package/utils/is-apple.d.ts +0 -5
@@ -3,10 +3,10 @@ import { InjectionToken, inject, EventEmitter, signal, ElementRef, TemplateRef,
3
3
  import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
4
4
  import { EMPTY_QUERY, TUI_TRUE_HANDLER, TUI_FALSE_HANDLER } from '@taiga-ui/cdk/constants';
5
5
  import { tuiInjectElement, tuiRetargetedBoundaryCrossing, tuiGetActualTarget, tuiIsElement, tuiGetClipboardDataText } from '@taiga-ui/cdk/utils/dom';
6
- import { tuiIsNativeFocusedIn } from '@taiga-ui/cdk/utils/focus';
6
+ import { tuiIsFocusedIn } from '@taiga-ui/cdk/utils/focus';
7
7
  import { tuiProvideOptions, tuiIsString, tuiArrayRemove } from '@taiga-ui/cdk/utils/miscellaneous';
8
8
  import { TuiDataListDirective, tuiAsDataListHost } from '@taiga-ui/core/components/data-list';
9
- import * as i5 from '@taiga-ui/core/components/scrollbar';
9
+ import * as i4 from '@taiga-ui/core/components/scrollbar';
10
10
  import { TuiScrollbar } from '@taiga-ui/core/components/scrollbar';
11
11
  import { TUI_TEXTFIELD_OPTIONS } from '@taiga-ui/core/components/textfield';
12
12
  import * as i1 from '@taiga-ui/core/directives/dropdown';
@@ -14,24 +14,24 @@ import { TuiDropdownOpen, TuiDropdownFixed, TuiDropdown } from '@taiga-ui/core/d
14
14
  import { TuiHintOptionsDirective } from '@taiga-ui/core/directives/hint';
15
15
  import { TUI_COMMON_ICONS } from '@taiga-ui/core/tokens';
16
16
  import { AbstractTuiMultipleControl, tuiAsControl } from '@taiga-ui/legacy/classes';
17
- import * as i8 from '@taiga-ui/legacy/directives';
17
+ import * as i7 from '@taiga-ui/legacy/directives';
18
18
  import { TUI_TEXTFIELD_WATCHED_CONTROLLER, TEXTFIELD_CONTROLLER_PROVIDER, TuiWrapperModule, TuiLegacyDropdownOpenMonitorDirective } from '@taiga-ui/legacy/directives';
19
19
  import { tuiAsFocusableItemAccessor } from '@taiga-ui/legacy/tokens';
20
- import * as i4 from '@taiga-ui/polymorpheus';
20
+ import * as i3 from '@taiga-ui/polymorpheus';
21
21
  import { PolymorpheusOutlet, PolymorpheusTemplate } from '@taiga-ui/polymorpheus';
22
22
  import { timer } from 'rxjs';
23
- import * as i2 from '@angular/common';
24
- import { CommonModule } from '@angular/common';
25
- import * as i3 from '@angular/forms';
23
+ import * as i2 from '@angular/forms';
26
24
  import { FormsModule } from '@angular/forms';
27
- import * as i6 from '@taiga-ui/legacy/components/tooltip';
25
+ import * as i5 from '@taiga-ui/legacy/components/tooltip';
28
26
  import { TuiTooltipModule } from '@taiga-ui/legacy/components/tooltip';
29
- import * as i7 from '@taiga-ui/legacy/components/tag';
27
+ import * as i6 from '@taiga-ui/legacy/components/tag';
30
28
  import { TuiTagModule } from '@taiga-ui/legacy/components/tag';
31
- import * as i9 from '@taiga-ui/core/directives/appearance';
29
+ import * as i8 from '@taiga-ui/core/directives/appearance';
32
30
  import { TuiAppearance } from '@taiga-ui/core/directives/appearance';
33
- import * as i10 from '@taiga-ui/core/components/icon';
31
+ import * as i9 from '@taiga-ui/core/components/icon';
34
32
  import { TuiIcon } from '@taiga-ui/core/components/icon';
33
+ import * as i10 from '@angular/common';
34
+ import { CommonModule } from '@angular/common';
35
35
  import { TuiHovered } from '@taiga-ui/cdk/directives/hovered';
36
36
  import { TuiScrollService } from '@taiga-ui/cdk/services';
37
37
 
@@ -140,7 +140,7 @@ class TuiInputTagComponent extends AbstractTuiMultipleControl {
140
140
  (!this.hasValue && (!this.hasExampleText || this.inputHidden)));
141
141
  }
142
142
  get focused() {
143
- return tuiIsNativeFocusedIn(this.el) || !!this.dropdown?.tuiDropdownOpen;
143
+ return tuiIsFocusedIn(this.el) || !!this.dropdown?.tuiDropdownOpen;
144
144
  }
145
145
  get tagsEmpty() {
146
146
  return (((!this.focused || this.inputHidden) &&
@@ -382,15 +382,15 @@ class TuiInputTagComponent extends AbstractTuiMultipleControl {
382
382
  clippedValue(value) {
383
383
  return value.slice(0, this.maxLength || value.length);
384
384
  }
385
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.9", ngImport: i0, type: TuiInputTagComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
386
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.9", type: TuiInputTagComponent, isStandalone: false, selector: "tui-input-tag", inputs: { separator: "separator", search: "search", editable: "editable", tagValidator: "tagValidator", rows: "rows", inputHidden: "inputHidden", uniqueTags: "uniqueTags", autoColor: "autoColor", maxLength: "maxLength", placeholder: "placeholder", removable: "removable", disabledItemHandler: "disabledItemHandler", pseudoFocusedSetter: ["pseudoFocused", "pseudoFocusedSetter"], setPseudoOpen: ["pseudoOpen", "setPseudoOpen"] }, outputs: { searchChange: "searchChange" }, host: { listeners: { "focusin.capture.zoneless": "onFocusInOut()", "focusout.capture.zoneless": "onFocusInOut()" }, properties: { "attr.data-size": "size", "class._icon-start": "iconStart", "class._expandable": "expandable", "class._label-outside": "labelOutside" } }, providers: [
385
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiInputTagComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
386
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.15", type: TuiInputTagComponent, isStandalone: false, selector: "tui-input-tag", inputs: { separator: "separator", search: "search", editable: "editable", tagValidator: "tagValidator", rows: "rows", inputHidden: "inputHidden", uniqueTags: "uniqueTags", autoColor: "autoColor", maxLength: "maxLength", placeholder: "placeholder", removable: "removable", disabledItemHandler: "disabledItemHandler", pseudoFocusedSetter: ["pseudoFocused", "pseudoFocusedSetter"], setPseudoOpen: ["pseudoOpen", "setPseudoOpen"] }, outputs: { searchChange: "searchChange" }, host: { listeners: { "focusin.capture.zoneless": "onFocusInOut()", "focusout.capture.zoneless": "onFocusInOut()" }, properties: { "attr.data-size": "size", "class._icon-start": "iconStart", "class._expandable": "expandable", "class._label-outside": "labelOutside" } }, providers: [
387
387
  tuiAsFocusableItemAccessor(TuiInputTagComponent),
388
388
  tuiAsControl(TuiInputTagComponent),
389
389
  tuiAsDataListHost(TuiInputTagComponent),
390
390
  TEXTFIELD_CONTROLLER_PROVIDER,
391
- ], queries: [{ propertyName: "datalist", first: true, predicate: TuiDataListDirective, descendants: true, read: TemplateRef }, { propertyName: "valueContent", first: true, predicate: PolymorpheusOutlet, descendants: true }], viewQueries: [{ propertyName: "dropdown", first: true, predicate: TuiDropdownOpen, descendants: true }, { propertyName: "focusableElement", first: true, predicate: ["focusableElement"], descendants: true }, { propertyName: "tagsContainer", first: true, predicate: ["tagsContainer"], descendants: true }, { propertyName: "cleanerSvg", first: true, predicate: ["cleaner"], descendants: true, read: ElementRef }, { propertyName: "scrollBar", first: true, predicate: TuiScrollbar, descendants: true, read: ElementRef }, { propertyName: "errorIconTemplate", first: true, predicate: ["errorIcon"], descendants: true }, { propertyName: "tags", predicate: ["tag"], descendants: true, read: ElementRef }], usesInheritance: true, hostDirectives: [{ directive: i1.TuiDropdownFixed }], ngImport: i0, template: "<ng-container *ngIf=\"hintOptions?.change$ | async\" />\n<div\n tuiDropdownOpenMonitor\n class=\"t-hosted\"\n [tuiDropdown]=\"datalist || ''\"\n [tuiDropdownEnabled]=\"canOpen\"\n [(tuiDropdownOpen)]=\"open\"\n (tuiActiveZoneChange)=\"onActiveZone($event)\"\n>\n <div\n tuiWrapper\n [appearance]=\"appearance\"\n [disabled]=\"computedDisabled\"\n [focus]=\"computedFocused\"\n [hover]=\"pseudoHover\"\n [invalid]=\"computedInvalid\"\n [readOnly]=\"readOnly\"\n (click.prevent.zoneless)=\"detectRetargetFromLabel($event)\"\n (mousedown)=\"onMouseDown($event)\"\n >\n <div class=\"t-content\">\n <div\n *ngIf=\"iconStart\"\n class=\"t-icon t-icon_left t-textfield-icon t-icon-wrapper\"\n >\n <tui-icon\n *polymorpheusOutlet=\"iconStart as src; context: {$implicit: size}\"\n tuiAppearance=\"icon\"\n [icon]=\"src.toString()\"\n />\n </div>\n <div class=\"t-wrapper\">\n <div class=\"t-absolute-wrapper\">\n <div\n *ngIf=\"hasPlaceholder\"\n automation-id=\"tui-input-tag__placeholder\"\n class=\"t-placeholder\"\n [class.t-placeholder_raised]=\"placeholderRaised\"\n >\n <ng-content />\n </div>\n </div>\n <tui-scrollbar\n class=\"t-scrollbar\"\n [hidden]=\"!expandable\"\n [style.maxHeight.rem]=\"computeMaxHeight\"\n >\n <div\n class=\"t-tags\"\n [class.t-tags_empty]=\"tagsEmpty\"\n >\n <ng-container *ngIf=\"labelOutside; else text\">\n <tui-tag\n *ngFor=\"let item of value; index as index; trackBy: trackByFn\"\n #tag\n automation-id=\"tui-input-tag__tag\"\n tabIndex=\"-1\"\n class=\"t-tag\"\n [autoColor]=\"autoColor\"\n [disabled]=\"computedDisabled || disabledItemHandler(item)\"\n [editable]=\"editable && !readOnly\"\n [hoverable]=\"!readOnly\"\n [leftContent]=\"getLeftContent(item)\"\n [maxLength]=\"maxLength\"\n [removable]=\"!readOnly && removable\"\n [separator]=\"separator\"\n [size]=\"controller.size\"\n [status]=\"status\"\n [value]=\"item.toString()\"\n (edited)=\"onTagEdited($event, index)\"\n (keydown.arrowLeft.prevent)=\"onTagKeyDownArrowLeft(index)\"\n (keydown.arrowRight.prevent)=\"onTagKeyDownArrowRight(index)\"\n />\n </ng-container>\n <ng-template #text>\n <span\n *ngFor=\"let item of value\"\n class=\"t-text\"\n [class.t-text_comma]=\"computedFocused && !inputHidden\"\n [class.t-text_disabled]=\"disabledItemHandler(item)\"\n [class.t-text_error]=\"!tagValidator(item)\"\n [textContent]=\"item\"\n ></span>\n </ng-template>\n <div\n class=\"t-input-wrapper\"\n [class.t-input-wrapper_collapsed]=\"computedDisabled || readOnly || inputHidden\"\n >\n <div class=\"t-ghost\">{{ search }}</div>\n <input\n #focusableElement\n automation-id=\"tui-input-tag__native\"\n type=\"text\"\n class=\"t-native\"\n [attr.maxLength]=\"maxLength\"\n [class.t-native_hidden]=\"inputHidden\"\n [disabled]=\"computedDisabled\"\n [id]=\"id\"\n [ngModel]=\"search\"\n [ngModelOptions]=\"{standalone: true}\"\n [placeholder]=\"placeholder\"\n [readOnly]=\"readOnly || inputHidden\"\n [tabIndex]=\"computedFocusable ? 0 : -1\"\n (drop.prevent)=\"onDrop($any($event))\"\n (keydown.arrowLeft)=\"onFieldKeyDownArrowLeft($event)\"\n (keydown.backspace)=\"onFieldKeyDownBackspace($event)\"\n (keydown.enter.prevent)=\"onFieldKeyDownEnter()\"\n (ngModelChange)=\"onInput($event)\"\n (paste.prevent)=\"onPaste($event)\"\n />\n </div>\n </div>\n <div class=\"t-value-content\">\n <ng-content select=\"tuiContent\" />\n </div>\n </tui-scrollbar>\n </div>\n <ng-content select=\"select\" />\n <div\n *ngIf=\"hasRightIcons\"\n class=\"t-icons t-icon-wrapper\"\n >\n <ng-container *ngIf=\"hasCleaner\">\n <tui-icon\n *polymorpheusOutlet=\"iconCleaner as src; context: {$implicit: size}\"\n #cleaner\n automation-id=\"tui-input-tag__cleaner\"\n tuiAppearance=\"icon\"\n class=\"t-cleaner\"\n [icon]=\"src.toString()\"\n (click.stop)=\"onCleanerClick()\"\n />\n </ng-container>\n <tui-tooltip\n *ngIf=\"showHint\"\n automation-id=\"tui-input-tag__tooltip\"\n class=\"t-tooltip\"\n [content]=\"hintOptions?.content\"\n [describeId]=\"id\"\n />\n <div\n *ngIf=\"icon\"\n class=\"t-icon t-textfield-icon\"\n >\n <tui-icon\n *polymorpheusOutlet=\"icon as src; context: {$implicit: size}\"\n tuiAppearance=\"icon\"\n [icon]=\"src.toString()\"\n />\n </div>\n </div>\n </div>\n <ng-template #errorIcon>\n <tui-icon\n class=\"t-error-icon\"\n [icon]=\"icons.error\"\n />\n </ng-template>\n </div>\n</div>\n", styles: [":host{position:relative;display:block;text-align:start;border-radius:var(--tui-radius-m);block-size:var(--tui-height);min-block-size:var(--tui-height);max-block-size:var(--tui-height)}:host[data-size=s]{--tui-height: var(--tui-height-s);font:var(--tui-font-text-s)}:host[data-size=m]{--tui-height: var(--tui-height-m);font:var(--tui-font-text-s)}:host[data-size=l]{--tui-height: var(--tui-height-l);font:var(--tui-font-text-m);line-height:1.25rem}:host :host-context(*:disabled){pointer-events:none}.t-input{padding:0;margin:0;border-width:0;border-radius:inherit;background:none;font-size:inherit;line-height:inherit;font-weight:inherit;color:inherit;caret-color:currentColor;outline:none;-webkit-appearance:none;appearance:none;word-break:keep-all;-webkit-text-fill-color:currentColor;position:absolute;top:0;left:0;inline-size:100%;block-size:100%;border-style:solid;border-color:transparent;border-inline-start-width:var(--t-border-start, 0);border-inline-end-width:var(--t-border-end, 0);text-indent:var(--t-text-indent);color:var(--tui-text-primary);text-align:inherit;box-sizing:border-box;white-space:nowrap;overflow:hidden;text-transform:inherit;resize:none}.t-input:-webkit-autofill,.t-input:-webkit-autofill:hover,.t-input:-webkit-autofill:focus{-webkit-text-fill-color:var(--tui-text-primary)!important;border-color:var(--tui-service-autofill-background);box-shadow:0 0 0 100rem var(--tui-service-autofill-background) inset!important}.t-input[inputMode=none]{caret-color:transparent}.t-input:-webkit-autofill,.t-input:-webkit-autofill:first-line{font-size:inherit;line-height:inherit}.t-input::-webkit-caps-lock-indicator,.t-input::-webkit-contacts-auto-fill-button,.t-input::-webkit-credit-card-auto-fill-button,.t-input::-webkit-credentials-auto-fill-button,.t-input::-webkit-strong-password-auto-fill-button{content:none!important;position:absolute;left:-62.4375rem;top:-62.4375rem;z-index:-999;display:none!important;background:transparent!important;pointer-events:none!important}.t-input::placeholder{color:var(--tui-text-tertiary);opacity:0}:host._focused:not(._readonly) .t-input::placeholder,:host-context(tui-primitive-textfield._focused:not(._readonly)) .t-input::placeholder,:host-context(tui-textarea._focused:not(._readonly)) .t-input::placeholder,:host-context(tui-text-area._focused:not(._readonly)) .t-input::placeholder{opacity:1}:host[data-size=s] .t-input,.t-input :host-context(tui-primitive-textfield[data-size=\"s\"]):not(tui-primitive-textfield),.t-input :host-context(tui-textarea[data-size=\"s\"]):not(tui-textarea),.t-input :host-context(tui-text-area[data-size=\"s\"]):not(tui-text-area){padding:0 var(--tui-padding-s)}:host[data-size=m] .t-input,.t-input :host-context(tui-primitive-textfield[data-size=\"m\"]):not(tui-primitive-textfield),.t-input :host-context(tui-textarea[data-size=\"m\"]):not(tui-textarea),.t-input :host-context(tui-text-area[data-size=\"m\"]):not(tui-text-area){padding:0 var(--tui-padding-m)}:host[data-size=l] .t-input,.t-input :host-context(tui-primitive-textfield[data-size=\"l\"]):not(tui-primitive-textfield),.t-input :host-context(tui-textarea[data-size=\"l\"]):not(tui-textarea),.t-input :host-context(tui-text-area[data-size=\"l\"]):not(tui-text-area){padding:0 var(--tui-padding-l)}:host._disabled .t-input,.t-input :host-context(tui-primitive-textfield._disabled),.t-input :host-context(tui-textarea._disabled),.t-input :host-context(tui-text-area._disabled){pointer-events:none}:host[data-size=l]:not(._label-outside) .t-input,.t-input :host-context(tui-primitive-textfield[data-size=\"l\"]:not(._label-outside)):not(tui-primitive-textfield){padding-block-start:1.25rem}:host[data-size=m]:not(._label-outside) .t-input,.t-input :host-context(tui-primitive-textfield[data-size=\"m\"]:not(._label-outside)):not(tui-primitive-textfield){padding-block-start:1rem}:host[data-size=l]:not(._label-outside) .t-input{padding-block-start:1.25rem}:host[data-size=l]:not(._label-outside) .t-input:-webkit-autofill+.t-content .t-placeholder{font-size:.8156rem;transform:translateY(-.625rem)}:host[data-size=m]:not(._label-outside) .t-input:-webkit-autofill+.t-content .t-placeholder{font-size:.69rem;transform:translateY(-.5rem)}:host._hidden input.t-input,.t-input :host-context(tui-primitive-textfield._hidden){opacity:0;text-indent:-10em}.t-content{display:flex;block-size:100%;inline-size:100%;box-sizing:border-box;align-items:center;overflow:hidden}:host[data-size=s] .t-content{padding:0 var(--tui-padding-s)}:host[data-size=m] .t-content{padding:0 var(--tui-padding-m)}:host[data-size=l] .t-content{padding:0 var(--tui-padding-l)}.t-wrapper{flex:1;min-inline-size:0;padding-inline-end:.25rem}.t-placeholder{transition-property:transform,font-size,color,letter-spacing;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;inline-size:100%;-webkit-user-select:none;user-select:none;font:var(--tui-font-text-s);color:var(--tui-text-secondary);pointer-events:none;will-change:transform;transform:translateY(0)}@supports (-webkit-hyphens: none){.t-placeholder{will-change:unset;transition-property:transform,color,letter-spacing}}.t-placeholder_raised{transform:translateY(-.625rem)}:host[data-size=m] .t-placeholder_raised{font:var(--tui-font-text-xs);line-height:1.25rem;transform:translateY(-.5rem);letter-spacing:.025rem}:host._invalid:not(._focused) .t-placeholder_raised,:host._invalid:not(._focused):hover .t-placeholder_raised{color:var(--tui-text-negative)}:host._focused .t-placeholder,:host[data-size=m]._focused._label-outside .t-placeholder,:host[data-size=l]._focused._label-outside .t-placeholder{color:var(--tui-text-tertiary)}:host[data-size=l] .t-placeholder{font:var(--tui-font-text-m);line-height:1.25rem}:host[data-size=l] .t-placeholder_raised{font-size:.8156rem}:host[data-size=m]._focused:not(._label-outside) .t-placeholder,:host[data-size=l]._focused:not(._label-outside) .t-placeholder{color:var(--tui-text-primary)}.t-cleaner{position:relative;display:flex;inline-size:1.5rem;block-size:1.5rem;align-items:center;justify-content:center;box-sizing:border-box;cursor:pointer;pointer-events:none;pointer-events:auto}:host._readonly .t-cleaner,:host._disabled .t-cleaner{pointer-events:none}.t-cleaner:before{font-size:1rem}.t-icon{position:relative;display:flex;inline-size:1.5rem;block-size:1.5rem;align-items:center;justify-content:center;box-sizing:border-box;cursor:pointer;pointer-events:none}:host[data-size=s] .t-icon_left{margin:0 .125rem 0 -.375rem}:host[data-size=m] .t-icon_left{margin-inline-start:-.125rem;margin-inline-end:.375rem}:host[data-size=l] .t-icon_left{margin-inline-end:.75rem}.t-icons{display:flex;align-items:center}:host[data-size=m] .t-icons{margin-inline-end:-.125rem}:host[data-size=s] .t-icons{margin-inline-end:-.375rem}:host:not([data-size=s]) .t-icons>:not(:first-child){margin-inline-start:.25rem}:host{cursor:text}:host._expandable{block-size:auto;max-block-size:none}:host._disabled,:host :host-context(*:disabled){pointer-events:none}:host._readonly{cursor:default}:host[data-size=m]{line-height:1rem}.t-hosted{display:block;border-radius:inherit}.t-scrollbar{scroll-behavior:var(--tui-scroll-behavior);margin-inline-start:-.25rem;min-inline-size:100%}:host:not(._label-outside) .t-scrollbar,:host._label-outside._icon-start .t-scrollbar{margin:0}:host[data-size=s]._icon-start .t-scrollbar{margin-inline-start:.25rem}:host[data-size=m]:not(._label-outside) .t-scrollbar{border-block-start:1rem solid transparent}:host[data-size=l]:not(._label-outside) .t-scrollbar{border-block-start:1.25rem solid transparent}.t-tags{display:flex;padding-inline-start:.25rem}.t-tags_expandable{overflow:hidden}.t-tags_empty{block-size:0}:host._expandable .t-tags{flex-wrap:wrap;white-space:normal;overflow:hidden}:host._readonly .t-tags{pointer-events:none}:host[data-size=m]:not(._label-outside) .t-tags,:host[data-size=l]:not(._label-outside) .t-tags{padding:0}.t-tags tui-tag:last-of-type{max-inline-size:80%}.t-content{align-items:flex-start}:host[data-size=s] .t-content{min-block-size:var(--tui-height-s)}:host[data-size=m] .t-content{min-block-size:var(--tui-height-m)}:host[data-size=l] .t-content{min-block-size:var(--tui-height-l)}:host[data-size=s] .t-icon-wrapper{block-size:var(--tui-height-s)}:host[data-size=m] .t-icon-wrapper{block-size:var(--tui-height-m)}:host[data-size=l] .t-icon-wrapper{block-size:var(--tui-height-l)}.t-absolute-wrapper{position:absolute;top:0;left:0;inline-size:100%;block-size:100%;display:flex;flex-direction:column;justify-content:center}:host[data-size=m] .t-absolute-wrapper{block-size:var(--tui-height-m)}:host[data-size=l] .t-absolute-wrapper{block-size:var(--tui-height-l)}.t-wrapper{position:relative;display:flex;align-items:center;padding:0;box-sizing:border-box}:host[data-size=s] .t-wrapper{min-block-size:var(--tui-height-s);padding:calc((var(--tui-height-s) - 1.5rem) / 2) 0}:host[data-size=m] .t-wrapper{min-block-size:var(--tui-height-m);padding:calc((var(--tui-height-m) - var(--tui-height-xs) - .25rem) / 2) 0}:host[data-size=l] .t-wrapper{padding:calc((var(--tui-height-l) - var(--tui-height-s) - .25rem) / 2) 0}:host[data-size=m]:not(._label-outside) .t-wrapper{padding:calc((var(--tui-height-m) - 2rem) / 2) 0}:host[data-size=l]:not(._label-outside) .t-wrapper{padding:calc((var(--tui-height-l) - 2.5rem) / 2) 0}.t-tag{margin:.125rem .5rem .125rem -.25rem;margin-inline-start:-.25rem;margin-inline-end:.5rem;max-inline-size:100%;flex-shrink:0}:host[data-size=m] .t-tag{margin-inline-start:-.125rem;margin-inline-end:.375rem}.t-text:after{content:\",\\a0\"}.t-text_disabled{color:var(--tui-text-tertiary)}.t-text_error{color:var(--tui-text-negative)}.t-text:not(.t-text_comma):last-of-type:after{content:\"\"}:host:not(._expandable) .t-text{white-space:nowrap}.t-input-wrapper,.t-value-content{position:relative;display:flex;flex:1;max-inline-size:100%}:host[data-size=s] .t-input-wrapper,:host[data-size=s] .t-value-content{min-block-size:1.5rem}:host[data-size=m] .t-input-wrapper,:host[data-size=m] .t-value-content{min-block-size:calc(var(--tui-height-xs) + 2 * .125rem)}:host[data-size=l] .t-input-wrapper,:host[data-size=l] .t-value-content{min-block-size:calc(var(--tui-height-s) + 2 * .125rem)}:host:not(._label-outside) .t-input-wrapper,:host:not(._label-outside) .t-value-content{min-block-size:1rem}.t-input-wrapper_collapsed{flex:0;margin-inline-start:-.5rem}.t-value-content:empty{display:none}.t-ghost{visibility:hidden;white-space:pre;text-overflow:clip;min-inline-size:.125rem}:host:not(._expandable) .t-ghost{min-inline-size:2rem}.t-native{margin:0;border-width:0;border-radius:inherit;background:none;font-size:inherit;line-height:inherit;font-weight:inherit;color:inherit;caret-color:currentColor;outline:none;-webkit-appearance:none;appearance:none;word-break:keep-all;-webkit-text-fill-color:currentColor;position:absolute;top:0;left:0;inline-size:100%;block-size:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;box-sizing:border-box;padding:0;cursor:inherit}.t-native:-webkit-autofill,.t-native:-webkit-autofill:hover,.t-native:-webkit-autofill:focus{-webkit-text-fill-color:var(--tui-text-primary)!important;border-color:var(--tui-service-autofill-background);box-shadow:0 0 0 100rem var(--tui-service-autofill-background) inset!important}.t-native[inputMode=none]{caret-color:transparent}.t-native_hidden{opacity:0;text-indent:-10em}.t-native::placeholder{color:var(--tui-text-tertiary);opacity:0}:host-context([tuiTheme=\"dark\"]) .t-native::placeholder{color:var(--tui-text-tertiary)}:host._focused .t-native:not(:read-only)::placeholder{opacity:1}.t-error-icon{display:block;color:var(--tui-status-negative);font-size:1rem}:host._readonly .t-textfield-icon ::ng-deep [tuiAppearance][data-appearance=icon]{pointer-events:none}@media (hover: hover) and (pointer: fine){:host:not(._readonly):not(._disabled):hover .t-textfield-icon ::ng-deep [tuiAppearance][data-appearance=icon]:before{color:var(--tui-text-secondary)}}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i4.PolymorpheusOutlet, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }, { kind: "component", type: i5.TuiScrollbar, selector: "tui-scrollbar", inputs: ["hidden"] }, { kind: "component", type: i6.TuiTooltipComponent, selector: "tui-tooltip", inputs: ["content", "direction", "appearance", "showDelay", "hideDelay", "describeId", "context"] }, { kind: "component", type: i7.TuiTagComponent, selector: "tui-tag, a[tuiTag], button[tuiTag]", inputs: ["value", "editable", "separator", "maxLength", "size", "showLoader", "status", "hoverable", "removable", "disabled", "autoColor", "leftContent"], outputs: ["edited"] }, { kind: "directive", type: i8.TuiWrapperDirective, selector: "[tuiWrapper]", inputs: ["disabled", "readOnly", "hover", "active", "focus", "invalid", "appearance"] }, { kind: "directive", type: i8.TuiLegacyDropdownOpenMonitorDirective, selector: "[tuiDropdownOpenMonitor]" }, { kind: "directive", type: i9.TuiAppearance, selector: "[tuiAppearance]", inputs: ["tuiAppearance", "tuiAppearanceState", "tuiAppearanceFocus", "tuiAppearanceMode"] }, { kind: "component", type: i10.TuiIcon, selector: "tui-icon", inputs: ["icon", "background"] }, { kind: "directive", type: i1.TuiDropdownDirective, selector: "[tuiDropdown]:not(ng-container):not(ng-template)", inputs: ["tuiDropdown"], exportAs: ["tuiDropdown"] }, { kind: "directive", type: i1.TuiDropdownOpen, selector: "[tuiDropdown][tuiDropdownOpen],[tuiDropdown][tuiDropdownOpenChange]", inputs: ["tuiDropdownEnabled", "tuiDropdownOpen"], outputs: ["tuiDropdownOpenChange"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
391
+ ], queries: [{ propertyName: "datalist", first: true, predicate: TuiDataListDirective, descendants: true, read: TemplateRef }, { propertyName: "valueContent", first: true, predicate: PolymorpheusOutlet, descendants: true }], viewQueries: [{ propertyName: "dropdown", first: true, predicate: TuiDropdownOpen, descendants: true }, { propertyName: "focusableElement", first: true, predicate: ["focusableElement"], descendants: true }, { propertyName: "tagsContainer", first: true, predicate: ["tagsContainer"], descendants: true }, { propertyName: "cleanerSvg", first: true, predicate: ["cleaner"], descendants: true, read: ElementRef }, { propertyName: "scrollBar", first: true, predicate: TuiScrollbar, descendants: true, read: ElementRef }, { propertyName: "errorIconTemplate", first: true, predicate: ["errorIcon"], descendants: true }, { propertyName: "tags", predicate: ["tag"], descendants: true, read: ElementRef }], usesInheritance: true, hostDirectives: [{ directive: i1.TuiDropdownFixed }], ngImport: i0, template: "@if (hintOptions?.change$ | async) {}\n<div\n tuiDropdownOpenMonitor\n class=\"t-hosted\"\n [tuiDropdown]=\"datalist || ''\"\n [tuiDropdownEnabled]=\"canOpen\"\n [(tuiDropdownOpen)]=\"open\"\n (tuiActiveZoneChange)=\"onActiveZone($event)\"\n>\n <div\n tuiWrapper\n [appearance]=\"appearance\"\n [disabled]=\"computedDisabled\"\n [focus]=\"computedFocused\"\n [hover]=\"pseudoHover\"\n [invalid]=\"computedInvalid\"\n [readOnly]=\"readOnly\"\n (click.prevent.zoneless)=\"detectRetargetFromLabel($event)\"\n (mousedown)=\"onMouseDown($event)\"\n >\n <div class=\"t-content\">\n @if (iconStart) {\n <div class=\"t-icon t-icon_left t-textfield-icon t-icon-wrapper\">\n <tui-icon\n *polymorpheusOutlet=\"iconStart as src; context: {$implicit: size}\"\n tuiAppearance=\"icon\"\n [icon]=\"src.toString()\"\n />\n </div>\n }\n <div class=\"t-wrapper\">\n <div class=\"t-absolute-wrapper\">\n @if (hasPlaceholder) {\n <div\n automation-id=\"tui-input-tag__placeholder\"\n class=\"t-placeholder\"\n [class.t-placeholder_raised]=\"placeholderRaised\"\n >\n <ng-content />\n </div>\n }\n </div>\n <tui-scrollbar\n class=\"t-scrollbar\"\n [hidden]=\"!expandable\"\n [style.maxHeight.rem]=\"computeMaxHeight\"\n >\n <div\n class=\"t-tags\"\n [class.t-tags_empty]=\"tagsEmpty\"\n >\n @if (labelOutside) {\n @for (item of value; track trackByFn($index, item)) {\n <tui-tag\n #tag\n automation-id=\"tui-input-tag__tag\"\n tabIndex=\"-1\"\n class=\"t-tag\"\n [autoColor]=\"autoColor\"\n [disabled]=\"computedDisabled || disabledItemHandler(item)\"\n [editable]=\"editable && !readOnly\"\n [hoverable]=\"!readOnly\"\n [leftContent]=\"getLeftContent(item)\"\n [maxLength]=\"maxLength\"\n [removable]=\"!readOnly && removable\"\n [separator]=\"separator\"\n [size]=\"controller.size\"\n [status]=\"status\"\n [value]=\"item.toString()\"\n (edited)=\"onTagEdited($event, $index)\"\n (keydown.arrowLeft.prevent)=\"onTagKeyDownArrowLeft($index)\"\n (keydown.arrowRight.prevent)=\"onTagKeyDownArrowRight($index)\"\n />\n }\n } @else {\n @for (item of value; track item) {\n <span\n class=\"t-text\"\n [class.t-text_comma]=\"computedFocused && !inputHidden\"\n [class.t-text_disabled]=\"disabledItemHandler(item)\"\n [class.t-text_error]=\"!tagValidator(item)\"\n [textContent]=\"item\"\n ></span>\n }\n }\n <div\n class=\"t-input-wrapper\"\n [class.t-input-wrapper_collapsed]=\"computedDisabled || readOnly || inputHidden\"\n >\n <div class=\"t-ghost\">{{ search }}</div>\n <input\n #focusableElement\n automation-id=\"tui-input-tag__native\"\n type=\"text\"\n class=\"t-native\"\n [attr.maxLength]=\"maxLength\"\n [class.t-native_hidden]=\"inputHidden\"\n [disabled]=\"computedDisabled\"\n [id]=\"id\"\n [ngModel]=\"search\"\n [ngModelOptions]=\"{standalone: true}\"\n [placeholder]=\"placeholder\"\n [readOnly]=\"readOnly || inputHidden\"\n [tabIndex]=\"computedFocusable ? 0 : -1\"\n (drop.prevent)=\"onDrop($any($event))\"\n (keydown.arrowLeft)=\"onFieldKeyDownArrowLeft($event)\"\n (keydown.backspace)=\"onFieldKeyDownBackspace($event)\"\n (keydown.enter.prevent)=\"onFieldKeyDownEnter()\"\n (ngModelChange)=\"onInput($event)\"\n (paste.prevent)=\"onPaste($event)\"\n />\n </div>\n </div>\n <div class=\"t-value-content\">\n <ng-content select=\"tuiContent\" />\n </div>\n </tui-scrollbar>\n </div>\n <ng-content select=\"select\" />\n @if (hasRightIcons) {\n <div class=\"t-icons t-icon-wrapper\">\n @if (hasCleaner) {\n <tui-icon\n *polymorpheusOutlet=\"iconCleaner as src; context: {$implicit: size}\"\n #cleaner\n automation-id=\"tui-input-tag__cleaner\"\n tuiAppearance=\"icon\"\n class=\"t-cleaner\"\n [icon]=\"src.toString()\"\n (click.stop)=\"onCleanerClick()\"\n />\n }\n @if (showHint) {\n <tui-tooltip\n automation-id=\"tui-input-tag__tooltip\"\n class=\"t-tooltip\"\n [content]=\"hintOptions?.content\"\n [describeId]=\"id\"\n />\n }\n @if (icon) {\n <div class=\"t-icon t-textfield-icon\">\n <tui-icon\n *polymorpheusOutlet=\"icon as src; context: {$implicit: size}\"\n tuiAppearance=\"icon\"\n [icon]=\"src.toString()\"\n />\n </div>\n }\n </div>\n }\n </div>\n <ng-template #errorIcon>\n <tui-icon\n class=\"t-error-icon\"\n [icon]=\"icons.error\"\n />\n </ng-template>\n </div>\n</div>\n", styles: [":host{position:relative;display:block;text-align:start;border-radius:var(--tui-radius-m);block-size:var(--tui-height);min-block-size:var(--tui-height);max-block-size:var(--tui-height)}:host[data-size=s]{--tui-height: var(--tui-height-s);font:var(--tui-font-text-s)}:host[data-size=m]{--tui-height: var(--tui-height-m);font:var(--tui-font-text-s)}:host[data-size=l]{--tui-height: var(--tui-height-l);font:var(--tui-font-text-m);line-height:1.25rem}:host :host-context(*:disabled){pointer-events:none}.t-input{padding:0;margin:0;border-width:0;border-radius:inherit;background:none;font-size:inherit;line-height:inherit;font-weight:inherit;color:inherit;caret-color:currentColor;outline:none;-webkit-appearance:none;appearance:none;word-break:keep-all;-webkit-text-fill-color:currentColor;position:absolute;top:0;left:0;inline-size:100%;block-size:100%;border-style:solid;border-color:transparent;border-inline-start-width:var(--t-border-start, 0);border-inline-end-width:var(--t-border-end, 0);text-indent:var(--t-text-indent);color:var(--tui-text-primary);text-align:inherit;box-sizing:border-box;white-space:nowrap;overflow:hidden;text-transform:inherit;resize:none}.t-input:-webkit-autofill,.t-input:-webkit-autofill:hover,.t-input:-webkit-autofill:focus{-webkit-text-fill-color:var(--tui-text-primary)!important;border-color:var(--tui-service-autofill-background);box-shadow:0 0 0 100rem var(--tui-service-autofill-background) inset!important}.t-input[inputMode=none]{caret-color:transparent}.t-input:-webkit-autofill,.t-input:-webkit-autofill:first-line{font-size:inherit;line-height:inherit}.t-input::-webkit-caps-lock-indicator,.t-input::-webkit-contacts-auto-fill-button,.t-input::-webkit-credit-card-auto-fill-button,.t-input::-webkit-credentials-auto-fill-button,.t-input::-webkit-strong-password-auto-fill-button{content:none!important;position:absolute;left:-62.4375rem;top:-62.4375rem;z-index:-999;display:none!important;background:transparent!important;pointer-events:none!important}.t-input::placeholder{color:var(--tui-text-tertiary);opacity:0}:host._focused:not(._readonly) .t-input::placeholder,:host-context(tui-primitive-textfield._focused:not(._readonly)) .t-input::placeholder,:host-context(tui-textarea._focused:not(._readonly)) .t-input::placeholder,:host-context(tui-text-area._focused:not(._readonly)) .t-input::placeholder{opacity:1}:host[data-size=s] .t-input,.t-input :host-context(tui-primitive-textfield[data-size=\"s\"]):not(tui-primitive-textfield),.t-input :host-context(tui-textarea[data-size=\"s\"]):not(tui-textarea),.t-input :host-context(tui-text-area[data-size=\"s\"]):not(tui-text-area){padding:0 var(--tui-padding-s)}:host[data-size=m] .t-input,.t-input :host-context(tui-primitive-textfield[data-size=\"m\"]):not(tui-primitive-textfield),.t-input :host-context(tui-textarea[data-size=\"m\"]):not(tui-textarea),.t-input :host-context(tui-text-area[data-size=\"m\"]):not(tui-text-area){padding:0 var(--tui-padding-m)}:host[data-size=l] .t-input,.t-input :host-context(tui-primitive-textfield[data-size=\"l\"]):not(tui-primitive-textfield),.t-input :host-context(tui-textarea[data-size=\"l\"]):not(tui-textarea),.t-input :host-context(tui-text-area[data-size=\"l\"]):not(tui-text-area){padding:0 var(--tui-padding-l)}:host._disabled .t-input,.t-input :host-context(tui-primitive-textfield._disabled),.t-input :host-context(tui-textarea._disabled),.t-input :host-context(tui-text-area._disabled){pointer-events:none}:host[data-size=l]:not(._label-outside) .t-input,.t-input :host-context(tui-primitive-textfield[data-size=\"l\"]:not(._label-outside)):not(tui-primitive-textfield){padding-block-start:1.25rem}:host[data-size=m]:not(._label-outside) .t-input,.t-input :host-context(tui-primitive-textfield[data-size=\"m\"]:not(._label-outside)):not(tui-primitive-textfield){padding-block-start:1rem}:host[data-size=l]:not(._label-outside) .t-input{padding-block-start:1.25rem}:host[data-size=l]:not(._label-outside) .t-input:-webkit-autofill+.t-content .t-placeholder{font-size:.8156rem;transform:translateY(-.625rem)}:host[data-size=m]:not(._label-outside) .t-input:-webkit-autofill+.t-content .t-placeholder{font-size:.69rem;transform:translateY(-.5rem)}:host._hidden input.t-input,.t-input :host-context(tui-primitive-textfield._hidden){opacity:0;text-indent:-10em}.t-content{display:flex;block-size:100%;inline-size:100%;box-sizing:border-box;align-items:center;overflow:hidden}:host[data-size=s] .t-content{padding:0 var(--tui-padding-s)}:host[data-size=m] .t-content{padding:0 var(--tui-padding-m)}:host[data-size=l] .t-content{padding:0 var(--tui-padding-l)}.t-wrapper{flex:1;min-inline-size:0;padding-inline-end:.25rem}.t-placeholder{transition-property:transform,font-size,color,letter-spacing;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;inline-size:100%;-webkit-user-select:none;user-select:none;font:var(--tui-font-text-s);color:var(--tui-text-secondary);pointer-events:none;will-change:transform;transform:translateY(0)}@supports (-webkit-hyphens: none){.t-placeholder{will-change:unset;transition-property:transform,color,letter-spacing}}.t-placeholder_raised{transform:translateY(-.625rem)}:host[data-size=m] .t-placeholder_raised{font:var(--tui-font-text-xs);line-height:1.25rem;transform:translateY(-.5rem);letter-spacing:.025rem}:host._invalid:not(._focused) .t-placeholder_raised,:host._invalid:not(._focused):hover .t-placeholder_raised{color:var(--tui-text-negative)}:host._focused .t-placeholder,:host[data-size=m]._focused._label-outside .t-placeholder,:host[data-size=l]._focused._label-outside .t-placeholder{color:var(--tui-text-tertiary)}:host[data-size=l] .t-placeholder{font:var(--tui-font-text-m);line-height:1.25rem}:host[data-size=l] .t-placeholder_raised{font-size:.8156rem}:host[data-size=m]._focused:not(._label-outside) .t-placeholder,:host[data-size=l]._focused:not(._label-outside) .t-placeholder{color:var(--tui-text-primary)}.t-cleaner{position:relative;display:flex;inline-size:1.5rem;block-size:1.5rem;align-items:center;justify-content:center;box-sizing:border-box;cursor:pointer;pointer-events:none;pointer-events:auto}:host._readonly .t-cleaner,:host._disabled .t-cleaner{pointer-events:none}.t-cleaner:before{font-size:1rem}.t-icon{position:relative;display:flex;inline-size:1.5rem;block-size:1.5rem;align-items:center;justify-content:center;box-sizing:border-box;cursor:pointer;pointer-events:none}:host[data-size=s] .t-icon_left{margin:0 .125rem 0 -.375rem}:host[data-size=m] .t-icon_left{margin-inline-start:-.125rem;margin-inline-end:.375rem}:host[data-size=l] .t-icon_left{margin-inline-end:.75rem}.t-icons{display:flex;align-items:center}:host[data-size=m] .t-icons{margin-inline-end:-.125rem}:host[data-size=s] .t-icons{margin-inline-end:-.375rem}:host:not([data-size=s]) .t-icons>:not(:first-child){margin-inline-start:.25rem}:host{cursor:text}:host._expandable{block-size:auto;max-block-size:none}:host._disabled,:host :host-context(*:disabled){pointer-events:none}:host._readonly{cursor:default}:host[data-size=m]{line-height:1rem}.t-hosted{display:block;border-radius:inherit}.t-scrollbar{scroll-behavior:var(--tui-scroll-behavior);margin-inline-start:-.25rem;min-inline-size:100%}:host:not(._label-outside) .t-scrollbar,:host._label-outside._icon-start .t-scrollbar{margin:0}:host[data-size=s]._icon-start .t-scrollbar{margin-inline-start:.25rem}:host[data-size=m]:not(._label-outside) .t-scrollbar{border-block-start:1rem solid transparent}:host[data-size=l]:not(._label-outside) .t-scrollbar{border-block-start:1.25rem solid transparent}.t-tags{display:flex;padding-inline-start:.25rem}.t-tags_expandable{overflow:hidden}.t-tags_empty{block-size:0}:host._expandable .t-tags{flex-wrap:wrap;white-space:normal;overflow:hidden}:host._readonly .t-tags{pointer-events:none}:host[data-size=m]:not(._label-outside) .t-tags,:host[data-size=l]:not(._label-outside) .t-tags{padding:0}.t-tags tui-tag:last-of-type{max-inline-size:80%}.t-content{align-items:flex-start}:host[data-size=s] .t-content{min-block-size:var(--tui-height-s)}:host[data-size=m] .t-content{min-block-size:var(--tui-height-m)}:host[data-size=l] .t-content{min-block-size:var(--tui-height-l)}:host[data-size=s] .t-icon-wrapper{block-size:var(--tui-height-s)}:host[data-size=m] .t-icon-wrapper{block-size:var(--tui-height-m)}:host[data-size=l] .t-icon-wrapper{block-size:var(--tui-height-l)}.t-absolute-wrapper{position:absolute;top:0;left:0;inline-size:100%;block-size:100%;display:flex;flex-direction:column;justify-content:center}:host[data-size=m] .t-absolute-wrapper{block-size:var(--tui-height-m)}:host[data-size=l] .t-absolute-wrapper{block-size:var(--tui-height-l)}.t-wrapper{position:relative;display:flex;align-items:center;padding:0;box-sizing:border-box}:host[data-size=s] .t-wrapper{min-block-size:var(--tui-height-s);padding:calc((var(--tui-height-s) - 1.5rem) / 2) 0}:host[data-size=m] .t-wrapper{min-block-size:var(--tui-height-m);padding:calc((var(--tui-height-m) - var(--tui-height-xs) - .25rem) / 2) 0}:host[data-size=l] .t-wrapper{padding:calc((var(--tui-height-l) - var(--tui-height-s) - .25rem) / 2) 0}:host[data-size=m]:not(._label-outside) .t-wrapper{padding:calc((var(--tui-height-m) - 2rem) / 2) 0}:host[data-size=l]:not(._label-outside) .t-wrapper{padding:calc((var(--tui-height-l) - 2.5rem) / 2) 0}.t-tag{margin:.125rem .5rem .125rem -.25rem;margin-inline-start:-.25rem;margin-inline-end:.5rem;max-inline-size:100%;flex-shrink:0}:host[data-size=m] .t-tag{margin-inline-start:-.125rem;margin-inline-end:.375rem}.t-text:after{content:\",\\a0\"}.t-text_disabled{color:var(--tui-text-tertiary)}.t-text_error{color:var(--tui-text-negative)}.t-text:not(.t-text_comma):last-of-type:after{content:\"\"}:host:not(._expandable) .t-text{white-space:nowrap}.t-input-wrapper,.t-value-content{position:relative;display:flex;flex:1;max-inline-size:100%}:host[data-size=s] .t-input-wrapper,:host[data-size=s] .t-value-content{min-block-size:1.5rem}:host[data-size=m] .t-input-wrapper,:host[data-size=m] .t-value-content{min-block-size:calc(var(--tui-height-xs) + 2 * .125rem)}:host[data-size=l] .t-input-wrapper,:host[data-size=l] .t-value-content{min-block-size:calc(var(--tui-height-s) + 2 * .125rem)}:host:not(._label-outside) .t-input-wrapper,:host:not(._label-outside) .t-value-content{min-block-size:1rem}.t-input-wrapper_collapsed{flex:0;margin-inline-start:-.5rem}.t-value-content:empty{display:none}.t-ghost{visibility:hidden;white-space:pre;text-overflow:clip;min-inline-size:.125rem}:host:not(._expandable) .t-ghost{min-inline-size:2rem}.t-native{margin:0;border-width:0;border-radius:inherit;background:none;font-size:inherit;line-height:inherit;font-weight:inherit;color:inherit;caret-color:currentColor;outline:none;-webkit-appearance:none;appearance:none;word-break:keep-all;-webkit-text-fill-color:currentColor;position:absolute;top:0;left:0;inline-size:100%;block-size:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;box-sizing:border-box;padding:0;cursor:inherit}.t-native:-webkit-autofill,.t-native:-webkit-autofill:hover,.t-native:-webkit-autofill:focus{-webkit-text-fill-color:var(--tui-text-primary)!important;border-color:var(--tui-service-autofill-background);box-shadow:0 0 0 100rem var(--tui-service-autofill-background) inset!important}.t-native[inputMode=none]{caret-color:transparent}.t-native_hidden{opacity:0;text-indent:-10em}.t-native::placeholder{color:var(--tui-text-tertiary);opacity:0}:host-context([tuiTheme=\"dark\"]) .t-native::placeholder{color:var(--tui-text-tertiary)}:host._focused .t-native:not(:read-only)::placeholder{opacity:1}.t-error-icon{display:block;color:var(--tui-status-negative);font-size:1rem}:host._readonly .t-textfield-icon ::ng-deep [tuiAppearance][data-appearance=icon]{pointer-events:none}@media (hover: hover) and (pointer: fine){:host:not(._readonly):not(._disabled):hover .t-textfield-icon ::ng-deep [tuiAppearance][data-appearance=icon]:before{color:var(--tui-text-secondary)}}\n"], dependencies: [{ kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i3.PolymorpheusOutlet, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }, { kind: "component", type: i4.TuiScrollbar, selector: "tui-scrollbar", inputs: ["hidden"] }, { kind: "component", type: i5.TuiTooltipComponent, selector: "tui-tooltip", inputs: ["content", "direction", "appearance", "showDelay", "hideDelay", "describeId", "context"] }, { kind: "component", type: i6.TuiTagComponent, selector: "tui-tag, a[tuiTag], button[tuiTag]", inputs: ["value", "editable", "separator", "maxLength", "size", "showLoader", "status", "hoverable", "removable", "disabled", "autoColor", "leftContent"], outputs: ["edited"] }, { kind: "directive", type: i7.TuiWrapperDirective, selector: "[tuiWrapper]", inputs: ["disabled", "readOnly", "hover", "active", "focus", "invalid", "appearance"] }, { kind: "directive", type: i7.TuiLegacyDropdownOpenMonitorDirective, selector: "[tuiDropdownOpenMonitor]" }, { kind: "directive", type: i8.TuiAppearance, selector: "[tuiAppearance]", inputs: ["tuiAppearance", "tuiAppearanceState", "tuiAppearanceFocus", "tuiAppearanceMode"] }, { kind: "component", type: i9.TuiIcon, selector: "tui-icon:not([tuiBadge])", inputs: ["background"] }, { kind: "directive", type: i1.TuiDropdownDirective, selector: "[tuiDropdown]:not(ng-container):not(ng-template)", inputs: ["tuiDropdown"], exportAs: ["tuiDropdown"] }, { kind: "directive", type: i1.TuiDropdownOpen, selector: "[tuiDropdown][tuiDropdownOpen],[tuiDropdown][tuiDropdownOpenChange]", inputs: ["tuiDropdownEnabled", "tuiDropdownOpen"], outputs: ["tuiDropdownOpenChange"] }, { kind: "pipe", type: i10.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
392
392
  }
393
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.9", ngImport: i0, type: TuiInputTagComponent, decorators: [{
393
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiInputTagComponent, decorators: [{
394
394
  type: Component,
395
395
  args: [{ standalone: false, selector: 'tui-input-tag', changeDetection: ChangeDetectionStrategy.OnPush, providers: [
396
396
  tuiAsFocusableItemAccessor(TuiInputTagComponent),
@@ -404,7 +404,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.9", ngImpor
404
404
  '[class._label-outside]': 'labelOutside',
405
405
  '(focusin.capture.zoneless)': 'onFocusInOut()',
406
406
  '(focusout.capture.zoneless)': 'onFocusInOut()',
407
- }, template: "<ng-container *ngIf=\"hintOptions?.change$ | async\" />\n<div\n tuiDropdownOpenMonitor\n class=\"t-hosted\"\n [tuiDropdown]=\"datalist || ''\"\n [tuiDropdownEnabled]=\"canOpen\"\n [(tuiDropdownOpen)]=\"open\"\n (tuiActiveZoneChange)=\"onActiveZone($event)\"\n>\n <div\n tuiWrapper\n [appearance]=\"appearance\"\n [disabled]=\"computedDisabled\"\n [focus]=\"computedFocused\"\n [hover]=\"pseudoHover\"\n [invalid]=\"computedInvalid\"\n [readOnly]=\"readOnly\"\n (click.prevent.zoneless)=\"detectRetargetFromLabel($event)\"\n (mousedown)=\"onMouseDown($event)\"\n >\n <div class=\"t-content\">\n <div\n *ngIf=\"iconStart\"\n class=\"t-icon t-icon_left t-textfield-icon t-icon-wrapper\"\n >\n <tui-icon\n *polymorpheusOutlet=\"iconStart as src; context: {$implicit: size}\"\n tuiAppearance=\"icon\"\n [icon]=\"src.toString()\"\n />\n </div>\n <div class=\"t-wrapper\">\n <div class=\"t-absolute-wrapper\">\n <div\n *ngIf=\"hasPlaceholder\"\n automation-id=\"tui-input-tag__placeholder\"\n class=\"t-placeholder\"\n [class.t-placeholder_raised]=\"placeholderRaised\"\n >\n <ng-content />\n </div>\n </div>\n <tui-scrollbar\n class=\"t-scrollbar\"\n [hidden]=\"!expandable\"\n [style.maxHeight.rem]=\"computeMaxHeight\"\n >\n <div\n class=\"t-tags\"\n [class.t-tags_empty]=\"tagsEmpty\"\n >\n <ng-container *ngIf=\"labelOutside; else text\">\n <tui-tag\n *ngFor=\"let item of value; index as index; trackBy: trackByFn\"\n #tag\n automation-id=\"tui-input-tag__tag\"\n tabIndex=\"-1\"\n class=\"t-tag\"\n [autoColor]=\"autoColor\"\n [disabled]=\"computedDisabled || disabledItemHandler(item)\"\n [editable]=\"editable && !readOnly\"\n [hoverable]=\"!readOnly\"\n [leftContent]=\"getLeftContent(item)\"\n [maxLength]=\"maxLength\"\n [removable]=\"!readOnly && removable\"\n [separator]=\"separator\"\n [size]=\"controller.size\"\n [status]=\"status\"\n [value]=\"item.toString()\"\n (edited)=\"onTagEdited($event, index)\"\n (keydown.arrowLeft.prevent)=\"onTagKeyDownArrowLeft(index)\"\n (keydown.arrowRight.prevent)=\"onTagKeyDownArrowRight(index)\"\n />\n </ng-container>\n <ng-template #text>\n <span\n *ngFor=\"let item of value\"\n class=\"t-text\"\n [class.t-text_comma]=\"computedFocused && !inputHidden\"\n [class.t-text_disabled]=\"disabledItemHandler(item)\"\n [class.t-text_error]=\"!tagValidator(item)\"\n [textContent]=\"item\"\n ></span>\n </ng-template>\n <div\n class=\"t-input-wrapper\"\n [class.t-input-wrapper_collapsed]=\"computedDisabled || readOnly || inputHidden\"\n >\n <div class=\"t-ghost\">{{ search }}</div>\n <input\n #focusableElement\n automation-id=\"tui-input-tag__native\"\n type=\"text\"\n class=\"t-native\"\n [attr.maxLength]=\"maxLength\"\n [class.t-native_hidden]=\"inputHidden\"\n [disabled]=\"computedDisabled\"\n [id]=\"id\"\n [ngModel]=\"search\"\n [ngModelOptions]=\"{standalone: true}\"\n [placeholder]=\"placeholder\"\n [readOnly]=\"readOnly || inputHidden\"\n [tabIndex]=\"computedFocusable ? 0 : -1\"\n (drop.prevent)=\"onDrop($any($event))\"\n (keydown.arrowLeft)=\"onFieldKeyDownArrowLeft($event)\"\n (keydown.backspace)=\"onFieldKeyDownBackspace($event)\"\n (keydown.enter.prevent)=\"onFieldKeyDownEnter()\"\n (ngModelChange)=\"onInput($event)\"\n (paste.prevent)=\"onPaste($event)\"\n />\n </div>\n </div>\n <div class=\"t-value-content\">\n <ng-content select=\"tuiContent\" />\n </div>\n </tui-scrollbar>\n </div>\n <ng-content select=\"select\" />\n <div\n *ngIf=\"hasRightIcons\"\n class=\"t-icons t-icon-wrapper\"\n >\n <ng-container *ngIf=\"hasCleaner\">\n <tui-icon\n *polymorpheusOutlet=\"iconCleaner as src; context: {$implicit: size}\"\n #cleaner\n automation-id=\"tui-input-tag__cleaner\"\n tuiAppearance=\"icon\"\n class=\"t-cleaner\"\n [icon]=\"src.toString()\"\n (click.stop)=\"onCleanerClick()\"\n />\n </ng-container>\n <tui-tooltip\n *ngIf=\"showHint\"\n automation-id=\"tui-input-tag__tooltip\"\n class=\"t-tooltip\"\n [content]=\"hintOptions?.content\"\n [describeId]=\"id\"\n />\n <div\n *ngIf=\"icon\"\n class=\"t-icon t-textfield-icon\"\n >\n <tui-icon\n *polymorpheusOutlet=\"icon as src; context: {$implicit: size}\"\n tuiAppearance=\"icon\"\n [icon]=\"src.toString()\"\n />\n </div>\n </div>\n </div>\n <ng-template #errorIcon>\n <tui-icon\n class=\"t-error-icon\"\n [icon]=\"icons.error\"\n />\n </ng-template>\n </div>\n</div>\n", styles: [":host{position:relative;display:block;text-align:start;border-radius:var(--tui-radius-m);block-size:var(--tui-height);min-block-size:var(--tui-height);max-block-size:var(--tui-height)}:host[data-size=s]{--tui-height: var(--tui-height-s);font:var(--tui-font-text-s)}:host[data-size=m]{--tui-height: var(--tui-height-m);font:var(--tui-font-text-s)}:host[data-size=l]{--tui-height: var(--tui-height-l);font:var(--tui-font-text-m);line-height:1.25rem}:host :host-context(*:disabled){pointer-events:none}.t-input{padding:0;margin:0;border-width:0;border-radius:inherit;background:none;font-size:inherit;line-height:inherit;font-weight:inherit;color:inherit;caret-color:currentColor;outline:none;-webkit-appearance:none;appearance:none;word-break:keep-all;-webkit-text-fill-color:currentColor;position:absolute;top:0;left:0;inline-size:100%;block-size:100%;border-style:solid;border-color:transparent;border-inline-start-width:var(--t-border-start, 0);border-inline-end-width:var(--t-border-end, 0);text-indent:var(--t-text-indent);color:var(--tui-text-primary);text-align:inherit;box-sizing:border-box;white-space:nowrap;overflow:hidden;text-transform:inherit;resize:none}.t-input:-webkit-autofill,.t-input:-webkit-autofill:hover,.t-input:-webkit-autofill:focus{-webkit-text-fill-color:var(--tui-text-primary)!important;border-color:var(--tui-service-autofill-background);box-shadow:0 0 0 100rem var(--tui-service-autofill-background) inset!important}.t-input[inputMode=none]{caret-color:transparent}.t-input:-webkit-autofill,.t-input:-webkit-autofill:first-line{font-size:inherit;line-height:inherit}.t-input::-webkit-caps-lock-indicator,.t-input::-webkit-contacts-auto-fill-button,.t-input::-webkit-credit-card-auto-fill-button,.t-input::-webkit-credentials-auto-fill-button,.t-input::-webkit-strong-password-auto-fill-button{content:none!important;position:absolute;left:-62.4375rem;top:-62.4375rem;z-index:-999;display:none!important;background:transparent!important;pointer-events:none!important}.t-input::placeholder{color:var(--tui-text-tertiary);opacity:0}:host._focused:not(._readonly) .t-input::placeholder,:host-context(tui-primitive-textfield._focused:not(._readonly)) .t-input::placeholder,:host-context(tui-textarea._focused:not(._readonly)) .t-input::placeholder,:host-context(tui-text-area._focused:not(._readonly)) .t-input::placeholder{opacity:1}:host[data-size=s] .t-input,.t-input :host-context(tui-primitive-textfield[data-size=\"s\"]):not(tui-primitive-textfield),.t-input :host-context(tui-textarea[data-size=\"s\"]):not(tui-textarea),.t-input :host-context(tui-text-area[data-size=\"s\"]):not(tui-text-area){padding:0 var(--tui-padding-s)}:host[data-size=m] .t-input,.t-input :host-context(tui-primitive-textfield[data-size=\"m\"]):not(tui-primitive-textfield),.t-input :host-context(tui-textarea[data-size=\"m\"]):not(tui-textarea),.t-input :host-context(tui-text-area[data-size=\"m\"]):not(tui-text-area){padding:0 var(--tui-padding-m)}:host[data-size=l] .t-input,.t-input :host-context(tui-primitive-textfield[data-size=\"l\"]):not(tui-primitive-textfield),.t-input :host-context(tui-textarea[data-size=\"l\"]):not(tui-textarea),.t-input :host-context(tui-text-area[data-size=\"l\"]):not(tui-text-area){padding:0 var(--tui-padding-l)}:host._disabled .t-input,.t-input :host-context(tui-primitive-textfield._disabled),.t-input :host-context(tui-textarea._disabled),.t-input :host-context(tui-text-area._disabled){pointer-events:none}:host[data-size=l]:not(._label-outside) .t-input,.t-input :host-context(tui-primitive-textfield[data-size=\"l\"]:not(._label-outside)):not(tui-primitive-textfield){padding-block-start:1.25rem}:host[data-size=m]:not(._label-outside) .t-input,.t-input :host-context(tui-primitive-textfield[data-size=\"m\"]:not(._label-outside)):not(tui-primitive-textfield){padding-block-start:1rem}:host[data-size=l]:not(._label-outside) .t-input{padding-block-start:1.25rem}:host[data-size=l]:not(._label-outside) .t-input:-webkit-autofill+.t-content .t-placeholder{font-size:.8156rem;transform:translateY(-.625rem)}:host[data-size=m]:not(._label-outside) .t-input:-webkit-autofill+.t-content .t-placeholder{font-size:.69rem;transform:translateY(-.5rem)}:host._hidden input.t-input,.t-input :host-context(tui-primitive-textfield._hidden){opacity:0;text-indent:-10em}.t-content{display:flex;block-size:100%;inline-size:100%;box-sizing:border-box;align-items:center;overflow:hidden}:host[data-size=s] .t-content{padding:0 var(--tui-padding-s)}:host[data-size=m] .t-content{padding:0 var(--tui-padding-m)}:host[data-size=l] .t-content{padding:0 var(--tui-padding-l)}.t-wrapper{flex:1;min-inline-size:0;padding-inline-end:.25rem}.t-placeholder{transition-property:transform,font-size,color,letter-spacing;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;inline-size:100%;-webkit-user-select:none;user-select:none;font:var(--tui-font-text-s);color:var(--tui-text-secondary);pointer-events:none;will-change:transform;transform:translateY(0)}@supports (-webkit-hyphens: none){.t-placeholder{will-change:unset;transition-property:transform,color,letter-spacing}}.t-placeholder_raised{transform:translateY(-.625rem)}:host[data-size=m] .t-placeholder_raised{font:var(--tui-font-text-xs);line-height:1.25rem;transform:translateY(-.5rem);letter-spacing:.025rem}:host._invalid:not(._focused) .t-placeholder_raised,:host._invalid:not(._focused):hover .t-placeholder_raised{color:var(--tui-text-negative)}:host._focused .t-placeholder,:host[data-size=m]._focused._label-outside .t-placeholder,:host[data-size=l]._focused._label-outside .t-placeholder{color:var(--tui-text-tertiary)}:host[data-size=l] .t-placeholder{font:var(--tui-font-text-m);line-height:1.25rem}:host[data-size=l] .t-placeholder_raised{font-size:.8156rem}:host[data-size=m]._focused:not(._label-outside) .t-placeholder,:host[data-size=l]._focused:not(._label-outside) .t-placeholder{color:var(--tui-text-primary)}.t-cleaner{position:relative;display:flex;inline-size:1.5rem;block-size:1.5rem;align-items:center;justify-content:center;box-sizing:border-box;cursor:pointer;pointer-events:none;pointer-events:auto}:host._readonly .t-cleaner,:host._disabled .t-cleaner{pointer-events:none}.t-cleaner:before{font-size:1rem}.t-icon{position:relative;display:flex;inline-size:1.5rem;block-size:1.5rem;align-items:center;justify-content:center;box-sizing:border-box;cursor:pointer;pointer-events:none}:host[data-size=s] .t-icon_left{margin:0 .125rem 0 -.375rem}:host[data-size=m] .t-icon_left{margin-inline-start:-.125rem;margin-inline-end:.375rem}:host[data-size=l] .t-icon_left{margin-inline-end:.75rem}.t-icons{display:flex;align-items:center}:host[data-size=m] .t-icons{margin-inline-end:-.125rem}:host[data-size=s] .t-icons{margin-inline-end:-.375rem}:host:not([data-size=s]) .t-icons>:not(:first-child){margin-inline-start:.25rem}:host{cursor:text}:host._expandable{block-size:auto;max-block-size:none}:host._disabled,:host :host-context(*:disabled){pointer-events:none}:host._readonly{cursor:default}:host[data-size=m]{line-height:1rem}.t-hosted{display:block;border-radius:inherit}.t-scrollbar{scroll-behavior:var(--tui-scroll-behavior);margin-inline-start:-.25rem;min-inline-size:100%}:host:not(._label-outside) .t-scrollbar,:host._label-outside._icon-start .t-scrollbar{margin:0}:host[data-size=s]._icon-start .t-scrollbar{margin-inline-start:.25rem}:host[data-size=m]:not(._label-outside) .t-scrollbar{border-block-start:1rem solid transparent}:host[data-size=l]:not(._label-outside) .t-scrollbar{border-block-start:1.25rem solid transparent}.t-tags{display:flex;padding-inline-start:.25rem}.t-tags_expandable{overflow:hidden}.t-tags_empty{block-size:0}:host._expandable .t-tags{flex-wrap:wrap;white-space:normal;overflow:hidden}:host._readonly .t-tags{pointer-events:none}:host[data-size=m]:not(._label-outside) .t-tags,:host[data-size=l]:not(._label-outside) .t-tags{padding:0}.t-tags tui-tag:last-of-type{max-inline-size:80%}.t-content{align-items:flex-start}:host[data-size=s] .t-content{min-block-size:var(--tui-height-s)}:host[data-size=m] .t-content{min-block-size:var(--tui-height-m)}:host[data-size=l] .t-content{min-block-size:var(--tui-height-l)}:host[data-size=s] .t-icon-wrapper{block-size:var(--tui-height-s)}:host[data-size=m] .t-icon-wrapper{block-size:var(--tui-height-m)}:host[data-size=l] .t-icon-wrapper{block-size:var(--tui-height-l)}.t-absolute-wrapper{position:absolute;top:0;left:0;inline-size:100%;block-size:100%;display:flex;flex-direction:column;justify-content:center}:host[data-size=m] .t-absolute-wrapper{block-size:var(--tui-height-m)}:host[data-size=l] .t-absolute-wrapper{block-size:var(--tui-height-l)}.t-wrapper{position:relative;display:flex;align-items:center;padding:0;box-sizing:border-box}:host[data-size=s] .t-wrapper{min-block-size:var(--tui-height-s);padding:calc((var(--tui-height-s) - 1.5rem) / 2) 0}:host[data-size=m] .t-wrapper{min-block-size:var(--tui-height-m);padding:calc((var(--tui-height-m) - var(--tui-height-xs) - .25rem) / 2) 0}:host[data-size=l] .t-wrapper{padding:calc((var(--tui-height-l) - var(--tui-height-s) - .25rem) / 2) 0}:host[data-size=m]:not(._label-outside) .t-wrapper{padding:calc((var(--tui-height-m) - 2rem) / 2) 0}:host[data-size=l]:not(._label-outside) .t-wrapper{padding:calc((var(--tui-height-l) - 2.5rem) / 2) 0}.t-tag{margin:.125rem .5rem .125rem -.25rem;margin-inline-start:-.25rem;margin-inline-end:.5rem;max-inline-size:100%;flex-shrink:0}:host[data-size=m] .t-tag{margin-inline-start:-.125rem;margin-inline-end:.375rem}.t-text:after{content:\",\\a0\"}.t-text_disabled{color:var(--tui-text-tertiary)}.t-text_error{color:var(--tui-text-negative)}.t-text:not(.t-text_comma):last-of-type:after{content:\"\"}:host:not(._expandable) .t-text{white-space:nowrap}.t-input-wrapper,.t-value-content{position:relative;display:flex;flex:1;max-inline-size:100%}:host[data-size=s] .t-input-wrapper,:host[data-size=s] .t-value-content{min-block-size:1.5rem}:host[data-size=m] .t-input-wrapper,:host[data-size=m] .t-value-content{min-block-size:calc(var(--tui-height-xs) + 2 * .125rem)}:host[data-size=l] .t-input-wrapper,:host[data-size=l] .t-value-content{min-block-size:calc(var(--tui-height-s) + 2 * .125rem)}:host:not(._label-outside) .t-input-wrapper,:host:not(._label-outside) .t-value-content{min-block-size:1rem}.t-input-wrapper_collapsed{flex:0;margin-inline-start:-.5rem}.t-value-content:empty{display:none}.t-ghost{visibility:hidden;white-space:pre;text-overflow:clip;min-inline-size:.125rem}:host:not(._expandable) .t-ghost{min-inline-size:2rem}.t-native{margin:0;border-width:0;border-radius:inherit;background:none;font-size:inherit;line-height:inherit;font-weight:inherit;color:inherit;caret-color:currentColor;outline:none;-webkit-appearance:none;appearance:none;word-break:keep-all;-webkit-text-fill-color:currentColor;position:absolute;top:0;left:0;inline-size:100%;block-size:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;box-sizing:border-box;padding:0;cursor:inherit}.t-native:-webkit-autofill,.t-native:-webkit-autofill:hover,.t-native:-webkit-autofill:focus{-webkit-text-fill-color:var(--tui-text-primary)!important;border-color:var(--tui-service-autofill-background);box-shadow:0 0 0 100rem var(--tui-service-autofill-background) inset!important}.t-native[inputMode=none]{caret-color:transparent}.t-native_hidden{opacity:0;text-indent:-10em}.t-native::placeholder{color:var(--tui-text-tertiary);opacity:0}:host-context([tuiTheme=\"dark\"]) .t-native::placeholder{color:var(--tui-text-tertiary)}:host._focused .t-native:not(:read-only)::placeholder{opacity:1}.t-error-icon{display:block;color:var(--tui-status-negative);font-size:1rem}:host._readonly .t-textfield-icon ::ng-deep [tuiAppearance][data-appearance=icon]{pointer-events:none}@media (hover: hover) and (pointer: fine){:host:not(._readonly):not(._disabled):hover .t-textfield-icon ::ng-deep [tuiAppearance][data-appearance=icon]:before{color:var(--tui-text-secondary)}}\n"] }]
407
+ }, template: "@if (hintOptions?.change$ | async) {}\n<div\n tuiDropdownOpenMonitor\n class=\"t-hosted\"\n [tuiDropdown]=\"datalist || ''\"\n [tuiDropdownEnabled]=\"canOpen\"\n [(tuiDropdownOpen)]=\"open\"\n (tuiActiveZoneChange)=\"onActiveZone($event)\"\n>\n <div\n tuiWrapper\n [appearance]=\"appearance\"\n [disabled]=\"computedDisabled\"\n [focus]=\"computedFocused\"\n [hover]=\"pseudoHover\"\n [invalid]=\"computedInvalid\"\n [readOnly]=\"readOnly\"\n (click.prevent.zoneless)=\"detectRetargetFromLabel($event)\"\n (mousedown)=\"onMouseDown($event)\"\n >\n <div class=\"t-content\">\n @if (iconStart) {\n <div class=\"t-icon t-icon_left t-textfield-icon t-icon-wrapper\">\n <tui-icon\n *polymorpheusOutlet=\"iconStart as src; context: {$implicit: size}\"\n tuiAppearance=\"icon\"\n [icon]=\"src.toString()\"\n />\n </div>\n }\n <div class=\"t-wrapper\">\n <div class=\"t-absolute-wrapper\">\n @if (hasPlaceholder) {\n <div\n automation-id=\"tui-input-tag__placeholder\"\n class=\"t-placeholder\"\n [class.t-placeholder_raised]=\"placeholderRaised\"\n >\n <ng-content />\n </div>\n }\n </div>\n <tui-scrollbar\n class=\"t-scrollbar\"\n [hidden]=\"!expandable\"\n [style.maxHeight.rem]=\"computeMaxHeight\"\n >\n <div\n class=\"t-tags\"\n [class.t-tags_empty]=\"tagsEmpty\"\n >\n @if (labelOutside) {\n @for (item of value; track trackByFn($index, item)) {\n <tui-tag\n #tag\n automation-id=\"tui-input-tag__tag\"\n tabIndex=\"-1\"\n class=\"t-tag\"\n [autoColor]=\"autoColor\"\n [disabled]=\"computedDisabled || disabledItemHandler(item)\"\n [editable]=\"editable && !readOnly\"\n [hoverable]=\"!readOnly\"\n [leftContent]=\"getLeftContent(item)\"\n [maxLength]=\"maxLength\"\n [removable]=\"!readOnly && removable\"\n [separator]=\"separator\"\n [size]=\"controller.size\"\n [status]=\"status\"\n [value]=\"item.toString()\"\n (edited)=\"onTagEdited($event, $index)\"\n (keydown.arrowLeft.prevent)=\"onTagKeyDownArrowLeft($index)\"\n (keydown.arrowRight.prevent)=\"onTagKeyDownArrowRight($index)\"\n />\n }\n } @else {\n @for (item of value; track item) {\n <span\n class=\"t-text\"\n [class.t-text_comma]=\"computedFocused && !inputHidden\"\n [class.t-text_disabled]=\"disabledItemHandler(item)\"\n [class.t-text_error]=\"!tagValidator(item)\"\n [textContent]=\"item\"\n ></span>\n }\n }\n <div\n class=\"t-input-wrapper\"\n [class.t-input-wrapper_collapsed]=\"computedDisabled || readOnly || inputHidden\"\n >\n <div class=\"t-ghost\">{{ search }}</div>\n <input\n #focusableElement\n automation-id=\"tui-input-tag__native\"\n type=\"text\"\n class=\"t-native\"\n [attr.maxLength]=\"maxLength\"\n [class.t-native_hidden]=\"inputHidden\"\n [disabled]=\"computedDisabled\"\n [id]=\"id\"\n [ngModel]=\"search\"\n [ngModelOptions]=\"{standalone: true}\"\n [placeholder]=\"placeholder\"\n [readOnly]=\"readOnly || inputHidden\"\n [tabIndex]=\"computedFocusable ? 0 : -1\"\n (drop.prevent)=\"onDrop($any($event))\"\n (keydown.arrowLeft)=\"onFieldKeyDownArrowLeft($event)\"\n (keydown.backspace)=\"onFieldKeyDownBackspace($event)\"\n (keydown.enter.prevent)=\"onFieldKeyDownEnter()\"\n (ngModelChange)=\"onInput($event)\"\n (paste.prevent)=\"onPaste($event)\"\n />\n </div>\n </div>\n <div class=\"t-value-content\">\n <ng-content select=\"tuiContent\" />\n </div>\n </tui-scrollbar>\n </div>\n <ng-content select=\"select\" />\n @if (hasRightIcons) {\n <div class=\"t-icons t-icon-wrapper\">\n @if (hasCleaner) {\n <tui-icon\n *polymorpheusOutlet=\"iconCleaner as src; context: {$implicit: size}\"\n #cleaner\n automation-id=\"tui-input-tag__cleaner\"\n tuiAppearance=\"icon\"\n class=\"t-cleaner\"\n [icon]=\"src.toString()\"\n (click.stop)=\"onCleanerClick()\"\n />\n }\n @if (showHint) {\n <tui-tooltip\n automation-id=\"tui-input-tag__tooltip\"\n class=\"t-tooltip\"\n [content]=\"hintOptions?.content\"\n [describeId]=\"id\"\n />\n }\n @if (icon) {\n <div class=\"t-icon t-textfield-icon\">\n <tui-icon\n *polymorpheusOutlet=\"icon as src; context: {$implicit: size}\"\n tuiAppearance=\"icon\"\n [icon]=\"src.toString()\"\n />\n </div>\n }\n </div>\n }\n </div>\n <ng-template #errorIcon>\n <tui-icon\n class=\"t-error-icon\"\n [icon]=\"icons.error\"\n />\n </ng-template>\n </div>\n</div>\n", styles: [":host{position:relative;display:block;text-align:start;border-radius:var(--tui-radius-m);block-size:var(--tui-height);min-block-size:var(--tui-height);max-block-size:var(--tui-height)}:host[data-size=s]{--tui-height: var(--tui-height-s);font:var(--tui-font-text-s)}:host[data-size=m]{--tui-height: var(--tui-height-m);font:var(--tui-font-text-s)}:host[data-size=l]{--tui-height: var(--tui-height-l);font:var(--tui-font-text-m);line-height:1.25rem}:host :host-context(*:disabled){pointer-events:none}.t-input{padding:0;margin:0;border-width:0;border-radius:inherit;background:none;font-size:inherit;line-height:inherit;font-weight:inherit;color:inherit;caret-color:currentColor;outline:none;-webkit-appearance:none;appearance:none;word-break:keep-all;-webkit-text-fill-color:currentColor;position:absolute;top:0;left:0;inline-size:100%;block-size:100%;border-style:solid;border-color:transparent;border-inline-start-width:var(--t-border-start, 0);border-inline-end-width:var(--t-border-end, 0);text-indent:var(--t-text-indent);color:var(--tui-text-primary);text-align:inherit;box-sizing:border-box;white-space:nowrap;overflow:hidden;text-transform:inherit;resize:none}.t-input:-webkit-autofill,.t-input:-webkit-autofill:hover,.t-input:-webkit-autofill:focus{-webkit-text-fill-color:var(--tui-text-primary)!important;border-color:var(--tui-service-autofill-background);box-shadow:0 0 0 100rem var(--tui-service-autofill-background) inset!important}.t-input[inputMode=none]{caret-color:transparent}.t-input:-webkit-autofill,.t-input:-webkit-autofill:first-line{font-size:inherit;line-height:inherit}.t-input::-webkit-caps-lock-indicator,.t-input::-webkit-contacts-auto-fill-button,.t-input::-webkit-credit-card-auto-fill-button,.t-input::-webkit-credentials-auto-fill-button,.t-input::-webkit-strong-password-auto-fill-button{content:none!important;position:absolute;left:-62.4375rem;top:-62.4375rem;z-index:-999;display:none!important;background:transparent!important;pointer-events:none!important}.t-input::placeholder{color:var(--tui-text-tertiary);opacity:0}:host._focused:not(._readonly) .t-input::placeholder,:host-context(tui-primitive-textfield._focused:not(._readonly)) .t-input::placeholder,:host-context(tui-textarea._focused:not(._readonly)) .t-input::placeholder,:host-context(tui-text-area._focused:not(._readonly)) .t-input::placeholder{opacity:1}:host[data-size=s] .t-input,.t-input :host-context(tui-primitive-textfield[data-size=\"s\"]):not(tui-primitive-textfield),.t-input :host-context(tui-textarea[data-size=\"s\"]):not(tui-textarea),.t-input :host-context(tui-text-area[data-size=\"s\"]):not(tui-text-area){padding:0 var(--tui-padding-s)}:host[data-size=m] .t-input,.t-input :host-context(tui-primitive-textfield[data-size=\"m\"]):not(tui-primitive-textfield),.t-input :host-context(tui-textarea[data-size=\"m\"]):not(tui-textarea),.t-input :host-context(tui-text-area[data-size=\"m\"]):not(tui-text-area){padding:0 var(--tui-padding-m)}:host[data-size=l] .t-input,.t-input :host-context(tui-primitive-textfield[data-size=\"l\"]):not(tui-primitive-textfield),.t-input :host-context(tui-textarea[data-size=\"l\"]):not(tui-textarea),.t-input :host-context(tui-text-area[data-size=\"l\"]):not(tui-text-area){padding:0 var(--tui-padding-l)}:host._disabled .t-input,.t-input :host-context(tui-primitive-textfield._disabled),.t-input :host-context(tui-textarea._disabled),.t-input :host-context(tui-text-area._disabled){pointer-events:none}:host[data-size=l]:not(._label-outside) .t-input,.t-input :host-context(tui-primitive-textfield[data-size=\"l\"]:not(._label-outside)):not(tui-primitive-textfield){padding-block-start:1.25rem}:host[data-size=m]:not(._label-outside) .t-input,.t-input :host-context(tui-primitive-textfield[data-size=\"m\"]:not(._label-outside)):not(tui-primitive-textfield){padding-block-start:1rem}:host[data-size=l]:not(._label-outside) .t-input{padding-block-start:1.25rem}:host[data-size=l]:not(._label-outside) .t-input:-webkit-autofill+.t-content .t-placeholder{font-size:.8156rem;transform:translateY(-.625rem)}:host[data-size=m]:not(._label-outside) .t-input:-webkit-autofill+.t-content .t-placeholder{font-size:.69rem;transform:translateY(-.5rem)}:host._hidden input.t-input,.t-input :host-context(tui-primitive-textfield._hidden){opacity:0;text-indent:-10em}.t-content{display:flex;block-size:100%;inline-size:100%;box-sizing:border-box;align-items:center;overflow:hidden}:host[data-size=s] .t-content{padding:0 var(--tui-padding-s)}:host[data-size=m] .t-content{padding:0 var(--tui-padding-m)}:host[data-size=l] .t-content{padding:0 var(--tui-padding-l)}.t-wrapper{flex:1;min-inline-size:0;padding-inline-end:.25rem}.t-placeholder{transition-property:transform,font-size,color,letter-spacing;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;inline-size:100%;-webkit-user-select:none;user-select:none;font:var(--tui-font-text-s);color:var(--tui-text-secondary);pointer-events:none;will-change:transform;transform:translateY(0)}@supports (-webkit-hyphens: none){.t-placeholder{will-change:unset;transition-property:transform,color,letter-spacing}}.t-placeholder_raised{transform:translateY(-.625rem)}:host[data-size=m] .t-placeholder_raised{font:var(--tui-font-text-xs);line-height:1.25rem;transform:translateY(-.5rem);letter-spacing:.025rem}:host._invalid:not(._focused) .t-placeholder_raised,:host._invalid:not(._focused):hover .t-placeholder_raised{color:var(--tui-text-negative)}:host._focused .t-placeholder,:host[data-size=m]._focused._label-outside .t-placeholder,:host[data-size=l]._focused._label-outside .t-placeholder{color:var(--tui-text-tertiary)}:host[data-size=l] .t-placeholder{font:var(--tui-font-text-m);line-height:1.25rem}:host[data-size=l] .t-placeholder_raised{font-size:.8156rem}:host[data-size=m]._focused:not(._label-outside) .t-placeholder,:host[data-size=l]._focused:not(._label-outside) .t-placeholder{color:var(--tui-text-primary)}.t-cleaner{position:relative;display:flex;inline-size:1.5rem;block-size:1.5rem;align-items:center;justify-content:center;box-sizing:border-box;cursor:pointer;pointer-events:none;pointer-events:auto}:host._readonly .t-cleaner,:host._disabled .t-cleaner{pointer-events:none}.t-cleaner:before{font-size:1rem}.t-icon{position:relative;display:flex;inline-size:1.5rem;block-size:1.5rem;align-items:center;justify-content:center;box-sizing:border-box;cursor:pointer;pointer-events:none}:host[data-size=s] .t-icon_left{margin:0 .125rem 0 -.375rem}:host[data-size=m] .t-icon_left{margin-inline-start:-.125rem;margin-inline-end:.375rem}:host[data-size=l] .t-icon_left{margin-inline-end:.75rem}.t-icons{display:flex;align-items:center}:host[data-size=m] .t-icons{margin-inline-end:-.125rem}:host[data-size=s] .t-icons{margin-inline-end:-.375rem}:host:not([data-size=s]) .t-icons>:not(:first-child){margin-inline-start:.25rem}:host{cursor:text}:host._expandable{block-size:auto;max-block-size:none}:host._disabled,:host :host-context(*:disabled){pointer-events:none}:host._readonly{cursor:default}:host[data-size=m]{line-height:1rem}.t-hosted{display:block;border-radius:inherit}.t-scrollbar{scroll-behavior:var(--tui-scroll-behavior);margin-inline-start:-.25rem;min-inline-size:100%}:host:not(._label-outside) .t-scrollbar,:host._label-outside._icon-start .t-scrollbar{margin:0}:host[data-size=s]._icon-start .t-scrollbar{margin-inline-start:.25rem}:host[data-size=m]:not(._label-outside) .t-scrollbar{border-block-start:1rem solid transparent}:host[data-size=l]:not(._label-outside) .t-scrollbar{border-block-start:1.25rem solid transparent}.t-tags{display:flex;padding-inline-start:.25rem}.t-tags_expandable{overflow:hidden}.t-tags_empty{block-size:0}:host._expandable .t-tags{flex-wrap:wrap;white-space:normal;overflow:hidden}:host._readonly .t-tags{pointer-events:none}:host[data-size=m]:not(._label-outside) .t-tags,:host[data-size=l]:not(._label-outside) .t-tags{padding:0}.t-tags tui-tag:last-of-type{max-inline-size:80%}.t-content{align-items:flex-start}:host[data-size=s] .t-content{min-block-size:var(--tui-height-s)}:host[data-size=m] .t-content{min-block-size:var(--tui-height-m)}:host[data-size=l] .t-content{min-block-size:var(--tui-height-l)}:host[data-size=s] .t-icon-wrapper{block-size:var(--tui-height-s)}:host[data-size=m] .t-icon-wrapper{block-size:var(--tui-height-m)}:host[data-size=l] .t-icon-wrapper{block-size:var(--tui-height-l)}.t-absolute-wrapper{position:absolute;top:0;left:0;inline-size:100%;block-size:100%;display:flex;flex-direction:column;justify-content:center}:host[data-size=m] .t-absolute-wrapper{block-size:var(--tui-height-m)}:host[data-size=l] .t-absolute-wrapper{block-size:var(--tui-height-l)}.t-wrapper{position:relative;display:flex;align-items:center;padding:0;box-sizing:border-box}:host[data-size=s] .t-wrapper{min-block-size:var(--tui-height-s);padding:calc((var(--tui-height-s) - 1.5rem) / 2) 0}:host[data-size=m] .t-wrapper{min-block-size:var(--tui-height-m);padding:calc((var(--tui-height-m) - var(--tui-height-xs) - .25rem) / 2) 0}:host[data-size=l] .t-wrapper{padding:calc((var(--tui-height-l) - var(--tui-height-s) - .25rem) / 2) 0}:host[data-size=m]:not(._label-outside) .t-wrapper{padding:calc((var(--tui-height-m) - 2rem) / 2) 0}:host[data-size=l]:not(._label-outside) .t-wrapper{padding:calc((var(--tui-height-l) - 2.5rem) / 2) 0}.t-tag{margin:.125rem .5rem .125rem -.25rem;margin-inline-start:-.25rem;margin-inline-end:.5rem;max-inline-size:100%;flex-shrink:0}:host[data-size=m] .t-tag{margin-inline-start:-.125rem;margin-inline-end:.375rem}.t-text:after{content:\",\\a0\"}.t-text_disabled{color:var(--tui-text-tertiary)}.t-text_error{color:var(--tui-text-negative)}.t-text:not(.t-text_comma):last-of-type:after{content:\"\"}:host:not(._expandable) .t-text{white-space:nowrap}.t-input-wrapper,.t-value-content{position:relative;display:flex;flex:1;max-inline-size:100%}:host[data-size=s] .t-input-wrapper,:host[data-size=s] .t-value-content{min-block-size:1.5rem}:host[data-size=m] .t-input-wrapper,:host[data-size=m] .t-value-content{min-block-size:calc(var(--tui-height-xs) + 2 * .125rem)}:host[data-size=l] .t-input-wrapper,:host[data-size=l] .t-value-content{min-block-size:calc(var(--tui-height-s) + 2 * .125rem)}:host:not(._label-outside) .t-input-wrapper,:host:not(._label-outside) .t-value-content{min-block-size:1rem}.t-input-wrapper_collapsed{flex:0;margin-inline-start:-.5rem}.t-value-content:empty{display:none}.t-ghost{visibility:hidden;white-space:pre;text-overflow:clip;min-inline-size:.125rem}:host:not(._expandable) .t-ghost{min-inline-size:2rem}.t-native{margin:0;border-width:0;border-radius:inherit;background:none;font-size:inherit;line-height:inherit;font-weight:inherit;color:inherit;caret-color:currentColor;outline:none;-webkit-appearance:none;appearance:none;word-break:keep-all;-webkit-text-fill-color:currentColor;position:absolute;top:0;left:0;inline-size:100%;block-size:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;box-sizing:border-box;padding:0;cursor:inherit}.t-native:-webkit-autofill,.t-native:-webkit-autofill:hover,.t-native:-webkit-autofill:focus{-webkit-text-fill-color:var(--tui-text-primary)!important;border-color:var(--tui-service-autofill-background);box-shadow:0 0 0 100rem var(--tui-service-autofill-background) inset!important}.t-native[inputMode=none]{caret-color:transparent}.t-native_hidden{opacity:0;text-indent:-10em}.t-native::placeholder{color:var(--tui-text-tertiary);opacity:0}:host-context([tuiTheme=\"dark\"]) .t-native::placeholder{color:var(--tui-text-tertiary)}:host._focused .t-native:not(:read-only)::placeholder{opacity:1}.t-error-icon{display:block;color:var(--tui-status-negative);font-size:1rem}:host._readonly .t-textfield-icon ::ng-deep [tuiAppearance][data-appearance=icon]{pointer-events:none}@media (hover: hover) and (pointer: fine){:host:not(._readonly):not(._disabled):hover .t-textfield-icon ::ng-deep [tuiAppearance][data-appearance=icon]:before{color:var(--tui-text-secondary)}}\n"] }]
408
408
  }], propDecorators: { dropdown: [{
409
409
  type: ViewChild,
410
410
  args: [TuiDropdownOpen]
@@ -471,8 +471,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.9", ngImpor
471
471
  * @deprecated use {@link https://taiga-ui.dev/components/input-chip TuiInputChip} instead
472
472
  */
473
473
  class TuiInputTagModule {
474
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.9", ngImport: i0, type: TuiInputTagModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
475
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.9", ngImport: i0, type: TuiInputTagModule, declarations: [TuiInputTagComponent], imports: [CommonModule,
474
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiInputTagModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
475
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.15", ngImport: i0, type: TuiInputTagModule, declarations: [TuiInputTagComponent], imports: [CommonModule,
476
476
  FormsModule,
477
477
  PolymorpheusOutlet,
478
478
  PolymorpheusTemplate,
@@ -483,8 +483,8 @@ class TuiInputTagModule {
483
483
  TuiWrapperModule,
484
484
  TuiLegacyDropdownOpenMonitorDirective,
485
485
  TuiAppearance,
486
- TuiIcon, i1.TuiDropdownOptionsDirective, i1.TuiDropdownDriverDirective, i1.TuiDropdownDirective, i1.TuiDropdownComponent, i1.TuiDropdownOpen, i1.TuiDropdownOpenLegacy, i1.TuiDropdownPortal, i1.TuiDropdownManual, i1.TuiDropdownHover, i1.TuiDropdownContext, i1.TuiDropdownPosition, i1.TuiDropdownPositionSided, i1.TuiDropdownSelection], exports: [TuiInputTagComponent, i1.TuiDropdownOptionsDirective, i1.TuiDropdownDriverDirective, i1.TuiDropdownDirective, i1.TuiDropdownComponent, i1.TuiDropdownOpen, i1.TuiDropdownOpenLegacy, i1.TuiDropdownPortal, i1.TuiDropdownManual, i1.TuiDropdownHover, i1.TuiDropdownContext, i1.TuiDropdownPosition, i1.TuiDropdownPositionSided, i1.TuiDropdownSelection] }); }
487
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.9", ngImport: i0, type: TuiInputTagModule, providers: [TuiScrollService], imports: [CommonModule,
486
+ TuiIcon, i1.TuiDropdownOptionsDirective, i1.TuiDropdownDriverDirective, i1.TuiDropdownDirective, i1.TuiDropdownComponent, i1.TuiDropdownOpen, i1.TuiDropdownOpenLegacy, i1.TuiDropdownManual, i1.TuiDropdownHover, i1.TuiDropdownContent, i1.TuiDropdownContext, i1.TuiDropdownPosition, i1.TuiDropdownPositionSided, i1.TuiDropdownSelection], exports: [TuiInputTagComponent, i1.TuiDropdownOptionsDirective, i1.TuiDropdownDriverDirective, i1.TuiDropdownDirective, i1.TuiDropdownComponent, i1.TuiDropdownOpen, i1.TuiDropdownOpenLegacy, i1.TuiDropdownManual, i1.TuiDropdownHover, i1.TuiDropdownContent, i1.TuiDropdownContext, i1.TuiDropdownPosition, i1.TuiDropdownPositionSided, i1.TuiDropdownSelection] }); }
487
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiInputTagModule, providers: [TuiScrollService], imports: [CommonModule,
488
488
  FormsModule,
489
489
  TuiScrollbar,
490
490
  TuiTooltipModule,
@@ -492,7 +492,7 @@ class TuiInputTagModule {
492
492
  TuiWrapperModule,
493
493
  TuiIcon, i1.TuiDropdownComponent] }); }
494
494
  }
495
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.9", ngImport: i0, type: TuiInputTagModule, decorators: [{
495
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiInputTagModule, decorators: [{
496
496
  type: NgModule,
497
497
  args: [{
498
498
  imports: [
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-legacy-components-input-tag.mjs","sources":["../../../projects/legacy/components/input-tag/input-tag.options.ts","../../../projects/legacy/components/input-tag/input-tag.component.ts","../../../projects/legacy/components/input-tag/input-tag.template.html","../../../projects/legacy/components/input-tag/input-tag.module.ts","../../../projects/legacy/components/input-tag/taiga-ui-legacy-components-input-tag.ts"],"sourcesContent":["import {InjectionToken, type Provider} from '@angular/core';\nimport {tuiProvideOptions} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {type TuiStatus} from '@taiga-ui/legacy/utils';\n\n/**\n * TODO(v5): delete it\n * @deprecated use {@link https://taiga-ui.dev/components/input-chip TuiInputChip} instead\n */\nexport interface TuiInputTagOptions {\n readonly autoColor: boolean;\n readonly separator: RegExp | string;\n readonly tagStatus: TuiStatus;\n readonly uniqueTags: boolean;\n}\n\n/**\n * TODO(v5): delete it\n * @deprecated use {@link https://taiga-ui.dev/components/input-chip TuiInputChip} instead\n */\nexport const TUI_INPUT_TAG_DEFAULT_OPTIONS: TuiInputTagOptions = {\n autoColor: false,\n separator: ',',\n tagStatus: 'default',\n uniqueTags: true,\n};\n\n/**\n * @deprecated: drop in v5.0\n * Default parameters for InputTag component\n */\nexport const TUI_INPUT_TAG_OPTIONS = new InjectionToken(\n ngDevMode ? 'TUI_INPUT_TAG_OPTIONS' : '',\n {\n factory: () => TUI_INPUT_TAG_DEFAULT_OPTIONS,\n },\n);\n\n/**\n * TODO(v5): delete it\n * @deprecated use {@link https://taiga-ui.dev/components/input-chip TuiInputChip} instead\n */\nexport function tuiInputTagOptionsProvider(\n options: Partial<TuiInputTagOptions>,\n): Provider {\n return tuiProvideOptions(\n TUI_INPUT_TAG_OPTIONS,\n options,\n TUI_INPUT_TAG_DEFAULT_OPTIONS,\n );\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n ElementRef,\n EventEmitter,\n inject,\n Input,\n Output,\n type QueryList,\n signal,\n TemplateRef,\n ViewChild,\n ViewChildren,\n} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {EMPTY_QUERY, TUI_FALSE_HANDLER, TUI_TRUE_HANDLER} from '@taiga-ui/cdk/constants';\nimport {type TuiActiveZone} from '@taiga-ui/cdk/directives/active-zone';\nimport {type TuiBooleanHandler, type TuiContext} from '@taiga-ui/cdk/types';\nimport {\n tuiGetActualTarget,\n tuiGetClipboardDataText,\n tuiInjectElement,\n tuiIsElement,\n tuiRetargetedBoundaryCrossing,\n} from '@taiga-ui/cdk/utils/dom';\nimport {tuiIsNativeFocusedIn} from '@taiga-ui/cdk/utils/focus';\nimport {tuiArrayRemove, tuiIsString} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {\n tuiAsDataListHost,\n TuiDataListDirective,\n type TuiDataListHost,\n} from '@taiga-ui/core/components/data-list';\nimport {TuiScrollbar} from '@taiga-ui/core/components/scrollbar';\nimport {TUI_TEXTFIELD_OPTIONS} from '@taiga-ui/core/components/textfield';\nimport {TuiDropdownFixed, TuiDropdownOpen} from '@taiga-ui/core/directives/dropdown';\nimport {TuiHintOptionsDirective} from '@taiga-ui/core/directives/hint';\nimport {TUI_COMMON_ICONS} from '@taiga-ui/core/tokens';\nimport {type TuiSizeL, type TuiSizeS} from '@taiga-ui/core/types';\nimport {\n AbstractTuiMultipleControl,\n tuiAsControl,\n type TuiStringifiableItem,\n} from '@taiga-ui/legacy/classes';\nimport {\n TEXTFIELD_CONTROLLER_PROVIDER,\n TUI_TEXTFIELD_WATCHED_CONTROLLER,\n} from '@taiga-ui/legacy/directives';\nimport {\n tuiAsFocusableItemAccessor,\n type TuiFocusableElementAccessor,\n} from '@taiga-ui/legacy/tokens';\nimport {type TuiStatus} from '@taiga-ui/legacy/utils';\nimport {type PolymorpheusContent, PolymorpheusOutlet} from '@taiga-ui/polymorpheus';\nimport {timer} from 'rxjs';\n\nimport {TUI_INPUT_TAG_OPTIONS} from './input-tag.options';\n\nconst TAG_SIZE_REM = {\n s: 1.25,\n m: 1.5,\n l: 2,\n};\nconst LINE_HEIGHT_REM = {\n s: 1,\n m: 1.25,\n l: 1.25,\n};\nconst TAG_VERTICAL_SPACE_REM = 0.125;\n\n/**\n * TODO(v5): delete it\n * @deprecated use {@link https://taiga-ui.dev/components/input-chip TuiInputChip} instead\n */\n@Component({\n standalone: false,\n selector: 'tui-input-tag',\n templateUrl: './input-tag.template.html',\n styleUrls: ['./input-tag.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n tuiAsFocusableItemAccessor(TuiInputTagComponent),\n tuiAsControl(TuiInputTagComponent),\n tuiAsDataListHost(TuiInputTagComponent),\n TEXTFIELD_CONTROLLER_PROVIDER,\n ],\n hostDirectives: [TuiDropdownFixed],\n host: {\n '[attr.data-size]': 'size',\n '[class._icon-start]': 'iconStart',\n '[class._expandable]': 'expandable',\n '[class._label-outside]': 'labelOutside',\n '(focusin.capture.zoneless)': 'onFocusInOut()',\n '(focusout.capture.zoneless)': 'onFocusInOut()',\n },\n})\nexport class TuiInputTagComponent\n extends AbstractTuiMultipleControl<string>\n implements TuiFocusableElementAccessor, TuiDataListHost<string>\n{\n @ViewChild(TuiDropdownOpen)\n private readonly dropdown?: TuiDropdownOpen;\n\n @ViewChild('focusableElement')\n private readonly focusableElement?: ElementRef<HTMLInputElement>;\n\n @ViewChild('tagsContainer')\n private readonly tagsContainer?: ElementRef<HTMLElement>;\n\n @ViewChildren('tag', {read: ElementRef})\n private readonly tags: QueryList<ElementRef<HTMLElement>> = EMPTY_QUERY;\n\n @ViewChild('cleaner', {read: ElementRef})\n private readonly cleanerSvg?: ElementRef<HTMLElement>;\n\n @ViewChild(TuiScrollbar, {read: ElementRef})\n private readonly scrollBar?: ElementRef<HTMLElement>;\n\n private readonly el = tuiInjectElement();\n private readonly options = inject(TUI_INPUT_TAG_OPTIONS);\n\n @ContentChild(TuiDataListDirective, {read: TemplateRef})\n protected readonly datalist?: TemplateRef<TuiContext<TuiActiveZone>>;\n\n @ContentChild(PolymorpheusOutlet)\n protected readonly valueContent?: unknown;\n\n @ViewChild('errorIcon')\n protected readonly errorIconTemplate?: TemplateRef<Record<string, unknown>>;\n\n protected readonly textfieldOptions = inject(TUI_TEXTFIELD_OPTIONS);\n protected readonly hintOptions = inject(TuiHintOptionsDirective, {optional: true});\n protected readonly controller = inject(TUI_TEXTFIELD_WATCHED_CONTROLLER);\n protected readonly icons = inject(TUI_COMMON_ICONS);\n protected status: TuiStatus = this.options.tagStatus;\n protected open = false;\n\n @Input()\n public separator: RegExp | string = this.options.separator;\n\n @Input()\n public search: string | null = '';\n\n @Input()\n public editable = true;\n\n @Input()\n public tagValidator:\n | TuiBooleanHandler<string>\n | TuiBooleanHandler<TuiStringifiableItem<unknown> | string> = TUI_TRUE_HANDLER;\n\n @Input()\n public rows = Infinity;\n\n @Input()\n public inputHidden = false;\n\n @Input()\n public uniqueTags = this.options.uniqueTags;\n\n @Input()\n public autoColor = this.options.autoColor;\n\n @Input()\n public maxLength: number | null = null;\n\n @Input()\n public placeholder = '';\n\n @Input()\n public removable = true;\n\n @Input()\n public disabledItemHandler: TuiBooleanHandler<TuiStringifiableItem<any> | string> =\n TUI_FALSE_HANDLER;\n\n @Output()\n public readonly searchChange = new EventEmitter<string>();\n\n public pseudoOpen = signal(false);\n\n @Input('pseudoFocused')\n public set pseudoFocusedSetter(value: boolean | null) {\n if (!value && !this.focused) {\n this.scrollTo(0);\n }\n\n this.pseudoFocus = value;\n }\n\n /**\n * @deprecated hack\n */\n @Input('pseudoOpen')\n public set setPseudoOpen(value: boolean) {\n this.pseudoOpen.set(value);\n }\n\n public get labelOutside(): boolean {\n const {size, labelOutside} = this.controller;\n\n return this.appearance === 'table' || size === 's' || labelOutside;\n }\n\n public get size(): TuiSizeL | TuiSizeS {\n return this.controller.size;\n }\n\n public get nativeFocusableElement(): HTMLInputElement | null {\n return !this.focusableElement || this.computedDisabled\n ? null\n : this.focusableElement.nativeElement;\n }\n\n public get hasValue(): boolean {\n return !!this.value.length || this.hasNativeValue;\n }\n\n public get hasExampleText(): boolean {\n return (\n !!this.nativeFocusableElement?.placeholder &&\n this.computedFocused &&\n !this.hasValue &&\n !this.readOnly\n );\n }\n\n public get hasPlaceholder(): boolean {\n return (\n !this.labelOutside ||\n (!this.hasValue && (!this.hasExampleText || this.inputHidden))\n );\n }\n\n public get focused(): boolean {\n return tuiIsNativeFocusedIn(this.el) || !!this.dropdown?.tuiDropdownOpen;\n }\n\n public get tagsEmpty(): boolean {\n return (\n ((!this.focused || this.inputHidden) &&\n !this.value.length &&\n !this.search?.trim()?.length &&\n !this.placeholder) ||\n !!this.valueContent\n );\n }\n\n public onTagEdited(value: string, index: number): void {\n this.focusInput(value === '');\n this.value = this.filterValue(\n this.value\n .map((tag, tagIndex) =>\n tagIndex !== index\n ? tag\n : value\n .split(this.separator)\n .map((tag) => tag.trim())\n .filter(Boolean),\n )\n .reduce<string[]>(\n (result, item: string[] | string) => result.concat(item),\n [],\n ),\n );\n }\n\n public handleOption(item: string): void {\n this.focusInput();\n this.updateSearch('');\n this.value = this.filterValue(this.value.concat(item));\n this.open = false;\n this.scrollTo();\n }\n\n public override setDisabledState(): void {\n super.setDisabledState();\n this.open = false;\n }\n\n protected get iconStart(): PolymorpheusContent<TuiContext<TuiSizeL | TuiSizeS>> {\n return this.controller.iconStart;\n }\n\n protected get appearance(): string {\n return this.textfieldOptions.appearance() === 'table'\n ? 'table'\n : this.controller.appearance;\n }\n\n protected get expandable(): boolean {\n return this.rows > 1;\n }\n\n protected get icon(): PolymorpheusContent<TuiContext<TuiSizeL | TuiSizeS>> {\n return this.controller.icon;\n }\n\n protected get iconCleaner(): PolymorpheusContent<TuiContext<TuiSizeL | TuiSizeS>> {\n return this.controller.options.iconCleaner;\n }\n\n protected get hasCleaner(): boolean {\n return this.controller.cleaner && this.hasValue && this.interactive;\n }\n\n protected get hasNativeValue(): boolean {\n return !!this.search;\n }\n\n protected get placeholderRaised(): boolean {\n return (\n !this.labelOutside &&\n ((this.computedFocused && !this.readOnly) || this.hasValue)\n );\n }\n\n protected get hasRightIcons(): boolean {\n return (\n this.hasCleaner ||\n !!this.icon ||\n (!!this.hintOptions?.content && !this.computedDisabled)\n );\n }\n\n protected get showHint(): boolean {\n return (\n !!this.hintOptions?.content &&\n (this.controller.options.hintOnDisabled || !this.computedDisabled)\n );\n }\n\n protected get canOpen(): boolean {\n return this.interactive && !!this.datalist;\n }\n\n protected get computeMaxHeight(): number | null {\n return this.expandable ? this.rows * this.lineHeight : null;\n }\n\n protected onFocusInOut(): void {\n this.cdr.detectChanges();\n }\n\n protected detectRetargetFromLabel(event: Event): void {\n if (tuiRetargetedBoundaryCrossing(event)) {\n event.stopImmediatePropagation();\n }\n }\n\n protected getLeftContent(tag: string): PolymorpheusContent {\n return !this.tagValidator(tag) && this.errorIconTemplate\n ? this.errorIconTemplate\n : '';\n }\n\n protected onCleanerClick(): void {\n this.updateSearch('');\n this.clear();\n this.focusInput();\n }\n\n protected onActiveZone(active: boolean): void {\n this.open = false;\n this.addTag();\n this.updateFocused(active);\n\n if (!active && !this.computedFocused) {\n this.scrollTo(0);\n }\n }\n\n protected onMouseDown(event: MouseEvent): void {\n const actualTarget = tuiGetActualTarget(event);\n\n if (\n !this.focusableElement ||\n actualTarget === this.focusableElement.nativeElement ||\n !tuiIsElement(event.target) ||\n this.cleanerSvg?.nativeElement.contains(event.target) ||\n (this.tagsContainer &&\n actualTarget !== this.tagsContainer.nativeElement &&\n this.tagsContainer.nativeElement.contains(actualTarget))\n ) {\n return;\n }\n\n event.preventDefault();\n this.focusInput();\n }\n\n protected onFieldKeyDownBackspace(event: Event): void {\n if (!this.labelOutside && !this.hasNativeValue && this.value.length) {\n this.deleteLastEnabledItem();\n } else {\n this.onFieldKeyDownArrowLeft(event);\n }\n }\n\n protected onFieldKeyDownArrowLeft(event: Event): void {\n if (!this.labelOutside || this.hasNativeValue || !this.value.length) {\n return;\n }\n\n event.preventDefault();\n this.tags.last.nativeElement.focus();\n }\n\n protected onFieldKeyDownEnter(): void {\n this.addTag();\n this.scrollTo();\n }\n\n protected onTagKeyDownArrowLeft(currentIndex: number): void {\n if (currentIndex > 0) {\n this.onScrollKeyDown(currentIndex, -1);\n }\n }\n\n protected onTagKeyDownArrowRight(currentIndex: number): void {\n if (currentIndex === this.value.length - 1) {\n this.focusInput();\n } else {\n this.onScrollKeyDown(currentIndex, 1);\n }\n }\n\n protected onInput(value: string): void {\n const array = value.split(this.separator);\n const tags = array\n .map((item) => this.clippedValue(item.trim()))\n .filter((item) => item.length > 0);\n const validated = tags.filter((tag) => !this.disabledItemHandler(tag));\n const invalid = tags.filter((tag) => this.disabledItemHandler(tag));\n\n if (array.length > 1) {\n const search = invalid.length\n ? invalid.join(tuiIsString(this.separator) ? this.separator : ',')\n : '';\n\n this.updateSearch(this.clippedValue(search));\n\n this.value = this.filterValue([...this.value, ...validated]);\n } else {\n this.updateSearch(this.clippedValue(value));\n }\n\n this.open = this.hasNativeValue;\n }\n\n protected onPaste(event: Event): void {\n const pasted = tuiGetClipboardDataText(event as ClipboardEvent);\n\n this.onInput(pasted || '');\n }\n\n protected onDrop({dataTransfer}: DragEvent): void {\n if (dataTransfer) {\n this.onInput(dataTransfer.getData('text') || '');\n }\n }\n\n protected trackByFn(_: number, tag: string): string {\n // Actually tag has TuiStringifiableItem type not string\n return tag;\n }\n\n private get lineHeight(): number {\n return this.labelOutside\n ? TAG_SIZE_REM[this.controller.size] + 2 * TAG_VERTICAL_SPACE_REM\n : LINE_HEIGHT_REM[this.controller.size];\n }\n\n private scrollTo(scrollLeft = this.scrollBar?.nativeElement.scrollWidth): void {\n // Allow change detection to run and add new tag to DOM\n timer(0)\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n if (this.scrollBar) {\n this.scrollBar.nativeElement.scrollLeft = scrollLeft || 0;\n }\n });\n }\n\n private filterValue(value: string[]): string[] {\n const seen = new Set();\n\n return value\n .reverse()\n .filter(\n (item) => !this.uniqueTags || (item && !seen.has(item) && seen.add(item)),\n )\n .reverse();\n }\n\n private onScrollKeyDown(currentIndex: number, flag: number): void {\n const tag = this.tags.find((_item, index) => index === currentIndex + flag);\n\n if (!tag || !this.scrollBar) {\n return;\n }\n\n tag.nativeElement.focus();\n\n if (\n flag * this.scrollBar.nativeElement.clientWidth -\n flag * tag.nativeElement.offsetLeft -\n tag.nativeElement.clientWidth <\n 0\n ) {\n this.scrollBar.nativeElement.scrollLeft +=\n flag * tag.nativeElement.clientWidth;\n }\n }\n\n private updateSearch(value: string): void {\n if (this.focusableElement) {\n this.focusableElement.nativeElement.value = value;\n }\n\n this.search = value;\n this.searchChange.emit(value);\n }\n\n private addTag(): void {\n const inputValue = this.search?.trim() ?? '';\n\n if (!inputValue || this.disabledItemHandler(inputValue)) {\n return;\n }\n\n this.updateSearch('');\n this.value = this.filterValue(this.value.concat(inputValue));\n }\n\n private deleteLastEnabledItem(): void {\n for (let index = this.value.length - 1; index >= 0; index--) {\n if (!this.disabledItemHandler(this.value[index] ?? '')) {\n this.value = tuiArrayRemove(this.value, index);\n\n break;\n }\n }\n }\n\n private focusInput(preventScroll = false): void {\n this.nativeFocusableElement?.focus({preventScroll});\n }\n\n private clippedValue(value: string): string {\n return value.slice(0, this.maxLength || value.length);\n }\n}\n","<ng-container *ngIf=\"hintOptions?.change$ | async\" />\n<div\n tuiDropdownOpenMonitor\n class=\"t-hosted\"\n [tuiDropdown]=\"datalist || ''\"\n [tuiDropdownEnabled]=\"canOpen\"\n [(tuiDropdownOpen)]=\"open\"\n (tuiActiveZoneChange)=\"onActiveZone($event)\"\n>\n <div\n tuiWrapper\n [appearance]=\"appearance\"\n [disabled]=\"computedDisabled\"\n [focus]=\"computedFocused\"\n [hover]=\"pseudoHover\"\n [invalid]=\"computedInvalid\"\n [readOnly]=\"readOnly\"\n (click.prevent.zoneless)=\"detectRetargetFromLabel($event)\"\n (mousedown)=\"onMouseDown($event)\"\n >\n <div class=\"t-content\">\n <div\n *ngIf=\"iconStart\"\n class=\"t-icon t-icon_left t-textfield-icon t-icon-wrapper\"\n >\n <tui-icon\n *polymorpheusOutlet=\"iconStart as src; context: {$implicit: size}\"\n tuiAppearance=\"icon\"\n [icon]=\"src.toString()\"\n />\n </div>\n <div class=\"t-wrapper\">\n <div class=\"t-absolute-wrapper\">\n <div\n *ngIf=\"hasPlaceholder\"\n automation-id=\"tui-input-tag__placeholder\"\n class=\"t-placeholder\"\n [class.t-placeholder_raised]=\"placeholderRaised\"\n >\n <ng-content />\n </div>\n </div>\n <tui-scrollbar\n class=\"t-scrollbar\"\n [hidden]=\"!expandable\"\n [style.maxHeight.rem]=\"computeMaxHeight\"\n >\n <div\n class=\"t-tags\"\n [class.t-tags_empty]=\"tagsEmpty\"\n >\n <ng-container *ngIf=\"labelOutside; else text\">\n <tui-tag\n *ngFor=\"let item of value; index as index; trackBy: trackByFn\"\n #tag\n automation-id=\"tui-input-tag__tag\"\n tabIndex=\"-1\"\n class=\"t-tag\"\n [autoColor]=\"autoColor\"\n [disabled]=\"computedDisabled || disabledItemHandler(item)\"\n [editable]=\"editable && !readOnly\"\n [hoverable]=\"!readOnly\"\n [leftContent]=\"getLeftContent(item)\"\n [maxLength]=\"maxLength\"\n [removable]=\"!readOnly && removable\"\n [separator]=\"separator\"\n [size]=\"controller.size\"\n [status]=\"status\"\n [value]=\"item.toString()\"\n (edited)=\"onTagEdited($event, index)\"\n (keydown.arrowLeft.prevent)=\"onTagKeyDownArrowLeft(index)\"\n (keydown.arrowRight.prevent)=\"onTagKeyDownArrowRight(index)\"\n />\n </ng-container>\n <ng-template #text>\n <span\n *ngFor=\"let item of value\"\n class=\"t-text\"\n [class.t-text_comma]=\"computedFocused && !inputHidden\"\n [class.t-text_disabled]=\"disabledItemHandler(item)\"\n [class.t-text_error]=\"!tagValidator(item)\"\n [textContent]=\"item\"\n ></span>\n </ng-template>\n <div\n class=\"t-input-wrapper\"\n [class.t-input-wrapper_collapsed]=\"computedDisabled || readOnly || inputHidden\"\n >\n <div class=\"t-ghost\">{{ search }}</div>\n <input\n #focusableElement\n automation-id=\"tui-input-tag__native\"\n type=\"text\"\n class=\"t-native\"\n [attr.maxLength]=\"maxLength\"\n [class.t-native_hidden]=\"inputHidden\"\n [disabled]=\"computedDisabled\"\n [id]=\"id\"\n [ngModel]=\"search\"\n [ngModelOptions]=\"{standalone: true}\"\n [placeholder]=\"placeholder\"\n [readOnly]=\"readOnly || inputHidden\"\n [tabIndex]=\"computedFocusable ? 0 : -1\"\n (drop.prevent)=\"onDrop($any($event))\"\n (keydown.arrowLeft)=\"onFieldKeyDownArrowLeft($event)\"\n (keydown.backspace)=\"onFieldKeyDownBackspace($event)\"\n (keydown.enter.prevent)=\"onFieldKeyDownEnter()\"\n (ngModelChange)=\"onInput($event)\"\n (paste.prevent)=\"onPaste($event)\"\n />\n </div>\n </div>\n <div class=\"t-value-content\">\n <ng-content select=\"tuiContent\" />\n </div>\n </tui-scrollbar>\n </div>\n <ng-content select=\"select\" />\n <div\n *ngIf=\"hasRightIcons\"\n class=\"t-icons t-icon-wrapper\"\n >\n <ng-container *ngIf=\"hasCleaner\">\n <tui-icon\n *polymorpheusOutlet=\"iconCleaner as src; context: {$implicit: size}\"\n #cleaner\n automation-id=\"tui-input-tag__cleaner\"\n tuiAppearance=\"icon\"\n class=\"t-cleaner\"\n [icon]=\"src.toString()\"\n (click.stop)=\"onCleanerClick()\"\n />\n </ng-container>\n <tui-tooltip\n *ngIf=\"showHint\"\n automation-id=\"tui-input-tag__tooltip\"\n class=\"t-tooltip\"\n [content]=\"hintOptions?.content\"\n [describeId]=\"id\"\n />\n <div\n *ngIf=\"icon\"\n class=\"t-icon t-textfield-icon\"\n >\n <tui-icon\n *polymorpheusOutlet=\"icon as src; context: {$implicit: size}\"\n tuiAppearance=\"icon\"\n [icon]=\"src.toString()\"\n />\n </div>\n </div>\n </div>\n <ng-template #errorIcon>\n <tui-icon\n class=\"t-error-icon\"\n [icon]=\"icons.error\"\n />\n </ng-template>\n </div>\n</div>\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {FormsModule} from '@angular/forms';\nimport {TuiHovered} from '@taiga-ui/cdk/directives/hovered';\nimport {TuiScrollService} from '@taiga-ui/cdk/services';\nimport {TuiIcon} from '@taiga-ui/core/components/icon';\nimport {TuiScrollbar} from '@taiga-ui/core/components/scrollbar';\nimport {TuiAppearance} from '@taiga-ui/core/directives/appearance';\nimport {TuiDropdown} from '@taiga-ui/core/directives/dropdown';\nimport {TuiTagModule} from '@taiga-ui/legacy/components/tag';\nimport {TuiTooltipModule} from '@taiga-ui/legacy/components/tooltip';\nimport {\n TuiLegacyDropdownOpenMonitorDirective,\n TuiWrapperModule,\n} from '@taiga-ui/legacy/directives';\nimport {PolymorpheusOutlet, PolymorpheusTemplate} from '@taiga-ui/polymorpheus';\n\nimport {TuiInputTagComponent} from './input-tag.component';\n\n/**\n * TODO(v5): delete it\n * @deprecated use {@link https://taiga-ui.dev/components/input-chip TuiInputChip} instead\n */\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n PolymorpheusOutlet,\n PolymorpheusTemplate,\n TuiHovered,\n TuiScrollbar,\n TuiTooltipModule,\n TuiTagModule,\n TuiWrapperModule,\n TuiLegacyDropdownOpenMonitorDirective,\n TuiAppearance,\n TuiIcon,\n ...TuiDropdown,\n ],\n declarations: [TuiInputTagComponent],\n providers: [TuiScrollService],\n exports: [TuiInputTagComponent, ...TuiDropdown],\n})\nexport class TuiInputTagModule {}\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-legacy-components-input-tag.mjs","sources":["../../../projects/legacy/components/input-tag/input-tag.options.ts","../../../projects/legacy/components/input-tag/input-tag.component.ts","../../../projects/legacy/components/input-tag/input-tag.template.html","../../../projects/legacy/components/input-tag/input-tag.module.ts","../../../projects/legacy/components/input-tag/taiga-ui-legacy-components-input-tag.ts"],"sourcesContent":["import {InjectionToken, type Provider} from '@angular/core';\nimport {tuiProvideOptions} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {type TuiStatus} from '@taiga-ui/legacy/utils';\n\n/**\n * TODO(v5): delete it\n * @deprecated use {@link https://taiga-ui.dev/components/input-chip TuiInputChip} instead\n */\nexport interface TuiInputTagOptions {\n readonly autoColor: boolean;\n readonly separator: RegExp | string;\n readonly tagStatus: TuiStatus;\n readonly uniqueTags: boolean;\n}\n\n/**\n * TODO(v5): delete it\n * @deprecated use {@link https://taiga-ui.dev/components/input-chip TuiInputChip} instead\n */\nexport const TUI_INPUT_TAG_DEFAULT_OPTIONS: TuiInputTagOptions = {\n autoColor: false,\n separator: ',',\n tagStatus: 'default',\n uniqueTags: true,\n};\n\n/**\n * @deprecated: drop in v5.0\n * Default parameters for InputTag component\n */\nexport const TUI_INPUT_TAG_OPTIONS = new InjectionToken(\n ngDevMode ? 'TUI_INPUT_TAG_OPTIONS' : '',\n {\n factory: () => TUI_INPUT_TAG_DEFAULT_OPTIONS,\n },\n);\n\n/**\n * TODO(v5): delete it\n * @deprecated use {@link https://taiga-ui.dev/components/input-chip TuiInputChip} instead\n */\nexport function tuiInputTagOptionsProvider(\n options: Partial<TuiInputTagOptions>,\n): Provider {\n return tuiProvideOptions(\n TUI_INPUT_TAG_OPTIONS,\n options,\n TUI_INPUT_TAG_DEFAULT_OPTIONS,\n );\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n ElementRef,\n EventEmitter,\n inject,\n Input,\n Output,\n type QueryList,\n signal,\n TemplateRef,\n ViewChild,\n ViewChildren,\n} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {EMPTY_QUERY, TUI_FALSE_HANDLER, TUI_TRUE_HANDLER} from '@taiga-ui/cdk/constants';\nimport {type TuiActiveZone} from '@taiga-ui/cdk/directives/active-zone';\nimport {type TuiBooleanHandler, type TuiContext} from '@taiga-ui/cdk/types';\nimport {\n tuiGetActualTarget,\n tuiGetClipboardDataText,\n tuiInjectElement,\n tuiIsElement,\n tuiRetargetedBoundaryCrossing,\n} from '@taiga-ui/cdk/utils/dom';\nimport {tuiIsFocusedIn} from '@taiga-ui/cdk/utils/focus';\nimport {tuiArrayRemove, tuiIsString} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {\n tuiAsDataListHost,\n TuiDataListDirective,\n type TuiDataListHost,\n} from '@taiga-ui/core/components/data-list';\nimport {TuiScrollbar} from '@taiga-ui/core/components/scrollbar';\nimport {TUI_TEXTFIELD_OPTIONS} from '@taiga-ui/core/components/textfield';\nimport {TuiDropdownFixed, TuiDropdownOpen} from '@taiga-ui/core/directives/dropdown';\nimport {TuiHintOptionsDirective} from '@taiga-ui/core/directives/hint';\nimport {TUI_COMMON_ICONS} from '@taiga-ui/core/tokens';\nimport {type TuiSizeL, type TuiSizeS} from '@taiga-ui/core/types';\nimport {\n AbstractTuiMultipleControl,\n tuiAsControl,\n type TuiStringifiableItem,\n} from '@taiga-ui/legacy/classes';\nimport {\n TEXTFIELD_CONTROLLER_PROVIDER,\n TUI_TEXTFIELD_WATCHED_CONTROLLER,\n} from '@taiga-ui/legacy/directives';\nimport {\n tuiAsFocusableItemAccessor,\n type TuiFocusableElementAccessor,\n} from '@taiga-ui/legacy/tokens';\nimport {type TuiStatus} from '@taiga-ui/legacy/utils';\nimport {type PolymorpheusContent, PolymorpheusOutlet} from '@taiga-ui/polymorpheus';\nimport {timer} from 'rxjs';\n\nimport {TUI_INPUT_TAG_OPTIONS} from './input-tag.options';\n\nconst TAG_SIZE_REM = {\n s: 1.25,\n m: 1.5,\n l: 2,\n};\nconst LINE_HEIGHT_REM = {\n s: 1,\n m: 1.25,\n l: 1.25,\n};\nconst TAG_VERTICAL_SPACE_REM = 0.125;\n\n/**\n * TODO(v5): delete it\n * @deprecated use {@link https://taiga-ui.dev/components/input-chip TuiInputChip} instead\n */\n@Component({\n standalone: false,\n selector: 'tui-input-tag',\n templateUrl: './input-tag.template.html',\n styleUrl: './input-tag.style.less',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n tuiAsFocusableItemAccessor(TuiInputTagComponent),\n tuiAsControl(TuiInputTagComponent),\n tuiAsDataListHost(TuiInputTagComponent),\n TEXTFIELD_CONTROLLER_PROVIDER,\n ],\n hostDirectives: [TuiDropdownFixed],\n host: {\n '[attr.data-size]': 'size',\n '[class._icon-start]': 'iconStart',\n '[class._expandable]': 'expandable',\n '[class._label-outside]': 'labelOutside',\n '(focusin.capture.zoneless)': 'onFocusInOut()',\n '(focusout.capture.zoneless)': 'onFocusInOut()',\n },\n})\nexport class TuiInputTagComponent\n extends AbstractTuiMultipleControl<string>\n implements TuiFocusableElementAccessor, TuiDataListHost<string>\n{\n @ViewChild(TuiDropdownOpen)\n private readonly dropdown?: TuiDropdownOpen;\n\n @ViewChild('focusableElement')\n private readonly focusableElement?: ElementRef<HTMLInputElement>;\n\n @ViewChild('tagsContainer')\n private readonly tagsContainer?: ElementRef<HTMLElement>;\n\n @ViewChildren('tag', {read: ElementRef})\n private readonly tags: QueryList<ElementRef<HTMLElement>> = EMPTY_QUERY;\n\n @ViewChild('cleaner', {read: ElementRef})\n private readonly cleanerSvg?: ElementRef<HTMLElement>;\n\n @ViewChild(TuiScrollbar, {read: ElementRef})\n private readonly scrollBar?: ElementRef<HTMLElement>;\n\n private readonly el = tuiInjectElement();\n private readonly options = inject(TUI_INPUT_TAG_OPTIONS);\n\n @ContentChild(TuiDataListDirective, {read: TemplateRef})\n protected readonly datalist?: TemplateRef<TuiContext<TuiActiveZone>>;\n\n @ContentChild(PolymorpheusOutlet)\n protected readonly valueContent?: unknown;\n\n @ViewChild('errorIcon')\n protected readonly errorIconTemplate?: TemplateRef<Record<string, unknown>>;\n\n protected readonly textfieldOptions = inject(TUI_TEXTFIELD_OPTIONS);\n protected readonly hintOptions = inject(TuiHintOptionsDirective, {optional: true});\n protected readonly controller = inject(TUI_TEXTFIELD_WATCHED_CONTROLLER);\n protected readonly icons = inject(TUI_COMMON_ICONS);\n protected status: TuiStatus = this.options.tagStatus;\n protected open = false;\n\n @Input()\n public separator: RegExp | string = this.options.separator;\n\n @Input()\n public search: string | null = '';\n\n @Input()\n public editable = true;\n\n @Input()\n public tagValidator:\n | TuiBooleanHandler<string>\n | TuiBooleanHandler<TuiStringifiableItem<unknown> | string> = TUI_TRUE_HANDLER;\n\n @Input()\n public rows = Infinity;\n\n @Input()\n public inputHidden = false;\n\n @Input()\n public uniqueTags = this.options.uniqueTags;\n\n @Input()\n public autoColor = this.options.autoColor;\n\n @Input()\n public maxLength: number | null = null;\n\n @Input()\n public placeholder = '';\n\n @Input()\n public removable = true;\n\n @Input()\n public disabledItemHandler: TuiBooleanHandler<TuiStringifiableItem<any> | string> =\n TUI_FALSE_HANDLER;\n\n @Output()\n public readonly searchChange = new EventEmitter<string>();\n\n public pseudoOpen = signal(false);\n\n @Input('pseudoFocused')\n public set pseudoFocusedSetter(value: boolean | null) {\n if (!value && !this.focused) {\n this.scrollTo(0);\n }\n\n this.pseudoFocus = value;\n }\n\n /**\n * @deprecated hack\n */\n @Input('pseudoOpen')\n public set setPseudoOpen(value: boolean) {\n this.pseudoOpen.set(value);\n }\n\n public get labelOutside(): boolean {\n const {size, labelOutside} = this.controller;\n\n return this.appearance === 'table' || size === 's' || labelOutside;\n }\n\n public get size(): TuiSizeL | TuiSizeS {\n return this.controller.size;\n }\n\n public get nativeFocusableElement(): HTMLInputElement | null {\n return !this.focusableElement || this.computedDisabled\n ? null\n : this.focusableElement.nativeElement;\n }\n\n public get hasValue(): boolean {\n return !!this.value.length || this.hasNativeValue;\n }\n\n public get hasExampleText(): boolean {\n return (\n !!this.nativeFocusableElement?.placeholder &&\n this.computedFocused &&\n !this.hasValue &&\n !this.readOnly\n );\n }\n\n public get hasPlaceholder(): boolean {\n return (\n !this.labelOutside ||\n (!this.hasValue && (!this.hasExampleText || this.inputHidden))\n );\n }\n\n public get focused(): boolean {\n return tuiIsFocusedIn(this.el) || !!this.dropdown?.tuiDropdownOpen;\n }\n\n public get tagsEmpty(): boolean {\n return (\n ((!this.focused || this.inputHidden) &&\n !this.value.length &&\n !this.search?.trim()?.length &&\n !this.placeholder) ||\n !!this.valueContent\n );\n }\n\n public onTagEdited(value: string, index: number): void {\n this.focusInput(value === '');\n this.value = this.filterValue(\n this.value\n .map((tag, tagIndex) =>\n tagIndex !== index\n ? tag\n : value\n .split(this.separator)\n .map((tag) => tag.trim())\n .filter(Boolean),\n )\n .reduce<string[]>(\n (result, item: string[] | string) => result.concat(item),\n [],\n ),\n );\n }\n\n public handleOption(item: string): void {\n this.focusInput();\n this.updateSearch('');\n this.value = this.filterValue(this.value.concat(item));\n this.open = false;\n this.scrollTo();\n }\n\n public override setDisabledState(): void {\n super.setDisabledState();\n this.open = false;\n }\n\n protected get iconStart(): PolymorpheusContent<TuiContext<TuiSizeL | TuiSizeS>> {\n return this.controller.iconStart;\n }\n\n protected get appearance(): string {\n return this.textfieldOptions.appearance() === 'table'\n ? 'table'\n : this.controller.appearance;\n }\n\n protected get expandable(): boolean {\n return this.rows > 1;\n }\n\n protected get icon(): PolymorpheusContent<TuiContext<TuiSizeL | TuiSizeS>> {\n return this.controller.icon;\n }\n\n protected get iconCleaner(): PolymorpheusContent<TuiContext<TuiSizeL | TuiSizeS>> {\n return this.controller.options.iconCleaner;\n }\n\n protected get hasCleaner(): boolean {\n return this.controller.cleaner && this.hasValue && this.interactive;\n }\n\n protected get hasNativeValue(): boolean {\n return !!this.search;\n }\n\n protected get placeholderRaised(): boolean {\n return (\n !this.labelOutside &&\n ((this.computedFocused && !this.readOnly) || this.hasValue)\n );\n }\n\n protected get hasRightIcons(): boolean {\n return (\n this.hasCleaner ||\n !!this.icon ||\n (!!this.hintOptions?.content && !this.computedDisabled)\n );\n }\n\n protected get showHint(): boolean {\n return (\n !!this.hintOptions?.content &&\n (this.controller.options.hintOnDisabled || !this.computedDisabled)\n );\n }\n\n protected get canOpen(): boolean {\n return this.interactive && !!this.datalist;\n }\n\n protected get computeMaxHeight(): number | null {\n return this.expandable ? this.rows * this.lineHeight : null;\n }\n\n protected onFocusInOut(): void {\n this.cdr.detectChanges();\n }\n\n protected detectRetargetFromLabel(event: Event): void {\n if (tuiRetargetedBoundaryCrossing(event)) {\n event.stopImmediatePropagation();\n }\n }\n\n protected getLeftContent(tag: string): PolymorpheusContent {\n return !this.tagValidator(tag) && this.errorIconTemplate\n ? this.errorIconTemplate\n : '';\n }\n\n protected onCleanerClick(): void {\n this.updateSearch('');\n this.clear();\n this.focusInput();\n }\n\n protected onActiveZone(active: boolean): void {\n this.open = false;\n this.addTag();\n this.updateFocused(active);\n\n if (!active && !this.computedFocused) {\n this.scrollTo(0);\n }\n }\n\n protected onMouseDown(event: MouseEvent): void {\n const actualTarget = tuiGetActualTarget(event);\n\n if (\n !this.focusableElement ||\n actualTarget === this.focusableElement.nativeElement ||\n !tuiIsElement(event.target) ||\n this.cleanerSvg?.nativeElement.contains(event.target) ||\n (this.tagsContainer &&\n actualTarget !== this.tagsContainer.nativeElement &&\n this.tagsContainer.nativeElement.contains(actualTarget))\n ) {\n return;\n }\n\n event.preventDefault();\n this.focusInput();\n }\n\n protected onFieldKeyDownBackspace(event: Event): void {\n if (!this.labelOutside && !this.hasNativeValue && this.value.length) {\n this.deleteLastEnabledItem();\n } else {\n this.onFieldKeyDownArrowLeft(event);\n }\n }\n\n protected onFieldKeyDownArrowLeft(event: Event): void {\n if (!this.labelOutside || this.hasNativeValue || !this.value.length) {\n return;\n }\n\n event.preventDefault();\n this.tags.last.nativeElement.focus();\n }\n\n protected onFieldKeyDownEnter(): void {\n this.addTag();\n this.scrollTo();\n }\n\n protected onTagKeyDownArrowLeft(currentIndex: number): void {\n if (currentIndex > 0) {\n this.onScrollKeyDown(currentIndex, -1);\n }\n }\n\n protected onTagKeyDownArrowRight(currentIndex: number): void {\n if (currentIndex === this.value.length - 1) {\n this.focusInput();\n } else {\n this.onScrollKeyDown(currentIndex, 1);\n }\n }\n\n protected onInput(value: string): void {\n const array = value.split(this.separator);\n const tags = array\n .map((item) => this.clippedValue(item.trim()))\n .filter((item) => item.length > 0);\n const validated = tags.filter((tag) => !this.disabledItemHandler(tag));\n const invalid = tags.filter((tag) => this.disabledItemHandler(tag));\n\n if (array.length > 1) {\n const search = invalid.length\n ? invalid.join(tuiIsString(this.separator) ? this.separator : ',')\n : '';\n\n this.updateSearch(this.clippedValue(search));\n\n this.value = this.filterValue([...this.value, ...validated]);\n } else {\n this.updateSearch(this.clippedValue(value));\n }\n\n this.open = this.hasNativeValue;\n }\n\n protected onPaste(event: Event): void {\n const pasted = tuiGetClipboardDataText(event as ClipboardEvent);\n\n this.onInput(pasted || '');\n }\n\n protected onDrop({dataTransfer}: DragEvent): void {\n if (dataTransfer) {\n this.onInput(dataTransfer.getData('text') || '');\n }\n }\n\n protected trackByFn(_: number, tag: string): string {\n // Actually tag has TuiStringifiableItem type not string\n return tag;\n }\n\n private get lineHeight(): number {\n return this.labelOutside\n ? TAG_SIZE_REM[this.controller.size] + 2 * TAG_VERTICAL_SPACE_REM\n : LINE_HEIGHT_REM[this.controller.size];\n }\n\n private scrollTo(scrollLeft = this.scrollBar?.nativeElement.scrollWidth): void {\n // Allow change detection to run and add new tag to DOM\n timer(0)\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n if (this.scrollBar) {\n this.scrollBar.nativeElement.scrollLeft = scrollLeft || 0;\n }\n });\n }\n\n private filterValue(value: string[]): string[] {\n const seen = new Set();\n\n return value\n .reverse()\n .filter(\n (item) => !this.uniqueTags || (item && !seen.has(item) && seen.add(item)),\n )\n .reverse();\n }\n\n private onScrollKeyDown(currentIndex: number, flag: number): void {\n const tag = this.tags.find((_item, index) => index === currentIndex + flag);\n\n if (!tag || !this.scrollBar) {\n return;\n }\n\n tag.nativeElement.focus();\n\n if (\n flag * this.scrollBar.nativeElement.clientWidth -\n flag * tag.nativeElement.offsetLeft -\n tag.nativeElement.clientWidth <\n 0\n ) {\n this.scrollBar.nativeElement.scrollLeft +=\n flag * tag.nativeElement.clientWidth;\n }\n }\n\n private updateSearch(value: string): void {\n if (this.focusableElement) {\n this.focusableElement.nativeElement.value = value;\n }\n\n this.search = value;\n this.searchChange.emit(value);\n }\n\n private addTag(): void {\n const inputValue = this.search?.trim() ?? '';\n\n if (!inputValue || this.disabledItemHandler(inputValue)) {\n return;\n }\n\n this.updateSearch('');\n this.value = this.filterValue(this.value.concat(inputValue));\n }\n\n private deleteLastEnabledItem(): void {\n for (let index = this.value.length - 1; index >= 0; index--) {\n if (!this.disabledItemHandler(this.value[index] ?? '')) {\n this.value = tuiArrayRemove(this.value, index);\n\n break;\n }\n }\n }\n\n private focusInput(preventScroll = false): void {\n this.nativeFocusableElement?.focus({preventScroll});\n }\n\n private clippedValue(value: string): string {\n return value.slice(0, this.maxLength || value.length);\n }\n}\n","@if (hintOptions?.change$ | async) {}\n<div\n tuiDropdownOpenMonitor\n class=\"t-hosted\"\n [tuiDropdown]=\"datalist || ''\"\n [tuiDropdownEnabled]=\"canOpen\"\n [(tuiDropdownOpen)]=\"open\"\n (tuiActiveZoneChange)=\"onActiveZone($event)\"\n>\n <div\n tuiWrapper\n [appearance]=\"appearance\"\n [disabled]=\"computedDisabled\"\n [focus]=\"computedFocused\"\n [hover]=\"pseudoHover\"\n [invalid]=\"computedInvalid\"\n [readOnly]=\"readOnly\"\n (click.prevent.zoneless)=\"detectRetargetFromLabel($event)\"\n (mousedown)=\"onMouseDown($event)\"\n >\n <div class=\"t-content\">\n @if (iconStart) {\n <div class=\"t-icon t-icon_left t-textfield-icon t-icon-wrapper\">\n <tui-icon\n *polymorpheusOutlet=\"iconStart as src; context: {$implicit: size}\"\n tuiAppearance=\"icon\"\n [icon]=\"src.toString()\"\n />\n </div>\n }\n <div class=\"t-wrapper\">\n <div class=\"t-absolute-wrapper\">\n @if (hasPlaceholder) {\n <div\n automation-id=\"tui-input-tag__placeholder\"\n class=\"t-placeholder\"\n [class.t-placeholder_raised]=\"placeholderRaised\"\n >\n <ng-content />\n </div>\n }\n </div>\n <tui-scrollbar\n class=\"t-scrollbar\"\n [hidden]=\"!expandable\"\n [style.maxHeight.rem]=\"computeMaxHeight\"\n >\n <div\n class=\"t-tags\"\n [class.t-tags_empty]=\"tagsEmpty\"\n >\n @if (labelOutside) {\n @for (item of value; track trackByFn($index, item)) {\n <tui-tag\n #tag\n automation-id=\"tui-input-tag__tag\"\n tabIndex=\"-1\"\n class=\"t-tag\"\n [autoColor]=\"autoColor\"\n [disabled]=\"computedDisabled || disabledItemHandler(item)\"\n [editable]=\"editable && !readOnly\"\n [hoverable]=\"!readOnly\"\n [leftContent]=\"getLeftContent(item)\"\n [maxLength]=\"maxLength\"\n [removable]=\"!readOnly && removable\"\n [separator]=\"separator\"\n [size]=\"controller.size\"\n [status]=\"status\"\n [value]=\"item.toString()\"\n (edited)=\"onTagEdited($event, $index)\"\n (keydown.arrowLeft.prevent)=\"onTagKeyDownArrowLeft($index)\"\n (keydown.arrowRight.prevent)=\"onTagKeyDownArrowRight($index)\"\n />\n }\n } @else {\n @for (item of value; track item) {\n <span\n class=\"t-text\"\n [class.t-text_comma]=\"computedFocused && !inputHidden\"\n [class.t-text_disabled]=\"disabledItemHandler(item)\"\n [class.t-text_error]=\"!tagValidator(item)\"\n [textContent]=\"item\"\n ></span>\n }\n }\n <div\n class=\"t-input-wrapper\"\n [class.t-input-wrapper_collapsed]=\"computedDisabled || readOnly || inputHidden\"\n >\n <div class=\"t-ghost\">{{ search }}</div>\n <input\n #focusableElement\n automation-id=\"tui-input-tag__native\"\n type=\"text\"\n class=\"t-native\"\n [attr.maxLength]=\"maxLength\"\n [class.t-native_hidden]=\"inputHidden\"\n [disabled]=\"computedDisabled\"\n [id]=\"id\"\n [ngModel]=\"search\"\n [ngModelOptions]=\"{standalone: true}\"\n [placeholder]=\"placeholder\"\n [readOnly]=\"readOnly || inputHidden\"\n [tabIndex]=\"computedFocusable ? 0 : -1\"\n (drop.prevent)=\"onDrop($any($event))\"\n (keydown.arrowLeft)=\"onFieldKeyDownArrowLeft($event)\"\n (keydown.backspace)=\"onFieldKeyDownBackspace($event)\"\n (keydown.enter.prevent)=\"onFieldKeyDownEnter()\"\n (ngModelChange)=\"onInput($event)\"\n (paste.prevent)=\"onPaste($event)\"\n />\n </div>\n </div>\n <div class=\"t-value-content\">\n <ng-content select=\"tuiContent\" />\n </div>\n </tui-scrollbar>\n </div>\n <ng-content select=\"select\" />\n @if (hasRightIcons) {\n <div class=\"t-icons t-icon-wrapper\">\n @if (hasCleaner) {\n <tui-icon\n *polymorpheusOutlet=\"iconCleaner as src; context: {$implicit: size}\"\n #cleaner\n automation-id=\"tui-input-tag__cleaner\"\n tuiAppearance=\"icon\"\n class=\"t-cleaner\"\n [icon]=\"src.toString()\"\n (click.stop)=\"onCleanerClick()\"\n />\n }\n @if (showHint) {\n <tui-tooltip\n automation-id=\"tui-input-tag__tooltip\"\n class=\"t-tooltip\"\n [content]=\"hintOptions?.content\"\n [describeId]=\"id\"\n />\n }\n @if (icon) {\n <div class=\"t-icon t-textfield-icon\">\n <tui-icon\n *polymorpheusOutlet=\"icon as src; context: {$implicit: size}\"\n tuiAppearance=\"icon\"\n [icon]=\"src.toString()\"\n />\n </div>\n }\n </div>\n }\n </div>\n <ng-template #errorIcon>\n <tui-icon\n class=\"t-error-icon\"\n [icon]=\"icons.error\"\n />\n </ng-template>\n </div>\n</div>\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {FormsModule} from '@angular/forms';\nimport {TuiHovered} from '@taiga-ui/cdk/directives/hovered';\nimport {TuiScrollService} from '@taiga-ui/cdk/services';\nimport {TuiIcon} from '@taiga-ui/core/components/icon';\nimport {TuiScrollbar} from '@taiga-ui/core/components/scrollbar';\nimport {TuiAppearance} from '@taiga-ui/core/directives/appearance';\nimport {TuiDropdown} from '@taiga-ui/core/directives/dropdown';\nimport {TuiTagModule} from '@taiga-ui/legacy/components/tag';\nimport {TuiTooltipModule} from '@taiga-ui/legacy/components/tooltip';\nimport {\n TuiLegacyDropdownOpenMonitorDirective,\n TuiWrapperModule,\n} from '@taiga-ui/legacy/directives';\nimport {PolymorpheusOutlet, PolymorpheusTemplate} from '@taiga-ui/polymorpheus';\n\nimport {TuiInputTagComponent} from './input-tag.component';\n\n/**\n * TODO(v5): delete it\n * @deprecated use {@link https://taiga-ui.dev/components/input-chip TuiInputChip} instead\n */\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n PolymorpheusOutlet,\n PolymorpheusTemplate,\n TuiHovered,\n TuiScrollbar,\n TuiTooltipModule,\n TuiTagModule,\n TuiWrapperModule,\n TuiLegacyDropdownOpenMonitorDirective,\n TuiAppearance,\n TuiIcon,\n ...TuiDropdown,\n ],\n declarations: [TuiInputTagComponent],\n providers: [TuiScrollService],\n exports: [TuiInputTagComponent, ...TuiDropdown],\n})\nexport class TuiInputTagModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}