@taiga-ui/kit 2.33.0 → 2.36.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 (685) hide show
  1. package/abstract/taiga-ui-kit-abstract.metadata.json +1 -1
  2. package/bundles/taiga-ui-kit-abstract.umd.js +2 -2
  3. package/bundles/taiga-ui-kit-abstract.umd.js.map +1 -1
  4. package/bundles/taiga-ui-kit-abstract.umd.min.js +1 -1
  5. package/bundles/taiga-ui-kit-abstract.umd.min.js.map +1 -1
  6. package/bundles/taiga-ui-kit-components-accordion.umd.js +2 -2
  7. package/bundles/taiga-ui-kit-components-accordion.umd.js.map +1 -1
  8. package/bundles/taiga-ui-kit-components-accordion.umd.min.js +1 -1
  9. package/bundles/taiga-ui-kit-components-accordion.umd.min.js.map +1 -1
  10. package/bundles/taiga-ui-kit-components-arrow.umd.js +14 -1
  11. package/bundles/taiga-ui-kit-components-arrow.umd.js.map +1 -1
  12. package/bundles/taiga-ui-kit-components-arrow.umd.min.js +1 -1
  13. package/bundles/taiga-ui-kit-components-arrow.umd.min.js.map +1 -1
  14. package/bundles/taiga-ui-kit-components-avatar.umd.js +2 -2
  15. package/bundles/taiga-ui-kit-components-avatar.umd.js.map +1 -1
  16. package/bundles/taiga-ui-kit-components-avatar.umd.min.js +2 -2
  17. package/bundles/taiga-ui-kit-components-avatar.umd.min.js.map +1 -1
  18. package/bundles/taiga-ui-kit-components-badge.umd.js +2 -2
  19. package/bundles/taiga-ui-kit-components-badge.umd.js.map +1 -1
  20. package/bundles/taiga-ui-kit-components-badge.umd.min.js +1 -1
  21. package/bundles/taiga-ui-kit-components-badge.umd.min.js.map +1 -1
  22. package/bundles/taiga-ui-kit-components-badged-content.umd.js +2 -2
  23. package/bundles/taiga-ui-kit-components-badged-content.umd.js.map +1 -1
  24. package/bundles/taiga-ui-kit-components-badged-content.umd.min.js +2 -2
  25. package/bundles/taiga-ui-kit-components-badged-content.umd.min.js.map +1 -1
  26. package/bundles/taiga-ui-kit-components-breadcrumbs.umd.js +2 -2
  27. package/bundles/taiga-ui-kit-components-breadcrumbs.umd.js.map +1 -1
  28. package/bundles/taiga-ui-kit-components-breadcrumbs.umd.min.js +1 -1
  29. package/bundles/taiga-ui-kit-components-breadcrumbs.umd.min.js.map +1 -1
  30. package/bundles/taiga-ui-kit-components-calendar-month.umd.js +2 -2
  31. package/bundles/taiga-ui-kit-components-calendar-month.umd.js.map +1 -1
  32. package/bundles/taiga-ui-kit-components-calendar-month.umd.min.js +2 -2
  33. package/bundles/taiga-ui-kit-components-calendar-month.umd.min.js.map +1 -1
  34. package/bundles/taiga-ui-kit-components-carousel.umd.js.map +1 -1
  35. package/bundles/taiga-ui-kit-components-carousel.umd.min.js.map +1 -1
  36. package/bundles/taiga-ui-kit-components-checkbox-block.umd.js +2 -2
  37. package/bundles/taiga-ui-kit-components-checkbox-block.umd.js.map +1 -1
  38. package/bundles/taiga-ui-kit-components-checkbox-block.umd.min.js +2 -2
  39. package/bundles/taiga-ui-kit-components-checkbox-block.umd.min.js.map +1 -1
  40. package/bundles/taiga-ui-kit-components-checkbox-labeled.umd.js +2 -2
  41. package/bundles/taiga-ui-kit-components-checkbox-labeled.umd.js.map +1 -1
  42. package/bundles/taiga-ui-kit-components-checkbox-labeled.umd.min.js +1 -1
  43. package/bundles/taiga-ui-kit-components-checkbox-labeled.umd.min.js.map +1 -1
  44. package/bundles/taiga-ui-kit-components-checkbox.umd.js +2 -2
  45. package/bundles/taiga-ui-kit-components-checkbox.umd.js.map +1 -1
  46. package/bundles/taiga-ui-kit-components-checkbox.umd.min.js +1 -1
  47. package/bundles/taiga-ui-kit-components-checkbox.umd.min.js.map +1 -1
  48. package/bundles/taiga-ui-kit-components-combo-box.umd.js +64 -22
  49. package/bundles/taiga-ui-kit-components-combo-box.umd.js.map +1 -1
  50. package/bundles/taiga-ui-kit-components-combo-box.umd.min.js +2 -2
  51. package/bundles/taiga-ui-kit-components-combo-box.umd.min.js.map +1 -1
  52. package/bundles/taiga-ui-kit-components-data-list-wrapper.umd.js +17 -11
  53. package/bundles/taiga-ui-kit-components-data-list-wrapper.umd.js.map +1 -1
  54. package/bundles/taiga-ui-kit-components-data-list-wrapper.umd.min.js +2 -2
  55. package/bundles/taiga-ui-kit-components-data-list-wrapper.umd.min.js.map +1 -1
  56. package/bundles/taiga-ui-kit-components-field-error.umd.js +10 -15
  57. package/bundles/taiga-ui-kit-components-field-error.umd.js.map +1 -1
  58. package/bundles/taiga-ui-kit-components-field-error.umd.min.js +1 -1
  59. package/bundles/taiga-ui-kit-components-field-error.umd.min.js.map +1 -1
  60. package/bundles/taiga-ui-kit-components-filter.umd.js +2 -2
  61. package/bundles/taiga-ui-kit-components-filter.umd.js.map +1 -1
  62. package/bundles/taiga-ui-kit-components-filter.umd.min.js +1 -1
  63. package/bundles/taiga-ui-kit-components-filter.umd.min.js.map +1 -1
  64. package/bundles/taiga-ui-kit-components-input-count.umd.js +7 -2
  65. package/bundles/taiga-ui-kit-components-input-count.umd.js.map +1 -1
  66. package/bundles/taiga-ui-kit-components-input-count.umd.min.js +1 -1
  67. package/bundles/taiga-ui-kit-components-input-count.umd.min.js.map +1 -1
  68. package/bundles/taiga-ui-kit-components-input-month-range.umd.js +64 -41
  69. package/bundles/taiga-ui-kit-components-input-month-range.umd.js.map +1 -1
  70. package/bundles/taiga-ui-kit-components-input-month-range.umd.min.js +2 -2
  71. package/bundles/taiga-ui-kit-components-input-month-range.umd.min.js.map +1 -1
  72. package/bundles/taiga-ui-kit-components-input-month.umd.js +57 -32
  73. package/bundles/taiga-ui-kit-components-input-month.umd.js.map +1 -1
  74. package/bundles/taiga-ui-kit-components-input-month.umd.min.js +2 -2
  75. package/bundles/taiga-ui-kit-components-input-month.umd.min.js.map +1 -1
  76. package/bundles/taiga-ui-kit-components-input-number.umd.js +8 -2
  77. package/bundles/taiga-ui-kit-components-input-number.umd.js.map +1 -1
  78. package/bundles/taiga-ui-kit-components-input-number.umd.min.js +1 -1
  79. package/bundles/taiga-ui-kit-components-input-number.umd.min.js.map +1 -1
  80. package/bundles/taiga-ui-kit-components-input-password.umd.js +5 -0
  81. package/bundles/taiga-ui-kit-components-input-password.umd.js.map +1 -1
  82. package/bundles/taiga-ui-kit-components-input-password.umd.min.js +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.umd.js +8 -2
  85. package/bundles/taiga-ui-kit-components-input-phone.umd.js.map +1 -1
  86. package/bundles/taiga-ui-kit-components-input-phone.umd.min.js +2 -2
  87. package/bundles/taiga-ui-kit-components-input-phone.umd.min.js.map +1 -1
  88. package/bundles/taiga-ui-kit-components-input-range.umd.js +2 -2
  89. package/bundles/taiga-ui-kit-components-input-range.umd.js.map +1 -1
  90. package/bundles/taiga-ui-kit-components-input-range.umd.min.js +1 -1
  91. package/bundles/taiga-ui-kit-components-input-range.umd.min.js.map +1 -1
  92. package/bundles/taiga-ui-kit-components-input-slider.umd.js +2 -2
  93. package/bundles/taiga-ui-kit-components-input-slider.umd.js.map +1 -1
  94. package/bundles/taiga-ui-kit-components-input-slider.umd.min.js +2 -2
  95. package/bundles/taiga-ui-kit-components-input-slider.umd.min.js.map +1 -1
  96. package/bundles/taiga-ui-kit-components-input-tag.umd.js +53 -17
  97. package/bundles/taiga-ui-kit-components-input-tag.umd.js.map +1 -1
  98. package/bundles/taiga-ui-kit-components-input-tag.umd.min.js +2 -2
  99. package/bundles/taiga-ui-kit-components-input-tag.umd.min.js.map +1 -1
  100. package/bundles/taiga-ui-kit-components-input-time.umd.js +5 -0
  101. package/bundles/taiga-ui-kit-components-input-time.umd.js.map +1 -1
  102. package/bundles/taiga-ui-kit-components-input-time.umd.min.js +1 -1
  103. package/bundles/taiga-ui-kit-components-input-time.umd.min.js.map +1 -1
  104. package/bundles/taiga-ui-kit-components-line-clamp.umd.js +25 -14
  105. package/bundles/taiga-ui-kit-components-line-clamp.umd.js.map +1 -1
  106. package/bundles/taiga-ui-kit-components-line-clamp.umd.min.js +1 -1
  107. package/bundles/taiga-ui-kit-components-line-clamp.umd.min.js.map +1 -1
  108. package/bundles/taiga-ui-kit-components-marker-icon.umd.js +2 -2
  109. package/bundles/taiga-ui-kit-components-marker-icon.umd.js.map +1 -1
  110. package/bundles/taiga-ui-kit-components-marker-icon.umd.min.js +1 -1
  111. package/bundles/taiga-ui-kit-components-marker-icon.umd.min.js.map +1 -1
  112. package/bundles/taiga-ui-kit-components-multi-select.umd.js +51 -16
  113. package/bundles/taiga-ui-kit-components-multi-select.umd.js.map +1 -1
  114. package/bundles/taiga-ui-kit-components-multi-select.umd.min.js +2 -2
  115. package/bundles/taiga-ui-kit-components-multi-select.umd.min.js.map +1 -1
  116. package/bundles/taiga-ui-kit-components-progress.umd.js +140 -73
  117. package/bundles/taiga-ui-kit-components-progress.umd.js.map +1 -1
  118. package/bundles/taiga-ui-kit-components-progress.umd.min.js +2 -2
  119. package/bundles/taiga-ui-kit-components-progress.umd.min.js.map +1 -1
  120. package/bundles/taiga-ui-kit-components-radio-block.umd.js +2 -2
  121. package/bundles/taiga-ui-kit-components-radio-block.umd.js.map +1 -1
  122. package/bundles/taiga-ui-kit-components-radio-block.umd.min.js +1 -1
  123. package/bundles/taiga-ui-kit-components-radio-block.umd.min.js.map +1 -1
  124. package/bundles/taiga-ui-kit-components-radio-labeled.umd.js +2 -2
  125. package/bundles/taiga-ui-kit-components-radio-labeled.umd.js.map +1 -1
  126. package/bundles/taiga-ui-kit-components-radio-labeled.umd.min.js +1 -1
  127. package/bundles/taiga-ui-kit-components-radio-labeled.umd.min.js.map +1 -1
  128. package/bundles/taiga-ui-kit-components-radio-list.umd.js +2 -2
  129. package/bundles/taiga-ui-kit-components-radio-list.umd.js.map +1 -1
  130. package/bundles/taiga-ui-kit-components-radio-list.umd.min.js +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 +7 -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 +1 -1
  137. package/bundles/taiga-ui-kit-components-range.umd.min.js +1 -1
  138. package/bundles/taiga-ui-kit-components-range.umd.min.js.map +1 -1
  139. package/bundles/taiga-ui-kit-components-rating.umd.js +5 -0
  140. package/bundles/taiga-ui-kit-components-rating.umd.js.map +1 -1
  141. package/bundles/taiga-ui-kit-components-rating.umd.min.js +1 -1
  142. package/bundles/taiga-ui-kit-components-rating.umd.min.js.map +1 -1
  143. package/bundles/taiga-ui-kit-components-select.umd.js +35 -10
  144. package/bundles/taiga-ui-kit-components-select.umd.js.map +1 -1
  145. package/bundles/taiga-ui-kit-components-select.umd.min.js +2 -2
  146. package/bundles/taiga-ui-kit-components-select.umd.min.js.map +1 -1
  147. package/bundles/taiga-ui-kit-components-slider.umd.js +272 -27
  148. package/bundles/taiga-ui-kit-components-slider.umd.js.map +1 -1
  149. package/bundles/taiga-ui-kit-components-slider.umd.min.js +2 -2
  150. package/bundles/taiga-ui-kit-components-slider.umd.min.js.map +1 -1
  151. package/bundles/taiga-ui-kit-components-tag.umd.js +9 -3
  152. package/bundles/taiga-ui-kit-components-tag.umd.js.map +1 -1
  153. package/bundles/taiga-ui-kit-components-tag.umd.min.js +1 -1
  154. package/bundles/taiga-ui-kit-components-tag.umd.min.js.map +1 -1
  155. package/bundles/taiga-ui-kit-components-text-area.umd.js +50 -13
  156. package/bundles/taiga-ui-kit-components-text-area.umd.js.map +1 -1
  157. package/bundles/taiga-ui-kit-components-text-area.umd.min.js +1 -1
  158. package/bundles/taiga-ui-kit-components-text-area.umd.min.js.map +1 -1
  159. package/bundles/taiga-ui-kit-components-toggle.umd.js +7 -2
  160. package/bundles/taiga-ui-kit-components-toggle.umd.js.map +1 -1
  161. package/bundles/taiga-ui-kit-components-toggle.umd.min.js +1 -1
  162. package/bundles/taiga-ui-kit-components-toggle.umd.min.js.map +1 -1
  163. package/bundles/taiga-ui-kit-directives-dropdown-selection.umd.js +22 -5
  164. package/bundles/taiga-ui-kit-directives-dropdown-selection.umd.js.map +1 -1
  165. package/bundles/taiga-ui-kit-directives-dropdown-selection.umd.min.js +1 -1
  166. package/bundles/taiga-ui-kit-directives-dropdown-selection.umd.min.js.map +1 -1
  167. package/bundles/taiga-ui-kit-directives-lazy-loading.umd.js +1 -1
  168. package/bundles/taiga-ui-kit-directives-lazy-loading.umd.min.js +1 -1
  169. package/bundles/taiga-ui-kit-pipes-field-error.umd.js +421 -0
  170. package/bundles/taiga-ui-kit-pipes-field-error.umd.js.map +1 -0
  171. package/bundles/taiga-ui-kit-pipes-field-error.umd.min.js +16 -0
  172. package/bundles/taiga-ui-kit-pipes-field-error.umd.min.js.map +1 -0
  173. package/bundles/taiga-ui-kit-pipes.umd.js +12 -4
  174. package/bundles/taiga-ui-kit-pipes.umd.js.map +1 -1
  175. package/bundles/taiga-ui-kit-pipes.umd.min.js +1 -1
  176. package/bundles/taiga-ui-kit-providers.umd.js +29 -12
  177. package/bundles/taiga-ui-kit-providers.umd.js.map +1 -1
  178. package/bundles/taiga-ui-kit-providers.umd.min.js +1 -1
  179. package/bundles/taiga-ui-kit-providers.umd.min.js.map +1 -1
  180. package/bundles/taiga-ui-kit-tokens.umd.js +242 -4
  181. package/bundles/taiga-ui-kit-tokens.umd.js.map +1 -1
  182. package/bundles/taiga-ui-kit-tokens.umd.min.js +15 -1
  183. package/bundles/taiga-ui-kit-tokens.umd.min.js.map +1 -1
  184. package/components/accordion/taiga-ui-kit-components-accordion.metadata.json +1 -1
  185. package/components/arrow/arrow-options.d.ts +7 -5
  186. package/components/arrow/taiga-ui-kit-components-arrow.metadata.json +1 -1
  187. package/components/avatar/taiga-ui-kit-components-avatar.metadata.json +1 -1
  188. package/components/badge/taiga-ui-kit-components-badge.metadata.json +1 -1
  189. package/components/badged-content/taiga-ui-kit-components-badged-content.metadata.json +1 -1
  190. package/components/breadcrumbs/taiga-ui-kit-components-breadcrumbs.metadata.json +1 -1
  191. package/components/calendar-month/taiga-ui-kit-components-calendar-month.metadata.json +1 -1
  192. package/components/carousel/carousel-buttons.directive.d.ts +2 -2
  193. package/components/checkbox/checkbox.component.d.ts +2 -2
  194. package/components/checkbox/taiga-ui-kit-components-checkbox.metadata.json +1 -1
  195. package/components/checkbox-block/taiga-ui-kit-components-checkbox-block.metadata.json +1 -1
  196. package/components/checkbox-labeled/taiga-ui-kit-components-checkbox-labeled.metadata.json +1 -1
  197. package/components/combo-box/combo-box-strict.directive.d.ts +7 -0
  198. package/components/combo-box/combo-box.component.d.ts +8 -5
  199. package/components/combo-box/index.d.ts +1 -0
  200. package/components/combo-box/taiga-ui-kit-components-combo-box.metadata.json +1 -1
  201. package/components/data-list-wrapper/data-list-wrapper.component.d.ts +5 -3
  202. package/components/data-list-wrapper/taiga-ui-kit-components-data-list-wrapper.metadata.json +1 -1
  203. package/components/field-error/field-error.component.d.ts +1 -2
  204. package/components/field-error/field-error.module.d.ts +3 -0
  205. package/components/field-error/taiga-ui-kit-components-field-error.metadata.json +1 -1
  206. package/components/filter/taiga-ui-kit-components-filter.metadata.json +1 -1
  207. package/components/input-count/input-count-options.d.ts +10 -4
  208. package/components/input-count/input-count.component.d.ts +3 -3
  209. package/components/input-count/taiga-ui-kit-components-input-count.metadata.json +1 -1
  210. package/components/input-month/index.d.ts +1 -0
  211. package/components/input-month/input-month.component.d.ts +6 -4
  212. package/components/input-month/input-month.directive.d.ts +8 -1
  213. package/components/input-month/input-month.providers.d.ts +2 -0
  214. package/components/input-month/taiga-ui-kit-components-input-month.metadata.json +1 -1
  215. package/components/input-month-range/index.d.ts +1 -0
  216. package/components/input-month-range/input-month-range.component.d.ts +6 -7
  217. package/components/input-month-range/input-month-range.directive.d.ts +8 -1
  218. package/components/input-month-range/input-month-range.providers.d.ts +2 -0
  219. package/components/input-month-range/taiga-ui-kit-components-input-month-range.metadata.json +1 -1
  220. package/components/input-number/input-number.directive.d.ts +4 -1
  221. package/components/input-number/taiga-ui-kit-components-input-number.metadata.json +1 -1
  222. package/components/input-password/input-password-options.d.ts +10 -4
  223. package/components/input-password/input-password.component.d.ts +3 -3
  224. package/components/input-password/taiga-ui-kit-components-input-password.metadata.json +1 -1
  225. package/components/input-phone/input-phone.directive.d.ts +4 -1
  226. package/components/input-phone/taiga-ui-kit-components-input-phone.metadata.json +1 -1
  227. package/components/input-range/taiga-ui-kit-components-input-range.metadata.json +1 -1
  228. package/components/input-slider/taiga-ui-kit-components-input-slider.metadata.json +1 -1
  229. package/components/input-tag/index.d.ts +1 -0
  230. package/components/input-tag/input-tag-options.d.ts +7 -0
  231. package/components/input-tag/input-tag.component.d.ts +9 -4
  232. package/components/input-tag/taiga-ui-kit-components-input-tag.metadata.json +1 -1
  233. package/components/input-time/input-time-options.d.ts +10 -4
  234. package/components/input-time/input-time.component.d.ts +6 -6
  235. package/components/input-time/taiga-ui-kit-components-input-time.metadata.json +1 -1
  236. package/components/line-clamp/line-clamp.component.d.ts +7 -3
  237. package/components/line-clamp/taiga-ui-kit-components-line-clamp.metadata.json +1 -1
  238. package/components/marker-icon/taiga-ui-kit-components-marker-icon.metadata.json +1 -1
  239. package/components/multi-select/hide-selected.pipe.d.ts +1 -1
  240. package/components/multi-select/index.d.ts +1 -0
  241. package/components/multi-select/multi-select-options.d.ts +10 -0
  242. package/components/multi-select/multi-select.component.d.ts +14 -8
  243. package/components/multi-select/taiga-ui-kit-components-multi-select.metadata.json +1 -1
  244. package/components/progress/index.d.ts +4 -3
  245. package/components/progress/progress-bar/progress-color-segments.directive.d.ts +11 -0
  246. package/components/progress/taiga-ui-kit-components-progress.metadata.json +1 -1
  247. package/components/progress/{pipes → utils}/abstract-color-segments.d.ts +0 -0
  248. package/components/progress/utils/calculate-color-segments.d.ts +5 -0
  249. package/components/progress/{pipes → utils}/progress-color-segments-async.pipe.d.ts +5 -0
  250. package/components/progress/utils/progress-color-segments.pipe.d.ts +9 -0
  251. package/components/radio/radio-options.d.ts +10 -4
  252. package/components/radio/radio.component.d.ts +2 -2
  253. package/components/radio/taiga-ui-kit-components-radio.metadata.json +1 -1
  254. package/components/radio-block/taiga-ui-kit-components-radio-block.metadata.json +1 -1
  255. package/components/radio-labeled/taiga-ui-kit-components-radio-labeled.metadata.json +1 -1
  256. package/components/radio-list/taiga-ui-kit-components-radio-list.metadata.json +1 -1
  257. package/components/range/taiga-ui-kit-components-range.metadata.json +1 -1
  258. package/components/rating/rating-options.d.ts +2 -1
  259. package/components/rating/taiga-ui-kit-components-rating.metadata.json +1 -1
  260. package/components/select/index.d.ts +1 -0
  261. package/components/select/select-options.d.ts +9 -0
  262. package/components/select/select.component.d.ts +9 -4
  263. package/components/select/taiga-ui-kit-components-select.metadata.json +1 -1
  264. package/components/slider/index.d.ts +3 -0
  265. package/components/slider/slider-key-steps.directive.d.ts +17 -0
  266. package/components/slider/slider-old.component.d.ts +19 -0
  267. package/components/slider/slider-options.d.ts +9 -0
  268. package/components/slider/slider.component.d.ts +18 -13
  269. package/components/slider/taiga-ui-kit-components-slider.metadata.json +1 -1
  270. package/components/tag/tag.component.d.ts +1 -0
  271. package/components/tag/taiga-ui-kit-components-tag.metadata.json +1 -1
  272. package/components/text-area/index.d.ts +1 -0
  273. package/components/text-area/taiga-ui-kit-components-text-area.metadata.json +1 -1
  274. package/components/text-area/text-area.component.d.ts +2 -1
  275. package/components/text-area/text-area.directive.d.ts +5 -0
  276. package/components/toggle/taiga-ui-kit-components-toggle.metadata.json +1 -1
  277. package/components/toggle/toggle-options.d.ts +10 -4
  278. package/components/toggle/toggle.component.d.ts +3 -3
  279. package/directives/dropdown-selection/dropdown-selection.directive.d.ts +2 -2
  280. package/directives/dropdown-selection/taiga-ui-kit-directives-dropdown-selection.metadata.json +1 -1
  281. package/directives/lazy-loading/index.d.ts +1 -0
  282. package/directives/lazy-loading/taiga-ui-kit-directives-lazy-loading.d.ts +0 -1
  283. package/directives/lazy-loading/taiga-ui-kit-directives-lazy-loading.metadata.json +1 -1
  284. package/esm2015/abstract/input-slider.js +2 -2
  285. package/esm2015/abstract/slider/slider.js +2 -2
  286. package/esm2015/components/accordion/accordion-item/accordion-item.component.js +3 -3
  287. package/esm2015/components/arrow/arrow-options.js +13 -2
  288. package/esm2015/components/avatar/avatar.component.js +3 -3
  289. package/esm2015/components/badge/badge.component.js +3 -3
  290. package/esm2015/components/badged-content/badged-content.component.js +3 -3
  291. package/esm2015/components/breadcrumbs/breadcrumbs.component.js +3 -3
  292. package/esm2015/components/calendar-month/calendar-month.component.js +3 -3
  293. package/esm2015/components/carousel/carousel-buttons.directive.js +1 -1
  294. package/esm2015/components/checkbox/checkbox.component.js +3 -3
  295. package/esm2015/components/checkbox-block/checkbox-block.component.js +3 -3
  296. package/esm2015/components/checkbox-labeled/checkbox-labeled.component.js +3 -3
  297. package/esm2015/components/combo-box/combo-box-strict.directive.js +31 -0
  298. package/esm2015/components/combo-box/combo-box.component.js +24 -18
  299. package/esm2015/components/combo-box/combo-box.module.js +13 -3
  300. package/esm2015/components/combo-box/index.js +2 -1
  301. package/esm2015/components/data-list-wrapper/data-list-wrapper.component.js +17 -11
  302. package/esm2015/components/field-error/field-error.component.js +8 -12
  303. package/esm2015/components/field-error/field-error.module.js +6 -2
  304. package/esm2015/components/filter/filter.component.js +3 -3
  305. package/esm2015/components/input-count/input-count-options.js +5 -1
  306. package/esm2015/components/input-count/input-count.component.js +3 -3
  307. package/esm2015/components/input-month/index.js +2 -1
  308. package/esm2015/components/input-month/input-month.component.js +19 -25
  309. package/esm2015/components/input-month/input-month.directive.js +32 -7
  310. package/esm2015/components/input-month/input-month.module.js +4 -4
  311. package/esm2015/components/input-month/input-month.providers.js +19 -0
  312. package/esm2015/components/input-month-range/index.js +2 -1
  313. package/esm2015/components/input-month-range/input-month-range.component.js +21 -37
  314. package/esm2015/components/input-month-range/input-month-range.directive.js +37 -7
  315. package/esm2015/components/input-month-range/input-month-range.module.js +3 -2
  316. package/esm2015/components/input-month-range/input-month-range.providers.js +19 -0
  317. package/esm2015/components/input-number/input-number.directive.js +9 -3
  318. package/esm2015/components/input-password/input-password-options.js +5 -1
  319. package/esm2015/components/input-password/input-password.component.js +2 -2
  320. package/esm2015/components/input-phone/input-phone.directive.js +9 -3
  321. package/esm2015/components/input-range/input-range.component.js +3 -3
  322. package/esm2015/components/input-slider/input-slider.component.js +3 -3
  323. package/esm2015/components/input-tag/index.js +2 -1
  324. package/esm2015/components/input-tag/input-tag-options.js +9 -0
  325. package/esm2015/components/input-tag/input-tag.component.js +40 -17
  326. package/esm2015/components/input-time/input-time-options.js +5 -1
  327. package/esm2015/components/input-time/input-time.component.js +1 -1
  328. package/esm2015/components/line-clamp/line-clamp.component.js +25 -15
  329. package/esm2015/components/line-clamp/line-clamp.directive.js +2 -1
  330. package/esm2015/components/marker-icon/marker-icon.component.js +3 -3
  331. package/esm2015/components/multi-select/hide-selected.pipe.js +4 -3
  332. package/esm2015/components/multi-select/index.js +2 -1
  333. package/esm2015/components/multi-select/multi-select-options.js +13 -0
  334. package/esm2015/components/multi-select/multi-select.component.js +30 -12
  335. package/esm2015/components/progress/index.js +5 -4
  336. package/esm2015/components/progress/progress-bar/progress-color-segments.directive.js +48 -0
  337. package/esm2015/components/progress/progress.module.js +6 -3
  338. package/esm2015/components/progress/utils/abstract-color-segments.js +32 -0
  339. package/esm2015/components/progress/utils/calculate-color-segments.js +10 -0
  340. package/esm2015/components/progress/utils/progress-color-segments-async.pipe.js +21 -0
  341. package/esm2015/components/progress/utils/progress-color-segments.pipe.js +19 -0
  342. package/esm2015/components/radio/radio-options.js +5 -1
  343. package/esm2015/components/radio/radio.component.js +3 -3
  344. package/esm2015/components/radio-block/radio-block.component.js +3 -3
  345. package/esm2015/components/radio-labeled/radio-labeled.component.js +3 -3
  346. package/esm2015/components/radio-list/radio-list.component.js +3 -3
  347. package/esm2015/components/range/range.component.js +1 -1
  348. package/esm2015/components/rating/rating-options.js +5 -1
  349. package/esm2015/components/select/index.js +2 -1
  350. package/esm2015/components/select/select-options.js +12 -0
  351. package/esm2015/components/select/select.component.js +21 -8
  352. package/esm2015/components/slider/index.js +4 -1
  353. package/esm2015/components/slider/slider-key-steps.directive.js +81 -0
  354. package/esm2015/components/slider/slider-old.component.js +71 -0
  355. package/esm2015/components/slider/slider-options.js +11 -0
  356. package/esm2015/components/slider/slider.component.js +86 -44
  357. package/esm2015/components/slider/slider.module.js +5 -3
  358. package/esm2015/components/tag/tag.component.js +10 -4
  359. package/esm2015/components/text-area/index.js +2 -1
  360. package/esm2015/components/text-area/text-area.component.js +21 -13
  361. package/esm2015/components/text-area/text-area.directive.js +22 -0
  362. package/esm2015/components/text-area/text-area.module.js +7 -6
  363. package/esm2015/components/text-area/text-area.providers.js +6 -2
  364. package/esm2015/components/toggle/toggle-options.js +5 -1
  365. package/esm2015/components/toggle/toggle.component.js +3 -3
  366. package/esm2015/directives/dropdown-selection/dropdown-selection.directive.js +23 -6
  367. package/esm2015/directives/lazy-loading/index.js +2 -1
  368. package/esm2015/directives/lazy-loading/taiga-ui-kit-directives-lazy-loading.js +1 -2
  369. package/esm2015/pipes/field-error/field-error-content-pipe.js +35 -0
  370. package/esm2015/pipes/field-error/field-error-pipe.js +120 -0
  371. package/esm2015/pipes/field-error/field-error.module.js +14 -0
  372. package/esm2015/pipes/field-error/index.js +4 -0
  373. package/esm2015/pipes/field-error/taiga-ui-kit-pipes-field-error.js +5 -0
  374. package/esm2015/pipes/index.js +2 -1
  375. package/esm2015/providers/index.js +2 -1
  376. package/esm2015/providers/month-formatter.provider.js +17 -0
  377. package/esm2015/providers/value-accessor.provider.js +2 -2
  378. package/esm2015/tokens/index.js +3 -1
  379. package/esm2015/tokens/items-handlers.js +15 -0
  380. package/esm2015/tokens/month-formatter.js +3 -0
  381. package/esm5/abstract/input-slider.js +2 -2
  382. package/esm5/abstract/slider/slider.js +2 -2
  383. package/esm5/components/accordion/accordion-item/accordion-item.component.js +3 -3
  384. package/esm5/components/arrow/arrow-options.js +14 -2
  385. package/esm5/components/avatar/avatar.component.js +3 -3
  386. package/esm5/components/badge/badge.component.js +3 -3
  387. package/esm5/components/badged-content/badged-content.component.js +3 -3
  388. package/esm5/components/breadcrumbs/breadcrumbs.component.js +3 -3
  389. package/esm5/components/calendar-month/calendar-month.component.js +3 -3
  390. package/esm5/components/carousel/carousel-buttons.directive.js +1 -1
  391. package/esm5/components/checkbox/checkbox.component.js +3 -3
  392. package/esm5/components/checkbox-block/checkbox-block.component.js +3 -3
  393. package/esm5/components/checkbox-labeled/checkbox-labeled.component.js +3 -3
  394. package/esm5/components/combo-box/combo-box-strict.directive.js +32 -0
  395. package/esm5/components/combo-box/combo-box.component.js +24 -18
  396. package/esm5/components/combo-box/combo-box.module.js +13 -3
  397. package/esm5/components/combo-box/index.js +2 -1
  398. package/esm5/components/data-list-wrapper/data-list-wrapper.component.js +18 -11
  399. package/esm5/components/field-error/field-error.component.js +8 -16
  400. package/esm5/components/field-error/field-error.module.js +6 -2
  401. package/esm5/components/filter/filter.component.js +3 -3
  402. package/esm5/components/input-count/input-count-options.js +6 -1
  403. package/esm5/components/input-count/input-count.component.js +3 -3
  404. package/esm5/components/input-month/index.js +2 -1
  405. package/esm5/components/input-month/input-month.component.js +18 -25
  406. package/esm5/components/input-month/input-month.directive.js +32 -9
  407. package/esm5/components/input-month/input-month.module.js +4 -4
  408. package/esm5/components/input-month/input-month.providers.js +19 -0
  409. package/esm5/components/input-month-range/index.js +2 -1
  410. package/esm5/components/input-month-range/input-month-range.component.js +20 -38
  411. package/esm5/components/input-month-range/input-month-range.directive.js +38 -8
  412. package/esm5/components/input-month-range/input-month-range.module.js +3 -2
  413. package/esm5/components/input-month-range/input-month-range.providers.js +19 -0
  414. package/esm5/components/input-number/input-number.directive.js +9 -3
  415. package/esm5/components/input-password/input-password-options.js +6 -1
  416. package/esm5/components/input-password/input-password.component.js +2 -2
  417. package/esm5/components/input-phone/input-phone.directive.js +9 -3
  418. package/esm5/components/input-range/input-range.component.js +3 -3
  419. package/esm5/components/input-slider/input-slider.component.js +3 -3
  420. package/esm5/components/input-tag/index.js +2 -1
  421. package/esm5/components/input-tag/input-tag-options.js +9 -0
  422. package/esm5/components/input-tag/input-tag.component.js +45 -18
  423. package/esm5/components/input-time/input-time-options.js +6 -1
  424. package/esm5/components/input-time/input-time.component.js +1 -1
  425. package/esm5/components/line-clamp/line-clamp.component.js +26 -16
  426. package/esm5/components/line-clamp/line-clamp.directive.js +2 -1
  427. package/esm5/components/marker-icon/marker-icon.component.js +3 -3
  428. package/esm5/components/multi-select/hide-selected.pipe.js +4 -4
  429. package/esm5/components/multi-select/index.js +2 -1
  430. package/esm5/components/multi-select/multi-select-options.js +14 -0
  431. package/esm5/components/multi-select/multi-select.component.js +34 -12
  432. package/esm5/components/progress/index.js +5 -4
  433. package/esm5/components/progress/progress-bar/progress-color-segments.directive.js +56 -0
  434. package/esm5/components/progress/progress.module.js +6 -3
  435. package/esm5/components/progress/utils/abstract-color-segments.js +33 -0
  436. package/esm5/components/progress/utils/calculate-color-segments.js +12 -0
  437. package/esm5/components/progress/utils/progress-color-segments-async.pipe.js +27 -0
  438. package/esm5/components/progress/utils/progress-color-segments.pipe.js +24 -0
  439. package/esm5/components/radio/radio-options.js +6 -1
  440. package/esm5/components/radio/radio.component.js +3 -3
  441. package/esm5/components/radio-block/radio-block.component.js +3 -3
  442. package/esm5/components/radio-labeled/radio-labeled.component.js +3 -3
  443. package/esm5/components/radio-list/radio-list.component.js +3 -3
  444. package/esm5/components/range/range.component.js +1 -1
  445. package/esm5/components/rating/rating-options.js +6 -1
  446. package/esm5/components/select/index.js +2 -1
  447. package/esm5/components/select/select-options.js +13 -0
  448. package/esm5/components/select/select.component.js +21 -8
  449. package/esm5/components/slider/index.js +4 -1
  450. package/esm5/components/slider/slider-key-steps.directive.js +102 -0
  451. package/esm5/components/slider/slider-old.component.js +90 -0
  452. package/esm5/components/slider/slider-options.js +12 -0
  453. package/esm5/components/slider/slider.component.js +103 -51
  454. package/esm5/components/slider/slider.module.js +5 -3
  455. package/esm5/components/tag/tag.component.js +10 -4
  456. package/esm5/components/text-area/index.js +2 -1
  457. package/esm5/components/text-area/text-area.component.js +21 -13
  458. package/esm5/components/text-area/text-area.directive.js +28 -0
  459. package/esm5/components/text-area/text-area.module.js +7 -6
  460. package/esm5/components/text-area/text-area.providers.js +6 -2
  461. package/esm5/components/toggle/toggle-options.js +6 -1
  462. package/esm5/components/toggle/toggle.component.js +3 -3
  463. package/esm5/directives/dropdown-selection/dropdown-selection.directive.js +23 -6
  464. package/esm5/directives/lazy-loading/index.js +2 -1
  465. package/esm5/directives/lazy-loading/taiga-ui-kit-directives-lazy-loading.js +1 -2
  466. package/esm5/pipes/field-error/field-error-content-pipe.js +36 -0
  467. package/esm5/pipes/field-error/field-error-pipe.js +153 -0
  468. package/esm5/pipes/field-error/field-error.module.js +17 -0
  469. package/esm5/pipes/field-error/index.js +4 -0
  470. package/esm5/pipes/field-error/taiga-ui-kit-pipes-field-error.js +5 -0
  471. package/esm5/pipes/index.js +2 -1
  472. package/esm5/providers/index.js +2 -1
  473. package/esm5/providers/month-formatter.provider.js +19 -0
  474. package/esm5/providers/value-accessor.provider.js +2 -2
  475. package/esm5/tokens/index.js +3 -1
  476. package/esm5/tokens/items-handlers.js +16 -0
  477. package/esm5/tokens/month-formatter.js +3 -0
  478. package/fesm2015/taiga-ui-kit-abstract.js +2 -2
  479. package/fesm2015/taiga-ui-kit-abstract.js.map +1 -1
  480. package/fesm2015/taiga-ui-kit-components-accordion.js +2 -2
  481. package/fesm2015/taiga-ui-kit-components-accordion.js.map +1 -1
  482. package/fesm2015/taiga-ui-kit-components-arrow.js +13 -2
  483. package/fesm2015/taiga-ui-kit-components-arrow.js.map +1 -1
  484. package/fesm2015/taiga-ui-kit-components-avatar.js +2 -2
  485. package/fesm2015/taiga-ui-kit-components-avatar.js.map +1 -1
  486. package/fesm2015/taiga-ui-kit-components-badge.js +2 -2
  487. package/fesm2015/taiga-ui-kit-components-badge.js.map +1 -1
  488. package/fesm2015/taiga-ui-kit-components-badged-content.js +2 -2
  489. package/fesm2015/taiga-ui-kit-components-badged-content.js.map +1 -1
  490. package/fesm2015/taiga-ui-kit-components-breadcrumbs.js +2 -2
  491. package/fesm2015/taiga-ui-kit-components-breadcrumbs.js.map +1 -1
  492. package/fesm2015/taiga-ui-kit-components-calendar-month.js +2 -2
  493. package/fesm2015/taiga-ui-kit-components-calendar-month.js.map +1 -1
  494. package/fesm2015/taiga-ui-kit-components-carousel.js.map +1 -1
  495. package/fesm2015/taiga-ui-kit-components-checkbox-block.js +2 -2
  496. package/fesm2015/taiga-ui-kit-components-checkbox-block.js.map +1 -1
  497. package/fesm2015/taiga-ui-kit-components-checkbox-labeled.js +2 -2
  498. package/fesm2015/taiga-ui-kit-components-checkbox-labeled.js.map +1 -1
  499. package/fesm2015/taiga-ui-kit-components-checkbox.js +2 -2
  500. package/fesm2015/taiga-ui-kit-components-checkbox.js.map +1 -1
  501. package/fesm2015/taiga-ui-kit-components-combo-box.js +62 -21
  502. package/fesm2015/taiga-ui-kit-components-combo-box.js.map +1 -1
  503. package/fesm2015/taiga-ui-kit-components-data-list-wrapper.js +16 -10
  504. package/fesm2015/taiga-ui-kit-components-data-list-wrapper.js.map +1 -1
  505. package/fesm2015/taiga-ui-kit-components-field-error.js +12 -13
  506. package/fesm2015/taiga-ui-kit-components-field-error.js.map +1 -1
  507. package/fesm2015/taiga-ui-kit-components-filter.js +2 -2
  508. package/fesm2015/taiga-ui-kit-components-filter.js.map +1 -1
  509. package/fesm2015/taiga-ui-kit-components-input-count.js +7 -3
  510. package/fesm2015/taiga-ui-kit-components-input-count.js.map +1 -1
  511. package/fesm2015/taiga-ui-kit-components-input-month-range.js +67 -41
  512. package/fesm2015/taiga-ui-kit-components-input-month-range.js.map +1 -1
  513. package/fesm2015/taiga-ui-kit-components-input-month.js +61 -31
  514. package/fesm2015/taiga-ui-kit-components-input-month.js.map +1 -1
  515. package/fesm2015/taiga-ui-kit-components-input-number.js +8 -2
  516. package/fesm2015/taiga-ui-kit-components-input-number.js.map +1 -1
  517. package/fesm2015/taiga-ui-kit-components-input-password.js +5 -1
  518. package/fesm2015/taiga-ui-kit-components-input-password.js.map +1 -1
  519. package/fesm2015/taiga-ui-kit-components-input-phone.js +8 -2
  520. package/fesm2015/taiga-ui-kit-components-input-phone.js.map +1 -1
  521. package/fesm2015/taiga-ui-kit-components-input-range.js +2 -2
  522. package/fesm2015/taiga-ui-kit-components-input-range.js.map +1 -1
  523. package/fesm2015/taiga-ui-kit-components-input-slider.js +2 -2
  524. package/fesm2015/taiga-ui-kit-components-input-slider.js.map +1 -1
  525. package/fesm2015/taiga-ui-kit-components-input-tag.js +48 -18
  526. package/fesm2015/taiga-ui-kit-components-input-tag.js.map +1 -1
  527. package/fesm2015/taiga-ui-kit-components-input-time.js +5 -1
  528. package/fesm2015/taiga-ui-kit-components-input-time.js.map +1 -1
  529. package/fesm2015/taiga-ui-kit-components-line-clamp.js +25 -14
  530. package/fesm2015/taiga-ui-kit-components-line-clamp.js.map +1 -1
  531. package/fesm2015/taiga-ui-kit-components-marker-icon.js +2 -2
  532. package/fesm2015/taiga-ui-kit-components-marker-icon.js.map +1 -1
  533. package/fesm2015/taiga-ui-kit-components-multi-select.js +45 -15
  534. package/fesm2015/taiga-ui-kit-components-multi-select.js.map +1 -1
  535. package/fesm2015/taiga-ui-kit-components-progress.js +113 -55
  536. package/fesm2015/taiga-ui-kit-components-progress.js.map +1 -1
  537. package/fesm2015/taiga-ui-kit-components-radio-block.js +2 -2
  538. package/fesm2015/taiga-ui-kit-components-radio-block.js.map +1 -1
  539. package/fesm2015/taiga-ui-kit-components-radio-labeled.js +2 -2
  540. package/fesm2015/taiga-ui-kit-components-radio-labeled.js.map +1 -1
  541. package/fesm2015/taiga-ui-kit-components-radio-list.js +2 -2
  542. package/fesm2015/taiga-ui-kit-components-radio-list.js.map +1 -1
  543. package/fesm2015/taiga-ui-kit-components-radio.js +7 -3
  544. package/fesm2015/taiga-ui-kit-components-radio.js.map +1 -1
  545. package/fesm2015/taiga-ui-kit-components-range.js +1 -1
  546. package/fesm2015/taiga-ui-kit-components-rating.js +5 -1
  547. package/fesm2015/taiga-ui-kit-components-rating.js.map +1 -1
  548. package/fesm2015/taiga-ui-kit-components-select.js +32 -9
  549. package/fesm2015/taiga-ui-kit-components-select.js.map +1 -1
  550. package/fesm2015/taiga-ui-kit-components-slider.js +206 -14
  551. package/fesm2015/taiga-ui-kit-components-slider.js.map +1 -1
  552. package/fesm2015/taiga-ui-kit-components-tag.js +9 -3
  553. package/fesm2015/taiga-ui-kit-components-tag.js.map +1 -1
  554. package/fesm2015/taiga-ui-kit-components-text-area.js +47 -17
  555. package/fesm2015/taiga-ui-kit-components-text-area.js.map +1 -1
  556. package/fesm2015/taiga-ui-kit-components-toggle.js +7 -3
  557. package/fesm2015/taiga-ui-kit-components-toggle.js.map +1 -1
  558. package/fesm2015/taiga-ui-kit-directives-dropdown-selection.js +22 -5
  559. package/fesm2015/taiga-ui-kit-directives-dropdown-selection.js.map +1 -1
  560. package/fesm2015/taiga-ui-kit-directives-lazy-loading.js +1 -1
  561. package/fesm2015/taiga-ui-kit-directives-lazy-loading.js.map +1 -1
  562. package/fesm2015/taiga-ui-kit-pipes-field-error.js +166 -0
  563. package/fesm2015/taiga-ui-kit-pipes-field-error.js.map +1 -0
  564. package/fesm2015/taiga-ui-kit-pipes.js +1 -0
  565. package/fesm2015/taiga-ui-kit-pipes.js.map +1 -1
  566. package/fesm2015/taiga-ui-kit-providers.js +18 -4
  567. package/fesm2015/taiga-ui-kit-providers.js.map +1 -1
  568. package/fesm2015/taiga-ui-kit-tokens.js +17 -1
  569. package/fesm2015/taiga-ui-kit-tokens.js.map +1 -1
  570. package/fesm5/taiga-ui-kit-abstract.js +2 -2
  571. package/fesm5/taiga-ui-kit-abstract.js.map +1 -1
  572. package/fesm5/taiga-ui-kit-components-accordion.js +2 -2
  573. package/fesm5/taiga-ui-kit-components-accordion.js.map +1 -1
  574. package/fesm5/taiga-ui-kit-components-arrow.js +14 -3
  575. package/fesm5/taiga-ui-kit-components-arrow.js.map +1 -1
  576. package/fesm5/taiga-ui-kit-components-avatar.js +2 -2
  577. package/fesm5/taiga-ui-kit-components-avatar.js.map +1 -1
  578. package/fesm5/taiga-ui-kit-components-badge.js +2 -2
  579. package/fesm5/taiga-ui-kit-components-badge.js.map +1 -1
  580. package/fesm5/taiga-ui-kit-components-badged-content.js +2 -2
  581. package/fesm5/taiga-ui-kit-components-badged-content.js.map +1 -1
  582. package/fesm5/taiga-ui-kit-components-breadcrumbs.js +2 -2
  583. package/fesm5/taiga-ui-kit-components-breadcrumbs.js.map +1 -1
  584. package/fesm5/taiga-ui-kit-components-calendar-month.js +2 -2
  585. package/fesm5/taiga-ui-kit-components-calendar-month.js.map +1 -1
  586. package/fesm5/taiga-ui-kit-components-carousel.js.map +1 -1
  587. package/fesm5/taiga-ui-kit-components-checkbox-block.js +2 -2
  588. package/fesm5/taiga-ui-kit-components-checkbox-block.js.map +1 -1
  589. package/fesm5/taiga-ui-kit-components-checkbox-labeled.js +2 -2
  590. package/fesm5/taiga-ui-kit-components-checkbox-labeled.js.map +1 -1
  591. package/fesm5/taiga-ui-kit-components-checkbox.js +2 -2
  592. package/fesm5/taiga-ui-kit-components-checkbox.js.map +1 -1
  593. package/fesm5/taiga-ui-kit-components-combo-box.js +63 -21
  594. package/fesm5/taiga-ui-kit-components-combo-box.js.map +1 -1
  595. package/fesm5/taiga-ui-kit-components-data-list-wrapper.js +17 -10
  596. package/fesm5/taiga-ui-kit-components-data-list-wrapper.js.map +1 -1
  597. package/fesm5/taiga-ui-kit-components-field-error.js +12 -17
  598. package/fesm5/taiga-ui-kit-components-field-error.js.map +1 -1
  599. package/fesm5/taiga-ui-kit-components-filter.js +2 -2
  600. package/fesm5/taiga-ui-kit-components-filter.js.map +1 -1
  601. package/fesm5/taiga-ui-kit-components-input-count.js +8 -4
  602. package/fesm5/taiga-ui-kit-components-input-count.js.map +1 -1
  603. package/fesm5/taiga-ui-kit-components-input-month-range.js +68 -44
  604. package/fesm5/taiga-ui-kit-components-input-month-range.js.map +1 -1
  605. package/fesm5/taiga-ui-kit-components-input-month.js +60 -33
  606. package/fesm5/taiga-ui-kit-components-input-month.js.map +1 -1
  607. package/fesm5/taiga-ui-kit-components-input-number.js +8 -2
  608. package/fesm5/taiga-ui-kit-components-input-number.js.map +1 -1
  609. package/fesm5/taiga-ui-kit-components-input-password.js +6 -2
  610. package/fesm5/taiga-ui-kit-components-input-password.js.map +1 -1
  611. package/fesm5/taiga-ui-kit-components-input-phone.js +8 -2
  612. package/fesm5/taiga-ui-kit-components-input-phone.js.map +1 -1
  613. package/fesm5/taiga-ui-kit-components-input-range.js +2 -2
  614. package/fesm5/taiga-ui-kit-components-input-range.js.map +1 -1
  615. package/fesm5/taiga-ui-kit-components-input-slider.js +2 -2
  616. package/fesm5/taiga-ui-kit-components-input-slider.js.map +1 -1
  617. package/fesm5/taiga-ui-kit-components-input-tag.js +53 -19
  618. package/fesm5/taiga-ui-kit-components-input-tag.js.map +1 -1
  619. package/fesm5/taiga-ui-kit-components-input-time.js +6 -2
  620. package/fesm5/taiga-ui-kit-components-input-time.js.map +1 -1
  621. package/fesm5/taiga-ui-kit-components-line-clamp.js +26 -15
  622. package/fesm5/taiga-ui-kit-components-line-clamp.js.map +1 -1
  623. package/fesm5/taiga-ui-kit-components-marker-icon.js +2 -2
  624. package/fesm5/taiga-ui-kit-components-marker-icon.js.map +1 -1
  625. package/fesm5/taiga-ui-kit-components-multi-select.js +50 -17
  626. package/fesm5/taiga-ui-kit-components-multi-select.js.map +1 -1
  627. package/fesm5/taiga-ui-kit-components-progress.js +135 -69
  628. package/fesm5/taiga-ui-kit-components-progress.js.map +1 -1
  629. package/fesm5/taiga-ui-kit-components-radio-block.js +2 -2
  630. package/fesm5/taiga-ui-kit-components-radio-block.js.map +1 -1
  631. package/fesm5/taiga-ui-kit-components-radio-labeled.js +2 -2
  632. package/fesm5/taiga-ui-kit-components-radio-labeled.js.map +1 -1
  633. package/fesm5/taiga-ui-kit-components-radio-list.js +2 -2
  634. package/fesm5/taiga-ui-kit-components-radio-list.js.map +1 -1
  635. package/fesm5/taiga-ui-kit-components-radio.js +8 -4
  636. package/fesm5/taiga-ui-kit-components-radio.js.map +1 -1
  637. package/fesm5/taiga-ui-kit-components-range.js +1 -1
  638. package/fesm5/taiga-ui-kit-components-rating.js +6 -2
  639. package/fesm5/taiga-ui-kit-components-rating.js.map +1 -1
  640. package/fesm5/taiga-ui-kit-components-select.js +33 -10
  641. package/fesm5/taiga-ui-kit-components-select.js.map +1 -1
  642. package/fesm5/taiga-ui-kit-components-slider.js +268 -26
  643. package/fesm5/taiga-ui-kit-components-slider.js.map +1 -1
  644. package/fesm5/taiga-ui-kit-components-tag.js +9 -3
  645. package/fesm5/taiga-ui-kit-components-tag.js.map +1 -1
  646. package/fesm5/taiga-ui-kit-components-text-area.js +53 -17
  647. package/fesm5/taiga-ui-kit-components-text-area.js.map +1 -1
  648. package/fesm5/taiga-ui-kit-components-toggle.js +8 -4
  649. package/fesm5/taiga-ui-kit-components-toggle.js.map +1 -1
  650. package/fesm5/taiga-ui-kit-directives-dropdown-selection.js +22 -5
  651. package/fesm5/taiga-ui-kit-directives-dropdown-selection.js.map +1 -1
  652. package/fesm5/taiga-ui-kit-directives-lazy-loading.js +1 -1
  653. package/fesm5/taiga-ui-kit-directives-lazy-loading.js.map +1 -1
  654. package/fesm5/taiga-ui-kit-pipes-field-error.js +203 -0
  655. package/fesm5/taiga-ui-kit-pipes-field-error.js.map +1 -0
  656. package/fesm5/taiga-ui-kit-pipes.js +1 -0
  657. package/fesm5/taiga-ui-kit-pipes.js.map +1 -1
  658. package/fesm5/taiga-ui-kit-providers.js +20 -4
  659. package/fesm5/taiga-ui-kit-providers.js.map +1 -1
  660. package/fesm5/taiga-ui-kit-tokens.js +18 -1
  661. package/fesm5/taiga-ui-kit-tokens.js.map +1 -1
  662. package/package.json +4 -4
  663. package/pipes/field-error/field-error-content-pipe.d.ts +11 -0
  664. package/pipes/field-error/field-error-pipe.d.ts +29 -0
  665. package/pipes/field-error/field-error.module.d.ts +2 -0
  666. package/pipes/field-error/index.d.ts +3 -0
  667. package/pipes/field-error/package.json +13 -0
  668. package/pipes/field-error/taiga-ui-kit-pipes-field-error.d.ts +4 -0
  669. package/pipes/field-error/taiga-ui-kit-pipes-field-error.metadata.json +1 -0
  670. package/pipes/index.d.ts +1 -0
  671. package/pipes/taiga-ui-kit-pipes.metadata.json +1 -1
  672. package/providers/index.d.ts +1 -0
  673. package/providers/month-formatter.provider.d.ts +6 -0
  674. package/providers/taiga-ui-kit-providers.metadata.json +1 -1
  675. package/tokens/index.d.ts +2 -0
  676. package/tokens/items-handlers.d.ts +10 -0
  677. package/tokens/month-formatter.d.ts +4 -0
  678. package/tokens/taiga-ui-kit-tokens.metadata.json +1 -1
  679. package/components/progress/pipes/progress-color-segments.pipe.d.ts +0 -9
  680. package/esm2015/components/progress/pipes/abstract-color-segments.js +0 -32
  681. package/esm2015/components/progress/pipes/progress-color-segments-async.pipe.js +0 -15
  682. package/esm2015/components/progress/pipes/progress-color-segments.pipe.js +0 -18
  683. package/esm5/components/progress/pipes/abstract-color-segments.js +0 -35
  684. package/esm5/components/progress/pipes/progress-color-segments-async.pipe.js +0 -21
  685. package/esm5/components/progress/pipes/progress-color-segments.pipe.js +0 -23
@@ -1,32 +1,48 @@
1
- import { __extends, __spread, __decorate, __param, __read } from 'tslib';
2
- import { EventEmitter, Optional, Self, Inject, ChangeDetectorRef, ContentChild, ViewChild, Input, HostBinding, Output, TemplateRef, Component, ChangeDetectionStrategy, forwardRef, Pipe, ContentChildren, Directive, NgModule } from '@angular/core';
3
- import { TUI_DEFAULT_STRINGIFY, TUI_DEFAULT_IDENTITY_MATCHER, ALWAYS_FALSE_HANDLER, EMPTY_ARRAY, isNativeFocused, setNativeFocused, tuiDefaultProp, tuiPure, TUI_FOCUSABLE_ITEM_ACCESSOR, AbstractTuiMultipleControl, EMPTY_QUERY, itemsQueryListObservable, getOriginalArrayFromQueryList, isPresent, tuiReplayedValueChangesFrom, EMPTY_FUNCTION, TuiPreventDefaultModule, TuiActiveZoneModule, TuiLetModule, TuiMapperPipeModule, TuiHoveredModule } from '@taiga-ui/cdk';
1
+ import { __assign, __extends, __spread, __decorate, __param, __read } from 'tslib';
2
+ import { InjectionToken, EventEmitter, Optional, Self, Inject, ChangeDetectorRef, ContentChild, ViewChild, Input, HostBinding, Output, TemplateRef, Component, ChangeDetectionStrategy, forwardRef, Pipe, ContentChildren, Directive, NgModule } from '@angular/core';
3
+ import { EMPTY_ARRAY, isNativeFocused, setNativeFocused, tuiDefaultProp, tuiPure, TUI_FOCUSABLE_ITEM_ACCESSOR, AbstractTuiMultipleControl, EMPTY_QUERY, itemsQueryListObservable, getOriginalArrayFromQueryList, TUI_DEFAULT_IDENTITY_MATCHER, isPresent, tuiReplayedValueChangesFrom, EMPTY_FUNCTION, TuiPreventDefaultModule, TuiActiveZoneModule, TuiLetModule, TuiMapperPipeModule, TuiHoveredModule } from '@taiga-ui/cdk';
4
4
  import { isFlat } from '@taiga-ui/kit/utils';
5
5
  import { NgControl, NG_VALUE_ACCESSOR, FormsModule } from '@angular/forms';
6
- import { TuiSvgService, TUI_DATA_LIST_ACCESSOR, TuiHostedDropdownComponent, TuiDataListDirective, TUI_DATA_LIST_HOST, sizeBigger, TuiOptionComponent, TUI_OPTION_CONTENT, TuiSvgModule, TuiHostedDropdownModule, TuiPrimitiveCheckboxModule, TuiDataListModule } from '@taiga-ui/core';
6
+ import { TuiSvgService, TuiTextfieldController, TUI_TEXTFIELD_WATCHED_CONTROLLER, TUI_DATA_LIST_ACCESSOR, TuiHostedDropdownComponent, TuiDataListDirective, TUI_DATA_LIST_HOST, TEXTFIELD_CONTROLLER_PROVIDER, sizeBigger, TuiOptionComponent, TUI_OPTION_CONTENT, TuiSvgModule, TuiHostedDropdownModule, TuiPrimitiveCheckboxModule, TuiDataListModule } from '@taiga-ui/core';
7
7
  import { TuiStringifiableItem } from '@taiga-ui/kit/classes';
8
8
  import { TUI_ARROW_MODE, TuiArrowModule } from '@taiga-ui/kit/components/arrow';
9
9
  import { TuiInputTagComponent, TuiInputTagModule } from '@taiga-ui/kit/components/input-tag';
10
10
  import { iconBlank } from '@taiga-ui/kit/constants';
11
11
  import { FIXED_DROPDOWN_CONTROLLER_PROVIDER } from '@taiga-ui/kit/providers';
12
+ import { TUI_ITEMS_HANDLERS } from '@taiga-ui/kit/tokens';
12
13
  import { CommonModule } from '@angular/common';
13
14
  import { TuiMultiSelectOptionComponent, TuiMultiSelectOptionModule } from '@taiga-ui/kit/components/multi-select-option';
14
15
  import { PolymorpheusComponent, PolymorpheusModule } from '@tinkoff/ng-polymorpheus';
15
16
  import { combineLatest } from 'rxjs';
16
17
  import { map } from 'rxjs/operators';
17
18
 
19
+ var TUI_MULTI_SELECT_DEFAULT_OPTIONS = {
20
+ expandable: true,
21
+ valueContent: '',
22
+ };
23
+ var TUI_MULTI_SELECT_OPTIONS = new InjectionToken('Default parameters for multi select component', {
24
+ factory: function () { return TUI_MULTI_SELECT_DEFAULT_OPTIONS; },
25
+ });
26
+ var tuiMultiSelectOptionsProvider = function (options) { return ({
27
+ provide: TUI_MULTI_SELECT_OPTIONS,
28
+ useValue: __assign(__assign({}, TUI_MULTI_SELECT_DEFAULT_OPTIONS), options),
29
+ }); };
30
+
18
31
  var TuiMultiSelectComponent = /** @class */ (function (_super) {
19
32
  __extends(TuiMultiSelectComponent, _super);
20
- function TuiMultiSelectComponent(control, changeDetectorRef, svgService, arrowMode) {
33
+ function TuiMultiSelectComponent(control, changeDetectorRef, svgService, arrowMode, itemsHandlers, options, controller) {
21
34
  var _this = _super.call(this, control, changeDetectorRef) || this;
22
35
  _this.arrowMode = arrowMode;
23
- _this.stringify = TUI_DEFAULT_STRINGIFY;
24
- _this.identityMatcher = TUI_DEFAULT_IDENTITY_MATCHER;
25
- _this.expandable = true;
36
+ _this.itemsHandlers = itemsHandlers;
37
+ _this.options = options;
38
+ _this.controller = controller;
39
+ _this.stringify = _this.itemsHandlers.stringify;
40
+ _this.identityMatcher = _this.itemsHandlers.identityMatcher;
41
+ _this.expandable = _this.options.expandable;
26
42
  _this.search = '';
27
43
  _this.editable = true;
28
- _this.disabledItemHandler = ALWAYS_FALSE_HANDLER;
29
- _this.valueContent = '';
44
+ _this.disabledItemHandler = _this.itemsHandlers.disabledItemHandler;
45
+ _this.valueContent = _this.options.valueContent;
30
46
  _this.searchChange = new EventEmitter();
31
47
  _this.datalist = '';
32
48
  _this.open = false;
@@ -42,6 +58,13 @@ var TuiMultiSelectComponent = /** @class */ (function (_super) {
42
58
  return _this;
43
59
  }
44
60
  TuiMultiSelectComponent_1 = TuiMultiSelectComponent;
61
+ Object.defineProperty(TuiMultiSelectComponent.prototype, "size", {
62
+ get: function () {
63
+ return this.controller.size;
64
+ },
65
+ enumerable: true,
66
+ configurable: true
67
+ });
45
68
  Object.defineProperty(TuiMultiSelectComponent.prototype, "arrow", {
46
69
  get: function () {
47
70
  return !this.interactive ? this.arrowMode.disabled : this.arrowMode.interactive;
@@ -208,7 +231,10 @@ var TuiMultiSelectComponent = /** @class */ (function (_super) {
208
231
  { type: NgControl, decorators: [{ type: Optional }, { type: Self }, { type: Inject, args: [NgControl,] }] },
209
232
  { type: ChangeDetectorRef, decorators: [{ type: Inject, args: [ChangeDetectorRef,] }] },
210
233
  { type: TuiSvgService, decorators: [{ type: Inject, args: [TuiSvgService,] }] },
211
- { type: undefined, decorators: [{ type: Inject, args: [TUI_ARROW_MODE,] }] }
234
+ { type: undefined, decorators: [{ type: Inject, args: [TUI_ARROW_MODE,] }] },
235
+ { type: undefined, decorators: [{ type: Inject, args: [TUI_ITEMS_HANDLERS,] }] },
236
+ { type: undefined, decorators: [{ type: Inject, args: [TUI_MULTI_SELECT_OPTIONS,] }] },
237
+ { type: TuiTextfieldController, decorators: [{ type: Inject, args: [TUI_TEXTFIELD_WATCHED_CONTROLLER,] }] }
212
238
  ]; };
213
239
  __decorate([
214
240
  ContentChild(TUI_DATA_LIST_ACCESSOR)
@@ -254,6 +280,9 @@ var TuiMultiSelectComponent = /** @class */ (function (_super) {
254
280
  __decorate([
255
281
  ContentChild(TuiDataListDirective, { read: TemplateRef })
256
282
  ], TuiMultiSelectComponent.prototype, "datalist", void 0);
283
+ __decorate([
284
+ HostBinding('attr.data-size')
285
+ ], TuiMultiSelectComponent.prototype, "size", null);
257
286
  __decorate([
258
287
  tuiPure
259
288
  ], TuiMultiSelectComponent.prototype, "getStringifier", null);
@@ -275,15 +304,19 @@ var TuiMultiSelectComponent = /** @class */ (function (_super) {
275
304
  useExisting: forwardRef(function () { return TuiMultiSelectComponent_1; }),
276
305
  },
277
306
  FIXED_DROPDOWN_CONTROLLER_PROVIDER,
307
+ TEXTFIELD_CONTROLLER_PROVIDER,
278
308
  ],
279
- styles: [":host{position:relative;display:block}:host._disabled{pointer-events:none}.t-hosted{display:block}:host:not(._editable):not(._readonly) .input{cursor:pointer}.t-wrapper{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;pointer-events:none;justify-content:flex-end}.t-wrapper_disabled{opacity:var(--tui-disabled-opacity)}.t-group{display:flex;flex:1;align-items:center;padding:1.6875rem 1rem .5625rem}.t-group_fullsize{padding-top:.0625rem;padding-bottom:0}:host[data-tui-host-size='m'] .t-group_fullsize.t-group_fullsize{padding-top:0}:host[data-tui-host-size='m'] .t-group{padding:1.1875rem .75rem 0;font-size:.8125rem}.t-arrow{transition-duration:var(--tui-duration,300ms);transition-timing-function:ease-in-out;display:flex;align-items:center;justify-content:center;color:var(--tui-text-03);position:relative;box-sizing:border-box;transition-property:color,transform;width:1.5rem;height:auto;margin:1rem .75rem;pointer-events:auto;cursor:pointer}.t-arrow:hover{color:var(--tui-text-02)}:host._disabled .t-arrow,:host._readonly .t-arrow{pointer-events:none}:host[data-mode=onDark] .t-arrow{color:var(--tui-text-03-night)}:host[data-mode=onDark] .t-arrow:hover{color:var(--tui-text-01-night)}"]
309
+ styles: [":host{position:relative;display:block}:host._disabled{pointer-events:none}.t-hosted{display:block}:host:not(._editable):not(._readonly) .input{cursor:pointer}.t-wrapper{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;pointer-events:none;justify-content:flex-end}.t-wrapper_disabled{opacity:var(--tui-disabled-opacity)}:host-context([data-size='s']) .t-wrapper{height:var(--tui-height-s)}:host-context([data-size='m']) .t-wrapper{height:var(--tui-height-m)}:host-context([data-size='l']) .t-wrapper{height:var(--tui-height-l)}.t-group{display:flex;flex:1;align-items:center;padding:1.6875rem 1rem .5625rem}.t-group_fullsize{padding-top:.0625rem;padding-bottom:0}:host[data-size='m'] .t-group_fullsize.t-group_fullsize{padding-top:0}:host[data-size='m'] .t-group{padding:1.1875rem .75rem 0;font-size:.8125rem}.t-arrow{transition-duration:var(--tui-duration,300ms);transition-timing-function:ease-in-out;display:flex;align-items:center;justify-content:center;color:var(--tui-text-03);position:relative;box-sizing:border-box;transition-property:color,transform;width:1.5rem;height:auto;margin:0 .75rem;pointer-events:auto;cursor:pointer}.t-arrow:hover{color:var(--tui-text-02)}:host._disabled .t-arrow,:host._readonly .t-arrow{pointer-events:none}:host[data-mode=onDark] .t-arrow{color:var(--tui-text-03-night)}:host[data-mode=onDark] .t-arrow:hover{color:var(--tui-text-01-night)}"]
280
310
  }),
281
311
  __param(0, Optional()),
282
312
  __param(0, Self()),
283
313
  __param(0, Inject(NgControl)),
284
314
  __param(1, Inject(ChangeDetectorRef)),
285
315
  __param(2, Inject(TuiSvgService)),
286
- __param(3, Inject(TUI_ARROW_MODE))
316
+ __param(3, Inject(TUI_ARROW_MODE)),
317
+ __param(4, Inject(TUI_ITEMS_HANDLERS)),
318
+ __param(5, Inject(TUI_MULTI_SELECT_OPTIONS)),
319
+ __param(6, Inject(TUI_TEXTFIELD_WATCHED_CONTROLLER))
287
320
  ], TuiMultiSelectComponent);
288
321
  return TuiMultiSelectComponent;
289
322
  }(AbstractTuiMultipleControl));
@@ -292,8 +325,8 @@ var TuiHideSelectedPipe = /** @class */ (function () {
292
325
  function TuiHideSelectedPipe(component) {
293
326
  this.component = component;
294
327
  }
295
- TuiHideSelectedPipe.prototype.transform = function (items, _a) {
296
- var _b = _a === void 0 ? this.component : _a, value = _b.value, identityMatcher = _b.identityMatcher;
328
+ TuiHideSelectedPipe.prototype.transform = function (items, component) {
329
+ var _a = component !== null && component !== void 0 ? component : this.component, value = _a.value, identityMatcher = _a.identityMatcher;
297
330
  if (!items) {
298
331
  return null;
299
332
  }
@@ -303,7 +336,7 @@ var TuiHideSelectedPipe = /** @class */ (function () {
303
336
  };
304
337
  TuiHideSelectedPipe.prototype.filter2d = function (items, value, matcher) {
305
338
  var _this = this;
306
- return items.map(function (subitems) { return _this.filter(subitems, value, matcher); });
339
+ return items.map(function (subItems) { return _this.filter(subItems, value, matcher); });
307
340
  };
308
341
  TuiHideSelectedPipe.prototype.filter = function (items, value, matcher) {
309
342
  return items.filter(function (item) { return value.every(function (selected) { return !matcher(selected, item); }); });
@@ -584,5 +617,5 @@ var TuiMultiSelectModule = /** @class */ (function () {
584
617
  * Generated bundle index. Do not edit.
585
618
  */
586
619
 
587
- export { MULTI_SELECT_ACCESSOR, TUI_MULTI_SELECT_OPTION, TuiHideSelectedPipe, TuiMultiSelectComponent, TuiMultiSelectGroupComponent, TuiMultiSelectGroupDirective, TuiMultiSelectModule, hostFallbackFactory };
620
+ export { MULTI_SELECT_ACCESSOR, TUI_MULTI_SELECT_DEFAULT_OPTIONS, TUI_MULTI_SELECT_OPTION, TUI_MULTI_SELECT_OPTIONS, TuiHideSelectedPipe, TuiMultiSelectComponent, TuiMultiSelectGroupComponent, TuiMultiSelectGroupDirective, TuiMultiSelectModule, hostFallbackFactory, tuiMultiSelectOptionsProvider };
588
621
  //# sourceMappingURL=taiga-ui-kit-components-multi-select.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-kit-components-multi-select.js","sources":["ng://@taiga-ui/kit/components/multi-select/multi-select.component.ts","ng://@taiga-ui/kit/components/multi-select/hide-selected.pipe.ts","ng://@taiga-ui/kit/components/multi-select/multi-select-group/multi-select-group.component.ts","ng://@taiga-ui/kit/components/multi-select/multi-select-group/multi-select-group.directive.ts","ng://@taiga-ui/kit/components/multi-select/multi-select.module.ts","ng://@taiga-ui/kit/components/multi-select/taiga-ui-kit-components-multi-select.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n EventEmitter,\n forwardRef,\n HostBinding,\n Inject,\n Input,\n Optional,\n Output,\n Self,\n TemplateRef,\n ViewChild,\n} from '@angular/core';\nimport {NgControl} from '@angular/forms';\nimport {\n AbstractTuiMultipleControl,\n ALWAYS_FALSE_HANDLER,\n EMPTY_ARRAY,\n isNativeFocused,\n setNativeFocused,\n TUI_DEFAULT_IDENTITY_MATCHER,\n TUI_DEFAULT_STRINGIFY,\n TUI_FOCUSABLE_ITEM_ACCESSOR,\n TuiBooleanHandler,\n TuiContextWithImplicit,\n tuiDefaultProp,\n TuiFocusableElementAccessor,\n TuiIdentityMatcher,\n TuiMapper,\n tuiPure,\n TuiStringHandler,\n} from '@taiga-ui/cdk';\nimport {\n TUI_DATA_LIST_ACCESSOR,\n TUI_DATA_LIST_HOST,\n TuiDataListAccessor,\n TuiDataListDirective,\n TuiDataListHost,\n TuiHostedDropdownComponent,\n TuiSvgService,\n} from '@taiga-ui/core';\nimport {TuiStringifiableItem} from '@taiga-ui/kit/classes';\nimport {TUI_ARROW_MODE, TuiArrowMode} from '@taiga-ui/kit/components/arrow';\nimport {TuiInputTagComponent} from '@taiga-ui/kit/components/input-tag';\nimport {iconBlank} from '@taiga-ui/kit/constants';\nimport {FIXED_DROPDOWN_CONTROLLER_PROVIDER} from '@taiga-ui/kit/providers';\nimport {PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\n\n@Component({\n selector: 'tui-multi-select',\n templateUrl: './multi-select.template.html',\n styleUrls: ['./multi-select.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: TUI_FOCUSABLE_ITEM_ACCESSOR,\n useExisting: forwardRef(() => TuiMultiSelectComponent),\n },\n {\n provide: TUI_DATA_LIST_HOST,\n useExisting: forwardRef(() => TuiMultiSelectComponent),\n },\n FIXED_DROPDOWN_CONTROLLER_PROVIDER,\n ],\n})\nexport class TuiMultiSelectComponent<T>\n extends AbstractTuiMultipleControl<T>\n implements TuiFocusableElementAccessor, TuiDataListHost<T>\n{\n @ContentChild(TUI_DATA_LIST_ACCESSOR as any)\n private readonly accessor?: TuiDataListAccessor<T>;\n\n @ViewChild(TuiHostedDropdownComponent)\n private readonly hostedDropdown?: TuiHostedDropdownComponent;\n\n @ViewChild(TuiInputTagComponent)\n private readonly input?: TuiInputTagComponent;\n\n @Input()\n @tuiDefaultProp()\n stringify: TuiStringHandler<T> = TUI_DEFAULT_STRINGIFY;\n\n @Input()\n @tuiDefaultProp()\n identityMatcher: TuiIdentityMatcher<T> = TUI_DEFAULT_IDENTITY_MATCHER;\n\n @Input()\n @tuiDefaultProp()\n expandable = true;\n\n @Input()\n @tuiDefaultProp()\n search: string | null = '';\n\n @Input()\n @HostBinding('class._editable')\n @tuiDefaultProp()\n editable = true;\n\n @Input()\n @tuiDefaultProp()\n disabledItemHandler: TuiBooleanHandler<T> = ALWAYS_FALSE_HANDLER;\n\n @Input()\n @tuiDefaultProp()\n valueContent: PolymorpheusContent<TuiContextWithImplicit<ReadonlyArray<T>>> = '';\n\n @Output()\n readonly searchChange = new EventEmitter<string | null>();\n\n @ContentChild(TuiDataListDirective, {read: TemplateRef})\n readonly datalist: PolymorpheusContent = '';\n\n open = false;\n\n constructor(\n @Optional()\n @Self()\n @Inject(NgControl)\n control: NgControl | null,\n @Inject(ChangeDetectorRef) changeDetectorRef: ChangeDetectorRef,\n @Inject(TuiSvgService) svgService: TuiSvgService,\n @Inject(TUI_ARROW_MODE)\n private readonly arrowMode: TuiArrowMode,\n ) {\n super(control, changeDetectorRef);\n\n svgService.define({iconBlank});\n }\n\n get arrow(): PolymorpheusContent {\n return !this.interactive ? this.arrowMode.disabled : this.arrowMode.interactive;\n }\n\n get nativeFocusableElement(): HTMLInputElement | null {\n return this.input ? this.input.nativeFocusableElement : null;\n }\n\n get focused(): boolean {\n return (\n (!!this.input && this.input.focused) ||\n (!!this.hostedDropdown && this.hostedDropdown.focused)\n );\n }\n\n get computedValue(): ReadonlyArray<T> {\n return this.computedGroup ? EMPTY_ARRAY : this.value;\n }\n\n // @bad TODO: think of a better way\n get searchOrSpace(): string {\n return this.computedGroup ? ' ' : this.searchString;\n }\n\n get searchString(): string {\n return this.search === null ? '' : this.search;\n }\n\n /**\n * Pass empty icon to InputTag (inside this component)\n * to prevent overflow of arrow icon by many tags\n */\n get tagIcon(): string {\n return this.interactive ? 'iconBlank' : '';\n }\n\n get inputHidden(): boolean {\n return !this.editable && !this.computedGroup;\n }\n\n get computedGroup(): boolean {\n return (\n !!this.valueContent &&\n this.value.length > 0 &&\n (!this.focused || !this.editable)\n );\n }\n\n get context(): TuiContextWithImplicit<ReadonlyArray<T>> {\n return this.getContext(this.value);\n }\n\n @tuiPure\n getStringifier(\n stringify: TuiStringHandler<T>,\n ): TuiStringHandler<TuiContextWithImplicit<T>> {\n return ({$implicit}) => stringify($implicit);\n }\n\n readonly valueMapper: TuiMapper<\n ReadonlyArray<T>,\n ReadonlyArray<TuiStringifiableItem<T>>\n > = (value, stringify: TuiStringHandler<T>, group: boolean) =>\n group\n ? EMPTY_ARRAY\n : value.map(item => new TuiStringifiableItem(item, stringify));\n\n readonly disabledItemHandlerWrapper: TuiMapper<\n TuiBooleanHandler<T>,\n TuiBooleanHandler<TuiStringifiableItem<T>>\n > = handler => stringifiable =>\n typeof stringifiable === 'string' || handler(stringifiable.item);\n\n onHoveredChange(hovered: boolean) {\n this.updateHovered(hovered);\n }\n\n onSpace(event: KeyboardEvent) {\n if (!this.editable) {\n event.preventDefault();\n }\n\n if (!this.readOnly) {\n this.open = true;\n }\n }\n\n handleOption(option: T) {\n const {value, identityMatcher} = this;\n const index = value.findIndex(item => identityMatcher(item, option));\n\n this.updateValue(\n index === -1 ? [...value, option] : value.filter((_, i) => i !== index),\n );\n this.updateSearch(null);\n }\n\n onEnter(event: KeyboardEvent) {\n const {value} = this;\n const options = this.accessor ? this.accessor.getOptions() : [];\n\n if (options.length !== 1) {\n return;\n }\n\n const index = value.indexOf(options[0]);\n\n event.preventDefault();\n this.updateValue(\n index === -1\n ? [...value, options[0]]\n : [...value.slice(0, index), ...value.slice(index + 1)],\n );\n this.updateSearch(null);\n }\n\n onClick({nativeFocusableElement}: TuiInputTagComponent) {\n if (\n this.editable &&\n this.interactive &&\n nativeFocusableElement &&\n isNativeFocused(nativeFocusableElement)\n ) {\n this.hostedDropdown?.updateOpen(!this.open);\n }\n }\n\n onArrowClick() {\n this.hostedDropdown?.updateOpen(!this.open);\n this.focusInput();\n }\n\n onInput(value: ReadonlyArray<TuiStringifiableItem<T>>) {\n this.updateValue(value.map(({item}) => item));\n }\n\n onSearch(search: string | null) {\n this.open = true;\n this.updateSearch(search);\n }\n\n onActiveZone(active: boolean) {\n this.updateFocused(active);\n }\n\n setDisabledState() {\n super.setDisabledState();\n this.open = false;\n }\n\n @tuiPure\n private getContext(\n $implicit: ReadonlyArray<T>,\n ): TuiContextWithImplicit<ReadonlyArray<T>> {\n return {$implicit};\n }\n\n private updateSearch(search: string | null) {\n if (this.search === search) {\n return;\n }\n\n this.search = search;\n this.searchChange.emit(search);\n }\n\n private focusInput(preventScroll: boolean = false) {\n if (this.nativeFocusableElement) {\n setNativeFocused(this.nativeFocusableElement, true, preventScroll);\n }\n }\n}\n","import {Inject, Pipe, PipeTransform} from '@angular/core';\nimport {TuiIdentityMatcher, tuiPure} from '@taiga-ui/cdk';\nimport {isFlat} from '@taiga-ui/kit/utils';\n\nimport {TuiMultiSelectComponent} from './multi-select.component';\n\n@Pipe({\n name: 'tuiHideSelected',\n pure: false,\n})\nexport class TuiHideSelectedPipe implements PipeTransform {\n constructor(\n @Inject(TuiMultiSelectComponent)\n private readonly component: TuiMultiSelectComponent<any>,\n ) {}\n\n transform<T>(items: T): T;\n transform<T>(\n items: readonly T[] | ReadonlyArray<readonly T[]> | null,\n {value, identityMatcher}: TuiMultiSelectComponent<T> = this.component,\n ): readonly T[] | ReadonlyArray<readonly T[]> | null {\n if (!items) {\n return null;\n }\n\n return isFlat(items)\n ? this.filter(items, value, identityMatcher)\n : this.filter2d(items, value, identityMatcher);\n }\n\n @tuiPure\n private filter2d<T>(\n items: ReadonlyArray<readonly T[]>,\n value: readonly T[],\n matcher: TuiIdentityMatcher<T>,\n ): ReadonlyArray<readonly T[]> {\n return items.map(subitems => this.filter(subitems, value, matcher));\n }\n\n @tuiPure\n private filter<T>(\n items: readonly T[],\n value: readonly T[],\n matcher: TuiIdentityMatcher<T>,\n ): readonly T[] {\n return items.filter(item => value.every(selected => !matcher(selected, item)));\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n Inject,\n Input,\n QueryList,\n} from '@angular/core';\nimport {NgControl} from '@angular/forms';\nimport {\n EMPTY_QUERY,\n getOriginalArrayFromQueryList,\n isPresent,\n itemsQueryListObservable,\n TUI_DEFAULT_IDENTITY_MATCHER,\n tuiDefaultProp,\n TuiIdentityMatcher,\n tuiPure,\n tuiReplayedValueChangesFrom,\n} from '@taiga-ui/cdk';\nimport {\n sizeBigger,\n TUI_DATA_LIST_HOST,\n TUI_OPTION_CONTENT,\n TuiDataListHost,\n TuiOptionComponent,\n TuiSizeL,\n TuiSizeXS,\n} from '@taiga-ui/core';\nimport {combineLatest, Observable} from 'rxjs';\nimport {map} from 'rxjs/operators';\n\n@Component({\n selector: 'tui-opt-group[tuiMultiSelectGroup]',\n templateUrl: './multi-select-group.template.html',\n styleUrls: ['./multi-select-group.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n viewProviders: [\n {\n provide: TUI_OPTION_CONTENT,\n useValue: null,\n },\n ],\n})\nexport class TuiMultiSelectGroupComponent<T> {\n @ContentChildren(TuiOptionComponent)\n private readonly options: QueryList<TuiOptionComponent<T>> = EMPTY_QUERY;\n\n @Input()\n @tuiDefaultProp()\n label = '';\n\n constructor(\n @Inject(TUI_DATA_LIST_HOST) private readonly host: TuiDataListHost<T>,\n @Inject(NgControl) private readonly control: NgControl,\n ) {}\n\n get size(): TuiSizeXS | TuiSizeL {\n return (this.options.first && this.options.first.size) || 'm';\n }\n\n get checkboxSize(): TuiSizeL {\n return this.options.first && sizeBigger(this.options.first.size) ? 'l' : 'm';\n }\n\n @tuiPure\n get empty$(): Observable<boolean> {\n return itemsQueryListObservable(this.options).pipe(map(({length}) => !length));\n }\n\n @tuiPure\n get disabled$(): Observable<boolean> {\n return itemsQueryListObservable(this.options).pipe(\n map(items => items.every(({disabled}) => disabled)),\n );\n }\n\n @tuiPure\n get value$(): Observable<boolean | null> {\n return combineLatest(this.items$, this.valueChanges$).pipe(\n map(([items, current]) => {\n let result = false;\n\n for (let i = 0; i < items.length; i++) {\n const selected = current.some(selected =>\n this.matcher(selected, items[i]),\n );\n\n if ((!selected && result) || (selected && !result && i)) {\n return null;\n }\n\n result = selected;\n }\n\n return result;\n }),\n );\n }\n\n onClick(checked: boolean | null) {\n if (!this.control.control) {\n return;\n }\n\n const controlValue: ReadonlyArray<T> = this.control.value || [];\n const {values} = this;\n const filtered = controlValue.filter(current =>\n values.every(item => !this.matcher(current, item)),\n );\n\n this.control.control.setValue(checked ? filtered : [...filtered, ...values]);\n }\n\n private get values(): ReadonlyArray<T> {\n return this.filter(getOriginalArrayFromQueryList(this.options));\n }\n\n private get matcher(): TuiIdentityMatcher<T> {\n return this.host.identityMatcher || TUI_DEFAULT_IDENTITY_MATCHER;\n }\n\n @tuiPure\n private get items$(): Observable<ReadonlyArray<T>> {\n return itemsQueryListObservable(this.options).pipe(\n map(options => options.map(({value}) => value).filter(isPresent)),\n );\n }\n\n @tuiPure\n private get valueChanges$(): Observable<ReadonlyArray<T>> {\n return tuiReplayedValueChangesFrom<ReadonlyArray<T>>(this.control).pipe(\n map(value => value || []),\n );\n }\n\n @tuiPure\n private filter(items: ReadonlyArray<TuiOptionComponent<T>>): ReadonlyArray<T> {\n return items.map(({value}) => value).filter(isPresent);\n }\n}\n","import {Directive, forwardRef, Optional} from '@angular/core';\nimport {NG_VALUE_ACCESSOR, NgControl} from '@angular/forms';\nimport {EMPTY_FUNCTION} from '@taiga-ui/cdk';\nimport {TUI_DATA_LIST_HOST, TUI_OPTION_CONTENT, TuiDataListHost} from '@taiga-ui/core';\nimport {TuiMultiSelectOptionComponent} from '@taiga-ui/kit/components/multi-select-option';\nimport {PolymorpheusComponent} from '@tinkoff/ng-polymorpheus';\n\nimport {TuiMultiSelectComponent} from '../multi-select.component';\n\nexport function hostFallbackFactory<T>(\n control: NgControl,\n host: TuiDataListHost<T> | null,\n): TuiDataListHost<T> {\n return (\n host || {\n handleOption: option => {\n if (!control.control) {\n return;\n }\n\n const value = control.value || [];\n const index = value.indexOf(option);\n\n control.control.setValue(\n index === -1\n ? [...value, option]\n : [...value.slice(0, index), ...value.slice(index + 1)],\n );\n },\n }\n );\n}\n\nexport const TUI_MULTI_SELECT_OPTION = new PolymorpheusComponent(\n TuiMultiSelectOptionComponent,\n);\n\n// TODO: remove in ivy compilation\nexport const MULTI_SELECT_ACCESSOR = {\n writeValue: EMPTY_FUNCTION,\n registerOnChange: EMPTY_FUNCTION,\n registerOnTouched: EMPTY_FUNCTION,\n};\n\n@Directive({\n selector: '[tuiMultiSelectGroup]',\n providers: [\n {\n provide: TUI_OPTION_CONTENT,\n useValue: TUI_MULTI_SELECT_OPTION,\n },\n {\n provide: TUI_DATA_LIST_HOST,\n deps: [\n NgControl,\n [new Optional(), forwardRef(() => TuiMultiSelectComponent)],\n ],\n useFactory: hostFallbackFactory,\n },\n {\n provide: NG_VALUE_ACCESSOR,\n multi: true,\n useValue: MULTI_SELECT_ACCESSOR,\n },\n ],\n})\nexport class TuiMultiSelectGroupDirective {}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {FormsModule} from '@angular/forms';\nimport {\n TuiActiveZoneModule,\n TuiHoveredModule,\n TuiLetModule,\n TuiMapperPipeModule,\n TuiPreventDefaultModule,\n} from '@taiga-ui/cdk';\nimport {\n TuiDataListModule,\n TuiHostedDropdownModule,\n TuiPrimitiveCheckboxModule,\n TuiSvgModule,\n} from '@taiga-ui/core';\nimport {TuiArrowModule} from '@taiga-ui/kit/components/arrow';\nimport {TuiInputTagModule} from '@taiga-ui/kit/components/input-tag';\nimport {TuiMultiSelectOptionModule} from '@taiga-ui/kit/components/multi-select-option';\nimport {PolymorpheusModule} from '@tinkoff/ng-polymorpheus';\n\nimport {TuiHideSelectedPipe} from './hide-selected.pipe';\nimport {TuiMultiSelectComponent} from './multi-select.component';\nimport {TuiMultiSelectGroupComponent} from './multi-select-group/multi-select-group.component';\nimport {TuiMultiSelectGroupDirective} from './multi-select-group/multi-select-group.directive';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n PolymorpheusModule,\n TuiPreventDefaultModule,\n TuiActiveZoneModule,\n TuiArrowModule,\n TuiLetModule,\n TuiMapperPipeModule,\n TuiHoveredModule,\n TuiSvgModule,\n TuiHostedDropdownModule,\n TuiInputTagModule,\n TuiMultiSelectOptionModule,\n TuiPrimitiveCheckboxModule,\n TuiDataListModule,\n ],\n declarations: [\n TuiMultiSelectComponent,\n TuiMultiSelectGroupComponent,\n TuiMultiSelectGroupDirective,\n TuiHideSelectedPipe,\n ],\n exports: [\n TuiMultiSelectComponent,\n TuiMultiSelectGroupComponent,\n TuiMultiSelectGroupDirective,\n TuiHideSelectedPipe,\n ],\n})\nexport class TuiMultiSelectModule {}\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-multi-select.js","sources":["ng://@taiga-ui/kit/components/multi-select/multi-select-options.ts","ng://@taiga-ui/kit/components/multi-select/multi-select.component.ts","ng://@taiga-ui/kit/components/multi-select/hide-selected.pipe.ts","ng://@taiga-ui/kit/components/multi-select/multi-select-group/multi-select-group.component.ts","ng://@taiga-ui/kit/components/multi-select/multi-select-group/multi-select-group.directive.ts","ng://@taiga-ui/kit/components/multi-select/multi-select.module.ts","ng://@taiga-ui/kit/components/multi-select/taiga-ui-kit-components-multi-select.ts"],"sourcesContent":["import {InjectionToken, ValueProvider} from '@angular/core';\nimport {TuiContextWithImplicit} from '@taiga-ui/cdk';\nimport {PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\n\nexport interface TuiMultiSelectOptions<T> {\n readonly expandable: boolean;\n readonly valueContent: PolymorpheusContent<TuiContextWithImplicit<ReadonlyArray<T>>>;\n}\n\nexport const TUI_MULTI_SELECT_DEFAULT_OPTIONS: TuiMultiSelectOptions<unknown> = {\n expandable: true,\n valueContent: '',\n};\n\nexport const TUI_MULTI_SELECT_OPTIONS = new InjectionToken<\n TuiMultiSelectOptions<unknown>\n>('Default parameters for multi select component', {\n factory: () => TUI_MULTI_SELECT_DEFAULT_OPTIONS,\n});\n\nexport const tuiMultiSelectOptionsProvider: <T>(\n options: Partial<TuiMultiSelectOptions<T>>,\n) => ValueProvider = <T>(options: Partial<TuiMultiSelectOptions<T>>) => ({\n provide: TUI_MULTI_SELECT_OPTIONS,\n useValue: {...TUI_MULTI_SELECT_DEFAULT_OPTIONS, ...options},\n});\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n EventEmitter,\n forwardRef,\n HostBinding,\n Inject,\n Input,\n Optional,\n Output,\n Self,\n TemplateRef,\n ViewChild,\n} from '@angular/core';\nimport {NgControl} from '@angular/forms';\nimport {\n AbstractTuiMultipleControl,\n EMPTY_ARRAY,\n isNativeFocused,\n setNativeFocused,\n TUI_FOCUSABLE_ITEM_ACCESSOR,\n TuiBooleanHandler,\n TuiContextWithImplicit,\n tuiDefaultProp,\n TuiFocusableElementAccessor,\n TuiMapper,\n tuiPure,\n TuiStringHandler,\n} from '@taiga-ui/cdk';\nimport {\n TEXTFIELD_CONTROLLER_PROVIDER,\n TUI_DATA_LIST_ACCESSOR,\n TUI_DATA_LIST_HOST,\n TUI_TEXTFIELD_WATCHED_CONTROLLER,\n TuiDataListAccessor,\n TuiDataListDirective,\n TuiDataListHost,\n TuiHostedDropdownComponent,\n TuiSizeL,\n TuiSizeS,\n TuiSvgService,\n TuiTextfieldController,\n} from '@taiga-ui/core';\nimport {TuiStringifiableItem} from '@taiga-ui/kit/classes';\nimport {TUI_ARROW_MODE, TuiArrowMode} from '@taiga-ui/kit/components/arrow';\nimport {TuiInputTagComponent} from '@taiga-ui/kit/components/input-tag';\nimport {iconBlank} from '@taiga-ui/kit/constants';\nimport {FIXED_DROPDOWN_CONTROLLER_PROVIDER} from '@taiga-ui/kit/providers';\nimport {TUI_ITEMS_HANDLERS, TuiItemsHandlers} from '@taiga-ui/kit/tokens';\nimport {PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\n\nimport {TUI_MULTI_SELECT_OPTIONS, TuiMultiSelectOptions} from './multi-select-options';\n\n@Component({\n selector: 'tui-multi-select',\n templateUrl: './multi-select.template.html',\n styleUrls: ['./multi-select.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: TUI_FOCUSABLE_ITEM_ACCESSOR,\n useExisting: forwardRef(() => TuiMultiSelectComponent),\n },\n {\n provide: TUI_DATA_LIST_HOST,\n useExisting: forwardRef(() => TuiMultiSelectComponent),\n },\n FIXED_DROPDOWN_CONTROLLER_PROVIDER,\n TEXTFIELD_CONTROLLER_PROVIDER,\n ],\n})\nexport class TuiMultiSelectComponent<T>\n extends AbstractTuiMultipleControl<T>\n implements TuiFocusableElementAccessor, TuiDataListHost<T>\n{\n @ContentChild(TUI_DATA_LIST_ACCESSOR as any)\n private readonly accessor?: TuiDataListAccessor<T>;\n\n @ViewChild(TuiHostedDropdownComponent)\n private readonly hostedDropdown?: TuiHostedDropdownComponent;\n\n @ViewChild(TuiInputTagComponent)\n private readonly input?: TuiInputTagComponent;\n\n @Input()\n @tuiDefaultProp()\n stringify: TuiItemsHandlers<T>['stringify'] = this.itemsHandlers.stringify;\n\n @Input()\n @tuiDefaultProp()\n identityMatcher: TuiItemsHandlers<T>['identityMatcher'] =\n this.itemsHandlers.identityMatcher;\n\n @Input()\n @tuiDefaultProp()\n expandable: TuiMultiSelectOptions<T>['expandable'] = this.options.expandable;\n\n @Input()\n @tuiDefaultProp()\n search: string | null = '';\n\n @Input()\n @HostBinding('class._editable')\n @tuiDefaultProp()\n editable = true;\n\n @Input()\n @tuiDefaultProp()\n disabledItemHandler: TuiItemsHandlers<T>['disabledItemHandler'] =\n this.itemsHandlers.disabledItemHandler;\n\n @Input()\n @tuiDefaultProp()\n valueContent: TuiMultiSelectOptions<T>['valueContent'] = this.options.valueContent;\n\n @Output()\n readonly searchChange = new EventEmitter<string | null>();\n\n @ContentChild(TuiDataListDirective, {read: TemplateRef})\n readonly datalist: PolymorpheusContent = '';\n\n open = false;\n\n constructor(\n @Optional()\n @Self()\n @Inject(NgControl)\n control: NgControl | null,\n @Inject(ChangeDetectorRef) changeDetectorRef: ChangeDetectorRef,\n @Inject(TuiSvgService) svgService: TuiSvgService,\n @Inject(TUI_ARROW_MODE)\n private readonly arrowMode: TuiArrowMode,\n @Inject(TUI_ITEMS_HANDLERS)\n private readonly itemsHandlers: TuiItemsHandlers<T>,\n @Inject(TUI_MULTI_SELECT_OPTIONS)\n private readonly options: TuiMultiSelectOptions<T>,\n @Inject(TUI_TEXTFIELD_WATCHED_CONTROLLER)\n readonly controller: TuiTextfieldController,\n ) {\n super(control, changeDetectorRef);\n\n svgService.define({iconBlank});\n }\n\n @HostBinding('attr.data-size')\n get size(): TuiSizeL | TuiSizeS {\n return this.controller.size;\n }\n\n get arrow(): PolymorpheusContent {\n return !this.interactive ? this.arrowMode.disabled : this.arrowMode.interactive;\n }\n\n get nativeFocusableElement(): HTMLInputElement | null {\n return this.input ? this.input.nativeFocusableElement : null;\n }\n\n get focused(): boolean {\n return (\n (!!this.input && this.input.focused) ||\n (!!this.hostedDropdown && this.hostedDropdown.focused)\n );\n }\n\n get computedValue(): ReadonlyArray<T> {\n return this.computedGroup ? EMPTY_ARRAY : this.value;\n }\n\n // @bad TODO: think of a better way\n get searchOrSpace(): string {\n return this.computedGroup ? ' ' : this.searchString;\n }\n\n get searchString(): string {\n return this.search === null ? '' : this.search;\n }\n\n /**\n * Pass empty icon to InputTag (inside this component)\n * to prevent overflow of arrow icon by many tags\n */\n get tagIcon(): string {\n return this.interactive ? 'iconBlank' : '';\n }\n\n get inputHidden(): boolean {\n return !this.editable && !this.computedGroup;\n }\n\n get computedGroup(): boolean {\n return (\n !!this.valueContent &&\n this.value.length > 0 &&\n (!this.focused || !this.editable)\n );\n }\n\n get context(): TuiContextWithImplicit<ReadonlyArray<T>> {\n return this.getContext(this.value);\n }\n\n @tuiPure\n getStringifier(\n stringify: TuiStringHandler<T>,\n ): TuiStringHandler<TuiContextWithImplicit<T>> {\n return ({$implicit}) => stringify($implicit);\n }\n\n readonly valueMapper: TuiMapper<\n ReadonlyArray<T>,\n ReadonlyArray<TuiStringifiableItem<T>>\n > = (value, stringify: TuiStringHandler<T>, group: boolean) =>\n group\n ? EMPTY_ARRAY\n : value.map(item => new TuiStringifiableItem(item, stringify));\n\n readonly disabledItemHandlerWrapper: TuiMapper<\n TuiBooleanHandler<T>,\n TuiBooleanHandler<TuiStringifiableItem<T>>\n > = handler => stringifiable =>\n typeof stringifiable === 'string' || handler(stringifiable.item);\n\n onHoveredChange(hovered: boolean) {\n this.updateHovered(hovered);\n }\n\n onSpace(event: KeyboardEvent) {\n if (!this.editable) {\n event.preventDefault();\n }\n\n if (!this.readOnly) {\n this.open = true;\n }\n }\n\n handleOption(option: T) {\n const {value, identityMatcher} = this;\n const index = value.findIndex(item => identityMatcher(item, option));\n\n this.updateValue(\n index === -1 ? [...value, option] : value.filter((_, i) => i !== index),\n );\n this.updateSearch(null);\n }\n\n onEnter(event: KeyboardEvent) {\n const {value} = this;\n const options = this.accessor ? this.accessor.getOptions() : [];\n\n if (options.length !== 1) {\n return;\n }\n\n const index = value.indexOf(options[0]);\n\n event.preventDefault();\n this.updateValue(\n index === -1\n ? [...value, options[0]]\n : [...value.slice(0, index), ...value.slice(index + 1)],\n );\n this.updateSearch(null);\n }\n\n onClick({nativeFocusableElement}: TuiInputTagComponent) {\n if (\n this.editable &&\n this.interactive &&\n nativeFocusableElement &&\n isNativeFocused(nativeFocusableElement)\n ) {\n this.hostedDropdown?.updateOpen(!this.open);\n }\n }\n\n onArrowClick() {\n this.hostedDropdown?.updateOpen(!this.open);\n this.focusInput();\n }\n\n onInput(value: ReadonlyArray<TuiStringifiableItem<T>>) {\n this.updateValue(value.map(({item}) => item));\n }\n\n onSearch(search: string | null) {\n this.open = true;\n this.updateSearch(search);\n }\n\n onActiveZone(active: boolean) {\n this.updateFocused(active);\n }\n\n setDisabledState() {\n super.setDisabledState();\n this.open = false;\n }\n\n @tuiPure\n private getContext(\n $implicit: ReadonlyArray<T>,\n ): TuiContextWithImplicit<ReadonlyArray<T>> {\n return {$implicit};\n }\n\n private updateSearch(search: string | null) {\n if (this.search === search) {\n return;\n }\n\n this.search = search;\n this.searchChange.emit(search);\n }\n\n private focusInput(preventScroll: boolean = false) {\n if (this.nativeFocusableElement) {\n setNativeFocused(this.nativeFocusableElement, true, preventScroll);\n }\n }\n}\n","import {Inject, Pipe, PipeTransform} from '@angular/core';\nimport {TuiIdentityMatcher, tuiPure} from '@taiga-ui/cdk';\nimport {isFlat} from '@taiga-ui/kit/utils';\n\nimport {TuiMultiSelectComponent} from './multi-select.component';\n\n@Pipe({\n name: 'tuiHideSelected',\n pure: false,\n})\nexport class TuiHideSelectedPipe implements PipeTransform {\n constructor(\n @Inject(TuiMultiSelectComponent)\n private readonly component: TuiMultiSelectComponent<any>,\n ) {}\n\n transform<T>(\n items: readonly T[] | ReadonlyArray<readonly T[]> | null,\n component?: TuiMultiSelectComponent<T>, // TODO: @deprecated remove in v3.0\n ): readonly T[] | ReadonlyArray<readonly T[]> | null {\n const {value, identityMatcher} = component ?? this.component;\n\n if (!items) {\n return null;\n }\n\n return isFlat(items)\n ? this.filter(items, value, identityMatcher)\n : this.filter2d(items, value, identityMatcher);\n }\n\n @tuiPure\n private filter2d<T>(\n items: ReadonlyArray<readonly T[]>,\n value: readonly T[],\n matcher: TuiIdentityMatcher<T>,\n ): ReadonlyArray<readonly T[]> {\n return items.map(subItems => this.filter(subItems, value, matcher));\n }\n\n @tuiPure\n private filter<T>(\n items: readonly T[],\n value: readonly T[],\n matcher: TuiIdentityMatcher<T>,\n ): readonly T[] {\n return items.filter(item => value.every(selected => !matcher(selected, item)));\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n Inject,\n Input,\n QueryList,\n} from '@angular/core';\nimport {NgControl} from '@angular/forms';\nimport {\n EMPTY_QUERY,\n getOriginalArrayFromQueryList,\n isPresent,\n itemsQueryListObservable,\n TUI_DEFAULT_IDENTITY_MATCHER,\n tuiDefaultProp,\n TuiIdentityMatcher,\n tuiPure,\n tuiReplayedValueChangesFrom,\n} from '@taiga-ui/cdk';\nimport {\n sizeBigger,\n TUI_DATA_LIST_HOST,\n TUI_OPTION_CONTENT,\n TuiDataListHost,\n TuiOptionComponent,\n TuiSizeL,\n TuiSizeXS,\n} from '@taiga-ui/core';\nimport {combineLatest, Observable} from 'rxjs';\nimport {map} from 'rxjs/operators';\n\n@Component({\n selector: 'tui-opt-group[tuiMultiSelectGroup]',\n templateUrl: './multi-select-group.template.html',\n styleUrls: ['./multi-select-group.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n viewProviders: [\n {\n provide: TUI_OPTION_CONTENT,\n useValue: null,\n },\n ],\n})\nexport class TuiMultiSelectGroupComponent<T> {\n @ContentChildren(TuiOptionComponent)\n private readonly options: QueryList<TuiOptionComponent<T>> = EMPTY_QUERY;\n\n @Input()\n @tuiDefaultProp()\n label = '';\n\n constructor(\n @Inject(TUI_DATA_LIST_HOST) private readonly host: TuiDataListHost<T>,\n @Inject(NgControl) private readonly control: NgControl,\n ) {}\n\n get size(): TuiSizeXS | TuiSizeL {\n return (this.options.first && this.options.first.size) || 'm';\n }\n\n get checkboxSize(): TuiSizeL {\n return this.options.first && sizeBigger(this.options.first.size) ? 'l' : 'm';\n }\n\n @tuiPure\n get empty$(): Observable<boolean> {\n return itemsQueryListObservable(this.options).pipe(map(({length}) => !length));\n }\n\n @tuiPure\n get disabled$(): Observable<boolean> {\n return itemsQueryListObservable(this.options).pipe(\n map(items => items.every(({disabled}) => disabled)),\n );\n }\n\n @tuiPure\n get value$(): Observable<boolean | null> {\n return combineLatest(this.items$, this.valueChanges$).pipe(\n map(([items, current]) => {\n let result = false;\n\n for (let i = 0; i < items.length; i++) {\n const selected = current.some(selected =>\n this.matcher(selected, items[i]),\n );\n\n if ((!selected && result) || (selected && !result && i)) {\n return null;\n }\n\n result = selected;\n }\n\n return result;\n }),\n );\n }\n\n onClick(checked: boolean | null) {\n if (!this.control.control) {\n return;\n }\n\n const controlValue: ReadonlyArray<T> = this.control.value || [];\n const {values} = this;\n const filtered = controlValue.filter(current =>\n values.every(item => !this.matcher(current, item)),\n );\n\n this.control.control.setValue(checked ? filtered : [...filtered, ...values]);\n }\n\n private get values(): ReadonlyArray<T> {\n return this.filter(getOriginalArrayFromQueryList(this.options));\n }\n\n private get matcher(): TuiIdentityMatcher<T> {\n return this.host.identityMatcher || TUI_DEFAULT_IDENTITY_MATCHER;\n }\n\n @tuiPure\n private get items$(): Observable<ReadonlyArray<T>> {\n return itemsQueryListObservable(this.options).pipe(\n map(options => options.map(({value}) => value).filter(isPresent)),\n );\n }\n\n @tuiPure\n private get valueChanges$(): Observable<ReadonlyArray<T>> {\n return tuiReplayedValueChangesFrom<ReadonlyArray<T>>(this.control).pipe(\n map(value => value || []),\n );\n }\n\n @tuiPure\n private filter(items: ReadonlyArray<TuiOptionComponent<T>>): ReadonlyArray<T> {\n return items.map(({value}) => value).filter(isPresent);\n }\n}\n","import {Directive, forwardRef, Optional} from '@angular/core';\nimport {NG_VALUE_ACCESSOR, NgControl} from '@angular/forms';\nimport {EMPTY_FUNCTION} from '@taiga-ui/cdk';\nimport {TUI_DATA_LIST_HOST, TUI_OPTION_CONTENT, TuiDataListHost} from '@taiga-ui/core';\nimport {TuiMultiSelectOptionComponent} from '@taiga-ui/kit/components/multi-select-option';\nimport {PolymorpheusComponent} from '@tinkoff/ng-polymorpheus';\n\nimport {TuiMultiSelectComponent} from '../multi-select.component';\n\nexport function hostFallbackFactory<T>(\n control: NgControl,\n host: TuiDataListHost<T> | null,\n): TuiDataListHost<T> {\n return (\n host || {\n handleOption: option => {\n if (!control.control) {\n return;\n }\n\n const value = control.value || [];\n const index = value.indexOf(option);\n\n control.control.setValue(\n index === -1\n ? [...value, option]\n : [...value.slice(0, index), ...value.slice(index + 1)],\n );\n },\n }\n );\n}\n\nexport const TUI_MULTI_SELECT_OPTION = new PolymorpheusComponent(\n TuiMultiSelectOptionComponent,\n);\n\n// TODO: remove in ivy compilation\nexport const MULTI_SELECT_ACCESSOR = {\n writeValue: EMPTY_FUNCTION,\n registerOnChange: EMPTY_FUNCTION,\n registerOnTouched: EMPTY_FUNCTION,\n};\n\n@Directive({\n selector: '[tuiMultiSelectGroup]',\n providers: [\n {\n provide: TUI_OPTION_CONTENT,\n useValue: TUI_MULTI_SELECT_OPTION,\n },\n {\n provide: TUI_DATA_LIST_HOST,\n deps: [\n NgControl,\n [new Optional(), forwardRef(() => TuiMultiSelectComponent)],\n ],\n useFactory: hostFallbackFactory,\n },\n {\n provide: NG_VALUE_ACCESSOR,\n multi: true,\n useValue: MULTI_SELECT_ACCESSOR,\n },\n ],\n})\nexport class TuiMultiSelectGroupDirective {}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {FormsModule} from '@angular/forms';\nimport {\n TuiActiveZoneModule,\n TuiHoveredModule,\n TuiLetModule,\n TuiMapperPipeModule,\n TuiPreventDefaultModule,\n} from '@taiga-ui/cdk';\nimport {\n TuiDataListModule,\n TuiHostedDropdownModule,\n TuiPrimitiveCheckboxModule,\n TuiSvgModule,\n} from '@taiga-ui/core';\nimport {TuiArrowModule} from '@taiga-ui/kit/components/arrow';\nimport {TuiInputTagModule} from '@taiga-ui/kit/components/input-tag';\nimport {TuiMultiSelectOptionModule} from '@taiga-ui/kit/components/multi-select-option';\nimport {PolymorpheusModule} from '@tinkoff/ng-polymorpheus';\n\nimport {TuiHideSelectedPipe} from './hide-selected.pipe';\nimport {TuiMultiSelectComponent} from './multi-select.component';\nimport {TuiMultiSelectGroupComponent} from './multi-select-group/multi-select-group.component';\nimport {TuiMultiSelectGroupDirective} from './multi-select-group/multi-select-group.directive';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n PolymorpheusModule,\n TuiPreventDefaultModule,\n TuiActiveZoneModule,\n TuiArrowModule,\n TuiLetModule,\n TuiMapperPipeModule,\n TuiHoveredModule,\n TuiSvgModule,\n TuiHostedDropdownModule,\n TuiInputTagModule,\n TuiMultiSelectOptionModule,\n TuiPrimitiveCheckboxModule,\n TuiDataListModule,\n ],\n declarations: [\n TuiMultiSelectComponent,\n TuiMultiSelectGroupComponent,\n TuiMultiSelectGroupDirective,\n TuiHideSelectedPipe,\n ],\n exports: [\n TuiMultiSelectComponent,\n TuiMultiSelectGroupComponent,\n TuiMultiSelectGroupDirective,\n TuiHideSelectedPipe,\n ],\n})\nexport class TuiMultiSelectModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,74 +1,10 @@
1
1
  import { __decorate, __param, __extends } from 'tslib';
2
- import { Inject, ElementRef, Injectable, Pipe, Input, HostBinding, Component, ChangeDetectionStrategy, ViewChild, NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { Input, HostBinding, Component, ChangeDetectionStrategy, ElementRef, Inject, Directive, ViewChild, Injectable, Pipe, NgModule } from '@angular/core';
4
+ import { tuiDefaultProp, isEdgeOlderThan, CHROMIUM_EDGE_START_VERSION, isIE, TuiResizeService, tuiPure, TuiDestroyService, TuiRepeatTimesModule } from '@taiga-ui/cdk';
3
5
  import { USER_AGENT, WINDOW } from '@ng-web-apis/common';
4
- import { isEdgeOlderThan, CHROMIUM_EDGE_START_VERSION, isIE, tuiDefaultProp, TuiRepeatTimesModule } from '@taiga-ui/cdk';
5
- import { timer } from 'rxjs';
6
+ import { Observable, timer } from 'rxjs';
6
7
  import { map } from 'rxjs/operators';
7
- import { CommonModule } from '@angular/common';
8
-
9
- var AbstractTuiColorSegments = /** @class */ (function () {
10
- function AbstractTuiColorSegments(userAgent, elementRef) {
11
- this.userAgent = userAgent;
12
- this.elementRef = elementRef;
13
- this.isOldBrowsers = isEdgeOlderThan(CHROMIUM_EDGE_START_VERSION, this.userAgent) ||
14
- isIE(this.userAgent);
15
- }
16
- AbstractTuiColorSegments.prototype.calculate = function (colors) {
17
- if (this.isOldBrowsers) {
18
- return colors[0];
19
- }
20
- var elementWidth = this.elementRef.nativeElement.offsetWidth;
21
- var segmentWidth = Math.ceil(elementWidth / colors.length);
22
- var colorsString = colors.reduce(function (acc, color, i) {
23
- return acc + ", " + color + " " + i * segmentWidth + "px " + (i + 1) * segmentWidth + "px";
24
- }, '');
25
- return "linear-gradient(to right " + colorsString + ")";
26
- };
27
- AbstractTuiColorSegments.ctorParameters = function () { return [
28
- { type: String, decorators: [{ type: Inject, args: [USER_AGENT,] }] },
29
- { type: ElementRef, decorators: [{ type: Inject, args: [ElementRef,] }] }
30
- ]; };
31
- AbstractTuiColorSegments = __decorate([
32
- Injectable(),
33
- __param(0, Inject(USER_AGENT)),
34
- __param(1, Inject(ElementRef))
35
- ], AbstractTuiColorSegments);
36
- return AbstractTuiColorSegments;
37
- }());
38
-
39
- /**
40
- * @deprecated use tuiProgressColorSegmentsAsync instead
41
- * {@link TuiProgressColorSegmentsAsyncPipe}
42
- * example: `<progress [color]="colors | tuiProgressColorSegmentsAsync | async">`
43
- */
44
- var TuiProgressColorSegmentsPipe = /** @class */ (function (_super) {
45
- __extends(TuiProgressColorSegmentsPipe, _super);
46
- function TuiProgressColorSegmentsPipe() {
47
- return _super !== null && _super.apply(this, arguments) || this;
48
- }
49
- TuiProgressColorSegmentsPipe.prototype.transform = function (colors) {
50
- return this.calculate(colors);
51
- };
52
- TuiProgressColorSegmentsPipe = __decorate([
53
- Pipe({ name: 'tuiProgressColorSegments' })
54
- ], TuiProgressColorSegmentsPipe);
55
- return TuiProgressColorSegmentsPipe;
56
- }(AbstractTuiColorSegments));
57
-
58
- var TuiProgressColorSegmentsAsyncPipe = /** @class */ (function (_super) {
59
- __extends(TuiProgressColorSegmentsAsyncPipe, _super);
60
- function TuiProgressColorSegmentsAsyncPipe() {
61
- return _super !== null && _super.apply(this, arguments) || this;
62
- }
63
- TuiProgressColorSegmentsAsyncPipe.prototype.transform = function (colors) {
64
- var _this = this;
65
- return timer(0).pipe(map(function () { return _this.calculate(colors); }));
66
- };
67
- TuiProgressColorSegmentsAsyncPipe = __decorate([
68
- Pipe({ name: 'tuiProgressColorSegmentsAsync' })
69
- ], TuiProgressColorSegmentsAsyncPipe);
70
- return TuiProgressColorSegmentsAsyncPipe;
71
- }(AbstractTuiColorSegments));
72
8
 
73
9
  var TuiProgressBarComponent = /** @class */ (function () {
74
10
  function TuiProgressBarComponent() {
@@ -94,6 +30,66 @@ var TuiProgressBarComponent = /** @class */ (function () {
94
30
  return TuiProgressBarComponent;
95
31
  }());
96
32
 
33
+ /**
34
+ * TODO in v3.0 move inside {@link TuiProgressColorSegmentsDirective} (as a private method)
35
+ * (after deletion of {@link TuiProgressColorSegmentsPipe} and {@link TuiProgressColorSegmentsAsyncPipe})
36
+ */
37
+ var calculateColorSegments = function (colors, progressWidth) {
38
+ var segmentWidth = Math.ceil(progressWidth / colors.length);
39
+ var colorsString = colors.reduce(function (acc, color, i) {
40
+ return acc + ", " + color + " " + i * segmentWidth + "px " + (i + 1) * segmentWidth + "px";
41
+ }, '');
42
+ return "linear-gradient(to right " + colorsString + ")";
43
+ };
44
+
45
+ var TuiProgressColorSegmentsDirective = /** @class */ (function () {
46
+ function TuiProgressColorSegmentsDirective(elementRef, resize$, userAgent) {
47
+ this.elementRef = elementRef;
48
+ this.resize$ = resize$;
49
+ this.userAgent = userAgent;
50
+ this.isOldBrowsers = isEdgeOlderThan(CHROMIUM_EDGE_START_VERSION, this.userAgent) ||
51
+ isIE(this.userAgent);
52
+ this.colors = [];
53
+ }
54
+ Object.defineProperty(TuiProgressColorSegmentsDirective.prototype, "calcSegments$", {
55
+ get: function () {
56
+ var _this = this;
57
+ return this.resize$.pipe(map(function () {
58
+ return _this.isOldBrowsers
59
+ ? _this.colors[0]
60
+ : calculateColorSegments(_this.colors, _this.elementRef.nativeElement.offsetWidth);
61
+ }));
62
+ },
63
+ enumerable: true,
64
+ configurable: true
65
+ });
66
+ TuiProgressColorSegmentsDirective.ctorParameters = function () { return [
67
+ { type: ElementRef, decorators: [{ type: Inject, args: [ElementRef,] }] },
68
+ { type: Observable, decorators: [{ type: Inject, args: [TuiResizeService,] }] },
69
+ { type: String, decorators: [{ type: Inject, args: [USER_AGENT,] }] }
70
+ ]; };
71
+ __decorate([
72
+ Input('tuiProgressColorSegments')
73
+ ], TuiProgressColorSegmentsDirective.prototype, "colors", void 0);
74
+ __decorate([
75
+ tuiPure
76
+ ], TuiProgressColorSegmentsDirective.prototype, "calcSegments$", null);
77
+ TuiProgressColorSegmentsDirective = __decorate([
78
+ Directive({
79
+ selector: 'progress[tuiProgressBar][tuiProgressColorSegments]',
80
+ host: {
81
+ '[$.style.--tui-progress-color]': 'calcSegments$',
82
+ '($.style.--tui-progress-color)': '0',
83
+ },
84
+ providers: [TuiDestroyService, TuiResizeService],
85
+ }),
86
+ __param(0, Inject(ElementRef)),
87
+ __param(1, Inject(TuiResizeService)),
88
+ __param(2, Inject(USER_AGENT))
89
+ ], TuiProgressColorSegmentsDirective);
90
+ return TuiProgressColorSegmentsDirective;
91
+ }());
92
+
97
93
  // @dynamic
98
94
  var TuiProgressCircleComponent = /** @class */ (function () {
99
95
  function TuiProgressCircleComponent(userAgent, windowRef, elementRef) {
@@ -227,6 +223,74 @@ var TuiProgressSegmentedComponent = /** @class */ (function () {
227
223
  return TuiProgressSegmentedComponent;
228
224
  }());
229
225
 
226
+ // TODO delete in v3.0
227
+ var AbstractTuiColorSegments = /** @class */ (function () {
228
+ function AbstractTuiColorSegments(userAgent, elementRef) {
229
+ this.userAgent = userAgent;
230
+ this.elementRef = elementRef;
231
+ this.isOldBrowsers = isEdgeOlderThan(CHROMIUM_EDGE_START_VERSION, this.userAgent) ||
232
+ isIE(this.userAgent);
233
+ }
234
+ AbstractTuiColorSegments.prototype.calculate = function (colors) {
235
+ if (this.isOldBrowsers) {
236
+ return colors[0];
237
+ }
238
+ var elementWidth = this.elementRef.nativeElement.offsetWidth;
239
+ return calculateColorSegments(colors, elementWidth);
240
+ };
241
+ AbstractTuiColorSegments.ctorParameters = function () { return [
242
+ { type: String, decorators: [{ type: Inject, args: [USER_AGENT,] }] },
243
+ { type: ElementRef, decorators: [{ type: Inject, args: [ElementRef,] }] }
244
+ ]; };
245
+ AbstractTuiColorSegments = __decorate([
246
+ Injectable(),
247
+ __param(0, Inject(USER_AGENT)),
248
+ __param(1, Inject(ElementRef))
249
+ ], AbstractTuiColorSegments);
250
+ return AbstractTuiColorSegments;
251
+ }());
252
+
253
+ // TODO delete in v3.0
254
+ var TuiProgressColorSegmentsPipe = /** @class */ (function (_super) {
255
+ __extends(TuiProgressColorSegmentsPipe, _super);
256
+ function TuiProgressColorSegmentsPipe() {
257
+ return _super !== null && _super.apply(this, arguments) || this;
258
+ }
259
+ /**
260
+ * @deprecated use tuiProgressColorSegments directive instead
261
+ * {@link TuiProgressColorSegmentsDirective}
262
+ * @example: `<progress tuiProgressBar [tuiProgressColorSegments]="colors">`
263
+ */
264
+ TuiProgressColorSegmentsPipe.prototype.transform = function (colors) {
265
+ return this.calculate(colors);
266
+ };
267
+ TuiProgressColorSegmentsPipe = __decorate([
268
+ Pipe({ name: 'tuiProgressColorSegments' })
269
+ ], TuiProgressColorSegmentsPipe);
270
+ return TuiProgressColorSegmentsPipe;
271
+ }(AbstractTuiColorSegments));
272
+
273
+ // TODO delete in v3.0
274
+ var TuiProgressColorSegmentsAsyncPipe = /** @class */ (function (_super) {
275
+ __extends(TuiProgressColorSegmentsAsyncPipe, _super);
276
+ function TuiProgressColorSegmentsAsyncPipe() {
277
+ return _super !== null && _super.apply(this, arguments) || this;
278
+ }
279
+ /**
280
+ * @deprecated use tuiProgressColorSegments directive instead
281
+ * {@link TuiProgressColorSegmentsDirective}
282
+ * @example: `<progress tuiProgressBar [tuiProgressColorSegments]="colors">`
283
+ */
284
+ TuiProgressColorSegmentsAsyncPipe.prototype.transform = function (colors) {
285
+ var _this = this;
286
+ return timer(0).pipe(map(function () { return _this.calculate(colors); }));
287
+ };
288
+ TuiProgressColorSegmentsAsyncPipe = __decorate([
289
+ Pipe({ name: 'tuiProgressColorSegmentsAsync' })
290
+ ], TuiProgressColorSegmentsAsyncPipe);
291
+ return TuiProgressColorSegmentsAsyncPipe;
292
+ }(AbstractTuiColorSegments));
293
+
230
294
  var TuiProgressModule = /** @class */ (function () {
231
295
  function TuiProgressModule() {
232
296
  }
@@ -235,6 +299,7 @@ var TuiProgressModule = /** @class */ (function () {
235
299
  imports: [CommonModule, TuiRepeatTimesModule],
236
300
  declarations: [
237
301
  TuiProgressBarComponent,
302
+ TuiProgressColorSegmentsDirective,
238
303
  TuiProgressColorSegmentsPipe,
239
304
  TuiProgressColorSegmentsAsyncPipe,
240
305
  TuiProgressCircleComponent,
@@ -244,6 +309,7 @@ var TuiProgressModule = /** @class */ (function () {
244
309
  exports: [
245
310
  TuiProgressBarComponent,
246
311
  TuiProgressCircleComponent,
312
+ TuiProgressColorSegmentsDirective,
247
313
  TuiProgressColorSegmentsPipe,
248
314
  TuiProgressColorSegmentsAsyncPipe,
249
315
  TuiProgressLabelComponent,
@@ -258,5 +324,5 @@ var TuiProgressModule = /** @class */ (function () {
258
324
  * Generated bundle index. Do not edit.
259
325
  */
260
326
 
261
- export { AbstractTuiColorSegments, TuiProgressBarComponent, TuiProgressCircleComponent, TuiProgressColorSegmentsAsyncPipe, TuiProgressColorSegmentsPipe, TuiProgressLabelComponent, TuiProgressModule, TuiProgressSegmentedComponent, nonNegativeInt, positiveInt };
327
+ export { AbstractTuiColorSegments, TuiProgressBarComponent, TuiProgressCircleComponent, TuiProgressColorSegmentsAsyncPipe, TuiProgressColorSegmentsDirective, TuiProgressColorSegmentsPipe, TuiProgressLabelComponent, TuiProgressModule, TuiProgressSegmentedComponent, nonNegativeInt, positiveInt };
262
328
  //# sourceMappingURL=taiga-ui-kit-components-progress.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-kit-components-progress.js","sources":["ng://@taiga-ui/kit/components/progress/pipes/abstract-color-segments.ts","ng://@taiga-ui/kit/components/progress/pipes/progress-color-segments.pipe.ts","ng://@taiga-ui/kit/components/progress/pipes/progress-color-segments-async.pipe.ts","ng://@taiga-ui/kit/components/progress/progress-bar/progress-bar.component.ts","ng://@taiga-ui/kit/components/progress/progress-circle/progress-circle.component.ts","ng://@taiga-ui/kit/components/progress/progress-label/progress-label.component.ts","ng://@taiga-ui/kit/components/progress/progress-segmented/progress-segmented.component.ts","ng://@taiga-ui/kit/components/progress/progress.module.ts","ng://@taiga-ui/kit/components/progress/taiga-ui-kit-components-progress.ts"],"sourcesContent":["import {ElementRef, Inject, Injectable, PipeTransform} from '@angular/core';\nimport {USER_AGENT} from '@ng-web-apis/common';\nimport {CHROMIUM_EDGE_START_VERSION, isEdgeOlderThan, isIE} from '@taiga-ui/cdk';\n\n@Injectable()\nexport abstract class AbstractTuiColorSegments<T> implements PipeTransform {\n private readonly isOldBrowsers =\n isEdgeOlderThan(CHROMIUM_EDGE_START_VERSION, this.userAgent) ||\n isIE(this.userAgent);\n\n constructor(\n @Inject(USER_AGENT) private readonly userAgent: string,\n @Inject(ElementRef) private readonly elementRef: ElementRef<HTMLElement>,\n ) {}\n\n abstract transform(colors: string[]): T;\n\n protected calculate(colors: string[]): string {\n if (this.isOldBrowsers) {\n return colors[0];\n }\n\n const elementWidth = this.elementRef.nativeElement.offsetWidth;\n const segmentWidth = Math.ceil(elementWidth / colors.length);\n const colorsString = colors.reduce(\n (acc, color, i) =>\n `${acc}, ${color} ${i * segmentWidth}px ${(i + 1) * segmentWidth}px`,\n '',\n );\n\n return `linear-gradient(to right ${colorsString})`;\n }\n}\n","import {Pipe} from '@angular/core';\n\nimport {AbstractTuiColorSegments} from './abstract-color-segments';\n\n/**\n * @deprecated use tuiProgressColorSegmentsAsync instead\n * {@link TuiProgressColorSegmentsAsyncPipe}\n * example: `<progress [color]=\"colors | tuiProgressColorSegmentsAsync | async\">`\n */\n@Pipe({name: 'tuiProgressColorSegments'})\nexport class TuiProgressColorSegmentsPipe extends AbstractTuiColorSegments<string> {\n transform(colors: string[]): string {\n return this.calculate(colors);\n }\n}\n","import {Pipe} from '@angular/core';\nimport {Observable, timer} from 'rxjs';\nimport {map} from 'rxjs/operators';\n\nimport {AbstractTuiColorSegments} from './abstract-color-segments';\n\n@Pipe({name: 'tuiProgressColorSegmentsAsync'})\nexport class TuiProgressColorSegmentsAsyncPipe extends AbstractTuiColorSegments<\n Observable<string>\n> {\n transform(colors: string[]): Observable<string> {\n return timer(0).pipe(map(() => this.calculate(colors)));\n }\n}\n","import {ChangeDetectionStrategy, Component, HostBinding, Input} from '@angular/core';\nimport {tuiDefaultProp} from '@taiga-ui/cdk';\nimport {TuiSizeS} from '@taiga-ui/core';\n\n@Component({\n selector: 'progress[tuiProgressBar]',\n template: '',\n styleUrls: ['./progress-bar.component.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiProgressBarComponent {\n @Input()\n @HostBinding('style.--tui-progress-color')\n color?: string;\n\n @Input()\n @HostBinding('attr.data-size')\n @tuiDefaultProp()\n size: TuiSizeS = 'm';\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n HostBinding,\n Inject,\n Input,\n ViewChild,\n} from '@angular/core';\nimport {USER_AGENT, WINDOW} from '@ng-web-apis/common';\nimport {\n CHROMIUM_EDGE_START_VERSION,\n isEdgeOlderThan,\n tuiDefaultProp,\n} from '@taiga-ui/cdk';\nimport {TuiSizeS, TuiSizeXL} from '@taiga-ui/core';\n\n// @dynamic\n@Component({\n selector: 'tui-progress-circle',\n templateUrl: './progress-circle.template.html',\n styleUrls: ['./progress-circle.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiProgressCircleComponent {\n @ViewChild('progressCircle', {static: true})\n private readonly progressCircle!: ElementRef<SVGCircleElement>;\n\n @Input()\n @tuiDefaultProp()\n value = 0;\n\n @Input()\n @tuiDefaultProp()\n max = 1;\n\n @Input()\n @HostBinding('style.--tui-progress-color')\n @tuiDefaultProp()\n color: string | null = null;\n\n @Input()\n @HostBinding('attr.data-size')\n @tuiDefaultProp()\n size: TuiSizeS | TuiSizeXL = 'm';\n\n @HostBinding('style.--progress-percentage')\n get progressPercentage(): number {\n return this.value / this.max;\n }\n\n get oldEdgeRadiusFallback(): number | null {\n if (!isEdgeOlderThan(CHROMIUM_EDGE_START_VERSION, this.userAgent)) {\n return null;\n }\n\n const strokeWidth = parseInt(\n this.windowRef.getComputedStyle(this.progressCircle.nativeElement)\n .strokeWidth,\n 10,\n );\n\n return (this.elementRef.nativeElement.offsetWidth - strokeWidth) / 2;\n }\n\n constructor(\n @Inject(USER_AGENT) private readonly userAgent: string,\n @Inject(WINDOW) private readonly windowRef: Window,\n @Inject(ElementRef) private readonly elementRef: ElementRef<HTMLElement>,\n ) {}\n}\n","import {ChangeDetectionStrategy, Component} from '@angular/core';\n\n@Component({\n selector: 'label[tuiProgressLabel]',\n templateUrl: './progress-label.template.html',\n styleUrls: ['./progress-label.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiProgressLabelComponent {}\n","import {ChangeDetectionStrategy, Component, HostBinding, Input} from '@angular/core';\nimport {tuiDefaultProp} from '@taiga-ui/cdk';\nimport {TuiSizeS} from '@taiga-ui/core';\n\nexport function nonNegativeInt(value: number): boolean {\n return Number.isInteger(value) && value >= 0;\n}\n\nexport function positiveInt(value: number): boolean {\n return Number.isInteger(value) && value > 0;\n}\n\n@Component({\n selector: 'tui-progress-segmented',\n templateUrl: './progress-segmented.template.html',\n styleUrls: ['./progress-segmented.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiProgressSegmentedComponent {\n @Input()\n @tuiDefaultProp(nonNegativeInt, 'Must be non-negative integer between 0 and max')\n value = 0;\n\n @Input()\n @tuiDefaultProp(positiveInt, 'Must be positive integer')\n max = 1;\n\n @Input()\n @HostBinding('attr.data-size')\n size: TuiSizeS = 'm';\n\n @Input()\n @tuiDefaultProp()\n colors: string | ReadonlyArray<string> = 'var(--tui-primary)';\n\n getActiveColor(index: number = 0): string | null {\n return typeof this.colors === 'string'\n ? this.colors\n : this.colors[index] || this.colors[this.colors.length - 1];\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {TuiRepeatTimesModule} from '@taiga-ui/cdk';\n\nimport {TuiProgressColorSegmentsPipe} from './pipes/progress-color-segments.pipe';\nimport {TuiProgressColorSegmentsAsyncPipe} from './pipes/progress-color-segments-async.pipe';\nimport {TuiProgressBarComponent} from './progress-bar/progress-bar.component';\nimport {TuiProgressCircleComponent} from './progress-circle/progress-circle.component';\nimport {TuiProgressLabelComponent} from './progress-label/progress-label.component';\nimport {TuiProgressSegmentedComponent} from './progress-segmented/progress-segmented.component';\n\n@NgModule({\n imports: [CommonModule, TuiRepeatTimesModule],\n declarations: [\n TuiProgressBarComponent,\n TuiProgressColorSegmentsPipe,\n TuiProgressColorSegmentsAsyncPipe,\n TuiProgressCircleComponent,\n TuiProgressLabelComponent,\n TuiProgressSegmentedComponent,\n ],\n exports: [\n TuiProgressBarComponent,\n TuiProgressCircleComponent,\n TuiProgressColorSegmentsPipe,\n TuiProgressColorSegmentsAsyncPipe,\n TuiProgressLabelComponent,\n TuiProgressSegmentedComponent,\n ],\n})\nexport class TuiProgressModule {}\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-progress.js","sources":["ng://@taiga-ui/kit/components/progress/progress-bar/progress-bar.component.ts","ng://@taiga-ui/kit/components/progress/utils/calculate-color-segments.ts","ng://@taiga-ui/kit/components/progress/progress-bar/progress-color-segments.directive.ts","ng://@taiga-ui/kit/components/progress/progress-circle/progress-circle.component.ts","ng://@taiga-ui/kit/components/progress/progress-label/progress-label.component.ts","ng://@taiga-ui/kit/components/progress/progress-segmented/progress-segmented.component.ts","ng://@taiga-ui/kit/components/progress/utils/abstract-color-segments.ts","ng://@taiga-ui/kit/components/progress/utils/progress-color-segments.pipe.ts","ng://@taiga-ui/kit/components/progress/utils/progress-color-segments-async.pipe.ts","ng://@taiga-ui/kit/components/progress/progress.module.ts","ng://@taiga-ui/kit/components/progress/taiga-ui-kit-components-progress.ts"],"sourcesContent":["import {ChangeDetectionStrategy, Component, HostBinding, Input} from '@angular/core';\nimport {tuiDefaultProp} from '@taiga-ui/cdk';\nimport {TuiSizeS} from '@taiga-ui/core';\n\n@Component({\n selector: 'progress[tuiProgressBar]',\n template: '',\n styleUrls: ['./progress-bar.component.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiProgressBarComponent {\n @Input()\n @HostBinding('style.--tui-progress-color')\n color?: string;\n\n @Input()\n @HostBinding('attr.data-size')\n @tuiDefaultProp()\n size: TuiSizeS = 'm';\n}\n","/**\n * TODO in v3.0 move inside {@link TuiProgressColorSegmentsDirective} (as a private method)\n * (after deletion of {@link TuiProgressColorSegmentsPipe} and {@link TuiProgressColorSegmentsAsyncPipe})\n */\nexport const calculateColorSegments = (\n colors: string[],\n progressWidth: number,\n): string => {\n const segmentWidth = Math.ceil(progressWidth / colors.length);\n const colorsString = colors.reduce(\n (acc, color, i) =>\n `${acc}, ${color} ${i * segmentWidth}px ${(i + 1) * segmentWidth}px`,\n '',\n );\n\n return `linear-gradient(to right ${colorsString})`;\n};\n","import {Directive, ElementRef, Inject, Input} from '@angular/core';\nimport {USER_AGENT} from '@ng-web-apis/common';\nimport {\n CHROMIUM_EDGE_START_VERSION,\n isEdgeOlderThan,\n isIE,\n TuiDestroyService,\n tuiPure,\n TuiResizeService,\n} from '@taiga-ui/cdk';\nimport {Observable} from 'rxjs';\nimport {map} from 'rxjs/operators';\n\nimport {calculateColorSegments} from '../utils/calculate-color-segments';\n\n@Directive({\n selector: 'progress[tuiProgressBar][tuiProgressColorSegments]',\n host: {\n '[$.style.--tui-progress-color]': 'calcSegments$',\n '($.style.--tui-progress-color)': '0',\n },\n providers: [TuiDestroyService, TuiResizeService],\n})\nexport class TuiProgressColorSegmentsDirective {\n private readonly isOldBrowsers =\n isEdgeOlderThan(CHROMIUM_EDGE_START_VERSION, this.userAgent) ||\n isIE(this.userAgent);\n\n @Input('tuiProgressColorSegments')\n colors: string[] = [];\n\n @tuiPure\n get calcSegments$(): Observable<string> {\n return this.resize$.pipe(\n map(() =>\n this.isOldBrowsers\n ? this.colors[0]\n : calculateColorSegments(\n this.colors,\n this.elementRef.nativeElement.offsetWidth,\n ),\n ),\n );\n }\n\n constructor(\n @Inject(ElementRef) private readonly elementRef: ElementRef<HTMLProgressElement>,\n @Inject(TuiResizeService) private readonly resize$: Observable<unknown>,\n @Inject(USER_AGENT) private readonly userAgent: string,\n ) {}\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n HostBinding,\n Inject,\n Input,\n ViewChild,\n} from '@angular/core';\nimport {USER_AGENT, WINDOW} from '@ng-web-apis/common';\nimport {\n CHROMIUM_EDGE_START_VERSION,\n isEdgeOlderThan,\n tuiDefaultProp,\n} from '@taiga-ui/cdk';\nimport {TuiSizeS, TuiSizeXL} from '@taiga-ui/core';\n\n// @dynamic\n@Component({\n selector: 'tui-progress-circle',\n templateUrl: './progress-circle.template.html',\n styleUrls: ['./progress-circle.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiProgressCircleComponent {\n @ViewChild('progressCircle', {static: true})\n private readonly progressCircle!: ElementRef<SVGCircleElement>;\n\n @Input()\n @tuiDefaultProp()\n value = 0;\n\n @Input()\n @tuiDefaultProp()\n max = 1;\n\n @Input()\n @HostBinding('style.--tui-progress-color')\n @tuiDefaultProp()\n color: string | null = null;\n\n @Input()\n @HostBinding('attr.data-size')\n @tuiDefaultProp()\n size: TuiSizeS | TuiSizeXL = 'm';\n\n @HostBinding('style.--progress-percentage')\n get progressPercentage(): number {\n return this.value / this.max;\n }\n\n get oldEdgeRadiusFallback(): number | null {\n if (!isEdgeOlderThan(CHROMIUM_EDGE_START_VERSION, this.userAgent)) {\n return null;\n }\n\n const strokeWidth = parseInt(\n this.windowRef.getComputedStyle(this.progressCircle.nativeElement)\n .strokeWidth,\n 10,\n );\n\n return (this.elementRef.nativeElement.offsetWidth - strokeWidth) / 2;\n }\n\n constructor(\n @Inject(USER_AGENT) private readonly userAgent: string,\n @Inject(WINDOW) private readonly windowRef: Window,\n @Inject(ElementRef) private readonly elementRef: ElementRef<HTMLElement>,\n ) {}\n}\n","import {ChangeDetectionStrategy, Component} from '@angular/core';\n\n@Component({\n selector: 'label[tuiProgressLabel]',\n templateUrl: './progress-label.template.html',\n styleUrls: ['./progress-label.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiProgressLabelComponent {}\n","import {ChangeDetectionStrategy, Component, HostBinding, Input} from '@angular/core';\nimport {tuiDefaultProp} from '@taiga-ui/cdk';\nimport {TuiSizeS} from '@taiga-ui/core';\n\nexport function nonNegativeInt(value: number): boolean {\n return Number.isInteger(value) && value >= 0;\n}\n\nexport function positiveInt(value: number): boolean {\n return Number.isInteger(value) && value > 0;\n}\n\n@Component({\n selector: 'tui-progress-segmented',\n templateUrl: './progress-segmented.template.html',\n styleUrls: ['./progress-segmented.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiProgressSegmentedComponent {\n @Input()\n @tuiDefaultProp(nonNegativeInt, 'Must be non-negative integer between 0 and max')\n value = 0;\n\n @Input()\n @tuiDefaultProp(positiveInt, 'Must be positive integer')\n max = 1;\n\n @Input()\n @HostBinding('attr.data-size')\n size: TuiSizeS = 'm';\n\n @Input()\n @tuiDefaultProp()\n colors: string | ReadonlyArray<string> = 'var(--tui-primary)';\n\n getActiveColor(index: number = 0): string | null {\n return typeof this.colors === 'string'\n ? this.colors\n : this.colors[index] || this.colors[this.colors.length - 1];\n }\n}\n","import {ElementRef, Inject, Injectable, PipeTransform} from '@angular/core';\nimport {USER_AGENT} from '@ng-web-apis/common';\nimport {CHROMIUM_EDGE_START_VERSION, isEdgeOlderThan, isIE} from '@taiga-ui/cdk';\n\nimport {calculateColorSegments} from './calculate-color-segments';\n\n// TODO delete in v3.0\n@Injectable()\nexport abstract class AbstractTuiColorSegments<T> implements PipeTransform {\n private readonly isOldBrowsers =\n isEdgeOlderThan(CHROMIUM_EDGE_START_VERSION, this.userAgent) ||\n isIE(this.userAgent);\n\n constructor(\n @Inject(USER_AGENT) private readonly userAgent: string,\n @Inject(ElementRef) private readonly elementRef: ElementRef<HTMLElement>,\n ) {}\n\n abstract transform(colors: string[]): T;\n\n protected calculate(colors: string[]): string {\n if (this.isOldBrowsers) {\n return colors[0];\n }\n\n const elementWidth = this.elementRef.nativeElement.offsetWidth;\n\n return calculateColorSegments(colors, elementWidth);\n }\n}\n","import {Pipe} from '@angular/core';\n\nimport {AbstractTuiColorSegments} from './abstract-color-segments';\n\n// TODO delete in v3.0\n@Pipe({name: 'tuiProgressColorSegments'})\nexport class TuiProgressColorSegmentsPipe extends AbstractTuiColorSegments<string> {\n /**\n * @deprecated use tuiProgressColorSegments directive instead\n * {@link TuiProgressColorSegmentsDirective}\n * @example: `<progress tuiProgressBar [tuiProgressColorSegments]=\"colors\">`\n */\n transform(colors: string[]): string {\n return this.calculate(colors);\n }\n}\n","import {Pipe} from '@angular/core';\nimport {Observable, timer} from 'rxjs';\nimport {map} from 'rxjs/operators';\n\nimport {AbstractTuiColorSegments} from './abstract-color-segments';\n\n// TODO delete in v3.0\n@Pipe({name: 'tuiProgressColorSegmentsAsync'})\nexport class TuiProgressColorSegmentsAsyncPipe extends AbstractTuiColorSegments<\n Observable<string>\n> {\n /**\n * @deprecated use tuiProgressColorSegments directive instead\n * {@link TuiProgressColorSegmentsDirective}\n * @example: `<progress tuiProgressBar [tuiProgressColorSegments]=\"colors\">`\n */\n transform(colors: string[]): Observable<string> {\n return timer(0).pipe(map(() => this.calculate(colors)));\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {TuiRepeatTimesModule} from '@taiga-ui/cdk';\n\nimport {TuiProgressBarComponent} from './progress-bar/progress-bar.component';\nimport {TuiProgressColorSegmentsDirective} from './progress-bar/progress-color-segments.directive';\nimport {TuiProgressCircleComponent} from './progress-circle/progress-circle.component';\nimport {TuiProgressLabelComponent} from './progress-label/progress-label.component';\nimport {TuiProgressSegmentedComponent} from './progress-segmented/progress-segmented.component';\nimport {TuiProgressColorSegmentsPipe} from './utils/progress-color-segments.pipe';\nimport {TuiProgressColorSegmentsAsyncPipe} from './utils/progress-color-segments-async.pipe';\n\n@NgModule({\n imports: [CommonModule, TuiRepeatTimesModule],\n declarations: [\n TuiProgressBarComponent,\n TuiProgressColorSegmentsDirective,\n TuiProgressColorSegmentsPipe,\n TuiProgressColorSegmentsAsyncPipe,\n TuiProgressCircleComponent,\n TuiProgressLabelComponent,\n TuiProgressSegmentedComponent,\n ],\n exports: [\n TuiProgressBarComponent,\n TuiProgressCircleComponent,\n TuiProgressColorSegmentsDirective,\n TuiProgressColorSegmentsPipe,\n TuiProgressColorSegmentsAsyncPipe,\n TuiProgressLabelComponent,\n TuiProgressSegmentedComponent,\n ],\n})\nexport class TuiProgressModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}