@taiga-ui/kit 4.52.0-canary.932d3ef → 4.52.0-canary.9c7b1f0

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 (511) 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-labeled.component.d.ts +3 -3
  9. package/components/avatar/avatar-outline.directive.d.ts +3 -3
  10. package/components/avatar/avatar-stack.component.d.ts +2 -2
  11. package/components/avatar/avatar.directive.d.ts +4 -3
  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.component.d.ts +2 -3
  15. package/components/badge-notification/badge-notification.options.d.ts +1 -3
  16. package/components/badged-content/badged-content.directive.d.ts +2 -3
  17. package/components/block/block.directive.d.ts +4 -4
  18. package/components/block/block.options.d.ts +2 -4
  19. package/components/breadcrumbs/breadcrumbs.component.d.ts +6 -7
  20. package/components/breadcrumbs/breadcrumbs.options.d.ts +1 -3
  21. package/components/button-loading/button-loading.component.d.ts +5 -5
  22. package/components/calendar-month/calendar-month.component.d.ts +1 -1
  23. package/components/calendar-range/calendar-range.component.d.ts +1 -3
  24. package/components/calendar-range/day-range-period.d.ts +2 -1
  25. package/components/carousel/carousel-autoscroll.directive.d.ts +1 -2
  26. package/components/carousel/carousel-scroll.directive.d.ts +1 -1
  27. package/components/carousel/carousel.component.d.ts +15 -18
  28. package/components/carousel/carousel.directive.d.ts +5 -4
  29. package/components/checkbox/checkbox.component.d.ts +7 -18
  30. package/components/checkbox/checkbox.options.d.ts +5 -9
  31. package/components/chip/chip.directive.d.ts +2 -4
  32. package/components/chip/chip.options.d.ts +1 -3
  33. package/components/combo-box/combo-box.d.ts +5 -0
  34. package/components/combo-box/combo-box.directive.d.ts +7 -9
  35. package/components/combo-box/index.d.ts +1 -0
  36. package/components/comment/comment.directive.d.ts +2 -2
  37. package/components/compass/compass.component.d.ts +2 -2
  38. package/components/confirm/confirm.component.d.ts +5 -3
  39. package/components/confirm/confirm.service.d.ts +3 -2
  40. package/{directives → components}/copy/copy.component.d.ts +4 -5
  41. package/{directives → components}/copy/copy.directive.d.ts +4 -6
  42. package/{directives → components}/copy/copy.options.d.ts +1 -1
  43. package/components/data-list-wrapper/data-list-group-wrapper.component.d.ts +4 -2
  44. package/components/data-list-wrapper/data-list-wrapper.component.d.ts +14 -22
  45. package/components/data-list-wrapper/{data-list-wrapper.module.d.ts → data-list-wrapper.d.ts} +1 -2
  46. package/components/data-list-wrapper/index.d.ts +1 -1
  47. package/components/drawer/drawer.component.d.ts +3 -4
  48. package/components/files/file/file.component.d.ts +16 -29
  49. package/components/files/file/file.options.d.ts +1 -1
  50. package/components/files/files/files.component.d.ts +7 -10
  51. package/components/files/input-files/input-files.component.d.ts +2 -2
  52. package/components/files/input-files/input-files.content.d.ts +7 -8
  53. package/components/files/input-files/input-files.directive.d.ts +2 -2
  54. package/components/files/input-files/input-files.options.d.ts +1 -3
  55. package/components/filter/filter.component.d.ts +9 -12
  56. package/components/fullscreen/fullscreen.component.d.ts +11 -0
  57. package/components/fullscreen/index.d.ts +1 -0
  58. package/components/index.d.ts +3 -5
  59. package/components/input-chip/input-chip.component.d.ts +9 -8
  60. package/components/input-chip/input-chip.d.ts +5 -1
  61. package/components/input-chip/input-chip.directive.d.ts +7 -12
  62. package/components/input-color/index.d.ts +1 -0
  63. package/components/input-color/input-color.component.d.ts +10 -14
  64. package/components/input-color/input-color.d.ts +5 -0
  65. package/components/input-date/input-date.component.d.ts +2 -2
  66. package/components/input-date/input-date.d.ts +4 -1
  67. package/components/input-date/input-date.directive.d.ts +21 -22
  68. package/components/input-date/input-date.options.d.ts +3 -3
  69. package/components/input-date-multi/input-date-multi.d.ts +1 -2
  70. package/components/input-date-multi/input-date-multi.directive.d.ts +10 -14
  71. package/components/input-date-range/input-date-range.d.ts +4 -1
  72. package/components/input-date-range/input-date-range.directive.d.ts +9 -10
  73. package/components/input-date-range/input-date-range.options.d.ts +2 -2
  74. package/components/input-date-time/input-date-time.d.ts +4 -1
  75. package/components/input-date-time/input-date-time.directive.d.ts +14 -14
  76. package/components/input-date-time/input-date-time.options.d.ts +2 -2
  77. package/components/input-inline/input-inline.component.d.ts +3 -2
  78. package/components/input-month/input-month.component.d.ts +3 -5
  79. package/components/input-month/input-month.d.ts +4 -1
  80. package/components/input-month/input-month.directive.d.ts +6 -5
  81. package/components/input-month-range/input-month-range.d.ts +4 -1
  82. package/components/input-month-range/input-month-range.directive.d.ts +6 -5
  83. package/components/input-number/index.d.ts +3 -0
  84. package/components/input-number/input-number.d.ts +7 -2
  85. package/components/input-number/input-number.directive.d.ts +11 -28
  86. package/components/input-number/input-number.options.d.ts +4 -7
  87. package/components/input-number/number-mask.directive.d.ts +42 -0
  88. package/components/input-number/quantum.directive.d.ts +10 -8
  89. package/components/input-number/step/input-number-step.component.d.ts +11 -10
  90. package/components/input-number/transformers/bigint.value-transformer.d.ts +11 -0
  91. package/components/input-number/transformers/number.value-transformer.d.ts +11 -0
  92. package/components/input-phone/index.d.ts +1 -0
  93. package/components/input-phone/input-phone.d.ts +5 -0
  94. package/components/input-phone/input-phone.directive.d.ts +12 -14
  95. package/components/input-phone-international/index.d.ts +1 -0
  96. package/components/input-phone-international/input-phone-international.component.d.ts +28 -36
  97. package/components/input-phone-international/input-phone-international.d.ts +5 -0
  98. package/components/input-phone-international/input-phone-international.options.d.ts +2 -3
  99. package/components/input-pin/index.d.ts +1 -0
  100. package/components/input-pin/input-pin.component.d.ts +6 -7
  101. package/components/input-pin/input-pin.d.ts +5 -0
  102. package/components/input-range/index.d.ts +0 -1
  103. package/components/input-range/input-range.component.d.ts +29 -62
  104. package/components/input-slider/input-slider.d.ts +4 -1
  105. package/components/input-slider/input-slider.directive.d.ts +6 -7
  106. package/components/input-time/input-time.component.d.ts +1 -3
  107. package/components/input-time/input-time.d.ts +4 -1
  108. package/components/input-time/input-time.directive.d.ts +9 -11
  109. package/components/input-year/input-year.d.ts +4 -1
  110. package/components/input-year/input-year.directive.d.ts +8 -10
  111. package/components/input-year/input-year.options.d.ts +2 -2
  112. package/components/items-with-more/items-with-more.component.d.ts +6 -6
  113. package/components/items-with-more/items-with-more.directive.d.ts +6 -6
  114. package/components/like/like.component.d.ts +4 -11
  115. package/components/like/like.options.d.ts +3 -4
  116. package/components/line-clamp/line-clamp-box.component.d.ts +3 -4
  117. package/components/line-clamp/line-clamp.component.d.ts +8 -10
  118. package/components/line-clamp/line-clamp.options.d.ts +1 -3
  119. package/components/multi-select/multi-select-group/multi-select-group.component.d.ts +6 -8
  120. package/components/multi-select/multi-select-native/multi-select-native.component.d.ts +5 -4
  121. package/components/multi-select/multi-select-option/multi-select-option.component.d.ts +1 -1
  122. package/components/notification-middle/notification-middle.component.d.ts +2 -2
  123. package/components/notification-middle/notification-middle.directive.d.ts +4 -3
  124. package/components/notification-middle/notification-middle.service.d.ts +7 -3
  125. package/components/pager/pager.component.d.ts +13 -13
  126. package/components/pagination/index.d.ts +1 -0
  127. package/components/pagination/pagination.component.d.ts +25 -54
  128. package/components/pagination/pagination.options.d.ts +7 -0
  129. package/components/pin/pin.directive.d.ts +2 -2
  130. package/components/preview/dialog/preview-dialog.component.d.ts +2 -2
  131. package/components/preview/dialog/preview-dialog.directive.d.ts +3 -3
  132. package/components/preview/dialog/preview-dialog.service.d.ts +5 -2
  133. package/components/preview/index.d.ts +1 -0
  134. package/components/preview/pagination/preview-pagination.component.d.ts +6 -10
  135. package/components/preview/preview.component.d.ts +6 -6
  136. package/components/preview/preview.d.ts +2 -1
  137. package/{tokens/preview-icons.d.ts → components/preview/preview.options.d.ts} +1 -3
  138. package/components/preview/zoom/preview-zoom.component.d.ts +11 -17
  139. package/components/progress/progress-bar/fixed-gradient/progress-fixed-gradient.directive.d.ts +1 -2
  140. package/components/progress/progress-bar/progress-bar.component.d.ts +3 -4
  141. package/components/progress/progress-bar/progress-color-segments.directive.d.ts +4 -4
  142. package/components/progress/progress-circle/progress-circle.component.d.ts +7 -11
  143. package/components/progress/progress-segmented/progress-segmented.directive.d.ts +2 -2
  144. package/components/progress/progress.options.d.ts +1 -3
  145. package/components/pulse/pulse.component.d.ts +2 -2
  146. package/components/push/push-alert.component.d.ts +4 -3
  147. package/components/push/push.component.d.ts +7 -8
  148. package/components/push/push.directive.d.ts +4 -6
  149. package/components/push/push.options.d.ts +5 -8
  150. package/components/push/push.service.d.ts +6 -2
  151. package/components/radio/radio.component.d.ts +8 -9
  152. package/components/radio/radio.directive.d.ts +2 -2
  153. package/components/radio/radio.options.d.ts +2 -5
  154. package/components/radio-list/radio-list.component.d.ts +11 -9
  155. package/components/range/range-change.directive.d.ts +1 -2
  156. package/components/range/range.component.d.ts +16 -25
  157. package/components/rating/rating.component.d.ts +5 -5
  158. package/components/rating/rating.options.d.ts +6 -6
  159. package/components/routable-dialog/generate-dialogable-route.d.ts +1 -1
  160. package/components/segmented/segmented.component.d.ts +4 -6
  161. package/components/segmented/segmented.directive.d.ts +6 -7
  162. package/components/select/native-select/native-select.component.d.ts +7 -8
  163. package/components/select/select.d.ts +4 -1
  164. package/components/select/select.directive.d.ts +4 -3
  165. package/components/slider/helpers/key-steps.d.ts +1 -2
  166. package/components/slider/helpers/slider-key-steps.directive.d.ts +15 -23
  167. package/components/slider/helpers/slider-readonly.directive.d.ts +2 -4
  168. package/components/slider/helpers/slider-thumb-label.component.d.ts +2 -4
  169. package/components/slider/slider.component.d.ts +4 -7
  170. package/components/slider/slider.options.d.ts +1 -6
  171. package/components/status/status.directive.d.ts +2 -2
  172. package/components/stepper/step.component.d.ts +14 -9
  173. package/components/stepper/stepper.component.d.ts +5 -12
  174. package/components/switch/switch.component.d.ts +8 -19
  175. package/components/switch/switch.options.d.ts +4 -8
  176. package/components/tabs/tabs-horizontal.directive.d.ts +4 -5
  177. package/components/tabs/tabs-vertical.directive.d.ts +2 -2
  178. package/components/tabs/tabs-with-more.component.d.ts +13 -17
  179. package/components/tabs/tabs.directive.d.ts +5 -7
  180. package/components/tabs/tabs.options.d.ts +1 -6
  181. package/components/textarea/index.d.ts +2 -1
  182. package/components/textarea/textarea.component.d.ts +10 -11
  183. package/components/textarea/textarea.d.ts +6 -0
  184. package/components/textarea/textarea.directive.d.ts +13 -0
  185. package/components/tiles/tile.component.d.ts +7 -10
  186. package/components/tiles/tile.service.d.ts +1 -1
  187. package/components/tiles/tiles.component.d.ts +4 -7
  188. package/components/toast/index.d.ts +5 -0
  189. package/components/toast/toast.component.d.ts +18 -0
  190. package/components/toast/toast.d.ts +3 -0
  191. package/components/toast/toast.directive.d.ts +7 -0
  192. package/components/toast/toast.options.d.ts +10 -0
  193. package/components/toast/toast.service.d.ts +17 -0
  194. package/components/tree/components/tree/tree.component.d.ts +7 -7
  195. package/components/tree/components/tree-item/tree-item.component.d.ts +1 -1
  196. package/components/tree/components/tree-item-content/tree-item-content.component.d.ts +8 -1
  197. package/components/tree/directives/tree-children.directive.d.ts +2 -2
  198. package/components/tree/directives/tree-controller.directive.d.ts +4 -5
  199. package/components/tree/directives/tree-item-controller.directive.d.ts +2 -2
  200. package/components/tree/directives/tree-node.directive.d.ts +5 -4
  201. package/components/tree/misc/tree.constants.d.ts +0 -3
  202. package/components/tree/misc/tree.tokens.d.ts +1 -6
  203. package/directives/appearance-proxy/appearance-proxy.directive.d.ts +10 -0
  204. package/directives/appearance-proxy/index.d.ts +1 -0
  205. package/directives/button-select/button-select.directive.d.ts +4 -4
  206. package/directives/chevron/chevron.directive.d.ts +2 -3
  207. package/directives/data-list-dropdown-manager/data-list-dropdown-manager.directive.d.ts +5 -5
  208. package/directives/fade/fade.directive.d.ts +6 -6
  209. package/directives/fluid-typography/fluid-typography.directive.d.ts +3 -6
  210. package/directives/fluid-typography/fluid-typography.options.d.ts +1 -3
  211. package/directives/highlight/highlight.directive.d.ts +4 -4
  212. package/directives/index.d.ts +1 -3
  213. package/directives/password/password.directive.d.ts +1 -1
  214. package/directives/present/present.directive.d.ts +2 -4
  215. package/directives/sensitive/sensitive.directive.d.ts +2 -2
  216. package/directives/shimmer/shimmer.directive.d.ts +3 -3
  217. package/directives/skeleton/skeleton.directive.d.ts +3 -3
  218. package/directives/tooltip/tooltip.directive.d.ts +3 -3
  219. package/directives/unfinished-validator/unfinished-validator.directive.d.ts +2 -2
  220. package/directives/unmask-handler/unmask-handler.directive.d.ts +3 -3
  221. package/fesm2022/taiga-ui-kit-components-accordion.mjs +69 -145
  222. package/fesm2022/taiga-ui-kit-components-accordion.mjs.map +1 -1
  223. package/fesm2022/taiga-ui-kit-components-action-bar.mjs +24 -40
  224. package/fesm2022/taiga-ui-kit-components-action-bar.mjs.map +1 -1
  225. package/fesm2022/taiga-ui-kit-components-avatar.mjs +54 -80
  226. package/fesm2022/taiga-ui-kit-components-avatar.mjs.map +1 -1
  227. package/fesm2022/taiga-ui-kit-components-badge-notification.mjs +11 -18
  228. package/fesm2022/taiga-ui-kit-components-badge-notification.mjs.map +1 -1
  229. package/fesm2022/taiga-ui-kit-components-badge.mjs +16 -27
  230. package/fesm2022/taiga-ui-kit-components-badge.mjs.map +1 -1
  231. package/fesm2022/taiga-ui-kit-components-badged-content.mjs +9 -12
  232. package/fesm2022/taiga-ui-kit-components-badged-content.mjs.map +1 -1
  233. package/fesm2022/taiga-ui-kit-components-block.mjs +20 -31
  234. package/fesm2022/taiga-ui-kit-components-block.mjs.map +1 -1
  235. package/fesm2022/taiga-ui-kit-components-breadcrumbs.mjs +19 -39
  236. package/fesm2022/taiga-ui-kit-components-breadcrumbs.mjs.map +1 -1
  237. package/fesm2022/taiga-ui-kit-components-button-loading.mjs +19 -27
  238. package/fesm2022/taiga-ui-kit-components-button-loading.mjs.map +1 -1
  239. package/fesm2022/taiga-ui-kit-components-calendar-month.mjs +6 -17
  240. package/fesm2022/taiga-ui-kit-components-calendar-month.mjs.map +1 -1
  241. package/fesm2022/taiga-ui-kit-components-calendar-range.mjs +25 -26
  242. package/fesm2022/taiga-ui-kit-components-calendar-range.mjs.map +1 -1
  243. package/fesm2022/taiga-ui-kit-components-carousel.mjs +70 -123
  244. package/fesm2022/taiga-ui-kit-components-carousel.mjs.map +1 -1
  245. package/fesm2022/taiga-ui-kit-components-checkbox.mjs +18 -76
  246. package/fesm2022/taiga-ui-kit-components-checkbox.mjs.map +1 -1
  247. package/fesm2022/taiga-ui-kit-components-chip.mjs +18 -34
  248. package/fesm2022/taiga-ui-kit-components-chip.mjs.map +1 -1
  249. package/fesm2022/taiga-ui-kit-components-combo-box.mjs +45 -50
  250. package/fesm2022/taiga-ui-kit-components-combo-box.mjs.map +1 -1
  251. package/fesm2022/taiga-ui-kit-components-comment.mjs +13 -20
  252. package/fesm2022/taiga-ui-kit-components-comment.mjs.map +1 -1
  253. package/fesm2022/taiga-ui-kit-components-compass.mjs +9 -11
  254. package/fesm2022/taiga-ui-kit-components-compass.mjs.map +1 -1
  255. package/fesm2022/taiga-ui-kit-components-confirm.mjs +14 -17
  256. package/fesm2022/taiga-ui-kit-components-confirm.mjs.map +1 -1
  257. package/fesm2022/taiga-ui-kit-components-copy.mjs +106 -0
  258. package/fesm2022/taiga-ui-kit-components-copy.mjs.map +1 -0
  259. package/fesm2022/taiga-ui-kit-components-data-list-wrapper.mjs +25 -78
  260. package/fesm2022/taiga-ui-kit-components-data-list-wrapper.mjs.map +1 -1
  261. package/fesm2022/taiga-ui-kit-components-drawer.mjs +15 -32
  262. package/fesm2022/taiga-ui-kit-components-drawer.mjs.map +1 -1
  263. package/fesm2022/taiga-ui-kit-components-files.mjs +118 -245
  264. package/fesm2022/taiga-ui-kit-components-files.mjs.map +1 -1
  265. package/fesm2022/taiga-ui-kit-components-filter.mjs +21 -34
  266. package/fesm2022/taiga-ui-kit-components-filter.mjs.map +1 -1
  267. package/fesm2022/taiga-ui-kit-components-fullscreen.mjs +44 -0
  268. package/fesm2022/taiga-ui-kit-components-fullscreen.mjs.map +1 -0
  269. package/fesm2022/taiga-ui-kit-components-input-chip.mjs +72 -81
  270. package/fesm2022/taiga-ui-kit-components-input-chip.mjs.map +1 -1
  271. package/fesm2022/taiga-ui-kit-components-input-color.mjs +30 -33
  272. package/fesm2022/taiga-ui-kit-components-input-color.mjs.map +1 -1
  273. package/fesm2022/taiga-ui-kit-components-input-date-multi.mjs +36 -53
  274. package/fesm2022/taiga-ui-kit-components-input-date-multi.mjs.map +1 -1
  275. package/fesm2022/taiga-ui-kit-components-input-date-range.mjs +37 -37
  276. package/fesm2022/taiga-ui-kit-components-input-date-range.mjs.map +1 -1
  277. package/fesm2022/taiga-ui-kit-components-input-date-time.mjs +42 -59
  278. package/fesm2022/taiga-ui-kit-components-input-date-time.mjs.map +1 -1
  279. package/fesm2022/taiga-ui-kit-components-input-date.mjs +58 -72
  280. package/fesm2022/taiga-ui-kit-components-input-date.mjs.map +1 -1
  281. package/fesm2022/taiga-ui-kit-components-input-inline.mjs +10 -13
  282. package/fesm2022/taiga-ui-kit-components-input-inline.mjs.map +1 -1
  283. package/fesm2022/taiga-ui-kit-components-input-month-range.mjs +30 -28
  284. package/fesm2022/taiga-ui-kit-components-input-month-range.mjs.map +1 -1
  285. package/fesm2022/taiga-ui-kit-components-input-month.mjs +43 -51
  286. package/fesm2022/taiga-ui-kit-components-input-month.mjs.map +1 -1
  287. package/fesm2022/taiga-ui-kit-components-input-number.mjs +270 -214
  288. package/fesm2022/taiga-ui-kit-components-input-number.mjs.map +1 -1
  289. package/fesm2022/taiga-ui-kit-components-input-phone-international.mjs +126 -159
  290. package/fesm2022/taiga-ui-kit-components-input-phone-international.mjs.map +1 -1
  291. package/fesm2022/taiga-ui-kit-components-input-phone.mjs +40 -46
  292. package/fesm2022/taiga-ui-kit-components-input-phone.mjs.map +1 -1
  293. package/fesm2022/taiga-ui-kit-components-input-pin.mjs +26 -24
  294. package/fesm2022/taiga-ui-kit-components-input-pin.mjs.map +1 -1
  295. package/fesm2022/taiga-ui-kit-components-input-range.mjs +68 -91
  296. package/fesm2022/taiga-ui-kit-components-input-range.mjs.map +1 -1
  297. package/fesm2022/taiga-ui-kit-components-input-slider.mjs +46 -50
  298. package/fesm2022/taiga-ui-kit-components-input-slider.mjs.map +1 -1
  299. package/fesm2022/taiga-ui-kit-components-input-time.mjs +64 -71
  300. package/fesm2022/taiga-ui-kit-components-input-time.mjs.map +1 -1
  301. package/fesm2022/taiga-ui-kit-components-input-year.mjs +33 -40
  302. package/fesm2022/taiga-ui-kit-components-input-year.mjs.map +1 -1
  303. package/fesm2022/taiga-ui-kit-components-items-with-more.mjs +50 -72
  304. package/fesm2022/taiga-ui-kit-components-items-with-more.mjs.map +1 -1
  305. package/fesm2022/taiga-ui-kit-components-like.mjs +40 -33
  306. package/fesm2022/taiga-ui-kit-components-like.mjs.map +1 -1
  307. package/fesm2022/taiga-ui-kit-components-line-clamp.mjs +38 -82
  308. package/fesm2022/taiga-ui-kit-components-line-clamp.mjs.map +1 -1
  309. package/fesm2022/taiga-ui-kit-components-message.mjs +9 -12
  310. package/fesm2022/taiga-ui-kit-components-message.mjs.map +1 -1
  311. package/fesm2022/taiga-ui-kit-components-multi-select.mjs +44 -60
  312. package/fesm2022/taiga-ui-kit-components-multi-select.mjs.map +1 -1
  313. package/fesm2022/taiga-ui-kit-components-notification-middle.mjs +38 -34
  314. package/fesm2022/taiga-ui-kit-components-notification-middle.mjs.map +1 -1
  315. package/fesm2022/taiga-ui-kit-components-pager.mjs +31 -45
  316. package/fesm2022/taiga-ui-kit-components-pager.mjs.map +1 -1
  317. package/fesm2022/taiga-ui-kit-components-pagination.mjs +75 -150
  318. package/fesm2022/taiga-ui-kit-components-pagination.mjs.map +1 -1
  319. package/fesm2022/taiga-ui-kit-components-pin.mjs +15 -19
  320. package/fesm2022/taiga-ui-kit-components-pin.mjs.map +1 -1
  321. package/fesm2022/taiga-ui-kit-components-preview.mjs +98 -158
  322. package/fesm2022/taiga-ui-kit-components-preview.mjs.map +1 -1
  323. package/fesm2022/taiga-ui-kit-components-progress.mjs +93 -117
  324. package/fesm2022/taiga-ui-kit-components-progress.mjs.map +1 -1
  325. package/fesm2022/taiga-ui-kit-components-pulse.mjs +7 -11
  326. package/fesm2022/taiga-ui-kit-components-pulse.mjs.map +1 -1
  327. package/fesm2022/taiga-ui-kit-components-push.mjs +54 -74
  328. package/fesm2022/taiga-ui-kit-components-push.mjs.map +1 -1
  329. package/fesm2022/taiga-ui-kit-components-radio-list.mjs +23 -35
  330. package/fesm2022/taiga-ui-kit-components-radio-list.mjs.map +1 -1
  331. package/fesm2022/taiga-ui-kit-components-radio.mjs +35 -41
  332. package/fesm2022/taiga-ui-kit-components-radio.mjs.map +1 -1
  333. package/fesm2022/taiga-ui-kit-components-range.mjs +42 -96
  334. package/fesm2022/taiga-ui-kit-components-range.mjs.map +1 -1
  335. package/fesm2022/taiga-ui-kit-components-rating.mjs +19 -28
  336. package/fesm2022/taiga-ui-kit-components-rating.mjs.map +1 -1
  337. package/fesm2022/taiga-ui-kit-components-routable-dialog.mjs +11 -7
  338. package/fesm2022/taiga-ui-kit-components-routable-dialog.mjs.map +1 -1
  339. package/fesm2022/taiga-ui-kit-components-segmented.mjs +32 -59
  340. package/fesm2022/taiga-ui-kit-components-segmented.mjs.map +1 -1
  341. package/fesm2022/taiga-ui-kit-components-select.mjs +81 -62
  342. package/fesm2022/taiga-ui-kit-components-select.mjs.map +1 -1
  343. package/fesm2022/taiga-ui-kit-components-slider.mjs +96 -122
  344. package/fesm2022/taiga-ui-kit-components-slider.mjs.map +1 -1
  345. package/fesm2022/taiga-ui-kit-components-status.mjs +12 -16
  346. package/fesm2022/taiga-ui-kit-components-status.mjs.map +1 -1
  347. package/fesm2022/taiga-ui-kit-components-stepper.mjs +61 -88
  348. package/fesm2022/taiga-ui-kit-components-stepper.mjs.map +1 -1
  349. package/fesm2022/taiga-ui-kit-components-switch.mjs +22 -64
  350. package/fesm2022/taiga-ui-kit-components-switch.mjs.map +1 -1
  351. package/fesm2022/taiga-ui-kit-components-tabs.mjs +96 -166
  352. package/fesm2022/taiga-ui-kit-components-tabs.mjs.map +1 -1
  353. package/fesm2022/taiga-ui-kit-components-textarea.mjs +62 -82
  354. package/fesm2022/taiga-ui-kit-components-textarea.mjs.map +1 -1
  355. package/fesm2022/taiga-ui-kit-components-tiles.mjs +38 -71
  356. package/fesm2022/taiga-ui-kit-components-tiles.mjs.map +1 -1
  357. package/fesm2022/taiga-ui-kit-components-toast.mjs +164 -0
  358. package/fesm2022/taiga-ui-kit-components-toast.mjs.map +1 -0
  359. package/fesm2022/taiga-ui-kit-components-tree.mjs +92 -127
  360. package/fesm2022/taiga-ui-kit-components-tree.mjs.map +1 -1
  361. package/fesm2022/taiga-ui-kit-components.mjs +3 -5
  362. package/fesm2022/taiga-ui-kit-components.mjs.map +1 -1
  363. package/fesm2022/taiga-ui-kit-directives-appearance-proxy.mjs +27 -0
  364. package/fesm2022/taiga-ui-kit-directives-appearance-proxy.mjs.map +1 -0
  365. package/fesm2022/taiga-ui-kit-directives-button-group.mjs +9 -12
  366. package/fesm2022/taiga-ui-kit-directives-button-group.mjs.map +1 -1
  367. package/fesm2022/taiga-ui-kit-directives-button-select.mjs +20 -19
  368. package/fesm2022/taiga-ui-kit-directives-button-select.mjs.map +1 -1
  369. package/fesm2022/taiga-ui-kit-directives-chevron.mjs +16 -22
  370. package/fesm2022/taiga-ui-kit-directives-chevron.mjs.map +1 -1
  371. package/fesm2022/taiga-ui-kit-directives-connected.mjs +9 -15
  372. package/fesm2022/taiga-ui-kit-directives-connected.mjs.map +1 -1
  373. package/fesm2022/taiga-ui-kit-directives-data-list-dropdown-manager.mjs +25 -53
  374. package/fesm2022/taiga-ui-kit-directives-data-list-dropdown-manager.mjs.map +1 -1
  375. package/fesm2022/taiga-ui-kit-directives-fade.mjs +28 -40
  376. package/fesm2022/taiga-ui-kit-directives-fade.mjs.map +1 -1
  377. package/fesm2022/taiga-ui-kit-directives-fluid-typography.mjs +14 -27
  378. package/fesm2022/taiga-ui-kit-directives-fluid-typography.mjs.map +1 -1
  379. package/fesm2022/taiga-ui-kit-directives-highlight.mjs +16 -21
  380. package/fesm2022/taiga-ui-kit-directives-highlight.mjs.map +1 -1
  381. package/fesm2022/taiga-ui-kit-directives-password.mjs +14 -16
  382. package/fesm2022/taiga-ui-kit-directives-password.mjs.map +1 -1
  383. package/fesm2022/taiga-ui-kit-directives-present.mjs +10 -18
  384. package/fesm2022/taiga-ui-kit-directives-present.mjs.map +1 -1
  385. package/fesm2022/taiga-ui-kit-directives-sensitive.mjs +13 -18
  386. package/fesm2022/taiga-ui-kit-directives-sensitive.mjs.map +1 -1
  387. package/fesm2022/taiga-ui-kit-directives-shimmer.mjs +24 -34
  388. package/fesm2022/taiga-ui-kit-directives-shimmer.mjs.map +1 -1
  389. package/fesm2022/taiga-ui-kit-directives-skeleton.mjs +28 -38
  390. package/fesm2022/taiga-ui-kit-directives-skeleton.mjs.map +1 -1
  391. package/fesm2022/taiga-ui-kit-directives-tooltip.mjs +17 -22
  392. package/fesm2022/taiga-ui-kit-directives-tooltip.mjs.map +1 -1
  393. package/fesm2022/taiga-ui-kit-directives-unfinished-validator.mjs +10 -14
  394. package/fesm2022/taiga-ui-kit-directives-unfinished-validator.mjs.map +1 -1
  395. package/fesm2022/taiga-ui-kit-directives-unmask-handler.mjs +10 -15
  396. package/fesm2022/taiga-ui-kit-directives-unmask-handler.mjs.map +1 -1
  397. package/fesm2022/taiga-ui-kit-directives.mjs +1 -3
  398. package/fesm2022/taiga-ui-kit-directives.mjs.map +1 -1
  399. package/fesm2022/taiga-ui-kit-pipes-auto-color.mjs +43 -0
  400. package/fesm2022/taiga-ui-kit-pipes-auto-color.mjs.map +1 -0
  401. package/fesm2022/taiga-ui-kit-pipes-emails.mjs +3 -4
  402. package/fesm2022/taiga-ui-kit-pipes-emails.mjs.map +1 -1
  403. package/fesm2022/taiga-ui-kit-pipes-filter-by-input.mjs +22 -36
  404. package/fesm2022/taiga-ui-kit-pipes-filter-by-input.mjs.map +1 -1
  405. package/fesm2022/taiga-ui-kit-pipes-flag.mjs +30 -0
  406. package/fesm2022/taiga-ui-kit-pipes-flag.mjs.map +1 -0
  407. package/fesm2022/taiga-ui-kit-pipes-hide-selected.mjs +23 -27
  408. package/fesm2022/taiga-ui-kit-pipes-hide-selected.mjs.map +1 -1
  409. package/fesm2022/taiga-ui-kit-pipes-initials.mjs +28 -0
  410. package/fesm2022/taiga-ui-kit-pipes-initials.mjs.map +1 -0
  411. package/fesm2022/taiga-ui-kit-pipes-sort-countries.mjs +10 -8
  412. package/fesm2022/taiga-ui-kit-pipes-sort-countries.mjs.map +1 -1
  413. package/fesm2022/taiga-ui-kit-pipes-stringify-content.mjs +3 -4
  414. package/fesm2022/taiga-ui-kit-pipes-stringify-content.mjs.map +1 -1
  415. package/fesm2022/taiga-ui-kit-pipes-stringify.mjs +3 -4
  416. package/fesm2022/taiga-ui-kit-pipes-stringify.mjs.map +1 -1
  417. package/fesm2022/taiga-ui-kit-pipes.mjs +3 -1
  418. package/fesm2022/taiga-ui-kit-pipes.mjs.map +1 -1
  419. package/fesm2022/taiga-ui-kit-tokens.mjs +4 -126
  420. package/fesm2022/taiga-ui-kit-tokens.mjs.map +1 -1
  421. package/fesm2022/taiga-ui-kit-utils.mjs +3 -15
  422. package/fesm2022/taiga-ui-kit-utils.mjs.map +1 -1
  423. package/package.json +49 -57
  424. package/pipes/auto-color/auto-color.pipe.d.ts +13 -0
  425. package/pipes/auto-color/index.d.ts +1 -0
  426. package/pipes/filter-by-input/filter-by-input.pipe.d.ts +5 -2
  427. package/pipes/flag/flag.pipe.d.ts +13 -0
  428. package/pipes/flag/index.d.ts +1 -0
  429. package/pipes/hide-selected/hide-selected.pipe.d.ts +2 -0
  430. package/pipes/index.d.ts +3 -1
  431. package/pipes/initials/index.d.ts +1 -0
  432. package/pipes/initials/initials.pipe.d.ts +7 -0
  433. package/pipes/sort-countries/sort-countries.pipe.d.ts +4 -3
  434. package/pipes/stringify-content/stringify-content.pipe.d.ts +2 -3
  435. package/styles/components/avatar.less +188 -0
  436. package/styles/components/badge.less +4 -3
  437. package/styles/components/block.less +4 -4
  438. package/styles/components/checkbox.less +14 -12
  439. package/styles/components/chip.less +15 -4
  440. package/styles/components/comment.less +1 -1
  441. package/styles/components/like.less +4 -9
  442. package/styles/components/message.less +1 -1
  443. package/styles/components/pin.less +6 -10
  444. package/styles/components/radio.less +1 -1
  445. package/styles/components/switch.less +12 -11
  446. package/styles/components/toast.less +44 -0
  447. package/tokens/i18n.d.ts +26 -26
  448. package/tokens/index.d.ts +0 -8
  449. package/utils/index.d.ts +0 -2
  450. package/utils/maskito.binding.d.ts +1 -1
  451. package/components/accordion/accordion-item-content.directive.d.ts +0 -6
  452. package/components/accordion/accordion-item-eager-content.directive.d.ts +0 -5
  453. package/components/accordion/accordion-item.component.d.ts +0 -25
  454. package/components/action-bar/action-bar.d.ts +0 -3
  455. package/components/action-bar/action-bar.directive.d.ts +0 -6
  456. package/components/elastic-container/elastic-container.component.d.ts +0 -8
  457. package/components/elastic-container/elastic-container.directive.d.ts +0 -7
  458. package/components/elastic-container/index.d.ts +0 -2
  459. package/components/floating-container/floating-container.directive.d.ts +0 -7
  460. package/components/floating-container/index.d.ts +0 -1
  461. package/components/input-password/index.d.ts +0 -2
  462. package/components/input-password/input-password.component.d.ts +0 -16
  463. package/components/input-password/input-password.options.d.ts +0 -24
  464. package/components/input-range/input-range.d.ts +0 -3
  465. package/components/pdf-viewer/index.d.ts +0 -4
  466. package/components/pdf-viewer/pdf-viewer.component.d.ts +0 -12
  467. package/components/pdf-viewer/pdf-viewer.directive.d.ts +0 -7
  468. package/components/pdf-viewer/pdf-viewer.options.d.ts +0 -13
  469. package/components/pdf-viewer/pdf-viewer.service.d.ts +0 -13
  470. package/components/slides/index.d.ts +0 -1
  471. package/components/slides/slides.directive.d.ts +0 -11
  472. package/components/textarea/textarea-limit.directive.d.ts +0 -27
  473. package/directives/button-close/button-close.directive.d.ts +0 -5
  474. package/directives/button-close/index.d.ts +0 -1
  475. package/directives/lazy-loading/index.d.ts +0 -2
  476. package/directives/lazy-loading/lazy-loading.directive.d.ts +0 -18
  477. package/directives/lazy-loading/lazy-loading.service.d.ts +0 -12
  478. package/fesm2022/taiga-ui-kit-components-elastic-container.mjs +0 -78
  479. package/fesm2022/taiga-ui-kit-components-elastic-container.mjs.map +0 -1
  480. package/fesm2022/taiga-ui-kit-components-floating-container.mjs +0 -43
  481. package/fesm2022/taiga-ui-kit-components-floating-container.mjs.map +0 -1
  482. package/fesm2022/taiga-ui-kit-components-input-password.mjs +0 -95
  483. package/fesm2022/taiga-ui-kit-components-input-password.mjs.map +0 -1
  484. package/fesm2022/taiga-ui-kit-components-pdf-viewer.mjs +0 -83
  485. package/fesm2022/taiga-ui-kit-components-pdf-viewer.mjs.map +0 -1
  486. package/fesm2022/taiga-ui-kit-components-preview-dialog.mjs +0 -64
  487. package/fesm2022/taiga-ui-kit-components-preview-dialog.mjs.map +0 -1
  488. package/fesm2022/taiga-ui-kit-components-slides.mjs +0 -57
  489. package/fesm2022/taiga-ui-kit-components-slides.mjs.map +0 -1
  490. package/fesm2022/taiga-ui-kit-directives-button-close.mjs +0 -39
  491. package/fesm2022/taiga-ui-kit-directives-button-close.mjs.map +0 -1
  492. package/fesm2022/taiga-ui-kit-directives-copy.mjs +0 -121
  493. package/fesm2022/taiga-ui-kit-directives-copy.mjs.map +0 -1
  494. package/fesm2022/taiga-ui-kit-directives-lazy-loading.mjs +0 -81
  495. package/fesm2022/taiga-ui-kit-directives-lazy-loading.mjs.map +0 -1
  496. package/fesm2022/taiga-ui-kit-pipes-field-error.mjs +0 -147
  497. package/fesm2022/taiga-ui-kit-pipes-field-error.mjs.map +0 -1
  498. package/pipes/field-error/field-error-content-pipe.d.ts +0 -14
  499. package/pipes/field-error/field-error-pipe.d.ts +0 -29
  500. package/pipes/field-error/index.d.ts +0 -2
  501. package/tokens/calendar-date-stream.d.ts +0 -10
  502. package/tokens/date-inputs-value-transformers.d.ts +0 -19
  503. package/tokens/input-date-options.d.ts +0 -15
  504. package/tokens/items-handlers.d.ts +0 -26
  505. package/tokens/mobile-calendar.d.ts +0 -6
  506. package/tokens/month-formatter.d.ts +0 -5
  507. package/tokens/validation-errors.d.ts +0 -5
  508. package/utils/phone.d.ts +0 -3
  509. package/utils/toggle-day.d.ts +0 -2
  510. /package/{directives → components}/copy/copy.d.ts +0 -0
  511. /package/{directives → components}/copy/index.d.ts +0 -0
@@ -1,23 +1,25 @@
1
1
  import { TuiCalendar } from '@taiga-ui/core/components/calendar';
2
+ import { TuiLabel } from '@taiga-ui/core/components/label';
3
+ import * as i1$1 from '@taiga-ui/core/components/textfield';
4
+ import { tuiAsTextfieldAccessor, TuiTextfieldContent, TuiWithNativePicker, TuiTextfieldComponent, TuiTextfieldOptionsDirective } from '@taiga-ui/core/components/textfield';
5
+ import * as i2 from '@taiga-ui/core/portals/dropdown';
6
+ import { TuiDropdownAuto, TuiDropdownContent } from '@taiga-ui/core/portals/dropdown';
2
7
  import * as i0 from '@angular/core';
3
- import { InjectionToken, inject, effect, computed, signal, untracked, Input, Directive, ChangeDetectionStrategy, ViewEncapsulation, Component } from '@angular/core';
8
+ import { InjectionToken, inject, effect, computed, input, untracked, Directive, ChangeDetectionStrategy, ViewEncapsulation, Component } from '@angular/core';
4
9
  import { TuiTime, MILLISECONDS_IN_DAY, DATE_FILLER_LENGTH, TuiDay } from '@taiga-ui/cdk/date-time';
5
- import * as i4 from '@taiga-ui/core/components/textfield';
6
- import { tuiAsTextfieldAccessor, TuiWithTextfield, TuiTextfieldContent, TuiWithNativePicker } from '@taiga-ui/core/components/textfield';
7
10
  import { TuiNativeTimePicker } from '@taiga-ui/kit/components/input-time';
8
- import { toSignal } from '@angular/core/rxjs-interop';
9
11
  import * as i1 from '@maskito/angular';
10
12
  import { MaskitoDirective } from '@maskito/angular';
11
13
  import { maskitoDateTimeOptionsGenerator, maskitoSelectionChangeHandler } from '@maskito/kit';
12
14
  import { TUI_IDENTITY_VALUE_TRANSFORMER, tuiAsControl, tuiValueTransformerFrom } from '@taiga-ui/cdk/classes';
15
+ import { tuiProvideOptions, tuiDirectiveBinding } from '@taiga-ui/cdk/utils/di';
13
16
  import { tuiSum, tuiClamp } from '@taiga-ui/cdk/utils/math';
14
- import { tuiProvideOptions, tuiDirectiveBinding } from '@taiga-ui/cdk/utils/miscellaneous';
15
17
  import { tuiAsOptionContent } from '@taiga-ui/core/components/data-list';
16
- import * as i2 from '@taiga-ui/core/directives/dropdown';
17
- import { TuiDropdownAuto } from '@taiga-ui/core/directives/dropdown';
18
+ import * as i4 from '@taiga-ui/core/components/input';
19
+ import { TuiWithInput } from '@taiga-ui/core/components/input';
18
20
  import * as i3 from '@taiga-ui/core/directives/items-handlers';
19
- import { TuiItemsHandlersValidator } from '@taiga-ui/core/directives/items-handlers';
20
- import { TUI_INPUT_DATE_OPTIONS_NEW, TUI_INPUT_DATE_DEFAULT_OPTIONS_NEW, TuiInputDateBase, tuiWithDateFiller, TUI_DATE_ADAPTER } from '@taiga-ui/kit/components/input-date';
21
+ import { TuiItemsHandlersDirective, TuiItemsHandlersValidator } from '@taiga-ui/core/directives/items-handlers';
22
+ import { TUI_INPUT_DATE_OPTIONS, TUI_INPUT_DATE_DEFAULT_OPTIONS, TuiInputDateBase, tuiWithDateFiller } from '@taiga-ui/kit/components/input-date';
21
23
  import { TuiSelectOption } from '@taiga-ui/kit/components/select';
22
24
  import { TUI_TIME_TEXTS } from '@taiga-ui/kit/tokens';
23
25
  import { tuiMaskito } from '@taiga-ui/kit/utils';
@@ -30,12 +32,12 @@ const TUI_INPUT_DATE_TIME_DEFAULT_OPTIONS = {
30
32
  };
31
33
  const TUI_INPUT_DATE_TIME_OPTIONS = new InjectionToken(ngDevMode ? 'TUI_INPUT_DATE_TIME_OPTIONS' : '', {
32
34
  factory: () => ({
33
- ...inject(TUI_INPUT_DATE_OPTIONS_NEW),
35
+ ...inject(TUI_INPUT_DATE_OPTIONS),
34
36
  ...TUI_INPUT_DATE_TIME_DEFAULT_OPTIONS,
35
37
  }),
36
38
  });
37
39
  const tuiInputDateTimeOptionsProvider = (options) => tuiProvideOptions(TUI_INPUT_DATE_TIME_OPTIONS, options, {
38
- ...TUI_INPUT_DATE_DEFAULT_OPTIONS_NEW,
40
+ ...TUI_INPUT_DATE_DEFAULT_OPTIONS,
39
41
  ...TUI_INPUT_DATE_TIME_DEFAULT_OPTIONS,
40
42
  });
41
43
 
@@ -44,44 +46,31 @@ const MAX_TIME = TuiTime.fromAbsoluteMilliseconds(MILLISECONDS_IN_DAY - 1);
44
46
  class TuiInputDateTimeDirective extends TuiInputDateBase {
45
47
  constructor() {
46
48
  super(...arguments);
47
- this.timeFillers = toSignal(inject(TUI_TIME_TEXTS));
49
+ this.timeFillers = inject(TUI_TIME_TEXTS);
48
50
  this.options = inject(TUI_INPUT_DATE_TIME_OPTIONS);
49
- this.filler = tuiWithDateFiller((date) => {
50
- const time = this.timeFillers()?.[this.timeMode()] ?? '';
51
- return `${date}${this.options.dateTimeSeparator}${time}`;
52
- });
51
+ this.filler = tuiWithDateFiller((date) => `${date}${this.options.dateTimeSeparator}${this.timeFillers()?.[this.timeMode()] ?? ''}`);
53
52
  this.valueEffect = effect(noop);
54
- this.identity = this.handlers.identityMatcher.set((a, b) => tuiSum(...a.map(Number)) === tuiSum(...b.map(Number)));
55
- this.disabledItemHandler = tuiDirectiveBinding(TuiItemsHandlersValidator, 'disabledItemHandler', (value) => Boolean(value && this.handlers.disabledItemHandler()(value)));
53
+ this.identity = tuiDirectiveBinding(TuiItemsHandlersDirective, 'identityMatcher', (a, b) => tuiSum(...a.map(Number)) === tuiSum(...b.map(Number)), {});
54
+ this.disabledItemHandler = tuiDirectiveBinding(TuiItemsHandlersValidator, 'disabledItemHandler', computed(() => (value) => Boolean(value && this.handlers.disabledItemHandler()(value))));
56
55
  this.mask = tuiMaskito(computed(() => this.computeMask({
57
- dateMode: TUI_DATE_ADAPTER[this.format().mode],
56
+ dateMode: this.format().mode,
58
57
  timeMode: this.timeMode(),
59
58
  min: this.toNativeDate([this.min(), this.minTime()]),
60
59
  max: this.toNativeDate([this.max(), this.maxTime()]),
61
60
  dateSeparator: this.format().separator,
62
61
  dateTimeSeparator: this.options.dateTimeSeparator,
63
62
  })));
64
- this.timeMode = signal(this.options.timeMode);
65
- this.minTime = signal(MIN_TIME);
66
- this.maxTime = signal(MAX_TIME);
67
- }
68
- // TODO(v5): use signal inputs
69
- set timeModeSetter(x) {
70
- this.timeMode.set(x);
71
- }
72
- set minSetter(min) {
73
- const [date, time] = Array.isArray(min) ? min : [min, null];
74
- this.min.set(date || this.options.min);
75
- this.minTime.set(time ?? MIN_TIME);
76
- }
77
- set maxSetter(max) {
78
- const [date, time] = Array.isArray(max) ? max : [max, null];
79
- this.max.set(date || this.options.max);
80
- this.maxTime.set(time ?? MAX_TIME);
63
+ this.min = computed((min = this.minInput()) => Array.isArray(min) ? min[0] : (min ?? this.options.min));
64
+ this.max = computed((max = this.maxInput()) => Array.isArray(max) ? max[0] : (max ?? this.options.max));
65
+ this.minTime = computed((min = this.minInput()) => Array.isArray(min) ? min[1] : MIN_TIME);
66
+ this.maxTime = computed((max = this.maxInput()) => Array.isArray(max) ? max[1] : MAX_TIME);
67
+ this.timeMode = input(this.options.timeMode);
68
+ this.minInput = input(this.options.min, { alias: 'min' });
69
+ this.maxInput = input(this.options.max, { alias: 'max' });
81
70
  }
82
71
  setValue(value) {
83
72
  this.onChange(value);
84
- this.textfield.value.set(this.stringify(value));
73
+ this.input.value.set(this.stringify(value));
85
74
  }
86
75
  setDate(newDate) {
87
76
  const [date, time] = this.clampTime([newDate, this.value()?.[1] ?? null]);
@@ -94,7 +83,7 @@ class TuiInputDateTimeDirective extends TuiInputDateBase {
94
83
  const changed = untracked(() => value !== this.value());
95
84
  if (changed || reset) {
96
85
  super.writeValue(value);
97
- untracked(() => this.textfield.value.set(this.stringify(this.value())));
86
+ untracked(() => this.input.value.set(this.stringify(this.value())));
98
87
  }
99
88
  }
100
89
  processCalendar(calendar) {
@@ -102,7 +91,7 @@ class TuiInputDateTimeDirective extends TuiInputDateBase {
102
91
  calendar.disabledItemHandler = (day) => this.handlers.disabledItemHandler()([day, null]);
103
92
  }
104
93
  onValueChange(value) {
105
- this.textfield.value.set(value);
94
+ this.input.value.set(value);
106
95
  this.control?.control?.updateValueAndValidity({ emitEvent: false });
107
96
  const [date = '', time = ''] = value.split(this.options.dateTimeSeparator);
108
97
  const parsedDate = date.length >= DATE_FILLER_LENGTH
@@ -156,18 +145,17 @@ class TuiInputDateTimeDirective extends TuiInputDateBase {
156
145
  toNativeDate([{ year, month, day }, { hours, minutes, seconds, ms }]) {
157
146
  return new Date(year, month, day, hours, minutes, seconds, ms);
158
147
  }
159
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiInputDateTimeDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
160
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.15", type: TuiInputDateTimeDirective, isStandalone: true, selector: "input[tuiInputDateTime]", inputs: { timeModeSetter: ["timeMode", "timeModeSetter"], minSetter: ["min", "minSetter"], maxSetter: ["max", "maxSetter"] }, providers: [
148
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiInputDateTimeDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
149
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.17", type: TuiInputDateTimeDirective, isStandalone: true, selector: "input[tuiInputDateTime]", inputs: { timeMode: { classPropertyName: "timeMode", publicName: "timeMode", isSignal: true, isRequired: false, transformFunction: null }, minInput: { classPropertyName: "minInput", publicName: "min", isSignal: true, isRequired: false, transformFunction: null }, maxInput: { classPropertyName: "maxInput", publicName: "max", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
161
150
  tuiAsOptionContent(TuiSelectOption),
162
151
  tuiAsControl(TuiInputDateTimeDirective),
163
152
  tuiAsTextfieldAccessor(TuiInputDateTimeDirective),
164
153
  tuiValueTransformerFrom(TUI_INPUT_DATE_TIME_OPTIONS),
165
- ], usesInheritance: true, hostDirectives: [{ directive: i1.MaskitoDirective }, { directive: i2.TuiDropdownAuto }, { directive: i3.TuiItemsHandlersValidator }, { directive: i4.TuiWithTextfield }], ngImport: i0 }); }
154
+ ], usesInheritance: true, hostDirectives: [{ directive: i1.MaskitoDirective }, { directive: i2.TuiDropdownAuto }, { directive: i3.TuiItemsHandlersValidator }, { directive: i4.TuiWithInput }], ngImport: i0 }); }
166
155
  }
167
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiInputDateTimeDirective, decorators: [{
156
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiInputDateTimeDirective, decorators: [{
168
157
  type: Directive,
169
158
  args: [{
170
- standalone: true,
171
159
  selector: 'input[tuiInputDateTime]',
172
160
  providers: [
173
161
  tuiAsOptionContent(TuiSelectOption),
@@ -179,19 +167,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
179
167
  MaskitoDirective,
180
168
  TuiDropdownAuto,
181
169
  TuiItemsHandlersValidator,
182
- TuiWithTextfield,
170
+ TuiWithInput,
183
171
  ],
184
172
  }]
185
- }], propDecorators: { timeModeSetter: [{
186
- type: Input,
187
- args: ['timeMode']
188
- }], minSetter: [{
189
- type: Input,
190
- args: ['min']
191
- }], maxSetter: [{
192
- type: Input,
193
- args: ['max']
194
- }] } });
173
+ }] });
195
174
 
196
175
  class TuiInputDateTimeComponent extends TuiNativeTimePicker {
197
176
  constructor() {
@@ -211,18 +190,22 @@ class TuiInputDateTimeComponent extends TuiNativeTimePicker {
211
190
  const time = TuiTime.fromLocalNativeDate(date);
212
191
  this.host.setValue([day, time]);
213
192
  }
214
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiInputDateTimeComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
215
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.15", type: TuiInputDateTimeComponent, isStandalone: true, selector: "input[tuiInputDateTime][type=\"datetime-local\"]", host: { attributes: { "ngSkipHydration": "true" } }, usesInheritance: true, hostDirectives: [{ directive: i4.TuiWithNativePicker }], ngImport: i0, template: "@if (host.native) {\n <input\n *tuiTextfieldContent\n type=\"datetime-local\"\n [attr.list]=\"list\"\n [max]=\"max()\"\n [min]=\"min()\"\n [step]=\"step()\"\n [value]=\"value()\"\n (click.stop.zoneless)=\"(0)\"\n (input)=\"onInput($any($event.target).value)\"\n (pointerdown.stop.zoneless)=\"(0)\"\n />\n}\n", styles: ["tui-textfield input[tuiInputDateTime]~.t-content input[type=datetime-local]{position:absolute;top:0;left:auto;right:0;bottom:0;inline-size:2.5rem;padding:0;opacity:0}tui-textfield input[tuiInputDateTime]~.t-content input[type=datetime-local]::-webkit-calendar-picker-indicator{position:absolute;top:0;left:0;inline-size:100%;block-size:100%}\n"], dependencies: [{ kind: "directive", type: TuiTextfieldContent, selector: "ng-template[tuiTextfieldContent]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
193
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiInputDateTimeComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
194
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.17", type: TuiInputDateTimeComponent, isStandalone: true, selector: "input[tuiInputDateTime][type=\"datetime-local\"]", host: { attributes: { "ngSkipHydration": "true" } }, usesInheritance: true, hostDirectives: [{ directive: i1$1.TuiWithNativePicker }], ngImport: i0, template: "@if (host.native) {\n <input\n *tuiTextfieldContent\n type=\"datetime-local\"\n [attr.list]=\"list\"\n [max]=\"max()\"\n [min]=\"min()\"\n [step]=\"step()\"\n [value]=\"value()\"\n (click.stop.zoneless)=\"(0)\"\n (input)=\"onInput($any($event.target).value)\"\n (pointerdown.stop.zoneless)=\"(0)\"\n />\n}\n", styles: ["tui-textfield input[tuiInputDateTime]~.t-content input[type=datetime-local]{position:absolute;inset:0 0 0 auto;inline-size:2.5rem;padding:0;opacity:0}tui-textfield input[tuiInputDateTime]~.t-content input[type=datetime-local]::-webkit-calendar-picker-indicator{position:absolute;top:0;left:0;inline-size:100%;block-size:100%}\n"], dependencies: [{ kind: "directive", type: TuiTextfieldContent, selector: "ng-template[tuiTextfieldContent]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
216
195
  }
217
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiInputDateTimeComponent, decorators: [{
196
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiInputDateTimeComponent, decorators: [{
218
197
  type: Component,
219
- args: [{ selector: 'input[tuiInputDateTime][type="datetime-local"]', imports: [TuiTextfieldContent], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, hostDirectives: [TuiWithNativePicker], host: { ngSkipHydration: 'true' }, template: "@if (host.native) {\n <input\n *tuiTextfieldContent\n type=\"datetime-local\"\n [attr.list]=\"list\"\n [max]=\"max()\"\n [min]=\"min()\"\n [step]=\"step()\"\n [value]=\"value()\"\n (click.stop.zoneless)=\"(0)\"\n (input)=\"onInput($any($event.target).value)\"\n (pointerdown.stop.zoneless)=\"(0)\"\n />\n}\n", styles: ["tui-textfield input[tuiInputDateTime]~.t-content input[type=datetime-local]{position:absolute;top:0;left:auto;right:0;bottom:0;inline-size:2.5rem;padding:0;opacity:0}tui-textfield input[tuiInputDateTime]~.t-content input[type=datetime-local]::-webkit-calendar-picker-indicator{position:absolute;top:0;left:0;inline-size:100%;block-size:100%}\n"] }]
198
+ args: [{ selector: 'input[tuiInputDateTime][type="datetime-local"]', imports: [TuiTextfieldContent], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, hostDirectives: [TuiWithNativePicker], host: { ngSkipHydration: 'true' }, template: "@if (host.native) {\n <input\n *tuiTextfieldContent\n type=\"datetime-local\"\n [attr.list]=\"list\"\n [max]=\"max()\"\n [min]=\"min()\"\n [step]=\"step()\"\n [value]=\"value()\"\n (click.stop.zoneless)=\"(0)\"\n (input)=\"onInput($any($event.target).value)\"\n (pointerdown.stop.zoneless)=\"(0)\"\n />\n}\n", styles: ["tui-textfield input[tuiInputDateTime]~.t-content input[type=datetime-local]{position:absolute;inset:0 0 0 auto;inline-size:2.5rem;padding:0;opacity:0}tui-textfield input[tuiInputDateTime]~.t-content input[type=datetime-local]::-webkit-calendar-picker-indicator{position:absolute;top:0;left:0;inline-size:100%;block-size:100%}\n"] }]
220
199
  }] });
221
200
 
222
201
  const TuiInputDateTime = [
223
202
  TuiInputDateTimeDirective,
224
203
  TuiInputDateTimeComponent,
225
204
  TuiCalendar,
205
+ TuiLabel,
206
+ TuiTextfieldComponent,
207
+ TuiTextfieldOptionsDirective,
208
+ TuiDropdownContent,
226
209
  ];
227
210
 
228
211
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-kit-components-input-date-time.mjs","sources":["../../../projects/kit/components/input-date-time/input-date-time.options.ts","../../../projects/kit/components/input-date-time/input-date-time.directive.ts","../../../projects/kit/components/input-date-time/input-date-time.component.ts","../../../projects/kit/components/input-date-time/input-date-time.template.html","../../../projects/kit/components/input-date-time/input-date-time.ts","../../../projects/kit/components/input-date-time/taiga-ui-kit-components-input-date-time.ts"],"sourcesContent":["import {type FactoryProvider, inject, InjectionToken} from '@angular/core';\nimport {type MaskitoTimeMode} from '@maskito/kit';\nimport {\n TUI_IDENTITY_VALUE_TRANSFORMER,\n type TuiValueTransformer,\n} from '@taiga-ui/cdk/classes';\nimport {type TuiDay, type TuiTime} from '@taiga-ui/cdk/date-time';\nimport {tuiProvideOptions} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {\n TUI_INPUT_DATE_DEFAULT_OPTIONS_NEW,\n TUI_INPUT_DATE_OPTIONS_NEW,\n type TuiInputDateOptionsNew,\n} from '@taiga-ui/kit/components/input-date';\n\nexport interface TuiInputDateTimeOptions\n extends Omit<TuiInputDateOptionsNew, 'valueTransformer'> {\n readonly timeMode: MaskitoTimeMode;\n readonly dateTimeSeparator: string;\n readonly valueTransformer: TuiValueTransformer<[TuiDay, TuiTime | null] | null, any>;\n}\n\nexport const TUI_INPUT_DATE_TIME_DEFAULT_OPTIONS = {\n valueTransformer: TUI_IDENTITY_VALUE_TRANSFORMER,\n timeMode: 'HH:MM',\n dateTimeSeparator: ', ',\n} as const;\n\nexport const TUI_INPUT_DATE_TIME_OPTIONS = new InjectionToken<TuiInputDateTimeOptions>(\n ngDevMode ? 'TUI_INPUT_DATE_TIME_OPTIONS' : '',\n {\n factory: () => ({\n ...inject(TUI_INPUT_DATE_OPTIONS_NEW),\n ...TUI_INPUT_DATE_TIME_DEFAULT_OPTIONS,\n }),\n },\n);\n\nexport const tuiInputDateTimeOptionsProvider = (\n options: Partial<TuiInputDateTimeOptions>,\n): FactoryProvider =>\n tuiProvideOptions(TUI_INPUT_DATE_TIME_OPTIONS, options, {\n ...TUI_INPUT_DATE_DEFAULT_OPTIONS_NEW,\n ...TUI_INPUT_DATE_TIME_DEFAULT_OPTIONS,\n });\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 MaskitoOptions} from '@maskito/core';\nimport {\n maskitoDateTimeOptionsGenerator,\n type MaskitoDateTimeParams,\n maskitoSelectionChangeHandler,\n type MaskitoTimeMode,\n} from '@maskito/kit';\nimport {tuiAsControl, tuiValueTransformerFrom} from '@taiga-ui/cdk/classes';\nimport {\n DATE_FILLER_LENGTH,\n MILLISECONDS_IN_DAY,\n TuiDay,\n TuiTime,\n} from '@taiga-ui/cdk/date-time';\nimport {tuiClamp, tuiSum} from '@taiga-ui/cdk/utils/math';\nimport {tuiDirectiveBinding} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {type TuiCalendar} from '@taiga-ui/core/components/calendar';\nimport {tuiAsOptionContent} from '@taiga-ui/core/components/data-list';\nimport {\n tuiAsTextfieldAccessor,\n type TuiTextfieldAccessor,\n TuiWithTextfield,\n} from '@taiga-ui/core/components/textfield';\nimport {TuiDropdownAuto} from '@taiga-ui/core/directives/dropdown';\nimport {TuiItemsHandlersValidator} from '@taiga-ui/core/directives/items-handlers';\nimport {\n TUI_DATE_ADAPTER,\n TuiInputDateBase,\n tuiWithDateFiller,\n} from '@taiga-ui/kit/components/input-date';\nimport {TuiSelectOption} from '@taiga-ui/kit/components/select';\nimport {TUI_TIME_TEXTS} from '@taiga-ui/kit/tokens';\nimport {tuiMaskito} from '@taiga-ui/kit/utils';\nimport {noop} from 'rxjs';\n\nimport {TUI_INPUT_DATE_TIME_OPTIONS} from './input-date-time.options';\n\nconst MIN_TIME = new TuiTime(0, 0);\nconst MAX_TIME = TuiTime.fromAbsoluteMilliseconds(MILLISECONDS_IN_DAY - 1);\n\n@Directive({\n standalone: true,\n selector: 'input[tuiInputDateTime]',\n providers: [\n tuiAsOptionContent(TuiSelectOption),\n tuiAsControl(TuiInputDateTimeDirective),\n tuiAsTextfieldAccessor(TuiInputDateTimeDirective),\n tuiValueTransformerFrom(TUI_INPUT_DATE_TIME_OPTIONS),\n ],\n hostDirectives: [\n MaskitoDirective,\n TuiDropdownAuto,\n TuiItemsHandlersValidator,\n TuiWithTextfield,\n ],\n})\nexport class TuiInputDateTimeDirective\n extends TuiInputDateBase<readonly [TuiDay, TuiTime | null]>\n implements TuiTextfieldAccessor<readonly [TuiDay, TuiTime | null]>\n{\n private readonly timeFillers = toSignal(inject(TUI_TIME_TEXTS));\n\n protected override readonly options = inject(TUI_INPUT_DATE_TIME_OPTIONS);\n\n protected override readonly filler = tuiWithDateFiller((date) => {\n const time = this.timeFillers()?.[this.timeMode()] ?? '';\n\n return `${date}${this.options.dateTimeSeparator}${time}`;\n });\n\n protected override valueEffect = effect(noop);\n\n protected readonly identity = this.handlers.identityMatcher.set(\n (a, b) => tuiSum(...a.map(Number)) === tuiSum(...b.map(Number)),\n );\n\n protected readonly disabledItemHandler = tuiDirectiveBinding(\n TuiItemsHandlersValidator,\n 'disabledItemHandler',\n (value: readonly [TuiDay, TuiTime | null] | null) =>\n Boolean(value && this.handlers.disabledItemHandler()(value)),\n );\n\n protected readonly mask = tuiMaskito(\n computed(() =>\n this.computeMask({\n dateMode: TUI_DATE_ADAPTER[this.format().mode],\n timeMode: this.timeMode(),\n min: this.toNativeDate([this.min(), this.minTime()]),\n max: this.toNativeDate([this.max(), this.maxTime()]),\n dateSeparator: this.format().separator,\n dateTimeSeparator: this.options.dateTimeSeparator,\n }),\n ),\n );\n\n public readonly timeMode = signal(this.options.timeMode);\n public readonly minTime = signal(MIN_TIME);\n public readonly maxTime = signal(MAX_TIME);\n\n // TODO(v5): use signal inputs\n @Input('timeMode')\n public set timeModeSetter(x: MaskitoTimeMode) {\n this.timeMode.set(x);\n }\n\n @Input('min')\n public override set minSetter(\n min: TuiDay | readonly [TuiDay, TuiTime | null] | null,\n ) {\n const [date, time] = Array.isArray(min) ? min : [min, null];\n\n this.min.set(date || this.options.min);\n this.minTime.set(time ?? MIN_TIME);\n }\n\n @Input('max')\n public override set maxSetter(\n max: TuiDay | readonly [TuiDay, TuiTime | null] | null,\n ) {\n const [date, time] = Array.isArray(max) ? max : [max, null];\n\n this.max.set(date || this.options.max);\n this.maxTime.set(time ?? MAX_TIME);\n }\n\n public setValue(value: readonly [TuiDay, TuiTime | null] | null): void {\n this.onChange(value);\n this.textfield.value.set(this.stringify(value));\n }\n\n public override setDate(newDate: TuiDay): void {\n const [date, time] = this.clampTime([newDate, this.value()?.[1] ?? null]);\n\n this.setValue([date, time]);\n this.open.set(false);\n setTimeout(\n (caretIndex = DATE_FILLER_LENGTH + this.options.dateTimeSeparator.length) =>\n this.el.setSelectionRange(caretIndex, caretIndex),\n );\n }\n\n public override writeValue(value: [TuiDay, TuiTime | null] | 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 untracked(() => this.textfield.value.set(this.stringify(this.value())));\n }\n }\n\n protected override processCalendar(calendar: TuiCalendar): void {\n super.processCalendar(calendar);\n calendar.disabledItemHandler = (day: TuiDay) =>\n this.handlers.disabledItemHandler()([day, null]);\n }\n\n protected override onValueChange(value: string): void {\n this.textfield.value.set(value);\n this.control?.control?.updateValueAndValidity({emitEvent: false});\n\n const [date = '', time = ''] = value.split(this.options.dateTimeSeparator);\n const parsedDate =\n date.length >= DATE_FILLER_LENGTH\n ? TuiDay.normalizeParse(date, this.format().mode)\n : null;\n const parsedTime =\n time.length === this.timeMode().length ? TuiTime.fromString(time) : null;\n\n if (!parsedDate || (time && !parsedTime)) {\n return this.onChange(null);\n }\n\n const [prevDate, prevTime = null] = this.value() ?? [];\n\n if (!prevDate?.daySame(parsedDate) || Number(parsedTime) !== Number(prevTime)) {\n this.onChange([parsedDate, parsedTime]);\n }\n }\n\n protected override stringify(\n value: readonly [TuiDay, TuiTime | null] | null,\n ): string {\n const [date, time] = value ?? [];\n\n const dateString =\n date?.toString(this.format().mode, this.format().separator) ?? '';\n const timeString = time?.toString(this.timeMode());\n\n return timeString\n ? `${dateString}${this.options.dateTimeSeparator}${timeString}`\n : dateString;\n }\n\n private clampTime([date, time]: [TuiDay, TuiTime | null]): [TuiDay, TuiTime | null] {\n const min = date.daySame(this.min())\n ? this.minTime().toAbsoluteMilliseconds()\n : -Infinity;\n const max = date.daySame(this.max())\n ? this.maxTime().toAbsoluteMilliseconds()\n : Infinity;\n\n return [\n date,\n time &&\n TuiTime.fromAbsoluteMilliseconds(\n tuiClamp(time.toAbsoluteMilliseconds(), min, max),\n ),\n ];\n }\n\n private computeMask(\n params: Omit<Required<MaskitoDateTimeParams>, 'timeStep'>,\n ): MaskitoOptions {\n const options = maskitoDateTimeOptionsGenerator(params);\n const {timeMode, dateMode, dateTimeSeparator} = params;\n const inputModeSwitchPlugin = maskitoSelectionChangeHandler((element) => {\n element.inputMode =\n element.selectionStart! >=\n dateMode.length + dateTimeSeparator.length + timeMode.indexOf(' AA')\n ? 'text'\n : 'numeric';\n });\n\n return {\n ...options,\n plugins: options.plugins.concat(\n timeMode.includes('AA') ? inputModeSwitchPlugin : [],\n ),\n };\n }\n\n private toNativeDate([{year, month, day}, {hours, minutes, seconds, ms}]: readonly [\n TuiDay,\n TuiTime,\n ]): Date {\n return new Date(year, month, day, hours, minutes, seconds, ms);\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n inject,\n ViewEncapsulation,\n} from '@angular/core';\nimport {TuiDay, TuiTime} from '@taiga-ui/cdk/date-time';\nimport {\n TuiTextfieldContent,\n TuiWithNativePicker,\n} from '@taiga-ui/core/components/textfield';\nimport {TuiNativeTimePicker} from '@taiga-ui/kit/components/input-time';\n\nimport {TuiInputDateTimeDirective} from './input-date-time.directive';\n\n@Component({\n selector: 'input[tuiInputDateTime][type=\"datetime-local\"]',\n imports: [TuiTextfieldContent],\n templateUrl: './input-date-time.template.html',\n styleUrls: ['./input-date-time.style.less'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n hostDirectives: [TuiWithNativePicker],\n host: {ngSkipHydration: 'true'},\n})\nexport class TuiInputDateTimeComponent extends TuiNativeTimePicker {\n protected readonly host = inject(TuiInputDateTimeDirective);\n protected readonly step = computed(() => this.getStep(this.host.timeMode()));\n protected readonly value = computed(() => this.toISOString(this.host.value()));\n\n protected min = computed(() =>\n this.toISOString([this.host.min(), this.host.minTime()]),\n );\n\n protected max = computed(() =>\n this.toISOString([this.host.max(), this.host.maxTime()]),\n );\n\n protected onInput(value: string): void {\n if (!value) {\n return this.host.setValue(null);\n }\n\n const date = new Date(value);\n const day = TuiDay.fromLocalNativeDate(date);\n const time = TuiTime.fromLocalNativeDate(date);\n\n this.host.setValue([day, time]);\n }\n}\n","@if (host.native) {\n <input\n *tuiTextfieldContent\n type=\"datetime-local\"\n [attr.list]=\"list\"\n [max]=\"max()\"\n [min]=\"min()\"\n [step]=\"step()\"\n [value]=\"value()\"\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 {TuiInputDateTimeComponent} from './input-date-time.component';\nimport {TuiInputDateTimeDirective} from './input-date-time.directive';\n\nexport const TuiInputDateTime = [\n TuiInputDateTimeDirective,\n TuiInputDateTimeComponent,\n TuiCalendar,\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAqBa,MAAA,mCAAmC,GAAG;AAC/C,IAAA,gBAAgB,EAAE,8BAA8B;AAChD,IAAA,QAAQ,EAAE,OAAO;AACjB,IAAA,iBAAiB,EAAE,IAAI;;AAGd,MAAA,2BAA2B,GAAG,IAAI,cAAc,CACzD,SAAS,GAAG,6BAA6B,GAAG,EAAE,EAC9C;AACI,IAAA,OAAO,EAAE,OAAO;QACZ,GAAG,MAAM,CAAC,0BAA0B,CAAC;AACrC,QAAA,GAAG,mCAAmC;KACzC,CAAC;AACL,CAAA;AAGE,MAAM,+BAA+B,GAAG,CAC3C,OAAyC,KAEzC,iBAAiB,CAAC,2BAA2B,EAAE,OAAO,EAAE;AACpD,IAAA,GAAG,kCAAkC;AACrC,IAAA,GAAG,mCAAmC;AACzC,CAAA;;ACKL,MAAM,QAAQ,GAAG,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;AAClC,MAAM,QAAQ,GAAG,OAAO,CAAC,wBAAwB,CAAC,mBAAmB,GAAG,CAAC,CAAC;AAkBpE,MAAO,yBACT,SAAQ,gBAAmD,CAAA;AAjB/D,IAAA,WAAA,GAAA;;QAoBqB,IAAW,CAAA,WAAA,GAAG,QAAQ,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;AAEnC,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,2BAA2B,CAAC;AAE7C,QAAA,IAAA,CAAA,MAAM,GAAG,iBAAiB,CAAC,CAAC,IAAI,KAAI;AAC5D,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE;YAExD,OAAO,CAAA,EAAG,IAAI,CAAA,EAAG,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAA,EAAG,IAAI,CAAA,CAAE;AAC5D,SAAC,CAAC;AAEiB,QAAA,IAAA,CAAA,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC;AAE1B,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,GAAG,CAC3D,CAAC,CAAC,EAAE,CAAC,KAAK,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,KAAK,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAClE;QAEkB,IAAmB,CAAA,mBAAA,GAAG,mBAAmB,CACxD,yBAAyB,EACzB,qBAAqB,EACrB,CAAC,KAA+C,KAC5C,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,mBAAmB,EAAE,CAAC,KAAK,CAAC,CAAC,CACnE;QAEkB,IAAI,CAAA,IAAA,GAAG,UAAU,CAChC,QAAQ,CAAC,MACL,IAAI,CAAC,WAAW,CAAC;YACb,QAAQ,EAAE,gBAAgB,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC;AAC9C,YAAA,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE;AACzB,YAAA,GAAG,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;AACpD,YAAA,GAAG,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;AACpD,YAAA,aAAa,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,SAAS;AACtC,YAAA,iBAAiB,EAAE,IAAI,CAAC,OAAO,CAAC,iBAAiB;SACpD,CAAC,CACL,CACJ;QAEe,IAAQ,CAAA,QAAA,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;AACxC,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC;AAC1B,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC;AA6I7C;;IA1IG,IACW,cAAc,CAAC,CAAkB,EAAA;AACxC,QAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;;IAGxB,IACoB,SAAS,CACzB,GAAsD,EAAA;QAEtD,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC;AAE3D,QAAA,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC;QACtC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,QAAQ,CAAC;;IAGtC,IACoB,SAAS,CACzB,GAAsD,EAAA;QAEtD,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC;AAE3D,QAAA,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC;QACtC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,QAAQ,CAAC;;AAG/B,IAAA,QAAQ,CAAC,KAA+C,EAAA;AAC3D,QAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;AACpB,QAAA,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;;AAGnC,IAAA,OAAO,CAAC,OAAe,EAAA;QACnC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC;QAEzE,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AAC3B,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;QACpB,UAAU,CACN,CAAC,UAAU,GAAG,kBAAkB,GAAG,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,MAAM,KACpE,IAAI,CAAC,EAAE,CAAC,iBAAiB,CAAC,UAAU,EAAE,UAAU,CAAC,CACxD;;AAGW,IAAA,UAAU,CAAC,KAAsC,EAAA;AAC7D,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;YACvB,SAAS,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;;;AAI5D,IAAA,eAAe,CAAC,QAAqB,EAAA;AACpD,QAAA,KAAK,CAAC,eAAe,CAAC,QAAQ,CAAC;QAC/B,QAAQ,CAAC,mBAAmB,GAAG,CAAC,GAAW,KACvC,IAAI,CAAC,QAAQ,CAAC,mBAAmB,EAAE,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;;AAGrC,IAAA,aAAa,CAAC,KAAa,EAAA;QAC1C,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC;AAC/B,QAAA,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,sBAAsB,CAAC,EAAC,SAAS,EAAE,KAAK,EAAC,CAAC;QAEjE,MAAM,CAAC,IAAI,GAAG,EAAE,EAAE,IAAI,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC;AAC1E,QAAA,MAAM,UAAU,GACZ,IAAI,CAAC,MAAM,IAAI;AACX,cAAE,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI;cAC9C,IAAI;QACd,MAAM,UAAU,GACZ,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,QAAQ,EAAE,CAAC,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,IAAI;QAE5E,IAAI,CAAC,UAAU,KAAK,IAAI,IAAI,CAAC,UAAU,CAAC,EAAE;AACtC,YAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;;AAG9B,QAAA,MAAM,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE;AAEtD,QAAA,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,UAAU,CAAC,IAAI,MAAM,CAAC,UAAU,CAAC,KAAK,MAAM,CAAC,QAAQ,CAAC,EAAE;YAC3E,IAAI,CAAC,QAAQ,CAAC,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;;;AAI5B,IAAA,SAAS,CACxB,KAA+C,EAAA;QAE/C,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,KAAK,IAAI,EAAE;QAEhC,MAAM,UAAU,GACZ,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE;QACrE,MAAM,UAAU,GAAG,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;AAElD,QAAA,OAAO;cACD,CAAG,EAAA,UAAU,CAAG,EAAA,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAG,EAAA,UAAU,CAAE;cAC7D,UAAU;;AAGZ,IAAA,SAAS,CAAC,CAAC,IAAI,EAAE,IAAI,CAA2B,EAAA;QACpD,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE;AAC/B,cAAE,IAAI,CAAC,OAAO,EAAE,CAAC,sBAAsB;cACrC,CAAC,QAAQ;QACf,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE;AAC/B,cAAE,IAAI,CAAC,OAAO,EAAE,CAAC,sBAAsB;cACrC,QAAQ;QAEd,OAAO;YACH,IAAI;YACJ,IAAI;AACA,gBAAA,OAAO,CAAC,wBAAwB,CAC5B,QAAQ,CAAC,IAAI,CAAC,sBAAsB,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,CACpD;SACR;;AAGG,IAAA,WAAW,CACf,MAAyD,EAAA;AAEzD,QAAA,MAAM,OAAO,GAAG,+BAA+B,CAAC,MAAM,CAAC;QACvD,MAAM,EAAC,QAAQ,EAAE,QAAQ,EAAE,iBAAiB,EAAC,GAAG,MAAM;AACtD,QAAA,MAAM,qBAAqB,GAAG,6BAA6B,CAAC,CAAC,OAAO,KAAI;AACpE,YAAA,OAAO,CAAC,SAAS;AACb,gBAAA,OAAO,CAAC,cAAe;AACvB,oBAAA,QAAQ,CAAC,MAAM,GAAG,iBAAiB,CAAC,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK;AAC/D,sBAAE;sBACA,SAAS;AACvB,SAAC,CAAC;QAEF,OAAO;AACH,YAAA,GAAG,OAAO;YACV,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM,CAC3B,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,qBAAqB,GAAG,EAAE,CACvD;SACJ;;AAGG,IAAA,YAAY,CAAC,CAAC,EAAC,IAAI,EAAE,KAAK,EAAE,GAAG,EAAC,EAAE,EAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAC,CAGtE,EAAA;AACG,QAAA,OAAO,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,CAAC;;+GArLzD,yBAAyB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAzB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,yBAAyB,EAbvB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,EAAA,cAAA,EAAA,CAAA,UAAA,EAAA,gBAAA,CAAA,EAAA,SAAA,EAAA,CAAA,KAAA,EAAA,WAAA,CAAA,EAAA,SAAA,EAAA,CAAA,KAAA,EAAA,WAAA,CAAA,EAAA,EAAA,SAAA,EAAA;YACP,kBAAkB,CAAC,eAAe,CAAC;YACnC,YAAY,CAAC,yBAAyB,CAAC;YACvC,sBAAsB,CAAC,yBAAyB,CAAC;YACjD,uBAAuB,CAAC,2BAA2B,CAAC;AACvD,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,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAhBrC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,yBAAyB;AACnC,oBAAA,SAAS,EAAE;wBACP,kBAAkB,CAAC,eAAe,CAAC;AACnC,wBAAA,YAAY,CAA2B,yBAAA,CAAA;AACvC,wBAAA,sBAAsB,CAA2B,yBAAA,CAAA;wBACjD,uBAAuB,CAAC,2BAA2B,CAAC;AACvD,qBAAA;AACD,oBAAA,cAAc,EAAE;wBACZ,gBAAgB;wBAChB,eAAe;wBACf,yBAAyB;wBACzB,gBAAgB;AACnB,qBAAA;AACJ,iBAAA;8BA+Cc,cAAc,EAAA,CAAA;sBADxB,KAAK;uBAAC,UAAU;gBAMG,SAAS,EAAA,CAAA;sBAD5B,KAAK;uBAAC,KAAK;gBAWQ,SAAS,EAAA,CAAA;sBAD5B,KAAK;uBAAC,KAAK;;;ACrGV,MAAO,yBAA0B,SAAQ,mBAAmB,CAAA;AAVlE,IAAA,WAAA,GAAA;;AAWuB,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAAC,yBAAyB,CAAC;AACxC,QAAA,IAAA,CAAA,IAAI,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;AACzD,QAAA,IAAA,CAAA,KAAK,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;QAEpE,IAAG,CAAA,GAAA,GAAG,QAAQ,CAAC,MACrB,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAC3D;QAES,IAAG,CAAA,GAAA,GAAG,QAAQ,CAAC,MACrB,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAC3D;AAaJ;AAXa,IAAA,OAAO,CAAC,KAAa,EAAA;QAC3B,IAAI,CAAC,KAAK,EAAE;YACR,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;;AAGnC,QAAA,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC;QAC5B,MAAM,GAAG,GAAG,MAAM,CAAC,mBAAmB,CAAC,IAAI,CAAC;QAC5C,MAAM,IAAI,GAAG,OAAO,CAAC,mBAAmB,CAAC,IAAI,CAAC;QAE9C,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;;+GAtB1B,yBAAyB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAzB,yBAAyB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kDAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,cAAA,EAAA,CAAA,EAAA,SAAA,EAAAA,EAAA,CAAA,mBAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC1BtC,iYAcA,EAAA,MAAA,EAAA,CAAA,yVAAA,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;;4FAQpB,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAVrC,SAAS;+BACI,gDAAgD,EAAA,OAAA,EACjD,CAAC,mBAAmB,CAAC,iBAGf,iBAAiB,CAAC,IAAI,EACpB,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAAA,cAAA,EAC/B,CAAC,mBAAmB,CAAC,QAC/B,EAAC,eAAe,EAAE,MAAM,EAAC,EAAA,QAAA,EAAA,iYAAA,EAAA,MAAA,EAAA,CAAA,yVAAA,CAAA,EAAA;;;AEnBtB,MAAA,gBAAgB,GAAG;IAC5B,yBAAyB;IACzB,yBAAyB;IACzB,WAAW;;;ACRf;;AAEG;;;;"}
1
+ {"version":3,"file":"taiga-ui-kit-components-input-date-time.mjs","sources":["../../../projects/kit/components/input-date-time/input-date-time.options.ts","../../../projects/kit/components/input-date-time/input-date-time.directive.ts","../../../projects/kit/components/input-date-time/input-date-time.component.ts","../../../projects/kit/components/input-date-time/input-date-time.template.html","../../../projects/kit/components/input-date-time/input-date-time.ts","../../../projects/kit/components/input-date-time/taiga-ui-kit-components-input-date-time.ts"],"sourcesContent":["import {type FactoryProvider, inject, InjectionToken} from '@angular/core';\nimport {type MaskitoTimeMode} from '@maskito/kit';\nimport {\n TUI_IDENTITY_VALUE_TRANSFORMER,\n type TuiValueTransformer,\n} from '@taiga-ui/cdk/classes';\nimport {type TuiDay, type TuiTime} from '@taiga-ui/cdk/date-time';\nimport {tuiProvideOptions} from '@taiga-ui/cdk/utils/di';\nimport {\n TUI_INPUT_DATE_DEFAULT_OPTIONS,\n TUI_INPUT_DATE_OPTIONS,\n type TuiInputDateOptions,\n} from '@taiga-ui/kit/components/input-date';\n\nexport interface TuiInputDateTimeOptions extends Omit<\n TuiInputDateOptions,\n 'valueTransformer'\n> {\n readonly timeMode: MaskitoTimeMode;\n readonly dateTimeSeparator: string;\n readonly valueTransformer: TuiValueTransformer<[TuiDay, TuiTime | null] | null, any>;\n}\n\nexport const TUI_INPUT_DATE_TIME_DEFAULT_OPTIONS = {\n valueTransformer: TUI_IDENTITY_VALUE_TRANSFORMER,\n timeMode: 'HH:MM',\n dateTimeSeparator: ', ',\n} as const;\n\nexport const TUI_INPUT_DATE_TIME_OPTIONS = new InjectionToken<TuiInputDateTimeOptions>(\n ngDevMode ? 'TUI_INPUT_DATE_TIME_OPTIONS' : '',\n {\n factory: () => ({\n ...inject(TUI_INPUT_DATE_OPTIONS),\n ...TUI_INPUT_DATE_TIME_DEFAULT_OPTIONS,\n }),\n },\n);\n\nexport const tuiInputDateTimeOptionsProvider = (\n options: Partial<TuiInputDateTimeOptions>,\n): FactoryProvider =>\n tuiProvideOptions(TUI_INPUT_DATE_TIME_OPTIONS, options, {\n ...TUI_INPUT_DATE_DEFAULT_OPTIONS,\n ...TUI_INPUT_DATE_TIME_DEFAULT_OPTIONS,\n });\n","import {computed, Directive, effect, inject, input, untracked} from '@angular/core';\nimport {MaskitoDirective} from '@maskito/angular';\nimport {type MaskitoOptions} from '@maskito/core';\nimport {\n maskitoDateTimeOptionsGenerator,\n type MaskitoDateTimeParams,\n maskitoSelectionChangeHandler,\n} from '@maskito/kit';\nimport {tuiAsControl, tuiValueTransformerFrom} from '@taiga-ui/cdk/classes';\nimport {\n DATE_FILLER_LENGTH,\n MILLISECONDS_IN_DAY,\n TuiDay,\n TuiTime,\n} from '@taiga-ui/cdk/date-time';\nimport {tuiDirectiveBinding} from '@taiga-ui/cdk/utils/di';\nimport {tuiClamp, tuiSum} from '@taiga-ui/cdk/utils/math';\nimport {type TuiCalendar} from '@taiga-ui/core/components/calendar';\nimport {tuiAsOptionContent} from '@taiga-ui/core/components/data-list';\nimport {TuiWithInput} from '@taiga-ui/core/components/input';\nimport {\n tuiAsTextfieldAccessor,\n type TuiTextfieldAccessor,\n} from '@taiga-ui/core/components/textfield';\nimport {\n TuiItemsHandlersDirective,\n TuiItemsHandlersValidator,\n} from '@taiga-ui/core/directives/items-handlers';\nimport {TuiDropdownAuto} from '@taiga-ui/core/portals/dropdown';\nimport {TuiInputDateBase, tuiWithDateFiller} from '@taiga-ui/kit/components/input-date';\nimport {TuiSelectOption} from '@taiga-ui/kit/components/select';\nimport {TUI_TIME_TEXTS} from '@taiga-ui/kit/tokens';\nimport {tuiMaskito} from '@taiga-ui/kit/utils';\nimport {noop} from 'rxjs';\n\nimport {TUI_INPUT_DATE_TIME_OPTIONS} from './input-date-time.options';\n\nconst MIN_TIME = new TuiTime(0, 0);\nconst MAX_TIME = TuiTime.fromAbsoluteMilliseconds(MILLISECONDS_IN_DAY - 1);\n\n@Directive({\n selector: 'input[tuiInputDateTime]',\n providers: [\n tuiAsOptionContent(TuiSelectOption),\n tuiAsControl(TuiInputDateTimeDirective),\n tuiAsTextfieldAccessor(TuiInputDateTimeDirective),\n tuiValueTransformerFrom(TUI_INPUT_DATE_TIME_OPTIONS),\n ],\n hostDirectives: [\n MaskitoDirective,\n TuiDropdownAuto,\n TuiItemsHandlersValidator,\n TuiWithInput,\n ],\n})\nexport class TuiInputDateTimeDirective\n extends TuiInputDateBase<readonly [TuiDay, TuiTime | null]>\n implements TuiTextfieldAccessor<readonly [TuiDay, TuiTime | null]>\n{\n private readonly timeFillers = inject(TUI_TIME_TEXTS);\n\n protected override readonly options = inject(TUI_INPUT_DATE_TIME_OPTIONS);\n protected override readonly filler = tuiWithDateFiller(\n (date) =>\n `${date}${this.options.dateTimeSeparator}${this.timeFillers()?.[this.timeMode()] ?? ''}`,\n );\n\n protected override readonly valueEffect = effect(noop);\n protected override readonly identity = tuiDirectiveBinding(\n TuiItemsHandlersDirective,\n 'identityMatcher',\n (a, b) => tuiSum(...a.map(Number)) === tuiSum(...b.map(Number)),\n {},\n );\n\n protected readonly disabledItemHandler = tuiDirectiveBinding(\n TuiItemsHandlersValidator,\n 'disabledItemHandler',\n computed(\n () => (value: readonly [TuiDay, TuiTime | null] | null) =>\n Boolean(value && this.handlers.disabledItemHandler()(value)),\n ),\n );\n\n protected readonly mask = tuiMaskito(\n computed(() =>\n this.computeMask({\n dateMode: this.format().mode,\n timeMode: this.timeMode(),\n min: this.toNativeDate([this.min(), this.minTime()]),\n max: this.toNativeDate([this.max(), this.maxTime()]),\n dateSeparator: this.format().separator,\n dateTimeSeparator: this.options.dateTimeSeparator,\n }),\n ),\n );\n\n public override readonly min = computed<TuiDay>((min = this.minInput()) =>\n Array.isArray(min) ? min[0] : (min ?? this.options.min),\n );\n\n public override readonly max = computed<TuiDay>((max = this.maxInput()) =>\n Array.isArray(max) ? max[0] : (max ?? this.options.max),\n );\n\n public readonly minTime = computed((min = this.minInput()) =>\n Array.isArray(min) ? min[1] : MIN_TIME,\n );\n\n public readonly maxTime = computed((max = this.maxInput()) =>\n Array.isArray(max) ? max[1] : MAX_TIME,\n );\n\n public readonly timeMode = input(this.options.timeMode);\n\n public readonly minInput = input<TuiDay | readonly [TuiDay, TuiTime | null] | null>(\n this.options.min,\n {alias: 'min'},\n );\n\n public readonly maxInput = input<TuiDay | readonly [TuiDay, TuiTime | null] | null>(\n this.options.max,\n {alias: 'max'},\n );\n\n public setValue(value: readonly [TuiDay, TuiTime | null] | null): void {\n this.onChange(value);\n this.input.value.set(this.stringify(value));\n }\n\n public override setDate(newDate: TuiDay): void {\n const [date, time] = this.clampTime([newDate, this.value()?.[1] ?? null]);\n\n this.setValue([date, time]);\n this.open.set(false);\n setTimeout(\n (caretIndex = DATE_FILLER_LENGTH + this.options.dateTimeSeparator.length) =>\n this.el.setSelectionRange(caretIndex, caretIndex),\n );\n }\n\n public override writeValue(value: [TuiDay, TuiTime | null] | 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 untracked(() => this.input.value.set(this.stringify(this.value())));\n }\n }\n\n protected override processCalendar(calendar: TuiCalendar): void {\n super.processCalendar(calendar);\n calendar.disabledItemHandler = (day: TuiDay) =>\n this.handlers.disabledItemHandler()([day, null]);\n }\n\n protected override onValueChange(value: string): void {\n this.input.value.set(value);\n this.control?.control?.updateValueAndValidity({emitEvent: false});\n\n const [date = '', time = ''] = value.split(this.options.dateTimeSeparator);\n const parsedDate =\n date.length >= DATE_FILLER_LENGTH\n ? TuiDay.normalizeParse(date, this.format().mode)\n : null;\n const parsedTime =\n time.length === this.timeMode().length ? TuiTime.fromString(time) : null;\n\n if (!parsedDate || (time && !parsedTime)) {\n return this.onChange(null);\n }\n\n const [prevDate, prevTime = null] = this.value() ?? [];\n\n if (!prevDate?.daySame(parsedDate) || Number(parsedTime) !== Number(prevTime)) {\n this.onChange([parsedDate, parsedTime]);\n }\n }\n\n protected override stringify(\n value: readonly [TuiDay, TuiTime | null] | null,\n ): string {\n const [date, time] = value ?? [];\n\n const dateString =\n date?.toString(this.format().mode, this.format().separator) ?? '';\n const timeString = time?.toString(this.timeMode());\n\n return timeString\n ? `${dateString}${this.options.dateTimeSeparator}${timeString}`\n : dateString;\n }\n\n private clampTime([date, time]: [TuiDay, TuiTime | null]): [TuiDay, TuiTime | null] {\n const min = date.daySame(this.min())\n ? this.minTime().toAbsoluteMilliseconds()\n : -Infinity;\n const max = date.daySame(this.max())\n ? this.maxTime().toAbsoluteMilliseconds()\n : Infinity;\n\n return [\n date,\n time &&\n TuiTime.fromAbsoluteMilliseconds(\n tuiClamp(time.toAbsoluteMilliseconds(), min, max),\n ),\n ];\n }\n\n private computeMask(\n params: Omit<Required<MaskitoDateTimeParams>, 'timeStep'>,\n ): MaskitoOptions {\n const options = maskitoDateTimeOptionsGenerator(params);\n const {timeMode, dateMode, dateTimeSeparator} = params;\n const inputModeSwitchPlugin = maskitoSelectionChangeHandler((element) => {\n element.inputMode =\n element.selectionStart! >=\n dateMode.length + dateTimeSeparator.length + timeMode.indexOf(' AA')\n ? 'text'\n : 'numeric';\n });\n\n return {\n ...options,\n plugins: options.plugins.concat(\n timeMode.includes('AA') ? inputModeSwitchPlugin : [],\n ),\n };\n }\n\n private toNativeDate([{year, month, day}, {hours, minutes, seconds, ms}]: readonly [\n TuiDay,\n TuiTime,\n ]): Date {\n return new Date(year, month, day, hours, minutes, seconds, ms);\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n inject,\n ViewEncapsulation,\n} from '@angular/core';\nimport {TuiDay, TuiTime} from '@taiga-ui/cdk/date-time';\nimport {\n TuiTextfieldContent,\n TuiWithNativePicker,\n} from '@taiga-ui/core/components/textfield';\nimport {TuiNativeTimePicker} from '@taiga-ui/kit/components/input-time';\n\nimport {TuiInputDateTimeDirective} from './input-date-time.directive';\n\n@Component({\n selector: 'input[tuiInputDateTime][type=\"datetime-local\"]',\n imports: [TuiTextfieldContent],\n templateUrl: './input-date-time.template.html',\n styleUrl: './input-date-time.style.less',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n hostDirectives: [TuiWithNativePicker],\n host: {ngSkipHydration: 'true'},\n})\nexport class TuiInputDateTimeComponent extends TuiNativeTimePicker {\n protected readonly host = inject(TuiInputDateTimeDirective);\n protected readonly step = computed(() => this.getStep(this.host.timeMode()));\n protected readonly value = computed(() => this.toISOString(this.host.value()));\n\n protected min = computed(() =>\n this.toISOString([this.host.min(), this.host.minTime()]),\n );\n\n protected max = computed(() =>\n this.toISOString([this.host.max(), this.host.maxTime()]),\n );\n\n protected onInput(value: string): void {\n if (!value) {\n return this.host.setValue(null);\n }\n\n const date = new Date(value);\n const day = TuiDay.fromLocalNativeDate(date);\n const time = TuiTime.fromLocalNativeDate(date);\n\n this.host.setValue([day, time]);\n }\n}\n","@if (host.native) {\n <input\n *tuiTextfieldContent\n type=\"datetime-local\"\n [attr.list]=\"list\"\n [max]=\"max()\"\n [min]=\"min()\"\n [step]=\"step()\"\n [value]=\"value()\"\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';\nimport {TuiLabel} from '@taiga-ui/core/components/label';\nimport {\n TuiTextfieldComponent,\n TuiTextfieldOptionsDirective,\n} from '@taiga-ui/core/components/textfield';\nimport {TuiDropdownContent} from '@taiga-ui/core/portals/dropdown';\n\nimport {TuiInputDateTimeComponent} from './input-date-time.component';\nimport {TuiInputDateTimeDirective} from './input-date-time.directive';\n\nexport const TuiInputDateTime = [\n TuiInputDateTimeDirective,\n TuiInputDateTimeComponent,\n TuiCalendar,\n TuiLabel,\n TuiTextfieldComponent,\n TuiTextfieldOptionsDirective,\n TuiDropdownContent,\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1"],"mappings":"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"}
@@ -1,37 +1,38 @@
1
1
  import * as i0 from '@angular/core';
2
- import { inject, computed, effect, signal, untracked, Input, Directive, ChangeDetectionStrategy, ViewEncapsulation, Component } from '@angular/core';
3
- import { toSignal } from '@angular/core/rxjs-interop';
4
- import { tuiDirectiveBinding, changeDateSeparator } from '@taiga-ui/cdk/utils/miscellaneous';
5
- import * as i1 from '@taiga-ui/core/components/textfield';
6
- import { TuiTextfieldComponent, tuiInjectAuxiliary, TuiTextfieldDirective, tuiTextfieldIconBinding, TuiWithNativePicker, TuiWithTextfield, TuiTextfieldContent } from '@taiga-ui/core/components/textfield';
7
- import { TUI_DATE_FORMAT, TUI_DEFAULT_DATE_FORMAT } from '@taiga-ui/core/tokens';
2
+ import { inject, computed, effect, untracked, Directive, input, ChangeDetectionStrategy, ViewEncapsulation, Component } from '@angular/core';
3
+ import { tuiDirectiveBinding, tuiCreateOptions } from '@taiga-ui/cdk/utils/di';
4
+ import * as i1$1 from '@taiga-ui/core/components/textfield';
5
+ import { TuiTextfieldComponent, tuiInjectAuxiliary, tuiTextfieldIcon, TuiWithNativePicker, TuiTextfieldContent, TuiTextfieldOptionsDirective } from '@taiga-ui/core/components/textfield';
6
+ import { TUI_DATE_FORMAT } from '@taiga-ui/core/tokens';
8
7
  import { TUI_DATE_TEXTS } from '@taiga-ui/kit/tokens';
9
8
  import { identity } from 'rxjs';
10
9
  import { TuiCalendar } from '@taiga-ui/core/components/calendar';
10
+ import { TuiLabel } from '@taiga-ui/core/components/label';
11
+ import * as i2 from '@taiga-ui/core/portals/dropdown';
12
+ import { TuiDropdownOpen, tuiDropdownEnabled, TuiDropdownAuto, TuiDropdownContent } from '@taiga-ui/core/portals/dropdown';
11
13
  import { TUI_LAST_DAY, TUI_FIRST_DAY, TuiDay, DATE_FILLER_LENGTH } from '@taiga-ui/cdk/date-time';
12
14
  import * as i4 from '@maskito/angular';
13
15
  import { MaskitoDirective } from '@maskito/angular';
14
16
  import { maskitoDateOptionsGenerator } from '@maskito/kit';
15
17
  import { TUI_IDENTITY_VALUE_TRANSFORMER, TuiControl, tuiAsControl, tuiValueTransformerFrom } from '@taiga-ui/cdk/classes';
16
- import { TUI_ALLOW_SIGNAL_WRITES } from '@taiga-ui/cdk/constants';
17
18
  import { TUI_IS_MOBILE } from '@taiga-ui/cdk/tokens';
18
19
  import { tuiInjectElement } from '@taiga-ui/cdk/utils/dom';
19
20
  import { tuiAsOptionContent } from '@taiga-ui/core/components/data-list';
20
- import * as i2 from '@taiga-ui/core/directives/dropdown';
21
- import { tuiDropdownOpen, tuiDropdownEnabled, TuiDropdownAuto } from '@taiga-ui/core/directives/dropdown';
21
+ import * as i1 from '@taiga-ui/core/components/input';
22
+ import { TuiInputDirective, TuiWithInput } from '@taiga-ui/core/components/input';
22
23
  import * as i3 from '@taiga-ui/core/directives/items-handlers';
23
- import { TuiItemsHandlersDirective, TUI_ITEMS_HANDLERS, TuiItemsHandlersValidator } from '@taiga-ui/core/directives/items-handlers';
24
+ import { TuiItemsHandlersDirective, TuiItemsHandlersValidator } from '@taiga-ui/core/directives/items-handlers';
24
25
  import { TuiCalendarRange } from '@taiga-ui/kit/components/calendar-range';
25
26
  import { TuiSelectOption } from '@taiga-ui/kit/components/select';
26
27
  import { tuiMaskito } from '@taiga-ui/kit/utils';
27
- import { tuiCreateOptions } from '@taiga-ui/cdk/utils/di';
28
28
 
29
+ function changeDateSeparator(dateString, newDateSeparator) {
30
+ return dateString.replaceAll(/[^0-9A-Za-zА-Яа-я]/gi, newDateSeparator);
31
+ }
29
32
  function tuiWithDateFiller(fn = identity) {
30
- const texts = toSignal(inject(TUI_DATE_TEXTS));
31
- const format = toSignal(inject(TUI_DATE_FORMAT), {
32
- initialValue: TUI_DEFAULT_DATE_FORMAT,
33
- });
34
- return tuiDirectiveBinding(TuiTextfieldComponent, 'fillerSetter', computed(() => {
33
+ const texts = inject(TUI_DATE_TEXTS);
34
+ const format = inject(TUI_DATE_FORMAT);
35
+ return tuiDirectiveBinding(TuiTextfieldComponent, 'filler', computed(() => {
35
36
  const { mode, separator } = format();
36
37
  const fillersMap = texts() ?? '';
37
38
  const filler = fillersMap && changeDateSeparator(fillersMap[mode], separator);
@@ -39,65 +40,51 @@ function tuiWithDateFiller(fn = identity) {
39
40
  }), {});
40
41
  }
41
42
 
42
- const TUI_INPUT_DATE_DEFAULT_OPTIONS_NEW = {
43
+ const TUI_INPUT_DATE_DEFAULT_OPTIONS = {
43
44
  icon: () => '@tui.calendar',
44
45
  min: TUI_FIRST_DAY,
45
46
  max: TUI_LAST_DAY,
46
47
  valueTransformer: TUI_IDENTITY_VALUE_TRANSFORMER,
47
48
  };
48
- const [TUI_INPUT_DATE_OPTIONS_NEW, tuiInputDateOptionsProviderNew] = tuiCreateOptions(TUI_INPUT_DATE_DEFAULT_OPTIONS_NEW);
49
+ const [TUI_INPUT_DATE_OPTIONS, tuiInputDateOptionsProvider] = tuiCreateOptions(TUI_INPUT_DATE_DEFAULT_OPTIONS);
49
50
 
50
- const TUI_DATE_ADAPTER = {
51
- DMY: 'dd/mm/yyyy',
52
- MDY: 'mm/dd/yyyy',
53
- YMD: 'yyyy/mm/dd',
54
- };
55
51
  class TuiInputDateBase extends TuiControl {
56
52
  constructor() {
57
53
  super(...arguments);
58
54
  this.calendar = tuiInjectAuxiliary((x) => x instanceof TuiCalendar || x instanceof TuiCalendarRange);
59
55
  this.el = tuiInjectElement();
60
- this.textfield = inject(TuiTextfieldDirective);
56
+ this.input = inject(TuiInputDirective);
61
57
  this.filler = tuiWithDateFiller();
62
58
  this.mobile = inject(TUI_IS_MOBILE);
63
- this.open = tuiDropdownOpen();
64
- this.icon = tuiTextfieldIconBinding(TUI_INPUT_DATE_OPTIONS_NEW);
59
+ this.open = inject(TuiDropdownOpen).open;
60
+ this.icon = tuiTextfieldIcon(TUI_INPUT_DATE_OPTIONS);
65
61
  this.handlers = inject(TuiItemsHandlersDirective);
62
+ this.format = inject(TUI_DATE_FORMAT);
66
63
  this.dropdownEnabled = tuiDropdownEnabled(computed(() => !this.native && this.interactive()));
67
- this.options = inject(TUI_INPUT_DATE_OPTIONS_NEW);
68
- this.format = toSignal(inject(TUI_DATE_FORMAT), {
69
- initialValue: TUI_DEFAULT_DATE_FORMAT,
70
- });
64
+ this.identity = tuiDirectiveBinding(TuiItemsHandlersDirective, 'identityMatcher', (a, b) => a.daySame(b), {});
65
+ this.options = inject(TUI_INPUT_DATE_OPTIONS);
71
66
  this.valueEffect = effect(() => {
72
67
  const value = this.stringify(this.value()) ||
73
68
  (this.filler().length === this.el.value.length ? '' : this.el.value);
74
- this.textfield.value.set(value);
75
- }, TUI_ALLOW_SIGNAL_WRITES);
69
+ this.input.value.set(value);
70
+ });
76
71
  this.calendarIn = effect(() => {
77
72
  if (this.calendar()) {
78
73
  this.processCalendar(this.calendar());
79
74
  }
80
- }, TUI_ALLOW_SIGNAL_WRITES);
75
+ });
81
76
  this.calendarOut = effect((onCleanup) => {
82
77
  const subscription = this.calendar()?.valueChange.subscribe((value) => this.setDate(value));
83
78
  onCleanup(() => subscription?.unsubscribe());
84
79
  });
85
80
  this.native = !!inject(TuiWithNativePicker, { optional: true }) && this.mobile;
86
- this.min = signal(this.options.min);
87
- this.max = signal(this.options.max);
88
- }
89
- set minSetter(min) {
90
- this.min.set(min instanceof TuiDay ? min : this.options.min);
91
- }
92
- set maxSetter(max) {
93
- this.max.set(max instanceof TuiDay ? max : this.options.max);
94
81
  }
95
82
  writeValue(value) {
96
83
  const reset = this.control.pristine && this.control.untouched && !value;
97
84
  const changed = untracked(() => value !== this.value());
98
85
  if (changed || reset) {
99
86
  super.writeValue(value);
100
- this.textfield.value.set(this.stringify(this.value()));
87
+ this.input.value.set(this.stringify(this.value()));
101
88
  }
102
89
  }
103
90
  setDate(value) {
@@ -123,13 +110,12 @@ class TuiInputDateBase extends TuiControl {
123
110
  stringify(value) {
124
111
  return value?.toString(this.format().mode, this.format().separator) ?? '';
125
112
  }
126
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiInputDateBase, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
127
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.15", type: TuiInputDateBase, isStandalone: true, inputs: { minSetter: ["min", "minSetter"], maxSetter: ["max", "maxSetter"] }, host: { listeners: { "input": "onValueChange($event.target.value)", "click.capture.stop": "onClick()" }, properties: { "attr.inputmode": "mobile && open() ? \"none\" : \"numeric\"", "disabled": "disabled()" } }, usesInheritance: true, ngImport: i0 }); }
113
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiInputDateBase, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
114
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.17", type: TuiInputDateBase, isStandalone: true, host: { listeners: { "input": "onValueChange($event.target.value)", "click.capture.stop": "onClick()" }, properties: { "attr.inputmode": "mobile && open() ? \"none\" : \"numeric\"", "disabled": "disabled()" } }, usesInheritance: true, ngImport: i0 }); }
128
115
  }
129
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiInputDateBase, decorators: [{
116
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiInputDateBase, decorators: [{
130
117
  type: Directive,
131
118
  args: [{
132
- standalone: true,
133
119
  host: {
134
120
  '[attr.inputmode]': 'mobile && open() ? "none" : "numeric"',
135
121
  '[disabled]': 'disabled()',
@@ -137,20 +123,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
137
123
  '(click.capture.stop)': 'onClick()',
138
124
  },
139
125
  }]
140
- }], propDecorators: { minSetter: [{
141
- type: Input,
142
- args: ['min']
143
- }], maxSetter: [{
144
- type: Input,
145
- args: ['max']
146
- }] } });
126
+ }] });
147
127
  class TuiInputDateDirective extends TuiInputDateBase {
148
128
  constructor() {
149
129
  super(...arguments);
150
- this.identity = inject(TUI_ITEMS_HANDLERS).identityMatcher.set((a, b) => a.daySame(b));
130
+ this.max = input(this.options.max, {
131
+ transform: (max) => max instanceof TuiDay ? max : TUI_LAST_DAY,
132
+ });
133
+ this.min = input(this.options.min, {
134
+ transform: (min) => min instanceof TuiDay ? min : TUI_FIRST_DAY,
135
+ });
151
136
  this.mask = tuiMaskito(computed(() => maskitoDateOptionsGenerator({
152
137
  separator: this.format().separator,
153
- mode: TUI_DATE_ADAPTER[this.format().mode],
138
+ mode: this.format().mode,
154
139
  min: this.min().toLocalNativeDate(),
155
140
  max: this.max().toLocalNativeDate(),
156
141
  })));
@@ -161,25 +146,24 @@ class TuiInputDateDirective extends TuiInputDateBase {
161
146
  ? TuiDay.normalizeParse(value, this.format().mode)
162
147
  : null);
163
148
  }
164
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiInputDateDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
165
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.15", type: TuiInputDateDirective, isStandalone: true, selector: "input[tuiInputDate]", providers: [
149
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiInputDateDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
150
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.17", type: TuiInputDateDirective, isStandalone: true, selector: "input[tuiInputDate]", inputs: { max: { classPropertyName: "max", publicName: "max", isSignal: true, isRequired: false, transformFunction: null }, min: { classPropertyName: "min", publicName: "min", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
166
151
  tuiAsOptionContent(TuiSelectOption),
167
152
  tuiAsControl(TuiInputDateDirective),
168
- tuiValueTransformerFrom(TUI_INPUT_DATE_OPTIONS_NEW),
169
- ], usesInheritance: true, hostDirectives: [{ directive: i1.TuiWithTextfield }, { directive: i2.TuiDropdownAuto }, { directive: i3.TuiItemsHandlersValidator }, { directive: i4.MaskitoDirective }], ngImport: i0 }); }
153
+ tuiValueTransformerFrom(TUI_INPUT_DATE_OPTIONS),
154
+ ], usesInheritance: true, hostDirectives: [{ directive: i1.TuiWithInput }, { directive: i2.TuiDropdownAuto }, { directive: i3.TuiItemsHandlersValidator }, { directive: i4.MaskitoDirective }], ngImport: i0 }); }
170
155
  }
171
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiInputDateDirective, decorators: [{
156
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiInputDateDirective, decorators: [{
172
157
  type: Directive,
173
158
  args: [{
174
- standalone: true,
175
159
  selector: 'input[tuiInputDate]',
176
160
  providers: [
177
161
  tuiAsOptionContent(TuiSelectOption),
178
162
  tuiAsControl(TuiInputDateDirective),
179
- tuiValueTransformerFrom(TUI_INPUT_DATE_OPTIONS_NEW),
163
+ tuiValueTransformerFrom(TUI_INPUT_DATE_OPTIONS),
180
164
  ],
181
165
  hostDirectives: [
182
- TuiWithTextfield,
166
+ TuiWithInput,
183
167
  TuiDropdownAuto,
184
168
  TuiItemsHandlersValidator,
185
169
  MaskitoDirective,
@@ -190,7 +174,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
190
174
  class TuiInputDateComponent {
191
175
  constructor() {
192
176
  this.host = inject(TuiInputDateDirective);
193
- this.list = null;
177
+ this.list = input();
194
178
  }
195
179
  onInput(value) {
196
180
  if (!value) {
@@ -199,28 +183,30 @@ class TuiInputDateComponent {
199
183
  const [year = 0, month = 0, day = 0] = value.split('-').map(Number);
200
184
  this.host.onChange(new TuiDay(year, month - 1, day));
201
185
  }
202
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiInputDateComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
203
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.15", type: TuiInputDateComponent, isStandalone: true, selector: "input[tuiInputDate][type=\"date\"]", inputs: { list: "list" }, host: { attributes: { "ngSkipHydration": "true" }, properties: { "attr.list": "null" } }, hostDirectives: [{ directive: i1.TuiWithNativePicker }], ngImport: i0, template: "@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", styles: ["tui-textfield input[tuiInputDate]~.t-content input[type=date]{position:absolute;top:0;left:auto;right:0;bottom:0;inline-size:2.5rem;padding:0;opacity:0}tui-textfield input[tuiInputDate]~.t-content input[type=date]::-webkit-calendar-picker-indicator{position:absolute;top:0;left:0;inline-size:100%;block-size:100%}\n"], dependencies: [{ kind: "directive", type: TuiTextfieldContent, selector: "ng-template[tuiTextfieldContent]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
186
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiInputDateComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
187
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.17", type: TuiInputDateComponent, isStandalone: true, selector: "input[tuiInputDate][type=\"date\"]", inputs: { list: { classPropertyName: "list", publicName: "list", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "ngSkipHydration": "true" }, properties: { "attr.list": "null" } }, hostDirectives: [{ directive: i1$1.TuiWithNativePicker }], ngImport: i0, template: "@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", styles: ["tui-textfield input[tuiInputDate]~.t-content input[type=date]{position:absolute;inset:0 0 0 auto;inline-size:2.5rem;padding:0;opacity:0}tui-textfield input[tuiInputDate]~.t-content input[type=date]::-webkit-calendar-picker-indicator{position:absolute;top:0;left:0;inline-size:100%;block-size:100%}\n"], dependencies: [{ kind: "directive", type: TuiTextfieldContent, selector: "ng-template[tuiTextfieldContent]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
204
188
  }
205
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiInputDateComponent, decorators: [{
189
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiInputDateComponent, decorators: [{
206
190
  type: Component,
207
191
  args: [{ selector: 'input[tuiInputDate][type="date"]', imports: [TuiTextfieldContent], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, hostDirectives: [TuiWithNativePicker], host: {
208
192
  ngSkipHydration: 'true',
209
193
  '[attr.list]': 'null',
210
- }, template: "@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", styles: ["tui-textfield input[tuiInputDate]~.t-content input[type=date]{position:absolute;top:0;left:auto;right:0;bottom:0;inline-size:2.5rem;padding:0;opacity:0}tui-textfield input[tuiInputDate]~.t-content input[type=date]::-webkit-calendar-picker-indicator{position:absolute;top:0;left:0;inline-size:100%;block-size:100%}\n"] }]
211
- }], propDecorators: { list: [{
212
- type: Input
213
- }] } });
194
+ }, template: "@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", styles: ["tui-textfield input[tuiInputDate]~.t-content input[type=date]{position:absolute;inset:0 0 0 auto;inline-size:2.5rem;padding:0;opacity:0}tui-textfield input[tuiInputDate]~.t-content input[type=date]::-webkit-calendar-picker-indicator{position:absolute;top:0;left:0;inline-size:100%;block-size:100%}\n"] }]
195
+ }] });
214
196
 
215
197
  const TuiInputDate = [
216
198
  TuiInputDateDirective,
217
199
  TuiInputDateComponent,
218
200
  TuiCalendar,
201
+ TuiLabel,
202
+ TuiTextfieldComponent,
203
+ TuiTextfieldOptionsDirective,
204
+ TuiDropdownContent,
219
205
  ];
220
206
 
221
207
  /**
222
208
  * Generated bundle index. Do not edit.
223
209
  */
224
210
 
225
- export { TUI_DATE_ADAPTER, TUI_INPUT_DATE_DEFAULT_OPTIONS_NEW, TUI_INPUT_DATE_OPTIONS_NEW, TuiInputDate, TuiInputDateBase, TuiInputDateComponent, TuiInputDateDirective, tuiInputDateOptionsProviderNew, tuiWithDateFiller };
211
+ export { TUI_INPUT_DATE_DEFAULT_OPTIONS, TUI_INPUT_DATE_OPTIONS, TuiInputDate, TuiInputDateBase, TuiInputDateComponent, TuiInputDateDirective, tuiInputDateOptionsProvider, tuiWithDateFiller };
226
212
  //# sourceMappingURL=taiga-ui-kit-components-input-date.mjs.map