@taiga-ui/kit 2.32.0 → 2.33.0

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 (428) hide show
  1. package/bundles/taiga-ui-kit-components-accordion.umd.js +1 -1
  2. package/bundles/taiga-ui-kit-components-accordion.umd.js.map +1 -1
  3. package/bundles/taiga-ui-kit-components-accordion.umd.min.js +1 -1
  4. package/bundles/taiga-ui-kit-components-accordion.umd.min.js.map +1 -1
  5. package/bundles/taiga-ui-kit-components-avatar.umd.js +1 -1
  6. package/bundles/taiga-ui-kit-components-avatar.umd.min.js +1 -1
  7. package/bundles/taiga-ui-kit-components-avatar.umd.min.js.map +1 -1
  8. package/bundles/taiga-ui-kit-components-combo-box.umd.js +59 -22
  9. package/bundles/taiga-ui-kit-components-combo-box.umd.js.map +1 -1
  10. package/bundles/taiga-ui-kit-components-combo-box.umd.min.js +2 -2
  11. package/bundles/taiga-ui-kit-components-combo-box.umd.min.js.map +1 -1
  12. package/bundles/taiga-ui-kit-components-input-copy.umd.js +47 -17
  13. package/bundles/taiga-ui-kit-components-input-copy.umd.js.map +1 -1
  14. package/bundles/taiga-ui-kit-components-input-copy.umd.min.js +2 -2
  15. package/bundles/taiga-ui-kit-components-input-copy.umd.min.js.map +1 -1
  16. package/bundles/taiga-ui-kit-components-input-count.umd.js +36 -3
  17. package/bundles/taiga-ui-kit-components-input-count.umd.js.map +1 -1
  18. package/bundles/taiga-ui-kit-components-input-count.umd.min.js +1 -1
  19. package/bundles/taiga-ui-kit-components-input-count.umd.min.js.map +1 -1
  20. package/bundles/taiga-ui-kit-components-input-date-range.umd.js +69 -25
  21. package/bundles/taiga-ui-kit-components-input-date-range.umd.js.map +1 -1
  22. package/bundles/taiga-ui-kit-components-input-date-range.umd.min.js +2 -2
  23. package/bundles/taiga-ui-kit-components-input-date-range.umd.min.js.map +1 -1
  24. package/bundles/taiga-ui-kit-components-input-date-time.umd.js +70 -26
  25. package/bundles/taiga-ui-kit-components-input-date-time.umd.js.map +1 -1
  26. package/bundles/taiga-ui-kit-components-input-date-time.umd.min.js +2 -2
  27. package/bundles/taiga-ui-kit-components-input-date-time.umd.min.js.map +1 -1
  28. package/bundles/taiga-ui-kit-components-input-date.umd.js +65 -25
  29. package/bundles/taiga-ui-kit-components-input-date.umd.js.map +1 -1
  30. package/bundles/taiga-ui-kit-components-input-date.umd.min.js +2 -2
  31. package/bundles/taiga-ui-kit-components-input-date.umd.min.js.map +1 -1
  32. package/bundles/taiga-ui-kit-components-input-month-range.umd.js +52 -3
  33. package/bundles/taiga-ui-kit-components-input-month-range.umd.js.map +1 -1
  34. package/bundles/taiga-ui-kit-components-input-month-range.umd.min.js +1 -1
  35. package/bundles/taiga-ui-kit-components-input-month-range.umd.min.js.map +1 -1
  36. package/bundles/taiga-ui-kit-components-input-month.umd.js +48 -3
  37. package/bundles/taiga-ui-kit-components-input-month.umd.js.map +1 -1
  38. package/bundles/taiga-ui-kit-components-input-month.umd.min.js +1 -1
  39. package/bundles/taiga-ui-kit-components-input-month.umd.min.js.map +1 -1
  40. package/bundles/taiga-ui-kit-components-input-number.umd.js +44 -4
  41. package/bundles/taiga-ui-kit-components-input-number.umd.js.map +1 -1
  42. package/bundles/taiga-ui-kit-components-input-number.umd.min.js +2 -2
  43. package/bundles/taiga-ui-kit-components-input-number.umd.min.js.map +1 -1
  44. package/bundles/taiga-ui-kit-components-input-password.umd.js +44 -3
  45. package/bundles/taiga-ui-kit-components-input-password.umd.js.map +1 -1
  46. package/bundles/taiga-ui-kit-components-input-password.umd.min.js +1 -1
  47. package/bundles/taiga-ui-kit-components-input-password.umd.min.js.map +1 -1
  48. package/bundles/taiga-ui-kit-components-input-phone-international.umd.js +14 -5
  49. package/bundles/taiga-ui-kit-components-input-phone-international.umd.js.map +1 -1
  50. package/bundles/taiga-ui-kit-components-input-phone-international.umd.min.js +1 -1
  51. package/bundles/taiga-ui-kit-components-input-phone-international.umd.min.js.map +1 -1
  52. package/bundles/taiga-ui-kit-components-input-phone.umd.js +58 -22
  53. package/bundles/taiga-ui-kit-components-input-phone.umd.js.map +1 -1
  54. package/bundles/taiga-ui-kit-components-input-phone.umd.min.js +1 -1
  55. package/bundles/taiga-ui-kit-components-input-phone.umd.min.js.map +1 -1
  56. package/bundles/taiga-ui-kit-components-input-range.umd.js +1 -1
  57. package/bundles/taiga-ui-kit-components-input-range.umd.min.js +2 -2
  58. package/bundles/taiga-ui-kit-components-input-range.umd.min.js.map +1 -1
  59. package/bundles/taiga-ui-kit-components-input-slider.umd.js +1 -1
  60. package/bundles/taiga-ui-kit-components-input-slider.umd.min.js +1 -1
  61. package/bundles/taiga-ui-kit-components-input-slider.umd.min.js.map +1 -1
  62. package/bundles/taiga-ui-kit-components-input-tag.umd.js +2 -2
  63. package/bundles/taiga-ui-kit-components-input-tag.umd.js.map +1 -1
  64. package/bundles/taiga-ui-kit-components-input-tag.umd.min.js +1 -1
  65. package/bundles/taiga-ui-kit-components-input-tag.umd.min.js.map +1 -1
  66. package/bundles/taiga-ui-kit-components-input.umd.js +32 -3
  67. package/bundles/taiga-ui-kit-components-input.umd.js.map +1 -1
  68. package/bundles/taiga-ui-kit-components-input.umd.min.js +1 -1
  69. package/bundles/taiga-ui-kit-components-input.umd.min.js.map +1 -1
  70. package/bundles/taiga-ui-kit-components-multi-select.umd.js +1 -0
  71. package/bundles/taiga-ui-kit-components-multi-select.umd.js.map +1 -1
  72. package/bundles/taiga-ui-kit-components-multi-select.umd.min.js +1 -1
  73. package/bundles/taiga-ui-kit-components-multi-select.umd.min.js.map +1 -1
  74. package/bundles/taiga-ui-kit-components-select.umd.js +66 -22
  75. package/bundles/taiga-ui-kit-components-select.umd.js.map +1 -1
  76. package/bundles/taiga-ui-kit-components-select.umd.min.js +1 -1
  77. package/bundles/taiga-ui-kit-components-select.umd.min.js.map +1 -1
  78. package/bundles/taiga-ui-kit-components-stepper.umd.js +1 -1
  79. package/bundles/taiga-ui-kit-components-stepper.umd.js.map +1 -1
  80. package/bundles/taiga-ui-kit-components-stepper.umd.min.js +1 -1
  81. package/bundles/taiga-ui-kit-components-stepper.umd.min.js.map +1 -1
  82. package/bundles/taiga-ui-kit-components-tabs.umd.js +1 -1
  83. package/bundles/taiga-ui-kit-components-tabs.umd.js.map +1 -1
  84. package/bundles/taiga-ui-kit-components-tabs.umd.min.js +1 -1
  85. package/bundles/taiga-ui-kit-components-tabs.umd.min.js.map +1 -1
  86. package/bundles/taiga-ui-kit-components-tag.umd.js +2 -2
  87. package/bundles/taiga-ui-kit-components-tag.umd.js.map +1 -1
  88. package/bundles/taiga-ui-kit-components-tag.umd.min.js +1 -1
  89. package/bundles/taiga-ui-kit-components-tag.umd.min.js.map +1 -1
  90. package/bundles/taiga-ui-kit-components-text-area.umd.js +6 -4
  91. package/bundles/taiga-ui-kit-components-text-area.umd.js.map +1 -1
  92. package/bundles/taiga-ui-kit-components-text-area.umd.min.js +1 -1
  93. package/bundles/taiga-ui-kit-components-text-area.umd.min.js.map +1 -1
  94. package/bundles/taiga-ui-kit-providers.umd.js +6 -5
  95. package/bundles/taiga-ui-kit-providers.umd.js.map +1 -1
  96. package/bundles/taiga-ui-kit-providers.umd.min.js +1 -1
  97. package/bundles/taiga-ui-kit-providers.umd.min.js.map +1 -1
  98. package/bundles/taiga-ui-kit-utils-mask.umd.js +8 -11
  99. package/bundles/taiga-ui-kit-utils-mask.umd.js.map +1 -1
  100. package/bundles/taiga-ui-kit-utils-mask.umd.min.js +1 -1
  101. package/bundles/taiga-ui-kit-utils-mask.umd.min.js.map +1 -1
  102. package/bundles/taiga-ui-kit-utils-miscellaneous.umd.js +1 -1
  103. package/bundles/taiga-ui-kit-utils-miscellaneous.umd.js.map +1 -1
  104. package/bundles/taiga-ui-kit-utils-miscellaneous.umd.min.js +1 -1
  105. package/bundles/taiga-ui-kit-utils-miscellaneous.umd.min.js.map +1 -1
  106. package/components/accordion/taiga-ui-kit-components-accordion.metadata.json +1 -1
  107. package/components/avatar/taiga-ui-kit-components-avatar.metadata.json +1 -1
  108. package/components/combo-box/combo-box.component.d.ts +1 -2
  109. package/components/combo-box/combo-box.directive.d.ts +6 -0
  110. package/components/combo-box/combo-box.providers.d.ts +2 -0
  111. package/components/combo-box/index.d.ts +2 -0
  112. package/components/combo-box/taiga-ui-kit-components-combo-box.metadata.json +1 -1
  113. package/components/input/index.d.ts +1 -0
  114. package/components/input/input.directive.d.ts +5 -0
  115. package/components/input/taiga-ui-kit-components-input.metadata.json +1 -1
  116. package/components/input-copy/index.d.ts +2 -0
  117. package/components/input-copy/input-copy.directive.d.ts +5 -0
  118. package/components/input-copy/input-copy.providers.d.ts +2 -0
  119. package/components/input-copy/taiga-ui-kit-components-input-copy.metadata.json +1 -1
  120. package/components/input-count/index.d.ts +1 -0
  121. package/components/input-count/input-count.directive.d.ts +6 -0
  122. package/components/input-count/taiga-ui-kit-components-input-count.metadata.json +1 -1
  123. package/components/input-date/index.d.ts +2 -0
  124. package/components/input-date/input-date.component.d.ts +0 -1
  125. package/components/input-date/input-date.directive.d.ts +7 -0
  126. package/components/input-date/input-date.providers.d.ts +4 -0
  127. package/components/input-date/taiga-ui-kit-components-input-date.metadata.json +1 -1
  128. package/components/input-date-range/index.d.ts +2 -0
  129. package/components/input-date-range/input-date-range.component.d.ts +0 -1
  130. package/components/input-date-range/input-date-range.directive.d.ts +7 -0
  131. package/components/input-date-range/input-date-range.providers.d.ts +4 -0
  132. package/components/input-date-range/taiga-ui-kit-components-input-date-range.metadata.json +1 -1
  133. package/components/input-date-time/index.d.ts +2 -0
  134. package/components/input-date-time/input-date-time.component.d.ts +0 -1
  135. package/components/input-date-time/input-date-time.directive.d.ts +7 -0
  136. package/components/input-date-time/input-date-time.providers.d.ts +4 -0
  137. package/components/input-date-time/taiga-ui-kit-components-input-date-time.metadata.json +1 -1
  138. package/components/input-month/index.d.ts +1 -0
  139. package/components/input-month/input-month.component.d.ts +2 -2
  140. package/components/input-month/input-month.directive.d.ts +7 -0
  141. package/components/input-month/taiga-ui-kit-components-input-month.metadata.json +1 -1
  142. package/components/input-month-range/index.d.ts +1 -0
  143. package/components/input-month-range/input-month-range.component.d.ts +2 -2
  144. package/components/input-month-range/input-month-range.directive.d.ts +7 -0
  145. package/components/input-month-range/taiga-ui-kit-components-input-month-range.metadata.json +1 -1
  146. package/components/input-number/index.d.ts +1 -0
  147. package/components/input-number/input-number.component.d.ts +1 -1
  148. package/components/input-number/input-number.directive.d.ts +7 -0
  149. package/components/input-number/taiga-ui-kit-components-input-number.metadata.json +1 -1
  150. package/components/input-password/index.d.ts +1 -0
  151. package/components/input-password/input-password.directive.d.ts +8 -0
  152. package/components/input-password/taiga-ui-kit-components-input-password.metadata.json +1 -1
  153. package/components/input-phone/index.d.ts +1 -0
  154. package/components/input-phone/input-phone.component.d.ts +1 -1
  155. package/components/input-phone/input-phone.directive.d.ts +7 -0
  156. package/components/input-phone/taiga-ui-kit-components-input-phone.metadata.json +1 -1
  157. package/components/input-phone-international/input-phone-international.component.d.ts +2 -1
  158. package/components/input-phone-international/taiga-ui-kit-components-input-phone-international.metadata.json +1 -1
  159. package/components/input-range/taiga-ui-kit-components-input-range.metadata.json +1 -1
  160. package/components/input-slider/taiga-ui-kit-components-input-slider.metadata.json +1 -1
  161. package/components/input-tag/taiga-ui-kit-components-input-tag.metadata.json +1 -1
  162. package/components/multi-select/taiga-ui-kit-components-multi-select.metadata.json +1 -1
  163. package/components/select/index.d.ts +2 -0
  164. package/components/select/select.component.d.ts +0 -1
  165. package/components/select/select.directive.d.ts +7 -0
  166. package/components/select/select.providers.d.ts +2 -0
  167. package/components/select/taiga-ui-kit-components-select.metadata.json +1 -1
  168. package/components/stepper/taiga-ui-kit-components-stepper.metadata.json +1 -1
  169. package/components/tabs/taiga-ui-kit-components-tabs.metadata.json +1 -1
  170. package/components/tag/taiga-ui-kit-components-tag.metadata.json +1 -1
  171. package/components/text-area/taiga-ui-kit-components-text-area.metadata.json +1 -1
  172. package/esm2015/components/accordion/accordion.component.js +3 -3
  173. package/esm2015/components/avatar/avatar.component.js +1 -1
  174. package/esm2015/components/combo-box/combo-box.component.js +10 -28
  175. package/esm2015/components/combo-box/combo-box.directive.js +25 -0
  176. package/esm2015/components/combo-box/combo-box.module.js +5 -4
  177. package/esm2015/components/combo-box/combo-box.providers.js +28 -0
  178. package/esm2015/components/combo-box/index.js +3 -1
  179. package/esm2015/components/input/index.js +2 -1
  180. package/esm2015/components/input/input.component.js +2 -2
  181. package/esm2015/components/input/input.directive.js +22 -0
  182. package/esm2015/components/input/input.module.js +5 -4
  183. package/esm2015/components/input/input.providers.js +6 -2
  184. package/esm2015/components/input-copy/index.js +3 -1
  185. package/esm2015/components/input-copy/input-copy.component.js +8 -15
  186. package/esm2015/components/input-copy/input-copy.directive.js +22 -0
  187. package/esm2015/components/input-copy/input-copy.module.js +5 -4
  188. package/esm2015/components/input-copy/input-copy.providers.js +16 -0
  189. package/esm2015/components/input-count/index.js +2 -1
  190. package/esm2015/components/input-count/input-count.component.js +6 -2
  191. package/esm2015/components/input-count/input-count.directive.js +26 -0
  192. package/esm2015/components/input-count/input-count.module.js +5 -4
  193. package/esm2015/components/input-date/index.js +3 -1
  194. package/esm2015/components/input-date/input-date.component.js +9 -27
  195. package/esm2015/components/input-date/input-date.directive.js +28 -0
  196. package/esm2015/components/input-date/input-date.module.js +5 -4
  197. package/esm2015/components/input-date/input-date.providers.js +29 -0
  198. package/esm2015/components/input-date-range/index.js +3 -1
  199. package/esm2015/components/input-date-range/input-date-range.component.js +9 -27
  200. package/esm2015/components/input-date-range/input-date-range.directive.js +28 -0
  201. package/esm2015/components/input-date-range/input-date-range.module.js +9 -4
  202. package/esm2015/components/input-date-range/input-date-range.providers.js +29 -0
  203. package/esm2015/components/input-date-time/index.js +3 -1
  204. package/esm2015/components/input-date-time/input-date-time.component.js +10 -28
  205. package/esm2015/components/input-date-time/input-date-time.directive.js +28 -0
  206. package/esm2015/components/input-date-time/input-date-time.module.js +9 -4
  207. package/esm2015/components/input-date-time/input-date-time.providers.js +29 -0
  208. package/esm2015/components/input-month/index.js +2 -1
  209. package/esm2015/components/input-month/input-month.component.js +7 -3
  210. package/esm2015/components/input-month/input-month.directive.js +30 -0
  211. package/esm2015/components/input-month/input-month.module.js +5 -4
  212. package/esm2015/components/input-month-range/index.js +2 -1
  213. package/esm2015/components/input-month-range/input-month-range.component.js +7 -3
  214. package/esm2015/components/input-month-range/input-month-range.directive.js +30 -0
  215. package/esm2015/components/input-month-range/input-month-range.module.js +9 -4
  216. package/esm2015/components/input-number/index.js +2 -1
  217. package/esm2015/components/input-number/input-number.component.js +8 -4
  218. package/esm2015/components/input-number/input-number.directive.js +29 -0
  219. package/esm2015/components/input-number/input-number.module.js +5 -4
  220. package/esm2015/components/input-password/index.js +2 -1
  221. package/esm2015/components/input-password/input-password.component.js +6 -2
  222. package/esm2015/components/input-password/input-password.directive.js +30 -0
  223. package/esm2015/components/input-password/input-password.module.js +9 -4
  224. package/esm2015/components/input-phone/index.js +2 -1
  225. package/esm2015/components/input-phone/input-phone.component.js +13 -24
  226. package/esm2015/components/input-phone/input-phone.directive.js +29 -0
  227. package/esm2015/components/input-phone/input-phone.module.js +5 -4
  228. package/esm2015/components/input-phone/input-phone.providers.js +17 -3
  229. package/esm2015/components/input-phone-international/input-phone-international.component.js +11 -6
  230. package/esm2015/components/input-range/input-range.component.js +1 -1
  231. package/esm2015/components/input-slider/input-slider.component.js +1 -1
  232. package/esm2015/components/input-tag/input-tag.component.js +3 -3
  233. package/esm2015/components/multi-select/multi-select.module.js +3 -1
  234. package/esm2015/components/select/index.js +3 -1
  235. package/esm2015/components/select/select.component.js +10 -28
  236. package/esm2015/components/select/select.directive.js +28 -0
  237. package/esm2015/components/select/select.module.js +5 -4
  238. package/esm2015/components/select/select.providers.js +28 -0
  239. package/esm2015/components/stepper/step/step.component.js +3 -3
  240. package/esm2015/components/tabs/tab/tab.providers.js +3 -3
  241. package/esm2015/components/tag/tag.component.js +3 -3
  242. package/esm2015/components/text-area/text-area.component.js +7 -4
  243. package/esm2015/components/text-area/text-area.module.js +2 -3
  244. package/esm2015/providers/value-accessor.provider.js +3 -2
  245. package/esm2015/utils/mask/create-auto-corrected-time-pipe.js +6 -8
  246. package/esm2015/utils/mask/create-time-mask.js +8 -11
  247. package/esm2015/utils/miscellaneous/get-precision.js +2 -2
  248. package/esm5/components/accordion/accordion.component.js +3 -3
  249. package/esm5/components/avatar/avatar.component.js +1 -1
  250. package/esm5/components/combo-box/combo-box.component.js +9 -28
  251. package/esm5/components/combo-box/combo-box.directive.js +35 -0
  252. package/esm5/components/combo-box/combo-box.module.js +5 -4
  253. package/esm5/components/combo-box/combo-box.providers.js +28 -0
  254. package/esm5/components/combo-box/index.js +3 -1
  255. package/esm5/components/input/index.js +2 -1
  256. package/esm5/components/input/input.component.js +2 -2
  257. package/esm5/components/input/input.directive.js +28 -0
  258. package/esm5/components/input/input.module.js +5 -4
  259. package/esm5/components/input/input.providers.js +6 -2
  260. package/esm5/components/input-copy/index.js +3 -1
  261. package/esm5/components/input-copy/input-copy.component.js +7 -15
  262. package/esm5/components/input-copy/input-copy.directive.js +28 -0
  263. package/esm5/components/input-copy/input-copy.module.js +5 -4
  264. package/esm5/components/input-copy/input-copy.providers.js +16 -0
  265. package/esm5/components/input-count/index.js +2 -1
  266. package/esm5/components/input-count/input-count.component.js +6 -2
  267. package/esm5/components/input-count/input-count.directive.js +32 -0
  268. package/esm5/components/input-count/input-count.module.js +5 -4
  269. package/esm5/components/input-date/index.js +3 -1
  270. package/esm5/components/input-date/input-date.component.js +8 -27
  271. package/esm5/components/input-date/input-date.directive.js +38 -0
  272. package/esm5/components/input-date/input-date.module.js +5 -4
  273. package/esm5/components/input-date/input-date.providers.js +29 -0
  274. package/esm5/components/input-date-range/index.js +3 -1
  275. package/esm5/components/input-date-range/input-date-range.component.js +8 -27
  276. package/esm5/components/input-date-range/input-date-range.directive.js +38 -0
  277. package/esm5/components/input-date-range/input-date-range.module.js +9 -4
  278. package/esm5/components/input-date-range/input-date-range.providers.js +29 -0
  279. package/esm5/components/input-date-time/index.js +3 -1
  280. package/esm5/components/input-date-time/input-date-time.component.js +9 -28
  281. package/esm5/components/input-date-time/input-date-time.directive.js +38 -0
  282. package/esm5/components/input-date-time/input-date-time.module.js +9 -4
  283. package/esm5/components/input-date-time/input-date-time.providers.js +29 -0
  284. package/esm5/components/input-month/index.js +2 -1
  285. package/esm5/components/input-month/input-month.component.js +7 -3
  286. package/esm5/components/input-month/input-month.directive.js +44 -0
  287. package/esm5/components/input-month/input-month.module.js +5 -4
  288. package/esm5/components/input-month-range/index.js +2 -1
  289. package/esm5/components/input-month-range/input-month-range.component.js +7 -3
  290. package/esm5/components/input-month-range/input-month-range.directive.js +44 -0
  291. package/esm5/components/input-month-range/input-month-range.module.js +9 -4
  292. package/esm5/components/input-number/index.js +2 -1
  293. package/esm5/components/input-number/input-number.component.js +8 -4
  294. package/esm5/components/input-number/input-number.directive.js +39 -0
  295. package/esm5/components/input-number/input-number.module.js +5 -4
  296. package/esm5/components/input-password/index.js +2 -1
  297. package/esm5/components/input-password/input-password.component.js +6 -2
  298. package/esm5/components/input-password/input-password.directive.js +36 -0
  299. package/esm5/components/input-password/input-password.module.js +9 -4
  300. package/esm5/components/input-phone/index.js +2 -1
  301. package/esm5/components/input-phone/input-phone.component.js +12 -24
  302. package/esm5/components/input-phone/input-phone.directive.js +39 -0
  303. package/esm5/components/input-phone/input-phone.module.js +5 -4
  304. package/esm5/components/input-phone/input-phone.providers.js +17 -3
  305. package/esm5/components/input-phone-international/input-phone-international.component.js +15 -6
  306. package/esm5/components/input-range/input-range.component.js +1 -1
  307. package/esm5/components/input-slider/input-slider.component.js +1 -1
  308. package/esm5/components/input-tag/input-tag.component.js +3 -3
  309. package/esm5/components/multi-select/multi-select.module.js +3 -1
  310. package/esm5/components/select/index.js +3 -1
  311. package/esm5/components/select/select.component.js +9 -28
  312. package/esm5/components/select/select.directive.js +42 -0
  313. package/esm5/components/select/select.module.js +5 -4
  314. package/esm5/components/select/select.providers.js +28 -0
  315. package/esm5/components/stepper/step/step.component.js +3 -3
  316. package/esm5/components/tabs/tab/tab.providers.js +3 -3
  317. package/esm5/components/tag/tag.component.js +3 -3
  318. package/esm5/components/text-area/text-area.component.js +7 -4
  319. package/esm5/components/text-area/text-area.module.js +2 -3
  320. package/esm5/providers/value-accessor.provider.js +3 -2
  321. package/esm5/utils/mask/create-auto-corrected-time-pipe.js +5 -5
  322. package/esm5/utils/mask/create-time-mask.js +5 -8
  323. package/esm5/utils/miscellaneous/get-precision.js +2 -2
  324. package/fesm2015/taiga-ui-kit-components-accordion.js +2 -2
  325. package/fesm2015/taiga-ui-kit-components-accordion.js.map +1 -1
  326. package/fesm2015/taiga-ui-kit-components-avatar.js +1 -1
  327. package/fesm2015/taiga-ui-kit-components-combo-box.js +52 -26
  328. package/fesm2015/taiga-ui-kit-components-combo-box.js.map +1 -1
  329. package/fesm2015/taiga-ui-kit-components-input-copy.js +41 -18
  330. package/fesm2015/taiga-ui-kit-components-input-copy.js.map +1 -1
  331. package/fesm2015/taiga-ui-kit-components-input-count.js +32 -6
  332. package/fesm2015/taiga-ui-kit-components-input-count.js.map +1 -1
  333. package/fesm2015/taiga-ui-kit-components-input-date-range.js +61 -28
  334. package/fesm2015/taiga-ui-kit-components-input-date-range.js.map +1 -1
  335. package/fesm2015/taiga-ui-kit-components-input-date-time.js +62 -29
  336. package/fesm2015/taiga-ui-kit-components-input-date-time.js.map +1 -1
  337. package/fesm2015/taiga-ui-kit-components-input-date.js +57 -28
  338. package/fesm2015/taiga-ui-kit-components-input-date.js.map +1 -1
  339. package/fesm2015/taiga-ui-kit-components-input-month-range.js +41 -7
  340. package/fesm2015/taiga-ui-kit-components-input-month-range.js.map +1 -1
  341. package/fesm2015/taiga-ui-kit-components-input-month.js +37 -7
  342. package/fesm2015/taiga-ui-kit-components-input-month.js.map +1 -1
  343. package/fesm2015/taiga-ui-kit-components-input-number.js +37 -8
  344. package/fesm2015/taiga-ui-kit-components-input-number.js.map +1 -1
  345. package/fesm2015/taiga-ui-kit-components-input-password.js +40 -6
  346. package/fesm2015/taiga-ui-kit-components-input-password.js.map +1 -1
  347. package/fesm2015/taiga-ui-kit-components-input-phone-international.js +10 -5
  348. package/fesm2015/taiga-ui-kit-components-input-phone-international.js.map +1 -1
  349. package/fesm2015/taiga-ui-kit-components-input-phone.js +52 -26
  350. package/fesm2015/taiga-ui-kit-components-input-phone.js.map +1 -1
  351. package/fesm2015/taiga-ui-kit-components-input-range.js +1 -1
  352. package/fesm2015/taiga-ui-kit-components-input-slider.js +1 -1
  353. package/fesm2015/taiga-ui-kit-components-input-tag.js +2 -2
  354. package/fesm2015/taiga-ui-kit-components-input-tag.js.map +1 -1
  355. package/fesm2015/taiga-ui-kit-components-input.js +28 -6
  356. package/fesm2015/taiga-ui-kit-components-input.js.map +1 -1
  357. package/fesm2015/taiga-ui-kit-components-multi-select.js +2 -1
  358. package/fesm2015/taiga-ui-kit-components-multi-select.js.map +1 -1
  359. package/fesm2015/taiga-ui-kit-components-select.js +55 -26
  360. package/fesm2015/taiga-ui-kit-components-select.js.map +1 -1
  361. package/fesm2015/taiga-ui-kit-components-stepper.js +2 -2
  362. package/fesm2015/taiga-ui-kit-components-stepper.js.map +1 -1
  363. package/fesm2015/taiga-ui-kit-components-tabs.js +2 -2
  364. package/fesm2015/taiga-ui-kit-components-tabs.js.map +1 -1
  365. package/fesm2015/taiga-ui-kit-components-tag.js +2 -2
  366. package/fesm2015/taiga-ui-kit-components-tag.js.map +1 -1
  367. package/fesm2015/taiga-ui-kit-components-text-area.js +7 -5
  368. package/fesm2015/taiga-ui-kit-components-text-area.js.map +1 -1
  369. package/fesm2015/taiga-ui-kit-providers.js +2 -1
  370. package/fesm2015/taiga-ui-kit-providers.js.map +1 -1
  371. package/fesm2015/taiga-ui-kit-utils-mask.js +12 -17
  372. package/fesm2015/taiga-ui-kit-utils-mask.js.map +1 -1
  373. package/fesm2015/taiga-ui-kit-utils-miscellaneous.js +1 -1
  374. package/fesm2015/taiga-ui-kit-utils-miscellaneous.js.map +1 -1
  375. package/fesm5/taiga-ui-kit-components-accordion.js +2 -2
  376. package/fesm5/taiga-ui-kit-components-accordion.js.map +1 -1
  377. package/fesm5/taiga-ui-kit-components-avatar.js +1 -1
  378. package/fesm5/taiga-ui-kit-components-combo-box.js +61 -26
  379. package/fesm5/taiga-ui-kit-components-combo-box.js.map +1 -1
  380. package/fesm5/taiga-ui-kit-components-input-copy.js +46 -18
  381. package/fesm5/taiga-ui-kit-components-input-copy.js.map +1 -1
  382. package/fesm5/taiga-ui-kit-components-input-count.js +38 -6
  383. package/fesm5/taiga-ui-kit-components-input-count.js.map +1 -1
  384. package/fesm5/taiga-ui-kit-components-input-date-range.js +70 -28
  385. package/fesm5/taiga-ui-kit-components-input-date-range.js.map +1 -1
  386. package/fesm5/taiga-ui-kit-components-input-date-time.js +71 -29
  387. package/fesm5/taiga-ui-kit-components-input-date-time.js.map +1 -1
  388. package/fesm5/taiga-ui-kit-components-input-date.js +66 -28
  389. package/fesm5/taiga-ui-kit-components-input-date.js.map +1 -1
  390. package/fesm5/taiga-ui-kit-components-input-month-range.js +55 -7
  391. package/fesm5/taiga-ui-kit-components-input-month-range.js.map +1 -1
  392. package/fesm5/taiga-ui-kit-components-input-month.js +51 -7
  393. package/fesm5/taiga-ui-kit-components-input-month.js.map +1 -1
  394. package/fesm5/taiga-ui-kit-components-input-number.js +47 -8
  395. package/fesm5/taiga-ui-kit-components-input-number.js.map +1 -1
  396. package/fesm5/taiga-ui-kit-components-input-password.js +46 -6
  397. package/fesm5/taiga-ui-kit-components-input-password.js.map +1 -1
  398. package/fesm5/taiga-ui-kit-components-input-phone-international.js +14 -5
  399. package/fesm5/taiga-ui-kit-components-input-phone-international.js.map +1 -1
  400. package/fesm5/taiga-ui-kit-components-input-phone.js +61 -26
  401. package/fesm5/taiga-ui-kit-components-input-phone.js.map +1 -1
  402. package/fesm5/taiga-ui-kit-components-input-range.js +1 -1
  403. package/fesm5/taiga-ui-kit-components-input-slider.js +1 -1
  404. package/fesm5/taiga-ui-kit-components-input-tag.js +2 -2
  405. package/fesm5/taiga-ui-kit-components-input-tag.js.map +1 -1
  406. package/fesm5/taiga-ui-kit-components-input.js +35 -7
  407. package/fesm5/taiga-ui-kit-components-input.js.map +1 -1
  408. package/fesm5/taiga-ui-kit-components-multi-select.js +2 -1
  409. package/fesm5/taiga-ui-kit-components-multi-select.js.map +1 -1
  410. package/fesm5/taiga-ui-kit-components-select.js +68 -26
  411. package/fesm5/taiga-ui-kit-components-select.js.map +1 -1
  412. package/fesm5/taiga-ui-kit-components-stepper.js +2 -2
  413. package/fesm5/taiga-ui-kit-components-stepper.js.map +1 -1
  414. package/fesm5/taiga-ui-kit-components-tabs.js +2 -2
  415. package/fesm5/taiga-ui-kit-components-tabs.js.map +1 -1
  416. package/fesm5/taiga-ui-kit-components-tag.js +2 -2
  417. package/fesm5/taiga-ui-kit-components-tag.js.map +1 -1
  418. package/fesm5/taiga-ui-kit-components-text-area.js +7 -5
  419. package/fesm5/taiga-ui-kit-components-text-area.js.map +1 -1
  420. package/fesm5/taiga-ui-kit-providers.js +2 -1
  421. package/fesm5/taiga-ui-kit-providers.js.map +1 -1
  422. package/fesm5/taiga-ui-kit-utils-mask.js +8 -11
  423. package/fesm5/taiga-ui-kit-utils-mask.js.map +1 -1
  424. package/fesm5/taiga-ui-kit-utils-miscellaneous.js +1 -1
  425. package/fesm5/taiga-ui-kit-utils-miscellaneous.js.map +1 -1
  426. package/package.json +6 -6
  427. package/providers/taiga-ui-kit-providers.metadata.json +1 -1
  428. package/providers/value-accessor.provider.d.ts +1 -1
@@ -1,8 +1,8 @@
1
1
  import { __extends, __decorate, __param } from 'tslib';
2
- import { InjectionToken, Optional, Self, Inject, ChangeDetectorRef, ViewChild, Input, HostBinding, Component, ChangeDetectionStrategy, forwardRef, NgModule } from '@angular/core';
2
+ import { InjectionToken, Optional, Self, Inject, ChangeDetectorRef, ViewChild, Input, HostBinding, Component, ChangeDetectionStrategy, forwardRef, Directive, NgModule } from '@angular/core';
3
3
  import { NgControl } from '@angular/forms';
4
4
  import { isNativeFocused, isPresent, setNativeFocused, clamp, TUI_IS_MOBILE, tuiDefaultProp, tuiPure, TUI_FOCUSABLE_ITEM_ACCESSOR, AbstractTuiControl } from '@taiga-ui/cdk';
5
- import { tuiCreateNumberMask, formatNumber, TUI_TEXTFIELD_APPEARANCE, TuiTextfieldSizeDirective, TUI_TEXTFIELD_SIZE, TUI_NUMBER_FORMAT, TuiPrimitiveTextfieldComponent, TuiButtonModule, TuiPrimitiveTextfieldModule, TuiTextfieldControllerModule } from '@taiga-ui/core';
5
+ import { tuiCreateNumberMask, formatNumber, TUI_TEXTFIELD_APPEARANCE, TuiTextfieldSizeDirective, TUI_TEXTFIELD_SIZE, TUI_NUMBER_FORMAT, TuiPrimitiveTextfieldComponent, TUI_TEXTFIELD_HOST, TuiAbstractTextfieldHost, TuiButtonModule, TuiPrimitiveTextfieldModule, TuiTextfieldControllerModule, TuiTextfieldComponent } from '@taiga-ui/core';
6
6
  import { TUI_PLUS_MINUS_TEXTS } from '@taiga-ui/kit/tokens';
7
7
  import { Observable } from 'rxjs';
8
8
  import { CommonModule } from '@angular/common';
@@ -288,13 +288,17 @@ var TuiInputCountComponent = /** @class */ (function (_super) {
288
288
  TuiInputCountComponent = TuiInputCountComponent_1 = __decorate([
289
289
  Component({
290
290
  selector: 'tui-input-count',
291
- template: "<tui-primitive-textfield\n tuiValueAccessor\n tuiTextfieldAutocomplete=\"off\"\n tuiTextfieldInputMode=\"numeric\"\n class=\"textfield\"\n [tuiTextfieldMaxLength]=\"18\"\n [pseudoFocused]=\"pseudoFocused\"\n [pseudoHovered]=\"pseudoHovered\"\n [pseudoPressed]=\"pseudoPressed\"\n [focusable]=\"focusable\"\n [nativeId]=\"nativeId\"\n [prefix]=\"prefix\"\n [postfix]=\"postfix\"\n [disabled]=\"disabled\"\n [readOnly]=\"readOnly\"\n [textMask]=\"getMask(min < 0)\"\n [invalid]=\"computedInvalid\"\n [value]=\"computedValue\"\n (valueChange)=\"onValueChange()\"\n (keydown)=\"onKeydown($event)\"\n (focusedChange)=\"onFocused($event)\"\n (hoveredChange)=\"onHovered($event)\"\n (pressedChange)=\"onPressed($event)\"\n>\n <ng-content></ng-content>\n</tui-primitive-textfield>\n<ng-container *ngIf=\"!buttonsHidden && (minusTexts$ | async) as texts\">\n <section class=\"buttons\">\n <button\n tuiIconButton\n type=\"button\"\n automation-id=\"tui-input-count__plus-button\"\n size=\"s\"\n class=\"button button_plus\"\n [icon]=\"iconUp\"\n [appearance]=\"options.appearance\"\n [title]=\"texts[0]\"\n [disabled]=\"plusButtonDisabled\"\n [focusable]=\"false\"\n (mousedown)=\"onButtonMouseDown($event, plusButtonDisabled)\"\n (click)=\"increaseValue()\"\n ></button>\n <button\n tuiIconButton\n type=\"button\"\n automation-id=\"tui-input-count__minus-button\"\n size=\"s\"\n class=\"button button_minus\"\n [icon]=\"iconDown\"\n [appearance]=\"options.appearance\"\n [disabled]=\"minusButtonDisabled\"\n [focusable]=\"false\"\n [title]=\"texts[1]\"\n (mousedown)=\"onButtonMouseDown($event, minusButtonDisabled)\"\n (click)=\"decreaseValue()\"\n ></button>\n </section>\n</ng-container>\n",
291
+ template: "<tui-primitive-textfield\n tuiValueAccessor\n tuiTextfieldAutocomplete=\"off\"\n tuiTextfieldInputMode=\"numeric\"\n class=\"textfield\"\n [tuiTextfieldMaxLength]=\"18\"\n [pseudoFocused]=\"pseudoFocused\"\n [pseudoHovered]=\"pseudoHovered\"\n [pseudoPressed]=\"pseudoPressed\"\n [focusable]=\"focusable\"\n [nativeId]=\"nativeId\"\n [prefix]=\"prefix\"\n [postfix]=\"postfix\"\n [disabled]=\"computedDisabled\"\n [readOnly]=\"readOnly\"\n [textMask]=\"getMask(min < 0)\"\n [invalid]=\"computedInvalid\"\n [value]=\"computedValue\"\n (valueChange)=\"onValueChange()\"\n (keydown)=\"onKeydown($event)\"\n (focusedChange)=\"onFocused($event)\"\n (hoveredChange)=\"onHovered($event)\"\n (pressedChange)=\"onPressed($event)\"\n>\n <ng-content></ng-content>\n <ng-content select=\"input\" ngProjectAs=\"input\"></ng-content>\n</tui-primitive-textfield>\n<ng-container *ngIf=\"!buttonsHidden && (minusTexts$ | async) as texts\">\n <section class=\"buttons\">\n <button\n tuiIconButton\n type=\"button\"\n automation-id=\"tui-input-count__plus-button\"\n size=\"s\"\n class=\"button button_plus\"\n [icon]=\"iconUp\"\n [appearance]=\"options.appearance\"\n [title]=\"texts[0]\"\n [disabled]=\"plusButtonDisabled\"\n [focusable]=\"false\"\n (mousedown)=\"onButtonMouseDown($event, plusButtonDisabled)\"\n (click)=\"increaseValue()\"\n ></button>\n <button\n tuiIconButton\n type=\"button\"\n automation-id=\"tui-input-count__minus-button\"\n size=\"s\"\n class=\"button button_minus\"\n [icon]=\"iconDown\"\n [appearance]=\"options.appearance\"\n [disabled]=\"minusButtonDisabled\"\n [focusable]=\"false\"\n [title]=\"texts[1]\"\n (mousedown)=\"onButtonMouseDown($event, minusButtonDisabled)\"\n (click)=\"decreaseValue()\"\n ></button>\n </section>\n</ng-container>\n",
292
292
  changeDetection: ChangeDetectionStrategy.OnPush,
293
293
  providers: [
294
294
  {
295
295
  provide: TUI_FOCUSABLE_ITEM_ACCESSOR,
296
296
  useExisting: forwardRef(function () { return TuiInputCountComponent_1; }),
297
297
  },
298
+ {
299
+ provide: AbstractTuiControl,
300
+ useExisting: forwardRef(function () { return TuiInputCountComponent_1; }),
301
+ },
298
302
  ],
299
303
  styles: [":host{display:flex;font:var(--tui-font-text-s);border-radius:var(--tui-radius-m);height:var(--tui-height-m);color:var(--tui-text-01);text-align:left}:host._disabled{pointer-events:none}:host[data-tui-host-size='l']{font:var(--tui-font-text-m);height:var(--tui-height-l)}.textfield{position:relative;border-radius:inherit;text-align:inherit;flex-grow:1;min-width:0}:host:not(._hide-buttons) .textfield{border-top-right-radius:0;border-bottom-right-radius:0}.buttons{display:flex;flex-direction:column;margin-left:.125rem;height:100%}.buttons .button{display:flex;width:calc(var(--tui-height-m) * .75);height:calc(50% - .0625rem)}.buttons .button_plus{margin-bottom:.125rem;border-radius:0 var(--tui-radius-m) 0 0}.buttons .button_minus{border-radius:0 0 var(--tui-radius-m)}:host[data-tui-host-size='l'] .buttons .button{width:calc(var(--tui-height-l) * .75)}"]
300
304
  }),
@@ -312,6 +316,34 @@ var TuiInputCountComponent = /** @class */ (function (_super) {
312
316
  return TuiInputCountComponent;
313
317
  }(AbstractTuiControl));
314
318
 
319
+ var TuiInputCountDirective = /** @class */ (function (_super) {
320
+ __extends(TuiInputCountDirective, _super);
321
+ function TuiInputCountDirective() {
322
+ return _super !== null && _super.apply(this, arguments) || this;
323
+ }
324
+ TuiInputCountDirective_1 = TuiInputCountDirective;
325
+ TuiInputCountDirective.prototype.onValueChange = function () {
326
+ this.host.onValueChange();
327
+ };
328
+ TuiInputCountDirective.prototype.process = function (input) {
329
+ input.autocomplete = 'off';
330
+ input.inputMode = 'numeric';
331
+ };
332
+ var TuiInputCountDirective_1;
333
+ TuiInputCountDirective = TuiInputCountDirective_1 = __decorate([
334
+ Directive({
335
+ selector: 'tui-input-count',
336
+ providers: [
337
+ {
338
+ provide: TUI_TEXTFIELD_HOST,
339
+ useExisting: forwardRef(function () { return TuiInputCountDirective_1; }),
340
+ },
341
+ ],
342
+ })
343
+ ], TuiInputCountDirective);
344
+ return TuiInputCountDirective;
345
+ }(TuiAbstractTextfieldHost));
346
+
315
347
  var TuiInputCountModule = /** @class */ (function () {
316
348
  function TuiInputCountModule() {
317
349
  }
@@ -326,8 +358,8 @@ var TuiInputCountModule = /** @class */ (function () {
326
358
  TuiValueAccessorModule,
327
359
  PolymorpheusModule,
328
360
  ],
329
- declarations: [TuiInputCountComponent],
330
- exports: [TuiInputCountComponent],
361
+ declarations: [TuiInputCountComponent, TuiInputCountDirective],
362
+ exports: [TuiInputCountComponent, TuiInputCountDirective, TuiTextfieldComponent],
331
363
  })
332
364
  ], TuiInputCountModule);
333
365
  return TuiInputCountModule;
@@ -337,5 +369,5 @@ var TuiInputCountModule = /** @class */ (function () {
337
369
  * Generated bundle index. Do not edit.
338
370
  */
339
371
 
340
- export { PASSWORD_ICON_DOWN, PASSWORD_ICON_UP, TUI_INPUT_COUNT_DEFAULT_OPTIONS, TUI_INPUT_COUNT_OPTIONS, TuiInputCountComponent, TuiInputCountModule };
372
+ export { PASSWORD_ICON_DOWN, PASSWORD_ICON_UP, TUI_INPUT_COUNT_DEFAULT_OPTIONS, TUI_INPUT_COUNT_OPTIONS, TuiInputCountComponent, TuiInputCountDirective, TuiInputCountModule };
341
373
  //# sourceMappingURL=taiga-ui-kit-components-input-count.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-kit-components-input-count.js","sources":["ng://@taiga-ui/kit/components/input-count/input-count-options.ts","ng://@taiga-ui/kit/components/input-count/input-count.component.ts","ng://@taiga-ui/kit/components/input-count/input-count.module.ts","ng://@taiga-ui/kit/components/input-count/taiga-ui-kit-components-input-count.ts"],"sourcesContent":["import {InjectionToken} from '@angular/core';\nimport {PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\n\nexport interface InputCountOptions {\n readonly icons: Readonly<{\n up: PolymorpheusContent<{}>;\n down: PolymorpheusContent<{}>;\n }>;\n readonly appearance: string;\n readonly hideButtons: boolean;\n readonly min: number;\n readonly max: number;\n readonly step: number;\n readonly postfix: string;\n}\n\n// TODO: remove in ivy compilation\nexport const PASSWORD_ICON_UP = 'tuiIconPlus';\nexport const PASSWORD_ICON_DOWN = 'tuiIconMinus';\n\n/** Default values for the input count options. */\nexport const TUI_INPUT_COUNT_DEFAULT_OPTIONS: InputCountOptions = {\n icons: {\n up: PASSWORD_ICON_UP,\n down: PASSWORD_ICON_DOWN,\n },\n appearance: 'textfield',\n hideButtons: false,\n min: 0,\n max: Infinity,\n step: 1,\n postfix: '',\n};\n\nexport const TUI_INPUT_COUNT_OPTIONS = new InjectionToken<InputCountOptions>(\n 'Default parameters for input count component',\n {\n factory: () => TUI_INPUT_COUNT_DEFAULT_OPTIONS,\n },\n);\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n forwardRef,\n HostBinding,\n Inject,\n Input,\n Optional,\n Self,\n ViewChild,\n} from '@angular/core';\nimport {NgControl} from '@angular/forms';\nimport {\n AbstractTuiControl,\n clamp,\n isNativeFocused,\n isPresent,\n setNativeFocused,\n TUI_FOCUSABLE_ITEM_ACCESSOR,\n TUI_IS_MOBILE,\n tuiDefaultProp,\n TuiFocusableElementAccessor,\n tuiPure,\n} from '@taiga-ui/cdk';\nimport {\n formatNumber,\n NumberFormatSettings,\n TUI_NUMBER_FORMAT,\n TUI_TEXTFIELD_APPEARANCE,\n TUI_TEXTFIELD_SIZE,\n tuiCreateNumberMask,\n TuiPrimitiveTextfieldComponent,\n TuiSizeL,\n TuiSizeS,\n TuiTextfieldSizeDirective,\n TuiTextMaskOptions,\n TuiWithOptionalMinMax,\n} from '@taiga-ui/core';\nimport {TUI_PLUS_MINUS_TEXTS} from '@taiga-ui/kit/tokens';\nimport {PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\nimport {Observable} from 'rxjs';\n\nimport {InputCountOptions, TUI_INPUT_COUNT_OPTIONS} from './input-count-options';\n\n// @dynamic\n@Component({\n selector: 'tui-input-count',\n templateUrl: './input-count.template.html',\n styleUrls: ['./input-count.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: TUI_FOCUSABLE_ITEM_ACCESSOR,\n useExisting: forwardRef(() => TuiInputCountComponent),\n },\n ],\n})\nexport class TuiInputCountComponent\n extends AbstractTuiControl<number>\n implements TuiWithOptionalMinMax<number>, TuiFocusableElementAccessor\n{\n @ViewChild(TuiPrimitiveTextfieldComponent)\n private readonly primitiveTextfield?: TuiPrimitiveTextfieldComponent;\n\n @Input()\n @tuiDefaultProp()\n step = this.options.step;\n\n @Input()\n @tuiDefaultProp()\n min = this.options.min;\n\n @Input()\n @tuiDefaultProp()\n max = this.options.max;\n\n @Input()\n @tuiDefaultProp()\n hideButtons = this.options.hideButtons;\n\n @Input()\n @tuiDefaultProp()\n prefix = '';\n\n @Input()\n @tuiDefaultProp()\n postfix = this.options.postfix;\n\n constructor(\n @Optional()\n @Self()\n @Inject(NgControl)\n control: NgControl | null,\n @Inject(ChangeDetectorRef) changeDetectorRef: ChangeDetectorRef,\n @Inject(TUI_TEXTFIELD_APPEARANCE)\n private readonly appearance: string,\n @Inject(TUI_TEXTFIELD_SIZE)\n private readonly textfieldSize: TuiTextfieldSizeDirective,\n @Inject(TUI_PLUS_MINUS_TEXTS)\n readonly minusTexts$: Observable<[string, string]>,\n @Inject(TUI_IS_MOBILE) private readonly isMobile: boolean,\n @Inject(TUI_INPUT_COUNT_OPTIONS)\n readonly options: InputCountOptions,\n @Inject(TUI_NUMBER_FORMAT)\n private readonly numberFormat: NumberFormatSettings,\n ) {\n super(control, changeDetectorRef);\n }\n\n @tuiPure\n getMask(allowNegative: boolean): TuiTextMaskOptions {\n return {\n mask: tuiCreateNumberMask({\n allowNegative,\n decimalSymbol: this.numberFormat.decimalSeparator,\n thousandSymbol: this.numberFormat.thousandSeparator,\n }),\n guide: false,\n };\n }\n\n // TODO: Remove in v.3\n @HostBinding('class._hide-buttons')\n get buttonsHidden(): boolean {\n return this.hideButtons || this.appearance === 'table';\n }\n\n get iconUp(): PolymorpheusContent<{}> {\n return this.options.icons.up;\n }\n\n get iconDown(): PolymorpheusContent<{}> {\n return this.options.icons.down;\n }\n\n get nativeFocusableElement(): HTMLInputElement | null {\n return !this.primitiveTextfield || this.computedDisabled\n ? null\n : this.primitiveTextfield.nativeFocusableElement;\n }\n\n @HostBinding('attr.data-tui-host-size')\n get size(): TuiSizeL | TuiSizeS {\n return this.textfieldSize.size;\n }\n\n get focused(): boolean {\n return isNativeFocused(this.nativeFocusableElement);\n }\n\n get exampleText(): string {\n return String(this.min);\n }\n\n get computedValue(): string {\n return this.formatNumber(this.value);\n }\n\n get minusButtonDisabled(): boolean {\n return !this.interactive || (isPresent(this.value) && this.value <= this.min);\n }\n\n get plusButtonDisabled(): boolean {\n return !this.interactive || (isPresent(this.value) && this.value >= this.max);\n }\n\n onButtonMouseDown(event: MouseEvent, disabled: boolean = false) {\n if (disabled || !this.nativeFocusableElement || this.isMobile) {\n return;\n }\n\n event.preventDefault();\n setNativeFocused(this.nativeFocusableElement);\n }\n\n onFocused(focused: boolean) {\n if (!focused) {\n this.onBlur();\n }\n\n this.updateFocused(focused);\n }\n\n onHovered(hovered: boolean) {\n this.updateHovered(hovered);\n }\n\n onPressed(pressed: boolean) {\n this.updatePressed(pressed);\n }\n\n onValueChange() {\n const capped = this.capValue(this.nativeNumberValue);\n\n if (capped === null || isNaN(capped)) {\n return;\n }\n\n const newValue = this.formatNumber(capped);\n\n if (this.nativeValue !== newValue) {\n this.nativeValue = newValue;\n }\n\n this.updateValue(capped);\n }\n\n decreaseValue() {\n if (this.readOnly) {\n return;\n }\n\n const newValue = (this.value || 0) - this.step;\n\n this.safeUpdateValue(newValue);\n }\n\n increaseValue() {\n if (this.readOnly) {\n return;\n }\n\n const newValue = (this.value || 0) + this.step;\n\n this.safeUpdateValue(newValue);\n }\n\n onKeydown(event: KeyboardEvent) {\n switch (event.key) {\n case 'ArrowUp':\n case 'Up':\n this.increaseValue();\n event.preventDefault();\n break;\n case 'ArrowDown':\n case 'Down':\n this.decreaseValue();\n event.preventDefault();\n break;\n default:\n break;\n }\n }\n\n protected getFallbackValue(): number {\n return 0;\n }\n\n private get nativeNumberValue(): number {\n return parseInt(\n this.nativeValue.split(this.numberFormat.thousandSeparator).join(''),\n 10,\n );\n }\n\n private get nativeValue(): string {\n return this.nativeFocusableElement ? this.nativeFocusableElement.value : '';\n }\n\n private set nativeValue(value: string) {\n if (!this.nativeFocusableElement) {\n return;\n }\n\n this.nativeFocusableElement.value = value;\n }\n\n private safeUpdateValue(newValue: number) {\n const value = clamp(newValue, this.min, this.max);\n\n this.updateValue(value);\n this.nativeValue = this.formatNumber(value);\n }\n\n private capValue(value: number): number | null {\n const capped = Math.min(value, this.max);\n\n return isNaN(capped) || capped < this.min ? null : capped;\n }\n\n private onBlur() {\n const value = Math.max(this.nativeNumberValue || 0, this.min);\n const formattedValue = this.formatNumber(value);\n\n this.nativeValue = formattedValue;\n this.updateValue(value);\n\n if (this.primitiveTextfield) {\n this.primitiveTextfield.value = formattedValue;\n }\n }\n\n private formatNumber(value: number): string {\n return formatNumber(\n value,\n null,\n this.numberFormat.decimalSeparator,\n this.numberFormat.thousandSeparator,\n );\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {\n TuiButtonModule,\n TuiPrimitiveTextfieldModule,\n TuiTextfieldControllerModule,\n} from '@taiga-ui/core';\nimport {TuiValueAccessorModule} from '@taiga-ui/kit/directives';\nimport {PolymorpheusModule} from '@tinkoff/ng-polymorpheus';\nimport {TextMaskModule} from 'angular2-text-mask';\n\nimport {TuiInputCountComponent} from './input-count.component';\n\n@NgModule({\n imports: [\n CommonModule,\n TextMaskModule,\n TuiButtonModule,\n TuiPrimitiveTextfieldModule,\n TuiTextfieldControllerModule,\n TuiValueAccessorModule,\n PolymorpheusModule,\n ],\n declarations: [TuiInputCountComponent],\n exports: [TuiInputCountComponent],\n})\nexport class TuiInputCountModule {}\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-count.js","sources":["ng://@taiga-ui/kit/components/input-count/input-count-options.ts","ng://@taiga-ui/kit/components/input-count/input-count.component.ts","ng://@taiga-ui/kit/components/input-count/input-count.directive.ts","ng://@taiga-ui/kit/components/input-count/input-count.module.ts","ng://@taiga-ui/kit/components/input-count/taiga-ui-kit-components-input-count.ts"],"sourcesContent":["import {InjectionToken} from '@angular/core';\nimport {PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\n\nexport interface InputCountOptions {\n readonly icons: Readonly<{\n up: PolymorpheusContent<{}>;\n down: PolymorpheusContent<{}>;\n }>;\n readonly appearance: string;\n readonly hideButtons: boolean;\n readonly min: number;\n readonly max: number;\n readonly step: number;\n readonly postfix: string;\n}\n\n// TODO: remove in ivy compilation\nexport const PASSWORD_ICON_UP = 'tuiIconPlus';\nexport const PASSWORD_ICON_DOWN = 'tuiIconMinus';\n\n/** Default values for the input count options. */\nexport const TUI_INPUT_COUNT_DEFAULT_OPTIONS: InputCountOptions = {\n icons: {\n up: PASSWORD_ICON_UP,\n down: PASSWORD_ICON_DOWN,\n },\n appearance: 'textfield',\n hideButtons: false,\n min: 0,\n max: Infinity,\n step: 1,\n postfix: '',\n};\n\nexport const TUI_INPUT_COUNT_OPTIONS = new InjectionToken<InputCountOptions>(\n 'Default parameters for input count component',\n {\n factory: () => TUI_INPUT_COUNT_DEFAULT_OPTIONS,\n },\n);\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n forwardRef,\n HostBinding,\n Inject,\n Input,\n Optional,\n Self,\n ViewChild,\n} from '@angular/core';\nimport {NgControl} from '@angular/forms';\nimport {\n AbstractTuiControl,\n clamp,\n isNativeFocused,\n isPresent,\n setNativeFocused,\n TUI_FOCUSABLE_ITEM_ACCESSOR,\n TUI_IS_MOBILE,\n tuiDefaultProp,\n TuiFocusableElementAccessor,\n tuiPure,\n} from '@taiga-ui/cdk';\nimport {\n formatNumber,\n NumberFormatSettings,\n TUI_NUMBER_FORMAT,\n TUI_TEXTFIELD_APPEARANCE,\n TUI_TEXTFIELD_SIZE,\n tuiCreateNumberMask,\n TuiPrimitiveTextfieldComponent,\n TuiSizeL,\n TuiSizeS,\n TuiTextfieldSizeDirective,\n TuiTextMaskOptions,\n TuiWithOptionalMinMax,\n} from '@taiga-ui/core';\nimport {TUI_PLUS_MINUS_TEXTS} from '@taiga-ui/kit/tokens';\nimport {PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\nimport {Observable} from 'rxjs';\n\nimport {InputCountOptions, TUI_INPUT_COUNT_OPTIONS} from './input-count-options';\n\n// @dynamic\n@Component({\n selector: 'tui-input-count',\n templateUrl: './input-count.template.html',\n styleUrls: ['./input-count.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: TUI_FOCUSABLE_ITEM_ACCESSOR,\n useExisting: forwardRef(() => TuiInputCountComponent),\n },\n {\n provide: AbstractTuiControl,\n useExisting: forwardRef(() => TuiInputCountComponent),\n },\n ],\n})\nexport class TuiInputCountComponent\n extends AbstractTuiControl<number>\n implements TuiWithOptionalMinMax<number>, TuiFocusableElementAccessor\n{\n @ViewChild(TuiPrimitiveTextfieldComponent)\n private readonly primitiveTextfield?: TuiPrimitiveTextfieldComponent;\n\n @Input()\n @tuiDefaultProp()\n step = this.options.step;\n\n @Input()\n @tuiDefaultProp()\n min = this.options.min;\n\n @Input()\n @tuiDefaultProp()\n max = this.options.max;\n\n @Input()\n @tuiDefaultProp()\n hideButtons = this.options.hideButtons;\n\n @Input()\n @tuiDefaultProp()\n prefix = '';\n\n @Input()\n @tuiDefaultProp()\n postfix = this.options.postfix;\n\n constructor(\n @Optional()\n @Self()\n @Inject(NgControl)\n control: NgControl | null,\n @Inject(ChangeDetectorRef) changeDetectorRef: ChangeDetectorRef,\n @Inject(TUI_TEXTFIELD_APPEARANCE)\n private readonly appearance: string,\n @Inject(TUI_TEXTFIELD_SIZE)\n private readonly textfieldSize: TuiTextfieldSizeDirective,\n @Inject(TUI_PLUS_MINUS_TEXTS)\n readonly minusTexts$: Observable<[string, string]>,\n @Inject(TUI_IS_MOBILE) private readonly isMobile: boolean,\n @Inject(TUI_INPUT_COUNT_OPTIONS)\n readonly options: InputCountOptions,\n @Inject(TUI_NUMBER_FORMAT)\n private readonly numberFormat: NumberFormatSettings,\n ) {\n super(control, changeDetectorRef);\n }\n\n @tuiPure\n getMask(allowNegative: boolean): TuiTextMaskOptions {\n return {\n mask: tuiCreateNumberMask({\n allowNegative,\n decimalSymbol: this.numberFormat.decimalSeparator,\n thousandSymbol: this.numberFormat.thousandSeparator,\n }),\n guide: false,\n };\n }\n\n // TODO: Remove in v.3\n @HostBinding('class._hide-buttons')\n get buttonsHidden(): boolean {\n return this.hideButtons || this.appearance === 'table';\n }\n\n get iconUp(): PolymorpheusContent<{}> {\n return this.options.icons.up;\n }\n\n get iconDown(): PolymorpheusContent<{}> {\n return this.options.icons.down;\n }\n\n get nativeFocusableElement(): HTMLInputElement | null {\n return !this.primitiveTextfield || this.computedDisabled\n ? null\n : this.primitiveTextfield.nativeFocusableElement;\n }\n\n @HostBinding('attr.data-tui-host-size')\n get size(): TuiSizeL | TuiSizeS {\n return this.textfieldSize.size;\n }\n\n get focused(): boolean {\n return isNativeFocused(this.nativeFocusableElement);\n }\n\n get exampleText(): string {\n return String(this.min);\n }\n\n get computedValue(): string {\n return this.formatNumber(this.value);\n }\n\n get minusButtonDisabled(): boolean {\n return !this.interactive || (isPresent(this.value) && this.value <= this.min);\n }\n\n get plusButtonDisabled(): boolean {\n return !this.interactive || (isPresent(this.value) && this.value >= this.max);\n }\n\n onButtonMouseDown(event: MouseEvent, disabled: boolean = false) {\n if (disabled || !this.nativeFocusableElement || this.isMobile) {\n return;\n }\n\n event.preventDefault();\n setNativeFocused(this.nativeFocusableElement);\n }\n\n onFocused(focused: boolean) {\n if (!focused) {\n this.onBlur();\n }\n\n this.updateFocused(focused);\n }\n\n onHovered(hovered: boolean) {\n this.updateHovered(hovered);\n }\n\n onPressed(pressed: boolean) {\n this.updatePressed(pressed);\n }\n\n onValueChange() {\n const capped = this.capValue(this.nativeNumberValue);\n\n if (capped === null || isNaN(capped)) {\n return;\n }\n\n const newValue = this.formatNumber(capped);\n\n if (this.nativeValue !== newValue) {\n this.nativeValue = newValue;\n }\n\n this.updateValue(capped);\n }\n\n decreaseValue() {\n if (this.readOnly) {\n return;\n }\n\n const newValue = (this.value || 0) - this.step;\n\n this.safeUpdateValue(newValue);\n }\n\n increaseValue() {\n if (this.readOnly) {\n return;\n }\n\n const newValue = (this.value || 0) + this.step;\n\n this.safeUpdateValue(newValue);\n }\n\n onKeydown(event: KeyboardEvent) {\n switch (event.key) {\n case 'ArrowUp':\n case 'Up':\n this.increaseValue();\n event.preventDefault();\n break;\n case 'ArrowDown':\n case 'Down':\n this.decreaseValue();\n event.preventDefault();\n break;\n default:\n break;\n }\n }\n\n protected getFallbackValue(): number {\n return 0;\n }\n\n private get nativeNumberValue(): number {\n return parseInt(\n this.nativeValue.split(this.numberFormat.thousandSeparator).join(''),\n 10,\n );\n }\n\n private get nativeValue(): string {\n return this.nativeFocusableElement ? this.nativeFocusableElement.value : '';\n }\n\n private set nativeValue(value: string) {\n if (!this.nativeFocusableElement) {\n return;\n }\n\n this.nativeFocusableElement.value = value;\n }\n\n private safeUpdateValue(newValue: number) {\n const value = clamp(newValue, this.min, this.max);\n\n this.updateValue(value);\n this.nativeValue = this.formatNumber(value);\n }\n\n private capValue(value: number): number | null {\n const capped = Math.min(value, this.max);\n\n return isNaN(capped) || capped < this.min ? null : capped;\n }\n\n private onBlur() {\n const value = Math.max(this.nativeNumberValue || 0, this.min);\n const formattedValue = this.formatNumber(value);\n\n this.nativeValue = formattedValue;\n this.updateValue(value);\n\n if (this.primitiveTextfield) {\n this.primitiveTextfield.value = formattedValue;\n }\n }\n\n private formatNumber(value: number): string {\n return formatNumber(\n value,\n null,\n this.numberFormat.decimalSeparator,\n this.numberFormat.thousandSeparator,\n );\n }\n}\n","import {Directive, forwardRef} from '@angular/core';\nimport {TUI_TEXTFIELD_HOST, TuiAbstractTextfieldHost} from '@taiga-ui/core';\n\nimport {TuiInputCountComponent} from './input-count.component';\n\n@Directive({\n selector: 'tui-input-count',\n providers: [\n {\n provide: TUI_TEXTFIELD_HOST,\n useExisting: forwardRef(() => TuiInputCountDirective),\n },\n ],\n})\nexport class TuiInputCountDirective extends TuiAbstractTextfieldHost<TuiInputCountComponent> {\n onValueChange() {\n this.host.onValueChange();\n }\n\n process(input: HTMLInputElement) {\n input.autocomplete = 'off';\n input.inputMode = 'numeric';\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {\n TuiButtonModule,\n TuiPrimitiveTextfieldModule,\n TuiTextfieldComponent,\n TuiTextfieldControllerModule,\n} from '@taiga-ui/core';\nimport {TuiValueAccessorModule} from '@taiga-ui/kit/directives';\nimport {PolymorpheusModule} from '@tinkoff/ng-polymorpheus';\nimport {TextMaskModule} from 'angular2-text-mask';\n\nimport {TuiInputCountComponent} from './input-count.component';\nimport {TuiInputCountDirective} from './input-count.directive';\n\n@NgModule({\n imports: [\n CommonModule,\n TextMaskModule,\n TuiButtonModule,\n TuiPrimitiveTextfieldModule,\n TuiTextfieldControllerModule,\n TuiValueAccessorModule,\n PolymorpheusModule,\n ],\n declarations: [TuiInputCountComponent, TuiInputCountDirective],\n exports: [TuiInputCountComponent, TuiInputCountDirective, TuiTextfieldComponent],\n})\nexport class TuiInputCountModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,16 +1,16 @@
1
1
  import { __extends, __decorate, __param } from 'tslib';
2
- import { Optional, Self, Inject, ChangeDetectorRef, Injector, Type, ViewChild, Input, HostListener, Component, forwardRef, NgModule } from '@angular/core';
2
+ import { forwardRef, Optional, Self, Inject, ChangeDetectorRef, Injector, Type, ViewChild, Input, HostListener, Component, Directive, NgModule } from '@angular/core';
3
3
  import { NgControl } from '@angular/forms';
4
- import { ALWAYS_FALSE_HANDLER, TuiMonth, TUI_FIRST_DAY, TUI_LAST_DAY, changeDateSeparator, nullableSame, DATE_RANGE_FILLER_LENGTH, TuiDayRange, DATE_FILLER_LENGTH, RANGE_SEPARATOR_CHAR, setNativeFocused, TUI_IS_MOBILE, TUI_DATE_FORMAT, TUI_DATE_SEPARATOR, tuiDefaultProp, TUI_FOCUSABLE_ITEM_ACCESSOR, AbstractTuiNullableControl, TuiActiveZoneModule, TuiLetModule } from '@taiga-ui/cdk';
5
- import { TUI_DEFAULT_MARKER_HANDLER, sizeBigger, TuiDialogService, TuiTextfieldSizeDirective, TUI_TEXTFIELD_SIZE, TuiTextfieldExampleTextDirective, TUI_TEXTFIELD_EXAMPLE_TEXT, TuiPrimitiveTextfieldComponent, TuiPrimitiveTextfieldModule, TuiTextfieldControllerModule, TuiHostedDropdownModule, TuiSvgModule } from '@taiga-ui/core';
4
+ import { AbstractTuiControl, TUI_FOCUSABLE_ITEM_ACCESSOR, ALWAYS_FALSE_HANDLER, TuiMonth, TUI_FIRST_DAY, TUI_LAST_DAY, changeDateSeparator, nullableSame, DATE_RANGE_FILLER_LENGTH, TuiDayRange, DATE_FILLER_LENGTH, RANGE_SEPARATOR_CHAR, setNativeFocused, TUI_IS_MOBILE, TUI_DATE_FORMAT, TUI_DATE_SEPARATOR, tuiDefaultProp, AbstractTuiNullableControl, TuiActiveZoneModule, TuiLetModule } from '@taiga-ui/cdk';
5
+ import { TUI_DEFAULT_MARKER_HANDLER, sizeBigger, TuiDialogService, TuiTextfieldSizeDirective, TUI_TEXTFIELD_SIZE, TuiTextfieldExampleTextDirective, TUI_TEXTFIELD_EXAMPLE_TEXT, TuiPrimitiveTextfieldComponent, TUI_TEXTFIELD_HOST, TuiAbstractTextfieldHost, TuiPrimitiveTextfieldModule, TuiTextfieldControllerModule, TuiHostedDropdownModule, TuiSvgModule, TuiTextfieldComponent } from '@taiga-ui/core';
6
6
  import { MAX_DAY_RANGE_LENGTH_MAPPER, EMPTY_MASK } from '@taiga-ui/kit/constants';
7
- import { LEFT_ALIGNED_DROPDOWN_CONTROLLER_PROVIDER } from '@taiga-ui/kit/providers';
8
- import { TUI_MOBILE_CALENDAR, TUI_DATE_TEXTS, TUI_DATE_RANGE_VALUE_TRANSFORMER, TUI_CALENDAR_DATA_STREAM } from '@taiga-ui/kit/tokens';
7
+ import { TUI_CALENDAR_DATA_STREAM, TUI_DATE_RANGE_VALUE_TRANSFORMER, TUI_MOBILE_CALENDAR, TUI_DATE_TEXTS } from '@taiga-ui/kit/tokens';
9
8
  import { tuiCreateDateRangeMask, tuiCreateAutoCorrectedDateRangePipe } from '@taiga-ui/kit/utils/mask';
10
- import { TuiReplayControlValueChangesFactory } from '@taiga-ui/kit/utils/miscellaneous';
11
9
  import { PolymorpheusComponent, PolymorpheusModule } from '@tinkoff/ng-polymorpheus';
12
10
  import { Observable } from 'rxjs';
13
11
  import { map, takeUntil } from 'rxjs/operators';
12
+ import { LEFT_ALIGNED_DROPDOWN_CONTROLLER_PROVIDER } from '@taiga-ui/kit/providers';
13
+ import { TuiReplayControlValueChangesFactory } from '@taiga-ui/kit/utils/miscellaneous';
14
14
  import { CommonModule } from '@angular/common';
15
15
  import { TuiCalendarRangeModule } from '@taiga-ui/kit/components/calendar-range';
16
16
  import { TuiValueAccessorModule } from '@taiga-ui/kit/directives';
@@ -18,6 +18,26 @@ import { TextMaskModule } from 'angular2-text-mask';
18
18
 
19
19
  // TODO: remove in ivy compilation
20
20
  var RANGE_STREAM_FACTORY = function (control, valueTransformer) { return TuiReplayControlValueChangesFactory(control, valueTransformer); };
21
+ var TUI_INPUT_DATE_RANGE_PROVIDERS = [
22
+ {
23
+ provide: AbstractTuiControl,
24
+ useExisting: forwardRef(function () { return TuiInputDateRangeComponent; }),
25
+ },
26
+ {
27
+ provide: TUI_FOCUSABLE_ITEM_ACCESSOR,
28
+ useExisting: forwardRef(function () { return TuiInputDateRangeComponent; }),
29
+ },
30
+ {
31
+ provide: TUI_CALENDAR_DATA_STREAM,
32
+ deps: [
33
+ [new Optional(), new Self(), NgControl],
34
+ [new Optional(), forwardRef(function () { return TUI_DATE_RANGE_VALUE_TRANSFORMER; })],
35
+ ],
36
+ useFactory: RANGE_STREAM_FACTORY,
37
+ },
38
+ LEFT_ALIGNED_DROPDOWN_CONTROLLER_PROVIDER,
39
+ ];
40
+
21
41
  // @dynamic
22
42
  var TuiInputDateRangeComponent = /** @class */ (function (_super) {
23
43
  __extends(TuiInputDateRangeComponent, _super);
@@ -53,7 +73,6 @@ var TuiInputDateRangeComponent = /** @class */ (function (_super) {
53
73
  }));
54
74
  return _this;
55
75
  }
56
- TuiInputDateRangeComponent_1 = TuiInputDateRangeComponent;
57
76
  Object.defineProperty(TuiInputDateRangeComponent.prototype, "nativeFocusableElement", {
58
77
  get: function () {
59
78
  return this.textfield ? this.textfield.nativeFocusableElement : null;
@@ -279,7 +298,6 @@ var TuiInputDateRangeComponent = /** @class */ (function (_super) {
279
298
  TuiInputDateRangeComponent.prototype.getDateRangeFiller = function (dateFiller) {
280
299
  return "" + dateFiller + RANGE_SEPARATOR_CHAR + dateFiller;
281
300
  };
282
- var TuiInputDateRangeComponent_1;
283
301
  TuiInputDateRangeComponent.ctorParameters = function () { return [
284
302
  { type: NgControl, decorators: [{ type: Optional }, { type: Self }, { type: Inject, args: [NgControl,] }] },
285
303
  { type: ChangeDetectorRef, decorators: [{ type: Inject, args: [ChangeDetectorRef,] }] },
@@ -332,25 +350,11 @@ var TuiInputDateRangeComponent = /** @class */ (function (_super) {
332
350
  __decorate([
333
351
  HostListener('click')
334
352
  ], TuiInputDateRangeComponent.prototype, "onClick", null);
335
- TuiInputDateRangeComponent = TuiInputDateRangeComponent_1 = __decorate([
353
+ TuiInputDateRangeComponent = __decorate([
336
354
  Component({
337
355
  selector: 'tui-input-date-range',
338
- template: "<tui-hosted-dropdown\n class=\"hosted\"\n [canOpen]=\"canOpen\"\n [content]=\"dropdown\"\n [open]=\"open && canOpen\"\n (openChange)=\"onOpenChange($event)\"\n (tuiActiveZoneChange)=\"onActiveZone($event)\"\n>\n <tui-primitive-textfield\n *tuiLet=\"dateFiller$ | async as dateFiller\"\n automation-id=\"tui-input-date-range__textfield\"\n tuiValueAccessor\n tuiTextfieldInputMode=\"numeric\"\n class=\"textfield\"\n [pseudoFocused]=\"innerPseudoFocused\"\n [pseudoHovered]=\"pseudoHovered\"\n [pseudoPressed]=\"pseudoPressed\"\n [invalid]=\"computedInvalid\"\n [tuiTextfieldExampleText]=\"computedExampleText\"\n [nativeId]=\"nativeId\"\n [filler]=\"getComputedRangeFiller(dateFiller)\"\n [readOnly]=\"readOnly\"\n [iconContent]=\"computedMobile ? mobileIconContent : iconContent\"\n [disabled]=\"computedDisabled\"\n [textMask]=\"computedMask\"\n [value]=\"computedValue\"\n (valueChange)=\"onValueChange($event)\"\n (hoveredChange)=\"onHovered($event)\"\n (pressedChange)=\"onPressed($event)\"\n >\n <ng-content></ng-content>\n </tui-primitive-textfield>\n\n <ng-template #mobileIconContent>\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 #iconContent>\n <tui-svg\n [class.icon]=\"!computedDisabled\"\n [src]=\"calendarIcon\"\n ></tui-svg>\n </ng-template>\n\n <ng-template #dropdown>\n <tui-calendar-range\n [defaultViewedMonth]=\"defaultViewedMonth\"\n [disabledItemHandler]=\"disabledItemHandler\"\n [items]=\"items\"\n [min]=\"min\"\n [max]=\"max\"\n [markerHandler]=\"markerHandler\"\n [minLength]=\"minLength\"\n [maxLength]=\"maxLength\"\n [value]=\"value\"\n (valueChange)=\"onRangeChange($event)\"\n ></tui-calendar-range>\n </ng-template>\n</tui-hosted-dropdown>\n",
339
- providers: [
340
- {
341
- provide: TUI_FOCUSABLE_ITEM_ACCESSOR,
342
- useExisting: forwardRef(function () { return TuiInputDateRangeComponent_1; }),
343
- },
344
- {
345
- provide: TUI_CALENDAR_DATA_STREAM,
346
- deps: [
347
- [new Optional(), new Self(), NgControl],
348
- [new Optional(), forwardRef(function () { return TUI_DATE_RANGE_VALUE_TRANSFORMER; })],
349
- ],
350
- useFactory: RANGE_STREAM_FACTORY,
351
- },
352
- LEFT_ALIGNED_DROPDOWN_CONTROLLER_PROVIDER,
353
- ],
356
+ template: "<tui-hosted-dropdown\n class=\"hosted\"\n [canOpen]=\"canOpen\"\n [content]=\"dropdown\"\n [open]=\"open && canOpen\"\n (openChange)=\"onOpenChange($event)\"\n (tuiActiveZoneChange)=\"onActiveZone($event)\"\n>\n <tui-primitive-textfield\n *tuiLet=\"dateFiller$ | async as dateFiller\"\n automation-id=\"tui-input-date-range__textfield\"\n tuiValueAccessor\n tuiTextfieldInputMode=\"numeric\"\n class=\"textfield\"\n [pseudoFocused]=\"innerPseudoFocused\"\n [pseudoHovered]=\"pseudoHovered\"\n [pseudoPressed]=\"pseudoPressed\"\n [invalid]=\"computedInvalid\"\n [tuiTextfieldExampleText]=\"computedExampleText\"\n [nativeId]=\"nativeId\"\n [filler]=\"getComputedRangeFiller(dateFiller)\"\n [readOnly]=\"readOnly\"\n [iconContent]=\"computedMobile ? mobileIconContent : iconContent\"\n [disabled]=\"computedDisabled\"\n [textMask]=\"computedMask\"\n [value]=\"computedValue\"\n (valueChange)=\"onValueChange($event)\"\n (hoveredChange)=\"onHovered($event)\"\n (pressedChange)=\"onPressed($event)\"\n >\n <ng-content></ng-content>\n <ng-content select=\"input\" ngProjectAs=\"input\"></ng-content>\n </tui-primitive-textfield>\n\n <ng-template #mobileIconContent>\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 #iconContent>\n <tui-svg\n [class.icon]=\"!computedDisabled\"\n [src]=\"calendarIcon\"\n ></tui-svg>\n </ng-template>\n\n <ng-template #dropdown>\n <tui-calendar-range\n [defaultViewedMonth]=\"defaultViewedMonth\"\n [disabledItemHandler]=\"disabledItemHandler\"\n [items]=\"items\"\n [min]=\"min\"\n [max]=\"max\"\n [markerHandler]=\"markerHandler\"\n [minLength]=\"minLength\"\n [maxLength]=\"maxLength\"\n [value]=\"value\"\n (valueChange)=\"onRangeChange($event)\"\n ></tui-calendar-range>\n </ng-template>\n</tui-hosted-dropdown>\n",
357
+ providers: TUI_INPUT_DATE_RANGE_PROVIDERS,
354
358
  styles: [":host{display:block;border-radius:var(--tui-radius-m);text-align:left}:host._disabled{pointer-events:none}.hosted{display:block;border-radius:inherit}.textfield{border-radius:inherit;text-align:inherit}.icon{pointer-events:auto}"]
355
359
  }),
356
360
  __param(0, Optional()),
@@ -373,6 +377,40 @@ var TuiInputDateRangeComponent = /** @class */ (function (_super) {
373
377
  return TuiInputDateRangeComponent;
374
378
  }(AbstractTuiNullableControl));
375
379
 
380
+ var TuiInputDateRangeDirective = /** @class */ (function (_super) {
381
+ __extends(TuiInputDateRangeDirective, _super);
382
+ function TuiInputDateRangeDirective() {
383
+ return _super !== null && _super.apply(this, arguments) || this;
384
+ }
385
+ TuiInputDateRangeDirective_1 = TuiInputDateRangeDirective;
386
+ Object.defineProperty(TuiInputDateRangeDirective.prototype, "value", {
387
+ get: function () {
388
+ return this.host.computedValue;
389
+ },
390
+ enumerable: true,
391
+ configurable: true
392
+ });
393
+ TuiInputDateRangeDirective.prototype.onValueChange = function (value) {
394
+ this.host.onValueChange(value);
395
+ };
396
+ TuiInputDateRangeDirective.prototype.process = function (input) {
397
+ input.inputMode = 'numeric';
398
+ };
399
+ var TuiInputDateRangeDirective_1;
400
+ TuiInputDateRangeDirective = TuiInputDateRangeDirective_1 = __decorate([
401
+ Directive({
402
+ selector: 'tui-input-date-range',
403
+ providers: [
404
+ {
405
+ provide: TUI_TEXTFIELD_HOST,
406
+ useExisting: forwardRef(function () { return TuiInputDateRangeDirective_1; }),
407
+ },
408
+ ],
409
+ })
410
+ ], TuiInputDateRangeDirective);
411
+ return TuiInputDateRangeDirective;
412
+ }(TuiAbstractTextfieldHost));
413
+
376
414
  var TuiInputDateRangeModule = /** @class */ (function () {
377
415
  function TuiInputDateRangeModule() {
378
416
  }
@@ -391,8 +429,12 @@ var TuiInputDateRangeModule = /** @class */ (function () {
391
429
  TuiCalendarRangeModule,
392
430
  TuiValueAccessorModule,
393
431
  ],
394
- declarations: [TuiInputDateRangeComponent],
395
- exports: [TuiInputDateRangeComponent],
432
+ declarations: [TuiInputDateRangeComponent, TuiInputDateRangeDirective],
433
+ exports: [
434
+ TuiInputDateRangeComponent,
435
+ TuiInputDateRangeDirective,
436
+ TuiTextfieldComponent,
437
+ ],
396
438
  })
397
439
  ], TuiInputDateRangeModule);
398
440
  return TuiInputDateRangeModule;
@@ -402,5 +444,5 @@ var TuiInputDateRangeModule = /** @class */ (function () {
402
444
  * Generated bundle index. Do not edit.
403
445
  */
404
446
 
405
- export { RANGE_STREAM_FACTORY, TuiInputDateRangeComponent, TuiInputDateRangeModule };
447
+ export { RANGE_STREAM_FACTORY, TUI_INPUT_DATE_RANGE_PROVIDERS, TuiInputDateRangeComponent, TuiInputDateRangeDirective, TuiInputDateRangeModule };
406
448
  //# sourceMappingURL=taiga-ui-kit-components-input-date-range.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-kit-components-input-date-range.js","sources":["ng://@taiga-ui/kit/components/input-date-range/input-date-range.component.ts","ng://@taiga-ui/kit/components/input-date-range/input-date-range.module.ts","ng://@taiga-ui/kit/components/input-date-range/taiga-ui-kit-components-input-date-range.ts"],"sourcesContent":["import {\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 changeDateSeparator,\n DATE_FILLER_LENGTH,\n DATE_RANGE_FILLER_LENGTH,\n nullableSame,\n RANGE_SEPARATOR_CHAR,\n setNativeFocused,\n TUI_DATE_FORMAT,\n TUI_DATE_SEPARATOR,\n TUI_FIRST_DAY,\n TUI_FOCUSABLE_ITEM_ACCESSOR,\n TUI_IS_MOBILE,\n TUI_LAST_DAY,\n TuiBooleanHandler,\n TuiControlValueTransformer,\n TuiDateMode,\n TuiDay,\n TuiDayLike,\n TuiDayRange,\n tuiDefaultProp,\n TuiFocusableElementAccessor,\n TuiMapper,\n TuiMonth,\n} from '@taiga-ui/cdk';\nimport {\n sizeBigger,\n TUI_DEFAULT_MARKER_HANDLER,\n TUI_TEXTFIELD_EXAMPLE_TEXT,\n TUI_TEXTFIELD_SIZE,\n TuiDialogService,\n TuiMarkerHandler,\n TuiPrimitiveTextfieldComponent,\n TuiTextfieldExampleTextDirective,\n TuiTextfieldSizeDirective,\n TuiTextMaskOptions,\n TuiWithOptionalMinMax,\n} from '@taiga-ui/core';\nimport {TuiDayRangePeriod} from '@taiga-ui/kit/classes';\nimport {EMPTY_MASK, MAX_DAY_RANGE_LENGTH_MAPPER} 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_RANGE_VALUE_TRANSFORMER,\n TUI_DATE_TEXTS,\n TUI_MOBILE_CALENDAR,\n} from '@taiga-ui/kit/tokens';\nimport {\n tuiCreateAutoCorrectedDateRangePipe,\n tuiCreateDateRangeMask,\n} 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 {map, takeUntil} from 'rxjs/operators';\n\n// TODO: remove in ivy compilation\nexport const RANGE_STREAM_FACTORY = (\n control: NgControl | null,\n valueTransformer: TuiControlValueTransformer<TuiDayRange>,\n) => TuiReplayControlValueChangesFactory(control, valueTransformer);\n\n// @dynamic\n@Component({\n selector: 'tui-input-date-range',\n templateUrl: './input-date-range.template.html',\n styleUrls: ['./input-date-range.style.less'],\n providers: [\n {\n provide: TUI_FOCUSABLE_ITEM_ACCESSOR,\n useExisting: forwardRef(() => TuiInputDateRangeComponent),\n },\n {\n provide: TUI_CALENDAR_DATA_STREAM,\n deps: [\n [new Optional(), new Self(), NgControl],\n [new Optional(), forwardRef(() => TUI_DATE_RANGE_VALUE_TRANSFORMER)],\n ],\n useFactory: RANGE_STREAM_FACTORY,\n },\n LEFT_ALIGNED_DROPDOWN_CONTROLLER_PROVIDER,\n ],\n})\nexport class TuiInputDateRangeComponent\n extends AbstractTuiNullableControl<TuiDayRange>\n implements TuiWithOptionalMinMax<TuiDay>, TuiFocusableElementAccessor\n{\n @ViewChild(TuiPrimitiveTextfieldComponent)\n private readonly textfield?: TuiPrimitiveTextfieldComponent;\n\n private readonly textMaskOptions: TuiTextMaskOptions = {\n mask: tuiCreateDateRangeMask(this.dateFormat, this.dateSeparator),\n pipe: tuiCreateAutoCorrectedDateRangePipe(this),\n guide: false,\n };\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 defaultViewedMonth = TuiMonth.currentLocal();\n\n @Input()\n @tuiDefaultProp()\n items: ReadonlyArray<TuiDayRangePeriod> = [];\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 minLength: TuiDayLike | null = null;\n\n @Input()\n @tuiDefaultProp()\n maxLength: TuiDayLike | null = null;\n\n open = false;\n\n readonly maxLengthMapper: TuiMapper<TuiDay, TuiDay> = MAX_DAY_RANGE_LENGTH_MAPPER;\n readonly dateFiller$ = this.dateTexts$.pipe(\n map(dateTexts =>\n changeDateSeparator(dateTexts[this.dateFormat], this.dateSeparator),\n ),\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_TEXTFIELD_EXAMPLE_TEXT)\n private readonly textfieldExampleText: TuiTextfieldExampleTextDirective,\n @Inject(TUI_DATE_FORMAT) readonly dateFormat: TuiDateMode,\n @Inject(TUI_DATE_SEPARATOR) readonly dateSeparator: string,\n @Inject(TUI_DATE_TEXTS)\n readonly dateTexts$: Observable<Record<TuiDateMode, string>>,\n @Optional()\n @Inject(TUI_DATE_RANGE_VALUE_TRANSFORMER)\n readonly valueTransformer: TuiControlValueTransformer<TuiDayRange | null> | null,\n ) {\n super(control, changeDetectorRef, valueTransformer);\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 canOpen(): boolean {\n return this.interactive && !this.computedMobile;\n }\n\n get computedExampleText(): string {\n return this.items.length ? this.textfieldExampleText.exampleText : '';\n }\n\n get computedMask(): TuiTextMaskOptions {\n return this.activePeriod ? EMPTY_MASK : this.textMaskOptions;\n }\n\n get activePeriod(): TuiDayRangePeriod | null {\n return (\n this.items.find(item =>\n nullableSame(\n this.value,\n item.range,\n (a, b) =>\n a.from.daySame(b.from.dayLimit(this.min, this.max)) &&\n a.to.daySame(b.to.dayLimit(this.min, this.max)),\n ),\n ) || null\n );\n }\n\n get computedValue(): string {\n const {value, nativeValue, activePeriod} = this;\n\n if (activePeriod) {\n return String(activePeriod);\n }\n\n return value\n ? value.getFormattedDayRange(this.dateFormat, this.dateSeparator)\n : nativeValue;\n }\n\n get innerPseudoFocused(): boolean | null {\n if (this.pseudoFocused === false) {\n return false;\n }\n\n if (this.open || this.computedFocused) {\n return true;\n }\n\n return null;\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 @HostListener('click')\n onClick() {\n if (!this.isMobile) {\n this.toggle();\n }\n }\n\n getComputedRangeFiller(dateFiller: string): string {\n return this.activePeriod ? '' : this.getDateRangeFiller(dateFiller);\n }\n\n onMobileClick() {\n if (!this.mobileCalendar) {\n this.toggle();\n\n return;\n }\n\n this.dialogService\n .open<TuiDayRange>(\n new PolymorpheusComponent(this.mobileCalendar, this.injector),\n {\n size: 'fullscreen',\n closeable: false,\n data: {\n single: false,\n min: this.maxLengthMapper(\n this.min,\n this.value,\n this.maxLength,\n true,\n ),\n max: this.maxLengthMapper(\n this.max,\n this.value,\n this.maxLength,\n false,\n ),\n disabledItemHandler: this.disabledItemHandler,\n },\n },\n )\n .pipe(takeUntil(this.destroy$))\n .subscribe(value => {\n this.updateValue(value);\n });\n }\n\n onOpenChange(open: boolean) {\n this.open = open;\n }\n\n onValueChange(value: string) {\n if (this.control) {\n this.control.updateValueAndValidity({emitEvent: false});\n }\n\n if (!value) {\n this.onOpenChange(true);\n }\n\n if (value.length !== DATE_RANGE_FILLER_LENGTH) {\n this.updateValue(null);\n\n return;\n }\n\n const parsedValue = TuiDayRange.normalizeParse(value, this.dateFormat);\n\n this.updateValue(\n !this.minLength && !this.maxLength\n ? parsedValue\n : this.clampValue(parsedValue),\n );\n }\n\n onRangeChange(range: TuiDayRange | null) {\n this.toggle();\n this.focusInput();\n\n if (!range) {\n this.nativeValue = '';\n }\n\n if (!nullableSame<TuiDayRange>(this.value, range, (a, b) => a.daySame(b))) {\n this.updateValue(range);\n }\n }\n\n onItemSelect(item: string | TuiDayRangePeriod) {\n this.toggle();\n this.focusInput();\n\n if (typeof item !== 'string') {\n this.updateValue(item.range.dayLimit(this.min, this.max));\n\n return;\n }\n\n if (this.activePeriod !== null) {\n this.updateValue(null);\n this.nativeValue = '';\n }\n }\n\n onHovered(hovered: boolean) {\n this.updateHovered(hovered);\n }\n\n onPressed(pressed: boolean) {\n this.updatePressed(pressed);\n }\n\n onActiveZone(focused: boolean) {\n this.updateFocused(focused);\n\n if (\n !focused &&\n !this.itemSelected &&\n (this.nativeValue.length === DATE_FILLER_LENGTH ||\n this.nativeValue.length ===\n DATE_FILLER_LENGTH + RANGE_SEPARATOR_CHAR.length)\n ) {\n this.updateValue(\n TuiDayRange.normalizeParse(this.nativeValue, this.dateFormat),\n );\n }\n }\n\n writeValue(value: TuiDayRange | null) {\n super.writeValue(value);\n this.nativeValue = value ? this.computedValue : '';\n }\n\n private get itemSelected(): boolean {\n return this.items.findIndex(item => String(item) === this.nativeValue) !== -1;\n }\n\n private toggle() {\n this.open = !this.open;\n }\n\n private focusInput(preventScroll: boolean = false) {\n if (this.nativeFocusableElement) {\n setNativeFocused(this.nativeFocusableElement, true, preventScroll);\n }\n }\n\n private clampValue(value: TuiDayRange): TuiDayRange {\n const clampedBottom =\n this.minLength && value.from.append(this.minLength).dayAfter(value.to)\n ? new TuiDayRange(\n value.from,\n value.from.append(this.minLength).append({day: -1}),\n )\n : value;\n\n const availableMax = this.maxLength\n ? clampedBottom.from.append(this.maxLength).append({day: -1})\n : this.max;\n\n return clampedBottom.to.dayAfter(availableMax)\n ? new TuiDayRange(clampedBottom.from, availableMax)\n : clampedBottom;\n }\n\n private getDateRangeFiller(dateFiller: string): string {\n return `${dateFiller}${RANGE_SEPARATOR_CHAR}${dateFiller}`;\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {TuiActiveZoneModule, TuiLetModule} from '@taiga-ui/cdk';\nimport {\n TuiHostedDropdownModule,\n TuiPrimitiveTextfieldModule,\n TuiSvgModule,\n TuiTextfieldControllerModule,\n} from '@taiga-ui/core';\nimport {TuiCalendarRangeModule} from '@taiga-ui/kit/components/calendar-range';\nimport {TuiValueAccessorModule} from '@taiga-ui/kit/directives';\nimport {PolymorpheusModule} from '@tinkoff/ng-polymorpheus';\nimport {TextMaskModule} from 'angular2-text-mask';\n\nimport {TuiInputDateRangeComponent} from './input-date-range.component';\n\n@NgModule({\n imports: [\n CommonModule,\n TextMaskModule,\n TuiActiveZoneModule,\n TuiLetModule,\n PolymorpheusModule,\n TuiPrimitiveTextfieldModule,\n TuiTextfieldControllerModule,\n TuiHostedDropdownModule,\n TuiSvgModule,\n TuiCalendarRangeModule,\n TuiValueAccessorModule,\n ],\n declarations: [TuiInputDateRangeComponent],\n exports: [TuiInputDateRangeComponent],\n})\nexport class TuiInputDateRangeModule {}\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-range.js","sources":["ng://@taiga-ui/kit/components/input-date-range/input-date-range.providers.ts","ng://@taiga-ui/kit/components/input-date-range/input-date-range.component.ts","ng://@taiga-ui/kit/components/input-date-range/input-date-range.directive.ts","ng://@taiga-ui/kit/components/input-date-range/input-date-range.module.ts","ng://@taiga-ui/kit/components/input-date-range/taiga-ui-kit-components-input-date-range.ts"],"sourcesContent":["import {forwardRef, Optional, Self} from '@angular/core';\nimport {NgControl} from '@angular/forms';\nimport {\n AbstractTuiControl,\n TUI_FOCUSABLE_ITEM_ACCESSOR,\n TuiControlValueTransformer,\n TuiDayRange,\n} from '@taiga-ui/cdk';\nimport {LEFT_ALIGNED_DROPDOWN_CONTROLLER_PROVIDER} from '@taiga-ui/kit/providers';\nimport {\n TUI_CALENDAR_DATA_STREAM,\n TUI_DATE_RANGE_VALUE_TRANSFORMER,\n} from '@taiga-ui/kit/tokens';\nimport {TuiReplayControlValueChangesFactory} from '@taiga-ui/kit/utils/miscellaneous';\n\nimport {TuiInputDateRangeComponent} from './input-date-range.component';\n\n// TODO: remove in ivy compilation\nexport const RANGE_STREAM_FACTORY = (\n control: NgControl | null,\n valueTransformer: TuiControlValueTransformer<TuiDayRange>,\n) => TuiReplayControlValueChangesFactory(control, valueTransformer);\n\nexport const TUI_INPUT_DATE_RANGE_PROVIDERS = [\n {\n provide: AbstractTuiControl,\n useExisting: forwardRef(() => TuiInputDateRangeComponent),\n },\n {\n provide: TUI_FOCUSABLE_ITEM_ACCESSOR,\n useExisting: forwardRef(() => TuiInputDateRangeComponent),\n },\n {\n provide: TUI_CALENDAR_DATA_STREAM,\n deps: [\n [new Optional(), new Self(), NgControl],\n [new Optional(), forwardRef(() => TUI_DATE_RANGE_VALUE_TRANSFORMER)],\n ],\n useFactory: RANGE_STREAM_FACTORY,\n },\n LEFT_ALIGNED_DROPDOWN_CONTROLLER_PROVIDER,\n];\n","import {\n ChangeDetectorRef,\n Component,\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 changeDateSeparator,\n DATE_FILLER_LENGTH,\n DATE_RANGE_FILLER_LENGTH,\n nullableSame,\n RANGE_SEPARATOR_CHAR,\n setNativeFocused,\n TUI_DATE_FORMAT,\n TUI_DATE_SEPARATOR,\n TUI_FIRST_DAY,\n TUI_IS_MOBILE,\n TUI_LAST_DAY,\n TuiBooleanHandler,\n TuiControlValueTransformer,\n TuiDateMode,\n TuiDay,\n TuiDayLike,\n TuiDayRange,\n tuiDefaultProp,\n TuiFocusableElementAccessor,\n TuiMapper,\n TuiMonth,\n} from '@taiga-ui/cdk';\nimport {\n sizeBigger,\n TUI_DEFAULT_MARKER_HANDLER,\n TUI_TEXTFIELD_EXAMPLE_TEXT,\n TUI_TEXTFIELD_SIZE,\n TuiDialogService,\n TuiMarkerHandler,\n TuiPrimitiveTextfieldComponent,\n TuiTextfieldExampleTextDirective,\n TuiTextfieldSizeDirective,\n TuiTextMaskOptions,\n TuiWithOptionalMinMax,\n} from '@taiga-ui/core';\nimport {TuiDayRangePeriod} from '@taiga-ui/kit/classes';\nimport {EMPTY_MASK, MAX_DAY_RANGE_LENGTH_MAPPER} from '@taiga-ui/kit/constants';\nimport {\n TUI_DATE_RANGE_VALUE_TRANSFORMER,\n TUI_DATE_TEXTS,\n TUI_MOBILE_CALENDAR,\n} from '@taiga-ui/kit/tokens';\nimport {\n tuiCreateAutoCorrectedDateRangePipe,\n tuiCreateDateRangeMask,\n} from '@taiga-ui/kit/utils/mask';\nimport {PolymorpheusComponent} from '@tinkoff/ng-polymorpheus';\nimport {Observable} from 'rxjs';\nimport {map, takeUntil} from 'rxjs/operators';\n\nimport {TUI_INPUT_DATE_RANGE_PROVIDERS} from './input-date-range.providers';\n\n// @dynamic\n@Component({\n selector: 'tui-input-date-range',\n templateUrl: './input-date-range.template.html',\n styleUrls: ['./input-date-range.style.less'],\n providers: TUI_INPUT_DATE_RANGE_PROVIDERS,\n})\nexport class TuiInputDateRangeComponent\n extends AbstractTuiNullableControl<TuiDayRange>\n implements TuiWithOptionalMinMax<TuiDay>, TuiFocusableElementAccessor\n{\n @ViewChild(TuiPrimitiveTextfieldComponent)\n private readonly textfield?: TuiPrimitiveTextfieldComponent;\n\n private readonly textMaskOptions: TuiTextMaskOptions = {\n mask: tuiCreateDateRangeMask(this.dateFormat, this.dateSeparator),\n pipe: tuiCreateAutoCorrectedDateRangePipe(this),\n guide: false,\n };\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 defaultViewedMonth = TuiMonth.currentLocal();\n\n @Input()\n @tuiDefaultProp()\n items: ReadonlyArray<TuiDayRangePeriod> = [];\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 minLength: TuiDayLike | null = null;\n\n @Input()\n @tuiDefaultProp()\n maxLength: TuiDayLike | null = null;\n\n open = false;\n\n readonly maxLengthMapper: TuiMapper<TuiDay, TuiDay> = MAX_DAY_RANGE_LENGTH_MAPPER;\n readonly dateFiller$ = this.dateTexts$.pipe(\n map(dateTexts =>\n changeDateSeparator(dateTexts[this.dateFormat], this.dateSeparator),\n ),\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_TEXTFIELD_EXAMPLE_TEXT)\n private readonly textfieldExampleText: TuiTextfieldExampleTextDirective,\n @Inject(TUI_DATE_FORMAT) readonly dateFormat: TuiDateMode,\n @Inject(TUI_DATE_SEPARATOR) readonly dateSeparator: string,\n @Inject(TUI_DATE_TEXTS)\n readonly dateTexts$: Observable<Record<TuiDateMode, string>>,\n @Optional()\n @Inject(TUI_DATE_RANGE_VALUE_TRANSFORMER)\n readonly valueTransformer: TuiControlValueTransformer<TuiDayRange | null> | null,\n ) {\n super(control, changeDetectorRef, valueTransformer);\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 canOpen(): boolean {\n return this.interactive && !this.computedMobile;\n }\n\n get computedExampleText(): string {\n return this.items.length ? this.textfieldExampleText.exampleText : '';\n }\n\n get computedMask(): TuiTextMaskOptions {\n return this.activePeriod ? EMPTY_MASK : this.textMaskOptions;\n }\n\n get activePeriod(): TuiDayRangePeriod | null {\n return (\n this.items.find(item =>\n nullableSame(\n this.value,\n item.range,\n (a, b) =>\n a.from.daySame(b.from.dayLimit(this.min, this.max)) &&\n a.to.daySame(b.to.dayLimit(this.min, this.max)),\n ),\n ) || null\n );\n }\n\n get computedValue(): string {\n const {value, nativeValue, activePeriod} = this;\n\n if (activePeriod) {\n return String(activePeriod);\n }\n\n return value\n ? value.getFormattedDayRange(this.dateFormat, this.dateSeparator)\n : nativeValue;\n }\n\n get innerPseudoFocused(): boolean | null {\n if (this.pseudoFocused === false) {\n return false;\n }\n\n if (this.open || this.computedFocused) {\n return true;\n }\n\n return null;\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 @HostListener('click')\n onClick() {\n if (!this.isMobile) {\n this.toggle();\n }\n }\n\n getComputedRangeFiller(dateFiller: string): string {\n return this.activePeriod ? '' : this.getDateRangeFiller(dateFiller);\n }\n\n onMobileClick() {\n if (!this.mobileCalendar) {\n this.toggle();\n\n return;\n }\n\n this.dialogService\n .open<TuiDayRange>(\n new PolymorpheusComponent(this.mobileCalendar, this.injector),\n {\n size: 'fullscreen',\n closeable: false,\n data: {\n single: false,\n min: this.maxLengthMapper(\n this.min,\n this.value,\n this.maxLength,\n true,\n ),\n max: this.maxLengthMapper(\n this.max,\n this.value,\n this.maxLength,\n false,\n ),\n disabledItemHandler: this.disabledItemHandler,\n },\n },\n )\n .pipe(takeUntil(this.destroy$))\n .subscribe(value => {\n this.updateValue(value);\n });\n }\n\n onOpenChange(open: boolean) {\n this.open = open;\n }\n\n onValueChange(value: string) {\n if (this.control) {\n this.control.updateValueAndValidity({emitEvent: false});\n }\n\n if (!value) {\n this.onOpenChange(true);\n }\n\n if (value.length !== DATE_RANGE_FILLER_LENGTH) {\n this.updateValue(null);\n\n return;\n }\n\n const parsedValue = TuiDayRange.normalizeParse(value, this.dateFormat);\n\n this.updateValue(\n !this.minLength && !this.maxLength\n ? parsedValue\n : this.clampValue(parsedValue),\n );\n }\n\n onRangeChange(range: TuiDayRange | null) {\n this.toggle();\n this.focusInput();\n\n if (!range) {\n this.nativeValue = '';\n }\n\n if (!nullableSame<TuiDayRange>(this.value, range, (a, b) => a.daySame(b))) {\n this.updateValue(range);\n }\n }\n\n onItemSelect(item: string | TuiDayRangePeriod) {\n this.toggle();\n this.focusInput();\n\n if (typeof item !== 'string') {\n this.updateValue(item.range.dayLimit(this.min, this.max));\n\n return;\n }\n\n if (this.activePeriod !== null) {\n this.updateValue(null);\n this.nativeValue = '';\n }\n }\n\n onHovered(hovered: boolean) {\n this.updateHovered(hovered);\n }\n\n onPressed(pressed: boolean) {\n this.updatePressed(pressed);\n }\n\n onActiveZone(focused: boolean) {\n this.updateFocused(focused);\n\n if (\n !focused &&\n !this.itemSelected &&\n (this.nativeValue.length === DATE_FILLER_LENGTH ||\n this.nativeValue.length ===\n DATE_FILLER_LENGTH + RANGE_SEPARATOR_CHAR.length)\n ) {\n this.updateValue(\n TuiDayRange.normalizeParse(this.nativeValue, this.dateFormat),\n );\n }\n }\n\n writeValue(value: TuiDayRange | null) {\n super.writeValue(value);\n this.nativeValue = value ? this.computedValue : '';\n }\n\n private get itemSelected(): boolean {\n return this.items.findIndex(item => String(item) === this.nativeValue) !== -1;\n }\n\n private toggle() {\n this.open = !this.open;\n }\n\n private focusInput(preventScroll: boolean = false) {\n if (this.nativeFocusableElement) {\n setNativeFocused(this.nativeFocusableElement, true, preventScroll);\n }\n }\n\n private clampValue(value: TuiDayRange): TuiDayRange {\n const clampedBottom =\n this.minLength && value.from.append(this.minLength).dayAfter(value.to)\n ? new TuiDayRange(\n value.from,\n value.from.append(this.minLength).append({day: -1}),\n )\n : value;\n\n const availableMax = this.maxLength\n ? clampedBottom.from.append(this.maxLength).append({day: -1})\n : this.max;\n\n return clampedBottom.to.dayAfter(availableMax)\n ? new TuiDayRange(clampedBottom.from, availableMax)\n : clampedBottom;\n }\n\n private getDateRangeFiller(dateFiller: string): string {\n return `${dateFiller}${RANGE_SEPARATOR_CHAR}${dateFiller}`;\n }\n}\n","import {Directive, forwardRef} from '@angular/core';\nimport {TUI_TEXTFIELD_HOST, TuiAbstractTextfieldHost} from '@taiga-ui/core';\n\nimport {TuiInputDateRangeComponent} from './input-date-range.component';\n\n@Directive({\n selector: 'tui-input-date-range',\n providers: [\n {\n provide: TUI_TEXTFIELD_HOST,\n useExisting: forwardRef(() => TuiInputDateRangeDirective),\n },\n ],\n})\nexport class TuiInputDateRangeDirective extends TuiAbstractTextfieldHost<TuiInputDateRangeComponent> {\n get value(): string {\n return this.host.computedValue;\n }\n\n onValueChange(value: string) {\n this.host.onValueChange(value);\n }\n\n process(input: HTMLInputElement) {\n input.inputMode = 'numeric';\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {TuiActiveZoneModule, TuiLetModule} from '@taiga-ui/cdk';\nimport {\n TuiHostedDropdownModule,\n TuiPrimitiveTextfieldModule,\n TuiSvgModule,\n TuiTextfieldComponent,\n TuiTextfieldControllerModule,\n} from '@taiga-ui/core';\nimport {TuiCalendarRangeModule} from '@taiga-ui/kit/components/calendar-range';\nimport {TuiValueAccessorModule} from '@taiga-ui/kit/directives';\nimport {PolymorpheusModule} from '@tinkoff/ng-polymorpheus';\nimport {TextMaskModule} from 'angular2-text-mask';\n\nimport {TuiInputDateRangeComponent} from './input-date-range.component';\nimport {TuiInputDateRangeDirective} from './input-date-range.directive';\n\n@NgModule({\n imports: [\n CommonModule,\n TextMaskModule,\n TuiActiveZoneModule,\n TuiLetModule,\n PolymorpheusModule,\n TuiPrimitiveTextfieldModule,\n TuiTextfieldControllerModule,\n TuiHostedDropdownModule,\n TuiSvgModule,\n TuiCalendarRangeModule,\n TuiValueAccessorModule,\n ],\n declarations: [TuiInputDateRangeComponent, TuiInputDateRangeDirective],\n exports: [\n TuiInputDateRangeComponent,\n TuiInputDateRangeDirective,\n TuiTextfieldComponent,\n ],\n})\nexport class TuiInputDateRangeModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}