@taiga-ui/kit 2.27.1 → 2.31.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 (475) hide show
  1. package/README.md +4 -5
  2. package/abstract/slider/slider.d.ts +1 -1
  3. package/abstract/taiga-ui-kit-abstract.metadata.json +1 -1
  4. package/bundles/taiga-ui-kit-abstract.umd.js +6 -5
  5. package/bundles/taiga-ui-kit-abstract.umd.js.map +1 -1
  6. package/bundles/taiga-ui-kit-abstract.umd.min.js +2 -2
  7. package/bundles/taiga-ui-kit-abstract.umd.min.js.map +1 -1
  8. package/bundles/taiga-ui-kit-components-arrow.umd.js +1 -1
  9. package/bundles/taiga-ui-kit-components-arrow.umd.min.js +1 -1
  10. package/bundles/taiga-ui-kit-components-arrow.umd.min.js.map +1 -1
  11. package/bundles/taiga-ui-kit-components-calendar-month.umd.js +4 -1
  12. package/bundles/taiga-ui-kit-components-calendar-month.umd.js.map +1 -1
  13. package/bundles/taiga-ui-kit-components-calendar-month.umd.min.js +2 -2
  14. package/bundles/taiga-ui-kit-components-calendar-month.umd.min.js.map +1 -1
  15. package/bundles/taiga-ui-kit-components-carousel.umd.js +4 -3
  16. package/bundles/taiga-ui-kit-components-carousel.umd.js.map +1 -1
  17. package/bundles/taiga-ui-kit-components-carousel.umd.min.js +1 -1
  18. package/bundles/taiga-ui-kit-components-carousel.umd.min.js.map +1 -1
  19. package/bundles/taiga-ui-kit-components-checkbox-block.umd.js.map +1 -1
  20. package/bundles/taiga-ui-kit-components-checkbox-block.umd.min.js.map +1 -1
  21. package/bundles/taiga-ui-kit-components-checkbox-labeled.umd.js.map +1 -1
  22. package/bundles/taiga-ui-kit-components-checkbox-labeled.umd.min.js.map +1 -1
  23. package/bundles/taiga-ui-kit-components-checkbox.umd.js +1 -1
  24. package/bundles/taiga-ui-kit-components-checkbox.umd.js.map +1 -1
  25. package/bundles/taiga-ui-kit-components-checkbox.umd.min.js +1 -1
  26. package/bundles/taiga-ui-kit-components-checkbox.umd.min.js.map +1 -1
  27. package/bundles/taiga-ui-kit-components-combo-box.umd.js +3 -10
  28. package/bundles/taiga-ui-kit-components-combo-box.umd.js.map +1 -1
  29. package/bundles/taiga-ui-kit-components-combo-box.umd.min.js +1 -1
  30. package/bundles/taiga-ui-kit-components-combo-box.umd.min.js.map +1 -1
  31. package/bundles/taiga-ui-kit-components-field-error.umd.js +20 -8
  32. package/bundles/taiga-ui-kit-components-field-error.umd.js.map +1 -1
  33. package/bundles/taiga-ui-kit-components-field-error.umd.min.js +2 -2
  34. package/bundles/taiga-ui-kit-components-field-error.umd.min.js.map +1 -1
  35. package/bundles/taiga-ui-kit-components-input-count.umd.js +2 -6
  36. package/bundles/taiga-ui-kit-components-input-count.umd.js.map +1 -1
  37. package/bundles/taiga-ui-kit-components-input-count.umd.min.js +1 -1
  38. package/bundles/taiga-ui-kit-components-input-count.umd.min.js.map +1 -1
  39. package/bundles/taiga-ui-kit-components-input-date-range.umd.js +28 -13
  40. package/bundles/taiga-ui-kit-components-input-date-range.umd.js.map +1 -1
  41. package/bundles/taiga-ui-kit-components-input-date-range.umd.min.js +1 -1
  42. package/bundles/taiga-ui-kit-components-input-date-range.umd.min.js.map +1 -1
  43. package/bundles/taiga-ui-kit-components-input-date-time.umd.js +40 -23
  44. package/bundles/taiga-ui-kit-components-input-date-time.umd.js.map +1 -1
  45. package/bundles/taiga-ui-kit-components-input-date-time.umd.min.js +2 -2
  46. package/bundles/taiga-ui-kit-components-input-date-time.umd.min.js.map +1 -1
  47. package/bundles/taiga-ui-kit-components-input-date.umd.js +27 -12
  48. package/bundles/taiga-ui-kit-components-input-date.umd.js.map +1 -1
  49. package/bundles/taiga-ui-kit-components-input-date.umd.min.js +2 -2
  50. package/bundles/taiga-ui-kit-components-input-date.umd.min.js.map +1 -1
  51. package/bundles/taiga-ui-kit-components-input-file.umd.js +1 -8
  52. package/bundles/taiga-ui-kit-components-input-file.umd.js.map +1 -1
  53. package/bundles/taiga-ui-kit-components-input-file.umd.min.js +1 -1
  54. package/bundles/taiga-ui-kit-components-input-file.umd.min.js.map +1 -1
  55. package/bundles/taiga-ui-kit-components-input-inline.umd.js +2 -2
  56. package/bundles/taiga-ui-kit-components-input-inline.umd.js.map +1 -1
  57. package/bundles/taiga-ui-kit-components-input-inline.umd.min.js +1 -1
  58. package/bundles/taiga-ui-kit-components-input-inline.umd.min.js.map +1 -1
  59. package/bundles/taiga-ui-kit-components-input-month-range.umd.js +1 -8
  60. package/bundles/taiga-ui-kit-components-input-month-range.umd.js.map +1 -1
  61. package/bundles/taiga-ui-kit-components-input-month-range.umd.min.js +1 -1
  62. package/bundles/taiga-ui-kit-components-input-month-range.umd.min.js.map +1 -1
  63. package/bundles/taiga-ui-kit-components-input-month.umd.js +1 -8
  64. package/bundles/taiga-ui-kit-components-input-month.umd.js.map +1 -1
  65. package/bundles/taiga-ui-kit-components-input-month.umd.min.js +1 -1
  66. package/bundles/taiga-ui-kit-components-input-month.umd.min.js.map +1 -1
  67. package/bundles/taiga-ui-kit-components-input-number.umd.js +12 -12
  68. package/bundles/taiga-ui-kit-components-input-number.umd.js.map +1 -1
  69. package/bundles/taiga-ui-kit-components-input-number.umd.min.js +1 -1
  70. package/bundles/taiga-ui-kit-components-input-number.umd.min.js.map +1 -1
  71. package/bundles/taiga-ui-kit-components-input-password.umd.js +2 -9
  72. package/bundles/taiga-ui-kit-components-input-password.umd.js.map +1 -1
  73. package/bundles/taiga-ui-kit-components-input-password.umd.min.js +1 -1
  74. package/bundles/taiga-ui-kit-components-input-password.umd.min.js.map +1 -1
  75. package/bundles/taiga-ui-kit-components-input-phone-international.umd.js +46 -25
  76. package/bundles/taiga-ui-kit-components-input-phone-international.umd.js.map +1 -1
  77. package/bundles/taiga-ui-kit-components-input-phone-international.umd.min.js +1 -1
  78. package/bundles/taiga-ui-kit-components-input-phone-international.umd.min.js.map +1 -1
  79. package/bundles/taiga-ui-kit-components-input-phone.umd.js +3 -3
  80. package/bundles/taiga-ui-kit-components-input-phone.umd.js.map +1 -1
  81. package/bundles/taiga-ui-kit-components-input-phone.umd.min.js +1 -1
  82. package/bundles/taiga-ui-kit-components-input-phone.umd.min.js.map +1 -1
  83. package/bundles/taiga-ui-kit-components-input-tag.umd.js +3 -3
  84. package/bundles/taiga-ui-kit-components-input-tag.umd.js.map +1 -1
  85. package/bundles/taiga-ui-kit-components-input-tag.umd.min.js +1 -1
  86. package/bundles/taiga-ui-kit-components-input-tag.umd.min.js.map +1 -1
  87. package/bundles/taiga-ui-kit-components-input-time.umd.js +0 -7
  88. package/bundles/taiga-ui-kit-components-input-time.umd.js.map +1 -1
  89. package/bundles/taiga-ui-kit-components-input-time.umd.min.js +1 -1
  90. package/bundles/taiga-ui-kit-components-input-time.umd.min.js.map +1 -1
  91. package/bundles/taiga-ui-kit-components-input.umd.js +1 -1
  92. package/bundles/taiga-ui-kit-components-input.umd.js.map +1 -1
  93. package/bundles/taiga-ui-kit-components-input.umd.min.js +1 -1
  94. package/bundles/taiga-ui-kit-components-input.umd.min.js.map +1 -1
  95. package/bundles/taiga-ui-kit-components-multi-select.umd.js +1 -8
  96. package/bundles/taiga-ui-kit-components-multi-select.umd.js.map +1 -1
  97. package/bundles/taiga-ui-kit-components-multi-select.umd.min.js +1 -1
  98. package/bundles/taiga-ui-kit-components-multi-select.umd.min.js.map +1 -1
  99. package/bundles/taiga-ui-kit-components-progress.umd.js.map +1 -1
  100. package/bundles/taiga-ui-kit-components-progress.umd.min.js.map +1 -1
  101. package/bundles/taiga-ui-kit-components-rating.umd.js +368 -0
  102. package/bundles/taiga-ui-kit-components-rating.umd.js.map +1 -0
  103. package/bundles/taiga-ui-kit-components-rating.umd.min.js +16 -0
  104. package/bundles/taiga-ui-kit-components-rating.umd.min.js.map +1 -0
  105. package/bundles/taiga-ui-kit-components-select.umd.js +3 -10
  106. package/bundles/taiga-ui-kit-components-select.umd.js.map +1 -1
  107. package/bundles/taiga-ui-kit-components-select.umd.min.js +1 -1
  108. package/bundles/taiga-ui-kit-components-select.umd.min.js.map +1 -1
  109. package/bundles/taiga-ui-kit-components-tag.umd.js.map +1 -1
  110. package/bundles/taiga-ui-kit-components-tag.umd.min.js.map +1 -1
  111. package/bundles/taiga-ui-kit-components-text-area.umd.js +2 -2
  112. package/bundles/taiga-ui-kit-components-text-area.umd.js.map +1 -1
  113. package/bundles/taiga-ui-kit-components-text-area.umd.min.js +1 -1
  114. package/bundles/taiga-ui-kit-components-text-area.umd.min.js.map +1 -1
  115. package/bundles/taiga-ui-kit-components-toggle.umd.js.map +1 -1
  116. package/bundles/taiga-ui-kit-components-toggle.umd.min.js.map +1 -1
  117. package/bundles/taiga-ui-kit-components-tree.umd.js +23 -13
  118. package/bundles/taiga-ui-kit-components-tree.umd.js.map +1 -1
  119. package/bundles/taiga-ui-kit-components-tree.umd.min.js +2 -2
  120. package/bundles/taiga-ui-kit-components-tree.umd.min.js.map +1 -1
  121. package/bundles/taiga-ui-kit-components.umd.js +12 -4
  122. package/bundles/taiga-ui-kit-components.umd.js.map +1 -1
  123. package/bundles/taiga-ui-kit-components.umd.min.js +1 -1
  124. package/bundles/taiga-ui-kit-constants.umd.js +8 -0
  125. package/bundles/taiga-ui-kit-constants.umd.js.map +1 -1
  126. package/bundles/taiga-ui-kit-constants.umd.min.js.map +1 -1
  127. package/bundles/taiga-ui-kit-directives-lazy-loading.umd.js.map +1 -1
  128. package/bundles/taiga-ui-kit-directives-lazy-loading.umd.min.js.map +1 -1
  129. package/bundles/taiga-ui-kit-pipes-stringify.umd.js.map +1 -1
  130. package/bundles/taiga-ui-kit-pipes-stringify.umd.min.js.map +1 -1
  131. package/bundles/taiga-ui-kit-tokens.umd.js +7 -0
  132. package/bundles/taiga-ui-kit-tokens.umd.js.map +1 -1
  133. package/bundles/taiga-ui-kit-tokens.umd.min.js +1 -1
  134. package/bundles/taiga-ui-kit-tokens.umd.min.js.map +1 -1
  135. package/bundles/taiga-ui-kit-utils-mask.umd.js +44 -13
  136. package/bundles/taiga-ui-kit-utils-mask.umd.js.map +1 -1
  137. package/bundles/taiga-ui-kit-utils-mask.umd.min.js +2 -2
  138. package/bundles/taiga-ui-kit-utils-mask.umd.min.js.map +1 -1
  139. package/bundles/taiga-ui-kit-utils-miscellaneous.umd.js +241 -6
  140. package/bundles/taiga-ui-kit-utils-miscellaneous.umd.js.map +1 -1
  141. package/bundles/taiga-ui-kit-utils-miscellaneous.umd.min.js +15 -1
  142. package/bundles/taiga-ui-kit-utils-miscellaneous.umd.min.js.map +1 -1
  143. package/components/arrow/taiga-ui-kit-components-arrow.metadata.json +1 -1
  144. package/components/calendar-month/taiga-ui-kit-components-calendar-month.metadata.json +1 -1
  145. package/components/carousel/taiga-ui-kit-components-carousel.metadata.json +1 -1
  146. package/components/checkbox-block/checkbox-block.component.d.ts +1 -1
  147. package/components/checkbox-labeled/checkbox-labeled.component.d.ts +1 -1
  148. package/components/combo-box/combo-box.component.d.ts +0 -1
  149. package/components/combo-box/taiga-ui-kit-components-combo-box.metadata.json +1 -1
  150. package/components/field-error/field-error.component.d.ts +3 -2
  151. package/components/field-error/taiga-ui-kit-components-field-error.metadata.json +1 -1
  152. package/components/index.d.ts +1 -0
  153. package/components/input-date/input-date.component.d.ts +5 -4
  154. package/components/input-date/taiga-ui-kit-components-input-date.metadata.json +1 -1
  155. package/components/input-date-range/input-date-range.component.d.ts +5 -4
  156. package/components/input-date-range/taiga-ui-kit-components-input-date-range.metadata.json +1 -1
  157. package/components/input-date-time/input-date-time.component.d.ts +5 -5
  158. package/components/input-date-time/taiga-ui-kit-components-input-date-time.metadata.json +1 -1
  159. package/components/input-file/input-file.component.d.ts +0 -1
  160. package/components/input-file/taiga-ui-kit-components-input-file.metadata.json +1 -1
  161. package/components/input-inline/taiga-ui-kit-components-input-inline.metadata.json +1 -1
  162. package/components/input-month/input-month.component.d.ts +0 -1
  163. package/components/input-month/taiga-ui-kit-components-input-month.metadata.json +1 -1
  164. package/components/input-month-range/input-month-range.component.d.ts +0 -1
  165. package/components/input-month-range/taiga-ui-kit-components-input-month-range.metadata.json +1 -1
  166. package/components/input-number/taiga-ui-kit-components-input-number.metadata.json +1 -1
  167. package/components/input-password/input-password.component.d.ts +0 -1
  168. package/components/input-password/taiga-ui-kit-components-input-password.metadata.json +1 -1
  169. package/components/input-phone-international/const/countries.d.ts +15 -7
  170. package/components/input-phone-international/country-iso-code.d.ts +1 -1
  171. package/components/input-phone-international/index.d.ts +2 -0
  172. package/components/input-phone-international/input-phone-international.component.d.ts +2 -2
  173. package/components/input-phone-international/taiga-ui-kit-components-input-phone-international.metadata.json +1 -1
  174. package/components/input-phone-international/tokens/countries-masks.d.ts +3 -0
  175. package/components/input-phone-international/utils/extract-value-from-event.d.ts +1 -0
  176. package/components/input-tag/input-tag.component.d.ts +1 -1
  177. package/components/input-tag/taiga-ui-kit-components-input-tag.metadata.json +1 -1
  178. package/components/input-time/input-time.component.d.ts +0 -1
  179. package/components/input-time/taiga-ui-kit-components-input-time.metadata.json +1 -1
  180. package/components/multi-select/multi-select.component.d.ts +0 -1
  181. package/components/multi-select/taiga-ui-kit-components-multi-select.metadata.json +1 -1
  182. package/components/rating/index.d.ts +3 -0
  183. package/components/rating/package.json +13 -0
  184. package/components/rating/rating-options.d.ts +9 -0
  185. package/components/rating/rating.component.d.ts +21 -0
  186. package/components/rating/rating.module.d.ts +2 -0
  187. package/components/rating/taiga-ui-kit-components-rating.d.ts +4 -0
  188. package/components/rating/taiga-ui-kit-components-rating.metadata.json +1 -0
  189. package/components/select/select.component.d.ts +0 -1
  190. package/components/select/taiga-ui-kit-components-select.metadata.json +1 -1
  191. package/components/taiga-ui-kit-components.metadata.json +1 -1
  192. package/components/text-area/taiga-ui-kit-components-text-area.metadata.json +1 -1
  193. package/components/tree/components/tree/tree.component.d.ts +3 -1
  194. package/components/tree/taiga-ui-kit-components-tree.metadata.json +1 -1
  195. package/constants/masks.d.ts +8 -0
  196. package/constants/taiga-ui-kit-constants.metadata.json +1 -1
  197. package/directives/lazy-loading/lazy-loading.service.d.ts +1 -1
  198. package/esm2015/abstract/input-slider.js +4 -2
  199. package/esm2015/abstract/slider/slider.js +1 -1
  200. package/esm2015/components/arrow/arrow.component.js +1 -1
  201. package/esm2015/components/calendar-month/calendar-month.component.js +5 -2
  202. package/esm2015/components/carousel/carousel-scroll.directive.js +5 -4
  203. package/esm2015/components/checkbox/checkbox.component.js +2 -2
  204. package/esm2015/components/checkbox-block/checkbox-block.component.js +1 -1
  205. package/esm2015/components/checkbox-labeled/checkbox-labeled.component.js +1 -1
  206. package/esm2015/components/combo-box/combo-box.component.js +4 -7
  207. package/esm2015/components/field-error/field-error.component.js +15 -6
  208. package/esm2015/components/index.js +2 -1
  209. package/esm2015/components/input/input.component.js +2 -2
  210. package/esm2015/components/input-count/input-count.component.js +3 -7
  211. package/esm2015/components/input-date/input-date.component.js +31 -18
  212. package/esm2015/components/input-date-range/input-date-range.component.js +32 -19
  213. package/esm2015/components/input-date-time/input-date-time.component.js +45 -24
  214. package/esm2015/components/input-file/input-file.component.js +2 -5
  215. package/esm2015/components/input-inline/input-inline.component.js +3 -3
  216. package/esm2015/components/input-month/input-month.component.js +2 -5
  217. package/esm2015/components/input-month-range/input-month-range.component.js +2 -5
  218. package/esm2015/components/input-number/input-number.component.js +15 -15
  219. package/esm2015/components/input-password/input-password.component.js +3 -6
  220. package/esm2015/components/input-phone/input-phone.component.js +4 -4
  221. package/esm2015/components/input-phone-international/const/countries.js +21 -10
  222. package/esm2015/components/input-phone-international/country-iso-code.js +2 -2
  223. package/esm2015/components/input-phone-international/index.js +3 -1
  224. package/esm2015/components/input-phone-international/input-phone-international.component.js +15 -18
  225. package/esm2015/components/input-phone-international/tokens/countries-masks.js +6 -0
  226. package/esm2015/components/input-phone-international/utils/extract-value-from-event.js +9 -0
  227. package/esm2015/components/input-tag/input-tag.component.js +4 -4
  228. package/esm2015/components/input-time/input-time.component.js +1 -4
  229. package/esm2015/components/multi-select/multi-select.component.js +2 -5
  230. package/esm2015/components/progress/pipes/abstract-color-segments.js +1 -1
  231. package/esm2015/components/rating/index.js +4 -0
  232. package/esm2015/components/rating/rating-options.js +11 -0
  233. package/esm2015/components/rating/rating.component.js +91 -0
  234. package/esm2015/components/rating/rating.module.js +23 -0
  235. package/esm2015/components/rating/taiga-ui-kit-components-rating.js +5 -0
  236. package/esm2015/components/select/select.component.js +4 -7
  237. package/esm2015/components/tag/tag.component.js +2 -2
  238. package/esm2015/components/text-area/text-area.component.js +3 -3
  239. package/esm2015/components/toggle/toggle.component.js +1 -1
  240. package/esm2015/components/tree/components/tree/tree.component.js +11 -6
  241. package/esm2015/components/tree/tree.module.js +9 -2
  242. package/esm2015/constants/masks.js +9 -1
  243. package/esm2015/directives/lazy-loading/lazy-loading.service.js +1 -1
  244. package/esm2015/pipes/stringify/stringify.pipe.js +1 -1
  245. package/esm2015/tokens/date-inputs-value-transformers.js +5 -0
  246. package/esm2015/tokens/index.js +2 -1
  247. package/esm2015/tokens/validation-errors.js +1 -1
  248. package/esm2015/utils/mask/create-auto-corrected-date-pipe.js +6 -4
  249. package/esm2015/utils/mask/create-auto-corrected-date-range-pipe.js +9 -6
  250. package/esm2015/utils/mask/create-auto-corrected-date-time-pipe.js +6 -6
  251. package/esm2015/utils/mask/create-auto-corrected-time-pipe.js +2 -2
  252. package/esm2015/utils/mask/create-date-mask.js +16 -0
  253. package/esm2015/utils/mask/create-date-range-mask.js +14 -0
  254. package/esm2015/utils/mask/index.js +3 -1
  255. package/esm2015/utils/miscellaneous/get-precision.js +8 -0
  256. package/esm2015/utils/miscellaneous/index.js +2 -1
  257. package/esm2015/utils/miscellaneous/replay-control-value-changes-factory.js +10 -4
  258. package/esm5/abstract/input-slider.js +4 -2
  259. package/esm5/abstract/slider/slider.js +1 -1
  260. package/esm5/components/arrow/arrow.component.js +1 -1
  261. package/esm5/components/calendar-month/calendar-month.component.js +5 -2
  262. package/esm5/components/carousel/carousel-scroll.directive.js +5 -4
  263. package/esm5/components/checkbox/checkbox.component.js +2 -2
  264. package/esm5/components/checkbox-block/checkbox-block.component.js +1 -1
  265. package/esm5/components/checkbox-labeled/checkbox-labeled.component.js +1 -1
  266. package/esm5/components/combo-box/combo-box.component.js +4 -11
  267. package/esm5/components/field-error/field-error.component.js +19 -6
  268. package/esm5/components/index.js +2 -1
  269. package/esm5/components/input/input.component.js +2 -2
  270. package/esm5/components/input-count/input-count.component.js +3 -7
  271. package/esm5/components/input-date/input-date.component.js +33 -18
  272. package/esm5/components/input-date-range/input-date-range.component.js +34 -19
  273. package/esm5/components/input-date-time/input-date-time.component.js +45 -28
  274. package/esm5/components/input-file/input-file.component.js +2 -9
  275. package/esm5/components/input-inline/input-inline.component.js +3 -3
  276. package/esm5/components/input-month/input-month.component.js +2 -9
  277. package/esm5/components/input-month-range/input-month-range.component.js +2 -9
  278. package/esm5/components/input-number/input-number.component.js +14 -14
  279. package/esm5/components/input-password/input-password.component.js +3 -10
  280. package/esm5/components/input-phone/input-phone.component.js +4 -4
  281. package/esm5/components/input-phone-international/const/countries.js +21 -10
  282. package/esm5/components/input-phone-international/country-iso-code.js +2 -2
  283. package/esm5/components/input-phone-international/index.js +3 -1
  284. package/esm5/components/input-phone-international/input-phone-international.component.js +15 -18
  285. package/esm5/components/input-phone-international/tokens/countries-masks.js +6 -0
  286. package/esm5/components/input-phone-international/utils/extract-value-from-event.js +9 -0
  287. package/esm5/components/input-tag/input-tag.component.js +4 -4
  288. package/esm5/components/input-time/input-time.component.js +1 -8
  289. package/esm5/components/multi-select/multi-select.component.js +2 -9
  290. package/esm5/components/progress/pipes/abstract-color-segments.js +1 -1
  291. package/esm5/components/rating/index.js +4 -0
  292. package/esm5/components/rating/rating-options.js +11 -0
  293. package/esm5/components/rating/rating.component.js +111 -0
  294. package/esm5/components/rating/rating.module.js +26 -0
  295. package/esm5/components/rating/taiga-ui-kit-components-rating.js +5 -0
  296. package/esm5/components/select/select.component.js +4 -11
  297. package/esm5/components/tag/tag.component.js +1 -1
  298. package/esm5/components/text-area/text-area.component.js +3 -3
  299. package/esm5/components/toggle/toggle.component.js +1 -1
  300. package/esm5/components/tree/components/tree/tree.component.js +15 -9
  301. package/esm5/components/tree/tree.module.js +9 -2
  302. package/esm5/constants/masks.js +9 -1
  303. package/esm5/directives/lazy-loading/lazy-loading.service.js +1 -1
  304. package/esm5/pipes/stringify/stringify.pipe.js +1 -1
  305. package/esm5/tokens/date-inputs-value-transformers.js +5 -0
  306. package/esm5/tokens/index.js +2 -1
  307. package/esm5/tokens/validation-errors.js +1 -1
  308. package/esm5/utils/mask/create-auto-corrected-date-pipe.js +6 -4
  309. package/esm5/utils/mask/create-auto-corrected-date-range-pipe.js +9 -6
  310. package/esm5/utils/mask/create-auto-corrected-date-time-pipe.js +6 -6
  311. package/esm5/utils/mask/create-auto-corrected-time-pipe.js +2 -2
  312. package/esm5/utils/mask/create-date-mask.js +17 -0
  313. package/esm5/utils/mask/create-date-range-mask.js +13 -0
  314. package/esm5/utils/mask/index.js +3 -1
  315. package/esm5/utils/miscellaneous/get-precision.js +9 -0
  316. package/esm5/utils/miscellaneous/index.js +2 -1
  317. package/esm5/utils/miscellaneous/replay-control-value-changes-factory.js +12 -4
  318. package/fesm2015/taiga-ui-kit-abstract.js +3 -1
  319. package/fesm2015/taiga-ui-kit-abstract.js.map +1 -1
  320. package/fesm2015/taiga-ui-kit-components-arrow.js +1 -1
  321. package/fesm2015/taiga-ui-kit-components-calendar-month.js +4 -1
  322. package/fesm2015/taiga-ui-kit-components-calendar-month.js.map +1 -1
  323. package/fesm2015/taiga-ui-kit-components-carousel.js +4 -3
  324. package/fesm2015/taiga-ui-kit-components-carousel.js.map +1 -1
  325. package/fesm2015/taiga-ui-kit-components-checkbox-block.js.map +1 -1
  326. package/fesm2015/taiga-ui-kit-components-checkbox-labeled.js.map +1 -1
  327. package/fesm2015/taiga-ui-kit-components-checkbox.js +1 -1
  328. package/fesm2015/taiga-ui-kit-components-checkbox.js.map +1 -1
  329. package/fesm2015/taiga-ui-kit-components-combo-box.js +3 -6
  330. package/fesm2015/taiga-ui-kit-components-combo-box.js.map +1 -1
  331. package/fesm2015/taiga-ui-kit-components-field-error.js +14 -5
  332. package/fesm2015/taiga-ui-kit-components-field-error.js.map +1 -1
  333. package/fesm2015/taiga-ui-kit-components-input-count.js +2 -6
  334. package/fesm2015/taiga-ui-kit-components-input-count.js.map +1 -1
  335. package/fesm2015/taiga-ui-kit-components-input-date-range.js +31 -18
  336. package/fesm2015/taiga-ui-kit-components-input-date-range.js.map +1 -1
  337. package/fesm2015/taiga-ui-kit-components-input-date-time.js +45 -24
  338. package/fesm2015/taiga-ui-kit-components-input-date-time.js.map +1 -1
  339. package/fesm2015/taiga-ui-kit-components-input-date.js +30 -17
  340. package/fesm2015/taiga-ui-kit-components-input-date.js.map +1 -1
  341. package/fesm2015/taiga-ui-kit-components-input-file.js +1 -4
  342. package/fesm2015/taiga-ui-kit-components-input-file.js.map +1 -1
  343. package/fesm2015/taiga-ui-kit-components-input-inline.js +2 -2
  344. package/fesm2015/taiga-ui-kit-components-input-inline.js.map +1 -1
  345. package/fesm2015/taiga-ui-kit-components-input-month-range.js +1 -4
  346. package/fesm2015/taiga-ui-kit-components-input-month-range.js.map +1 -1
  347. package/fesm2015/taiga-ui-kit-components-input-month.js +1 -4
  348. package/fesm2015/taiga-ui-kit-components-input-month.js.map +1 -1
  349. package/fesm2015/taiga-ui-kit-components-input-number.js +14 -14
  350. package/fesm2015/taiga-ui-kit-components-input-number.js.map +1 -1
  351. package/fesm2015/taiga-ui-kit-components-input-password.js +2 -5
  352. package/fesm2015/taiga-ui-kit-components-input-password.js.map +1 -1
  353. package/fesm2015/taiga-ui-kit-components-input-phone-international.js +46 -28
  354. package/fesm2015/taiga-ui-kit-components-input-phone-international.js.map +1 -1
  355. package/fesm2015/taiga-ui-kit-components-input-phone.js +3 -3
  356. package/fesm2015/taiga-ui-kit-components-input-phone.js.map +1 -1
  357. package/fesm2015/taiga-ui-kit-components-input-tag.js +3 -3
  358. package/fesm2015/taiga-ui-kit-components-input-tag.js.map +1 -1
  359. package/fesm2015/taiga-ui-kit-components-input-time.js +0 -3
  360. package/fesm2015/taiga-ui-kit-components-input-time.js.map +1 -1
  361. package/fesm2015/taiga-ui-kit-components-input.js +1 -1
  362. package/fesm2015/taiga-ui-kit-components-input.js.map +1 -1
  363. package/fesm2015/taiga-ui-kit-components-multi-select.js +1 -4
  364. package/fesm2015/taiga-ui-kit-components-multi-select.js.map +1 -1
  365. package/fesm2015/taiga-ui-kit-components-progress.js.map +1 -1
  366. package/fesm2015/taiga-ui-kit-components-rating.js +123 -0
  367. package/fesm2015/taiga-ui-kit-components-rating.js.map +1 -0
  368. package/fesm2015/taiga-ui-kit-components-select.js +3 -6
  369. package/fesm2015/taiga-ui-kit-components-select.js.map +1 -1
  370. package/fesm2015/taiga-ui-kit-components-tag.js +1 -1
  371. package/fesm2015/taiga-ui-kit-components-tag.js.map +1 -1
  372. package/fesm2015/taiga-ui-kit-components-text-area.js +2 -2
  373. package/fesm2015/taiga-ui-kit-components-text-area.js.map +1 -1
  374. package/fesm2015/taiga-ui-kit-components-toggle.js.map +1 -1
  375. package/fesm2015/taiga-ui-kit-components-tree.js +17 -8
  376. package/fesm2015/taiga-ui-kit-components-tree.js.map +1 -1
  377. package/fesm2015/taiga-ui-kit-components.js +1 -0
  378. package/fesm2015/taiga-ui-kit-components.js.map +1 -1
  379. package/fesm2015/taiga-ui-kit-constants.js +8 -0
  380. package/fesm2015/taiga-ui-kit-constants.js.map +1 -1
  381. package/fesm2015/taiga-ui-kit-directives-lazy-loading.js.map +1 -1
  382. package/fesm2015/taiga-ui-kit-pipes-stringify.js.map +1 -1
  383. package/fesm2015/taiga-ui-kit-tokens.js +5 -1
  384. package/fesm2015/taiga-ui-kit-tokens.js.map +1 -1
  385. package/fesm2015/taiga-ui-kit-utils-mask.js +46 -15
  386. package/fesm2015/taiga-ui-kit-utils-mask.js.map +1 -1
  387. package/fesm2015/taiga-ui-kit-utils-miscellaneous.js +17 -3
  388. package/fesm2015/taiga-ui-kit-utils-miscellaneous.js.map +1 -1
  389. package/fesm5/taiga-ui-kit-abstract.js +3 -1
  390. package/fesm5/taiga-ui-kit-abstract.js.map +1 -1
  391. package/fesm5/taiga-ui-kit-components-arrow.js +1 -1
  392. package/fesm5/taiga-ui-kit-components-calendar-month.js +4 -1
  393. package/fesm5/taiga-ui-kit-components-calendar-month.js.map +1 -1
  394. package/fesm5/taiga-ui-kit-components-carousel.js +4 -3
  395. package/fesm5/taiga-ui-kit-components-carousel.js.map +1 -1
  396. package/fesm5/taiga-ui-kit-components-checkbox-block.js.map +1 -1
  397. package/fesm5/taiga-ui-kit-components-checkbox-labeled.js.map +1 -1
  398. package/fesm5/taiga-ui-kit-components-checkbox.js +1 -1
  399. package/fesm5/taiga-ui-kit-components-checkbox.js.map +1 -1
  400. package/fesm5/taiga-ui-kit-components-combo-box.js +3 -10
  401. package/fesm5/taiga-ui-kit-components-combo-box.js.map +1 -1
  402. package/fesm5/taiga-ui-kit-components-field-error.js +18 -5
  403. package/fesm5/taiga-ui-kit-components-field-error.js.map +1 -1
  404. package/fesm5/taiga-ui-kit-components-input-count.js +2 -6
  405. package/fesm5/taiga-ui-kit-components-input-count.js.map +1 -1
  406. package/fesm5/taiga-ui-kit-components-input-date-range.js +33 -18
  407. package/fesm5/taiga-ui-kit-components-input-date-range.js.map +1 -1
  408. package/fesm5/taiga-ui-kit-components-input-date-time.js +45 -28
  409. package/fesm5/taiga-ui-kit-components-input-date-time.js.map +1 -1
  410. package/fesm5/taiga-ui-kit-components-input-date.js +32 -17
  411. package/fesm5/taiga-ui-kit-components-input-date.js.map +1 -1
  412. package/fesm5/taiga-ui-kit-components-input-file.js +1 -8
  413. package/fesm5/taiga-ui-kit-components-input-file.js.map +1 -1
  414. package/fesm5/taiga-ui-kit-components-input-inline.js +2 -2
  415. package/fesm5/taiga-ui-kit-components-input-inline.js.map +1 -1
  416. package/fesm5/taiga-ui-kit-components-input-month-range.js +1 -8
  417. package/fesm5/taiga-ui-kit-components-input-month-range.js.map +1 -1
  418. package/fesm5/taiga-ui-kit-components-input-month.js +1 -8
  419. package/fesm5/taiga-ui-kit-components-input-month.js.map +1 -1
  420. package/fesm5/taiga-ui-kit-components-input-number.js +13 -13
  421. package/fesm5/taiga-ui-kit-components-input-number.js.map +1 -1
  422. package/fesm5/taiga-ui-kit-components-input-password.js +2 -9
  423. package/fesm5/taiga-ui-kit-components-input-password.js.map +1 -1
  424. package/fesm5/taiga-ui-kit-components-input-phone-international.js +46 -28
  425. package/fesm5/taiga-ui-kit-components-input-phone-international.js.map +1 -1
  426. package/fesm5/taiga-ui-kit-components-input-phone.js +3 -3
  427. package/fesm5/taiga-ui-kit-components-input-phone.js.map +1 -1
  428. package/fesm5/taiga-ui-kit-components-input-tag.js +3 -3
  429. package/fesm5/taiga-ui-kit-components-input-tag.js.map +1 -1
  430. package/fesm5/taiga-ui-kit-components-input-time.js +0 -7
  431. package/fesm5/taiga-ui-kit-components-input-time.js.map +1 -1
  432. package/fesm5/taiga-ui-kit-components-input.js +1 -1
  433. package/fesm5/taiga-ui-kit-components-input.js.map +1 -1
  434. package/fesm5/taiga-ui-kit-components-multi-select.js +1 -8
  435. package/fesm5/taiga-ui-kit-components-multi-select.js.map +1 -1
  436. package/fesm5/taiga-ui-kit-components-progress.js.map +1 -1
  437. package/fesm5/taiga-ui-kit-components-rating.js +146 -0
  438. package/fesm5/taiga-ui-kit-components-rating.js.map +1 -0
  439. package/fesm5/taiga-ui-kit-components-select.js +3 -10
  440. package/fesm5/taiga-ui-kit-components-select.js.map +1 -1
  441. package/fesm5/taiga-ui-kit-components-tag.js.map +1 -1
  442. package/fesm5/taiga-ui-kit-components-text-area.js +2 -2
  443. package/fesm5/taiga-ui-kit-components-text-area.js.map +1 -1
  444. package/fesm5/taiga-ui-kit-components-toggle.js.map +1 -1
  445. package/fesm5/taiga-ui-kit-components-tree.js +21 -11
  446. package/fesm5/taiga-ui-kit-components-tree.js.map +1 -1
  447. package/fesm5/taiga-ui-kit-components.js +1 -0
  448. package/fesm5/taiga-ui-kit-components.js.map +1 -1
  449. package/fesm5/taiga-ui-kit-constants.js +8 -0
  450. package/fesm5/taiga-ui-kit-constants.js.map +1 -1
  451. package/fesm5/taiga-ui-kit-directives-lazy-loading.js.map +1 -1
  452. package/fesm5/taiga-ui-kit-pipes-stringify.js.map +1 -1
  453. package/fesm5/taiga-ui-kit-tokens.js +5 -1
  454. package/fesm5/taiga-ui-kit-tokens.js.map +1 -1
  455. package/fesm5/taiga-ui-kit-utils-mask.js +44 -15
  456. package/fesm5/taiga-ui-kit-utils-mask.js.map +1 -1
  457. package/fesm5/taiga-ui-kit-utils-miscellaneous.js +20 -3
  458. package/fesm5/taiga-ui-kit-utils-miscellaneous.js.map +1 -1
  459. package/package.json +6 -6
  460. package/tokens/date-inputs-value-transformers.d.ts +5 -0
  461. package/tokens/index.d.ts +1 -0
  462. package/tokens/taiga-ui-kit-tokens.metadata.json +1 -1
  463. package/tokens/validation-errors.d.ts +2 -1
  464. package/utils/mask/create-auto-corrected-date-pipe.d.ts +7 -3
  465. package/utils/mask/create-auto-corrected-date-range-pipe.d.ts +7 -2
  466. package/utils/mask/create-auto-corrected-date-time-pipe.d.ts +8 -3
  467. package/utils/mask/create-auto-corrected-time-pipe.d.ts +1 -1
  468. package/utils/mask/create-date-mask.d.ts +3 -0
  469. package/utils/mask/create-date-range-mask.d.ts +3 -0
  470. package/utils/mask/index.d.ts +2 -0
  471. package/utils/mask/taiga-ui-kit-utils-mask.metadata.json +1 -1
  472. package/utils/miscellaneous/get-precision.d.ts +4 -0
  473. package/utils/miscellaneous/index.d.ts +1 -0
  474. package/utils/miscellaneous/replay-control-value-changes-factory.d.ts +3 -2
  475. package/utils/miscellaneous/taiga-ui-kit-utils-miscellaneous.metadata.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-kit-components-combo-box.js","sources":["ng://@taiga-ui/kit/components/combo-box/combo-box.component.ts","ng://@taiga-ui/kit/components/combo-box/combo-box.module.ts","ng://@taiga-ui/kit/components/combo-box/taiga-ui-kit-components-combo-box.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n EventEmitter,\n forwardRef,\n Inject,\n Input,\n Optional,\n Output,\n Self,\n TemplateRef,\n ViewChild,\n} from '@angular/core';\nimport {NgControl} from '@angular/forms';\nimport {\n AbstractTuiNullableControl,\n isNativeFocused,\n isPresent,\n setNativeFocused,\n TUI_DEFAULT_IDENTITY_MATCHER,\n TUI_DEFAULT_STRINGIFY,\n TUI_FOCUSABLE_ITEM_ACCESSOR,\n TUI_STRICT_MATCHER,\n tuiDefaultProp,\n TuiFocusableElementAccessor,\n TuiIdentityMatcher,\n tuiPure,\n TuiStringHandler,\n TuiStringMatcher,\n} from '@taiga-ui/cdk';\nimport {\n TUI_DATA_LIST_ACCESSOR,\n TUI_DATA_LIST_HOST,\n TUI_OPTION_CONTENT,\n TuiDataListAccessor,\n TuiDataListDirective,\n TuiDataListHost,\n TuiHostedDropdownComponent,\n TuiPrimitiveTextfieldComponent,\n TuiValueContentContext,\n} from '@taiga-ui/core';\nimport {TUI_ARROW} from '@taiga-ui/kit/components/arrow';\nimport {TUI_SELECT_OPTION} from '@taiga-ui/kit/components/select-option';\nimport {FIXED_DROPDOWN_CONTROLLER_PROVIDER} from '@taiga-ui/kit/providers';\nimport {PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\n\n// TODO: remove in ivy compilation\nexport const COMBOBOX_OPTION: any = TUI_SELECT_OPTION;\n\n@Component({\n selector: 'tui-combo-box',\n templateUrl: './combo-box.template.html',\n styleUrls: ['./combo-box.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: TUI_FOCUSABLE_ITEM_ACCESSOR,\n useExisting: forwardRef(() => TuiComboBoxComponent),\n },\n {\n provide: TUI_DATA_LIST_HOST,\n useExisting: forwardRef(() => TuiComboBoxComponent),\n },\n {\n provide: TUI_OPTION_CONTENT,\n useValue: COMBOBOX_OPTION,\n },\n FIXED_DROPDOWN_CONTROLLER_PROVIDER,\n ],\n})\nexport class TuiComboBoxComponent<T>\n extends AbstractTuiNullableControl<T | string>\n implements TuiFocusableElementAccessor, TuiDataListHost<T>\n{\n @ContentChild(TUI_DATA_LIST_ACCESSOR as any)\n private readonly accessor?: TuiDataListAccessor<T>;\n\n @ViewChild(TuiHostedDropdownComponent)\n private readonly hostedDropdown?: TuiHostedDropdownComponent;\n\n @ViewChild(TuiPrimitiveTextfieldComponent)\n private readonly textfield?: TuiPrimitiveTextfieldComponent;\n\n @Input()\n @tuiDefaultProp()\n stringify: TuiStringHandler<T> = TUI_DEFAULT_STRINGIFY;\n\n @Input()\n @tuiDefaultProp()\n strictMatcher: TuiStringMatcher<T> = TUI_STRICT_MATCHER;\n\n @Input()\n @tuiDefaultProp()\n identityMatcher: TuiIdentityMatcher<T> = TUI_DEFAULT_IDENTITY_MATCHER;\n\n @Input()\n @tuiDefaultProp()\n valueContent: PolymorpheusContent<TuiValueContentContext<T>> = '';\n\n @Input()\n @tuiDefaultProp()\n strict = true;\n\n @Input()\n @tuiDefaultProp()\n search: string | null = '';\n\n @Output()\n readonly searchChange = new EventEmitter<string | null>();\n\n @ContentChild(TuiDataListDirective, {read: TemplateRef})\n readonly datalist: PolymorpheusContent = '';\n\n open = false;\n\n constructor(\n @Optional()\n @Self()\n @Inject(NgControl)\n control: NgControl | null,\n @Inject(ChangeDetectorRef) changeDetectorRef: ChangeDetectorRef,\n ) {\n super(control, changeDetectorRef);\n }\n\n get arrow(): PolymorpheusContent {\n return this.disabled || this.readOnly ? '' : TUI_ARROW;\n }\n\n get nativeFocusableElement(): HTMLInputElement | null {\n return this.textfield ? this.textfield.nativeFocusableElement : null;\n }\n\n get focused(): boolean {\n return (\n isNativeFocused(this.nativeFocusableElement) ||\n (!!this.hostedDropdown && this.hostedDropdown.focused)\n );\n }\n\n get nativeValue(): string {\n if (this.value === null) {\n return this.search || '';\n }\n\n return typeof this.value === 'string' ? this.value : this.stringify(this.value);\n }\n\n get showValueTemplate(): boolean {\n return isPresent(this.value) && !this.focused;\n }\n\n get canOpen(): boolean {\n return !this.computedDisabled && !this.readOnly;\n }\n\n get computedContent(): PolymorpheusContent<TuiValueContentContext<T>> {\n return this.valueContent || this.nativeValue;\n }\n\n @tuiPure\n computeContext(\n $implicit: T | null,\n active: boolean,\n ): TuiValueContentContext<T | null> {\n return {\n $implicit,\n active,\n };\n }\n\n onActiveZone(active: boolean) {\n this.updateFocused(active);\n }\n\n checkOption(option: T) {\n if (!this.isStrictMatch(option)) {\n return;\n }\n\n this.updateValue(option);\n this.updateSearch(null);\n }\n\n handleOption(item: T) {\n this.setNativeValue(this.stringify(item));\n this.focusInput();\n this.close();\n this.updateSearch(null);\n this.updateValue(item);\n }\n\n onFieldKeyDownEnter(event: KeyboardEvent) {\n if (this.open) {\n event.preventDefault();\n }\n\n const options = this.accessor ? this.accessor.getOptions() : [];\n\n if (options.length !== 1) {\n return;\n }\n\n this.updateValue(options[0]);\n this.updateSearch(null);\n this.close();\n }\n\n onInput(value: string) {\n this.updateSearch(value);\n\n const match =\n this.accessor &&\n this.accessor.getOptions().find(item => this.isStrictMatch(item));\n\n if (match !== undefined) {\n this.updateValue(match);\n this.updateSearch(null);\n\n return;\n }\n\n this.updateValue(this.strict || this.search === '' ? null : this.search);\n this.hostedDropdown?.updateOpen(true);\n }\n\n onHovered(hovered: boolean) {\n this.updateHovered(hovered);\n }\n\n toggle() {\n if (this.hostedDropdown) {\n this.hostedDropdown.updateOpen(!this.open);\n }\n }\n\n private isStrictMatch(item: T): boolean {\n return this.strictMatcher(item, this.search || '', this.stringify);\n }\n\n private close() {\n if (this.hostedDropdown) {\n this.hostedDropdown.updateOpen(false);\n }\n }\n\n private updateSearch(search: string | null) {\n if (this.search === search) {\n return;\n }\n\n this.search = search;\n this.searchChange.emit(search);\n }\n\n private setNativeValue(value: string) {\n if (this.nativeFocusableElement) {\n this.nativeFocusableElement.value = value;\n }\n }\n\n private focusInput(preventScroll: boolean = false) {\n if (this.nativeFocusableElement) {\n setNativeFocused(this.nativeFocusableElement, true, preventScroll);\n }\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {TuiActiveZoneModule} from '@taiga-ui/cdk';\nimport {TuiHostedDropdownModule, TuiPrimitiveTextfieldModule} from '@taiga-ui/core';\nimport {TuiArrowModule} from '@taiga-ui/kit/components/arrow';\nimport {TuiSelectOptionModule} from '@taiga-ui/kit/components/select-option';\nimport {PolymorpheusModule} from '@tinkoff/ng-polymorpheus';\n\nimport {TuiComboBoxComponent} from './combo-box.component';\n\n@NgModule({\n imports: [\n CommonModule,\n PolymorpheusModule,\n TuiActiveZoneModule,\n TuiPrimitiveTextfieldModule,\n TuiHostedDropdownModule,\n TuiSelectOptionModule,\n TuiArrowModule,\n ],\n declarations: [TuiComboBoxComponent],\n exports: [TuiComboBoxComponent],\n})\nexport class TuiComboBoxModule {}\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-combo-box.js","sources":["ng://@taiga-ui/kit/components/combo-box/combo-box.component.ts","ng://@taiga-ui/kit/components/combo-box/combo-box.module.ts","ng://@taiga-ui/kit/components/combo-box/taiga-ui-kit-components-combo-box.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n EventEmitter,\n forwardRef,\n Inject,\n Input,\n Optional,\n Output,\n Self,\n TemplateRef,\n ViewChild,\n} from '@angular/core';\nimport {NgControl} from '@angular/forms';\nimport {\n AbstractTuiNullableControl,\n isNativeFocused,\n isPresent,\n setNativeFocused,\n TUI_DEFAULT_IDENTITY_MATCHER,\n TUI_DEFAULT_STRINGIFY,\n TUI_FOCUSABLE_ITEM_ACCESSOR,\n TUI_STRICT_MATCHER,\n tuiDefaultProp,\n TuiFocusableElementAccessor,\n TuiIdentityMatcher,\n tuiPure,\n TuiStringHandler,\n TuiStringMatcher,\n} from '@taiga-ui/cdk';\nimport {\n TUI_DATA_LIST_ACCESSOR,\n TUI_DATA_LIST_HOST,\n TUI_OPTION_CONTENT,\n TuiDataListAccessor,\n TuiDataListDirective,\n TuiDataListHost,\n TuiHostedDropdownComponent,\n TuiPrimitiveTextfieldComponent,\n TuiValueContentContext,\n} from '@taiga-ui/core';\nimport {TUI_ARROW} from '@taiga-ui/kit/components/arrow';\nimport {TUI_SELECT_OPTION} from '@taiga-ui/kit/components/select-option';\nimport {FIXED_DROPDOWN_CONTROLLER_PROVIDER} from '@taiga-ui/kit/providers';\nimport {PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\n\n// TODO: remove in ivy compilation\nexport const COMBOBOX_OPTION: any = TUI_SELECT_OPTION;\n\n@Component({\n selector: 'tui-combo-box',\n templateUrl: './combo-box.template.html',\n styleUrls: ['./combo-box.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: TUI_FOCUSABLE_ITEM_ACCESSOR,\n useExisting: forwardRef(() => TuiComboBoxComponent),\n },\n {\n provide: TUI_DATA_LIST_HOST,\n useExisting: forwardRef(() => TuiComboBoxComponent),\n },\n {\n provide: TUI_OPTION_CONTENT,\n useValue: COMBOBOX_OPTION,\n },\n FIXED_DROPDOWN_CONTROLLER_PROVIDER,\n ],\n})\nexport class TuiComboBoxComponent<T>\n extends AbstractTuiNullableControl<T | string>\n implements TuiFocusableElementAccessor, TuiDataListHost<T>\n{\n @ContentChild(TUI_DATA_LIST_ACCESSOR as any)\n private readonly accessor?: TuiDataListAccessor<T>;\n\n @ViewChild(TuiHostedDropdownComponent)\n private readonly hostedDropdown?: TuiHostedDropdownComponent;\n\n @ViewChild(TuiPrimitiveTextfieldComponent)\n private readonly textfield?: TuiPrimitiveTextfieldComponent;\n\n @Input()\n @tuiDefaultProp()\n stringify: TuiStringHandler<T> = TUI_DEFAULT_STRINGIFY;\n\n @Input()\n @tuiDefaultProp()\n strictMatcher: TuiStringMatcher<T> = TUI_STRICT_MATCHER;\n\n @Input()\n @tuiDefaultProp()\n identityMatcher: TuiIdentityMatcher<T> = TUI_DEFAULT_IDENTITY_MATCHER;\n\n @Input()\n @tuiDefaultProp()\n valueContent: PolymorpheusContent<TuiValueContentContext<T>> = '';\n\n @Input()\n @tuiDefaultProp()\n strict = true;\n\n @Input()\n @tuiDefaultProp()\n search: string | null = '';\n\n @Output()\n readonly searchChange = new EventEmitter<string | null>();\n\n @ContentChild(TuiDataListDirective, {read: TemplateRef})\n readonly datalist: PolymorpheusContent = '';\n\n open = false;\n\n constructor(\n @Optional()\n @Self()\n @Inject(NgControl)\n control: NgControl | null,\n @Inject(ChangeDetectorRef) changeDetectorRef: ChangeDetectorRef,\n ) {\n super(control, changeDetectorRef);\n }\n\n get arrow(): PolymorpheusContent {\n return !this.interactive ? '' : TUI_ARROW;\n }\n\n get nativeFocusableElement(): HTMLInputElement | null {\n return this.textfield ? this.textfield.nativeFocusableElement : null;\n }\n\n get focused(): boolean {\n return (\n isNativeFocused(this.nativeFocusableElement) ||\n (!!this.hostedDropdown && this.hostedDropdown.focused)\n );\n }\n\n get nativeValue(): string {\n if (this.value === null) {\n return this.search || '';\n }\n\n return typeof this.value === 'string' ? this.value : this.stringify(this.value);\n }\n\n get showValueTemplate(): boolean {\n return isPresent(this.value) && !this.focused;\n }\n\n get computedContent(): PolymorpheusContent<TuiValueContentContext<T>> {\n return this.valueContent || this.nativeValue;\n }\n\n @tuiPure\n computeContext(\n $implicit: T | null,\n active: boolean,\n ): TuiValueContentContext<T | null> {\n return {\n $implicit,\n active,\n };\n }\n\n onActiveZone(active: boolean) {\n this.updateFocused(active);\n }\n\n checkOption(option: T) {\n if (!this.isStrictMatch(option)) {\n return;\n }\n\n this.updateValue(option);\n this.updateSearch(null);\n }\n\n handleOption(item: T) {\n this.setNativeValue(this.stringify(item));\n this.focusInput();\n this.close();\n this.updateSearch(null);\n this.updateValue(item);\n }\n\n onFieldKeyDownEnter(event: KeyboardEvent) {\n if (this.open) {\n event.preventDefault();\n }\n\n const options = this.accessor ? this.accessor.getOptions() : [];\n\n if (options.length !== 1) {\n return;\n }\n\n this.updateValue(options[0]);\n this.updateSearch(null);\n this.close();\n }\n\n onInput(value: string) {\n this.updateSearch(value);\n\n const match =\n this.accessor &&\n this.accessor.getOptions().find(item => this.isStrictMatch(item));\n\n if (match !== undefined) {\n this.updateValue(match);\n this.updateSearch(null);\n\n return;\n }\n\n this.updateValue(this.strict || this.search === '' ? null : this.search);\n this.hostedDropdown?.updateOpen(true);\n }\n\n onHovered(hovered: boolean) {\n this.updateHovered(hovered);\n }\n\n toggle() {\n if (this.hostedDropdown) {\n this.hostedDropdown.updateOpen(!this.open);\n }\n }\n\n private isStrictMatch(item: T): boolean {\n return this.strictMatcher(item, this.search || '', this.stringify);\n }\n\n private close() {\n if (this.hostedDropdown) {\n this.hostedDropdown.updateOpen(false);\n }\n }\n\n private updateSearch(search: string | null) {\n if (this.search === search) {\n return;\n }\n\n this.search = search;\n this.searchChange.emit(search);\n }\n\n private setNativeValue(value: string) {\n if (this.nativeFocusableElement) {\n this.nativeFocusableElement.value = value;\n }\n }\n\n private focusInput(preventScroll: boolean = false) {\n if (this.nativeFocusableElement) {\n setNativeFocused(this.nativeFocusableElement, true, preventScroll);\n }\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {TuiActiveZoneModule} from '@taiga-ui/cdk';\nimport {TuiHostedDropdownModule, TuiPrimitiveTextfieldModule} from '@taiga-ui/core';\nimport {TuiArrowModule} from '@taiga-ui/kit/components/arrow';\nimport {TuiSelectOptionModule} from '@taiga-ui/kit/components/select-option';\nimport {PolymorpheusModule} from '@tinkoff/ng-polymorpheus';\n\nimport {TuiComboBoxComponent} from './combo-box.component';\n\n@NgModule({\n imports: [\n CommonModule,\n PolymorpheusModule,\n TuiActiveZoneModule,\n TuiPrimitiveTextfieldModule,\n TuiHostedDropdownModule,\n TuiSelectOptionModule,\n TuiArrowModule,\n ],\n declarations: [TuiComboBoxComponent],\n exports: [TuiComboBoxComponent],\n})\nexport class TuiComboBoxModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;AAgDA;IACa,eAAe,GAAQ,kBAAkB;;IAwB1C,wCAAsC;IA4C9C,8BAII,OAAyB,EACE,iBAAoC;QALnE,YAOI,kBAAM,OAAO,EAAE,iBAAiB,CAAC,SACpC;QAtCD,eAAS,GAAwB,qBAAqB,CAAC;QAIvD,mBAAa,GAAwB,kBAAkB,CAAC;QAIxD,qBAAe,GAA0B,4BAA4B,CAAC;QAItE,kBAAY,GAAmD,EAAE,CAAC;QAIlE,YAAM,GAAG,IAAI,CAAC;QAId,YAAM,GAAkB,EAAE,CAAC;QAGlB,kBAAY,GAAG,IAAI,YAAY,EAAiB,CAAC;QAGjD,cAAQ,GAAwB,EAAE,CAAC;QAE5C,UAAI,GAAG,KAAK,CAAC;;KAUZ;6BArDQ,oBAAoB;IAuD7B,sBAAI,uCAAK;aAAT;YACI,OAAO,CAAC,IAAI,CAAC,WAAW,GAAG,EAAE,GAAG,SAAS,CAAC;SAC7C;;;OAAA;IAED,sBAAI,wDAAsB;aAA1B;YACI,OAAO,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,sBAAsB,GAAG,IAAI,CAAC;SACxE;;;OAAA;IAED,sBAAI,yCAAO;aAAX;YACI,QACI,eAAe,CAAC,IAAI,CAAC,sBAAsB,CAAC;iBAC3C,CAAC,CAAC,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,EACxD;SACL;;;OAAA;IAED,sBAAI,6CAAW;aAAf;YACI,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,EAAE;gBACrB,OAAO,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC;aAC5B;YAED,OAAO,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACnF;;;OAAA;IAED,sBAAI,mDAAiB;aAArB;YACI,OAAO,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;SACjD;;;OAAA;IAED,sBAAI,iDAAe;aAAnB;YACI,OAAO,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,WAAW,CAAC;SAChD;;;OAAA;IAGD,6CAAc,GAAd,UACI,SAAmB,EACnB,MAAe;QAEf,OAAO;YACH,SAAS,WAAA;YACT,MAAM,QAAA;SACT,CAAC;KACL;IAED,2CAAY,GAAZ,UAAa,MAAe;QACxB,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;KAC9B;IAED,0CAAW,GAAX,UAAY,MAAS;QACjB,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE;YAC7B,OAAO;SACV;QAED,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QACzB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;KAC3B;IAED,2CAAY,GAAZ,UAAa,IAAO;QAChB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;QAC1C,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,IAAI,CAAC,KAAK,EAAE,CAAC;QACb,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QACxB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;KAC1B;IAED,kDAAmB,GAAnB,UAAoB,KAAoB;QACpC,IAAI,IAAI,CAAC,IAAI,EAAE;YACX,KAAK,CAAC,cAAc,EAAE,CAAC;SAC1B;QAED,IAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE,CAAC;QAEhE,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;YACtB,OAAO;SACV;QAED,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QACxB,IAAI,CAAC,KAAK,EAAE,CAAC;KAChB;IAED,sCAAO,GAAP,UAAQ,KAAa;QAArB,iBAgBC;;QAfG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QAEzB,IAAM,KAAK,GACP,IAAI,CAAC,QAAQ;YACb,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,UAAA,IAAI,IAAI,OAAA,KAAI,CAAC,aAAa,CAAC,IAAI,CAAC,GAAA,CAAC,CAAC;QAEtE,IAAI,KAAK,KAAK,SAAS,EAAE;YACrB,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;YACxB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;YAExB,OAAO;SACV;QAED,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,KAAK,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;QACzE,MAAA,IAAI,CAAC,cAAc,0CAAE,UAAU,CAAC,IAAI,EAAE;KACzC;IAED,wCAAS,GAAT,UAAU,OAAgB;QACtB,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;KAC/B;IAED,qCAAM,GAAN;QACI,IAAI,IAAI,CAAC,cAAc,EAAE;YACrB,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAC9C;KACJ;IAEO,4CAAa,GAArB,UAAsB,IAAO;QACzB,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,IAAI,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;KACtE;IAEO,oCAAK,GAAb;QACI,IAAI,IAAI,CAAC,cAAc,EAAE;YACrB,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;SACzC;KACJ;IAEO,2CAAY,GAApB,UAAqB,MAAqB;QACtC,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM,EAAE;YACxB,OAAO;SACV;QAED,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;KAClC;IAEO,6CAAc,GAAtB,UAAuB,KAAa;QAChC,IAAI,IAAI,CAAC,sBAAsB,EAAE;YAC7B,IAAI,CAAC,sBAAsB,CAAC,KAAK,GAAG,KAAK,CAAC;SAC7C;KACJ;IAEO,yCAAU,GAAlB,UAAmB,aAA8B;QAA9B,8BAAA,EAAA,qBAA8B;QAC7C,IAAI,IAAI,CAAC,sBAAsB,EAAE;YAC7B,gBAAgB,CAAC,IAAI,CAAC,sBAAsB,EAAE,IAAI,EAAE,aAAa,CAAC,CAAC;SACtE;KACJ;;;gBA9IY,SAAS,uBAHjB,QAAQ,YACR,IAAI,YACJ,MAAM,SAAC,SAAS;gBAE6B,iBAAiB,uBAA9D,MAAM,SAAC,iBAAiB;;IA7C7B;QADC,YAAY,CAAC,sBAA6B,CAAC;0DACO;IAGnD;QADC,SAAS,CAAC,0BAA0B,CAAC;gEACuB;IAG7D;QADC,SAAS,CAAC,8BAA8B,CAAC;2DACkB;IAI5D;QAFC,KAAK,EAAE;QACP,cAAc,EAAE;2DACsC;IAIvD;QAFC,KAAK,EAAE;QACP,cAAc,EAAE;+DACuC;IAIxD;QAFC,KAAK,EAAE;QACP,cAAc,EAAE;iEACqD;IAItE;QAFC,KAAK,EAAE;QACP,cAAc,EAAE;8DACiD;IAIlE;QAFC,KAAK,EAAE;QACP,cAAc,EAAE;wDACH;IAId;QAFC,KAAK,EAAE;QACP,cAAc,EAAE;wDACU;IAG3B;QADC,MAAM,EAAE;8DACiD;IAG1D;QADC,YAAY,CAAC,oBAAoB,EAAE,EAAC,IAAI,EAAE,WAAW,EAAC,CAAC;0DACZ;IA8C5C;QADC,OAAO;8DASP;IA/FQ,oBAAoB;QArBhC,SAAS,CAAC;YACP,QAAQ,EAAE,eAAe;YACzB,w0CAAwC;YAExC,eAAe,EAAE,uBAAuB,CAAC,MAAM;YAC/C,SAAS,EAAE;gBACP;oBACI,OAAO,EAAE,2BAA2B;oBACpC,WAAW,EAAE,UAAU,CAAC,cAAM,OAAA,sBAAoB,GAAA,CAAC;iBACtD;gBACD;oBACI,OAAO,EAAE,kBAAkB;oBAC3B,WAAW,EAAE,UAAU,CAAC,cAAM,OAAA,sBAAoB,GAAA,CAAC;iBACtD;gBACD;oBACI,OAAO,EAAE,kBAAkB;oBAC3B,QAAQ,EAAE,eAAe;iBAC5B;gBACD,kCAAkC;aACrC;;SACJ,CAAC;QA+CO,WAAA,QAAQ,EAAE,CAAA;QACV,WAAA,IAAI,EAAE,CAAA;QACN,WAAA,MAAM,CAAC,SAAS,CAAC,CAAA;QAEjB,WAAA,MAAM,CAAC,iBAAiB,CAAC,CAAA;OAlDrB,oBAAoB,CAgMhC;IAAD,2BAAC;CAAA,CA/LW,0BAA0B;;;IClDtC;KAAiC;IAApB,iBAAiB;QAb7B,QAAQ,CAAC;YACN,OAAO,EAAE;gBACL,YAAY;gBACZ,kBAAkB;gBAClB,mBAAmB;gBACnB,2BAA2B;gBAC3B,uBAAuB;gBACvB,qBAAqB;gBACrB,cAAc;aACjB;YACD,YAAY,EAAE,CAAC,oBAAoB,CAAC;YACpC,OAAO,EAAE,CAAC,oBAAoB,CAAC;SAClC,CAAC;OACW,iBAAiB,CAAG;IAAD,wBAAC;CAAjC;;ACvBA;;;;;;"}
@@ -3,7 +3,8 @@ import { Optional, Self, Inject, Input, Component, ChangeDetectionStrategy, NgMo
3
3
  import { NgControl, FormArrayName, FormGroupName, FormGroupDirective } from '@angular/forms';
4
4
  import { TuiValidationError, tuiDefaultProp, tuiPure } from '@taiga-ui/cdk';
5
5
  import { TUI_VALIDATION_ERRORS } from '@taiga-ui/kit/tokens';
6
- import { merge, EMPTY } from 'rxjs';
6
+ import { merge, EMPTY, isObservable } from 'rxjs';
7
+ import { map } from 'rxjs/operators';
7
8
  import { CommonModule } from '@angular/common';
8
9
  import { TuiErrorModule } from '@taiga-ui/core';
9
10
 
@@ -36,6 +37,14 @@ var TuiFieldErrorComponent = /** @class */ (function () {
36
37
  enumerable: true,
37
38
  configurable: true
38
39
  });
40
+ Object.defineProperty(TuiFieldErrorComponent.prototype, "isObservable", {
41
+ get: function () {
42
+ var errorId = this.errorId;
43
+ return isObservable(this.validationErrors[errorId]);
44
+ },
45
+ enumerable: true,
46
+ configurable: true
47
+ });
39
48
  TuiFieldErrorComponent.prototype.registerOnChange = function () { };
40
49
  TuiFieldErrorComponent.prototype.registerOnTouched = function () { };
41
50
  TuiFieldErrorComponent.prototype.setDisabledState = function () { };
@@ -109,9 +118,13 @@ var TuiFieldErrorComponent = /** @class */ (function () {
109
118
  if (firstError instanceof TuiValidationError) {
110
119
  return firstError;
111
120
  }
112
- return errorContent === undefined && typeof firstError === 'string'
113
- ? new TuiValidationError(firstError)
114
- : new TuiValidationError(errorContent || '', firstError);
121
+ if (errorContent === undefined && typeof firstError === 'string') {
122
+ return new TuiValidationError(firstError);
123
+ }
124
+ if (isObservable(errorContent)) {
125
+ return errorContent.pipe(map(function (error) { return new TuiValidationError(error || '', firstError); }));
126
+ }
127
+ return new TuiValidationError(errorContent || '', firstError);
115
128
  };
116
129
  TuiFieldErrorComponent.ctorParameters = function () { return [
117
130
  { type: NgControl, decorators: [{ type: Optional }, { type: Self }, { type: Inject, args: [NgControl,] }] },
@@ -139,7 +152,7 @@ var TuiFieldErrorComponent = /** @class */ (function () {
139
152
  // @bad TODO: find a way to get 'touched' state change
140
153
  // https://github.com/angular/angular/issues/10887
141
154
  changeDetection: ChangeDetectionStrategy.Default,
142
- template: "<ng-container *ngIf=\"change$ | async\"></ng-container>\n<tui-error [error]=\"computedError\"></tui-error>\n",
155
+ template: "<ng-container *ngIf=\"change$ | async\"></ng-container>\n<tui-error\n *ngIf=\"isObservable; else string\"\n [error]=\"$any(computedError) | async\"\n></tui-error>\n<ng-template #string>\n <tui-error [error]=\"computedError\"></tui-error>\n</ng-template>\n",
143
156
  styles: [":host{display:block}"]
144
157
  }),
145
158
  __param(0, Optional()),
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-kit-components-field-error.js","sources":["ng://@taiga-ui/kit/components/field-error/field-error.component.ts","ng://@taiga-ui/kit/components/field-error/field-error.module.ts","ng://@taiga-ui/kit/components/field-error/taiga-ui-kit-components-field-error.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n Inject,\n Input,\n Optional,\n Self,\n} from '@angular/core';\nimport {\n AbstractControl,\n FormArrayName,\n FormGroupDirective,\n FormGroupName,\n NgControl,\n} from '@angular/forms';\nimport {tuiDefaultProp, tuiPure, TuiValidationError} from '@taiga-ui/cdk';\nimport {TUI_VALIDATION_ERRORS} from '@taiga-ui/kit/tokens';\nimport {PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\nimport {EMPTY, merge, Observable} from 'rxjs';\n\nconst EMPTY_RECORD = {};\n\n// @dynamic\n@Component({\n selector: 'tui-field-error',\n // @bad TODO: find a way to get 'touched' state change\n // https://github.com/angular/angular/issues/10887\n changeDetection: ChangeDetectionStrategy.Default,\n templateUrl: './field-error.template.html',\n styleUrls: ['./field-error.style.less'],\n})\nexport class TuiFieldErrorComponent {\n @Input()\n @tuiDefaultProp()\n order: readonly string[] = [];\n\n constructor(\n @Optional()\n @Self()\n @Inject(NgControl)\n private readonly ngControl: NgControl | null,\n @Optional()\n @Self()\n @Inject(FormArrayName)\n private readonly formArrayName: FormArrayName | null,\n @Optional()\n @Self()\n @Inject(FormGroupName)\n private readonly formGroupName: FormGroupName | null,\n @Optional()\n @Self()\n @Inject(FormGroupDirective)\n private readonly formGroup: FormGroupDirective | null,\n @Inject(TUI_VALIDATION_ERRORS)\n private readonly validationErrors: Record<string, PolymorpheusContent>,\n ) {\n if (this.ngControl) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n @tuiPure\n get change$(): Observable<unknown> {\n return merge(\n this.control?.valueChanges || EMPTY,\n this.control?.statusChanges || EMPTY,\n );\n }\n\n get computedError(): TuiValidationError | null {\n return (this.invalid && this.touched && this.error) || null;\n }\n\n registerOnChange() {}\n\n registerOnTouched() {}\n\n setDisabledState() {}\n\n writeValue() {}\n\n private get error(): TuiValidationError | null {\n const {errorId} = this;\n\n if (!errorId) {\n return null;\n }\n\n const firstError = this.controlErrors[errorId];\n const errorContent = this.validationErrors[errorId];\n\n return this.getError(firstError, errorContent);\n }\n\n private get invalid(): boolean {\n return !!this.control && this.control.invalid;\n }\n\n private get touched(): boolean {\n return !!this.control && this.control.touched;\n }\n\n private get control(): AbstractControl | null {\n if (this.ngControl) {\n return this.ngControl.control;\n }\n\n if (this.formArrayName) {\n return this.formArrayName.control;\n }\n\n if (this.formGroupName) {\n return this.formGroupName.control;\n }\n\n if (this.formGroup) {\n return this.formGroup.control;\n }\n\n return null;\n }\n\n private get errorId(): string {\n return this.getErrorId(this.order, this.controlErrors);\n }\n\n private get controlErrors(): Record<string, any> {\n return (this.control && this.control.errors) || EMPTY_RECORD;\n }\n\n @tuiPure\n private getErrorId(\n order: readonly string[],\n controlErrors: Record<string, any>,\n ): string {\n const id = order && order.find(errorId => controlErrors[errorId]);\n const fallback = Object.keys(controlErrors)[0];\n\n return id || fallback || '';\n }\n\n @tuiPure\n private getError(\n firstError: any,\n errorContent?: PolymorpheusContent,\n ): TuiValidationError | null {\n if (firstError instanceof TuiValidationError) {\n return firstError;\n }\n\n return errorContent === undefined && typeof firstError === 'string'\n ? new TuiValidationError(firstError)\n : new TuiValidationError(errorContent || '', firstError);\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {TuiErrorModule} from '@taiga-ui/core';\n\nimport {TuiFieldErrorComponent} from './field-error.component';\n\n@NgModule({\n imports: [CommonModule, TuiErrorModule],\n declarations: [TuiFieldErrorComponent],\n exports: [TuiFieldErrorComponent],\n})\nexport class TuiFieldErrorModule {}\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-field-error.js","sources":["ng://@taiga-ui/kit/components/field-error/field-error.component.ts","ng://@taiga-ui/kit/components/field-error/field-error.module.ts","ng://@taiga-ui/kit/components/field-error/taiga-ui-kit-components-field-error.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n Inject,\n Input,\n Optional,\n Self,\n} from '@angular/core';\nimport {\n AbstractControl,\n FormArrayName,\n FormGroupDirective,\n FormGroupName,\n NgControl,\n} from '@angular/forms';\nimport {tuiDefaultProp, tuiPure, TuiValidationError} from '@taiga-ui/cdk';\nimport {TUI_VALIDATION_ERRORS} from '@taiga-ui/kit/tokens';\nimport {PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\nimport {EMPTY, isObservable, merge, Observable} from 'rxjs';\nimport {map} from 'rxjs/operators';\n\nconst EMPTY_RECORD = {};\n\n// @dynamic\n@Component({\n selector: 'tui-field-error',\n // @bad TODO: find a way to get 'touched' state change\n // https://github.com/angular/angular/issues/10887\n changeDetection: ChangeDetectionStrategy.Default,\n templateUrl: './field-error.template.html',\n styleUrls: ['./field-error.style.less'],\n})\nexport class TuiFieldErrorComponent {\n @Input()\n @tuiDefaultProp()\n order: readonly string[] = [];\n\n constructor(\n @Optional()\n @Self()\n @Inject(NgControl)\n private readonly ngControl: NgControl | null,\n @Optional()\n @Self()\n @Inject(FormArrayName)\n private readonly formArrayName: FormArrayName | null,\n @Optional()\n @Self()\n @Inject(FormGroupName)\n private readonly formGroupName: FormGroupName | null,\n @Optional()\n @Self()\n @Inject(FormGroupDirective)\n private readonly formGroup: FormGroupDirective | null,\n @Inject(TUI_VALIDATION_ERRORS)\n private readonly validationErrors: Record<\n string,\n PolymorpheusContent | Observable<PolymorpheusContent>\n >,\n ) {\n if (this.ngControl) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n @tuiPure\n get change$(): Observable<unknown> {\n return merge(\n this.control?.valueChanges || EMPTY,\n this.control?.statusChanges || EMPTY,\n );\n }\n\n get computedError(): TuiValidationError | Observable<TuiValidationError> | null {\n return (this.invalid && this.touched && this.error) || null;\n }\n\n get isObservable() {\n const {errorId} = this;\n\n return isObservable(this.validationErrors[errorId]);\n }\n\n registerOnChange() {}\n\n registerOnTouched() {}\n\n setDisabledState() {}\n\n writeValue() {}\n\n private get error(): TuiValidationError | Observable<TuiValidationError> | null {\n const {errorId} = this;\n\n if (!errorId) {\n return null;\n }\n\n const firstError = this.controlErrors[errorId];\n const errorContent = this.validationErrors[errorId];\n\n return this.getError(firstError, errorContent);\n }\n\n private get invalid(): boolean {\n return !!this.control && this.control.invalid;\n }\n\n private get touched(): boolean {\n return !!this.control && this.control.touched;\n }\n\n private get control(): AbstractControl | null {\n if (this.ngControl) {\n return this.ngControl.control;\n }\n\n if (this.formArrayName) {\n return this.formArrayName.control;\n }\n\n if (this.formGroupName) {\n return this.formGroupName.control;\n }\n\n if (this.formGroup) {\n return this.formGroup.control;\n }\n\n return null;\n }\n\n private get errorId(): string {\n return this.getErrorId(this.order, this.controlErrors);\n }\n\n private get controlErrors(): Record<string, any> {\n return (this.control && this.control.errors) || EMPTY_RECORD;\n }\n\n @tuiPure\n private getErrorId(\n order: readonly string[],\n controlErrors: Record<string, any>,\n ): string {\n const id = order && order.find(errorId => controlErrors[errorId]);\n const fallback = Object.keys(controlErrors)[0];\n\n return id || fallback || '';\n }\n\n @tuiPure\n private getError(\n firstError: any,\n errorContent?: PolymorpheusContent | Observable<PolymorpheusContent>,\n ): TuiValidationError | Observable<TuiValidationError> | null {\n if (firstError instanceof TuiValidationError) {\n return firstError;\n }\n\n if (errorContent === undefined && typeof firstError === 'string') {\n return new TuiValidationError(firstError);\n }\n\n if (isObservable(errorContent)) {\n return errorContent.pipe(\n map(error => new TuiValidationError(error || '', firstError)),\n );\n }\n\n return new TuiValidationError(errorContent || '', firstError);\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {TuiErrorModule} from '@taiga-ui/core';\n\nimport {TuiFieldErrorComponent} from './field-error.component';\n\n@NgModule({\n imports: [CommonModule, TuiErrorModule],\n declarations: [TuiFieldErrorComponent],\n exports: [TuiFieldErrorComponent],\n})\nexport class TuiFieldErrorModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -121,18 +121,14 @@ var TuiInputCountComponent = /** @class */ (function (_super) {
121
121
  });
122
122
  Object.defineProperty(TuiInputCountComponent.prototype, "minusButtonDisabled", {
123
123
  get: function () {
124
- return (this.disabled ||
125
- this.readOnly ||
126
- (isPresent(this.value) && this.value <= this.min));
124
+ return !this.interactive || (isPresent(this.value) && this.value <= this.min);
127
125
  },
128
126
  enumerable: true,
129
127
  configurable: true
130
128
  });
131
129
  Object.defineProperty(TuiInputCountComponent.prototype, "plusButtonDisabled", {
132
130
  get: function () {
133
- return (this.disabled ||
134
- this.readOnly ||
135
- (isPresent(this.value) && this.value >= this.max));
131
+ return !this.interactive || (isPresent(this.value) && this.value >= this.max);
136
132
  },
137
133
  enumerable: true,
138
134
  configurable: true
@@ -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 public 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 (\n this.disabled ||\n this.readOnly ||\n (isPresent(this.value) && this.value <= this.min)\n );\n }\n\n get plusButtonDisabled(): boolean {\n return (\n this.disabled ||\n this.readOnly ||\n (isPresent(this.value) && this.value >= this.max)\n );\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.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":";;;;;;;;;;;;AAgBA;IACa,gBAAgB,GAAG,cAAc;IACjC,kBAAkB,GAAG,eAAe;AAEjD;IACa,+BAA+B,GAAsB;IAC9D,KAAK,EAAE;QACH,EAAE,EAAE,gBAAgB;QACpB,IAAI,EAAE,kBAAkB;KAC3B;IACD,UAAU,EAAE,WAAW;IACvB,WAAW,EAAE,KAAK;IAClB,GAAG,EAAE,CAAC;IACN,GAAG,EAAE,QAAQ;IACb,IAAI,EAAE,CAAC;IACP,OAAO,EAAE,EAAE;EACb;IAEW,uBAAuB,GAAG,IAAI,cAAc,CACrD,8CAA8C,EAC9C;IACI,OAAO,EAAE,cAAM,OAAA,+BAA+B,GAAA;CACjD;;ACOL;;IAcY,0CAA0B;IA8BlC,gCAII,OAAyB,EACE,iBAAoC,EAE9C,UAAkB,EAElB,aAAwC,EAEhD,WAAyC,EACV,QAAiB,EAEhD,OAA0B,EAElB,YAAkC;QAhBvD,YAkBI,kBAAM,OAAO,EAAE,iBAAiB,CAAC,SACpC;QAZoB,gBAAU,GAAV,UAAU,CAAQ;QAElB,mBAAa,GAAb,aAAa,CAA2B;QAEhD,iBAAW,GAAX,WAAW,CAA8B;QACV,cAAQ,GAAR,QAAQ,CAAS;QAEhD,aAAO,GAAP,OAAO,CAAmB;QAElB,kBAAY,GAAZ,YAAY,CAAsB;QAtCvD,UAAI,GAAG,KAAI,CAAC,OAAO,CAAC,IAAI,CAAC;QAIzB,SAAG,GAAG,KAAI,CAAC,OAAO,CAAC,GAAG,CAAC;QAIvB,SAAG,GAAG,KAAI,CAAC,OAAO,CAAC,GAAG,CAAC;QAIvB,iBAAW,GAAG,KAAI,CAAC,OAAO,CAAC,WAAW,CAAC;QAIvC,YAAM,GAAG,EAAE,CAAC;QAIZ,aAAO,GAAG,KAAI,CAAC,OAAO,CAAC,OAAO,CAAC;;KAqB9B;+BAlDQ,sBAAsB;IAqD/B,wCAAO,GAAP,UAAQ,aAAsB;QAC1B,OAAO;YACH,IAAI,EAAE,mBAAmB,CAAC;gBACtB,aAAa,eAAA;gBACb,aAAa,EAAE,IAAI,CAAC,YAAY,CAAC,gBAAgB;gBACjD,cAAc,EAAE,IAAI,CAAC,YAAY,CAAC,iBAAiB;aACtD,CAAC;YACF,KAAK,EAAE,KAAK;SACf,CAAC;KACL;IAID,sBAAI,iDAAa;;aAAjB;YACI,OAAO,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,UAAU,KAAK,OAAO,CAAC;SAC1D;;;OAAA;IAED,sBAAI,0CAAM;aAAV;YACI,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;SAChC;;;OAAA;IAED,sBAAI,4CAAQ;aAAZ;YACI,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC;SAClC;;;OAAA;IAED,sBAAI,0DAAsB;aAA1B;YACI,OAAO,CAAC,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,gBAAgB;kBAClD,IAAI;kBACJ,IAAI,CAAC,kBAAkB,CAAC,sBAAsB,CAAC;SACxD;;;OAAA;IAGD,sBAAI,wCAAI;aAAR;YACI,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;SAClC;;;OAAA;IAED,sBAAI,2CAAO;aAAX;YACI,OAAO,eAAe,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;SACvD;;;OAAA;IAED,sBAAI,+CAAW;aAAf;YACI,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;SAC3B;;;OAAA;IAED,sBAAI,iDAAa;aAAjB;YACI,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACxC;;;OAAA;IAED,sBAAI,uDAAmB;aAAvB;YACI,OAAO,CAAC,IAAI,CAAC,WAAW,KAAK,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC;SACjF;;;OAAA;IAED,sBAAI,sDAAkB;aAAtB;YACI,OAAO,CAAC,IAAI,CAAC,WAAW,KAAK,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC;SACjF;;;OAAA;IAED,kDAAiB,GAAjB,UAAkB,KAAiB,EAAE,QAAyB;QAAzB,yBAAA,EAAA,gBAAyB;QAC1D,IAAI,QAAQ,IAAI,CAAC,IAAI,CAAC,sBAAsB,IAAI,IAAI,CAAC,QAAQ,EAAE;YAC3D,OAAO;SACV;QAED,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,gBAAgB,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;KACjD;IAED,0CAAS,GAAT,UAAU,OAAgB;QACtB,IAAI,CAAC,OAAO,EAAE;YACV,IAAI,CAAC,MAAM,EAAE,CAAC;SACjB;QAED,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;KAC/B;IAED,0CAAS,GAAT,UAAU,OAAgB;QACtB,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;KAC/B;IAED,0CAAS,GAAT,UAAU,OAAgB;QACtB,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;KAC/B;IAED,8CAAa,GAAb;QACI,IAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAErD,IAAI,MAAM,KAAK,IAAI,IAAI,KAAK,CAAC,MAAM,CAAC,EAAE;YAClC,OAAO;SACV;QAED,IAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QAE3C,IAAI,IAAI,CAAC,WAAW,KAAK,QAAQ,EAAE;YAC/B,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC;SAC/B;QAED,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;KAC5B;IAED,8CAAa,GAAb;QACI,IAAI,IAAI,CAAC,QAAQ,EAAE;YACf,OAAO;SACV;QAED,IAAM,QAAQ,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC;QAE/C,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;KAClC;IAED,8CAAa,GAAb;QACI,IAAI,IAAI,CAAC,QAAQ,EAAE;YACf,OAAO;SACV;QAED,IAAM,QAAQ,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC;QAE/C,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;KAClC;IAED,0CAAS,GAAT,UAAU,KAAoB;QAC1B,QAAQ,KAAK,CAAC,GAAG;YACb,KAAK,SAAS,CAAC;YACf,KAAK,IAAI;gBACL,IAAI,CAAC,aAAa,EAAE,CAAC;gBACrB,KAAK,CAAC,cAAc,EAAE,CAAC;gBACvB,MAAM;YACV,KAAK,WAAW,CAAC;YACjB,KAAK,MAAM;gBACP,IAAI,CAAC,aAAa,EAAE,CAAC;gBACrB,KAAK,CAAC,cAAc,EAAE,CAAC;gBACvB,MAAM;YACV;gBACI,MAAM;SACb;KACJ;IAES,iDAAgB,GAA1B;QACI,OAAO,CAAC,CAAC;KACZ;IAED,sBAAY,qDAAiB;aAA7B;YACI,OAAO,QAAQ,CACX,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EACpE,EAAE,CACL,CAAC;SACL;;;OAAA;IAED,sBAAY,+CAAW;aAAvB;YACI,OAAO,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,sBAAsB,CAAC,KAAK,GAAG,EAAE,CAAC;SAC/E;aAED,UAAwB,KAAa;YACjC,IAAI,CAAC,IAAI,CAAC,sBAAsB,EAAE;gBAC9B,OAAO;aACV;YAED,IAAI,CAAC,sBAAsB,CAAC,KAAK,GAAG,KAAK,CAAC;SAC7C;;;OARA;IAUO,gDAAe,GAAvB,UAAwB,QAAgB;QACpC,IAAM,KAAK,GAAG,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;QAElD,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QACxB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;KAC/C;IAEO,yCAAQ,GAAhB,UAAiB,KAAa;QAC1B,IAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;QAEzC,OAAO,KAAK,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,GAAG,MAAM,CAAC;KAC7D;IAEO,uCAAM,GAAd;QACI,IAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,iBAAiB,IAAI,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;QAC9D,IAAM,cAAc,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QAEhD,IAAI,CAAC,WAAW,GAAG,cAAc,CAAC;QAClC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAExB,IAAI,IAAI,CAAC,kBAAkB,EAAE;YACzB,IAAI,CAAC,kBAAkB,CAAC,KAAK,GAAG,cAAc,CAAC;SAClD;KACJ;IAEO,6CAAY,GAApB,UAAqB,KAAa;QAC9B,OAAO,YAAY,CACf,KAAK,EACL,IAAI,EACJ,IAAI,CAAC,YAAY,CAAC,gBAAgB,EAClC,IAAI,CAAC,YAAY,CAAC,iBAAiB,CACtC,CAAC;KACL;;;gBA/MY,SAAS,uBAHjB,QAAQ,YACR,IAAI,YACJ,MAAM,SAAC,SAAS;gBAE6B,iBAAiB,uBAA9D,MAAM,SAAC,iBAAiB;6CACxB,MAAM,SAAC,wBAAwB;gBAGA,yBAAyB,uBADxD,MAAM,SAAC,kBAAkB;gBAGJ,UAAU,uBAD/B,MAAM,SAAC,oBAAoB;8CAE3B,MAAM,SAAC,aAAa;gDACpB,MAAM,SAAC,uBAAuB;gDAE9B,MAAM,SAAC,iBAAiB;;IAzC7B;QADC,SAAS,CAAC,8BAA8B,CAAC;sEAC2B;IAIrE;QAFC,KAAK,EAAE;QACP,cAAc,EAAE;wDACQ;IAIzB;QAFC,KAAK,EAAE;QACP,cAAc,EAAE;uDACM;IAIvB;QAFC,KAAK,EAAE;QACP,cAAc,EAAE;uDACM;IAIvB;QAFC,KAAK,EAAE;QACP,cAAc,EAAE;+DACsB;IAIvC;QAFC,KAAK,EAAE;QACP,cAAc,EAAE;0DACL;IAIZ;QAFC,KAAK,EAAE;QACP,cAAc,EAAE;2DACc;IAwB/B;QADC,OAAO;yDAUP;IAID;QADC,WAAW,CAAC,qBAAqB,CAAC;+DAGlC;IAiBD;QADC,WAAW,CAAC,yBAAyB,CAAC;sDAGtC;IAvFQ,sBAAsB;QAZlC,SAAS,CAAC;YACP,QAAQ,EAAE,iBAAiB;YAC3B,ghEAA0C;YAE1C,eAAe,EAAE,uBAAuB,CAAC,MAAM;YAC/C,SAAS,EAAE;gBACP;oBACI,OAAO,EAAE,2BAA2B;oBACpC,WAAW,EAAE,UAAU,CAAC,cAAM,OAAA,wBAAsB,GAAA,CAAC;iBACxD;aACJ;;SACJ,CAAC;QAiCO,WAAA,QAAQ,EAAE,CAAA;QACV,WAAA,IAAI,EAAE,CAAA;QACN,WAAA,MAAM,CAAC,SAAS,CAAC,CAAA;QAEjB,WAAA,MAAM,CAAC,iBAAiB,CAAC,CAAA;QACzB,WAAA,MAAM,CAAC,wBAAwB,CAAC,CAAA;QAEhC,WAAA,MAAM,CAAC,kBAAkB,CAAC,CAAA;QAE1B,WAAA,MAAM,CAAC,oBAAoB,CAAC,CAAA;QAE5B,WAAA,MAAM,CAAC,aAAa,CAAC,CAAA;QACrB,WAAA,MAAM,CAAC,uBAAuB,CAAC,CAAA;QAE/B,WAAA,MAAM,CAAC,iBAAiB,CAAC,CAAA;OA9CrB,sBAAsB,CAmPlC;IAAD,6BAAC;CAAA,CAlPW,kBAAkB;;;ICjC9B;KAAmC;IAAtB,mBAAmB;QAb/B,QAAQ,CAAC;YACN,OAAO,EAAE;gBACL,YAAY;gBACZ,cAAc;gBACd,eAAe;gBACf,2BAA2B;gBAC3B,4BAA4B;gBAC5B,sBAAsB;gBACtB,kBAAkB;aACrB;YACD,YAAY,EAAE,CAAC,sBAAsB,CAAC;YACtC,OAAO,EAAE,CAAC,sBAAsB,CAAC;SACpC,CAAC;OACW,mBAAmB,CAAG;IAAD,0BAAC;CAAnC;;AC1BA;;;;;;"}
@@ -1,27 +1,28 @@
1
1
  import { __extends, __decorate, __param } from 'tslib';
2
2
  import { Optional, Self, Inject, ChangeDetectorRef, Injector, Type, ViewChild, Input, HostListener, Component, forwardRef, NgModule } from '@angular/core';
3
3
  import { NgControl } from '@angular/forms';
4
- import { ALWAYS_FALSE_HANDLER, TuiMonth, TUI_FIRST_DAY, TUI_LAST_DAY, nullableSame, DATE_RANGE_FILLER_LENGTH, TuiDayRange, DATE_FILLER_LENGTH, RANGE_SEPARATOR_CHAR, setNativeFocused, TUI_IS_MOBILE, TUI_DATE_FORMAT, tuiDefaultProp, TUI_FOCUSABLE_ITEM_ACCESSOR, AbstractTuiNullableControl, TuiActiveZoneModule, TuiLetModule } from '@taiga-ui/cdk';
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
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';
6
- import { TUI_DATE_RANGE_MASK, MAX_DAY_RANGE_LENGTH_MAPPER, EMPTY_MASK } from '@taiga-ui/kit/constants';
6
+ import { MAX_DAY_RANGE_LENGTH_MAPPER, EMPTY_MASK } from '@taiga-ui/kit/constants';
7
7
  import { LEFT_ALIGNED_DROPDOWN_CONTROLLER_PROVIDER } from '@taiga-ui/kit/providers';
8
- import { TUI_MOBILE_CALENDAR, TUI_DATE_TEXTS, TUI_CALENDAR_DATA_STREAM } from '@taiga-ui/kit/tokens';
9
- import { tuiCreateAutoCorrectedDateRangePipe } from '@taiga-ui/kit/utils/mask';
8
+ import { TUI_MOBILE_CALENDAR, TUI_DATE_TEXTS, TUI_DATE_RANGE_VALUE_TRANSFORMER, TUI_CALENDAR_DATA_STREAM } from '@taiga-ui/kit/tokens';
9
+ import { tuiCreateDateRangeMask, tuiCreateAutoCorrectedDateRangePipe } from '@taiga-ui/kit/utils/mask';
10
10
  import { TuiReplayControlValueChangesFactory } from '@taiga-ui/kit/utils/miscellaneous';
11
11
  import { PolymorpheusComponent, PolymorpheusModule } from '@tinkoff/ng-polymorpheus';
12
12
  import { Observable } from 'rxjs';
13
- import { pluck, takeUntil } from 'rxjs/operators';
13
+ import { map, takeUntil } from 'rxjs/operators';
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';
17
17
  import { TextMaskModule } from 'angular2-text-mask';
18
18
 
19
19
  // TODO: remove in ivy compilation
20
- var RANGE_STREAM_FACTORY = TuiReplayControlValueChangesFactory;
20
+ var RANGE_STREAM_FACTORY = function (control, valueTransformer) { return TuiReplayControlValueChangesFactory(control, valueTransformer); };
21
+ // @dynamic
21
22
  var TuiInputDateRangeComponent = /** @class */ (function (_super) {
22
23
  __extends(TuiInputDateRangeComponent, _super);
23
- function TuiInputDateRangeComponent(control, changeDetectorRef, injector, isMobile, dialogService, mobileCalendar, textfieldSize, textfieldExampleText, dateFormat, dateTexts$) {
24
- var _this = _super.call(this, control, changeDetectorRef) || this;
24
+ function TuiInputDateRangeComponent(control, changeDetectorRef, injector, isMobile, dialogService, mobileCalendar, textfieldSize, textfieldExampleText, dateFormat, dateSeparator, dateTexts$, valueTransformer) {
25
+ var _this = _super.call(this, control, changeDetectorRef, valueTransformer) || this;
25
26
  _this.injector = injector;
26
27
  _this.isMobile = isMobile;
27
28
  _this.dialogService = dialogService;
@@ -29,9 +30,11 @@ var TuiInputDateRangeComponent = /** @class */ (function (_super) {
29
30
  _this.textfieldSize = textfieldSize;
30
31
  _this.textfieldExampleText = textfieldExampleText;
31
32
  _this.dateFormat = dateFormat;
33
+ _this.dateSeparator = dateSeparator;
32
34
  _this.dateTexts$ = dateTexts$;
35
+ _this.valueTransformer = valueTransformer;
33
36
  _this.textMaskOptions = {
34
- mask: TUI_DATE_RANGE_MASK,
37
+ mask: tuiCreateDateRangeMask(_this.dateFormat, _this.dateSeparator),
35
38
  pipe: tuiCreateAutoCorrectedDateRangePipe(_this),
36
39
  guide: false,
37
40
  };
@@ -45,7 +48,9 @@ var TuiInputDateRangeComponent = /** @class */ (function (_super) {
45
48
  _this.maxLength = null;
46
49
  _this.open = false;
47
50
  _this.maxLengthMapper = MAX_DAY_RANGE_LENGTH_MAPPER;
48
- _this.dateFiller$ = _this.dateTexts$.pipe(pluck(_this.dateFormat));
51
+ _this.dateFiller$ = _this.dateTexts$.pipe(map(function (dateTexts) {
52
+ return changeDateSeparator(dateTexts[_this.dateFormat], _this.dateSeparator);
53
+ }));
49
54
  return _this;
50
55
  }
51
56
  TuiInputDateRangeComponent_1 = TuiInputDateRangeComponent;
@@ -81,7 +86,7 @@ var TuiInputDateRangeComponent = /** @class */ (function (_super) {
81
86
  });
82
87
  Object.defineProperty(TuiInputDateRangeComponent.prototype, "canOpen", {
83
88
  get: function () {
84
- return !this.computedDisabled && !this.readOnly && !this.computedMobile;
89
+ return this.interactive && !this.computedMobile;
85
90
  },
86
91
  enumerable: true,
87
92
  configurable: true
@@ -119,7 +124,9 @@ var TuiInputDateRangeComponent = /** @class */ (function (_super) {
119
124
  if (activePeriod) {
120
125
  return String(activePeriod);
121
126
  }
122
- return value ? value.formattedDayRange : nativeValue;
127
+ return value
128
+ ? value.getFormattedDayRange(this.dateFormat, this.dateSeparator)
129
+ : nativeValue;
123
130
  },
124
131
  enumerable: true,
125
132
  configurable: true
@@ -194,7 +201,7 @@ var TuiInputDateRangeComponent = /** @class */ (function (_super) {
194
201
  this.updateValue(null);
195
202
  return;
196
203
  }
197
- var parsedValue = TuiDayRange.normalizeParse(value);
204
+ var parsedValue = TuiDayRange.normalizeParse(value, this.dateFormat);
198
205
  this.updateValue(!this.minLength && !this.maxLength
199
206
  ? parsedValue
200
207
  : this.clampValue(parsedValue));
@@ -234,7 +241,7 @@ var TuiInputDateRangeComponent = /** @class */ (function (_super) {
234
241
  (this.nativeValue.length === DATE_FILLER_LENGTH ||
235
242
  this.nativeValue.length ===
236
243
  DATE_FILLER_LENGTH + RANGE_SEPARATOR_CHAR.length)) {
237
- this.updateValue(TuiDayRange.normalizeParse(this.nativeValue));
244
+ this.updateValue(TuiDayRange.normalizeParse(this.nativeValue, this.dateFormat));
238
245
  }
239
246
  };
240
247
  TuiInputDateRangeComponent.prototype.writeValue = function (value) {
@@ -283,7 +290,9 @@ var TuiInputDateRangeComponent = /** @class */ (function (_super) {
283
290
  { type: TuiTextfieldSizeDirective, decorators: [{ type: Inject, args: [TUI_TEXTFIELD_SIZE,] }] },
284
291
  { type: TuiTextfieldExampleTextDirective, decorators: [{ type: Inject, args: [TUI_TEXTFIELD_EXAMPLE_TEXT,] }] },
285
292
  { type: undefined, decorators: [{ type: Inject, args: [TUI_DATE_FORMAT,] }] },
286
- { type: Observable, decorators: [{ type: Inject, args: [TUI_DATE_TEXTS,] }] }
293
+ { type: String, decorators: [{ type: Inject, args: [TUI_DATE_SEPARATOR,] }] },
294
+ { type: Observable, decorators: [{ type: Inject, args: [TUI_DATE_TEXTS,] }] },
295
+ { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [TUI_DATE_RANGE_VALUE_TRANSFORMER,] }] }
287
296
  ]; };
288
297
  __decorate([
289
298
  ViewChild(TuiPrimitiveTextfieldComponent)
@@ -326,7 +335,7 @@ var TuiInputDateRangeComponent = /** @class */ (function (_super) {
326
335
  TuiInputDateRangeComponent = TuiInputDateRangeComponent_1 = __decorate([
327
336
  Component({
328
337
  selector: 'tui-input-date-range',
329
- 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 ? iconContent : calendarIcon\"\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 #iconContent>\n <tui-svg\n automation-id=\"tui-input-date-range__icon\"\n [class.icon]=\"!computedDisabled\"\n [src]=\"calendarIcon\"\n (click)=\"onMobileClick()\"\n ></tui-svg>\n </ng-template>\n\n <ng-template #dropdown>\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",
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",
330
339
  providers: [
331
340
  {
332
341
  provide: TUI_FOCUSABLE_ITEM_ACCESSOR,
@@ -334,7 +343,10 @@ var TuiInputDateRangeComponent = /** @class */ (function (_super) {
334
343
  },
335
344
  {
336
345
  provide: TUI_CALENDAR_DATA_STREAM,
337
- deps: [[new Optional(), new Self(), NgControl]],
346
+ deps: [
347
+ [new Optional(), new Self(), NgControl],
348
+ [new Optional(), forwardRef(function () { return TUI_DATE_RANGE_VALUE_TRANSFORMER; })],
349
+ ],
338
350
  useFactory: RANGE_STREAM_FACTORY,
339
351
  },
340
352
  LEFT_ALIGNED_DROPDOWN_CONTROLLER_PROVIDER,
@@ -353,7 +365,10 @@ var TuiInputDateRangeComponent = /** @class */ (function (_super) {
353
365
  __param(6, Inject(TUI_TEXTFIELD_SIZE)),
354
366
  __param(7, Inject(TUI_TEXTFIELD_EXAMPLE_TEXT)),
355
367
  __param(8, Inject(TUI_DATE_FORMAT)),
356
- __param(9, Inject(TUI_DATE_TEXTS))
368
+ __param(9, Inject(TUI_DATE_SEPARATOR)),
369
+ __param(10, Inject(TUI_DATE_TEXTS)),
370
+ __param(11, Optional()),
371
+ __param(11, Inject(TUI_DATE_RANGE_VALUE_TRANSFORMER))
357
372
  ], TuiInputDateRangeComponent);
358
373
  return TuiInputDateRangeComponent;
359
374
  }(AbstractTuiNullableControl));
@@ -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 DATE_FILLER_LENGTH,\n DATE_RANGE_FILLER_LENGTH,\n nullableSame,\n RANGE_SEPARATOR_CHAR,\n setNativeFocused,\n TUI_DATE_FORMAT,\n TUI_FIRST_DAY,\n TUI_FOCUSABLE_ITEM_ACCESSOR,\n TUI_IS_MOBILE,\n TUI_LAST_DAY,\n TuiBooleanHandler,\n TuiDateMode,\n TuiDay,\n 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 {\n EMPTY_MASK,\n MAX_DAY_RANGE_LENGTH_MAPPER,\n TUI_DATE_RANGE_MASK,\n} from '@taiga-ui/kit/constants';\nimport {LEFT_ALIGNED_DROPDOWN_CONTROLLER_PROVIDER} from '@taiga-ui/kit/providers';\nimport {\n TUI_CALENDAR_DATA_STREAM,\n TUI_DATE_TEXTS,\n TUI_MOBILE_CALENDAR,\n} from '@taiga-ui/kit/tokens';\nimport {tuiCreateAutoCorrectedDateRangePipe} from '@taiga-ui/kit/utils/mask';\nimport {TuiReplayControlValueChangesFactory} from '@taiga-ui/kit/utils/miscellaneous';\nimport {PolymorpheusComponent} from '@tinkoff/ng-polymorpheus';\nimport {Observable} from 'rxjs';\nimport {pluck, takeUntil} from 'rxjs/operators';\n\n// TODO: remove in ivy compilation\nexport const RANGE_STREAM_FACTORY = TuiReplayControlValueChangesFactory;\n\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: [[new Optional(), new Self(), NgControl]],\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: TUI_DATE_RANGE_MASK,\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(pluck(this.dateFormat));\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_TEXTS)\n readonly dateTexts$: Observable<Record<TuiDateMode, string>>,\n ) {\n super(control, changeDetectorRef);\n }\n\n get nativeFocusableElement(): HTMLInputElement | null {\n return this.textfield ? this.textfield.nativeFocusableElement : null;\n }\n\n get focused(): boolean {\n return !!this.textfield && this.textfield.focused;\n }\n\n get computedMobile(): boolean {\n return this.isMobile && !!this.mobileCalendar;\n }\n\n get calendarIcon(): string {\n return sizeBigger(this.textfieldSize.size)\n ? 'tuiIconCalendarLarge'\n : 'tuiIconCalendar';\n }\n\n get canOpen(): boolean {\n return !this.computedDisabled && !this.readOnly && !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 ? value.formattedDayRange : 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);\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(TuiDayRange.normalizeParse(this.nativeValue));\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.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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"}