@taiga-ui/kit 2.38.0 → 2.41.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 (657) hide show
  1. package/abstract/input-slider.d.ts +27 -9
  2. package/abstract/slider/slider.d.ts +3 -6
  3. package/abstract/taiga-ui-kit-abstract.metadata.json +1 -1
  4. package/bundles/taiga-ui-kit-abstract.umd.js +43 -64
  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-accordion.umd.js +1 -1
  9. package/bundles/taiga-ui-kit-components-accordion.umd.js.map +1 -1
  10. package/bundles/taiga-ui-kit-components-accordion.umd.min.js +1 -1
  11. package/bundles/taiga-ui-kit-components-accordion.umd.min.js.map +1 -1
  12. package/bundles/taiga-ui-kit-components-action.umd.js +1 -1
  13. package/bundles/taiga-ui-kit-components-action.umd.js.map +1 -1
  14. package/bundles/taiga-ui-kit-components-action.umd.min.js +1 -1
  15. package/bundles/taiga-ui-kit-components-action.umd.min.js.map +1 -1
  16. package/bundles/taiga-ui-kit-components-avatar.umd.js +27 -5
  17. package/bundles/taiga-ui-kit-components-avatar.umd.js.map +1 -1
  18. package/bundles/taiga-ui-kit-components-avatar.umd.min.js +2 -2
  19. package/bundles/taiga-ui-kit-components-avatar.umd.min.js.map +1 -1
  20. package/bundles/taiga-ui-kit-components-breadcrumbs.umd.js +1 -1
  21. package/bundles/taiga-ui-kit-components-breadcrumbs.umd.js.map +1 -1
  22. package/bundles/taiga-ui-kit-components-breadcrumbs.umd.min.js +1 -1
  23. package/bundles/taiga-ui-kit-components-breadcrumbs.umd.min.js.map +1 -1
  24. package/bundles/taiga-ui-kit-components-calendar-month.umd.js +1 -1
  25. package/bundles/taiga-ui-kit-components-calendar-month.umd.js.map +1 -1
  26. package/bundles/taiga-ui-kit-components-calendar-month.umd.min.js +1 -1
  27. package/bundles/taiga-ui-kit-components-calendar-month.umd.min.js.map +1 -1
  28. package/bundles/taiga-ui-kit-components-calendar-range.umd.js.map +1 -1
  29. package/bundles/taiga-ui-kit-components-calendar-range.umd.min.js.map +1 -1
  30. package/bundles/taiga-ui-kit-components-carousel.umd.js +1 -1
  31. package/bundles/taiga-ui-kit-components-carousel.umd.js.map +1 -1
  32. package/bundles/taiga-ui-kit-components-carousel.umd.min.js +1 -1
  33. package/bundles/taiga-ui-kit-components-carousel.umd.min.js.map +1 -1
  34. package/bundles/taiga-ui-kit-components-checkbox-labeled.umd.js +1 -1
  35. package/bundles/taiga-ui-kit-components-checkbox-labeled.umd.js.map +1 -1
  36. package/bundles/taiga-ui-kit-components-checkbox-labeled.umd.min.js +1 -1
  37. package/bundles/taiga-ui-kit-components-checkbox-labeled.umd.min.js.map +1 -1
  38. package/bundles/taiga-ui-kit-components-checkbox.umd.js +1 -1
  39. package/bundles/taiga-ui-kit-components-checkbox.umd.min.js +1 -1
  40. package/bundles/taiga-ui-kit-components-checkbox.umd.min.js.map +1 -1
  41. package/bundles/taiga-ui-kit-components-combo-box.umd.js +1 -1
  42. package/bundles/taiga-ui-kit-components-combo-box.umd.js.map +1 -1
  43. package/bundles/taiga-ui-kit-components-combo-box.umd.min.js +1 -1
  44. package/bundles/taiga-ui-kit-components-combo-box.umd.min.js.map +1 -1
  45. package/bundles/taiga-ui-kit-components-data-list-wrapper.umd.js +2 -2
  46. package/bundles/taiga-ui-kit-components-data-list-wrapper.umd.js.map +1 -1
  47. package/bundles/taiga-ui-kit-components-data-list-wrapper.umd.min.js +1 -1
  48. package/bundles/taiga-ui-kit-components-data-list-wrapper.umd.min.js.map +1 -1
  49. package/bundles/taiga-ui-kit-components-files.umd.js +3 -3
  50. package/bundles/taiga-ui-kit-components-files.umd.js.map +1 -1
  51. package/bundles/taiga-ui-kit-components-files.umd.min.js +1 -1
  52. package/bundles/taiga-ui-kit-components-files.umd.min.js.map +1 -1
  53. package/bundles/taiga-ui-kit-components-filter.umd.js +1 -1
  54. package/bundles/taiga-ui-kit-components-filter.umd.js.map +1 -1
  55. package/bundles/taiga-ui-kit-components-filter.umd.min.js +1 -1
  56. package/bundles/taiga-ui-kit-components-filter.umd.min.js.map +1 -1
  57. package/bundles/taiga-ui-kit-components-input-copy.umd.js +1 -1
  58. package/bundles/taiga-ui-kit-components-input-copy.umd.js.map +1 -1
  59. package/bundles/taiga-ui-kit-components-input-copy.umd.min.js +1 -1
  60. package/bundles/taiga-ui-kit-components-input-copy.umd.min.js.map +1 -1
  61. package/bundles/taiga-ui-kit-components-input-count.umd.js +1 -1
  62. package/bundles/taiga-ui-kit-components-input-count.umd.js.map +1 -1
  63. package/bundles/taiga-ui-kit-components-input-count.umd.min.js +1 -1
  64. package/bundles/taiga-ui-kit-components-input-count.umd.min.js.map +1 -1
  65. package/bundles/taiga-ui-kit-components-input-date-range.umd.js +1 -1
  66. package/bundles/taiga-ui-kit-components-input-date-range.umd.js.map +1 -1
  67. package/bundles/taiga-ui-kit-components-input-date-range.umd.min.js +1 -1
  68. package/bundles/taiga-ui-kit-components-input-date-range.umd.min.js.map +1 -1
  69. package/bundles/taiga-ui-kit-components-input-date-time.umd.js +1 -1
  70. package/bundles/taiga-ui-kit-components-input-date-time.umd.js.map +1 -1
  71. package/bundles/taiga-ui-kit-components-input-date-time.umd.min.js +1 -1
  72. package/bundles/taiga-ui-kit-components-input-date-time.umd.min.js.map +1 -1
  73. package/bundles/taiga-ui-kit-components-input-date.umd.js +1 -1
  74. package/bundles/taiga-ui-kit-components-input-date.umd.js.map +1 -1
  75. package/bundles/taiga-ui-kit-components-input-date.umd.min.js +1 -1
  76. package/bundles/taiga-ui-kit-components-input-date.umd.min.js.map +1 -1
  77. package/bundles/taiga-ui-kit-components-input-file.umd.js +1 -1
  78. package/bundles/taiga-ui-kit-components-input-file.umd.js.map +1 -1
  79. package/bundles/taiga-ui-kit-components-input-file.umd.min.js +2 -2
  80. package/bundles/taiga-ui-kit-components-input-file.umd.min.js.map +1 -1
  81. package/bundles/taiga-ui-kit-components-input-files.umd.js +1 -1
  82. package/bundles/taiga-ui-kit-components-input-files.umd.js.map +1 -1
  83. package/bundles/taiga-ui-kit-components-input-files.umd.min.js +2 -2
  84. package/bundles/taiga-ui-kit-components-input-files.umd.min.js.map +1 -1
  85. package/bundles/taiga-ui-kit-components-input-month-range.umd.js +1 -1
  86. package/bundles/taiga-ui-kit-components-input-month-range.umd.js.map +1 -1
  87. package/bundles/taiga-ui-kit-components-input-month-range.umd.min.js +1 -1
  88. package/bundles/taiga-ui-kit-components-input-month-range.umd.min.js.map +1 -1
  89. package/bundles/taiga-ui-kit-components-input-month.umd.js +1 -1
  90. package/bundles/taiga-ui-kit-components-input-month.umd.js.map +1 -1
  91. package/bundles/taiga-ui-kit-components-input-month.umd.min.js +1 -1
  92. package/bundles/taiga-ui-kit-components-input-month.umd.min.js.map +1 -1
  93. package/bundles/taiga-ui-kit-components-input-number.umd.js +9 -6
  94. package/bundles/taiga-ui-kit-components-input-number.umd.js.map +1 -1
  95. package/bundles/taiga-ui-kit-components-input-number.umd.min.js +1 -1
  96. package/bundles/taiga-ui-kit-components-input-number.umd.min.js.map +1 -1
  97. package/bundles/taiga-ui-kit-components-input-password.umd.js +1 -1
  98. package/bundles/taiga-ui-kit-components-input-password.umd.js.map +1 -1
  99. package/bundles/taiga-ui-kit-components-input-password.umd.min.js +1 -1
  100. package/bundles/taiga-ui-kit-components-input-password.umd.min.js.map +1 -1
  101. package/bundles/taiga-ui-kit-components-input-phone-international.umd.js +5 -1
  102. package/bundles/taiga-ui-kit-components-input-phone-international.umd.js.map +1 -1
  103. package/bundles/taiga-ui-kit-components-input-phone-international.umd.min.js +2 -2
  104. package/bundles/taiga-ui-kit-components-input-phone-international.umd.min.js.map +1 -1
  105. package/bundles/taiga-ui-kit-components-input-phone.umd.js +6 -9
  106. package/bundles/taiga-ui-kit-components-input-phone.umd.js.map +1 -1
  107. package/bundles/taiga-ui-kit-components-input-phone.umd.min.js +1 -1
  108. package/bundles/taiga-ui-kit-components-input-phone.umd.min.js.map +1 -1
  109. package/bundles/taiga-ui-kit-components-input-range.umd.js +196 -164
  110. package/bundles/taiga-ui-kit-components-input-range.umd.js.map +1 -1
  111. package/bundles/taiga-ui-kit-components-input-range.umd.min.js +2 -2
  112. package/bundles/taiga-ui-kit-components-input-range.umd.min.js.map +1 -1
  113. package/bundles/taiga-ui-kit-components-input-slider.umd.js +10 -30
  114. package/bundles/taiga-ui-kit-components-input-slider.umd.js.map +1 -1
  115. package/bundles/taiga-ui-kit-components-input-slider.umd.min.js +2 -2
  116. package/bundles/taiga-ui-kit-components-input-slider.umd.min.js.map +1 -1
  117. package/bundles/taiga-ui-kit-components-input-tag.umd.js +21 -12
  118. package/bundles/taiga-ui-kit-components-input-tag.umd.js.map +1 -1
  119. package/bundles/taiga-ui-kit-components-input-tag.umd.min.js +1 -1
  120. package/bundles/taiga-ui-kit-components-input-tag.umd.min.js.map +1 -1
  121. package/bundles/taiga-ui-kit-components-input-time.umd.js.map +1 -1
  122. package/bundles/taiga-ui-kit-components-input-time.umd.min.js.map +1 -1
  123. package/bundles/taiga-ui-kit-components-input.umd.js +1 -1
  124. package/bundles/taiga-ui-kit-components-input.umd.js.map +1 -1
  125. package/bundles/taiga-ui-kit-components-input.umd.min.js +1 -1
  126. package/bundles/taiga-ui-kit-components-input.umd.min.js.map +1 -1
  127. package/bundles/taiga-ui-kit-components-marker-icon.umd.js +1 -1
  128. package/bundles/taiga-ui-kit-components-marker-icon.umd.js.map +1 -1
  129. package/bundles/taiga-ui-kit-components-marker-icon.umd.min.js +1 -1
  130. package/bundles/taiga-ui-kit-components-marker-icon.umd.min.js.map +1 -1
  131. package/bundles/taiga-ui-kit-components-multi-select.umd.js +1 -1
  132. package/bundles/taiga-ui-kit-components-multi-select.umd.js.map +1 -1
  133. package/bundles/taiga-ui-kit-components-multi-select.umd.min.js +1 -1
  134. package/bundles/taiga-ui-kit-components-multi-select.umd.min.js.map +1 -1
  135. package/bundles/taiga-ui-kit-components-pagination.umd.js +1 -1
  136. package/bundles/taiga-ui-kit-components-pagination.umd.js.map +1 -1
  137. package/bundles/taiga-ui-kit-components-pagination.umd.min.js +1 -1
  138. package/bundles/taiga-ui-kit-components-pagination.umd.min.js.map +1 -1
  139. package/bundles/taiga-ui-kit-components-pdf-viewer.umd.js +1 -1
  140. package/bundles/taiga-ui-kit-components-pdf-viewer.umd.js.map +1 -1
  141. package/bundles/taiga-ui-kit-components-pdf-viewer.umd.min.js +1 -1
  142. package/bundles/taiga-ui-kit-components-pdf-viewer.umd.min.js.map +1 -1
  143. package/bundles/taiga-ui-kit-components-progress.umd.js +2 -2
  144. package/bundles/taiga-ui-kit-components-progress.umd.js.map +1 -1
  145. package/bundles/taiga-ui-kit-components-progress.umd.min.js +1 -1
  146. package/bundles/taiga-ui-kit-components-progress.umd.min.js.map +1 -1
  147. package/bundles/taiga-ui-kit-components-radio-list.umd.js.map +1 -1
  148. package/bundles/taiga-ui-kit-components-radio-list.umd.min.js.map +1 -1
  149. package/bundles/taiga-ui-kit-components-radio.umd.js +2 -2
  150. package/bundles/taiga-ui-kit-components-radio.umd.js.map +1 -1
  151. package/bundles/taiga-ui-kit-components-radio.umd.min.js +1 -1
  152. package/bundles/taiga-ui-kit-components-radio.umd.min.js.map +1 -1
  153. package/bundles/taiga-ui-kit-components-range.umd.js +221 -31
  154. package/bundles/taiga-ui-kit-components-range.umd.js.map +1 -1
  155. package/bundles/taiga-ui-kit-components-range.umd.min.js +2 -2
  156. package/bundles/taiga-ui-kit-components-range.umd.min.js.map +1 -1
  157. package/bundles/taiga-ui-kit-components-rating.umd.js +1 -1
  158. package/bundles/taiga-ui-kit-components-rating.umd.js.map +1 -1
  159. package/bundles/taiga-ui-kit-components-rating.umd.min.js +1 -1
  160. package/bundles/taiga-ui-kit-components-rating.umd.min.js.map +1 -1
  161. package/bundles/taiga-ui-kit-components-select.umd.js +1 -1
  162. package/bundles/taiga-ui-kit-components-select.umd.js.map +1 -1
  163. package/bundles/taiga-ui-kit-components-select.umd.min.js +1 -1
  164. package/bundles/taiga-ui-kit-components-select.umd.min.js.map +1 -1
  165. package/bundles/taiga-ui-kit-components-slider.umd.js +86 -9
  166. package/bundles/taiga-ui-kit-components-slider.umd.js.map +1 -1
  167. package/bundles/taiga-ui-kit-components-slider.umd.min.js +2 -2
  168. package/bundles/taiga-ui-kit-components-slider.umd.min.js.map +1 -1
  169. package/bundles/taiga-ui-kit-components-stepper.umd.js +1 -1
  170. package/bundles/taiga-ui-kit-components-stepper.umd.js.map +1 -1
  171. package/bundles/taiga-ui-kit-components-stepper.umd.min.js +2 -2
  172. package/bundles/taiga-ui-kit-components-stepper.umd.min.js.map +1 -1
  173. package/bundles/taiga-ui-kit-components-tabs.umd.js +38 -36
  174. package/bundles/taiga-ui-kit-components-tabs.umd.js.map +1 -1
  175. package/bundles/taiga-ui-kit-components-tabs.umd.min.js +1 -1
  176. package/bundles/taiga-ui-kit-components-tabs.umd.min.js.map +1 -1
  177. package/bundles/taiga-ui-kit-components-tag.umd.js +28 -8
  178. package/bundles/taiga-ui-kit-components-tag.umd.js.map +1 -1
  179. package/bundles/taiga-ui-kit-components-tag.umd.min.js +1 -1
  180. package/bundles/taiga-ui-kit-components-tag.umd.min.js.map +1 -1
  181. package/bundles/taiga-ui-kit-components-text-area.umd.js +2 -2
  182. package/bundles/taiga-ui-kit-components-text-area.umd.js.map +1 -1
  183. package/bundles/taiga-ui-kit-components-text-area.umd.min.js +1 -1
  184. package/bundles/taiga-ui-kit-components-text-area.umd.min.js.map +1 -1
  185. package/bundles/taiga-ui-kit-components-toggle.umd.js +1 -1
  186. package/bundles/taiga-ui-kit-components-toggle.umd.min.js +1 -1
  187. package/bundles/taiga-ui-kit-components-toggle.umd.min.js.map +1 -1
  188. package/bundles/taiga-ui-kit-pipes-field-error.umd.js.map +1 -1
  189. package/bundles/taiga-ui-kit-pipes-field-error.umd.min.js.map +1 -1
  190. package/bundles/taiga-ui-kit-pipes-filter-by-input.umd.js.map +1 -1
  191. package/bundles/taiga-ui-kit-pipes-filter-by-input.umd.min.js.map +1 -1
  192. package/bundles/taiga-ui-kit-tokens.umd.js +7 -0
  193. package/bundles/taiga-ui-kit-tokens.umd.js.map +1 -1
  194. package/bundles/taiga-ui-kit-tokens.umd.min.js +1 -1
  195. package/bundles/taiga-ui-kit-tokens.umd.min.js.map +1 -1
  196. package/bundles/taiga-ui-kit-utils-mask.umd.js.map +1 -1
  197. package/bundles/taiga-ui-kit-utils-mask.umd.min.js.map +1 -1
  198. package/bundles/taiga-ui-kit-utils-miscellaneous.umd.js.map +1 -1
  199. package/bundles/taiga-ui-kit-utils-miscellaneous.umd.min.js.map +1 -1
  200. package/components/accordion/taiga-ui-kit-components-accordion.metadata.json +1 -1
  201. package/components/action/taiga-ui-kit-components-action.metadata.json +1 -1
  202. package/components/avatar/avatar-options.d.ts +11 -0
  203. package/components/avatar/avatar.component.d.ts +4 -2
  204. package/components/avatar/index.d.ts +1 -0
  205. package/components/avatar/taiga-ui-kit-components-avatar.metadata.json +1 -1
  206. package/components/breadcrumbs/breadcrumbs.component.d.ts +1 -1
  207. package/components/breadcrumbs/taiga-ui-kit-components-breadcrumbs.metadata.json +1 -1
  208. package/components/calendar-month/taiga-ui-kit-components-calendar-month.metadata.json +1 -1
  209. package/components/calendar-range/calendar-range.component.d.ts +2 -2
  210. package/components/carousel/taiga-ui-kit-components-carousel.metadata.json +1 -1
  211. package/components/checkbox/taiga-ui-kit-components-checkbox.metadata.json +1 -1
  212. package/components/checkbox-labeled/taiga-ui-kit-components-checkbox-labeled.metadata.json +1 -1
  213. package/components/combo-box/taiga-ui-kit-components-combo-box.metadata.json +1 -1
  214. package/components/data-list-wrapper/data-list-group-wrapper.component.d.ts +1 -1
  215. package/components/data-list-wrapper/data-list-wrapper.component.d.ts +2 -2
  216. package/components/data-list-wrapper/taiga-ui-kit-components-data-list-wrapper.metadata.json +1 -1
  217. package/components/files/taiga-ui-kit-components-files.metadata.json +1 -1
  218. package/components/filter/filter.component.d.ts +1 -1
  219. package/components/filter/taiga-ui-kit-components-filter.metadata.json +1 -1
  220. package/components/input/taiga-ui-kit-components-input.metadata.json +1 -1
  221. package/components/input-copy/taiga-ui-kit-components-input-copy.metadata.json +1 -1
  222. package/components/input-count/taiga-ui-kit-components-input-count.metadata.json +1 -1
  223. package/components/input-date/input-date.component.d.ts +1 -1
  224. package/components/input-date/taiga-ui-kit-components-input-date.metadata.json +1 -1
  225. package/components/input-date-range/input-date-range.component.d.ts +1 -1
  226. package/components/input-date-range/taiga-ui-kit-components-input-date-range.metadata.json +1 -1
  227. package/components/input-date-time/taiga-ui-kit-components-input-date-time.metadata.json +1 -1
  228. package/components/input-file/input-file.component.d.ts +6 -6
  229. package/components/input-file/taiga-ui-kit-components-input-file.metadata.json +1 -1
  230. package/components/input-files/input-files.component.d.ts +2 -2
  231. package/components/input-files/taiga-ui-kit-components-input-files.metadata.json +1 -1
  232. package/components/input-month/taiga-ui-kit-components-input-month.metadata.json +1 -1
  233. package/components/input-month-range/taiga-ui-kit-components-input-month-range.metadata.json +1 -1
  234. package/components/input-number/input-number.component.d.ts +2 -1
  235. package/components/input-number/taiga-ui-kit-components-input-number.metadata.json +1 -1
  236. package/components/input-password/taiga-ui-kit-components-input-password.metadata.json +1 -1
  237. package/components/input-phone/taiga-ui-kit-components-input-phone.metadata.json +1 -1
  238. package/components/input-phone-international/input-phone-international.component.d.ts +1 -1
  239. package/components/input-phone-international/taiga-ui-kit-components-input-phone-international.metadata.json +1 -1
  240. package/components/input-range/input-range.component.d.ts +44 -31
  241. package/components/input-range/taiga-ui-kit-components-input-range.metadata.json +1 -1
  242. package/components/input-slider/input-slider.component.d.ts +2 -8
  243. package/components/input-slider/taiga-ui-kit-components-input-slider.metadata.json +1 -1
  244. package/components/input-tag/input-tag.component.d.ts +11 -4
  245. package/components/input-tag/taiga-ui-kit-components-input-tag.metadata.json +1 -1
  246. package/components/input-time/input-time.component.d.ts +2 -2
  247. package/components/marker-icon/taiga-ui-kit-components-marker-icon.metadata.json +1 -1
  248. package/components/multi-select/multi-select-options.d.ts +1 -1
  249. package/components/multi-select/multi-select.component.d.ts +3 -3
  250. package/components/multi-select/taiga-ui-kit-components-multi-select.metadata.json +1 -1
  251. package/components/pagination/taiga-ui-kit-components-pagination.metadata.json +1 -1
  252. package/components/pdf-viewer/taiga-ui-kit-components-pdf-viewer.metadata.json +1 -1
  253. package/components/progress/progress-segmented/progress-segmented.component.d.ts +1 -1
  254. package/components/progress/taiga-ui-kit-components-progress.metadata.json +1 -1
  255. package/components/radio/taiga-ui-kit-components-radio.metadata.json +1 -1
  256. package/components/radio-list/radio-list.component.d.ts +1 -1
  257. package/components/range/index.d.ts +1 -0
  258. package/components/range/range-change.directive.d.ts +20 -0
  259. package/components/range/range.component.d.ts +33 -5
  260. package/components/range/taiga-ui-kit-components-range.metadata.json +1 -1
  261. package/components/rating/taiga-ui-kit-components-rating.metadata.json +1 -1
  262. package/components/select/taiga-ui-kit-components-select.metadata.json +1 -1
  263. package/components/slider/index.d.ts +1 -0
  264. package/components/slider/slider-key-steps.directive.d.ts +3 -1
  265. package/components/slider/slider-old.component.d.ts +3 -1
  266. package/components/slider/slider-readonly.directive.d.ts +9 -0
  267. package/components/slider/taiga-ui-kit-components-slider.metadata.json +1 -1
  268. package/components/stepper/taiga-ui-kit-components-stepper.metadata.json +1 -1
  269. package/components/tabs/index.d.ts +0 -1
  270. package/components/tabs/tab/tab.component.d.ts +2 -1
  271. package/components/tabs/tabs/tabs.component.d.ts +3 -4
  272. package/components/tabs/tabs-with-more/tabs-with-more.component.d.ts +5 -2
  273. package/components/tabs/taiga-ui-kit-components-tabs.metadata.json +1 -1
  274. package/components/tag/index.d.ts +1 -0
  275. package/components/tag/tag-options.d.ts +12 -0
  276. package/components/tag/tag.component.d.ts +3 -1
  277. package/components/tag/taiga-ui-kit-components-tag.metadata.json +1 -1
  278. package/components/text-area/taiga-ui-kit-components-text-area.metadata.json +1 -1
  279. package/components/toggle/taiga-ui-kit-components-toggle.metadata.json +1 -1
  280. package/esm2015/abstract/input-slider.js +30 -37
  281. package/esm2015/abstract/slider/slider.js +13 -19
  282. package/esm2015/components/accordion/accordion-item/accordion-item.component.js +2 -2
  283. package/esm2015/components/action/action.component.js +2 -2
  284. package/esm2015/components/avatar/avatar-options.js +15 -0
  285. package/esm2015/components/avatar/avatar.component.js +14 -8
  286. package/esm2015/components/avatar/index.js +2 -1
  287. package/esm2015/components/breadcrumbs/breadcrumbs-wrapper.component.js +2 -2
  288. package/esm2015/components/breadcrumbs/breadcrumbs.component.js +1 -1
  289. package/esm2015/components/calendar-month/calendar-month.component.js +2 -2
  290. package/esm2015/components/calendar-range/calendar-range.component.js +1 -1
  291. package/esm2015/components/carousel/carousel.component.js +2 -2
  292. package/esm2015/components/checkbox/checkbox.component.js +1 -1
  293. package/esm2015/components/checkbox-labeled/checkbox-labeled.component.js +2 -2
  294. package/esm2015/components/combo-box/combo-box.component.js +2 -2
  295. package/esm2015/components/data-list-wrapper/data-list-group-wrapper.component.js +2 -2
  296. package/esm2015/components/data-list-wrapper/data-list-wrapper.component.js +2 -2
  297. package/esm2015/components/files/file/file.component.js +2 -2
  298. package/esm2015/components/files/files.component.js +3 -3
  299. package/esm2015/components/filter/filter.component.js +2 -2
  300. package/esm2015/components/input/input.component.js +2 -2
  301. package/esm2015/components/input-copy/input-copy.component.js +2 -2
  302. package/esm2015/components/input-count/input-count.component.js +2 -2
  303. package/esm2015/components/input-date/input-date.component.js +2 -2
  304. package/esm2015/components/input-date-range/input-date-range.component.js +2 -2
  305. package/esm2015/components/input-date-time/input-date-time.component.js +2 -2
  306. package/esm2015/components/input-file/file/file.component.js +2 -2
  307. package/esm2015/components/input-file/input-file.component.js +1 -1
  308. package/esm2015/components/input-files/input-files.component.js +2 -2
  309. package/esm2015/components/input-month/input-month.component.js +2 -2
  310. package/esm2015/components/input-month-range/input-month-range.component.js +2 -2
  311. package/esm2015/components/input-number/input-number.component.js +11 -8
  312. package/esm2015/components/input-password/input-password.component.js +2 -2
  313. package/esm2015/components/input-phone/input-phone.component.js +8 -11
  314. package/esm2015/components/input-phone-international/input-phone-international.component.js +7 -3
  315. package/esm2015/components/input-range/input-range.component.js +192 -156
  316. package/esm2015/components/input-range/input-range.module.js +13 -15
  317. package/esm2015/components/input-slider/input-slider.component.js +8 -20
  318. package/esm2015/components/input-slider/input-slider.module.js +3 -12
  319. package/esm2015/components/input-tag/input-tag.component.js +24 -15
  320. package/esm2015/components/input-time/input-time.component.js +1 -1
  321. package/esm2015/components/marker-icon/marker-icon.component.js +2 -2
  322. package/esm2015/components/multi-select/multi-select-group/multi-select-group.component.js +1 -1
  323. package/esm2015/components/multi-select/multi-select-options.js +1 -1
  324. package/esm2015/components/multi-select/multi-select.component.js +2 -2
  325. package/esm2015/components/pagination/pagination.component.js +2 -2
  326. package/esm2015/components/pdf-viewer/pdf-viewer.component.js +2 -2
  327. package/esm2015/components/progress/progress-circle/progress-circle.component.js +2 -2
  328. package/esm2015/components/progress/progress-segmented/progress-segmented.component.js +2 -2
  329. package/esm2015/components/radio/radio.component.js +3 -3
  330. package/esm2015/components/radio-list/radio-list.component.js +1 -1
  331. package/esm2015/components/range/index.js +2 -1
  332. package/esm2015/components/range/range-change.directive.js +83 -0
  333. package/esm2015/components/range/range.component.js +118 -28
  334. package/esm2015/components/range/range.module.js +10 -7
  335. package/esm2015/components/rating/rating.component.js +2 -2
  336. package/esm2015/components/select/select.component.js +2 -2
  337. package/esm2015/components/slider/index.js +2 -1
  338. package/esm2015/components/slider/slider-key-steps.directive.js +15 -2
  339. package/esm2015/components/slider/slider-old.component.js +11 -5
  340. package/esm2015/components/slider/slider-readonly.directive.js +50 -0
  341. package/esm2015/components/slider/slider.component.js +5 -5
  342. package/esm2015/components/slider/slider.module.js +4 -1
  343. package/esm2015/components/stepper/step/step.component.js +2 -2
  344. package/esm2015/components/tabs/index.js +1 -2
  345. package/esm2015/components/tabs/tab/tab.component.js +13 -9
  346. package/esm2015/components/tabs/tabs/tabs.component.js +5 -11
  347. package/esm2015/components/tabs/tabs-with-more/tabs-with-more.component.js +24 -16
  348. package/esm2015/components/tabs/underline/underline.component.js +2 -2
  349. package/esm2015/components/tag/index.js +2 -1
  350. package/esm2015/components/tag/tag-options.js +15 -0
  351. package/esm2015/components/tag/tag.component.js +13 -9
  352. package/esm2015/components/text-area/text-area.component.js +3 -3
  353. package/esm2015/components/toggle/toggle.component.js +1 -1
  354. package/esm2015/pipes/field-error/field-error-content-pipe.js +1 -1
  355. package/esm2015/pipes/field-error/field-error-pipe.js +1 -1
  356. package/esm2015/pipes/filter-by-input/filter-by-input.base.js +1 -1
  357. package/esm2015/tokens/index.js +2 -1
  358. package/esm2015/tokens/mobile-aware.js +2 -1
  359. package/esm2015/tokens/tab-margin.js +5 -0
  360. package/esm2015/tokens/tag-status.js +2 -1
  361. package/esm2015/types/key-steps.js +1 -1
  362. package/esm2015/utils/mask/create-time-mask.js +1 -1
  363. package/esm2015/utils/miscellaneous/create-default-day-range-periods.js +1 -1
  364. package/esm2015/utils/miscellaneous/create-time-periods.js +1 -1
  365. package/esm5/abstract/input-slider.js +30 -48
  366. package/esm5/abstract/slider/slider.js +13 -19
  367. package/esm5/components/accordion/accordion-item/accordion-item.component.js +2 -2
  368. package/esm5/components/action/action.component.js +2 -2
  369. package/esm5/components/avatar/avatar-options.js +16 -0
  370. package/esm5/components/avatar/avatar.component.js +14 -8
  371. package/esm5/components/avatar/index.js +2 -1
  372. package/esm5/components/breadcrumbs/breadcrumbs-wrapper.component.js +2 -2
  373. package/esm5/components/breadcrumbs/breadcrumbs.component.js +1 -1
  374. package/esm5/components/calendar-month/calendar-month.component.js +2 -2
  375. package/esm5/components/calendar-range/calendar-range.component.js +1 -1
  376. package/esm5/components/carousel/carousel.component.js +2 -2
  377. package/esm5/components/checkbox/checkbox.component.js +1 -1
  378. package/esm5/components/checkbox-labeled/checkbox-labeled.component.js +2 -2
  379. package/esm5/components/combo-box/combo-box.component.js +2 -2
  380. package/esm5/components/data-list-wrapper/data-list-group-wrapper.component.js +2 -2
  381. package/esm5/components/data-list-wrapper/data-list-wrapper.component.js +2 -2
  382. package/esm5/components/files/file/file.component.js +2 -2
  383. package/esm5/components/files/files.component.js +3 -3
  384. package/esm5/components/filter/filter.component.js +2 -2
  385. package/esm5/components/input/input.component.js +2 -2
  386. package/esm5/components/input-copy/input-copy.component.js +2 -2
  387. package/esm5/components/input-count/input-count.component.js +2 -2
  388. package/esm5/components/input-date/input-date.component.js +2 -2
  389. package/esm5/components/input-date-range/input-date-range.component.js +2 -2
  390. package/esm5/components/input-date-time/input-date-time.component.js +2 -2
  391. package/esm5/components/input-file/file/file.component.js +2 -2
  392. package/esm5/components/input-file/input-file.component.js +1 -1
  393. package/esm5/components/input-files/input-files.component.js +2 -2
  394. package/esm5/components/input-month/input-month.component.js +2 -2
  395. package/esm5/components/input-month-range/input-month-range.component.js +2 -2
  396. package/esm5/components/input-number/input-number.component.js +11 -8
  397. package/esm5/components/input-password/input-password.component.js +2 -2
  398. package/esm5/components/input-phone/input-phone.component.js +8 -11
  399. package/esm5/components/input-phone-international/input-phone-international.component.js +7 -3
  400. package/esm5/components/input-range/input-range.component.js +194 -157
  401. package/esm5/components/input-range/input-range.module.js +13 -15
  402. package/esm5/components/input-slider/input-slider.component.js +8 -20
  403. package/esm5/components/input-slider/input-slider.module.js +3 -12
  404. package/esm5/components/input-tag/input-tag.component.js +24 -15
  405. package/esm5/components/input-time/input-time.component.js +1 -1
  406. package/esm5/components/marker-icon/marker-icon.component.js +2 -2
  407. package/esm5/components/multi-select/multi-select-group/multi-select-group.component.js +1 -1
  408. package/esm5/components/multi-select/multi-select-options.js +1 -1
  409. package/esm5/components/multi-select/multi-select.component.js +2 -2
  410. package/esm5/components/pagination/pagination.component.js +2 -2
  411. package/esm5/components/pdf-viewer/pdf-viewer.component.js +2 -2
  412. package/esm5/components/progress/progress-circle/progress-circle.component.js +2 -2
  413. package/esm5/components/progress/progress-segmented/progress-segmented.component.js +2 -2
  414. package/esm5/components/radio/radio.component.js +3 -3
  415. package/esm5/components/radio-list/radio-list.component.js +1 -1
  416. package/esm5/components/range/index.js +2 -1
  417. package/esm5/components/range/range-change.directive.js +101 -0
  418. package/esm5/components/range/range.component.js +126 -29
  419. package/esm5/components/range/range.module.js +10 -7
  420. package/esm5/components/rating/rating.component.js +2 -2
  421. package/esm5/components/select/select.component.js +2 -2
  422. package/esm5/components/slider/index.js +2 -1
  423. package/esm5/components/slider/slider-key-steps.directive.js +23 -2
  424. package/esm5/components/slider/slider-old.component.js +11 -5
  425. package/esm5/components/slider/slider-readonly.directive.js +51 -0
  426. package/esm5/components/slider/slider.component.js +5 -5
  427. package/esm5/components/slider/slider.module.js +4 -1
  428. package/esm5/components/stepper/step/step.component.js +2 -2
  429. package/esm5/components/tabs/index.js +1 -2
  430. package/esm5/components/tabs/tab/tab.component.js +13 -9
  431. package/esm5/components/tabs/tabs/tabs.component.js +5 -15
  432. package/esm5/components/tabs/tabs-with-more/tabs-with-more.component.js +27 -16
  433. package/esm5/components/tabs/underline/underline.component.js +2 -2
  434. package/esm5/components/tag/index.js +2 -1
  435. package/esm5/components/tag/tag-options.js +16 -0
  436. package/esm5/components/tag/tag.component.js +13 -9
  437. package/esm5/components/text-area/text-area.component.js +3 -3
  438. package/esm5/components/toggle/toggle.component.js +1 -1
  439. package/esm5/pipes/field-error/field-error-content-pipe.js +1 -1
  440. package/esm5/pipes/field-error/field-error-pipe.js +1 -1
  441. package/esm5/pipes/filter-by-input/filter-by-input.base.js +1 -1
  442. package/esm5/tokens/index.js +2 -1
  443. package/esm5/tokens/mobile-aware.js +2 -1
  444. package/esm5/tokens/tab-margin.js +5 -0
  445. package/esm5/tokens/tag-status.js +2 -1
  446. package/esm5/types/key-steps.js +1 -1
  447. package/esm5/utils/mask/create-time-mask.js +1 -1
  448. package/esm5/utils/miscellaneous/create-default-day-range-periods.js +1 -1
  449. package/esm5/utils/miscellaneous/create-time-periods.js +1 -1
  450. package/fesm2015/taiga-ui-kit-abstract.js +43 -55
  451. package/fesm2015/taiga-ui-kit-abstract.js.map +1 -1
  452. package/fesm2015/taiga-ui-kit-components-accordion.js +1 -1
  453. package/fesm2015/taiga-ui-kit-components-accordion.js.map +1 -1
  454. package/fesm2015/taiga-ui-kit-components-action.js +1 -1
  455. package/fesm2015/taiga-ui-kit-components-action.js.map +1 -1
  456. package/fesm2015/taiga-ui-kit-components-avatar.js +27 -8
  457. package/fesm2015/taiga-ui-kit-components-avatar.js.map +1 -1
  458. package/fesm2015/taiga-ui-kit-components-breadcrumbs.js +1 -1
  459. package/fesm2015/taiga-ui-kit-components-breadcrumbs.js.map +1 -1
  460. package/fesm2015/taiga-ui-kit-components-calendar-month.js +1 -1
  461. package/fesm2015/taiga-ui-kit-components-calendar-month.js.map +1 -1
  462. package/fesm2015/taiga-ui-kit-components-calendar-range.js.map +1 -1
  463. package/fesm2015/taiga-ui-kit-components-carousel.js +1 -1
  464. package/fesm2015/taiga-ui-kit-components-carousel.js.map +1 -1
  465. package/fesm2015/taiga-ui-kit-components-checkbox-labeled.js +1 -1
  466. package/fesm2015/taiga-ui-kit-components-checkbox-labeled.js.map +1 -1
  467. package/fesm2015/taiga-ui-kit-components-checkbox.js +1 -1
  468. package/fesm2015/taiga-ui-kit-components-combo-box.js +1 -1
  469. package/fesm2015/taiga-ui-kit-components-combo-box.js.map +1 -1
  470. package/fesm2015/taiga-ui-kit-components-data-list-wrapper.js +2 -2
  471. package/fesm2015/taiga-ui-kit-components-data-list-wrapper.js.map +1 -1
  472. package/fesm2015/taiga-ui-kit-components-files.js +3 -3
  473. package/fesm2015/taiga-ui-kit-components-files.js.map +1 -1
  474. package/fesm2015/taiga-ui-kit-components-filter.js +1 -1
  475. package/fesm2015/taiga-ui-kit-components-filter.js.map +1 -1
  476. package/fesm2015/taiga-ui-kit-components-input-copy.js +1 -1
  477. package/fesm2015/taiga-ui-kit-components-input-copy.js.map +1 -1
  478. package/fesm2015/taiga-ui-kit-components-input-count.js +1 -1
  479. package/fesm2015/taiga-ui-kit-components-input-count.js.map +1 -1
  480. package/fesm2015/taiga-ui-kit-components-input-date-range.js +1 -1
  481. package/fesm2015/taiga-ui-kit-components-input-date-range.js.map +1 -1
  482. package/fesm2015/taiga-ui-kit-components-input-date-time.js +1 -1
  483. package/fesm2015/taiga-ui-kit-components-input-date-time.js.map +1 -1
  484. package/fesm2015/taiga-ui-kit-components-input-date.js +1 -1
  485. package/fesm2015/taiga-ui-kit-components-input-date.js.map +1 -1
  486. package/fesm2015/taiga-ui-kit-components-input-file.js +1 -1
  487. package/fesm2015/taiga-ui-kit-components-input-file.js.map +1 -1
  488. package/fesm2015/taiga-ui-kit-components-input-files.js +1 -1
  489. package/fesm2015/taiga-ui-kit-components-input-files.js.map +1 -1
  490. package/fesm2015/taiga-ui-kit-components-input-month-range.js +1 -1
  491. package/fesm2015/taiga-ui-kit-components-input-month-range.js.map +1 -1
  492. package/fesm2015/taiga-ui-kit-components-input-month.js +1 -1
  493. package/fesm2015/taiga-ui-kit-components-input-month.js.map +1 -1
  494. package/fesm2015/taiga-ui-kit-components-input-number.js +10 -7
  495. package/fesm2015/taiga-ui-kit-components-input-number.js.map +1 -1
  496. package/fesm2015/taiga-ui-kit-components-input-password.js +1 -1
  497. package/fesm2015/taiga-ui-kit-components-input-password.js.map +1 -1
  498. package/fesm2015/taiga-ui-kit-components-input-phone-international.js +6 -2
  499. package/fesm2015/taiga-ui-kit-components-input-phone-international.js.map +1 -1
  500. package/fesm2015/taiga-ui-kit-components-input-phone.js +7 -10
  501. package/fesm2015/taiga-ui-kit-components-input-phone.js.map +1 -1
  502. package/fesm2015/taiga-ui-kit-components-input-range.js +198 -167
  503. package/fesm2015/taiga-ui-kit-components-input-range.js.map +1 -1
  504. package/fesm2015/taiga-ui-kit-components-input-slider.js +8 -29
  505. package/fesm2015/taiga-ui-kit-components-input-slider.js.map +1 -1
  506. package/fesm2015/taiga-ui-kit-components-input-tag.js +24 -15
  507. package/fesm2015/taiga-ui-kit-components-input-tag.js.map +1 -1
  508. package/fesm2015/taiga-ui-kit-components-input-time.js.map +1 -1
  509. package/fesm2015/taiga-ui-kit-components-input.js +1 -1
  510. package/fesm2015/taiga-ui-kit-components-input.js.map +1 -1
  511. package/fesm2015/taiga-ui-kit-components-marker-icon.js +1 -1
  512. package/fesm2015/taiga-ui-kit-components-marker-icon.js.map +1 -1
  513. package/fesm2015/taiga-ui-kit-components-multi-select.js +1 -1
  514. package/fesm2015/taiga-ui-kit-components-multi-select.js.map +1 -1
  515. package/fesm2015/taiga-ui-kit-components-pagination.js +1 -1
  516. package/fesm2015/taiga-ui-kit-components-pagination.js.map +1 -1
  517. package/fesm2015/taiga-ui-kit-components-pdf-viewer.js +1 -1
  518. package/fesm2015/taiga-ui-kit-components-pdf-viewer.js.map +1 -1
  519. package/fesm2015/taiga-ui-kit-components-progress.js +2 -2
  520. package/fesm2015/taiga-ui-kit-components-progress.js.map +1 -1
  521. package/fesm2015/taiga-ui-kit-components-radio-list.js.map +1 -1
  522. package/fesm2015/taiga-ui-kit-components-radio.js +2 -2
  523. package/fesm2015/taiga-ui-kit-components-radio.js.map +1 -1
  524. package/fesm2015/taiga-ui-kit-components-range.js +199 -34
  525. package/fesm2015/taiga-ui-kit-components-range.js.map +1 -1
  526. package/fesm2015/taiga-ui-kit-components-rating.js +1 -1
  527. package/fesm2015/taiga-ui-kit-components-rating.js.map +1 -1
  528. package/fesm2015/taiga-ui-kit-components-select.js +1 -1
  529. package/fesm2015/taiga-ui-kit-components-select.js.map +1 -1
  530. package/fesm2015/taiga-ui-kit-components-slider.js +77 -10
  531. package/fesm2015/taiga-ui-kit-components-slider.js.map +1 -1
  532. package/fesm2015/taiga-ui-kit-components-stepper.js +1 -1
  533. package/fesm2015/taiga-ui-kit-components-stepper.js.map +1 -1
  534. package/fesm2015/taiga-ui-kit-components-tabs.js +39 -34
  535. package/fesm2015/taiga-ui-kit-components-tabs.js.map +1 -1
  536. package/fesm2015/taiga-ui-kit-components-tag.js +27 -10
  537. package/fesm2015/taiga-ui-kit-components-tag.js.map +1 -1
  538. package/fesm2015/taiga-ui-kit-components-text-area.js +2 -2
  539. package/fesm2015/taiga-ui-kit-components-text-area.js.map +1 -1
  540. package/fesm2015/taiga-ui-kit-components-toggle.js +1 -1
  541. package/fesm2015/taiga-ui-kit-pipes-field-error.js.map +1 -1
  542. package/fesm2015/taiga-ui-kit-pipes-filter-by-input.js.map +1 -1
  543. package/fesm2015/taiga-ui-kit-tokens.js +7 -1
  544. package/fesm2015/taiga-ui-kit-tokens.js.map +1 -1
  545. package/fesm2015/taiga-ui-kit-utils-mask.js.map +1 -1
  546. package/fesm2015/taiga-ui-kit-utils-miscellaneous.js.map +1 -1
  547. package/fesm5/taiga-ui-kit-abstract.js +43 -66
  548. package/fesm5/taiga-ui-kit-abstract.js.map +1 -1
  549. package/fesm5/taiga-ui-kit-components-accordion.js +1 -1
  550. package/fesm5/taiga-ui-kit-components-accordion.js.map +1 -1
  551. package/fesm5/taiga-ui-kit-components-action.js +1 -1
  552. package/fesm5/taiga-ui-kit-components-action.js.map +1 -1
  553. package/fesm5/taiga-ui-kit-components-avatar.js +27 -8
  554. package/fesm5/taiga-ui-kit-components-avatar.js.map +1 -1
  555. package/fesm5/taiga-ui-kit-components-breadcrumbs.js +1 -1
  556. package/fesm5/taiga-ui-kit-components-breadcrumbs.js.map +1 -1
  557. package/fesm5/taiga-ui-kit-components-calendar-month.js +1 -1
  558. package/fesm5/taiga-ui-kit-components-calendar-month.js.map +1 -1
  559. package/fesm5/taiga-ui-kit-components-calendar-range.js.map +1 -1
  560. package/fesm5/taiga-ui-kit-components-carousel.js +1 -1
  561. package/fesm5/taiga-ui-kit-components-carousel.js.map +1 -1
  562. package/fesm5/taiga-ui-kit-components-checkbox-labeled.js +1 -1
  563. package/fesm5/taiga-ui-kit-components-checkbox-labeled.js.map +1 -1
  564. package/fesm5/taiga-ui-kit-components-checkbox.js +1 -1
  565. package/fesm5/taiga-ui-kit-components-combo-box.js +1 -1
  566. package/fesm5/taiga-ui-kit-components-combo-box.js.map +1 -1
  567. package/fesm5/taiga-ui-kit-components-data-list-wrapper.js +2 -2
  568. package/fesm5/taiga-ui-kit-components-data-list-wrapper.js.map +1 -1
  569. package/fesm5/taiga-ui-kit-components-files.js +3 -3
  570. package/fesm5/taiga-ui-kit-components-files.js.map +1 -1
  571. package/fesm5/taiga-ui-kit-components-filter.js +1 -1
  572. package/fesm5/taiga-ui-kit-components-filter.js.map +1 -1
  573. package/fesm5/taiga-ui-kit-components-input-copy.js +1 -1
  574. package/fesm5/taiga-ui-kit-components-input-copy.js.map +1 -1
  575. package/fesm5/taiga-ui-kit-components-input-count.js +1 -1
  576. package/fesm5/taiga-ui-kit-components-input-count.js.map +1 -1
  577. package/fesm5/taiga-ui-kit-components-input-date-range.js +1 -1
  578. package/fesm5/taiga-ui-kit-components-input-date-range.js.map +1 -1
  579. package/fesm5/taiga-ui-kit-components-input-date-time.js +1 -1
  580. package/fesm5/taiga-ui-kit-components-input-date-time.js.map +1 -1
  581. package/fesm5/taiga-ui-kit-components-input-date.js +1 -1
  582. package/fesm5/taiga-ui-kit-components-input-date.js.map +1 -1
  583. package/fesm5/taiga-ui-kit-components-input-file.js +1 -1
  584. package/fesm5/taiga-ui-kit-components-input-file.js.map +1 -1
  585. package/fesm5/taiga-ui-kit-components-input-files.js +1 -1
  586. package/fesm5/taiga-ui-kit-components-input-files.js.map +1 -1
  587. package/fesm5/taiga-ui-kit-components-input-month-range.js +1 -1
  588. package/fesm5/taiga-ui-kit-components-input-month-range.js.map +1 -1
  589. package/fesm5/taiga-ui-kit-components-input-month.js +1 -1
  590. package/fesm5/taiga-ui-kit-components-input-month.js.map +1 -1
  591. package/fesm5/taiga-ui-kit-components-input-number.js +10 -7
  592. package/fesm5/taiga-ui-kit-components-input-number.js.map +1 -1
  593. package/fesm5/taiga-ui-kit-components-input-password.js +1 -1
  594. package/fesm5/taiga-ui-kit-components-input-password.js.map +1 -1
  595. package/fesm5/taiga-ui-kit-components-input-phone-international.js +6 -2
  596. package/fesm5/taiga-ui-kit-components-input-phone-international.js.map +1 -1
  597. package/fesm5/taiga-ui-kit-components-input-phone.js +7 -10
  598. package/fesm5/taiga-ui-kit-components-input-phone.js.map +1 -1
  599. package/fesm5/taiga-ui-kit-components-input-range.js +200 -168
  600. package/fesm5/taiga-ui-kit-components-input-range.js.map +1 -1
  601. package/fesm5/taiga-ui-kit-components-input-slider.js +8 -29
  602. package/fesm5/taiga-ui-kit-components-input-slider.js.map +1 -1
  603. package/fesm5/taiga-ui-kit-components-input-tag.js +24 -15
  604. package/fesm5/taiga-ui-kit-components-input-tag.js.map +1 -1
  605. package/fesm5/taiga-ui-kit-components-input-time.js.map +1 -1
  606. package/fesm5/taiga-ui-kit-components-input.js +1 -1
  607. package/fesm5/taiga-ui-kit-components-input.js.map +1 -1
  608. package/fesm5/taiga-ui-kit-components-marker-icon.js +1 -1
  609. package/fesm5/taiga-ui-kit-components-marker-icon.js.map +1 -1
  610. package/fesm5/taiga-ui-kit-components-multi-select.js +1 -1
  611. package/fesm5/taiga-ui-kit-components-multi-select.js.map +1 -1
  612. package/fesm5/taiga-ui-kit-components-pagination.js +1 -1
  613. package/fesm5/taiga-ui-kit-components-pagination.js.map +1 -1
  614. package/fesm5/taiga-ui-kit-components-pdf-viewer.js +1 -1
  615. package/fesm5/taiga-ui-kit-components-pdf-viewer.js.map +1 -1
  616. package/fesm5/taiga-ui-kit-components-progress.js +2 -2
  617. package/fesm5/taiga-ui-kit-components-progress.js.map +1 -1
  618. package/fesm5/taiga-ui-kit-components-radio-list.js.map +1 -1
  619. package/fesm5/taiga-ui-kit-components-radio.js +2 -2
  620. package/fesm5/taiga-ui-kit-components-radio.js.map +1 -1
  621. package/fesm5/taiga-ui-kit-components-range.js +225 -35
  622. package/fesm5/taiga-ui-kit-components-range.js.map +1 -1
  623. package/fesm5/taiga-ui-kit-components-rating.js +1 -1
  624. package/fesm5/taiga-ui-kit-components-rating.js.map +1 -1
  625. package/fesm5/taiga-ui-kit-components-select.js +1 -1
  626. package/fesm5/taiga-ui-kit-components-select.js.map +1 -1
  627. package/fesm5/taiga-ui-kit-components-slider.js +86 -10
  628. package/fesm5/taiga-ui-kit-components-slider.js.map +1 -1
  629. package/fesm5/taiga-ui-kit-components-stepper.js +1 -1
  630. package/fesm5/taiga-ui-kit-components-stepper.js.map +1 -1
  631. package/fesm5/taiga-ui-kit-components-tabs.js +42 -38
  632. package/fesm5/taiga-ui-kit-components-tabs.js.map +1 -1
  633. package/fesm5/taiga-ui-kit-components-tag.js +28 -11
  634. package/fesm5/taiga-ui-kit-components-tag.js.map +1 -1
  635. package/fesm5/taiga-ui-kit-components-text-area.js +2 -2
  636. package/fesm5/taiga-ui-kit-components-text-area.js.map +1 -1
  637. package/fesm5/taiga-ui-kit-components-toggle.js +1 -1
  638. package/fesm5/taiga-ui-kit-pipes-field-error.js.map +1 -1
  639. package/fesm5/taiga-ui-kit-pipes-filter-by-input.js.map +1 -1
  640. package/fesm5/taiga-ui-kit-tokens.js +7 -1
  641. package/fesm5/taiga-ui-kit-tokens.js.map +1 -1
  642. package/fesm5/taiga-ui-kit-utils-mask.js.map +1 -1
  643. package/fesm5/taiga-ui-kit-utils-miscellaneous.js.map +1 -1
  644. package/package.json +4 -4
  645. package/pipes/field-error/field-error-content-pipe.d.ts +1 -1
  646. package/pipes/field-error/field-error-pipe.d.ts +1 -1
  647. package/pipes/filter-by-input/filter-by-input.base.d.ts +1 -1
  648. package/tokens/index.d.ts +1 -0
  649. package/tokens/mobile-aware.d.ts +1 -0
  650. package/tokens/tab-margin.d.ts +2 -0
  651. package/tokens/taiga-ui-kit-tokens.metadata.json +1 -1
  652. package/types/key-steps.d.ts +1 -1
  653. package/utils/miscellaneous/create-default-day-range-periods.d.ts +1 -1
  654. package/utils/miscellaneous/create-time-periods.d.ts +1 -1
  655. package/components/tabs/tabs.const.d.ts +0 -2
  656. package/esm2015/components/tabs/tabs.const.js +0 -3
  657. package/esm5/components/tabs/tabs.const.js +0 -3
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-kit-components-input-phone.js","sources":["ng://@taiga-ui/kit/components/input-phone/input-phone.providers.ts","ng://@taiga-ui/kit/components/input-phone/input-phone.component.ts","ng://@taiga-ui/kit/components/input-phone/input-phone.directive.ts","ng://@taiga-ui/kit/components/input-phone/input-phone.module.ts","ng://@taiga-ui/kit/components/input-phone/taiga-ui-kit-components-input-phone.ts"],"sourcesContent":["import {DOCUMENT} from '@angular/common';\nimport {forwardRef, InjectionToken} from '@angular/core';\nimport {\n AbstractTuiControl,\n TUI_FOCUSABLE_ITEM_ACCESSOR,\n TuiDestroyService,\n} from '@taiga-ui/cdk';\nimport {TUI_DATA_LIST_HOST} from '@taiga-ui/core';\nimport {FIXED_DROPDOWN_CONTROLLER_PROVIDER} from '@taiga-ui/kit/providers';\nimport {fromEvent, merge, Observable} from 'rxjs';\nimport {flatMap, startWith, takeUntil, windowToggle} from 'rxjs/operators';\n\nimport {TuiInputPhoneComponent} from './input-phone.component';\n\nexport const SELECTION_STREAM = new InjectionToken<Observable<unknown>>(\n 'A stream of selection changes',\n);\nexport const INPUT_PHONE_PROVIDERS = [\n TuiDestroyService,\n FIXED_DROPDOWN_CONTROLLER_PROVIDER,\n {\n provide: AbstractTuiControl,\n useExisting: forwardRef(() => TuiInputPhoneComponent),\n },\n {\n provide: TUI_FOCUSABLE_ITEM_ACCESSOR,\n useExisting: forwardRef(() => TuiInputPhoneComponent),\n },\n {\n provide: TUI_DATA_LIST_HOST,\n useExisting: forwardRef(() => TuiInputPhoneComponent),\n },\n {\n provide: SELECTION_STREAM,\n deps: [TuiDestroyService, DOCUMENT],\n useFactory: selectionStreamFactory,\n },\n];\n\nexport function selectionStreamFactory(\n destroy$: Observable<unknown>,\n documentRef: Document,\n): Observable<unknown> {\n return fromEvent(documentRef, 'selectionchange').pipe(\n windowToggle(\n merge(fromEvent(documentRef, 'mouseup'), fromEvent(documentRef, 'keydown')),\n () => fromEvent(documentRef, 'mousedown'),\n ),\n flatMap(windowed$ => windowed$.pipe(startWith(null))),\n takeUntil(destroy$),\n );\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n EventEmitter,\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 AbstractTuiControl,\n getClipboardDataText,\n isNativeFocused,\n setNativeFocused,\n TuiActiveZoneDirective,\n TuiContextWithImplicit,\n tuiDefaultProp,\n TuiFocusableElementAccessor,\n TuiInputModeT,\n tuiRequiredSetter,\n} from '@taiga-ui/cdk';\nimport {\n formatPhone,\n TUI_TEXTFIELD_CLEANER,\n TuiDataListDirective,\n TuiDataListHost,\n TuiHostedDropdownComponent,\n TuiPrimitiveTextfieldComponent,\n TuiTextfieldCleanerDirective,\n TuiTextMaskOptions,\n} from '@taiga-ui/core';\nimport {TextMaskConfig} from 'angular2-text-mask';\nimport {Observable} from 'rxjs';\n\nimport {INPUT_PHONE_PROVIDERS, SELECTION_STREAM} from './input-phone.providers';\n\nconst NON_PLUS_AND_DIGITS_REGEX = /[ \\-_()]/g;\n\n// @dynamic\n@Component({\n selector: 'tui-input-phone',\n templateUrl: './input-phone.template.html',\n styleUrls: ['./input-phone.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: INPUT_PHONE_PROVIDERS,\n})\nexport class TuiInputPhoneComponent\n extends AbstractTuiControl<string>\n implements TuiFocusableElementAccessor, TuiDataListHost<string>\n{\n @ViewChild(TuiHostedDropdownComponent)\n private readonly dropdown?: TuiHostedDropdownComponent;\n\n @ViewChild(TuiPrimitiveTextfieldComponent)\n private readonly textfield?: TuiPrimitiveTextfieldComponent;\n\n @Input('countryCode')\n @tuiRequiredSetter()\n set countryCodeSetter(countryCode: string) {\n this.updateValueWithNewCountryCode(countryCode);\n this.countryCode = countryCode;\n }\n\n @Input()\n @tuiDefaultProp()\n phoneMaskAfterCountryCode = '(###) ###-##-##';\n\n @Input()\n @tuiDefaultProp()\n allowText = false;\n\n @Input()\n @tuiDefaultProp()\n search = '';\n\n @Output()\n readonly searchChange = new EventEmitter<string>();\n\n @ContentChild(TuiDataListDirective, {read: TemplateRef})\n readonly datalist?: TemplateRef<TuiContextWithImplicit<TuiActiveZoneDirective>>;\n\n readonly textMaskOptions: TextMaskConfig = {\n mask: value =>\n this.allowText && !this.value && isText(value) && value !== '+'\n ? false\n : [\n ...this.countryCode.split(''),\n ' ',\n ...this.phoneMaskAfterCountryCode\n .replace(/[^#\\- ()]+/g, '')\n .split('')\n .map(item => (item === '#' ? /\\d/ : item)),\n ],\n pipe: value => {\n if (this.allowText) {\n return value;\n }\n\n return value === '' && this.focused && !this.readOnly\n ? `${this.countryCode} `\n : value.replace(/-$/, '');\n },\n guide: false,\n } as TuiTextMaskOptions as unknown as TextMaskConfig;\n\n countryCode = '+7';\n\n open = false;\n\n constructor(\n @Optional()\n @Self()\n @Inject(NgControl)\n control: NgControl | null,\n @Inject(ChangeDetectorRef) changeDetectorRef: ChangeDetectorRef,\n @Inject(SELECTION_STREAM)\n selection$: Observable<unknown>,\n @Inject(TUI_TEXTFIELD_CLEANER)\n private readonly textfieldCleaner: TuiTextfieldCleanerDirective,\n ) {\n super(control, changeDetectorRef);\n\n selection$.subscribe(() => {\n this.setCaretPosition();\n });\n }\n\n get nativeFocusableElement(): HTMLInputElement | null {\n return !this.textfield || this.computedDisabled\n ? null\n : this.textfield.nativeFocusableElement;\n }\n\n get focused(): boolean {\n return (\n isNativeFocused(this.nativeFocusableElement) ||\n (!!this.dropdown && this.dropdown.focused)\n );\n }\n\n get computedValue(): string {\n return this.value\n ? formatPhone(this.value, this.countryCode, this.phoneMaskAfterCountryCode)\n : this.search || '';\n }\n\n get inputMode(): TuiInputModeT {\n return this.allowText ? 'text' : 'numeric';\n }\n\n get canOpen(): boolean {\n return this.interactive && !!this.datalist;\n }\n\n get canClean(): boolean {\n return this.computedValue !== this.countryCode && this.textfieldCleaner.cleaner;\n }\n\n onHovered(hovered: boolean) {\n this.updateHovered(hovered);\n }\n\n onDrop(event: DragEvent) {\n if (!event.dataTransfer) {\n return;\n }\n\n this.setValueWithoutPrefix(event.dataTransfer.getData('text'));\n event.preventDefault();\n }\n\n onPaste(event: ClipboardEvent) {\n this.setValueWithoutPrefix(getClipboardDataText(event));\n }\n\n onActiveZone(active: boolean) {\n this.updateFocused(active);\n\n if (active && !this.computedValue && !this.readOnly && !this.allowText) {\n this.updateSearch(this.countryCode);\n\n return;\n }\n\n if (\n this.computedValue === this.countryCode ||\n (this.search !== null &&\n isNaN(parseInt(this.search.replace(NON_PLUS_AND_DIGITS_REGEX, ''), 10)))\n ) {\n this.updateSearch('');\n }\n }\n\n onBackspace(event: KeyboardEvent) {\n const target = event.target as HTMLInputElement;\n\n if (\n (target.selectionStart || 0) <= this.nonRemovableLength &&\n target.selectionStart === target.selectionEnd\n ) {\n event.preventDefault();\n }\n }\n\n onValueChange(value: string) {\n value = value === '' ? this.countryCode : value;\n\n const parsed = isText(value)\n ? value\n : value.replace(NON_PLUS_AND_DIGITS_REGEX, '');\n\n this.updateSearch(parsed);\n this.updateValue(parsed === this.countryCode || isText(parsed) ? '' : parsed);\n this.open = true;\n }\n\n handleOption(item: string) {\n this.focusInput();\n this.updateValue(item);\n this.updateSearch('');\n this.open = false;\n }\n\n setDisabledState() {\n super.setDisabledState();\n this.open = false;\n }\n\n writeValue(value: string | null) {\n super.writeValue(value);\n this.updateSearch('');\n }\n\n protected getFallbackValue(): string {\n return '';\n }\n\n private get caretIsInForbiddenArea(): boolean {\n const {nativeFocusableElement} = this;\n\n if (!nativeFocusableElement) {\n return false;\n }\n\n const {selectionStart, selectionEnd} = nativeFocusableElement;\n\n return (\n isNativeFocused(nativeFocusableElement) &&\n selectionStart !== null &&\n selectionStart < this.nonRemovableLength &&\n selectionStart === selectionEnd\n );\n }\n\n private get nonRemovableLength(): number {\n return this.isTextValue ? 0 : this.countryCode.length + 1;\n }\n\n private get maxPhoneLength(): number {\n return (\n this.countryCode.length +\n this.phoneMaskAfterCountryCode.replace(/[^#]+/g, '').length\n );\n }\n\n private get isTextValue(): boolean {\n return !!this.search && isText(this.search);\n }\n\n private setCaretPosition() {\n if (this.caretIsInForbiddenArea && !!this.nativeFocusableElement) {\n this.nativeFocusableElement.setSelectionRange(\n this.nonRemovableLength,\n this.nonRemovableLength,\n );\n }\n }\n\n private setValueWithoutPrefix(value: string) {\n if (this.readOnly) {\n return;\n }\n\n this.open = true;\n this.updateValue(this.cleanValue(value));\n this.updateSearch(\n this.allowText && isText(value)\n ? value\n : value.replace(NON_PLUS_AND_DIGITS_REGEX, ''),\n );\n }\n\n private cleanValue(value: string): string {\n const reg: RegExp =\n this.countryCode === '+7'\n ? /^7|^8/\n : new RegExp(this.countryCode.substring(1));\n const oldValueExist =\n this.value.length > this.countryCode.length &&\n this.value.length < this.maxPhoneLength;\n const newValueLength = value.replace(NON_PLUS_AND_DIGITS_REGEX, '').length;\n const cleanNewValue = value.replace(/[^0-9]+/g, '');\n const selectionLength = String(getSelection()).length;\n\n if (oldValueExist && selectionLength === 0) {\n return `${this.value}${cleanNewValue}`.slice(0, this.maxPhoneLength);\n }\n\n if (newValueLength < this.maxPhoneLength - 1) {\n return `${this.countryCode}${cleanNewValue}`.slice(0, this.maxPhoneLength);\n }\n\n return `${this.countryCode}${cleanNewValue.replace(reg, '')}`.slice(\n 0,\n this.maxPhoneLength,\n );\n }\n\n private focusInput() {\n if (this.nativeFocusableElement) {\n setNativeFocused(this.nativeFocusableElement, true, true);\n }\n }\n\n private updateSearch(search: string) {\n if (this.search === search) {\n return;\n }\n\n this.search = search;\n this.searchChange.emit(search);\n }\n\n private updateValueWithNewCountryCode(newCountryCode: string) {\n if (!this.isTextValue) {\n this.updateValue(this.value.replace(this.countryCode, newCountryCode));\n }\n }\n}\n\nfunction isText(value: string): boolean {\n return isNaN(parseInt(value.replace(NON_PLUS_AND_DIGITS_REGEX, ''), 10));\n}\n","import {Directive, DoCheck, forwardRef} from '@angular/core';\nimport {TUI_TEXTFIELD_HOST, TuiAbstractTextfieldHost} from '@taiga-ui/core';\n\nimport {TuiInputPhoneComponent} from './input-phone.component';\n\n@Directive({\n selector: 'tui-input-phone',\n providers: [\n {\n provide: TUI_TEXTFIELD_HOST,\n useExisting: forwardRef(() => TuiInputPhoneDirective),\n },\n ],\n})\nexport class TuiInputPhoneDirective\n extends TuiAbstractTextfieldHost<TuiInputPhoneComponent>\n implements DoCheck\n{\n input?: HTMLInputElement;\n\n get value(): string {\n return this.host.computedValue;\n }\n\n onValueChange(value: string) {\n this.host.onValueChange(value);\n }\n\n process(input: HTMLInputElement) {\n this.input = input;\n }\n\n ngDoCheck() {\n if (!this.input) {\n return;\n }\n\n this.input.type = 'tel';\n this.input.inputMode = this.host.inputMode;\n }\n}\n","import {NgModule} from '@angular/core';\nimport {TuiActiveZoneModule} from '@taiga-ui/cdk';\nimport {\n TuiHostedDropdownModule,\n TuiPrimitiveTextfieldModule,\n TuiTextfieldComponent,\n TuiTextfieldControllerModule,\n} from '@taiga-ui/core';\nimport {TuiValueAccessorModule} from '@taiga-ui/kit/directives';\nimport {TextMaskModule} from 'angular2-text-mask';\n\nimport {TuiInputPhoneComponent} from './input-phone.component';\nimport {TuiInputPhoneDirective} from './input-phone.directive';\n\n@NgModule({\n imports: [\n TextMaskModule,\n TuiPrimitiveTextfieldModule,\n TuiHostedDropdownModule,\n TuiTextfieldControllerModule,\n TuiActiveZoneModule,\n TuiValueAccessorModule,\n ],\n declarations: [TuiInputPhoneComponent, TuiInputPhoneDirective],\n exports: [TuiInputPhoneComponent, TuiInputPhoneDirective, TuiTextfieldComponent],\n})\nexport class TuiInputPhoneModule {}\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-phone.js","sources":["ng://@taiga-ui/kit/components/input-phone/input-phone.providers.ts","ng://@taiga-ui/kit/components/input-phone/input-phone.component.ts","ng://@taiga-ui/kit/components/input-phone/input-phone.directive.ts","ng://@taiga-ui/kit/components/input-phone/input-phone.module.ts","ng://@taiga-ui/kit/components/input-phone/taiga-ui-kit-components-input-phone.ts"],"sourcesContent":["import {DOCUMENT} from '@angular/common';\nimport {forwardRef, InjectionToken} from '@angular/core';\nimport {\n AbstractTuiControl,\n TUI_FOCUSABLE_ITEM_ACCESSOR,\n TuiDestroyService,\n} from '@taiga-ui/cdk';\nimport {TUI_DATA_LIST_HOST} from '@taiga-ui/core';\nimport {FIXED_DROPDOWN_CONTROLLER_PROVIDER} from '@taiga-ui/kit/providers';\nimport {fromEvent, merge, Observable} from 'rxjs';\nimport {flatMap, startWith, takeUntil, windowToggle} from 'rxjs/operators';\n\nimport {TuiInputPhoneComponent} from './input-phone.component';\n\nexport const SELECTION_STREAM = new InjectionToken<Observable<unknown>>(\n 'A stream of selection changes',\n);\nexport const INPUT_PHONE_PROVIDERS = [\n TuiDestroyService,\n FIXED_DROPDOWN_CONTROLLER_PROVIDER,\n {\n provide: AbstractTuiControl,\n useExisting: forwardRef(() => TuiInputPhoneComponent),\n },\n {\n provide: TUI_FOCUSABLE_ITEM_ACCESSOR,\n useExisting: forwardRef(() => TuiInputPhoneComponent),\n },\n {\n provide: TUI_DATA_LIST_HOST,\n useExisting: forwardRef(() => TuiInputPhoneComponent),\n },\n {\n provide: SELECTION_STREAM,\n deps: [TuiDestroyService, DOCUMENT],\n useFactory: selectionStreamFactory,\n },\n];\n\nexport function selectionStreamFactory(\n destroy$: Observable<unknown>,\n documentRef: Document,\n): Observable<unknown> {\n return fromEvent(documentRef, 'selectionchange').pipe(\n windowToggle(\n merge(fromEvent(documentRef, 'mouseup'), fromEvent(documentRef, 'keydown')),\n () => fromEvent(documentRef, 'mousedown'),\n ),\n flatMap(windowed$ => windowed$.pipe(startWith(null))),\n takeUntil(destroy$),\n );\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n EventEmitter,\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 AbstractTuiControl,\n getClipboardDataText,\n isNativeFocused,\n setNativeFocused,\n TuiActiveZoneDirective,\n TuiContextWithImplicit,\n tuiDefaultProp,\n TuiFocusableElementAccessor,\n TuiInputModeT,\n tuiRequiredSetter,\n} from '@taiga-ui/cdk';\nimport {\n formatPhone,\n TUI_MASK_SYMBOLS_REGEXP,\n TUI_TEXTFIELD_CLEANER,\n TuiDataListDirective,\n TuiDataListHost,\n TuiHostedDropdownComponent,\n TuiPrimitiveTextfieldComponent,\n TuiTextfieldCleanerDirective,\n TuiTextMaskOptions,\n} from '@taiga-ui/core';\nimport {TextMaskConfig} from 'angular2-text-mask';\nimport {Observable} from 'rxjs';\n\nimport {INPUT_PHONE_PROVIDERS, SELECTION_STREAM} from './input-phone.providers';\n\n// @dynamic\n@Component({\n selector: 'tui-input-phone',\n templateUrl: './input-phone.template.html',\n styleUrls: ['./input-phone.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: INPUT_PHONE_PROVIDERS,\n})\nexport class TuiInputPhoneComponent\n extends AbstractTuiControl<string>\n implements TuiFocusableElementAccessor, TuiDataListHost<string>\n{\n @ViewChild(TuiHostedDropdownComponent)\n private readonly dropdown?: TuiHostedDropdownComponent;\n\n @ViewChild(TuiPrimitiveTextfieldComponent)\n private readonly textfield?: TuiPrimitiveTextfieldComponent;\n\n @Input('countryCode')\n @tuiRequiredSetter()\n set countryCodeSetter(countryCode: string) {\n this.updateValueWithNewCountryCode(countryCode);\n this.countryCode = countryCode;\n }\n\n @Input()\n @tuiDefaultProp()\n phoneMaskAfterCountryCode = '(###) ###-##-##';\n\n @Input()\n @tuiDefaultProp()\n allowText = false;\n\n @Input()\n @tuiDefaultProp()\n search = '';\n\n @Output()\n readonly searchChange = new EventEmitter<string>();\n\n @ContentChild(TuiDataListDirective, {read: TemplateRef})\n readonly datalist?: TemplateRef<TuiContextWithImplicit<TuiActiveZoneDirective>>;\n\n readonly textMaskOptions: TextMaskConfig = {\n mask: value =>\n this.allowText && !this.value && isText(value) && value !== '+'\n ? false\n : [\n ...this.countryCode.split(''),\n ' ',\n ...this.phoneMaskAfterCountryCode\n .replace(/[^#\\- ()]+/g, '')\n .split('')\n .map(item => (item === '#' ? /\\d/ : item)),\n ],\n pipe: value => {\n if (this.allowText) {\n return value;\n }\n\n return value === '' && this.focused && !this.readOnly\n ? `${this.countryCode} `\n : value.replace(/-$/, '');\n },\n guide: false,\n } as TuiTextMaskOptions as unknown as TextMaskConfig;\n\n countryCode = '+7';\n\n open = false;\n\n constructor(\n @Optional()\n @Self()\n @Inject(NgControl)\n control: NgControl | null,\n @Inject(ChangeDetectorRef) changeDetectorRef: ChangeDetectorRef,\n @Inject(SELECTION_STREAM)\n selection$: Observable<unknown>,\n @Inject(TUI_TEXTFIELD_CLEANER)\n private readonly textfieldCleaner: TuiTextfieldCleanerDirective,\n ) {\n super(control, changeDetectorRef);\n\n selection$.subscribe(() => {\n this.setCaretPosition();\n });\n }\n\n get nativeFocusableElement(): HTMLInputElement | null {\n return !this.textfield || this.computedDisabled\n ? null\n : this.textfield.nativeFocusableElement;\n }\n\n get focused(): boolean {\n return (\n isNativeFocused(this.nativeFocusableElement) ||\n (!!this.dropdown && this.dropdown.focused)\n );\n }\n\n get computedValue(): string {\n return this.value\n ? formatPhone(this.value, this.countryCode, this.phoneMaskAfterCountryCode)\n : this.search || '';\n }\n\n get inputMode(): TuiInputModeT {\n return this.allowText ? 'text' : 'numeric';\n }\n\n get canOpen(): boolean {\n return this.interactive && !!this.datalist;\n }\n\n get canClean(): boolean {\n return this.computedValue !== this.countryCode && this.textfieldCleaner.cleaner;\n }\n\n onHovered(hovered: boolean) {\n this.updateHovered(hovered);\n }\n\n onDrop(event: DragEvent) {\n if (!event.dataTransfer) {\n return;\n }\n\n this.setValueWithoutPrefix(event.dataTransfer.getData('text'));\n event.preventDefault();\n }\n\n onPaste(event: ClipboardEvent) {\n this.setValueWithoutPrefix(getClipboardDataText(event));\n }\n\n onActiveZone(active: boolean) {\n this.updateFocused(active);\n\n if (active && !this.computedValue && !this.readOnly && !this.allowText) {\n this.updateSearch(this.countryCode);\n\n return;\n }\n\n if (\n this.computedValue === this.countryCode ||\n (this.search !== null &&\n isNaN(parseInt(this.search.replace(TUI_MASK_SYMBOLS_REGEXP, ''), 10)))\n ) {\n this.updateSearch('');\n }\n }\n\n onBackspace(event: KeyboardEvent) {\n const target = event.target as HTMLInputElement;\n\n if (\n (target.selectionStart || 0) <= this.nonRemovableLength &&\n target.selectionStart === target.selectionEnd\n ) {\n event.preventDefault();\n }\n }\n\n onValueChange(value: string) {\n value = value === '' ? this.countryCode : value;\n\n const parsed = isText(value) ? value : value.replace(TUI_MASK_SYMBOLS_REGEXP, '');\n\n this.updateSearch(parsed);\n this.updateValue(parsed === this.countryCode || isText(parsed) ? '' : parsed);\n this.open = true;\n }\n\n handleOption(item: string) {\n this.focusInput();\n this.updateValue(item);\n this.updateSearch('');\n this.open = false;\n }\n\n setDisabledState() {\n super.setDisabledState();\n this.open = false;\n }\n\n writeValue(value: string | null) {\n super.writeValue(value);\n this.updateSearch('');\n }\n\n protected getFallbackValue(): string {\n return '';\n }\n\n private get caretIsInForbiddenArea(): boolean {\n const {nativeFocusableElement} = this;\n\n if (!nativeFocusableElement) {\n return false;\n }\n\n const {selectionStart, selectionEnd} = nativeFocusableElement;\n\n return (\n isNativeFocused(nativeFocusableElement) &&\n selectionStart !== null &&\n selectionStart < this.nonRemovableLength &&\n selectionStart === selectionEnd\n );\n }\n\n private get nonRemovableLength(): number {\n return this.isTextValue ? 0 : this.countryCode.length + 1;\n }\n\n private get maxPhoneLength(): number {\n return (\n this.countryCode.length +\n this.phoneMaskAfterCountryCode.replace(/[^#]+/g, '').length\n );\n }\n\n private get isTextValue(): boolean {\n return !!this.search && isText(this.search);\n }\n\n private setCaretPosition() {\n if (this.caretIsInForbiddenArea && !!this.nativeFocusableElement) {\n this.nativeFocusableElement.setSelectionRange(\n this.nonRemovableLength,\n this.nonRemovableLength,\n );\n }\n }\n\n private setValueWithoutPrefix(value: string) {\n if (this.readOnly) {\n return;\n }\n\n this.open = true;\n this.updateValue(this.cleanValue(value));\n this.updateSearch(\n this.allowText && isText(value)\n ? value\n : value.replace(TUI_MASK_SYMBOLS_REGEXP, ''),\n );\n }\n\n private cleanValue(value: string): string {\n const reg: RegExp =\n this.countryCode === '+7'\n ? /^7|^8/\n : new RegExp(this.countryCode.substring(1));\n const oldValueExist =\n this.value.length > this.countryCode.length &&\n this.value.length < this.maxPhoneLength;\n const newValueLength = value.replace(TUI_MASK_SYMBOLS_REGEXP, '').length;\n const cleanNewValue = value.replace(/[^0-9]+/g, '');\n const selectionLength = String(getSelection()).length;\n\n if (oldValueExist && selectionLength === 0) {\n return `${this.value}${cleanNewValue}`.slice(0, this.maxPhoneLength);\n }\n\n if (newValueLength < this.maxPhoneLength - 1) {\n return `${this.countryCode}${cleanNewValue}`.slice(0, this.maxPhoneLength);\n }\n\n return `${this.countryCode}${cleanNewValue.replace(reg, '')}`.slice(\n 0,\n this.maxPhoneLength,\n );\n }\n\n private focusInput() {\n if (this.nativeFocusableElement) {\n setNativeFocused(this.nativeFocusableElement, true, true);\n }\n }\n\n private updateSearch(search: string) {\n if (this.search === search) {\n return;\n }\n\n this.search = search;\n this.searchChange.emit(search);\n }\n\n private updateValueWithNewCountryCode(newCountryCode: string) {\n if (!this.isTextValue) {\n this.updateValue(this.value.replace(this.countryCode, newCountryCode));\n }\n }\n}\n\nfunction isText(value: string): boolean {\n return isNaN(parseInt(value.replace(TUI_MASK_SYMBOLS_REGEXP, ''), 10));\n}\n","import {Directive, DoCheck, forwardRef} from '@angular/core';\nimport {TUI_TEXTFIELD_HOST, TuiAbstractTextfieldHost} from '@taiga-ui/core';\n\nimport {TuiInputPhoneComponent} from './input-phone.component';\n\n@Directive({\n selector: 'tui-input-phone',\n providers: [\n {\n provide: TUI_TEXTFIELD_HOST,\n useExisting: forwardRef(() => TuiInputPhoneDirective),\n },\n ],\n})\nexport class TuiInputPhoneDirective\n extends TuiAbstractTextfieldHost<TuiInputPhoneComponent>\n implements DoCheck\n{\n input?: HTMLInputElement;\n\n get value(): string {\n return this.host.computedValue;\n }\n\n onValueChange(value: string) {\n this.host.onValueChange(value);\n }\n\n process(input: HTMLInputElement) {\n this.input = input;\n }\n\n ngDoCheck() {\n if (!this.input) {\n return;\n }\n\n this.input.type = 'tel';\n this.input.inputMode = this.host.inputMode;\n }\n}\n","import {NgModule} from '@angular/core';\nimport {TuiActiveZoneModule} from '@taiga-ui/cdk';\nimport {\n TuiHostedDropdownModule,\n TuiPrimitiveTextfieldModule,\n TuiTextfieldComponent,\n TuiTextfieldControllerModule,\n} from '@taiga-ui/core';\nimport {TuiValueAccessorModule} from '@taiga-ui/kit/directives';\nimport {TextMaskModule} from 'angular2-text-mask';\n\nimport {TuiInputPhoneComponent} from './input-phone.component';\nimport {TuiInputPhoneDirective} from './input-phone.directive';\n\n@NgModule({\n imports: [\n TextMaskModule,\n TuiPrimitiveTextfieldModule,\n TuiHostedDropdownModule,\n TuiTextfieldControllerModule,\n TuiActiveZoneModule,\n TuiValueAccessorModule,\n ],\n declarations: [TuiInputPhoneComponent, TuiInputPhoneDirective],\n exports: [TuiInputPhoneComponent, TuiInputPhoneDirective, TuiTextfieldComponent],\n})\nexport class TuiInputPhoneModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;;MAca,gBAAgB,GAAG,IAAI,cAAc,CAC9C,+BAA+B,EACjC;MACW,qBAAqB,GAAG;IACjC,iBAAiB;IACjB,kCAAkC;IAClC;QACI,OAAO,EAAE,kBAAkB;QAC3B,WAAW,EAAE,UAAU,CAAC,MAAM,sBAAsB,CAAC;KACxD;IACD;QACI,OAAO,EAAE,2BAA2B;QACpC,WAAW,EAAE,UAAU,CAAC,MAAM,sBAAsB,CAAC;KACxD;IACD;QACI,OAAO,EAAE,kBAAkB;QAC3B,WAAW,EAAE,UAAU,CAAC,MAAM,sBAAsB,CAAC;KACxD;IACD;QACI,OAAO,EAAE,gBAAgB;QACzB,IAAI,EAAE,CAAC,iBAAiB,EAAE,QAAQ,CAAC;QACnC,UAAU,EAAE,sBAAsB;KACrC;EACH;SAEc,sBAAsB,CAClC,QAA6B,EAC7B,WAAqB;IAErB,OAAO,SAAS,CAAC,WAAW,EAAE,iBAAiB,CAAC,CAAC,IAAI,CACjD,YAAY,CACR,KAAK,CAAC,SAAS,CAAC,WAAW,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC,EAC3E,MAAM,SAAS,CAAC,WAAW,EAAE,WAAW,CAAC,CAC5C,EACD,OAAO,CAAC,SAAS,IAAI,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EACrD,SAAS,CAAC,QAAQ,CAAC,CACtB,CAAC;AACN;;ACRA;IAQa,sBAAsB,GAAnC,MAAa,sBACT,SAAQ,kBAA0B;IA8DlC,YAII,OAAyB,EACE,iBAAoC,EAE/D,UAA+B,EAEd,gBAA8C;QAE/D,KAAK,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAC;QAFjB,qBAAgB,GAAhB,gBAAgB,CAA8B;QArDnE,8BAAyB,GAAG,iBAAiB,CAAC;QAI9C,cAAS,GAAG,KAAK,CAAC;QAIlB,WAAM,GAAG,EAAE,CAAC;QAGH,iBAAY,GAAG,IAAI,YAAY,EAAU,CAAC;QAK1C,oBAAe,GAAmB;YACvC,IAAI,EAAE,KAAK,IACP,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,KAAK,KAAK,GAAG;kBACzD,KAAK;kBACL;oBACI,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;oBAC7B,GAAG;oBACH,GAAG,IAAI,CAAC,yBAAyB;yBAC5B,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC;yBAC1B,KAAK,CAAC,EAAE,CAAC;yBACT,GAAG,CAAC,IAAI,KAAK,IAAI,KAAK,GAAG,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC;iBACjD;YACX,IAAI,EAAE,KAAK;gBACP,IAAI,IAAI,CAAC,SAAS,EAAE;oBAChB,OAAO,KAAK,CAAC;iBAChB;gBAED,OAAO,KAAK,KAAK,EAAE,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ;sBAC/C,GAAG,IAAI,CAAC,WAAW,GAAG;sBACtB,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;aACjC;YACD,KAAK,EAAE,KAAK;SACoC,CAAC;QAErD,gBAAW,GAAG,IAAI,CAAC;QAEnB,SAAI,GAAG,KAAK,CAAC;QAeT,UAAU,CAAC,SAAS,CAAC;YACjB,IAAI,CAAC,gBAAgB,EAAE,CAAC;SAC3B,CAAC,CAAC;KACN;IAnED,IAAI,iBAAiB,CAAC,WAAmB;QACrC,IAAI,CAAC,6BAA6B,CAAC,WAAW,CAAC,CAAC;QAChD,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;KAClC;IAkED,IAAI,sBAAsB;QACtB,OAAO,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,gBAAgB;cACzC,IAAI;cACJ,IAAI,CAAC,SAAS,CAAC,sBAAsB,CAAC;KAC/C;IAED,IAAI,OAAO;QACP,QACI,eAAe,CAAC,IAAI,CAAC,sBAAsB,CAAC;aAC3C,CAAC,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAC5C;KACL;IAED,IAAI,aAAa;QACb,OAAO,IAAI,CAAC,KAAK;cACX,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,yBAAyB,CAAC;cACzE,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC;KAC3B;IAED,IAAI,SAAS;QACT,OAAO,IAAI,CAAC,SAAS,GAAG,MAAM,GAAG,SAAS,CAAC;KAC9C;IAED,IAAI,OAAO;QACP,OAAO,IAAI,CAAC,WAAW,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC;KAC9C;IAED,IAAI,QAAQ;QACR,OAAO,IAAI,CAAC,aAAa,KAAK,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC;KACnF;IAED,SAAS,CAAC,OAAgB;QACtB,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;KAC/B;IAED,MAAM,CAAC,KAAgB;QACnB,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE;YACrB,OAAO;SACV;QAED,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;QAC/D,KAAK,CAAC,cAAc,EAAE,CAAC;KAC1B;IAED,OAAO,CAAC,KAAqB;QACzB,IAAI,CAAC,qBAAqB,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC,CAAC;KAC3D;IAED,YAAY,CAAC,MAAe;QACxB,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAE3B,IAAI,MAAM,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACpE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAEpC,OAAO;SACV;QAED,IACI,IAAI,CAAC,aAAa,KAAK,IAAI,CAAC,WAAW;aACtC,IAAI,CAAC,MAAM,KAAK,IAAI;gBACjB,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,uBAAuB,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAC5E;YACE,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;SACzB;KACJ;IAED,WAAW,CAAC,KAAoB;QAC5B,MAAM,MAAM,GAAG,KAAK,CAAC,MAA0B,CAAC;QAEhD,IACI,CAAC,MAAM,CAAC,cAAc,IAAI,CAAC,KAAK,IAAI,CAAC,kBAAkB;YACvD,MAAM,CAAC,cAAc,KAAK,MAAM,CAAC,YAAY,EAC/C;YACE,KAAK,CAAC,cAAc,EAAE,CAAC;SAC1B;KACJ;IAED,aAAa,CAAC,KAAa;QACvB,KAAK,GAAG,KAAK,KAAK,EAAE,GAAG,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QAEhD,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,uBAAuB,EAAE,EAAE,CAAC,CAAC;QAElF,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QAC1B,IAAI,CAAC,WAAW,CAAC,MAAM,KAAK,IAAI,CAAC,WAAW,IAAI,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,CAAC;QAC9E,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;KACpB;IAED,YAAY,CAAC,IAAY;QACrB,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACvB,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;QACtB,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;KACrB;IAED,gBAAgB;QACZ,KAAK,CAAC,gBAAgB,EAAE,CAAC;QACzB,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;KACrB;IAED,UAAU,CAAC,KAAoB;QAC3B,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QACxB,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;KACzB;IAES,gBAAgB;QACtB,OAAO,EAAE,CAAC;KACb;IAED,IAAY,sBAAsB;QAC9B,MAAM,EAAC,sBAAsB,EAAC,GAAG,IAAI,CAAC;QAEtC,IAAI,CAAC,sBAAsB,EAAE;YACzB,OAAO,KAAK,CAAC;SAChB;QAED,MAAM,EAAC,cAAc,EAAE,YAAY,EAAC,GAAG,sBAAsB,CAAC;QAE9D,QACI,eAAe,CAAC,sBAAsB,CAAC;YACvC,cAAc,KAAK,IAAI;YACvB,cAAc,GAAG,IAAI,CAAC,kBAAkB;YACxC,cAAc,KAAK,YAAY,EACjC;KACL;IAED,IAAY,kBAAkB;QAC1B,OAAO,IAAI,CAAC,WAAW,GAAG,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC;KAC7D;IAED,IAAY,cAAc;QACtB,QACI,IAAI,CAAC,WAAW,CAAC,MAAM;YACvB,IAAI,CAAC,yBAAyB,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,MAAM,EAC7D;KACL;IAED,IAAY,WAAW;QACnB,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;KAC/C;IAEO,gBAAgB;QACpB,IAAI,IAAI,CAAC,sBAAsB,IAAI,CAAC,CAAC,IAAI,CAAC,sBAAsB,EAAE;YAC9D,IAAI,CAAC,sBAAsB,CAAC,iBAAiB,CACzC,IAAI,CAAC,kBAAkB,EACvB,IAAI,CAAC,kBAAkB,CAC1B,CAAC;SACL;KACJ;IAEO,qBAAqB,CAAC,KAAa;QACvC,IAAI,IAAI,CAAC,QAAQ,EAAE;YACf,OAAO;SACV;QAED,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;QACzC,IAAI,CAAC,YAAY,CACb,IAAI,CAAC,SAAS,IAAI,MAAM,CAAC,KAAK,CAAC;cACzB,KAAK;cACL,KAAK,CAAC,OAAO,CAAC,uBAAuB,EAAE,EAAE,CAAC,CACnD,CAAC;KACL;IAEO,UAAU,CAAC,KAAa;QAC5B,MAAM,GAAG,GACL,IAAI,CAAC,WAAW,KAAK,IAAI;cACnB,OAAO;cACP,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;QACpD,MAAM,aAAa,GACf,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM;YAC3C,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC;QAC5C,MAAM,cAAc,GAAG,KAAK,CAAC,OAAO,CAAC,uBAAuB,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC;QACzE,MAAM,aAAa,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;QACpD,MAAM,eAAe,GAAG,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC,MAAM,CAAC;QAEtD,IAAI,aAAa,IAAI,eAAe,KAAK,CAAC,EAAE;YACxC,OAAO,GAAG,IAAI,CAAC,KAAK,GAAG,aAAa,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;SACxE;QAED,IAAI,cAAc,GAAG,IAAI,CAAC,cAAc,GAAG,CAAC,EAAE;YAC1C,OAAO,GAAG,IAAI,CAAC,WAAW,GAAG,aAAa,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;SAC9E;QAED,OAAO,GAAG,IAAI,CAAC,WAAW,GAAG,aAAa,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,CAC/D,CAAC,EACD,IAAI,CAAC,cAAc,CACtB,CAAC;KACL;IAEO,UAAU;QACd,IAAI,IAAI,CAAC,sBAAsB,EAAE;YAC7B,gBAAgB,CAAC,IAAI,CAAC,sBAAsB,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;SAC7D;KACJ;IAEO,YAAY,CAAC,MAAc;QAC/B,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,6BAA6B,CAAC,cAAsB;QACxD,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YACnB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC,CAAC;SAC1E;KACJ;EACJ;;YA/NgB,SAAS,uBAHjB,QAAQ,YACR,IAAI,YACJ,MAAM,SAAC,SAAS;YAE6B,iBAAiB,uBAA9D,MAAM,SAAC,iBAAiB;YAEb,UAAU,uBADrB,MAAM,SAAC,gBAAgB;YAGW,4BAA4B,uBAD9D,MAAM,SAAC,qBAAqB;;AAlEjC;IADC,SAAS,CAAC,0BAA0B,CAAC;wDACiB;AAGvD;IADC,SAAS,CAAC,8BAA8B,CAAC;yDACkB;AAI5D;IAFC,KAAK,CAAC,aAAa,CAAC;IACpB,iBAAiB,EAAE;+DAInB;AAID;IAFC,KAAK,EAAE;IACP,cAAc,EAAE;yEAC6B;AAI9C;IAFC,KAAK,EAAE;IACP,cAAc,EAAE;yDACC;AAIlB;IAFC,KAAK,EAAE;IACP,cAAc,EAAE;sDACL;AAGZ;IADC,MAAM,EAAE;4DAC0C;AAGnD;IADC,YAAY,CAAC,oBAAoB,EAAE,EAAC,IAAI,EAAE,WAAW,EAAC,CAAC;wDACwB;AAjCvE,sBAAsB;IAPlC,SAAS,CAAC;QACP,QAAQ,EAAE,iBAAiB;QAC3B,kqCAA0C;QAE1C,eAAe,EAAE,uBAAuB,CAAC,MAAM;QAC/C,SAAS,EAAE,qBAAqB;;KACnC,CAAC;IAiEO,WAAA,QAAQ,EAAE,CAAA;IACV,WAAA,IAAI,EAAE,CAAA;IACN,WAAA,MAAM,CAAC,SAAS,CAAC,CAAA;IAEjB,WAAA,MAAM,CAAC,iBAAiB,CAAC,CAAA;IACzB,WAAA,MAAM,CAAC,gBAAgB,CAAC,CAAA;IAExB,WAAA,MAAM,CAAC,qBAAqB,CAAC,CAAA;GAvEzB,sBAAsB,CAkSlC;AAED,SAAS,MAAM,CAAC,KAAa;IACzB,OAAO,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,uBAAuB,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;AAC3E;;;IC3Ua,sBAAsB,8BAAnC,MAAa,sBACT,SAAQ,wBAAgD;IAKxD,IAAI,KAAK;QACL,OAAO,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC;KAClC;IAED,aAAa,CAAC,KAAa;QACvB,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;KAClC;IAED,OAAO,CAAC,KAAuB;QAC3B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;KACtB;IAED,SAAS;QACL,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;YACb,OAAO;SACV;QAED,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC;QACxB,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;KAC9C;EACJ;AA1BY,sBAAsB;IATlC,SAAS,CAAC;QACP,QAAQ,EAAE,iBAAiB;QAC3B,SAAS,EAAE;YACP;gBACI,OAAO,EAAE,kBAAkB;gBAC3B,WAAW,EAAE,UAAU,CAAC,MAAM,wBAAsB,CAAC;aACxD;SACJ;KACJ,CAAC;GACW,sBAAsB,CA0BlC;;ICdY,mBAAmB,GAAhC,MAAa,mBAAmB;EAAG;AAAtB,mBAAmB;IAZ/B,QAAQ,CAAC;QACN,OAAO,EAAE;YACL,cAAc;YACd,2BAA2B;YAC3B,uBAAuB;YACvB,4BAA4B;YAC5B,mBAAmB;YACnB,sBAAsB;SACzB;QACD,YAAY,EAAE,CAAC,sBAAsB,EAAE,sBAAsB,CAAC;QAC9D,OAAO,EAAE,CAAC,sBAAsB,EAAE,sBAAsB,EAAE,qBAAqB,CAAC;KACnF,CAAC;GACW,mBAAmB,CAAG;;AC1BnC;;;;;;"}
@@ -1,236 +1,270 @@
1
1
  import { __decorate, __param } from 'tslib';
2
- import { Optional, Self, Inject, ChangeDetectorRef, ViewChild, HostBinding, Component, ChangeDetectionStrategy, forwardRef, NgModule } from '@angular/core';
2
+ import { Optional, Self, Inject, ChangeDetectorRef, ElementRef, ViewChildren, ViewChild, Input, HostBinding, Component, ChangeDetectionStrategy, forwardRef, Directive, NgModule } from '@angular/core';
3
3
  import { NgControl, FormsModule, ReactiveFormsModule } from '@angular/forms';
4
- import { isNativeFocused, setNativeFocused, TUI_IS_MOBILE, tuiPure, TUI_FOCUSABLE_ITEM_ACCESSOR, TuiFocusableModule, TuiFocusedModule, TuiHoveredModule, TuiPressedModule, TuiMapperPipeModule, TuiInputModeModule, TuiActiveZoneModule } from '@taiga-ui/cdk';
5
- import { maskedMoneyValueIsEmpty, maskedNumberStringToNumber, formatNumber, TuiModeDirective, TUI_NUMBER_FORMAT, TUI_TEXTFIELD_APPEARANCE, TuiWrapperModule } from '@taiga-ui/core';
6
- import { AbstractTuiInputSlider } from '@taiga-ui/kit/abstract';
4
+ import { EMPTY_QUERY, isNativeFocusedIn, isNativeFocused, round, clamp, TUI_IS_MOBILE, tuiDefaultProp, TUI_FOCUSABLE_ITEM_ACCESSOR, TuiActiveZoneModule, TuiPressedModule } from '@taiga-ui/cdk';
5
+ import { getFractionPartPadded, TUI_TEXTFIELD_APPEARANCE, TuiTextfieldController, TUI_TEXTFIELD_WATCHED_CONTROLLER, TEXTFIELD_CONTROLLER_PROVIDER, TuiTextfieldControllerModule, TuiWrapperModule } from '@taiga-ui/core';
6
+ import { AbstractTuiInputSlider, quantumAssertion } from '@taiga-ui/kit/abstract';
7
+ import { TuiInputNumberComponent, TuiInputNumberModule } from '@taiga-ui/kit/components/input-number';
8
+ import { TuiNewRangeDirective, TuiRangeComponent, TuiRangeModule } from '@taiga-ui/kit/components/range';
9
+ import { TUI_FLOATING_PRECISION } from '@taiga-ui/kit/constants';
7
10
  import { CommonModule } from '@angular/common';
8
- import { TuiRangeModule } from '@taiga-ui/kit/components/range';
9
- import { TextMaskModule } from 'angular2-text-mask';
11
+ import { PolymorpheusModule } from '@tinkoff/ng-polymorpheus';
10
12
 
11
13
  var TuiInputRangeComponent_1;
12
14
  // @dynamic
13
- let TuiInputRangeComponent = TuiInputRangeComponent_1 = class TuiInputRangeComponent extends AbstractTuiInputSlider {
14
- constructor(control, changeDetectorRef, modeDirective, isMobile, numberFormat, appearance) {
15
+ let TuiInputRangeComponent = TuiInputRangeComponent_1 =
16
+ /**
17
+ * `AbstractTuiInputSlider` includes all legacy code (it can be deleted in v3.0)
18
+ * TODO replace `extends AbstractTuiInputSlider<[number, number]>` by `extends AbstractTuiControl<[number, number]> implements TuiWithOptionalMinMax<number>`
19
+ */
20
+ class TuiInputRangeComponent extends AbstractTuiInputSlider {
21
+ constructor(control, changeDetectorRef, isMobile, appearance, elementRef, controller, isNew) {
15
22
  super(control, changeDetectorRef);
16
- this.modeDirective = modeDirective;
17
23
  this.isMobile = isMobile;
18
- this.numberFormat = numberFormat;
19
24
  this.appearance = appearance;
25
+ this.elementRef = elementRef;
26
+ this.controller = controller;
27
+ this.isNew = isNew;
28
+ this.inputNumberRefs = EMPTY_QUERY;
29
+ this.rangeRef = null;
30
+ this.min = 0;
31
+ /* TODO: make `100` as default value (like in native sliders) */
32
+ this.max = Infinity;
33
+ this.quantum = 1;
34
+ this.steps = 0;
35
+ this.segments = 0;
36
+ this.keySteps = null;
37
+ this.leftValueContent = '';
38
+ this.rightValueContent = '';
39
+ this.lastActiveSide = 'left';
20
40
  }
21
- get nativeFocusableElement() {
22
- return !this.nativeLeft || this.disabled ? null : this.nativeLeft.nativeElement;
41
+ get leftFocusableElement() {
42
+ var _a;
43
+ return ((_a = this.inputNumberRefs.first) === null || _a === void 0 ? void 0 : _a.nativeFocusableElement) || null;
23
44
  }
24
- get focused() {
25
- return this.focusedLeft || this.focusedRight;
45
+ get rightFocusableElement() {
46
+ var _a;
47
+ return ((_a = this.inputNumberRefs.last) === null || _a === void 0 ? void 0 : _a.nativeFocusableElement) || null;
26
48
  }
27
- get focusedLeft() {
28
- return !!this.nativeLeft && isNativeFocused(this.nativeLeft.nativeElement);
49
+ get nativeFocusableElement() {
50
+ return this.disabled
51
+ ? null
52
+ : this.leftFocusableElement || this.rightFocusableElement;
29
53
  }
30
- get focusedRight() {
31
- return !!this.nativeRight && isNativeFocused(this.nativeRight.nativeElement);
54
+ get focused() {
55
+ return isNativeFocusedIn(this.elementRef.nativeElement);
32
56
  }
33
- get showMinLabel() {
34
- return !this.focusedLeft && !!this.minLabel && this.value[0] === this.min;
57
+ get showLeftValueContent() {
58
+ var _a;
59
+ return Boolean((this.minLabel || this.leftValueContent) &&
60
+ !isNativeFocused(this.leftFocusableElement) &&
61
+ !(((_a = this.rangeRef) === null || _a === void 0 ? void 0 : _a.focused) && this.lastActiveSide === 'left'));
35
62
  }
36
- get showMaxLabel() {
37
- return !this.focusedRight && !!this.maxLabel && this.value[1] === this.max;
63
+ get showRightValueContent() {
64
+ var _a;
65
+ return Boolean((this.maxLabel || this.rightValueContent) &&
66
+ !isNativeFocused(this.rightFocusableElement) &&
67
+ !(((_a = this.rangeRef) === null || _a === void 0 ? void 0 : _a.focused) && this.lastActiveSide === 'right'));
38
68
  }
39
- get hostMode() {
40
- return this.modeDirective && this.modeDirective.mode;
69
+ get precision() {
70
+ return getFractionPartPadded(this.quantum).length;
41
71
  }
42
- get inputValueLeft() {
43
- return this.nativeLeft ? this.nativeLeft.nativeElement.value : '';
72
+ get decimal() {
73
+ return this.precision ? 'not-zero' : 'never';
44
74
  }
45
- get inputValueRight() {
46
- return this.nativeRight ? this.nativeRight.nativeElement.value : '';
75
+ get computedSteps() {
76
+ return this.steps || (this.max - this.min) / this.quantum;
47
77
  }
48
- get computedValueLeft() {
49
- return this.computedPureValueLeft(this.value[0]);
78
+ get computedSize() {
79
+ return this.isNew && this.controller.size !== 's'
80
+ ? this.controller.size
81
+ : this.size;
50
82
  }
51
- get computedValueRight() {
52
- return this.computedPureValueRight(this.value[1]);
83
+ get legacyLabelOutside() {
84
+ return this.isNew ? this.controller.labelOutside : this.computedSize === 'm';
53
85
  }
54
86
  onActiveZone(active) {
55
87
  this.updateFocused(active);
56
88
  }
57
- onMouseDown() {
58
- if (this.nativeRight && !this.isMobile) {
59
- setNativeFocused(this.nativeRight.nativeElement);
60
- }
61
- }
62
- onKeyDownArrowUpLeft(event) {
63
- if (this.readOnly) {
89
+ onTextInputFocused(focused, right) {
90
+ if (focused) {
64
91
  return;
65
92
  }
66
- event.preventDefault();
67
- this.processStep(true, false);
68
- }
69
- onKeyDownArrowDownLeft(event) {
70
- if (this.readOnly) {
71
- return;
93
+ const [leftTextInputRef, rightTextInputRef] = this.inputNumberRefs;
94
+ const inputRef = right ? rightTextInputRef : leftTextInputRef;
95
+ const valueIndex = right ? 1 : 0;
96
+ if (!inputRef.nativeValue || inputRef.value !== this.value[valueIndex]) {
97
+ this.updateTextInputValue(this.safeCurrentValue[valueIndex], right);
72
98
  }
73
- event.preventDefault();
74
- this.processStep(false, false);
75
99
  }
76
- onKeyDownArrowUpRight(event) {
100
+ changeByStep(event, [leftCoefficient, rightCoefficient]) {
77
101
  if (this.readOnly) {
78
102
  return;
79
103
  }
80
104
  event.preventDefault();
81
- this.processStep(true, true);
82
- }
83
- onKeyDownArrowDownRight(event) {
84
- if (this.readOnly) {
85
- return;
105
+ const newValue = this.valueGuard([
106
+ this.value[0] + leftCoefficient * this.step,
107
+ this.value[1] + rightCoefficient * this.step,
108
+ ]);
109
+ const leftValueChanged = newValue[0] !== this.value[0];
110
+ const rightValueChanged = newValue[1] !== this.value[1];
111
+ if (leftValueChanged || rightValueChanged) {
112
+ this.safelyUpdateValue(newValue);
113
+ this.updateTextInputValue(newValue[rightValueChanged ? 1 : 0], rightValueChanged);
86
114
  }
87
- event.preventDefault();
88
- this.processStep(false, true);
89
115
  }
90
- onInputLeft() {
91
- const value = this.inputValueLeft;
92
- const capped = this.capInputValue(value, this.value[1]);
93
- const postfix = value.slice(-1)[0] === ',' ? ',' : '';
94
- if (maskedMoneyValueIsEmpty(value) || capped === null) {
95
- return;
96
- }
97
- const newValue = this.formatNumber(capped) + postfix;
98
- if (this.nativeLeft && this.inputValueLeft !== newValue) {
99
- this.nativeLeft.nativeElement.value = newValue;
100
- }
101
- this.updateValue([capped, this.value[1]]);
116
+ onInputLeft(value) {
117
+ this.safelyUpdateValue([value !== null && value !== void 0 ? value : this.safeCurrentValue[0], this.value[1]]);
102
118
  }
103
- onInputRight() {
104
- const value = this.inputValueRight;
105
- const capped = this.capInputValue(value);
106
- const postfix = value.slice(-1)[0] === ',' ? ',' : '';
107
- if (maskedMoneyValueIsEmpty(value) || capped === null) {
108
- return;
109
- }
110
- const newValue = this.formatNumber(capped) + postfix;
111
- if (this.nativeRight && this.inputValueRight !== newValue) {
112
- this.nativeRight.nativeElement.value = newValue;
113
- }
114
- if (capped >= this.value[0]) {
115
- this.updateValue([this.value[0], capped]);
116
- }
119
+ onInputRight(value) {
120
+ this.safelyUpdateValue([this.value[0], value !== null && value !== void 0 ? value : this.safeCurrentValue[1]]);
117
121
  }
118
- onRangeValue(value) {
119
- const guardedValue = value.map(item => this.valueGuard(item));
120
- if (!this.nativeLeft ||
121
- !this.nativeRight ||
122
- (guardedValue[0] === this.value[0] && guardedValue[1] === this.value[1])) {
123
- return;
124
- }
125
- if (!this.isMobile) {
126
- const element = guardedValue[0] !== this.value[0]
127
- ? this.nativeLeft.nativeElement
128
- : this.nativeRight.nativeElement;
129
- setNativeFocused(element);
130
- }
131
- this.updateValue(guardedValue);
132
- this.nativeLeft.nativeElement.value = this.formatNumber(guardedValue[0]);
122
+ onRangeValue([left, right]) {
123
+ var _a, _b;
124
+ (_b = (_a = this.rangeRef) === null || _a === void 0 ? void 0 : _a.nativeFocusableElement) === null || _b === void 0 ? void 0 : _b.focus();
125
+ this.safelyUpdateValue([left, right]);
133
126
  }
134
- onLeftFocused(focused) {
135
- if (focused || !this.nativeLeft) {
136
- return;
137
- }
138
- const inputValue = maskedNumberStringToNumber(this.computedValueLeft, this.numberFormat.decimalSeparator, this.numberFormat.thousandSeparator);
139
- const value = isNaN(inputValue) ? this.min : this.valueGuard(inputValue);
140
- this.nativeLeft.nativeElement.value = this.formatNumber(value);
141
- if (value !== this.value[0]) {
142
- this.updateValue([value, this.value[1]]);
127
+ focusToTextInput() {
128
+ const element = this.lastActiveSide === 'left'
129
+ ? this.leftFocusableElement
130
+ : this.rightFocusableElement;
131
+ if (!this.isMobile && element) {
132
+ element.focus();
143
133
  }
144
134
  }
145
- onRightFocused(focused) {
146
- if (focused || !this.nativeRight) {
147
- return;
148
- }
149
- const inputValue = maskedNumberStringToNumber(this.computedValueRight, this.numberFormat.decimalSeparator, this.numberFormat.thousandSeparator);
150
- const value = isNaN(inputValue)
151
- ? this.value[0]
152
- : this.valueGuard(Math.max(inputValue, this.value[0]));
153
- this.nativeRight.nativeElement.value = this.formatNumber(value);
154
- if (value !== this.value[1]) {
155
- this.updateValue([this.value[0], value]);
156
- }
135
+ onActiveThumbChange(activeThumb) {
136
+ this.lastActiveSide = activeThumb;
157
137
  }
158
138
  getFallbackValue() {
159
139
  return [0, 0];
160
140
  }
161
- computedPureValueLeft(value) {
162
- return this.formatNumber(value);
141
+ safelyUpdateValue(value) {
142
+ this.updateValue(this.valueGuard(value));
163
143
  }
164
- computedPureValueRight(value) {
165
- return this.formatNumber(value);
144
+ valueGuard([leftValue, rightValue]) {
145
+ const leftCalibratedValue = this.calibrate(leftValue);
146
+ const rightCalibratedValue = this.calibrate(rightValue);
147
+ return [
148
+ Math.min(leftCalibratedValue, this.value[1]),
149
+ Math.max(rightCalibratedValue, this.value[0]),
150
+ ];
166
151
  }
167
- formatNumber(value) {
168
- return formatNumber(value, null, this.numberFormat.decimalSeparator, this.numberFormat.thousandSeparator);
152
+ calibrate(value) {
153
+ const roundedValue = round(Math.round(value / this.quantum) * this.quantum, TUI_FLOATING_PRECISION);
154
+ return clamp(roundedValue, this.min, this.max);
169
155
  }
170
- processStep(increment, right) {
171
- const start = this.valueGuard(increment ? this.value[0] + this.step : this.value[0] - this.step);
172
- const end = this.valueGuard(increment ? this.value[1] + this.step : this.value[1] - this.step);
173
- const value = [
174
- right ? this.value[0] : Math.min(start, this.value[1]),
175
- right ? Math.max(end, this.value[0]) : this.value[1],
176
- ];
177
- if (value[0] !== this.value[0] || value[1] !== this.value[1]) {
178
- this.updateValue(value);
156
+ updateTextInputValue(value, right) {
157
+ const [leftInputRef, rightInputRef] = this.inputNumberRefs;
158
+ const textInputRef = right ? rightInputRef : leftInputRef;
159
+ if (textInputRef) {
160
+ textInputRef.nativeValue = textInputRef.getFormattedValue(value);
179
161
  }
180
162
  }
181
163
  };
182
164
  TuiInputRangeComponent.ctorParameters = () => [
183
165
  { type: NgControl, decorators: [{ type: Optional }, { type: Self }, { type: Inject, args: [NgControl,] }] },
184
166
  { type: ChangeDetectorRef, decorators: [{ type: Inject, args: [ChangeDetectorRef,] }] },
185
- { type: TuiModeDirective, decorators: [{ type: Optional }, { type: Inject, args: [TuiModeDirective,] }] },
186
167
  { type: Boolean, decorators: [{ type: Inject, args: [TUI_IS_MOBILE,] }] },
187
- { type: undefined, decorators: [{ type: Inject, args: [TUI_NUMBER_FORMAT,] }] },
188
- { type: String, decorators: [{ type: Inject, args: [TUI_TEXTFIELD_APPEARANCE,] }] }
168
+ { type: String, decorators: [{ type: Inject, args: [TUI_TEXTFIELD_APPEARANCE,] }] },
169
+ { type: ElementRef, decorators: [{ type: Inject, args: [ElementRef,] }] },
170
+ { type: TuiTextfieldController, decorators: [{ type: Inject, args: [TUI_TEXTFIELD_WATCHED_CONTROLLER,] }] },
171
+ { type: TuiNewRangeDirective, decorators: [{ type: Optional }, { type: Inject, args: [TuiNewRangeDirective,] }] }
189
172
  ];
190
173
  __decorate([
191
- ViewChild('nativeLeft')
192
- ], TuiInputRangeComponent.prototype, "nativeLeft", void 0);
174
+ ViewChildren(TuiInputNumberComponent)
175
+ ], TuiInputRangeComponent.prototype, "inputNumberRefs", void 0);
176
+ __decorate([
177
+ ViewChild(TuiRangeComponent)
178
+ ], TuiInputRangeComponent.prototype, "rangeRef", void 0);
193
179
  __decorate([
194
- ViewChild('nativeRight')
195
- ], TuiInputRangeComponent.prototype, "nativeRight", void 0);
180
+ Input(),
181
+ tuiDefaultProp()
182
+ ], TuiInputRangeComponent.prototype, "min", void 0);
196
183
  __decorate([
197
- HostBinding('class._min-label')
198
- ], TuiInputRangeComponent.prototype, "showMinLabel", null);
184
+ Input(),
185
+ tuiDefaultProp()
186
+ ], TuiInputRangeComponent.prototype, "max", void 0);
199
187
  __decorate([
200
- HostBinding('class._max-label')
201
- ], TuiInputRangeComponent.prototype, "showMaxLabel", null);
188
+ Input(),
189
+ tuiDefaultProp(quantumAssertion, 'Quantum must be positive')
190
+ ], TuiInputRangeComponent.prototype, "quantum", void 0);
202
191
  __decorate([
203
- HostBinding('attr.data-mode')
204
- ], TuiInputRangeComponent.prototype, "hostMode", null);
192
+ Input(),
193
+ tuiDefaultProp()
194
+ ], TuiInputRangeComponent.prototype, "steps", void 0);
205
195
  __decorate([
206
- tuiPure
207
- ], TuiInputRangeComponent.prototype, "computedPureValueLeft", null);
196
+ Input(),
197
+ tuiDefaultProp()
198
+ ], TuiInputRangeComponent.prototype, "segments", void 0);
208
199
  __decorate([
209
- tuiPure
210
- ], TuiInputRangeComponent.prototype, "computedPureValueRight", null);
200
+ Input(),
201
+ tuiDefaultProp()
202
+ ], TuiInputRangeComponent.prototype, "keySteps", void 0);
203
+ __decorate([
204
+ Input(),
205
+ tuiDefaultProp()
206
+ ], TuiInputRangeComponent.prototype, "leftValueContent", void 0);
207
+ __decorate([
208
+ Input(),
209
+ tuiDefaultProp()
210
+ ], TuiInputRangeComponent.prototype, "rightValueContent", void 0);
211
+ __decorate([
212
+ HostBinding('class._label-outside')
213
+ ], TuiInputRangeComponent.prototype, "legacyLabelOutside", null);
211
214
  TuiInputRangeComponent = TuiInputRangeComponent_1 = __decorate([
212
215
  Component({
213
216
  selector: 'tui-input-range',
214
- template: "<tui-wrapper\n [appearance]=\"appearance\"\n [readOnly]=\"readOnly\"\n [disabled]=\"disabled\"\n [focused]=\"computedFocused\"\n [hovered]=\"computedHovered\"\n [invalid]=\"computedInvalid\"\n (tuiActiveZoneChange)=\"onActiveZone($event)\"\n>\n <span\n *ngIf=\"hasPlaceholder\"\n automation-id=\"tui-input-range__placeholder\"\n class=\"t-placeholder t-placeholder_raised\"\n >\n <ng-content></ng-content>\n </span>\n <div class=\"t-content\">\n <span *ngIf=\"!showMinLabel\" class=\"t-label\">\n <span class=\"t-value\">{{ inputValueLeft }}</span>\n <span\n *ngIf=\"pluralizeMap\"\n automation-id=\"tui-input-range__pluralize-left\"\n class=\"t-pluralize\"\n >\n {{ value[0] | i18nPlural: pluralizeMap }}\n </span>\n </span>\n <span\n *ngIf=\"showMinLabel\"\n automation-id=\"tui-input-range__min-label\"\n class=\"t-label\"\n >\n {{ minLabel }}\n </span>\n <span\n *ngIf=\"showMaxLabel\"\n automation-id=\"tui-input-range__max-label\"\n class=\"t-max\"\n >\n {{ maxLabel }}\n </span>\n </div>\n\n <div class=\"t-native-wrapper\" (tuiHoveredChange)=\"onHovered($event)\">\n <input\n #nativeLeft\n automation-id=\"tui-input-range__native-left\"\n class=\"t-native\"\n [disabled]=\"disabled\"\n [readOnly]=\"readOnly\"\n [class.t-native_hidden]=\"showMinLabel\"\n [tuiInputMode]=\"inputMode\"\n [tuiFocusable]=\"focusable\"\n [textMask]=\"quantum | tuiMapper: mask:min\"\n [ngModel]=\"computedValueLeft\"\n (ngModelChange)=\"onInputLeft()\"\n (tuiFocusedChange)=\"onLeftFocused($event)\"\n (keydown.arrowUp)=\"onKeyDownArrowUpLeft($event)\"\n (keydown.arrowDown)=\"onKeyDownArrowDownLeft($event)\"\n />\n <input\n #nativeRight\n automation-id=\"tui-input-range__native-right\"\n class=\"t-native t-native_right\"\n [disabled]=\"disabled\"\n [readOnly]=\"readOnly\"\n [class.t-native_hidden]=\"showMaxLabel\"\n [tuiInputMode]=\"inputMode\"\n [tuiFocusable]=\"focusable\"\n [textMask]=\"quantum | tuiMapper: mask:min\"\n [ngModel]=\"computedValueRight\"\n (ngModelChange)=\"onInputRight()\"\n (tuiFocusedChange)=\"onRightFocused($event)\"\n (keydown.arrowUp)=\"onKeyDownArrowUpRight($event)\"\n (keydown.arrowDown)=\"onKeyDownArrowDownRight($event)\"\n />\n <span\n *ngIf=\"pluralizeMap && !showMaxLabel\"\n automation-id=\"tui-input-range__pluralize-right\"\n class=\"t-pluralize t-pluralize_right\"\n (mousedown)=\"onMouseDown()\"\n >\n {{ value[1] | i18nPlural: pluralizeMap }}\n </span>\n </div>\n <tui-range\n class=\"t-slider\"\n [min]=\"min\"\n [max]=\"max\"\n [steps]=\"computedSteps\"\n [segments]=\"segments\"\n [keySteps]=\"keySteps\"\n [pluralize]=\"segmentsPluralizeMap\"\n [focusable]=\"false\"\n [disabled]=\"readOnly || disabled\"\n [ngModel]=\"value\"\n (ngModelChange)=\"onRangeValue($event)\"\n (mousedown.prevent)=\"onMouseDown()\"\n ></tui-range>\n</tui-wrapper>\n",
217
+ template: "<tui-wrapper\n class=\"t-wrapper\"\n [appearance]=\"appearance\"\n [readOnly]=\"readOnly\"\n [disabled]=\"disabled\"\n [focused]=\"computedFocused\"\n [hovered]=\"computedHovered\"\n [invalid]=\"computedInvalid\"\n (tuiActiveZoneChange)=\"onActiveZone($event)\"\n>\n <tui-input-number\n tuiTextfieldAppearance=\"none\"\n automation-id=\"tui-input-range__left-input\"\n class=\"t-left t-text-input\"\n [min]=\"min\"\n [max]=\"value[1]\"\n [precision]=\"precision\"\n [decimal]=\"decimal\"\n [postfix]=\"pluralizeMap && !showLeftValueContent ? (value[0] | i18nPlural: pluralizeMap) : ''\"\n [disabled]=\"computedDisabled\"\n [readOnly]=\"readOnly\"\n [tuiTextfieldSize]=\"computedSize\"\n [tuiTextfieldLabelOutside]=\"legacyLabelOutside\"\n [ngModel]=\"value[0]\"\n (ngModelChange)=\"onInputLeft($event)\"\n (focusedChange)=\"onTextInputFocused($event, false)\"\n (keydown.arrowUp)=\"changeByStep($event, [1, 0])\"\n (keydown.arrowDown)=\"changeByStep($event, [-1, 0])\"\n >\n <ng-content></ng-content>\n <div\n *ngIf=\"showLeftValueContent\"\n polymorpheus-outlet\n [content]=\"minLabel ? legacyMinLabel : leftValueContent\"\n [context]=\"{$implicit: value[0]}\"\n ></div>\n </tui-input-number>\n\n <div class=\"t-right\">\n <tui-input-number\n tuiTextfieldAppearance=\"none\"\n automation-id=\"tui-input-range__right-input\"\n class=\"t-text-input\"\n [min]=\"value[0]\"\n [max]=\"max\"\n [precision]=\"precision\"\n [decimal]=\"decimal\"\n [disabled]=\"computedDisabled\"\n [readOnly]=\"readOnly\"\n [tuiTextfieldSize]=\"computedSize\"\n [tuiTextfieldLabelOutside]=\"legacyLabelOutside\"\n [ngModel]=\"value[1]\"\n (ngModelChange)=\"onInputRight($event)\"\n (focusedChange)=\"onTextInputFocused($event, true)\"\n (keydown.arrowUp)=\"changeByStep($event, [0, 1])\"\n (keydown.arrowDown)=\"changeByStep($event, [0, -1])\"\n >\n <div\n *ngIf=\"showRightValueContent\"\n polymorpheus-outlet\n [content]=\"maxLabel ? legacyMaxLabel : rightValueContent\"\n [context]=\"{$implicit: value[1]}\"\n ></div>\n </tui-input-number>\n\n <!-- TODO replace by postfix of the right InputNumber (after fix https://github.com/Tinkoff/taiga-ui/issues/1193) -->\n <span\n *ngIf=\"!showRightValueContent && pluralizeMap\"\n automation-id=\"tui-input-range__pluralize-right\"\n class=\"t-pluralize-right\"\n >\n &nbsp;{{value[1] | i18nPlural: pluralizeMap}}\n </span>\n </div>\n\n <tui-range\n class=\"t-slider\"\n [min]=\"min\"\n [max]=\"max\"\n [steps]=\"computedSteps\"\n [segments]=\"segments\"\n [keySteps]=\"keySteps\"\n [pluralize]=\"segmentsPluralizeMap\"\n [focusable]=\"false\"\n [disabled]=\"readOnly || disabled\"\n [ngModel]=\"value\"\n (ngModelChange)=\"onRangeValue($event)\"\n (tuiPressedChange)=\"focusToTextInput()\"\n (activeThumbChange)=\"onActiveThumbChange($event)\"\n ></tui-range>\n</tui-wrapper>\n\n<!-- TODO remove in v3.0 -->\n<ng-template\n #legacyMinLabel\n let-value\n>\n <ng-container *ngIf=\"value === min\">{{minLabel}}</ng-container>\n <ng-container *ngIf=\"value !== min\">\n {{value}}&nbsp;{{value | i18nPlural: pluralizeMap ||\n pluralizeMapFallback}}\n </ng-container>\n</ng-template>\n\n<!-- TODO remove in v3.0 -->\n<ng-template\n #legacyMaxLabel\n let-value\n>\n <ng-container *ngIf=\"value === max\">{{maxLabel}}</ng-container>\n <ng-container *ngIf=\"value !== max\">\n {{value}}&nbsp;{{value | i18nPlural: pluralizeMap ||\n pluralizeMapFallback}}\n </ng-container>\n</ng-template>\n",
215
218
  changeDetection: ChangeDetectionStrategy.OnPush,
216
219
  providers: [
217
220
  {
218
221
  provide: TUI_FOCUSABLE_ITEM_ACCESSOR,
219
222
  useExisting: forwardRef(() => TuiInputRangeComponent_1),
220
223
  },
224
+ TEXTFIELD_CONTROLLER_PROVIDER,
221
225
  ],
222
- styles: [":host{position:relative;z-index:0;display:block;font:var(--tui-font-text-m);border-radius:var(--tui-radius-m);color:var(--tui-text-01)}:host._segmented{border-bottom:26px solid transparent}:host[data-mode=onDark]{color:var(--tui-base-01)}.t-native-wrapper{position:absolute;top:0;left:0;width:100%;height:100%;display:flex}.t-pluralize{display:flex;align-items:center;padding-right:.75rem;margin-left:-.5rem}.t-pluralize_right{margin-left:-.75rem}:host[data-size='l'] .t-pluralize_right{padding-top:1.25rem}:host._disabled .t-pluralize_right{color:var(--tui-text-03)}:host[data-mode=onDark]._disabled .t-pluralize_right{color:var(--tui-text-03-night)}.t-native{padding:0 1rem;border:0;border-radius:inherit;background:0 0;font-size:inherit;line-height:inherit;font-weight:inherit;color:inherit;caret-color:currentColor;-webkit-appearance:none;-moz-appearance:none;appearance:none;word-break:keep-all;-webkit-text-fill-color:currentColor;flex:1;min-width:0;color:var(--tui-text-01);box-sizing:border-box;outline:0}.t-native:-webkit-autofill,.t-native:-webkit-autofill:focus,.t-native:-webkit-autofill:hover{border-radius:inherit;color:inherit!important;background-color:transparent!important;-webkit-text-fill-color:var(--tui-text-01)!important;border-color:var(--tui-autofill);-webkit-box-shadow:0 0 0 1000px var(--tui-autofill) inset!important}.t-native_right{text-align:right}.t-native_hidden{opacity:0}:host._disabled .t-native{color:var(--tui-text-03);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}:host[data-size='l'] .t-native{padding:1.25rem 1rem 0}:host[data-mode=onDark] .t-native{color:var(--tui-text-01-night)}:host[data-mode=onDark]._disabled .t-native{color:var(--tui-text-03-night)}.t-content{display:flex;height:var(--tui-height-m);padding:0 1rem;justify-content:space-between;align-items:center}:host[data-size='l'] .t-content{height:var(--tui-height-l);padding:0 1rem}:host[data-size='l']._disabled .t-content{color:var(--tui-text-03)}:host[data-size='l'][data-mode=onDark]._disabled .t-content{color:var(--tui-text-03-night)}.t-placeholder{transition-property:transform,font-size,color,letter-spacing;transition-duration:var(--tui-duration,300ms);transition-timing-function:ease-in-out;font:var(--tui-font-text-s);color:var(--tui-text-01);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;color:var(--tui-text-02);pointer-events:none;position:absolute;top:0;width:100%;height:100%;left:1rem;line-height:var(--tui-height-l)}.t-placeholder_raised{transform:translateY(-.625rem)}:host[data-size='m'] .t-placeholder_raised{font:var(--tui-font-text-xs);transform:translateY(-.5rem);letter-spacing:.025rem}:host._invalid:not(._focused) .t-placeholder_raised,:host._invalid:not(._focused):hover .t-placeholder_raised{color:var(--tui-error-fill)}:host[data-mode=onDark]._invalid:not(._focused) .t-placeholder_raised,:host[data-mode=onDark]._invalid:not(._focused):hover .t-placeholder_raised{color:var(--tui-error-fill-night)}:host._focused .t-placeholder,:host[data-size='l']._focused._label-outside .t-placeholder,:host[data-size='m']._focused._label-outside .t-placeholder{color:var(--tui-text-03)}:host[data-size='l'] .t-placeholder{font-size:.9375rem}:host[data-size='l'] .t-placeholder_raised{font-size:.8156rem}:host[data-size='l']._focused:not(._label-outside) .t-placeholder,:host[data-size='m']._focused:not(._label-outside) .t-placeholder{color:var(--tui-text-01)}:host[data-mode=onDark] .t-placeholder{color:var(--tui-text-02-night)}:host[data-size='l'][data-mode=onDark]._focused:not(._label-outside) .t-placeholder,:host[data-size='m'][data-mode=onDark]._focused:not(._label-outside) .t-placeholder{color:var(--tui-text-01-night)}:host[data-mode=onDark]._focused .t-placeholder,:host[data-size='l'][data-mode=onDark]._focused._label-outside .t-placeholder,:host[data-size='m'][data-mode=onDark]._focused._label-outside .t-placeholder{color:var(--tui-text-02-night)}.t-value{visibility:hidden;overflow:hidden;padding-right:.75rem}:host._disabled .t-value{color:var(--tui-text-03)}.t-label{display:flex;width:50%}:host[data-size='l'] .t-label{padding-top:1.25rem}.t-max{text-align:right;flex:1}:host[data-size='l'] .t-max{padding-top:1.25rem;line-height:calc(var(--tui-height-l) - 1.25rem)}.t-slider{position:absolute;top:100%;left:0;right:0;z-index:1;border-top-left-radius:0;border-top-right-radius:0;margin:-.5625rem 0 0;color:transparent}:host._disabled .t-slider,:host._readonly .t-slider{pointer-events:none}"]
223
- }),
226
+ host: {
227
+ /**
228
+ * TODO delete it in v3.0
229
+ * Dont forget to clear html-tags
230
+ */
231
+ '[class._show-ticks-labels]': '!isNew',
232
+ },
233
+ styles: [".t-wrapper{position:relative}.t-left{width:100%}.t-right{position:absolute;right:0;top:0;display:flex;width:50%;height:100%;text-align:right}.t-right .t-text-input{flex:1}.t-text-input{text-align:inherit}.t-pluralize-right{display:flex;align-items:center;padding:1.125rem var(--tui-padding-m) 0 0;margin-left:-.75rem;font:var(--tui-font-text-s)}:host[data-size='l'] .t-pluralize-right{font:var(--tui-font-text-m);padding-top:1.25rem;margin-left:-1rem;padding-right:var(--tui-padding-l)}:host._label-outside .t-pluralize-right{padding-top:0}:host._disabled .t-pluralize-right{color:var(--tui-text-03)}:host{display:block;border-radius:var(--tui-radius-m)}:host._show-ticks-labels._segmented{border-bottom:26px solid transparent}.t-slider{position:absolute;top:100%;left:0;right:0;z-index:1;margin:-.125rem 0 0;background:0 0}"]
234
+ })
235
+ /**
236
+ * `AbstractTuiInputSlider` includes all legacy code (it can be deleted in v3.0)
237
+ * TODO replace `extends AbstractTuiInputSlider<[number, number]>` by `extends AbstractTuiControl<[number, number]> implements TuiWithOptionalMinMax<number>`
238
+ */
239
+ ,
224
240
  __param(0, Optional()),
225
241
  __param(0, Self()),
226
242
  __param(0, Inject(NgControl)),
227
243
  __param(1, Inject(ChangeDetectorRef)),
228
- __param(2, Optional()),
229
- __param(2, Inject(TuiModeDirective)),
230
- __param(3, Inject(TUI_IS_MOBILE)),
231
- __param(4, Inject(TUI_NUMBER_FORMAT)),
232
- __param(5, Inject(TUI_TEXTFIELD_APPEARANCE))
244
+ __param(2, Inject(TUI_IS_MOBILE)),
245
+ __param(3, Inject(TUI_TEXTFIELD_APPEARANCE)),
246
+ __param(4, Inject(ElementRef)),
247
+ __param(5, Inject(TUI_TEXTFIELD_WATCHED_CONTROLLER)),
248
+ __param(6, Optional()),
249
+ __param(6, Inject(TuiNewRangeDirective))
233
250
  ], TuiInputRangeComponent);
251
+ function tuiTextfieldAppearanceDirectiveFactory({ nativeElement }) {
252
+ return nativeElement.getAttribute('tuiTextfieldAppearance');
253
+ }
254
+ let TuiTextfieldAppearanceDirective = class TuiTextfieldAppearanceDirective {
255
+ };
256
+ TuiTextfieldAppearanceDirective = __decorate([
257
+ Directive({
258
+ selector: '[tuiTextfieldAppearance]',
259
+ providers: [
260
+ {
261
+ provide: TUI_TEXTFIELD_APPEARANCE,
262
+ deps: [ElementRef],
263
+ useFactory: tuiTextfieldAppearanceDirectiveFactory,
264
+ },
265
+ ],
266
+ })
267
+ ], TuiTextfieldAppearanceDirective);
234
268
 
235
269
  let TuiInputRangeModule = class TuiInputRangeModule {
236
270
  };
@@ -240,19 +274,16 @@ TuiInputRangeModule = __decorate([
240
274
  CommonModule,
241
275
  FormsModule,
242
276
  ReactiveFormsModule,
243
- TextMaskModule,
244
- TuiFocusableModule,
245
- TuiFocusedModule,
246
- TuiHoveredModule,
247
- TuiPressedModule,
248
- TuiMapperPipeModule,
249
- TuiInputModeModule,
277
+ PolymorpheusModule,
250
278
  TuiActiveZoneModule,
279
+ TuiInputNumberModule,
280
+ TuiPressedModule,
251
281
  TuiRangeModule,
282
+ TuiTextfieldControllerModule,
252
283
  TuiWrapperModule,
253
284
  ],
254
- declarations: [TuiInputRangeComponent],
255
- exports: [TuiInputRangeComponent],
285
+ declarations: [TuiInputRangeComponent, TuiTextfieldAppearanceDirective],
286
+ exports: [TuiInputRangeComponent, TuiNewRangeDirective],
256
287
  })
257
288
  ], TuiInputRangeModule);
258
289
 
@@ -260,5 +291,5 @@ TuiInputRangeModule = __decorate([
260
291
  * Generated bundle index. Do not edit.
261
292
  */
262
293
 
263
- export { TuiInputRangeComponent, TuiInputRangeModule };
294
+ export { TuiInputRangeComponent, TuiInputRangeModule, TuiTextfieldAppearanceDirective, tuiTextfieldAppearanceDirectiveFactory };
264
295
  //# sourceMappingURL=taiga-ui-kit-components-input-range.js.map