@taiga-ui/kit 4.42.0-canary.a1d4758 → 4.43.0-canary.0505af2

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 (271) hide show
  1. package/components/avatar/avatar.options.d.ts +2 -1
  2. package/components/badge/badge.options.d.ts +2 -1
  3. package/components/badge-notification/badge-notification.options.d.ts +2 -1
  4. package/components/block/block.options.d.ts +2 -1
  5. package/components/breadcrumbs/breadcrumbs.options.d.ts +2 -1
  6. package/components/checkbox/checkbox.options.d.ts +2 -1
  7. package/components/chip/chip.options.d.ts +2 -1
  8. package/components/combo-box/combo-box.directive.d.ts +0 -1
  9. package/components/files/input-files/input-files.options.d.ts +2 -1
  10. package/components/index.d.ts +2 -0
  11. package/components/input-chip/input-chip.component.d.ts +2 -2
  12. package/components/input-chip/input-chip.directive.d.ts +2 -0
  13. package/components/input-date/input-date.directive.d.ts +2 -1
  14. package/components/input-date-range/input-date-range.directive.d.ts +1 -0
  15. package/components/input-date-range/input-date-range.options.d.ts +2 -1
  16. package/components/input-month/input-month.options.d.ts +2 -1
  17. package/components/input-month-range/input-month-range.options.d.ts +2 -1
  18. package/components/input-password/input-password.options.d.ts +2 -1
  19. package/components/input-phone-international/input-phone-international.options.d.ts +2 -1
  20. package/components/input-time/index.d.ts +4 -0
  21. package/components/input-time/input-time.component.d.ts +14 -0
  22. package/components/input-time/input-time.d.ts +3 -0
  23. package/components/input-time/input-time.directive.d.ts +31 -0
  24. package/components/input-time/input-time.options.d.ts +11 -0
  25. package/components/line-clamp/line-clamp.options.d.ts +2 -1
  26. package/components/multi-select/index.d.ts +4 -0
  27. package/components/multi-select/multi-select-group/multi-select-group.component.d.ts +19 -0
  28. package/components/multi-select/multi-select-group/multi-select-group.directive.d.ts +5 -0
  29. package/components/multi-select/multi-select-option/multi-select-option.component.d.ts +12 -0
  30. package/components/multi-select/multi-select.d.ts +3 -0
  31. package/components/pdf-viewer/pdf-viewer.options.d.ts +2 -1
  32. package/components/progress/progress.options.d.ts +2 -1
  33. package/components/push/push.options.d.ts +2 -1
  34. package/components/radio/radio.options.d.ts +2 -1
  35. package/components/rating/rating.options.d.ts +2 -1
  36. package/components/select/select-option/select-option.component.d.ts +4 -6
  37. package/components/slider/slider.options.d.ts +2 -1
  38. package/components/switch/switch.options.d.ts +2 -1
  39. package/components/tabs/tabs.options.d.ts +2 -1
  40. package/components/tabs/tabs.providers.d.ts +2 -1
  41. package/components/tiles/tiles.tokens.d.ts +2 -1
  42. package/components/tree/misc/tree.tokens.d.ts +9 -8
  43. package/directives/button-select/button-select.directive.d.ts +3 -2
  44. package/directives/chevron/chevron.directive.d.ts +2 -1
  45. package/directives/fluid-typography/fluid-typography.options.d.ts +2 -1
  46. package/esm2022/components/accordion/accordion-item.component.mjs +3 -3
  47. package/esm2022/components/avatar/avatar-labeled.component.mjs +3 -3
  48. package/esm2022/components/avatar/avatar-stack.component.mjs +2 -2
  49. package/esm2022/components/avatar/avatar.options.mjs +6 -3
  50. package/esm2022/components/badge/badge.directive.mjs +2 -2
  51. package/esm2022/components/badge/badge.options.mjs +6 -3
  52. package/esm2022/components/badge-notification/badge-notification.options.mjs +6 -3
  53. package/esm2022/components/block/block.options.mjs +6 -3
  54. package/esm2022/components/breadcrumbs/breadcrumbs.options.mjs +6 -3
  55. package/esm2022/components/calendar-month/calendar-month.component.mjs +3 -3
  56. package/esm2022/components/checkbox/checkbox.options.mjs +6 -3
  57. package/esm2022/components/chip/chip.options.mjs +6 -3
  58. package/esm2022/components/combo-box/combo-box.directive.mjs +4 -10
  59. package/esm2022/components/confirm/confirm.component.mjs +3 -3
  60. package/esm2022/components/data-list-wrapper/data-list-group-wrapper.component.mjs +3 -3
  61. package/esm2022/components/data-list-wrapper/data-list-wrapper.component.mjs +3 -3
  62. package/esm2022/components/elastic-container/elastic-container.component.mjs +3 -3
  63. package/esm2022/components/files/file/file.component.mjs +3 -3
  64. package/esm2022/components/files/files/files.component.mjs +3 -3
  65. package/esm2022/components/files/input-files/input-files.directive.mjs +3 -2
  66. package/esm2022/components/files/input-files/input-files.options.mjs +6 -3
  67. package/esm2022/components/filter/filter.component.mjs +3 -3
  68. package/esm2022/components/floating-container/floating-container.directive.mjs +2 -2
  69. package/esm2022/components/index.mjs +3 -1
  70. package/esm2022/components/input-chip/input-chip.component.mjs +15 -13
  71. package/esm2022/components/input-chip/input-chip.directive.mjs +20 -9
  72. package/esm2022/components/input-date/input-date.directive.mjs +11 -3
  73. package/esm2022/components/input-date-range/input-date-range.directive.mjs +6 -2
  74. package/esm2022/components/input-date-range/input-date-range.options.mjs +9 -7
  75. package/esm2022/components/input-inline/input-inline.component.mjs +3 -3
  76. package/esm2022/components/input-month/input-month.options.mjs +9 -7
  77. package/esm2022/components/input-month-range/input-month-range.options.mjs +9 -7
  78. package/esm2022/components/input-password/input-password.options.mjs +6 -3
  79. package/esm2022/components/input-phone-international/input-phone-international.component.mjs +1 -1
  80. package/esm2022/components/input-phone-international/input-phone-international.options.mjs +6 -3
  81. package/esm2022/components/input-pin/input-pin.component.mjs +3 -3
  82. package/esm2022/components/input-time/index.mjs +5 -0
  83. package/esm2022/components/input-time/input-time.component.mjs +49 -0
  84. package/esm2022/components/input-time/input-time.directive.mjs +123 -0
  85. package/esm2022/components/input-time/input-time.mjs +4 -0
  86. package/esm2022/components/input-time/input-time.options.mjs +9 -0
  87. package/esm2022/components/input-time/taiga-ui-kit-components-input-time.mjs +5 -0
  88. package/esm2022/components/line-clamp/line-clamp-box.component.mjs +3 -3
  89. package/esm2022/components/line-clamp/line-clamp.component.mjs +3 -3
  90. package/esm2022/components/line-clamp/line-clamp.options.mjs +6 -3
  91. package/esm2022/components/multi-select/index.mjs +5 -0
  92. package/esm2022/components/multi-select/multi-select-group/multi-select-group.component.mjs +50 -0
  93. package/esm2022/components/multi-select/multi-select-group/multi-select-group.directive.mjs +18 -0
  94. package/esm2022/components/multi-select/multi-select-option/multi-select-option.component.mjs +52 -0
  95. package/esm2022/components/multi-select/multi-select.mjs +7 -0
  96. package/esm2022/components/multi-select/taiga-ui-kit-components-multi-select.mjs +5 -0
  97. package/esm2022/components/pagination/pagination.component.mjs +3 -3
  98. package/esm2022/components/pdf-viewer/pdf-viewer.component.mjs +3 -3
  99. package/esm2022/components/pdf-viewer/pdf-viewer.options.mjs +6 -3
  100. package/esm2022/components/pin/pin.directive.mjs +2 -2
  101. package/esm2022/components/preview/preview.component.mjs +3 -3
  102. package/esm2022/components/preview/zoom/preview-zoom.component.mjs +3 -3
  103. package/esm2022/components/progress/progress-bar/fixed-gradient/progress-fixed-gradient.directive.mjs +2 -2
  104. package/esm2022/components/progress/progress-bar/progress-bar.component.mjs +2 -2
  105. package/esm2022/components/progress/progress.options.mjs +6 -3
  106. package/esm2022/components/push/push-alert.component.mjs +3 -3
  107. package/esm2022/components/push/push.component.mjs +3 -3
  108. package/esm2022/components/push/push.options.mjs +6 -3
  109. package/esm2022/components/radio/radio.options.mjs +6 -3
  110. package/esm2022/components/rating/rating.options.mjs +6 -3
  111. package/esm2022/components/select/select-option/select-option.component.mjs +29 -23
  112. package/esm2022/components/select/select.directive.mjs +1 -4
  113. package/esm2022/components/slider/slider.component.mjs +2 -2
  114. package/esm2022/components/slider/slider.options.mjs +6 -3
  115. package/esm2022/components/stepper/step.component.mjs +3 -3
  116. package/esm2022/components/switch/switch.options.mjs +6 -3
  117. package/esm2022/components/tabs/tabs-with-more.component.mjs +3 -3
  118. package/esm2022/components/tabs/tabs.directive.mjs +2 -2
  119. package/esm2022/components/tabs/tabs.options.mjs +6 -3
  120. package/esm2022/components/tabs/tabs.providers.mjs +3 -4
  121. package/esm2022/components/textarea/textarea-limit.directive.mjs +2 -2
  122. package/esm2022/components/textarea/textarea.component.mjs +3 -3
  123. package/esm2022/components/tiles/tiles.tokens.mjs +5 -3
  124. package/esm2022/components/tree/components/tree-item/tree-item.component.mjs +3 -3
  125. package/esm2022/components/tree/components/tree-item-content/tree-item-content.component.mjs +3 -3
  126. package/esm2022/components/tree/misc/tree.tokens.mjs +18 -10
  127. package/esm2022/directives/button-select/button-select.directive.mjs +15 -7
  128. package/esm2022/directives/chevron/chevron.directive.mjs +6 -4
  129. package/esm2022/directives/fluid-typography/fluid-typography.options.mjs +6 -3
  130. package/esm2022/pipes/emails/emails.options.mjs +13 -11
  131. package/esm2022/pipes/filter-by-input/filter-by-input.pipe.mjs +2 -2
  132. package/esm2022/pipes/hide-selected/hide-selected.pipe.mjs +46 -0
  133. package/esm2022/pipes/hide-selected/index.mjs +2 -0
  134. package/esm2022/pipes/hide-selected/taiga-ui-kit-pipes-hide-selected.mjs +5 -0
  135. package/esm2022/pipes/index.mjs +2 -1
  136. package/esm2022/tokens/calendar-date-stream.mjs +3 -4
  137. package/esm2022/tokens/date-inputs-value-transformers.mjs +8 -6
  138. package/esm2022/tokens/i18n.mjs +74 -26
  139. package/esm2022/tokens/items-handlers.mjs +9 -6
  140. package/esm2022/tokens/mobile-calendar.mjs +3 -4
  141. package/esm2022/tokens/month-formatter.mjs +10 -9
  142. package/esm2022/tokens/preview-icons.mjs +6 -3
  143. package/esm2022/tokens/validation-errors.mjs +5 -3
  144. package/esm2022/utils/index.mjs +2 -1
  145. package/esm2022/utils/inject-value.mjs +11 -0
  146. package/fesm2022/taiga-ui-kit-components-accordion.mjs +2 -2
  147. package/fesm2022/taiga-ui-kit-components-accordion.mjs.map +1 -1
  148. package/fesm2022/taiga-ui-kit-components-avatar.mjs +9 -7
  149. package/fesm2022/taiga-ui-kit-components-avatar.mjs.map +1 -1
  150. package/fesm2022/taiga-ui-kit-components-badge-notification.mjs +5 -3
  151. package/fesm2022/taiga-ui-kit-components-badge-notification.mjs.map +1 -1
  152. package/fesm2022/taiga-ui-kit-components-badge.mjs +7 -5
  153. package/fesm2022/taiga-ui-kit-components-badge.mjs.map +1 -1
  154. package/fesm2022/taiga-ui-kit-components-block.mjs +5 -3
  155. package/fesm2022/taiga-ui-kit-components-block.mjs.map +1 -1
  156. package/fesm2022/taiga-ui-kit-components-breadcrumbs.mjs +5 -3
  157. package/fesm2022/taiga-ui-kit-components-breadcrumbs.mjs.map +1 -1
  158. package/fesm2022/taiga-ui-kit-components-calendar-month.mjs +2 -2
  159. package/fesm2022/taiga-ui-kit-components-calendar-month.mjs.map +1 -1
  160. package/fesm2022/taiga-ui-kit-components-checkbox.mjs +5 -3
  161. package/fesm2022/taiga-ui-kit-components-checkbox.mjs.map +1 -1
  162. package/fesm2022/taiga-ui-kit-components-chip.mjs +5 -3
  163. package/fesm2022/taiga-ui-kit-components-chip.mjs.map +1 -1
  164. package/fesm2022/taiga-ui-kit-components-combo-box.mjs +3 -9
  165. package/fesm2022/taiga-ui-kit-components-combo-box.mjs.map +1 -1
  166. package/fesm2022/taiga-ui-kit-components-confirm.mjs +2 -2
  167. package/fesm2022/taiga-ui-kit-components-confirm.mjs.map +1 -1
  168. package/fesm2022/taiga-ui-kit-components-data-list-wrapper.mjs +4 -4
  169. package/fesm2022/taiga-ui-kit-components-data-list-wrapper.mjs.map +1 -1
  170. package/fesm2022/taiga-ui-kit-components-elastic-container.mjs +2 -2
  171. package/fesm2022/taiga-ui-kit-components-elastic-container.mjs.map +1 -1
  172. package/fesm2022/taiga-ui-kit-components-files.mjs +11 -8
  173. package/fesm2022/taiga-ui-kit-components-files.mjs.map +1 -1
  174. package/fesm2022/taiga-ui-kit-components-filter.mjs +2 -2
  175. package/fesm2022/taiga-ui-kit-components-filter.mjs.map +1 -1
  176. package/fesm2022/taiga-ui-kit-components-floating-container.mjs +2 -2
  177. package/fesm2022/taiga-ui-kit-components-floating-container.mjs.map +1 -1
  178. package/fesm2022/taiga-ui-kit-components-input-chip.mjs +109 -95
  179. package/fesm2022/taiga-ui-kit-components-input-chip.mjs.map +1 -1
  180. package/fesm2022/taiga-ui-kit-components-input-date-range.mjs +12 -6
  181. package/fesm2022/taiga-ui-kit-components-input-date-range.mjs.map +1 -1
  182. package/fesm2022/taiga-ui-kit-components-input-date.mjs +10 -2
  183. package/fesm2022/taiga-ui-kit-components-input-date.mjs.map +1 -1
  184. package/fesm2022/taiga-ui-kit-components-input-inline.mjs +2 -2
  185. package/fesm2022/taiga-ui-kit-components-input-inline.mjs.map +1 -1
  186. package/fesm2022/taiga-ui-kit-components-input-month-range.mjs +8 -6
  187. package/fesm2022/taiga-ui-kit-components-input-month-range.mjs.map +1 -1
  188. package/fesm2022/taiga-ui-kit-components-input-month.mjs +8 -6
  189. package/fesm2022/taiga-ui-kit-components-input-month.mjs.map +1 -1
  190. package/fesm2022/taiga-ui-kit-components-input-password.mjs +5 -3
  191. package/fesm2022/taiga-ui-kit-components-input-password.mjs.map +1 -1
  192. package/fesm2022/taiga-ui-kit-components-input-phone-international.mjs +6 -4
  193. package/fesm2022/taiga-ui-kit-components-input-phone-international.mjs.map +1 -1
  194. package/fesm2022/taiga-ui-kit-components-input-pin.mjs +2 -2
  195. package/fesm2022/taiga-ui-kit-components-input-pin.mjs.map +1 -1
  196. package/fesm2022/taiga-ui-kit-components-input-time.mjs +180 -0
  197. package/fesm2022/taiga-ui-kit-components-input-time.mjs.map +1 -0
  198. package/fesm2022/taiga-ui-kit-components-line-clamp.mjs +9 -7
  199. package/fesm2022/taiga-ui-kit-components-line-clamp.mjs.map +1 -1
  200. package/fesm2022/taiga-ui-kit-components-multi-select.mjs +118 -0
  201. package/fesm2022/taiga-ui-kit-components-multi-select.mjs.map +1 -0
  202. package/fesm2022/taiga-ui-kit-components-pagination.mjs +2 -2
  203. package/fesm2022/taiga-ui-kit-components-pagination.mjs.map +1 -1
  204. package/fesm2022/taiga-ui-kit-components-pdf-viewer.mjs +7 -5
  205. package/fesm2022/taiga-ui-kit-components-pdf-viewer.mjs.map +1 -1
  206. package/fesm2022/taiga-ui-kit-components-pin.mjs +2 -2
  207. package/fesm2022/taiga-ui-kit-components-pin.mjs.map +1 -1
  208. package/fesm2022/taiga-ui-kit-components-preview.mjs +4 -4
  209. package/fesm2022/taiga-ui-kit-components-preview.mjs.map +1 -1
  210. package/fesm2022/taiga-ui-kit-components-progress.mjs +9 -7
  211. package/fesm2022/taiga-ui-kit-components-progress.mjs.map +1 -1
  212. package/fesm2022/taiga-ui-kit-components-push.mjs +9 -7
  213. package/fesm2022/taiga-ui-kit-components-push.mjs.map +1 -1
  214. package/fesm2022/taiga-ui-kit-components-radio.mjs +5 -3
  215. package/fesm2022/taiga-ui-kit-components-radio.mjs.map +1 -1
  216. package/fesm2022/taiga-ui-kit-components-rating.mjs +5 -3
  217. package/fesm2022/taiga-ui-kit-components-rating.mjs.map +1 -1
  218. package/fesm2022/taiga-ui-kit-components-select.mjs +29 -24
  219. package/fesm2022/taiga-ui-kit-components-select.mjs.map +1 -1
  220. package/fesm2022/taiga-ui-kit-components-slider.mjs +7 -5
  221. package/fesm2022/taiga-ui-kit-components-slider.mjs.map +1 -1
  222. package/fesm2022/taiga-ui-kit-components-stepper.mjs +2 -2
  223. package/fesm2022/taiga-ui-kit-components-stepper.mjs.map +1 -1
  224. package/fesm2022/taiga-ui-kit-components-switch.mjs +5 -3
  225. package/fesm2022/taiga-ui-kit-components-switch.mjs.map +1 -1
  226. package/fesm2022/taiga-ui-kit-components-tabs.mjs +10 -8
  227. package/fesm2022/taiga-ui-kit-components-tabs.mjs.map +1 -1
  228. package/fesm2022/taiga-ui-kit-components-textarea.mjs +4 -4
  229. package/fesm2022/taiga-ui-kit-components-textarea.mjs.map +1 -1
  230. package/fesm2022/taiga-ui-kit-components-tiles.mjs +5 -3
  231. package/fesm2022/taiga-ui-kit-components-tiles.mjs.map +1 -1
  232. package/fesm2022/taiga-ui-kit-components-tree.mjs +22 -14
  233. package/fesm2022/taiga-ui-kit-components-tree.mjs.map +1 -1
  234. package/fesm2022/taiga-ui-kit-components.mjs +2 -0
  235. package/fesm2022/taiga-ui-kit-components.mjs.map +1 -1
  236. package/fesm2022/taiga-ui-kit-directives-button-select.mjs +14 -6
  237. package/fesm2022/taiga-ui-kit-directives-button-select.mjs.map +1 -1
  238. package/fesm2022/taiga-ui-kit-directives-chevron.mjs +5 -3
  239. package/fesm2022/taiga-ui-kit-directives-chevron.mjs.map +1 -1
  240. package/fesm2022/taiga-ui-kit-directives-fluid-typography.mjs +5 -3
  241. package/fesm2022/taiga-ui-kit-directives-fluid-typography.mjs.map +1 -1
  242. package/fesm2022/taiga-ui-kit-pipes-emails.mjs +12 -11
  243. package/fesm2022/taiga-ui-kit-pipes-emails.mjs.map +1 -1
  244. package/fesm2022/taiga-ui-kit-pipes-filter-by-input.mjs +1 -1
  245. package/fesm2022/taiga-ui-kit-pipes-filter-by-input.mjs.map +1 -1
  246. package/fesm2022/taiga-ui-kit-pipes-hide-selected.mjs +52 -0
  247. package/fesm2022/taiga-ui-kit-pipes-hide-selected.mjs.map +1 -0
  248. package/fesm2022/taiga-ui-kit-pipes.mjs +1 -0
  249. package/fesm2022/taiga-ui-kit-pipes.mjs.map +1 -1
  250. package/fesm2022/taiga-ui-kit-tokens.mjs +102 -44
  251. package/fesm2022/taiga-ui-kit-tokens.mjs.map +1 -1
  252. package/fesm2022/taiga-ui-kit-utils.mjs +12 -1
  253. package/fesm2022/taiga-ui-kit-utils.mjs.map +1 -1
  254. package/package.json +44 -26
  255. package/pipes/emails/emails.options.d.ts +2 -1
  256. package/pipes/hide-selected/hide-selected.pipe.d.ts +12 -0
  257. package/pipes/hide-selected/index.d.ts +1 -0
  258. package/pipes/index.d.ts +1 -0
  259. package/styles/components/badge.less +1 -13
  260. package/styles/components/pin.less +2 -2
  261. package/styles/components/progress-bar.less +1 -1
  262. package/tokens/calendar-date-stream.d.ts +2 -1
  263. package/tokens/date-inputs-value-transformers.d.ts +5 -4
  264. package/tokens/i18n.d.ts +25 -24
  265. package/tokens/items-handlers.d.ts +6 -5
  266. package/tokens/mobile-calendar.d.ts +2 -1
  267. package/tokens/month-formatter.d.ts +2 -1
  268. package/tokens/preview-icons.d.ts +2 -1
  269. package/tokens/validation-errors.d.ts +2 -1
  270. package/utils/index.d.ts +1 -0
  271. package/utils/inject-value.d.ts +2 -0
@@ -1,11 +1,14 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { Directive } from '@angular/core';
3
3
  import { TuiControl } from '@taiga-ui/cdk/classes';
4
- import { tuiAsDataListHost } from '@taiga-ui/core/components/data-list';
5
- import * as i2 from '@taiga-ui/core/components/textfield';
4
+ import * as i2 from '@taiga-ui/cdk/directives/native-validator';
5
+ import { TuiNativeValidator } from '@taiga-ui/cdk/directives/native-validator';
6
+ import { tuiAsOptionContent, tuiAsDataListHost } from '@taiga-ui/core/components/data-list';
7
+ import * as i3 from '@taiga-ui/core/components/textfield';
6
8
  import { TuiWithTextfieldDropdown } from '@taiga-ui/core/components/textfield';
7
9
  import * as i1 from '@taiga-ui/core/directives/dropdown';
8
10
  import { tuiDropdownOpen, tuiDropdownOptionsProvider, TuiDropdownDirective, TuiWithDropdownOpen } from '@taiga-ui/core/directives/dropdown';
11
+ import { TuiSelectOption } from '@taiga-ui/kit/components/select';
9
12
 
10
13
  class TuiButtonSelect extends TuiControl {
11
14
  constructor() {
@@ -19,10 +22,10 @@ class TuiButtonSelect extends TuiControl {
19
22
  }
20
23
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiButtonSelect, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
21
24
  static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: TuiButtonSelect, isStandalone: true, selector: "button[tuiButtonSelect]", providers: [
22
- // TODO: Add checkmark once we properly implement new Select, then add to demo
25
+ tuiAsOptionContent(TuiSelectOption),
23
26
  tuiAsDataListHost(TuiButtonSelect),
24
27
  tuiDropdownOptionsProvider({ align: 'right' }),
25
- ], usesInheritance: true, hostDirectives: [{ directive: i1.TuiDropdownDirective }, { directive: i1.TuiWithDropdownOpen }, { directive: i2.TuiWithTextfieldDropdown }], ngImport: i0 }); }
28
+ ], usesInheritance: true, hostDirectives: [{ directive: i1.TuiDropdownDirective }, { directive: i2.TuiNativeValidator }, { directive: i1.TuiWithDropdownOpen }, { directive: i3.TuiWithTextfieldDropdown }], ngImport: i0 }); }
26
29
  }
27
30
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiButtonSelect, decorators: [{
28
31
  type: Directive,
@@ -30,11 +33,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
30
33
  standalone: true,
31
34
  selector: 'button[tuiButtonSelect]',
32
35
  providers: [
33
- // TODO: Add checkmark once we properly implement new Select, then add to demo
36
+ tuiAsOptionContent(TuiSelectOption),
34
37
  tuiAsDataListHost(TuiButtonSelect),
35
38
  tuiDropdownOptionsProvider({ align: 'right' }),
36
39
  ],
37
- hostDirectives: [TuiDropdownDirective, TuiWithDropdownOpen, TuiWithTextfieldDropdown],
40
+ hostDirectives: [
41
+ TuiDropdownDirective,
42
+ TuiNativeValidator,
43
+ TuiWithDropdownOpen,
44
+ TuiWithTextfieldDropdown,
45
+ ],
38
46
  }]
39
47
  }] });
40
48
 
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-kit-directives-button-select.mjs","sources":["../../../projects/kit/directives/button-select/button-select.directive.ts","../../../projects/kit/directives/button-select/taiga-ui-kit-directives-button-select.ts"],"sourcesContent":["import {Directive} from '@angular/core';\nimport {TuiControl} from '@taiga-ui/cdk/classes';\nimport type {TuiDataListHost} from '@taiga-ui/core/components/data-list';\nimport {tuiAsDataListHost} from '@taiga-ui/core/components/data-list';\nimport {TuiWithTextfieldDropdown} from '@taiga-ui/core/components/textfield';\nimport {\n TuiDropdownDirective,\n tuiDropdownOpen,\n tuiDropdownOptionsProvider,\n TuiWithDropdownOpen,\n} from '@taiga-ui/core/directives/dropdown';\n\n@Directive({\n standalone: true,\n selector: 'button[tuiButtonSelect]',\n providers: [\n // TODO: Add checkmark once we properly implement new Select, then add to demo\n tuiAsDataListHost(TuiButtonSelect),\n tuiDropdownOptionsProvider({align: 'right'}),\n ],\n hostDirectives: [TuiDropdownDirective, TuiWithDropdownOpen, TuiWithTextfieldDropdown],\n})\nexport class TuiButtonSelect<T> extends TuiControl<T> implements TuiDataListHost<T> {\n private readonly open = tuiDropdownOpen();\n\n public readonly size = 's';\n\n public handleOption(option: T): void {\n this.onChange(option);\n this.open.set(false);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;AAYA,MAUa,eAAmB,SAAQ,UAAa,CAAA;AAVrD,IAAA,WAAA,GAAA;;QAWqB,IAAI,CAAA,IAAA,GAAG,eAAe,EAAE,CAAC;QAE1B,IAAI,CAAA,IAAA,GAAG,GAAG,CAAC;AAM9B,KAAA;AAJU,IAAA,YAAY,CAAC,MAAS,EAAA;AACzB,QAAA,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AACtB,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;KACxB;+GARQ,eAAe,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAf,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,eAAe,EAPb,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,SAAA,EAAA;;YAEP,iBAAiB,CAAC,eAAe,CAAC;AAClC,YAAA,0BAA0B,CAAC,EAAC,KAAK,EAAE,OAAO,EAAC,CAAC;AAC/C,SAAA,EAAA,eAAA,EAAA,IAAA,EAAA,cAAA,EAAA,CAAA,EAAA,SAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,EAAA,EAAA,SAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,EAAA,EAAA,SAAA,EAAA,EAAA,CAAA,wBAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FAGQ,eAAe,EAAA,UAAA,EAAA,CAAA;kBAV3B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,yBAAyB;AACnC,oBAAA,SAAS,EAAE;;AAEP,wBAAA,iBAAiB,CAAiB,eAAA,CAAA;AAClC,wBAAA,0BAA0B,CAAC,EAAC,KAAK,EAAE,OAAO,EAAC,CAAC;AAC/C,qBAAA;AACD,oBAAA,cAAc,EAAE,CAAC,oBAAoB,EAAE,mBAAmB,EAAE,wBAAwB,CAAC;AACxF,iBAAA,CAAA;;;ACrBD;;AAEG;;;;"}
1
+ {"version":3,"file":"taiga-ui-kit-directives-button-select.mjs","sources":["../../../projects/kit/directives/button-select/button-select.directive.ts","../../../projects/kit/directives/button-select/taiga-ui-kit-directives-button-select.ts"],"sourcesContent":["import {Directive} from '@angular/core';\nimport {TuiControl} from '@taiga-ui/cdk/classes';\nimport {TuiNativeValidator} from '@taiga-ui/cdk/directives/native-validator';\nimport type {TuiDataListHost} from '@taiga-ui/core/components/data-list';\nimport {tuiAsDataListHost, tuiAsOptionContent} from '@taiga-ui/core/components/data-list';\nimport {TuiWithTextfieldDropdown} from '@taiga-ui/core/components/textfield';\nimport {\n TuiDropdownDirective,\n tuiDropdownOpen,\n tuiDropdownOptionsProvider,\n TuiWithDropdownOpen,\n} from '@taiga-ui/core/directives/dropdown';\nimport {TuiSelectOption} from '@taiga-ui/kit/components/select';\n\n@Directive({\n standalone: true,\n selector: 'button[tuiButtonSelect]',\n providers: [\n tuiAsOptionContent(TuiSelectOption),\n tuiAsDataListHost(TuiButtonSelect),\n tuiDropdownOptionsProvider({align: 'right'}),\n ],\n hostDirectives: [\n TuiDropdownDirective,\n TuiNativeValidator,\n TuiWithDropdownOpen,\n TuiWithTextfieldDropdown,\n ],\n})\nexport class TuiButtonSelect<T> extends TuiControl<T> implements TuiDataListHost<T> {\n private readonly open = tuiDropdownOpen();\n\n public readonly size = 's';\n\n public handleOption(option: T): void {\n this.onChange(option);\n this.open.set(false);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;;AAcA,MAea,eAAmB,SAAQ,UAAa,CAAA;AAfrD,IAAA,WAAA,GAAA;;QAgBqB,IAAI,CAAA,IAAA,GAAG,eAAe,EAAE,CAAC;QAE1B,IAAI,CAAA,IAAA,GAAG,GAAG,CAAC;AAM9B,KAAA;AAJU,IAAA,YAAY,CAAC,MAAS,EAAA;AACzB,QAAA,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AACtB,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;KACxB;+GARQ,eAAe,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAf,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,eAAe,EAZb,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,SAAA,EAAA;YACP,kBAAkB,CAAC,eAAe,CAAC;YACnC,iBAAiB,CAAC,eAAe,CAAC;AAClC,YAAA,0BAA0B,CAAC,EAAC,KAAK,EAAE,OAAO,EAAC,CAAC;AAC/C,SAAA,EAAA,eAAA,EAAA,IAAA,EAAA,cAAA,EAAA,CAAA,EAAA,SAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,EAAA,EAAA,SAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,EAAA,EAAA,SAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,EAAA,EAAA,SAAA,EAAA,EAAA,CAAA,wBAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FAQQ,eAAe,EAAA,UAAA,EAAA,CAAA;kBAf3B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,yBAAyB;AACnC,oBAAA,SAAS,EAAE;wBACP,kBAAkB,CAAC,eAAe,CAAC;AACnC,wBAAA,iBAAiB,CAAiB,eAAA,CAAA;AAClC,wBAAA,0BAA0B,CAAC,EAAC,KAAK,EAAE,OAAO,EAAC,CAAC;AAC/C,qBAAA;AACD,oBAAA,cAAc,EAAE;wBACZ,oBAAoB;wBACpB,kBAAkB;wBAClB,mBAAmB;wBACnB,wBAAwB;AAC3B,qBAAA;AACJ,iBAAA,CAAA;;;AC5BD;;AAEG;;;;"}
@@ -1,11 +1,13 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Component, ViewEncapsulation, ChangeDetectionStrategy, inject, effect, signal, Directive, Input } from '@angular/core';
2
+ import { InjectionToken, Component, ViewEncapsulation, ChangeDetectionStrategy, inject, effect, signal, Directive, Input } from '@angular/core';
3
3
  import { tuiInjectElement } from '@taiga-ui/cdk/utils/dom';
4
- import { tuiCreateToken, tuiWithStyles, tuiProvide } from '@taiga-ui/cdk/utils/miscellaneous';
4
+ import { tuiWithStyles, tuiProvide } from '@taiga-ui/cdk/utils/miscellaneous';
5
5
  import { TuiDropdownDirective } from '@taiga-ui/core/directives/dropdown';
6
6
  import { TUI_ICON_END } from '@taiga-ui/core/tokens';
7
7
 
8
- const TUI_CHEVRON = tuiCreateToken('@tui.chevron-down');
8
+ const TUI_CHEVRON = new InjectionToken(ngDevMode ? 'TUI_CHEVRON' : '', {
9
+ factory: () => '@tui.chevron-down',
10
+ });
9
11
  class TuiChevronStyles {
10
12
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiChevronStyles, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
11
13
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiChevronStyles, isStandalone: true, selector: "ng-component", host: { classAttribute: "tui-chevron" }, ngImport: i0, template: '', isInline: true, styles: ["[tuiChevron][tuiIcons]:after,tui-icon[tuiChevron]:after{transition-property:transform,color;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;cursor:pointer}tui-textfield[tuiChevron][tuiIcons]:after{font-size:1rem}tui-textfield[data-size=s][tuiChevron][tuiIcons]:after{margin-inline-end:calc(-.125rem - var(--t-padding))}tui-textfield[data-size=m][tuiChevron][tuiIcons]:after{margin-inline-end:calc(.125rem - var(--t-padding))}tui-textfield[data-size=l][tuiChevron][tuiIcons]:after{margin-inline-end:calc(.25rem - var(--t-padding))}[tuiChevron][tuiIcons]._chevron-rotated:after,tui-icon[tuiChevron]._chevron-rotated:after{transform:rotate(180deg)}[tuiChevron]:has(input[tuiAppearance]:read-only):after{cursor:default}tui-textfield[tuiChevron][style*=\"--t-icon-end:\"][data-size=l]{--t-end: 1.875rem}tui-textfield[tuiChevron][style*=\"--t-icon-end:\"][data-size=m]{--t-end: 1.5rem}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-kit-directives-chevron.mjs","sources":["../../../projects/kit/directives/chevron/chevron.directive.ts","../../../projects/kit/directives/chevron/taiga-ui-kit-directives-chevron.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n Directive,\n effect,\n inject,\n Input,\n signal,\n ViewEncapsulation,\n} from '@angular/core';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {\n tuiCreateToken,\n tuiProvide,\n tuiWithStyles,\n} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TuiDropdownDirective} from '@taiga-ui/core/directives/dropdown';\nimport {TUI_ICON_END} from '@taiga-ui/core/tokens';\n\nexport const TUI_CHEVRON = tuiCreateToken('@tui.chevron-down');\n\n@Component({\n standalone: true,\n template: '',\n styleUrls: ['./chevron.style.less'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {class: 'tui-chevron'},\n})\nclass TuiChevronStyles {}\n\n@Directive({\n standalone: true,\n selector: '[tuiChevron]',\n providers: [tuiProvide(TUI_ICON_END, TUI_CHEVRON)],\n host: {tuiChevron: ''},\n})\nexport class TuiChevron {\n private readonly el = tuiInjectElement();\n private readonly dropdown = inject(TuiDropdownDirective, {optional: true});\n\n protected readonly nothing = tuiWithStyles(TuiChevronStyles);\n protected readonly toggle = effect(() =>\n this.el.classList.toggle(\n '_chevron-rotated',\n this.chevron() || (this.chevron() === '' && !!this.dropdown?.ref()),\n ),\n );\n\n // TODO: refactor to signal inputs after Angular update\n public readonly chevron = signal<boolean | ''>('');\n\n @Input()\n public set tuiChevron(chevron: boolean | '') {\n this.chevron.set(chevron);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;MAmBa,WAAW,GAAG,cAAc,CAAC,mBAAmB,EAAE;AAE/D,MAQM,gBAAgB,CAAA;+GAAhB,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAhB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,gBAAgB,iHANR,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,u5BAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;4FAMV,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBARrB,SAAS;AACM,YAAA,IAAA,EAAA,CAAA,EAAA,UAAA,EAAA,IAAI,EACN,QAAA,EAAA,EAAE,EAEG,aAAA,EAAA,iBAAiB,CAAC,IAAI,EAAA,eAAA,EACpB,uBAAuB,CAAC,MAAM,EACzC,IAAA,EAAA,EAAC,KAAK,EAAE,aAAa,EAAC,EAAA,MAAA,EAAA,CAAA,u5BAAA,CAAA,EAAA,CAAA;;AAIhC,MAMa,UAAU,CAAA;AANvB,IAAA,WAAA,GAAA;QAOqB,IAAE,CAAA,EAAA,GAAG,gBAAgB,EAAE,CAAC;QACxB,IAAQ,CAAA,QAAA,GAAG,MAAM,CAAC,oBAAoB,EAAE,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC,CAAC;AAExD,QAAA,IAAA,CAAA,OAAO,GAAG,aAAa,CAAC,gBAAgB,CAAC,CAAC;AAC1C,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,MAC/B,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,MAAM,CACpB,kBAAkB,EAClB,IAAI,CAAC,OAAO,EAAE,KAAK,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,CACtE,CACJ,CAAC;;AAGc,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAe,EAAE,CAAC,CAAC;AAMtD,KAAA;IAJG,IACW,UAAU,CAAC,OAAqB,EAAA;AACvC,QAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;KAC7B;+GAlBQ,UAAU,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAV,UAAU,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,YAAA,EAAA,EAAA,EAAA,EAAA,EAAA,SAAA,EAHR,CAAC,UAAU,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FAGzC,UAAU,EAAA,UAAA,EAAA,CAAA;kBANtB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,cAAc;oBACxB,SAAS,EAAE,CAAC,UAAU,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;AAClD,oBAAA,IAAI,EAAE,EAAC,UAAU,EAAE,EAAE,EAAC;AACzB,iBAAA,CAAA;8BAiBc,UAAU,EAAA,CAAA;sBADpB,KAAK;;;ACpDV;;AAEG;;;;"}
1
+ {"version":3,"file":"taiga-ui-kit-directives-chevron.mjs","sources":["../../../projects/kit/directives/chevron/chevron.directive.ts","../../../projects/kit/directives/chevron/taiga-ui-kit-directives-chevron.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n Directive,\n effect,\n inject,\n InjectionToken,\n Input,\n signal,\n ViewEncapsulation,\n} from '@angular/core';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {tuiProvide, tuiWithStyles} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TuiDropdownDirective} from '@taiga-ui/core/directives/dropdown';\nimport {TUI_ICON_END} from '@taiga-ui/core/tokens';\n\nexport const TUI_CHEVRON = new InjectionToken(ngDevMode ? 'TUI_CHEVRON' : '', {\n factory: () => '@tui.chevron-down',\n});\n\n@Component({\n standalone: true,\n template: '',\n styleUrls: ['./chevron.style.less'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {class: 'tui-chevron'},\n})\nclass TuiChevronStyles {}\n\n@Directive({\n standalone: true,\n selector: '[tuiChevron]',\n providers: [tuiProvide(TUI_ICON_END, TUI_CHEVRON)],\n host: {tuiChevron: ''},\n})\nexport class TuiChevron {\n private readonly el = tuiInjectElement();\n private readonly dropdown = inject(TuiDropdownDirective, {optional: true});\n\n protected readonly nothing = tuiWithStyles(TuiChevronStyles);\n protected readonly toggle = effect(() =>\n this.el.classList.toggle(\n '_chevron-rotated',\n this.chevron() || (this.chevron() === '' && !!this.dropdown?.ref()),\n ),\n );\n\n // TODO: refactor to signal inputs after Angular update\n public readonly chevron = signal<boolean | ''>('');\n\n @Input()\n public set tuiChevron(chevron: boolean | '') {\n this.chevron.set(chevron);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,18 +1,20 @@
1
1
  import * as i0 from '@angular/core';
2
- import { inject, Directive, Input } from '@angular/core';
2
+ import { InjectionToken, inject, Directive, Input } from '@angular/core';
3
3
  import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
4
4
  import { MutationObserverService, WA_MUTATION_OBSERVER_INIT } from '@ng-web-apis/mutation-observer';
5
5
  import { ResizeObserverService } from '@ng-web-apis/resize-observer';
6
6
  import { tuiZonefree } from '@taiga-ui/cdk/observables';
7
7
  import { tuiInjectElement } from '@taiga-ui/cdk/utils/dom';
8
8
  import { Subject, merge, fromEvent } from 'rxjs';
9
- import { tuiCreateToken, tuiProvideOptions } from '@taiga-ui/cdk/utils/miscellaneous';
9
+ import { tuiProvideOptions } from '@taiga-ui/cdk/utils/miscellaneous';
10
10
 
11
11
  const TUI_FLUID_TYPOGRAPHY_DEFAULT_OPTIONS = {
12
12
  min: 0.625,
13
13
  max: 1.5,
14
14
  };
15
- const TUI_FLUID_TYPOGRAPHY_OPTIONS = tuiCreateToken(TUI_FLUID_TYPOGRAPHY_DEFAULT_OPTIONS);
15
+ const TUI_FLUID_TYPOGRAPHY_OPTIONS = new InjectionToken(ngDevMode ? 'TUI_FLUID_TYPOGRAPHY_OPTIONS' : '', {
16
+ factory: () => TUI_FLUID_TYPOGRAPHY_DEFAULT_OPTIONS,
17
+ });
16
18
  function tuiFluidTypographyOptionsProvider(options) {
17
19
  return tuiProvideOptions(TUI_FLUID_TYPOGRAPHY_OPTIONS, options, TUI_FLUID_TYPOGRAPHY_DEFAULT_OPTIONS);
18
20
  }
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-kit-directives-fluid-typography.mjs","sources":["../../../projects/kit/directives/fluid-typography/fluid-typography.options.ts","../../../projects/kit/directives/fluid-typography/fluid-typography.directive.ts","../../../projects/kit/directives/fluid-typography/taiga-ui-kit-directives-fluid-typography.ts"],"sourcesContent":["import type {Provider} from '@angular/core';\nimport {tuiCreateToken, tuiProvideOptions} from '@taiga-ui/cdk/utils/miscellaneous';\n\nexport interface TuiFluidTypographyOptions {\n readonly min: number;\n readonly max: number;\n}\n\nexport const TUI_FLUID_TYPOGRAPHY_DEFAULT_OPTIONS: TuiFluidTypographyOptions = {\n min: 0.625,\n max: 1.5,\n};\n\nexport const TUI_FLUID_TYPOGRAPHY_OPTIONS = tuiCreateToken(\n TUI_FLUID_TYPOGRAPHY_DEFAULT_OPTIONS,\n);\n\nexport function tuiFluidTypographyOptionsProvider(\n options: Partial<TuiFluidTypographyOptions>,\n): Provider {\n return tuiProvideOptions(\n TUI_FLUID_TYPOGRAPHY_OPTIONS,\n options,\n TUI_FLUID_TYPOGRAPHY_DEFAULT_OPTIONS,\n );\n}\n","import type {OnChanges} from '@angular/core';\nimport {Directive, inject, Input} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {\n MutationObserverService,\n WA_MUTATION_OBSERVER_INIT,\n} from '@ng-web-apis/mutation-observer';\nimport {ResizeObserverService} from '@ng-web-apis/resize-observer';\nimport {tuiZonefree} from '@taiga-ui/cdk/observables';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {fromEvent, merge, Subject} from 'rxjs';\n\nimport {TUI_FLUID_TYPOGRAPHY_OPTIONS} from './fluid-typography.options';\n\nconst STEP = 1 / 16;\n\n@Directive({\n standalone: true,\n selector: '[tuiFluidTypography]',\n providers: [\n ResizeObserverService,\n MutationObserverService,\n {\n provide: WA_MUTATION_OBSERVER_INIT,\n useValue: {characterData: true, subtree: true},\n },\n ],\n host: {tuiFluidTypography: ''},\n})\nexport class TuiFluidTypography implements OnChanges {\n // TODO: refactor to signal inputs after Angular update\n private readonly changes$ = new Subject<void>();\n private readonly el = tuiInjectElement();\n private readonly options = inject(TUI_FLUID_TYPOGRAPHY_OPTIONS);\n\n protected readonly sub = merge(\n this.changes$,\n inject(ResizeObserverService, {self: true}),\n inject(MutationObserverService, {self: true}),\n fromEvent(this.el, 'input'),\n )\n .pipe(tuiZonefree(), takeUntilDestroyed())\n .subscribe(() => {\n const min = Number(this.tuiFluidTypography[0] || this.options.min);\n const max = Number(this.tuiFluidTypography[1] || this.options.max);\n\n for (let i = max; i >= min; i -= STEP) {\n this.el.style.fontSize = `${i}rem`;\n\n if (this.el.scrollWidth <= this.el.clientWidth) {\n break;\n }\n }\n });\n\n @Input()\n public tuiFluidTypography: readonly [min: number, max: number] | '' = '';\n\n public ngOnChanges(): void {\n this.changes$.next();\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"taiga-ui-kit-directives-fluid-typography.mjs","sources":["../../../projects/kit/directives/fluid-typography/fluid-typography.options.ts","../../../projects/kit/directives/fluid-typography/fluid-typography.directive.ts","../../../projects/kit/directives/fluid-typography/taiga-ui-kit-directives-fluid-typography.ts"],"sourcesContent":["import type {Provider} from '@angular/core';\nimport {InjectionToken} from '@angular/core';\nimport {tuiProvideOptions} from '@taiga-ui/cdk/utils/miscellaneous';\n\nexport interface TuiFluidTypographyOptions {\n readonly min: number;\n readonly max: number;\n}\n\nexport const TUI_FLUID_TYPOGRAPHY_DEFAULT_OPTIONS: TuiFluidTypographyOptions = {\n min: 0.625,\n max: 1.5,\n};\n\nexport const TUI_FLUID_TYPOGRAPHY_OPTIONS = new InjectionToken(\n ngDevMode ? 'TUI_FLUID_TYPOGRAPHY_OPTIONS' : '',\n {\n factory: () => TUI_FLUID_TYPOGRAPHY_DEFAULT_OPTIONS,\n },\n);\n\nexport function tuiFluidTypographyOptionsProvider(\n options: Partial<TuiFluidTypographyOptions>,\n): Provider {\n return tuiProvideOptions(\n TUI_FLUID_TYPOGRAPHY_OPTIONS,\n options,\n TUI_FLUID_TYPOGRAPHY_DEFAULT_OPTIONS,\n );\n}\n","import type {OnChanges} from '@angular/core';\nimport {Directive, inject, Input} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {\n MutationObserverService,\n WA_MUTATION_OBSERVER_INIT,\n} from '@ng-web-apis/mutation-observer';\nimport {ResizeObserverService} from '@ng-web-apis/resize-observer';\nimport {tuiZonefree} from '@taiga-ui/cdk/observables';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {fromEvent, merge, Subject} from 'rxjs';\n\nimport {TUI_FLUID_TYPOGRAPHY_OPTIONS} from './fluid-typography.options';\n\nconst STEP = 1 / 16;\n\n@Directive({\n standalone: true,\n selector: '[tuiFluidTypography]',\n providers: [\n ResizeObserverService,\n MutationObserverService,\n {\n provide: WA_MUTATION_OBSERVER_INIT,\n useValue: {characterData: true, subtree: true},\n },\n ],\n host: {tuiFluidTypography: ''},\n})\nexport class TuiFluidTypography implements OnChanges {\n // TODO: refactor to signal inputs after Angular update\n private readonly changes$ = new Subject<void>();\n private readonly el = tuiInjectElement();\n private readonly options = inject(TUI_FLUID_TYPOGRAPHY_OPTIONS);\n\n protected readonly sub = merge(\n this.changes$,\n inject(ResizeObserverService, {self: true}),\n inject(MutationObserverService, {self: true}),\n fromEvent(this.el, 'input'),\n )\n .pipe(tuiZonefree(), takeUntilDestroyed())\n .subscribe(() => {\n const min = Number(this.tuiFluidTypography[0] || this.options.min);\n const max = Number(this.tuiFluidTypography[1] || this.options.max);\n\n for (let i = max; i >= min; i -= STEP) {\n this.el.style.fontSize = `${i}rem`;\n\n if (this.el.scrollWidth <= this.el.clientWidth) {\n break;\n }\n }\n });\n\n @Input()\n public tuiFluidTypography: readonly [min: number, max: number] | '' = '';\n\n public ngOnChanges(): void {\n this.changes$.next();\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,16 +1,17 @@
1
- import { tuiCreateToken } from '@taiga-ui/cdk/utils/miscellaneous';
2
1
  import * as i0 from '@angular/core';
3
- import { inject, Pipe } from '@angular/core';
2
+ import { InjectionToken, inject, Pipe } from '@angular/core';
4
3
 
5
- const TUI_EMAIL_PIPE_OPTIONS = tuiCreateToken([
6
- 'gmail.com',
7
- 'outlook.com',
8
- 'icloud.com',
9
- 'me.com',
10
- 'yahoo.com',
11
- 'mail.com',
12
- 'proton.me',
13
- ]);
4
+ const TUI_EMAIL_PIPE_OPTIONS = new InjectionToken(ngDevMode ? 'TUI_EMAIL_PIPE_OPTIONS' : '', {
5
+ factory: () => [
6
+ 'gmail.com',
7
+ 'outlook.com',
8
+ 'icloud.com',
9
+ 'me.com',
10
+ 'yahoo.com',
11
+ 'mail.com',
12
+ 'proton.me',
13
+ ],
14
+ });
14
15
 
15
16
  class TuiEmailsPipe {
16
17
  constructor() {
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-kit-pipes-emails.mjs","sources":["../../../projects/kit/pipes/emails/emails.options.ts","../../../projects/kit/pipes/emails/emails.pipe.ts","../../../projects/kit/pipes/emails/taiga-ui-kit-pipes-emails.ts"],"sourcesContent":["import {tuiCreateToken} from '@taiga-ui/cdk/utils/miscellaneous';\n\nexport const TUI_EMAIL_PIPE_OPTIONS = tuiCreateToken([\n 'gmail.com',\n 'outlook.com',\n 'icloud.com',\n 'me.com',\n 'yahoo.com',\n 'mail.com',\n 'proton.me',\n]);\n","import type {PipeTransform} from '@angular/core';\nimport {inject, Pipe} from '@angular/core';\n\nimport {TUI_EMAIL_PIPE_OPTIONS} from './emails.options';\n\n@Pipe({\n standalone: true,\n name: 'tuiEmails',\n})\nexport class TuiEmailsPipe implements PipeTransform {\n private readonly options = inject(TUI_EMAIL_PIPE_OPTIONS);\n\n public transform(\n query: string,\n suggestions: readonly string[] = this.options,\n ): readonly string[] {\n return query.includes('@')\n ? suggestions\n .map(\n (item) =>\n query.slice(0, Math.max(0, query.indexOf('@') + 1)) + item,\n )\n .filter((item) => item.startsWith(query))\n : [];\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;AAEO,MAAM,sBAAsB,GAAG,cAAc,CAAC;IACjD,WAAW;IACX,aAAa;IACb,YAAY;IACZ,QAAQ;IACR,WAAW;IACX,UAAU;IACV,WAAW;AACd,CAAA;;ACLD,MAIa,aAAa,CAAA;AAJ1B,IAAA,WAAA,GAAA;AAKqB,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,sBAAsB,CAAC,CAAC;AAe7D,KAAA;AAbU,IAAA,SAAS,CACZ,KAAa,EACb,WAAiC,GAAA,IAAI,CAAC,OAAO,EAAA;AAE7C,QAAA,OAAO,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC;AACtB,cAAE,WAAW;AACN,iBAAA,GAAG,CACA,CAAC,IAAI,KACD,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CACjE;AACA,iBAAA,MAAM,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;cAC7C,EAAE,CAAC;KACZ;+GAfQ,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;6GAAb,aAAa,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,CAAA,EAAA;;4FAAb,aAAa,EAAA,UAAA,EAAA,CAAA;kBAJzB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACF,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,IAAI,EAAE,WAAW;AACpB,iBAAA,CAAA;;;ACRD;;AAEG;;;;"}
1
+ {"version":3,"file":"taiga-ui-kit-pipes-emails.mjs","sources":["../../../projects/kit/pipes/emails/emails.options.ts","../../../projects/kit/pipes/emails/emails.pipe.ts","../../../projects/kit/pipes/emails/taiga-ui-kit-pipes-emails.ts"],"sourcesContent":["import {InjectionToken} from '@angular/core';\n\nexport const TUI_EMAIL_PIPE_OPTIONS = new InjectionToken(\n ngDevMode ? 'TUI_EMAIL_PIPE_OPTIONS' : '',\n {\n factory: () => [\n 'gmail.com',\n 'outlook.com',\n 'icloud.com',\n 'me.com',\n 'yahoo.com',\n 'mail.com',\n 'proton.me',\n ],\n },\n);\n","import type {PipeTransform} from '@angular/core';\nimport {inject, Pipe} from '@angular/core';\n\nimport {TUI_EMAIL_PIPE_OPTIONS} from './emails.options';\n\n@Pipe({\n standalone: true,\n name: 'tuiEmails',\n})\nexport class TuiEmailsPipe implements PipeTransform {\n private readonly options = inject(TUI_EMAIL_PIPE_OPTIONS);\n\n public transform(\n query: string,\n suggestions: readonly string[] = this.options,\n ): readonly string[] {\n return query.includes('@')\n ? suggestions\n .map(\n (item) =>\n query.slice(0, Math.max(0, query.indexOf('@') + 1)) + item,\n )\n .filter((item) => item.startsWith(query))\n : [];\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;AAEa,MAAA,sBAAsB,GAAG,IAAI,cAAc,CACpD,SAAS,GAAG,wBAAwB,GAAG,EAAE,EACzC;IACI,OAAO,EAAE,MAAM;QACX,WAAW;QACX,aAAa;QACb,YAAY;QACZ,QAAQ;QACR,WAAW;QACX,UAAU;QACV,WAAW;AACd,KAAA;AACJ,CAAA;;ACTL,MAIa,aAAa,CAAA;AAJ1B,IAAA,WAAA,GAAA;AAKqB,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,sBAAsB,CAAC,CAAC;AAe7D,KAAA;AAbU,IAAA,SAAS,CACZ,KAAa,EACb,WAAiC,GAAA,IAAI,CAAC,OAAO,EAAA;AAE7C,QAAA,OAAO,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC;AACtB,cAAE,WAAW;AACN,iBAAA,GAAG,CACA,CAAC,IAAI,KACD,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CACjE;AACA,iBAAA,MAAM,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;cAC7C,EAAE,CAAC;KACZ;+GAfQ,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;6GAAb,aAAa,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,CAAA,EAAA;;4FAAb,aAAa,EAAA,UAAA,EAAA,CAAA;kBAJzB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACF,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,IAAI,EAAE,WAAW;AACpB,iBAAA,CAAA;;;ACRD;;AAEG;;;;"}
@@ -20,7 +20,7 @@ class TuiFilterByInputPipe {
20
20
  return this.filter(items, matcher, (this.textfield
21
21
  ? this.itemsHandlers.stringify()
22
22
  : // TODO(v5): delete backward compatibility
23
- this.host.stringify) || String, this.textfield?.input?.nativeElement.value ||
23
+ this.host.stringify) || String, this.textfield?.value() ||
24
24
  this.host.nativeFocusableElement?.value ||
25
25
  '');
26
26
  }
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-kit-pipes-filter-by-input.mjs","sources":["../../../projects/kit/pipes/filter-by-input/filter-by-input.pipe.ts","../../../projects/kit/pipes/filter-by-input/taiga-ui-kit-pipes-filter-by-input.ts"],"sourcesContent":["import type {PipeTransform} from '@angular/core';\nimport {inject, Pipe} from '@angular/core';\nimport {TUI_DEFAULT_MATCHER} from '@taiga-ui/cdk/constants';\nimport type {TuiStringHandler, TuiStringMatcher} from '@taiga-ui/cdk/types';\nimport {tuiPure} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TUI_DATA_LIST_HOST} from '@taiga-ui/core/components/data-list';\nimport {TuiTextfieldComponent} from '@taiga-ui/core/components/textfield';\nimport type {TuiItemsHandlers} from '@taiga-ui/core/directives/items-handlers';\nimport {TUI_ITEMS_HANDLERS} from '@taiga-ui/core/directives/items-handlers';\nimport {tuiIsFlat} from '@taiga-ui/kit/utils';\n\n// TODO: Consider replacing TuiTextfieldComponent with proper token once we refactor textfields\n@Pipe({\n standalone: true,\n name: 'tuiFilterByInput',\n pure: false,\n})\nexport class TuiFilterByInputPipe implements PipeTransform {\n // TODO: Remove optional after legacy controls are dropped\n private readonly textfield = inject(TuiTextfieldComponent, {optional: true});\n private readonly host = inject(TUI_DATA_LIST_HOST);\n private readonly itemsHandlers: TuiItemsHandlers<unknown> =\n inject(TUI_ITEMS_HANDLERS);\n\n public transform<T>(\n items: ReadonlyArray<readonly T[]>,\n matcher?: TuiStringMatcher<T>,\n ): ReadonlyArray<readonly T[]>;\n public transform<T>(items: readonly T[], matcher?: TuiStringMatcher<T>): readonly T[];\n public transform<T>(\n items: ReadonlyArray<readonly T[]> | null,\n matcher?: TuiStringMatcher<T>,\n ): ReadonlyArray<readonly T[]> | null;\n public transform<T>(\n items: readonly T[] | null,\n matcher?: TuiStringMatcher<T>,\n ): readonly T[] | null;\n public transform<T>(\n items: ReadonlyArray<readonly T[]> | readonly T[] | null,\n matcher: TuiStringMatcher<T> = TUI_DEFAULT_MATCHER,\n ): ReadonlyArray<readonly T[]> | readonly T[] | null {\n return this.filter<T>(\n items,\n matcher,\n (this.textfield\n ? this.itemsHandlers.stringify()\n : // TODO(v5): delete backward compatibility\n this.host.stringify) || String,\n this.textfield?.input?.nativeElement.value ||\n (this.host as any).nativeFocusableElement?.value ||\n '',\n );\n }\n\n @tuiPure\n private filter<T>(\n items: ReadonlyArray<readonly T[]> | readonly T[] | null,\n matcher: TuiStringMatcher<T>,\n stringify: TuiStringHandler<T>,\n query: string,\n ): ReadonlyArray<readonly T[]> | readonly T[] | null {\n if (!items) {\n return null;\n }\n\n return tuiIsFlat(items)\n ? this.filterFlat(items, matcher, stringify, query)\n : this.filter2d(items, matcher, stringify, query);\n }\n\n private filterFlat<T>(\n items: readonly T[],\n matcher: TuiStringMatcher<T>,\n stringify: TuiStringHandler<T>,\n query: string,\n ): readonly T[] {\n const match = this.getMatch(items, stringify, query);\n\n return match != null\n ? items\n : items.filter((item) => matcher(item, query, stringify));\n }\n\n private filter2d<T>(\n items: ReadonlyArray<readonly T[]>,\n matcher: TuiStringMatcher<T>,\n stringify: TuiStringHandler<T>,\n query: string,\n ): ReadonlyArray<readonly T[]> {\n const match = items.find((item) => this.getMatch(item, stringify, query) != null);\n\n return match != null\n ? items\n : items.map((inner) => this.filterFlat(inner, matcher, stringify, query));\n }\n\n private getMatch<T>(\n items: readonly T[],\n stringify: TuiStringHandler<T>,\n query: string,\n ): T | undefined {\n // TODO: Refactor when tui-textfield[multi] is ready\n if ((this.host as any).tagValidator) {\n return undefined;\n }\n\n return items.find(\n (item) => stringify(item).toLocaleLowerCase() === query.toLocaleLowerCase(),\n );\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"taiga-ui-kit-pipes-filter-by-input.mjs","sources":["../../../projects/kit/pipes/filter-by-input/filter-by-input.pipe.ts","../../../projects/kit/pipes/filter-by-input/taiga-ui-kit-pipes-filter-by-input.ts"],"sourcesContent":["import type {PipeTransform} from '@angular/core';\nimport {inject, Pipe} from '@angular/core';\nimport {TUI_DEFAULT_MATCHER} from '@taiga-ui/cdk/constants';\nimport type {TuiStringHandler, TuiStringMatcher} from '@taiga-ui/cdk/types';\nimport {tuiPure} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TUI_DATA_LIST_HOST} from '@taiga-ui/core/components/data-list';\nimport {TuiTextfieldComponent} from '@taiga-ui/core/components/textfield';\nimport type {TuiItemsHandlers} from '@taiga-ui/core/directives/items-handlers';\nimport {TUI_ITEMS_HANDLERS} from '@taiga-ui/core/directives/items-handlers';\nimport {tuiIsFlat} from '@taiga-ui/kit/utils';\n\n// TODO: Consider replacing TuiTextfieldComponent with proper token once we refactor textfields\n@Pipe({\n standalone: true,\n name: 'tuiFilterByInput',\n pure: false,\n})\nexport class TuiFilterByInputPipe implements PipeTransform {\n // TODO: Remove optional after legacy controls are dropped\n private readonly textfield = inject(TuiTextfieldComponent, {optional: true});\n private readonly host = inject(TUI_DATA_LIST_HOST);\n private readonly itemsHandlers: TuiItemsHandlers<unknown> =\n inject(TUI_ITEMS_HANDLERS);\n\n public transform<T>(\n items: ReadonlyArray<readonly T[]>,\n matcher?: TuiStringMatcher<T>,\n ): ReadonlyArray<readonly T[]>;\n public transform<T>(items: readonly T[], matcher?: TuiStringMatcher<T>): readonly T[];\n public transform<T>(\n items: ReadonlyArray<readonly T[]> | null,\n matcher?: TuiStringMatcher<T>,\n ): ReadonlyArray<readonly T[]> | null;\n public transform<T>(\n items: readonly T[] | null,\n matcher?: TuiStringMatcher<T>,\n ): readonly T[] | null;\n public transform<T>(\n items: ReadonlyArray<readonly T[]> | readonly T[] | null,\n matcher: TuiStringMatcher<T> = TUI_DEFAULT_MATCHER,\n ): ReadonlyArray<readonly T[]> | readonly T[] | null {\n return this.filter<T>(\n items,\n matcher,\n (this.textfield\n ? this.itemsHandlers.stringify()\n : // TODO(v5): delete backward compatibility\n this.host.stringify) || String,\n this.textfield?.value() ||\n (this.host as any).nativeFocusableElement?.value ||\n '',\n );\n }\n\n @tuiPure\n private filter<T>(\n items: ReadonlyArray<readonly T[]> | readonly T[] | null,\n matcher: TuiStringMatcher<T>,\n stringify: TuiStringHandler<T>,\n query: string,\n ): ReadonlyArray<readonly T[]> | readonly T[] | null {\n if (!items) {\n return null;\n }\n\n return tuiIsFlat(items)\n ? this.filterFlat(items, matcher, stringify, query)\n : this.filter2d(items, matcher, stringify, query);\n }\n\n private filterFlat<T>(\n items: readonly T[],\n matcher: TuiStringMatcher<T>,\n stringify: TuiStringHandler<T>,\n query: string,\n ): readonly T[] {\n const match = this.getMatch(items, stringify, query);\n\n return match != null\n ? items\n : items.filter((item) => matcher(item, query, stringify));\n }\n\n private filter2d<T>(\n items: ReadonlyArray<readonly T[]>,\n matcher: TuiStringMatcher<T>,\n stringify: TuiStringHandler<T>,\n query: string,\n ): ReadonlyArray<readonly T[]> {\n const match = items.find((item) => this.getMatch(item, stringify, query) != null);\n\n return match != null\n ? items\n : items.map((inner) => this.filterFlat(inner, matcher, stringify, query));\n }\n\n private getMatch<T>(\n items: readonly T[],\n stringify: TuiStringHandler<T>,\n query: string,\n ): T | undefined {\n // TODO: Refactor when tui-textfield[multi] is ready\n if ((this.host as any).tagValidator) {\n return undefined;\n }\n\n return items.find(\n (item) => stringify(item).toLocaleLowerCase() === query.toLocaleLowerCase(),\n );\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,52 @@
1
+ import { __decorate } from 'tslib';
2
+ import * as i0 from '@angular/core';
3
+ import { inject, Pipe } from '@angular/core';
4
+ import { tuiPure } from '@taiga-ui/cdk/utils/miscellaneous';
5
+ import { TuiTextfieldComponent } from '@taiga-ui/core/components/textfield';
6
+ import { TUI_ITEMS_HANDLERS } from '@taiga-ui/core/directives/items-handlers';
7
+ import { tuiIsFlat } from '@taiga-ui/kit/utils';
8
+
9
+ class TuiHideSelectedPipe {
10
+ constructor() {
11
+ this.textfield = inject(TuiTextfieldComponent);
12
+ this.handlers = inject(TUI_ITEMS_HANDLERS);
13
+ }
14
+ transform(items) {
15
+ if (!items) {
16
+ return null;
17
+ }
18
+ const value = this.textfield.control?.value || [];
19
+ return tuiIsFlat(items)
20
+ ? this.filter(items, value, this.handlers.identityMatcher())
21
+ : this.filter2d(items, value, this.handlers.identityMatcher());
22
+ }
23
+ filter2d(items, value, matcher) {
24
+ return items.map((subItems) => this.filter(subItems, value, matcher));
25
+ }
26
+ filter(items, value, matcher) {
27
+ return items.filter((item) => value.every((selected) => !matcher(selected, item)));
28
+ }
29
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiHideSelectedPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
30
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: TuiHideSelectedPipe, isStandalone: true, name: "tuiHideSelected", pure: false }); }
31
+ }
32
+ __decorate([
33
+ tuiPure
34
+ ], TuiHideSelectedPipe.prototype, "filter2d", null);
35
+ __decorate([
36
+ tuiPure
37
+ ], TuiHideSelectedPipe.prototype, "filter", null);
38
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiHideSelectedPipe, decorators: [{
39
+ type: Pipe,
40
+ args: [{
41
+ standalone: true,
42
+ name: 'tuiHideSelected',
43
+ pure: false,
44
+ }]
45
+ }], propDecorators: { filter2d: [], filter: [] } });
46
+
47
+ /**
48
+ * Generated bundle index. Do not edit.
49
+ */
50
+
51
+ export { TuiHideSelectedPipe };
52
+ //# sourceMappingURL=taiga-ui-kit-pipes-hide-selected.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"taiga-ui-kit-pipes-hide-selected.mjs","sources":["../../../projects/kit/pipes/hide-selected/hide-selected.pipe.ts","../../../projects/kit/pipes/hide-selected/taiga-ui-kit-pipes-hide-selected.ts"],"sourcesContent":["import type {PipeTransform} from '@angular/core';\nimport {inject, Pipe} from '@angular/core';\nimport type {TuiIdentityMatcher} from '@taiga-ui/cdk/types';\nimport {tuiPure} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TuiTextfieldComponent} from '@taiga-ui/core/components/textfield';\nimport {TUI_ITEMS_HANDLERS} from '@taiga-ui/core/directives/items-handlers';\nimport {tuiIsFlat} from '@taiga-ui/kit/utils';\n\n@Pipe({\n standalone: true,\n name: 'tuiHideSelected',\n pure: false,\n})\nexport class TuiHideSelectedPipe implements PipeTransform {\n private readonly textfield = inject(TuiTextfieldComponent);\n private readonly handlers = inject(TUI_ITEMS_HANDLERS);\n\n public transform<T>(items: readonly T[] | null): readonly T[] | null;\n public transform<T>(\n items: ReadonlyArray<readonly T[]> | null,\n ): ReadonlyArray<readonly T[]> | null;\n public transform<T>(\n items: ReadonlyArray<readonly T[]> | readonly T[] | null,\n ): ReadonlyArray<readonly T[]> | readonly T[] | null {\n if (!items) {\n return null;\n }\n\n const value = this.textfield.control?.value || [];\n\n return tuiIsFlat(items)\n ? this.filter(items, value, this.handlers.identityMatcher())\n : this.filter2d(items, value, this.handlers.identityMatcher());\n }\n\n @tuiPure\n private filter2d<T>(\n items: ReadonlyArray<readonly T[]>,\n value: readonly T[],\n matcher: TuiIdentityMatcher<T>,\n ): ReadonlyArray<readonly T[]> {\n return items.map((subItems) => this.filter(subItems, value, matcher));\n }\n\n @tuiPure\n private filter<T>(\n items: readonly T[],\n value: readonly T[],\n matcher: TuiIdentityMatcher<T>,\n ): readonly T[] {\n return items.filter((item) =>\n value.every((selected) => !matcher(selected, item)),\n );\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;AAQA,MAKa,mBAAmB,CAAA;AALhC,IAAA,WAAA,GAAA;AAMqB,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAC;AAC1C,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,kBAAkB,CAAC,CAAC;AAuC1D,KAAA;AAjCU,IAAA,SAAS,CACZ,KAAwD,EAAA;QAExD,IAAI,CAAC,KAAK,EAAE;AACR,YAAA,OAAO,IAAI,CAAC;AACf,SAAA;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC;QAElD,OAAO,SAAS,CAAC,KAAK,CAAC;AACnB,cAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAC;AAC5D,cAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAC,CAAC;KACtE;AAGO,IAAA,QAAQ,CACZ,KAAkC,EAClC,KAAmB,EACnB,OAA8B,EAAA;QAE9B,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,KAAK,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;KACzE;AAGO,IAAA,MAAM,CACV,KAAmB,EACnB,KAAmB,EACnB,OAA8B,EAAA;QAE9B,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,KACrB,KAAK,CAAC,KAAK,CAAC,CAAC,QAAQ,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CACtD,CAAC;KACL;+GAxCQ,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;6GAAnB,mBAAmB,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,KAAA,EAAA,CAAA,CAAA,EAAA;;AAuBpB,UAAA,CAAA;IADP,OAAO;AAOP,CAAA,EAAA,mBAAA,CAAA,SAAA,EAAA,UAAA,EAAA,IAAA,CAAA,CAAA;AAGO,UAAA,CAAA;IADP,OAAO;AASP,CAAA,EAAA,mBAAA,CAAA,SAAA,EAAA,QAAA,EAAA,IAAA,CAAA,CAAA;4FAxCQ,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAL/B,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACF,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,IAAI,EAAE,iBAAiB;AACvB,oBAAA,IAAI,EAAE,KAAK;AACd,iBAAA,CAAA;AAwBW,SAAA,CAAA,EAAA,cAAA,EAAA,EAAA,QAAQ,MASR,MAAM,EAAA,EAAA,EAAA,EAAA,CAAA;;AC7ClB;;AAEG;;;;"}
@@ -1,6 +1,7 @@
1
1
  export * from '@taiga-ui/kit/pipes/emails';
2
2
  export * from '@taiga-ui/kit/pipes/field-error';
3
3
  export * from '@taiga-ui/kit/pipes/filter-by-input';
4
+ export * from '@taiga-ui/kit/pipes/hide-selected';
4
5
  export * from '@taiga-ui/kit/pipes/sort-countries';
5
6
  export * from '@taiga-ui/kit/pipes/stringify';
6
7
  export * from '@taiga-ui/kit/pipes/stringify-content';
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-kit-pipes.mjs","sources":["../../../projects/kit/pipes/taiga-ui-kit-pipes.ts"],"sourcesContent":["/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;AAAA;;AAEG"}
1
+ {"version":3,"file":"taiga-ui-kit-pipes.mjs","sources":["../../../projects/kit/pipes/taiga-ui-kit-pipes.ts"],"sourcesContent":["/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;AAAA;;AAEG"}
@@ -1,13 +1,13 @@
1
- import { Optional, Self, inject } from '@angular/core';
1
+ import { InjectionToken, Optional, Self, inject } from '@angular/core';
2
2
  import { NgControl } from '@angular/forms';
3
3
  import { tuiControlValue } from '@taiga-ui/cdk/observables';
4
- import { tuiCreateToken, tuiCreateTokenFromFactory, tuiProvideOptions } from '@taiga-ui/cdk/utils/miscellaneous';
5
4
  import { map, of } from 'rxjs';
6
5
  import { TUI_IDENTITY_VALUE_TRANSFORMER } from '@taiga-ui/cdk/classes';
7
6
  import { tuiExtractI18n } from '@taiga-ui/i18n/utils';
8
7
  import { TUI_FIRST_DAY, TUI_LAST_DAY } from '@taiga-ui/cdk/date-time';
9
8
  import { tuiCreateOptions } from '@taiga-ui/cdk/utils/di';
10
9
  import { TUI_DEFAULT_IDENTITY_MATCHER, TUI_FALSE_HANDLER } from '@taiga-ui/cdk/constants';
10
+ import { tuiProvideOptions } from '@taiga-ui/cdk/utils/miscellaneous';
11
11
  import { TUI_IS_MOBILE } from '@taiga-ui/cdk/tokens';
12
12
  import { TUI_DROPDOWN_COMPONENT } from '@taiga-ui/core/directives/dropdown';
13
13
  import { TUI_MONTHS } from '@taiga-ui/core/tokens';
@@ -16,7 +16,7 @@ import { TUI_MONTHS } from '@taiga-ui/core/tokens';
16
16
  * Stream that emits calendar data change
17
17
  * @deprecated this should be rewritten in v5
18
18
  */
19
- const TUI_CALENDAR_DATE_STREAM = tuiCreateToken();
19
+ const TUI_CALENDAR_DATE_STREAM = new InjectionToken(ngDevMode ? 'TUI_CALENDAR_DATE_STREAM' : '');
20
20
  function tuiDateStreamWithTransformer(transformer) {
21
21
  return {
22
22
  provide: TUI_CALENDAR_DATE_STREAM,
@@ -36,44 +36,94 @@ function tuiControlValueFactory(control, transformer) {
36
36
  /**
37
37
  * Control value transformer of TuiDay to custom value format for InputDate* components
38
38
  */
39
- const TUI_DATE_VALUE_TRANSFORMER = tuiCreateToken(TUI_IDENTITY_VALUE_TRANSFORMER);
39
+ const TUI_DATE_VALUE_TRANSFORMER = new InjectionToken(ngDevMode ? 'TUI_DATE_VALUE_TRANSFORMER' : '', {
40
+ factory: () => TUI_IDENTITY_VALUE_TRANSFORMER,
41
+ });
40
42
  /**
41
43
  * Control value transformer for InputDateRange component
42
44
  */
43
- const TUI_DATE_RANGE_VALUE_TRANSFORMER = tuiCreateToken();
45
+ const TUI_DATE_RANGE_VALUE_TRANSFORMER = new InjectionToken(ngDevMode ? 'TUI_DATE_RANGE_VALUE_TRANSFORMER' : '');
44
46
  /**
45
47
  * Control value transformer for InputDateTime component
46
48
  */
47
- const TUI_DATE_TIME_VALUE_TRANSFORMER = tuiCreateToken();
49
+ const TUI_DATE_TIME_VALUE_TRANSFORMER = new InjectionToken(ngDevMode ? 'TUI_DATE_TIME_VALUE_TRANSFORMER' : '');
48
50
  /**
49
51
  * Control value transformer for InputTime component
50
52
  */
51
- const TUI_TIME_VALUE_TRANSFORMER = tuiCreateToken();
53
+ const TUI_TIME_VALUE_TRANSFORMER = new InjectionToken(ngDevMode ? 'TUI_TIME_VALUE_TRANSFORMER' : '');
52
54
 
53
- const TUI_CONFIRM_WORDS = tuiCreateTokenFromFactory(tuiExtractI18n('confirm'));
54
- const TUI_CANCEL_WORD = tuiCreateTokenFromFactory(tuiExtractI18n('cancel'));
55
- const TUI_DONE_WORD = tuiCreateTokenFromFactory(tuiExtractI18n('done'));
56
- const TUI_MORE_WORD = tuiCreateTokenFromFactory(tuiExtractI18n('more'));
57
- const TUI_HIDE_TEXT = tuiCreateTokenFromFactory(tuiExtractI18n('hide'));
58
- const TUI_SHOW_ALL_TEXT = tuiCreateTokenFromFactory(tuiExtractI18n('showAll'));
59
- const TUI_OTHER_DATE_TEXT = tuiCreateTokenFromFactory(tuiExtractI18n('otherDate'));
60
- const TUI_CHOOSE_DAY_OR_RANGE_TEXTS = tuiCreateTokenFromFactory(tuiExtractI18n('mobileCalendarTexts'));
61
- const TUI_FROM_TO_TEXTS = tuiCreateTokenFromFactory(tuiExtractI18n('range'));
62
- const TUI_PLUS_MINUS_TEXTS = tuiCreateTokenFromFactory(tuiExtractI18n('countTexts'));
63
- const TUI_TIME_TEXTS = tuiCreateTokenFromFactory(tuiExtractI18n('time'));
64
- const TUI_DATE_TEXTS = tuiCreateTokenFromFactory(tuiExtractI18n('dateTexts'));
65
- const TUI_DIGITAL_INFORMATION_UNITS = tuiCreateTokenFromFactory(tuiExtractI18n('digitalInformationUnits'));
66
- const TUI_COPY_TEXTS = tuiCreateTokenFromFactory(tuiExtractI18n('copyTexts'));
67
- const TUI_PASSWORD_TEXTS = tuiCreateTokenFromFactory(tuiExtractI18n('passwordTexts'));
68
- const TUI_CALENDAR_MONTHS = tuiCreateTokenFromFactory(tuiExtractI18n('shortCalendarMonths'));
69
- const TUI_FILE_TEXTS = tuiCreateTokenFromFactory(tuiExtractI18n('fileTexts'));
70
- const TUI_PAGINATION_TEXTS = tuiCreateTokenFromFactory(tuiExtractI18n('pagination'));
71
- const TUI_INPUT_FILE_TEXTS = tuiCreateTokenFromFactory(tuiExtractI18n('inputFileTexts'));
72
- const TUI_MULTI_SELECT_TEXTS = tuiCreateTokenFromFactory(tuiExtractI18n('multiSelectTexts'));
73
- const TUI_COUNTRIES = tuiCreateTokenFromFactory(tuiExtractI18n('countries'));
74
- const TUI_PREVIEW_TEXTS = tuiCreateTokenFromFactory(tuiExtractI18n('previewTexts'));
75
- const TUI_PREVIEW_ZOOM_TEXTS = tuiCreateTokenFromFactory(tuiExtractI18n('zoomTexts'));
76
- const TUI_INTERNATIONAL_SEARCH = tuiCreateTokenFromFactory(tuiExtractI18n('phoneSearch'));
55
+ const TUI_CONFIRM_WORDS = new InjectionToken(ngDevMode ? 'TUI_CONFIRM_WORDS' : '', {
56
+ factory: tuiExtractI18n('confirm'),
57
+ });
58
+ const TUI_CANCEL_WORD = new InjectionToken(ngDevMode ? 'TUI_CANCEL_WORD' : '', {
59
+ factory: tuiExtractI18n('cancel'),
60
+ });
61
+ const TUI_DONE_WORD = new InjectionToken(ngDevMode ? 'TUI_DONE_WORD' : '', {
62
+ factory: tuiExtractI18n('done'),
63
+ });
64
+ const TUI_MORE_WORD = new InjectionToken(ngDevMode ? 'TUI_MORE_WORD' : '', {
65
+ factory: tuiExtractI18n('more'),
66
+ });
67
+ const TUI_HIDE_TEXT = new InjectionToken(ngDevMode ? 'TUI_HIDE_TEXT' : '', {
68
+ factory: tuiExtractI18n('hide'),
69
+ });
70
+ const TUI_SHOW_ALL_TEXT = new InjectionToken(ngDevMode ? 'TUI_SHOW_ALL_TEXT' : '', {
71
+ factory: tuiExtractI18n('showAll'),
72
+ });
73
+ const TUI_OTHER_DATE_TEXT = new InjectionToken(ngDevMode ? 'TUI_OTHER_DATE_TEXT' : '', {
74
+ factory: tuiExtractI18n('otherDate'),
75
+ });
76
+ const TUI_CHOOSE_DAY_OR_RANGE_TEXTS = new InjectionToken(ngDevMode ? 'TUI_CHOOSE_DAY_OR_RANGE_TEXTS' : '', {
77
+ factory: tuiExtractI18n('mobileCalendarTexts'),
78
+ });
79
+ const TUI_FROM_TO_TEXTS = new InjectionToken(ngDevMode ? 'TUI_FROM_TO_TEXTS' : '', {
80
+ factory: tuiExtractI18n('range'),
81
+ });
82
+ const TUI_PLUS_MINUS_TEXTS = new InjectionToken(ngDevMode ? 'TUI_PLUS_MINUS_TEXTS' : '', {
83
+ factory: tuiExtractI18n('countTexts'),
84
+ });
85
+ const TUI_TIME_TEXTS = new InjectionToken(ngDevMode ? 'TUI_TIME_TEXTS' : '', {
86
+ factory: tuiExtractI18n('time'),
87
+ });
88
+ const TUI_DATE_TEXTS = new InjectionToken(ngDevMode ? 'TUI_DATE_TEXTS' : '', {
89
+ factory: tuiExtractI18n('dateTexts'),
90
+ });
91
+ const TUI_DIGITAL_INFORMATION_UNITS = new InjectionToken(ngDevMode ? 'TUI_DIGITAL_INFORMATION_UNITS' : '', {
92
+ factory: tuiExtractI18n('digitalInformationUnits'),
93
+ });
94
+ const TUI_COPY_TEXTS = new InjectionToken(ngDevMode ? 'TUI_COPY_TEXTS' : '', {
95
+ factory: tuiExtractI18n('copyTexts'),
96
+ });
97
+ const TUI_PASSWORD_TEXTS = new InjectionToken(ngDevMode ? 'TUI_PASSWORD_TEXTS' : '', {
98
+ factory: tuiExtractI18n('passwordTexts'),
99
+ });
100
+ const TUI_CALENDAR_MONTHS = new InjectionToken(ngDevMode ? 'TUI_CALENDAR_MONTHS' : '', {
101
+ factory: tuiExtractI18n('shortCalendarMonths'),
102
+ });
103
+ const TUI_FILE_TEXTS = new InjectionToken(ngDevMode ? 'TUI_FILE_TEXTS' : '', {
104
+ factory: tuiExtractI18n('fileTexts'),
105
+ });
106
+ const TUI_PAGINATION_TEXTS = new InjectionToken(ngDevMode ? 'TUI_PAGINATION_TEXTS' : '', {
107
+ factory: tuiExtractI18n('pagination'),
108
+ });
109
+ const TUI_INPUT_FILE_TEXTS = new InjectionToken(ngDevMode ? 'TUI_INPUT_FILE_TEXTS' : '', {
110
+ factory: tuiExtractI18n('inputFileTexts'),
111
+ });
112
+ const TUI_MULTI_SELECT_TEXTS = new InjectionToken(ngDevMode ? 'TUI_MULTI_SELECT_TEXTS' : '', {
113
+ factory: tuiExtractI18n('multiSelectTexts'),
114
+ });
115
+ const TUI_COUNTRIES = new InjectionToken(ngDevMode ? 'TUI_COUNTRIES' : '', {
116
+ factory: tuiExtractI18n('countries'),
117
+ });
118
+ const TUI_PREVIEW_TEXTS = new InjectionToken(ngDevMode ? 'TUI_PREVIEW_TEXTS' : '', {
119
+ factory: tuiExtractI18n('previewTexts'),
120
+ });
121
+ const TUI_PREVIEW_ZOOM_TEXTS = new InjectionToken(ngDevMode ? 'TUI_PREVIEW_ZOOM_TEXTS' : '', {
122
+ factory: tuiExtractI18n('zoomTexts'),
123
+ });
124
+ const TUI_INTERNATIONAL_SEARCH = new InjectionToken(ngDevMode ? 'TUI_INTERNATIONAL_SEARCH' : '', {
125
+ factory: tuiExtractI18n('phoneSearch'),
126
+ });
77
127
 
78
128
  const TUI_INPUT_DATE_DEFAULT_OPTIONS = {
79
129
  icon: () => '@tui.calendar',
@@ -87,7 +137,7 @@ const TUI_INPUT_DATE_DEFAULT_OPTIONS = {
87
137
  const [TUI_INPUT_DATE_OPTIONS, tuiInputDateOptionsProvider] = tuiCreateOptions(TUI_INPUT_DATE_DEFAULT_OPTIONS);
88
138
 
89
139
  /**
90
- * @deprecated use it only for LEGACY controls. For new controls use the same entity from `@taiga-ui/kit`.
140
+ * @deprecated use it only for LEGACY controls. For new controls use the same entity from `@taiga-ui/core`.
91
141
  * TODO(v5): delete
92
142
  */
93
143
  const TUI_DEFAULT_ITEMS_HANDLERS = {
@@ -96,12 +146,14 @@ const TUI_DEFAULT_ITEMS_HANDLERS = {
96
146
  disabledItemHandler: TUI_FALSE_HANDLER,
97
147
  };
98
148
  /**
99
- * @deprecated use it only for LEGACY controls. For new controls use the same entity from `@taiga-ui/kit`.
149
+ * @deprecated use it only for LEGACY controls. For new controls use the same entity from `@taiga-ui/core`.
100
150
  * TODO(v5): delete
101
151
  */
102
- const TUI_ITEMS_HANDLERS = tuiCreateToken(TUI_DEFAULT_ITEMS_HANDLERS);
152
+ const TUI_ITEMS_HANDLERS = new InjectionToken(ngDevMode ? 'TUI_ITEMS_HANDLERS' : '', {
153
+ factory: () => TUI_DEFAULT_ITEMS_HANDLERS,
154
+ });
103
155
  /**
104
- * @deprecated use it only for LEGACY controls. For new controls use the same entity from `@taiga-ui/kit`.
156
+ * @deprecated use it only for LEGACY controls. For new controls use the same entity from `@taiga-ui/core`.
105
157
  * TODO(v5): delete
106
158
  */
107
159
  function tuiItemsHandlersProvider(options) {
@@ -111,19 +163,21 @@ function tuiItemsHandlersProvider(options) {
111
163
  /**
112
164
  * A component for mobile data picker
113
165
  */
114
- const TUI_MOBILE_CALENDAR = tuiCreateToken();
166
+ const TUI_MOBILE_CALENDAR = new InjectionToken(ngDevMode ? 'TUI_MOBILE_CALENDAR' : '');
115
167
  const TUI_MOBILE_CALENDAR_PROVIDER = {
116
168
  provide: TUI_DROPDOWN_COMPONENT,
117
169
  useFactory: () => (inject(TUI_IS_MOBILE) && inject(TUI_MOBILE_CALENDAR, { optional: true })) ||
118
170
  inject(TUI_DROPDOWN_COMPONENT, { skipSelf: true }),
119
171
  };
120
172
 
121
- const TUI_MONTH_FORMATTER = tuiCreateTokenFromFactory(() => inject(TUI_MONTHS).pipe(map((months) => (date) => {
122
- if (!date) {
123
- return '';
124
- }
125
- return `${months[date.month] ?? ''} ${date.formattedYear}`;
126
- })));
173
+ const TUI_MONTH_FORMATTER = new InjectionToken(ngDevMode ? 'TUI_MONTH_FORMATTER' : '', {
174
+ factory: () => inject(TUI_MONTHS).pipe(map((months) => (date) => {
175
+ if (!date) {
176
+ return '';
177
+ }
178
+ return `${months[date.month] ?? ''} ${date.formattedYear}`;
179
+ })),
180
+ });
127
181
 
128
182
  const TUI_PREVIEW_ICONS_DEFAULT = {
129
183
  rotate: '@tui.rotate-ccw-square',
@@ -133,12 +187,16 @@ const TUI_PREVIEW_ICONS_DEFAULT = {
133
187
  zoomOut: '@tui.minus',
134
188
  zoomReset: '@tui.minimize',
135
189
  };
136
- const TUI_PREVIEW_ICONS = tuiCreateToken(TUI_PREVIEW_ICONS_DEFAULT);
190
+ const TUI_PREVIEW_ICONS = new InjectionToken(ngDevMode ? 'TUI_PREVIEW_ICONS' : '', {
191
+ factory: () => TUI_PREVIEW_ICONS_DEFAULT,
192
+ });
137
193
  function tuiPreviewIconsProvider(icons) {
138
194
  return tuiProvideOptions(TUI_PREVIEW_ICONS, icons, TUI_PREVIEW_ICONS_DEFAULT);
139
195
  }
140
196
 
141
- const TUI_VALIDATION_ERRORS = tuiCreateToken({});
197
+ const TUI_VALIDATION_ERRORS = new InjectionToken(ngDevMode ? 'TUI_VALIDATION_ERRORS' : '', {
198
+ factory: () => ({}),
199
+ });
142
200
  const tuiValidationErrorsProvider = (useValue) => ({ provide: TUI_VALIDATION_ERRORS, useValue });
143
201
 
144
202
  /**