@taiga-ui/kit 2.13.0 → 2.16.0-fixed

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 (434) hide show
  1. package/abstract/input-slider.d.ts +4 -3
  2. package/abstract/slider/slider.d.ts +2 -2
  3. package/abstract/taiga-ui-kit-abstract.metadata.json +1 -1
  4. package/bundles/taiga-ui-kit-abstract.umd.js +28 -12
  5. package/bundles/taiga-ui-kit-abstract.umd.js.map +1 -1
  6. package/bundles/taiga-ui-kit-abstract.umd.min.js +2 -2
  7. package/bundles/taiga-ui-kit-abstract.umd.min.js.map +1 -1
  8. package/bundles/taiga-ui-kit-components-breadcrumbs.umd.js +1 -1
  9. package/bundles/taiga-ui-kit-components-breadcrumbs.umd.js.map +1 -1
  10. package/bundles/taiga-ui-kit-components-breadcrumbs.umd.min.js +1 -1
  11. package/bundles/taiga-ui-kit-components-breadcrumbs.umd.min.js.map +1 -1
  12. package/bundles/taiga-ui-kit-components-checkbox.umd.js +1 -1
  13. package/bundles/taiga-ui-kit-components-checkbox.umd.min.js +1 -1
  14. package/bundles/taiga-ui-kit-components-checkbox.umd.min.js.map +1 -1
  15. package/bundles/taiga-ui-kit-components-field-error.umd.js +17 -6
  16. package/bundles/taiga-ui-kit-components-field-error.umd.js.map +1 -1
  17. package/bundles/taiga-ui-kit-components-field-error.umd.min.js +2 -2
  18. package/bundles/taiga-ui-kit-components-field-error.umd.min.js.map +1 -1
  19. package/bundles/taiga-ui-kit-components-input-count.umd.js +86 -30
  20. package/bundles/taiga-ui-kit-components-input-count.umd.js.map +1 -1
  21. package/bundles/taiga-ui-kit-components-input-count.umd.min.js +2 -2
  22. package/bundles/taiga-ui-kit-components-input-count.umd.min.js.map +1 -1
  23. package/bundles/taiga-ui-kit-components-input-date-range.umd.js +24 -24
  24. package/bundles/taiga-ui-kit-components-input-date-range.umd.js.map +1 -1
  25. package/bundles/taiga-ui-kit-components-input-date-range.umd.min.js +2 -2
  26. package/bundles/taiga-ui-kit-components-input-date-range.umd.min.js.map +1 -1
  27. package/bundles/taiga-ui-kit-components-input-date-time.umd.js +61 -32
  28. package/bundles/taiga-ui-kit-components-input-date-time.umd.js.map +1 -1
  29. package/bundles/taiga-ui-kit-components-input-date-time.umd.min.js +2 -2
  30. package/bundles/taiga-ui-kit-components-input-date-time.umd.min.js.map +1 -1
  31. package/bundles/taiga-ui-kit-components-input-date.umd.js +18 -17
  32. package/bundles/taiga-ui-kit-components-input-date.umd.js.map +1 -1
  33. package/bundles/taiga-ui-kit-components-input-date.umd.min.js +2 -2
  34. package/bundles/taiga-ui-kit-components-input-date.umd.min.js.map +1 -1
  35. package/bundles/taiga-ui-kit-components-input-file.umd.js +1 -0
  36. package/bundles/taiga-ui-kit-components-input-file.umd.js.map +1 -1
  37. package/bundles/taiga-ui-kit-components-input-file.umd.min.js.map +1 -1
  38. package/bundles/taiga-ui-kit-components-input-number.umd.js +28 -14
  39. package/bundles/taiga-ui-kit-components-input-number.umd.js.map +1 -1
  40. package/bundles/taiga-ui-kit-components-input-number.umd.min.js +2 -2
  41. package/bundles/taiga-ui-kit-components-input-number.umd.min.js.map +1 -1
  42. package/bundles/taiga-ui-kit-components-input-phone-international.umd.js +23 -7
  43. package/bundles/taiga-ui-kit-components-input-phone-international.umd.js.map +1 -1
  44. package/bundles/taiga-ui-kit-components-input-phone-international.umd.min.js +2 -2
  45. package/bundles/taiga-ui-kit-components-input-phone-international.umd.min.js.map +1 -1
  46. package/bundles/taiga-ui-kit-components-input-phone.umd.js +15 -4
  47. package/bundles/taiga-ui-kit-components-input-phone.umd.js.map +1 -1
  48. package/bundles/taiga-ui-kit-components-input-phone.umd.min.js +1 -1
  49. package/bundles/taiga-ui-kit-components-input-phone.umd.min.js.map +1 -1
  50. package/bundles/taiga-ui-kit-components-input-range.umd.js +20 -15
  51. package/bundles/taiga-ui-kit-components-input-range.umd.js.map +1 -1
  52. package/bundles/taiga-ui-kit-components-input-range.umd.min.js +2 -2
  53. package/bundles/taiga-ui-kit-components-input-range.umd.min.js.map +1 -1
  54. package/bundles/taiga-ui-kit-components-input-slider.umd.js +15 -10
  55. package/bundles/taiga-ui-kit-components-input-slider.umd.js.map +1 -1
  56. package/bundles/taiga-ui-kit-components-input-slider.umd.min.js +1 -1
  57. package/bundles/taiga-ui-kit-components-input-slider.umd.min.js.map +1 -1
  58. package/bundles/taiga-ui-kit-components-input-tag.umd.js +5 -3
  59. package/bundles/taiga-ui-kit-components-input-tag.umd.js.map +1 -1
  60. package/bundles/taiga-ui-kit-components-input-tag.umd.min.js +2 -2
  61. package/bundles/taiga-ui-kit-components-input-tag.umd.min.js.map +1 -1
  62. package/bundles/taiga-ui-kit-components-input-time.umd.js +1 -0
  63. package/bundles/taiga-ui-kit-components-input-time.umd.js.map +1 -1
  64. package/bundles/taiga-ui-kit-components-input-time.umd.min.js.map +1 -1
  65. package/bundles/taiga-ui-kit-components-multi-select.umd.js +20 -6
  66. package/bundles/taiga-ui-kit-components-multi-select.umd.js.map +1 -1
  67. package/bundles/taiga-ui-kit-components-multi-select.umd.min.js +1 -1
  68. package/bundles/taiga-ui-kit-components-multi-select.umd.min.js.map +1 -1
  69. package/bundles/taiga-ui-kit-components-progress.umd.js +325 -0
  70. package/bundles/taiga-ui-kit-components-progress.umd.js.map +1 -0
  71. package/bundles/taiga-ui-kit-components-progress.umd.min.js +16 -0
  72. package/bundles/taiga-ui-kit-components-progress.umd.min.js.map +1 -0
  73. package/bundles/taiga-ui-kit-components-radio.umd.js +1 -1
  74. package/bundles/taiga-ui-kit-components-radio.umd.min.js +1 -1
  75. package/bundles/taiga-ui-kit-components-radio.umd.min.js.map +1 -1
  76. package/bundles/taiga-ui-kit-components-range.umd.js +1 -2
  77. package/bundles/taiga-ui-kit-components-range.umd.js.map +1 -1
  78. package/bundles/taiga-ui-kit-components-range.umd.min.js +1 -1
  79. package/bundles/taiga-ui-kit-components-range.umd.min.js.map +1 -1
  80. package/bundles/taiga-ui-kit-components-select-option.umd.js +1 -1
  81. package/bundles/taiga-ui-kit-components-select-option.umd.min.js +1 -1
  82. package/bundles/taiga-ui-kit-components-select-option.umd.min.js.map +1 -1
  83. package/bundles/taiga-ui-kit-components-slider.umd.js +1 -2
  84. package/bundles/taiga-ui-kit-components-slider.umd.js.map +1 -1
  85. package/bundles/taiga-ui-kit-components-slider.umd.min.js +1 -1
  86. package/bundles/taiga-ui-kit-components-slider.umd.min.js.map +1 -1
  87. package/bundles/taiga-ui-kit-components-tabs.umd.js +17 -9
  88. package/bundles/taiga-ui-kit-components-tabs.umd.js.map +1 -1
  89. package/bundles/taiga-ui-kit-components-tabs.umd.min.js +1 -1
  90. package/bundles/taiga-ui-kit-components-tabs.umd.min.js.map +1 -1
  91. package/bundles/taiga-ui-kit-components-tag.umd.js +1 -1
  92. package/bundles/taiga-ui-kit-components-tag.umd.min.js +1 -1
  93. package/bundles/taiga-ui-kit-components-tag.umd.min.js.map +1 -1
  94. package/bundles/taiga-ui-kit-components-text-area.umd.js +16 -2
  95. package/bundles/taiga-ui-kit-components-text-area.umd.js.map +1 -1
  96. package/bundles/taiga-ui-kit-components-text-area.umd.min.js +2 -2
  97. package/bundles/taiga-ui-kit-components-text-area.umd.min.js.map +1 -1
  98. package/bundles/taiga-ui-kit-components-toggle.umd.js +52 -26
  99. package/bundles/taiga-ui-kit-components-toggle.umd.js.map +1 -1
  100. package/bundles/taiga-ui-kit-components-toggle.umd.min.js +2 -2
  101. package/bundles/taiga-ui-kit-components-toggle.umd.min.js.map +1 -1
  102. package/bundles/taiga-ui-kit-components.umd.js +12 -4
  103. package/bundles/taiga-ui-kit-components.umd.js.map +1 -1
  104. package/bundles/taiga-ui-kit-components.umd.min.js +1 -1
  105. package/bundles/taiga-ui-kit-directives-dropdown-context.umd.js +390 -0
  106. package/bundles/taiga-ui-kit-directives-dropdown-context.umd.js.map +1 -0
  107. package/bundles/taiga-ui-kit-directives-dropdown-context.umd.min.js +16 -0
  108. package/bundles/taiga-ui-kit-directives-dropdown-context.umd.min.js.map +1 -0
  109. package/bundles/taiga-ui-kit-directives-dropdown-selection.umd.js +1 -0
  110. package/bundles/taiga-ui-kit-directives-dropdown-selection.umd.js.map +1 -1
  111. package/bundles/taiga-ui-kit-directives-dropdown-selection.umd.min.js.map +1 -1
  112. package/bundles/taiga-ui-kit-directives.umd.js +12 -4
  113. package/bundles/taiga-ui-kit-directives.umd.js.map +1 -1
  114. package/bundles/taiga-ui-kit-directives.umd.min.js +1 -1
  115. package/bundles/taiga-ui-kit-tokens.umd.js +4 -0
  116. package/bundles/taiga-ui-kit-tokens.umd.js.map +1 -1
  117. package/bundles/taiga-ui-kit-tokens.umd.min.js +1 -1
  118. package/bundles/taiga-ui-kit-tokens.umd.min.js.map +1 -1
  119. package/bundles/taiga-ui-kit-utils-mask.umd.js +7 -7
  120. package/bundles/taiga-ui-kit-utils-mask.umd.js.map +1 -1
  121. package/bundles/taiga-ui-kit-utils-mask.umd.min.js +2 -2
  122. package/bundles/taiga-ui-kit-utils-mask.umd.min.js.map +1 -1
  123. package/bundles/taiga-ui-kit-validators.umd.js +1 -0
  124. package/bundles/taiga-ui-kit-validators.umd.js.map +1 -1
  125. package/bundles/taiga-ui-kit-validators.umd.min.js.map +1 -1
  126. package/components/breadcrumbs/taiga-ui-kit-components-breadcrumbs.metadata.json +1 -1
  127. package/components/checkbox/taiga-ui-kit-components-checkbox.metadata.json +1 -1
  128. package/components/field-error/field-error.component.d.ts +2 -0
  129. package/components/field-error/taiga-ui-kit-components-field-error.metadata.json +1 -1
  130. package/components/index.d.ts +1 -0
  131. package/components/input-count/index.d.ts +1 -0
  132. package/components/input-count/input-count-options.d.ts +19 -0
  133. package/components/input-count/input-count.component.d.ts +10 -3
  134. package/components/input-count/taiga-ui-kit-components-input-count.metadata.json +1 -1
  135. package/components/input-date/input-date.component.d.ts +7 -4
  136. package/components/input-date/taiga-ui-kit-components-input-date.metadata.json +1 -1
  137. package/components/input-date-range/input-date-range.component.d.ts +8 -5
  138. package/components/input-date-range/taiga-ui-kit-components-input-date-range.metadata.json +1 -1
  139. package/components/input-date-time/input-date-time.component.d.ts +10 -5
  140. package/components/input-date-time/taiga-ui-kit-components-input-date-time.metadata.json +1 -1
  141. package/components/input-number/input-number.component.d.ts +4 -2
  142. package/components/input-number/taiga-ui-kit-components-input-number.metadata.json +1 -1
  143. package/components/input-phone/input-phone.component.d.ts +4 -2
  144. package/components/input-phone/taiga-ui-kit-components-input-phone.metadata.json +1 -1
  145. package/components/input-phone-international/input-phone-international.component.d.ts +5 -1
  146. package/components/input-phone-international/taiga-ui-kit-components-input-phone-international.metadata.json +1 -1
  147. package/components/input-range/input-range.component.d.ts +4 -2
  148. package/components/input-range/taiga-ui-kit-components-input-range.metadata.json +1 -1
  149. package/components/input-slider/input-slider.component.d.ts +4 -2
  150. package/components/input-slider/taiga-ui-kit-components-input-slider.metadata.json +1 -1
  151. package/components/input-tag/taiga-ui-kit-components-input-tag.metadata.json +1 -1
  152. package/components/input-time/taiga-ui-kit-components-input-time.metadata.json +1 -1
  153. package/components/multi-select/multi-select.component.d.ts +4 -2
  154. package/components/multi-select/taiga-ui-kit-components-multi-select.metadata.json +1 -1
  155. package/components/progress/index.d.ts +4 -0
  156. package/components/progress/package.json +13 -0
  157. package/components/progress/pipes/progress-color-segments.pipe.d.ts +8 -0
  158. package/components/progress/progress-bar/progress-bar.component.d.ts +5 -0
  159. package/components/progress/progress-label/progress-label.component.d.ts +2 -0
  160. package/components/progress/progress.module.d.ts +2 -0
  161. package/components/progress/taiga-ui-kit-components-progress.d.ts +4 -0
  162. package/components/progress/taiga-ui-kit-components-progress.metadata.json +1 -0
  163. package/components/radio/taiga-ui-kit-components-radio.metadata.json +1 -1
  164. package/components/range/taiga-ui-kit-components-range.metadata.json +1 -1
  165. package/components/select-option/taiga-ui-kit-components-select-option.metadata.json +1 -1
  166. package/components/slider/taiga-ui-kit-components-slider.metadata.json +1 -1
  167. package/components/tabs/tab/tab.component.d.ts +5 -2
  168. package/components/tabs/taiga-ui-kit-components-tabs.metadata.json +1 -1
  169. package/components/tag/taiga-ui-kit-components-tag.metadata.json +1 -1
  170. package/components/taiga-ui-kit-components.metadata.json +1 -1
  171. package/components/text-area/taiga-ui-kit-components-text-area.metadata.json +1 -1
  172. package/components/text-area/text-area.component.d.ts +2 -0
  173. package/components/toggle/index.d.ts +1 -0
  174. package/components/toggle/taiga-ui-kit-components-toggle.metadata.json +1 -1
  175. package/components/toggle/toggle-options.d.ts +16 -0
  176. package/components/toggle/toggle.component.d.ts +7 -4
  177. package/directives/dropdown-context/dropdown-context.directive.d.ts +28 -0
  178. package/directives/dropdown-context/dropdown-context.module.d.ts +2 -0
  179. package/directives/dropdown-context/index.d.ts +2 -0
  180. package/directives/dropdown-context/package.json +13 -0
  181. package/directives/dropdown-context/taiga-ui-kit-directives-dropdown-context.d.ts +4 -0
  182. package/directives/dropdown-context/taiga-ui-kit-directives-dropdown-context.metadata.json +1 -0
  183. package/directives/index.d.ts +1 -0
  184. package/directives/taiga-ui-kit-directives.metadata.json +1 -1
  185. package/esm2015/abstract/input-slider.js +14 -9
  186. package/esm2015/abstract/slider/slider.js +10 -6
  187. package/esm2015/components/breadcrumbs/breadcrumbs-wrapper.component.js +2 -2
  188. package/esm2015/components/checkbox/checkbox.component.js +1 -1
  189. package/esm2015/components/field-error/field-error.component.js +10 -2
  190. package/esm2015/components/field-error/field-error.module.js +2 -3
  191. package/esm2015/components/index.js +2 -1
  192. package/esm2015/components/input-count/index.js +2 -1
  193. package/esm2015/components/input-count/input-count-options.js +21 -0
  194. package/esm2015/components/input-count/input-count.component.js +49 -25
  195. package/esm2015/components/input-count/input-count.module.js +3 -1
  196. package/esm2015/components/input-date/input-date.component.js +18 -13
  197. package/esm2015/components/input-date/input-date.module.js +3 -2
  198. package/esm2015/components/input-date-range/input-date-range.component.js +25 -20
  199. package/esm2015/components/input-date-time/input-date-time.component.js +58 -38
  200. package/esm2015/components/input-file/file/file.component.js +2 -1
  201. package/esm2015/components/input-number/input-number.component.js +26 -16
  202. package/esm2015/components/input-phone/input-phone.component.js +13 -6
  203. package/esm2015/components/input-phone-international/input-phone-international.component.js +23 -8
  204. package/esm2015/components/input-phone-international/input-phone-international.module.js +5 -4
  205. package/esm2015/components/input-range/input-range.component.js +22 -16
  206. package/esm2015/components/input-range/input-range.module.js +2 -3
  207. package/esm2015/components/input-slider/input-slider.component.js +17 -11
  208. package/esm2015/components/input-slider/input-slider.module.js +2 -3
  209. package/esm2015/components/input-tag/input-tag.component.js +6 -4
  210. package/esm2015/components/input-time/input-time.component.js +2 -1
  211. package/esm2015/components/multi-select/multi-select.component.js +18 -8
  212. package/esm2015/components/progress/index.js +5 -0
  213. package/esm2015/components/progress/pipes/progress-color-segments.pipe.js +34 -0
  214. package/esm2015/components/progress/progress-bar/progress-bar.component.js +27 -0
  215. package/esm2015/components/progress/progress-label/progress-label.component.js +14 -0
  216. package/esm2015/components/progress/progress.module.js +25 -0
  217. package/esm2015/components/progress/taiga-ui-kit-components-progress.js +5 -0
  218. package/esm2015/components/radio/radio.component.js +1 -1
  219. package/esm2015/components/range/range.component.js +2 -2
  220. package/esm2015/components/range/range.module.js +2 -3
  221. package/esm2015/components/select-option/select-option.component.js +1 -1
  222. package/esm2015/components/slider/slider.component.js +2 -2
  223. package/esm2015/components/slider/slider.module.js +2 -3
  224. package/esm2015/components/tabs/tab/tab.component.js +19 -11
  225. package/esm2015/components/tabs/underline/underline.component.js +1 -1
  226. package/esm2015/components/tag/tag.component.js +1 -1
  227. package/esm2015/components/text-area/text-area.component.js +9 -3
  228. package/esm2015/components/toggle/index.js +2 -1
  229. package/esm2015/components/toggle/toggle-options.js +19 -0
  230. package/esm2015/components/toggle/toggle.component.js +19 -15
  231. package/esm2015/components/toggle/toggle.module.js +3 -1
  232. package/esm2015/directives/dropdown-context/dropdown-context.directive.js +137 -0
  233. package/esm2015/directives/dropdown-context/dropdown-context.module.js +15 -0
  234. package/esm2015/directives/dropdown-context/index.js +3 -0
  235. package/esm2015/directives/dropdown-context/taiga-ui-kit-directives-dropdown-context.js +5 -0
  236. package/esm2015/directives/dropdown-selection/dropdown-selection.directive.js +2 -1
  237. package/esm2015/directives/index.js +2 -1
  238. package/esm2015/interfaces/with-date-mask-pipe-config.js +1 -1
  239. package/esm2015/tokens/i18n.js +4 -1
  240. package/esm2015/utils/mask/create-auto-corrected-date-pipe.js +3 -3
  241. package/esm2015/utils/mask/create-auto-corrected-date-range-pipe.js +7 -7
  242. package/esm2015/utils/mask/create-auto-corrected-date-time-pipe.js +3 -2
  243. package/esm2015/validators/unfinished.validator.js +2 -1
  244. package/esm5/abstract/input-slider.js +18 -9
  245. package/esm5/abstract/slider/slider.js +14 -6
  246. package/esm5/components/breadcrumbs/breadcrumbs-wrapper.component.js +2 -2
  247. package/esm5/components/checkbox/checkbox.component.js +1 -1
  248. package/esm5/components/field-error/field-error.component.js +14 -2
  249. package/esm5/components/field-error/field-error.module.js +2 -3
  250. package/esm5/components/index.js +2 -1
  251. package/esm5/components/input-count/index.js +2 -1
  252. package/esm5/components/input-count/input-count-options.js +21 -0
  253. package/esm5/components/input-count/input-count.component.js +61 -29
  254. package/esm5/components/input-count/input-count.module.js +3 -1
  255. package/esm5/components/input-date/input-date.component.js +18 -17
  256. package/esm5/components/input-date/input-date.module.js +3 -2
  257. package/esm5/components/input-date-range/input-date-range.component.js +25 -24
  258. package/esm5/components/input-date-time/input-date-time.component.js +66 -37
  259. package/esm5/components/input-file/file/file.component.js +2 -1
  260. package/esm5/components/input-number/input-number.component.js +30 -16
  261. package/esm5/components/input-phone/input-phone.component.js +17 -6
  262. package/esm5/components/input-phone-international/input-phone-international.component.js +23 -8
  263. package/esm5/components/input-phone-international/input-phone-international.module.js +5 -4
  264. package/esm5/components/input-range/input-range.component.js +22 -16
  265. package/esm5/components/input-range/input-range.module.js +2 -3
  266. package/esm5/components/input-slider/input-slider.component.js +17 -11
  267. package/esm5/components/input-slider/input-slider.module.js +2 -3
  268. package/esm5/components/input-tag/input-tag.component.js +6 -4
  269. package/esm5/components/input-time/input-time.component.js +2 -1
  270. package/esm5/components/multi-select/multi-select.component.js +22 -8
  271. package/esm5/components/progress/index.js +5 -0
  272. package/esm5/components/progress/pipes/progress-color-segments.pipe.js +37 -0
  273. package/esm5/components/progress/progress-bar/progress-bar.component.js +28 -0
  274. package/esm5/components/progress/progress-label/progress-label.component.js +17 -0
  275. package/esm5/components/progress/progress.module.js +28 -0
  276. package/esm5/components/progress/taiga-ui-kit-components-progress.js +5 -0
  277. package/esm5/components/radio/radio.component.js +1 -1
  278. package/esm5/components/range/range.component.js +2 -2
  279. package/esm5/components/range/range.module.js +2 -3
  280. package/esm5/components/select-option/select-option.component.js +1 -1
  281. package/esm5/components/slider/slider.component.js +2 -2
  282. package/esm5/components/slider/slider.module.js +2 -3
  283. package/esm5/components/tabs/tab/tab.component.js +19 -11
  284. package/esm5/components/tabs/underline/underline.component.js +1 -1
  285. package/esm5/components/tag/tag.component.js +1 -1
  286. package/esm5/components/text-area/text-area.component.js +17 -3
  287. package/esm5/components/toggle/index.js +2 -1
  288. package/esm5/components/toggle/toggle-options.js +21 -0
  289. package/esm5/components/toggle/toggle.component.js +27 -23
  290. package/esm5/components/toggle/toggle.module.js +3 -1
  291. package/esm5/directives/dropdown-context/dropdown-context.directive.js +153 -0
  292. package/esm5/directives/dropdown-context/dropdown-context.module.js +18 -0
  293. package/esm5/directives/dropdown-context/index.js +3 -0
  294. package/esm5/directives/dropdown-context/taiga-ui-kit-directives-dropdown-context.js +5 -0
  295. package/esm5/directives/dropdown-selection/dropdown-selection.directive.js +2 -1
  296. package/esm5/directives/index.js +2 -1
  297. package/esm5/interfaces/with-date-mask-pipe-config.js +1 -1
  298. package/esm5/tokens/i18n.js +4 -1
  299. package/esm5/utils/mask/create-auto-corrected-date-pipe.js +3 -3
  300. package/esm5/utils/mask/create-auto-corrected-date-range-pipe.js +7 -7
  301. package/esm5/utils/mask/create-auto-corrected-date-time-pipe.js +3 -2
  302. package/esm5/validators/unfinished.validator.js +2 -1
  303. package/fesm2015/taiga-ui-kit-abstract.js +21 -13
  304. package/fesm2015/taiga-ui-kit-abstract.js.map +1 -1
  305. package/fesm2015/taiga-ui-kit-components-breadcrumbs.js +1 -1
  306. package/fesm2015/taiga-ui-kit-components-breadcrumbs.js.map +1 -1
  307. package/fesm2015/taiga-ui-kit-components-checkbox.js +1 -1
  308. package/fesm2015/taiga-ui-kit-components-field-error.js +11 -3
  309. package/fesm2015/taiga-ui-kit-components-field-error.js.map +1 -1
  310. package/fesm2015/taiga-ui-kit-components-input-count.js +71 -26
  311. package/fesm2015/taiga-ui-kit-components-input-count.js.map +1 -1
  312. package/fesm2015/taiga-ui-kit-components-input-date-range.js +24 -19
  313. package/fesm2015/taiga-ui-kit-components-input-date-range.js.map +1 -1
  314. package/fesm2015/taiga-ui-kit-components-input-date-time.js +56 -36
  315. package/fesm2015/taiga-ui-kit-components-input-date-time.js.map +1 -1
  316. package/fesm2015/taiga-ui-kit-components-input-date.js +18 -12
  317. package/fesm2015/taiga-ui-kit-components-input-date.js.map +1 -1
  318. package/fesm2015/taiga-ui-kit-components-input-file.js +1 -0
  319. package/fesm2015/taiga-ui-kit-components-input-file.js.map +1 -1
  320. package/fesm2015/taiga-ui-kit-components-input-number.js +25 -15
  321. package/fesm2015/taiga-ui-kit-components-input-number.js.map +1 -1
  322. package/fesm2015/taiga-ui-kit-components-input-phone-international.js +26 -10
  323. package/fesm2015/taiga-ui-kit-components-input-phone-international.js.map +1 -1
  324. package/fesm2015/taiga-ui-kit-components-input-phone.js +12 -5
  325. package/fesm2015/taiga-ui-kit-components-input-phone.js.map +1 -1
  326. package/fesm2015/taiga-ui-kit-components-input-range.js +21 -16
  327. package/fesm2015/taiga-ui-kit-components-input-range.js.map +1 -1
  328. package/fesm2015/taiga-ui-kit-components-input-slider.js +16 -11
  329. package/fesm2015/taiga-ui-kit-components-input-slider.js.map +1 -1
  330. package/fesm2015/taiga-ui-kit-components-input-tag.js +5 -3
  331. package/fesm2015/taiga-ui-kit-components-input-tag.js.map +1 -1
  332. package/fesm2015/taiga-ui-kit-components-input-time.js +1 -0
  333. package/fesm2015/taiga-ui-kit-components-input-time.js.map +1 -1
  334. package/fesm2015/taiga-ui-kit-components-multi-select.js +17 -7
  335. package/fesm2015/taiga-ui-kit-components-multi-select.js.map +1 -1
  336. package/fesm2015/taiga-ui-kit-components-progress.js +93 -0
  337. package/fesm2015/taiga-ui-kit-components-progress.js.map +1 -0
  338. package/fesm2015/taiga-ui-kit-components-radio.js +1 -1
  339. package/fesm2015/taiga-ui-kit-components-range.js +2 -3
  340. package/fesm2015/taiga-ui-kit-components-range.js.map +1 -1
  341. package/fesm2015/taiga-ui-kit-components-select-option.js +1 -1
  342. package/fesm2015/taiga-ui-kit-components-slider.js +2 -3
  343. package/fesm2015/taiga-ui-kit-components-slider.js.map +1 -1
  344. package/fesm2015/taiga-ui-kit-components-tabs.js +18 -10
  345. package/fesm2015/taiga-ui-kit-components-tabs.js.map +1 -1
  346. package/fesm2015/taiga-ui-kit-components-tag.js +1 -1
  347. package/fesm2015/taiga-ui-kit-components-text-area.js +8 -2
  348. package/fesm2015/taiga-ui-kit-components-text-area.js.map +1 -1
  349. package/fesm2015/taiga-ui-kit-components-toggle.js +39 -16
  350. package/fesm2015/taiga-ui-kit-components-toggle.js.map +1 -1
  351. package/fesm2015/taiga-ui-kit-components.js +1 -0
  352. package/fesm2015/taiga-ui-kit-components.js.map +1 -1
  353. package/fesm2015/taiga-ui-kit-directives-dropdown-context.js +153 -0
  354. package/fesm2015/taiga-ui-kit-directives-dropdown-context.js.map +1 -0
  355. package/fesm2015/taiga-ui-kit-directives-dropdown-selection.js +1 -0
  356. package/fesm2015/taiga-ui-kit-directives-dropdown-selection.js.map +1 -1
  357. package/fesm2015/taiga-ui-kit-directives.js +1 -0
  358. package/fesm2015/taiga-ui-kit-directives.js.map +1 -1
  359. package/fesm2015/taiga-ui-kit-tokens.js +4 -1
  360. package/fesm2015/taiga-ui-kit-tokens.js.map +1 -1
  361. package/fesm2015/taiga-ui-kit-utils-mask.js +8 -8
  362. package/fesm2015/taiga-ui-kit-utils-mask.js.map +1 -1
  363. package/fesm2015/taiga-ui-kit-validators.js +1 -0
  364. package/fesm2015/taiga-ui-kit-validators.js.map +1 -1
  365. package/fesm5/taiga-ui-kit-abstract.js +29 -13
  366. package/fesm5/taiga-ui-kit-abstract.js.map +1 -1
  367. package/fesm5/taiga-ui-kit-components-breadcrumbs.js +1 -1
  368. package/fesm5/taiga-ui-kit-components-breadcrumbs.js.map +1 -1
  369. package/fesm5/taiga-ui-kit-components-checkbox.js +1 -1
  370. package/fesm5/taiga-ui-kit-components-field-error.js +15 -3
  371. package/fesm5/taiga-ui-kit-components-field-error.js.map +1 -1
  372. package/fesm5/taiga-ui-kit-components-input-count.js +83 -30
  373. package/fesm5/taiga-ui-kit-components-input-count.js.map +1 -1
  374. package/fesm5/taiga-ui-kit-components-input-date-range.js +24 -23
  375. package/fesm5/taiga-ui-kit-components-input-date-range.js.map +1 -1
  376. package/fesm5/taiga-ui-kit-components-input-date-time.js +66 -37
  377. package/fesm5/taiga-ui-kit-components-input-date-time.js.map +1 -1
  378. package/fesm5/taiga-ui-kit-components-input-date.js +18 -16
  379. package/fesm5/taiga-ui-kit-components-input-date.js.map +1 -1
  380. package/fesm5/taiga-ui-kit-components-input-file.js +1 -0
  381. package/fesm5/taiga-ui-kit-components-input-file.js.map +1 -1
  382. package/fesm5/taiga-ui-kit-components-input-number.js +29 -15
  383. package/fesm5/taiga-ui-kit-components-input-number.js.map +1 -1
  384. package/fesm5/taiga-ui-kit-components-input-phone-international.js +26 -10
  385. package/fesm5/taiga-ui-kit-components-input-phone-international.js.map +1 -1
  386. package/fesm5/taiga-ui-kit-components-input-phone.js +16 -5
  387. package/fesm5/taiga-ui-kit-components-input-phone.js.map +1 -1
  388. package/fesm5/taiga-ui-kit-components-input-range.js +21 -16
  389. package/fesm5/taiga-ui-kit-components-input-range.js.map +1 -1
  390. package/fesm5/taiga-ui-kit-components-input-slider.js +16 -11
  391. package/fesm5/taiga-ui-kit-components-input-slider.js.map +1 -1
  392. package/fesm5/taiga-ui-kit-components-input-tag.js +5 -3
  393. package/fesm5/taiga-ui-kit-components-input-tag.js.map +1 -1
  394. package/fesm5/taiga-ui-kit-components-input-time.js +1 -0
  395. package/fesm5/taiga-ui-kit-components-input-time.js.map +1 -1
  396. package/fesm5/taiga-ui-kit-components-multi-select.js +21 -7
  397. package/fesm5/taiga-ui-kit-components-multi-select.js.map +1 -1
  398. package/fesm5/taiga-ui-kit-components-progress.js +103 -0
  399. package/fesm5/taiga-ui-kit-components-progress.js.map +1 -0
  400. package/fesm5/taiga-ui-kit-components-radio.js +1 -1
  401. package/fesm5/taiga-ui-kit-components-range.js +2 -3
  402. package/fesm5/taiga-ui-kit-components-range.js.map +1 -1
  403. package/fesm5/taiga-ui-kit-components-select-option.js +1 -1
  404. package/fesm5/taiga-ui-kit-components-slider.js +2 -3
  405. package/fesm5/taiga-ui-kit-components-slider.js.map +1 -1
  406. package/fesm5/taiga-ui-kit-components-tabs.js +18 -10
  407. package/fesm5/taiga-ui-kit-components-tabs.js.map +1 -1
  408. package/fesm5/taiga-ui-kit-components-tag.js +1 -1
  409. package/fesm5/taiga-ui-kit-components-text-area.js +16 -2
  410. package/fesm5/taiga-ui-kit-components-text-area.js.map +1 -1
  411. package/fesm5/taiga-ui-kit-components-toggle.js +49 -24
  412. package/fesm5/taiga-ui-kit-components-toggle.js.map +1 -1
  413. package/fesm5/taiga-ui-kit-components.js +1 -0
  414. package/fesm5/taiga-ui-kit-components.js.map +1 -1
  415. package/fesm5/taiga-ui-kit-directives-dropdown-context.js +172 -0
  416. package/fesm5/taiga-ui-kit-directives-dropdown-context.js.map +1 -0
  417. package/fesm5/taiga-ui-kit-directives-dropdown-selection.js +1 -0
  418. package/fesm5/taiga-ui-kit-directives-dropdown-selection.js.map +1 -1
  419. package/fesm5/taiga-ui-kit-directives.js +1 -0
  420. package/fesm5/taiga-ui-kit-directives.js.map +1 -1
  421. package/fesm5/taiga-ui-kit-tokens.js +4 -1
  422. package/fesm5/taiga-ui-kit-tokens.js.map +1 -1
  423. package/fesm5/taiga-ui-kit-utils-mask.js +8 -8
  424. package/fesm5/taiga-ui-kit-utils-mask.js.map +1 -1
  425. package/fesm5/taiga-ui-kit-validators.js +1 -0
  426. package/fesm5/taiga-ui-kit-validators.js.map +1 -1
  427. package/interfaces/with-date-mask-pipe-config.d.ts +4 -1
  428. package/package.json +4 -4
  429. package/tokens/i18n.d.ts +2 -0
  430. package/tokens/taiga-ui-kit-tokens.metadata.json +1 -1
  431. package/utils/mask/create-auto-corrected-date-pipe.d.ts +3 -4
  432. package/utils/mask/create-auto-corrected-date-range-pipe.d.ts +2 -3
  433. package/utils/mask/create-auto-corrected-date-time-pipe.d.ts +2 -3
  434. package/utils/mask/taiga-ui-kit-utils-mask.metadata.json +1 -1
@@ -1,15 +1,15 @@
1
- import { __extends, __read, __spread, __decorate, __param } from 'tslib';
1
+ import { __extends, __spread, __read, __decorate, __param } from 'tslib';
2
2
  import { Optional, Self, Inject, ChangeDetectorRef, Input, ViewChild, HostListener, Component, ChangeDetectionStrategy, forwardRef, NgModule } from '@angular/core';
3
3
  import { NgControl } from '@angular/forms';
4
- import { TUI_FIRST_DAY, TUI_LAST_DAY, ALWAYS_FALSE_HANDLER, TuiMonth, TuiDay, TuiTime, nullableSame, TUI_DATE_FILLER, tuiDefaultProp, tuiPure, TUI_FOCUSABLE_ITEM_ACCESSOR, AbstractTuiControl, TuiPreventDefaultModule } from '@taiga-ui/cdk';
4
+ import { TUI_FIRST_DAY, TUI_LAST_DAY, ALWAYS_FALSE_HANDLER, TuiMonth, DATE_FILLER_LENGTH, TuiDay, TuiTime, nullableSame, clamp, TUI_DATE_FORMAT, tuiDefaultProp, tuiPure, TUI_FOCUSABLE_ITEM_ACCESSOR, AbstractTuiControl, TuiPreventDefaultModule } from '@taiga-ui/cdk';
5
5
  import { sizeBigger, TuiTextfieldSizeDirective, TUI_TEXTFIELD_SIZE, TuiPrimitiveTextfieldComponent, TuiCalendarModule, TuiSvgModule, TuiLinkModule, TuiHostedDropdownModule, TuiPrimitiveTextfieldModule } from '@taiga-ui/core';
6
6
  import { DATE_TIME_SEPARATOR, TUI_DATE_MASK } from '@taiga-ui/kit/constants';
7
7
  import { LEFT_ALIGNED_DROPDOWN_CONTROLLER_PROVIDER } from '@taiga-ui/kit/providers';
8
- import { TUI_TIME_TEXTS, TUI_CALENDAR_DATA_STREAM } from '@taiga-ui/kit/tokens';
8
+ import { TUI_TIME_TEXTS, TUI_DATE_TEXTS, TUI_CALENDAR_DATA_STREAM } from '@taiga-ui/kit/tokens';
9
9
  import { tuiCreateTimeMask, tuiCreateAutoCorrectedDateTimePipe } from '@taiga-ui/kit/utils/mask';
10
10
  import { TuiReplayControlValueChangesFactory } from '@taiga-ui/kit/utils/miscellaneous';
11
- import { Observable } from 'rxjs';
12
- import { map } from 'rxjs/operators';
11
+ import { combineLatest, Observable } from 'rxjs';
12
+ import { pluck, map } from 'rxjs/operators';
13
13
  import { CommonModule } from '@angular/common';
14
14
  import { TuiValueAccessorModule } from '@taiga-ui/kit/directives';
15
15
  import { PolymorpheusModule } from '@tinkoff/ng-polymorpheus';
@@ -20,31 +20,36 @@ var TIME_STREAM_FACTORY = TuiReplayControlValueChangesFactory;
20
20
  // @dynamic
21
21
  var TuiInputDateTimeComponent = /** @class */ (function (_super) {
22
22
  __extends(TuiInputDateTimeComponent, _super);
23
- function TuiInputDateTimeComponent(control, changeDetectorRef, textfieldSize, dateFiller, timeTexts$) {
23
+ function TuiInputDateTimeComponent(control, changeDetectorRef, textfieldSize, dateFormat, timeTexts$, dateTexts$) {
24
24
  var _this = _super.call(this, control, changeDetectorRef) || this;
25
25
  _this.textfieldSize = textfieldSize;
26
- _this.dateFiller = dateFiller;
26
+ _this.dateFormat = dateFormat;
27
27
  _this.timeTexts$ = timeTexts$;
28
+ _this.dateTexts$ = dateTexts$;
28
29
  _this.min = TUI_FIRST_DAY;
29
30
  _this.max = TUI_LAST_DAY;
30
31
  _this.disabledItemHandler = ALWAYS_FALSE_HANDLER;
31
32
  _this.defaultActiveYearMonth = TuiMonth.currentLocal();
32
33
  _this.timeMode = 'HH:MM';
33
34
  _this.open = false;
35
+ _this.filler$ = combineLatest([
36
+ _this.dateTexts$.pipe(pluck(_this.dateFormat)),
37
+ _this.timeTexts$.pipe(pluck(_this.timeMode)),
38
+ ]).pipe(map(function (fillers) { return _this.getDateTimeString.apply(_this, __spread(fillers)); }));
34
39
  _this.month = null;
35
40
  return _this;
36
41
  }
37
42
  TuiInputDateTimeComponent_1 = TuiInputDateTimeComponent;
38
43
  Object.defineProperty(TuiInputDateTimeComponent.prototype, "fillerLength", {
39
44
  get: function () {
40
- return this.dateFiller.length + DATE_TIME_SEPARATOR.length + this.timeMode.length;
45
+ return DATE_FILLER_LENGTH + DATE_TIME_SEPARATOR.length + this.timeMode.length;
41
46
  },
42
47
  enumerable: true,
43
48
  configurable: true
44
49
  });
45
50
  Object.defineProperty(TuiInputDateTimeComponent.prototype, "textMaskOptions", {
46
51
  get: function () {
47
- return this.calculateMask(this.value[0], this.min, this.max, this.timeMode, this.dateFiller);
52
+ return this.calculateMask(this.value[0], this.calendarMinDay, this.calendarMaxDay, this.timeMode);
48
53
  },
49
54
  enumerable: true,
50
55
  configurable: true
@@ -74,17 +79,13 @@ var TuiInputDateTimeComponent = /** @class */ (function (_super) {
74
79
  });
75
80
  Object.defineProperty(TuiInputDateTimeComponent.prototype, "computedValue", {
76
81
  get: function () {
77
- var _a = this, value = _a.value, nativeValue = _a.nativeValue, focused = _a.focused, touched = _a.touched;
82
+ var _a = this, value = _a.value, nativeValue = _a.nativeValue, timeMode = _a.timeMode;
78
83
  var _b = __read(value, 2), date = _b[0], time = _b[1];
79
- if ((date && !nativeValue) ||
80
- (date && nativeValue.length === this.dateFiller.length) ||
81
- (date && time)) {
82
- return "" + date.toString() + DATE_TIME_SEPARATOR + (time ? time.toString(this.timeMode) : '');
83
- }
84
- if (touched || focused) {
84
+ var hasTimeInputChars = nativeValue.length > DATE_FILLER_LENGTH;
85
+ if (!date || (!time && hasTimeInputChars)) {
85
86
  return nativeValue;
86
87
  }
87
- return date !== null ? date.toString() : '';
88
+ return this.getDateTimeString(date, time, timeMode);
88
89
  },
89
90
  enumerable: true,
90
91
  configurable: true
@@ -96,6 +97,20 @@ var TuiInputDateTimeComponent = /** @class */ (function (_super) {
96
97
  enumerable: true,
97
98
  configurable: true
98
99
  });
100
+ Object.defineProperty(TuiInputDateTimeComponent.prototype, "calendarMinDay", {
101
+ get: function () {
102
+ return Array.isArray(this.min) ? this.min[0] : this.min;
103
+ },
104
+ enumerable: true,
105
+ configurable: true
106
+ });
107
+ Object.defineProperty(TuiInputDateTimeComponent.prototype, "calendarMaxDay", {
108
+ get: function () {
109
+ return Array.isArray(this.max) ? this.max[0] : this.max;
110
+ },
111
+ enumerable: true,
112
+ configurable: true
113
+ });
99
114
  Object.defineProperty(TuiInputDateTimeComponent.prototype, "computedActiveYearMonth", {
100
115
  get: function () {
101
116
  return this.month || this.value[0] || this.defaultActiveYearMonth;
@@ -123,29 +138,25 @@ var TuiInputDateTimeComponent = /** @class */ (function (_super) {
123
138
  enumerable: true,
124
139
  configurable: true
125
140
  });
126
- TuiInputDateTimeComponent.prototype.getFiller$ = function (dateFiller, timeMode) {
127
- return this.timeTexts$.pipe(map(function (texts) { return "" + dateFiller + DATE_TIME_SEPARATOR + texts[timeMode]; }));
128
- };
129
141
  TuiInputDateTimeComponent.prototype.onClick = function () {
130
142
  this.open = !this.open;
131
143
  };
132
144
  TuiInputDateTimeComponent.prototype.onValueChange = function (value) {
133
- if (value.length < this.dateFiller.length) {
145
+ if (value.length < DATE_FILLER_LENGTH) {
134
146
  this.updateValue([null, null]);
135
147
  return;
136
148
  }
137
149
  var _a = __read(value.split(DATE_TIME_SEPARATOR), 2), date = _a[0], time = _a[1];
138
150
  var parsedDate = TuiDay.normalizeParse(date);
139
151
  var parsedTime = time && time.length === this.timeMode.length
140
- ? TuiTime.fromString(time)
152
+ ? this.clampTime(TuiTime.fromString(time), parsedDate)
141
153
  : null;
142
- if (parsedDate !== null) {
143
- this.open = false;
144
- }
154
+ this.open = false;
145
155
  this.updateValue([parsedDate, parsedTime]);
146
156
  };
147
157
  TuiInputDateTimeComponent.prototype.onDayClick = function (day) {
148
- this.updateValue([day, this.value[1]]);
158
+ var modifiedTime = this.value[1] && this.clampTime(this.value[1], day);
159
+ this.updateValue([day, modifiedTime]);
149
160
  this.updateNativeValue(day);
150
161
  this.open = false;
151
162
  };
@@ -197,22 +208,39 @@ var TuiInputDateTimeComponent = /** @class */ (function (_super) {
197
208
  };
198
209
  TuiInputDateTimeComponent.prototype.updateNativeValue = function (day) {
199
210
  var time = this.nativeValue.split(DATE_TIME_SEPARATOR)[1] || '';
200
- this.nativeValue = "" + day.toString() + DATE_TIME_SEPARATOR + time;
211
+ this.nativeValue = this.getDateTimeString(day, time);
212
+ };
213
+ TuiInputDateTimeComponent.prototype.clampTime = function (time, day) {
214
+ var ms = time.toAbsoluteMilliseconds();
215
+ var min = Array.isArray(this.min) && day.daySame(this.calendarMinDay)
216
+ ? this.min[1].toAbsoluteMilliseconds()
217
+ : -Infinity;
218
+ var max = Array.isArray(this.max) && day.daySame(this.calendarMaxDay)
219
+ ? this.max[1].toAbsoluteMilliseconds()
220
+ : Infinity;
221
+ return TuiTime.fromAbsoluteMilliseconds(clamp(ms, min, max));
201
222
  };
202
- TuiInputDateTimeComponent.prototype.calculateMask = function (day, min, max, timeMode, filler) {
223
+ TuiInputDateTimeComponent.prototype.calculateMask = function (day, min, max, timeMode) {
203
224
  return {
204
225
  mask: __spread(TUI_DATE_MASK, [',', ' '], tuiCreateTimeMask(timeMode)),
205
- pipe: tuiCreateAutoCorrectedDateTimePipe({ value: day, min: min, max: max, filler: filler }, timeMode),
226
+ pipe: tuiCreateAutoCorrectedDateTimePipe({ value: day, min: min, max: max }, timeMode),
206
227
  guide: false,
207
228
  };
208
229
  };
230
+ TuiInputDateTimeComponent.prototype.getDateTimeString = function (date, time, timeMode) {
231
+ if (timeMode === void 0) { timeMode = 'HH:MM'; }
232
+ var dateString = date instanceof TuiDay ? date.toString() : date;
233
+ var timeString = time instanceof TuiTime ? time.toString(timeMode) : time || '';
234
+ return "" + dateString + DATE_TIME_SEPARATOR + timeString;
235
+ };
209
236
  var TuiInputDateTimeComponent_1;
210
237
  TuiInputDateTimeComponent.ctorParameters = function () { return [
211
238
  { type: NgControl, decorators: [{ type: Optional }, { type: Self }, { type: Inject, args: [NgControl,] }] },
212
239
  { type: ChangeDetectorRef, decorators: [{ type: Inject, args: [ChangeDetectorRef,] }] },
213
240
  { type: TuiTextfieldSizeDirective, decorators: [{ type: Inject, args: [TUI_TEXTFIELD_SIZE,] }] },
214
- { type: String, decorators: [{ type: Inject, args: [TUI_DATE_FILLER,] }] },
215
- { type: Observable, decorators: [{ type: Inject, args: [TUI_TIME_TEXTS,] }] }
241
+ { type: undefined, decorators: [{ type: Inject, args: [TUI_DATE_FORMAT,] }] },
242
+ { type: Observable, decorators: [{ type: Inject, args: [TUI_TIME_TEXTS,] }] },
243
+ { type: Observable, decorators: [{ type: Inject, args: [TUI_DATE_TEXTS,] }] }
216
244
  ]; };
217
245
  __decorate([
218
246
  Input(),
@@ -237,19 +265,19 @@ var TuiInputDateTimeComponent = /** @class */ (function (_super) {
237
265
  __decorate([
238
266
  ViewChild(TuiPrimitiveTextfieldComponent)
239
267
  ], TuiInputDateTimeComponent.prototype, "textfield", void 0);
240
- __decorate([
241
- tuiPure
242
- ], TuiInputDateTimeComponent.prototype, "getFiller$", null);
243
268
  __decorate([
244
269
  HostListener('click')
245
270
  ], TuiInputDateTimeComponent.prototype, "onClick", null);
246
271
  __decorate([
247
272
  tuiPure
248
273
  ], TuiInputDateTimeComponent.prototype, "calculateMask", null);
274
+ __decorate([
275
+ tuiPure
276
+ ], TuiInputDateTimeComponent.prototype, "getDateTimeString", null);
249
277
  TuiInputDateTimeComponent = TuiInputDateTimeComponent_1 = __decorate([
250
278
  Component({
251
279
  selector: 'tui-input-date-time',
252
- template: "<tui-hosted-dropdown\n class=\"hosted\"\n [canOpen]=\"canOpen\"\n [content]=\"dropdown\"\n [open]=\"open && canOpen\"\n (openChange)=\"onOpenChange($event)\"\n>\n <tui-primitive-textfield\n class=\"textfield\"\n tuiValueAccessor\n [pseudoFocused]=\"pseudoFocused\"\n [pseudoHovered]=\"pseudoHovered\"\n [invalid]=\"computedInvalid\"\n [filler]=\"getFiller$(dateFiller, timeMode) | async\"\n [nativeId]=\"nativeId\"\n [readOnly]=\"readOnly\"\n [iconContent]=\"calendarIcon\"\n [disabled]=\"disabled\"\n [textMask]=\"textMaskOptions\"\n [value]=\"computedValue\"\n (valueChange)=\"onValueChange($event)\"\n (hoveredChange)=\"onHovered($event)\"\n (focusedChange)=\"onFocused($event)\"\n >\n <ng-content></ng-content>\n </tui-primitive-textfield>\n\n <ng-template #dropdown=\"polymorpheus\" polymorpheus>\n <tui-calendar\n tuiPreventDefault=\"mousedown\"\n [min]=\"min\"\n [max]=\"max\"\n [disabledItemHandler]=\"disabledItemHandler\"\n [month]=\"computedActiveYearMonth\"\n [value]=\"calendarValue\"\n (dayClick)=\"onDayClick($event)\"\n (monthChange)=\"onMonthChange($event)\"\n ></tui-calendar>\n </ng-template>\n</tui-hosted-dropdown>\n",
280
+ template: "<tui-hosted-dropdown\n class=\"hosted\"\n [canOpen]=\"canOpen\"\n [content]=\"dropdown\"\n [open]=\"open && canOpen\"\n (openChange)=\"onOpenChange($event)\"\n>\n <tui-primitive-textfield\n class=\"textfield\"\n automation-id=\"tui-input-date-time__textfield\"\n tuiValueAccessor\n [pseudoFocused]=\"pseudoFocused\"\n [pseudoHovered]=\"pseudoHovered\"\n [invalid]=\"computedInvalid\"\n [filler]=\"filler$ | async\"\n [nativeId]=\"nativeId\"\n [readOnly]=\"readOnly\"\n [iconContent]=\"calendarIcon\"\n [disabled]=\"disabled\"\n [textMask]=\"textMaskOptions\"\n [value]=\"computedValue\"\n (valueChange)=\"onValueChange($event)\"\n (hoveredChange)=\"onHovered($event)\"\n (focusedChange)=\"onFocused($event)\"\n >\n <ng-content></ng-content>\n </tui-primitive-textfield>\n\n <ng-template #dropdown=\"polymorpheus\" polymorpheus>\n <tui-calendar\n tuiPreventDefault=\"mousedown\"\n automation-id=\"tui-input-date-time__calendar\"\n [min]=\"calendarMinDay\"\n [max]=\"calendarMaxDay\"\n [disabledItemHandler]=\"disabledItemHandler\"\n [month]=\"computedActiveYearMonth\"\n [value]=\"calendarValue\"\n (dayClick)=\"onDayClick($event)\"\n (monthChange)=\"onMonthChange($event)\"\n ></tui-calendar>\n </ng-template>\n</tui-hosted-dropdown>\n",
253
281
  changeDetection: ChangeDetectionStrategy.OnPush,
254
282
  providers: [
255
283
  {
@@ -270,8 +298,9 @@ var TuiInputDateTimeComponent = /** @class */ (function (_super) {
270
298
  __param(0, Inject(NgControl)),
271
299
  __param(1, Inject(ChangeDetectorRef)),
272
300
  __param(2, Inject(TUI_TEXTFIELD_SIZE)),
273
- __param(3, Inject(TUI_DATE_FILLER)),
274
- __param(4, Inject(TUI_TIME_TEXTS))
301
+ __param(3, Inject(TUI_DATE_FORMAT)),
302
+ __param(4, Inject(TUI_TIME_TEXTS)),
303
+ __param(5, Inject(TUI_DATE_TEXTS))
275
304
  ], TuiInputDateTimeComponent);
276
305
  return TuiInputDateTimeComponent;
277
306
  }(AbstractTuiControl));
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-kit-components-input-date-time.js","sources":["ng://@taiga-ui/kit/components/input-date-time/input-date-time.component.ts","ng://@taiga-ui/kit/components/input-date-time/input-date-time.module.ts","ng://@taiga-ui/kit/components/input-date-time/taiga-ui-kit-components-input-date-time.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n forwardRef,\n HostListener,\n Inject,\n Input,\n Optional,\n Self,\n ViewChild,\n} from '@angular/core';\nimport {NgControl} from '@angular/forms';\nimport {\n AbstractTuiControl,\n ALWAYS_FALSE_HANDLER,\n nullableSame,\n TUI_DATE_FILLER,\n TUI_FIRST_DAY,\n TUI_FOCUSABLE_ITEM_ACCESSOR,\n TUI_LAST_DAY,\n TuiBooleanHandler,\n TuiDay,\n tuiDefaultProp,\n TuiFocusableElementAccessor,\n TuiMonth,\n tuiPure,\n TuiTime,\n TuiTimeMode,\n} from '@taiga-ui/cdk';\nimport {\n sizeBigger,\n TUI_TEXTFIELD_SIZE,\n TuiPrimitiveTextfieldComponent,\n TuiTextfieldSizeDirective,\n TuiTextMaskOptions,\n TuiWithOptionalMinMax,\n} from '@taiga-ui/core';\nimport {DATE_TIME_SEPARATOR, TUI_DATE_MASK} from '@taiga-ui/kit/constants';\nimport {LEFT_ALIGNED_DROPDOWN_CONTROLLER_PROVIDER} from '@taiga-ui/kit/providers';\nimport {TUI_CALENDAR_DATA_STREAM, TUI_TIME_TEXTS} from '@taiga-ui/kit/tokens';\nimport {\n tuiCreateAutoCorrectedDateTimePipe,\n tuiCreateTimeMask,\n} from '@taiga-ui/kit/utils/mask';\nimport {TuiReplayControlValueChangesFactory} from '@taiga-ui/kit/utils/miscellaneous';\nimport {Observable} from 'rxjs';\nimport {map} from 'rxjs/operators';\n\n// TODO: remove in ivy compilation\nexport const TIME_STREAM_FACTORY = TuiReplayControlValueChangesFactory;\n\n// @dynamic\n@Component({\n selector: 'tui-input-date-time',\n templateUrl: './input-date-time.template.html',\n styleUrls: ['./input-date-time.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: TUI_FOCUSABLE_ITEM_ACCESSOR,\n useExisting: forwardRef(() => TuiInputDateTimeComponent),\n },\n {\n provide: TUI_CALENDAR_DATA_STREAM,\n deps: [[new Optional(), new Self(), NgControl]],\n useFactory: TIME_STREAM_FACTORY,\n },\n LEFT_ALIGNED_DROPDOWN_CONTROLLER_PROVIDER,\n ],\n})\nexport class TuiInputDateTimeComponent\n extends AbstractTuiControl<[TuiDay | null, TuiTime | null]>\n implements TuiWithOptionalMinMax<TuiDay>, TuiFocusableElementAccessor {\n @Input()\n @tuiDefaultProp()\n min = TUI_FIRST_DAY;\n\n @Input()\n @tuiDefaultProp()\n max = TUI_LAST_DAY;\n\n @Input()\n @tuiDefaultProp()\n disabledItemHandler: TuiBooleanHandler<TuiDay> = ALWAYS_FALSE_HANDLER;\n\n @Input()\n @tuiDefaultProp()\n defaultActiveYearMonth = TuiMonth.currentLocal();\n\n @Input()\n @tuiDefaultProp()\n timeMode: TuiTimeMode = 'HH:MM';\n\n open = false;\n\n private month: TuiMonth | null = null;\n\n @ViewChild(TuiPrimitiveTextfieldComponent)\n private readonly textfield?: TuiPrimitiveTextfieldComponent;\n\n constructor(\n @Optional()\n @Self()\n @Inject(NgControl)\n control: NgControl | null,\n @Inject(ChangeDetectorRef) changeDetectorRef: ChangeDetectorRef,\n @Inject(TUI_TEXTFIELD_SIZE)\n private readonly textfieldSize: TuiTextfieldSizeDirective,\n @Inject(TUI_DATE_FILLER) readonly dateFiller: string,\n @Inject(TUI_TIME_TEXTS)\n readonly timeTexts$: Observable<Record<TuiTimeMode, string>>,\n ) {\n super(control, changeDetectorRef);\n }\n\n get fillerLength(): number {\n return this.dateFiller.length + DATE_TIME_SEPARATOR.length + this.timeMode.length;\n }\n\n get textMaskOptions(): TuiTextMaskOptions {\n return this.calculateMask(\n this.value[0],\n this.min,\n this.max,\n this.timeMode,\n this.dateFiller,\n );\n }\n\n get nativeFocusableElement(): HTMLInputElement | null {\n return this.textfield ? this.textfield.nativeFocusableElement : null;\n }\n\n get focused(): boolean {\n return !!this.textfield && this.textfield.focused;\n }\n\n get calendarIcon(): string {\n return sizeBigger(this.textfieldSize.size)\n ? 'tuiIconCalendarLarge'\n : 'tuiIconCalendar';\n }\n\n get computedValue(): string {\n const {value, nativeValue, focused, touched} = this;\n const [date, time] = value;\n\n if (\n (date && !nativeValue) ||\n (date && nativeValue.length === this.dateFiller.length) ||\n (date && time)\n ) {\n return `${date.toString()}${DATE_TIME_SEPARATOR}${\n time ? time.toString(this.timeMode) : ''\n }`;\n }\n\n if (touched || focused) {\n return nativeValue;\n }\n\n return date !== null ? date.toString() : '';\n }\n\n get calendarValue(): TuiDay | null {\n return this.value[0];\n }\n\n get computedActiveYearMonth(): TuiMonth {\n return this.month || this.value[0] || this.defaultActiveYearMonth;\n }\n\n get nativeValue(): string {\n return this.nativeFocusableElement ? this.nativeFocusableElement.value : '';\n }\n\n set nativeValue(value: string) {\n if (!this.nativeFocusableElement) {\n return;\n }\n\n this.nativeFocusableElement.value = value;\n }\n\n get canOpen(): boolean {\n return !this.computedDisabled && !this.readOnly;\n }\n\n @tuiPure\n getFiller$(dateFiller: string, timeMode: TuiTimeMode): Observable<string> {\n return this.timeTexts$.pipe(\n map(texts => `${dateFiller}${DATE_TIME_SEPARATOR}${texts[timeMode]}`),\n );\n }\n\n @HostListener('click')\n onClick() {\n this.open = !this.open;\n }\n\n onValueChange(value: string) {\n if (value.length < this.dateFiller.length) {\n this.updateValue([null, null]);\n\n return;\n }\n\n const [date, time] = value.split(DATE_TIME_SEPARATOR);\n\n const parsedDate = TuiDay.normalizeParse(date);\n const parsedTime =\n time && time.length === this.timeMode.length\n ? TuiTime.fromString(time)\n : null;\n\n if (parsedDate !== null) {\n this.open = false;\n }\n\n this.updateValue([parsedDate, parsedTime]);\n }\n\n onDayClick(day: TuiDay) {\n this.updateValue([day, this.value[1]]);\n this.updateNativeValue(day);\n this.open = false;\n }\n\n onHovered(hovered: boolean) {\n this.updateHovered(hovered);\n }\n\n onMonthChange(month: TuiMonth) {\n this.month = month;\n }\n\n onOpenChange(open: boolean) {\n this.open = open;\n }\n\n onFocused(focused: boolean) {\n this.updateFocused(focused);\n\n if (\n focused ||\n this.value[0] === null ||\n this.value[1] !== null ||\n this.nativeValue.length <= this.fillerLength + DATE_TIME_SEPARATOR.length ||\n this.timeMode === 'HH:MM'\n ) {\n return;\n }\n\n const [, time] = this.nativeValue.split(DATE_TIME_SEPARATOR);\n\n if (!time) {\n return;\n }\n\n const parsedTime = TuiTime.fromString(time);\n\n this.updateValue([this.value[0], parsedTime]);\n\n setTimeout(() => {\n if (this.nativeValue.endsWith('.') || this.nativeValue.endsWith(':')) {\n this.nativeValue = this.nativeValue.slice(0, -1);\n }\n });\n }\n\n setDisabledState() {\n super.setDisabledState();\n this.open = false;\n }\n\n writeValue(value: [TuiDay | null, TuiTime | null] | null) {\n super.writeValue(value);\n\n this.nativeValue = value && (value[0] || value[1]) ? this.computedValue : '';\n }\n\n protected getFallbackValue(): [TuiDay | null, TuiTime | null] {\n return [null, null];\n }\n\n protected valueIdenticalComparator(\n oldValue: [TuiDay | null, TuiTime | null],\n newValue: [TuiDay | null, TuiTime | null],\n ): boolean {\n return (\n nullableSame(oldValue[0], newValue[0], (a, b) => a.daySame(b)) &&\n nullableSame(\n oldValue[1],\n newValue[1],\n (a, b) => a.toString() === b.toString(),\n )\n );\n }\n\n private updateNativeValue(day: TuiDay) {\n const time = this.nativeValue.split(DATE_TIME_SEPARATOR)[1] || '';\n\n this.nativeValue = `${day.toString()}${DATE_TIME_SEPARATOR}${time}`;\n }\n\n @tuiPure\n private calculateMask(\n day: TuiDay | null,\n min: TuiDay,\n max: TuiDay,\n timeMode: TuiTimeMode,\n filler: string,\n ): TuiTextMaskOptions {\n return {\n mask: [...TUI_DATE_MASK, ',', ' ', ...tuiCreateTimeMask(timeMode)],\n pipe: tuiCreateAutoCorrectedDateTimePipe(\n {value: day, min, max, filler},\n timeMode,\n ),\n guide: false,\n };\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {TuiPreventDefaultModule} from '@taiga-ui/cdk';\nimport {\n TuiCalendarModule,\n TuiHostedDropdownModule,\n TuiLinkModule,\n TuiPrimitiveTextfieldModule,\n TuiSvgModule,\n} from '@taiga-ui/core';\nimport {TuiValueAccessorModule} from '@taiga-ui/kit/directives';\nimport {PolymorpheusModule} from '@tinkoff/ng-polymorpheus';\nimport {TextMaskModule} from 'angular2-text-mask';\nimport {TuiInputDateTimeComponent} from './input-date-time.component';\n\n@NgModule({\n imports: [\n CommonModule,\n TextMaskModule,\n PolymorpheusModule,\n TuiPreventDefaultModule,\n TuiCalendarModule,\n TuiSvgModule,\n TuiLinkModule,\n TuiHostedDropdownModule,\n TuiPrimitiveTextfieldModule,\n TuiValueAccessorModule,\n ],\n declarations: [TuiInputDateTimeComponent],\n exports: [TuiInputDateTimeComponent],\n})\nexport class TuiInputDateTimeModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAiDA;IACa,mBAAmB,GAAG,oCAAoC;AAEvE;;IAoBY,6CAAmD;IA6B3D,mCAII,OAAyB,EACE,iBAAoC,EAE9C,aAAwC,EACvB,UAAkB,EAE3C,UAAmD;QAVhE,YAYI,kBAAM,OAAO,EAAE,iBAAiB,CAAC,SACpC;QANoB,mBAAa,GAAb,aAAa,CAA2B;QACvB,gBAAU,GAAV,UAAU,CAAQ;QAE3C,gBAAU,GAAV,UAAU,CAAyC;QAnChE,SAAG,GAAG,aAAa,CAAC;QAIpB,SAAG,GAAG,YAAY,CAAC;QAInB,yBAAmB,GAA8B,oBAAoB,CAAC;QAItE,4BAAsB,GAAG,QAAQ,CAAC,YAAY,EAAE,CAAC;QAIjD,cAAQ,GAAgB,OAAO,CAAC;QAEhC,UAAI,GAAG,KAAK,CAAC;QAEL,WAAK,GAAoB,IAAI,CAAC;;KAkBrC;kCA3CQ,yBAAyB;IA6ClC,sBAAI,mDAAY;aAAhB;YACI,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,mBAAmB,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;SACrF;;;OAAA;IAED,sBAAI,sDAAe;aAAnB;YACI,OAAO,IAAI,CAAC,aAAa,CACrB,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EACb,IAAI,CAAC,GAAG,EACR,IAAI,CAAC,GAAG,EACR,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,UAAU,CAClB,CAAC;SACL;;;OAAA;IAED,sBAAI,6DAAsB;aAA1B;YACI,OAAO,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,sBAAsB,GAAG,IAAI,CAAC;SACxE;;;OAAA;IAED,sBAAI,8CAAO;aAAX;YACI,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;SACrD;;;OAAA;IAED,sBAAI,mDAAY;aAAhB;YACI,OAAO,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;kBACpC,sBAAsB;kBACtB,iBAAiB,CAAC;SAC3B;;;OAAA;IAED,sBAAI,oDAAa;aAAjB;YACU,IAAA,SAA6C,EAA5C,gBAAK,EAAE,4BAAW,EAAE,oBAAO,EAAE,oBAAe,CAAC;YAC9C,IAAA,qBAAoB,EAAnB,YAAI,EAAE,YAAa,CAAC;YAE3B,IACI,CAAC,IAAI,IAAI,CAAC,WAAW;iBACpB,IAAI,IAAI,WAAW,CAAC,MAAM,KAAK,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;iBACtD,IAAI,IAAI,IAAI,CAAC,EAChB;gBACE,OAAO,KAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,mBAAmB,IAC3C,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAC1C,CAAC;aACN;YAED,IAAI,OAAO,IAAI,OAAO,EAAE;gBACpB,OAAO,WAAW,CAAC;aACtB;YAED,OAAO,IAAI,KAAK,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC;SAC/C;;;OAAA;IAED,sBAAI,oDAAa;aAAjB;YACI,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;SACxB;;;OAAA;IAED,sBAAI,8DAAuB;aAA3B;YACI,OAAO,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,sBAAsB,CAAC;SACrE;;;OAAA;IAED,sBAAI,kDAAW;aAAf;YACI,OAAO,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,sBAAsB,CAAC,KAAK,GAAG,EAAE,CAAC;SAC/E;aAED,UAAgB,KAAa;YACzB,IAAI,CAAC,IAAI,CAAC,sBAAsB,EAAE;gBAC9B,OAAO;aACV;YAED,IAAI,CAAC,sBAAsB,CAAC,KAAK,GAAG,KAAK,CAAC;SAC7C;;;OARA;IAUD,sBAAI,8CAAO;aAAX;YACI,OAAO,CAAC,IAAI,CAAC,gBAAgB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;SACnD;;;OAAA;IAGD,8CAAU,GAAV,UAAW,UAAkB,EAAE,QAAqB;QAChD,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CACvB,GAAG,CAAC,UAAA,KAAK,IAAI,OAAA,KAAG,UAAU,GAAG,mBAAmB,GAAG,KAAK,CAAC,QAAQ,CAAG,GAAA,CAAC,CACxE,CAAC;KACL;IAGD,2CAAO,GAAP;QACI,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;KAC1B;IAED,iDAAa,GAAb,UAAc,KAAa;QACvB,IAAI,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;YACvC,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;YAE/B,OAAO;SACV;QAEK,IAAA,gDAA+C,EAA9C,YAAI,EAAE,YAAwC,CAAC;QAEtD,IAAM,UAAU,GAAG,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QAC/C,IAAM,UAAU,GACZ,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,QAAQ,CAAC,MAAM;cACtC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC;cACxB,IAAI,CAAC;QAEf,IAAI,UAAU,KAAK,IAAI,EAAE;YACrB,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;SACrB;QAED,IAAI,CAAC,WAAW,CAAC,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC;KAC9C;IAED,8CAAU,GAAV,UAAW,GAAW;QAClB,IAAI,CAAC,WAAW,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACvC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;QAC5B,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;KACrB;IAED,6CAAS,GAAT,UAAU,OAAgB;QACtB,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;KAC/B;IAED,iDAAa,GAAb,UAAc,KAAe;QACzB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;KACtB;IAED,gDAAY,GAAZ,UAAa,IAAa;QACtB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;KACpB;IAED,6CAAS,GAAT,UAAU,OAAgB;QAA1B,iBA4BC;QA3BG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAE5B,IACI,OAAO;YACP,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI;YACtB,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI;YACtB,IAAI,CAAC,WAAW,CAAC,MAAM,IAAI,IAAI,CAAC,YAAY,GAAG,mBAAmB,CAAC,MAAM;YACzE,IAAI,CAAC,QAAQ,KAAK,OAAO,EAC3B;YACE,OAAO;SACV;QAEK,IAAA,2DAAsD,EAAnD,YAAmD,CAAC;QAE7D,IAAI,CAAC,IAAI,EAAE;YACP,OAAO;SACV;QAED,IAAM,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAE5C,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC;QAE9C,UAAU,CAAC;YACP,IAAI,KAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,KAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;gBAClE,KAAI,CAAC,WAAW,GAAG,KAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;aACpD;SACJ,CAAC,CAAC;KACN;IAED,oDAAgB,GAAhB;QACI,iBAAM,gBAAgB,WAAE,CAAC;QACzB,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;KACrB;IAED,8CAAU,GAAV,UAAW,KAA6C;QACpD,iBAAM,UAAU,YAAC,KAAK,CAAC,CAAC;QAExB,IAAI,CAAC,WAAW,GAAG,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;KAChF;IAES,oDAAgB,GAA1B;QACI,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;KACvB;IAES,4DAAwB,GAAlC,UACI,QAAyC,EACzC,QAAyC;QAEzC,QACI,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,UAAC,CAAC,EAAE,CAAC,IAAK,OAAA,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAA,CAAC;YAC9D,YAAY,CACR,QAAQ,CAAC,CAAC,CAAC,EACX,QAAQ,CAAC,CAAC,CAAC,EACX,UAAC,CAAC,EAAE,CAAC,IAAK,OAAA,CAAC,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,QAAQ,EAAE,GAAA,CAC1C,EACH;KACL;IAEO,qDAAiB,GAAzB,UAA0B,GAAW;QACjC,IAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAElE,IAAI,CAAC,WAAW,GAAG,KAAG,GAAG,CAAC,QAAQ,EAAE,GAAG,mBAAmB,GAAG,IAAM,CAAC;KACvE;IAGO,iDAAa,GAArB,UACI,GAAkB,EAClB,GAAW,EACX,GAAW,EACX,QAAqB,EACrB,MAAc;QAEd,OAAO;YACH,IAAI,WAAM,aAAa,GAAE,GAAG,EAAE,GAAG,GAAK,iBAAiB,CAAC,QAAQ,CAAC,CAAC;YAClE,IAAI,EAAE,kCAAkC,CACpC,EAAC,KAAK,EAAE,GAAG,EAAE,GAAG,KAAA,EAAE,GAAG,KAAA,EAAE,MAAM,QAAA,EAAC,EAC9B,QAAQ,CACX;YACD,KAAK,EAAE,KAAK;SACf,CAAC;KACL;;;gBAzNY,SAAS,uBAHjB,QAAQ,YACR,IAAI,YACJ,MAAM,SAAC,SAAS;gBAE6B,iBAAiB,uBAA9D,MAAM,SAAC,iBAAiB;gBAEO,yBAAyB,uBADxD,MAAM,SAAC,kBAAkB;6CAEzB,MAAM,SAAC,eAAe;gBAEF,UAAU,uBAD9B,MAAM,SAAC,cAAc;;IAlC1B;QAFC,KAAK,EAAE;QACP,cAAc,EAAE;0DACG;IAIpB;QAFC,KAAK,EAAE;QACP,cAAc,EAAE;0DACE;IAInB;QAFC,KAAK,EAAE;QACP,cAAc,EAAE;0EACqD;IAItE;QAFC,KAAK,EAAE;QACP,cAAc,EAAE;6EACgC;IAIjD;QAFC,KAAK,EAAE;QACP,cAAc,EAAE;+DACe;IAOhC;QADC,SAAS,CAAC,8BAA8B,CAAC;gEACkB;IA2F5D;QADC,OAAO;+DAKP;IAGD;QADC,YAAY,CAAC,OAAO,CAAC;4DAGrB;IA4GD;QADC,OAAO;kEAgBP;IA3PQ,yBAAyB;QAlBrC,SAAS,CAAC;YACP,QAAQ,EAAE,qBAAqB;YAC/B,i3CAA8C;YAE9C,eAAe,EAAE,uBAAuB,CAAC,MAAM;YAC/C,SAAS,EAAE;gBACP;oBACI,OAAO,EAAE,2BAA2B;oBACpC,WAAW,EAAE,UAAU,CAAC,cAAM,OAAA,2BAAyB,GAAA,CAAC;iBAC3D;gBACD;oBACI,OAAO,EAAE,wBAAwB;oBACjC,IAAI,EAAE,CAAC,CAAC,IAAI,QAAQ,EAAE,EAAE,IAAI,IAAI,EAAE,EAAE,SAAS,CAAC,CAAC;oBAC/C,UAAU,EAAE,mBAAmB;iBAClC;gBACD,yCAAyC;aAC5C;;SACJ,CAAC;QAgCO,WAAA,QAAQ,EAAE,CAAA;QACV,WAAA,IAAI,EAAE,CAAA;QACN,WAAA,MAAM,CAAC,SAAS,CAAC,CAAA;QAEjB,WAAA,MAAM,CAAC,iBAAiB,CAAC,CAAA;QACzB,WAAA,MAAM,CAAC,kBAAkB,CAAC,CAAA;QAE1B,WAAA,MAAM,CAAC,eAAe,CAAC,CAAA;QACvB,WAAA,MAAM,CAAC,cAAc,CAAC,CAAA;OAvClB,yBAAyB,CA4PrC;IAAD,gCAAC;CAAA,CA3PW,kBAAkB;;;ICzC9B;KAAsC;IAAzB,sBAAsB;QAhBlC,QAAQ,CAAC;YACN,OAAO,EAAE;gBACL,YAAY;gBACZ,cAAc;gBACd,kBAAkB;gBAClB,uBAAuB;gBACvB,iBAAiB;gBACjB,YAAY;gBACZ,aAAa;gBACb,uBAAuB;gBACvB,2BAA2B;gBAC3B,sBAAsB;aACzB;YACD,YAAY,EAAE,CAAC,yBAAyB,CAAC;YACzC,OAAO,EAAE,CAAC,yBAAyB,CAAC;SACvC,CAAC;OACW,sBAAsB,CAAG;IAAD,6BAAC;CAAtC;;AC/BA;;;;;;"}
1
+ {"version":3,"file":"taiga-ui-kit-components-input-date-time.js","sources":["ng://@taiga-ui/kit/components/input-date-time/input-date-time.component.ts","ng://@taiga-ui/kit/components/input-date-time/input-date-time.module.ts","ng://@taiga-ui/kit/components/input-date-time/taiga-ui-kit-components-input-date-time.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n forwardRef,\n HostListener,\n Inject,\n Input,\n Optional,\n Self,\n ViewChild,\n} from '@angular/core';\nimport {NgControl} from '@angular/forms';\nimport {\n AbstractTuiControl,\n ALWAYS_FALSE_HANDLER,\n clamp,\n DATE_FILLER_LENGTH,\n nullableSame,\n TUI_DATE_FORMAT,\n TUI_FIRST_DAY,\n TUI_FOCUSABLE_ITEM_ACCESSOR,\n TUI_LAST_DAY,\n TuiBooleanHandler,\n TuiDateMode,\n TuiDay,\n tuiDefaultProp,\n TuiFocusableElementAccessor,\n TuiMonth,\n tuiPure,\n TuiTime,\n TuiTimeMode,\n} from '@taiga-ui/cdk';\nimport {\n sizeBigger,\n TUI_TEXTFIELD_SIZE,\n TuiPrimitiveTextfieldComponent,\n TuiTextfieldSizeDirective,\n TuiTextMaskOptions,\n TuiWithOptionalMinMax,\n} from '@taiga-ui/core';\nimport {DATE_TIME_SEPARATOR, TUI_DATE_MASK} from '@taiga-ui/kit/constants';\nimport {LEFT_ALIGNED_DROPDOWN_CONTROLLER_PROVIDER} from '@taiga-ui/kit/providers';\nimport {\n TUI_CALENDAR_DATA_STREAM,\n TUI_DATE_TEXTS,\n TUI_TIME_TEXTS,\n} from '@taiga-ui/kit/tokens';\nimport {\n tuiCreateAutoCorrectedDateTimePipe,\n tuiCreateTimeMask,\n} from '@taiga-ui/kit/utils/mask';\nimport {TuiReplayControlValueChangesFactory} from '@taiga-ui/kit/utils/miscellaneous';\nimport {combineLatest, Observable} from 'rxjs';\nimport {map, pluck} from 'rxjs/operators';\n\n// TODO: remove in ivy compilation\nexport const TIME_STREAM_FACTORY = TuiReplayControlValueChangesFactory;\n\n// @dynamic\n@Component({\n selector: 'tui-input-date-time',\n templateUrl: './input-date-time.template.html',\n styleUrls: ['./input-date-time.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: TUI_FOCUSABLE_ITEM_ACCESSOR,\n useExisting: forwardRef(() => TuiInputDateTimeComponent),\n },\n {\n provide: TUI_CALENDAR_DATA_STREAM,\n deps: [[new Optional(), new Self(), NgControl]],\n useFactory: TIME_STREAM_FACTORY,\n },\n LEFT_ALIGNED_DROPDOWN_CONTROLLER_PROVIDER,\n ],\n})\nexport class TuiInputDateTimeComponent\n extends AbstractTuiControl<[TuiDay | null, TuiTime | null]>\n implements\n TuiWithOptionalMinMax<TuiDay | [TuiDay, TuiTime]>,\n TuiFocusableElementAccessor\n{\n @Input()\n @tuiDefaultProp()\n min = TUI_FIRST_DAY;\n\n @Input()\n @tuiDefaultProp()\n max = TUI_LAST_DAY;\n\n @Input()\n @tuiDefaultProp()\n disabledItemHandler: TuiBooleanHandler<TuiDay> = ALWAYS_FALSE_HANDLER;\n\n @Input()\n @tuiDefaultProp()\n defaultActiveYearMonth = TuiMonth.currentLocal();\n\n @Input()\n @tuiDefaultProp()\n timeMode: TuiTimeMode = 'HH:MM';\n\n open = false;\n readonly filler$ = combineLatest([\n this.dateTexts$.pipe(pluck(this.dateFormat)),\n this.timeTexts$.pipe(pluck(this.timeMode)),\n ]).pipe(map(fillers => this.getDateTimeString(...fillers)));\n\n private month: TuiMonth | null = null;\n\n @ViewChild(TuiPrimitiveTextfieldComponent)\n private readonly textfield?: TuiPrimitiveTextfieldComponent;\n\n constructor(\n @Optional()\n @Self()\n @Inject(NgControl)\n control: NgControl | null,\n @Inject(ChangeDetectorRef) changeDetectorRef: ChangeDetectorRef,\n @Inject(TUI_TEXTFIELD_SIZE)\n private readonly textfieldSize: TuiTextfieldSizeDirective,\n @Inject(TUI_DATE_FORMAT) readonly dateFormat: TuiDateMode,\n @Inject(TUI_TIME_TEXTS)\n readonly timeTexts$: Observable<Record<TuiTimeMode, string>>,\n @Inject(TUI_DATE_TEXTS)\n readonly dateTexts$: Observable<Record<TuiDateMode, string>>,\n ) {\n super(control, changeDetectorRef);\n }\n\n get fillerLength(): number {\n return DATE_FILLER_LENGTH + DATE_TIME_SEPARATOR.length + this.timeMode.length;\n }\n\n get textMaskOptions(): TuiTextMaskOptions {\n return this.calculateMask(\n this.value[0],\n this.calendarMinDay,\n this.calendarMaxDay,\n this.timeMode,\n );\n }\n\n get nativeFocusableElement(): HTMLInputElement | null {\n return this.textfield ? this.textfield.nativeFocusableElement : null;\n }\n\n get focused(): boolean {\n return !!this.textfield && this.textfield.focused;\n }\n\n get calendarIcon(): string {\n return sizeBigger(this.textfieldSize.size)\n ? 'tuiIconCalendarLarge'\n : 'tuiIconCalendar';\n }\n\n get computedValue(): string {\n const {value, nativeValue, timeMode} = this;\n const [date, time] = value;\n const hasTimeInputChars = nativeValue.length > DATE_FILLER_LENGTH;\n\n if (!date || (!time && hasTimeInputChars)) {\n return nativeValue;\n }\n\n return this.getDateTimeString(date, time, timeMode);\n }\n\n get calendarValue(): TuiDay | null {\n return this.value[0];\n }\n\n get calendarMinDay(): TuiDay {\n return Array.isArray(this.min) ? this.min[0] : this.min;\n }\n\n get calendarMaxDay(): TuiDay {\n return Array.isArray(this.max) ? this.max[0] : this.max;\n }\n\n get computedActiveYearMonth(): TuiMonth {\n return this.month || this.value[0] || this.defaultActiveYearMonth;\n }\n\n get nativeValue(): string {\n return this.nativeFocusableElement ? this.nativeFocusableElement.value : '';\n }\n\n set nativeValue(value: string) {\n if (!this.nativeFocusableElement) {\n return;\n }\n\n this.nativeFocusableElement.value = value;\n }\n\n get canOpen(): boolean {\n return !this.computedDisabled && !this.readOnly;\n }\n\n @HostListener('click')\n onClick() {\n this.open = !this.open;\n }\n\n onValueChange(value: string) {\n if (value.length < DATE_FILLER_LENGTH) {\n this.updateValue([null, null]);\n\n return;\n }\n\n const [date, time] = value.split(DATE_TIME_SEPARATOR);\n\n const parsedDate = TuiDay.normalizeParse(date);\n const parsedTime =\n time && time.length === this.timeMode.length\n ? this.clampTime(TuiTime.fromString(time), parsedDate)\n : null;\n\n this.open = false;\n this.updateValue([parsedDate, parsedTime]);\n }\n\n onDayClick(day: TuiDay) {\n const modifiedTime = this.value[1] && this.clampTime(this.value[1], day);\n\n this.updateValue([day, modifiedTime]);\n this.updateNativeValue(day);\n this.open = false;\n }\n\n onHovered(hovered: boolean) {\n this.updateHovered(hovered);\n }\n\n onMonthChange(month: TuiMonth) {\n this.month = month;\n }\n\n onOpenChange(open: boolean) {\n this.open = open;\n }\n\n onFocused(focused: boolean) {\n this.updateFocused(focused);\n\n if (\n focused ||\n this.value[0] === null ||\n this.value[1] !== null ||\n this.nativeValue.length <= this.fillerLength + DATE_TIME_SEPARATOR.length ||\n this.timeMode === 'HH:MM'\n ) {\n return;\n }\n\n const [, time] = this.nativeValue.split(DATE_TIME_SEPARATOR);\n\n if (!time) {\n return;\n }\n\n const parsedTime = TuiTime.fromString(time);\n\n this.updateValue([this.value[0], parsedTime]);\n\n setTimeout(() => {\n if (this.nativeValue.endsWith('.') || this.nativeValue.endsWith(':')) {\n this.nativeValue = this.nativeValue.slice(0, -1);\n }\n });\n }\n\n setDisabledState() {\n super.setDisabledState();\n this.open = false;\n }\n\n writeValue(value: [TuiDay | null, TuiTime | null] | null) {\n super.writeValue(value);\n\n this.nativeValue = value && (value[0] || value[1]) ? this.computedValue : '';\n }\n\n protected getFallbackValue(): [TuiDay | null, TuiTime | null] {\n return [null, null];\n }\n\n protected valueIdenticalComparator(\n oldValue: [TuiDay | null, TuiTime | null],\n newValue: [TuiDay | null, TuiTime | null],\n ): boolean {\n return (\n nullableSame(oldValue[0], newValue[0], (a, b) => a.daySame(b)) &&\n nullableSame(\n oldValue[1],\n newValue[1],\n (a, b) => a.toString() === b.toString(),\n )\n );\n }\n\n private updateNativeValue(day: TuiDay) {\n const time = this.nativeValue.split(DATE_TIME_SEPARATOR)[1] || '';\n\n this.nativeValue = this.getDateTimeString(day, time);\n }\n\n private clampTime(time: TuiTime, day: TuiDay): TuiTime {\n const ms = time.toAbsoluteMilliseconds();\n const min =\n Array.isArray(this.min) && day.daySame(this.calendarMinDay)\n ? this.min[1].toAbsoluteMilliseconds()\n : -Infinity;\n const max =\n Array.isArray(this.max) && day.daySame(this.calendarMaxDay)\n ? this.max[1].toAbsoluteMilliseconds()\n : Infinity;\n\n return TuiTime.fromAbsoluteMilliseconds(clamp(ms, min, max));\n }\n\n @tuiPure\n private calculateMask(\n day: TuiDay | null,\n min: TuiDay,\n max: TuiDay,\n timeMode: TuiTimeMode,\n ): TuiTextMaskOptions {\n return {\n mask: [...TUI_DATE_MASK, ',', ' ', ...tuiCreateTimeMask(timeMode)],\n pipe: tuiCreateAutoCorrectedDateTimePipe({value: day, min, max}, timeMode),\n guide: false,\n };\n }\n\n @tuiPure\n private getDateTimeString(\n date: TuiDay | string,\n time: TuiTime | string | null,\n timeMode: TuiTimeMode = 'HH:MM',\n ): string {\n const dateString = date instanceof TuiDay ? date.toString() : date;\n const timeString = time instanceof TuiTime ? time.toString(timeMode) : time || '';\n\n return `${dateString}${DATE_TIME_SEPARATOR}${timeString}`;\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {TuiPreventDefaultModule} from '@taiga-ui/cdk';\nimport {\n TuiCalendarModule,\n TuiHostedDropdownModule,\n TuiLinkModule,\n TuiPrimitiveTextfieldModule,\n TuiSvgModule,\n} from '@taiga-ui/core';\nimport {TuiValueAccessorModule} from '@taiga-ui/kit/directives';\nimport {PolymorpheusModule} from '@tinkoff/ng-polymorpheus';\nimport {TextMaskModule} from 'angular2-text-mask';\nimport {TuiInputDateTimeComponent} from './input-date-time.component';\n\n@NgModule({\n imports: [\n CommonModule,\n TextMaskModule,\n PolymorpheusModule,\n TuiPreventDefaultModule,\n TuiCalendarModule,\n TuiSvgModule,\n TuiLinkModule,\n TuiHostedDropdownModule,\n TuiPrimitiveTextfieldModule,\n TuiValueAccessorModule,\n ],\n declarations: [TuiInputDateTimeComponent],\n exports: [TuiInputDateTimeComponent],\n})\nexport class TuiInputDateTimeModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,15 +1,16 @@
1
1
  import { __extends, __decorate, __param } from 'tslib';
2
2
  import { Optional, Self, Inject, ChangeDetectorRef, Injector, Type, Input, ViewChild, HostListener, Component, ChangeDetectionStrategy, forwardRef, NgModule } from '@angular/core';
3
3
  import { NgControl } from '@angular/forms';
4
- import { TUI_FIRST_DAY, TUI_LAST_DAY, ALWAYS_FALSE_HANDLER, TuiMonth, TuiDay, nullableSame, TUI_IS_MOBILE, TUI_DATE_FILLER, tuiDefaultProp, TUI_FOCUSABLE_ITEM_ACCESSOR, AbstractTuiNullableControl, TuiPreventDefaultModule } from '@taiga-ui/cdk';
4
+ import { TUI_FIRST_DAY, TUI_LAST_DAY, ALWAYS_FALSE_HANDLER, TuiMonth, DATE_FILLER_LENGTH, TuiDay, nullableSame, TUI_IS_MOBILE, TUI_DATE_FORMAT, tuiDefaultProp, TUI_FOCUSABLE_ITEM_ACCESSOR, AbstractTuiNullableControl, TuiPreventDefaultModule, TuiLetModule } from '@taiga-ui/cdk';
5
5
  import { TUI_DEFAULT_MARKER_HANDLER, sizeBigger, TuiDialogService, TuiTextfieldSizeDirective, TUI_TEXTFIELD_SIZE, TuiPrimitiveTextfieldComponent, TuiCalendarModule, TuiSvgModule, TuiLinkModule, TuiHostedDropdownModule, TuiPrimitiveTextfieldModule } from '@taiga-ui/core';
6
6
  import { TUI_DATE_MASK, EMPTY_MASK } from '@taiga-ui/kit/constants';
7
7
  import { LEFT_ALIGNED_DROPDOWN_CONTROLLER_PROVIDER } from '@taiga-ui/kit/providers';
8
- import { TUI_MOBILE_CALENDAR, TUI_CALENDAR_DATA_STREAM } from '@taiga-ui/kit/tokens';
8
+ import { TUI_MOBILE_CALENDAR, TUI_DATE_TEXTS, TUI_CALENDAR_DATA_STREAM } from '@taiga-ui/kit/tokens';
9
9
  import { tuiCreateAutoCorrectedDatePipe } from '@taiga-ui/kit/utils/mask';
10
10
  import { TuiReplayControlValueChangesFactory } from '@taiga-ui/kit/utils/miscellaneous';
11
11
  import { PolymorpheusComponent, PolymorpheusModule } from '@tinkoff/ng-polymorpheus';
12
- import { takeUntil } from 'rxjs/operators';
12
+ import { Observable } from 'rxjs';
13
+ import { pluck, takeUntil } from 'rxjs/operators';
13
14
  import { CommonModule } from '@angular/common';
14
15
  import { TuiValueAccessorModule } from '@taiga-ui/kit/directives';
15
16
  import { TextMaskModule } from 'angular2-text-mask';
@@ -18,14 +19,15 @@ import { TextMaskModule } from 'angular2-text-mask';
18
19
  var DATE_STREAM_FACTORY = TuiReplayControlValueChangesFactory;
19
20
  var TuiInputDateComponent = /** @class */ (function (_super) {
20
21
  __extends(TuiInputDateComponent, _super);
21
- function TuiInputDateComponent(control, changeDetectorRef, injector, isMobile, dialogService, mobileCalendar, textfieldSize, filler) {
22
+ function TuiInputDateComponent(control, changeDetectorRef, injector, isMobile, dialogService, mobileCalendar, textfieldSize, dateFormat, dateTexts$) {
22
23
  var _this = _super.call(this, control, changeDetectorRef) || this;
23
24
  _this.injector = injector;
24
25
  _this.isMobile = isMobile;
25
26
  _this.dialogService = dialogService;
26
27
  _this.mobileCalendar = mobileCalendar;
27
28
  _this.textfieldSize = textfieldSize;
28
- _this.filler = filler;
29
+ _this.dateFormat = dateFormat;
30
+ _this.dateTexts$ = dateTexts$;
29
31
  _this.min = TUI_FIRST_DAY;
30
32
  _this.max = TUI_LAST_DAY;
31
33
  _this.disabledItemHandler = ALWAYS_FALSE_HANDLER;
@@ -33,6 +35,7 @@ var TuiInputDateComponent = /** @class */ (function (_super) {
33
35
  _this.items = [];
34
36
  _this.defaultActiveYearMonth = TuiMonth.currentLocal();
35
37
  _this.open = false;
38
+ _this.filler$ = _this.dateTexts$.pipe(pluck(_this.dateFormat));
36
39
  _this.month = null;
37
40
  _this.textMaskOptions = {
38
41
  mask: TUI_DATE_MASK,
@@ -72,13 +75,6 @@ var TuiInputDateComponent = /** @class */ (function (_super) {
72
75
  enumerable: true,
73
76
  configurable: true
74
77
  });
75
- Object.defineProperty(TuiInputDateComponent.prototype, "computedFiller", {
76
- get: function () {
77
- return this.activeItem ? '' : this.filler;
78
- },
79
- enumerable: true,
80
- configurable: true
81
- });
82
78
  Object.defineProperty(TuiInputDateComponent.prototype, "computedValue", {
83
79
  get: function () {
84
80
  var _a = this, value = _a.value, nativeValue = _a.nativeValue, activeItem = _a.activeItem;
@@ -135,6 +131,9 @@ var TuiInputDateComponent = /** @class */ (function (_super) {
135
131
  enumerable: true,
136
132
  configurable: true
137
133
  });
134
+ TuiInputDateComponent.prototype.getComputedFiller = function (filler) {
135
+ return this.activeItem ? '' : filler;
136
+ };
138
137
  TuiInputDateComponent.prototype.onMobileClick = function () {
139
138
  var _this = this;
140
139
  if (!this.mobileCalendar) {
@@ -166,7 +165,7 @@ var TuiInputDateComponent = /** @class */ (function (_super) {
166
165
  if (this.control) {
167
166
  this.control.updateValueAndValidity({ emitEvent: false });
168
167
  }
169
- this.updateValue(value.length !== this.filler.length ? null : TuiDay.normalizeParse(value));
168
+ this.updateValue(value.length !== DATE_FILLER_LENGTH ? null : TuiDay.normalizeParse(value));
170
169
  };
171
170
  TuiInputDateComponent.prototype.onDayClick = function (value) {
172
171
  this.updateValue(value);
@@ -204,7 +203,8 @@ var TuiInputDateComponent = /** @class */ (function (_super) {
204
203
  { type: TuiDialogService, decorators: [{ type: Inject, args: [TuiDialogService,] }] },
205
204
  { type: Type, decorators: [{ type: Optional }, { type: Inject, args: [TUI_MOBILE_CALENDAR,] }] },
206
205
  { type: TuiTextfieldSizeDirective, decorators: [{ type: Inject, args: [TUI_TEXTFIELD_SIZE,] }] },
207
- { type: String, decorators: [{ type: Inject, args: [TUI_DATE_FILLER,] }] }
206
+ { type: undefined, decorators: [{ type: Inject, args: [TUI_DATE_FORMAT,] }] },
207
+ { type: Observable, decorators: [{ type: Inject, args: [TUI_DATE_TEXTS,] }] }
208
208
  ]; };
209
209
  __decorate([
210
210
  Input(),
@@ -239,7 +239,7 @@ var TuiInputDateComponent = /** @class */ (function (_super) {
239
239
  TuiInputDateComponent = TuiInputDateComponent_1 = __decorate([
240
240
  Component({
241
241
  selector: 'tui-input-date',
242
- template: "<tui-hosted-dropdown\n class=\"hosted\"\n [canOpen]=\"canOpen\"\n [content]=\"dropdown\"\n [open]=\"open && canOpen\"\n (openChange)=\"onOpenChange($event)\"\n>\n <tui-primitive-textfield\n automation-id=\"tui-input-date-range__textfield\"\n class=\"textfield\"\n tuiValueAccessor\n [pseudoFocused]=\"pseudoFocused\"\n [pseudoHovered]=\"pseudoHovered\"\n [invalid]=\"computedInvalid\"\n [filler]=\"computedFiller\"\n [nativeId]=\"nativeId\"\n [readOnly]=\"readOnly\"\n [focusable]=\"computedFocusable\"\n [iconContent]=\"computedMobile ? iconContent : calendarIcon\"\n [disabled]=\"computedDisabled\"\n [textMask]=\"computedMask\"\n [value]=\"computedValue\"\n (valueChange)=\"onValueChange($event)\"\n (hoveredChange)=\"onHovered($event)\"\n (focusedChange)=\"onFocused($event)\"\n >\n <ng-content></ng-content>\n </tui-primitive-textfield>\n\n <ng-template #iconContent>\n <tui-svg\n automation-id=\"tui-input-date-range__icon\"\n [class.icon]=\"!computedDisabled\"\n [src]=\"calendarIcon\"\n (click)=\"onMobileClick()\"\n ></tui-svg>\n </ng-template>\n\n <ng-template #dropdown=\"polymorpheus\" polymorpheus>\n <tui-calendar\n tuiPreventDefault=\"mousedown\"\n automation-id=\"tui-input-date__calendar\"\n [min]=\"min\"\n [max]=\"max\"\n [markerHandler]=\"markerHandler\"\n [disabledItemHandler]=\"disabledItemHandler\"\n [month]=\"computedActiveYearMonth\"\n [value]=\"value\"\n (dayClick)=\"onDayClick($event)\"\n (monthChange)=\"onMonthChange($event)\"\n ></tui-calendar>\n <div\n *ngIf=\"items.length === 1\"\n tuiPreventDefault=\"mousedown\"\n class=\"button\"\n >\n <button tuiLink type=\"button\" (click)=\"onDayClick(items[0].day)\">\n {{items[0]}}\n </button>\n </div>\n </ng-template>\n</tui-hosted-dropdown>\n",
242
+ template: "<tui-hosted-dropdown\n class=\"hosted\"\n [canOpen]=\"canOpen\"\n [content]=\"dropdown\"\n [open]=\"open && canOpen\"\n (openChange)=\"onOpenChange($event)\"\n>\n <tui-primitive-textfield\n *tuiLet=\"filler$ | async as filler\"\n automation-id=\"tui-input-date-range__textfield\"\n class=\"textfield\"\n tuiValueAccessor\n [pseudoFocused]=\"pseudoFocused\"\n [pseudoHovered]=\"pseudoHovered\"\n [invalid]=\"computedInvalid\"\n [filler]=\"getComputedFiller(filler)\"\n [nativeId]=\"nativeId\"\n [readOnly]=\"readOnly\"\n [focusable]=\"computedFocusable\"\n [iconContent]=\"computedMobile ? iconContent : calendarIcon\"\n [disabled]=\"computedDisabled\"\n [textMask]=\"computedMask\"\n [value]=\"computedValue\"\n (valueChange)=\"onValueChange($event)\"\n (hoveredChange)=\"onHovered($event)\"\n (focusedChange)=\"onFocused($event)\"\n >\n <ng-content></ng-content>\n </tui-primitive-textfield>\n\n <ng-template #iconContent>\n <tui-svg\n automation-id=\"tui-input-date-range__icon\"\n [class.icon]=\"!computedDisabled\"\n [src]=\"calendarIcon\"\n (click)=\"onMobileClick()\"\n ></tui-svg>\n </ng-template>\n\n <ng-template #dropdown=\"polymorpheus\" polymorpheus>\n <tui-calendar\n tuiPreventDefault=\"mousedown\"\n automation-id=\"tui-input-date__calendar\"\n [min]=\"min\"\n [max]=\"max\"\n [markerHandler]=\"markerHandler\"\n [disabledItemHandler]=\"disabledItemHandler\"\n [month]=\"computedActiveYearMonth\"\n [value]=\"value\"\n (dayClick)=\"onDayClick($event)\"\n (monthChange)=\"onMonthChange($event)\"\n ></tui-calendar>\n <div\n *ngIf=\"items.length === 1\"\n tuiPreventDefault=\"mousedown\"\n class=\"button\"\n >\n <button tuiLink type=\"button\" (click)=\"onDayClick(items[0].day)\">\n {{items[0]}}\n </button>\n </div>\n </ng-template>\n</tui-hosted-dropdown>\n",
243
243
  changeDetection: ChangeDetectionStrategy.OnPush,
244
244
  providers: [
245
245
  {
@@ -265,7 +265,8 @@ var TuiInputDateComponent = /** @class */ (function (_super) {
265
265
  __param(5, Optional()),
266
266
  __param(5, Inject(TUI_MOBILE_CALENDAR)),
267
267
  __param(6, Inject(TUI_TEXTFIELD_SIZE)),
268
- __param(7, Inject(TUI_DATE_FILLER))
268
+ __param(7, Inject(TUI_DATE_FORMAT)),
269
+ __param(8, Inject(TUI_DATE_TEXTS))
269
270
  ], TuiInputDateComponent);
270
271
  return TuiInputDateComponent;
271
272
  }(AbstractTuiNullableControl));
@@ -286,6 +287,7 @@ var TuiInputDateModule = /** @class */ (function () {
286
287
  TuiHostedDropdownModule,
287
288
  TuiPrimitiveTextfieldModule,
288
289
  TuiValueAccessorModule,
290
+ TuiLetModule,
289
291
  ],
290
292
  declarations: [TuiInputDateComponent],
291
293
  exports: [TuiInputDateComponent],
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-kit-components-input-date.js","sources":["ng://@taiga-ui/kit/components/input-date/input-date.component.ts","ng://@taiga-ui/kit/components/input-date/input-date.module.ts","ng://@taiga-ui/kit/components/input-date/taiga-ui-kit-components-input-date.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n forwardRef,\n HostListener,\n Inject,\n Injector,\n Input,\n Optional,\n Self,\n Type,\n ViewChild,\n} from '@angular/core';\nimport {NgControl} from '@angular/forms';\nimport {\n AbstractTuiNullableControl,\n ALWAYS_FALSE_HANDLER,\n nullableSame,\n TUI_DATE_FILLER,\n TUI_FIRST_DAY,\n TUI_FOCUSABLE_ITEM_ACCESSOR,\n TUI_IS_MOBILE,\n TUI_LAST_DAY,\n TuiBooleanHandler,\n TuiDay,\n tuiDefaultProp,\n TuiFocusableElementAccessor,\n TuiMonth,\n} from '@taiga-ui/cdk';\nimport {\n sizeBigger,\n TUI_DEFAULT_MARKER_HANDLER,\n TUI_TEXTFIELD_SIZE,\n TuiDialogService,\n TuiMarkerHandler,\n TuiPrimitiveTextfieldComponent,\n TuiTextfieldSizeDirective,\n TuiTextMaskOptions,\n TuiWithOptionalMinMax,\n} from '@taiga-ui/core';\nimport {TuiNamedDay} from '@taiga-ui/kit/classes';\nimport {EMPTY_MASK, TUI_DATE_MASK} from '@taiga-ui/kit/constants';\nimport {LEFT_ALIGNED_DROPDOWN_CONTROLLER_PROVIDER} from '@taiga-ui/kit/providers';\nimport {TUI_CALENDAR_DATA_STREAM, TUI_MOBILE_CALENDAR} from '@taiga-ui/kit/tokens';\nimport {tuiCreateAutoCorrectedDatePipe} from '@taiga-ui/kit/utils/mask';\nimport {TuiReplayControlValueChangesFactory} from '@taiga-ui/kit/utils/miscellaneous';\nimport {PolymorpheusComponent} from '@tinkoff/ng-polymorpheus';\nimport {takeUntil} from 'rxjs/operators';\n\n// TODO: remove in ivy compilation\nexport const DATE_STREAM_FACTORY = TuiReplayControlValueChangesFactory;\n\n@Component({\n selector: 'tui-input-date',\n templateUrl: './input-date.template.html',\n styleUrls: ['./input-date.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: TUI_FOCUSABLE_ITEM_ACCESSOR,\n useExisting: forwardRef(() => TuiInputDateComponent),\n },\n {\n provide: TUI_CALENDAR_DATA_STREAM,\n deps: [[new Optional(), new Self(), NgControl]],\n useFactory: DATE_STREAM_FACTORY,\n },\n LEFT_ALIGNED_DROPDOWN_CONTROLLER_PROVIDER,\n ],\n})\nexport class TuiInputDateComponent\n extends AbstractTuiNullableControl<TuiDay>\n implements TuiWithOptionalMinMax<TuiDay>, TuiFocusableElementAccessor {\n @Input()\n @tuiDefaultProp()\n min = TUI_FIRST_DAY;\n\n @Input()\n @tuiDefaultProp()\n max = TUI_LAST_DAY;\n\n @Input()\n @tuiDefaultProp()\n disabledItemHandler: TuiBooleanHandler<TuiDay> = ALWAYS_FALSE_HANDLER;\n\n @Input()\n @tuiDefaultProp()\n markerHandler: TuiMarkerHandler = TUI_DEFAULT_MARKER_HANDLER;\n\n @Input()\n @tuiDefaultProp()\n items: ReadonlyArray<TuiNamedDay> = [];\n\n @Input()\n @tuiDefaultProp()\n defaultActiveYearMonth = TuiMonth.currentLocal();\n\n open = false;\n\n private month: TuiMonth | null = null;\n\n @ViewChild(TuiPrimitiveTextfieldComponent)\n private readonly textfield?: TuiPrimitiveTextfieldComponent;\n\n private readonly textMaskOptions: TuiTextMaskOptions = {\n mask: TUI_DATE_MASK,\n pipe: tuiCreateAutoCorrectedDatePipe(this),\n guide: false,\n };\n\n constructor(\n @Optional()\n @Self()\n @Inject(NgControl)\n control: NgControl | null,\n @Inject(ChangeDetectorRef) changeDetectorRef: ChangeDetectorRef,\n @Inject(Injector) private readonly injector: Injector,\n @Inject(TUI_IS_MOBILE) private readonly isMobile: boolean,\n @Inject(TuiDialogService) private readonly dialogService: TuiDialogService,\n @Optional()\n @Inject(TUI_MOBILE_CALENDAR)\n private readonly mobileCalendar: Type<any> | null,\n @Inject(TUI_TEXTFIELD_SIZE)\n private readonly textfieldSize: TuiTextfieldSizeDirective,\n @Inject(TUI_DATE_FILLER) readonly filler: string,\n ) {\n super(control, changeDetectorRef);\n }\n\n get nativeFocusableElement(): HTMLInputElement | null {\n return this.textfield ? this.textfield.nativeFocusableElement : null;\n }\n\n get focused(): boolean {\n return !!this.textfield && this.textfield.focused;\n }\n\n get computedMobile(): boolean {\n return this.isMobile && !!this.mobileCalendar;\n }\n\n get calendarIcon(): string {\n return sizeBigger(this.textfieldSize.size)\n ? 'tuiIconCalendarLarge'\n : 'tuiIconCalendar';\n }\n\n get computedFiller(): string {\n return this.activeItem ? '' : this.filler;\n }\n\n get computedValue(): string {\n const {value, nativeValue, activeItem} = this;\n\n if (activeItem) {\n return String(activeItem);\n }\n\n return value ? String(value) : nativeValue;\n }\n\n get computedActiveYearMonth(): TuiMonth {\n if (this.items[0] && this.value && this.value.daySame(this.items[0].day)) {\n return this.items[0].displayDay;\n }\n\n return this.month || this.value || this.defaultActiveYearMonth;\n }\n\n get nativeValue(): string {\n return this.nativeFocusableElement ? this.nativeFocusableElement.value : '';\n }\n\n set nativeValue(value: string) {\n if (!this.nativeFocusableElement) {\n return;\n }\n\n this.nativeFocusableElement.value = value;\n }\n\n get canOpen(): boolean {\n return !this.computedDisabled && !this.readOnly && !this.computedMobile;\n }\n\n get computedMask(): TuiTextMaskOptions {\n return this.activeItem ? EMPTY_MASK : this.textMaskOptions;\n }\n\n get activeItem(): TuiNamedDay | null {\n const {value} = this;\n\n return (value && this.items.find(item => item.day.daySame(value))) || null;\n }\n\n onMobileClick() {\n if (!this.mobileCalendar) {\n this.open = !this.open;\n\n return;\n }\n\n this.dialogService\n .open<TuiDay>(new PolymorpheusComponent(this.mobileCalendar, this.injector), {\n size: 'fullscreen',\n closeable: false,\n data: {\n single: true,\n min: this.min,\n max: this.max,\n disabledItemHandler: this.disabledItemHandler,\n },\n })\n .pipe(takeUntil(this.destroy$))\n .subscribe(value => {\n this.updateValue(value);\n });\n }\n\n @HostListener('click')\n onClick() {\n if (!this.isMobile) {\n this.open = !this.open;\n }\n }\n\n onValueChange(value: string) {\n if (this.control) {\n this.control.updateValueAndValidity({emitEvent: false});\n }\n\n this.updateValue(\n value.length !== this.filler.length ? null : TuiDay.normalizeParse(value),\n );\n }\n\n onDayClick(value: TuiDay) {\n this.updateValue(value);\n this.open = false;\n }\n\n onHovered(hovered: boolean) {\n this.updateHovered(hovered);\n }\n\n onMonthChange(month: TuiMonth) {\n this.month = month;\n }\n\n onOpenChange(open: boolean) {\n this.open = open;\n }\n\n onFocused(focused: boolean) {\n this.updateFocused(focused);\n }\n\n setDisabledState() {\n super.setDisabledState();\n this.open = false;\n }\n\n writeValue(value: TuiDay | null) {\n super.writeValue(value);\n this.nativeValue = value ? this.computedValue : '';\n }\n\n protected valueIdenticalComparator(\n oldValue: TuiDay | null,\n newValue: TuiDay | null,\n ): boolean {\n return nullableSame(oldValue, newValue, (a, b) => a.daySame(b));\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {TuiPreventDefaultModule} from '@taiga-ui/cdk';\nimport {\n TuiCalendarModule,\n TuiHostedDropdownModule,\n TuiLinkModule,\n TuiPrimitiveTextfieldModule,\n TuiSvgModule,\n} from '@taiga-ui/core';\nimport {TuiValueAccessorModule} from '@taiga-ui/kit/directives';\nimport {PolymorpheusModule} from '@tinkoff/ng-polymorpheus';\nimport {TextMaskModule} from 'angular2-text-mask';\nimport {TuiInputDateComponent} from './input-date.component';\n\n@NgModule({\n imports: [\n CommonModule,\n TextMaskModule,\n PolymorpheusModule,\n TuiPreventDefaultModule,\n TuiCalendarModule,\n TuiSvgModule,\n TuiLinkModule,\n TuiHostedDropdownModule,\n TuiPrimitiveTextfieldModule,\n TuiValueAccessorModule,\n ],\n declarations: [TuiInputDateComponent],\n exports: [TuiInputDateComponent],\n})\nexport class TuiInputDateModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"taiga-ui-kit-components-input-date.js","sources":["ng://@taiga-ui/kit/components/input-date/input-date.component.ts","ng://@taiga-ui/kit/components/input-date/input-date.module.ts","ng://@taiga-ui/kit/components/input-date/taiga-ui-kit-components-input-date.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n forwardRef,\n HostListener,\n Inject,\n Injector,\n Input,\n Optional,\n Self,\n Type,\n ViewChild,\n} from '@angular/core';\nimport {NgControl} from '@angular/forms';\nimport {\n AbstractTuiNullableControl,\n ALWAYS_FALSE_HANDLER,\n DATE_FILLER_LENGTH,\n nullableSame,\n TUI_DATE_FORMAT,\n TUI_FIRST_DAY,\n TUI_FOCUSABLE_ITEM_ACCESSOR,\n TUI_IS_MOBILE,\n TUI_LAST_DAY,\n TuiBooleanHandler,\n TuiDateMode,\n TuiDay,\n tuiDefaultProp,\n TuiFocusableElementAccessor,\n TuiMonth,\n} from '@taiga-ui/cdk';\nimport {\n sizeBigger,\n TUI_DEFAULT_MARKER_HANDLER,\n TUI_TEXTFIELD_SIZE,\n TuiDialogService,\n TuiMarkerHandler,\n TuiPrimitiveTextfieldComponent,\n TuiTextfieldSizeDirective,\n TuiTextMaskOptions,\n TuiWithOptionalMinMax,\n} from '@taiga-ui/core';\nimport {TuiNamedDay} from '@taiga-ui/kit/classes';\nimport {EMPTY_MASK, TUI_DATE_MASK} from '@taiga-ui/kit/constants';\nimport {LEFT_ALIGNED_DROPDOWN_CONTROLLER_PROVIDER} from '@taiga-ui/kit/providers';\nimport {\n TUI_CALENDAR_DATA_STREAM,\n TUI_DATE_TEXTS,\n TUI_MOBILE_CALENDAR,\n} from '@taiga-ui/kit/tokens';\nimport {tuiCreateAutoCorrectedDatePipe} from '@taiga-ui/kit/utils/mask';\nimport {TuiReplayControlValueChangesFactory} from '@taiga-ui/kit/utils/miscellaneous';\nimport {PolymorpheusComponent} from '@tinkoff/ng-polymorpheus';\nimport {Observable} from 'rxjs';\nimport {pluck, takeUntil} from 'rxjs/operators';\n\n// TODO: remove in ivy compilation\nexport const DATE_STREAM_FACTORY = TuiReplayControlValueChangesFactory;\n\n@Component({\n selector: 'tui-input-date',\n templateUrl: './input-date.template.html',\n styleUrls: ['./input-date.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: TUI_FOCUSABLE_ITEM_ACCESSOR,\n useExisting: forwardRef(() => TuiInputDateComponent),\n },\n {\n provide: TUI_CALENDAR_DATA_STREAM,\n deps: [[new Optional(), new Self(), NgControl]],\n useFactory: DATE_STREAM_FACTORY,\n },\n LEFT_ALIGNED_DROPDOWN_CONTROLLER_PROVIDER,\n ],\n})\nexport class TuiInputDateComponent\n extends AbstractTuiNullableControl<TuiDay>\n implements TuiWithOptionalMinMax<TuiDay>, TuiFocusableElementAccessor\n{\n @Input()\n @tuiDefaultProp()\n min = TUI_FIRST_DAY;\n\n @Input()\n @tuiDefaultProp()\n max = TUI_LAST_DAY;\n\n @Input()\n @tuiDefaultProp()\n disabledItemHandler: TuiBooleanHandler<TuiDay> = ALWAYS_FALSE_HANDLER;\n\n @Input()\n @tuiDefaultProp()\n markerHandler: TuiMarkerHandler = TUI_DEFAULT_MARKER_HANDLER;\n\n @Input()\n @tuiDefaultProp()\n items: ReadonlyArray<TuiNamedDay> = [];\n\n @Input()\n @tuiDefaultProp()\n defaultActiveYearMonth = TuiMonth.currentLocal();\n\n open = false;\n readonly filler$ = this.dateTexts$.pipe(pluck(this.dateFormat));\n\n private month: TuiMonth | null = null;\n\n @ViewChild(TuiPrimitiveTextfieldComponent)\n private readonly textfield?: TuiPrimitiveTextfieldComponent;\n\n private readonly textMaskOptions: TuiTextMaskOptions = {\n mask: TUI_DATE_MASK,\n pipe: tuiCreateAutoCorrectedDatePipe(this),\n guide: false,\n };\n\n constructor(\n @Optional()\n @Self()\n @Inject(NgControl)\n control: NgControl | null,\n @Inject(ChangeDetectorRef) changeDetectorRef: ChangeDetectorRef,\n @Inject(Injector) private readonly injector: Injector,\n @Inject(TUI_IS_MOBILE) private readonly isMobile: boolean,\n @Inject(TuiDialogService) private readonly dialogService: TuiDialogService,\n @Optional()\n @Inject(TUI_MOBILE_CALENDAR)\n private readonly mobileCalendar: Type<any> | null,\n @Inject(TUI_TEXTFIELD_SIZE)\n private readonly textfieldSize: TuiTextfieldSizeDirective,\n @Inject(TUI_DATE_FORMAT) readonly dateFormat: TuiDateMode,\n @Inject(TUI_DATE_TEXTS)\n readonly dateTexts$: Observable<Record<TuiDateMode, string>>,\n ) {\n super(control, changeDetectorRef);\n }\n\n get nativeFocusableElement(): HTMLInputElement | null {\n return this.textfield ? this.textfield.nativeFocusableElement : null;\n }\n\n get focused(): boolean {\n return !!this.textfield && this.textfield.focused;\n }\n\n get computedMobile(): boolean {\n return this.isMobile && !!this.mobileCalendar;\n }\n\n get calendarIcon(): string {\n return sizeBigger(this.textfieldSize.size)\n ? 'tuiIconCalendarLarge'\n : 'tuiIconCalendar';\n }\n\n get computedValue(): string {\n const {value, nativeValue, activeItem} = this;\n\n if (activeItem) {\n return String(activeItem);\n }\n\n return value ? String(value) : nativeValue;\n }\n\n get computedActiveYearMonth(): TuiMonth {\n if (this.items[0] && this.value && this.value.daySame(this.items[0].day)) {\n return this.items[0].displayDay;\n }\n\n return this.month || this.value || this.defaultActiveYearMonth;\n }\n\n get nativeValue(): string {\n return this.nativeFocusableElement ? this.nativeFocusableElement.value : '';\n }\n\n set nativeValue(value: string) {\n if (!this.nativeFocusableElement) {\n return;\n }\n\n this.nativeFocusableElement.value = value;\n }\n\n get canOpen(): boolean {\n return !this.computedDisabled && !this.readOnly && !this.computedMobile;\n }\n\n get computedMask(): TuiTextMaskOptions {\n return this.activeItem ? EMPTY_MASK : this.textMaskOptions;\n }\n\n get activeItem(): TuiNamedDay | null {\n const {value} = this;\n\n return (value && this.items.find(item => item.day.daySame(value))) || null;\n }\n\n getComputedFiller(filler: string): string {\n return this.activeItem ? '' : filler;\n }\n\n onMobileClick() {\n if (!this.mobileCalendar) {\n this.open = !this.open;\n\n return;\n }\n\n this.dialogService\n .open<TuiDay>(new PolymorpheusComponent(this.mobileCalendar, this.injector), {\n size: 'fullscreen',\n closeable: false,\n data: {\n single: true,\n min: this.min,\n max: this.max,\n disabledItemHandler: this.disabledItemHandler,\n },\n })\n .pipe(takeUntil(this.destroy$))\n .subscribe(value => {\n this.updateValue(value);\n });\n }\n\n @HostListener('click')\n onClick() {\n if (!this.isMobile) {\n this.open = !this.open;\n }\n }\n\n onValueChange(value: string) {\n if (this.control) {\n this.control.updateValueAndValidity({emitEvent: false});\n }\n\n this.updateValue(\n value.length !== DATE_FILLER_LENGTH ? null : TuiDay.normalizeParse(value),\n );\n }\n\n onDayClick(value: TuiDay) {\n this.updateValue(value);\n this.open = false;\n }\n\n onHovered(hovered: boolean) {\n this.updateHovered(hovered);\n }\n\n onMonthChange(month: TuiMonth) {\n this.month = month;\n }\n\n onOpenChange(open: boolean) {\n this.open = open;\n }\n\n onFocused(focused: boolean) {\n this.updateFocused(focused);\n }\n\n setDisabledState() {\n super.setDisabledState();\n this.open = false;\n }\n\n writeValue(value: TuiDay | null) {\n super.writeValue(value);\n this.nativeValue = value ? this.computedValue : '';\n }\n\n protected valueIdenticalComparator(\n oldValue: TuiDay | null,\n newValue: TuiDay | null,\n ): boolean {\n return nullableSame(oldValue, newValue, (a, b) => a.daySame(b));\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {TuiLetModule, TuiPreventDefaultModule} from '@taiga-ui/cdk';\nimport {\n TuiCalendarModule,\n TuiHostedDropdownModule,\n TuiLinkModule,\n TuiPrimitiveTextfieldModule,\n TuiSvgModule,\n} from '@taiga-ui/core';\nimport {TuiValueAccessorModule} from '@taiga-ui/kit/directives';\nimport {PolymorpheusModule} from '@tinkoff/ng-polymorpheus';\nimport {TextMaskModule} from 'angular2-text-mask';\nimport {TuiInputDateComponent} from './input-date.component';\n\n@NgModule({\n imports: [\n CommonModule,\n TextMaskModule,\n PolymorpheusModule,\n TuiPreventDefaultModule,\n TuiCalendarModule,\n TuiSvgModule,\n TuiLinkModule,\n TuiHostedDropdownModule,\n TuiPrimitiveTextfieldModule,\n TuiValueAccessorModule,\n TuiLetModule,\n ],\n declarations: [TuiInputDateComponent],\n exports: [TuiInputDateComponent],\n})\nexport class TuiInputDateModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -438,6 +438,7 @@ var TuiFileComponent = /** @class */ (function () {
438
438
  if (file.src) {
439
439
  return file.src;
440
440
  }
441
+ // TODO: iframe warning
441
442
  if (file instanceof File && file.type && file.type.startsWith('image/')) {
442
443
  return sanitizer.bypassSecurityTrustUrl(URL.createObjectURL(file));
443
444
  }