@taiga-ui/kit 2.35.0 → 2.37.1

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 (473) hide show
  1. package/abstract/input-slider.d.ts +22 -3
  2. package/abstract/taiga-ui-kit-abstract.metadata.json +1 -1
  3. package/bundles/taiga-ui-kit-abstract.umd.js +65 -17
  4. package/bundles/taiga-ui-kit-abstract.umd.js.map +1 -1
  5. package/bundles/taiga-ui-kit-abstract.umd.min.js +2 -2
  6. package/bundles/taiga-ui-kit-abstract.umd.min.js.map +1 -1
  7. package/bundles/taiga-ui-kit-components-accordion.umd.js +1 -1
  8. package/bundles/taiga-ui-kit-components-accordion.umd.js.map +1 -1
  9. package/bundles/taiga-ui-kit-components-accordion.umd.min.js +1 -1
  10. package/bundles/taiga-ui-kit-components-accordion.umd.min.js.map +1 -1
  11. package/bundles/taiga-ui-kit-components-arrow.umd.js.map +1 -1
  12. package/bundles/taiga-ui-kit-components-arrow.umd.min.js.map +1 -1
  13. package/bundles/taiga-ui-kit-components-badge.umd.js.map +1 -1
  14. package/bundles/taiga-ui-kit-components-badge.umd.min.js.map +1 -1
  15. package/bundles/taiga-ui-kit-components-badged-content.umd.js +1 -1
  16. package/bundles/taiga-ui-kit-components-badged-content.umd.js.map +1 -1
  17. package/bundles/taiga-ui-kit-components-badged-content.umd.min.js +1 -1
  18. package/bundles/taiga-ui-kit-components-badged-content.umd.min.js.map +1 -1
  19. package/bundles/taiga-ui-kit-components-combo-box.umd.js +1 -1
  20. package/bundles/taiga-ui-kit-components-combo-box.umd.js.map +1 -1
  21. package/bundles/taiga-ui-kit-components-combo-box.umd.min.js +1 -1
  22. package/bundles/taiga-ui-kit-components-combo-box.umd.min.js.map +1 -1
  23. package/bundles/taiga-ui-kit-components-data-list-wrapper.umd.js +4 -4
  24. package/bundles/taiga-ui-kit-components-data-list-wrapper.umd.js.map +1 -1
  25. package/bundles/taiga-ui-kit-components-data-list-wrapper.umd.min.js +2 -2
  26. package/bundles/taiga-ui-kit-components-data-list-wrapper.umd.min.js.map +1 -1
  27. package/bundles/taiga-ui-kit-components-files.umd.js +504 -0
  28. package/bundles/taiga-ui-kit-components-files.umd.js.map +1 -0
  29. package/bundles/taiga-ui-kit-components-files.umd.min.js +16 -0
  30. package/bundles/taiga-ui-kit-components-files.umd.min.js.map +1 -0
  31. package/bundles/taiga-ui-kit-components-input-count.umd.js +2 -2
  32. package/bundles/taiga-ui-kit-components-input-count.umd.js.map +1 -1
  33. package/bundles/taiga-ui-kit-components-input-count.umd.min.js +1 -1
  34. package/bundles/taiga-ui-kit-components-input-count.umd.min.js.map +1 -1
  35. package/bundles/taiga-ui-kit-components-input-date-range.umd.js +3 -1
  36. package/bundles/taiga-ui-kit-components-input-date-range.umd.js.map +1 -1
  37. package/bundles/taiga-ui-kit-components-input-date-range.umd.min.js.map +1 -1
  38. package/bundles/taiga-ui-kit-components-input-date-time.umd.js +1 -1
  39. package/bundles/taiga-ui-kit-components-input-date-time.umd.js.map +1 -1
  40. package/bundles/taiga-ui-kit-components-input-date-time.umd.min.js +1 -1
  41. package/bundles/taiga-ui-kit-components-input-date-time.umd.min.js.map +1 -1
  42. package/bundles/taiga-ui-kit-components-input-date.umd.js +4 -2
  43. package/bundles/taiga-ui-kit-components-input-date.umd.js.map +1 -1
  44. package/bundles/taiga-ui-kit-components-input-date.umd.min.js +1 -1
  45. package/bundles/taiga-ui-kit-components-input-date.umd.min.js.map +1 -1
  46. package/bundles/taiga-ui-kit-components-input-file.umd.js +43 -45
  47. package/bundles/taiga-ui-kit-components-input-file.umd.js.map +1 -1
  48. package/bundles/taiga-ui-kit-components-input-file.umd.min.js +1 -1
  49. package/bundles/taiga-ui-kit-components-input-file.umd.min.js.map +1 -1
  50. package/bundles/taiga-ui-kit-components-input-files.umd.js +490 -0
  51. package/bundles/taiga-ui-kit-components-input-files.umd.js.map +1 -0
  52. package/bundles/taiga-ui-kit-components-input-files.umd.min.js +16 -0
  53. package/bundles/taiga-ui-kit-components-input-files.umd.min.js.map +1 -0
  54. package/bundles/taiga-ui-kit-components-input-number.umd.js +16 -14
  55. package/bundles/taiga-ui-kit-components-input-number.umd.js.map +1 -1
  56. package/bundles/taiga-ui-kit-components-input-number.umd.min.js +1 -1
  57. package/bundles/taiga-ui-kit-components-input-number.umd.min.js.map +1 -1
  58. package/bundles/taiga-ui-kit-components-input-password.umd.js +2 -2
  59. package/bundles/taiga-ui-kit-components-input-password.umd.js.map +1 -1
  60. package/bundles/taiga-ui-kit-components-input-password.umd.min.js +1 -1
  61. package/bundles/taiga-ui-kit-components-input-password.umd.min.js.map +1 -1
  62. package/bundles/taiga-ui-kit-components-input-phone-international.umd.js +20 -8
  63. package/bundles/taiga-ui-kit-components-input-phone-international.umd.js.map +1 -1
  64. package/bundles/taiga-ui-kit-components-input-phone-international.umd.min.js +2 -2
  65. package/bundles/taiga-ui-kit-components-input-phone-international.umd.min.js.map +1 -1
  66. package/bundles/taiga-ui-kit-components-input-phone.umd.js +5 -4
  67. package/bundles/taiga-ui-kit-components-input-phone.umd.js.map +1 -1
  68. package/bundles/taiga-ui-kit-components-input-phone.umd.min.js +1 -1
  69. package/bundles/taiga-ui-kit-components-input-phone.umd.min.js.map +1 -1
  70. package/bundles/taiga-ui-kit-components-input-range.umd.js +16 -4
  71. package/bundles/taiga-ui-kit-components-input-range.umd.js.map +1 -1
  72. package/bundles/taiga-ui-kit-components-input-range.umd.min.js +2 -2
  73. package/bundles/taiga-ui-kit-components-input-range.umd.min.js.map +1 -1
  74. package/bundles/taiga-ui-kit-components-input-slider.umd.js +61 -14
  75. package/bundles/taiga-ui-kit-components-input-slider.umd.js.map +1 -1
  76. package/bundles/taiga-ui-kit-components-input-slider.umd.min.js +2 -2
  77. package/bundles/taiga-ui-kit-components-input-slider.umd.min.js.map +1 -1
  78. package/bundles/taiga-ui-kit-components-input-tag.umd.js +2 -2
  79. package/bundles/taiga-ui-kit-components-input-tag.umd.js.map +1 -1
  80. package/bundles/taiga-ui-kit-components-input-tag.umd.min.js +2 -2
  81. package/bundles/taiga-ui-kit-components-input-tag.umd.min.js.map +1 -1
  82. package/bundles/taiga-ui-kit-components-input-time.umd.js.map +1 -1
  83. package/bundles/taiga-ui-kit-components-input-time.umd.min.js.map +1 -1
  84. package/bundles/taiga-ui-kit-components-input.umd.js.map +1 -1
  85. package/bundles/taiga-ui-kit-components-input.umd.min.js.map +1 -1
  86. package/bundles/taiga-ui-kit-components-line-clamp.umd.js +3 -2
  87. package/bundles/taiga-ui-kit-components-line-clamp.umd.js.map +1 -1
  88. package/bundles/taiga-ui-kit-components-line-clamp.umd.min.js +1 -1
  89. package/bundles/taiga-ui-kit-components-line-clamp.umd.min.js.map +1 -1
  90. package/bundles/taiga-ui-kit-components-multi-select-option.umd.js +2 -2
  91. package/bundles/taiga-ui-kit-components-multi-select-option.umd.js.map +1 -1
  92. package/bundles/taiga-ui-kit-components-multi-select-option.umd.min.js +1 -1
  93. package/bundles/taiga-ui-kit-components-multi-select-option.umd.min.js.map +1 -1
  94. package/bundles/taiga-ui-kit-components-multi-select.umd.js +2 -2
  95. package/bundles/taiga-ui-kit-components-multi-select.umd.js.map +1 -1
  96. package/bundles/taiga-ui-kit-components-multi-select.umd.min.js +1 -1
  97. package/bundles/taiga-ui-kit-components-multi-select.umd.min.js.map +1 -1
  98. package/bundles/taiga-ui-kit-components-pagination.umd.js +1 -1
  99. package/bundles/taiga-ui-kit-components-pagination.umd.js.map +1 -1
  100. package/bundles/taiga-ui-kit-components-pagination.umd.min.js +1 -1
  101. package/bundles/taiga-ui-kit-components-pagination.umd.min.js.map +1 -1
  102. package/bundles/taiga-ui-kit-components-progress.umd.js +1 -1
  103. package/bundles/taiga-ui-kit-components-progress.umd.js.map +1 -1
  104. package/bundles/taiga-ui-kit-components-progress.umd.min.js +1 -1
  105. package/bundles/taiga-ui-kit-components-progress.umd.min.js.map +1 -1
  106. package/bundles/taiga-ui-kit-components-radio.umd.js.map +1 -1
  107. package/bundles/taiga-ui-kit-components-radio.umd.min.js.map +1 -1
  108. package/bundles/taiga-ui-kit-components-select.umd.js.map +1 -1
  109. package/bundles/taiga-ui-kit-components-select.umd.min.js.map +1 -1
  110. package/bundles/taiga-ui-kit-components-slider.umd.js +178 -16
  111. package/bundles/taiga-ui-kit-components-slider.umd.js.map +1 -1
  112. package/bundles/taiga-ui-kit-components-slider.umd.min.js +2 -2
  113. package/bundles/taiga-ui-kit-components-slider.umd.min.js.map +1 -1
  114. package/bundles/taiga-ui-kit-components-text-area.umd.js +50 -13
  115. package/bundles/taiga-ui-kit-components-text-area.umd.js.map +1 -1
  116. package/bundles/taiga-ui-kit-components-text-area.umd.min.js +1 -1
  117. package/bundles/taiga-ui-kit-components-text-area.umd.min.js.map +1 -1
  118. package/bundles/taiga-ui-kit-components.umd.js +20 -4
  119. package/bundles/taiga-ui-kit-components.umd.js.map +1 -1
  120. package/bundles/taiga-ui-kit-components.umd.min.js +1 -1
  121. package/bundles/taiga-ui-kit-directives-dropdown-selection.umd.js +22 -5
  122. package/bundles/taiga-ui-kit-directives-dropdown-selection.umd.js.map +1 -1
  123. package/bundles/taiga-ui-kit-directives-dropdown-selection.umd.min.js +1 -1
  124. package/bundles/taiga-ui-kit-directives-dropdown-selection.umd.min.js.map +1 -1
  125. package/bundles/taiga-ui-kit-enums.umd.js.map +1 -1
  126. package/bundles/taiga-ui-kit-enums.umd.min.js.map +1 -1
  127. package/bundles/taiga-ui-kit-pipes-field-error.umd.js +10 -2
  128. package/bundles/taiga-ui-kit-pipes-field-error.umd.js.map +1 -1
  129. package/bundles/taiga-ui-kit-pipes-field-error.umd.min.js +1 -1
  130. package/bundles/taiga-ui-kit-pipes-field-error.umd.min.js.map +1 -1
  131. package/bundles/taiga-ui-kit-tokens.umd.js +8 -0
  132. package/bundles/taiga-ui-kit-tokens.umd.js.map +1 -1
  133. package/bundles/taiga-ui-kit-tokens.umd.min.js +1 -1
  134. package/bundles/taiga-ui-kit-tokens.umd.min.js.map +1 -1
  135. package/bundles/taiga-ui-kit-utils-files.umd.js +8 -0
  136. package/bundles/taiga-ui-kit-utils-files.umd.js.map +1 -1
  137. package/bundles/taiga-ui-kit-utils-files.umd.min.js +1 -1
  138. package/bundles/taiga-ui-kit-utils-files.umd.min.js.map +1 -1
  139. package/components/arrow/arrow-options.d.ts +4 -2
  140. package/components/arrow/taiga-ui-kit-components-arrow.metadata.json +1 -1
  141. package/components/badge/badge.component.d.ts +2 -1
  142. package/components/badge/taiga-ui-kit-components-badge.metadata.json +1 -1
  143. package/components/combo-box/combo-box.component.d.ts +4 -4
  144. package/components/combo-box/taiga-ui-kit-components-combo-box.metadata.json +1 -1
  145. package/components/data-list-wrapper/taiga-ui-kit-components-data-list-wrapper.metadata.json +1 -1
  146. package/components/files/file/file.component.d.ts +42 -0
  147. package/components/files/files.component.d.ts +12 -0
  148. package/components/files/files.module.d.ts +2 -0
  149. package/components/files/index.d.ts +2 -0
  150. package/components/files/package.json +13 -0
  151. package/components/files/taiga-ui-kit-components-files.d.ts +5 -0
  152. package/components/files/taiga-ui-kit-components-files.metadata.json +1 -0
  153. package/components/index.d.ts +2 -0
  154. package/components/input/input.component.d.ts +2 -2
  155. package/components/input/taiga-ui-kit-components-input.metadata.json +1 -1
  156. package/components/input-count/input-count.component.d.ts +3 -2
  157. package/components/input-count/taiga-ui-kit-components-input-count.metadata.json +1 -1
  158. package/components/input-date/input-date.component.d.ts +5 -3
  159. package/components/input-date/taiga-ui-kit-components-input-date.metadata.json +1 -1
  160. package/components/input-date-range/input-date-range.component.d.ts +3 -2
  161. package/components/input-date-range/taiga-ui-kit-components-input-date-range.metadata.json +1 -1
  162. package/components/input-date-time/input-date-time.component.d.ts +7 -5
  163. package/components/input-date-time/taiga-ui-kit-components-input-date-time.metadata.json +1 -1
  164. package/components/input-file/file/file.component.d.ts +1 -1
  165. package/components/input-file/taiga-ui-kit-components-input-file.metadata.json +1 -1
  166. package/components/input-files/index.d.ts +2 -0
  167. package/components/input-files/input-files.component.d.ts +41 -0
  168. package/components/input-files/input-files.module.d.ts +2 -0
  169. package/components/input-files/package.json +13 -0
  170. package/components/input-files/taiga-ui-kit-components-input-files.d.ts +4 -0
  171. package/components/input-files/taiga-ui-kit-components-input-files.metadata.json +1 -0
  172. package/components/input-number/input-number.component.d.ts +3 -2
  173. package/components/input-number/taiga-ui-kit-components-input-number.metadata.json +1 -1
  174. package/components/input-password/input-password.component.d.ts +4 -3
  175. package/components/input-password/taiga-ui-kit-components-input-password.metadata.json +1 -1
  176. package/components/input-phone/input-phone.component.d.ts +5 -6
  177. package/components/input-phone/taiga-ui-kit-components-input-phone.metadata.json +1 -1
  178. package/components/input-phone-international/input-phone-international.component.d.ts +4 -2
  179. package/components/input-phone-international/taiga-ui-kit-components-input-phone-international.metadata.json +1 -1
  180. package/components/input-range/input-range.component.d.ts +2 -0
  181. package/components/input-range/taiga-ui-kit-components-input-range.metadata.json +1 -1
  182. package/components/input-slider/input-slider.component.d.ts +19 -3
  183. package/components/input-slider/taiga-ui-kit-components-input-slider.metadata.json +1 -1
  184. package/components/input-tag/input-tag.component.d.ts +2 -1
  185. package/components/input-tag/taiga-ui-kit-components-input-tag.metadata.json +1 -1
  186. package/components/input-time/input-time.component.d.ts +2 -2
  187. package/components/input-time/taiga-ui-kit-components-input-time.metadata.json +1 -1
  188. package/components/multi-select/multi-select.component.d.ts +5 -5
  189. package/components/multi-select/taiga-ui-kit-components-multi-select.metadata.json +1 -1
  190. package/components/multi-select-option/taiga-ui-kit-components-multi-select-option.metadata.json +1 -1
  191. package/components/pagination/taiga-ui-kit-components-pagination.metadata.json +1 -1
  192. package/components/progress/utils/calculate-color-segments.d.ts +0 -4
  193. package/components/radio/radio.component.d.ts +1 -1
  194. package/components/select/select.component.d.ts +4 -4
  195. package/components/select/taiga-ui-kit-components-select.metadata.json +1 -1
  196. package/components/slider/index.d.ts +2 -0
  197. package/components/slider/slider-key-steps.directive.d.ts +27 -0
  198. package/components/slider/slider-options.d.ts +9 -0
  199. package/components/slider/slider.component.d.ts +6 -3
  200. package/components/slider/taiga-ui-kit-components-slider.metadata.json +1 -1
  201. package/components/taiga-ui-kit-components.metadata.json +1 -1
  202. package/components/text-area/index.d.ts +1 -0
  203. package/components/text-area/taiga-ui-kit-components-text-area.metadata.json +1 -1
  204. package/components/text-area/text-area.component.d.ts +2 -1
  205. package/components/text-area/text-area.directive.d.ts +5 -0
  206. package/directives/dropdown-selection/dropdown-selection.directive.d.ts +2 -2
  207. package/directives/dropdown-selection/taiga-ui-kit-directives-dropdown-selection.metadata.json +1 -1
  208. package/enums/file-state.d.ts +1 -0
  209. package/enums/taiga-ui-kit-enums.metadata.json +1 -1
  210. package/esm2015/abstract/input-slider.js +43 -4
  211. package/esm2015/components/accordion/accordion.component.js +2 -2
  212. package/esm2015/components/arrow/arrow-options.js +1 -1
  213. package/esm2015/components/badge/badge.component.js +1 -1
  214. package/esm2015/components/badged-content/badged-content.component.js +3 -3
  215. package/esm2015/components/combo-box/combo-box.component.js +2 -2
  216. package/esm2015/components/data-list-wrapper/data-list-group-wrapper.component.js +3 -3
  217. package/esm2015/components/data-list-wrapper/data-list-wrapper.component.js +3 -3
  218. package/esm2015/components/files/file/file.component.js +164 -0
  219. package/esm2015/components/files/files.component.js +45 -0
  220. package/esm2015/components/files/files.module.js +29 -0
  221. package/esm2015/components/files/index.js +3 -0
  222. package/esm2015/components/files/taiga-ui-kit-components-files.js +6 -0
  223. package/esm2015/components/index.js +3 -1
  224. package/esm2015/components/input/input.component.js +1 -1
  225. package/esm2015/components/input-count/input-count.component.js +3 -3
  226. package/esm2015/components/input-date/input-date.component.js +5 -3
  227. package/esm2015/components/input-date-range/input-date-range.component.js +4 -2
  228. package/esm2015/components/input-date-time/input-date-time.component.js +2 -2
  229. package/esm2015/components/input-file/file/file.component.js +19 -19
  230. package/esm2015/components/input-file/input-file.component.js +7 -7
  231. package/esm2015/components/input-file/input-file.module.js +3 -3
  232. package/esm2015/components/input-files/index.js +3 -0
  233. package/esm2015/components/input-files/input-files.component.js +208 -0
  234. package/esm2015/components/input-files/input-files.module.js +34 -0
  235. package/esm2015/components/input-files/taiga-ui-kit-components-input-files.js +5 -0
  236. package/esm2015/components/input-number/input-number.component.js +5 -5
  237. package/esm2015/components/input-password/input-password.component.js +3 -3
  238. package/esm2015/components/input-phone/input-phone.component.js +6 -5
  239. package/esm2015/components/input-phone-international/input-phone-international.component.js +20 -6
  240. package/esm2015/components/input-range/input-range.component.js +18 -6
  241. package/esm2015/components/input-slider/input-slider.component.js +55 -11
  242. package/esm2015/components/input-slider/input-slider.module.js +10 -6
  243. package/esm2015/components/input-tag/input-tag.component.js +3 -3
  244. package/esm2015/components/input-time/input-time.component.js +1 -1
  245. package/esm2015/components/line-clamp/line-clamp.directive.js +5 -4
  246. package/esm2015/components/multi-select/multi-select-group/multi-select-group.component.js +3 -3
  247. package/esm2015/components/multi-select/multi-select.component.js +2 -2
  248. package/esm2015/components/multi-select-option/multi-select-option.component.js +3 -3
  249. package/esm2015/components/pagination/pagination.component.js +2 -2
  250. package/esm2015/components/progress/utils/calculate-color-segments.js +3 -2
  251. package/esm2015/components/radio/radio.component.js +1 -1
  252. package/esm2015/components/select/select.component.js +2 -2
  253. package/esm2015/components/slider/index.js +3 -1
  254. package/esm2015/components/slider/slider-key-steps.directive.js +106 -0
  255. package/esm2015/components/slider/slider-options.js +13 -0
  256. package/esm2015/components/slider/slider.component.js +19 -11
  257. package/esm2015/components/slider/slider.module.js +14 -3
  258. package/esm2015/components/text-area/index.js +2 -1
  259. package/esm2015/components/text-area/text-area.component.js +21 -13
  260. package/esm2015/components/text-area/text-area.directive.js +22 -0
  261. package/esm2015/components/text-area/text-area.module.js +7 -6
  262. package/esm2015/components/text-area/text-area.providers.js +6 -2
  263. package/esm2015/directives/dropdown-selection/dropdown-selection.directive.js +23 -6
  264. package/esm2015/enums/file-state.js +1 -1
  265. package/esm2015/pipes/field-error/field-error-content-pipe.js +11 -3
  266. package/esm2015/tokens/i18n.js +7 -1
  267. package/esm2015/utils/files/get-accept-array.js +7 -0
  268. package/esm2015/utils/files/index.js +2 -1
  269. package/esm5/abstract/input-slider.js +65 -16
  270. package/esm5/components/accordion/accordion.component.js +2 -2
  271. package/esm5/components/arrow/arrow-options.js +1 -1
  272. package/esm5/components/badge/badge.component.js +1 -1
  273. package/esm5/components/badged-content/badged-content.component.js +3 -3
  274. package/esm5/components/combo-box/combo-box.component.js +2 -2
  275. package/esm5/components/data-list-wrapper/data-list-group-wrapper.component.js +3 -3
  276. package/esm5/components/data-list-wrapper/data-list-wrapper.component.js +3 -3
  277. package/esm5/components/files/file/file.component.js +213 -0
  278. package/esm5/components/files/files.component.js +50 -0
  279. package/esm5/components/files/files.module.js +32 -0
  280. package/esm5/components/files/index.js +3 -0
  281. package/esm5/components/files/taiga-ui-kit-components-files.js +6 -0
  282. package/esm5/components/index.js +3 -1
  283. package/esm5/components/input/input.component.js +1 -1
  284. package/esm5/components/input-count/input-count.component.js +3 -3
  285. package/esm5/components/input-date/input-date.component.js +5 -3
  286. package/esm5/components/input-date-range/input-date-range.component.js +4 -2
  287. package/esm5/components/input-date-time/input-date-time.component.js +2 -2
  288. package/esm5/components/input-file/file/file.component.js +37 -37
  289. package/esm5/components/input-file/input-file.component.js +7 -9
  290. package/esm5/components/input-file/input-file.module.js +3 -3
  291. package/esm5/components/input-files/index.js +3 -0
  292. package/esm5/components/input-files/input-files.component.js +239 -0
  293. package/esm5/components/input-files/input-files.module.js +37 -0
  294. package/esm5/components/input-files/taiga-ui-kit-components-input-files.js +5 -0
  295. package/esm5/components/input-number/input-number.component.js +18 -16
  296. package/esm5/components/input-password/input-password.component.js +3 -3
  297. package/esm5/components/input-phone/input-phone.component.js +6 -5
  298. package/esm5/components/input-phone-international/input-phone-international.component.js +21 -9
  299. package/esm5/components/input-range/input-range.component.js +18 -6
  300. package/esm5/components/input-slider/input-slider.component.js +58 -11
  301. package/esm5/components/input-slider/input-slider.module.js +10 -6
  302. package/esm5/components/input-tag/input-tag.component.js +3 -3
  303. package/esm5/components/input-time/input-time.component.js +1 -1
  304. package/esm5/components/line-clamp/line-clamp.directive.js +5 -4
  305. package/esm5/components/multi-select/multi-select-group/multi-select-group.component.js +3 -3
  306. package/esm5/components/multi-select/multi-select.component.js +2 -2
  307. package/esm5/components/multi-select-option/multi-select-option.component.js +3 -3
  308. package/esm5/components/pagination/pagination.component.js +2 -2
  309. package/esm5/components/progress/utils/calculate-color-segments.js +3 -2
  310. package/esm5/components/radio/radio.component.js +1 -1
  311. package/esm5/components/select/select.component.js +2 -2
  312. package/esm5/components/slider/index.js +3 -1
  313. package/esm5/components/slider/slider-key-steps.directive.js +137 -0
  314. package/esm5/components/slider/slider-options.js +14 -0
  315. package/esm5/components/slider/slider.component.js +19 -11
  316. package/esm5/components/slider/slider.module.js +14 -3
  317. package/esm5/components/text-area/index.js +2 -1
  318. package/esm5/components/text-area/text-area.component.js +21 -13
  319. package/esm5/components/text-area/text-area.directive.js +28 -0
  320. package/esm5/components/text-area/text-area.module.js +7 -6
  321. package/esm5/components/text-area/text-area.providers.js +6 -2
  322. package/esm5/directives/dropdown-selection/dropdown-selection.directive.js +23 -6
  323. package/esm5/enums/file-state.js +1 -1
  324. package/esm5/pipes/field-error/field-error-content-pipe.js +11 -3
  325. package/esm5/tokens/i18n.js +7 -1
  326. package/esm5/utils/files/get-accept-array.js +7 -0
  327. package/esm5/utils/files/index.js +2 -1
  328. package/fesm2015/taiga-ui-kit-abstract.js +42 -3
  329. package/fesm2015/taiga-ui-kit-abstract.js.map +1 -1
  330. package/fesm2015/taiga-ui-kit-components-accordion.js +1 -1
  331. package/fesm2015/taiga-ui-kit-components-accordion.js.map +1 -1
  332. package/fesm2015/taiga-ui-kit-components-arrow.js.map +1 -1
  333. package/fesm2015/taiga-ui-kit-components-badge.js.map +1 -1
  334. package/fesm2015/taiga-ui-kit-components-badged-content.js +2 -2
  335. package/fesm2015/taiga-ui-kit-components-badged-content.js.map +1 -1
  336. package/fesm2015/taiga-ui-kit-components-combo-box.js +1 -1
  337. package/fesm2015/taiga-ui-kit-components-combo-box.js.map +1 -1
  338. package/fesm2015/taiga-ui-kit-components-data-list-wrapper.js +4 -4
  339. package/fesm2015/taiga-ui-kit-components-data-list-wrapper.js.map +1 -1
  340. package/fesm2015/taiga-ui-kit-components-files.js +232 -0
  341. package/fesm2015/taiga-ui-kit-components-files.js.map +1 -0
  342. package/fesm2015/taiga-ui-kit-components-input-count.js +2 -2
  343. package/fesm2015/taiga-ui-kit-components-input-count.js.map +1 -1
  344. package/fesm2015/taiga-ui-kit-components-input-date-range.js +3 -1
  345. package/fesm2015/taiga-ui-kit-components-input-date-range.js.map +1 -1
  346. package/fesm2015/taiga-ui-kit-components-input-date-time.js +1 -1
  347. package/fesm2015/taiga-ui-kit-components-input-date-time.js.map +1 -1
  348. package/fesm2015/taiga-ui-kit-components-input-date.js +4 -2
  349. package/fesm2015/taiga-ui-kit-components-input-date.js.map +1 -1
  350. package/fesm2015/taiga-ui-kit-components-input-file.js +25 -25
  351. package/fesm2015/taiga-ui-kit-components-input-file.js.map +1 -1
  352. package/fesm2015/taiga-ui-kit-components-input-files.js +242 -0
  353. package/fesm2015/taiga-ui-kit-components-input-files.js.map +1 -0
  354. package/fesm2015/taiga-ui-kit-components-input-number.js +4 -4
  355. package/fesm2015/taiga-ui-kit-components-input-number.js.map +1 -1
  356. package/fesm2015/taiga-ui-kit-components-input-password.js +3 -3
  357. package/fesm2015/taiga-ui-kit-components-input-password.js.map +1 -1
  358. package/fesm2015/taiga-ui-kit-components-input-phone-international.js +19 -5
  359. package/fesm2015/taiga-ui-kit-components-input-phone-international.js.map +1 -1
  360. package/fesm2015/taiga-ui-kit-components-input-phone.js +5 -4
  361. package/fesm2015/taiga-ui-kit-components-input-phone.js.map +1 -1
  362. package/fesm2015/taiga-ui-kit-components-input-range.js +17 -5
  363. package/fesm2015/taiga-ui-kit-components-input-range.js.map +1 -1
  364. package/fesm2015/taiga-ui-kit-components-input-slider.js +61 -15
  365. package/fesm2015/taiga-ui-kit-components-input-slider.js.map +1 -1
  366. package/fesm2015/taiga-ui-kit-components-input-tag.js +2 -2
  367. package/fesm2015/taiga-ui-kit-components-input-tag.js.map +1 -1
  368. package/fesm2015/taiga-ui-kit-components-input-time.js.map +1 -1
  369. package/fesm2015/taiga-ui-kit-components-input.js.map +1 -1
  370. package/fesm2015/taiga-ui-kit-components-line-clamp.js +4 -3
  371. package/fesm2015/taiga-ui-kit-components-line-clamp.js.map +1 -1
  372. package/fesm2015/taiga-ui-kit-components-multi-select-option.js +2 -2
  373. package/fesm2015/taiga-ui-kit-components-multi-select-option.js.map +1 -1
  374. package/fesm2015/taiga-ui-kit-components-multi-select.js +2 -2
  375. package/fesm2015/taiga-ui-kit-components-multi-select.js.map +1 -1
  376. package/fesm2015/taiga-ui-kit-components-pagination.js +1 -1
  377. package/fesm2015/taiga-ui-kit-components-pagination.js.map +1 -1
  378. package/fesm2015/taiga-ui-kit-components-progress.js +2 -2
  379. package/fesm2015/taiga-ui-kit-components-progress.js.map +1 -1
  380. package/fesm2015/taiga-ui-kit-components-radio.js.map +1 -1
  381. package/fesm2015/taiga-ui-kit-components-select.js.map +1 -1
  382. package/fesm2015/taiga-ui-kit-components-slider.js +143 -16
  383. package/fesm2015/taiga-ui-kit-components-slider.js.map +1 -1
  384. package/fesm2015/taiga-ui-kit-components-text-area.js +47 -17
  385. package/fesm2015/taiga-ui-kit-components-text-area.js.map +1 -1
  386. package/fesm2015/taiga-ui-kit-components.js +2 -0
  387. package/fesm2015/taiga-ui-kit-components.js.map +1 -1
  388. package/fesm2015/taiga-ui-kit-directives-dropdown-selection.js +22 -5
  389. package/fesm2015/taiga-ui-kit-directives-dropdown-selection.js.map +1 -1
  390. package/fesm2015/taiga-ui-kit-enums.js.map +1 -1
  391. package/fesm2015/taiga-ui-kit-pipes-field-error.js +10 -2
  392. package/fesm2015/taiga-ui-kit-pipes-field-error.js.map +1 -1
  393. package/fesm2015/taiga-ui-kit-tokens.js +7 -1
  394. package/fesm2015/taiga-ui-kit-tokens.js.map +1 -1
  395. package/fesm2015/taiga-ui-kit-utils-files.js +8 -1
  396. package/fesm2015/taiga-ui-kit-utils-files.js.map +1 -1
  397. package/fesm5/taiga-ui-kit-abstract.js +64 -15
  398. package/fesm5/taiga-ui-kit-abstract.js.map +1 -1
  399. package/fesm5/taiga-ui-kit-components-accordion.js +1 -1
  400. package/fesm5/taiga-ui-kit-components-accordion.js.map +1 -1
  401. package/fesm5/taiga-ui-kit-components-arrow.js.map +1 -1
  402. package/fesm5/taiga-ui-kit-components-badge.js.map +1 -1
  403. package/fesm5/taiga-ui-kit-components-badged-content.js +2 -2
  404. package/fesm5/taiga-ui-kit-components-badged-content.js.map +1 -1
  405. package/fesm5/taiga-ui-kit-components-combo-box.js +1 -1
  406. package/fesm5/taiga-ui-kit-components-combo-box.js.map +1 -1
  407. package/fesm5/taiga-ui-kit-components-data-list-wrapper.js +4 -4
  408. package/fesm5/taiga-ui-kit-components-data-list-wrapper.js.map +1 -1
  409. package/fesm5/taiga-ui-kit-components-files.js +289 -0
  410. package/fesm5/taiga-ui-kit-components-files.js.map +1 -0
  411. package/fesm5/taiga-ui-kit-components-input-count.js +2 -2
  412. package/fesm5/taiga-ui-kit-components-input-count.js.map +1 -1
  413. package/fesm5/taiga-ui-kit-components-input-date-range.js +3 -1
  414. package/fesm5/taiga-ui-kit-components-input-date-range.js.map +1 -1
  415. package/fesm5/taiga-ui-kit-components-input-date-time.js +1 -1
  416. package/fesm5/taiga-ui-kit-components-input-date-time.js.map +1 -1
  417. package/fesm5/taiga-ui-kit-components-input-date.js +4 -2
  418. package/fesm5/taiga-ui-kit-components-input-date.js.map +1 -1
  419. package/fesm5/taiga-ui-kit-components-input-file.js +43 -45
  420. package/fesm5/taiga-ui-kit-components-input-file.js.map +1 -1
  421. package/fesm5/taiga-ui-kit-components-input-files.js +276 -0
  422. package/fesm5/taiga-ui-kit-components-input-files.js.map +1 -0
  423. package/fesm5/taiga-ui-kit-components-input-number.js +17 -15
  424. package/fesm5/taiga-ui-kit-components-input-number.js.map +1 -1
  425. package/fesm5/taiga-ui-kit-components-input-password.js +3 -3
  426. package/fesm5/taiga-ui-kit-components-input-password.js.map +1 -1
  427. package/fesm5/taiga-ui-kit-components-input-phone-international.js +20 -8
  428. package/fesm5/taiga-ui-kit-components-input-phone-international.js.map +1 -1
  429. package/fesm5/taiga-ui-kit-components-input-phone.js +5 -4
  430. package/fesm5/taiga-ui-kit-components-input-phone.js.map +1 -1
  431. package/fesm5/taiga-ui-kit-components-input-range.js +17 -5
  432. package/fesm5/taiga-ui-kit-components-input-range.js.map +1 -1
  433. package/fesm5/taiga-ui-kit-components-input-slider.js +65 -16
  434. package/fesm5/taiga-ui-kit-components-input-slider.js.map +1 -1
  435. package/fesm5/taiga-ui-kit-components-input-tag.js +2 -2
  436. package/fesm5/taiga-ui-kit-components-input-tag.js.map +1 -1
  437. package/fesm5/taiga-ui-kit-components-input-time.js.map +1 -1
  438. package/fesm5/taiga-ui-kit-components-input.js.map +1 -1
  439. package/fesm5/taiga-ui-kit-components-line-clamp.js +4 -3
  440. package/fesm5/taiga-ui-kit-components-line-clamp.js.map +1 -1
  441. package/fesm5/taiga-ui-kit-components-multi-select-option.js +2 -2
  442. package/fesm5/taiga-ui-kit-components-multi-select-option.js.map +1 -1
  443. package/fesm5/taiga-ui-kit-components-multi-select.js +2 -2
  444. package/fesm5/taiga-ui-kit-components-multi-select.js.map +1 -1
  445. package/fesm5/taiga-ui-kit-components-pagination.js +1 -1
  446. package/fesm5/taiga-ui-kit-components-pagination.js.map +1 -1
  447. package/fesm5/taiga-ui-kit-components-progress.js +2 -2
  448. package/fesm5/taiga-ui-kit-components-progress.js.map +1 -1
  449. package/fesm5/taiga-ui-kit-components-radio.js.map +1 -1
  450. package/fesm5/taiga-ui-kit-components-select.js.map +1 -1
  451. package/fesm5/taiga-ui-kit-components-slider.js +175 -17
  452. package/fesm5/taiga-ui-kit-components-slider.js.map +1 -1
  453. package/fesm5/taiga-ui-kit-components-text-area.js +53 -17
  454. package/fesm5/taiga-ui-kit-components-text-area.js.map +1 -1
  455. package/fesm5/taiga-ui-kit-components.js +2 -0
  456. package/fesm5/taiga-ui-kit-components.js.map +1 -1
  457. package/fesm5/taiga-ui-kit-directives-dropdown-selection.js +22 -5
  458. package/fesm5/taiga-ui-kit-directives-dropdown-selection.js.map +1 -1
  459. package/fesm5/taiga-ui-kit-enums.js.map +1 -1
  460. package/fesm5/taiga-ui-kit-pipes-field-error.js +10 -2
  461. package/fesm5/taiga-ui-kit-pipes-field-error.js.map +1 -1
  462. package/fesm5/taiga-ui-kit-tokens.js +7 -1
  463. package/fesm5/taiga-ui-kit-tokens.js.map +1 -1
  464. package/fesm5/taiga-ui-kit-utils-files.js +8 -1
  465. package/fesm5/taiga-ui-kit-utils-files.js.map +1 -1
  466. package/package.json +4 -4
  467. package/pipes/field-error/field-error-content-pipe.d.ts +1 -0
  468. package/pipes/field-error/taiga-ui-kit-pipes-field-error.metadata.json +1 -1
  469. package/tokens/i18n.d.ts +2 -0
  470. package/tokens/taiga-ui-kit-tokens.metadata.json +1 -1
  471. package/utils/files/get-accept-array.d.ts +1 -0
  472. package/utils/files/index.d.ts +1 -0
  473. package/utils/files/taiga-ui-kit-utils-files.metadata.json +1 -1
@@ -8,6 +8,14 @@ import { merge } from 'rxjs';
8
8
  import { switchMapTo, takeUntil, map } from 'rxjs/operators';
9
9
 
10
10
  var TuiDropdownSelectionDirective_1;
11
+ const EMPTY_RECT = {
12
+ bottom: 0,
13
+ height: 0,
14
+ left: 0,
15
+ right: 0,
16
+ top: 0,
17
+ width: 0,
18
+ };
11
19
  // @dynamic
12
20
  let TuiDropdownSelectionDirective = TuiDropdownSelectionDirective_1 = class TuiDropdownSelectionDirective extends AbstractTuiDropdown {
13
21
  constructor(documentRef, componentFactoryResolver, injector, portalService, elementRef, activeZone, shadowRootRef, customElementRef, destroy$, refresh$, changeDetectorRef, ngZone, renderer, viewContainerRef) {
@@ -20,6 +28,10 @@ let TuiDropdownSelectionDirective = TuiDropdownSelectionDirective_1 = class TuiD
20
28
  this.visibilityHandler = ALWAYS_TRUE_HANDLER;
21
29
  this.position = 'selection';
22
30
  this.documentRef = shadowRootRef || documentRef;
31
+ // SSR protection
32
+ if (!this.documentRef.createRange) {
33
+ return;
34
+ }
23
35
  this.range = this.documentRef.createRange();
24
36
  const { nativeElement } = this.elementRef;
25
37
  merge(typedFromEvent(this.documentRef, 'mouseup'), typedFromEvent(nativeElement, 'mousedown').pipe(switchMapTo(typedFromEvent(nativeElement, 'mousemove').pipe(takeUntil(typedFromEvent(this.documentRef, 'mouseup'))))), typedFromEvent(nativeElement, 'keyup'))
@@ -37,15 +49,17 @@ let TuiDropdownSelectionDirective = TuiDropdownSelectionDirective_1 = class TuiD
37
49
  : this.range;
38
50
  }), takeUntil(destroy$))
39
51
  .subscribe(range => {
40
- const contained = nativeElement.contains(range.commonAncestorContainer);
52
+ const contained = !!range && nativeElement.contains(range.commonAncestorContainer);
41
53
  this.range = contained ? range : this.range;
42
54
  const valid = contained &&
43
- (!this.visibilityHandler || this.visibilityHandler(this.range));
44
- this.toggleDropdownBox(valid || this.inDropdown(range));
55
+ (!this.visibilityHandler ||
56
+ !this.range ||
57
+ this.visibilityHandler(this.range));
58
+ this.toggleDropdownBox(!!range && (valid || this.inDropdown(range)));
45
59
  });
46
60
  }
47
61
  set tuiDropdownSelection(handler) {
48
- if (!handler) {
62
+ if (!handler || !this.range) {
49
63
  return;
50
64
  }
51
65
  const inHostAndValid = this.elementRef.nativeElement.contains(this.range.commonAncestorContainer) &&
@@ -80,6 +94,9 @@ let TuiDropdownSelectionDirective = TuiDropdownSelectionDirective_1 = class TuiD
80
94
  * get ClientRect of current Range according to provided position
81
95
  */
82
96
  get rangeRect() {
97
+ if (!this.range) {
98
+ return EMPTY_RECT;
99
+ }
83
100
  switch (this.position) {
84
101
  case 'tag': {
85
102
  const { commonAncestorContainer } = this.range;
@@ -116,7 +133,7 @@ let TuiDropdownSelectionDirective = TuiDropdownSelectionDirective_1 = class TuiD
116
133
  this.dropdownBoxRef.location.nativeElement.contains(node));
117
134
  }
118
135
  /**
119
- * Check if given range is at leaset partially inside dropdown
136
+ * Check if given range is at least partially inside dropdown
120
137
  */
121
138
  inDropdown(range) {
122
139
  const { startContainer, endContainer } = range;
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-kit-directives-dropdown-selection.js","sources":["ng://@taiga-ui/kit/directives/dropdown-selection/dropdown-selection.directive.ts","ng://@taiga-ui/kit/directives/dropdown-selection/dropdown-selection.module.ts","ng://@taiga-ui/kit/directives/dropdown-selection/taiga-ui-kit-directives-dropdown-selection.ts"],"sourcesContent":["import {DOCUMENT} from '@angular/common';\nimport {\n ChangeDetectorRef,\n ComponentFactoryResolver,\n Directive,\n ElementRef,\n forwardRef,\n Host,\n Inject,\n Injector,\n Input,\n NgZone,\n OnDestroy,\n Optional,\n Renderer2,\n ViewContainerRef,\n} from '@angular/core';\nimport {\n ALWAYS_TRUE_HANDLER,\n CHAR_NO_BREAK_SPACE,\n CHAR_ZERO_WIDTH_SPACE,\n getNativeFocused,\n px,\n TuiActiveZoneDirective,\n TuiBooleanHandler,\n TuiDestroyService,\n TuiParentsScrollService,\n TuiPortalService,\n typedFromEvent,\n} from '@taiga-ui/cdk';\nimport {\n AbstractTuiDropdown,\n TUI_DOCUMENT_OR_SHADOW_ROOT,\n TUI_DROPDOWN_DIRECTIVE,\n TUI_ELEMENT_REF,\n TuiDropdown,\n} from '@taiga-ui/core';\nimport {getWordRange} from '@taiga-ui/kit/utils/dom';\nimport {merge} from 'rxjs';\nimport {map, switchMapTo, takeUntil} from 'rxjs/operators';\n\n// @dynamic\n@Directive({\n selector: '[tuiDropdownSelection]:not(ng-container)',\n providers: [\n {\n provide: TUI_DROPDOWN_DIRECTIVE,\n useExisting: forwardRef(() => TuiDropdownSelectionDirective),\n },\n TuiParentsScrollService,\n TuiDestroyService,\n ],\n})\nexport class TuiDropdownSelectionDirective\n extends AbstractTuiDropdown\n implements TuiDropdown, OnDestroy\n{\n private visibilityHandler: TuiBooleanHandler<Range> = ALWAYS_TRUE_HANDLER;\n private readonly documentRef: Document;\n private ghost?: HTMLElement;\n private range: Range;\n\n @Input()\n set tuiDropdownSelection(handler: TuiBooleanHandler<Range> | undefined) {\n if (!handler) {\n return;\n }\n\n const inHostAndValid =\n this.elementRef.nativeElement.contains(this.range.commonAncestorContainer) &&\n handler(this.range);\n\n this.visibilityHandler = handler;\n this.toggleDropdownBox(inHostAndValid);\n }\n\n @Input('tuiDropdownSelectionPosition')\n position: 'selection' | 'word' | 'tag' = 'selection';\n\n constructor(\n @Inject(DOCUMENT) documentRef: Document,\n @Inject(ComponentFactoryResolver)\n componentFactoryResolver: ComponentFactoryResolver,\n @Inject(Injector) injector: Injector,\n @Inject(TuiPortalService) portalService: TuiPortalService,\n @Host() @Inject(ElementRef) elementRef: ElementRef<HTMLElement>,\n @Inject(TuiActiveZoneDirective)\n @Optional()\n activeZone: TuiActiveZoneDirective | null,\n @Inject(TUI_DOCUMENT_OR_SHADOW_ROOT)\n @Optional()\n shadowRootRef: Document | null,\n @Inject(TUI_ELEMENT_REF)\n @Optional()\n customElementRef: ElementRef<HTMLElement> | null,\n @Inject(TuiDestroyService)\n destroy$: TuiDestroyService,\n @Inject(TuiParentsScrollService) readonly refresh$: TuiParentsScrollService,\n @Inject(ChangeDetectorRef) private readonly changeDetectorRef: ChangeDetectorRef,\n @Inject(NgZone) private readonly ngZone: NgZone,\n @Inject(Renderer2) private readonly renderer: Renderer2,\n @Inject(ViewContainerRef) private readonly viewContainerRef: ViewContainerRef,\n ) {\n super(\n componentFactoryResolver,\n injector,\n portalService,\n customElementRef || elementRef,\n activeZone,\n );\n this.documentRef = shadowRootRef || documentRef;\n this.range = this.documentRef.createRange();\n\n const {nativeElement} = this.elementRef;\n\n merge(\n typedFromEvent(this.documentRef, 'mouseup'),\n typedFromEvent(nativeElement, 'mousedown').pipe(\n switchMapTo(\n typedFromEvent(nativeElement, 'mousemove').pipe(\n takeUntil(typedFromEvent(this.documentRef, 'mouseup')),\n ),\n ),\n ),\n typedFromEvent(nativeElement, 'keyup'),\n )\n .pipe(\n map(() => {\n const active = getNativeFocused(this.documentRef);\n const selection = this.documentRef.getSelection();\n\n // TODO: iframe warning\n if (\n (active instanceof HTMLInputElement ||\n active instanceof HTMLTextAreaElement) &&\n nativeElement.contains(active)\n ) {\n return this.veryVerySadInputFix(active);\n }\n\n return selection && selection.rangeCount\n ? selection.getRangeAt(0)\n : this.range;\n }),\n takeUntil(destroy$),\n )\n .subscribe(range => {\n const contained = nativeElement.contains(range.commonAncestorContainer);\n\n this.range = contained ? range : this.range;\n\n const valid =\n contained &&\n (!this.visibilityHandler || this.visibilityHandler(this.range));\n\n this.toggleDropdownBox(valid || this.inDropdown(range));\n });\n }\n\n get clientRect(): ClientRect {\n const {defaultView} = this.documentRef;\n const {rangeRect} = this;\n const frameElement = defaultView ? defaultView.frameElement : null;\n\n if (!frameElement) {\n return rangeRect;\n }\n\n const documentRect = frameElement.getBoundingClientRect();\n\n return {\n top: rangeRect.top + documentRect.top,\n left: rangeRect.left + documentRect.left,\n right: rangeRect.left + documentRect.left + rangeRect.width,\n bottom: rangeRect.top + documentRect.top + rangeRect.height,\n width: rangeRect.width,\n height: rangeRect.height,\n };\n }\n\n ngOnDestroy() {\n this.closeDropdownBox();\n\n if (this.ghost) {\n this.renderer.removeChild(\n this.viewContainerRef.element.nativeElement,\n this.ghost,\n );\n }\n }\n\n /**\n * get ClientRect of current Range according to provided position\n */\n private get rangeRect(): ClientRect {\n switch (this.position) {\n case 'tag': {\n const {commonAncestorContainer} = this.range;\n const element =\n commonAncestorContainer.nodeType === Node.ELEMENT_NODE\n ? commonAncestorContainer\n : commonAncestorContainer.parentNode;\n\n return (element as Element).getBoundingClientRect();\n }\n case 'word':\n return getWordRange(this.range).getBoundingClientRect();\n default:\n return this.range.getBoundingClientRect();\n }\n }\n\n /**\n * Toggle dropdown visibility (has to be in ngZone.run because it could be initiated inside iframe in Editor)\n */\n private toggleDropdownBox(visible: boolean) {\n this.ngZone.run(() => {\n if (visible) {\n this.openDropdownBox();\n } else {\n this.closeDropdownBox();\n }\n\n this.changeDetectorRef.markForCheck();\n });\n }\n\n /**\n * Check if Node is inside dropdown\n */\n private boxContains(node: Node): boolean {\n return (\n !!this.dropdownBoxRef &&\n this.dropdownBoxRef.location.nativeElement.contains(node)\n );\n }\n\n /**\n * Check if given range is at leaset partially inside dropdown\n */\n private inDropdown(range: Range): boolean {\n const {startContainer, endContainer} = range;\n const inDropdown = this.boxContains(range.commonAncestorContainer);\n const hostToDropdown =\n this.boxContains(endContainer) &&\n this.elementRef.nativeElement.contains(startContainer);\n const dropdownToHost =\n this.boxContains(startContainer) &&\n this.elementRef.nativeElement.contains(endContainer);\n\n return inDropdown || hostToDropdown || dropdownToHost;\n }\n\n /**\n * Position invisible DIV and create Range similar to selected range inside input/textarea\n */\n private veryVerySadInputFix(element: HTMLInputElement | HTMLTextAreaElement): Range {\n const {ghost = this.initGhost(element)} = this;\n const {top, left, width, height} = element.getBoundingClientRect();\n const {selectionStart, selectionEnd} = element;\n const range = this.documentRef.createRange();\n const hostRect = this.elementRef.nativeElement.getBoundingClientRect();\n\n ghost.style.top = px(top - hostRect.top);\n ghost.style.left = px(left - hostRect.left);\n ghost.style.width = px(width);\n ghost.style.height = px(height);\n ghost.textContent = CHAR_ZERO_WIDTH_SPACE + element.value + CHAR_NO_BREAK_SPACE;\n\n range.setStart(ghost.firstChild!, selectionStart || 0);\n range.setEnd(ghost.firstChild!, selectionEnd || 0);\n\n return range;\n }\n\n /**\n * Create an invisible DIV styled exactly like input/textarea element inside directive\n */\n private initGhost(element: HTMLInputElement | HTMLTextAreaElement): HTMLElement {\n const ghost = this.renderer.createElement('div');\n const {nativeElement} = this.viewContainerRef.element;\n const {font, letterSpacing, textTransform, padding} = getComputedStyle(element);\n\n ghost.style.position = 'absolute';\n ghost.style.pointerEvents = 'none';\n ghost.style.opacity = '0';\n ghost.style.whiteSpace = 'pre-wrap';\n ghost.style.font = font;\n ghost.style.letterSpacing = letterSpacing;\n ghost.style.textTransform = textTransform;\n ghost.style.padding = padding;\n\n this.renderer.appendChild(nativeElement, ghost);\n this.ghost = ghost;\n\n return ghost;\n }\n}\n","import {NgModule} from '@angular/core';\nimport {TuiDropdownBoxModule} from '@taiga-ui/core';\n\nimport {TuiDropdownSelectionDirective} from './dropdown-selection.directive';\n\n@NgModule({\n imports: [TuiDropdownBoxModule],\n declarations: [TuiDropdownSelectionDirective],\n exports: [TuiDropdownSelectionDirective],\n})\nexport class TuiDropdownSelectionModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;AAyCA;IAYa,6BAA6B,qCAA1C,MAAa,6BACT,SAAQ,mBAAmB;IAyB3B,YACsB,WAAqB,EAEvC,wBAAkD,EAChC,QAAkB,EACV,aAA+B,EAC7B,UAAmC,EAG/D,UAAyC,EAGzC,aAA8B,EAG9B,gBAAgD,EAEhD,QAA2B,EACe,QAAiC,EAC/B,iBAAoC,EAC/C,MAAc,EACX,QAAmB,EACZ,gBAAkC;QAE7E,KAAK,CACD,wBAAwB,EACxB,QAAQ,EACR,aAAa,EACb,gBAAgB,IAAI,UAAU,EAC9B,UAAU,CACb,CAAC;QAZwC,aAAQ,GAAR,QAAQ,CAAyB;QAC/B,sBAAiB,GAAjB,iBAAiB,CAAmB;QAC/C,WAAM,GAAN,MAAM,CAAQ;QACX,aAAQ,GAAR,QAAQ,CAAW;QACZ,qBAAgB,GAAhB,gBAAgB,CAAkB;QA5CzE,sBAAiB,GAA6B,mBAAmB,CAAC;QAoB1E,aAAQ,GAAiC,WAAW,CAAC;QAiCjD,IAAI,CAAC,WAAW,GAAG,aAAa,IAAI,WAAW,CAAC;QAChD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC;QAE5C,MAAM,EAAC,aAAa,EAAC,GAAG,IAAI,CAAC,UAAU,CAAC;QAExC,KAAK,CACD,cAAc,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,EAC3C,cAAc,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC,IAAI,CAC3C,WAAW,CACP,cAAc,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC,IAAI,CAC3C,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC,CACzD,CACJ,CACJ,EACD,cAAc,CAAC,aAAa,EAAE,OAAO,CAAC,CACzC;aACI,IAAI,CACD,GAAG,CAAC;YACA,MAAM,MAAM,GAAG,gBAAgB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAClD,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE,CAAC;;YAGlD,IACI,CAAC,MAAM,YAAY,gBAAgB;gBAC/B,MAAM,YAAY,mBAAmB;gBACzC,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,EAChC;gBACE,OAAO,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;aAC3C;YAED,OAAO,SAAS,IAAI,SAAS,CAAC,UAAU;kBAClC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC;kBACvB,IAAI,CAAC,KAAK,CAAC;SACpB,CAAC,EACF,SAAS,CAAC,QAAQ,CAAC,CACtB;aACA,SAAS,CAAC,KAAK;YACZ,MAAM,SAAS,GAAG,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;YAExE,IAAI,CAAC,KAAK,GAAG,SAAS,GAAG,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YAE5C,MAAM,KAAK,GACP,SAAS;iBACR,CAAC,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;YAEpE,IAAI,CAAC,iBAAiB,CAAC,KAAK,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;SAC3D,CAAC,CAAC;KACV;IA9FD,IAAI,oBAAoB,CAAC,OAA6C;QAClE,IAAI,CAAC,OAAO,EAAE;YACV,OAAO;SACV;QAED,MAAM,cAAc,GAChB,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,uBAAuB,CAAC;YAC1E,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAExB,IAAI,CAAC,iBAAiB,GAAG,OAAO,CAAC;QACjC,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC;KAC1C;IAqFD,IAAI,UAAU;QACV,MAAM,EAAC,WAAW,EAAC,GAAG,IAAI,CAAC,WAAW,CAAC;QACvC,MAAM,EAAC,SAAS,EAAC,GAAG,IAAI,CAAC;QACzB,MAAM,YAAY,GAAG,WAAW,GAAG,WAAW,CAAC,YAAY,GAAG,IAAI,CAAC;QAEnE,IAAI,CAAC,YAAY,EAAE;YACf,OAAO,SAAS,CAAC;SACpB;QAED,MAAM,YAAY,GAAG,YAAY,CAAC,qBAAqB,EAAE,CAAC;QAE1D,OAAO;YACH,GAAG,EAAE,SAAS,CAAC,GAAG,GAAG,YAAY,CAAC,GAAG;YACrC,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,YAAY,CAAC,IAAI;YACxC,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,YAAY,CAAC,IAAI,GAAG,SAAS,CAAC,KAAK;YAC3D,MAAM,EAAE,SAAS,CAAC,GAAG,GAAG,YAAY,CAAC,GAAG,GAAG,SAAS,CAAC,MAAM;YAC3D,KAAK,EAAE,SAAS,CAAC,KAAK;YACtB,MAAM,EAAE,SAAS,CAAC,MAAM;SAC3B,CAAC;KACL;IAED,WAAW;QACP,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAExB,IAAI,IAAI,CAAC,KAAK,EAAE;YACZ,IAAI,CAAC,QAAQ,CAAC,WAAW,CACrB,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,aAAa,EAC3C,IAAI,CAAC,KAAK,CACb,CAAC;SACL;KACJ;;;;IAKD,IAAY,SAAS;QACjB,QAAQ,IAAI,CAAC,QAAQ;YACjB,KAAK,KAAK,EAAE;gBACR,MAAM,EAAC,uBAAuB,EAAC,GAAG,IAAI,CAAC,KAAK,CAAC;gBAC7C,MAAM,OAAO,GACT,uBAAuB,CAAC,QAAQ,KAAK,IAAI,CAAC,YAAY;sBAChD,uBAAuB;sBACvB,uBAAuB,CAAC,UAAU,CAAC;gBAE7C,OAAQ,OAAmB,CAAC,qBAAqB,EAAE,CAAC;aACvD;YACD,KAAK,MAAM;gBACP,OAAO,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,qBAAqB,EAAE,CAAC;YAC5D;gBACI,OAAO,IAAI,CAAC,KAAK,CAAC,qBAAqB,EAAE,CAAC;SACjD;KACJ;;;;IAKO,iBAAiB,CAAC,OAAgB;QACtC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;YACZ,IAAI,OAAO,EAAE;gBACT,IAAI,CAAC,eAAe,EAAE,CAAC;aAC1B;iBAAM;gBACH,IAAI,CAAC,gBAAgB,EAAE,CAAC;aAC3B;YAED,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE,CAAC;SACzC,CAAC,CAAC;KACN;;;;IAKO,WAAW,CAAC,IAAU;QAC1B,QACI,CAAC,CAAC,IAAI,CAAC,cAAc;YACrB,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,EAC3D;KACL;;;;IAKO,UAAU,CAAC,KAAY;QAC3B,MAAM,EAAC,cAAc,EAAE,YAAY,EAAC,GAAG,KAAK,CAAC;QAC7C,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;QACnE,MAAM,cAAc,GAChB,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC;YAC9B,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;QAC3D,MAAM,cAAc,GAChB,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC;YAChC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QAEzD,OAAO,UAAU,IAAI,cAAc,IAAI,cAAc,CAAC;KACzD;;;;IAKO,mBAAmB,CAAC,OAA+C;QACvE,MAAM,EAAC,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAC,GAAG,IAAI,CAAC;QAC/C,MAAM,EAAC,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAC,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC;QACnE,MAAM,EAAC,cAAc,EAAE,YAAY,EAAC,GAAG,OAAO,CAAC;QAC/C,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC;QAC7C,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,qBAAqB,EAAE,CAAC;QAEvE,KAAK,CAAC,KAAK,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;QACzC,KAAK,CAAC,KAAK,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC5C,KAAK,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;QAC9B,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC;QAChC,KAAK,CAAC,WAAW,GAAG,qBAAqB,GAAG,OAAO,CAAC,KAAK,GAAG,mBAAmB,CAAC;QAEhF,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,UAAW,EAAE,cAAc,IAAI,CAAC,CAAC,CAAC;QACvD,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,UAAW,EAAE,YAAY,IAAI,CAAC,CAAC,CAAC;QAEnD,OAAO,KAAK,CAAC;KAChB;;;;IAKO,SAAS,CAAC,OAA+C;QAC7D,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QACjD,MAAM,EAAC,aAAa,EAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC;QACtD,MAAM,EAAC,IAAI,EAAE,aAAa,EAAE,aAAa,EAAE,OAAO,EAAC,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;QAEhF,KAAK,CAAC,KAAK,CAAC,QAAQ,GAAG,UAAU,CAAC;QAClC,KAAK,CAAC,KAAK,CAAC,aAAa,GAAG,MAAM,CAAC;QACnC,KAAK,CAAC,KAAK,CAAC,OAAO,GAAG,GAAG,CAAC;QAC1B,KAAK,CAAC,KAAK,CAAC,UAAU,GAAG,UAAU,CAAC;QACpC,KAAK,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;QACxB,KAAK,CAAC,KAAK,CAAC,aAAa,GAAG,aAAa,CAAC;QAC1C,KAAK,CAAC,KAAK,CAAC,aAAa,GAAG,aAAa,CAAC;QAC1C,KAAK,CAAC,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC;QAE9B,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;QAChD,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QAEnB,OAAO,KAAK,CAAC;KAChB;EACJ;;YAzNsC,QAAQ,uBAAtC,MAAM,SAAC,QAAQ;YAEU,wBAAwB,uBADjD,MAAM,SAAC,wBAAwB;YAEJ,QAAQ,uBAAnC,MAAM,SAAC,QAAQ;YACyB,gBAAgB,uBAAxD,MAAM,SAAC,gBAAgB;YACgB,UAAU,uBAAjD,IAAI,YAAI,MAAM,SAAC,UAAU;YAGd,sBAAsB,uBAFjC,MAAM,SAAC,sBAAsB,cAC7B,QAAQ;YAIM,QAAQ,uBAFtB,MAAM,SAAC,2BAA2B,cAClC,QAAQ;YAIS,UAAU,uBAF3B,MAAM,SAAC,eAAe,cACtB,QAAQ;YAGC,iBAAiB,uBAD1B,MAAM,SAAC,iBAAiB;YAE2B,uBAAuB,uBAA1E,MAAM,SAAC,uBAAuB;YACgC,iBAAiB,uBAA/E,MAAM,SAAC,iBAAiB;YACgB,MAAM,uBAA9C,MAAM,SAAC,MAAM;YACgC,SAAS,uBAAtD,MAAM,SAAC,SAAS;YAC4C,gBAAgB,uBAA5E,MAAM,SAAC,gBAAgB;;AAtC5B;IADC,KAAK,EAAE;yEAYP;AAGD;IADC,KAAK,CAAC,8BAA8B,CAAC;+DACe;AAxB5C,6BAA6B;IAXzC,SAAS,CAAC;QACP,QAAQ,EAAE,0CAA0C;QACpD,SAAS,EAAE;YACP;gBACI,OAAO,EAAE,sBAAsB;gBAC/B,WAAW,EAAE,UAAU,CAAC,MAAM,+BAA6B,CAAC;aAC/D;YACD,uBAAuB;YACvB,iBAAiB;SACpB;KACJ,CAAC;IA4BO,WAAA,MAAM,CAAC,QAAQ,CAAC,CAAA;IAChB,WAAA,MAAM,CAAC,wBAAwB,CAAC,CAAA;IAEhC,WAAA,MAAM,CAAC,QAAQ,CAAC,CAAA;IAChB,WAAA,MAAM,CAAC,gBAAgB,CAAC,CAAA;IACxB,WAAA,IAAI,EAAE,CAAA,EAAE,WAAA,MAAM,CAAC,UAAU,CAAC,CAAA;IAC1B,WAAA,MAAM,CAAC,sBAAsB,CAAC,CAAA;IAC9B,WAAA,QAAQ,EAAE,CAAA;IAEV,WAAA,MAAM,CAAC,2BAA2B,CAAC,CAAA;IACnC,WAAA,QAAQ,EAAE,CAAA;IAEV,WAAA,MAAM,CAAC,eAAe,CAAC,CAAA;IACvB,WAAA,QAAQ,EAAE,CAAA;IAEV,WAAA,MAAM,CAAC,iBAAiB,CAAC,CAAA;IAEzB,WAAA,MAAM,CAAC,uBAAuB,CAAC,CAAA;IAC/B,YAAA,MAAM,CAAC,iBAAiB,CAAC,CAAA;IACzB,YAAA,MAAM,CAAC,MAAM,CAAC,CAAA;IACd,YAAA,MAAM,CAAC,SAAS,CAAC,CAAA;IACjB,YAAA,MAAM,CAAC,gBAAgB,CAAC,CAAA;GAhDpB,6BAA6B,CAoPzC;;IC/RY,0BAA0B,GAAvC,MAAa,0BAA0B;EAAG;AAA7B,0BAA0B;IALtC,QAAQ,CAAC;QACN,OAAO,EAAE,CAAC,oBAAoB,CAAC;QAC/B,YAAY,EAAE,CAAC,6BAA6B,CAAC;QAC7C,OAAO,EAAE,CAAC,6BAA6B,CAAC;KAC3C,CAAC;GACW,0BAA0B,CAAG;;ACV1C;;;;;;"}
1
+ {"version":3,"file":"taiga-ui-kit-directives-dropdown-selection.js","sources":["ng://@taiga-ui/kit/directives/dropdown-selection/dropdown-selection.directive.ts","ng://@taiga-ui/kit/directives/dropdown-selection/dropdown-selection.module.ts","ng://@taiga-ui/kit/directives/dropdown-selection/taiga-ui-kit-directives-dropdown-selection.ts"],"sourcesContent":["import {DOCUMENT} from '@angular/common';\nimport {\n ChangeDetectorRef,\n ComponentFactoryResolver,\n Directive,\n ElementRef,\n forwardRef,\n Host,\n Inject,\n Injector,\n Input,\n NgZone,\n OnDestroy,\n Optional,\n Renderer2,\n ViewContainerRef,\n} from '@angular/core';\nimport {\n ALWAYS_TRUE_HANDLER,\n CHAR_NO_BREAK_SPACE,\n CHAR_ZERO_WIDTH_SPACE,\n getNativeFocused,\n px,\n TuiActiveZoneDirective,\n TuiBooleanHandler,\n TuiDestroyService,\n TuiParentsScrollService,\n TuiPortalService,\n typedFromEvent,\n} from '@taiga-ui/cdk';\nimport {\n AbstractTuiDropdown,\n TUI_DOCUMENT_OR_SHADOW_ROOT,\n TUI_DROPDOWN_DIRECTIVE,\n TUI_ELEMENT_REF,\n TuiDropdown,\n} from '@taiga-ui/core';\nimport {getWordRange} from '@taiga-ui/kit/utils/dom';\nimport {merge} from 'rxjs';\nimport {map, switchMapTo, takeUntil} from 'rxjs/operators';\n\nconst EMPTY_RECT: ClientRect = {\n bottom: 0,\n height: 0,\n left: 0,\n right: 0,\n top: 0,\n width: 0,\n};\n\n// @dynamic\n@Directive({\n selector: '[tuiDropdownSelection]:not(ng-container)',\n providers: [\n {\n provide: TUI_DROPDOWN_DIRECTIVE,\n useExisting: forwardRef(() => TuiDropdownSelectionDirective),\n },\n TuiParentsScrollService,\n TuiDestroyService,\n ],\n})\nexport class TuiDropdownSelectionDirective\n extends AbstractTuiDropdown\n implements TuiDropdown, OnDestroy\n{\n private visibilityHandler: TuiBooleanHandler<Range> = ALWAYS_TRUE_HANDLER;\n private readonly documentRef: Document;\n private ghost?: HTMLElement;\n private range?: Range;\n\n @Input()\n set tuiDropdownSelection(handler: TuiBooleanHandler<Range> | undefined) {\n if (!handler || !this.range) {\n return;\n }\n\n const inHostAndValid =\n this.elementRef.nativeElement.contains(this.range.commonAncestorContainer) &&\n handler(this.range);\n\n this.visibilityHandler = handler;\n this.toggleDropdownBox(inHostAndValid);\n }\n\n @Input('tuiDropdownSelectionPosition')\n position: 'selection' | 'word' | 'tag' = 'selection';\n\n constructor(\n @Inject(DOCUMENT) documentRef: Document,\n @Inject(ComponentFactoryResolver)\n componentFactoryResolver: ComponentFactoryResolver,\n @Inject(Injector) injector: Injector,\n @Inject(TuiPortalService) portalService: TuiPortalService,\n @Host() @Inject(ElementRef) elementRef: ElementRef<HTMLElement>,\n @Inject(TuiActiveZoneDirective)\n @Optional()\n activeZone: TuiActiveZoneDirective | null,\n @Inject(TUI_DOCUMENT_OR_SHADOW_ROOT)\n @Optional()\n shadowRootRef: Document | null,\n @Inject(TUI_ELEMENT_REF)\n @Optional()\n customElementRef: ElementRef<HTMLElement> | null,\n @Inject(TuiDestroyService)\n destroy$: TuiDestroyService,\n @Inject(TuiParentsScrollService) readonly refresh$: TuiParentsScrollService,\n @Inject(ChangeDetectorRef) private readonly changeDetectorRef: ChangeDetectorRef,\n @Inject(NgZone) private readonly ngZone: NgZone,\n @Inject(Renderer2) private readonly renderer: Renderer2,\n @Inject(ViewContainerRef) private readonly viewContainerRef: ViewContainerRef,\n ) {\n super(\n componentFactoryResolver,\n injector,\n portalService,\n customElementRef || elementRef,\n activeZone,\n );\n this.documentRef = shadowRootRef || documentRef;\n\n // SSR protection\n if (!this.documentRef.createRange) {\n return;\n }\n\n this.range = this.documentRef.createRange();\n\n const {nativeElement} = this.elementRef;\n\n merge(\n typedFromEvent(this.documentRef, 'mouseup'),\n typedFromEvent(nativeElement, 'mousedown').pipe(\n switchMapTo(\n typedFromEvent(nativeElement, 'mousemove').pipe(\n takeUntil(typedFromEvent(this.documentRef, 'mouseup')),\n ),\n ),\n ),\n typedFromEvent(nativeElement, 'keyup'),\n )\n .pipe(\n map(() => {\n const active = getNativeFocused(this.documentRef);\n const selection = this.documentRef.getSelection();\n\n // TODO: iframe warning\n if (\n (active instanceof HTMLInputElement ||\n active instanceof HTMLTextAreaElement) &&\n nativeElement.contains(active)\n ) {\n return this.veryVerySadInputFix(active);\n }\n\n return selection && selection.rangeCount\n ? selection.getRangeAt(0)\n : this.range;\n }),\n takeUntil(destroy$),\n )\n .subscribe(range => {\n const contained =\n !!range && nativeElement.contains(range.commonAncestorContainer);\n\n this.range = contained ? range : this.range;\n\n const valid =\n contained &&\n (!this.visibilityHandler ||\n !this.range ||\n this.visibilityHandler(this.range));\n\n this.toggleDropdownBox(!!range && (valid || this.inDropdown(range)));\n });\n }\n\n get clientRect(): ClientRect {\n const {defaultView} = this.documentRef;\n const {rangeRect} = this;\n const frameElement = defaultView ? defaultView.frameElement : null;\n\n if (!frameElement) {\n return rangeRect;\n }\n\n const documentRect = frameElement.getBoundingClientRect();\n\n return {\n top: rangeRect.top + documentRect.top,\n left: rangeRect.left + documentRect.left,\n right: rangeRect.left + documentRect.left + rangeRect.width,\n bottom: rangeRect.top + documentRect.top + rangeRect.height,\n width: rangeRect.width,\n height: rangeRect.height,\n };\n }\n\n ngOnDestroy() {\n this.closeDropdownBox();\n\n if (this.ghost) {\n this.renderer.removeChild(\n this.viewContainerRef.element.nativeElement,\n this.ghost,\n );\n }\n }\n\n /**\n * get ClientRect of current Range according to provided position\n */\n private get rangeRect(): ClientRect {\n if (!this.range) {\n return EMPTY_RECT;\n }\n\n switch (this.position) {\n case 'tag': {\n const {commonAncestorContainer} = this.range;\n const element =\n commonAncestorContainer.nodeType === Node.ELEMENT_NODE\n ? commonAncestorContainer\n : commonAncestorContainer.parentNode;\n\n return (element as Element).getBoundingClientRect();\n }\n case 'word':\n return getWordRange(this.range).getBoundingClientRect();\n default:\n return this.range.getBoundingClientRect();\n }\n }\n\n /**\n * Toggle dropdown visibility (has to be in ngZone.run because it could be initiated inside iframe in Editor)\n */\n private toggleDropdownBox(visible: boolean) {\n this.ngZone.run(() => {\n if (visible) {\n this.openDropdownBox();\n } else {\n this.closeDropdownBox();\n }\n\n this.changeDetectorRef.markForCheck();\n });\n }\n\n /**\n * Check if Node is inside dropdown\n */\n private boxContains(node: Node): boolean {\n return (\n !!this.dropdownBoxRef &&\n this.dropdownBoxRef.location.nativeElement.contains(node)\n );\n }\n\n /**\n * Check if given range is at least partially inside dropdown\n */\n private inDropdown(range: Range): boolean {\n const {startContainer, endContainer} = range;\n const inDropdown = this.boxContains(range.commonAncestorContainer);\n const hostToDropdown =\n this.boxContains(endContainer) &&\n this.elementRef.nativeElement.contains(startContainer);\n const dropdownToHost =\n this.boxContains(startContainer) &&\n this.elementRef.nativeElement.contains(endContainer);\n\n return inDropdown || hostToDropdown || dropdownToHost;\n }\n\n /**\n * Position invisible DIV and create Range similar to selected range inside input/textarea\n */\n private veryVerySadInputFix(element: HTMLInputElement | HTMLTextAreaElement): Range {\n const {ghost = this.initGhost(element)} = this;\n const {top, left, width, height} = element.getBoundingClientRect();\n const {selectionStart, selectionEnd} = element;\n const range = this.documentRef.createRange();\n const hostRect = this.elementRef.nativeElement.getBoundingClientRect();\n\n ghost.style.top = px(top - hostRect.top);\n ghost.style.left = px(left - hostRect.left);\n ghost.style.width = px(width);\n ghost.style.height = px(height);\n ghost.textContent = CHAR_ZERO_WIDTH_SPACE + element.value + CHAR_NO_BREAK_SPACE;\n\n range.setStart(ghost.firstChild!, selectionStart || 0);\n range.setEnd(ghost.firstChild!, selectionEnd || 0);\n\n return range;\n }\n\n /**\n * Create an invisible DIV styled exactly like input/textarea element inside directive\n */\n private initGhost(element: HTMLInputElement | HTMLTextAreaElement): HTMLElement {\n const ghost = this.renderer.createElement('div');\n const {nativeElement} = this.viewContainerRef.element;\n const {font, letterSpacing, textTransform, padding} = getComputedStyle(element);\n\n ghost.style.position = 'absolute';\n ghost.style.pointerEvents = 'none';\n ghost.style.opacity = '0';\n ghost.style.whiteSpace = 'pre-wrap';\n ghost.style.font = font;\n ghost.style.letterSpacing = letterSpacing;\n ghost.style.textTransform = textTransform;\n ghost.style.padding = padding;\n\n this.renderer.appendChild(nativeElement, ghost);\n this.ghost = ghost;\n\n return ghost;\n }\n}\n","import {NgModule} from '@angular/core';\nimport {TuiDropdownBoxModule} from '@taiga-ui/core';\n\nimport {TuiDropdownSelectionDirective} from './dropdown-selection.directive';\n\n@NgModule({\n imports: [TuiDropdownBoxModule],\n declarations: [TuiDropdownSelectionDirective],\n exports: [TuiDropdownSelectionDirective],\n})\nexport class TuiDropdownSelectionModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-kit-enums.js","sources":["ng://@taiga-ui/kit/enums/borders.ts","ng://@taiga-ui/kit/enums/dropdown-position.ts","ng://@taiga-ui/kit/enums/file-state.ts","ng://@taiga-ui/kit/enums/marker-icon-mode.ts","ng://@taiga-ui/kit/enums/status.ts","ng://@taiga-ui/kit/enums/step-state.ts","ng://@taiga-ui/kit/enums/text-align.ts","ng://@taiga-ui/kit/enums/taiga-ui-kit-enums.ts"],"sourcesContent":["/**\n * @deprecated use string values\n */\nexport const enum TuiBorders {\n All = 'all',\n TopBottom = 'top-bottom',\n}\n","/**\n * @deprecated use string values\n */\nexport const enum TuiDropdownPosition {\n Selection = 'selection',\n Word = 'word',\n Tag = 'tag',\n}\n","/**\n * @internal\n */\nexport const enum TuiFileState {\n Error = 'error',\n Deleted = 'deleted',\n Loading = 'loading',\n Normal = 'normal',\n}\n","/**\n * @deprecated use join type {@link TuiMarkerIconModeT}\n */\nexport const enum TuiMarkerIconMode {\n Link = 'link',\n Primary = 'primary',\n Warning = 'warning',\n White = 'white',\n Secondary = 'secondary',\n Success = 'success',\n Error = 'error',\n OnDark = 'onDark',\n}\n","/**\n * @deprecated use join type {@link TuiStatusT}\n */\nexport const enum TuiStatus {\n Default = 'default',\n Primary = 'primary',\n Custom = 'custom',\n Success = 'success',\n Error = 'error',\n Warning = 'warning',\n}\n","/**\n * @deprecated use string values\n */\nexport const enum TuiStepState {\n Normal = 'normal',\n Error = 'error',\n Pass = 'pass',\n}\n","/**\n * @deprecated use string values\n */\nexport const enum TuiTextAlign {\n Left = 'left',\n Center = 'center',\n Right = 'right',\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"AAAA;;;IAGkB;AAAlB,WAAkB,UAAU;IACxB,yBAAW,CAAA;IACX,sCAAwB,CAAA;AAC5B,CAAC,EAHiB,UAAU,KAAV,UAAU;;ACH5B;;;IAGkB;AAAlB,WAAkB,mBAAmB;IACjC,8CAAuB,CAAA;IACvB,oCAAa,CAAA;IACb,kCAAW,CAAA;AACf,CAAC,EAJiB,mBAAmB,KAAnB,mBAAmB;;ACHrC;;;IAGkB;AAAlB,WAAkB,YAAY;IAC1B,+BAAe,CAAA;IACf,mCAAmB,CAAA;IACnB,mCAAmB,CAAA;IACnB,iCAAiB,CAAA;AACrB,CAAC,EALiB,YAAY,KAAZ,YAAY;;ACH9B;;;IAGkB;AAAlB,WAAkB,iBAAiB;IAC/B,kCAAa,CAAA;IACb,wCAAmB,CAAA;IACnB,wCAAmB,CAAA;IACnB,oCAAe,CAAA;IACf,4CAAuB,CAAA;IACvB,wCAAmB,CAAA;IACnB,oCAAe,CAAA;IACf,sCAAiB,CAAA;AACrB,CAAC,EATiB,iBAAiB,KAAjB,iBAAiB;;ACHnC;;;IAGkB;AAAlB,WAAkB,SAAS;IACvB,gCAAmB,CAAA;IACnB,gCAAmB,CAAA;IACnB,8BAAiB,CAAA;IACjB,gCAAmB,CAAA;IACnB,4BAAe,CAAA;IACf,gCAAmB,CAAA;AACvB,CAAC,EAPiB,SAAS,KAAT,SAAS;;ACH3B;;;IAGkB;AAAlB,WAAkB,YAAY;IAC1B,iCAAiB,CAAA;IACjB,+BAAe,CAAA;IACf,6BAAa,CAAA;AACjB,CAAC,EAJiB,YAAY,KAAZ,YAAY;;ACH9B;;;IAGkB;AAAlB,WAAkB,YAAY;IAC1B,6BAAa,CAAA;IACb,iCAAiB,CAAA;IACjB,+BAAe,CAAA;AACnB,CAAC,EAJiB,YAAY,KAAZ,YAAY;;ACH9B;;;;;;"}
1
+ {"version":3,"file":"taiga-ui-kit-enums.js","sources":["ng://@taiga-ui/kit/enums/borders.ts","ng://@taiga-ui/kit/enums/dropdown-position.ts","ng://@taiga-ui/kit/enums/file-state.ts","ng://@taiga-ui/kit/enums/marker-icon-mode.ts","ng://@taiga-ui/kit/enums/status.ts","ng://@taiga-ui/kit/enums/step-state.ts","ng://@taiga-ui/kit/enums/text-align.ts","ng://@taiga-ui/kit/enums/taiga-ui-kit-enums.ts"],"sourcesContent":["/**\n * @deprecated use string values\n */\nexport const enum TuiBorders {\n All = 'all',\n TopBottom = 'top-bottom',\n}\n","/**\n * @deprecated use string values\n */\nexport const enum TuiDropdownPosition {\n Selection = 'selection',\n Word = 'word',\n Tag = 'tag',\n}\n","/**\n * @internal\n */\nexport const enum TuiFileState {\n Error = 'error',\n Deleted = 'deleted',\n Loading = 'loading',\n Normal = 'normal',\n}\n\nexport type TuiFileStateT = 'error' | 'deleted' | 'loading' | 'normal';\n","/**\n * @deprecated use join type {@link TuiMarkerIconModeT}\n */\nexport const enum TuiMarkerIconMode {\n Link = 'link',\n Primary = 'primary',\n Warning = 'warning',\n White = 'white',\n Secondary = 'secondary',\n Success = 'success',\n Error = 'error',\n OnDark = 'onDark',\n}\n","/**\n * @deprecated use join type {@link TuiStatusT}\n */\nexport const enum TuiStatus {\n Default = 'default',\n Primary = 'primary',\n Custom = 'custom',\n Success = 'success',\n Error = 'error',\n Warning = 'warning',\n}\n","/**\n * @deprecated use string values\n */\nexport const enum TuiStepState {\n Normal = 'normal',\n Error = 'error',\n Pass = 'pass',\n}\n","/**\n * @deprecated use string values\n */\nexport const enum TuiTextAlign {\n Left = 'left',\n Center = 'center',\n Right = 'right',\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"AAAA;;;IAGkB;AAAlB,WAAkB,UAAU;IACxB,yBAAW,CAAA;IACX,sCAAwB,CAAA;AAC5B,CAAC,EAHiB,UAAU,KAAV,UAAU;;ACH5B;;;IAGkB;AAAlB,WAAkB,mBAAmB;IACjC,8CAAuB,CAAA;IACvB,oCAAa,CAAA;IACb,kCAAW,CAAA;AACf,CAAC,EAJiB,mBAAmB,KAAnB,mBAAmB;;ACHrC;;;IAGkB;AAAlB,WAAkB,YAAY;IAC1B,+BAAe,CAAA;IACf,mCAAmB,CAAA;IACnB,mCAAmB,CAAA;IACnB,iCAAiB,CAAA;AACrB,CAAC,EALiB,YAAY,KAAZ,YAAY;;ACH9B;;;IAGkB;AAAlB,WAAkB,iBAAiB;IAC/B,kCAAa,CAAA;IACb,wCAAmB,CAAA;IACnB,wCAAmB,CAAA;IACnB,oCAAe,CAAA;IACf,4CAAuB,CAAA;IACvB,wCAAmB,CAAA;IACnB,oCAAe,CAAA;IACf,sCAAiB,CAAA;AACrB,CAAC,EATiB,iBAAiB,KAAjB,iBAAiB;;ACHnC;;;IAGkB;AAAlB,WAAkB,SAAS;IACvB,gCAAmB,CAAA;IACnB,gCAAmB,CAAA;IACnB,8BAAiB,CAAA;IACjB,gCAAmB,CAAA;IACnB,4BAAe,CAAA;IACf,gCAAmB,CAAA;AACvB,CAAC,EAPiB,SAAS,KAAT,SAAS;;ACH3B;;;IAGkB;AAAlB,WAAkB,YAAY;IAC1B,iCAAiB,CAAA;IACjB,+BAAe,CAAA;IACf,6BAAa,CAAA;AACjB,CAAC,EAJiB,YAAY,KAAZ,YAAY;;ACH9B;;;IAGkB;AAAlB,WAAkB,YAAY;IAC1B,6BAAa,CAAA;IACb,iCAAiB,CAAA;IACjB,+BAAe,CAAA;AACnB,CAAC,EAJiB,YAAY,KAAZ,YAAY;;ACH9B;;;;;;"}
@@ -131,12 +131,20 @@ let TuiFieldErrorContentPipe = class TuiFieldErrorContentPipe {
131
131
  this.fieldErrorPipe = this.localInjector.get(TuiFieldErrorPipe);
132
132
  }
133
133
  transform(order) {
134
- var _a;
135
- return (((_a = this.asyncPipe.transform(this.fieldErrorPipe.transform(order))) === null || _a === void 0 ? void 0 : _a.message) || '');
134
+ return this.getErrorContent(order);
136
135
  }
137
136
  ngOnDestroy() {
138
137
  this.asyncPipe.ngOnDestroy();
139
138
  }
139
+ getErrorContent(order) {
140
+ const error = this.asyncPipe.transform(this.fieldErrorPipe.transform(order));
141
+ if (!error) {
142
+ return '';
143
+ }
144
+ return typeof error.message === 'function'
145
+ ? error.message(error.context)
146
+ : error.message;
147
+ }
140
148
  };
141
149
  TuiFieldErrorContentPipe.ctorParameters = () => [
142
150
  { type: Injector, decorators: [{ type: Inject, args: [Injector,] }] }
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-kit-pipes-field-error.js","sources":["ng://@taiga-ui/kit/pipes/field-error/field-error-pipe.ts","ng://@taiga-ui/kit/pipes/field-error/field-error-content-pipe.ts","ng://@taiga-ui/kit/pipes/field-error/field-error.module.ts","ng://@taiga-ui/kit/pipes/field-error/taiga-ui-kit-pipes-field-error.ts"],"sourcesContent":["import {Inject, Optional, Pipe, PipeTransform, Self} from '@angular/core';\nimport {\n AbstractControl,\n FormArrayName,\n FormGroupDirective,\n FormGroupName,\n NgControl,\n} from '@angular/forms';\nimport {tuiPure, TuiValidationError} from '@taiga-ui/cdk';\nimport {TUI_VALIDATION_ERRORS} from '@taiga-ui/kit/tokens';\nimport {PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\nimport {EMPTY, isObservable, merge, Observable, of} from 'rxjs';\nimport {map} from 'rxjs/operators';\n\nconst EMPTY_RECORD = {};\n\n// @dynamic\n@Pipe({\n name: 'tuiFieldError',\n pure: false,\n})\nexport class TuiFieldErrorPipe implements PipeTransform {\n private order: ReadonlyArray<string> = [];\n\n constructor(\n @Optional()\n @Self()\n @Inject(NgControl)\n private readonly ngControl: NgControl | null,\n @Optional()\n @Self()\n @Inject(FormArrayName)\n private readonly formArrayName: FormArrayName | null,\n @Optional()\n @Self()\n @Inject(FormGroupName)\n private readonly formGroupName: FormGroupName | null,\n @Optional()\n @Self()\n @Inject(FormGroupDirective)\n private readonly formGroup: FormGroupDirective | null,\n @Inject(TUI_VALIDATION_ERRORS)\n private readonly validationErrors: Record<\n string,\n PolymorpheusContent | Observable<PolymorpheusContent>\n >,\n ) {\n if (this.ngControl && !this.ngControl.valueAccessor) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n transform(order: ReadonlyArray<string>): Observable<TuiValidationError | null> {\n this.order = order;\n\n return this.computedError;\n }\n\n @tuiPure\n get change$(): Observable<unknown> {\n return merge(\n this.control?.valueChanges || EMPTY,\n this.control?.statusChanges || EMPTY,\n );\n }\n\n get computedError(): Observable<TuiValidationError | null> {\n return (this.invalid && this.touched && this.error) || of(null);\n }\n\n registerOnChange() {}\n\n registerOnTouched() {}\n\n setDisabledState() {}\n\n writeValue() {}\n\n private get error(): Observable<TuiValidationError> | null {\n const {errorId} = this;\n\n if (!errorId) {\n return null;\n }\n\n const firstError = this.controlErrors[errorId];\n const errorContent = this.validationErrors[errorId];\n\n return this.getError(firstError, errorContent);\n }\n\n private get invalid(): boolean {\n return !!this.control?.invalid;\n }\n\n private get touched(): boolean {\n return !!this.control?.touched;\n }\n\n private get control(): AbstractControl | null {\n return (\n this.ngControl?.control ||\n this.formArrayName?.control ||\n this.formGroupName?.control ||\n this.formGroup?.control ||\n null\n );\n }\n\n private get errorId(): string {\n return this.getErrorId(this.order, this.controlErrors);\n }\n\n private get controlErrors(): Record<string, any> {\n return this.control?.errors || EMPTY_RECORD;\n }\n\n @tuiPure\n private getErrorId(\n order: readonly string[],\n controlErrors: Record<string, any>,\n ): string {\n const id = order?.find(errorId => controlErrors[errorId]);\n const fallback = Object.keys(controlErrors)[0];\n\n return id || fallback || '';\n }\n\n @tuiPure\n private getError(\n firstError: any,\n errorContent?: PolymorpheusContent | Observable<PolymorpheusContent>,\n ): Observable<TuiValidationError> {\n if (firstError instanceof TuiValidationError) {\n return of(firstError);\n }\n\n if (errorContent === undefined && typeof firstError === 'string') {\n return of(new TuiValidationError(firstError));\n }\n\n if (isObservable(errorContent)) {\n return errorContent.pipe(\n map(error => new TuiValidationError(error || '', firstError)),\n );\n }\n\n return of(new TuiValidationError(errorContent || '', firstError));\n }\n}\n","import {AsyncPipe} from '@angular/common';\nimport {Inject, Injector, OnDestroy, Pipe, PipeTransform} from '@angular/core';\nimport {PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\n\nimport {TuiFieldErrorPipe} from './field-error-pipe';\n\n// @dynamic\n@Pipe({\n name: 'tuiFieldErrorContent',\n pure: false,\n})\nexport class TuiFieldErrorContentPipe implements PipeTransform, OnDestroy {\n private readonly localInjector = Injector.create({\n providers: [{provide: AsyncPipe}, {provide: TuiFieldErrorPipe}],\n parent: this.injector,\n });\n\n private readonly asyncPipe = this.localInjector.get(AsyncPipe);\n private readonly fieldErrorPipe = this.localInjector.get(TuiFieldErrorPipe);\n\n constructor(@Inject(Injector) private readonly injector: Injector) {}\n\n transform(order: ReadonlyArray<string>): PolymorpheusContent {\n return (\n this.asyncPipe.transform(this.fieldErrorPipe.transform(order))?.message || ''\n );\n }\n\n ngOnDestroy() {\n this.asyncPipe.ngOnDestroy();\n }\n}\n","import {NgModule} from '@angular/core';\n\nimport {TuiFieldErrorContentPipe} from './field-error-content-pipe';\nimport {TuiFieldErrorPipe} from './field-error-pipe';\n\n@NgModule({\n declarations: [TuiFieldErrorPipe, TuiFieldErrorContentPipe],\n exports: [TuiFieldErrorPipe, TuiFieldErrorContentPipe],\n})\nexport class TuiFieldErrorPipeModule {}\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-pipes-field-error.js","sources":["ng://@taiga-ui/kit/pipes/field-error/field-error-pipe.ts","ng://@taiga-ui/kit/pipes/field-error/field-error-content-pipe.ts","ng://@taiga-ui/kit/pipes/field-error/field-error.module.ts","ng://@taiga-ui/kit/pipes/field-error/taiga-ui-kit-pipes-field-error.ts"],"sourcesContent":["import {Inject, Optional, Pipe, PipeTransform, Self} from '@angular/core';\nimport {\n AbstractControl,\n FormArrayName,\n FormGroupDirective,\n FormGroupName,\n NgControl,\n} from '@angular/forms';\nimport {tuiPure, TuiValidationError} from '@taiga-ui/cdk';\nimport {TUI_VALIDATION_ERRORS} from '@taiga-ui/kit/tokens';\nimport {PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\nimport {EMPTY, isObservable, merge, Observable, of} from 'rxjs';\nimport {map} from 'rxjs/operators';\n\nconst EMPTY_RECORD = {};\n\n// @dynamic\n@Pipe({\n name: 'tuiFieldError',\n pure: false,\n})\nexport class TuiFieldErrorPipe implements PipeTransform {\n private order: ReadonlyArray<string> = [];\n\n constructor(\n @Optional()\n @Self()\n @Inject(NgControl)\n private readonly ngControl: NgControl | null,\n @Optional()\n @Self()\n @Inject(FormArrayName)\n private readonly formArrayName: FormArrayName | null,\n @Optional()\n @Self()\n @Inject(FormGroupName)\n private readonly formGroupName: FormGroupName | null,\n @Optional()\n @Self()\n @Inject(FormGroupDirective)\n private readonly formGroup: FormGroupDirective | null,\n @Inject(TUI_VALIDATION_ERRORS)\n private readonly validationErrors: Record<\n string,\n PolymorpheusContent | Observable<PolymorpheusContent>\n >,\n ) {\n if (this.ngControl && !this.ngControl.valueAccessor) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n transform(order: ReadonlyArray<string>): Observable<TuiValidationError | null> {\n this.order = order;\n\n return this.computedError;\n }\n\n @tuiPure\n get change$(): Observable<unknown> {\n return merge(\n this.control?.valueChanges || EMPTY,\n this.control?.statusChanges || EMPTY,\n );\n }\n\n get computedError(): Observable<TuiValidationError | null> {\n return (this.invalid && this.touched && this.error) || of(null);\n }\n\n registerOnChange() {}\n\n registerOnTouched() {}\n\n setDisabledState() {}\n\n writeValue() {}\n\n private get error(): Observable<TuiValidationError> | null {\n const {errorId} = this;\n\n if (!errorId) {\n return null;\n }\n\n const firstError = this.controlErrors[errorId];\n const errorContent = this.validationErrors[errorId];\n\n return this.getError(firstError, errorContent);\n }\n\n private get invalid(): boolean {\n return !!this.control?.invalid;\n }\n\n private get touched(): boolean {\n return !!this.control?.touched;\n }\n\n private get control(): AbstractControl | null {\n return (\n this.ngControl?.control ||\n this.formArrayName?.control ||\n this.formGroupName?.control ||\n this.formGroup?.control ||\n null\n );\n }\n\n private get errorId(): string {\n return this.getErrorId(this.order, this.controlErrors);\n }\n\n private get controlErrors(): Record<string, any> {\n return this.control?.errors || EMPTY_RECORD;\n }\n\n @tuiPure\n private getErrorId(\n order: readonly string[],\n controlErrors: Record<string, any>,\n ): string {\n const id = order?.find(errorId => controlErrors[errorId]);\n const fallback = Object.keys(controlErrors)[0];\n\n return id || fallback || '';\n }\n\n @tuiPure\n private getError(\n firstError: any,\n errorContent?: PolymorpheusContent | Observable<PolymorpheusContent>,\n ): Observable<TuiValidationError> {\n if (firstError instanceof TuiValidationError) {\n return of(firstError);\n }\n\n if (errorContent === undefined && typeof firstError === 'string') {\n return of(new TuiValidationError(firstError));\n }\n\n if (isObservable(errorContent)) {\n return errorContent.pipe(\n map(error => new TuiValidationError(error || '', firstError)),\n );\n }\n\n return of(new TuiValidationError(errorContent || '', firstError));\n }\n}\n","import {AsyncPipe} from '@angular/common';\nimport {Inject, Injector, OnDestroy, Pipe, PipeTransform} from '@angular/core';\nimport {PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\n\nimport {TuiFieldErrorPipe} from './field-error-pipe';\n\n// @dynamic\n@Pipe({\n name: 'tuiFieldErrorContent',\n pure: false,\n})\nexport class TuiFieldErrorContentPipe implements PipeTransform, OnDestroy {\n private readonly localInjector = Injector.create({\n providers: [{provide: AsyncPipe}, {provide: TuiFieldErrorPipe}],\n parent: this.injector,\n });\n\n private readonly asyncPipe = this.localInjector.get(AsyncPipe);\n private readonly fieldErrorPipe = this.localInjector.get(TuiFieldErrorPipe);\n\n constructor(@Inject(Injector) private readonly injector: Injector) {}\n\n transform(order: ReadonlyArray<string>): PolymorpheusContent {\n return this.getErrorContent(order);\n }\n\n ngOnDestroy() {\n this.asyncPipe.ngOnDestroy();\n }\n\n private getErrorContent(order: readonly string[]): PolymorpheusContent {\n const error = this.asyncPipe.transform(this.fieldErrorPipe.transform(order));\n\n if (!error) {\n return '';\n }\n\n return typeof error.message === 'function'\n ? error.message(error.context)\n : error.message;\n }\n}\n","import {NgModule} from '@angular/core';\n\nimport {TuiFieldErrorContentPipe} from './field-error-content-pipe';\nimport {TuiFieldErrorPipe} from './field-error-pipe';\n\n@NgModule({\n declarations: [TuiFieldErrorPipe, TuiFieldErrorContentPipe],\n exports: [TuiFieldErrorPipe, TuiFieldErrorContentPipe],\n})\nexport class TuiFieldErrorPipeModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -17,6 +17,12 @@ const TUI_DONE_WORD = new InjectionToken(`i18n 'done' word`, {
17
17
  const TUI_MORE_WORD = new InjectionToken(`i18n 'more' word`, {
18
18
  factory: extractI18n('more'),
19
19
  });
20
+ const TUI_HIDE_TEXT = new InjectionToken(`i18n 'hide' word`, {
21
+ factory: extractI18n('hide'),
22
+ });
23
+ const TUI_SHOW_ALL_TEXT = new InjectionToken(`i18n 'show all' word`, {
24
+ factory: extractI18n('showAll'),
25
+ });
20
26
  const TUI_OTHER_DATE_TEXT = new InjectionToken(`i18n 'Other date' text`, {
21
27
  factory: extractI18n('otherDate'),
22
28
  });
@@ -93,5 +99,5 @@ const TUI_VALIDATION_ERRORS = new InjectionToken('Validation errors', {
93
99
  * Generated bundle index. Do not edit.
94
100
  */
95
101
 
96
- export { TUI_CALENDAR_DATA_STREAM, TUI_CALENDAR_MONTHS, TUI_CANCEL_WORD, TUI_CHOOSE_DAY_OR_RANGE_TEXTS, TUI_COPY_TEXTS, TUI_COUNTRIES, TUI_DATE_RANGE_VALUE_TRANSFORMER, TUI_DATE_TEXTS, TUI_DATE_TIME_VALUE_TRANSFORMER, TUI_DATE_VALUE_TRANSFORMER, TUI_DEFAULT_ITEMS_HANDLERS, TUI_DIGITAL_INFORMATION_UNITS, TUI_DONE_WORD, TUI_FILE_TEXTS, TUI_FROM_TO_TEXTS, TUI_INPUT_FILE_TEXTS, TUI_ITEMS_HANDLERS, TUI_MOBILE_AWARE, TUI_MOBILE_CALENDAR, TUI_MONTH_FORMATTER, TUI_MORE_WORD, TUI_OTHER_DATE_TEXT, TUI_PAGINATION_TEXTS, TUI_PASSWORD_TEXTS, TUI_PLUS_MINUS_TEXTS, TUI_TAG_STATUS, TUI_TIME_TEXTS, TUI_VALIDATION_ERRORS, tuiItemsHandlersProvider };
102
+ export { TUI_CALENDAR_DATA_STREAM, TUI_CALENDAR_MONTHS, TUI_CANCEL_WORD, TUI_CHOOSE_DAY_OR_RANGE_TEXTS, TUI_COPY_TEXTS, TUI_COUNTRIES, TUI_DATE_RANGE_VALUE_TRANSFORMER, TUI_DATE_TEXTS, TUI_DATE_TIME_VALUE_TRANSFORMER, TUI_DATE_VALUE_TRANSFORMER, TUI_DEFAULT_ITEMS_HANDLERS, TUI_DIGITAL_INFORMATION_UNITS, TUI_DONE_WORD, TUI_FILE_TEXTS, TUI_FROM_TO_TEXTS, TUI_HIDE_TEXT, TUI_INPUT_FILE_TEXTS, TUI_ITEMS_HANDLERS, TUI_MOBILE_AWARE, TUI_MOBILE_CALENDAR, TUI_MONTH_FORMATTER, TUI_MORE_WORD, TUI_OTHER_DATE_TEXT, TUI_PAGINATION_TEXTS, TUI_PASSWORD_TEXTS, TUI_PLUS_MINUS_TEXTS, TUI_SHOW_ALL_TEXT, TUI_TAG_STATUS, TUI_TIME_TEXTS, TUI_VALIDATION_ERRORS, tuiItemsHandlersProvider };
97
103
  //# sourceMappingURL=taiga-ui-kit-tokens.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-kit-tokens.js","sources":["ng://@taiga-ui/kit/tokens/calendar-data-stream.ts","ng://@taiga-ui/kit/tokens/date-inputs-value-transformers.ts","ng://@taiga-ui/kit/tokens/i18n.ts","ng://@taiga-ui/kit/tokens/items-handlers.ts","ng://@taiga-ui/kit/tokens/mobile-aware.ts","ng://@taiga-ui/kit/tokens/mobile-calendar.ts","ng://@taiga-ui/kit/tokens/month-formatter.ts","ng://@taiga-ui/kit/tokens/tag-status.ts","ng://@taiga-ui/kit/tokens/validation-errors.ts","ng://@taiga-ui/kit/tokens/taiga-ui-kit-tokens.ts"],"sourcesContent":["import {InjectionToken} from '@angular/core';\nimport {TuiDay, TuiDayRange} from '@taiga-ui/cdk';\nimport {Observable} from 'rxjs';\n\nexport const TUI_CALENDAR_DATA_STREAM = new InjectionToken<\n Observable<TuiDay | TuiDayRange | null>\n>('Stream that emits calendar data change');\n","import {InjectionToken} from '@angular/core';\nimport {TuiControlValueTransformer, TuiDay, TuiDayRange, TuiTime} from '@taiga-ui/cdk';\n\nexport const TUI_DATE_VALUE_TRANSFORMER = new InjectionToken<\n TuiControlValueTransformer<TuiDay | null>\n>('Control value transformer of TuiDay to custom value format for InputDate* components');\n\nexport const TUI_DATE_RANGE_VALUE_TRANSFORMER = new InjectionToken<\n TuiControlValueTransformer<TuiDayRange | null>\n>('Control value transformer for InputDateRange component');\n\nexport const TUI_DATE_TIME_VALUE_TRANSFORMER = new InjectionToken<\n TuiControlValueTransformer<[TuiDay | null, TuiTime | null]>\n>('Control value transformer for InputDateTime component');\n","import {InjectionToken} from '@angular/core';\nimport {TuiDateMode} from '@taiga-ui/cdk';\nimport {extractI18n, TuiCountryIsoCode} from '@taiga-ui/i18n';\nimport {Observable} from 'rxjs';\n\nexport const TUI_CANCEL_WORD = new InjectionToken(`i18n 'cancel' word`, {\n factory: extractI18n('cancel'),\n});\n\nexport const TUI_DONE_WORD = new InjectionToken(`i18n 'done' word`, {\n factory: extractI18n('done'),\n});\n\nexport const TUI_MORE_WORD = new InjectionToken(`i18n 'more' word`, {\n factory: extractI18n('more'),\n});\n\nexport const TUI_OTHER_DATE_TEXT = new InjectionToken(`i18n 'Other date' text`, {\n factory: extractI18n('otherDate'),\n});\n\nexport const TUI_CHOOSE_DAY_OR_RANGE_TEXTS = new InjectionToken(\n `choose day or range i18n texts`,\n {\n factory: extractI18n('mobileCalendarTexts'),\n },\n);\n\nexport const TUI_FROM_TO_TEXTS = new InjectionToken(`from and to i18n texts`, {\n factory: extractI18n('range'),\n});\n\nexport const TUI_PLUS_MINUS_TEXTS = new InjectionToken(`plus and minus i18n texts`, {\n factory: extractI18n('countTexts'),\n});\n\nexport const TUI_TIME_TEXTS = new InjectionToken(`time i18n texts`, {\n factory: extractI18n('time'),\n});\n\nexport const TUI_DATE_TEXTS = new InjectionToken<Observable<Record<TuiDateMode, string>>>(\n 'date format i18n texts',\n {\n factory: extractI18n('dateTexts'),\n },\n);\n\nexport const TUI_DIGITAL_INFORMATION_UNITS = new InjectionToken(\n `short bytes, kilobytes and megabytes i18n texts`,\n {\n factory: extractI18n('digitalInformationUnits'),\n },\n);\n\nexport const TUI_COPY_TEXTS = new InjectionToken('copy i18n texts', {\n factory: extractI18n('copyTexts'),\n});\n\nexport const TUI_PASSWORD_TEXTS = new InjectionToken('password i18n texts', {\n factory: extractI18n('passwordTexts'),\n});\n\nexport const TUI_CALENDAR_MONTHS = new InjectionToken('short calendar months i18n', {\n factory: extractI18n('shortCalendarMonths'),\n});\n\nexport const TUI_FILE_TEXTS = new InjectionToken('file i18n texts', {\n factory: extractI18n('fileTexts'),\n});\n\nexport const TUI_PAGINATION_TEXTS = new InjectionToken('pagination i18n texts', {\n factory: extractI18n('paginationTexts'),\n});\n\nexport const TUI_INPUT_FILE_TEXTS = new InjectionToken('tui-input-file i18n texts', {\n factory: extractI18n('inputFileTexts'),\n});\n\nexport const TUI_COUNTRIES: InjectionToken<\n Observable<Record<TuiCountryIsoCode, string>>\n> = new InjectionToken('Localized countries names', {\n factory: extractI18n('countries'),\n});\n","import {InjectionToken, ValueProvider} from '@angular/core';\nimport {\n ALWAYS_FALSE_HANDLER,\n TUI_DEFAULT_IDENTITY_MATCHER,\n TUI_DEFAULT_STRINGIFY,\n TuiBooleanHandler,\n TuiIdentityMatcher,\n TuiStringHandler,\n} from '@taiga-ui/cdk';\n\nexport interface TuiItemsHandlers<T> {\n readonly stringify: TuiStringHandler<T>;\n readonly identityMatcher: TuiIdentityMatcher<T>;\n readonly disabledItemHandler: TuiBooleanHandler<T>;\n}\n\nexport const TUI_DEFAULT_ITEMS_HANDLERS: TuiItemsHandlers<unknown> = {\n stringify: TUI_DEFAULT_STRINGIFY,\n identityMatcher: TUI_DEFAULT_IDENTITY_MATCHER,\n disabledItemHandler: ALWAYS_FALSE_HANDLER,\n};\n\nexport const TUI_ITEMS_HANDLERS = new InjectionToken<TuiItemsHandlers<unknown>>(\n 'Default items handlers for components',\n {\n factory: () => TUI_DEFAULT_ITEMS_HANDLERS,\n },\n);\n\nexport const tuiItemsHandlersProvider: <T>(\n options: Partial<TuiItemsHandlers<T>>,\n) => ValueProvider = <T>(options: Partial<TuiItemsHandlers<T>>) => ({\n provide: TUI_ITEMS_HANDLERS,\n useValue: {...TUI_DEFAULT_ITEMS_HANDLERS, ...options},\n});\n","import {InjectionToken} from '@angular/core';\n\nexport const TUI_MOBILE_AWARE = new InjectionToken<boolean>(\n 'A flag enabling mobile-specific behavior for supporting components',\n {\n factory: () => false,\n },\n);\n","import {InjectionToken, Type} from '@angular/core';\n\nexport const TUI_MOBILE_CALENDAR = new InjectionToken<Type<any>>(\n 'A component for mobile data picker',\n);\n","import {InjectionToken} from '@angular/core';\nimport {TuiHandler, TuiMonth} from '@taiga-ui/cdk';\nimport {Observable} from 'rxjs';\n\nexport const TUI_MONTH_FORMATTER = new InjectionToken<\n TuiHandler<TuiMonth | null, Observable<string>>\n>('A function to get localized formatted month');\n","import {InjectionToken} from '@angular/core';\nimport {TuiStatus} from '@taiga-ui/kit/enums';\n\nexport const TUI_TAG_STATUS = new InjectionToken<TuiStatus>(\n 'Status for tags inside InputTag component',\n {\n factory: () => TuiStatus.Primary,\n },\n);\n","import {InjectionToken} from '@angular/core';\nimport {PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\nimport {Observable} from 'rxjs';\n\nexport const TUI_VALIDATION_ERRORS = new InjectionToken<\n Record<string, PolymorpheusContent | Observable<PolymorpheusContent>>\n>('Validation errors', {\n factory: () => ({}),\n});\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-tokens.js","sources":["ng://@taiga-ui/kit/tokens/calendar-data-stream.ts","ng://@taiga-ui/kit/tokens/date-inputs-value-transformers.ts","ng://@taiga-ui/kit/tokens/i18n.ts","ng://@taiga-ui/kit/tokens/items-handlers.ts","ng://@taiga-ui/kit/tokens/mobile-aware.ts","ng://@taiga-ui/kit/tokens/mobile-calendar.ts","ng://@taiga-ui/kit/tokens/month-formatter.ts","ng://@taiga-ui/kit/tokens/tag-status.ts","ng://@taiga-ui/kit/tokens/validation-errors.ts","ng://@taiga-ui/kit/tokens/taiga-ui-kit-tokens.ts"],"sourcesContent":["import {InjectionToken} from '@angular/core';\nimport {TuiDay, TuiDayRange} from '@taiga-ui/cdk';\nimport {Observable} from 'rxjs';\n\nexport const TUI_CALENDAR_DATA_STREAM = new InjectionToken<\n Observable<TuiDay | TuiDayRange | null>\n>('Stream that emits calendar data change');\n","import {InjectionToken} from '@angular/core';\nimport {TuiControlValueTransformer, TuiDay, TuiDayRange, TuiTime} from '@taiga-ui/cdk';\n\nexport const TUI_DATE_VALUE_TRANSFORMER = new InjectionToken<\n TuiControlValueTransformer<TuiDay | null>\n>('Control value transformer of TuiDay to custom value format for InputDate* components');\n\nexport const TUI_DATE_RANGE_VALUE_TRANSFORMER = new InjectionToken<\n TuiControlValueTransformer<TuiDayRange | null>\n>('Control value transformer for InputDateRange component');\n\nexport const TUI_DATE_TIME_VALUE_TRANSFORMER = new InjectionToken<\n TuiControlValueTransformer<[TuiDay | null, TuiTime | null]>\n>('Control value transformer for InputDateTime component');\n","import {InjectionToken} from '@angular/core';\nimport {TuiDateMode} from '@taiga-ui/cdk';\nimport {extractI18n, TuiCountryIsoCode} from '@taiga-ui/i18n';\nimport {Observable} from 'rxjs';\n\nexport const TUI_CANCEL_WORD = new InjectionToken(`i18n 'cancel' word`, {\n factory: extractI18n('cancel'),\n});\n\nexport const TUI_DONE_WORD = new InjectionToken(`i18n 'done' word`, {\n factory: extractI18n('done'),\n});\n\nexport const TUI_MORE_WORD = new InjectionToken(`i18n 'more' word`, {\n factory: extractI18n('more'),\n});\n\nexport const TUI_HIDE_TEXT = new InjectionToken(`i18n 'hide' word`, {\n factory: extractI18n('hide'),\n});\n\nexport const TUI_SHOW_ALL_TEXT = new InjectionToken(`i18n 'show all' word`, {\n factory: extractI18n('showAll'),\n});\n\nexport const TUI_OTHER_DATE_TEXT = new InjectionToken(`i18n 'Other date' text`, {\n factory: extractI18n('otherDate'),\n});\n\nexport const TUI_CHOOSE_DAY_OR_RANGE_TEXTS = new InjectionToken(\n `choose day or range i18n texts`,\n {\n factory: extractI18n('mobileCalendarTexts'),\n },\n);\n\nexport const TUI_FROM_TO_TEXTS = new InjectionToken(`from and to i18n texts`, {\n factory: extractI18n('range'),\n});\n\nexport const TUI_PLUS_MINUS_TEXTS = new InjectionToken(`plus and minus i18n texts`, {\n factory: extractI18n('countTexts'),\n});\n\nexport const TUI_TIME_TEXTS = new InjectionToken(`time i18n texts`, {\n factory: extractI18n('time'),\n});\n\nexport const TUI_DATE_TEXTS = new InjectionToken<Observable<Record<TuiDateMode, string>>>(\n 'date format i18n texts',\n {\n factory: extractI18n('dateTexts'),\n },\n);\n\nexport const TUI_DIGITAL_INFORMATION_UNITS = new InjectionToken(\n `short bytes, kilobytes and megabytes i18n texts`,\n {\n factory: extractI18n('digitalInformationUnits'),\n },\n);\n\nexport const TUI_COPY_TEXTS = new InjectionToken('copy i18n texts', {\n factory: extractI18n('copyTexts'),\n});\n\nexport const TUI_PASSWORD_TEXTS = new InjectionToken('password i18n texts', {\n factory: extractI18n('passwordTexts'),\n});\n\nexport const TUI_CALENDAR_MONTHS = new InjectionToken('short calendar months i18n', {\n factory: extractI18n('shortCalendarMonths'),\n});\n\nexport const TUI_FILE_TEXTS = new InjectionToken('file i18n texts', {\n factory: extractI18n('fileTexts'),\n});\n\nexport const TUI_PAGINATION_TEXTS = new InjectionToken('pagination i18n texts', {\n factory: extractI18n('paginationTexts'),\n});\n\nexport const TUI_INPUT_FILE_TEXTS = new InjectionToken('tui-input-file i18n texts', {\n factory: extractI18n('inputFileTexts'),\n});\n\nexport const TUI_COUNTRIES: InjectionToken<\n Observable<Record<TuiCountryIsoCode, string>>\n> = new InjectionToken('Localized countries names', {\n factory: extractI18n('countries'),\n});\n","import {InjectionToken, ValueProvider} from '@angular/core';\nimport {\n ALWAYS_FALSE_HANDLER,\n TUI_DEFAULT_IDENTITY_MATCHER,\n TUI_DEFAULT_STRINGIFY,\n TuiBooleanHandler,\n TuiIdentityMatcher,\n TuiStringHandler,\n} from '@taiga-ui/cdk';\n\nexport interface TuiItemsHandlers<T> {\n readonly stringify: TuiStringHandler<T>;\n readonly identityMatcher: TuiIdentityMatcher<T>;\n readonly disabledItemHandler: TuiBooleanHandler<T>;\n}\n\nexport const TUI_DEFAULT_ITEMS_HANDLERS: TuiItemsHandlers<unknown> = {\n stringify: TUI_DEFAULT_STRINGIFY,\n identityMatcher: TUI_DEFAULT_IDENTITY_MATCHER,\n disabledItemHandler: ALWAYS_FALSE_HANDLER,\n};\n\nexport const TUI_ITEMS_HANDLERS = new InjectionToken<TuiItemsHandlers<unknown>>(\n 'Default items handlers for components',\n {\n factory: () => TUI_DEFAULT_ITEMS_HANDLERS,\n },\n);\n\nexport const tuiItemsHandlersProvider: <T>(\n options: Partial<TuiItemsHandlers<T>>,\n) => ValueProvider = <T>(options: Partial<TuiItemsHandlers<T>>) => ({\n provide: TUI_ITEMS_HANDLERS,\n useValue: {...TUI_DEFAULT_ITEMS_HANDLERS, ...options},\n});\n","import {InjectionToken} from '@angular/core';\n\nexport const TUI_MOBILE_AWARE = new InjectionToken<boolean>(\n 'A flag enabling mobile-specific behavior for supporting components',\n {\n factory: () => false,\n },\n);\n","import {InjectionToken, Type} from '@angular/core';\n\nexport const TUI_MOBILE_CALENDAR = new InjectionToken<Type<any>>(\n 'A component for mobile data picker',\n);\n","import {InjectionToken} from '@angular/core';\nimport {TuiHandler, TuiMonth} from '@taiga-ui/cdk';\nimport {Observable} from 'rxjs';\n\nexport const TUI_MONTH_FORMATTER = new InjectionToken<\n TuiHandler<TuiMonth | null, Observable<string>>\n>('A function to get localized formatted month');\n","import {InjectionToken} from '@angular/core';\nimport {TuiStatus} from '@taiga-ui/kit/enums';\n\nexport const TUI_TAG_STATUS = new InjectionToken<TuiStatus>(\n 'Status for tags inside InputTag component',\n {\n factory: () => TuiStatus.Primary,\n },\n);\n","import {InjectionToken} from '@angular/core';\nimport {PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\nimport {Observable} from 'rxjs';\n\nexport const TUI_VALIDATION_ERRORS = new InjectionToken<\n Record<string, PolymorpheusContent | Observable<PolymorpheusContent>>\n>('Validation errors', {\n factory: () => ({}),\n});\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -15,9 +15,16 @@ function formatSize(units, size) {
15
15
  return `${round(size / BYTES_PER_MB, 2).toLocaleString('ru-RU')} ${units[2]}`;
16
16
  }
17
17
 
18
+ function getAcceptArray(accept) {
19
+ return accept
20
+ .toLowerCase()
21
+ .split(',')
22
+ .map(format => format.trim());
23
+ }
24
+
18
25
  /**
19
26
  * Generated bundle index. Do not edit.
20
27
  */
21
28
 
22
- export { formatSize };
29
+ export { formatSize, getAcceptArray };
23
30
  //# sourceMappingURL=taiga-ui-kit-utils-files.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-kit-utils-files.js","sources":["ng://@taiga-ui/kit/utils/files/format-size.ts","ng://@taiga-ui/kit/utils/files/taiga-ui-kit-utils-files.ts"],"sourcesContent":["import {round} from '@taiga-ui/cdk';\n\nconst BYTES_PER_KB = 1000;\nconst BYTES_PER_MB = 1000 * BYTES_PER_KB;\n\nexport function formatSize(\n units: [string, string, string],\n size?: number,\n): string | null {\n if (size === undefined) {\n return null;\n }\n\n if (size < BYTES_PER_KB) {\n return `${size} ${units[0]}`;\n }\n\n if (size < BYTES_PER_MB) {\n return `${(size / BYTES_PER_KB).toFixed()} ${units[1]}`;\n }\n\n return `${round(size / BYTES_PER_MB, 2).toLocaleString('ru-RU')} ${units[2]}`;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;AAEA,MAAM,YAAY,GAAG,IAAI,CAAC;AAC1B,MAAM,YAAY,GAAG,IAAI,GAAG,YAAY,CAAC;SAEzB,UAAU,CACtB,KAA+B,EAC/B,IAAa;IAEb,IAAI,IAAI,KAAK,SAAS,EAAE;QACpB,OAAO,IAAI,CAAC;KACf;IAED,IAAI,IAAI,GAAG,YAAY,EAAE;QACrB,OAAO,GAAG,IAAI,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;KAChC;IAED,IAAI,IAAI,GAAG,YAAY,EAAE;QACrB,OAAO,GAAG,CAAC,IAAI,GAAG,YAAY,EAAE,OAAO,EAAE,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;KAC3D;IAED,OAAO,GAAG,KAAK,CAAC,IAAI,GAAG,YAAY,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;AAClF;;ACtBA;;;;;;"}
1
+ {"version":3,"file":"taiga-ui-kit-utils-files.js","sources":["ng://@taiga-ui/kit/utils/files/format-size.ts","ng://@taiga-ui/kit/utils/files/get-accept-array.ts","ng://@taiga-ui/kit/utils/files/taiga-ui-kit-utils-files.ts"],"sourcesContent":["import {round} from '@taiga-ui/cdk';\n\nconst BYTES_PER_KB = 1000;\nconst BYTES_PER_MB = 1000 * BYTES_PER_KB;\n\nexport function formatSize(\n units: [string, string, string],\n size?: number,\n): string | null {\n if (size === undefined) {\n return null;\n }\n\n if (size < BYTES_PER_KB) {\n return `${size} ${units[0]}`;\n }\n\n if (size < BYTES_PER_MB) {\n return `${(size / BYTES_PER_KB).toFixed()} ${units[1]}`;\n }\n\n return `${round(size / BYTES_PER_MB, 2).toLocaleString('ru-RU')} ${units[2]}`;\n}\n","export function getAcceptArray(accept: string): readonly string[] {\n return accept\n .toLowerCase()\n .split(',')\n .map(format => format.trim());\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;AAEA,MAAM,YAAY,GAAG,IAAI,CAAC;AAC1B,MAAM,YAAY,GAAG,IAAI,GAAG,YAAY,CAAC;SAEzB,UAAU,CACtB,KAA+B,EAC/B,IAAa;IAEb,IAAI,IAAI,KAAK,SAAS,EAAE;QACpB,OAAO,IAAI,CAAC;KACf;IAED,IAAI,IAAI,GAAG,YAAY,EAAE;QACrB,OAAO,GAAG,IAAI,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;KAChC;IAED,IAAI,IAAI,GAAG,YAAY,EAAE;QACrB,OAAO,GAAG,CAAC,IAAI,GAAG,YAAY,EAAE,OAAO,EAAE,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;KAC3D;IAED,OAAO,GAAG,KAAK,CAAC,IAAI,GAAG,YAAY,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;AAClF;;SCtBgB,cAAc,CAAC,MAAc;IACzC,OAAO,MAAM;SACR,WAAW,EAAE;SACb,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;AACtC;;ACLA;;;;;;"}
@@ -1,7 +1,8 @@
1
- import { __extends, __decorate, __param } from 'tslib';
1
+ import { __extends, __spread, __decorate, __param } from 'tslib';
2
2
  import { Input, HostBinding, Directive, ChangeDetectorRef, Inject, ViewChild } from '@angular/core';
3
- import { clamp, round, tuiDefaultProp, AbstractTuiControl, typedFromEvent, setNativeFocused, quantize, nonNegativeFiniteAssertion } from '@taiga-ui/cdk';
3
+ import { clamp, round, tuiDefaultProp, tuiPure, AbstractTuiControl, typedFromEvent, setNativeFocused, quantize, nonNegativeFiniteAssertion } from '@taiga-ui/cdk';
4
4
  import { tuiCreateNumberMask, tuiCreateAutoCorrectedNumberPipe, tuiPluralizeToICU, maskedNumberStringToNumber } from '@taiga-ui/core';
5
+ import { tuiEnableAutoCorrectDecimalSymbol } from '@taiga-ui/core/utils';
5
6
  import { TUI_FLOATING_PRECISION } from '@taiga-ui/kit/constants';
6
7
  import { getPrecision } from '@taiga-ui/kit/utils';
7
8
  import { NgControl } from '@angular/forms';
@@ -23,24 +24,28 @@ var AbstractTuiInputSlider = /** @class */ (function (_super) {
23
24
  _this.max = Infinity;
24
25
  _this.minLabel = '';
25
26
  _this.maxLabel = '';
26
- _this.segmentsPluralize = null;
27
27
  _this.segments = 0;
28
28
  _this.steps = 0;
29
29
  _this.quantum = 1;
30
30
  _this.keySteps = null;
31
31
  _this.size = 'l';
32
32
  _this.pluralizeMap = null;
33
- _this.mask = function (quantum, min) { return ({
34
- mask: tuiCreateNumberMask({
35
- allowNegative: min < 0,
36
- allowDecimal: !Number.isInteger(quantum),
37
- decimalSymbol: _this.numberFormat.decimalSeparator,
38
- thousandSymbol: _this.numberFormat.thousandSeparator,
39
- decimalLimit: getPrecision(quantum),
40
- }),
41
- pipe: tuiCreateAutoCorrectedNumberPipe(0, _this.numberFormat.decimalSeparator, _this.numberFormat.thousandSeparator, undefined, min < 0),
42
- guide: false,
43
- }); };
33
+ /** @deprecated TODO remove in v3.0 */
34
+ _this.segmentsPluralizeMap = null;
35
+ _this.mask = function (quantum, min) {
36
+ return ({
37
+ mask: tuiCreateNumberMask({
38
+ allowNegative: min < 0,
39
+ allowDecimal: !Number.isInteger(quantum),
40
+ decimalSymbol: _this.numberFormat.decimalSeparator,
41
+ thousandSymbol: _this.numberFormat.thousandSeparator,
42
+ decimalLimit: getPrecision(quantum),
43
+ autoCorrectDecimalSymbol: tuiEnableAutoCorrectDecimalSymbol(_this.numberFormat),
44
+ }),
45
+ pipe: tuiCreateAutoCorrectedNumberPipe(0, _this.numberFormat.decimalSeparator, _this.numberFormat.thousandSeparator, undefined, min < 0),
46
+ guide: false,
47
+ });
48
+ };
44
49
  return _this;
45
50
  }
46
51
  Object.defineProperty(AbstractTuiInputSlider.prototype, "pluralize", {
@@ -53,6 +58,34 @@ var AbstractTuiInputSlider = /** @class */ (function (_super) {
53
58
  enumerable: true,
54
59
  configurable: true
55
60
  });
61
+ Object.defineProperty(AbstractTuiInputSlider.prototype, "segmentsPluralize", {
62
+ /**
63
+ * @deprecated This input-property will be deleted in next major update.
64
+ * You can create ticks labels below this input by yourself. It is easy!
65
+ * Mixin `tui-slider-ticks-labels` will help with it. See examples in demo page `InputSlider`.
66
+ * ___
67
+ * TODO remove in v3.0.
68
+ * Dont forget to delete:
69
+ *** {@link segmentsPluralizeMap}
70
+ *** {@link getTickPrefix}
71
+ *** TuiFormatNumberPipeModule
72
+ *** TuiRepeatTimesModule
73
+ */
74
+ set: function (pluralize) {
75
+ this.segmentsPluralizeMap = Array.isArray(pluralize)
76
+ ? tuiPluralizeToICU(pluralize)
77
+ : pluralize;
78
+ },
79
+ enumerable: true,
80
+ configurable: true
81
+ });
82
+ /** @deprecated TODO remove in v3.0 */
83
+ AbstractTuiInputSlider.prototype.getTickPrefix = function (segment, segments, texts) {
84
+ if (segments !== 1) {
85
+ return '';
86
+ }
87
+ return segment === 0 ? "" + texts[0] : "" + texts[1];
88
+ };
56
89
  Object.defineProperty(AbstractTuiInputSlider.prototype, "segmented", {
57
90
  get: function () {
58
91
  return this.segments > 0;
@@ -95,6 +128,13 @@ var AbstractTuiInputSlider = /** @class */ (function (_super) {
95
128
  enumerable: true,
96
129
  configurable: true
97
130
  });
131
+ Object.defineProperty(AbstractTuiInputSlider.prototype, "computedKeySteps", {
132
+ get: function () {
133
+ return this.computePureKeySteps(this.keySteps, this.min, this.max);
134
+ },
135
+ enumerable: true,
136
+ configurable: true
137
+ });
98
138
  Object.defineProperty(AbstractTuiInputSlider.prototype, "hostMode", {
99
139
  get: function () {
100
140
  return this.modeDirective && this.modeDirective.mode;
@@ -118,6 +158,9 @@ var AbstractTuiInputSlider = /** @class */ (function (_super) {
118
158
  }
119
159
  return isNaN(capped) || capped < this.min ? null : capped;
120
160
  };
161
+ AbstractTuiInputSlider.prototype.computePureKeySteps = function (keySteps, min, max) {
162
+ return __spread([[0, min]], (keySteps || []), [[100, max]]);
163
+ };
121
164
  __decorate([
122
165
  Input(),
123
166
  tuiDefaultProp()
@@ -141,7 +184,7 @@ var AbstractTuiInputSlider = /** @class */ (function (_super) {
141
184
  __decorate([
142
185
  Input(),
143
186
  tuiDefaultProp()
144
- ], AbstractTuiInputSlider.prototype, "segmentsPluralize", void 0);
187
+ ], AbstractTuiInputSlider.prototype, "segmentsPluralize", null);
145
188
  __decorate([
146
189
  Input(),
147
190
  tuiDefaultProp()
@@ -162,12 +205,18 @@ var AbstractTuiInputSlider = /** @class */ (function (_super) {
162
205
  Input(),
163
206
  HostBinding('attr.data-size')
164
207
  ], AbstractTuiInputSlider.prototype, "size", void 0);
208
+ __decorate([
209
+ tuiPure
210
+ ], AbstractTuiInputSlider.prototype, "getTickPrefix", null);
165
211
  __decorate([
166
212
  HostBinding('class._segmented')
167
213
  ], AbstractTuiInputSlider.prototype, "segmented", null);
168
214
  __decorate([
169
215
  HostBinding('attr.data-mode')
170
216
  ], AbstractTuiInputSlider.prototype, "hostMode", null);
217
+ __decorate([
218
+ tuiPure
219
+ ], AbstractTuiInputSlider.prototype, "computePureKeySteps", null);
171
220
  AbstractTuiInputSlider = __decorate([
172
221
  Directive()
173
222
  ], AbstractTuiInputSlider);