@taiga-ui/kit 4.52.0-canary.6c67ccf → 4.52.0-canary.811ffeb

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 (385) hide show
  1. package/README.md +1 -1
  2. package/components/accordion/accordion.component.d.ts +13 -0
  3. package/components/accordion/accordion.d.ts +4 -4
  4. package/components/accordion/accordion.directive.d.ts +11 -10
  5. package/components/accordion/index.d.ts +1 -3
  6. package/components/action-bar/action-bar.component.d.ts +5 -7
  7. package/components/action-bar/index.d.ts +0 -2
  8. package/components/avatar/avatar-outline.directive.d.ts +3 -3
  9. package/components/avatar/avatar.directive.d.ts +15 -0
  10. package/components/avatar/avatar.options.d.ts +1 -4
  11. package/components/avatar/index.d.ts +1 -1
  12. package/components/badge/badge.directive.d.ts +2 -2
  13. package/components/badge/badge.options.d.ts +1 -3
  14. package/components/badge-notification/badge-notification.options.d.ts +1 -3
  15. package/components/block/block.directive.d.ts +4 -4
  16. package/components/block/block.options.d.ts +2 -4
  17. package/components/breadcrumbs/breadcrumbs.options.d.ts +1 -3
  18. package/components/calendar-month/calendar-month.component.d.ts +1 -1
  19. package/components/calendar-month/calendar-month.options.d.ts +1 -1
  20. package/components/calendar-range/calendar-range.component.d.ts +1 -2
  21. package/components/checkbox/checkbox.component.d.ts +7 -18
  22. package/components/checkbox/checkbox.options.d.ts +5 -9
  23. package/components/chip/chip.directive.d.ts +2 -4
  24. package/components/chip/chip.options.d.ts +1 -3
  25. package/components/comment/comment.directive.d.ts +2 -2
  26. package/components/confirm/confirm.component.d.ts +4 -2
  27. package/components/confirm/confirm.service.d.ts +2 -1
  28. package/{directives → components}/copy/copy.component.d.ts +2 -2
  29. package/{directives → components}/copy/copy.directive.d.ts +3 -4
  30. package/{directives → components}/copy/copy.options.d.ts +2 -2
  31. package/components/data-list-wrapper/data-list-group-wrapper.component.d.ts +2 -0
  32. package/components/data-list-wrapper/data-list-wrapper.component.d.ts +1 -1
  33. package/components/files/file/file.options.d.ts +2 -2
  34. package/components/files/files/files.component.d.ts +2 -2
  35. package/components/files/input-files/input-files.options.d.ts +1 -3
  36. package/components/floating-container/floating-container.directive.d.ts +2 -2
  37. package/components/fullscreen/fullscreen.component.d.ts +14 -0
  38. package/components/fullscreen/index.d.ts +1 -0
  39. package/components/index.d.ts +3 -2
  40. package/components/input-chip/input-chip.component.d.ts +8 -7
  41. package/components/input-chip/input-chip.directive.d.ts +5 -10
  42. package/components/input-chip/input-chip.options.d.ts +1 -1
  43. package/components/input-color/input-color.component.d.ts +2 -2
  44. package/components/input-color/input-color.options.d.ts +1 -1
  45. package/components/input-date/input-date.options.d.ts +1 -1
  46. package/components/input-date-multi/input-date-multi.directive.d.ts +9 -13
  47. package/components/input-number/input-number.directive.d.ts +5 -9
  48. package/components/input-number/input-number.options.d.ts +1 -1
  49. package/components/input-number/quantum.directive.d.ts +1 -1
  50. package/components/input-number/step/input-number-step.component.d.ts +1 -1
  51. package/components/input-phone/input-phone.options.d.ts +1 -1
  52. package/components/input-phone-international/input-phone-international.component.d.ts +24 -30
  53. package/components/input-phone-international/input-phone-international.options.d.ts +1 -3
  54. package/components/input-pin/input-pin.component.d.ts +1 -1
  55. package/components/input-range/input-range.component.d.ts +9 -12
  56. package/components/input-slider/input-slider.directive.d.ts +3 -5
  57. package/components/input-time/input-time.directive.d.ts +6 -8
  58. package/components/input-time/input-time.options.d.ts +1 -1
  59. package/components/like/like.component.d.ts +4 -11
  60. package/components/like/like.options.d.ts +3 -4
  61. package/components/line-clamp/line-clamp-box.component.d.ts +3 -4
  62. package/components/line-clamp/line-clamp.component.d.ts +8 -10
  63. package/components/line-clamp/line-clamp.options.d.ts +1 -3
  64. package/components/multi-select/multi-select-group/multi-select-group.component.d.ts +6 -8
  65. package/components/multi-select/multi-select-option/multi-select-option.component.d.ts +1 -1
  66. package/components/notification-middle/notification-middle.component.d.ts +2 -2
  67. package/components/notification-middle/notification-middle.directive.d.ts +4 -3
  68. package/components/notification-middle/notification-middle.service.d.ts +7 -3
  69. package/components/pager/pager.component.d.ts +1 -1
  70. package/components/pagination/index.d.ts +1 -0
  71. package/components/pagination/pagination.component.d.ts +3 -2
  72. package/components/pagination/pagination.options.d.ts +10 -0
  73. package/components/pin/pin.directive.d.ts +2 -2
  74. package/components/preview/dialog/preview-dialog.component.d.ts +2 -2
  75. package/components/preview/dialog/preview-dialog.directive.d.ts +3 -3
  76. package/components/preview/dialog/preview-dialog.service.d.ts +5 -2
  77. package/components/preview/pagination/preview-pagination.component.d.ts +1 -1
  78. package/components/preview/preview.component.d.ts +1 -1
  79. package/components/preview/preview.d.ts +2 -1
  80. package/components/preview/zoom/preview-zoom.component.d.ts +1 -1
  81. package/components/progress/progress-bar/fixed-gradient/progress-fixed-gradient.directive.d.ts +1 -2
  82. package/components/progress/progress-bar/progress-color-segments.directive.d.ts +4 -4
  83. package/components/progress/progress-segmented/progress-segmented.directive.d.ts +2 -2
  84. package/components/progress/progress.options.d.ts +1 -3
  85. package/components/push/push-alert.component.d.ts +4 -3
  86. package/components/push/push.component.d.ts +2 -2
  87. package/components/push/push.directive.d.ts +4 -6
  88. package/components/push/push.options.d.ts +5 -8
  89. package/components/push/push.service.d.ts +6 -2
  90. package/components/radio/radio.component.d.ts +7 -8
  91. package/components/radio/radio.directive.d.ts +2 -2
  92. package/components/radio/radio.options.d.ts +2 -5
  93. package/components/range/range-change.directive.d.ts +1 -2
  94. package/components/range/range.component.d.ts +16 -24
  95. package/components/rating/rating.component.d.ts +5 -5
  96. package/components/rating/rating.options.d.ts +6 -6
  97. package/components/segmented/segmented.component.d.ts +5 -9
  98. package/components/segmented/segmented.directive.d.ts +6 -7
  99. package/components/select/native-select/native-select.component.d.ts +4 -5
  100. package/components/slider/helpers/key-steps.d.ts +1 -2
  101. package/components/slider/helpers/slider-key-steps.directive.d.ts +12 -21
  102. package/components/slider/slider.options.d.ts +1 -6
  103. package/components/slides/slides.directive.d.ts +4 -4
  104. package/components/status/status.directive.d.ts +2 -2
  105. package/components/stepper/step.component.d.ts +6 -8
  106. package/components/stepper/stepper.component.d.ts +6 -11
  107. package/components/switch/switch.component.d.ts +7 -19
  108. package/components/switch/switch.options.d.ts +4 -8
  109. package/components/tabs/tabs-with-more.component.d.ts +1 -1
  110. package/components/tabs/tabs.options.d.ts +1 -6
  111. package/components/textarea/textarea-limit.directive.d.ts +4 -5
  112. package/components/textarea/textarea.options.d.ts +1 -1
  113. package/components/toast/index.d.ts +5 -0
  114. package/components/toast/toast.component.d.ts +18 -0
  115. package/components/toast/toast.d.ts +3 -0
  116. package/components/toast/toast.directive.d.ts +7 -0
  117. package/components/toast/toast.options.d.ts +10 -0
  118. package/components/toast/toast.service.d.ts +17 -0
  119. package/components/tree/components/tree-item-content/tree-item-content.component.d.ts +8 -1
  120. package/components/tree/misc/tree.constants.d.ts +0 -3
  121. package/components/tree/misc/tree.tokens.d.ts +1 -6
  122. package/directives/button-close/button-close.directive.d.ts +2 -1
  123. package/directives/button-select/button-select.directive.d.ts +3 -3
  124. package/directives/chevron/chevron.directive.d.ts +2 -3
  125. package/directives/data-list-dropdown-manager/data-list-dropdown-manager.directive.d.ts +5 -5
  126. package/directives/fade/fade.directive.d.ts +1 -0
  127. package/directives/fluid-typography/fluid-typography.directive.d.ts +3 -6
  128. package/directives/fluid-typography/fluid-typography.options.d.ts +1 -3
  129. package/directives/highlight/highlight.directive.d.ts +1 -3
  130. package/directives/index.d.ts +0 -1
  131. package/directives/password/password.options.d.ts +1 -1
  132. package/directives/sensitive/sensitive.directive.d.ts +2 -2
  133. package/directives/shimmer/shimmer.directive.d.ts +3 -3
  134. package/directives/skeleton/skeleton.directive.d.ts +3 -3
  135. package/directives/tooltip/tooltip.directive.d.ts +2 -2
  136. package/directives/tooltip/tooltip.options.d.ts +1 -4
  137. package/fesm2022/taiga-ui-kit-components-accordion.mjs +69 -145
  138. package/fesm2022/taiga-ui-kit-components-accordion.mjs.map +1 -1
  139. package/fesm2022/taiga-ui-kit-components-action-bar.mjs +22 -38
  140. package/fesm2022/taiga-ui-kit-components-action-bar.mjs.map +1 -1
  141. package/fesm2022/taiga-ui-kit-components-avatar.mjs +53 -71
  142. package/fesm2022/taiga-ui-kit-components-avatar.mjs.map +1 -1
  143. package/fesm2022/taiga-ui-kit-components-badge-notification.mjs +4 -9
  144. package/fesm2022/taiga-ui-kit-components-badge-notification.mjs.map +1 -1
  145. package/fesm2022/taiga-ui-kit-components-badge.mjs +14 -25
  146. package/fesm2022/taiga-ui-kit-components-badge.mjs.map +1 -1
  147. package/fesm2022/taiga-ui-kit-components-badged-content.mjs +0 -1
  148. package/fesm2022/taiga-ui-kit-components-badged-content.mjs.map +1 -1
  149. package/fesm2022/taiga-ui-kit-components-block.mjs +18 -29
  150. package/fesm2022/taiga-ui-kit-components-block.mjs.map +1 -1
  151. package/fesm2022/taiga-ui-kit-components-breadcrumbs.mjs +6 -12
  152. package/fesm2022/taiga-ui-kit-components-breadcrumbs.mjs.map +1 -1
  153. package/fesm2022/taiga-ui-kit-components-button-loading.mjs +3 -3
  154. package/fesm2022/taiga-ui-kit-components-button-loading.mjs.map +1 -1
  155. package/fesm2022/taiga-ui-kit-components-calendar-month.mjs +4 -15
  156. package/fesm2022/taiga-ui-kit-components-calendar-month.mjs.map +1 -1
  157. package/fesm2022/taiga-ui-kit-components-calendar-range.mjs +4 -5
  158. package/fesm2022/taiga-ui-kit-components-calendar-range.mjs.map +1 -1
  159. package/fesm2022/taiga-ui-kit-components-carousel.mjs +3 -9
  160. package/fesm2022/taiga-ui-kit-components-carousel.mjs.map +1 -1
  161. package/fesm2022/taiga-ui-kit-components-checkbox.mjs +17 -75
  162. package/fesm2022/taiga-ui-kit-components-checkbox.mjs.map +1 -1
  163. package/fesm2022/taiga-ui-kit-components-chip.mjs +23 -32
  164. package/fesm2022/taiga-ui-kit-components-chip.mjs.map +1 -1
  165. package/fesm2022/taiga-ui-kit-components-combo-box.mjs +5 -6
  166. package/fesm2022/taiga-ui-kit-components-combo-box.mjs.map +1 -1
  167. package/fesm2022/taiga-ui-kit-components-comment.mjs +11 -18
  168. package/fesm2022/taiga-ui-kit-components-comment.mjs.map +1 -1
  169. package/fesm2022/taiga-ui-kit-components-compass.mjs +3 -3
  170. package/fesm2022/taiga-ui-kit-components-compass.mjs.map +1 -1
  171. package/fesm2022/taiga-ui-kit-components-confirm.mjs +8 -11
  172. package/fesm2022/taiga-ui-kit-components-confirm.mjs.map +1 -1
  173. package/fesm2022/{taiga-ui-kit-directives-copy.mjs → taiga-ui-kit-components-copy.mjs} +17 -22
  174. package/fesm2022/taiga-ui-kit-components-copy.mjs.map +1 -0
  175. package/fesm2022/taiga-ui-kit-components-data-list-wrapper.mjs +14 -6
  176. package/fesm2022/taiga-ui-kit-components-data-list-wrapper.mjs.map +1 -1
  177. package/fesm2022/taiga-ui-kit-components-drawer.mjs +2 -2
  178. package/fesm2022/taiga-ui-kit-components-drawer.mjs.map +1 -1
  179. package/fesm2022/taiga-ui-kit-components-elastic-container.mjs +0 -1
  180. package/fesm2022/taiga-ui-kit-components-elastic-container.mjs.map +1 -1
  181. package/fesm2022/taiga-ui-kit-components-files.mjs +21 -28
  182. package/fesm2022/taiga-ui-kit-components-files.mjs.map +1 -1
  183. package/fesm2022/taiga-ui-kit-components-filter.mjs +1 -1
  184. package/fesm2022/taiga-ui-kit-components-filter.mjs.map +1 -1
  185. package/fesm2022/taiga-ui-kit-components-floating-container.mjs +11 -17
  186. package/fesm2022/taiga-ui-kit-components-floating-container.mjs.map +1 -1
  187. package/fesm2022/taiga-ui-kit-components-fullscreen.mjs +63 -0
  188. package/fesm2022/taiga-ui-kit-components-fullscreen.mjs.map +1 -0
  189. package/fesm2022/taiga-ui-kit-components-input-chip.mjs +55 -68
  190. package/fesm2022/taiga-ui-kit-components-input-chip.mjs.map +1 -1
  191. package/fesm2022/taiga-ui-kit-components-input-color.mjs +4 -6
  192. package/fesm2022/taiga-ui-kit-components-input-color.mjs.map +1 -1
  193. package/fesm2022/taiga-ui-kit-components-input-date-multi.mjs +26 -45
  194. package/fesm2022/taiga-ui-kit-components-input-date-multi.mjs.map +1 -1
  195. package/fesm2022/taiga-ui-kit-components-input-date-range.mjs +1 -2
  196. package/fesm2022/taiga-ui-kit-components-input-date-range.mjs.map +1 -1
  197. package/fesm2022/taiga-ui-kit-components-input-date-time.mjs +4 -6
  198. package/fesm2022/taiga-ui-kit-components-input-date-time.mjs.map +1 -1
  199. package/fesm2022/taiga-ui-kit-components-input-date.mjs +13 -21
  200. package/fesm2022/taiga-ui-kit-components-input-date.mjs.map +1 -1
  201. package/fesm2022/taiga-ui-kit-components-input-inline.mjs +2 -3
  202. package/fesm2022/taiga-ui-kit-components-input-inline.mjs.map +1 -1
  203. package/fesm2022/taiga-ui-kit-components-input-month-range.mjs +6 -8
  204. package/fesm2022/taiga-ui-kit-components-input-month-range.mjs.map +1 -1
  205. package/fesm2022/taiga-ui-kit-components-input-month.mjs +6 -8
  206. package/fesm2022/taiga-ui-kit-components-input-month.mjs.map +1 -1
  207. package/fesm2022/taiga-ui-kit-components-input-number.mjs +30 -54
  208. package/fesm2022/taiga-ui-kit-components-input-number.mjs.map +1 -1
  209. package/fesm2022/taiga-ui-kit-components-input-phone-international.mjs +105 -133
  210. package/fesm2022/taiga-ui-kit-components-input-phone-international.mjs.map +1 -1
  211. package/fesm2022/taiga-ui-kit-components-input-phone.mjs +3 -5
  212. package/fesm2022/taiga-ui-kit-components-input-phone.mjs.map +1 -1
  213. package/fesm2022/taiga-ui-kit-components-input-pin.mjs +5 -6
  214. package/fesm2022/taiga-ui-kit-components-input-pin.mjs.map +1 -1
  215. package/fesm2022/taiga-ui-kit-components-input-range.mjs +31 -27
  216. package/fesm2022/taiga-ui-kit-components-input-range.mjs.map +1 -1
  217. package/fesm2022/taiga-ui-kit-components-input-slider.mjs +26 -41
  218. package/fesm2022/taiga-ui-kit-components-input-slider.mjs.map +1 -1
  219. package/fesm2022/taiga-ui-kit-components-input-time.mjs +32 -39
  220. package/fesm2022/taiga-ui-kit-components-input-time.mjs.map +1 -1
  221. package/fesm2022/taiga-ui-kit-components-input-year.mjs +5 -7
  222. package/fesm2022/taiga-ui-kit-components-input-year.mjs.map +1 -1
  223. package/fesm2022/taiga-ui-kit-components-items-with-more.mjs +2 -4
  224. package/fesm2022/taiga-ui-kit-components-items-with-more.mjs.map +1 -1
  225. package/fesm2022/taiga-ui-kit-components-like.mjs +38 -31
  226. package/fesm2022/taiga-ui-kit-components-like.mjs.map +1 -1
  227. package/fesm2022/taiga-ui-kit-components-line-clamp.mjs +28 -72
  228. package/fesm2022/taiga-ui-kit-components-line-clamp.mjs.map +1 -1
  229. package/fesm2022/taiga-ui-kit-components-message.mjs +6 -9
  230. package/fesm2022/taiga-ui-kit-components-message.mjs.map +1 -1
  231. package/fesm2022/taiga-ui-kit-components-multi-select.mjs +27 -38
  232. package/fesm2022/taiga-ui-kit-components-multi-select.mjs.map +1 -1
  233. package/fesm2022/taiga-ui-kit-components-notification-middle.mjs +32 -28
  234. package/fesm2022/taiga-ui-kit-components-notification-middle.mjs.map +1 -1
  235. package/fesm2022/taiga-ui-kit-components-pager.mjs +5 -7
  236. package/fesm2022/taiga-ui-kit-components-pager.mjs.map +1 -1
  237. package/fesm2022/taiga-ui-kit-components-pagination.mjs +22 -13
  238. package/fesm2022/taiga-ui-kit-components-pagination.mjs.map +1 -1
  239. package/fesm2022/taiga-ui-kit-components-pin.mjs +13 -17
  240. package/fesm2022/taiga-ui-kit-components-pin.mjs.map +1 -1
  241. package/fesm2022/taiga-ui-kit-components-preview.mjs +37 -29
  242. package/fesm2022/taiga-ui-kit-components-preview.mjs.map +1 -1
  243. package/fesm2022/taiga-ui-kit-components-progress.mjs +61 -66
  244. package/fesm2022/taiga-ui-kit-components-progress.mjs.map +1 -1
  245. package/fesm2022/taiga-ui-kit-components-pulse.mjs +1 -1
  246. package/fesm2022/taiga-ui-kit-components-pulse.mjs.map +1 -1
  247. package/fesm2022/taiga-ui-kit-components-push.mjs +40 -47
  248. package/fesm2022/taiga-ui-kit-components-push.mjs.map +1 -1
  249. package/fesm2022/taiga-ui-kit-components-radio-list.mjs +2 -2
  250. package/fesm2022/taiga-ui-kit-components-radio-list.mjs.map +1 -1
  251. package/fesm2022/taiga-ui-kit-components-radio.mjs +31 -37
  252. package/fesm2022/taiga-ui-kit-components-radio.mjs.map +1 -1
  253. package/fesm2022/taiga-ui-kit-components-range.mjs +36 -80
  254. package/fesm2022/taiga-ui-kit-components-range.mjs.map +1 -1
  255. package/fesm2022/taiga-ui-kit-components-rating.mjs +17 -26
  256. package/fesm2022/taiga-ui-kit-components-rating.mjs.map +1 -1
  257. package/fesm2022/taiga-ui-kit-components-routable-dialog.mjs +7 -3
  258. package/fesm2022/taiga-ui-kit-components-routable-dialog.mjs.map +1 -1
  259. package/fesm2022/taiga-ui-kit-components-segmented.mjs +28 -55
  260. package/fesm2022/taiga-ui-kit-components-segmented.mjs.map +1 -1
  261. package/fesm2022/taiga-ui-kit-components-select.mjs +37 -41
  262. package/fesm2022/taiga-ui-kit-components-select.mjs.map +1 -1
  263. package/fesm2022/taiga-ui-kit-components-slider.mjs +62 -70
  264. package/fesm2022/taiga-ui-kit-components-slider.mjs.map +1 -1
  265. package/fesm2022/taiga-ui-kit-components-slides.mjs +12 -20
  266. package/fesm2022/taiga-ui-kit-components-slides.mjs.map +1 -1
  267. package/fesm2022/taiga-ui-kit-components-status.mjs +10 -14
  268. package/fesm2022/taiga-ui-kit-components-status.mjs.map +1 -1
  269. package/fesm2022/taiga-ui-kit-components-stepper.mjs +41 -75
  270. package/fesm2022/taiga-ui-kit-components-stepper.mjs.map +1 -1
  271. package/fesm2022/taiga-ui-kit-components-switch.mjs +17 -64
  272. package/fesm2022/taiga-ui-kit-components-switch.mjs.map +1 -1
  273. package/fesm2022/taiga-ui-kit-components-tabs.mjs +18 -31
  274. package/fesm2022/taiga-ui-kit-components-tabs.mjs.map +1 -1
  275. package/fesm2022/taiga-ui-kit-components-textarea.mjs +8 -18
  276. package/fesm2022/taiga-ui-kit-components-textarea.mjs.map +1 -1
  277. package/fesm2022/taiga-ui-kit-components-tiles.mjs +2 -3
  278. package/fesm2022/taiga-ui-kit-components-tiles.mjs.map +1 -1
  279. package/fesm2022/taiga-ui-kit-components-toast.mjs +165 -0
  280. package/fesm2022/taiga-ui-kit-components-toast.mjs.map +1 -0
  281. package/fesm2022/taiga-ui-kit-components-tree.mjs +39 -43
  282. package/fesm2022/taiga-ui-kit-components-tree.mjs.map +1 -1
  283. package/fesm2022/taiga-ui-kit-components.mjs +3 -2
  284. package/fesm2022/taiga-ui-kit-components.mjs.map +1 -1
  285. package/fesm2022/taiga-ui-kit-directives-button-close.mjs +13 -5
  286. package/fesm2022/taiga-ui-kit-directives-button-close.mjs.map +1 -1
  287. package/fesm2022/taiga-ui-kit-directives-button-group.mjs +6 -9
  288. package/fesm2022/taiga-ui-kit-directives-button-group.mjs.map +1 -1
  289. package/fesm2022/taiga-ui-kit-directives-button-select.mjs +14 -13
  290. package/fesm2022/taiga-ui-kit-directives-button-select.mjs.map +1 -1
  291. package/fesm2022/taiga-ui-kit-directives-chevron.mjs +13 -19
  292. package/fesm2022/taiga-ui-kit-directives-chevron.mjs.map +1 -1
  293. package/fesm2022/taiga-ui-kit-directives-connected.mjs +7 -13
  294. package/fesm2022/taiga-ui-kit-directives-connected.mjs.map +1 -1
  295. package/fesm2022/taiga-ui-kit-directives-data-list-dropdown-manager.mjs +22 -50
  296. package/fesm2022/taiga-ui-kit-directives-data-list-dropdown-manager.mjs.map +1 -1
  297. package/fesm2022/taiga-ui-kit-directives-fade.mjs +6 -9
  298. package/fesm2022/taiga-ui-kit-directives-fade.mjs.map +1 -1
  299. package/fesm2022/taiga-ui-kit-directives-fluid-typography.mjs +12 -25
  300. package/fesm2022/taiga-ui-kit-directives-fluid-typography.mjs.map +1 -1
  301. package/fesm2022/taiga-ui-kit-directives-highlight.mjs +0 -1
  302. package/fesm2022/taiga-ui-kit-directives-highlight.mjs.map +1 -1
  303. package/fesm2022/taiga-ui-kit-directives-lazy-loading.mjs +0 -1
  304. package/fesm2022/taiga-ui-kit-directives-lazy-loading.mjs.map +1 -1
  305. package/fesm2022/taiga-ui-kit-directives-password.mjs +9 -11
  306. package/fesm2022/taiga-ui-kit-directives-password.mjs.map +1 -1
  307. package/fesm2022/taiga-ui-kit-directives-present.mjs +0 -1
  308. package/fesm2022/taiga-ui-kit-directives-present.mjs.map +1 -1
  309. package/fesm2022/taiga-ui-kit-directives-sensitive.mjs +11 -16
  310. package/fesm2022/taiga-ui-kit-directives-sensitive.mjs.map +1 -1
  311. package/fesm2022/taiga-ui-kit-directives-shimmer.mjs +22 -32
  312. package/fesm2022/taiga-ui-kit-directives-shimmer.mjs.map +1 -1
  313. package/fesm2022/taiga-ui-kit-directives-skeleton.mjs +25 -36
  314. package/fesm2022/taiga-ui-kit-directives-skeleton.mjs.map +1 -1
  315. package/fesm2022/taiga-ui-kit-directives-tooltip.mjs +13 -18
  316. package/fesm2022/taiga-ui-kit-directives-tooltip.mjs.map +1 -1
  317. package/fesm2022/taiga-ui-kit-directives-unfinished-validator.mjs +3 -5
  318. package/fesm2022/taiga-ui-kit-directives-unfinished-validator.mjs.map +1 -1
  319. package/fesm2022/taiga-ui-kit-directives-unmask-handler.mjs +1 -2
  320. package/fesm2022/taiga-ui-kit-directives-unmask-handler.mjs.map +1 -1
  321. package/fesm2022/taiga-ui-kit-directives.mjs +0 -1
  322. package/fesm2022/taiga-ui-kit-directives.mjs.map +1 -1
  323. package/fesm2022/taiga-ui-kit-pipes-emails.mjs +0 -1
  324. package/fesm2022/taiga-ui-kit-pipes-emails.mjs.map +1 -1
  325. package/fesm2022/taiga-ui-kit-pipes-filter-by-input.mjs +0 -1
  326. package/fesm2022/taiga-ui-kit-pipes-filter-by-input.mjs.map +1 -1
  327. package/fesm2022/taiga-ui-kit-pipes-hide-selected.mjs +1 -2
  328. package/fesm2022/taiga-ui-kit-pipes-hide-selected.mjs.map +1 -1
  329. package/fesm2022/taiga-ui-kit-pipes-sort-countries.mjs +2 -2
  330. package/fesm2022/taiga-ui-kit-pipes-sort-countries.mjs.map +1 -1
  331. package/fesm2022/taiga-ui-kit-pipes-stringify-content.mjs +0 -1
  332. package/fesm2022/taiga-ui-kit-pipes-stringify-content.mjs.map +1 -1
  333. package/fesm2022/taiga-ui-kit-pipes-stringify.mjs +0 -1
  334. package/fesm2022/taiga-ui-kit-pipes-stringify.mjs.map +1 -1
  335. package/fesm2022/taiga-ui-kit-pipes.mjs +0 -1
  336. package/fesm2022/taiga-ui-kit-pipes.mjs.map +1 -1
  337. package/fesm2022/taiga-ui-kit-tokens.mjs +6 -24
  338. package/fesm2022/taiga-ui-kit-tokens.mjs.map +1 -1
  339. package/fesm2022/taiga-ui-kit-utils.mjs +1 -1
  340. package/fesm2022/taiga-ui-kit-utils.mjs.map +1 -1
  341. package/package.json +44 -48
  342. package/pipes/index.d.ts +0 -1
  343. package/styles/components/avatar.less +188 -0
  344. package/styles/components/badge.less +1 -0
  345. package/styles/components/checkbox.less +14 -12
  346. package/styles/components/chip.less +12 -3
  347. package/styles/components/like.less +4 -9
  348. package/styles/components/pin.less +3 -7
  349. package/styles/components/radio.less +1 -1
  350. package/styles/components/switch.less +9 -9
  351. package/styles/components/toast.less +44 -0
  352. package/tokens/i18n.d.ts +25 -26
  353. package/tokens/index.d.ts +0 -1
  354. package/tokens/input-date-options.d.ts +1 -1
  355. package/tokens/items-handlers.d.ts +1 -7
  356. package/tokens/preview-icons.d.ts +1 -3
  357. package/components/accordion/accordion-item-content.directive.d.ts +0 -6
  358. package/components/accordion/accordion-item-eager-content.directive.d.ts +0 -5
  359. package/components/accordion/accordion-item.component.d.ts +0 -25
  360. package/components/action-bar/action-bar.d.ts +0 -3
  361. package/components/action-bar/action-bar.directive.d.ts +0 -6
  362. package/components/avatar/avatar.component.d.ts +0 -15
  363. package/components/input-password/index.d.ts +0 -2
  364. package/components/input-password/input-password.component.d.ts +0 -16
  365. package/components/input-password/input-password.options.d.ts +0 -24
  366. package/components/pdf-viewer/index.d.ts +0 -4
  367. package/components/pdf-viewer/pdf-viewer.component.d.ts +0 -12
  368. package/components/pdf-viewer/pdf-viewer.directive.d.ts +0 -7
  369. package/components/pdf-viewer/pdf-viewer.options.d.ts +0 -13
  370. package/components/pdf-viewer/pdf-viewer.service.d.ts +0 -13
  371. package/fesm2022/taiga-ui-kit-components-input-password.mjs +0 -95
  372. package/fesm2022/taiga-ui-kit-components-input-password.mjs.map +0 -1
  373. package/fesm2022/taiga-ui-kit-components-pdf-viewer.mjs +0 -83
  374. package/fesm2022/taiga-ui-kit-components-pdf-viewer.mjs.map +0 -1
  375. package/fesm2022/taiga-ui-kit-components-preview-dialog.mjs +0 -64
  376. package/fesm2022/taiga-ui-kit-components-preview-dialog.mjs.map +0 -1
  377. package/fesm2022/taiga-ui-kit-directives-copy.mjs.map +0 -1
  378. package/fesm2022/taiga-ui-kit-pipes-field-error.mjs +0 -147
  379. package/fesm2022/taiga-ui-kit-pipes-field-error.mjs.map +0 -1
  380. package/pipes/field-error/field-error-content-pipe.d.ts +0 -14
  381. package/pipes/field-error/field-error-pipe.d.ts +0 -29
  382. package/pipes/field-error/index.d.ts +0 -2
  383. package/tokens/validation-errors.d.ts +0 -5
  384. /package/{directives → components}/copy/copy.d.ts +0 -0
  385. /package/{directives → components}/copy/index.d.ts +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-kit-components-input-date.mjs","sources":["../../../projects/kit/components/input-date/date-filler.ts","../../../projects/kit/components/input-date/input-date.options.ts","../../../projects/kit/components/input-date/input-date.directive.ts","../../../projects/kit/components/input-date/input-date.component.ts","../../../projects/kit/components/input-date/input-date.template.html","../../../projects/kit/components/input-date/input-date.ts","../../../projects/kit/components/input-date/taiga-ui-kit-components-input-date.ts"],"sourcesContent":["import {computed, inject, type Signal} from '@angular/core';\nimport {toSignal} from '@angular/core/rxjs-interop';\nimport {\n changeDateSeparator,\n tuiDirectiveBinding,\n} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TuiTextfieldComponent} from '@taiga-ui/core/components/textfield';\nimport {TUI_DATE_FORMAT, TUI_DEFAULT_DATE_FORMAT} from '@taiga-ui/core/tokens';\nimport {TUI_DATE_TEXTS} from '@taiga-ui/kit/tokens';\nimport {identity} from 'rxjs';\n\nexport function tuiWithDateFiller(\n fn: (dateFiller: string) => string = identity,\n): Signal<string> {\n const texts = toSignal(inject(TUI_DATE_TEXTS));\n const format = toSignal(inject(TUI_DATE_FORMAT), {\n initialValue: TUI_DEFAULT_DATE_FORMAT,\n });\n\n return tuiDirectiveBinding(\n TuiTextfieldComponent,\n 'fillerSetter',\n computed(() => {\n const {mode, separator} = format();\n const fillersMap = texts() ?? '';\n const filler = fillersMap && changeDateSeparator(fillersMap[mode], separator);\n\n return fn(filler);\n }),\n {},\n );\n}\n","import {\n TUI_IDENTITY_VALUE_TRANSFORMER,\n type TuiValueTransformer,\n} from '@taiga-ui/cdk/classes';\nimport {TUI_FIRST_DAY, TUI_LAST_DAY, type TuiDay} from '@taiga-ui/cdk/date-time';\nimport {type TuiHandler} from '@taiga-ui/cdk/types';\nimport {tuiCreateOptions} from '@taiga-ui/cdk/utils/di';\nimport {type TuiSizeL, type TuiSizeS} from '@taiga-ui/core/types';\n\nexport interface TuiInputDateOptionsNew {\n readonly icon: TuiHandler<TuiSizeL | TuiSizeS, string>;\n readonly max: TuiDay;\n readonly min: TuiDay;\n readonly valueTransformer: TuiValueTransformer<TuiDay | null, any>;\n}\n\nexport const TUI_INPUT_DATE_DEFAULT_OPTIONS_NEW = {\n icon: () => '@tui.calendar',\n min: TUI_FIRST_DAY,\n max: TUI_LAST_DAY,\n valueTransformer: TUI_IDENTITY_VALUE_TRANSFORMER,\n} as const;\n\nexport const [TUI_INPUT_DATE_OPTIONS_NEW, tuiInputDateOptionsProviderNew] =\n tuiCreateOptions<TuiInputDateOptionsNew>(TUI_INPUT_DATE_DEFAULT_OPTIONS_NEW);\n","import {\n computed,\n Directive,\n effect,\n inject,\n Input,\n signal,\n untracked,\n} from '@angular/core';\nimport {toSignal} from '@angular/core/rxjs-interop';\nimport {MaskitoDirective} from '@maskito/angular';\nimport {type MaskitoDateMode, maskitoDateOptionsGenerator} from '@maskito/kit';\nimport {tuiAsControl, TuiControl, tuiValueTransformerFrom} from '@taiga-ui/cdk/classes';\nimport {TUI_ALLOW_SIGNAL_WRITES} from '@taiga-ui/cdk/constants';\nimport {\n DATE_FILLER_LENGTH,\n type TuiDateMode,\n TuiDay,\n type TuiDayRange,\n type TuiTime,\n} from '@taiga-ui/cdk/date-time';\nimport {TUI_IS_MOBILE} from '@taiga-ui/cdk/tokens';\nimport {type TuiBooleanHandler} from '@taiga-ui/cdk/types';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {TuiCalendar} from '@taiga-ui/core/components/calendar';\nimport {tuiAsOptionContent} from '@taiga-ui/core/components/data-list';\nimport {\n tuiInjectAuxiliary,\n TuiTextfieldDirective,\n tuiTextfieldIconBinding,\n TuiWithNativePicker,\n TuiWithTextfield,\n} from '@taiga-ui/core/components/textfield';\nimport {\n TuiDropdownAuto,\n tuiDropdownEnabled,\n tuiDropdownOpen,\n} from '@taiga-ui/core/directives/dropdown';\nimport {\n TUI_ITEMS_HANDLERS,\n type TuiItemsHandlers,\n TuiItemsHandlersDirective,\n TuiItemsHandlersValidator,\n} from '@taiga-ui/core/directives/items-handlers';\nimport {TUI_DATE_FORMAT, TUI_DEFAULT_DATE_FORMAT} from '@taiga-ui/core/tokens';\nimport {TuiCalendarRange} from '@taiga-ui/kit/components/calendar-range';\nimport {TuiSelectOption} from '@taiga-ui/kit/components/select';\nimport {tuiMaskito} from '@taiga-ui/kit/utils';\n\nimport {tuiWithDateFiller} from './date-filler';\nimport {\n TUI_INPUT_DATE_OPTIONS_NEW,\n type TuiInputDateOptionsNew,\n} from './input-date.options';\n\nexport const TUI_DATE_ADAPTER: Record<TuiDateMode, MaskitoDateMode> = {\n DMY: 'dd/mm/yyyy',\n MDY: 'mm/dd/yyyy',\n YMD: 'yyyy/mm/dd',\n};\n\n@Directive({\n standalone: true,\n host: {\n '[attr.inputmode]': 'mobile && open() ? \"none\" : \"numeric\"',\n '[disabled]': 'disabled()',\n '(input)': 'onValueChange($event.target.value)',\n '(click.capture.stop)': 'onClick()',\n },\n})\nexport abstract class TuiInputDateBase<\n T extends TuiDay | TuiDayRange | readonly [TuiDay, TuiTime | null],\n> extends TuiControl<T | null> {\n private readonly calendar = tuiInjectAuxiliary<TuiCalendar | TuiCalendarRange>(\n (x) => x instanceof TuiCalendar || x instanceof TuiCalendarRange,\n );\n\n protected readonly el = tuiInjectElement<HTMLInputElement>();\n protected readonly textfield = inject(TuiTextfieldDirective);\n protected readonly filler = tuiWithDateFiller();\n protected readonly mobile = inject(TUI_IS_MOBILE);\n protected readonly open = tuiDropdownOpen();\n protected readonly icon = tuiTextfieldIconBinding(TUI_INPUT_DATE_OPTIONS_NEW);\n protected readonly handlers = inject<TuiItemsHandlers<T>>(TuiItemsHandlersDirective);\n\n protected readonly dropdownEnabled = tuiDropdownEnabled(\n computed(() => !this.native && this.interactive()),\n );\n\n protected readonly options: Omit<TuiInputDateOptionsNew, 'valueTransformer'> = inject(\n TUI_INPUT_DATE_OPTIONS_NEW,\n );\n\n protected readonly format = toSignal(inject(TUI_DATE_FORMAT), {\n initialValue: TUI_DEFAULT_DATE_FORMAT,\n });\n\n protected readonly valueEffect = effect(() => {\n const value =\n this.stringify(this.value()) ||\n (this.filler().length === this.el.value.length ? '' : this.el.value);\n\n this.textfield.value.set(value);\n }, TUI_ALLOW_SIGNAL_WRITES);\n\n protected readonly calendarIn = effect(() => {\n if (this.calendar()) {\n this.processCalendar(this.calendar()!);\n }\n }, TUI_ALLOW_SIGNAL_WRITES);\n\n protected readonly calendarOut = effect((onCleanup) => {\n const subscription = this.calendar()?.valueChange.subscribe((value) =>\n this.setDate(value),\n );\n\n onCleanup(() => subscription?.unsubscribe());\n });\n\n public readonly native =\n !!inject(TuiWithNativePicker, {optional: true}) && this.mobile;\n\n public readonly min = signal(this.options.min);\n public readonly max = signal(this.options.max);\n\n protected abstract onValueChange(value: string): void;\n\n @Input('min')\n public set minSetter(min: Exclude<T, TuiDayRange> | TuiDay | null) {\n this.min.set(min instanceof TuiDay ? min : this.options.min);\n }\n\n @Input('max')\n public set maxSetter(max: Exclude<T, TuiDayRange> | TuiDay | null) {\n this.max.set(max instanceof TuiDay ? max : this.options.max);\n }\n\n public override writeValue(value: T | null): void {\n const reset = this.control.pristine && this.control.untouched && !value;\n const changed = untracked(() => value !== this.value());\n\n if (changed || reset) {\n super.writeValue(value);\n this.textfield.value.set(this.stringify(this.value()));\n }\n }\n\n public setDate(value: TuiDay | TuiDayRange | readonly TuiDay[]): void {\n this.onChange(value as T);\n this.open.set(false);\n\n if (!this.el.closest('tui-dropdown')) {\n this.el.blur();\n }\n }\n\n protected processCalendar(calendar: TuiCalendar | TuiCalendarRange): void {\n const value = this.value();\n\n calendar.value = Array.isArray(value) ? value[0] : value;\n calendar.disabledItemHandler =\n this.handlers.disabledItemHandler() as TuiBooleanHandler<\n TuiDay | TuiDayRange\n >;\n calendar.min = this.min();\n calendar.max = this.max();\n }\n\n protected onClick(): void {\n if (!this.mobile && this.dropdownEnabled()) {\n this.open.update((open) => !open);\n }\n }\n\n protected stringify(value: T | null): string {\n return value?.toString(this.format().mode, this.format().separator) ?? '';\n }\n}\n\n@Directive({\n standalone: true,\n selector: 'input[tuiInputDate]',\n providers: [\n tuiAsOptionContent(TuiSelectOption),\n tuiAsControl(TuiInputDateDirective),\n tuiValueTransformerFrom(TUI_INPUT_DATE_OPTIONS_NEW),\n ],\n hostDirectives: [\n TuiWithTextfield,\n TuiDropdownAuto,\n TuiItemsHandlersValidator,\n MaskitoDirective,\n ],\n})\nexport class TuiInputDateDirective extends TuiInputDateBase<TuiDay> {\n protected readonly identity = inject<TuiItemsHandlers<TuiDay>>(\n TUI_ITEMS_HANDLERS,\n ).identityMatcher.set((a, b) => a.daySame(b));\n\n protected readonly mask = tuiMaskito(\n computed(() =>\n maskitoDateOptionsGenerator({\n separator: this.format().separator,\n mode: TUI_DATE_ADAPTER[this.format().mode],\n min: this.min().toLocalNativeDate(),\n max: this.max().toLocalNativeDate(),\n }),\n ),\n );\n\n protected override onValueChange(value: string): void {\n this.control?.control?.updateValueAndValidity({emitEvent: false});\n this.onChange(\n value.length === DATE_FILLER_LENGTH\n ? TuiDay.normalizeParse(value, this.format().mode)\n : null,\n );\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n inject,\n Input,\n ViewEncapsulation,\n} from '@angular/core';\nimport {TuiDay} from '@taiga-ui/cdk/date-time';\nimport {\n TuiTextfieldContent,\n TuiWithNativePicker,\n} from '@taiga-ui/core/components/textfield';\n\nimport {TuiInputDateDirective} from './input-date.directive';\n\n@Component({\n selector: 'input[tuiInputDate][type=\"date\"]',\n imports: [TuiTextfieldContent],\n templateUrl: './input-date.template.html',\n styleUrls: ['./input-date.style.less'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n hostDirectives: [TuiWithNativePicker],\n host: {\n ngSkipHydration: 'true',\n '[attr.list]': 'null',\n },\n})\nexport class TuiInputDateComponent {\n protected readonly host = inject(TuiInputDateDirective);\n\n @Input()\n public list: string | null = null;\n\n protected onInput(value: string): void {\n if (!value) {\n return this.host.onChange(null);\n }\n\n const [year = 0, month = 0, day = 0] = value.split('-').map(Number);\n\n this.host.onChange(new TuiDay(year, month - 1, day));\n }\n}\n","@if (host.native) {\n <input\n *tuiTextfieldContent\n type=\"date\"\n [attr.list]=\"list\"\n [max]=\"host.max().toJSON()\"\n [min]=\"host.min().toJSON()\"\n [value]=\"host.value()?.toJSON()\"\n (click.stop.zoneless)=\"(0)\"\n (input)=\"onInput($any($event.target).value)\"\n (pointerdown.stop.zoneless)=\"(0)\"\n />\n}\n","import {TuiCalendar} from '@taiga-ui/core/components/calendar';\n\nimport {TuiInputDateComponent} from './input-date.component';\nimport {TuiInputDateDirective} from './input-date.directive';\n\nexport const TuiInputDate = [\n TuiInputDateDirective,\n TuiInputDateComponent,\n TuiCalendar,\n] as const;\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-components-input-date.mjs","sources":["../../../projects/kit/components/input-date/date-filler.ts","../../../projects/kit/components/input-date/input-date.options.ts","../../../projects/kit/components/input-date/input-date.directive.ts","../../../projects/kit/components/input-date/input-date.component.ts","../../../projects/kit/components/input-date/input-date.template.html","../../../projects/kit/components/input-date/input-date.ts","../../../projects/kit/components/input-date/taiga-ui-kit-components-input-date.ts"],"sourcesContent":["import {computed, inject, type Signal} from '@angular/core';\nimport {tuiDirectiveBinding} from '@taiga-ui/cdk/utils/di';\nimport {changeDateSeparator} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TuiTextfieldComponent} from '@taiga-ui/core/components/textfield';\nimport {TUI_DATE_FORMAT} from '@taiga-ui/core/tokens';\nimport {TUI_DATE_TEXTS} from '@taiga-ui/kit/tokens';\nimport {identity} from 'rxjs';\n\nexport function tuiWithDateFiller(\n fn: (dateFiller: string) => string = identity,\n): Signal<string> {\n const texts = inject(TUI_DATE_TEXTS);\n const format = inject(TUI_DATE_FORMAT);\n\n return tuiDirectiveBinding(\n TuiTextfieldComponent,\n 'filler',\n computed(() => {\n const {mode, separator} = format();\n const fillersMap = texts() ?? '';\n const filler = fillersMap && changeDateSeparator(fillersMap[mode], separator);\n\n return fn(filler);\n }),\n {},\n );\n}\n","import {\n TUI_IDENTITY_VALUE_TRANSFORMER,\n type TuiValueTransformer,\n} from '@taiga-ui/cdk/classes';\nimport {TUI_FIRST_DAY, TUI_LAST_DAY, type TuiDay} from '@taiga-ui/cdk/date-time';\nimport {type TuiHandler} from '@taiga-ui/cdk/types';\nimport {tuiCreateOptions} from '@taiga-ui/cdk/utils/di';\nimport {type TuiSizeL, type TuiSizeS} from '@taiga-ui/core/types';\n\nexport interface TuiInputDateOptionsNew {\n readonly icon: TuiHandler<TuiSizeL | TuiSizeS, string>;\n readonly max: TuiDay;\n readonly min: TuiDay;\n readonly valueTransformer: TuiValueTransformer<TuiDay | null, any>;\n}\n\nexport const TUI_INPUT_DATE_DEFAULT_OPTIONS_NEW = {\n icon: () => '@tui.calendar',\n min: TUI_FIRST_DAY,\n max: TUI_LAST_DAY,\n valueTransformer: TUI_IDENTITY_VALUE_TRANSFORMER,\n} as const;\n\nexport const [TUI_INPUT_DATE_OPTIONS_NEW, tuiInputDateOptionsProviderNew] =\n tuiCreateOptions<TuiInputDateOptionsNew>(TUI_INPUT_DATE_DEFAULT_OPTIONS_NEW);\n","import {\n computed,\n Directive,\n effect,\n inject,\n Input,\n signal,\n untracked,\n} from '@angular/core';\nimport {MaskitoDirective} from '@maskito/angular';\nimport {type MaskitoDateMode, maskitoDateOptionsGenerator} from '@maskito/kit';\nimport {tuiAsControl, TuiControl, tuiValueTransformerFrom} from '@taiga-ui/cdk/classes';\nimport {\n DATE_FILLER_LENGTH,\n type TuiDateMode,\n TuiDay,\n type TuiDayRange,\n type TuiTime,\n} from '@taiga-ui/cdk/date-time';\nimport {TUI_IS_MOBILE} from '@taiga-ui/cdk/tokens';\nimport {type TuiBooleanHandler} from '@taiga-ui/cdk/types';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {TuiCalendar} from '@taiga-ui/core/components/calendar';\nimport {tuiAsOptionContent} from '@taiga-ui/core/components/data-list';\nimport {\n tuiInjectAuxiliary,\n TuiTextfieldDirective,\n tuiTextfieldIcon,\n TuiWithNativePicker,\n TuiWithTextfield,\n} from '@taiga-ui/core/components/textfield';\nimport {\n TuiDropdownAuto,\n tuiDropdownEnabled,\n tuiDropdownOpen,\n} from '@taiga-ui/core/directives/dropdown';\nimport {\n TUI_ITEMS_HANDLERS,\n type TuiItemsHandlers,\n TuiItemsHandlersDirective,\n TuiItemsHandlersValidator,\n} from '@taiga-ui/core/directives/items-handlers';\nimport {TUI_DATE_FORMAT} from '@taiga-ui/core/tokens';\nimport {TuiCalendarRange} from '@taiga-ui/kit/components/calendar-range';\nimport {TuiSelectOption} from '@taiga-ui/kit/components/select';\nimport {tuiMaskito} from '@taiga-ui/kit/utils';\n\nimport {tuiWithDateFiller} from './date-filler';\nimport {\n TUI_INPUT_DATE_OPTIONS_NEW,\n type TuiInputDateOptionsNew,\n} from './input-date.options';\n\nexport const TUI_DATE_ADAPTER: Record<TuiDateMode, MaskitoDateMode> = {\n DMY: 'dd/mm/yyyy',\n MDY: 'mm/dd/yyyy',\n YMD: 'yyyy/mm/dd',\n};\n\n@Directive({\n host: {\n '[attr.inputmode]': 'mobile && open() ? \"none\" : \"numeric\"',\n '[disabled]': 'disabled()',\n '(input)': 'onValueChange($event.target.value)',\n '(click.capture.stop)': 'onClick()',\n },\n})\nexport abstract class TuiInputDateBase<\n T extends TuiDay | TuiDayRange | readonly [TuiDay, TuiTime | null],\n> extends TuiControl<T | null> {\n private readonly calendar = tuiInjectAuxiliary<TuiCalendar | TuiCalendarRange>(\n (x) => x instanceof TuiCalendar || x instanceof TuiCalendarRange,\n );\n\n protected readonly el = tuiInjectElement<HTMLInputElement>();\n protected readonly textfield = inject(TuiTextfieldDirective);\n protected readonly filler = tuiWithDateFiller();\n protected readonly mobile = inject(TUI_IS_MOBILE);\n protected readonly open = tuiDropdownOpen();\n protected readonly icon = tuiTextfieldIcon(TUI_INPUT_DATE_OPTIONS_NEW);\n protected readonly handlers = inject<TuiItemsHandlers<T>>(TuiItemsHandlersDirective);\n\n protected readonly dropdownEnabled = tuiDropdownEnabled(\n computed(() => !this.native && this.interactive()),\n );\n\n protected readonly options: Omit<TuiInputDateOptionsNew, 'valueTransformer'> = inject(\n TUI_INPUT_DATE_OPTIONS_NEW,\n );\n\n protected readonly format = inject(TUI_DATE_FORMAT);\n\n protected readonly valueEffect = effect(() => {\n const value =\n this.stringify(this.value()) ||\n (this.filler().length === this.el.value.length ? '' : this.el.value);\n\n this.textfield.value.set(value);\n });\n\n protected readonly calendarIn = effect(() => {\n if (this.calendar()) {\n this.processCalendar(this.calendar()!);\n }\n });\n\n protected readonly calendarOut = effect((onCleanup) => {\n const subscription = this.calendar()?.valueChange.subscribe((value) =>\n this.setDate(value),\n );\n\n onCleanup(() => subscription?.unsubscribe());\n });\n\n public readonly native =\n !!inject(TuiWithNativePicker, {optional: true}) && this.mobile;\n\n public readonly min = signal(this.options.min);\n public readonly max = signal(this.options.max);\n\n protected abstract onValueChange(value: string): void;\n\n @Input('min')\n public set minSetter(min: Exclude<T, TuiDayRange> | TuiDay | null) {\n this.min.set(min instanceof TuiDay ? min : this.options.min);\n }\n\n @Input('max')\n public set maxSetter(max: Exclude<T, TuiDayRange> | TuiDay | null) {\n this.max.set(max instanceof TuiDay ? max : this.options.max);\n }\n\n public override writeValue(value: T | null): void {\n const reset = this.control.pristine && this.control.untouched && !value;\n const changed = untracked(() => value !== this.value());\n\n if (changed || reset) {\n super.writeValue(value);\n this.textfield.value.set(this.stringify(this.value()));\n }\n }\n\n public setDate(value: TuiDay | TuiDayRange | readonly TuiDay[]): void {\n this.onChange(value as T);\n this.open.set(false);\n\n if (!this.el.closest('tui-dropdown')) {\n this.el.blur();\n }\n }\n\n protected processCalendar(calendar: TuiCalendar | TuiCalendarRange): void {\n const value = this.value();\n\n calendar.value = Array.isArray(value) ? value[0] : value;\n calendar.disabledItemHandler =\n this.handlers.disabledItemHandler() as TuiBooleanHandler<\n TuiDay | TuiDayRange\n >;\n calendar.min = this.min();\n calendar.max = this.max();\n }\n\n protected onClick(): void {\n if (!this.mobile && this.dropdownEnabled()) {\n this.open.update((open) => !open);\n }\n }\n\n protected stringify(value: T | null): string {\n return value?.toString(this.format().mode, this.format().separator) ?? '';\n }\n}\n\n@Directive({\n selector: 'input[tuiInputDate]',\n providers: [\n tuiAsOptionContent(TuiSelectOption),\n tuiAsControl(TuiInputDateDirective),\n tuiValueTransformerFrom(TUI_INPUT_DATE_OPTIONS_NEW),\n ],\n hostDirectives: [\n TuiWithTextfield,\n TuiDropdownAuto,\n TuiItemsHandlersValidator,\n MaskitoDirective,\n ],\n})\nexport class TuiInputDateDirective extends TuiInputDateBase<TuiDay> {\n protected readonly identity = inject<TuiItemsHandlers<TuiDay>>(\n TUI_ITEMS_HANDLERS,\n ).identityMatcher.set((a, b) => a.daySame(b));\n\n protected readonly mask = tuiMaskito(\n computed(() =>\n maskitoDateOptionsGenerator({\n separator: this.format().separator,\n mode: TUI_DATE_ADAPTER[this.format().mode],\n min: this.min().toLocalNativeDate(),\n max: this.max().toLocalNativeDate(),\n }),\n ),\n );\n\n protected override onValueChange(value: string): void {\n this.control?.control?.updateValueAndValidity({emitEvent: false});\n this.onChange(\n value.length === DATE_FILLER_LENGTH\n ? TuiDay.normalizeParse(value, this.format().mode)\n : null,\n );\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n inject,\n Input,\n ViewEncapsulation,\n} from '@angular/core';\nimport {TuiDay} from '@taiga-ui/cdk/date-time';\nimport {\n TuiTextfieldContent,\n TuiWithNativePicker,\n} from '@taiga-ui/core/components/textfield';\n\nimport {TuiInputDateDirective} from './input-date.directive';\n\n@Component({\n selector: 'input[tuiInputDate][type=\"date\"]',\n imports: [TuiTextfieldContent],\n templateUrl: './input-date.template.html',\n styleUrl: './input-date.style.less',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n hostDirectives: [TuiWithNativePicker],\n host: {\n ngSkipHydration: 'true',\n '[attr.list]': 'null',\n },\n})\nexport class TuiInputDateComponent {\n protected readonly host = inject(TuiInputDateDirective);\n\n @Input()\n public list: string | null = null;\n\n protected onInput(value: string): void {\n if (!value) {\n return this.host.onChange(null);\n }\n\n const [year = 0, month = 0, day = 0] = value.split('-').map(Number);\n\n this.host.onChange(new TuiDay(year, month - 1, day));\n }\n}\n","@if (host.native) {\n <input\n *tuiTextfieldContent\n type=\"date\"\n [attr.list]=\"list\"\n [max]=\"host.max().toJSON()\"\n [min]=\"host.min().toJSON()\"\n [value]=\"host.value()?.toJSON()\"\n (click.stop.zoneless)=\"(0)\"\n (input)=\"onInput($any($event.target).value)\"\n (pointerdown.stop.zoneless)=\"(0)\"\n />\n}\n","import {TuiCalendar} from '@taiga-ui/core/components/calendar';\n\nimport {TuiInputDateComponent} from './input-date.component';\nimport {TuiInputDateDirective} from './input-date.directive';\n\nexport const TuiInputDate = [\n TuiInputDateDirective,\n TuiInputDateComponent,\n TuiCalendar,\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAQgB,SAAA,iBAAiB,CAC7B,EAAA,GAAqC,QAAQ,EAAA;AAE7C,IAAA,MAAM,KAAK,GAAG,MAAM,CAAC,cAAc,CAAC;AACpC,IAAA,MAAM,MAAM,GAAG,MAAM,CAAC,eAAe,CAAC;IAEtC,OAAO,mBAAmB,CACtB,qBAAqB,EACrB,QAAQ,EACR,QAAQ,CAAC,MAAK;QACV,MAAM,EAAC,IAAI,EAAE,SAAS,EAAC,GAAG,MAAM,EAAE;AAClC,QAAA,MAAM,UAAU,GAAG,KAAK,EAAE,IAAI,EAAE;AAChC,QAAA,MAAM,MAAM,GAAG,UAAU,IAAI,mBAAmB,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC;AAE7E,QAAA,OAAO,EAAE,CAAC,MAAM,CAAC;AACrB,KAAC,CAAC,EACF,EAAE,CACL;AACL;;ACVa,MAAA,kCAAkC,GAAG;AAC9C,IAAA,IAAI,EAAE,MAAM,eAAe;AAC3B,IAAA,GAAG,EAAE,aAAa;AAClB,IAAA,GAAG,EAAE,YAAY;AACjB,IAAA,gBAAgB,EAAE,8BAA8B;;AAG7C,MAAM,CAAC,0BAA0B,EAAE,8BAA8B,CAAC,GACrE,gBAAgB,CAAyB,kCAAkC;;AC6BlE,MAAA,gBAAgB,GAAyC;AAClE,IAAA,GAAG,EAAE,YAAY;AACjB,IAAA,GAAG,EAAE,YAAY;AACjB,IAAA,GAAG,EAAE,YAAY;;AAWf,MAAgB,gBAEpB,SAAQ,UAAoB,CAAA;AAV9B,IAAA,WAAA,GAAA;;AAWqB,QAAA,IAAA,CAAA,QAAQ,GAAG,kBAAkB,CAC1C,CAAC,CAAC,KAAK,CAAC,YAAY,WAAW,IAAI,CAAC,YAAY,gBAAgB,CACnE;QAEkB,IAAE,CAAA,EAAA,GAAG,gBAAgB,EAAoB;AACzC,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,qBAAqB,CAAC;QACzC,IAAM,CAAA,MAAA,GAAG,iBAAiB,EAAE;AAC5B,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,aAAa,CAAC;QAC9B,IAAI,CAAA,IAAA,GAAG,eAAe,EAAE;AACxB,QAAA,IAAA,CAAA,IAAI,GAAG,gBAAgB,CAAC,0BAA0B,CAAC;AACnD,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAsB,yBAAyB,CAAC;AAEjE,QAAA,IAAA,CAAA,eAAe,GAAG,kBAAkB,CACnD,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC,CACrD;AAEkB,QAAA,IAAA,CAAA,OAAO,GAAqD,MAAM,CACjF,0BAA0B,CAC7B;AAEkB,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,eAAe,CAAC;AAEhC,QAAA,IAAA,CAAA,WAAW,GAAG,MAAM,CAAC,MAAK;YACzC,MAAM,KAAK,GACP,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;iBAC3B,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM,KAAK,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;YAExE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC;AACnC,SAAC,CAAC;AAEiB,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,MAAK;AACxC,YAAA,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE;gBACjB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,EAAG,CAAC;;AAE9C,SAAC,CAAC;AAEiB,QAAA,IAAA,CAAA,WAAW,GAAG,MAAM,CAAC,CAAC,SAAS,KAAI;YAClD,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,EAAE,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC,KAAK,KAC9D,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CACtB;YAED,SAAS,CAAC,MAAM,YAAY,EAAE,WAAW,EAAE,CAAC;AAChD,SAAC,CAAC;AAEc,QAAA,IAAA,CAAA,MAAM,GAClB,CAAC,CAAC,MAAM,CAAC,mBAAmB,EAAE,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC,IAAI,IAAI,CAAC,MAAM;QAElD,IAAG,CAAA,GAAA,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC;QAC9B,IAAG,CAAA,GAAA,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC;AAsDjD;IAlDG,IACW,SAAS,CAAC,GAA4C,EAAA;QAC7D,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,YAAY,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC;;IAGhE,IACW,SAAS,CAAC,GAA4C,EAAA;QAC7D,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,YAAY,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC;;AAGhD,IAAA,UAAU,CAAC,KAAe,EAAA;AACtC,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,CAAC,KAAK;AACvE,QAAA,MAAM,OAAO,GAAG,SAAS,CAAC,MAAM,KAAK,KAAK,IAAI,CAAC,KAAK,EAAE,CAAC;AAEvD,QAAA,IAAI,OAAO,IAAI,KAAK,EAAE;AAClB,YAAA,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC;AACvB,YAAA,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;;;AAIvD,IAAA,OAAO,CAAC,KAA+C,EAAA;AAC1D,QAAA,IAAI,CAAC,QAAQ,CAAC,KAAU,CAAC;AACzB,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;QAEpB,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE;AAClC,YAAA,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE;;;AAIZ,IAAA,eAAe,CAAC,QAAwC,EAAA;AAC9D,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE;QAE1B,QAAQ,CAAC,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK;AACxD,QAAA,QAAQ,CAAC,mBAAmB;AACxB,YAAA,IAAI,CAAC,QAAQ,CAAC,mBAAmB,EAEhC;AACL,QAAA,QAAQ,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE;AACzB,QAAA,QAAQ,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE;;IAGnB,OAAO,GAAA;QACb,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,eAAe,EAAE,EAAE;AACxC,YAAA,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC;;;AAI/B,IAAA,SAAS,CAAC,KAAe,EAAA;QAC/B,OAAO,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE;;+GAvG3D,gBAAgB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAhB,gBAAgB,EAAA,YAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,CAAA,KAAA,EAAA,WAAA,CAAA,EAAA,SAAA,EAAA,CAAA,KAAA,EAAA,WAAA,CAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,oCAAA,EAAA,oBAAA,EAAA,WAAA,EAAA,EAAA,UAAA,EAAA,EAAA,gBAAA,EAAA,2CAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAAhB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBARrC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,IAAI,EAAE;AACF,wBAAA,kBAAkB,EAAE,uCAAuC;AAC3D,wBAAA,YAAY,EAAE,YAAY;AAC1B,wBAAA,SAAS,EAAE,oCAAoC;AAC/C,wBAAA,sBAAsB,EAAE,WAAW;AACtC,qBAAA;AACJ,iBAAA;8BAyDc,SAAS,EAAA,CAAA;sBADnB,KAAK;uBAAC,KAAK;gBAMD,SAAS,EAAA,CAAA;sBADnB,KAAK;uBAAC,KAAK;;AA6DV,MAAO,qBAAsB,SAAQ,gBAAwB,CAAA;AAdnE,IAAA,WAAA,GAAA;;QAeuB,IAAQ,CAAA,QAAA,GAAG,MAAM,CAChC,kBAAkB,CACrB,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAE1B,IAAI,CAAA,IAAA,GAAG,UAAU,CAChC,QAAQ,CAAC,MACL,2BAA2B,CAAC;AACxB,YAAA,SAAS,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,SAAS;YAClC,IAAI,EAAE,gBAAgB,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC;AAC1C,YAAA,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,iBAAiB,EAAE;AACnC,YAAA,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,iBAAiB,EAAE;SACtC,CAAC,CACL,CACJ;AAUJ;AARsB,IAAA,aAAa,CAAC,KAAa,EAAA;AAC1C,QAAA,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,sBAAsB,CAAC,EAAC,SAAS,EAAE,KAAK,EAAC,CAAC;AACjE,QAAA,IAAI,CAAC,QAAQ,CACT,KAAK,CAAC,MAAM,KAAK;AACb,cAAE,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI;cAC/C,IAAI,CACb;;+GAtBI,qBAAqB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAArB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,qBAAqB,EAZnB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,SAAA,EAAA;YACP,kBAAkB,CAAC,eAAe,CAAC;YACnC,YAAY,CAAC,qBAAqB,CAAC;YACnC,uBAAuB,CAAC,0BAA0B,CAAC;AACtD,SAAA,EAAA,eAAA,EAAA,IAAA,EAAA,cAAA,EAAA,CAAA,EAAA,SAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,EAAA,EAAA,SAAA,EAAA,EAAA,CAAA,eAAA,EAAA,EAAA,EAAA,SAAA,EAAA,EAAA,CAAA,yBAAA,EAAA,EAAA,EAAA,SAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAQQ,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAdjC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,qBAAqB;AAC/B,oBAAA,SAAS,EAAE;wBACP,kBAAkB,CAAC,eAAe,CAAC;AACnC,wBAAA,YAAY,CAAuB,qBAAA,CAAA;wBACnC,uBAAuB,CAAC,0BAA0B,CAAC;AACtD,qBAAA;AACD,oBAAA,cAAc,EAAE;wBACZ,gBAAgB;wBAChB,eAAe;wBACf,yBAAyB;wBACzB,gBAAgB;AACnB,qBAAA;AACJ,iBAAA;;;MC/JY,qBAAqB,CAAA;AAblC,IAAA,WAAA,GAAA;AAcuB,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAAC,qBAAqB,CAAC;QAGhD,IAAI,CAAA,IAAA,GAAkB,IAAI;AAWpC;AATa,IAAA,OAAO,CAAC,KAAa,EAAA;QAC3B,IAAI,CAAC,KAAK,EAAE;YACR,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;;QAGnC,MAAM,CAAC,IAAI,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC;AAEnE,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,MAAM,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;;+GAb/C,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAArB,qBAAqB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oCAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,UAAA,EAAA,EAAA,WAAA,EAAA,MAAA,EAAA,EAAA,EAAA,cAAA,EAAA,CAAA,EAAA,SAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC5BlC,uYAaA,EAAA,MAAA,EAAA,CAAA,6SAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDIc,mBAAmB,EAAA,QAAA,EAAA,kCAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;4FAWpB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAbjC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,kCAAkC,WACnC,CAAC,mBAAmB,CAAC,EAAA,aAAA,EAGf,iBAAiB,CAAC,IAAI,EACpB,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAAA,cAAA,EAC/B,CAAC,mBAAmB,CAAC,EAC/B,IAAA,EAAA;AACF,wBAAA,eAAe,EAAE,MAAM;AACvB,wBAAA,aAAa,EAAE,MAAM;AACxB,qBAAA,EAAA,QAAA,EAAA,uYAAA,EAAA,MAAA,EAAA,CAAA,6SAAA,CAAA,EAAA;8BAMM,IAAI,EAAA,CAAA;sBADV;;;AE1BQ,MAAA,YAAY,GAAG;IACxB,qBAAqB;IACrB,qBAAqB;IACrB,WAAW;;;ACRf;;AAEG;;;;"}
@@ -2,7 +2,6 @@ import { AsyncPipe } from '@angular/common';
2
2
  import * as i0 from '@angular/core';
3
3
  import { ContentChild, ChangeDetectionStrategy, ViewEncapsulation, Component } from '@angular/core';
4
4
  import { NgControl } from '@angular/forms';
5
- import { TuiLet } from '@taiga-ui/cdk/directives/let';
6
5
  import { tuiControlValue } from '@taiga-ui/cdk/observables';
7
6
  import { defer } from 'rxjs';
8
7
 
@@ -11,11 +10,11 @@ class TuiInputInline {
11
10
  this.value$ = defer(() => tuiControlValue(this.control));
12
11
  }
13
12
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiInputInline, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
14
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.15", type: TuiInputInline, isStandalone: true, selector: "tui-input-inline", queries: [{ propertyName: "control", first: true, predicate: NgControl, descendants: true }], ngImport: i0, template: "<ng-container *tuiLet=\"value$ | async as value\">\n <span\n class=\"t-before\"\n [textContent]=\"value\"\n ></span>\n\n @if (!value) {\n <span\n automation-id=\"tui-input-inline__placeholder\"\n class=\"t-placeholder\"\n >\n <ng-content />\n </span>\n }\n</ng-container>\n<ng-content select=\"input\" />\n", styles: ["tui-input-inline{position:relative;display:inline-block;white-space:nowrap;box-sizing:border-box}tui-input-inline>.t-before{padding-inline-end:.02em;margin-inline-start:1px;white-space:pre;visibility:hidden}tui-input-inline>.t-placeholder{display:inline-block;min-inline-size:1px;margin-inline-start:-1px}tui-input-inline>input{position:absolute;top:0;left:0;background-color:transparent;padding:inherit;font:inherit;color:inherit;box-sizing:border-box;inline-size:100%;block-size:100%;border-width:0;text-align:inherit;letter-spacing:inherit;text-indent:inherit;text-transform:inherit;outline:none}\n"], dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "directive", type: TuiLet, selector: "[tuiLet]", inputs: ["tuiLet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
13
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.15", type: TuiInputInline, isStandalone: true, selector: "tui-input-inline", queries: [{ propertyName: "control", first: true, predicate: NgControl, descendants: true }], ngImport: i0, template: "@let value = value$ | async;\n<span\n class=\"t-before\"\n [textContent]=\"value\"\n></span>\n\n@if (!value) {\n <span\n automation-id=\"tui-input-inline__placeholder\"\n class=\"t-placeholder\"\n >\n <ng-content />\n </span>\n}\n<ng-content select=\"input\" />\n", styles: ["tui-input-inline{position:relative;display:inline-block;white-space:nowrap;box-sizing:border-box}tui-input-inline>.t-before{padding-inline-end:.02em;margin-inline-start:1px;white-space:pre;visibility:hidden}tui-input-inline>.t-placeholder{display:inline-block;min-inline-size:1px;margin-inline-start:-1px}tui-input-inline>input{position:absolute;top:0;left:0;background-color:transparent;padding:inherit;font:inherit;color:inherit;box-sizing:border-box;inline-size:100%;block-size:100%;border-width:0;text-align:inherit;letter-spacing:inherit;text-indent:inherit;text-transform:inherit;outline:none}\n"], dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
15
14
  }
16
15
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiInputInline, decorators: [{
17
16
  type: Component,
18
- args: [{ selector: 'tui-input-inline', imports: [AsyncPipe, TuiLet], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *tuiLet=\"value$ | async as value\">\n <span\n class=\"t-before\"\n [textContent]=\"value\"\n ></span>\n\n @if (!value) {\n <span\n automation-id=\"tui-input-inline__placeholder\"\n class=\"t-placeholder\"\n >\n <ng-content />\n </span>\n }\n</ng-container>\n<ng-content select=\"input\" />\n", styles: ["tui-input-inline{position:relative;display:inline-block;white-space:nowrap;box-sizing:border-box}tui-input-inline>.t-before{padding-inline-end:.02em;margin-inline-start:1px;white-space:pre;visibility:hidden}tui-input-inline>.t-placeholder{display:inline-block;min-inline-size:1px;margin-inline-start:-1px}tui-input-inline>input{position:absolute;top:0;left:0;background-color:transparent;padding:inherit;font:inherit;color:inherit;box-sizing:border-box;inline-size:100%;block-size:100%;border-width:0;text-align:inherit;letter-spacing:inherit;text-indent:inherit;text-transform:inherit;outline:none}\n"] }]
17
+ args: [{ selector: 'tui-input-inline', imports: [AsyncPipe], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "@let value = value$ | async;\n<span\n class=\"t-before\"\n [textContent]=\"value\"\n></span>\n\n@if (!value) {\n <span\n automation-id=\"tui-input-inline__placeholder\"\n class=\"t-placeholder\"\n >\n <ng-content />\n </span>\n}\n<ng-content select=\"input\" />\n", styles: ["tui-input-inline{position:relative;display:inline-block;white-space:nowrap;box-sizing:border-box}tui-input-inline>.t-before{padding-inline-end:.02em;margin-inline-start:1px;white-space:pre;visibility:hidden}tui-input-inline>.t-placeholder{display:inline-block;min-inline-size:1px;margin-inline-start:-1px}tui-input-inline>input{position:absolute;top:0;left:0;background-color:transparent;padding:inherit;font:inherit;color:inherit;box-sizing:border-box;inline-size:100%;block-size:100%;border-width:0;text-align:inherit;letter-spacing:inherit;text-indent:inherit;text-transform:inherit;outline:none}\n"] }]
19
18
  }], propDecorators: { control: [{
20
19
  type: ContentChild,
21
20
  args: [NgControl]
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-kit-components-input-inline.mjs","sources":["../../../projects/kit/components/input-inline/input-inline.component.ts","../../../projects/kit/components/input-inline/input-inline.template.html","../../../projects/kit/components/input-inline/taiga-ui-kit-components-input-inline.ts"],"sourcesContent":["import {AsyncPipe} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport {NgControl} from '@angular/forms';\nimport {TuiLet} from '@taiga-ui/cdk/directives/let';\nimport {tuiControlValue} from '@taiga-ui/cdk/observables';\nimport {defer} from 'rxjs';\n\n@Component({\n selector: 'tui-input-inline',\n imports: [AsyncPipe, TuiLet],\n templateUrl: './input-inline.template.html',\n styleUrls: ['./input-inline.style.less'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiInputInline {\n @ContentChild(NgControl)\n private readonly control?: NgControl;\n\n protected readonly value$ = defer(() => tuiControlValue(this.control));\n}\n","<ng-container *tuiLet=\"value$ | async as value\">\n <span\n class=\"t-before\"\n [textContent]=\"value\"\n ></span>\n\n @if (!value) {\n <span\n automation-id=\"tui-input-inline__placeholder\"\n class=\"t-placeholder\"\n >\n <ng-content />\n </span>\n }\n</ng-container>\n<ng-content select=\"input\" />\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;MAoBa,cAAc,CAAA;AAR3B,IAAA,WAAA,GAAA;AAYuB,QAAA,IAAA,CAAA,MAAM,GAAG,KAAK,CAAC,MAAM,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACzE;+GALY,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAd,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,cAAc,iHACT,SAAS,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECrB3B,oYAgBA,EDFc,MAAA,EAAA,CAAA,2lBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,SAAS,8CAAE,MAAM,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,QAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;4FAMlB,cAAc,EAAA,UAAA,EAAA,CAAA;kBAR1B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,kBAAkB,EACnB,OAAA,EAAA,CAAC,SAAS,EAAE,MAAM,CAAC,EAGb,aAAA,EAAA,iBAAiB,CAAC,IAAI,EACpB,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,oYAAA,EAAA,MAAA,EAAA,CAAA,2lBAAA,CAAA,EAAA;8BAI9B,OAAO,EAAA,CAAA;sBADvB,YAAY;uBAAC,SAAS;;;AErB3B;;AAEG;;;;"}
1
+ {"version":3,"file":"taiga-ui-kit-components-input-inline.mjs","sources":["../../../projects/kit/components/input-inline/input-inline.component.ts","../../../projects/kit/components/input-inline/input-inline.template.html","../../../projects/kit/components/input-inline/taiga-ui-kit-components-input-inline.ts"],"sourcesContent":["import {AsyncPipe} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport {NgControl} from '@angular/forms';\nimport {tuiControlValue} from '@taiga-ui/cdk/observables';\nimport {defer} from 'rxjs';\n\n@Component({\n selector: 'tui-input-inline',\n imports: [AsyncPipe],\n templateUrl: './input-inline.template.html',\n styleUrl: './input-inline.style.less',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiInputInline {\n @ContentChild(NgControl)\n private readonly control?: NgControl;\n\n protected readonly value$ = defer(() => tuiControlValue(this.control));\n}\n","@let value = value$ | async;\n<span\n class=\"t-before\"\n [textContent]=\"value\"\n></span>\n\n@if (!value) {\n <span\n automation-id=\"tui-input-inline__placeholder\"\n class=\"t-placeholder\"\n >\n <ng-content />\n </span>\n}\n<ng-content select=\"input\" />\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;MAmBa,cAAc,CAAA;AAR3B,IAAA,WAAA,GAAA;AAYuB,QAAA,IAAA,CAAA,MAAM,GAAG,KAAK,CAAC,MAAM,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACzE;+GALY,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAd,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,cAAc,EACT,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,SAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,SAAS,ECpB3B,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,6SAeA,8oBDFc,SAAS,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;4FAMV,cAAc,EAAA,UAAA,EAAA,CAAA;kBAR1B,SAAS;+BACI,kBAAkB,EAAA,OAAA,EACnB,CAAC,SAAS,CAAC,EAAA,aAAA,EAGL,iBAAiB,CAAC,IAAI,EAAA,eAAA,EACpB,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,6SAAA,EAAA,MAAA,EAAA,CAAA,2lBAAA,CAAA,EAAA;8BAI9B,OAAO,EAAA,CAAA;sBADvB,YAAY;uBAAC,SAAS;;;AEpB3B;;AAEG;;;;"}
@@ -3,14 +3,13 @@ import * as i0 from '@angular/core';
3
3
  import { InjectionToken, inject, signal, effect, Directive } from '@angular/core';
4
4
  import { toSignal } from '@angular/core/rxjs-interop';
5
5
  import { TUI_IDENTITY_VALUE_TRANSFORMER, TuiControl, tuiAsControl, tuiValueTransformerFrom } from '@taiga-ui/cdk/classes';
6
- import { TUI_ALLOW_SIGNAL_WRITES } from '@taiga-ui/cdk/constants';
7
6
  import { RANGE_SEPARATOR_CHAR, TuiMonthRange } from '@taiga-ui/cdk/date-time';
8
7
  import * as i1 from '@taiga-ui/core/components/textfield';
9
- import { TuiTextfieldDirective, tuiInjectAuxiliary, tuiTextfieldIconBinding, TuiWithTextfield, TuiSelectLike } from '@taiga-ui/core/components/textfield';
8
+ import { TuiTextfieldDirective, tuiInjectAuxiliary, tuiTextfieldIcon, TuiWithTextfield, TuiSelectLike } from '@taiga-ui/core/components/textfield';
10
9
  import * as i2 from '@taiga-ui/core/directives/dropdown';
11
10
  import { tuiDropdownOpen, tuiDropdownEnabled, TuiDropdownAuto } from '@taiga-ui/core/directives/dropdown';
12
11
  import { TUI_MONTH_FORMATTER } from '@taiga-ui/kit/tokens';
13
- import { tuiProvideOptions } from '@taiga-ui/cdk/utils/miscellaneous';
12
+ import { tuiProvideOptions } from '@taiga-ui/cdk/utils/di';
14
13
  import { TUI_INPUT_DATE_DEFAULT_OPTIONS_NEW } from '@taiga-ui/kit/components/input-date';
15
14
  import { TUI_INPUT_MONTH_OPTIONS } from '@taiga-ui/kit/components/input-month';
16
15
 
@@ -30,7 +29,7 @@ class TuiInputMonthRangeDirective extends TuiControl {
30
29
  this.open = tuiDropdownOpen();
31
30
  this.intermediateValue = signal(null);
32
31
  this.calendar = tuiInjectAuxiliary((x) => x instanceof TuiCalendarMonth);
33
- this.icon = tuiTextfieldIconBinding(TUI_INPUT_MONTH_RANGE_OPTIONS);
32
+ this.icon = tuiTextfieldIcon(TUI_INPUT_MONTH_RANGE_OPTIONS);
34
33
  this.dropdownEnabled = tuiDropdownEnabled(this.interactive);
35
34
  this.valueEffect = effect(() => {
36
35
  const value = this.value();
@@ -39,7 +38,7 @@ class TuiInputMonthRangeDirective extends TuiControl {
39
38
  ? format(value.from) + RANGE_SEPARATOR_CHAR + format(value.to)
40
39
  : '';
41
40
  this.textfield.value.set(string);
42
- }, TUI_ALLOW_SIGNAL_WRITES);
41
+ });
43
42
  this.calendarInit = effect(() => {
44
43
  const calendar = this.calendar();
45
44
  if (calendar) {
@@ -48,11 +47,11 @@ class TuiInputMonthRangeDirective extends TuiControl {
48
47
  });
49
48
  this.calendarSync = effect(() => {
50
49
  this.calendar()?.value.set(this.intermediateValue() ?? this.value());
51
- }, TUI_ALLOW_SIGNAL_WRITES);
50
+ });
52
51
  // TODO: use linked signal (Angular 19+)
53
52
  this.resetIntermediateValue = effect(() => {
54
53
  this.intermediateValue.set(this.value() && null);
55
- }, TUI_ALLOW_SIGNAL_WRITES);
54
+ });
56
55
  this.onMonthClickEffect = effect((onCleanup) => {
57
56
  const subscription = this.calendar()?.monthClick.subscribe((month) => {
58
57
  const intermediateValue = this.intermediateValue();
@@ -80,7 +79,6 @@ class TuiInputMonthRangeDirective extends TuiControl {
80
79
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiInputMonthRangeDirective, decorators: [{
81
80
  type: Directive,
82
81
  args: [{
83
- standalone: true,
84
82
  selector: 'input[tuiInputMonthRange]',
85
83
  providers: [
86
84
  tuiAsControl(TuiInputMonthRangeDirective),
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-kit-components-input-month-range.mjs","sources":["../../../projects/kit/components/input-month-range/input-month-range.options.ts","../../../projects/kit/components/input-month-range/input-month-range.directive.ts","../../../projects/kit/components/input-month-range/input-month-range.ts","../../../projects/kit/components/input-month-range/taiga-ui-kit-components-input-month-range.ts"],"sourcesContent":["import {type FactoryProvider, inject, InjectionToken} from '@angular/core';\nimport {\n TUI_IDENTITY_VALUE_TRANSFORMER,\n type TuiValueTransformer,\n} from '@taiga-ui/cdk/classes';\nimport {type TuiMonthRange} from '@taiga-ui/cdk/date-time';\nimport {type TuiHandler} from '@taiga-ui/cdk/types';\nimport {tuiProvideOptions} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {type TuiSizeL, type TuiSizeS} from '@taiga-ui/core/types';\nimport {TUI_INPUT_DATE_DEFAULT_OPTIONS_NEW} from '@taiga-ui/kit/components/input-date';\nimport {TUI_INPUT_MONTH_OPTIONS} from '@taiga-ui/kit/components/input-month';\n\nexport interface TuiInputMonthRangeOptions {\n readonly icon: TuiHandler<TuiSizeL | TuiSizeS, string>;\n readonly valueTransformer: TuiValueTransformer<TuiMonthRange | null, any>;\n}\n\nexport const TUI_INPUT_MONTH_RANGE_OPTIONS =\n new InjectionToken<TuiInputMonthRangeOptions>(\n ngDevMode ? 'TUI_INPUT_MONTH_RANGE_OPTIONS' : '',\n {\n factory: () => ({\n ...inject(TUI_INPUT_MONTH_OPTIONS),\n valueTransformer: TUI_IDENTITY_VALUE_TRANSFORMER,\n }),\n },\n );\n\nexport const tuiInputMonthRangeOptionsProvider = (\n options: Partial<TuiInputMonthRangeOptions>,\n): FactoryProvider =>\n tuiProvideOptions(\n TUI_INPUT_MONTH_RANGE_OPTIONS,\n options,\n TUI_INPUT_DATE_DEFAULT_OPTIONS_NEW,\n );\n","import {Directive, effect, inject, signal} from '@angular/core';\nimport {toSignal} from '@angular/core/rxjs-interop';\nimport {tuiAsControl, TuiControl, tuiValueTransformerFrom} from '@taiga-ui/cdk/classes';\nimport {TUI_ALLOW_SIGNAL_WRITES} from '@taiga-ui/cdk/constants';\nimport {\n RANGE_SEPARATOR_CHAR,\n type TuiMonth,\n TuiMonthRange,\n} from '@taiga-ui/cdk/date-time';\nimport {\n tuiInjectAuxiliary,\n TuiSelectLike,\n TuiTextfieldDirective,\n tuiTextfieldIconBinding,\n TuiWithTextfield,\n} from '@taiga-ui/core/components/textfield';\nimport {\n TuiDropdownAuto,\n tuiDropdownEnabled,\n tuiDropdownOpen,\n} from '@taiga-ui/core/directives/dropdown';\nimport {TuiCalendarMonth} from '@taiga-ui/kit/components/calendar-month';\nimport {TUI_MONTH_FORMATTER} from '@taiga-ui/kit/tokens';\n\nimport {TUI_INPUT_MONTH_RANGE_OPTIONS} from './input-month-range.options';\n\n@Directive({\n standalone: true,\n selector: 'input[tuiInputMonthRange]',\n providers: [\n tuiAsControl(TuiInputMonthRangeDirective),\n tuiValueTransformerFrom(TUI_INPUT_MONTH_RANGE_OPTIONS),\n ],\n hostDirectives: [TuiWithTextfield, TuiSelectLike, TuiDropdownAuto],\n host: {\n '[disabled]': 'disabled()',\n '(input)': '$event.inputType?.includes(\"delete\") && clear()',\n },\n})\nexport class TuiInputMonthRangeDirective extends TuiControl<TuiMonthRange | null> {\n private readonly textfield = inject(TuiTextfieldDirective);\n private readonly formatter = toSignal(inject(TUI_MONTH_FORMATTER));\n private readonly open = tuiDropdownOpen();\n private readonly intermediateValue = signal<TuiMonth | null>(null);\n\n private readonly calendar = tuiInjectAuxiliary<TuiCalendarMonth>(\n (x) => x instanceof TuiCalendarMonth,\n );\n\n protected readonly icon = tuiTextfieldIconBinding(TUI_INPUT_MONTH_RANGE_OPTIONS);\n protected readonly dropdownEnabled = tuiDropdownEnabled(this.interactive);\n\n protected readonly valueEffect = effect(() => {\n const value = this.value();\n const format = this.formatter() || (() => '');\n const string = value\n ? format(value.from) + RANGE_SEPARATOR_CHAR + format(value.to)\n : '';\n\n this.textfield.value.set(string);\n }, TUI_ALLOW_SIGNAL_WRITES);\n\n protected readonly calendarInit = effect(() => {\n const calendar = this.calendar();\n\n if (calendar) {\n calendar.options.rangeMode = true;\n }\n });\n\n protected readonly calendarSync = effect(() => {\n this.calendar()?.value.set(this.intermediateValue() ?? this.value());\n }, TUI_ALLOW_SIGNAL_WRITES);\n\n // TODO: use linked signal (Angular 19+)\n protected readonly resetIntermediateValue = effect(() => {\n this.intermediateValue.set(this.value() && null);\n }, TUI_ALLOW_SIGNAL_WRITES);\n\n protected onMonthClickEffect = effect((onCleanup) => {\n const subscription = this.calendar()?.monthClick.subscribe((month) => {\n const intermediateValue = this.intermediateValue();\n\n if (!intermediateValue) {\n this.intermediateValue.set(month);\n } else {\n this.onChange(TuiMonthRange.sort(intermediateValue, month));\n this.open.set(false);\n }\n });\n\n onCleanup(() => subscription?.unsubscribe());\n });\n\n protected clear(): void {\n this.onChange(null);\n this.open.set(true);\n }\n}\n","import {TuiCalendarMonth} from '@taiga-ui/kit/components/calendar-month';\n\nimport {TuiInputMonthRangeDirective} from './input-month-range.directive';\n\nexport const TuiInputMonthRange = [\n TuiInputMonthRangeDirective,\n TuiCalendarMonth,\n] as const;\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-components-input-month-range.mjs","sources":["../../../projects/kit/components/input-month-range/input-month-range.options.ts","../../../projects/kit/components/input-month-range/input-month-range.directive.ts","../../../projects/kit/components/input-month-range/input-month-range.ts","../../../projects/kit/components/input-month-range/taiga-ui-kit-components-input-month-range.ts"],"sourcesContent":["import {type FactoryProvider, inject, InjectionToken} from '@angular/core';\nimport {\n TUI_IDENTITY_VALUE_TRANSFORMER,\n type TuiValueTransformer,\n} from '@taiga-ui/cdk/classes';\nimport {type TuiMonthRange} from '@taiga-ui/cdk/date-time';\nimport {type TuiHandler} from '@taiga-ui/cdk/types';\nimport {tuiProvideOptions} from '@taiga-ui/cdk/utils/di';\nimport {type TuiSizeL, type TuiSizeS} from '@taiga-ui/core/types';\nimport {TUI_INPUT_DATE_DEFAULT_OPTIONS_NEW} from '@taiga-ui/kit/components/input-date';\nimport {TUI_INPUT_MONTH_OPTIONS} from '@taiga-ui/kit/components/input-month';\n\nexport interface TuiInputMonthRangeOptions {\n readonly icon: TuiHandler<TuiSizeL | TuiSizeS, string>;\n readonly valueTransformer: TuiValueTransformer<TuiMonthRange | null, any>;\n}\n\nexport const TUI_INPUT_MONTH_RANGE_OPTIONS =\n new InjectionToken<TuiInputMonthRangeOptions>(\n ngDevMode ? 'TUI_INPUT_MONTH_RANGE_OPTIONS' : '',\n {\n factory: () => ({\n ...inject(TUI_INPUT_MONTH_OPTIONS),\n valueTransformer: TUI_IDENTITY_VALUE_TRANSFORMER,\n }),\n },\n );\n\nexport const tuiInputMonthRangeOptionsProvider = (\n options: Partial<TuiInputMonthRangeOptions>,\n): FactoryProvider =>\n tuiProvideOptions(\n TUI_INPUT_MONTH_RANGE_OPTIONS,\n options,\n TUI_INPUT_DATE_DEFAULT_OPTIONS_NEW,\n );\n","import {Directive, effect, inject, signal} from '@angular/core';\nimport {toSignal} from '@angular/core/rxjs-interop';\nimport {tuiAsControl, TuiControl, tuiValueTransformerFrom} from '@taiga-ui/cdk/classes';\nimport {\n RANGE_SEPARATOR_CHAR,\n type TuiMonth,\n TuiMonthRange,\n} from '@taiga-ui/cdk/date-time';\nimport {\n tuiInjectAuxiliary,\n TuiSelectLike,\n TuiTextfieldDirective,\n tuiTextfieldIcon,\n TuiWithTextfield,\n} from '@taiga-ui/core/components/textfield';\nimport {\n TuiDropdownAuto,\n tuiDropdownEnabled,\n tuiDropdownOpen,\n} from '@taiga-ui/core/directives/dropdown';\nimport {TuiCalendarMonth} from '@taiga-ui/kit/components/calendar-month';\nimport {TUI_MONTH_FORMATTER} from '@taiga-ui/kit/tokens';\n\nimport {TUI_INPUT_MONTH_RANGE_OPTIONS} from './input-month-range.options';\n\n@Directive({\n selector: 'input[tuiInputMonthRange]',\n providers: [\n tuiAsControl(TuiInputMonthRangeDirective),\n tuiValueTransformerFrom(TUI_INPUT_MONTH_RANGE_OPTIONS),\n ],\n hostDirectives: [TuiWithTextfield, TuiSelectLike, TuiDropdownAuto],\n host: {\n '[disabled]': 'disabled()',\n '(input)': '$event.inputType?.includes(\"delete\") && clear()',\n },\n})\nexport class TuiInputMonthRangeDirective extends TuiControl<TuiMonthRange | null> {\n private readonly textfield = inject(TuiTextfieldDirective);\n private readonly formatter = toSignal(inject(TUI_MONTH_FORMATTER));\n private readonly open = tuiDropdownOpen();\n private readonly intermediateValue = signal<TuiMonth | null>(null);\n\n private readonly calendar = tuiInjectAuxiliary<TuiCalendarMonth>(\n (x) => x instanceof TuiCalendarMonth,\n );\n\n protected readonly icon = tuiTextfieldIcon(TUI_INPUT_MONTH_RANGE_OPTIONS);\n protected readonly dropdownEnabled = tuiDropdownEnabled(this.interactive);\n\n protected readonly valueEffect = effect(() => {\n const value = this.value();\n const format = this.formatter() || (() => '');\n const string = value\n ? format(value.from) + RANGE_SEPARATOR_CHAR + format(value.to)\n : '';\n\n this.textfield.value.set(string);\n });\n\n protected readonly calendarInit = effect(() => {\n const calendar = this.calendar();\n\n if (calendar) {\n calendar.options.rangeMode = true;\n }\n });\n\n protected readonly calendarSync = effect(() => {\n this.calendar()?.value.set(this.intermediateValue() ?? this.value());\n });\n\n // TODO: use linked signal (Angular 19+)\n protected readonly resetIntermediateValue = effect(() => {\n this.intermediateValue.set(this.value() && null);\n });\n\n protected onMonthClickEffect = effect((onCleanup) => {\n const subscription = this.calendar()?.monthClick.subscribe((month) => {\n const intermediateValue = this.intermediateValue();\n\n if (!intermediateValue) {\n this.intermediateValue.set(month);\n } else {\n this.onChange(TuiMonthRange.sort(intermediateValue, month));\n this.open.set(false);\n }\n });\n\n onCleanup(() => subscription?.unsubscribe());\n });\n\n protected clear(): void {\n this.onChange(null);\n this.open.set(true);\n }\n}\n","import {TuiCalendarMonth} from '@taiga-ui/kit/components/calendar-month';\n\nimport {TuiInputMonthRangeDirective} from './input-month-range.directive';\n\nexport const TuiInputMonthRange = [\n TuiInputMonthRangeDirective,\n TuiCalendarMonth,\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,17 +1,16 @@
1
1
  import { TuiCalendarMonth } from '@taiga-ui/kit/components/calendar-month';
2
2
  import * as i0 from '@angular/core';
3
3
  import { InjectionToken, inject, computed, effect, Directive, signal, Input, ChangeDetectionStrategy, ViewEncapsulation, Component } from '@angular/core';
4
- import { TUI_ALLOW_SIGNAL_WRITES } from '@taiga-ui/cdk/constants';
5
4
  import { TUI_FIRST_DAY, TUI_LAST_DAY, TuiMonth } from '@taiga-ui/cdk/date-time';
6
5
  import * as i1 from '@taiga-ui/core/components/textfield';
7
- import { TuiTextfieldDirective, tuiTextfieldIconBinding, tuiInjectAuxiliary, TuiWithNativePicker, TuiWithTextfield, TuiSelectLike, TuiTextfieldContent } from '@taiga-ui/core/components/textfield';
6
+ import { TuiTextfieldDirective, tuiTextfieldIcon, tuiInjectAuxiliary, TuiWithNativePicker, TuiWithTextfield, TuiSelectLike, TuiTextfieldContent } from '@taiga-ui/core/components/textfield';
8
7
  import { toSignal } from '@angular/core/rxjs-interop';
9
8
  import { TUI_IDENTITY_VALUE_TRANSFORMER, TuiControl, tuiAsControl, tuiValueTransformerFrom } from '@taiga-ui/cdk/classes';
10
9
  import { TUI_IS_MOBILE } from '@taiga-ui/cdk/tokens';
11
10
  import * as i2 from '@taiga-ui/core/directives/dropdown';
12
11
  import { tuiDropdownOpen, tuiDropdownEnabled, TuiDropdownAuto } from '@taiga-ui/core/directives/dropdown';
13
12
  import { TUI_MONTH_FORMATTER } from '@taiga-ui/kit/tokens';
14
- import { tuiProvideOptions } from '@taiga-ui/cdk/utils/miscellaneous';
13
+ import { tuiProvideOptions } from '@taiga-ui/cdk/utils/di';
15
14
  import { TUI_INPUT_DATE_OPTIONS_NEW, TUI_INPUT_DATE_DEFAULT_OPTIONS_NEW } from '@taiga-ui/kit/components/input-date';
16
15
 
17
16
  /**
@@ -35,14 +34,14 @@ class TuiInputMonthDirective extends TuiControl {
35
34
  this.textfield = inject(TuiTextfieldDirective);
36
35
  this.formatter = toSignal(inject(TUI_MONTH_FORMATTER));
37
36
  this.open = tuiDropdownOpen();
38
- this.icon = tuiTextfieldIconBinding(TUI_INPUT_MONTH_OPTIONS);
37
+ this.icon = tuiTextfieldIcon(TUI_INPUT_MONTH_OPTIONS);
39
38
  this.dropdownEnabled = tuiDropdownEnabled(computed(() => !this.native && this.interactive()));
40
39
  this.valueEffect = effect(() => {
41
40
  this.textfield.value.set(this.formatter()?.(this.value()) || '');
42
- }, TUI_ALLOW_SIGNAL_WRITES);
41
+ });
43
42
  this.calendarIn = effect(() => {
44
43
  this.calendar()?.value.set(this.value());
45
- }, TUI_ALLOW_SIGNAL_WRITES);
44
+ });
46
45
  this.calendarOut = effect((onCleanup) => {
47
46
  const subscription = this.calendar()?.monthClick.subscribe((month) => {
48
47
  this.onChange(month);
@@ -66,7 +65,6 @@ class TuiInputMonthDirective extends TuiControl {
66
65
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiInputMonthDirective, decorators: [{
67
66
  type: Directive,
68
67
  args: [{
69
- standalone: true,
70
68
  selector: 'input[tuiInputMonth]',
71
69
  providers: [
72
70
  tuiAsControl(TuiInputMonthDirective),
@@ -91,7 +89,7 @@ class TuiInputMonthComponent {
91
89
  calendar.min.set(this.min() ?? TUI_FIRST_DAY); // TODO(v5): remove TUI_FIRST_DAY fallback
92
90
  calendar.max.set(this.max() ?? TUI_LAST_DAY); // TODO(v5): remove TUI_LAST_DAY fallback
93
91
  }
94
- }, TUI_ALLOW_SIGNAL_WRITES);
92
+ });
95
93
  }
96
94
  // TODO(v5): use signal inputs
97
95
  set minSetter(x) {
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-kit-components-input-month.mjs","sources":["../../../projects/kit/components/input-month/input-month.options.ts","../../../projects/kit/components/input-month/input-month.directive.ts","../../../projects/kit/components/input-month/input-month.component.ts","../../../projects/kit/components/input-month/input-month.template.html","../../../projects/kit/components/input-month/input-month.ts","../../../projects/kit/components/input-month/taiga-ui-kit-components-input-month.ts"],"sourcesContent":["import {type FactoryProvider, inject, InjectionToken} from '@angular/core';\nimport {\n TUI_IDENTITY_VALUE_TRANSFORMER,\n type TuiValueTransformer,\n} from '@taiga-ui/cdk/classes';\nimport {type TuiMonth} from '@taiga-ui/cdk/date-time';\nimport {type TuiHandler} from '@taiga-ui/cdk/types';\nimport {tuiProvideOptions} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {type TuiSizeL, type TuiSizeS} from '@taiga-ui/core/types';\nimport {\n TUI_INPUT_DATE_DEFAULT_OPTIONS_NEW,\n TUI_INPUT_DATE_OPTIONS_NEW,\n} from '@taiga-ui/kit/components/input-date';\n\nexport interface TuiInputMonthOptions {\n readonly icon: TuiHandler<TuiSizeL | TuiSizeS, string>;\n readonly valueTransformer: TuiValueTransformer<TuiMonth | null, any>;\n}\n\n/**\n * @deprecated remove in v5\n */\nexport const TUI_INPUT_MONTH_DEFAULT_OPTIONS: TuiInputMonthOptions = {\n icon: () => '@tui.calendar',\n valueTransformer: TUI_IDENTITY_VALUE_TRANSFORMER,\n};\n\nexport const TUI_INPUT_MONTH_OPTIONS = new InjectionToken<TuiInputMonthOptions>(\n ngDevMode ? 'TUI_INPUT_MONTH_OPTIONS' : '',\n {\n factory: () => ({\n ...inject(TUI_INPUT_DATE_OPTIONS_NEW),\n valueTransformer: TUI_IDENTITY_VALUE_TRANSFORMER,\n }),\n },\n);\n\nexport const tuiInputMonthOptionsProvider = (\n options: Partial<TuiInputMonthOptions>,\n): FactoryProvider =>\n tuiProvideOptions(\n TUI_INPUT_MONTH_OPTIONS,\n options,\n TUI_INPUT_DATE_DEFAULT_OPTIONS_NEW,\n );\n","import {computed, Directive, effect, inject} from '@angular/core';\nimport {toSignal} from '@angular/core/rxjs-interop';\nimport {tuiAsControl, TuiControl, tuiValueTransformerFrom} from '@taiga-ui/cdk/classes';\nimport {TUI_ALLOW_SIGNAL_WRITES} from '@taiga-ui/cdk/constants';\nimport {type TuiMonth} from '@taiga-ui/cdk/date-time';\nimport {TUI_IS_MOBILE} from '@taiga-ui/cdk/tokens';\nimport {\n tuiInjectAuxiliary,\n TuiSelectLike,\n TuiTextfieldDirective,\n tuiTextfieldIconBinding,\n TuiWithNativePicker,\n TuiWithTextfield,\n} from '@taiga-ui/core/components/textfield';\nimport {\n TuiDropdownAuto,\n tuiDropdownEnabled,\n tuiDropdownOpen,\n} from '@taiga-ui/core/directives/dropdown';\nimport {TuiCalendarMonth} from '@taiga-ui/kit/components/calendar-month';\nimport {TUI_MONTH_FORMATTER} from '@taiga-ui/kit/tokens';\n\nimport {TUI_INPUT_MONTH_OPTIONS} from './input-month.options';\n\n@Directive({\n standalone: true,\n selector: 'input[tuiInputMonth]',\n providers: [\n tuiAsControl(TuiInputMonthDirective),\n tuiValueTransformerFrom(TUI_INPUT_MONTH_OPTIONS),\n ],\n hostDirectives: [TuiWithTextfield, TuiSelectLike, TuiDropdownAuto],\n host: {\n '[disabled]': 'disabled()',\n '(input)': '$event.inputType?.includes(\"delete\") && clear()',\n },\n})\nexport class TuiInputMonthDirective extends TuiControl<TuiMonth | null> {\n private readonly textfield = inject(TuiTextfieldDirective);\n private readonly formatter = toSignal(inject(TUI_MONTH_FORMATTER));\n private readonly open = tuiDropdownOpen();\n\n protected readonly icon = tuiTextfieldIconBinding(TUI_INPUT_MONTH_OPTIONS);\n protected readonly dropdownEnabled = tuiDropdownEnabled(\n computed(() => !this.native && this.interactive()),\n );\n\n protected readonly valueEffect = effect(() => {\n this.textfield.value.set(this.formatter()?.(this.value()) || '');\n }, TUI_ALLOW_SIGNAL_WRITES);\n\n protected readonly calendarIn = effect(() => {\n this.calendar()?.value.set(this.value());\n }, TUI_ALLOW_SIGNAL_WRITES);\n\n protected readonly calendarOut = effect((onCleanup) => {\n const subscription = this.calendar()?.monthClick.subscribe((month) => {\n this.onChange(month);\n this.open.set(false);\n });\n\n onCleanup(() => subscription?.unsubscribe());\n });\n\n public readonly calendar = tuiInjectAuxiliary<TuiCalendarMonth>(\n (x) => x instanceof TuiCalendarMonth,\n );\n\n public readonly native =\n !!inject(TuiWithNativePicker, {optional: true}) && inject(TUI_IS_MOBILE);\n\n protected clear(): void {\n this.onChange(null);\n this.open.set(this.dropdownEnabled());\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n effect,\n inject,\n Input,\n signal,\n ViewEncapsulation,\n} from '@angular/core';\nimport {TUI_ALLOW_SIGNAL_WRITES} from '@taiga-ui/cdk/constants';\nimport {TUI_FIRST_DAY, TUI_LAST_DAY, TuiMonth} from '@taiga-ui/cdk/date-time';\nimport {\n TuiTextfieldContent,\n TuiWithNativePicker,\n} from '@taiga-ui/core/components/textfield';\n\nimport {TuiInputMonthDirective} from './input-month.directive';\n\n@Component({\n selector: 'input[tuiInputMonth][type=\"month\"]',\n imports: [TuiTextfieldContent],\n templateUrl: './input-month.template.html',\n styleUrls: ['./input-month.style.less'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n hostDirectives: [TuiWithNativePicker],\n host: {\n ngSkipHydration: 'true',\n },\n})\nexport class TuiInputMonthComponent {\n protected readonly host = inject(TuiInputMonthDirective);\n protected readonly min = signal<TuiMonth | null>(null);\n protected readonly max = signal<TuiMonth | null>(null);\n protected readonly calendarSync = effect(() => {\n const calendar = this.host.calendar();\n\n if (calendar) {\n calendar.min.set(this.min() ?? TUI_FIRST_DAY); // TODO(v5): remove TUI_FIRST_DAY fallback\n calendar.max.set(this.max() ?? TUI_LAST_DAY); // TODO(v5): remove TUI_LAST_DAY fallback\n }\n }, TUI_ALLOW_SIGNAL_WRITES);\n\n // TODO(v5): use signal inputs\n @Input('min')\n public set minSetter(x: TuiMonth | null) {\n this.min.set(x);\n }\n\n // TODO(v5): use signal inputs\n @Input('max')\n public set maxSetter(x: TuiMonth | null) {\n this.max.set(x);\n }\n\n protected onInput(value: string): void {\n if (!value) {\n return this.host.onChange(null);\n }\n\n const [year = 0, month = 0] = value.split('-').map(Number);\n\n this.host.onChange(new TuiMonth(year, month - 1));\n }\n}\n","@if (host.native) {\n <input\n *tuiTextfieldContent\n type=\"month\"\n [max]=\"max()?.toJSON()\"\n [min]=\"min()?.toJSON()\"\n [value]=\"host.value()?.toJSON()\"\n (click.stop.zoneless)=\"(0)\"\n (input)=\"onInput($any($event.target).value)\"\n (pointerdown.stop.zoneless)=\"(0)\"\n />\n}\n","import {TuiCalendarMonth} from '@taiga-ui/kit/components/calendar-month';\n\nimport {TuiInputMonthComponent} from './input-month.component';\nimport {TuiInputMonthDirective} from './input-month.directive';\n\nexport const TuiInputMonth = [\n TuiInputMonthComponent,\n TuiInputMonthDirective,\n TuiCalendarMonth,\n] as const;\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-components-input-month.mjs","sources":["../../../projects/kit/components/input-month/input-month.options.ts","../../../projects/kit/components/input-month/input-month.directive.ts","../../../projects/kit/components/input-month/input-month.component.ts","../../../projects/kit/components/input-month/input-month.template.html","../../../projects/kit/components/input-month/input-month.ts","../../../projects/kit/components/input-month/taiga-ui-kit-components-input-month.ts"],"sourcesContent":["import {type FactoryProvider, inject, InjectionToken} from '@angular/core';\nimport {\n TUI_IDENTITY_VALUE_TRANSFORMER,\n type TuiValueTransformer,\n} from '@taiga-ui/cdk/classes';\nimport {type TuiMonth} from '@taiga-ui/cdk/date-time';\nimport {type TuiHandler} from '@taiga-ui/cdk/types';\nimport {tuiProvideOptions} from '@taiga-ui/cdk/utils/di';\nimport {type TuiSizeL, type TuiSizeS} from '@taiga-ui/core/types';\nimport {\n TUI_INPUT_DATE_DEFAULT_OPTIONS_NEW,\n TUI_INPUT_DATE_OPTIONS_NEW,\n} from '@taiga-ui/kit/components/input-date';\n\nexport interface TuiInputMonthOptions {\n readonly icon: TuiHandler<TuiSizeL | TuiSizeS, string>;\n readonly valueTransformer: TuiValueTransformer<TuiMonth | null, any>;\n}\n\n/**\n * @deprecated remove in v5\n */\nexport const TUI_INPUT_MONTH_DEFAULT_OPTIONS: TuiInputMonthOptions = {\n icon: () => '@tui.calendar',\n valueTransformer: TUI_IDENTITY_VALUE_TRANSFORMER,\n};\n\nexport const TUI_INPUT_MONTH_OPTIONS = new InjectionToken<TuiInputMonthOptions>(\n ngDevMode ? 'TUI_INPUT_MONTH_OPTIONS' : '',\n {\n factory: () => ({\n ...inject(TUI_INPUT_DATE_OPTIONS_NEW),\n valueTransformer: TUI_IDENTITY_VALUE_TRANSFORMER,\n }),\n },\n);\n\nexport const tuiInputMonthOptionsProvider = (\n options: Partial<TuiInputMonthOptions>,\n): FactoryProvider =>\n tuiProvideOptions(\n TUI_INPUT_MONTH_OPTIONS,\n options,\n TUI_INPUT_DATE_DEFAULT_OPTIONS_NEW,\n );\n","import {computed, Directive, effect, inject} from '@angular/core';\nimport {toSignal} from '@angular/core/rxjs-interop';\nimport {tuiAsControl, TuiControl, tuiValueTransformerFrom} from '@taiga-ui/cdk/classes';\nimport {type TuiMonth} from '@taiga-ui/cdk/date-time';\nimport {TUI_IS_MOBILE} from '@taiga-ui/cdk/tokens';\nimport {\n tuiInjectAuxiliary,\n TuiSelectLike,\n TuiTextfieldDirective,\n tuiTextfieldIcon,\n TuiWithNativePicker,\n TuiWithTextfield,\n} from '@taiga-ui/core/components/textfield';\nimport {\n TuiDropdownAuto,\n tuiDropdownEnabled,\n tuiDropdownOpen,\n} from '@taiga-ui/core/directives/dropdown';\nimport {TuiCalendarMonth} from '@taiga-ui/kit/components/calendar-month';\nimport {TUI_MONTH_FORMATTER} from '@taiga-ui/kit/tokens';\n\nimport {TUI_INPUT_MONTH_OPTIONS} from './input-month.options';\n\n@Directive({\n selector: 'input[tuiInputMonth]',\n providers: [\n tuiAsControl(TuiInputMonthDirective),\n tuiValueTransformerFrom(TUI_INPUT_MONTH_OPTIONS),\n ],\n hostDirectives: [TuiWithTextfield, TuiSelectLike, TuiDropdownAuto],\n host: {\n '[disabled]': 'disabled()',\n '(input)': '$event.inputType?.includes(\"delete\") && clear()',\n },\n})\nexport class TuiInputMonthDirective extends TuiControl<TuiMonth | null> {\n private readonly textfield = inject(TuiTextfieldDirective);\n private readonly formatter = toSignal(inject(TUI_MONTH_FORMATTER));\n private readonly open = tuiDropdownOpen();\n\n protected readonly icon = tuiTextfieldIcon(TUI_INPUT_MONTH_OPTIONS);\n protected readonly dropdownEnabled = tuiDropdownEnabled(\n computed(() => !this.native && this.interactive()),\n );\n\n protected readonly valueEffect = effect(() => {\n this.textfield.value.set(this.formatter()?.(this.value()) || '');\n });\n\n protected readonly calendarIn = effect(() => {\n this.calendar()?.value.set(this.value());\n });\n\n protected readonly calendarOut = effect((onCleanup) => {\n const subscription = this.calendar()?.monthClick.subscribe((month) => {\n this.onChange(month);\n this.open.set(false);\n });\n\n onCleanup(() => subscription?.unsubscribe());\n });\n\n public readonly calendar = tuiInjectAuxiliary<TuiCalendarMonth>(\n (x) => x instanceof TuiCalendarMonth,\n );\n\n public readonly native =\n !!inject(TuiWithNativePicker, {optional: true}) && inject(TUI_IS_MOBILE);\n\n protected clear(): void {\n this.onChange(null);\n this.open.set(this.dropdownEnabled());\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n effect,\n inject,\n Input,\n signal,\n ViewEncapsulation,\n} from '@angular/core';\nimport {TUI_FIRST_DAY, TUI_LAST_DAY, TuiMonth} from '@taiga-ui/cdk/date-time';\nimport {\n TuiTextfieldContent,\n TuiWithNativePicker,\n} from '@taiga-ui/core/components/textfield';\n\nimport {TuiInputMonthDirective} from './input-month.directive';\n\n@Component({\n selector: 'input[tuiInputMonth][type=\"month\"]',\n imports: [TuiTextfieldContent],\n templateUrl: './input-month.template.html',\n styleUrl: './input-month.style.less',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n hostDirectives: [TuiWithNativePicker],\n host: {\n ngSkipHydration: 'true',\n },\n})\nexport class TuiInputMonthComponent {\n protected readonly host = inject(TuiInputMonthDirective);\n protected readonly min = signal<TuiMonth | null>(null);\n protected readonly max = signal<TuiMonth | null>(null);\n protected readonly calendarSync = effect(() => {\n const calendar = this.host.calendar();\n\n if (calendar) {\n calendar.min.set(this.min() ?? TUI_FIRST_DAY); // TODO(v5): remove TUI_FIRST_DAY fallback\n calendar.max.set(this.max() ?? TUI_LAST_DAY); // TODO(v5): remove TUI_LAST_DAY fallback\n }\n });\n\n // TODO(v5): use signal inputs\n @Input('min')\n public set minSetter(x: TuiMonth | null) {\n this.min.set(x);\n }\n\n // TODO(v5): use signal inputs\n @Input('max')\n public set maxSetter(x: TuiMonth | null) {\n this.max.set(x);\n }\n\n protected onInput(value: string): void {\n if (!value) {\n return this.host.onChange(null);\n }\n\n const [year = 0, month = 0] = value.split('-').map(Number);\n\n this.host.onChange(new TuiMonth(year, month - 1));\n }\n}\n","@if (host.native) {\n <input\n *tuiTextfieldContent\n type=\"month\"\n [max]=\"max()?.toJSON()\"\n [min]=\"min()?.toJSON()\"\n [value]=\"host.value()?.toJSON()\"\n (click.stop.zoneless)=\"(0)\"\n (input)=\"onInput($any($event.target).value)\"\n (pointerdown.stop.zoneless)=\"(0)\"\n />\n}\n","import {TuiCalendarMonth} from '@taiga-ui/kit/components/calendar-month';\n\nimport {TuiInputMonthComponent} from './input-month.component';\nimport {TuiInputMonthDirective} from './input-month.directive';\n\nexport const TuiInputMonth = [\n TuiInputMonthComponent,\n TuiInputMonthDirective,\n TuiCalendarMonth,\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,24 +1,23 @@
1
1
  import * as i0 from '@angular/core';
2
- import { inject, signal, computed, effect, untracked, Input, Directive, ChangeDetectionStrategy, ViewEncapsulation, Component } from '@angular/core';
3
- import { toSignal, takeUntilDestroyed } from '@angular/core/rxjs-interop';
2
+ import { inject, computed, effect, input, untracked, Directive, signal, Input, ChangeDetectionStrategy, ViewEncapsulation, Component } from '@angular/core';
4
3
  import * as i2 from '@maskito/angular';
5
4
  import { MaskitoDirective } from '@maskito/angular';
6
5
  import { maskitoTransform } from '@maskito/core';
7
6
  import { maskitoParseNumber, maskitoNumberOptionsGenerator, maskitoCaretGuard } from '@maskito/kit';
8
7
  import { TuiControl, tuiAsControl, tuiValueTransformerFrom, TuiValueTransformer } from '@taiga-ui/cdk/classes';
9
- import { TUI_ALLOW_SIGNAL_WRITES, CHAR_MINUS, CHAR_HYPHEN } from '@taiga-ui/cdk/constants';
8
+ import { CHAR_MINUS, CHAR_HYPHEN } from '@taiga-ui/cdk/constants';
10
9
  import { TUI_IS_IOS } from '@taiga-ui/cdk/tokens';
11
10
  import { tuiInjectElement } from '@taiga-ui/cdk/utils/dom';
12
11
  import { tuiIsSafeToRound, tuiRound, tuiClamp } from '@taiga-ui/cdk/utils/math';
13
12
  import * as i1 from '@taiga-ui/core/components/textfield';
14
13
  import { TuiTextfieldDirective, TuiWithTextfield, TUI_TEXTFIELD_OPTIONS, TuiTextfieldContent } from '@taiga-ui/core/components/textfield';
15
- import { TUI_NUMBER_FORMAT, TUI_DEFAULT_NUMBER_FORMAT } from '@taiga-ui/core/tokens';
14
+ import { TUI_NUMBER_FORMAT } from '@taiga-ui/core/tokens';
16
15
  import { tuiFormatNumber, tuiGetFractionPartPadded } from '@taiga-ui/core/utils/format';
17
16
  import { tuiMaskito } from '@taiga-ui/kit/utils';
18
- import { tuiCreateOptions } from '@taiga-ui/cdk/utils/di';
19
- import { tuiProvide } from '@taiga-ui/cdk/utils/miscellaneous';
17
+ import { tuiCreateOptions, tuiProvide } from '@taiga-ui/cdk/utils/di';
20
18
  import { TUI_FLOATING_PRECISION } from '@taiga-ui/kit/components/slider';
21
19
  import { DOCUMENT } from '@angular/common';
20
+ import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
22
21
  import { TuiButton } from '@taiga-ui/core/components/button';
23
22
  import { Subject, merge, fromEvent, switchMap, timer, expand, map, takeUntil } from 'rxjs';
24
23
 
@@ -43,11 +42,7 @@ class TuiInputNumberDirective extends TuiControl {
43
42
  this.options = inject(TUI_INPUT_NUMBER_OPTIONS);
44
43
  this.textfield = inject(TuiTextfieldDirective);
45
44
  this.isIOS = inject(TUI_IS_IOS);
46
- this.minRaw = signal(this.options.min);
47
- this.maxRaw = signal(this.options.max);
48
- this.numberFormat = toSignal(inject(TUI_NUMBER_FORMAT), {
49
- initialValue: TUI_DEFAULT_NUMBER_FORMAT,
50
- });
45
+ this.numberFormat = inject(TUI_NUMBER_FORMAT);
51
46
  this.formatted = computed(() => maskitoParseNumber(this.textfield.value(), this.numberFormat()));
52
47
  this.precision = computed((precision = this.numberFormat().precision) => Number.isNaN(precision) ? 2 : precision);
53
48
  this.unfinished = computed((value = this.formatted()) => value < 0 ? value > this.max() : value < this.min());
@@ -56,11 +51,11 @@ class TuiInputNumberDirective extends TuiControl {
56
51
  this.inputMode = computed(() => {
57
52
  if (this.isIOS) {
58
53
  return this.min() < 0
59
- ? 'text' // iPhone does not have minus sign if inputMode equals to 'numeric' / 'decimal'
54
+ ? 'text' // iPhone does not have minus sign if inputMode is equal to 'numeric' / 'decimal'
60
55
  : 'decimal';
61
56
  }
62
57
  /**
63
- * Samsung Keyboard does not minus sign for `inputmode=decimal`
58
+ * Samsung Keyboard does not have minus sign for `inputmode=decimal`
64
59
  * @see https://github.com/taiga-family/taiga-ui/issues/11061#issuecomment-2939103792
65
60
  */
66
61
  return 'numeric';
@@ -70,7 +65,8 @@ class TuiInputNumberDirective extends TuiControl {
70
65
  const decimalPart = !!this.precision() && this.textfield.value().includes(decimalSeparator);
71
66
  const precision = decimalPart ? Math.min(this.precision() + 1, 20) : 0;
72
67
  const takeThousand = thousandSeparator.repeat(5).length;
73
- return DEFAULT_MAX_LENGTH + precision + takeThousand;
68
+ const affixes = this.prefix().length + this.postfix().length;
69
+ return DEFAULT_MAX_LENGTH + precision + takeThousand + affixes;
74
70
  });
75
71
  this.onChangeEffect = effect(() => {
76
72
  const value = this.formatted();
@@ -85,7 +81,7 @@ class TuiInputNumberDirective extends TuiControl {
85
81
  return;
86
82
  }
87
83
  this.onChange(value);
88
- }, TUI_ALLOW_SIGNAL_WRITES);
84
+ });
89
85
  this.maskInitialCalibrationEffect = effect(() => {
90
86
  const options = maskitoNumberOptionsGenerator({
91
87
  ...this.maskParams,
@@ -93,25 +89,19 @@ class TuiInputNumberDirective extends TuiControl {
93
89
  max: Number.MAX_SAFE_INTEGER,
94
90
  });
95
91
  this.textfield.value.update((x) => maskitoTransform(x, options));
96
- }, TUI_ALLOW_SIGNAL_WRITES);
92
+ });
97
93
  this.min = computed(() => Math.min(this.minRaw(), this.maxRaw()));
98
94
  this.max = computed(() => Math.max(this.minRaw(), this.maxRaw()));
99
- this.prefix = signal(this.options.prefix);
100
- this.postfix = signal(this.options.postfix);
101
- }
102
- set minSetter(x) {
103
- this.minRaw.set(this.transformer.fromControlValue(x ?? this.options.min));
104
- }
105
- set maxSetter(x) {
106
- this.maxRaw.set(this.transformer.fromControlValue(x ?? this.options.max));
107
- }
108
- // TODO(v5): replace with signal input
109
- set prefixSetter(x) {
110
- this.prefix.set(x);
111
- }
112
- // TODO(v5): replace with signal input
113
- set postfixSetter(x) {
114
- this.postfix.set(x);
95
+ this.prefix = input(this.options.prefix);
96
+ this.postfix = input(this.options.postfix);
97
+ this.minRaw = input(this.options.min, {
98
+ alias: 'min',
99
+ transform: (x) => this.transformer.fromControlValue(x ?? this.options.min),
100
+ });
101
+ this.maxRaw = input(this.options.max, {
102
+ alias: 'max',
103
+ transform: (x) => this.transformer.fromControlValue(x ?? this.options.max),
104
+ });
115
105
  }
116
106
  writeValue(value) {
117
107
  const reset = this.control.pristine && this.control.untouched && !value;
@@ -176,7 +166,7 @@ class TuiInputNumberDirective extends TuiControl {
176
166
  };
177
167
  }
178
168
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiInputNumberDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
179
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.15", type: TuiInputNumberDirective, isStandalone: true, selector: "input[tuiInputNumber]", inputs: { minSetter: ["min", "minSetter"], maxSetter: ["max", "maxSetter"], prefixSetter: ["prefix", "prefixSetter"], postfixSetter: ["postfix", "postfixSetter"] }, host: { listeners: { "focusout": "setValue(transformer.fromControlValue(control.value))", "focus": "onFocus()" }, properties: { "disabled": "disabled()", "attr.inputMode": "inputMode()", "attr.maxLength": "element.maxLength > 0 ? element.maxLength : defaultMaxLength()" } }, providers: [
169
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.15", type: TuiInputNumberDirective, isStandalone: true, selector: "input[tuiInputNumber]", inputs: { prefix: { classPropertyName: "prefix", publicName: "prefix", isSignal: true, isRequired: false, transformFunction: null }, postfix: { classPropertyName: "postfix", publicName: "postfix", isSignal: true, isRequired: false, transformFunction: null }, minRaw: { classPropertyName: "minRaw", publicName: "min", isSignal: true, isRequired: false, transformFunction: null }, maxRaw: { classPropertyName: "maxRaw", publicName: "max", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "focusout": "setValue(transformer.fromControlValue(control.value))", "focus": "onFocus()" }, properties: { "disabled": "disabled()", "attr.inputMode": "inputMode()", "attr.maxLength": "element.maxLength > 0 ? element.maxLength : defaultMaxLength()" } }, providers: [
180
170
  tuiAsControl(TuiInputNumberDirective),
181
171
  tuiValueTransformerFrom(TUI_INPUT_NUMBER_OPTIONS),
182
172
  ], usesInheritance: true, hostDirectives: [{ directive: i1.TuiWithTextfield }, { directive: i2.MaskitoDirective }], ngImport: i0 }); }
@@ -184,7 +174,6 @@ class TuiInputNumberDirective extends TuiControl {
184
174
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiInputNumberDirective, decorators: [{
185
175
  type: Directive,
186
176
  args: [{
187
- standalone: true,
188
177
  selector: 'input[tuiInputNumber]',
189
178
  providers: [
190
179
  tuiAsControl(TuiInputNumberDirective),
@@ -199,23 +188,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
199
188
  '(focus)': 'onFocus()',
200
189
  },
201
190
  }]
202
- }], propDecorators: { minSetter: [{
203
- type: Input,
204
- args: ['min']
205
- }], maxSetter: [{
206
- type: Input,
207
- args: ['max']
208
- }], prefixSetter: [{
209
- type: Input,
210
- args: ['prefix']
211
- }], postfixSetter: [{
212
- type: Input,
213
- args: ['postfix']
214
- }] } });
191
+ }] });
215
192
 
216
193
  class TuiQuantumValueTransformerBase extends TuiValueTransformer {
217
- // eslint-disable-next-line @typescript-eslint/parameter-properties
218
- constructor(quantum = 1) {
194
+ // eslint-disable-next-line @typescript-eslint/parameter-properties,@angular-eslint/prefer-inject
195
+ constructor(quantum = 0) {
219
196
  super();
220
197
  this.quantum = quantum;
221
198
  this.parent = null;
@@ -226,6 +203,7 @@ class TuiQuantumValueTransformerBase extends TuiValueTransformer {
226
203
  toControlValue(internalValue) {
227
204
  const value = this.parent?.toControlValue(internalValue) ?? internalValue;
228
205
  return value != null &&
206
+ this.quantum > 0 &&
229
207
  tuiIsSafeToRound(value, tuiGetFractionPartPadded(this.quantum).length)
230
208
  ? tuiRound(Math.round(value / this.quantum) * this.quantum, TUI_FLOATING_PRECISION)
231
209
  : value;
@@ -238,17 +216,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
238
216
  }], ctorParameters: () => [{ type: undefined }] });
239
217
  class TuiQuantumValueTransformer extends TuiQuantumValueTransformerBase {
240
218
  constructor() {
241
- super(1);
219
+ super(0);
242
220
  this.parent = inject(TUI_INPUT_NUMBER_OPTIONS).valueTransformer;
243
221
  }
244
222
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiQuantumValueTransformer, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
245
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.15", type: TuiQuantumValueTransformer, isStandalone: true, selector: "[tuiInputNumber][quantum], [tuiInputSlider][quantum]", inputs: { quantum: "quantum" }, providers: [tuiProvide(TuiValueTransformer, TuiQuantumValueTransformer)], usesInheritance: true, ngImport: i0 }); }
223
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.15", type: TuiQuantumValueTransformer, isStandalone: true, selector: "[tuiInputNumber][quantum]", inputs: { quantum: "quantum" }, providers: [tuiProvide(TuiValueTransformer, TuiQuantumValueTransformer)], usesInheritance: true, ngImport: i0 }); }
246
224
  }
247
225
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiQuantumValueTransformer, decorators: [{
248
226
  type: Directive,
249
227
  args: [{
250
- standalone: true,
251
- selector: '[tuiInputNumber][quantum], [tuiInputSlider][quantum]',
228
+ selector: '[tuiInputNumber][quantum]',
252
229
  inputs: ['quantum'],
253
230
  providers: [tuiProvide(TuiValueTransformer, TuiQuantumValueTransformer)],
254
231
  }]
@@ -260,7 +237,6 @@ class TuiWithQuantumValueTransformer {
260
237
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiWithQuantumValueTransformer, decorators: [{
261
238
  type: Directive,
262
239
  args: [{
263
- standalone: true,
264
240
  hostDirectives: [
265
241
  {
266
242
  directive: TuiQuantumValueTransformer,