@taiga-ui/kit 2.41.0 → 2.43.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 (346) 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-avatar.umd.js +1 -1
  10. package/bundles/taiga-ui-kit-components-avatar.umd.js.map +1 -1
  11. package/bundles/taiga-ui-kit-components-avatar.umd.min.js +1 -1
  12. package/bundles/taiga-ui-kit-components-avatar.umd.min.js.map +1 -1
  13. package/bundles/taiga-ui-kit-components-combo-box.umd.js +1 -10
  14. package/bundles/taiga-ui-kit-components-combo-box.umd.js.map +1 -1
  15. package/bundles/taiga-ui-kit-components-combo-box.umd.min.js +1 -1
  16. package/bundles/taiga-ui-kit-components-combo-box.umd.min.js.map +1 -1
  17. package/bundles/taiga-ui-kit-components-data-list-wrapper.umd.js +65 -45
  18. package/bundles/taiga-ui-kit-components-data-list-wrapper.umd.js.map +1 -1
  19. package/bundles/taiga-ui-kit-components-data-list-wrapper.umd.min.js +2 -2
  20. package/bundles/taiga-ui-kit-components-data-list-wrapper.umd.min.js.map +1 -1
  21. package/bundles/taiga-ui-kit-components-input-date-time.umd.js +1 -1
  22. package/bundles/taiga-ui-kit-components-input-date-time.umd.js.map +1 -1
  23. package/bundles/taiga-ui-kit-components-input-date-time.umd.min.js +1 -1
  24. package/bundles/taiga-ui-kit-components-input-date-time.umd.min.js.map +1 -1
  25. package/bundles/taiga-ui-kit-components-input-file.umd.js.map +1 -1
  26. package/bundles/taiga-ui-kit-components-input-file.umd.min.js.map +1 -1
  27. package/bundles/taiga-ui-kit-components-input-files.umd.js.map +1 -1
  28. package/bundles/taiga-ui-kit-components-input-files.umd.min.js.map +1 -1
  29. package/bundles/taiga-ui-kit-components-input-month.umd.js +1 -1
  30. package/bundles/taiga-ui-kit-components-input-month.umd.js.map +1 -1
  31. package/bundles/taiga-ui-kit-components-input-month.umd.min.js +1 -1
  32. package/bundles/taiga-ui-kit-components-input-month.umd.min.js.map +1 -1
  33. package/bundles/taiga-ui-kit-components-input-phone.umd.js.map +1 -1
  34. package/bundles/taiga-ui-kit-components-input-phone.umd.min.js.map +1 -1
  35. package/bundles/taiga-ui-kit-components-input-range.umd.js.map +1 -1
  36. package/bundles/taiga-ui-kit-components-input-range.umd.min.js.map +1 -1
  37. package/bundles/taiga-ui-kit-components-input-tag.umd.js +8 -7
  38. package/bundles/taiga-ui-kit-components-input-tag.umd.js.map +1 -1
  39. package/bundles/taiga-ui-kit-components-input-tag.umd.min.js +1 -1
  40. package/bundles/taiga-ui-kit-components-input-tag.umd.min.js.map +1 -1
  41. package/bundles/taiga-ui-kit-components-input-time.umd.js +1 -1
  42. package/bundles/taiga-ui-kit-components-input-time.umd.js.map +1 -1
  43. package/bundles/taiga-ui-kit-components-input-time.umd.min.js +1 -1
  44. package/bundles/taiga-ui-kit-components-input-time.umd.min.js.map +1 -1
  45. package/bundles/taiga-ui-kit-components-line-clamp.umd.js +7 -94
  46. package/bundles/taiga-ui-kit-components-line-clamp.umd.js.map +1 -1
  47. package/bundles/taiga-ui-kit-components-line-clamp.umd.min.js +2 -2
  48. package/bundles/taiga-ui-kit-components-line-clamp.umd.min.js.map +1 -1
  49. package/bundles/taiga-ui-kit-components-multi-select.umd.js +2 -2
  50. package/bundles/taiga-ui-kit-components-multi-select.umd.js.map +1 -1
  51. package/bundles/taiga-ui-kit-components-multi-select.umd.min.js +1 -1
  52. package/bundles/taiga-ui-kit-components-multi-select.umd.min.js.map +1 -1
  53. package/bundles/taiga-ui-kit-components-radio-block.umd.js +1 -1
  54. package/bundles/taiga-ui-kit-components-radio-block.umd.js.map +1 -1
  55. package/bundles/taiga-ui-kit-components-radio-block.umd.min.js +1 -1
  56. package/bundles/taiga-ui-kit-components-radio-block.umd.min.js.map +1 -1
  57. package/bundles/taiga-ui-kit-components-radio-labeled.umd.js +1 -1
  58. package/bundles/taiga-ui-kit-components-radio-labeled.umd.js.map +1 -1
  59. package/bundles/taiga-ui-kit-components-radio-labeled.umd.min.js +1 -1
  60. package/bundles/taiga-ui-kit-components-radio-labeled.umd.min.js.map +1 -1
  61. package/bundles/taiga-ui-kit-components-radio.umd.js +4 -2
  62. package/bundles/taiga-ui-kit-components-radio.umd.js.map +1 -1
  63. package/bundles/taiga-ui-kit-components-radio.umd.min.js +1 -1
  64. package/bundles/taiga-ui-kit-components-radio.umd.min.js.map +1 -1
  65. package/bundles/taiga-ui-kit-components-range.umd.js +67 -13
  66. package/bundles/taiga-ui-kit-components-range.umd.js.map +1 -1
  67. package/bundles/taiga-ui-kit-components-range.umd.min.js +2 -2
  68. package/bundles/taiga-ui-kit-components-range.umd.min.js.map +1 -1
  69. package/bundles/taiga-ui-kit-components-select.umd.js +1 -7
  70. package/bundles/taiga-ui-kit-components-select.umd.js.map +1 -1
  71. package/bundles/taiga-ui-kit-components-select.umd.min.js +2 -2
  72. package/bundles/taiga-ui-kit-components-select.umd.min.js.map +1 -1
  73. package/bundles/taiga-ui-kit-components-slider.umd.js +49 -48
  74. package/bundles/taiga-ui-kit-components-slider.umd.js.map +1 -1
  75. package/bundles/taiga-ui-kit-components-slider.umd.min.js +2 -2
  76. package/bundles/taiga-ui-kit-components-slider.umd.min.js.map +1 -1
  77. package/bundles/taiga-ui-kit-components-stepper.umd.js +1 -0
  78. package/bundles/taiga-ui-kit-components-stepper.umd.js.map +1 -1
  79. package/bundles/taiga-ui-kit-components-stepper.umd.min.js +1 -1
  80. package/bundles/taiga-ui-kit-components-stepper.umd.min.js.map +1 -1
  81. package/bundles/taiga-ui-kit-components-tabs.umd.js +6 -4
  82. package/bundles/taiga-ui-kit-components-tabs.umd.js.map +1 -1
  83. package/bundles/taiga-ui-kit-components-tabs.umd.min.js +1 -1
  84. package/bundles/taiga-ui-kit-components-tabs.umd.min.js.map +1 -1
  85. package/bundles/taiga-ui-kit-components-text-area.umd.js +2 -2
  86. package/bundles/taiga-ui-kit-components-text-area.umd.js.map +1 -1
  87. package/bundles/taiga-ui-kit-components-text-area.umd.min.js +1 -1
  88. package/bundles/taiga-ui-kit-components-text-area.umd.min.js.map +1 -1
  89. package/bundles/taiga-ui-kit-components-tree.umd.js +1 -1
  90. package/bundles/taiga-ui-kit-components-tree.umd.js.map +1 -1
  91. package/bundles/taiga-ui-kit-components-tree.umd.min.js +1 -1
  92. package/bundles/taiga-ui-kit-components-tree.umd.min.js.map +1 -1
  93. package/bundles/taiga-ui-kit-directives-dropdown-selection.umd.js.map +1 -1
  94. package/bundles/taiga-ui-kit-directives-dropdown-selection.umd.min.js.map +1 -1
  95. package/bundles/taiga-ui-kit-enums.umd.js +2 -2
  96. package/bundles/taiga-ui-kit-enums.umd.js.map +1 -1
  97. package/bundles/taiga-ui-kit-enums.umd.min.js.map +1 -1
  98. package/bundles/taiga-ui-kit-tokens.umd.js +1 -1
  99. package/bundles/taiga-ui-kit-tokens.umd.js.map +1 -1
  100. package/bundles/taiga-ui-kit-tokens.umd.min.js +1 -1
  101. package/bundles/taiga-ui-kit-tokens.umd.min.js.map +1 -1
  102. package/bundles/taiga-ui-kit-utils-math.umd.js +253 -4
  103. package/bundles/taiga-ui-kit-utils-math.umd.js.map +1 -1
  104. package/bundles/taiga-ui-kit-utils-math.umd.min.js +15 -1
  105. package/bundles/taiga-ui-kit-utils-math.umd.min.js.map +1 -1
  106. package/bundles/taiga-ui-kit-utils.umd.js +12 -4
  107. package/bundles/taiga-ui-kit-utils.umd.js.map +1 -1
  108. package/bundles/taiga-ui-kit-utils.umd.min.js +1 -1
  109. package/components/accordion/accordion-item/accordion-item.component.d.ts +2 -2
  110. package/components/avatar/taiga-ui-kit-components-avatar.metadata.json +1 -1
  111. package/components/combo-box/combo-box.component.d.ts +1 -2
  112. package/components/combo-box/taiga-ui-kit-components-combo-box.metadata.json +1 -1
  113. package/components/data-list-wrapper/data-list-group-wrapper.component.d.ts +5 -4
  114. package/components/data-list-wrapper/data-list-wrapper.component.d.ts +3 -13
  115. package/components/data-list-wrapper/data-list-wrapper.d.ts +15 -0
  116. package/components/data-list-wrapper/index.d.ts +1 -0
  117. package/components/data-list-wrapper/taiga-ui-kit-components-data-list-wrapper.metadata.json +1 -1
  118. package/components/input-date-time/taiga-ui-kit-components-input-date-time.metadata.json +1 -1
  119. package/components/input-file/file/file.component.d.ts +2 -2
  120. package/components/input-month/taiga-ui-kit-components-input-month.metadata.json +1 -1
  121. package/components/input-phone/input-phone.component.d.ts +2 -2
  122. package/components/input-range/input-range.component.d.ts +1 -1
  123. package/components/input-tag/input-tag.component.d.ts +3 -6
  124. package/components/input-tag/taiga-ui-kit-components-input-tag.metadata.json +1 -1
  125. package/components/input-time/input-time.component.d.ts +2 -2
  126. package/components/input-time/taiga-ui-kit-components-input-time.metadata.json +1 -1
  127. package/components/line-clamp/index.d.ts +0 -1
  128. package/components/line-clamp/line-clamp.component.d.ts +0 -1
  129. package/components/line-clamp/taiga-ui-kit-components-line-clamp.metadata.json +1 -1
  130. package/components/multi-select/multi-select.component.d.ts +2 -2
  131. package/components/multi-select/taiga-ui-kit-components-multi-select.metadata.json +1 -1
  132. package/components/radio/radio.component.d.ts +2 -2
  133. package/components/radio-block/taiga-ui-kit-components-radio-block.metadata.json +1 -1
  134. package/components/radio-labeled/taiga-ui-kit-components-radio-labeled.metadata.json +1 -1
  135. package/components/range/range.component.d.ts +11 -2
  136. package/components/range/taiga-ui-kit-components-range.metadata.json +1 -1
  137. package/components/select/select.component.d.ts +0 -1
  138. package/components/select/taiga-ui-kit-components-select.metadata.json +1 -1
  139. package/components/slider/slider-readonly.directive.d.ts +4 -1
  140. package/components/slider/taiga-ui-kit-components-slider.metadata.json +1 -1
  141. package/components/stepper/taiga-ui-kit-components-stepper.metadata.json +1 -1
  142. package/components/tabs/tabs-with-more/tabs-with-more.component.d.ts +2 -2
  143. package/components/tabs/taiga-ui-kit-components-tabs.metadata.json +1 -1
  144. package/components/text-area/taiga-ui-kit-components-text-area.metadata.json +1 -1
  145. package/components/tree/taiga-ui-kit-components-tree.metadata.json +1 -1
  146. package/directives/dropdown-selection/dropdown-selection.directive.d.ts +1 -1
  147. package/enums/dropdown-position.d.ts +2 -1
  148. package/enums/step-state.d.ts +2 -1
  149. package/enums/taiga-ui-kit-enums.metadata.json +1 -1
  150. package/esm2015/abstract/slider/slider.js +3 -2
  151. package/esm2015/components/accordion/accordion-item/accordion-item.component.js +1 -1
  152. package/esm2015/components/avatar/avatar.component.js +2 -2
  153. package/esm2015/components/combo-box/combo-box.component.js +3 -12
  154. package/esm2015/components/data-list-wrapper/data-list-group-wrapper.component.js +15 -10
  155. package/esm2015/components/data-list-wrapper/data-list-wrapper.component.js +7 -40
  156. package/esm2015/components/data-list-wrapper/data-list-wrapper.js +51 -0
  157. package/esm2015/components/data-list-wrapper/index.js +2 -1
  158. package/esm2015/components/input-date-time/input-date-time.component.js +2 -2
  159. package/esm2015/components/input-file/file/file.component.js +1 -1
  160. package/esm2015/components/input-files/input-files.component.js +1 -1
  161. package/esm2015/components/input-month/input-month.component.js +2 -2
  162. package/esm2015/components/input-phone/input-phone.component.js +1 -1
  163. package/esm2015/components/input-range/input-range.component.js +1 -1
  164. package/esm2015/components/input-tag/input-tag.component.js +9 -8
  165. package/esm2015/components/input-time/input-time.component.js +2 -2
  166. package/esm2015/components/line-clamp/index.js +1 -2
  167. package/esm2015/components/line-clamp/line-clamp.component.js +3 -6
  168. package/esm2015/components/line-clamp/line-clamp.module.js +2 -3
  169. package/esm2015/components/multi-select/multi-select-group/multi-select-group.component.js +2 -2
  170. package/esm2015/components/multi-select/multi-select.component.js +2 -2
  171. package/esm2015/components/radio/radio.component.js +5 -3
  172. package/esm2015/components/radio-block/radio-block.component.js +2 -2
  173. package/esm2015/components/radio-labeled/radio-labeled.component.js +2 -2
  174. package/esm2015/components/range/range.component.js +70 -13
  175. package/esm2015/components/select/select.component.js +3 -9
  176. package/esm2015/components/slider/slider-key-steps.directive.js +9 -28
  177. package/esm2015/components/slider/slider-readonly.directive.js +38 -9
  178. package/esm2015/components/stepper/stepper.component.js +3 -2
  179. package/esm2015/components/tabs/tabs-with-more/tabs-with-more.component.js +8 -6
  180. package/esm2015/components/text-area/text-area.component.js +3 -3
  181. package/esm2015/components/tree/components/tree/tree.component.js +2 -2
  182. package/esm2015/directives/dropdown-selection/dropdown-selection.directive.js +1 -1
  183. package/esm2015/enums/dropdown-position.js +2 -2
  184. package/esm2015/enums/step-state.js +2 -2
  185. package/esm2015/tokens/i18n.js +2 -2
  186. package/esm2015/utils/index.js +2 -1
  187. package/esm2015/utils/math/index.js +2 -1
  188. package/esm2015/utils/math/key-steps.js +23 -0
  189. package/esm5/abstract/slider/slider.js +3 -2
  190. package/esm5/components/accordion/accordion-item/accordion-item.component.js +1 -1
  191. package/esm5/components/avatar/avatar.component.js +2 -2
  192. package/esm5/components/combo-box/combo-box.component.js +3 -12
  193. package/esm5/components/data-list-wrapper/data-list-group-wrapper.component.js +15 -10
  194. package/esm5/components/data-list-wrapper/data-list-wrapper.component.js +12 -55
  195. package/esm5/components/data-list-wrapper/data-list-wrapper.js +64 -0
  196. package/esm5/components/data-list-wrapper/index.js +2 -1
  197. package/esm5/components/input-date-time/input-date-time.component.js +2 -2
  198. package/esm5/components/input-file/file/file.component.js +1 -1
  199. package/esm5/components/input-files/input-files.component.js +1 -1
  200. package/esm5/components/input-month/input-month.component.js +2 -2
  201. package/esm5/components/input-phone/input-phone.component.js +1 -1
  202. package/esm5/components/input-range/input-range.component.js +1 -1
  203. package/esm5/components/input-tag/input-tag.component.js +9 -8
  204. package/esm5/components/input-time/input-time.component.js +2 -2
  205. package/esm5/components/line-clamp/index.js +1 -2
  206. package/esm5/components/line-clamp/line-clamp.component.js +3 -10
  207. package/esm5/components/line-clamp/line-clamp.module.js +2 -3
  208. package/esm5/components/multi-select/multi-select-group/multi-select-group.component.js +2 -2
  209. package/esm5/components/multi-select/multi-select.component.js +2 -2
  210. package/esm5/components/radio/radio.component.js +5 -3
  211. package/esm5/components/radio-block/radio-block.component.js +2 -2
  212. package/esm5/components/radio-labeled/radio-labeled.component.js +2 -2
  213. package/esm5/components/range/range.component.js +68 -12
  214. package/esm5/components/select/select.component.js +3 -9
  215. package/esm5/components/slider/slider-key-steps.directive.js +11 -43
  216. package/esm5/components/slider/slider-readonly.directive.js +45 -9
  217. package/esm5/components/stepper/stepper.component.js +3 -2
  218. package/esm5/components/tabs/tabs-with-more/tabs-with-more.component.js +8 -6
  219. package/esm5/components/text-area/text-area.component.js +3 -3
  220. package/esm5/components/tree/components/tree/tree.component.js +2 -2
  221. package/esm5/directives/dropdown-selection/dropdown-selection.directive.js +1 -1
  222. package/esm5/enums/dropdown-position.js +2 -2
  223. package/esm5/enums/step-state.js +2 -2
  224. package/esm5/tokens/i18n.js +2 -2
  225. package/esm5/utils/index.js +2 -1
  226. package/esm5/utils/math/index.js +2 -1
  227. package/esm5/utils/math/key-steps.js +30 -0
  228. package/fesm2015/taiga-ui-kit-abstract.js +2 -1
  229. package/fesm2015/taiga-ui-kit-abstract.js.map +1 -1
  230. package/fesm2015/taiga-ui-kit-components-accordion.js.map +1 -1
  231. package/fesm2015/taiga-ui-kit-components-avatar.js +1 -1
  232. package/fesm2015/taiga-ui-kit-components-avatar.js.map +1 -1
  233. package/fesm2015/taiga-ui-kit-components-combo-box.js +2 -11
  234. package/fesm2015/taiga-ui-kit-components-combo-box.js.map +1 -1
  235. package/fesm2015/taiga-ui-kit-components-data-list-wrapper.js +56 -38
  236. package/fesm2015/taiga-ui-kit-components-data-list-wrapper.js.map +1 -1
  237. package/fesm2015/taiga-ui-kit-components-input-date-time.js +1 -1
  238. package/fesm2015/taiga-ui-kit-components-input-date-time.js.map +1 -1
  239. package/fesm2015/taiga-ui-kit-components-input-file.js.map +1 -1
  240. package/fesm2015/taiga-ui-kit-components-input-files.js.map +1 -1
  241. package/fesm2015/taiga-ui-kit-components-input-month.js +1 -1
  242. package/fesm2015/taiga-ui-kit-components-input-month.js.map +1 -1
  243. package/fesm2015/taiga-ui-kit-components-input-phone.js.map +1 -1
  244. package/fesm2015/taiga-ui-kit-components-input-range.js.map +1 -1
  245. package/fesm2015/taiga-ui-kit-components-input-tag.js +8 -7
  246. package/fesm2015/taiga-ui-kit-components-input-tag.js.map +1 -1
  247. package/fesm2015/taiga-ui-kit-components-input-time.js +1 -1
  248. package/fesm2015/taiga-ui-kit-components-input-time.js.map +1 -1
  249. package/fesm2015/taiga-ui-kit-components-line-clamp.js +9 -91
  250. package/fesm2015/taiga-ui-kit-components-line-clamp.js.map +1 -1
  251. package/fesm2015/taiga-ui-kit-components-multi-select.js +2 -2
  252. package/fesm2015/taiga-ui-kit-components-multi-select.js.map +1 -1
  253. package/fesm2015/taiga-ui-kit-components-radio-block.js +1 -1
  254. package/fesm2015/taiga-ui-kit-components-radio-block.js.map +1 -1
  255. package/fesm2015/taiga-ui-kit-components-radio-labeled.js +1 -1
  256. package/fesm2015/taiga-ui-kit-components-radio-labeled.js.map +1 -1
  257. package/fesm2015/taiga-ui-kit-components-radio.js +4 -2
  258. package/fesm2015/taiga-ui-kit-components-radio.js.map +1 -1
  259. package/fesm2015/taiga-ui-kit-components-range.js +70 -14
  260. package/fesm2015/taiga-ui-kit-components-range.js.map +1 -1
  261. package/fesm2015/taiga-ui-kit-components-select.js +2 -8
  262. package/fesm2015/taiga-ui-kit-components-select.js.map +1 -1
  263. package/fesm2015/taiga-ui-kit-components-slider.js +41 -34
  264. package/fesm2015/taiga-ui-kit-components-slider.js.map +1 -1
  265. package/fesm2015/taiga-ui-kit-components-stepper.js +2 -1
  266. package/fesm2015/taiga-ui-kit-components-stepper.js.map +1 -1
  267. package/fesm2015/taiga-ui-kit-components-tabs.js +7 -5
  268. package/fesm2015/taiga-ui-kit-components-tabs.js.map +1 -1
  269. package/fesm2015/taiga-ui-kit-components-text-area.js +2 -2
  270. package/fesm2015/taiga-ui-kit-components-text-area.js.map +1 -1
  271. package/fesm2015/taiga-ui-kit-components-tree.js +1 -1
  272. package/fesm2015/taiga-ui-kit-components-tree.js.map +1 -1
  273. package/fesm2015/taiga-ui-kit-directives-dropdown-selection.js.map +1 -1
  274. package/fesm2015/taiga-ui-kit-enums.js +2 -2
  275. package/fesm2015/taiga-ui-kit-enums.js.map +1 -1
  276. package/fesm2015/taiga-ui-kit-tokens.js +1 -1
  277. package/fesm2015/taiga-ui-kit-tokens.js.map +1 -1
  278. package/fesm2015/taiga-ui-kit-utils-math.js +25 -1
  279. package/fesm2015/taiga-ui-kit-utils-math.js.map +1 -1
  280. package/fesm2015/taiga-ui-kit-utils.js +1 -0
  281. package/fesm2015/taiga-ui-kit-utils.js.map +1 -1
  282. package/fesm5/taiga-ui-kit-abstract.js +2 -1
  283. package/fesm5/taiga-ui-kit-abstract.js.map +1 -1
  284. package/fesm5/taiga-ui-kit-components-accordion.js.map +1 -1
  285. package/fesm5/taiga-ui-kit-components-avatar.js +1 -1
  286. package/fesm5/taiga-ui-kit-components-avatar.js.map +1 -1
  287. package/fesm5/taiga-ui-kit-components-combo-box.js +2 -11
  288. package/fesm5/taiga-ui-kit-components-combo-box.js.map +1 -1
  289. package/fesm5/taiga-ui-kit-components-data-list-wrapper.js +66 -45
  290. package/fesm5/taiga-ui-kit-components-data-list-wrapper.js.map +1 -1
  291. package/fesm5/taiga-ui-kit-components-input-date-time.js +1 -1
  292. package/fesm5/taiga-ui-kit-components-input-date-time.js.map +1 -1
  293. package/fesm5/taiga-ui-kit-components-input-file.js.map +1 -1
  294. package/fesm5/taiga-ui-kit-components-input-files.js.map +1 -1
  295. package/fesm5/taiga-ui-kit-components-input-month.js +1 -1
  296. package/fesm5/taiga-ui-kit-components-input-month.js.map +1 -1
  297. package/fesm5/taiga-ui-kit-components-input-phone.js.map +1 -1
  298. package/fesm5/taiga-ui-kit-components-input-range.js.map +1 -1
  299. package/fesm5/taiga-ui-kit-components-input-tag.js +8 -7
  300. package/fesm5/taiga-ui-kit-components-input-tag.js.map +1 -1
  301. package/fesm5/taiga-ui-kit-components-input-time.js +1 -1
  302. package/fesm5/taiga-ui-kit-components-input-time.js.map +1 -1
  303. package/fesm5/taiga-ui-kit-components-line-clamp.js +9 -97
  304. package/fesm5/taiga-ui-kit-components-line-clamp.js.map +1 -1
  305. package/fesm5/taiga-ui-kit-components-multi-select.js +2 -2
  306. package/fesm5/taiga-ui-kit-components-multi-select.js.map +1 -1
  307. package/fesm5/taiga-ui-kit-components-radio-block.js +1 -1
  308. package/fesm5/taiga-ui-kit-components-radio-block.js.map +1 -1
  309. package/fesm5/taiga-ui-kit-components-radio-labeled.js +1 -1
  310. package/fesm5/taiga-ui-kit-components-radio-labeled.js.map +1 -1
  311. package/fesm5/taiga-ui-kit-components-radio.js +4 -2
  312. package/fesm5/taiga-ui-kit-components-radio.js.map +1 -1
  313. package/fesm5/taiga-ui-kit-components-range.js +68 -13
  314. package/fesm5/taiga-ui-kit-components-range.js.map +1 -1
  315. package/fesm5/taiga-ui-kit-components-select.js +2 -8
  316. package/fesm5/taiga-ui-kit-components-select.js.map +1 -1
  317. package/fesm5/taiga-ui-kit-components-slider.js +49 -48
  318. package/fesm5/taiga-ui-kit-components-slider.js.map +1 -1
  319. package/fesm5/taiga-ui-kit-components-stepper.js +2 -1
  320. package/fesm5/taiga-ui-kit-components-stepper.js.map +1 -1
  321. package/fesm5/taiga-ui-kit-components-tabs.js +7 -5
  322. package/fesm5/taiga-ui-kit-components-tabs.js.map +1 -1
  323. package/fesm5/taiga-ui-kit-components-text-area.js +2 -2
  324. package/fesm5/taiga-ui-kit-components-text-area.js.map +1 -1
  325. package/fesm5/taiga-ui-kit-components-tree.js +1 -1
  326. package/fesm5/taiga-ui-kit-components-tree.js.map +1 -1
  327. package/fesm5/taiga-ui-kit-directives-dropdown-selection.js.map +1 -1
  328. package/fesm5/taiga-ui-kit-enums.js +2 -2
  329. package/fesm5/taiga-ui-kit-enums.js.map +1 -1
  330. package/fesm5/taiga-ui-kit-tokens.js +1 -1
  331. package/fesm5/taiga-ui-kit-tokens.js.map +1 -1
  332. package/fesm5/taiga-ui-kit-utils-math.js +32 -1
  333. package/fesm5/taiga-ui-kit-utils-math.js.map +1 -1
  334. package/fesm5/taiga-ui-kit-utils.js +1 -0
  335. package/fesm5/taiga-ui-kit-utils.js.map +1 -1
  336. package/package.json +7 -7
  337. package/tokens/i18n.d.ts +1 -5
  338. package/tokens/taiga-ui-kit-tokens.metadata.json +1 -1
  339. package/utils/index.d.ts +1 -0
  340. package/utils/math/index.d.ts +1 -0
  341. package/utils/math/key-steps.d.ts +4 -0
  342. package/utils/math/taiga-ui-kit-utils-math.metadata.json +1 -1
  343. package/utils/taiga-ui-kit-utils.metadata.json +1 -1
  344. package/components/line-clamp/line-clamp.directive.d.ts +0 -11
  345. package/esm2015/components/line-clamp/line-clamp.directive.js +0 -87
  346. package/esm5/components/line-clamp/line-clamp.directive.js +0 -89
@@ -1,11 +0,0 @@
1
- import { ElementRef, NgZone, Renderer2, ViewContainerRef } from '@angular/core';
2
- import { TuiDestroyService } from '@taiga-ui/cdk';
3
- import { Observable } from 'rxjs';
4
- import { TuiLineClampComponent } from './line-clamp.component';
5
- export declare class TuiLineClampDirective {
6
- constructor(component: TuiLineClampComponent, viewContainerRef: ViewContainerRef, documentRef: Document, renderer: Renderer2, ngZone: NgZone, { nativeElement }: ElementRef<HTMLElement>, destroy$: TuiDestroyService, animationFrame$: Observable<number>,
7
- /**
8
- * TODO: remove "any" in new TS version; https://github.com/ng-web-apis/common/pull/6
9
- */
10
- cssRef: any);
11
- }
@@ -1,87 +0,0 @@
1
- import { __decorate, __param } from "tslib";
2
- import { DOCUMENT } from '@angular/common';
3
- import { Directive, ElementRef, Inject, NgZone, Renderer2, ViewContainerRef, } from '@angular/core';
4
- import { ANIMATION_FRAME, CSS } from '@ng-web-apis/common';
5
- import { CHAR_ELLIPSIS, px, TuiDestroyService, tuiZonefree } from '@taiga-ui/cdk';
6
- import { setRangeOffset } from '@taiga-ui/kit/utils/dom';
7
- import { Observable } from 'rxjs';
8
- import { map, takeUntil } from 'rxjs/operators';
9
- import { TuiLineClampComponent } from './line-clamp.component';
10
- const HIDDEN_LEFT = -200;
11
- // @dynamic
12
- let TuiLineClampDirective = class TuiLineClampDirective {
13
- constructor(component, viewContainerRef, documentRef, renderer, ngZone, { nativeElement }, destroy$, animationFrame$,
14
- /**
15
- * TODO: remove "any" in new TS version; https://github.com/ng-web-apis/common/pull/6
16
- */
17
- cssRef) {
18
- if (cssRef.supports('-webkit-line-clamp', '1') ||
19
- !documentRef.createRange ||
20
- !(nativeElement.parentElement instanceof HTMLElement)) {
21
- return;
22
- }
23
- const range = documentRef.createRange();
24
- const ellipsis = renderer.createElement('div');
25
- const { parentElement } = nativeElement;
26
- const { style } = ellipsis;
27
- style.position = 'absolute';
28
- style.bottom = '0';
29
- style.left = px(HIDDEN_LEFT);
30
- ellipsis.textContent = CHAR_ELLIPSIS;
31
- viewContainerRef.element.nativeElement.appendChild(ellipsis);
32
- animationFrame$
33
- .pipe(map(() => {
34
- // 4px buffer for IE/Edge incorrectly rounding scrollHeight
35
- if (component.oneLine ||
36
- nativeElement.scrollHeight - parentElement.clientHeight < 4) {
37
- return HIDDEN_LEFT;
38
- }
39
- let result = 0;
40
- const length = nativeElement.textContent
41
- ? nativeElement.textContent.length
42
- : 0;
43
- for (let char = 0; char < length - 2; char++) {
44
- setRangeOffset(range, nativeElement, char, 'setStart');
45
- setRangeOffset(range, nativeElement, char + 1, 'setEnd');
46
- const rangeRect = range.getBoundingClientRect();
47
- const clientRect = parentElement.getBoundingClientRect();
48
- if (Math.round(rangeRect.top - clientRect.bottom) >= 0) {
49
- break;
50
- }
51
- result = rangeRect.right - clientRect.left;
52
- }
53
- return result;
54
- }), tuiZonefree(ngZone), takeUntil(destroy$))
55
- .subscribe(left => {
56
- style.left = px(left);
57
- });
58
- }
59
- };
60
- TuiLineClampDirective.ctorParameters = () => [
61
- { type: TuiLineClampComponent, decorators: [{ type: Inject, args: [TuiLineClampComponent,] }] },
62
- { type: ViewContainerRef, decorators: [{ type: Inject, args: [ViewContainerRef,] }] },
63
- { type: Document, decorators: [{ type: Inject, args: [DOCUMENT,] }] },
64
- { type: Renderer2, decorators: [{ type: Inject, args: [Renderer2,] }] },
65
- { type: NgZone, decorators: [{ type: Inject, args: [NgZone,] }] },
66
- { type: ElementRef, decorators: [{ type: Inject, args: [ElementRef,] }] },
67
- { type: TuiDestroyService, decorators: [{ type: Inject, args: [TuiDestroyService,] }] },
68
- { type: Observable, decorators: [{ type: Inject, args: [ANIMATION_FRAME,] }] },
69
- { type: undefined, decorators: [{ type: Inject, args: [CSS,] }] }
70
- ];
71
- TuiLineClampDirective = __decorate([
72
- Directive({
73
- selector: '[lineClamp]',
74
- providers: [TuiDestroyService],
75
- }),
76
- __param(0, Inject(TuiLineClampComponent)),
77
- __param(1, Inject(ViewContainerRef)),
78
- __param(2, Inject(DOCUMENT)),
79
- __param(3, Inject(Renderer2)),
80
- __param(4, Inject(NgZone)),
81
- __param(5, Inject(ElementRef)),
82
- __param(6, Inject(TuiDestroyService)),
83
- __param(7, Inject(ANIMATION_FRAME)),
84
- __param(8, Inject(CSS))
85
- ], TuiLineClampDirective);
86
- export { TuiLineClampDirective };
87
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluZS1jbGFtcC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkva2l0L2NvbXBvbmVudHMvbGluZS1jbGFtcC8iLCJzb3VyY2VzIjpbImxpbmUtY2xhbXAuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDekMsT0FBTyxFQUNILFNBQVMsRUFDVCxVQUFVLEVBQ1YsTUFBTSxFQUNOLE1BQU0sRUFDTixTQUFTLEVBQ1QsZ0JBQWdCLEdBQ25CLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxlQUFlLEVBQUUsR0FBRyxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDekQsT0FBTyxFQUFDLGFBQWEsRUFBRSxFQUFFLEVBQUUsaUJBQWlCLEVBQUUsV0FBVyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ2hGLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUN2RCxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ2hDLE9BQU8sRUFBQyxHQUFHLEVBQUUsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFOUMsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFFN0QsTUFBTSxXQUFXLEdBQUcsQ0FBQyxHQUFHLENBQUM7QUFFekIsV0FBVztBQUtYLElBQWEscUJBQXFCLEdBQWxDLE1BQWEscUJBQXFCO0lBQzlCLFlBQ21DLFNBQWdDLEVBQ3JDLGdCQUFrQyxFQUMxQyxXQUFxQixFQUNwQixRQUFtQixFQUN0QixNQUFjLEVBQ1YsRUFBQyxhQUFhLEVBQTBCLEVBQ2pDLFFBQTJCLEVBQzdCLGVBQW1DO0lBQzVEOztPQUVHO0lBQ1UsTUFBVztRQUV4QixJQUNJLE1BQU0sQ0FBQyxRQUFRLENBQUMsb0JBQW9CLEVBQUUsR0FBRyxDQUFDO1lBQzFDLENBQUMsV0FBVyxDQUFDLFdB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UCxRQUFRLEVBQUUsYUFBYTtRQUN2QixTQUFTLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQztLQUNqQyxDQUFDO0lBR08sV0FBQSxNQUFNLENBQUMscUJBQXFCLENBQUMsQ0FBQTtJQUM3QixXQUFBLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFBO0lBQ3hCLFdBQUEsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFBO0lBQ2hCLFdBQUEsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFBO0lBQ2pCLFdBQUEsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFBO0lBQ2QsV0FBQSxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUE7SUFDbEIsV0FBQSxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQTtJQUN6QixXQUFBLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQTtJQUl2QixXQUFBLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQTtHQWJQLHFCQUFxQixDQTBFakM7U0ExRVkscUJBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtET0NVTUVOVH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gICAgRGlyZWN0aXZlLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgSW5qZWN0LFxuICAgIE5nWm9uZSxcbiAgICBSZW5kZXJlcjIsXG4gICAgVmlld0NvbnRhaW5lclJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0FOSU1BVElPTl9GUkFNRSwgQ1NTfSBmcm9tICdAbmctd2ViLWFwaXMvY29tbW9uJztcbmltcG9ydCB7Q0hBUl9FTExJUFNJUywgcHgsIFR1aURlc3Ryb3lTZXJ2aWNlLCB0dWlab25lZnJlZX0gZnJvbSAnQHRhaWdhLXVpL2Nkayc7XG5pbXBvcnQge3NldFJhbmdlT2Zmc2V0fSBmcm9tICdAdGFpZ2EtdWkva2l0L3V0aWxzL2RvbSc7XG5pbXBvcnQge09ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHttYXAsIHRha2VVbnRpbH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQge1R1aUxpbmVDbGFtcENvbXBvbmVudH0gZnJvbSAnLi9saW5lLWNsYW1wLmNvbXBvbmVudCc7XG5cbmNvbnN0IEhJRERFTl9MRUZUID0gLTIwMDtcblxuLy8gQGR5bmFtaWNcbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW2xpbmVDbGFtcF0nLFxuICAgIHByb3ZpZGVyczogW1R1aURlc3Ryb3lTZXJ2aWNlXSxcbn0pXG5leHBvcnQgY2xhc3MgVHVpTGluZUNsYW1wRGlyZWN0aXZlIHtcbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQEluamVjdChUdWlMaW5lQ2xhbXBDb21wb25lbnQpIGNvbXBvbmVudDogVHVpTGluZUNsYW1wQ29tcG9uZW50LFxuICAgICAgICBASW5qZWN0KFZpZXdDb250YWluZXJSZWYpIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsXG4gICAgICAgIEBJbmplY3QoRE9DVU1FTlQpIGRvY3VtZW50UmVmOiBEb2N1bWVudCxcbiAgICAgICAgQEluamVjdChSZW5kZXJlcjIpIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgICAgIEBJbmplY3QoTmdab25lKSBuZ1pvbmU6IE5nWm9uZSxcbiAgICAgICAgQEluamVjdChFbGVtZW50UmVmKSB7bmF0aXZlRWxlbWVudH06IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxuICAgICAgICBASW5qZWN0KFR1aURlc3Ryb3lTZXJ2aWNlKSBkZXN0cm95JDogVHVpRGVzdHJveVNlcnZpY2UsXG4gICAgICAgIEBJbmplY3QoQU5JTUFUSU9OX0ZSQU1FKSBhbmltYXRpb25GcmFtZSQ6IE9ic2VydmFibGU8bnVtYmVyPixcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFRPRE86IHJlbW92ZSBcImFueVwiIGluIG5ldyBUUyB2ZXJzaW9uOyBodHRwczovL2dpdGh1Yi5jb20vbmctd2ViLWFwaXMvY29tbW9uL3B1bGwvNlxuICAgICAgICAgKi9cbiAgICAgICAgQEluamVjdChDU1MpIGNzc1JlZjogYW55LFxuICAgICkge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgICBjc3NSZWYuc3VwcG9ydHMoJy13ZWJraXQtbGluZS1jbGFtcCcsICcxJykgfHxcbiAgICAgICAgICAgICFkb2N1bWVudFJlZi5jcmVhdGVSYW5nZSB8fFxuICAgICAgICAgICAgIShuYXRpdmVFbGVtZW50LnBhcmVudEVsZW1lbnQgaW5zdGFuY2VvZiBIVE1MRWxlbWVudClcbiAgICAgICAgKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCByYW5nZSA9IGRvY3VtZW50UmVmLmNyZWF0ZVJhbmdlKCk7XG4gICAgICAgIGNvbnN0IGVsbGlwc2lzOiBIVE1MRWxlbWVudCA9IHJlbmRlcmVyLmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgICAgICBjb25zdCB7cGFyZW50RWxlbWVudH0gPSBuYXRpdmVFbGVtZW50O1xuICAgICAgICBjb25zdCB7c3R5bGV9ID0gZWxsaXBzaXM7XG5cbiAgICAgICAgc3R5bGUucG9zaXRpb24gPSAnYWJzb2x1dGUnO1xuICAgICAgICBzdHlsZS5ib3R0b20gPSAnMCc7XG4gICAgICAgIHN0eWxlLmxlZnQgPSBweChISURERU5fTEVGVCk7XG4gICAgICAgIGVsbGlwc2lzLnRleHRDb250ZW50ID0gQ0hBUl9FTExJUFNJUztcblxuICAgICAgICB2aWV3Q29udGFpbmVyUmVmLmVsZW1lbnQubmF0aXZlRWxlbWVudC5hcHBlbmRDaGlsZChlbGxpcHNpcyk7XG5cbiAgICAgICAgYW5pbWF0aW9uRnJhbWUkXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAvLyA0cHggYnVmZmVyIGZvciBJRS9FZGdlIGluY29ycmVjdGx5IHJvdW5kaW5nIHNjcm9sbEhlaWdodFxuICAgICAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICAgICAgICBjb21wb25lbnQub25lTGluZSB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgbmF0aXZlRWxlbWVudC5zY3JvbGxIZWlnaHQgLSBwYXJlbnRFbGVtZW50LmNsaWVudEhlaWdodCA8IDRcbiAgICAgICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gSElEREVOX0xFRlQ7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBsZXQgcmVzdWx0ID0gMDtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbGVuZ3RoID0gbmF0aXZlRWxlbWVudC50ZXh0Q29udGVudFxuICAgICAgICAgICAgICAgICAgICAgICAgPyBuYXRpdmVFbGVtZW50LnRleHRDb250ZW50Lmxlbmd0aFxuICAgICAgICAgICAgICAgICAgICAgICAgOiAwO1xuXG4gICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGNoYXIgPSAwOyBjaGFyIDwgbGVuZ3RoIC0gMjsgY2hhcisrKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzZXRSYW5nZU9mZnNldChyYW5nZSwgbmF0aXZlRWxlbWVudCwgY2hhciwgJ3NldFN0YXJ0Jyk7XG4gICAgICAgICAgICAgICAgICAgICAgICBzZXRSYW5nZU9mZnNldChyYW5nZSwgbmF0aXZlRWxlbWVudCwgY2hhciArIDEsICdzZXRFbmQnKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcmFuZ2VSZWN0ID0gcmFuZ2UuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjbGllbnRSZWN0ID0gcGFyZW50RWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKE1hdGgucm91bmQocmFuZ2VSZWN0LnRvcCAtIGNsaWVudFJlY3QuYm90dG9tKSA+PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IHJhbmdlUmVjdC5yaWdodCAtIGNsaWVudFJlY3QubGVmdDtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgdHVpWm9uZWZyZWUobmdab25lKSxcbiAgICAgICAgICAgICAgICB0YWtlVW50aWwoZGVzdHJveSQpLFxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZShsZWZ0ID0+IHtcbiAgICAgICAgICAgICAgICBzdHlsZS5sZWZ0ID0gcHgobGVmdCk7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG59XG4iXX0=
@@ -1,89 +0,0 @@
1
- import { __decorate, __param } from "tslib";
2
- import { DOCUMENT } from '@angular/common';
3
- import { Directive, ElementRef, Inject, NgZone, Renderer2, ViewContainerRef, } from '@angular/core';
4
- import { ANIMATION_FRAME, CSS } from '@ng-web-apis/common';
5
- import { CHAR_ELLIPSIS, px, TuiDestroyService, tuiZonefree } from '@taiga-ui/cdk';
6
- import { setRangeOffset } from '@taiga-ui/kit/utils/dom';
7
- import { Observable } from 'rxjs';
8
- import { map, takeUntil } from 'rxjs/operators';
9
- import { TuiLineClampComponent } from './line-clamp.component';
10
- var HIDDEN_LEFT = -200;
11
- // @dynamic
12
- var TuiLineClampDirective = /** @class */ (function () {
13
- function TuiLineClampDirective(component, viewContainerRef, documentRef, renderer, ngZone, _a, destroy$, animationFrame$,
14
- /**
15
- * TODO: remove "any" in new TS version; https://github.com/ng-web-apis/common/pull/6
16
- */
17
- cssRef) {
18
- var nativeElement = _a.nativeElement;
19
- if (cssRef.supports('-webkit-line-clamp', '1') ||
20
- !documentRef.createRange ||
21
- !(nativeElement.parentElement instanceof HTMLElement)) {
22
- return;
23
- }
24
- var range = documentRef.createRange();
25
- var ellipsis = renderer.createElement('div');
26
- var parentElement = nativeElement.parentElement;
27
- var style = ellipsis.style;
28
- style.position = 'absolute';
29
- style.bottom = '0';
30
- style.left = px(HIDDEN_LEFT);
31
- ellipsis.textContent = CHAR_ELLIPSIS;
32
- viewContainerRef.element.nativeElement.appendChild(ellipsis);
33
- animationFrame$
34
- .pipe(map(function () {
35
- // 4px buffer for IE/Edge incorrectly rounding scrollHeight
36
- if (component.oneLine ||
37
- nativeElement.scrollHeight - parentElement.clientHeight < 4) {
38
- return HIDDEN_LEFT;
39
- }
40
- var result = 0;
41
- var length = nativeElement.textContent
42
- ? nativeElement.textContent.length
43
- : 0;
44
- for (var char = 0; char < length - 2; char++) {
45
- setRangeOffset(range, nativeElement, char, 'setStart');
46
- setRangeOffset(range, nativeElement, char + 1, 'setEnd');
47
- var rangeRect = range.getBoundingClientRect();
48
- var clientRect = parentElement.getBoundingClientRect();
49
- if (Math.round(rangeRect.top - clientRect.bottom) >= 0) {
50
- break;
51
- }
52
- result = rangeRect.right - clientRect.left;
53
- }
54
- return result;
55
- }), tuiZonefree(ngZone), takeUntil(destroy$))
56
- .subscribe(function (left) {
57
- style.left = px(left);
58
- });
59
- }
60
- TuiLineClampDirective.ctorParameters = function () { return [
61
- { type: TuiLineClampComponent, decorators: [{ type: Inject, args: [TuiLineClampComponent,] }] },
62
- { type: ViewContainerRef, decorators: [{ type: Inject, args: [ViewContainerRef,] }] },
63
- { type: Document, decorators: [{ type: Inject, args: [DOCUMENT,] }] },
64
- { type: Renderer2, decorators: [{ type: Inject, args: [Renderer2,] }] },
65
- { type: NgZone, decorators: [{ type: Inject, args: [NgZone,] }] },
66
- { type: ElementRef, decorators: [{ type: Inject, args: [ElementRef,] }] },
67
- { type: TuiDestroyService, decorators: [{ type: Inject, args: [TuiDestroyService,] }] },
68
- { type: Observable, decorators: [{ type: Inject, args: [ANIMATION_FRAME,] }] },
69
- { type: undefined, decorators: [{ type: Inject, args: [CSS,] }] }
70
- ]; };
71
- TuiLineClampDirective = __decorate([
72
- Directive({
73
- selector: '[lineClamp]',
74
- providers: [TuiDestroyService],
75
- }),
76
- __param(0, Inject(TuiLineClampComponent)),
77
- __param(1, Inject(ViewContainerRef)),
78
- __param(2, Inject(DOCUMENT)),
79
- __param(3, Inject(Renderer2)),
80
- __param(4, Inject(NgZone)),
81
- __param(5, Inject(ElementRef)),
82
- __param(6, Inject(TuiDestroyService)),
83
- __param(7, Inject(ANIMATION_FRAME)),
84
- __param(8, Inject(CSS))
85
- ], TuiLineClampDirective);
86
- return TuiLineClampDirective;
87
- }());
88
- export { TuiLineClampDirective };
89
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluZS1jbGFtcC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkva2l0L2NvbXBvbmVudHMvbGluZS1jbGFtcC8iLCJzb3VyY2VzIjpbImxpbmUtY2xhbXAuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDekMsT0FBTyxFQUNILFNBQVMsRUFDVCxVQUFVLEVBQ1YsTUFBTSxFQUNOLE1BQU0sRUFDTixTQUFTLEVBQ1QsZ0JBQWdCLEdBQ25CLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxlQUFlLEVBQUUsR0FBRyxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDekQsT0FBTyxFQUFDLGFBQWEsRUFBRSxFQUFFLEVBQUUsaUJBQWlCLEVBQUUsV0FBVyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ2hGLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUN2RCxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ2hDLE9BQU8sRUFBQyxHQUFHLEVBQUUsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFOUMsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFFN0QsSUFBTSxXQUFXLEdBQUcsQ0FBQyxHQUFHLENBQUM7QUFFekIsV0FBVztBQUtYO0lBQ0ksK0JBQ21DLFNBQWdDLEVBQ3JDLGdCQUFrQyxFQUMxQyxXQUFxQixFQUNwQixRQUFtQixFQUN0QixNQUFjLEVBQ1YsRUFBd0MsRUFDakMsUUFBMkIsRUFDN0IsZUFBbUM7SUFDNUQ7O09BRUc7SUFDVSxNQUFXO1lBTkgsZ0NBQWE7UUFRbEMsSUFDSSxNQUFNLENBQUMsUUFBUSxDQUFDLG9CQUFvQixFQUFFLEdBQUcsQ0FBQztZQUMxQyxDQUFDLFdBQVcsQ0FBQyxXQUFXO1lBQ3hCLENBQUMsQ0FBQyxhQUFhLENBQUMs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QUFxQixDQUFDLENBQUE7UUFDN0IsV0FBQSxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQTtRQUN4QixXQUFBLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQTtRQUNoQixXQUFBLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQTtRQUNqQixXQUFBLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUNkLFdBQUEsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFBO1FBQ2xCLFdBQUEsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUE7UUFDekIsV0FBQSxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUE7UUFJdkIsV0FBQSxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUE7T0FiUCxxQkFBcUIsQ0EwRWpDO0lBQUQsNEJBQUM7Q0FBQSxBQTFFRCxJQTBFQztTQTFFWSxxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0RPQ1VNRU5UfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgICBEaXJlY3RpdmUsXG4gICAgRWxlbWVudFJlZixcbiAgICBJbmplY3QsXG4gICAgTmdab25lLFxuICAgIFJlbmRlcmVyMixcbiAgICBWaWV3Q29udGFpbmVyUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QU5JTUFUSU9OX0ZSQU1FLCBDU1N9IGZyb20gJ0BuZy13ZWItYXBpcy9jb21tb24nO1xuaW1wb3J0IHtDSEFSX0VMTElQU0lTLCBweCwgVHVpRGVzdHJveVNlcnZpY2UsIHR1aVpvbmVmcmVlfSBmcm9tICdAdGFpZ2EtdWkvY2RrJztcbmltcG9ydCB7c2V0UmFuZ2VPZmZzZXR9IGZyb20gJ0B0YWlnYS11aS9raXQvdXRpbHMvZG9tJztcbmltcG9ydCB7T2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge21hcCwgdGFrZVVudGlsfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7VHVpTGluZUNsYW1wQ29tcG9uZW50fSBmcm9tICcuL2xpbmUtY2xhbXAuY29tcG9uZW50JztcblxuY29uc3QgSElEREVOX0xFRlQgPSAtMjAwO1xuXG4vLyBAZHluYW1pY1xuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbbGluZUNsYW1wXScsXG4gICAgcHJvdmlkZXJzOiBbVHVpRGVzdHJveVNlcnZpY2VdLFxufSlcbmV4cG9ydCBjbGFzcyBUdWlMaW5lQ2xhbXBEaXJlY3RpdmUge1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBASW5qZWN0KFR1aUxpbmVDbGFtcENvbXBvbmVudCkgY29tcG9uZW50OiBUdWlMaW5lQ2xhbXBDb21wb25lbnQsXG4gICAgICAgIEBJbmplY3QoVmlld0NvbnRhaW5lclJlZikgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZixcbiAgICAgICAgQEluamVjdChET0NVTUVOVCkgZG9jdW1lbnRSZWY6IERvY3VtZW50LFxuICAgICAgICBASW5qZWN0KFJlbmRlcmVyMikgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICAgICAgQEluamVjdChOZ1pvbmUpIG5nWm9uZTogTmdab25lLFxuICAgICAgICBASW5qZWN0KEVsZW1lbnRSZWYpIHtuYXRpdmVFbGVtZW50fTogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICAgICAgIEBJbmplY3QoVHVpRGVzdHJveVNlcnZpY2UpIGRlc3Ryb3kkOiBUdWlEZXN0cm95U2VydmljZSxcbiAgICAgICAgQEluamVjdChBTklNQVRJT05fRlJBTUUpIGFuaW1hdGlvbkZyYW1lJDogT2JzZXJ2YWJsZTxudW1iZXI+LFxuICAgICAgICAvKipcbiAgICAgICAgICogVE9ETzogcmVtb3ZlIFwiYW55XCIgaW4gbmV3IFRTIHZlcnNpb247IGh0dHBzOi8vZ2l0aHViLmNvbS9uZy13ZWItYXBpcy9jb21tb24vcHVsbC82XG4gICAgICAgICAqL1xuICAgICAgICBASW5qZWN0KENTUykgY3NzUmVmOiBhbnksXG4gICAgKSB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIGNzc1JlZi5zdXBwb3J0cygnLXdlYmtpdC1saW5lLWNsYW1wJywgJzEnKSB8fFxuICAgICAgICAgICAgIWRvY3VtZW50UmVmLmNyZWF0ZVJhbmdlIHx8XG4gICAgICAgICAgICAhKG5hdGl2ZUVsZW1lbnQucGFyZW50RWxlbWVudCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KVxuICAgICAgICApIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHJhbmdlID0gZG9jdW1lbnRSZWYuY3JlYXRlUmFuZ2UoKTtcbiAgICAgICAgY29uc3QgZWxsaXBzaXM6IEhUTUxFbGVtZW50ID0gcmVuZGVyZXIuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgICAgIGNvbnN0IHtwYXJlbnRFbGVtZW50fSA9IG5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgIGNvbnN0IHtzdHlsZX0gPSBlbGxpcHNpcztcblxuICAgICAgICBzdHlsZS5wb3NpdGlvbiA9ICdhYnNvbHV0ZSc7XG4gICAgICAgIHN0eWxlLmJvdHRvbSA9ICcwJztcbiAgICAgICAgc3R5bGUubGVmdCA9IHB4KEhJRERFTl9MRUZUKTtcbiAgICAgICAgZWxsaXBzaXMudGV4dENvbnRlbnQgPSBDSEFSX0VMTElQU0lTO1xuXG4gICAgICAgIHZpZXdDb250YWluZXJSZWYuZWxlbWVudC5uYXRpdmVFbGVtZW50LmFwcGVuZENoaWxkKGVsbGlwc2lzKTtcblxuICAgICAgICBhbmltYXRpb25GcmFtZSRcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIG1hcCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIC8vIDRweCBidWZmZXIgZm9yIElFL0VkZ2UgaW5jb3JyZWN0bHkgcm91bmRpbmcgc2Nyb2xsSGVpZ2h0XG4gICAgICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBvbmVudC5vbmVMaW5lIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICBuYXRpdmVFbGVtZW50LnNjcm9sbEhlaWdodCAtIHBhcmVudEVsZW1lbnQuY2xpZW50SGVpZ2h0IDwgNFxuICAgICAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBISURERU5fTEVGVDtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGxldCByZXN1bHQgPSAwO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBsZW5ndGggPSBuYXRpdmVFbGVtZW50LnRleHRDb250ZW50XG4gICAgICAgICAgICAgICAgICAgICAgICA/IG5hdGl2ZUVsZW1lbnQudGV4dENvbnRlbnQubGVuZ3RoXG4gICAgICAgICAgICAgICAgICAgICAgICA6IDA7XG5cbiAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgY2hhciA9IDA7IGNoYXIgPCBsZW5ndGggLSAyOyBjaGFyKyspIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldFJhbmdlT2Zmc2V0KHJhbmdlLCBuYXRpdmVFbGVtZW50LCBjaGFyLCAnc2V0U3RhcnQnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldFJhbmdlT2Zmc2V0KHJhbmdlLCBuYXRpdmVFbGVtZW50LCBjaGFyICsgMSwgJ3NldEVuZCcpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCByYW5nZVJlY3QgPSByYW5nZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNsaWVudFJlY3QgPSBwYXJlbnRFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoTWF0aC5yb3VuZChyYW5nZVJlY3QudG9wIC0gY2xpZW50UmVjdC5ib3R0b20pID49IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gcmFuZ2VSZWN0LnJpZ2h0IC0gY2xpZW50UmVjdC5sZWZ0O1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICB0dWlab25lZnJlZShuZ1pvbmUpLFxuICAgICAgICAgICAgICAgIHRha2VVbnRpbChkZXN0cm95JCksXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKGxlZnQgPT4ge1xuICAgICAgICAgICAgICAgIHN0eWxlLmxlZnQgPSBweChsZWZ0KTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cbn1cbiJdfQ==