@taiga-ui/kit 2.42.0 → 2.45.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (751) hide show
  1. package/abstract/slider/slider.d.ts +3 -3
  2. package/abstract/taiga-ui-kit-abstract.metadata.json +1 -1
  3. package/bundles/taiga-ui-kit-abstract.umd.js +1 -0
  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.map +1 -1
  8. package/bundles/taiga-ui-kit-components-accordion.umd.min.js.map +1 -1
  9. package/bundles/taiga-ui-kit-components-action.umd.js +3 -2
  10. package/bundles/taiga-ui-kit-components-action.umd.js.map +1 -1
  11. package/bundles/taiga-ui-kit-components-action.umd.min.js +1 -1
  12. package/bundles/taiga-ui-kit-components-action.umd.min.js.map +1 -1
  13. package/bundles/taiga-ui-kit-components-avatar.umd.js +3 -3
  14. package/bundles/taiga-ui-kit-components-avatar.umd.js.map +1 -1
  15. package/bundles/taiga-ui-kit-components-avatar.umd.min.js +1 -1
  16. package/bundles/taiga-ui-kit-components-avatar.umd.min.js.map +1 -1
  17. package/bundles/taiga-ui-kit-components-breadcrumbs.umd.js.map +1 -1
  18. package/bundles/taiga-ui-kit-components-breadcrumbs.umd.min.js.map +1 -1
  19. package/bundles/taiga-ui-kit-components-calendar-month.umd.js.map +1 -1
  20. package/bundles/taiga-ui-kit-components-calendar-month.umd.min.js.map +1 -1
  21. package/bundles/taiga-ui-kit-components-calendar-range.umd.js.map +1 -1
  22. package/bundles/taiga-ui-kit-components-calendar-range.umd.min.js.map +1 -1
  23. package/bundles/taiga-ui-kit-components-carousel.umd.js.map +1 -1
  24. package/bundles/taiga-ui-kit-components-carousel.umd.min.js.map +1 -1
  25. package/bundles/taiga-ui-kit-components-checkbox-block.umd.js.map +1 -1
  26. package/bundles/taiga-ui-kit-components-checkbox-block.umd.min.js.map +1 -1
  27. package/bundles/taiga-ui-kit-components-checkbox-labeled.umd.js.map +1 -1
  28. package/bundles/taiga-ui-kit-components-checkbox-labeled.umd.min.js.map +1 -1
  29. package/bundles/taiga-ui-kit-components-checkbox.umd.js.map +1 -1
  30. package/bundles/taiga-ui-kit-components-checkbox.umd.min.js.map +1 -1
  31. package/bundles/taiga-ui-kit-components-combo-box.umd.js +4 -11
  32. package/bundles/taiga-ui-kit-components-combo-box.umd.js.map +1 -1
  33. package/bundles/taiga-ui-kit-components-combo-box.umd.min.js +1 -1
  34. package/bundles/taiga-ui-kit-components-combo-box.umd.min.js.map +1 -1
  35. package/bundles/taiga-ui-kit-components-data-list-wrapper.umd.js +65 -45
  36. package/bundles/taiga-ui-kit-components-data-list-wrapper.umd.js.map +1 -1
  37. package/bundles/taiga-ui-kit-components-data-list-wrapper.umd.min.js +2 -2
  38. package/bundles/taiga-ui-kit-components-data-list-wrapper.umd.min.js.map +1 -1
  39. package/bundles/taiga-ui-kit-components-field-error.umd.js.map +1 -1
  40. package/bundles/taiga-ui-kit-components-field-error.umd.min.js.map +1 -1
  41. package/bundles/taiga-ui-kit-components-files.umd.js +49 -49
  42. package/bundles/taiga-ui-kit-components-files.umd.js.map +1 -1
  43. package/bundles/taiga-ui-kit-components-files.umd.min.js +2 -2
  44. package/bundles/taiga-ui-kit-components-files.umd.min.js.map +1 -1
  45. package/bundles/taiga-ui-kit-components-filter.umd.js.map +1 -1
  46. package/bundles/taiga-ui-kit-components-filter.umd.min.js.map +1 -1
  47. package/bundles/taiga-ui-kit-components-input-copy.umd.js +1 -1
  48. package/bundles/taiga-ui-kit-components-input-copy.umd.js.map +1 -1
  49. package/bundles/taiga-ui-kit-components-input-copy.umd.min.js +1 -1
  50. package/bundles/taiga-ui-kit-components-input-copy.umd.min.js.map +1 -1
  51. package/bundles/taiga-ui-kit-components-input-count.umd.js.map +1 -1
  52. package/bundles/taiga-ui-kit-components-input-count.umd.min.js.map +1 -1
  53. package/bundles/taiga-ui-kit-components-input-date-range.umd.js +3 -1
  54. package/bundles/taiga-ui-kit-components-input-date-range.umd.js.map +1 -1
  55. package/bundles/taiga-ui-kit-components-input-date-range.umd.min.js.map +1 -1
  56. package/bundles/taiga-ui-kit-components-input-date-time.umd.js +4 -2
  57. package/bundles/taiga-ui-kit-components-input-date-time.umd.js.map +1 -1
  58. package/bundles/taiga-ui-kit-components-input-date-time.umd.min.js +1 -1
  59. package/bundles/taiga-ui-kit-components-input-date-time.umd.min.js.map +1 -1
  60. package/bundles/taiga-ui-kit-components-input-date.umd.js +3 -1
  61. package/bundles/taiga-ui-kit-components-input-date.umd.js.map +1 -1
  62. package/bundles/taiga-ui-kit-components-input-date.umd.min.js.map +1 -1
  63. package/bundles/taiga-ui-kit-components-input-file.umd.js.map +1 -1
  64. package/bundles/taiga-ui-kit-components-input-file.umd.min.js.map +1 -1
  65. package/bundles/taiga-ui-kit-components-input-files.umd.js.map +1 -1
  66. package/bundles/taiga-ui-kit-components-input-files.umd.min.js.map +1 -1
  67. package/bundles/taiga-ui-kit-components-input-inline.umd.js.map +1 -1
  68. package/bundles/taiga-ui-kit-components-input-inline.umd.min.js.map +1 -1
  69. package/bundles/taiga-ui-kit-components-input-month-range.umd.js +1 -1
  70. package/bundles/taiga-ui-kit-components-input-month-range.umd.js.map +1 -1
  71. package/bundles/taiga-ui-kit-components-input-month-range.umd.min.js +1 -1
  72. package/bundles/taiga-ui-kit-components-input-month-range.umd.min.js.map +1 -1
  73. package/bundles/taiga-ui-kit-components-input-month.umd.js +1 -1
  74. package/bundles/taiga-ui-kit-components-input-month.umd.js.map +1 -1
  75. package/bundles/taiga-ui-kit-components-input-month.umd.min.js +1 -1
  76. package/bundles/taiga-ui-kit-components-input-month.umd.min.js.map +1 -1
  77. package/bundles/taiga-ui-kit-components-input-number.umd.js +3 -2
  78. package/bundles/taiga-ui-kit-components-input-number.umd.js.map +1 -1
  79. package/bundles/taiga-ui-kit-components-input-number.umd.min.js +1 -1
  80. package/bundles/taiga-ui-kit-components-input-number.umd.min.js.map +1 -1
  81. package/bundles/taiga-ui-kit-components-input-password.umd.js +1 -1
  82. package/bundles/taiga-ui-kit-components-input-password.umd.js.map +1 -1
  83. package/bundles/taiga-ui-kit-components-input-password.umd.min.js.map +1 -1
  84. package/bundles/taiga-ui-kit-components-input-phone-international.umd.js.map +1 -1
  85. package/bundles/taiga-ui-kit-components-input-phone-international.umd.min.js.map +1 -1
  86. package/bundles/taiga-ui-kit-components-input-phone.umd.js +1 -3
  87. package/bundles/taiga-ui-kit-components-input-phone.umd.js.map +1 -1
  88. package/bundles/taiga-ui-kit-components-input-phone.umd.min.js +1 -1
  89. package/bundles/taiga-ui-kit-components-input-phone.umd.min.js.map +1 -1
  90. package/bundles/taiga-ui-kit-components-input-range.umd.js +5 -1
  91. package/bundles/taiga-ui-kit-components-input-range.umd.js.map +1 -1
  92. package/bundles/taiga-ui-kit-components-input-range.umd.min.js +1 -1
  93. package/bundles/taiga-ui-kit-components-input-range.umd.min.js.map +1 -1
  94. package/bundles/taiga-ui-kit-components-input-slider.umd.js +1 -1
  95. package/bundles/taiga-ui-kit-components-input-slider.umd.js.map +1 -1
  96. package/bundles/taiga-ui-kit-components-input-slider.umd.min.js +1 -1
  97. package/bundles/taiga-ui-kit-components-input-slider.umd.min.js.map +1 -1
  98. package/bundles/taiga-ui-kit-components-input-tag.umd.js +9 -8
  99. package/bundles/taiga-ui-kit-components-input-tag.umd.js.map +1 -1
  100. package/bundles/taiga-ui-kit-components-input-tag.umd.min.js +1 -1
  101. package/bundles/taiga-ui-kit-components-input-tag.umd.min.js.map +1 -1
  102. package/bundles/taiga-ui-kit-components-input-time.umd.js +1 -1
  103. package/bundles/taiga-ui-kit-components-input-time.umd.js.map +1 -1
  104. package/bundles/taiga-ui-kit-components-input-time.umd.min.js +1 -1
  105. package/bundles/taiga-ui-kit-components-input-time.umd.min.js.map +1 -1
  106. package/bundles/taiga-ui-kit-components-input.umd.js.map +1 -1
  107. package/bundles/taiga-ui-kit-components-input.umd.min.js.map +1 -1
  108. package/bundles/taiga-ui-kit-components-line-clamp.umd.js +7 -94
  109. package/bundles/taiga-ui-kit-components-line-clamp.umd.js.map +1 -1
  110. package/bundles/taiga-ui-kit-components-line-clamp.umd.min.js +2 -2
  111. package/bundles/taiga-ui-kit-components-line-clamp.umd.min.js.map +1 -1
  112. package/bundles/taiga-ui-kit-components-marker-icon.umd.js +12 -25
  113. package/bundles/taiga-ui-kit-components-marker-icon.umd.js.map +1 -1
  114. package/bundles/taiga-ui-kit-components-marker-icon.umd.min.js +2 -2
  115. package/bundles/taiga-ui-kit-components-marker-icon.umd.min.js.map +1 -1
  116. package/bundles/taiga-ui-kit-components-multi-select.umd.js +2 -2
  117. package/bundles/taiga-ui-kit-components-multi-select.umd.js.map +1 -1
  118. package/bundles/taiga-ui-kit-components-multi-select.umd.min.js +1 -1
  119. package/bundles/taiga-ui-kit-components-multi-select.umd.min.js.map +1 -1
  120. package/bundles/taiga-ui-kit-components-pagination.umd.js.map +1 -1
  121. package/bundles/taiga-ui-kit-components-pagination.umd.min.js.map +1 -1
  122. package/bundles/taiga-ui-kit-components-radio-block.umd.js +1 -1
  123. package/bundles/taiga-ui-kit-components-radio-block.umd.js.map +1 -1
  124. package/bundles/taiga-ui-kit-components-radio-block.umd.min.js +1 -1
  125. package/bundles/taiga-ui-kit-components-radio-block.umd.min.js.map +1 -1
  126. package/bundles/taiga-ui-kit-components-radio-labeled.umd.js +1 -1
  127. package/bundles/taiga-ui-kit-components-radio-labeled.umd.js.map +1 -1
  128. package/bundles/taiga-ui-kit-components-radio-labeled.umd.min.js +1 -1
  129. package/bundles/taiga-ui-kit-components-radio-labeled.umd.min.js.map +1 -1
  130. package/bundles/taiga-ui-kit-components-radio-list.umd.js.map +1 -1
  131. package/bundles/taiga-ui-kit-components-radio-list.umd.min.js.map +1 -1
  132. package/bundles/taiga-ui-kit-components-radio.umd.js +4 -2
  133. package/bundles/taiga-ui-kit-components-radio.umd.js.map +1 -1
  134. package/bundles/taiga-ui-kit-components-radio.umd.min.js +1 -1
  135. package/bundles/taiga-ui-kit-components-radio.umd.min.js.map +1 -1
  136. package/bundles/taiga-ui-kit-components-range.umd.js +67 -13
  137. package/bundles/taiga-ui-kit-components-range.umd.js.map +1 -1
  138. package/bundles/taiga-ui-kit-components-range.umd.min.js +2 -2
  139. package/bundles/taiga-ui-kit-components-range.umd.min.js.map +1 -1
  140. package/bundles/taiga-ui-kit-components-select-option.umd.js.map +1 -1
  141. package/bundles/taiga-ui-kit-components-select-option.umd.min.js.map +1 -1
  142. package/bundles/taiga-ui-kit-components-select.umd.js +1 -7
  143. package/bundles/taiga-ui-kit-components-select.umd.js.map +1 -1
  144. package/bundles/taiga-ui-kit-components-select.umd.min.js +2 -2
  145. package/bundles/taiga-ui-kit-components-select.umd.min.js.map +1 -1
  146. package/bundles/taiga-ui-kit-components-slider.umd.js +52 -49
  147. package/bundles/taiga-ui-kit-components-slider.umd.js.map +1 -1
  148. package/bundles/taiga-ui-kit-components-slider.umd.min.js +2 -2
  149. package/bundles/taiga-ui-kit-components-slider.umd.min.js.map +1 -1
  150. package/bundles/taiga-ui-kit-components-stepper.umd.js +1 -0
  151. package/bundles/taiga-ui-kit-components-stepper.umd.js.map +1 -1
  152. package/bundles/taiga-ui-kit-components-stepper.umd.min.js +1 -1
  153. package/bundles/taiga-ui-kit-components-stepper.umd.min.js.map +1 -1
  154. package/bundles/taiga-ui-kit-components-tabs.umd.js +67 -24
  155. package/bundles/taiga-ui-kit-components-tabs.umd.js.map +1 -1
  156. package/bundles/taiga-ui-kit-components-tabs.umd.min.js +2 -2
  157. package/bundles/taiga-ui-kit-components-tabs.umd.min.js.map +1 -1
  158. package/bundles/taiga-ui-kit-components-tag.umd.js.map +1 -1
  159. package/bundles/taiga-ui-kit-components-tag.umd.min.js.map +1 -1
  160. package/bundles/taiga-ui-kit-components-text-area.umd.js +2 -2
  161. package/bundles/taiga-ui-kit-components-text-area.umd.js.map +1 -1
  162. package/bundles/taiga-ui-kit-components-text-area.umd.min.js +1 -1
  163. package/bundles/taiga-ui-kit-components-text-area.umd.min.js.map +1 -1
  164. package/bundles/taiga-ui-kit-components-toggle.umd.js.map +1 -1
  165. package/bundles/taiga-ui-kit-components-toggle.umd.min.js.map +1 -1
  166. package/bundles/taiga-ui-kit-components-tree.umd.js +1 -1
  167. package/bundles/taiga-ui-kit-components-tree.umd.js.map +1 -1
  168. package/bundles/taiga-ui-kit-components-tree.umd.min.js +1 -1
  169. package/bundles/taiga-ui-kit-components-tree.umd.min.js.map +1 -1
  170. package/bundles/taiga-ui-kit-directives-dropdown-context.umd.js.map +1 -1
  171. package/bundles/taiga-ui-kit-directives-dropdown-context.umd.min.js.map +1 -1
  172. package/bundles/taiga-ui-kit-directives-dropdown-hover.umd.js.map +1 -1
  173. package/bundles/taiga-ui-kit-directives-dropdown-hover.umd.min.js.map +1 -1
  174. package/bundles/taiga-ui-kit-directives-dropdown-selection.umd.js.map +1 -1
  175. package/bundles/taiga-ui-kit-directives-dropdown-selection.umd.min.js.map +1 -1
  176. package/bundles/taiga-ui-kit-directives-highlight.umd.js.map +1 -1
  177. package/bundles/taiga-ui-kit-directives-highlight.umd.min.js.map +1 -1
  178. package/bundles/taiga-ui-kit-directives-lazy-loading.umd.js.map +1 -1
  179. package/bundles/taiga-ui-kit-directives-lazy-loading.umd.min.js.map +1 -1
  180. package/bundles/taiga-ui-kit-directives-present.umd.js.map +1 -1
  181. package/bundles/taiga-ui-kit-directives-present.umd.min.js.map +1 -1
  182. package/bundles/taiga-ui-kit-directives-project-class.umd.js.map +1 -1
  183. package/bundles/taiga-ui-kit-directives-project-class.umd.min.js.map +1 -1
  184. package/bundles/taiga-ui-kit-enums.umd.js +2 -2
  185. package/bundles/taiga-ui-kit-enums.umd.js.map +1 -1
  186. package/bundles/taiga-ui-kit-enums.umd.min.js.map +1 -1
  187. package/bundles/taiga-ui-kit-internal-primitive-calendar-range.umd.js.map +1 -1
  188. package/bundles/taiga-ui-kit-internal-primitive-calendar-range.umd.min.js.map +1 -1
  189. package/bundles/taiga-ui-kit-pipes-field-error.umd.js.map +1 -1
  190. package/bundles/taiga-ui-kit-pipes-field-error.umd.min.js.map +1 -1
  191. package/bundles/taiga-ui-kit-utils-dom.umd.js +2 -2
  192. package/bundles/taiga-ui-kit-utils-dom.umd.js.map +1 -1
  193. package/bundles/taiga-ui-kit-utils-dom.umd.min.js +1 -1
  194. package/bundles/taiga-ui-kit-utils-dom.umd.min.js.map +1 -1
  195. package/bundles/taiga-ui-kit-utils-mask.umd.js +2 -2
  196. package/bundles/taiga-ui-kit-utils-mask.umd.js.map +1 -1
  197. package/bundles/taiga-ui-kit-utils-mask.umd.min.js +1 -1
  198. package/bundles/taiga-ui-kit-utils-mask.umd.min.js.map +1 -1
  199. package/bundles/taiga-ui-kit-utils-math.umd.js +253 -4
  200. package/bundles/taiga-ui-kit-utils-math.umd.js.map +1 -1
  201. package/bundles/taiga-ui-kit-utils-math.umd.min.js +15 -1
  202. package/bundles/taiga-ui-kit-utils-math.umd.min.js.map +1 -1
  203. package/bundles/taiga-ui-kit-utils.umd.js +12 -4
  204. package/bundles/taiga-ui-kit-utils.umd.js.map +1 -1
  205. package/bundles/taiga-ui-kit-utils.umd.min.js +1 -1
  206. package/components/accordion/accordion-item/accordion-item-content.directive.d.ts +2 -2
  207. package/components/accordion/accordion-item/accordion-item.component.d.ts +2 -2
  208. package/components/accordion/taiga-ui-kit-components-accordion.metadata.json +1 -1
  209. package/components/action/taiga-ui-kit-components-action.metadata.json +1 -1
  210. package/components/avatar/taiga-ui-kit-components-avatar.metadata.json +1 -1
  211. package/components/breadcrumbs/breadcrumbs-wrapper.component.d.ts +1 -1
  212. package/components/combo-box/combo-box.component.d.ts +1 -2
  213. package/components/combo-box/taiga-ui-kit-components-combo-box.metadata.json +1 -1
  214. package/components/data-list-wrapper/data-list-group-wrapper.component.d.ts +5 -4
  215. package/components/data-list-wrapper/data-list-wrapper.component.d.ts +3 -13
  216. package/components/data-list-wrapper/data-list-wrapper.d.ts +15 -0
  217. package/components/data-list-wrapper/index.d.ts +1 -0
  218. package/components/data-list-wrapper/taiga-ui-kit-components-data-list-wrapper.metadata.json +1 -1
  219. package/components/files/files.component.d.ts +1 -1
  220. package/components/files/index.d.ts +1 -0
  221. package/components/files/taiga-ui-kit-components-files.d.ts +0 -1
  222. package/components/files/taiga-ui-kit-components-files.metadata.json +1 -1
  223. package/components/input-copy/taiga-ui-kit-components-input-copy.metadata.json +1 -1
  224. package/components/input-count/input-count-options.d.ts +2 -2
  225. package/components/input-count/input-count.component.d.ts +2 -2
  226. package/components/input-date/input-date.providers.d.ts +2 -1
  227. package/components/input-date/taiga-ui-kit-components-input-date.metadata.json +1 -1
  228. package/components/input-date-range/input-date-range.providers.d.ts +2 -1
  229. package/components/input-date-range/taiga-ui-kit-components-input-date-range.metadata.json +1 -1
  230. package/components/input-date-time/input-date-time.providers.d.ts +2 -1
  231. package/components/input-date-time/taiga-ui-kit-components-input-date-time.metadata.json +1 -1
  232. package/components/input-file/file/file.component.d.ts +2 -2
  233. package/components/input-month/taiga-ui-kit-components-input-month.metadata.json +1 -1
  234. package/components/input-number/input-number.component.d.ts +2 -2
  235. package/components/input-number/taiga-ui-kit-components-input-number.metadata.json +1 -1
  236. package/components/input-password/input-password-options.d.ts +2 -2
  237. package/components/input-password/input-password.directive.d.ts +2 -1
  238. package/components/input-password/taiga-ui-kit-components-input-password.metadata.json +1 -1
  239. package/components/input-phone/input-phone.component.d.ts +2 -2
  240. package/components/input-range/input-range.component.d.ts +3 -2
  241. package/components/input-range/taiga-ui-kit-components-input-range.metadata.json +1 -1
  242. package/components/input-tag/input-tag.component.d.ts +4 -7
  243. package/components/input-tag/taiga-ui-kit-components-input-tag.metadata.json +1 -1
  244. package/components/input-time/input-time-options.d.ts +1 -1
  245. package/components/input-time/input-time.component.d.ts +2 -2
  246. package/components/input-time/taiga-ui-kit-components-input-time.metadata.json +1 -1
  247. package/components/line-clamp/index.d.ts +0 -1
  248. package/components/line-clamp/line-clamp.component.d.ts +0 -1
  249. package/components/line-clamp/taiga-ui-kit-components-line-clamp.metadata.json +1 -1
  250. package/components/marker-icon/marker-icon.component.d.ts +2 -3
  251. package/components/marker-icon/taiga-ui-kit-components-marker-icon.metadata.json +1 -1
  252. package/components/multi-select/multi-select-group/multi-select-group.directive.d.ts +3 -3
  253. package/components/multi-select/multi-select.component.d.ts +2 -2
  254. package/components/multi-select/taiga-ui-kit-components-multi-select.metadata.json +1 -1
  255. package/components/radio/radio.component.d.ts +2 -2
  256. package/components/radio-block/taiga-ui-kit-components-radio-block.metadata.json +1 -1
  257. package/components/radio-labeled/taiga-ui-kit-components-radio-labeled.metadata.json +1 -1
  258. package/components/radio-list/taiga-ui-kit-components-radio-list.metadata.json +1 -1
  259. package/components/range/range.component.d.ts +11 -2
  260. package/components/range/taiga-ui-kit-components-range.metadata.json +1 -1
  261. package/components/select/select.component.d.ts +0 -1
  262. package/components/select/taiga-ui-kit-components-select.metadata.json +1 -1
  263. package/components/select-option/select-option.component.d.ts +2 -2
  264. package/components/select-option/taiga-ui-kit-components-select-option.metadata.json +1 -1
  265. package/components/slider/slider-readonly.directive.d.ts +4 -1
  266. package/components/slider/taiga-ui-kit-components-slider.metadata.json +1 -1
  267. package/components/stepper/taiga-ui-kit-components-stepper.metadata.json +1 -1
  268. package/components/tabs/index.d.ts +1 -0
  269. package/components/tabs/tab.directive.d.ts +2 -2
  270. package/components/tabs/tabs/tabs.component.d.ts +3 -1
  271. package/components/tabs/tabs-options.d.ts +9 -0
  272. package/components/tabs/tabs-with-more/tabs-with-more.component.d.ts +9 -4
  273. package/components/tabs/taiga-ui-kit-components-tabs.metadata.json +1 -1
  274. package/components/text-area/taiga-ui-kit-components-text-area.metadata.json +1 -1
  275. package/components/tree/misc/tree.interfaces.d.ts +1 -1
  276. package/components/tree/taiga-ui-kit-components-tree.metadata.json +1 -1
  277. package/directives/dropdown-selection/dropdown-selection.directive.d.ts +1 -1
  278. package/enums/dropdown-position.d.ts +2 -1
  279. package/enums/step-state.d.ts +2 -1
  280. package/enums/taiga-ui-kit-enums.metadata.json +1 -1
  281. package/esm2015/abstract/input-slider.js +1 -1
  282. package/esm2015/abstract/slider/slider.js +3 -2
  283. package/esm2015/components/accordion/accordion-item/accordion-item-content.directive.js +1 -1
  284. package/esm2015/components/accordion/accordion-item/accordion-item.component.js +1 -1
  285. package/esm2015/components/accordion/accordion.component.js +1 -1
  286. package/esm2015/components/action/action.component.js +4 -3
  287. package/esm2015/components/avatar/avatar.component.js +4 -4
  288. package/esm2015/components/breadcrumbs/breadcrumbs-wrapper.component.js +1 -1
  289. package/esm2015/components/calendar-month/calendar-month.component.js +1 -1
  290. package/esm2015/components/calendar-range/calendar-range.component.js +1 -1
  291. package/esm2015/components/carousel/carousel.component.js +1 -1
  292. package/esm2015/components/checkbox/checkbox.component.js +1 -1
  293. package/esm2015/components/checkbox-block/checkbox-block.component.js +1 -1
  294. package/esm2015/components/checkbox-labeled/checkbox-labeled.component.js +1 -1
  295. package/esm2015/components/combo-box/combo-box-strict.directive.js +4 -2
  296. package/esm2015/components/combo-box/combo-box.component.js +3 -12
  297. package/esm2015/components/combo-box/combo-box.directive.js +1 -1
  298. package/esm2015/components/data-list-wrapper/data-list-group-wrapper.component.js +15 -10
  299. package/esm2015/components/data-list-wrapper/data-list-wrapper.component.js +7 -40
  300. package/esm2015/components/data-list-wrapper/data-list-wrapper.js +51 -0
  301. package/esm2015/components/data-list-wrapper/index.js +2 -1
  302. package/esm2015/components/field-error/field-error.component.js +1 -1
  303. package/esm2015/components/files/file/file.component.js +1 -1
  304. package/esm2015/components/files/files.component.js +1 -1
  305. package/esm2015/components/files/index.js +2 -1
  306. package/esm2015/components/files/taiga-ui-kit-components-files.js +1 -2
  307. package/esm2015/components/filter/filter.component.js +1 -1
  308. package/esm2015/components/input/input.component.js +1 -1
  309. package/esm2015/components/input/input.directive.js +1 -1
  310. package/esm2015/components/input-copy/input-copy.component.js +1 -1
  311. package/esm2015/components/input-copy/input-copy.directive.js +1 -1
  312. package/esm2015/components/input-copy/input-copy.module.js +3 -3
  313. package/esm2015/components/input-count/input-count-options.js +1 -1
  314. package/esm2015/components/input-count/input-count.component.js +1 -1
  315. package/esm2015/components/input-count/input-count.directive.js +1 -1
  316. package/esm2015/components/input-date/input-date.component.js +1 -1
  317. package/esm2015/components/input-date/input-date.directive.js +1 -1
  318. package/esm2015/components/input-date/input-date.providers.js +1 -1
  319. package/esm2015/components/input-date-range/input-date-range.component.js +1 -1
  320. package/esm2015/components/input-date-range/input-date-range.directive.js +1 -1
  321. package/esm2015/components/input-date-range/input-date-range.providers.js +1 -1
  322. package/esm2015/components/input-date-time/input-date-time.component.js +2 -2
  323. package/esm2015/components/input-date-time/input-date-time.directive.js +1 -1
  324. package/esm2015/components/input-date-time/input-date-time.providers.js +1 -1
  325. package/esm2015/components/input-file/file/file.component.js +1 -1
  326. package/esm2015/components/input-file/input-file.component.js +1 -1
  327. package/esm2015/components/input-files/input-files.component.js +1 -1
  328. package/esm2015/components/input-inline/input-inline.component.js +1 -1
  329. package/esm2015/components/input-month/input-month.component.js +2 -2
  330. package/esm2015/components/input-month/input-month.directive.js +1 -1
  331. package/esm2015/components/input-month-range/input-month-range.component.js +2 -2
  332. package/esm2015/components/input-month-range/input-month-range.directive.js +1 -1
  333. package/esm2015/components/input-number/input-number.component.js +6 -5
  334. package/esm2015/components/input-number/input-number.directive.js +1 -1
  335. package/esm2015/components/input-password/input-password-options.js +3 -3
  336. package/esm2015/components/input-password/input-password.component.js +1 -1
  337. package/esm2015/components/input-password/input-password.directive.js +1 -1
  338. package/esm2015/components/input-phone/input-phone.component.js +2 -4
  339. package/esm2015/components/input-phone/input-phone.directive.js +1 -1
  340. package/esm2015/components/input-phone-international/input-phone-international.component.js +1 -1
  341. package/esm2015/components/input-range/input-range.component.js +7 -3
  342. package/esm2015/components/input-slider/input-slider.component.js +3 -3
  343. package/esm2015/components/input-tag/input-tag.component.js +10 -9
  344. package/esm2015/components/input-time/input-time-options.js +1 -1
  345. package/esm2015/components/input-time/input-time.component.js +2 -2
  346. package/esm2015/components/line-clamp/index.js +1 -2
  347. package/esm2015/components/line-clamp/line-clamp.component.js +3 -6
  348. package/esm2015/components/line-clamp/line-clamp.module.js +2 -3
  349. package/esm2015/components/marker-icon/marker-icon.component.js +9 -18
  350. package/esm2015/components/multi-select/multi-select-group/multi-select-group.component.js +2 -2
  351. package/esm2015/components/multi-select/multi-select.component.js +2 -2
  352. package/esm2015/components/pagination/pagination.component.js +1 -1
  353. package/esm2015/components/radio/radio.component.js +5 -3
  354. package/esm2015/components/radio-block/radio-block.component.js +2 -2
  355. package/esm2015/components/radio-labeled/radio-labeled.component.js +2 -2
  356. package/esm2015/components/radio-list/radio-list.component.js +1 -1
  357. package/esm2015/components/range/range.component.js +70 -13
  358. package/esm2015/components/select/select.component.js +3 -9
  359. package/esm2015/components/select/select.directive.js +1 -1
  360. package/esm2015/components/select-option/select-option.component.js +1 -1
  361. package/esm2015/components/slider/slider-key-steps.directive.js +11 -28
  362. package/esm2015/components/slider/slider-old.component.js +1 -1
  363. package/esm2015/components/slider/slider-readonly.directive.js +38 -9
  364. package/esm2015/components/slider/slider.component.js +2 -2
  365. package/esm2015/components/stepper/step/step.component.js +1 -1
  366. package/esm2015/components/stepper/stepper.component.js +3 -2
  367. package/esm2015/components/tabs/index.js +2 -1
  368. package/esm2015/components/tabs/tab/tab.component.js +1 -1
  369. package/esm2015/components/tabs/tab.directive.js +1 -1
  370. package/esm2015/components/tabs/tabs/tabs.component.js +14 -10
  371. package/esm2015/components/tabs/tabs-options.js +14 -0
  372. package/esm2015/components/tabs/tabs-with-more/tabs-with-more.component.js +38 -17
  373. package/esm2015/components/tag/tag.component.js +1 -1
  374. package/esm2015/components/text-area/text-area.component.js +3 -3
  375. package/esm2015/components/text-area/text-area.directive.js +1 -1
  376. package/esm2015/components/toggle/toggle.component.js +1 -1
  377. package/esm2015/components/tree/components/tree/tree.component.js +2 -2
  378. package/esm2015/components/tree/components/tree-item/tree-item.component.js +1 -1
  379. package/esm2015/components/tree/components/tree-item-content/tree-item-content.component.js +1 -1
  380. package/esm2015/components/tree/directives/tree-controller.directive.js +1 -1
  381. package/esm2015/components/tree/directives/tree-item-controller.directive.js +1 -1
  382. package/esm2015/components/tree/directives/tree-node.directive.js +1 -1
  383. package/esm2015/components/tree/misc/tree.interfaces.js +1 -1
  384. package/esm2015/components/tree/misc/tree.service.js +1 -1
  385. package/esm2015/directives/dropdown-context/dropdown-context.directive.js +1 -1
  386. package/esm2015/directives/dropdown-hover/dropdown-hover.directive.js +1 -1
  387. package/esm2015/directives/dropdown-selection/dropdown-selection.directive.js +1 -1
  388. package/esm2015/directives/highlight/highlight.directive.js +1 -1
  389. package/esm2015/directives/lazy-loading/lazy-loading.directive.js +1 -1
  390. package/esm2015/directives/lazy-loading/lazy-loading.service.js +1 -1
  391. package/esm2015/directives/present/present.directive.js +1 -1
  392. package/esm2015/directives/project-class/project-class.directive.js +1 -1
  393. package/esm2015/enums/dropdown-position.js +2 -2
  394. package/esm2015/enums/step-state.js +2 -2
  395. package/esm2015/internal/primitive-calendar-range/primitive-calendar-range.component.js +1 -1
  396. package/esm2015/pipes/field-error/field-error-content-pipe.js +1 -1
  397. package/esm2015/pipes/field-error/field-error-pipe.js +1 -1
  398. package/esm2015/types/handler-with-context.js +1 -1
  399. package/esm2015/types/key-steps.js +1 -1
  400. package/esm2015/utils/dom/get-word-range.js +3 -3
  401. package/esm2015/utils/dom/scroll-to-element.js +1 -1
  402. package/esm2015/utils/dom/set-range-offset.js +1 -1
  403. package/esm2015/utils/index.js +2 -1
  404. package/esm2015/utils/mask/create-auto-corrected-time-pipe.js +3 -3
  405. package/esm2015/utils/mask/create-time-mask.js +1 -1
  406. package/esm2015/utils/math/index.js +2 -1
  407. package/esm2015/utils/math/key-steps.js +23 -0
  408. package/esm5/abstract/input-slider.js +1 -1
  409. package/esm5/abstract/slider/slider.js +3 -2
  410. package/esm5/components/accordion/accordion-item/accordion-item-content.directive.js +1 -1
  411. package/esm5/components/accordion/accordion-item/accordion-item.component.js +1 -1
  412. package/esm5/components/accordion/accordion.component.js +1 -1
  413. package/esm5/components/action/action.component.js +4 -3
  414. package/esm5/components/avatar/avatar.component.js +4 -4
  415. package/esm5/components/breadcrumbs/breadcrumbs-wrapper.component.js +1 -1
  416. package/esm5/components/calendar-month/calendar-month.component.js +1 -1
  417. package/esm5/components/calendar-range/calendar-range.component.js +1 -1
  418. package/esm5/components/carousel/carousel.component.js +1 -1
  419. package/esm5/components/checkbox/checkbox.component.js +1 -1
  420. package/esm5/components/checkbox-block/checkbox-block.component.js +1 -1
  421. package/esm5/components/checkbox-labeled/checkbox-labeled.component.js +1 -1
  422. package/esm5/components/combo-box/combo-box-strict.directive.js +4 -2
  423. package/esm5/components/combo-box/combo-box.component.js +3 -12
  424. package/esm5/components/combo-box/combo-box.directive.js +1 -1
  425. package/esm5/components/data-list-wrapper/data-list-group-wrapper.component.js +15 -10
  426. package/esm5/components/data-list-wrapper/data-list-wrapper.component.js +12 -55
  427. package/esm5/components/data-list-wrapper/data-list-wrapper.js +64 -0
  428. package/esm5/components/data-list-wrapper/index.js +2 -1
  429. package/esm5/components/field-error/field-error.component.js +1 -1
  430. package/esm5/components/files/file/file.component.js +1 -1
  431. package/esm5/components/files/files.component.js +1 -1
  432. package/esm5/components/files/index.js +2 -1
  433. package/esm5/components/files/taiga-ui-kit-components-files.js +1 -2
  434. package/esm5/components/filter/filter.component.js +1 -1
  435. package/esm5/components/input/input.component.js +1 -1
  436. package/esm5/components/input/input.directive.js +1 -1
  437. package/esm5/components/input-copy/input-copy.component.js +1 -1
  438. package/esm5/components/input-copy/input-copy.directive.js +1 -1
  439. package/esm5/components/input-copy/input-copy.module.js +3 -3
  440. package/esm5/components/input-count/input-count-options.js +1 -1
  441. package/esm5/components/input-count/input-count.component.js +1 -1
  442. package/esm5/components/input-count/input-count.directive.js +1 -1
  443. package/esm5/components/input-date/input-date.component.js +1 -1
  444. package/esm5/components/input-date/input-date.directive.js +1 -1
  445. package/esm5/components/input-date/input-date.providers.js +4 -2
  446. package/esm5/components/input-date-range/input-date-range.component.js +1 -1
  447. package/esm5/components/input-date-range/input-date-range.directive.js +1 -1
  448. package/esm5/components/input-date-range/input-date-range.providers.js +4 -2
  449. package/esm5/components/input-date-time/input-date-time.component.js +2 -2
  450. package/esm5/components/input-date-time/input-date-time.directive.js +1 -1
  451. package/esm5/components/input-date-time/input-date-time.providers.js +4 -2
  452. package/esm5/components/input-file/file/file.component.js +1 -1
  453. package/esm5/components/input-file/input-file.component.js +1 -1
  454. package/esm5/components/input-files/input-files.component.js +1 -1
  455. package/esm5/components/input-inline/input-inline.component.js +1 -1
  456. package/esm5/components/input-month/input-month.component.js +2 -2
  457. package/esm5/components/input-month/input-month.directive.js +1 -1
  458. package/esm5/components/input-month-range/input-month-range.component.js +2 -2
  459. package/esm5/components/input-month-range/input-month-range.directive.js +1 -1
  460. package/esm5/components/input-number/input-number.component.js +6 -5
  461. package/esm5/components/input-number/input-number.directive.js +1 -1
  462. package/esm5/components/input-password/input-password-options.js +2 -2
  463. package/esm5/components/input-password/input-password.component.js +1 -1
  464. package/esm5/components/input-password/input-password.directive.js +1 -1
  465. package/esm5/components/input-phone/input-phone.component.js +2 -4
  466. package/esm5/components/input-phone/input-phone.directive.js +1 -1
  467. package/esm5/components/input-phone-international/input-phone-international.component.js +1 -1
  468. package/esm5/components/input-range/input-range.component.js +6 -2
  469. package/esm5/components/input-slider/input-slider.component.js +2 -2
  470. package/esm5/components/input-tag/input-tag.component.js +10 -9
  471. package/esm5/components/input-time/input-time-options.js +1 -1
  472. package/esm5/components/input-time/input-time.component.js +2 -2
  473. package/esm5/components/line-clamp/index.js +1 -2
  474. package/esm5/components/line-clamp/line-clamp.component.js +3 -10
  475. package/esm5/components/line-clamp/line-clamp.module.js +2 -3
  476. package/esm5/components/marker-icon/marker-icon.component.js +9 -23
  477. package/esm5/components/multi-select/multi-select-group/multi-select-group.component.js +2 -2
  478. package/esm5/components/multi-select/multi-select.component.js +2 -2
  479. package/esm5/components/pagination/pagination.component.js +1 -1
  480. package/esm5/components/radio/radio.component.js +5 -3
  481. package/esm5/components/radio-block/radio-block.component.js +2 -2
  482. package/esm5/components/radio-labeled/radio-labeled.component.js +2 -2
  483. package/esm5/components/radio-list/radio-list.component.js +1 -1
  484. package/esm5/components/range/range.component.js +68 -12
  485. package/esm5/components/select/select.component.js +3 -9
  486. package/esm5/components/select/select.directive.js +1 -1
  487. package/esm5/components/select-option/select-option.component.js +1 -1
  488. package/esm5/components/slider/slider-key-steps.directive.js +13 -43
  489. package/esm5/components/slider/slider-old.component.js +1 -1
  490. package/esm5/components/slider/slider-readonly.directive.js +45 -9
  491. package/esm5/components/slider/slider.component.js +2 -2
  492. package/esm5/components/stepper/step/step.component.js +1 -1
  493. package/esm5/components/stepper/stepper.component.js +3 -2
  494. package/esm5/components/tabs/index.js +2 -1
  495. package/esm5/components/tabs/tab/tab.component.js +1 -1
  496. package/esm5/components/tabs/tab.directive.js +1 -1
  497. package/esm5/components/tabs/tabs/tabs.component.js +14 -10
  498. package/esm5/components/tabs/tabs-options.js +15 -0
  499. package/esm5/components/tabs/tabs-with-more/tabs-with-more.component.js +42 -17
  500. package/esm5/components/tag/tag.component.js +1 -1
  501. package/esm5/components/text-area/text-area.component.js +3 -3
  502. package/esm5/components/text-area/text-area.directive.js +1 -1
  503. package/esm5/components/toggle/toggle.component.js +1 -1
  504. package/esm5/components/tree/components/tree/tree.component.js +2 -2
  505. package/esm5/components/tree/components/tree-item/tree-item.component.js +1 -1
  506. package/esm5/components/tree/components/tree-item-content/tree-item-content.component.js +1 -1
  507. package/esm5/components/tree/directives/tree-controller.directive.js +1 -1
  508. package/esm5/components/tree/directives/tree-item-controller.directive.js +1 -1
  509. package/esm5/components/tree/directives/tree-node.directive.js +1 -1
  510. package/esm5/components/tree/misc/tree.interfaces.js +1 -1
  511. package/esm5/components/tree/misc/tree.service.js +1 -1
  512. package/esm5/directives/dropdown-context/dropdown-context.directive.js +1 -1
  513. package/esm5/directives/dropdown-hover/dropdown-hover.directive.js +1 -1
  514. package/esm5/directives/dropdown-selection/dropdown-selection.directive.js +1 -1
  515. package/esm5/directives/highlight/highlight.directive.js +1 -1
  516. package/esm5/directives/lazy-loading/lazy-loading.directive.js +1 -1
  517. package/esm5/directives/lazy-loading/lazy-loading.service.js +1 -1
  518. package/esm5/directives/present/present.directive.js +1 -1
  519. package/esm5/directives/project-class/project-class.directive.js +1 -1
  520. package/esm5/enums/dropdown-position.js +2 -2
  521. package/esm5/enums/step-state.js +2 -2
  522. package/esm5/internal/primitive-calendar-range/primitive-calendar-range.component.js +1 -1
  523. package/esm5/pipes/field-error/field-error-content-pipe.js +1 -1
  524. package/esm5/pipes/field-error/field-error-pipe.js +1 -1
  525. package/esm5/types/handler-with-context.js +1 -1
  526. package/esm5/types/key-steps.js +1 -1
  527. package/esm5/utils/dom/get-word-range.js +3 -3
  528. package/esm5/utils/dom/scroll-to-element.js +1 -1
  529. package/esm5/utils/dom/set-range-offset.js +1 -1
  530. package/esm5/utils/index.js +2 -1
  531. package/esm5/utils/mask/create-auto-corrected-time-pipe.js +3 -3
  532. package/esm5/utils/mask/create-time-mask.js +1 -1
  533. package/esm5/utils/math/index.js +2 -1
  534. package/esm5/utils/math/key-steps.js +30 -0
  535. package/fesm2015/taiga-ui-kit-abstract.js +2 -1
  536. package/fesm2015/taiga-ui-kit-abstract.js.map +1 -1
  537. package/fesm2015/taiga-ui-kit-components-accordion.js.map +1 -1
  538. package/fesm2015/taiga-ui-kit-components-action.js +3 -2
  539. package/fesm2015/taiga-ui-kit-components-action.js.map +1 -1
  540. package/fesm2015/taiga-ui-kit-components-avatar.js +3 -3
  541. package/fesm2015/taiga-ui-kit-components-avatar.js.map +1 -1
  542. package/fesm2015/taiga-ui-kit-components-breadcrumbs.js.map +1 -1
  543. package/fesm2015/taiga-ui-kit-components-calendar-month.js.map +1 -1
  544. package/fesm2015/taiga-ui-kit-components-calendar-range.js.map +1 -1
  545. package/fesm2015/taiga-ui-kit-components-carousel.js.map +1 -1
  546. package/fesm2015/taiga-ui-kit-components-checkbox-block.js.map +1 -1
  547. package/fesm2015/taiga-ui-kit-components-checkbox-labeled.js.map +1 -1
  548. package/fesm2015/taiga-ui-kit-components-checkbox.js.map +1 -1
  549. package/fesm2015/taiga-ui-kit-components-combo-box.js +5 -12
  550. package/fesm2015/taiga-ui-kit-components-combo-box.js.map +1 -1
  551. package/fesm2015/taiga-ui-kit-components-data-list-wrapper.js +56 -38
  552. package/fesm2015/taiga-ui-kit-components-data-list-wrapper.js.map +1 -1
  553. package/fesm2015/taiga-ui-kit-components-field-error.js.map +1 -1
  554. package/fesm2015/taiga-ui-kit-components-files.js +47 -47
  555. package/fesm2015/taiga-ui-kit-components-files.js.map +1 -1
  556. package/fesm2015/taiga-ui-kit-components-filter.js.map +1 -1
  557. package/fesm2015/taiga-ui-kit-components-input-copy.js +2 -2
  558. package/fesm2015/taiga-ui-kit-components-input-copy.js.map +1 -1
  559. package/fesm2015/taiga-ui-kit-components-input-count.js.map +1 -1
  560. package/fesm2015/taiga-ui-kit-components-input-date-range.js.map +1 -1
  561. package/fesm2015/taiga-ui-kit-components-input-date-time.js +1 -1
  562. package/fesm2015/taiga-ui-kit-components-input-date-time.js.map +1 -1
  563. package/fesm2015/taiga-ui-kit-components-input-date.js.map +1 -1
  564. package/fesm2015/taiga-ui-kit-components-input-file.js.map +1 -1
  565. package/fesm2015/taiga-ui-kit-components-input-files.js.map +1 -1
  566. package/fesm2015/taiga-ui-kit-components-input-inline.js.map +1 -1
  567. package/fesm2015/taiga-ui-kit-components-input-month-range.js +1 -1
  568. package/fesm2015/taiga-ui-kit-components-input-month-range.js.map +1 -1
  569. package/fesm2015/taiga-ui-kit-components-input-month.js +1 -1
  570. package/fesm2015/taiga-ui-kit-components-input-month.js.map +1 -1
  571. package/fesm2015/taiga-ui-kit-components-input-number.js +5 -4
  572. package/fesm2015/taiga-ui-kit-components-input-number.js.map +1 -1
  573. package/fesm2015/taiga-ui-kit-components-input-password.js +2 -2
  574. package/fesm2015/taiga-ui-kit-components-input-password.js.map +1 -1
  575. package/fesm2015/taiga-ui-kit-components-input-phone-international.js.map +1 -1
  576. package/fesm2015/taiga-ui-kit-components-input-phone.js +1 -3
  577. package/fesm2015/taiga-ui-kit-components-input-phone.js.map +1 -1
  578. package/fesm2015/taiga-ui-kit-components-input-range.js +6 -2
  579. package/fesm2015/taiga-ui-kit-components-input-range.js.map +1 -1
  580. package/fesm2015/taiga-ui-kit-components-input-slider.js +2 -2
  581. package/fesm2015/taiga-ui-kit-components-input-slider.js.map +1 -1
  582. package/fesm2015/taiga-ui-kit-components-input-tag.js +9 -8
  583. package/fesm2015/taiga-ui-kit-components-input-tag.js.map +1 -1
  584. package/fesm2015/taiga-ui-kit-components-input-time.js +1 -1
  585. package/fesm2015/taiga-ui-kit-components-input-time.js.map +1 -1
  586. package/fesm2015/taiga-ui-kit-components-input.js.map +1 -1
  587. package/fesm2015/taiga-ui-kit-components-line-clamp.js +9 -91
  588. package/fesm2015/taiga-ui-kit-components-line-clamp.js.map +1 -1
  589. package/fesm2015/taiga-ui-kit-components-marker-icon.js +9 -18
  590. package/fesm2015/taiga-ui-kit-components-marker-icon.js.map +1 -1
  591. package/fesm2015/taiga-ui-kit-components-multi-select.js +2 -2
  592. package/fesm2015/taiga-ui-kit-components-multi-select.js.map +1 -1
  593. package/fesm2015/taiga-ui-kit-components-pagination.js.map +1 -1
  594. package/fesm2015/taiga-ui-kit-components-radio-block.js +1 -1
  595. package/fesm2015/taiga-ui-kit-components-radio-block.js.map +1 -1
  596. package/fesm2015/taiga-ui-kit-components-radio-labeled.js +1 -1
  597. package/fesm2015/taiga-ui-kit-components-radio-labeled.js.map +1 -1
  598. package/fesm2015/taiga-ui-kit-components-radio-list.js.map +1 -1
  599. package/fesm2015/taiga-ui-kit-components-radio.js +4 -2
  600. package/fesm2015/taiga-ui-kit-components-radio.js.map +1 -1
  601. package/fesm2015/taiga-ui-kit-components-range.js +70 -14
  602. package/fesm2015/taiga-ui-kit-components-range.js.map +1 -1
  603. package/fesm2015/taiga-ui-kit-components-select-option.js.map +1 -1
  604. package/fesm2015/taiga-ui-kit-components-select.js +2 -8
  605. package/fesm2015/taiga-ui-kit-components-select.js.map +1 -1
  606. package/fesm2015/taiga-ui-kit-components-slider.js +44 -35
  607. package/fesm2015/taiga-ui-kit-components-slider.js.map +1 -1
  608. package/fesm2015/taiga-ui-kit-components-stepper.js +2 -1
  609. package/fesm2015/taiga-ui-kit-components-stepper.js.map +1 -1
  610. package/fesm2015/taiga-ui-kit-components-tabs.js +62 -26
  611. package/fesm2015/taiga-ui-kit-components-tabs.js.map +1 -1
  612. package/fesm2015/taiga-ui-kit-components-tag.js.map +1 -1
  613. package/fesm2015/taiga-ui-kit-components-text-area.js +2 -2
  614. package/fesm2015/taiga-ui-kit-components-text-area.js.map +1 -1
  615. package/fesm2015/taiga-ui-kit-components-toggle.js.map +1 -1
  616. package/fesm2015/taiga-ui-kit-components-tree.js +1 -1
  617. package/fesm2015/taiga-ui-kit-components-tree.js.map +1 -1
  618. package/fesm2015/taiga-ui-kit-directives-dropdown-context.js.map +1 -1
  619. package/fesm2015/taiga-ui-kit-directives-dropdown-hover.js.map +1 -1
  620. package/fesm2015/taiga-ui-kit-directives-dropdown-selection.js.map +1 -1
  621. package/fesm2015/taiga-ui-kit-directives-highlight.js.map +1 -1
  622. package/fesm2015/taiga-ui-kit-directives-lazy-loading.js.map +1 -1
  623. package/fesm2015/taiga-ui-kit-directives-present.js.map +1 -1
  624. package/fesm2015/taiga-ui-kit-directives-project-class.js.map +1 -1
  625. package/fesm2015/taiga-ui-kit-enums.js +2 -2
  626. package/fesm2015/taiga-ui-kit-enums.js.map +1 -1
  627. package/fesm2015/taiga-ui-kit-internal-primitive-calendar-range.js.map +1 -1
  628. package/fesm2015/taiga-ui-kit-pipes-field-error.js.map +1 -1
  629. package/fesm2015/taiga-ui-kit-utils-dom.js +2 -2
  630. package/fesm2015/taiga-ui-kit-utils-dom.js.map +1 -1
  631. package/fesm2015/taiga-ui-kit-utils-mask.js +2 -2
  632. package/fesm2015/taiga-ui-kit-utils-mask.js.map +1 -1
  633. package/fesm2015/taiga-ui-kit-utils-math.js +25 -1
  634. package/fesm2015/taiga-ui-kit-utils-math.js.map +1 -1
  635. package/fesm2015/taiga-ui-kit-utils.js +1 -0
  636. package/fesm2015/taiga-ui-kit-utils.js.map +1 -1
  637. package/fesm5/taiga-ui-kit-abstract.js +2 -1
  638. package/fesm5/taiga-ui-kit-abstract.js.map +1 -1
  639. package/fesm5/taiga-ui-kit-components-accordion.js.map +1 -1
  640. package/fesm5/taiga-ui-kit-components-action.js +3 -2
  641. package/fesm5/taiga-ui-kit-components-action.js.map +1 -1
  642. package/fesm5/taiga-ui-kit-components-avatar.js +3 -3
  643. package/fesm5/taiga-ui-kit-components-avatar.js.map +1 -1
  644. package/fesm5/taiga-ui-kit-components-breadcrumbs.js.map +1 -1
  645. package/fesm5/taiga-ui-kit-components-calendar-month.js.map +1 -1
  646. package/fesm5/taiga-ui-kit-components-calendar-range.js.map +1 -1
  647. package/fesm5/taiga-ui-kit-components-carousel.js.map +1 -1
  648. package/fesm5/taiga-ui-kit-components-checkbox-block.js.map +1 -1
  649. package/fesm5/taiga-ui-kit-components-checkbox-labeled.js.map +1 -1
  650. package/fesm5/taiga-ui-kit-components-checkbox.js.map +1 -1
  651. package/fesm5/taiga-ui-kit-components-combo-box.js +5 -12
  652. package/fesm5/taiga-ui-kit-components-combo-box.js.map +1 -1
  653. package/fesm5/taiga-ui-kit-components-data-list-wrapper.js +66 -45
  654. package/fesm5/taiga-ui-kit-components-data-list-wrapper.js.map +1 -1
  655. package/fesm5/taiga-ui-kit-components-field-error.js.map +1 -1
  656. package/fesm5/taiga-ui-kit-components-files.js +52 -52
  657. package/fesm5/taiga-ui-kit-components-files.js.map +1 -1
  658. package/fesm5/taiga-ui-kit-components-filter.js.map +1 -1
  659. package/fesm5/taiga-ui-kit-components-input-copy.js +2 -2
  660. package/fesm5/taiga-ui-kit-components-input-copy.js.map +1 -1
  661. package/fesm5/taiga-ui-kit-components-input-count.js.map +1 -1
  662. package/fesm5/taiga-ui-kit-components-input-date-range.js +3 -1
  663. package/fesm5/taiga-ui-kit-components-input-date-range.js.map +1 -1
  664. package/fesm5/taiga-ui-kit-components-input-date-time.js +4 -2
  665. package/fesm5/taiga-ui-kit-components-input-date-time.js.map +1 -1
  666. package/fesm5/taiga-ui-kit-components-input-date.js +3 -1
  667. package/fesm5/taiga-ui-kit-components-input-date.js.map +1 -1
  668. package/fesm5/taiga-ui-kit-components-input-file.js.map +1 -1
  669. package/fesm5/taiga-ui-kit-components-input-files.js.map +1 -1
  670. package/fesm5/taiga-ui-kit-components-input-inline.js.map +1 -1
  671. package/fesm5/taiga-ui-kit-components-input-month-range.js +1 -1
  672. package/fesm5/taiga-ui-kit-components-input-month-range.js.map +1 -1
  673. package/fesm5/taiga-ui-kit-components-input-month.js +1 -1
  674. package/fesm5/taiga-ui-kit-components-input-month.js.map +1 -1
  675. package/fesm5/taiga-ui-kit-components-input-number.js +5 -4
  676. package/fesm5/taiga-ui-kit-components-input-number.js.map +1 -1
  677. package/fesm5/taiga-ui-kit-components-input-password.js +1 -1
  678. package/fesm5/taiga-ui-kit-components-input-password.js.map +1 -1
  679. package/fesm5/taiga-ui-kit-components-input-phone-international.js.map +1 -1
  680. package/fesm5/taiga-ui-kit-components-input-phone.js +1 -3
  681. package/fesm5/taiga-ui-kit-components-input-phone.js.map +1 -1
  682. package/fesm5/taiga-ui-kit-components-input-range.js +5 -1
  683. package/fesm5/taiga-ui-kit-components-input-range.js.map +1 -1
  684. package/fesm5/taiga-ui-kit-components-input-slider.js +1 -1
  685. package/fesm5/taiga-ui-kit-components-input-slider.js.map +1 -1
  686. package/fesm5/taiga-ui-kit-components-input-tag.js +9 -8
  687. package/fesm5/taiga-ui-kit-components-input-tag.js.map +1 -1
  688. package/fesm5/taiga-ui-kit-components-input-time.js +1 -1
  689. package/fesm5/taiga-ui-kit-components-input-time.js.map +1 -1
  690. package/fesm5/taiga-ui-kit-components-input.js.map +1 -1
  691. package/fesm5/taiga-ui-kit-components-line-clamp.js +9 -97
  692. package/fesm5/taiga-ui-kit-components-line-clamp.js.map +1 -1
  693. package/fesm5/taiga-ui-kit-components-marker-icon.js +9 -23
  694. package/fesm5/taiga-ui-kit-components-marker-icon.js.map +1 -1
  695. package/fesm5/taiga-ui-kit-components-multi-select.js +2 -2
  696. package/fesm5/taiga-ui-kit-components-multi-select.js.map +1 -1
  697. package/fesm5/taiga-ui-kit-components-pagination.js.map +1 -1
  698. package/fesm5/taiga-ui-kit-components-radio-block.js +1 -1
  699. package/fesm5/taiga-ui-kit-components-radio-block.js.map +1 -1
  700. package/fesm5/taiga-ui-kit-components-radio-labeled.js +1 -1
  701. package/fesm5/taiga-ui-kit-components-radio-labeled.js.map +1 -1
  702. package/fesm5/taiga-ui-kit-components-radio-list.js.map +1 -1
  703. package/fesm5/taiga-ui-kit-components-radio.js +4 -2
  704. package/fesm5/taiga-ui-kit-components-radio.js.map +1 -1
  705. package/fesm5/taiga-ui-kit-components-range.js +68 -13
  706. package/fesm5/taiga-ui-kit-components-range.js.map +1 -1
  707. package/fesm5/taiga-ui-kit-components-select-option.js.map +1 -1
  708. package/fesm5/taiga-ui-kit-components-select.js +2 -8
  709. package/fesm5/taiga-ui-kit-components-select.js.map +1 -1
  710. package/fesm5/taiga-ui-kit-components-slider.js +52 -49
  711. package/fesm5/taiga-ui-kit-components-slider.js.map +1 -1
  712. package/fesm5/taiga-ui-kit-components-stepper.js +2 -1
  713. package/fesm5/taiga-ui-kit-components-stepper.js.map +1 -1
  714. package/fesm5/taiga-ui-kit-components-tabs.js +67 -27
  715. package/fesm5/taiga-ui-kit-components-tabs.js.map +1 -1
  716. package/fesm5/taiga-ui-kit-components-tag.js.map +1 -1
  717. package/fesm5/taiga-ui-kit-components-text-area.js +2 -2
  718. package/fesm5/taiga-ui-kit-components-text-area.js.map +1 -1
  719. package/fesm5/taiga-ui-kit-components-toggle.js.map +1 -1
  720. package/fesm5/taiga-ui-kit-components-tree.js +1 -1
  721. package/fesm5/taiga-ui-kit-components-tree.js.map +1 -1
  722. package/fesm5/taiga-ui-kit-directives-dropdown-context.js.map +1 -1
  723. package/fesm5/taiga-ui-kit-directives-dropdown-hover.js.map +1 -1
  724. package/fesm5/taiga-ui-kit-directives-dropdown-selection.js.map +1 -1
  725. package/fesm5/taiga-ui-kit-directives-highlight.js.map +1 -1
  726. package/fesm5/taiga-ui-kit-directives-lazy-loading.js.map +1 -1
  727. package/fesm5/taiga-ui-kit-directives-present.js.map +1 -1
  728. package/fesm5/taiga-ui-kit-directives-project-class.js.map +1 -1
  729. package/fesm5/taiga-ui-kit-enums.js +2 -2
  730. package/fesm5/taiga-ui-kit-enums.js.map +1 -1
  731. package/fesm5/taiga-ui-kit-internal-primitive-calendar-range.js.map +1 -1
  732. package/fesm5/taiga-ui-kit-pipes-field-error.js.map +1 -1
  733. package/fesm5/taiga-ui-kit-utils-dom.js +2 -2
  734. package/fesm5/taiga-ui-kit-utils-dom.js.map +1 -1
  735. package/fesm5/taiga-ui-kit-utils-mask.js +2 -2
  736. package/fesm5/taiga-ui-kit-utils-mask.js.map +1 -1
  737. package/fesm5/taiga-ui-kit-utils-math.js +32 -1
  738. package/fesm5/taiga-ui-kit-utils-math.js.map +1 -1
  739. package/fesm5/taiga-ui-kit-utils.js +1 -0
  740. package/fesm5/taiga-ui-kit-utils.js.map +1 -1
  741. package/package.json +4 -4
  742. package/types/handler-with-context.d.ts +2 -2
  743. package/types/key-steps.d.ts +1 -1
  744. package/utils/index.d.ts +1 -0
  745. package/utils/math/index.d.ts +1 -0
  746. package/utils/math/key-steps.d.ts +4 -0
  747. package/utils/math/taiga-ui-kit-utils-math.metadata.json +1 -1
  748. package/utils/taiga-ui-kit-utils.metadata.json +1 -1
  749. package/components/line-clamp/line-clamp.directive.d.ts +0 -11
  750. package/esm2015/components/line-clamp/line-clamp.directive.js +0 -87
  751. package/esm5/components/line-clamp/line-clamp.directive.js +0 -89
@@ -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: readonly string[] = [];\n\n constructor(\n @Optional()\n @Self()\n @Inject(NgControl)\n private readonly ngControl: NgControl | null,\n @Optional()\n @Self()\n @Inject(FormArrayName)\n private readonly formArrayName: FormArrayName | null,\n @Optional()\n @Self()\n @Inject(FormGroupName)\n private readonly formGroupName: FormGroupName | null,\n @Optional()\n @Self()\n @Inject(FormGroupDirective)\n private readonly formGroup: FormGroupDirective | null,\n @Inject(TUI_VALIDATION_ERRORS)\n private readonly validationErrors: Record<\n string,\n PolymorpheusContent | Observable<PolymorpheusContent>\n >,\n ) {\n if (this.ngControl && !this.ngControl.valueAccessor) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n transform(order: readonly 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: readonly 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":";;;;;;;;;AAcA,MAAM,YAAY,GAAG,EAAE,CAAC;AAExB;IAKa,iBAAiB,GAA9B,MAAa,iBAAiB;IAG1B,YAIqB,SAA2B,EAI3B,aAAmC,EAInC,aAAmC,EAInC,SAAoC,EAEpC,gBAGhB;QAjBgB,cAAS,GAAT,SAAS,CAAkB;QAI3B,kBAAa,GAAb,aAAa,CAAsB;QAInC,kBAAa,GAAb,aAAa,CAAsB;QAInC,cAAS,GAAT,SAAS,CAA2B;QAEpC,qBAAgB,GAAhB,gBAAgB,CAGhC;QAvBG,UAAK,GAAsB,EAAE,CAAC;QAyBlC,IAAI,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE;YACjD,IAAI,CAAC,SAAS,CAAC,aAAa,GAAG,IAAI,CAAC;SACvC;KACJ;IAED,SAAS,CAAC,KAAwB;QAC9B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QAEnB,OAAO,IAAI,CAAC,aAAa,CAAC;KAC7B;IAGD,IAAI,OAAO;;QACP,OAAO,KAAK,CACR,OAAA,IAAI,CAAC,OAAO,0CAAE,YAAY,KAAI,KAAK,EACnC,OAAA,IAAI,CAAC,OAAO,0CAAE,aAAa,KAAI,KAAK,CACvC,CAAC;KACL;IAED,IAAI,aAAa;QACb,OAAO,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,KAAK,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC;KACnE;IAED,gBAAgB,MAAK;IAErB,iBAAiB,MAAK;IAEtB,gBAAgB,MAAK;IAErB,UAAU,MAAK;IAEf,IAAY,KAAK;QACb,MAAM,EAAC,OAAO,EAAC,GAAG,IAAI,CAAC;QAEvB,IAAI,CAAC,OAAO,EAAE;YACV,OAAO,IAAI,CAAC;SACf;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAC/C,MAAM,YAAY,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;QAEpD,OAAO,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;KAClD;IAED,IAAY,OAAO;;QACf,OAAO,CAAC,QAAC,IAAI,CAAC,OAAO,0CAAE,OAAO,CAAA,CAAC;KAClC;IAED,IAAY,OAAO;;QACf,OAAO,CAAC,QAAC,IAAI,CAAC,OAAO,0CAAE,OAAO,CAAA,CAAC;KAClC;IAED,IAAY,OAAO;;QACf,QACI,OAAA,IAAI,CAAC,SAAS,0CAAE,OAAO,YACvB,IAAI,CAAC,aAAa,0CAAE,OAAO,CAAA,WAC3B,IAAI,CAAC,aAAa,0CAAE,OAAO,CAAA,WAC3B,IAAI,CAAC,SAAS,0CAAE,OAAO,CAAA;YACvB,IAAI,EACN;KACL;IAED,IAAY,OAAO;QACf,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;KAC1D;IAED,IAAY,aAAa;;QACrB,OAAO,OAAA,IAAI,CAAC,OAAO,0CAAE,MAAM,KAAI,YAAY,CAAC;KAC/C;IAGO,UAAU,CACd,KAAwB,EACxB,aAAkC;QAElC,MAAM,EAAE,GAAG,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,IAAI,CAAC,OAAO,IAAI,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC;QAC1D,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;QAE/C,OAAO,EAAE,IAAI,QAAQ,IAAI,EAAE,CAAC;KAC/B;IAGO,QAAQ,CACZ,UAAe,EACf,YAAoE;QAEpE,IAAI,UAAU,YAAY,kBAAkB,EAAE;YAC1C,OAAO,EAAE,CAAC,UAAU,CAAC,CAAC;SACzB;QAED,IAAI,YAAY,KAAK,SAAS,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE;YAC9D,OAAO,EAAE,CAAC,IAAI,kBAAkB,CAAC,UAAU,CAAC,CAAC,CAAC;SACjD;QAED,IAAI,YAAY,CAAC,YAAY,CAAC,EAAE;YAC5B,OAAO,YAAY,CAAC,IAAI,CACpB,GAAG,CAAC,KAAK,IAAI,IAAI,kBAAkB,CAAC,KAAK,IAAI,EAAE,EAAE,UAAU,CAAC,CAAC,CAChE,CAAC;SACL;QAED,OAAO,EAAE,CAAC,IAAI,kBAAkB,CAAC,YAAY,IAAI,EAAE,EAAE,UAAU,CAAC,CAAC,CAAC;KACrE;EACJ;;YAzHmC,SAAS,uBAHpC,QAAQ,YACR,IAAI,YACJ,MAAM,SAAC,SAAS;YAKe,aAAa,uBAH5C,QAAQ,YACR,IAAI,YACJ,MAAM,SAAC,aAAa;YAKW,aAAa,uBAH5C,QAAQ,YACR,IAAI,YACJ,MAAM,SAAC,aAAa;YAKO,kBAAkB,uBAH7C,QAAQ,YACR,IAAI,YACJ,MAAM,SAAC,kBAAkB;4CAEzB,MAAM,SAAC,qBAAqB;;AAkBjC;IADC,OAAO;gDAMP;AAsDD;IADC,OAAO;mDASP;AAGD;IADC,OAAO;iDAoBP;AA/HQ,iBAAiB;IAJ7B,IAAI,CAAC;QACF,IAAI,EAAE,eAAe;QACrB,IAAI,EAAE,KAAK;KACd,CAAC;IAKO,WAAA,QAAQ,EAAE,CAAA;IACV,WAAA,IAAI,EAAE,CAAA;IACN,WAAA,MAAM,CAAC,SAAS,CAAC,CAAA;IAEjB,WAAA,QAAQ,EAAE,CAAA;IACV,WAAA,IAAI,EAAE,CAAA;IACN,WAAA,MAAM,CAAC,aAAa,CAAC,CAAA;IAErB,WAAA,QAAQ,EAAE,CAAA;IACV,WAAA,IAAI,EAAE,CAAA;IACN,WAAA,MAAM,CAAC,aAAa,CAAC,CAAA;IAErB,WAAA,QAAQ,EAAE,CAAA;IACV,WAAA,IAAI,EAAE,CAAA;IACN,WAAA,MAAM,CAAC,kBAAkB,CAAC,CAAA;IAE1B,WAAA,MAAM,CAAC,qBAAqB,CAAC,CAAA;GApBzB,iBAAiB,CAgI7B;;AC/ID;IAKa,wBAAwB,GAArC,MAAa,wBAAwB;IASjC,YAA+C,QAAkB;QAAlB,aAAQ,GAAR,QAAQ,CAAU;QARhD,kBAAa,GAAG,QAAQ,CAAC,MAAM,CAAC;YAC7C,SAAS,EAAE,CAAC,EAAC,OAAO,EAAE,SAAS,EAAC,EAAE,EAAC,OAAO,EAAE,iBAAiB,EAAC,CAAC;YAC/D,MAAM,EAAE,IAAI,CAAC,QAAQ;SACxB,CAAC,CAAC;QAEc,cAAS,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC9C,mBAAc,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;KAEP;IAErE,SAAS,CAAC,KAAwB;QAC9B,OAAO,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;KACtC;IAED,WAAW;QACP,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC;KAChC;IAEO,eAAe,CAAC,KAAwB;QAC5C,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;QAE7E,IAAI,CAAC,KAAK,EAAE;YACR,OAAO,EAAE,CAAC;SACb;QAED,OAAO,OAAO,KAAK,CAAC,OAAO,KAAK,UAAU;cACpC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC;cAC5B,KAAK,CAAC,OAAO,CAAC;KACvB;EACJ;;YArB4D,QAAQ,uBAApD,MAAM,SAAC,QAAQ;;AATnB,wBAAwB;IAJpC,IAAI,CAAC;QACF,IAAI,EAAE,sBAAsB;QAC5B,IAAI,EAAE,KAAK;KACd,CAAC;IAUe,WAAA,MAAM,CAAC,QAAQ,CAAC,CAAA;GATpB,wBAAwB,CA8BpC;;IChCY,uBAAuB,GAApC,MAAa,uBAAuB;EAAG;AAA1B,uBAAuB;IAJnC,QAAQ,CAAC;QACN,YAAY,EAAE,CAAC,iBAAiB,EAAE,wBAAwB,CAAC;QAC3D,OAAO,EAAE,CAAC,iBAAiB,EAAE,wBAAwB,CAAC;KACzD,CAAC;GACW,uBAAuB,CAAG;;ACTvC;;;;;;"}
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: readonly string[] = [];\n\n constructor(\n @Optional()\n @Self()\n @Inject(NgControl)\n private readonly ngControl: NgControl | null,\n @Optional()\n @Self()\n @Inject(FormArrayName)\n private readonly formArrayName: FormArrayName | null,\n @Optional()\n @Self()\n @Inject(FormGroupName)\n private readonly formGroupName: FormGroupName | null,\n @Optional()\n @Self()\n @Inject(FormGroupDirective)\n private readonly formGroup: FormGroupDirective | null,\n @Inject(TUI_VALIDATION_ERRORS)\n private readonly validationErrors: Record<\n string,\n PolymorpheusContent | Observable<PolymorpheusContent>\n >,\n ) {\n if (this.ngControl && !this.ngControl.valueAccessor) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n transform(order: readonly 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(): void {}\n\n registerOnTouched(): void {}\n\n setDisabledState(): void {}\n\n writeValue(): void {}\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: readonly string[]): PolymorpheusContent {\n return this.getErrorContent(order);\n }\n\n ngOnDestroy(): void {\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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"}
@@ -19,7 +19,7 @@ function getWordRange(currentRange) {
19
19
  const container = treeWalker.currentNode;
20
20
  const textContent = container.textContent || '';
21
21
  const content = container === startContainer
22
- ? textContent.substr(0, startOffset + 1)
22
+ ? textContent.slice(0, Math.max(0, startOffset + 1))
23
23
  : textContent;
24
24
  const offset = Math.max(content.lastIndexOf(' '), content.lastIndexOf(CHAR_NO_BREAK_SPACE), content.lastIndexOf(CHAR_ZERO_WIDTH_SPACE)) + 1;
25
25
  range.setStart(container, 0);
@@ -32,7 +32,7 @@ function getWordRange(currentRange) {
32
32
  do {
33
33
  const container = treeWalker.currentNode;
34
34
  const textContent = container.textContent || '';
35
- const content = container === endContainer ? textContent.substr(endOffset + 1) : textContent;
35
+ const content = container === endContainer ? textContent.slice(endOffset + 1) : textContent;
36
36
  const offset = [
37
37
  content.indexOf(' '),
38
38
  content.indexOf(CHAR_NO_BREAK_SPACE),
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-kit-utils-dom.js","sources":["ng://@taiga-ui/kit/utils/dom/get-word-range.ts","ng://@taiga-ui/kit/utils/dom/scroll-to-element.ts","ng://@taiga-ui/kit/utils/dom/set-range-offset.ts","ng://@taiga-ui/kit/utils/dom/taiga-ui-kit-utils-dom.ts"],"sourcesContent":["import {CHAR_NO_BREAK_SPACE, CHAR_ZERO_WIDTH_SPACE, svgNodeFilter} from '@taiga-ui/cdk';\n\n/**\n * Creates a cloned range with its boundaries set at word boundaries\n *\n * @param currentRange a range to clone\n * @return modified range\n */\nexport function getWordRange(currentRange: Range): Range {\n const range = currentRange.cloneRange();\n const {startContainer, startOffset, endContainer, endOffset} = range;\n const {ownerDocument} = startContainer;\n\n if (!ownerDocument) {\n return range;\n }\n\n const treeWalker = ownerDocument.createTreeWalker(\n ownerDocument.body,\n NodeFilter.SHOW_TEXT,\n svgNodeFilter,\n false,\n );\n\n treeWalker.currentNode = startContainer;\n\n do {\n const container = treeWalker.currentNode;\n const textContent = container.textContent || '';\n const content =\n container === startContainer\n ? textContent.substr(0, startOffset + 1)\n : textContent;\n const offset =\n Math.max(\n content.lastIndexOf(' '),\n content.lastIndexOf(CHAR_NO_BREAK_SPACE),\n content.lastIndexOf(CHAR_ZERO_WIDTH_SPACE),\n ) + 1;\n\n range.setStart(container, 0);\n\n if (offset) {\n range.setStart(container, offset);\n break;\n }\n } while (treeWalker.previousNode());\n\n treeWalker.currentNode = endContainer;\n\n do {\n const container = treeWalker.currentNode;\n const textContent = container.textContent || '';\n const content =\n container === endContainer ? textContent.substr(endOffset + 1) : textContent;\n const offset = [\n content.indexOf(' '),\n content.indexOf(CHAR_NO_BREAK_SPACE),\n content.indexOf(CHAR_ZERO_WIDTH_SPACE),\n ].reduce(\n (result, item) =>\n result === -1 || item === -1\n ? Math.max(result, item)\n : Math.min(result, item),\n -1,\n );\n\n range.setEnd(container, textContent.length);\n\n if (offset !== -1) {\n range.setEnd(container, offset + textContent.length - content.length);\n break;\n }\n } while (treeWalker.nextNode());\n\n return range;\n}\n","export function scrollToElement(element: HTMLElement, container: HTMLElement) {\n const scrolledWidth = container.offsetWidth + container.scrollLeft;\n const elementWidth = element.offsetWidth;\n const elementX =\n container.scrollLeft +\n element.getBoundingClientRect().left -\n container.getBoundingClientRect().left;\n const elementDidNotFitRight = elementX + elementWidth > scrolledWidth;\n const elementDidNotFitLeft = container.scrollLeft > elementX;\n const deltaXRight = elementX + elementWidth - scrolledWidth;\n const deltaXLeft = elementX - container.scrollLeft;\n\n if (elementDidNotFitRight) {\n container.scrollLeft += deltaXRight;\n }\n\n if (elementDidNotFitLeft) {\n container.scrollLeft += deltaXLeft;\n }\n}\n","import {svgNodeFilter} from '@taiga-ui/cdk';\n\n/**\n * Range.setStart/set-end, except it uses offset in characters only\n */\nexport function setRangeOffset(\n range: Range,\n node: HTMLElement,\n offset: number,\n method: 'setStart' | 'setEnd',\n) {\n const {ownerDocument} = node;\n\n if (!ownerDocument) {\n return;\n }\n\n const treeWalker = ownerDocument.createTreeWalker(\n node,\n NodeFilter.SHOW_TEXT,\n svgNodeFilter,\n false,\n );\n\n treeWalker.currentNode = node;\n\n while (treeWalker.nextNode()) {\n if (treeWalker.currentNode.nodeType === Node.TEXT_NODE) {\n const length = treeWalker.currentNode.nodeValue\n ? treeWalker.currentNode.nodeValue.length\n : 0;\n\n if (offset > length) {\n offset -= length;\n } else {\n range[method](treeWalker.currentNode, offset);\n }\n }\n }\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-utils-dom.js","sources":["ng://@taiga-ui/kit/utils/dom/get-word-range.ts","ng://@taiga-ui/kit/utils/dom/scroll-to-element.ts","ng://@taiga-ui/kit/utils/dom/set-range-offset.ts","ng://@taiga-ui/kit/utils/dom/taiga-ui-kit-utils-dom.ts"],"sourcesContent":["import {CHAR_NO_BREAK_SPACE, CHAR_ZERO_WIDTH_SPACE, svgNodeFilter} from '@taiga-ui/cdk';\n\n/**\n * Creates a cloned range with its boundaries set at word boundaries\n *\n * @param currentRange a range to clone\n * @return modified range\n */\nexport function getWordRange(currentRange: Range): Range {\n const range = currentRange.cloneRange();\n const {startContainer, startOffset, endContainer, endOffset} = range;\n const {ownerDocument} = startContainer;\n\n if (!ownerDocument) {\n return range;\n }\n\n const treeWalker = ownerDocument.createTreeWalker(\n ownerDocument.body,\n NodeFilter.SHOW_TEXT,\n svgNodeFilter,\n false,\n );\n\n treeWalker.currentNode = startContainer;\n\n do {\n const container = treeWalker.currentNode;\n const textContent = container.textContent || '';\n const content =\n container === startContainer\n ? textContent.slice(0, Math.max(0, startOffset + 1))\n : textContent;\n const offset =\n Math.max(\n content.lastIndexOf(' '),\n content.lastIndexOf(CHAR_NO_BREAK_SPACE),\n content.lastIndexOf(CHAR_ZERO_WIDTH_SPACE),\n ) + 1;\n\n range.setStart(container, 0);\n\n if (offset) {\n range.setStart(container, offset);\n break;\n }\n } while (treeWalker.previousNode());\n\n treeWalker.currentNode = endContainer;\n\n do {\n const container = treeWalker.currentNode;\n const textContent = container.textContent || '';\n const content =\n container === endContainer ? textContent.slice(endOffset + 1) : textContent;\n const offset = [\n content.indexOf(' '),\n content.indexOf(CHAR_NO_BREAK_SPACE),\n content.indexOf(CHAR_ZERO_WIDTH_SPACE),\n ].reduce(\n (result, item) =>\n result === -1 || item === -1\n ? Math.max(result, item)\n : Math.min(result, item),\n -1,\n );\n\n range.setEnd(container, textContent.length);\n\n if (offset !== -1) {\n range.setEnd(container, offset + textContent.length - content.length);\n break;\n }\n } while (treeWalker.nextNode());\n\n return range;\n}\n","export function scrollToElement(element: HTMLElement, container: HTMLElement): void {\n const scrolledWidth = container.offsetWidth + container.scrollLeft;\n const elementWidth = element.offsetWidth;\n const elementX =\n container.scrollLeft +\n element.getBoundingClientRect().left -\n container.getBoundingClientRect().left;\n const elementDidNotFitRight = elementX + elementWidth > scrolledWidth;\n const elementDidNotFitLeft = container.scrollLeft > elementX;\n const deltaXRight = elementX + elementWidth - scrolledWidth;\n const deltaXLeft = elementX - container.scrollLeft;\n\n if (elementDidNotFitRight) {\n container.scrollLeft += deltaXRight;\n }\n\n if (elementDidNotFitLeft) {\n container.scrollLeft += deltaXLeft;\n }\n}\n","import {svgNodeFilter} from '@taiga-ui/cdk';\n\n/**\n * Range.setStart/set-end, except it uses offset in characters only\n */\nexport function setRangeOffset(\n range: Range,\n node: HTMLElement,\n offset: number,\n method: 'setStart' | 'setEnd',\n): void {\n const {ownerDocument} = node;\n\n if (!ownerDocument) {\n return;\n }\n\n const treeWalker = ownerDocument.createTreeWalker(\n node,\n NodeFilter.SHOW_TEXT,\n svgNodeFilter,\n false,\n );\n\n treeWalker.currentNode = node;\n\n while (treeWalker.nextNode()) {\n if (treeWalker.currentNode.nodeType === Node.TEXT_NODE) {\n const length = treeWalker.currentNode.nodeValue\n ? treeWalker.currentNode.nodeValue.length\n : 0;\n\n if (offset > length) {\n offset -= length;\n } else {\n range[method](treeWalker.currentNode, offset);\n }\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -70,14 +70,14 @@ function tuiCreateAutoCorrectedTimePipe(timeMode = 'HH:MM', maxValues = {}) {
70
70
  const conformedValueArr = conformedValue.split('');
71
71
  timeFormatArray.forEach(format => {
72
72
  const position = timeMode.indexOf(format);
73
- const maxFirstDigit = parseInt(String(safeValues[format]).substr(0, 1), 10);
73
+ const maxFirstDigit = parseInt(String(safeValues[format]).slice(0, 1), 10);
74
74
  if (parseInt(conformedValueArr[position], 10) > maxFirstDigit) {
75
75
  conformedValueArr[position + 1] = conformedValueArr[position];
76
76
  conformedValueArr[position] = '0';
77
77
  indexesOfPipedChars.push(position);
78
78
  }
79
79
  });
80
- const isInvalid = timeFormatArray.some(format => parseInt(conformedValue.substr(timeMode.indexOf(format), 2), 10) >
80
+ const isInvalid = timeFormatArray.some(format => parseInt(conformedValue.slice(timeMode.indexOf(format), 2), 10) >
81
81
  safeValues[format]);
82
82
  return isInvalid
83
83
  ? false
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-kit-utils-mask.js","sources":["ng://@taiga-ui/kit/utils/mask/create-auto-corrected-date-pipe.ts","ng://@taiga-ui/kit/utils/mask/create-auto-corrected-date-range-pipe.ts","ng://@taiga-ui/kit/utils/mask/create-auto-corrected-time-pipe.ts","ng://@taiga-ui/kit/utils/mask/create-auto-corrected-date-time-pipe.ts","ng://@taiga-ui/kit/utils/mask/create-date-mask.ts","ng://@taiga-ui/kit/utils/mask/create-date-range-mask.ts","ng://@taiga-ui/kit/utils/mask/create-time-mask.ts","ng://@taiga-ui/kit/utils/mask/taiga-ui-kit-utils-mask.ts"],"sourcesContent":["import {DATE_FILLER_LENGTH, TuiDateMode, TuiDay} from '@taiga-ui/cdk';\nimport {TuiTextMaskPipeHandler, TuiWithOptionalMinMaxWithValue} from '@taiga-ui/core';\n\nexport interface TuiAutoCorrectedDatePipeConfigs\n extends TuiWithOptionalMinMaxWithValue<TuiDay | null, TuiDay> {\n dateFormat: TuiDateMode;\n dateSeparator: string;\n}\n\nexport function normalizeDateValue(\n dateValue: string,\n {value, min, max, dateFormat, dateSeparator}: TuiAutoCorrectedDatePipeConfigs,\n): string {\n return value && value.toString(dateFormat, dateSeparator) === dateValue\n ? dateValue\n : TuiDay.normalizeParse(dateValue, dateFormat)\n .dayLimit(min, max)\n .toString(dateFormat, dateSeparator);\n}\n\nexport function tuiCreateAutoCorrectedDatePipe(\n config: TuiAutoCorrectedDatePipeConfigs,\n): TuiTextMaskPipeHandler {\n return value => {\n if (value.length !== DATE_FILLER_LENGTH) {\n return {value};\n }\n\n return {\n value: normalizeDateValue(value, config),\n };\n };\n}\n","import {\n DATE_FILLER_LENGTH,\n DATE_RANGE_FILLER_LENGTH,\n RANGE_SEPARATOR_CHAR,\n TuiDateMode,\n TuiDay,\n TuiDayRange,\n} from '@taiga-ui/cdk';\nimport {TuiTextMaskPipeHandler, TuiWithOptionalMinMaxWithValue} from '@taiga-ui/core';\n\ninterface TuiAutoCorrectedDatePipeConfigs\n extends TuiWithOptionalMinMaxWithValue<TuiDayRange | null, TuiDay> {\n dateFormat: TuiDateMode;\n dateSeparator: string;\n}\n\nfunction parseWithLimit(value: string, config: TuiAutoCorrectedDatePipeConfigs): TuiDay {\n return TuiDay.normalizeParse(\n value.slice(0, DATE_FILLER_LENGTH),\n config.dateFormat,\n ).dayLimit(config.min, config.max);\n}\n\nfunction processRawValue(value: string, config: TuiAutoCorrectedDatePipeConfigs): string {\n const {dateFormat, dateSeparator} = config;\n\n switch (value.length) {\n case DATE_FILLER_LENGTH:\n return parseWithLimit(value, config).toString(dateFormat, dateSeparator);\n case DATE_FILLER_LENGTH + RANGE_SEPARATOR_CHAR.length:\n return (\n parseWithLimit(value, config).toString(dateFormat, dateSeparator) +\n RANGE_SEPARATOR_CHAR\n );\n case DATE_RANGE_FILLER_LENGTH:\n return config.value &&\n config.value.toString(dateFormat, dateSeparator) === value\n ? value\n : TuiDayRange.sort(\n parseWithLimit(value.slice(0, DATE_FILLER_LENGTH), config),\n parseWithLimit(\n value.slice(DATE_FILLER_LENGTH + RANGE_SEPARATOR_CHAR.length),\n config,\n ),\n ).toString(dateFormat, dateSeparator);\n default:\n return value;\n }\n}\n\n/**\n * Normalizes date in formatted string\n *\n * Normalizes when:\n *\n * 1. It is a single date\n * 2. It is a single date and a separator\n * 3. It is two dates and a separator between them\n *\n * In **other** cases, the value does not change.\n *\n * @param config with min and max date\n * @return mask pipe handler that handles `min` and `max`\n */\nexport function tuiCreateAutoCorrectedDateRangePipe(\n config: TuiAutoCorrectedDatePipeConfigs,\n): TuiTextMaskPipeHandler {\n return value => ({value: processRawValue(value, config)});\n}\n","import {TuiTimeMode} from '@taiga-ui/cdk';\nimport {TuiTextMaskPipeHandler} from '@taiga-ui/core';\nimport {MAX_TIME_VALUES} from '@taiga-ui/kit/constants';\nimport {TuiTimeFormatParts} from '@taiga-ui/kit/types';\n\n/**\n * Adjusts the entered time by omitting only suitable values for hours and minutes\n * @returns time as a string\n */\nexport function tuiCreateAutoCorrectedTimePipe(\n timeMode: TuiTimeMode = 'HH:MM',\n maxValues: Partial<Record<TuiTimeFormatParts, number>> = {},\n): TuiTextMaskPipeHandler {\n const timeFormatArray = ['HH', 'MM', 'SS', 'MS'] as const;\n const safeValues = {\n ...MAX_TIME_VALUES,\n ...maxValues,\n };\n\n return conformedValue => {\n const indexesOfPipedChars: number[] = [];\n const conformedValueArr = conformedValue.split('');\n\n timeFormatArray.forEach(format => {\n const position = timeMode.indexOf(format);\n const maxFirstDigit = parseInt(String(safeValues[format]).substr(0, 1), 10);\n\n if (parseInt(conformedValueArr[position], 10) > maxFirstDigit) {\n conformedValueArr[position + 1] = conformedValueArr[position];\n conformedValueArr[position] = '0';\n indexesOfPipedChars.push(position);\n }\n });\n\n const isInvalid = timeFormatArray.some(\n format =>\n parseInt(conformedValue.substr(timeMode.indexOf(format), 2), 10) >\n safeValues[format],\n );\n\n return isInvalid\n ? false\n : {\n value: conformedValueArr.join(''),\n indexesOfPipedChars,\n };\n };\n}\n","import {DATE_FILLER_LENGTH, TuiTimeMode} from '@taiga-ui/cdk';\nimport {TuiTextMaskPipeHandler} from '@taiga-ui/core';\nimport {DATE_TIME_SEPARATOR} from '@taiga-ui/kit/constants';\n\nimport {\n normalizeDateValue,\n TuiAutoCorrectedDatePipeConfigs,\n} from './create-auto-corrected-date-pipe';\nimport {tuiCreateAutoCorrectedTimePipe} from './create-auto-corrected-time-pipe';\n\ninterface TuiAutoCorrectedDateTimePipeConfigs extends TuiAutoCorrectedDatePipeConfigs {\n timeMode: TuiTimeMode;\n}\n\nexport function tuiCreateAutoCorrectedDateTimePipe(\n configs: TuiAutoCorrectedDateTimePipeConfigs,\n): TuiTextMaskPipeHandler {\n const timePipe = tuiCreateAutoCorrectedTimePipe(configs.timeMode);\n\n return value => {\n if (value.length < DATE_FILLER_LENGTH) {\n return {value};\n }\n\n const [date, time] = value.split(DATE_TIME_SEPARATOR);\n\n const formattedDate = normalizeDateValue(date, configs);\n\n if (!time) {\n return {value: formattedDate};\n }\n\n const pipedTime = timePipe(time, {} as any);\n\n if (!pipedTime || typeof pipedTime === 'string') {\n return false;\n }\n\n return {\n value: `${formattedDate}${DATE_TIME_SEPARATOR}${pipedTime.value}`,\n indexesOfPipedChars: pipedTime.indexesOfPipedChars\n ? pipedTime.indexesOfPipedChars.map(i => i + date.length + 2)\n : undefined,\n };\n };\n}\n","import {tuiAssert, TuiDateMode} from '@taiga-ui/cdk';\nimport {TUI_DIGIT_REGEXP, TuiTextMaskList} from '@taiga-ui/core';\n\nconst TWO_DIGITS = Array(2).fill(TUI_DIGIT_REGEXP);\nconst FOUR_DIGITS = Array(4).fill(TUI_DIGIT_REGEXP);\n\nexport function tuiCreateDateMask(mode: TuiDateMode, separator: string): TuiTextMaskList {\n tuiAssert.assert(separator.length === 1, 'Separator should consist of only 1 symbol');\n\n switch (mode) {\n case 'YMD':\n return [...FOUR_DIGITS, separator, ...TWO_DIGITS, separator, ...TWO_DIGITS];\n case 'MDY':\n case 'DMY':\n default:\n return [...TWO_DIGITS, separator, ...TWO_DIGITS, separator, ...FOUR_DIGITS];\n }\n}\n","import {CHAR_EN_DASH, CHAR_NO_BREAK_SPACE, tuiAssert, TuiDateMode} from '@taiga-ui/cdk';\nimport {TuiTextMaskList} from '@taiga-ui/core';\n\nimport {tuiCreateDateMask} from './create-date-mask';\n\nexport function tuiCreateDateRangeMask(\n dateMode: TuiDateMode,\n dateSeparator: string,\n): TuiTextMaskList {\n tuiAssert.assert(\n dateSeparator.length === 1,\n 'Separator should consist of only 1 symbol',\n );\n\n const dateMask = tuiCreateDateMask(dateMode, dateSeparator);\n\n return [\n ...dateMask,\n CHAR_NO_BREAK_SPACE,\n CHAR_EN_DASH,\n CHAR_NO_BREAK_SPACE,\n ...dateMask,\n ];\n}\n","import {TuiTimeMode} from '@taiga-ui/cdk';\nimport {TUI_DIGIT_REGEXP, TuiTextMaskList} from '@taiga-ui/core';\nimport {MAX_TIME_VALUES} from '@taiga-ui/kit/constants';\nimport {TuiTimeFormatParts} from '@taiga-ui/kit/types';\n\nfunction tuiCreateTimePartMask(\n maxPartValue: number,\n prefix?: string,\n): (string | RegExp)[] {\n const {length} = String(maxPartValue);\n const regExp = Array(length).fill(TUI_DIGIT_REGEXP);\n\n if (prefix) {\n regExp.unshift(prefix);\n }\n\n return regExp;\n}\n\nexport function tuiCreateTimeMask(\n mode: TuiTimeMode,\n maxValues: Partial<Record<TuiTimeFormatParts, number>> = {},\n): TuiTextMaskList {\n const {HH, MM, SS, MS} = {\n ...MAX_TIME_VALUES,\n ...maxValues,\n };\n\n return [\n ...tuiCreateTimePartMask(HH),\n ...tuiCreateTimePartMask(MM, ':'),\n ...(mode.includes('HH:MM:SS') ? tuiCreateTimePartMask(SS, ':') : []),\n ...(mode === 'HH:MM:SS.MSS' ? tuiCreateTimePartMask(MS, '.') : []),\n ];\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-utils-mask.js","sources":["ng://@taiga-ui/kit/utils/mask/create-auto-corrected-date-pipe.ts","ng://@taiga-ui/kit/utils/mask/create-auto-corrected-date-range-pipe.ts","ng://@taiga-ui/kit/utils/mask/create-auto-corrected-time-pipe.ts","ng://@taiga-ui/kit/utils/mask/create-auto-corrected-date-time-pipe.ts","ng://@taiga-ui/kit/utils/mask/create-date-mask.ts","ng://@taiga-ui/kit/utils/mask/create-date-range-mask.ts","ng://@taiga-ui/kit/utils/mask/create-time-mask.ts","ng://@taiga-ui/kit/utils/mask/taiga-ui-kit-utils-mask.ts"],"sourcesContent":["import {DATE_FILLER_LENGTH, TuiDateMode, TuiDay} from '@taiga-ui/cdk';\nimport {TuiTextMaskPipeHandler, TuiWithOptionalMinMaxWithValue} from '@taiga-ui/core';\n\nexport interface TuiAutoCorrectedDatePipeConfigs\n extends TuiWithOptionalMinMaxWithValue<TuiDay | null, TuiDay> {\n dateFormat: TuiDateMode;\n dateSeparator: string;\n}\n\nexport function normalizeDateValue(\n dateValue: string,\n {value, min, max, dateFormat, dateSeparator}: TuiAutoCorrectedDatePipeConfigs,\n): string {\n return value && value.toString(dateFormat, dateSeparator) === dateValue\n ? dateValue\n : TuiDay.normalizeParse(dateValue, dateFormat)\n .dayLimit(min, max)\n .toString(dateFormat, dateSeparator);\n}\n\nexport function tuiCreateAutoCorrectedDatePipe(\n config: TuiAutoCorrectedDatePipeConfigs,\n): TuiTextMaskPipeHandler {\n return value => {\n if (value.length !== DATE_FILLER_LENGTH) {\n return {value};\n }\n\n return {\n value: normalizeDateValue(value, config),\n };\n };\n}\n","import {\n DATE_FILLER_LENGTH,\n DATE_RANGE_FILLER_LENGTH,\n RANGE_SEPARATOR_CHAR,\n TuiDateMode,\n TuiDay,\n TuiDayRange,\n} from '@taiga-ui/cdk';\nimport {TuiTextMaskPipeHandler, TuiWithOptionalMinMaxWithValue} from '@taiga-ui/core';\n\ninterface TuiAutoCorrectedDatePipeConfigs\n extends TuiWithOptionalMinMaxWithValue<TuiDayRange | null, TuiDay> {\n dateFormat: TuiDateMode;\n dateSeparator: string;\n}\n\nfunction parseWithLimit(value: string, config: TuiAutoCorrectedDatePipeConfigs): TuiDay {\n return TuiDay.normalizeParse(\n value.slice(0, DATE_FILLER_LENGTH),\n config.dateFormat,\n ).dayLimit(config.min, config.max);\n}\n\nfunction processRawValue(value: string, config: TuiAutoCorrectedDatePipeConfigs): string {\n const {dateFormat, dateSeparator} = config;\n\n switch (value.length) {\n case DATE_FILLER_LENGTH:\n return parseWithLimit(value, config).toString(dateFormat, dateSeparator);\n case DATE_FILLER_LENGTH + RANGE_SEPARATOR_CHAR.length:\n return (\n parseWithLimit(value, config).toString(dateFormat, dateSeparator) +\n RANGE_SEPARATOR_CHAR\n );\n case DATE_RANGE_FILLER_LENGTH:\n return config.value &&\n config.value.toString(dateFormat, dateSeparator) === value\n ? value\n : TuiDayRange.sort(\n parseWithLimit(value.slice(0, DATE_FILLER_LENGTH), config),\n parseWithLimit(\n value.slice(DATE_FILLER_LENGTH + RANGE_SEPARATOR_CHAR.length),\n config,\n ),\n ).toString(dateFormat, dateSeparator);\n default:\n return value;\n }\n}\n\n/**\n * Normalizes date in formatted string\n *\n * Normalizes when:\n *\n * 1. It is a single date\n * 2. It is a single date and a separator\n * 3. It is two dates and a separator between them\n *\n * In **other** cases, the value does not change.\n *\n * @param config with min and max date\n * @return mask pipe handler that handles `min` and `max`\n */\nexport function tuiCreateAutoCorrectedDateRangePipe(\n config: TuiAutoCorrectedDatePipeConfigs,\n): TuiTextMaskPipeHandler {\n return value => ({value: processRawValue(value, config)});\n}\n","import {TuiTimeMode} from '@taiga-ui/cdk';\nimport {TuiTextMaskPipeHandler} from '@taiga-ui/core';\nimport {MAX_TIME_VALUES} from '@taiga-ui/kit/constants';\nimport {TuiTimeFormatParts} from '@taiga-ui/kit/types';\n\n/**\n * Adjusts the entered time by omitting only suitable values for hours and minutes\n * @returns time as a string\n */\nexport function tuiCreateAutoCorrectedTimePipe(\n timeMode: TuiTimeMode = 'HH:MM',\n maxValues: Partial<Record<TuiTimeFormatParts, number>> = {},\n): TuiTextMaskPipeHandler {\n const timeFormatArray = ['HH', 'MM', 'SS', 'MS'] as const;\n const safeValues = {\n ...MAX_TIME_VALUES,\n ...maxValues,\n };\n\n return conformedValue => {\n const indexesOfPipedChars: number[] = [];\n const conformedValueArr = conformedValue.split('');\n\n timeFormatArray.forEach(format => {\n const position = timeMode.indexOf(format);\n const maxFirstDigit = parseInt(String(safeValues[format]).slice(0, 1), 10);\n\n if (parseInt(conformedValueArr[position], 10) > maxFirstDigit) {\n conformedValueArr[position + 1] = conformedValueArr[position];\n conformedValueArr[position] = '0';\n indexesOfPipedChars.push(position);\n }\n });\n\n const isInvalid = timeFormatArray.some(\n format =>\n parseInt(conformedValue.slice(timeMode.indexOf(format), 2), 10) >\n safeValues[format],\n );\n\n return isInvalid\n ? false\n : {\n value: conformedValueArr.join(''),\n indexesOfPipedChars,\n };\n };\n}\n","import {DATE_FILLER_LENGTH, TuiTimeMode} from '@taiga-ui/cdk';\nimport {TuiTextMaskPipeHandler} from '@taiga-ui/core';\nimport {DATE_TIME_SEPARATOR} from '@taiga-ui/kit/constants';\n\nimport {\n normalizeDateValue,\n TuiAutoCorrectedDatePipeConfigs,\n} from './create-auto-corrected-date-pipe';\nimport {tuiCreateAutoCorrectedTimePipe} from './create-auto-corrected-time-pipe';\n\ninterface TuiAutoCorrectedDateTimePipeConfigs extends TuiAutoCorrectedDatePipeConfigs {\n timeMode: TuiTimeMode;\n}\n\nexport function tuiCreateAutoCorrectedDateTimePipe(\n configs: TuiAutoCorrectedDateTimePipeConfigs,\n): TuiTextMaskPipeHandler {\n const timePipe = tuiCreateAutoCorrectedTimePipe(configs.timeMode);\n\n return value => {\n if (value.length < DATE_FILLER_LENGTH) {\n return {value};\n }\n\n const [date, time] = value.split(DATE_TIME_SEPARATOR);\n\n const formattedDate = normalizeDateValue(date, configs);\n\n if (!time) {\n return {value: formattedDate};\n }\n\n const pipedTime = timePipe(time, {} as any);\n\n if (!pipedTime || typeof pipedTime === 'string') {\n return false;\n }\n\n return {\n value: `${formattedDate}${DATE_TIME_SEPARATOR}${pipedTime.value}`,\n indexesOfPipedChars: pipedTime.indexesOfPipedChars\n ? pipedTime.indexesOfPipedChars.map(i => i + date.length + 2)\n : undefined,\n };\n };\n}\n","import {tuiAssert, TuiDateMode} from '@taiga-ui/cdk';\nimport {TUI_DIGIT_REGEXP, TuiTextMaskList} from '@taiga-ui/core';\n\nconst TWO_DIGITS = Array(2).fill(TUI_DIGIT_REGEXP);\nconst FOUR_DIGITS = Array(4).fill(TUI_DIGIT_REGEXP);\n\nexport function tuiCreateDateMask(mode: TuiDateMode, separator: string): TuiTextMaskList {\n tuiAssert.assert(separator.length === 1, 'Separator should consist of only 1 symbol');\n\n switch (mode) {\n case 'YMD':\n return [...FOUR_DIGITS, separator, ...TWO_DIGITS, separator, ...TWO_DIGITS];\n case 'MDY':\n case 'DMY':\n default:\n return [...TWO_DIGITS, separator, ...TWO_DIGITS, separator, ...FOUR_DIGITS];\n }\n}\n","import {CHAR_EN_DASH, CHAR_NO_BREAK_SPACE, tuiAssert, TuiDateMode} from '@taiga-ui/cdk';\nimport {TuiTextMaskList} from '@taiga-ui/core';\n\nimport {tuiCreateDateMask} from './create-date-mask';\n\nexport function tuiCreateDateRangeMask(\n dateMode: TuiDateMode,\n dateSeparator: string,\n): TuiTextMaskList {\n tuiAssert.assert(\n dateSeparator.length === 1,\n 'Separator should consist of only 1 symbol',\n );\n\n const dateMask = tuiCreateDateMask(dateMode, dateSeparator);\n\n return [\n ...dateMask,\n CHAR_NO_BREAK_SPACE,\n CHAR_EN_DASH,\n CHAR_NO_BREAK_SPACE,\n ...dateMask,\n ];\n}\n","import {TuiTimeMode} from '@taiga-ui/cdk';\nimport {TUI_DIGIT_REGEXP, TuiTextMaskList} from '@taiga-ui/core';\nimport {MAX_TIME_VALUES} from '@taiga-ui/kit/constants';\nimport {TuiTimeFormatParts} from '@taiga-ui/kit/types';\n\nfunction tuiCreateTimePartMask(\n maxPartValue: number,\n prefix?: string,\n): Array<string | RegExp> {\n const {length} = String(maxPartValue);\n const regExp = Array(length).fill(TUI_DIGIT_REGEXP);\n\n if (prefix) {\n regExp.unshift(prefix);\n }\n\n return regExp;\n}\n\nexport function tuiCreateTimeMask(\n mode: TuiTimeMode,\n maxValues: Partial<Record<TuiTimeFormatParts, number>> = {},\n): TuiTextMaskList {\n const {HH, MM, SS, MS} = {\n ...MAX_TIME_VALUES,\n ...maxValues,\n };\n\n return [\n ...tuiCreateTimePartMask(HH),\n ...tuiCreateTimePartMask(MM, ':'),\n ...(mode.includes('HH:MM:SS') ? tuiCreateTimePartMask(SS, ':') : []),\n ...(mode === 'HH:MM:SS.MSS' ? tuiCreateTimePartMask(MS, '.') : []),\n ];\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,3 +1,6 @@
1
+ import { round } from '@taiga-ui/cdk';
2
+ import { TUI_FLOATING_PRECISION } from '@taiga-ui/kit/constants';
3
+
1
4
  /**
2
5
  * @internal
3
6
  */
@@ -10,9 +13,30 @@ function horizontalDirectionToNumber(direction) {
10
13
  }
11
14
  }
12
15
 
16
+ function tuiFindKeyStepsBoundariesByFn(keySteps, fn) {
17
+ const keyStepUpperIndex = keySteps.findIndex((keyStep, i) => i && fn(keyStep));
18
+ const lowerStep = keySteps[keyStepUpperIndex - 1];
19
+ const upperStep = keySteps[keyStepUpperIndex];
20
+ return [lowerStep, upperStep];
21
+ }
22
+ function tuiPercentageToKeyStepValue(valuePercentage, keySteps) {
23
+ const [[lowerStepPercent, lowerStepValue], [upperStepPercent, upperStepValue]] = tuiFindKeyStepsBoundariesByFn(keySteps, ([keyStepPercentage, _]) => valuePercentage <= keyStepPercentage);
24
+ const ratio = (valuePercentage - lowerStepPercent) / (upperStepPercent - lowerStepPercent);
25
+ const controlValue = (upperStepValue - lowerStepValue) * ratio + lowerStepValue;
26
+ return round(controlValue, TUI_FLOATING_PRECISION);
27
+ }
28
+ function tuiKeyStepValueToPercentage(value, keySteps) {
29
+ const [[lowerStepPercent, lowerStepValue], [upperStepPercent, upperStepValue]] = tuiFindKeyStepsBoundariesByFn(keySteps, ([_, keyStepValue]) => value <= keyStepValue);
30
+ const ratio = (value - lowerStepValue) / (upperStepValue - lowerStepValue) || 0;
31
+ return (upperStepPercent - lowerStepPercent) * ratio + lowerStepPercent;
32
+ }
33
+ function tuiCheckKeyStepsHaveMinMaxPercents(steps) {
34
+ return !steps.length || (steps[0][0] === 0 && steps[steps.length - 1][0] === 100);
35
+ }
36
+
13
37
  /**
14
38
  * Generated bundle index. Do not edit.
15
39
  */
16
40
 
17
- export { horizontalDirectionToNumber };
41
+ export { horizontalDirectionToNumber, tuiCheckKeyStepsHaveMinMaxPercents, tuiKeyStepValueToPercentage, tuiPercentageToKeyStepValue };
18
42
  //# sourceMappingURL=taiga-ui-kit-utils-math.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-kit-utils-math.js","sources":["ng://@taiga-ui/kit/utils/math/horizontal-direction-to-number.ts","ng://@taiga-ui/kit/utils/math/taiga-ui-kit-utils-math.ts"],"sourcesContent":["import {TuiHorizontalDirection} from '@taiga-ui/core';\n\n/**\n * @internal\n */\nexport function horizontalDirectionToNumber(direction: TuiHorizontalDirection): -1 | 1 {\n switch (direction) {\n case 'left':\n return -1;\n case 'right':\n return 1;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"AAEA;;;SAGgB,2BAA2B,CAAC,SAAiC;IACzE,QAAQ,SAAS;QACb,KAAK,MAAM;YACP,OAAO,CAAC,CAAC,CAAC;QACd,KAAK,OAAO;YACR,OAAO,CAAC,CAAC;KAChB;AACL;;ACZA;;;;;;"}
1
+ {"version":3,"file":"taiga-ui-kit-utils-math.js","sources":["ng://@taiga-ui/kit/utils/math/horizontal-direction-to-number.ts","ng://@taiga-ui/kit/utils/math/key-steps.ts","ng://@taiga-ui/kit/utils/math/taiga-ui-kit-utils-math.ts"],"sourcesContent":["import {TuiHorizontalDirection} from '@taiga-ui/core';\n\n/**\n * @internal\n */\nexport function horizontalDirectionToNumber(direction: TuiHorizontalDirection): -1 | 1 {\n switch (direction) {\n case 'left':\n return -1;\n case 'right':\n return 1;\n }\n}\n","import {round} from '@taiga-ui/cdk';\nimport {TUI_FLOATING_PRECISION} from '@taiga-ui/kit/constants';\nimport {TuiKeySteps} from '@taiga-ui/kit/types';\n\nfunction tuiFindKeyStepsBoundariesByFn(\n keySteps: TuiKeySteps,\n fn: ([keyStepPercent, keyStepValue]: [number, number]) => boolean,\n): [[number, number], [number, number]] {\n const keyStepUpperIndex = keySteps.findIndex((keyStep, i) => i && fn(keyStep));\n const lowerStep = keySteps[keyStepUpperIndex - 1];\n const upperStep = keySteps[keyStepUpperIndex];\n\n return [lowerStep, upperStep];\n}\n\nexport function tuiPercentageToKeyStepValue(\n valuePercentage: number,\n keySteps: TuiKeySteps,\n): number {\n const [[lowerStepPercent, lowerStepValue], [upperStepPercent, upperStepValue]] =\n tuiFindKeyStepsBoundariesByFn(\n keySteps,\n ([keyStepPercentage, _]) => valuePercentage <= keyStepPercentage,\n );\n const ratio =\n (valuePercentage - lowerStepPercent) / (upperStepPercent - lowerStepPercent);\n const controlValue = (upperStepValue - lowerStepValue) * ratio + lowerStepValue;\n\n return round(controlValue, TUI_FLOATING_PRECISION);\n}\n\nexport function tuiKeyStepValueToPercentage(\n value: number,\n keySteps: TuiKeySteps,\n): number {\n const [[lowerStepPercent, lowerStepValue], [upperStepPercent, upperStepValue]] =\n tuiFindKeyStepsBoundariesByFn(\n keySteps,\n ([_, keyStepValue]) => value <= keyStepValue,\n );\n const ratio = (value - lowerStepValue) / (upperStepValue - lowerStepValue) || 0;\n\n return (upperStepPercent - lowerStepPercent) * ratio + lowerStepPercent;\n}\n\nexport function tuiCheckKeyStepsHaveMinMaxPercents(steps: TuiKeySteps): boolean {\n return !steps.length || (steps[0][0] === 0 && steps[steps.length - 1][0] === 100);\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;AAEA;;;SAGgB,2BAA2B,CAAC,SAAiC;IACzE,QAAQ,SAAS;QACb,KAAK,MAAM;YACP,OAAO,CAAC,CAAC,CAAC;QACd,KAAK,OAAO;YACR,OAAO,CAAC,CAAC;KAChB;AACL;;ACRA,SAAS,6BAA6B,CAClC,QAAqB,EACrB,EAAiE;IAEjE,MAAM,iBAAiB,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAC/E,MAAM,SAAS,GAAG,QAAQ,CAAC,iBAAiB,GAAG,CAAC,CAAC,CAAC;IAClD,MAAM,SAAS,GAAG,QAAQ,CAAC,iBAAiB,CAAC,CAAC;IAE9C,OAAO,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;AAClC,CAAC;SAEe,2BAA2B,CACvC,eAAuB,EACvB,QAAqB;IAErB,MAAM,CAAC,CAAC,gBAAgB,EAAE,cAAc,CAAC,EAAE,CAAC,gBAAgB,EAAE,cAAc,CAAC,CAAC,GAC1E,6BAA6B,CACzB,QAAQ,EACR,CAAC,CAAC,iBAAiB,EAAE,CAAC,CAAC,KAAK,eAAe,IAAI,iBAAiB,CACnE,CAAC;IACN,MAAM,KAAK,GACP,CAAC,eAAe,GAAG,gBAAgB,KAAK,gBAAgB,GAAG,gBAAgB,CAAC,CAAC;IACjF,MAAM,YAAY,GAAG,CAAC,cAAc,GAAG,cAAc,IAAI,KAAK,GAAG,cAAc,CAAC;IAEhF,OAAO,KAAK,CAAC,YAAY,EAAE,sBAAsB,CAAC,CAAC;AACvD,CAAC;SAEe,2BAA2B,CACvC,KAAa,EACb,QAAqB;IAErB,MAAM,CAAC,CAAC,gBAAgB,EAAE,cAAc,CAAC,EAAE,CAAC,gBAAgB,EAAE,cAAc,CAAC,CAAC,GAC1E,6BAA6B,CACzB,QAAQ,EACR,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,KAAK,KAAK,IAAI,YAAY,CAC/C,CAAC;IACN,MAAM,KAAK,GAAG,CAAC,KAAK,GAAG,cAAc,KAAK,cAAc,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;IAEhF,OAAO,CAAC,gBAAgB,GAAG,gBAAgB,IAAI,KAAK,GAAG,gBAAgB,CAAC;AAC5E,CAAC;SAEe,kCAAkC,CAAC,KAAkB;IACjE,OAAO,CAAC,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC;AACtF;;AC/CA;;;;;;"}
@@ -2,6 +2,7 @@ export * from '@taiga-ui/kit/utils/dom';
2
2
  export * from '@taiga-ui/kit/utils/files';
3
3
  export * from '@taiga-ui/kit/utils/format';
4
4
  export * from '@taiga-ui/kit/utils/mask';
5
+ export * from '@taiga-ui/kit/utils/math';
5
6
  export * from '@taiga-ui/kit/utils/miscellaneous';
6
7
 
7
8
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-kit-utils.js","sources":["ng://@taiga-ui/kit/utils/taiga-ui-kit-utils.ts"],"sourcesContent":["/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;AAAA;;"}
1
+ {"version":3,"file":"taiga-ui-kit-utils.js","sources":["ng://@taiga-ui/kit/utils/taiga-ui-kit-utils.ts"],"sourcesContent":["/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;AAAA;;"}
@@ -1,6 +1,6 @@
1
1
  import { __extends, __spread, __decorate, __param } from 'tslib';
2
2
  import { Input, HostBinding, Directive, ChangeDetectorRef, Inject, ViewChild, ElementRef } from '@angular/core';
3
- import { tuiDefaultProp, tuiPure, AbstractTuiControl, typedFromEvent, clamp, round, quantize, setNativeFocused, nonNegativeFiniteAssertion } from '@taiga-ui/cdk';
3
+ import { tuiDefaultProp, tuiPure, AbstractTuiControl, typedFromEvent, tuiAssertIsHTMLElement, clamp, round, quantize, setNativeFocused, nonNegativeFiniteAssertion } from '@taiga-ui/cdk';
4
4
  import { tuiPluralizeToICU } from '@taiga-ui/core';
5
5
  import { NgControl } from '@angular/forms';
6
6
  import { TUI_FLOATING_PRECISION } from '@taiga-ui/kit/constants';
@@ -299,6 +299,7 @@ var AbstractTuiSlider = /** @class */ (function (_super) {
299
299
  var isPointerDownRight;
300
300
  this.pointerDown$
301
301
  .pipe(map(function (event) {
302
+ tuiAssertIsHTMLElement(event.currentTarget);
302
303
  var rect = event.currentTarget.getBoundingClientRect();
303
304
  var clientX = event instanceof MouseEvent
304
305
  ? event.clientX
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-kit-abstract.js","sources":["ng://@taiga-ui/kit/abstract/input-slider.ts","ng://@taiga-ui/kit/abstract/slider/slider.ts","ng://@taiga-ui/kit/abstract/taiga-ui-kit-abstract.ts"],"sourcesContent":["import {Directive, HostBinding, Input} from '@angular/core';\nimport {AbstractTuiControl, tuiDefaultProp, tuiPure} from '@taiga-ui/cdk';\nimport {\n TuiPluralize,\n tuiPluralizeToICU,\n TuiSizeL,\n TuiWithOptionalMinMax,\n} from '@taiga-ui/core';\nimport {TuiKeySteps} from '@taiga-ui/kit/types';\n\nexport function quantumAssertion(quantum: number): boolean {\n return quantum > 0;\n}\n\n/**\n * @internal\n * @deprecated TODO delete me after `InputSlider` and `InputRange` stop using it\n */\n@Directive()\nexport abstract class AbstractTuiInputSlider<T>\n extends AbstractTuiControl<T>\n implements TuiWithOptionalMinMax<number>\n{\n @Input()\n @tuiDefaultProp()\n min = 0;\n\n @Input()\n @tuiDefaultProp()\n max = Infinity;\n\n /**\n * @deprecated This input-property will be deleted in next major update.\n * Use `valueContent` for `InputSlider`.\n * Use `leftValueContent` for `InputRange`.\n * ___\n * TODO remove in v3.0.\n * Dont forget to delete backward-compatibility helpers inside `InputSlider` and `InputRange`:\n *** {@link legacyMinMaxLabel}\n */\n @Input()\n @tuiDefaultProp()\n minLabel = '';\n\n /**\n * @deprecated This input-property will be deleted in next major update.\n * Use `valueContent` for `InputSlider`.\n * Use `rightValueContent` for `InputRange`.\n * ___\n * TODO remove in v3.0.\n * Dont forget to delete backward-compatibility helpers inside `InputSlider` and `InputRange`:\n *** {@link legacyMinMaxLabel}\n */\n @Input()\n @tuiDefaultProp()\n maxLabel = '';\n\n // TODO: remove setter in v3.0:\n @Input()\n @tuiDefaultProp()\n set pluralize(pluralize: TuiPluralize | Record<string, string> | null) {\n this.pluralizeMap = Array.isArray(pluralize)\n ? tuiPluralizeToICU(pluralize)\n : pluralize;\n }\n\n /**\n * @deprecated This input-property will be deleted in next major update.\n * You can create ticks labels below this input by yourself. It is easy!\n * Mixin `tui-slider-ticks-labels` will help with it. See examples in demo page `InputSlider`.\n * ___\n * TODO remove in v3.0.\n * Dont forget to delete:\n *** {@link segmentsPluralizeMap}\n *** {@link getTickPrefix}\n *** TuiFormatNumberPipeModule\n *** TuiRepeatTimesModule\n */\n @Input()\n @tuiDefaultProp()\n set segmentsPluralize(pluralize: TuiPluralize | Record<string, string> | null) {\n this.segmentsPluralizeMap = Array.isArray(pluralize)\n ? tuiPluralizeToICU(pluralize)\n : pluralize;\n }\n\n @Input()\n @tuiDefaultProp()\n segments = 0;\n\n @Input()\n @tuiDefaultProp()\n steps = 0;\n\n @Input()\n @tuiDefaultProp(quantumAssertion, 'Quantum must be positive')\n quantum = 1;\n\n @Input()\n @tuiDefaultProp()\n keySteps: TuiKeySteps | null = null;\n\n /**\n * @deprecated use `tuiTextfieldSize` instead\n * TODO delete in v3.0\n */\n @Input()\n @HostBinding('attr.data-size')\n @tuiDefaultProp()\n size: TuiSizeL = 'l';\n\n /**\n * @deprecated replace by input-property {@link pluralize} in v3.0\n */\n pluralizeMap: Record<string, string> | null = null;\n /** @deprecated TODO remove in v3.0 */\n segmentsPluralizeMap: Record<string, string> | null = null;\n /** @deprecated TODO remove in v3.0 */\n readonly pluralizeMapFallback = {\n one: '',\n few: '',\n many: '',\n other: '',\n };\n\n /** @deprecated TODO remove in v3.0 */\n @tuiPure\n getTickPrefix(segment: number, segments: number, texts: [string, string]): string {\n if (segments !== 1) {\n return '';\n }\n\n return segment === 0 ? `${texts[0]}` : `${texts[1]}`;\n }\n\n @HostBinding('class._segmented')\n get segmented(): boolean {\n return this.segments > 0;\n }\n\n get length(): number {\n return this.max - this.min;\n }\n\n get computedSteps(): number {\n return this.steps || this.length / this.quantum;\n }\n\n get step(): number {\n return this.length / this.computedSteps;\n }\n\n get computedKeySteps(): TuiKeySteps {\n return this.computePureKeySteps(this.keySteps, this.min, this.max);\n }\n\n onHovered(hovered: boolean) {\n this.updateHovered(hovered);\n }\n\n @tuiPure\n private computePureKeySteps(\n keySteps: TuiKeySteps | null,\n min: number,\n max: number,\n ): TuiKeySteps {\n return [[0, min], ...(keySteps || []), [100, max]];\n }\n}\n","import {\n ChangeDetectorRef,\n Directive,\n ElementRef,\n HostBinding,\n Inject,\n Input,\n ViewChild,\n} from '@angular/core';\nimport {NgControl} from '@angular/forms';\nimport {\n AbstractTuiControl,\n clamp,\n nonNegativeFiniteAssertion,\n quantize,\n round,\n setNativeFocused,\n tuiDefaultProp,\n TuiEventWith,\n TuiNativeFocusableElement,\n typedFromEvent,\n} from '@taiga-ui/cdk';\nimport {\n TuiPluralize,\n tuiPluralizeToICU,\n TuiSizeS,\n TuiWithOptionalMinMax,\n} from '@taiga-ui/core';\nimport {TUI_FLOATING_PRECISION} from '@taiga-ui/kit/constants';\nimport {TUI_FROM_TO_TEXTS} from '@taiga-ui/kit/tokens';\nimport {TuiKeySteps} from '@taiga-ui/kit/types';\nimport {Observable, race, Subject} from 'rxjs';\nimport {map, switchMap, takeUntil} from 'rxjs/operators';\n\nexport const SLIDER_KEYBOARD_STEP = 0.05;\nexport const DOT_WIDTH: {[key: string]: number} = {\n s: 8,\n m: 16,\n};\n\n/**\n * @awful TODO: refactor\n * @internal\n * @dynamic\n */\n@Directive()\nexport abstract class AbstractTuiSlider<T>\n extends AbstractTuiControl<T>\n implements TuiWithOptionalMinMax<number>\n{\n // @bad TODO: handle pointer events instead of mouse and touch events\n private readonly pointerDown$ = new Subject<\n TuiEventWith<MouseEvent | TouchEvent, HTMLElement>\n >();\n\n @ViewChild('dotLeft', {read: ElementRef})\n protected dotLeft?: ElementRef<TuiNativeFocusableElement>;\n\n @ViewChild('dotRight', {read: ElementRef})\n protected dotRight?: ElementRef<TuiNativeFocusableElement>;\n\n @Input()\n @tuiDefaultProp()\n min = 0;\n\n @Input()\n @tuiDefaultProp()\n max = Infinity;\n\n @Input()\n @tuiDefaultProp()\n segments = 0;\n\n @Input()\n @tuiDefaultProp()\n steps = 0;\n\n @Input()\n @tuiDefaultProp(nonNegativeFiniteAssertion, 'Quantum must be a non-negative number')\n quantum = 0;\n\n // TODO: remove setter in v3.0:\n @Input()\n @tuiDefaultProp()\n set pluralize(pluralize: TuiPluralize | Record<string, string> | null) {\n this.pluralizeMap = Array.isArray(pluralize)\n ? tuiPluralizeToICU(pluralize)\n : pluralize;\n }\n\n @Input()\n @HostBinding('attr.data-size')\n @tuiDefaultProp()\n size: TuiSizeS = 'm';\n\n @Input()\n @tuiDefaultProp()\n keySteps: TuiKeySteps | null = null;\n\n focusVisibleLeft = false;\n\n focusVisibleRight = false;\n\n pluralizeMap: Record<string, string> | null = null;\n\n protected constructor(\n ngControl: NgControl | null,\n changeDetectorRef: ChangeDetectorRef,\n private readonly documentRef: Document,\n @Inject(TUI_FROM_TO_TEXTS)\n readonly fromToTexts$: Observable<[string, string]>,\n ) {\n super(ngControl, changeDetectorRef);\n }\n\n @HostBinding('class._segmented')\n get segmented(): boolean {\n return this.segments > 0;\n }\n\n get discrete(): boolean {\n return this.steps > 0;\n }\n\n get length(): number {\n return this.max - this.min;\n }\n\n get computedStep(): number {\n if (this.steps) {\n return 1 / this.steps;\n }\n\n return this.quantum ? this.quantum / this.length : SLIDER_KEYBOARD_STEP;\n }\n\n get isLeftFocusable(): boolean {\n return !this.disabled && this.focusable && this.right !== 100;\n }\n\n get isRightFocusable(): boolean {\n return !this.disabled && this.focusable && this.left !== 100;\n }\n\n abstract get left(): number;\n abstract get right(): number;\n abstract processValue(value: number, right?: boolean): void;\n\n ngOnInit() {\n super.ngOnInit();\n\n const mouseMoves$ = typedFromEvent(this.documentRef, 'mousemove');\n const mouseUps$ = typedFromEvent(this.documentRef, 'mouseup');\n const touchMoves$ = typedFromEvent(this.documentRef, 'touchmove');\n const touchEnds$ = typedFromEvent(this.documentRef, 'touchend');\n let isPointerDownRight: boolean;\n\n this.pointerDown$\n .pipe(\n map((event: MouseEvent | TouchEvent) => {\n const rect = (\n event.currentTarget as HTMLElement\n ).getBoundingClientRect();\n const clientX =\n event instanceof MouseEvent\n ? event.clientX\n : event.touches[0].clientX;\n const fraction = clamp(\n this.getFractionFromEvents(rect, clientX),\n 0,\n 1,\n );\n const deltaLeft = fraction * 100 - this.left;\n const deltaRight = fraction * 100 - 100 + this.right;\n\n isPointerDownRight =\n Math.abs(deltaLeft) > Math.abs(deltaRight) ||\n deltaRight > 0 ||\n (this.left === 0 && this.right === 100);\n\n const calibratedFraction = clamp(\n this.getCalibratedFractionFromEvents(\n rect,\n clientX,\n isPointerDownRight,\n ),\n 0,\n 1,\n );\n const value = this.getValueFromFraction(\n this.fractionGuard(calibratedFraction),\n );\n\n this.processValue(value, isPointerDownRight);\n this.processFocus(isPointerDownRight);\n\n return rect;\n }),\n switchMap(rect =>\n race([touchMoves$, mouseMoves$]).pipe(\n map((event: any) =>\n this.getCalibratedFractionFromEvents(\n rect,\n event instanceof MouseEvent\n ? event.clientX\n : event.touches[0].clientX,\n isPointerDownRight,\n ),\n ),\n takeUntil(race([mouseUps$, touchEnds$])),\n ),\n ),\n map(fraction => this.fractionGuard(fraction)),\n )\n .subscribe(fraction => {\n this.processValue(\n this.getValueFromFraction(fraction),\n isPointerDownRight,\n );\n });\n }\n\n ngOnDestroy() {\n super.ngOnDestroy();\n this.pointerDown$.complete();\n }\n\n onMouseDown(event: TuiEventWith<MouseEvent, HTMLElement>) {\n if (this.disabled) {\n return;\n }\n\n event.preventDefault();\n this.pointerDown$.next(event);\n }\n\n onTouchStart(event: TuiEventWith<TouchEvent, HTMLElement>) {\n if (this.disabled) {\n return;\n }\n\n event.preventDefault();\n this.pointerDown$.next(event);\n }\n\n getSegmentLabel(segment: number): number {\n return round(this.getValueFromFraction(segment / this.segments), 2);\n }\n\n getSegmentPrefix(segment: number, texts: [string, string]): string {\n if (this.segments !== 1) {\n return '';\n }\n\n if (segment === 0) {\n return `${texts[0]} `;\n }\n\n return `${texts[1]} `;\n }\n\n onActiveZone(active: boolean) {\n this.updateFocused(active);\n }\n\n onLeftFocusVisible(focusVisible: boolean) {\n this.focusVisibleLeft = focusVisible;\n }\n\n onRightFocusVisible(focusVisible: boolean) {\n this.focusVisibleRight = focusVisible;\n }\n\n getValueFromFraction(fraction: number): number {\n return this.keySteps !== null\n ? this.fractionValueKeyStepConverter(fraction, true)\n : round(\n this.fractionGuard(fraction) * this.length + this.min,\n TUI_FLOATING_PRECISION,\n );\n }\n\n fractionGuard(fraction: number): number {\n return this.discrete\n ? clamp(quantize(fraction, 1 / this.steps), 0, 1)\n : clamp(fraction, 0, 1);\n }\n\n protected getFractionFromValue(value: number): number {\n const fraction = (value - this.min) / this.length;\n\n return this.keySteps !== null\n ? this.fractionValueKeyStepConverter(value, false)\n : clamp(Number.isFinite(fraction) ? fraction : 1, 0, 1);\n }\n\n protected getCalibratedFractionFromEvents(\n rect: ClientRect,\n clientX: number,\n _: boolean,\n ): number {\n return this.getFractionFromEvents(rect, clientX);\n }\n\n protected valueGuard(value: number): number {\n return this.quantum\n ? clamp(\n round(\n Math.round(value / this.quantum) * this.quantum,\n TUI_FLOATING_PRECISION,\n ),\n this.min,\n this.max,\n )\n : clamp(value, this.min, this.max);\n }\n\n private processFocus(right: boolean) {\n if (!this.focusable || !this.dotRight || !this.dotLeft) {\n return;\n }\n\n if (right) {\n setNativeFocused(this.dotRight.nativeElement);\n } else {\n setNativeFocused(this.dotLeft.nativeElement);\n }\n }\n\n /**\n * Function for converting the fullness of the slider to a value and vice versa\n * taking into account the steps of linear dependence.\n *\n * @param value passed value\n * @param isFraction translation is carried out from fullness to value\n */\n private fractionValueKeyStepConverter(value: number, isFraction: boolean): number {\n const steps = [[0, this.min]].concat(this.keySteps as TuiKeySteps, [\n [100, this.max],\n ]);\n\n let prevFraction = 0;\n let nextFraction = 100;\n let prevValue = this.min;\n let nextValue = this.max;\n\n for (let i = 1; i < steps.length; i++) {\n if (\n (isFraction && steps[i][0] / 100 > value) ||\n (!isFraction && steps[i][1] > value)\n ) {\n prevFraction = steps[i - 1][0] || 0;\n nextFraction = steps[i][0];\n prevValue = steps[i - 1][1];\n nextValue = steps[i][1];\n break;\n }\n }\n\n const deltaFraction = nextFraction - prevFraction;\n const deltaValue = nextValue - prevValue;\n\n return isFraction\n ? round(\n ((value * 100 - prevFraction) / deltaFraction) * deltaValue + prevValue,\n TUI_FLOATING_PRECISION,\n )\n : clamp(\n ((value - prevValue) / deltaValue) * deltaFraction + prevFraction,\n 0,\n 100,\n ) / 100;\n }\n\n private getFractionFromEvents(rect: ClientRect, clientX: number): number {\n const value = clientX - rect.left - DOT_WIDTH[this.size] / 2;\n const total = rect.width - DOT_WIDTH[this.size];\n\n return round(value / total, TUI_FLOATING_PRECISION);\n }\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-abstract.js","sources":["ng://@taiga-ui/kit/abstract/input-slider.ts","ng://@taiga-ui/kit/abstract/slider/slider.ts","ng://@taiga-ui/kit/abstract/taiga-ui-kit-abstract.ts"],"sourcesContent":["import {Directive, HostBinding, Input} from '@angular/core';\nimport {AbstractTuiControl, tuiDefaultProp, tuiPure} from '@taiga-ui/cdk';\nimport {\n TuiPluralize,\n tuiPluralizeToICU,\n TuiSizeL,\n TuiWithOptionalMinMax,\n} from '@taiga-ui/core';\nimport {TuiKeySteps} from '@taiga-ui/kit/types';\n\nexport function quantumAssertion(quantum: number): boolean {\n return quantum > 0;\n}\n\n/**\n * @internal\n * @deprecated TODO delete me after `InputSlider` and `InputRange` stop using it\n */\n@Directive()\nexport abstract class AbstractTuiInputSlider<T>\n extends AbstractTuiControl<T>\n implements TuiWithOptionalMinMax<number>\n{\n @Input()\n @tuiDefaultProp()\n min = 0;\n\n @Input()\n @tuiDefaultProp()\n max = Infinity;\n\n /**\n * @deprecated This input-property will be deleted in next major update.\n * Use `valueContent` for `InputSlider`.\n * Use `leftValueContent` for `InputRange`.\n * ___\n * TODO remove in v3.0.\n * Dont forget to delete backward-compatibility helpers inside `InputSlider` and `InputRange`:\n *** {@link legacyMinMaxLabel}\n */\n @Input()\n @tuiDefaultProp()\n minLabel = '';\n\n /**\n * @deprecated This input-property will be deleted in next major update.\n * Use `valueContent` for `InputSlider`.\n * Use `rightValueContent` for `InputRange`.\n * ___\n * TODO remove in v3.0.\n * Dont forget to delete backward-compatibility helpers inside `InputSlider` and `InputRange`:\n *** {@link legacyMinMaxLabel}\n */\n @Input()\n @tuiDefaultProp()\n maxLabel = '';\n\n // TODO: remove setter in v3.0:\n @Input()\n @tuiDefaultProp()\n set pluralize(pluralize: TuiPluralize | Record<string, string> | null) {\n this.pluralizeMap = Array.isArray(pluralize)\n ? tuiPluralizeToICU(pluralize)\n : pluralize;\n }\n\n /**\n * @deprecated This input-property will be deleted in next major update.\n * You can create ticks labels below this input by yourself. It is easy!\n * Mixin `tui-slider-ticks-labels` will help with it. See examples in demo page `InputSlider`.\n * ___\n * TODO remove in v3.0.\n * Dont forget to delete:\n *** {@link segmentsPluralizeMap}\n *** {@link getTickPrefix}\n *** TuiFormatNumberPipeModule\n *** TuiRepeatTimesModule\n */\n @Input()\n @tuiDefaultProp()\n set segmentsPluralize(pluralize: TuiPluralize | Record<string, string> | null) {\n this.segmentsPluralizeMap = Array.isArray(pluralize)\n ? tuiPluralizeToICU(pluralize)\n : pluralize;\n }\n\n @Input()\n @tuiDefaultProp()\n segments = 0;\n\n @Input()\n @tuiDefaultProp()\n steps = 0;\n\n @Input()\n @tuiDefaultProp(quantumAssertion, 'Quantum must be positive')\n quantum = 1;\n\n @Input()\n @tuiDefaultProp()\n keySteps: TuiKeySteps | null = null;\n\n /**\n * @deprecated use `tuiTextfieldSize` instead\n * TODO delete in v3.0\n */\n @Input()\n @HostBinding('attr.data-size')\n @tuiDefaultProp()\n size: TuiSizeL = 'l';\n\n /**\n * @deprecated replace by input-property {@link pluralize} in v3.0\n */\n pluralizeMap: Record<string, string> | null = null;\n /** @deprecated TODO remove in v3.0 */\n segmentsPluralizeMap: Record<string, string> | null = null;\n /** @deprecated TODO remove in v3.0 */\n readonly pluralizeMapFallback = {\n one: '',\n few: '',\n many: '',\n other: '',\n };\n\n /** @deprecated TODO remove in v3.0 */\n @tuiPure\n getTickPrefix(segment: number, segments: number, texts: [string, string]): string {\n if (segments !== 1) {\n return '';\n }\n\n return segment === 0 ? `${texts[0]}` : `${texts[1]}`;\n }\n\n @HostBinding('class._segmented')\n get segmented(): boolean {\n return this.segments > 0;\n }\n\n get length(): number {\n return this.max - this.min;\n }\n\n get computedSteps(): number {\n return this.steps || this.length / this.quantum;\n }\n\n get step(): number {\n return this.length / this.computedSteps;\n }\n\n get computedKeySteps(): TuiKeySteps {\n return this.computePureKeySteps(this.keySteps, this.min, this.max);\n }\n\n onHovered(hovered: boolean): void {\n this.updateHovered(hovered);\n }\n\n @tuiPure\n private computePureKeySteps(\n keySteps: TuiKeySteps | null,\n min: number,\n max: number,\n ): TuiKeySteps {\n return [[0, min], ...(keySteps || []), [100, max]];\n }\n}\n","import {\n ChangeDetectorRef,\n Directive,\n ElementRef,\n HostBinding,\n Inject,\n Input,\n ViewChild,\n} from '@angular/core';\nimport {NgControl} from '@angular/forms';\nimport {\n AbstractTuiControl,\n clamp,\n nonNegativeFiniteAssertion,\n quantize,\n round,\n setNativeFocused,\n tuiAssertIsHTMLElement,\n tuiDefaultProp,\n TuiEventWith,\n TuiNativeFocusableElement,\n typedFromEvent,\n} from '@taiga-ui/cdk';\nimport {\n TuiPluralize,\n tuiPluralizeToICU,\n TuiSizeS,\n TuiWithOptionalMinMax,\n} from '@taiga-ui/core';\nimport {TUI_FLOATING_PRECISION} from '@taiga-ui/kit/constants';\nimport {TUI_FROM_TO_TEXTS} from '@taiga-ui/kit/tokens';\nimport {TuiKeySteps} from '@taiga-ui/kit/types';\nimport {Observable, race, Subject} from 'rxjs';\nimport {map, switchMap, takeUntil} from 'rxjs/operators';\n\nexport const SLIDER_KEYBOARD_STEP = 0.05;\nexport const DOT_WIDTH: {[key: string]: number} = {\n s: 8,\n m: 16,\n};\n\n/**\n * @awful TODO: refactor\n * @internal\n * @dynamic\n */\n@Directive()\nexport abstract class AbstractTuiSlider<T>\n extends AbstractTuiControl<T>\n implements TuiWithOptionalMinMax<number>\n{\n // @bad TODO: handle pointer events instead of mouse and touch events\n private readonly pointerDown$ = new Subject<\n TuiEventWith<MouseEvent | TouchEvent, HTMLElement>\n >();\n\n @ViewChild('dotLeft', {read: ElementRef})\n protected dotLeft?: ElementRef<TuiNativeFocusableElement>;\n\n @ViewChild('dotRight', {read: ElementRef})\n protected dotRight?: ElementRef<TuiNativeFocusableElement>;\n\n @Input()\n @tuiDefaultProp()\n min = 0;\n\n @Input()\n @tuiDefaultProp()\n max = Infinity;\n\n @Input()\n @tuiDefaultProp()\n segments = 0;\n\n @Input()\n @tuiDefaultProp()\n steps = 0;\n\n @Input()\n @tuiDefaultProp(nonNegativeFiniteAssertion, 'Quantum must be a non-negative number')\n quantum = 0;\n\n // TODO: remove setter in v3.0:\n @Input()\n @tuiDefaultProp()\n set pluralize(pluralize: TuiPluralize | Record<string, string> | null) {\n this.pluralizeMap = Array.isArray(pluralize)\n ? tuiPluralizeToICU(pluralize)\n : pluralize;\n }\n\n @Input()\n @HostBinding('attr.data-size')\n @tuiDefaultProp()\n size: TuiSizeS = 'm';\n\n @Input()\n @tuiDefaultProp()\n keySteps: TuiKeySteps | null = null;\n\n focusVisibleLeft = false;\n\n focusVisibleRight = false;\n\n pluralizeMap: Record<string, string> | null = null;\n\n protected constructor(\n ngControl: NgControl | null,\n changeDetectorRef: ChangeDetectorRef,\n private readonly documentRef: Document,\n @Inject(TUI_FROM_TO_TEXTS)\n readonly fromToTexts$: Observable<[string, string]>,\n ) {\n super(ngControl, changeDetectorRef);\n }\n\n @HostBinding('class._segmented')\n get segmented(): boolean {\n return this.segments > 0;\n }\n\n get discrete(): boolean {\n return this.steps > 0;\n }\n\n get length(): number {\n return this.max - this.min;\n }\n\n get computedStep(): number {\n if (this.steps) {\n return 1 / this.steps;\n }\n\n return this.quantum ? this.quantum / this.length : SLIDER_KEYBOARD_STEP;\n }\n\n get isLeftFocusable(): boolean {\n return !this.disabled && this.focusable && this.right !== 100;\n }\n\n get isRightFocusable(): boolean {\n return !this.disabled && this.focusable && this.left !== 100;\n }\n\n abstract get left(): number;\n abstract get right(): number;\n abstract processValue(value: number, right?: boolean): void;\n\n ngOnInit(): void {\n super.ngOnInit();\n\n const mouseMoves$ = typedFromEvent(this.documentRef, 'mousemove');\n const mouseUps$ = typedFromEvent(this.documentRef, 'mouseup');\n const touchMoves$ = typedFromEvent(this.documentRef, 'touchmove');\n const touchEnds$ = typedFromEvent(this.documentRef, 'touchend');\n let isPointerDownRight: boolean;\n\n this.pointerDown$\n .pipe(\n map((event: MouseEvent | TouchEvent) => {\n tuiAssertIsHTMLElement(event.currentTarget);\n\n const rect = event.currentTarget.getBoundingClientRect();\n const clientX =\n event instanceof MouseEvent\n ? event.clientX\n : event.touches[0].clientX;\n const fraction = clamp(\n this.getFractionFromEvents(rect, clientX),\n 0,\n 1,\n );\n const deltaLeft = fraction * 100 - this.left;\n const deltaRight = fraction * 100 - 100 + this.right;\n\n isPointerDownRight =\n Math.abs(deltaLeft) > Math.abs(deltaRight) ||\n deltaRight > 0 ||\n (this.left === 0 && this.right === 100);\n\n const calibratedFraction = clamp(\n this.getCalibratedFractionFromEvents(\n rect,\n clientX,\n isPointerDownRight,\n ),\n 0,\n 1,\n );\n const value = this.getValueFromFraction(\n this.fractionGuard(calibratedFraction),\n );\n\n this.processValue(value, isPointerDownRight);\n this.processFocus(isPointerDownRight);\n\n return rect;\n }),\n switchMap(rect =>\n race([touchMoves$, mouseMoves$]).pipe(\n map((event: any) =>\n this.getCalibratedFractionFromEvents(\n rect,\n event instanceof MouseEvent\n ? event.clientX\n : event.touches[0].clientX,\n isPointerDownRight,\n ),\n ),\n takeUntil(race([mouseUps$, touchEnds$])),\n ),\n ),\n map(fraction => this.fractionGuard(fraction)),\n )\n .subscribe(fraction => {\n this.processValue(\n this.getValueFromFraction(fraction),\n isPointerDownRight,\n );\n });\n }\n\n ngOnDestroy(): void {\n super.ngOnDestroy();\n this.pointerDown$.complete();\n }\n\n onMouseDown(event: MouseEvent): void {\n if (this.disabled) {\n return;\n }\n\n event.preventDefault();\n this.pointerDown$.next(event as TuiEventWith<MouseEvent, HTMLElement>);\n }\n\n onTouchStart(event: TouchEvent): void {\n if (this.disabled) {\n return;\n }\n\n event.preventDefault();\n this.pointerDown$.next(event as TuiEventWith<TouchEvent, HTMLElement>);\n }\n\n getSegmentLabel(segment: number): number {\n return round(this.getValueFromFraction(segment / this.segments), 2);\n }\n\n getSegmentPrefix(segment: number, texts: [string, string]): string {\n if (this.segments !== 1) {\n return '';\n }\n\n if (segment === 0) {\n return `${texts[0]} `;\n }\n\n return `${texts[1]} `;\n }\n\n onActiveZone(active: boolean): void {\n this.updateFocused(active);\n }\n\n onLeftFocusVisible(focusVisible: boolean): void {\n this.focusVisibleLeft = focusVisible;\n }\n\n onRightFocusVisible(focusVisible: boolean): void {\n this.focusVisibleRight = focusVisible;\n }\n\n getValueFromFraction(fraction: number): number {\n return this.keySteps !== null\n ? this.fractionValueKeyStepConverter(fraction, true)\n : round(\n this.fractionGuard(fraction) * this.length + this.min,\n TUI_FLOATING_PRECISION,\n );\n }\n\n fractionGuard(fraction: number): number {\n return this.discrete\n ? clamp(quantize(fraction, 1 / this.steps), 0, 1)\n : clamp(fraction, 0, 1);\n }\n\n protected getFractionFromValue(value: number): number {\n const fraction = (value - this.min) / this.length;\n\n return this.keySteps !== null\n ? this.fractionValueKeyStepConverter(value, false)\n : clamp(Number.isFinite(fraction) ? fraction : 1, 0, 1);\n }\n\n protected getCalibratedFractionFromEvents(\n rect: ClientRect,\n clientX: number,\n _: boolean,\n ): number {\n return this.getFractionFromEvents(rect, clientX);\n }\n\n protected valueGuard(value: number): number {\n return this.quantum\n ? clamp(\n round(\n Math.round(value / this.quantum) * this.quantum,\n TUI_FLOATING_PRECISION,\n ),\n this.min,\n this.max,\n )\n : clamp(value, this.min, this.max);\n }\n\n private processFocus(right: boolean): void {\n if (!this.focusable || !this.dotRight || !this.dotLeft) {\n return;\n }\n\n if (right) {\n setNativeFocused(this.dotRight.nativeElement);\n } else {\n setNativeFocused(this.dotLeft.nativeElement);\n }\n }\n\n /**\n * Function for converting the fullness of the slider to a value and vice versa\n * taking into account the steps of linear dependence.\n *\n * @param value passed value\n * @param isFraction translation is carried out from fullness to value\n */\n private fractionValueKeyStepConverter(value: number, isFraction: boolean): number {\n const steps = [[0, this.min]].concat(this.keySteps as TuiKeySteps, [\n [100, this.max],\n ]);\n\n let prevFraction = 0;\n let nextFraction = 100;\n let prevValue = this.min;\n let nextValue = this.max;\n\n for (let i = 1; i < steps.length; i++) {\n if (\n (isFraction && steps[i][0] / 100 > value) ||\n (!isFraction && steps[i][1] > value)\n ) {\n prevFraction = steps[i - 1][0] || 0;\n nextFraction = steps[i][0];\n prevValue = steps[i - 1][1];\n nextValue = steps[i][1];\n break;\n }\n }\n\n const deltaFraction = nextFraction - prevFraction;\n const deltaValue = nextValue - prevValue;\n\n return isFraction\n ? round(\n ((value * 100 - prevFraction) / deltaFraction) * deltaValue + prevValue,\n TUI_FLOATING_PRECISION,\n )\n : clamp(\n ((value - prevValue) / deltaValue) * deltaFraction + prevFraction,\n 0,\n 100,\n ) / 100;\n }\n\n private getFractionFromEvents(rect: ClientRect, clientX: number): number {\n const value = clientX - rect.left - DOT_WIDTH[this.size] / 2;\n const total = rect.width - DOT_WIDTH[this.size];\n\n return round(value / total, TUI_FLOATING_PRECISION);\n }\n}\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-components-accordion.js","sources":["ng://@taiga-ui/kit/components/accordion/accordion-item/accordion-item-content.directive.ts","ng://@taiga-ui/kit/components/accordion/accordion-item/accordion-item-eager-content.directive.ts","ng://@taiga-ui/kit/components/accordion/accordion-item/accordion-item.component.ts","ng://@taiga-ui/kit/components/accordion/accordion.component.ts","ng://@taiga-ui/kit/components/accordion/accordion.module.ts","ng://@taiga-ui/kit/components/accordion/taiga-ui-kit-components-accordion.ts"],"sourcesContent":["import {ChangeDetectorRef, Directive, Inject, Self, TemplateRef} from '@angular/core';\nimport {PolymorpheusTemplate} from '@tinkoff/ng-polymorpheus';\n\n@Directive({\n selector: 'ng-template[tuiAccordionItemContent]',\n})\nexport class TuiAccordionItemContentDirective extends PolymorpheusTemplate<{}> {\n constructor(\n @Inject(TemplateRef)\n @Self()\n templateRef: TemplateRef<{}>,\n @Inject(ChangeDetectorRef) changeDetectorRef: ChangeDetectorRef,\n ) {\n super(templateRef, changeDetectorRef);\n }\n}\n","import {Directive} from '@angular/core';\n\n@Directive({\n selector: '[tuiAccordionItemContent]:not(ng-template)',\n})\nexport class TuiAccordionItemEagerContentDirective {}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ElementRef,\n EventEmitter,\n forwardRef,\n HostBinding,\n Inject,\n Input,\n Output,\n ViewChild,\n} from '@angular/core';\nimport {\n AbstractTuiInteractive,\n isNativeFocused,\n TUI_FOCUSABLE_ITEM_ACCESSOR,\n tuiDefaultProp,\n TuiFocusableElementAccessor,\n TuiNativeFocusableElement,\n} from '@taiga-ui/cdk';\nimport {MODE_PROVIDER, TUI_MODE, TuiBrightness, TuiSizeS} from '@taiga-ui/core';\nimport {Observable} from 'rxjs';\n\nimport {TuiAccordionItemContentDirective} from './accordion-item-content.directive';\nimport {TuiAccordionItemEagerContentDirective} from './accordion-item-eager-content.directive';\n\n@Component({\n selector: 'tui-accordion-item',\n templateUrl: './accordion-item.template.html',\n styleUrls: ['./accordion-item.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: TUI_FOCUSABLE_ITEM_ACCESSOR,\n useExisting: forwardRef(() => TuiAccordionItemComponent),\n },\n MODE_PROVIDER,\n ],\n host: {\n '($.data-mode.attr)': 'mode$',\n },\n})\nexport class TuiAccordionItemComponent\n extends AbstractTuiInteractive\n implements TuiFocusableElementAccessor\n{\n @ViewChild('focusableElement')\n private readonly focusableElement?: ElementRef<TuiNativeFocusableElement>;\n\n @Input()\n @HostBinding('class._no-padding')\n @tuiDefaultProp()\n noPadding = false;\n\n @Input()\n @HostBinding('class._has-arrow')\n @tuiDefaultProp()\n showArrow = true;\n\n @Input()\n @HostBinding('attr.data-tui-host-borders')\n @tuiDefaultProp()\n borders: 'all' | 'top-bottom' | null = 'all';\n\n @Input()\n @HostBinding('attr.data-size')\n @tuiDefaultProp()\n size: TuiSizeS = 'm';\n\n @Input()\n @HostBinding('class._disabled')\n @tuiDefaultProp()\n disabled = false;\n\n @Input()\n @tuiDefaultProp()\n disableHover = false;\n\n @Input()\n @tuiDefaultProp()\n open = false;\n\n @Input()\n @tuiDefaultProp()\n async = false;\n\n @Output()\n readonly openChange = new EventEmitter<boolean>();\n\n @ContentChild(TuiAccordionItemEagerContentDirective)\n readonly eagerContent?: TuiAccordionItemEagerContentDirective;\n\n @ContentChild(TuiAccordionItemContentDirective)\n readonly lazyContent?: TuiAccordionItemContentDirective;\n\n constructor(\n @Inject(ChangeDetectorRef) private readonly changeDetectorRef: ChangeDetectorRef,\n @Inject(TUI_MODE) readonly mode$: Observable<TuiBrightness | null>,\n ) {\n super();\n }\n\n get nativeFocusableElement(): TuiNativeFocusableElement | null {\n return this.disabled || !this.focusableElement\n ? null\n : this.focusableElement.nativeElement;\n }\n\n get focused(): boolean {\n return isNativeFocused(this.nativeFocusableElement);\n }\n\n onHovered(hovered: boolean) {\n if (!this.disableHover) {\n this.updateHovered(hovered);\n }\n }\n\n onFocused(focused: boolean) {\n this.updateFocused(focused);\n }\n\n onFocusVisible(focusVisible: boolean) {\n this.updateFocusVisible(focusVisible);\n }\n\n onRowToggle() {\n if (!this.disabled) {\n this.updateOpen(!this.open);\n }\n }\n\n onItemKeyDownEsc(event: KeyboardEvent) {\n if (!this.focused || !this.open) {\n return;\n }\n\n event.stopPropagation();\n this.updateOpen(false);\n }\n\n onItemKeyDownSpace(event: KeyboardEvent) {\n if (!this.focused) {\n return;\n }\n\n event.preventDefault();\n this.onRowToggle();\n }\n\n close() {\n this.updateOpen(false);\n this.changeDetectorRef.markForCheck();\n }\n\n private updateOpen(open: boolean) {\n if (this.open === open) {\n return;\n }\n\n this.open = open;\n this.openChange.emit(open);\n }\n}\n","import {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n Inject,\n Input,\n QueryList,\n} from '@angular/core';\nimport {\n EMPTY_QUERY,\n isPresent,\n itemsQueryListObservable,\n tuiDefaultProp,\n TuiDestroyService,\n} from '@taiga-ui/cdk';\nimport {identity, merge} from 'rxjs';\nimport {filter, map, mapTo, pairwise, switchMap, takeUntil} from 'rxjs/operators';\n\nimport {TuiAccordionItemComponent} from './accordion-item/accordion-item.component';\n\n@Component({\n selector: 'tui-accordion',\n styleUrls: ['./accordion.style.less'],\n templateUrl: 'accordion.template.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [TuiDestroyService],\n})\nexport class TuiAccordionComponent implements AfterContentInit {\n @Input()\n @tuiDefaultProp()\n closeOthers = true;\n\n @Input()\n @tuiDefaultProp()\n rounded = true;\n\n @ContentChildren(TuiAccordionItemComponent)\n readonly accordionItems: QueryList<TuiAccordionItemComponent> = EMPTY_QUERY;\n\n constructor(\n @Inject(TuiDestroyService)\n private readonly destroy$: TuiDestroyService,\n ) {}\n\n ngAfterContentInit() {\n const {accordionItems} = this;\n const rows$ = itemsQueryListObservable(accordionItems);\n const newOpenRow$ = rows$.pipe(\n pairwise(),\n map(([previous, current]) =>\n current.find(item => !previous.includes(item) && item.open),\n ),\n filter(isPresent),\n );\n const rowsOpen$ = merge(\n rows$.pipe(\n switchMap(rows =>\n merge(\n ...rows.map(row =>\n row.openChange.pipe(filter(identity), mapTo(row)),\n ),\n ),\n ),\n ),\n newOpenRow$,\n ).pipe(\n filter(() => this.closeOthers),\n takeUntil(this.destroy$),\n );\n\n rowsOpen$.subscribe(currentRow => {\n accordionItems.forEach(row => {\n if (currentRow !== row) {\n row.close();\n }\n });\n });\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {\n TuiFocusableModule,\n TuiFocusedModule,\n TuiFocusVisibleModule,\n TuiHoveredModule,\n} from '@taiga-ui/cdk';\nimport {TuiExpandModule, TuiGroupModule, TuiSvgModule} from '@taiga-ui/core';\nimport {PolymorpheusModule} from '@tinkoff/ng-polymorpheus';\n\nimport {TuiAccordionComponent} from './accordion.component';\nimport {TuiAccordionItemComponent} from './accordion-item/accordion-item.component';\nimport {TuiAccordionItemContentDirective} from './accordion-item/accordion-item-content.directive';\nimport {TuiAccordionItemEagerContentDirective} from './accordion-item/accordion-item-eager-content.directive';\n\n@NgModule({\n imports: [\n CommonModule,\n TuiFocusedModule,\n TuiFocusVisibleModule,\n TuiFocusableModule,\n TuiHoveredModule,\n PolymorpheusModule,\n TuiSvgModule,\n TuiGroupModule,\n TuiExpandModule,\n ],\n declarations: [\n TuiAccordionComponent,\n TuiAccordionItemComponent,\n TuiAccordionItemContentDirective,\n TuiAccordionItemEagerContentDirective,\n ],\n exports: [\n TuiAccordionComponent,\n TuiAccordionItemComponent,\n TuiAccordionItemContentDirective,\n TuiAccordionItemEagerContentDirective,\n ],\n})\nexport class TuiAccordionModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"taiga-ui-kit-components-accordion.js","sources":["ng://@taiga-ui/kit/components/accordion/accordion-item/accordion-item-content.directive.ts","ng://@taiga-ui/kit/components/accordion/accordion-item/accordion-item-eager-content.directive.ts","ng://@taiga-ui/kit/components/accordion/accordion-item/accordion-item.component.ts","ng://@taiga-ui/kit/components/accordion/accordion.component.ts","ng://@taiga-ui/kit/components/accordion/accordion.module.ts","ng://@taiga-ui/kit/components/accordion/taiga-ui-kit-components-accordion.ts"],"sourcesContent":["import {ChangeDetectorRef, Directive, Inject, Self, TemplateRef} from '@angular/core';\nimport {PolymorpheusTemplate} from '@tinkoff/ng-polymorpheus';\n\n@Directive({\n selector: 'ng-template[tuiAccordionItemContent]',\n})\nexport class TuiAccordionItemContentDirective extends PolymorpheusTemplate<\n Record<string, unknown>\n> {\n constructor(\n @Inject(TemplateRef)\n @Self()\n templateRef: TemplateRef<Record<string, unknown>>,\n @Inject(ChangeDetectorRef) changeDetectorRef: ChangeDetectorRef,\n ) {\n super(templateRef, changeDetectorRef);\n }\n}\n","import {Directive} from '@angular/core';\n\n@Directive({\n selector: '[tuiAccordionItemContent]:not(ng-template)',\n})\nexport class TuiAccordionItemEagerContentDirective {}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ElementRef,\n EventEmitter,\n forwardRef,\n HostBinding,\n Inject,\n Input,\n Output,\n ViewChild,\n} from '@angular/core';\nimport {\n AbstractTuiInteractive,\n isNativeFocused,\n TUI_FOCUSABLE_ITEM_ACCESSOR,\n tuiDefaultProp,\n TuiFocusableElementAccessor,\n TuiNativeFocusableElement,\n} from '@taiga-ui/cdk';\nimport {MODE_PROVIDER, TUI_MODE, TuiBrightness, TuiSizeS} from '@taiga-ui/core';\nimport {Observable} from 'rxjs';\n\nimport {TuiAccordionItemContentDirective} from './accordion-item-content.directive';\nimport {TuiAccordionItemEagerContentDirective} from './accordion-item-eager-content.directive';\n\n@Component({\n selector: 'tui-accordion-item',\n templateUrl: './accordion-item.template.html',\n styleUrls: ['./accordion-item.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: TUI_FOCUSABLE_ITEM_ACCESSOR,\n useExisting: forwardRef(() => TuiAccordionItemComponent),\n },\n MODE_PROVIDER,\n ],\n host: {\n '($.data-mode.attr)': 'mode$',\n },\n})\nexport class TuiAccordionItemComponent\n extends AbstractTuiInteractive\n implements TuiFocusableElementAccessor\n{\n @ViewChild('focusableElement')\n private readonly focusableElement?: ElementRef<TuiNativeFocusableElement>;\n\n @Input()\n @HostBinding('class._no-padding')\n @tuiDefaultProp()\n noPadding = false;\n\n @Input()\n @HostBinding('class._has-arrow')\n @tuiDefaultProp()\n showArrow = true;\n\n @Input()\n @HostBinding('attr.data-tui-host-borders')\n @tuiDefaultProp()\n borders: 'all' | 'top-bottom' | null = 'all';\n\n @Input()\n @HostBinding('attr.data-size')\n @tuiDefaultProp()\n size: TuiSizeS = 'm';\n\n @Input()\n @HostBinding('class._disabled')\n @tuiDefaultProp()\n disabled = false;\n\n @Input()\n @tuiDefaultProp()\n disableHover = false;\n\n @Input()\n @tuiDefaultProp()\n open = false;\n\n @Input()\n @tuiDefaultProp()\n async = false;\n\n @Output()\n readonly openChange = new EventEmitter<boolean>();\n\n @ContentChild(TuiAccordionItemEagerContentDirective)\n readonly eagerContent?: TuiAccordionItemEagerContentDirective;\n\n @ContentChild(TuiAccordionItemContentDirective)\n readonly lazyContent?: TuiAccordionItemContentDirective;\n\n constructor(\n @Inject(ChangeDetectorRef) private readonly changeDetectorRef: ChangeDetectorRef,\n @Inject(TUI_MODE) readonly mode$: Observable<TuiBrightness | null>,\n ) {\n super();\n }\n\n get nativeFocusableElement(): TuiNativeFocusableElement | null {\n return this.disabled || !this.focusableElement\n ? null\n : this.focusableElement.nativeElement;\n }\n\n get focused(): boolean {\n return isNativeFocused(this.nativeFocusableElement);\n }\n\n onHovered(hovered: boolean): void {\n if (!this.disableHover) {\n this.updateHovered(hovered);\n }\n }\n\n onFocused(focused: boolean): void {\n this.updateFocused(focused);\n }\n\n onFocusVisible(focusVisible: boolean): void {\n this.updateFocusVisible(focusVisible);\n }\n\n onRowToggle(): void {\n if (!this.disabled) {\n this.updateOpen(!this.open);\n }\n }\n\n onItemKeyDownEsc(event: Event): void {\n if (!this.focused || !this.open) {\n return;\n }\n\n event.stopPropagation();\n this.updateOpen(false);\n }\n\n onItemKeyDownSpace(event: Event): void {\n if (!this.focused) {\n return;\n }\n\n event.preventDefault();\n this.onRowToggle();\n }\n\n close(): void {\n this.updateOpen(false);\n this.changeDetectorRef.markForCheck();\n }\n\n private updateOpen(open: boolean): void {\n if (this.open === open) {\n return;\n }\n\n this.open = open;\n this.openChange.emit(open);\n }\n}\n","import {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n Inject,\n Input,\n QueryList,\n} from '@angular/core';\nimport {\n EMPTY_QUERY,\n isPresent,\n itemsQueryListObservable,\n tuiDefaultProp,\n TuiDestroyService,\n} from '@taiga-ui/cdk';\nimport {identity, merge} from 'rxjs';\nimport {filter, map, mapTo, pairwise, switchMap, takeUntil} from 'rxjs/operators';\n\nimport {TuiAccordionItemComponent} from './accordion-item/accordion-item.component';\n\n@Component({\n selector: 'tui-accordion',\n styleUrls: ['./accordion.style.less'],\n templateUrl: 'accordion.template.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [TuiDestroyService],\n})\nexport class TuiAccordionComponent implements AfterContentInit {\n @Input()\n @tuiDefaultProp()\n closeOthers = true;\n\n @Input()\n @tuiDefaultProp()\n rounded = true;\n\n @ContentChildren(TuiAccordionItemComponent)\n readonly accordionItems: QueryList<TuiAccordionItemComponent> = EMPTY_QUERY;\n\n constructor(\n @Inject(TuiDestroyService)\n private readonly destroy$: TuiDestroyService,\n ) {}\n\n ngAfterContentInit(): void {\n const {accordionItems} = this;\n const rows$ = itemsQueryListObservable(accordionItems);\n const newOpenRow$ = rows$.pipe(\n pairwise(),\n map(([previous, current]) =>\n current.find(item => !previous.includes(item) && item.open),\n ),\n filter(isPresent),\n );\n const rowsOpen$ = merge(\n rows$.pipe(\n switchMap(rows =>\n merge(\n ...rows.map(row =>\n row.openChange.pipe(filter(identity), mapTo(row)),\n ),\n ),\n ),\n ),\n newOpenRow$,\n ).pipe(\n filter(() => this.closeOthers),\n takeUntil(this.destroy$),\n );\n\n rowsOpen$.subscribe(currentRow => {\n accordionItems.forEach(row => {\n if (currentRow !== row) {\n row.close();\n }\n });\n });\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {\n TuiFocusableModule,\n TuiFocusedModule,\n TuiFocusVisibleModule,\n TuiHoveredModule,\n} from '@taiga-ui/cdk';\nimport {TuiExpandModule, TuiGroupModule, TuiSvgModule} from '@taiga-ui/core';\nimport {PolymorpheusModule} from '@tinkoff/ng-polymorpheus';\n\nimport {TuiAccordionComponent} from './accordion.component';\nimport {TuiAccordionItemComponent} from './accordion-item/accordion-item.component';\nimport {TuiAccordionItemContentDirective} from './accordion-item/accordion-item-content.directive';\nimport {TuiAccordionItemEagerContentDirective} from './accordion-item/accordion-item-eager-content.directive';\n\n@NgModule({\n imports: [\n CommonModule,\n TuiFocusedModule,\n TuiFocusVisibleModule,\n TuiFocusableModule,\n TuiHoveredModule,\n PolymorpheusModule,\n TuiSvgModule,\n TuiGroupModule,\n TuiExpandModule,\n ],\n declarations: [\n TuiAccordionComponent,\n TuiAccordionItemComponent,\n TuiAccordionItemContentDirective,\n TuiAccordionItemEagerContentDirective,\n ],\n exports: [\n TuiAccordionComponent,\n TuiAccordionItemComponent,\n TuiAccordionItemContentDirective,\n TuiAccordionItemEagerContentDirective,\n ],\n})\nexport class TuiAccordionModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -5,13 +5,14 @@ import { CommonModule } from '@angular/common';
5
5
  import { TuiDescribedByModule } from '@taiga-ui/core';
6
6
  import { TuiMarkerIconModule } from '@taiga-ui/kit/components/marker-icon';
7
7
 
8
+ // TODO: Refactor to button[tuiAction] in 3.0
8
9
  var TuiActionComponent = /** @class */ (function (_super) {
9
10
  __extends(TuiActionComponent, _super);
10
11
  function TuiActionComponent(focusVisible$, elementRef) {
11
12
  var _this = _super.call(this) || this;
12
13
  _this.elementRef = elementRef;
13
14
  _this.icon = '';
14
- _this.isLink = _this.elementRef.nativeElement.tagName.toLowerCase() === 'a';
15
+ _this.isLink = _this.elementRef.nativeElement.matches('a');
15
16
  _this.disabled = false;
16
17
  if (!_this.isLink) {
17
18
  return _this;
@@ -81,7 +82,7 @@ var TuiActionComponent = /** @class */ (function (_super) {
81
82
  useExisting: forwardRef(function () { return TuiActionComponent_1; }),
82
83
  },
83
84
  ],
84
- styles: [":host{box-shadow:0 .25rem 1.5rem rgba(0,0,0,.12);transition-duration:var(--tui-duration,300ms);transition-timing-function:ease-in-out;cursor:pointer;transition-property:transform,box-shadow;will-change:transform,box-shadow;position:relative;display:flex;font:var(--tui-font-text-m);padding:.875rem;color:var(--tui-text-01);text-decoration:none;border:2px solid transparent;border-radius:var(--tui-radius-l);outline:0}:host:hover{box-shadow:0 .75rem 2.25rem rgba(0,0,0,.2);transform:translateY(-.25rem)}:host._focus-visible{border-color:var(--tui-focus)}.button{position:absolute;top:0;left:0;width:100%;height:100%;-webkit-appearance:none;-moz-appearance:none;appearance:none;padding:0;border:0;background:0 0;font-size:inherit;line-height:inherit;cursor:pointer;outline:0}.icon{margin-left:1.25rem;color:var(--tui-link)}.wrapper{flex:1}"]
85
+ styles: [":host{box-shadow:0 .25rem 1.5rem rgba(0,0,0,.12);transition-duration:var(--tui-duration,300ms);transition-timing-function:ease-in-out;cursor:pointer;transition-property:transform,box-shadow;will-change:transform,box-shadow;position:relative;display:flex;font:var(--tui-font-text-m);padding:.875rem;color:var(--tui-text-01);text-decoration:none;border:2px solid transparent;border-radius:var(--tui-radius-l);outline:0}:host:hover{box-shadow:0 .75rem 2.25rem rgba(0,0,0,.2);transform:translateY(-.25rem)}:host._focus-visible{border-color:var(--tui-focus)}.button{position:absolute;top:0;left:0;width:100%;height:100%;-webkit-appearance:none;-moz-appearance:none;appearance:none;padding:0;border:0;background:0 0;font-size:inherit;line-height:inherit;cursor:pointer;outline:0}.icon{margin-left:1.25rem;color:var(--tui-action-color,var(--tui-link));background-color:var(--tui-action-background,var(--tui-base-02))}.wrapper{flex:1}"]
85
86
  }),
86
87
  __param(0, Inject(TuiFocusVisibleService)),
87
88
  __param(1, Inject(ElementRef))
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-kit-components-action.js","sources":["ng://@taiga-ui/kit/components/action/action.component.ts","ng://@taiga-ui/kit/components/action/action.module.ts","ng://@taiga-ui/kit/components/action/taiga-ui-kit-components-action.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n forwardRef,\n HostListener,\n Inject,\n Input,\n ViewChild,\n} from '@angular/core';\nimport {\n AbstractTuiInteractive,\n isNativeFocused,\n TUI_FOCUSABLE_ITEM_ACCESSOR,\n tuiDefaultProp,\n TuiDestroyService,\n TuiFocusVisibleService,\n TuiNativeFocusableElement,\n} from '@taiga-ui/cdk';\n\n@Component({\n selector: 'tui-action, a[tuiAction]',\n templateUrl: './action.template.html',\n styleUrls: ['./action.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n TuiDestroyService,\n TuiFocusVisibleService,\n {\n provide: TUI_FOCUSABLE_ITEM_ACCESSOR,\n useExisting: forwardRef(() => TuiActionComponent),\n },\n ],\n})\nexport class TuiActionComponent extends AbstractTuiInteractive {\n @ViewChild('focusableElement')\n private readonly focusableElement?: ElementRef<TuiNativeFocusableElement>;\n\n @Input()\n @tuiDefaultProp()\n icon = '';\n\n readonly isLink = this.elementRef.nativeElement.tagName.toLowerCase() === 'a';\n\n readonly disabled = false;\n\n constructor(\n @Inject(TuiFocusVisibleService) focusVisible$: TuiFocusVisibleService,\n @Inject(ElementRef) private readonly elementRef: ElementRef<HTMLElement>,\n ) {\n super();\n\n if (!this.isLink) {\n return;\n }\n\n focusVisible$.subscribe(visible => {\n this.updateFocusVisible(visible);\n });\n }\n\n get nativeFocusableElement(): TuiNativeFocusableElement | null {\n if (this.isLink) {\n return this.elementRef.nativeElement;\n }\n\n return this.focusableElement ? this.focusableElement.nativeElement : null;\n }\n\n get focused(): boolean {\n return isNativeFocused(this.nativeFocusableElement);\n }\n\n @HostListener('focusin', ['true'])\n @HostListener('focusout', ['false'])\n onFocused(focused: boolean) {\n this.updateFocused(focused);\n }\n\n @HostListener('mouseenter', ['true'])\n @HostListener('mouseleave', ['false'])\n onHovered(hovered: boolean) {\n this.updateHovered(hovered);\n }\n\n onFocusVisible(focusVisible: boolean) {\n this.updateFocusVisible(focusVisible);\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {TuiFocusableModule, TuiFocusVisibleModule} from '@taiga-ui/cdk';\nimport {TuiDescribedByModule} from '@taiga-ui/core';\nimport {TuiMarkerIconModule} from '@taiga-ui/kit/components/marker-icon';\n\nimport {TuiActionComponent} from './action.component';\n\n@NgModule({\n imports: [\n CommonModule,\n TuiFocusableModule,\n TuiFocusVisibleModule,\n TuiDescribedByModule,\n TuiMarkerIconModule,\n ],\n declarations: [TuiActionComponent],\n exports: [TuiActionComponent],\n})\nexport class TuiActionModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;IAkCwC,sCAAsB;IAY1D,4BACoC,aAAqC,EAChC,UAAmC;QAF5E,YAII,iBAAO,SASV;QAXwC,gBAAU,GAAV,UAAU,CAAyB;QAR5E,UAAI,GAAG,EAAE,CAAC;QAED,YAAM,GAAG,KAAI,CAAC,UAAU,CAAC,aAAa,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,GAAG,CAAC;QAErE,cAAQ,GAAG,KAAK,CAAC;QAQtB,IAAI,CAAC,KAAI,CAAC,MAAM,EAAE;;SAEjB;QAED,aAAa,CAAC,SAAS,CAAC,UAAA,OAAO;YAC3B,KAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;SACpC,CAAC,CAAC;;KACN;2BAzBQ,kBAAkB;IA2B3B,sBAAI,sDAAsB;aAA1B;YACI,IAAI,IAAI,CAAC,MAAM,EAAE;gBACb,OAAO,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;aACxC;YAED,OAAO,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC,aAAa,GAAG,IAAI,CAAC;SAC7E;;;OAAA;IAED,sBAAI,uCAAO;aAAX;YACI,OAAO,eAAe,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;SACvD;;;OAAA;IAID,sCAAS,GAAT,UAAU,OAAgB;QACtB,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;KAC/B;IAID,sCAAS,GAAT,UAAU,OAAgB;QACtB,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;KAC/B;IAED,2CAAc,GAAd,UAAe,YAAqB;QAChC,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC;KACzC;;;gBAxCkD,sBAAsB,uBAApE,MAAM,SAAC,sBAAsB;gBACmB,UAAU,uBAA1D,MAAM,SAAC,UAAU;;IAZtB;QADC,SAAS,CAAC,kBAAkB,CAAC;gEAC4C;IAI1E;QAFC,KAAK,EAAE;QACP,cAAc,EAAE;oDACP;IAmCV;QAFC,YAAY,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC,CAAC;QACjC,YAAY,CAAC,UAAU,EAAE,CAAC,OAAO,CAAC,CAAC;uDAGnC;IAID;QAFC,YAAY,CAAC,YAAY,EAAE,CAAC,MAAM,CAAC,CAAC;QACpC,YAAY,CAAC,YAAY,EAAE,CAAC,OAAO,CAAC,CAAC;uDAGrC;IAjDQ,kBAAkB;QAd9B,SAAS,CAAC;YACP,QAAQ,EAAE,0BAA0B;YACpC,qtBAAqC;YAErC,eAAe,EAAE,uBAAuB,CAAC,MAAM;YAC/C,SAAS,EAAE;gBACP,iBAAiB;gBACjB,sBAAsB;gBACtB;oBACI,OAAO,EAAE,2BAA2B;oBACpC,WAAW,EAAE,UAAU,CAAC,cAAM,OAAA,oBAAkB,GAAA,CAAC;iBACpD;aACJ;;SACJ,CAAC;QAcO,WAAA,MAAM,CAAC,sBAAsB,CAAC,CAAA;QAC9B,WAAA,MAAM,CAAC,UAAU,CAAC,CAAA;OAdd,kBAAkB,CAsD9B;IAAD,yBAAC;CAAA,CAtDuC,sBAAsB;;;ICf9D;KAA+B;IAAlB,eAAe;QAX3B,QAAQ,CAAC;YACN,OAAO,EAAE;gBACL,YAAY;gBACZ,kBAAkB;gBAClB,qBAAqB;gBACrB,oBAAoB;gBACpB,mBAAmB;aACtB;YACD,YAAY,EAAE,CAAC,kBAAkB,CAAC;YAClC,OAAO,EAAE,CAAC,kBAAkB,CAAC;SAChC,CAAC;OACW,eAAe,CAAG;IAAD,sBAAC;CAA/B;;ACnBA;;;;;;"}
1
+ {"version":3,"file":"taiga-ui-kit-components-action.js","sources":["ng://@taiga-ui/kit/components/action/action.component.ts","ng://@taiga-ui/kit/components/action/action.module.ts","ng://@taiga-ui/kit/components/action/taiga-ui-kit-components-action.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n forwardRef,\n HostListener,\n Inject,\n Input,\n ViewChild,\n} from '@angular/core';\nimport {\n AbstractTuiInteractive,\n isNativeFocused,\n TUI_FOCUSABLE_ITEM_ACCESSOR,\n tuiDefaultProp,\n TuiDestroyService,\n TuiFocusVisibleService,\n TuiNativeFocusableElement,\n} from '@taiga-ui/cdk';\n\n// TODO: Refactor to button[tuiAction] in 3.0\n@Component({\n selector: 'tui-action, a[tuiAction]',\n templateUrl: './action.template.html',\n styleUrls: ['./action.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n TuiDestroyService,\n TuiFocusVisibleService,\n {\n provide: TUI_FOCUSABLE_ITEM_ACCESSOR,\n useExisting: forwardRef(() => TuiActionComponent),\n },\n ],\n})\nexport class TuiActionComponent extends AbstractTuiInteractive {\n @ViewChild('focusableElement')\n private readonly focusableElement?: ElementRef<TuiNativeFocusableElement>;\n\n @Input()\n @tuiDefaultProp()\n icon = '';\n\n readonly isLink = this.elementRef.nativeElement.matches('a');\n\n readonly disabled = false;\n\n constructor(\n @Inject(TuiFocusVisibleService) focusVisible$: TuiFocusVisibleService,\n @Inject(ElementRef) private readonly elementRef: ElementRef<HTMLElement>,\n ) {\n super();\n\n if (!this.isLink) {\n return;\n }\n\n focusVisible$.subscribe(visible => {\n this.updateFocusVisible(visible);\n });\n }\n\n get nativeFocusableElement(): TuiNativeFocusableElement | null {\n if (this.isLink) {\n return this.elementRef.nativeElement;\n }\n\n return this.focusableElement ? this.focusableElement.nativeElement : null;\n }\n\n get focused(): boolean {\n return isNativeFocused(this.nativeFocusableElement);\n }\n\n @HostListener('focusin', ['true'])\n @HostListener('focusout', ['false'])\n onFocused(focused: boolean): void {\n this.updateFocused(focused);\n }\n\n @HostListener('mouseenter', ['true'])\n @HostListener('mouseleave', ['false'])\n onHovered(hovered: boolean): void {\n this.updateHovered(hovered);\n }\n\n onFocusVisible(focusVisible: boolean): void {\n this.updateFocusVisible(focusVisible);\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {TuiFocusableModule, TuiFocusVisibleModule} from '@taiga-ui/cdk';\nimport {TuiDescribedByModule} from '@taiga-ui/core';\nimport {TuiMarkerIconModule} from '@taiga-ui/kit/components/marker-icon';\n\nimport {TuiActionComponent} from './action.component';\n\n@NgModule({\n imports: [\n CommonModule,\n TuiFocusableModule,\n TuiFocusVisibleModule,\n TuiDescribedByModule,\n TuiMarkerIconModule,\n ],\n declarations: [TuiActionComponent],\n exports: [TuiActionComponent],\n})\nexport class TuiActionModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;AAoBA;;IAewC,sCAAsB;IAY1D,4BACoC,aAAqC,EAChC,UAAmC;QAF5E,YAII,iBAAO,SASV;QAXwC,gBAAU,GAAV,UAAU,CAAyB;QAR5E,UAAI,GAAG,EAAE,CAAC;QAED,YAAM,GAAG,KAAI,CAAC,UAAU,CAAC,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAEpD,cAAQ,GAAG,KAAK,CAAC;QAQtB,IAAI,CAAC,KAAI,CAAC,MAAM,EAAE;;SAEjB;QAED,aAAa,CAAC,SAAS,CAAC,UAAA,OAAO;YAC3B,KAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;SACpC,CAAC,CAAC;;KACN;2BAzBQ,kBAAkB;IA2B3B,sBAAI,sDAAsB;aAA1B;YACI,IAAI,IAAI,CAAC,MAAM,EAAE;gBACb,OAAO,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;aACxC;YAED,OAAO,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC,aAAa,GAAG,IAAI,CAAC;SAC7E;;;OAAA;IAED,sBAAI,uCAAO;aAAX;YACI,OAAO,eAAe,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;SACvD;;;OAAA;IAID,sCAAS,GAAT,UAAU,OAAgB;QACtB,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;KAC/B;IAID,sCAAS,GAAT,UAAU,OAAgB;QACtB,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;KAC/B;IAED,2CAAc,GAAd,UAAe,YAAqB;QAChC,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC;KACzC;;;gBAxCkD,sBAAsB,uBAApE,MAAM,SAAC,sBAAsB;gBACmB,UAAU,uBAA1D,MAAM,SAAC,UAAU;;IAZtB;QADC,SAAS,CAAC,kBAAkB,CAAC;gEAC4C;IAI1E;QAFC,KAAK,EAAE;QACP,cAAc,EAAE;oDACP;IAmCV;QAFC,YAAY,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC,CAAC;QACjC,YAAY,CAAC,UAAU,EAAE,CAAC,OAAO,CAAC,CAAC;uDAGnC;IAID;QAFC,YAAY,CAAC,YAAY,EAAE,CAAC,MAAM,CAAC,CAAC;QACpC,YAAY,CAAC,YAAY,EAAE,CAAC,OAAO,CAAC,CAAC;uDAGrC;IAjDQ,kBAAkB;QAd9B,SAAS,CAAC;YACP,QAAQ,EAAE,0BAA0B;YACpC,qtBAAqC;YAErC,eAAe,EAAE,uBAAuB,CAAC,MAAM;YAC/C,SAAS,EAAE;gBACP,iBAAiB;gBACjB,sBAAsB;gBACtB;oBACI,OAAO,EAAE,2BAA2B;oBACpC,WAAW,EAAE,UAAU,CAAC,cAAM,OAAA,oBAAkB,GAAA,CAAC;iBACpD;aACJ;;SACJ,CAAC;QAcO,WAAA,MAAM,CAAC,sBAAsB,CAAC,CAAA;QAC9B,WAAA,MAAM,CAAC,UAAU,CAAC,CAAA;OAdd,kBAAkB,CAsD9B;IAAD,yBAAC;CAAA,CAtDuC,sBAAsB;;;IChB9D;KAA+B;IAAlB,eAAe;QAX3B,QAAQ,CAAC;YACN,OAAO,EAAE;gBACL,YAAY;gBACZ,kBAAkB;gBAClB,qBAAqB;gBACrB,oBAAoB;gBACpB,mBAAmB;aACtB;YACD,YAAY,EAAE,CAAC,kBAAkB,CAAC;YAClC,OAAO,EAAE,CAAC,kBAAkB,CAAC;SAChC,CAAC;OACW,eAAe,CAAG;IAAD,sBAAC;CAA/B;;ACnBA;;;;;;"}
@@ -59,8 +59,8 @@ var TuiAvatarComponent = /** @class */ (function () {
59
59
  }
60
60
  var words = this.text.split(' ');
61
61
  return words.length > 1 && sizeBigger(this.size)
62
- ? words[0].substr(0, 1) + words[1].substr(0, 1)
63
- : words[0].substr(0, 1);
62
+ ? words[0].slice(0, 1) + words[1].slice(0, 1)
63
+ : words[0].slice(0, 1);
64
64
  },
65
65
  enumerable: true,
66
66
  configurable: true
@@ -103,7 +103,7 @@ var TuiAvatarComponent = /** @class */ (function () {
103
103
  Component({
104
104
  selector: 'tui-avatar',
105
105
  changeDetection: ChangeDetectionStrategy.OnPush,
106
- template: "<img\n *ngIf=\"isUrlValid\"\n loading=\"lazy\"\n class=\"image\"\n [attr.alt]=\"text\"\n [src]=\"avatarUrl\"\n (error)=\"onError()\"\n/>\n<span class=\"text\">{{ computedText }}</span>\n",
106
+ template: "<img\n *ngIf=\"isUrlValid\"\n loading=\"lazy\"\n class=\"image\"\n [attr.alt]=\"text\"\n [src]=\"avatarUrl || ''\"\n (error)=\"onError()\"\n/>\n<span class=\"text\">{{ computedText }}</span>\n",
107
107
  styles: [":host{position:relative;display:flex;flex-shrink:0;border-radius:var(--tui-radius-m);color:var(--tui-secondary-active);text-align:center;text-transform:uppercase;justify-content:center;align-items:center;background-color:currentColor;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;overflow:hidden}:host[data-size=xs]{font:var(--tui-font-text-s);width:1.5rem;height:1.5rem}:host[data-size='s']{font:var(--tui-font-text-m);width:2rem;height:2rem}:host[data-size='m']{font:var(--tui-font-text-l);width:3rem;height:3rem}:host[data-size='l']{font:var(--tui-font-heading-5);width:4rem;height:4rem;border-radius:var(--tui-radius-l)}:host[data-size=xl]{font:var(--tui-font-heading-3);width:6rem;height:6rem;border-radius:var(--tui-radius-l)}:host[data-size=xxl]{font:var(--tui-font-heading-1);width:9rem;height:9rem;border-radius:var(--tui-radius-l)}:host._has-avatar{background-color:transparent}:host._rounded{border-radius:100%}.image{width:100%;height:100%;object-fit:cover}.text{color:var(--tui-text-01)}"]
108
108
  }),
109
109
  __param(0, Inject(TUI_AVATAR_OPTIONS))