@taiga-ui/kit 2.28.0 → 2.32.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 (501) hide show
  1. package/README.md +4 -5
  2. package/abstract/slider/slider.d.ts +1 -1
  3. package/abstract/taiga-ui-kit-abstract.metadata.json +1 -1
  4. package/bundles/taiga-ui-kit-abstract.umd.js +6 -5
  5. package/bundles/taiga-ui-kit-abstract.umd.js.map +1 -1
  6. package/bundles/taiga-ui-kit-abstract.umd.min.js +2 -2
  7. package/bundles/taiga-ui-kit-abstract.umd.min.js.map +1 -1
  8. package/bundles/taiga-ui-kit-components-arrow.umd.js +31 -8
  9. package/bundles/taiga-ui-kit-components-arrow.umd.js.map +1 -1
  10. package/bundles/taiga-ui-kit-components-arrow.umd.min.js +2 -2
  11. package/bundles/taiga-ui-kit-components-arrow.umd.min.js.map +1 -1
  12. package/bundles/taiga-ui-kit-components-calendar-month.umd.js +4 -1
  13. package/bundles/taiga-ui-kit-components-calendar-month.umd.js.map +1 -1
  14. package/bundles/taiga-ui-kit-components-calendar-month.umd.min.js +2 -2
  15. package/bundles/taiga-ui-kit-components-calendar-month.umd.min.js.map +1 -1
  16. package/bundles/taiga-ui-kit-components-carousel.umd.js +5 -4
  17. package/bundles/taiga-ui-kit-components-carousel.umd.js.map +1 -1
  18. package/bundles/taiga-ui-kit-components-carousel.umd.min.js +1 -1
  19. package/bundles/taiga-ui-kit-components-carousel.umd.min.js.map +1 -1
  20. package/bundles/taiga-ui-kit-components-checkbox-block.umd.js.map +1 -1
  21. package/bundles/taiga-ui-kit-components-checkbox-block.umd.min.js.map +1 -1
  22. package/bundles/taiga-ui-kit-components-checkbox-labeled.umd.js.map +1 -1
  23. package/bundles/taiga-ui-kit-components-checkbox-labeled.umd.min.js.map +1 -1
  24. package/bundles/taiga-ui-kit-components-checkbox.umd.js +1 -1
  25. package/bundles/taiga-ui-kit-components-checkbox.umd.js.map +1 -1
  26. package/bundles/taiga-ui-kit-components-checkbox.umd.min.js +1 -1
  27. package/bundles/taiga-ui-kit-components-checkbox.umd.min.js.map +1 -1
  28. package/bundles/taiga-ui-kit-components-combo-box.umd.js +13 -19
  29. package/bundles/taiga-ui-kit-components-combo-box.umd.js.map +1 -1
  30. package/bundles/taiga-ui-kit-components-combo-box.umd.min.js +2 -2
  31. package/bundles/taiga-ui-kit-components-combo-box.umd.min.js.map +1 -1
  32. package/bundles/taiga-ui-kit-components-input-count.umd.js +2 -6
  33. package/bundles/taiga-ui-kit-components-input-count.umd.js.map +1 -1
  34. package/bundles/taiga-ui-kit-components-input-count.umd.min.js +1 -1
  35. package/bundles/taiga-ui-kit-components-input-count.umd.min.js.map +1 -1
  36. package/bundles/taiga-ui-kit-components-input-date-range.umd.js +28 -13
  37. package/bundles/taiga-ui-kit-components-input-date-range.umd.js.map +1 -1
  38. package/bundles/taiga-ui-kit-components-input-date-range.umd.min.js +1 -1
  39. package/bundles/taiga-ui-kit-components-input-date-range.umd.min.js.map +1 -1
  40. package/bundles/taiga-ui-kit-components-input-date-time.umd.js +40 -23
  41. package/bundles/taiga-ui-kit-components-input-date-time.umd.js.map +1 -1
  42. package/bundles/taiga-ui-kit-components-input-date-time.umd.min.js +2 -2
  43. package/bundles/taiga-ui-kit-components-input-date-time.umd.min.js.map +1 -1
  44. package/bundles/taiga-ui-kit-components-input-date.umd.js +27 -12
  45. package/bundles/taiga-ui-kit-components-input-date.umd.js.map +1 -1
  46. package/bundles/taiga-ui-kit-components-input-date.umd.min.js +2 -2
  47. package/bundles/taiga-ui-kit-components-input-date.umd.min.js.map +1 -1
  48. package/bundles/taiga-ui-kit-components-input-file.umd.js +1 -8
  49. package/bundles/taiga-ui-kit-components-input-file.umd.js.map +1 -1
  50. package/bundles/taiga-ui-kit-components-input-file.umd.min.js +1 -1
  51. package/bundles/taiga-ui-kit-components-input-file.umd.min.js.map +1 -1
  52. package/bundles/taiga-ui-kit-components-input-inline.umd.js +2 -15
  53. package/bundles/taiga-ui-kit-components-input-inline.umd.js.map +1 -1
  54. package/bundles/taiga-ui-kit-components-input-inline.umd.min.js +1 -1
  55. package/bundles/taiga-ui-kit-components-input-inline.umd.min.js.map +1 -1
  56. package/bundles/taiga-ui-kit-components-input-month-range.umd.js +1 -8
  57. package/bundles/taiga-ui-kit-components-input-month-range.umd.js.map +1 -1
  58. package/bundles/taiga-ui-kit-components-input-month-range.umd.min.js +1 -1
  59. package/bundles/taiga-ui-kit-components-input-month-range.umd.min.js.map +1 -1
  60. package/bundles/taiga-ui-kit-components-input-month.umd.js +1 -8
  61. package/bundles/taiga-ui-kit-components-input-month.umd.js.map +1 -1
  62. package/bundles/taiga-ui-kit-components-input-month.umd.min.js +1 -1
  63. package/bundles/taiga-ui-kit-components-input-month.umd.min.js.map +1 -1
  64. package/bundles/taiga-ui-kit-components-input-number.umd.js +12 -12
  65. package/bundles/taiga-ui-kit-components-input-number.umd.js.map +1 -1
  66. package/bundles/taiga-ui-kit-components-input-number.umd.min.js +1 -1
  67. package/bundles/taiga-ui-kit-components-input-number.umd.min.js.map +1 -1
  68. package/bundles/taiga-ui-kit-components-input-password.umd.js +2 -9
  69. package/bundles/taiga-ui-kit-components-input-password.umd.js.map +1 -1
  70. package/bundles/taiga-ui-kit-components-input-password.umd.min.js +1 -1
  71. package/bundles/taiga-ui-kit-components-input-password.umd.min.js.map +1 -1
  72. package/bundles/taiga-ui-kit-components-input-phone-international.umd.js +46 -25
  73. package/bundles/taiga-ui-kit-components-input-phone-international.umd.js.map +1 -1
  74. package/bundles/taiga-ui-kit-components-input-phone-international.umd.min.js +1 -1
  75. package/bundles/taiga-ui-kit-components-input-phone-international.umd.min.js.map +1 -1
  76. package/bundles/taiga-ui-kit-components-input-phone.umd.js +3 -3
  77. package/bundles/taiga-ui-kit-components-input-phone.umd.js.map +1 -1
  78. package/bundles/taiga-ui-kit-components-input-phone.umd.min.js +1 -1
  79. package/bundles/taiga-ui-kit-components-input-phone.umd.min.js.map +1 -1
  80. package/bundles/taiga-ui-kit-components-input-range.umd.js +7 -4
  81. package/bundles/taiga-ui-kit-components-input-range.umd.js.map +1 -1
  82. package/bundles/taiga-ui-kit-components-input-range.umd.min.js +2 -2
  83. package/bundles/taiga-ui-kit-components-input-range.umd.min.js.map +1 -1
  84. package/bundles/taiga-ui-kit-components-input-slider.umd.js +7 -4
  85. package/bundles/taiga-ui-kit-components-input-slider.umd.js.map +1 -1
  86. package/bundles/taiga-ui-kit-components-input-slider.umd.min.js +1 -1
  87. package/bundles/taiga-ui-kit-components-input-slider.umd.min.js.map +1 -1
  88. package/bundles/taiga-ui-kit-components-input-tag.umd.js +3 -3
  89. package/bundles/taiga-ui-kit-components-input-tag.umd.js.map +1 -1
  90. package/bundles/taiga-ui-kit-components-input-tag.umd.min.js +1 -1
  91. package/bundles/taiga-ui-kit-components-input-tag.umd.min.js.map +1 -1
  92. package/bundles/taiga-ui-kit-components-input-time.umd.js +14 -14
  93. package/bundles/taiga-ui-kit-components-input-time.umd.js.map +1 -1
  94. package/bundles/taiga-ui-kit-components-input-time.umd.min.js +2 -2
  95. package/bundles/taiga-ui-kit-components-input-time.umd.min.js.map +1 -1
  96. package/bundles/taiga-ui-kit-components-input.umd.js +1 -1
  97. package/bundles/taiga-ui-kit-components-input.umd.js.map +1 -1
  98. package/bundles/taiga-ui-kit-components-input.umd.min.js +1 -1
  99. package/bundles/taiga-ui-kit-components-input.umd.min.js.map +1 -1
  100. package/bundles/taiga-ui-kit-components-multi-select.umd.js +23 -18
  101. package/bundles/taiga-ui-kit-components-multi-select.umd.js.map +1 -1
  102. package/bundles/taiga-ui-kit-components-multi-select.umd.min.js +2 -2
  103. package/bundles/taiga-ui-kit-components-multi-select.umd.min.js.map +1 -1
  104. package/bundles/taiga-ui-kit-components-rating.umd.js +368 -0
  105. package/bundles/taiga-ui-kit-components-rating.umd.js.map +1 -0
  106. package/bundles/taiga-ui-kit-components-rating.umd.min.js +16 -0
  107. package/bundles/taiga-ui-kit-components-rating.umd.min.js.map +1 -0
  108. package/bundles/taiga-ui-kit-components-select.umd.js +11 -16
  109. package/bundles/taiga-ui-kit-components-select.umd.js.map +1 -1
  110. package/bundles/taiga-ui-kit-components-select.umd.min.js +1 -1
  111. package/bundles/taiga-ui-kit-components-select.umd.min.js.map +1 -1
  112. package/bundles/taiga-ui-kit-components-tag.umd.js.map +1 -1
  113. package/bundles/taiga-ui-kit-components-tag.umd.min.js.map +1 -1
  114. package/bundles/taiga-ui-kit-components-text-area.umd.js +2 -2
  115. package/bundles/taiga-ui-kit-components-text-area.umd.js.map +1 -1
  116. package/bundles/taiga-ui-kit-components-text-area.umd.min.js +1 -1
  117. package/bundles/taiga-ui-kit-components-text-area.umd.min.js.map +1 -1
  118. package/bundles/taiga-ui-kit-components-tree.umd.js +23 -13
  119. package/bundles/taiga-ui-kit-components-tree.umd.js.map +1 -1
  120. package/bundles/taiga-ui-kit-components-tree.umd.min.js +2 -2
  121. package/bundles/taiga-ui-kit-components-tree.umd.min.js.map +1 -1
  122. package/bundles/taiga-ui-kit-components.umd.js +12 -4
  123. package/bundles/taiga-ui-kit-components.umd.js.map +1 -1
  124. package/bundles/taiga-ui-kit-components.umd.min.js +1 -1
  125. package/bundles/taiga-ui-kit-constants.umd.js +16 -0
  126. package/bundles/taiga-ui-kit-constants.umd.js.map +1 -1
  127. package/bundles/taiga-ui-kit-constants.umd.min.js +1 -1
  128. package/bundles/taiga-ui-kit-constants.umd.min.js.map +1 -1
  129. package/bundles/taiga-ui-kit-directives-lazy-loading.umd.js.map +1 -1
  130. package/bundles/taiga-ui-kit-directives-lazy-loading.umd.min.js.map +1 -1
  131. package/bundles/taiga-ui-kit-tokens.umd.js +7 -0
  132. package/bundles/taiga-ui-kit-tokens.umd.js.map +1 -1
  133. package/bundles/taiga-ui-kit-tokens.umd.min.js +1 -1
  134. package/bundles/taiga-ui-kit-tokens.umd.min.js.map +1 -1
  135. package/bundles/taiga-ui-kit-utils-mask.umd.js +65 -22
  136. package/bundles/taiga-ui-kit-utils-mask.umd.js.map +1 -1
  137. package/bundles/taiga-ui-kit-utils-mask.umd.min.js +2 -2
  138. package/bundles/taiga-ui-kit-utils-mask.umd.min.js.map +1 -1
  139. package/bundles/taiga-ui-kit-utils-miscellaneous.umd.js +241 -6
  140. package/bundles/taiga-ui-kit-utils-miscellaneous.umd.js.map +1 -1
  141. package/bundles/taiga-ui-kit-utils-miscellaneous.umd.min.js +15 -1
  142. package/bundles/taiga-ui-kit-utils-miscellaneous.umd.min.js.map +1 -1
  143. package/components/arrow/arrow-options.d.ts +16 -0
  144. package/components/arrow/arrow.component.d.ts +5 -3
  145. package/components/arrow/index.d.ts +1 -0
  146. package/components/arrow/taiga-ui-kit-components-arrow.metadata.json +1 -1
  147. package/components/calendar-month/taiga-ui-kit-components-calendar-month.metadata.json +1 -1
  148. package/components/carousel/taiga-ui-kit-components-carousel.metadata.json +1 -1
  149. package/components/checkbox-block/checkbox-block.component.d.ts +1 -1
  150. package/components/checkbox-labeled/checkbox-labeled.component.d.ts +1 -1
  151. package/components/combo-box/combo-box.component.d.ts +3 -2
  152. package/components/combo-box/taiga-ui-kit-components-combo-box.metadata.json +1 -1
  153. package/components/index.d.ts +1 -0
  154. package/components/input-date/input-date.component.d.ts +5 -4
  155. package/components/input-date/taiga-ui-kit-components-input-date.metadata.json +1 -1
  156. package/components/input-date-range/input-date-range.component.d.ts +5 -4
  157. package/components/input-date-range/taiga-ui-kit-components-input-date-range.metadata.json +1 -1
  158. package/components/input-date-time/input-date-time.component.d.ts +5 -5
  159. package/components/input-date-time/taiga-ui-kit-components-input-date-time.metadata.json +1 -1
  160. package/components/input-file/input-file.component.d.ts +0 -1
  161. package/components/input-file/taiga-ui-kit-components-input-file.metadata.json +1 -1
  162. package/components/input-inline/input-inline.component.d.ts +0 -1
  163. package/components/input-inline/taiga-ui-kit-components-input-inline.metadata.json +1 -1
  164. package/components/input-month/input-month.component.d.ts +0 -1
  165. package/components/input-month/taiga-ui-kit-components-input-month.metadata.json +1 -1
  166. package/components/input-month-range/input-month-range.component.d.ts +0 -1
  167. package/components/input-month-range/taiga-ui-kit-components-input-month-range.metadata.json +1 -1
  168. package/components/input-number/taiga-ui-kit-components-input-number.metadata.json +1 -1
  169. package/components/input-password/input-password.component.d.ts +0 -1
  170. package/components/input-password/taiga-ui-kit-components-input-password.metadata.json +1 -1
  171. package/components/input-phone-international/const/countries.d.ts +15 -7
  172. package/components/input-phone-international/country-iso-code.d.ts +1 -1
  173. package/components/input-phone-international/index.d.ts +2 -0
  174. package/components/input-phone-international/input-phone-international.component.d.ts +2 -2
  175. package/components/input-phone-international/taiga-ui-kit-components-input-phone-international.metadata.json +1 -1
  176. package/components/input-phone-international/tokens/countries-masks.d.ts +3 -0
  177. package/components/input-phone-international/utils/extract-value-from-event.d.ts +1 -0
  178. package/components/input-range/input-range.component.d.ts +2 -1
  179. package/components/input-range/taiga-ui-kit-components-input-range.metadata.json +1 -1
  180. package/components/input-slider/input-slider.component.d.ts +2 -1
  181. package/components/input-slider/taiga-ui-kit-components-input-slider.metadata.json +1 -1
  182. package/components/input-tag/input-tag.component.d.ts +1 -1
  183. package/components/input-tag/taiga-ui-kit-components-input-tag.metadata.json +1 -1
  184. package/components/input-time/input-time-options.d.ts +3 -0
  185. package/components/input-time/input-time.component.d.ts +7 -8
  186. package/components/input-time/taiga-ui-kit-components-input-time.metadata.json +1 -1
  187. package/components/multi-select/multi-select.component.d.ts +4 -2
  188. package/components/multi-select/taiga-ui-kit-components-multi-select.metadata.json +1 -1
  189. package/components/rating/index.d.ts +3 -0
  190. package/components/rating/package.json +13 -0
  191. package/components/rating/rating-options.d.ts +9 -0
  192. package/components/rating/rating.component.d.ts +21 -0
  193. package/components/rating/rating.module.d.ts +2 -0
  194. package/components/rating/taiga-ui-kit-components-rating.d.ts +4 -0
  195. package/components/rating/taiga-ui-kit-components-rating.metadata.json +1 -0
  196. package/components/select/select.component.d.ts +3 -2
  197. package/components/select/taiga-ui-kit-components-select.metadata.json +1 -1
  198. package/components/taiga-ui-kit-components.metadata.json +1 -1
  199. package/components/text-area/taiga-ui-kit-components-text-area.metadata.json +1 -1
  200. package/components/tree/components/tree/tree.component.d.ts +3 -1
  201. package/components/tree/taiga-ui-kit-components-tree.metadata.json +1 -1
  202. package/constants/index.d.ts +1 -0
  203. package/constants/masks.d.ts +8 -0
  204. package/constants/max-time-values.d.ts +2 -0
  205. package/constants/taiga-ui-kit-constants.metadata.json +1 -1
  206. package/directives/lazy-loading/lazy-loading.service.d.ts +1 -1
  207. package/esm2015/abstract/input-slider.js +4 -2
  208. package/esm2015/abstract/slider/slider.js +1 -1
  209. package/esm2015/components/arrow/arrow-options.js +17 -0
  210. package/esm2015/components/arrow/arrow.component.js +12 -8
  211. package/esm2015/components/arrow/arrow.module.js +3 -2
  212. package/esm2015/components/arrow/index.js +2 -1
  213. package/esm2015/components/calendar-month/calendar-month.component.js +5 -2
  214. package/esm2015/components/carousel/carousel-scroll.directive.js +5 -4
  215. package/esm2015/components/carousel/carousel.component.js +1 -1
  216. package/esm2015/components/checkbox/checkbox.component.js +2 -2
  217. package/esm2015/components/checkbox-block/checkbox-block.component.js +1 -1
  218. package/esm2015/components/checkbox-labeled/checkbox-labeled.component.js +1 -1
  219. package/esm2015/components/combo-box/combo-box.component.js +15 -17
  220. package/esm2015/components/index.js +2 -1
  221. package/esm2015/components/input/input.component.js +2 -2
  222. package/esm2015/components/input-count/input-count.component.js +3 -7
  223. package/esm2015/components/input-date/input-date.component.js +31 -18
  224. package/esm2015/components/input-date-range/input-date-range.component.js +32 -19
  225. package/esm2015/components/input-date-time/input-date-time.component.js +45 -24
  226. package/esm2015/components/input-file/input-file.component.js +2 -5
  227. package/esm2015/components/input-inline/input-inline.component.js +4 -13
  228. package/esm2015/components/input-month/input-month.component.js +2 -5
  229. package/esm2015/components/input-month-range/input-month-range.component.js +2 -5
  230. package/esm2015/components/input-number/input-number.component.js +15 -15
  231. package/esm2015/components/input-password/input-password.component.js +3 -6
  232. package/esm2015/components/input-phone/input-phone.component.js +4 -4
  233. package/esm2015/components/input-phone-international/const/countries.js +21 -10
  234. package/esm2015/components/input-phone-international/country-iso-code.js +2 -2
  235. package/esm2015/components/input-phone-international/index.js +3 -1
  236. package/esm2015/components/input-phone-international/input-phone-international.component.js +15 -18
  237. package/esm2015/components/input-phone-international/tokens/countries-masks.js +6 -0
  238. package/esm2015/components/input-phone-international/utils/extract-value-from-event.js +9 -0
  239. package/esm2015/components/input-range/input-range.component.js +9 -6
  240. package/esm2015/components/input-slider/input-slider.component.js +9 -6
  241. package/esm2015/components/input-tag/input-tag.component.js +4 -4
  242. package/esm2015/components/input-time/input-time-options.js +4 -1
  243. package/esm2015/components/input-time/input-time.component.js +10 -8
  244. package/esm2015/components/multi-select/multi-select.component.js +17 -11
  245. package/esm2015/components/rating/index.js +4 -0
  246. package/esm2015/components/rating/rating-options.js +11 -0
  247. package/esm2015/components/rating/rating.component.js +91 -0
  248. package/esm2015/components/rating/rating.module.js +23 -0
  249. package/esm2015/components/rating/taiga-ui-kit-components-rating.js +5 -0
  250. package/esm2015/components/select/select.component.js +13 -14
  251. package/esm2015/components/tag/tag.component.js +2 -2
  252. package/esm2015/components/text-area/text-area.component.js +3 -3
  253. package/esm2015/components/tree/components/tree/tree.component.js +11 -6
  254. package/esm2015/components/tree/tree.module.js +9 -2
  255. package/esm2015/constants/index.js +2 -1
  256. package/esm2015/constants/masks.js +9 -1
  257. package/esm2015/constants/max-time-values.js +7 -0
  258. package/esm2015/directives/lazy-loading/lazy-loading.service.js +1 -1
  259. package/esm2015/tokens/date-inputs-value-transformers.js +5 -0
  260. package/esm2015/tokens/index.js +2 -1
  261. package/esm2015/types/index.js +1 -1
  262. package/esm2015/types/time-format-parts.js +1 -0
  263. package/esm2015/utils/mask/create-auto-corrected-date-pipe.js +6 -4
  264. package/esm2015/utils/mask/create-auto-corrected-date-range-pipe.js +9 -6
  265. package/esm2015/utils/mask/create-auto-corrected-date-time-pipe.js +6 -6
  266. package/esm2015/utils/mask/create-auto-corrected-time-pipe.js +10 -7
  267. package/esm2015/utils/mask/create-date-mask.js +16 -0
  268. package/esm2015/utils/mask/create-date-range-mask.js +14 -0
  269. package/esm2015/utils/mask/create-time-mask.js +19 -8
  270. package/esm2015/utils/mask/index.js +3 -1
  271. package/esm2015/utils/miscellaneous/get-precision.js +8 -0
  272. package/esm2015/utils/miscellaneous/index.js +2 -1
  273. package/esm2015/utils/miscellaneous/replay-control-value-changes-factory.js +10 -4
  274. package/esm5/abstract/input-slider.js +4 -2
  275. package/esm5/abstract/slider/slider.js +1 -1
  276. package/esm5/components/arrow/arrow-options.js +17 -0
  277. package/esm5/components/arrow/arrow.component.js +12 -8
  278. package/esm5/components/arrow/arrow.module.js +3 -2
  279. package/esm5/components/arrow/index.js +2 -1
  280. package/esm5/components/calendar-month/calendar-month.component.js +5 -2
  281. package/esm5/components/carousel/carousel-scroll.directive.js +5 -4
  282. package/esm5/components/carousel/carousel.component.js +1 -1
  283. package/esm5/components/checkbox/checkbox.component.js +2 -2
  284. package/esm5/components/checkbox-block/checkbox-block.component.js +1 -1
  285. package/esm5/components/checkbox-labeled/checkbox-labeled.component.js +1 -1
  286. package/esm5/components/combo-box/combo-box.component.js +15 -21
  287. package/esm5/components/index.js +2 -1
  288. package/esm5/components/input/input.component.js +2 -2
  289. package/esm5/components/input-count/input-count.component.js +3 -7
  290. package/esm5/components/input-date/input-date.component.js +33 -18
  291. package/esm5/components/input-date-range/input-date-range.component.js +34 -19
  292. package/esm5/components/input-date-time/input-date-time.component.js +45 -28
  293. package/esm5/components/input-file/input-file.component.js +2 -9
  294. package/esm5/components/input-inline/input-inline.component.js +4 -17
  295. package/esm5/components/input-month/input-month.component.js +2 -9
  296. package/esm5/components/input-month-range/input-month-range.component.js +2 -9
  297. package/esm5/components/input-number/input-number.component.js +14 -14
  298. package/esm5/components/input-password/input-password.component.js +3 -10
  299. package/esm5/components/input-phone/input-phone.component.js +4 -4
  300. package/esm5/components/input-phone-international/const/countries.js +21 -10
  301. package/esm5/components/input-phone-international/country-iso-code.js +2 -2
  302. package/esm5/components/input-phone-international/index.js +3 -1
  303. package/esm5/components/input-phone-international/input-phone-international.component.js +15 -18
  304. package/esm5/components/input-phone-international/tokens/countries-masks.js +6 -0
  305. package/esm5/components/input-phone-international/utils/extract-value-from-event.js +9 -0
  306. package/esm5/components/input-range/input-range.component.js +9 -6
  307. package/esm5/components/input-slider/input-slider.component.js +9 -6
  308. package/esm5/components/input-tag/input-tag.component.js +4 -4
  309. package/esm5/components/input-time/input-time-options.js +4 -1
  310. package/esm5/components/input-time/input-time.component.js +10 -12
  311. package/esm5/components/multi-select/multi-select.component.js +21 -15
  312. package/esm5/components/rating/index.js +4 -0
  313. package/esm5/components/rating/rating-options.js +11 -0
  314. package/esm5/components/rating/rating.component.js +111 -0
  315. package/esm5/components/rating/rating.module.js +26 -0
  316. package/esm5/components/rating/taiga-ui-kit-components-rating.js +5 -0
  317. package/esm5/components/select/select.component.js +13 -18
  318. package/esm5/components/tag/tag.component.js +1 -1
  319. package/esm5/components/text-area/text-area.component.js +3 -3
  320. package/esm5/components/tree/components/tree/tree.component.js +15 -9
  321. package/esm5/components/tree/tree.module.js +9 -2
  322. package/esm5/constants/index.js +2 -1
  323. package/esm5/constants/masks.js +9 -1
  324. package/esm5/constants/max-time-values.js +7 -0
  325. package/esm5/directives/lazy-loading/lazy-loading.service.js +1 -1
  326. package/esm5/tokens/date-inputs-value-transformers.js +5 -0
  327. package/esm5/tokens/index.js +2 -1
  328. package/esm5/types/index.js +1 -1
  329. package/esm5/types/time-format-parts.js +1 -0
  330. package/esm5/utils/mask/create-auto-corrected-date-pipe.js +6 -4
  331. package/esm5/utils/mask/create-auto-corrected-date-range-pipe.js +9 -6
  332. package/esm5/utils/mask/create-auto-corrected-date-time-pipe.js +6 -6
  333. package/esm5/utils/mask/create-auto-corrected-time-pipe.js +10 -7
  334. package/esm5/utils/mask/create-date-mask.js +17 -0
  335. package/esm5/utils/mask/create-date-range-mask.js +13 -0
  336. package/esm5/utils/mask/create-time-mask.js +18 -7
  337. package/esm5/utils/mask/index.js +3 -1
  338. package/esm5/utils/miscellaneous/get-precision.js +9 -0
  339. package/esm5/utils/miscellaneous/index.js +2 -1
  340. package/esm5/utils/miscellaneous/replay-control-value-changes-factory.js +12 -4
  341. package/fesm2015/taiga-ui-kit-abstract.js +3 -1
  342. package/fesm2015/taiga-ui-kit-abstract.js.map +1 -1
  343. package/fesm2015/taiga-ui-kit-components-arrow.js +29 -11
  344. package/fesm2015/taiga-ui-kit-components-arrow.js.map +1 -1
  345. package/fesm2015/taiga-ui-kit-components-calendar-month.js +4 -1
  346. package/fesm2015/taiga-ui-kit-components-calendar-month.js.map +1 -1
  347. package/fesm2015/taiga-ui-kit-components-carousel.js +5 -4
  348. package/fesm2015/taiga-ui-kit-components-carousel.js.map +1 -1
  349. package/fesm2015/taiga-ui-kit-components-checkbox-block.js.map +1 -1
  350. package/fesm2015/taiga-ui-kit-components-checkbox-labeled.js.map +1 -1
  351. package/fesm2015/taiga-ui-kit-components-checkbox.js +1 -1
  352. package/fesm2015/taiga-ui-kit-components-checkbox.js.map +1 -1
  353. package/fesm2015/taiga-ui-kit-components-combo-box.js +14 -16
  354. package/fesm2015/taiga-ui-kit-components-combo-box.js.map +1 -1
  355. package/fesm2015/taiga-ui-kit-components-input-count.js +2 -6
  356. package/fesm2015/taiga-ui-kit-components-input-count.js.map +1 -1
  357. package/fesm2015/taiga-ui-kit-components-input-date-range.js +31 -18
  358. package/fesm2015/taiga-ui-kit-components-input-date-range.js.map +1 -1
  359. package/fesm2015/taiga-ui-kit-components-input-date-time.js +45 -24
  360. package/fesm2015/taiga-ui-kit-components-input-date-time.js.map +1 -1
  361. package/fesm2015/taiga-ui-kit-components-input-date.js +30 -17
  362. package/fesm2015/taiga-ui-kit-components-input-date.js.map +1 -1
  363. package/fesm2015/taiga-ui-kit-components-input-file.js +1 -4
  364. package/fesm2015/taiga-ui-kit-components-input-file.js.map +1 -1
  365. package/fesm2015/taiga-ui-kit-components-input-inline.js +3 -12
  366. package/fesm2015/taiga-ui-kit-components-input-inline.js.map +1 -1
  367. package/fesm2015/taiga-ui-kit-components-input-month-range.js +1 -4
  368. package/fesm2015/taiga-ui-kit-components-input-month-range.js.map +1 -1
  369. package/fesm2015/taiga-ui-kit-components-input-month.js +1 -4
  370. package/fesm2015/taiga-ui-kit-components-input-month.js.map +1 -1
  371. package/fesm2015/taiga-ui-kit-components-input-number.js +14 -14
  372. package/fesm2015/taiga-ui-kit-components-input-number.js.map +1 -1
  373. package/fesm2015/taiga-ui-kit-components-input-password.js +2 -5
  374. package/fesm2015/taiga-ui-kit-components-input-password.js.map +1 -1
  375. package/fesm2015/taiga-ui-kit-components-input-phone-international.js +46 -28
  376. package/fesm2015/taiga-ui-kit-components-input-phone-international.js.map +1 -1
  377. package/fesm2015/taiga-ui-kit-components-input-phone.js +3 -3
  378. package/fesm2015/taiga-ui-kit-components-input-phone.js.map +1 -1
  379. package/fesm2015/taiga-ui-kit-components-input-range.js +8 -5
  380. package/fesm2015/taiga-ui-kit-components-input-range.js.map +1 -1
  381. package/fesm2015/taiga-ui-kit-components-input-slider.js +8 -5
  382. package/fesm2015/taiga-ui-kit-components-input-slider.js.map +1 -1
  383. package/fesm2015/taiga-ui-kit-components-input-tag.js +3 -3
  384. package/fesm2015/taiga-ui-kit-components-input-tag.js.map +1 -1
  385. package/fesm2015/taiga-ui-kit-components-input-time.js +11 -6
  386. package/fesm2015/taiga-ui-kit-components-input-time.js.map +1 -1
  387. package/fesm2015/taiga-ui-kit-components-input.js +1 -1
  388. package/fesm2015/taiga-ui-kit-components-input.js.map +1 -1
  389. package/fesm2015/taiga-ui-kit-components-multi-select.js +16 -10
  390. package/fesm2015/taiga-ui-kit-components-multi-select.js.map +1 -1
  391. package/fesm2015/taiga-ui-kit-components-rating.js +123 -0
  392. package/fesm2015/taiga-ui-kit-components-rating.js.map +1 -0
  393. package/fesm2015/taiga-ui-kit-components-select.js +12 -13
  394. package/fesm2015/taiga-ui-kit-components-select.js.map +1 -1
  395. package/fesm2015/taiga-ui-kit-components-tag.js +1 -1
  396. package/fesm2015/taiga-ui-kit-components-tag.js.map +1 -1
  397. package/fesm2015/taiga-ui-kit-components-text-area.js +2 -2
  398. package/fesm2015/taiga-ui-kit-components-text-area.js.map +1 -1
  399. package/fesm2015/taiga-ui-kit-components-tree.js +17 -8
  400. package/fesm2015/taiga-ui-kit-components-tree.js.map +1 -1
  401. package/fesm2015/taiga-ui-kit-components.js +1 -0
  402. package/fesm2015/taiga-ui-kit-components.js.map +1 -1
  403. package/fesm2015/taiga-ui-kit-constants.js +16 -1
  404. package/fesm2015/taiga-ui-kit-constants.js.map +1 -1
  405. package/fesm2015/taiga-ui-kit-directives-lazy-loading.js.map +1 -1
  406. package/fesm2015/taiga-ui-kit-tokens.js +5 -1
  407. package/fesm2015/taiga-ui-kit-tokens.js.map +1 -1
  408. package/fesm2015/taiga-ui-kit-utils-mask.js +71 -27
  409. package/fesm2015/taiga-ui-kit-utils-mask.js.map +1 -1
  410. package/fesm2015/taiga-ui-kit-utils-miscellaneous.js +17 -3
  411. package/fesm2015/taiga-ui-kit-utils-miscellaneous.js.map +1 -1
  412. package/fesm5/taiga-ui-kit-abstract.js +3 -1
  413. package/fesm5/taiga-ui-kit-abstract.js.map +1 -1
  414. package/fesm5/taiga-ui-kit-components-arrow.js +29 -11
  415. package/fesm5/taiga-ui-kit-components-arrow.js.map +1 -1
  416. package/fesm5/taiga-ui-kit-components-calendar-month.js +4 -1
  417. package/fesm5/taiga-ui-kit-components-calendar-month.js.map +1 -1
  418. package/fesm5/taiga-ui-kit-components-carousel.js +5 -4
  419. package/fesm5/taiga-ui-kit-components-carousel.js.map +1 -1
  420. package/fesm5/taiga-ui-kit-components-checkbox-block.js.map +1 -1
  421. package/fesm5/taiga-ui-kit-components-checkbox-labeled.js.map +1 -1
  422. package/fesm5/taiga-ui-kit-components-checkbox.js +1 -1
  423. package/fesm5/taiga-ui-kit-components-checkbox.js.map +1 -1
  424. package/fesm5/taiga-ui-kit-components-combo-box.js +14 -20
  425. package/fesm5/taiga-ui-kit-components-combo-box.js.map +1 -1
  426. package/fesm5/taiga-ui-kit-components-input-count.js +2 -6
  427. package/fesm5/taiga-ui-kit-components-input-count.js.map +1 -1
  428. package/fesm5/taiga-ui-kit-components-input-date-range.js +33 -18
  429. package/fesm5/taiga-ui-kit-components-input-date-range.js.map +1 -1
  430. package/fesm5/taiga-ui-kit-components-input-date-time.js +45 -28
  431. package/fesm5/taiga-ui-kit-components-input-date-time.js.map +1 -1
  432. package/fesm5/taiga-ui-kit-components-input-date.js +32 -17
  433. package/fesm5/taiga-ui-kit-components-input-date.js.map +1 -1
  434. package/fesm5/taiga-ui-kit-components-input-file.js +1 -8
  435. package/fesm5/taiga-ui-kit-components-input-file.js.map +1 -1
  436. package/fesm5/taiga-ui-kit-components-input-inline.js +3 -16
  437. package/fesm5/taiga-ui-kit-components-input-inline.js.map +1 -1
  438. package/fesm5/taiga-ui-kit-components-input-month-range.js +1 -8
  439. package/fesm5/taiga-ui-kit-components-input-month-range.js.map +1 -1
  440. package/fesm5/taiga-ui-kit-components-input-month.js +1 -8
  441. package/fesm5/taiga-ui-kit-components-input-month.js.map +1 -1
  442. package/fesm5/taiga-ui-kit-components-input-number.js +13 -13
  443. package/fesm5/taiga-ui-kit-components-input-number.js.map +1 -1
  444. package/fesm5/taiga-ui-kit-components-input-password.js +2 -9
  445. package/fesm5/taiga-ui-kit-components-input-password.js.map +1 -1
  446. package/fesm5/taiga-ui-kit-components-input-phone-international.js +46 -28
  447. package/fesm5/taiga-ui-kit-components-input-phone-international.js.map +1 -1
  448. package/fesm5/taiga-ui-kit-components-input-phone.js +3 -3
  449. package/fesm5/taiga-ui-kit-components-input-phone.js.map +1 -1
  450. package/fesm5/taiga-ui-kit-components-input-range.js +8 -5
  451. package/fesm5/taiga-ui-kit-components-input-range.js.map +1 -1
  452. package/fesm5/taiga-ui-kit-components-input-slider.js +8 -5
  453. package/fesm5/taiga-ui-kit-components-input-slider.js.map +1 -1
  454. package/fesm5/taiga-ui-kit-components-input-tag.js +3 -3
  455. package/fesm5/taiga-ui-kit-components-input-tag.js.map +1 -1
  456. package/fesm5/taiga-ui-kit-components-input-time.js +11 -10
  457. package/fesm5/taiga-ui-kit-components-input-time.js.map +1 -1
  458. package/fesm5/taiga-ui-kit-components-input.js +1 -1
  459. package/fesm5/taiga-ui-kit-components-input.js.map +1 -1
  460. package/fesm5/taiga-ui-kit-components-multi-select.js +20 -14
  461. package/fesm5/taiga-ui-kit-components-multi-select.js.map +1 -1
  462. package/fesm5/taiga-ui-kit-components-rating.js +146 -0
  463. package/fesm5/taiga-ui-kit-components-rating.js.map +1 -0
  464. package/fesm5/taiga-ui-kit-components-select.js +12 -17
  465. package/fesm5/taiga-ui-kit-components-select.js.map +1 -1
  466. package/fesm5/taiga-ui-kit-components-tag.js.map +1 -1
  467. package/fesm5/taiga-ui-kit-components-text-area.js +2 -2
  468. package/fesm5/taiga-ui-kit-components-text-area.js.map +1 -1
  469. package/fesm5/taiga-ui-kit-components-tree.js +21 -11
  470. package/fesm5/taiga-ui-kit-components-tree.js.map +1 -1
  471. package/fesm5/taiga-ui-kit-components.js +1 -0
  472. package/fesm5/taiga-ui-kit-components.js.map +1 -1
  473. package/fesm5/taiga-ui-kit-constants.js +16 -1
  474. package/fesm5/taiga-ui-kit-constants.js.map +1 -1
  475. package/fesm5/taiga-ui-kit-directives-lazy-loading.js.map +1 -1
  476. package/fesm5/taiga-ui-kit-tokens.js +5 -1
  477. package/fesm5/taiga-ui-kit-tokens.js.map +1 -1
  478. package/fesm5/taiga-ui-kit-utils-mask.js +67 -26
  479. package/fesm5/taiga-ui-kit-utils-mask.js.map +1 -1
  480. package/fesm5/taiga-ui-kit-utils-miscellaneous.js +20 -3
  481. package/fesm5/taiga-ui-kit-utils-miscellaneous.js.map +1 -1
  482. package/package.json +14 -14
  483. package/tokens/date-inputs-value-transformers.d.ts +5 -0
  484. package/tokens/index.d.ts +1 -0
  485. package/tokens/taiga-ui-kit-tokens.metadata.json +1 -1
  486. package/types/index.d.ts +1 -0
  487. package/types/taiga-ui-kit-types.metadata.json +1 -1
  488. package/types/time-format-parts.d.ts +1 -0
  489. package/utils/mask/create-auto-corrected-date-pipe.d.ts +7 -3
  490. package/utils/mask/create-auto-corrected-date-range-pipe.d.ts +7 -2
  491. package/utils/mask/create-auto-corrected-date-time-pipe.d.ts +8 -3
  492. package/utils/mask/create-auto-corrected-time-pipe.d.ts +3 -2
  493. package/utils/mask/create-date-mask.d.ts +3 -0
  494. package/utils/mask/create-date-range-mask.d.ts +3 -0
  495. package/utils/mask/create-time-mask.d.ts +2 -1
  496. package/utils/mask/index.d.ts +2 -0
  497. package/utils/mask/taiga-ui-kit-utils-mask.metadata.json +1 -1
  498. package/utils/miscellaneous/get-precision.d.ts +4 -0
  499. package/utils/miscellaneous/index.d.ts +1 -0
  500. package/utils/miscellaneous/replay-control-value-changes-factory.d.ts +3 -2
  501. package/utils/miscellaneous/taiga-ui-kit-utils-miscellaneous.metadata.json +1 -1
@@ -0,0 +1,123 @@
1
+ import { __decorate, __param } from 'tslib';
2
+ import { InjectionToken, Optional, Self, Inject, ChangeDetectorRef, ViewChild, Input, HostListener, Component, ChangeDetectionStrategy, forwardRef, NgModule } from '@angular/core';
3
+ import { NgControl, FormsModule, ReactiveFormsModule } from '@angular/forms';
4
+ import { AbstractTuiControl, isNativeFocused, tuiDefaultProp, TUI_FOCUSABLE_ITEM_ACCESSOR, TuiFocusableModule, TuiRepeatTimesModule } from '@taiga-ui/cdk';
5
+ import { TuiSvgModule } from '@taiga-ui/core';
6
+
7
+ const TUI_RATING_DEFAULT_OPTIONS = {
8
+ min: 0,
9
+ max: 5,
10
+ iconNormal: 'tuiIconStarLarge',
11
+ iconFilled: 'tuiIconStarFilledLarge',
12
+ };
13
+ const TUI_RATING_OPTIONS = new InjectionToken('Default parameters for rating component', {
14
+ factory: () => TUI_RATING_DEFAULT_OPTIONS,
15
+ });
16
+
17
+ var TuiRatingComponent_1;
18
+ let TuiRatingComponent = TuiRatingComponent_1 = class TuiRatingComponent extends AbstractTuiControl {
19
+ constructor(ngControl, changeDetectorRef, options) {
20
+ super(ngControl, changeDetectorRef);
21
+ this.options = options;
22
+ this.min = this.options.min;
23
+ this.max = this.options.max;
24
+ this.iconNormal = this.options.iconNormal;
25
+ this.iconFilled = this.options.iconFilled;
26
+ }
27
+ get nativeFocusableElement() {
28
+ return this.computedDisabled || !this.focusableElement
29
+ ? null
30
+ : this.focusableElement.nativeElement;
31
+ }
32
+ get focused() {
33
+ return isNativeFocused(this.nativeFocusableElement);
34
+ }
35
+ get isFocusable() {
36
+ return !(this.readOnly || this.disabled);
37
+ }
38
+ get percent() {
39
+ return (100 * this.value) / this.max;
40
+ }
41
+ onFocused(focused) {
42
+ this.updateFocused(focused);
43
+ }
44
+ setRateByReverseIndex(index) {
45
+ this.updateValue(this.max - index);
46
+ }
47
+ setRate(value) {
48
+ this.updateValue(value);
49
+ }
50
+ getFallbackValue() {
51
+ return 0;
52
+ }
53
+ };
54
+ TuiRatingComponent.ctorParameters = () => [
55
+ { type: NgControl, decorators: [{ type: Optional }, { type: Self }, { type: Inject, args: [NgControl,] }] },
56
+ { type: ChangeDetectorRef, decorators: [{ type: Inject, args: [ChangeDetectorRef,] }] },
57
+ { type: undefined, decorators: [{ type: Inject, args: [TUI_RATING_OPTIONS,] }] }
58
+ ];
59
+ __decorate([
60
+ ViewChild('focusableElement')
61
+ ], TuiRatingComponent.prototype, "focusableElement", void 0);
62
+ __decorate([
63
+ Input(),
64
+ tuiDefaultProp()
65
+ ], TuiRatingComponent.prototype, "min", void 0);
66
+ __decorate([
67
+ Input(),
68
+ tuiDefaultProp()
69
+ ], TuiRatingComponent.prototype, "max", void 0);
70
+ __decorate([
71
+ Input(),
72
+ tuiDefaultProp()
73
+ ], TuiRatingComponent.prototype, "iconNormal", void 0);
74
+ __decorate([
75
+ Input(),
76
+ tuiDefaultProp()
77
+ ], TuiRatingComponent.prototype, "iconFilled", void 0);
78
+ __decorate([
79
+ HostListener('focusin', ['true']),
80
+ HostListener('focusout', ['false'])
81
+ ], TuiRatingComponent.prototype, "onFocused", null);
82
+ TuiRatingComponent = TuiRatingComponent_1 = __decorate([
83
+ Component({
84
+ selector: 'tui-rating',
85
+ template: "<label>\n <ng-content></ng-content>\n\n <div class=\"t-host\">\n <div class=\"t-interactive\">\n <tui-svg\n *tuiRepeatTimes=\"let index of max\"\n class=\"t-icon-filled\"\n [src]=\"iconFilled\"\n (click)=\"setRateByReverseIndex(index)\"\n ></tui-svg>\n </div>\n\n <div class=\"t-wrapper\" [style.width.%]=\"percent\">\n <tui-svg\n *tuiRepeatTimes=\"let index of max\"\n class=\"t-icon-filled\"\n [src]=\"iconFilled\"\n ></tui-svg>\n </div>\n\n <tui-svg *tuiRepeatTimes=\"let item of max\" [src]=\"iconNormal\"></tui-svg>\n\n <input\n #focusableElement\n type=\"range\"\n step=\"1\"\n class=\"t-input\"\n [min]=\"min\"\n [max]=\"max\"\n [ngModel]=\"value\"\n [tuiFocusable]=\"isFocusable\"\n (ngModelChange)=\"setRate($event)\"\n />\n </div>\n</label>\n",
86
+ changeDetection: ChangeDetectionStrategy.OnPush,
87
+ providers: [
88
+ {
89
+ provide: TUI_FOCUSABLE_ITEM_ACCESSOR,
90
+ useExisting: forwardRef(() => TuiRatingComponent_1),
91
+ },
92
+ ],
93
+ styles: [":host._disabled,:host._readonly{pointer-events:none}:host._disabled{opacity:var(--tui-disabled-opacity)}.t-host{position:relative;display:inline-flex}.t-input{pointer-events:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:0 0}.t-input::-webkit-slider-thumb{display:none}.t-input::-moz-range-thumb{opacity:0}.t-input,.t-interactive,.t-wrapper{position:absolute;left:0;bottom:0;width:100%;height:100%}.t-interactive,.t-wrapper{display:inline-flex;overflow:hidden;flex-direction:row-reverse;justify-content:flex-end;white-space:nowrap}.t-wrapper{pointer-events:none}.t-interactive{opacity:0}@media (hover:hover) and (pointer:fine){.t-interactive:hover{opacity:1}.t-interactive:hover~.t-wrapper{visibility:hidden}.t-interactive:hover .t-icon-filled{opacity:0}.t-interactive:hover .t-icon-filled:hover,.t-interactive:hover .t-icon-filled:hover~.t-icon-filled{opacity:1}}.t-icon-filled{position:relative;cursor:pointer}"]
94
+ }),
95
+ __param(0, Optional()),
96
+ __param(0, Self()),
97
+ __param(0, Inject(NgControl)),
98
+ __param(1, Inject(ChangeDetectorRef)),
99
+ __param(2, Inject(TUI_RATING_OPTIONS))
100
+ ], TuiRatingComponent);
101
+
102
+ let TuiRatingModule = class TuiRatingModule {
103
+ };
104
+ TuiRatingModule = __decorate([
105
+ NgModule({
106
+ imports: [
107
+ TuiSvgModule,
108
+ TuiFocusableModule,
109
+ TuiRepeatTimesModule,
110
+ FormsModule,
111
+ ReactiveFormsModule,
112
+ ],
113
+ declarations: [TuiRatingComponent],
114
+ exports: [TuiRatingComponent],
115
+ })
116
+ ], TuiRatingModule);
117
+
118
+ /**
119
+ * Generated bundle index. Do not edit.
120
+ */
121
+
122
+ export { TUI_RATING_DEFAULT_OPTIONS, TUI_RATING_OPTIONS, TuiRatingComponent, TuiRatingModule };
123
+ //# sourceMappingURL=taiga-ui-kit-components-rating.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"taiga-ui-kit-components-rating.js","sources":["ng://@taiga-ui/kit/components/rating/rating-options.ts","ng://@taiga-ui/kit/components/rating/rating.component.ts","ng://@taiga-ui/kit/components/rating/rating.module.ts","ng://@taiga-ui/kit/components/rating/taiga-ui-kit-components-rating.ts"],"sourcesContent":["import {InjectionToken} from '@angular/core';\n\nexport interface TuiRatingOptions {\n readonly min: number;\n readonly max: number;\n readonly iconNormal: string;\n readonly iconFilled: string;\n}\n\nexport const TUI_RATING_DEFAULT_OPTIONS: TuiRatingOptions = {\n min: 0,\n max: 5,\n iconNormal: 'tuiIconStarLarge',\n iconFilled: 'tuiIconStarFilledLarge',\n};\n\nexport const TUI_RATING_OPTIONS: InjectionToken<TuiRatingOptions> =\n new InjectionToken<TuiRatingOptions>('Default parameters for rating component', {\n factory: () => TUI_RATING_DEFAULT_OPTIONS,\n });\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n forwardRef,\n HostListener,\n Inject,\n Input,\n Optional,\n Self,\n ViewChild,\n} from '@angular/core';\nimport {NgControl} from '@angular/forms';\nimport {\n AbstractTuiControl,\n isNativeFocused,\n TUI_FOCUSABLE_ITEM_ACCESSOR,\n tuiDefaultProp,\n TuiFocusableElementAccessor,\n} from '@taiga-ui/cdk';\n\nimport {TUI_RATING_OPTIONS, TuiRatingOptions} from './rating-options';\n\n@Component({\n selector: 'tui-rating',\n templateUrl: './rating.template.html',\n styleUrls: ['./rating.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: TUI_FOCUSABLE_ITEM_ACCESSOR,\n useExisting: forwardRef(() => TuiRatingComponent),\n },\n ],\n})\nexport class TuiRatingComponent\n extends AbstractTuiControl<number>\n implements TuiFocusableElementAccessor\n{\n @ViewChild('focusableElement')\n private readonly focusableElement?: ElementRef<HTMLInputElement>;\n\n @Input()\n @tuiDefaultProp()\n min = this.options.min;\n\n @Input()\n @tuiDefaultProp()\n max = this.options.max;\n\n @Input()\n @tuiDefaultProp()\n iconNormal = this.options.iconNormal;\n\n @Input()\n @tuiDefaultProp()\n iconFilled = this.options.iconFilled;\n\n constructor(\n @Optional()\n @Self()\n @Inject(NgControl)\n ngControl: NgControl | null,\n @Inject(ChangeDetectorRef)\n changeDetectorRef: ChangeDetectorRef,\n @Inject(TUI_RATING_OPTIONS)\n private readonly options: TuiRatingOptions,\n ) {\n super(ngControl, changeDetectorRef);\n }\n\n get nativeFocusableElement(): HTMLInputElement | null {\n return this.computedDisabled || !this.focusableElement\n ? null\n : this.focusableElement.nativeElement;\n }\n\n get focused(): boolean {\n return isNativeFocused(this.nativeFocusableElement);\n }\n\n get isFocusable(): boolean {\n return !(this.readOnly || this.disabled);\n }\n\n get percent(): number {\n return (100 * this.value) / this.max;\n }\n\n @HostListener('focusin', ['true'])\n @HostListener('focusout', ['false'])\n onFocused(focused: boolean): void {\n this.updateFocused(focused);\n }\n\n setRateByReverseIndex(index: number): void {\n this.updateValue(this.max - index);\n }\n\n setRate(value: number): void {\n this.updateValue(value);\n }\n\n protected getFallbackValue(): number {\n return 0;\n }\n}\n","import {NgModule} from '@angular/core';\nimport {FormsModule, ReactiveFormsModule} from '@angular/forms';\nimport {TuiFocusableModule, TuiRepeatTimesModule} from '@taiga-ui/cdk';\nimport {TuiSvgModule} from '@taiga-ui/core';\n\nimport {TuiRatingComponent} from './rating.component';\n\n@NgModule({\n imports: [\n TuiSvgModule,\n TuiFocusableModule,\n TuiRepeatTimesModule,\n FormsModule,\n ReactiveFormsModule,\n ],\n declarations: [TuiRatingComponent],\n exports: [TuiRatingComponent],\n})\nexport class TuiRatingModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@ import { Optional, Self, Inject, ChangeDetectorRef, ViewChild, Input, ContentChi
3
3
  import { NgControl } from '@angular/forms';
4
4
  import { AbstractTuiNullableControl, TUI_DEFAULT_IDENTITY_MATCHER, isNativeFocused, setNativeFocused, tuiDefaultProp, tuiPure, TUI_FOCUSABLE_ITEM_ACCESSOR, TuiActiveZoneModule } from '@taiga-ui/cdk';
5
5
  import { TuiTextfieldCleanerDirective, TUI_TEXTFIELD_CLEANER, TuiPrimitiveTextfieldComponent, TuiHostedDropdownComponent, TuiDataListDirective, TUI_DATA_LIST_HOST, TUI_OPTION_CONTENT, TuiPrimitiveTextfieldModule, TuiHostedDropdownModule } from '@taiga-ui/core';
6
- import { TUI_ARROW, TuiArrowModule } from '@taiga-ui/kit/components/arrow';
6
+ import { TUI_ARROW_MODE, TuiArrowModule } from '@taiga-ui/kit/components/arrow';
7
7
  import { TUI_SELECT_OPTION, TuiSelectOptionModule } from '@taiga-ui/kit/components/select-option';
8
8
  import { FIXED_DROPDOWN_CONTROLLER_PROVIDER } from '@taiga-ui/kit/providers';
9
9
  import { CommonModule } from '@angular/common';
@@ -13,15 +13,16 @@ var TuiSelectComponent_1;
13
13
  // TODO: remove in ivy compilation
14
14
  const SELECT_OPTION = TUI_SELECT_OPTION;
15
15
  let TuiSelectComponent = TuiSelectComponent_1 = class TuiSelectComponent extends AbstractTuiNullableControl {
16
- constructor(control, changeDetectorRef, textfieldCleaner) {
16
+ constructor(control, changeDetectorRef, textfieldCleaner, arrowMode) {
17
17
  super(control, changeDetectorRef);
18
18
  this.textfieldCleaner = textfieldCleaner;
19
+ this.arrowMode = arrowMode;
19
20
  this.identityMatcher = TUI_DEFAULT_IDENTITY_MATCHER;
20
21
  this.valueContent = '';
21
22
  this.datalist = '';
22
23
  }
23
24
  get arrow() {
24
- return this.disabled || this.readOnly ? '' : TUI_ARROW;
25
+ return !this.interactive ? this.arrowMode.disabled : this.arrowMode.interactive;
25
26
  }
26
27
  get nativeFocusableElement() {
27
28
  return this.textfield ? this.textfield.nativeFocusableElement : null;
@@ -36,9 +37,6 @@ let TuiSelectComponent = TuiSelectComponent_1 = class TuiSelectComponent extends
36
37
  get computedContent() {
37
38
  return this.valueContent || this.computedValue;
38
39
  }
39
- get canOpen() {
40
- return !this.computedDisabled && !this.readOnly;
41
- }
42
40
  computeContext($implicit, active) {
43
41
  return { $implicit, active };
44
42
  }
@@ -59,11 +57,10 @@ let TuiSelectComponent = TuiSelectComponent_1 = class TuiSelectComponent extends
59
57
  }
60
58
  }
61
59
  handleOption(option) {
60
+ var _a;
62
61
  this.focusInput();
63
62
  this.updateValue(option);
64
- if (this.hostedDropdown) {
65
- this.hostedDropdown.updateOpen(false);
66
- }
63
+ (_a = this.hostedDropdown) === null || _a === void 0 ? void 0 : _a.updateOpen(false);
67
64
  }
68
65
  focusInput(preventScroll = false) {
69
66
  if (this.nativeFocusableElement) {
@@ -74,7 +71,8 @@ let TuiSelectComponent = TuiSelectComponent_1 = class TuiSelectComponent extends
74
71
  TuiSelectComponent.ctorParameters = () => [
75
72
  { type: NgControl, decorators: [{ type: Optional }, { type: Self }, { type: Inject, args: [NgControl,] }] },
76
73
  { type: ChangeDetectorRef, decorators: [{ type: Inject, args: [ChangeDetectorRef,] }] },
77
- { type: TuiTextfieldCleanerDirective, decorators: [{ type: Inject, args: [TUI_TEXTFIELD_CLEANER,] }] }
74
+ { type: TuiTextfieldCleanerDirective, decorators: [{ type: Inject, args: [TUI_TEXTFIELD_CLEANER,] }] },
75
+ { type: undefined, decorators: [{ type: Inject, args: [TUI_ARROW_MODE,] }] }
78
76
  ];
79
77
  __decorate([
80
78
  ViewChild(TuiPrimitiveTextfieldComponent)
@@ -99,7 +97,7 @@ __decorate([
99
97
  TuiSelectComponent = TuiSelectComponent_1 = __decorate([
100
98
  Component({
101
99
  selector: 'tui-select',
102
- template: "<tui-hosted-dropdown\n class=\"hosted\"\n [canOpen]=\"canOpen\"\n [content]=\"datalist || ''\"\n (tuiActiveZoneChange)=\"onActiveZone($event)\"\n>\n <tui-primitive-textfield\n automation-id=\"tui-select__textfield\"\n class=\"textfield\"\n [editable]=\"false\"\n [pseudoFocused]=\"computedFocused\"\n [pseudoHovered]=\"computedHovered\"\n [invalid]=\"computedInvalid\"\n [nativeId]=\"nativeId\"\n [readOnly]=\"readOnly\"\n [iconContent]=\"arrow\"\n [disabled]=\"computedDisabled\"\n [focusable]=\"computedFocusable\"\n [value]=\"computedValue\"\n (valueChange)=\"onValueChange($event)\"\n (hoveredChange)=\"onHovered($event)\"\n (keydown.delete.prevent)=\"onKeyDownDelete()\"\n (keydown.backspace.prevent)=\"onKeyDownDelete()\"\n >\n <ng-content></ng-content>\n <div\n *ngIf=\"value !== null\"\n polymorpheus-outlet\n automation-id=\"tui-select__value\"\n class=\"value\"\n [content]=\"computedContent\"\n [context]=\"computeContext(value, computedFocused)\"\n ></div>\n </tui-primitive-textfield>\n</tui-hosted-dropdown>\n",
100
+ template: "<tui-hosted-dropdown\n class=\"t-hosted\"\n [canOpen]=\"interactive\"\n [content]=\"datalist || ''\"\n (tuiActiveZoneChange)=\"onActiveZone($event)\"\n>\n <tui-primitive-textfield\n automation-id=\"tui-select__textfield\"\n class=\"t-textfield\"\n [editable]=\"false\"\n [pseudoFocused]=\"computedFocused\"\n [pseudoHovered]=\"computedHovered\"\n [invalid]=\"computedInvalid\"\n [nativeId]=\"nativeId\"\n [readOnly]=\"readOnly\"\n [iconContent]=\"arrow\"\n [disabled]=\"computedDisabled\"\n [focusable]=\"computedFocusable\"\n [value]=\"computedValue\"\n (valueChange)=\"onValueChange($event)\"\n (hoveredChange)=\"onHovered($event)\"\n (keydown.delete.prevent)=\"onKeyDownDelete()\"\n (keydown.backspace.prevent)=\"onKeyDownDelete()\"\n >\n <ng-content></ng-content>\n <div\n *ngIf=\"value !== null\"\n polymorpheus-outlet\n automation-id=\"tui-select__value\"\n class=\"t-value\"\n [content]=\"computedContent\"\n [context]=\"computeContext(value, computedFocused)\"\n >\n <ng-template let-primitiveValue>\n <div class=\"t-primitive-value\">{{ primitiveValue }}</div>\n </ng-template>\n </div>\n </tui-primitive-textfield>\n</tui-hosted-dropdown>\n",
103
101
  changeDetection: ChangeDetectionStrategy.OnPush,
104
102
  providers: [
105
103
  {
@@ -116,13 +114,14 @@ TuiSelectComponent = TuiSelectComponent_1 = __decorate([
116
114
  },
117
115
  FIXED_DROPDOWN_CONTROLLER_PROVIDER,
118
116
  ],
119
- styles: [":host{display:block;border-radius:var(--tui-radius-m);text-align:left}:host:not(._readonly) ::ng-deep input:not(:disabled){cursor:pointer}:host._readonly ::ng-deep input{cursor:default}.hosted{display:block;border-radius:inherit}.textfield{border-radius:inherit;text-align:inherit}.value{display:flex;width:100%;align-items:center}"]
117
+ styles: [":host{display:block;border-radius:var(--tui-radius-m);text-align:left}:host:not(._readonly) ::ng-deep input:not(:disabled){cursor:pointer}:host._readonly ::ng-deep input{cursor:default}.t-hosted{display:block;border-radius:inherit}.t-textfield{border-radius:inherit;text-align:inherit}.t-value{display:flex;width:100%;align-items:center;overflow:hidden}.t-primitive-value{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}"]
120
118
  }),
121
119
  __param(0, Optional()),
122
120
  __param(0, Self()),
123
121
  __param(0, Inject(NgControl)),
124
122
  __param(1, Inject(ChangeDetectorRef)),
125
- __param(2, Inject(TUI_TEXTFIELD_CLEANER))
123
+ __param(2, Inject(TUI_TEXTFIELD_CLEANER)),
124
+ __param(3, Inject(TUI_ARROW_MODE))
126
125
  ], TuiSelectComponent);
127
126
 
128
127
  let TuiSelectModule = class TuiSelectModule {
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-kit-components-select.js","sources":["ng://@taiga-ui/kit/components/select/select.component.ts","ng://@taiga-ui/kit/components/select/select.module.ts","ng://@taiga-ui/kit/components/select/taiga-ui-kit-components-select.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n forwardRef,\n Inject,\n Input,\n Optional,\n Self,\n TemplateRef,\n ViewChild,\n} from '@angular/core';\nimport {NgControl} from '@angular/forms';\nimport {\n AbstractTuiNullableControl,\n isNativeFocused,\n setNativeFocused,\n TUI_DEFAULT_IDENTITY_MATCHER,\n TUI_FOCUSABLE_ITEM_ACCESSOR,\n tuiDefaultProp,\n TuiFocusableElementAccessor,\n TuiIdentityMatcher,\n tuiPure,\n} from '@taiga-ui/cdk';\nimport {\n TUI_DATA_LIST_HOST,\n TUI_OPTION_CONTENT,\n TUI_TEXTFIELD_CLEANER,\n TuiDataListDirective,\n TuiDataListHost,\n TuiHostedDropdownComponent,\n TuiPrimitiveTextfieldComponent,\n TuiTextfieldCleanerDirective,\n TuiValueContentContext,\n} from '@taiga-ui/core';\nimport {TUI_ARROW} from '@taiga-ui/kit/components/arrow';\nimport {TUI_SELECT_OPTION} from '@taiga-ui/kit/components/select-option';\nimport {FIXED_DROPDOWN_CONTROLLER_PROVIDER} from '@taiga-ui/kit/providers';\nimport {PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\n\n// TODO: remove in ivy compilation\nexport const SELECT_OPTION: unknown = TUI_SELECT_OPTION;\n\n@Component({\n selector: 'tui-select',\n templateUrl: './select.template.html',\n styleUrls: ['./select.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: TUI_FOCUSABLE_ITEM_ACCESSOR,\n useExisting: forwardRef(() => TuiSelectComponent),\n },\n {\n provide: TUI_DATA_LIST_HOST,\n useExisting: forwardRef(() => TuiSelectComponent),\n },\n {\n provide: TUI_OPTION_CONTENT,\n useValue: SELECT_OPTION,\n },\n FIXED_DROPDOWN_CONTROLLER_PROVIDER,\n ],\n})\nexport class TuiSelectComponent<T>\n extends AbstractTuiNullableControl<T>\n implements TuiFocusableElementAccessor, TuiDataListHost<T>\n{\n @ViewChild(TuiPrimitiveTextfieldComponent)\n private readonly textfield?: TuiPrimitiveTextfieldComponent;\n\n @ViewChild(TuiHostedDropdownComponent)\n private readonly hostedDropdown?: TuiHostedDropdownComponent;\n\n @Input()\n @tuiDefaultProp()\n identityMatcher: TuiIdentityMatcher<T | string> = TUI_DEFAULT_IDENTITY_MATCHER;\n\n @Input()\n @tuiDefaultProp()\n valueContent: PolymorpheusContent<TuiValueContentContext<T>> = '';\n\n @ContentChild(TuiDataListDirective, {read: TemplateRef})\n readonly datalist: PolymorpheusContent = '';\n\n constructor(\n @Optional()\n @Self()\n @Inject(NgControl)\n control: NgControl | null,\n @Inject(ChangeDetectorRef) changeDetectorRef: ChangeDetectorRef,\n @Inject(TUI_TEXTFIELD_CLEANER)\n private readonly textfieldCleaner: TuiTextfieldCleanerDirective,\n ) {\n super(control, changeDetectorRef);\n }\n\n get arrow(): PolymorpheusContent {\n return this.disabled || this.readOnly ? '' : TUI_ARROW;\n }\n\n get nativeFocusableElement(): HTMLInputElement | null {\n return this.textfield ? this.textfield.nativeFocusableElement : null;\n }\n\n get focused(): boolean {\n return (\n isNativeFocused(this.nativeFocusableElement) ||\n (!!this.hostedDropdown && this.hostedDropdown.focused)\n );\n }\n\n get computedValue(): string {\n return this.value === null ? '' : String(this.value) || ' ';\n }\n\n get computedContent(): PolymorpheusContent<TuiValueContentContext<T>> {\n return this.valueContent || this.computedValue;\n }\n\n get canOpen(): boolean {\n return !this.computedDisabled && !this.readOnly;\n }\n\n @tuiPure\n computeContext(\n $implicit: T | null,\n active: boolean,\n ): TuiValueContentContext<T | null> {\n return {$implicit, active};\n }\n\n onValueChange(value: string) {\n if (!value) {\n this.updateValue(null);\n }\n }\n\n onActiveZone(active: boolean) {\n this.updateFocused(active);\n }\n\n onHovered(hovered: boolean) {\n this.updateHovered(hovered);\n }\n\n onKeyDownDelete() {\n if (this.textfieldCleaner.cleaner) {\n this.updateValue(null);\n }\n }\n\n handleOption(option: T) {\n this.focusInput();\n this.updateValue(option);\n\n if (this.hostedDropdown) {\n this.hostedDropdown.updateOpen(false);\n }\n }\n\n private focusInput(preventScroll: boolean = false) {\n if (this.nativeFocusableElement) {\n setNativeFocused(this.nativeFocusableElement, true, preventScroll);\n }\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {TuiActiveZoneModule} from '@taiga-ui/cdk';\nimport {TuiHostedDropdownModule, TuiPrimitiveTextfieldModule} from '@taiga-ui/core';\nimport {TuiArrowModule} from '@taiga-ui/kit/components/arrow';\nimport {TuiSelectOptionModule} from '@taiga-ui/kit/components/select-option';\nimport {PolymorpheusModule} from '@tinkoff/ng-polymorpheus';\n\nimport {TuiSelectComponent} from './select.component';\n\n@NgModule({\n imports: [\n CommonModule,\n PolymorpheusModule,\n TuiActiveZoneModule,\n TuiPrimitiveTextfieldModule,\n TuiHostedDropdownModule,\n TuiSelectOptionModule,\n TuiArrowModule,\n ],\n declarations: [TuiSelectComponent],\n exports: [TuiSelectComponent],\n})\nexport class TuiSelectModule {}\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-select.js","sources":["ng://@taiga-ui/kit/components/select/select.component.ts","ng://@taiga-ui/kit/components/select/select.module.ts","ng://@taiga-ui/kit/components/select/taiga-ui-kit-components-select.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n forwardRef,\n Inject,\n Input,\n Optional,\n Self,\n TemplateRef,\n ViewChild,\n} from '@angular/core';\nimport {NgControl} from '@angular/forms';\nimport {\n AbstractTuiNullableControl,\n isNativeFocused,\n setNativeFocused,\n TUI_DEFAULT_IDENTITY_MATCHER,\n TUI_FOCUSABLE_ITEM_ACCESSOR,\n tuiDefaultProp,\n TuiFocusableElementAccessor,\n TuiIdentityMatcher,\n tuiPure,\n} from '@taiga-ui/cdk';\nimport {\n TUI_DATA_LIST_HOST,\n TUI_OPTION_CONTENT,\n TUI_TEXTFIELD_CLEANER,\n TuiDataListDirective,\n TuiDataListHost,\n TuiHostedDropdownComponent,\n TuiPrimitiveTextfieldComponent,\n TuiTextfieldCleanerDirective,\n TuiValueContentContext,\n} from '@taiga-ui/core';\nimport {TUI_ARROW_MODE, TuiArrowMode} from '@taiga-ui/kit/components/arrow';\nimport {TUI_SELECT_OPTION} from '@taiga-ui/kit/components/select-option';\nimport {FIXED_DROPDOWN_CONTROLLER_PROVIDER} from '@taiga-ui/kit/providers';\nimport {PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\n\n// TODO: remove in ivy compilation\nexport const SELECT_OPTION: unknown = TUI_SELECT_OPTION;\n\n@Component({\n selector: 'tui-select',\n templateUrl: './select.template.html',\n styleUrls: ['./select.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: TUI_FOCUSABLE_ITEM_ACCESSOR,\n useExisting: forwardRef(() => TuiSelectComponent),\n },\n {\n provide: TUI_DATA_LIST_HOST,\n useExisting: forwardRef(() => TuiSelectComponent),\n },\n {\n provide: TUI_OPTION_CONTENT,\n useValue: SELECT_OPTION,\n },\n FIXED_DROPDOWN_CONTROLLER_PROVIDER,\n ],\n})\nexport class TuiSelectComponent<T>\n extends AbstractTuiNullableControl<T>\n implements TuiFocusableElementAccessor, TuiDataListHost<T>\n{\n @ViewChild(TuiPrimitiveTextfieldComponent)\n private readonly textfield?: TuiPrimitiveTextfieldComponent;\n\n @ViewChild(TuiHostedDropdownComponent)\n private readonly hostedDropdown?: TuiHostedDropdownComponent;\n\n @Input()\n @tuiDefaultProp()\n identityMatcher: TuiIdentityMatcher<T | string> = TUI_DEFAULT_IDENTITY_MATCHER;\n\n @Input()\n @tuiDefaultProp()\n valueContent: PolymorpheusContent<TuiValueContentContext<T>> = '';\n\n @ContentChild(TuiDataListDirective, {read: TemplateRef})\n readonly datalist: PolymorpheusContent = '';\n\n constructor(\n @Optional()\n @Self()\n @Inject(NgControl)\n control: NgControl | null,\n @Inject(ChangeDetectorRef) changeDetectorRef: ChangeDetectorRef,\n @Inject(TUI_TEXTFIELD_CLEANER)\n private readonly textfieldCleaner: TuiTextfieldCleanerDirective,\n @Inject(TUI_ARROW_MODE)\n private readonly arrowMode: TuiArrowMode,\n ) {\n super(control, changeDetectorRef);\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.textfield ? this.textfield.nativeFocusableElement : null;\n }\n\n get focused(): boolean {\n return (\n isNativeFocused(this.nativeFocusableElement) ||\n (!!this.hostedDropdown && this.hostedDropdown.focused)\n );\n }\n\n get computedValue(): string {\n return this.value === null ? '' : String(this.value) || ' ';\n }\n\n get computedContent(): PolymorpheusContent<TuiValueContentContext<T>> {\n return this.valueContent || this.computedValue;\n }\n\n @tuiPure\n computeContext(\n $implicit: T | null,\n active: boolean,\n ): TuiValueContentContext<T | null> {\n return {$implicit, active};\n }\n\n onValueChange(value: string) {\n if (!value) {\n this.updateValue(null);\n }\n }\n\n onActiveZone(active: boolean) {\n this.updateFocused(active);\n }\n\n onHovered(hovered: boolean) {\n this.updateHovered(hovered);\n }\n\n onKeyDownDelete() {\n if (this.textfieldCleaner.cleaner) {\n this.updateValue(null);\n }\n }\n\n handleOption(option: T) {\n this.focusInput();\n this.updateValue(option);\n this.hostedDropdown?.updateOpen(false);\n }\n\n private focusInput(preventScroll: boolean = false) {\n if (this.nativeFocusableElement) {\n setNativeFocused(this.nativeFocusableElement, true, preventScroll);\n }\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {TuiActiveZoneModule} from '@taiga-ui/cdk';\nimport {TuiHostedDropdownModule, TuiPrimitiveTextfieldModule} from '@taiga-ui/core';\nimport {TuiArrowModule} from '@taiga-ui/kit/components/arrow';\nimport {TuiSelectOptionModule} from '@taiga-ui/kit/components/select-option';\nimport {PolymorpheusModule} from '@tinkoff/ng-polymorpheus';\n\nimport {TuiSelectComponent} from './select.component';\n\n@NgModule({\n imports: [\n CommonModule,\n PolymorpheusModule,\n TuiActiveZoneModule,\n TuiPrimitiveTextfieldModule,\n TuiHostedDropdownModule,\n TuiSelectOptionModule,\n TuiArrowModule,\n ],\n declarations: [TuiSelectComponent],\n exports: [TuiSelectComponent],\n})\nexport class TuiSelectModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -8,7 +8,7 @@ import { CommonModule } from '@angular/common';
8
8
  import { FormsModule } from '@angular/forms';
9
9
  import { PolymorpheusModule } from '@tinkoff/ng-polymorpheus';
10
10
 
11
- const ALLOWED_SPACE_REGEXP = new RegExp(`\,|[\\s]`);
11
+ const ALLOWED_SPACE_REGEXP = new RegExp(`,|[\\s]`);
12
12
  let TuiTagComponent = class TuiTagComponent {
13
13
  constructor(elementRef, mode$) {
14
14
  this.elementRef = elementRef;
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-kit-components-tag.js","sources":["ng://@taiga-ui/kit/components/tag/tag.component.ts","ng://@taiga-ui/kit/components/tag/tag.module.ts","ng://@taiga-ui/kit/components/tag/taiga-ui-kit-components-tag.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n EventEmitter,\n HostBinding,\n HostListener,\n Inject,\n Input,\n Output,\n ViewChild,\n} from '@angular/core';\nimport {setNativeFocused, tuiDefaultProp} from '@taiga-ui/cdk';\nimport {\n MODE_PROVIDER,\n sizeBigger,\n TUI_MODE,\n TuiBrightness,\n TuiSizeL,\n TuiSizeS,\n TuiSizeXS,\n} from '@taiga-ui/core';\nimport {TuiStatusT} from '@taiga-ui/kit/types';\nimport {stringHashToHsl} from '@taiga-ui/kit/utils/format';\nimport {PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\nimport {Observable} from 'rxjs';\n\nexport const ALLOWED_SPACE_REGEXP = new RegExp(`\\,|[\\\\s]`);\n\n@Component({\n selector: 'tui-tag, a[tuiTag]',\n changeDetection: ChangeDetectionStrategy.OnPush,\n templateUrl: './tag.template.html',\n styleUrls: ['./tag.style.less'],\n providers: [MODE_PROVIDER],\n host: {\n '($.data-mode.attr)': 'mode$',\n },\n})\nexport class TuiTagComponent {\n // TODO: Possibly implement standard focus mechanisms and outline\n @Input()\n @tuiDefaultProp()\n value = '';\n\n @Input()\n @tuiDefaultProp()\n editable = false;\n\n @Input()\n @tuiDefaultProp()\n allowSpaces = true;\n\n @Input()\n @tuiDefaultProp()\n maxLength: number | null = null;\n\n @Input()\n @HostBinding('attr.data-tui-host-size')\n @tuiDefaultProp()\n size: TuiSizeS | TuiSizeL = 'm';\n\n @Input()\n @tuiDefaultProp()\n showLoader = false;\n\n @Input()\n @HostBinding('attr.data-tui-host-status')\n @tuiDefaultProp()\n status: TuiStatusT = 'default';\n\n @Input()\n @HostBinding('class._hoverable')\n @tuiDefaultProp()\n hoverable = false;\n\n @Input()\n @tuiDefaultProp()\n removable = false;\n\n @Input()\n @HostBinding('class._disabled')\n @tuiDefaultProp()\n disabled = false;\n\n @Input()\n @HostBinding('class._autocolor')\n @tuiDefaultProp()\n autoColor = false;\n\n // TODO: Remove null in 3.0\n @Input()\n @tuiDefaultProp()\n leftContent: PolymorpheusContent | null = null;\n\n @Output()\n readonly edited = new EventEmitter<string>();\n\n @HostBinding('class._editing')\n editing = false;\n\n editedText: string | null = null;\n\n @ViewChild('input', {read: ElementRef})\n set input(input: ElementRef<HTMLInputElement>) {\n if (input) {\n setNativeFocused(input.nativeElement);\n }\n }\n\n constructor(\n @Inject(ElementRef) private readonly elementRef: ElementRef<HTMLElement>,\n @Inject(TUI_MODE) readonly mode$: Observable<TuiBrightness | null>,\n ) {}\n\n get backgroundColor(): string | null {\n return this.autoColor ? stringHashToHsl(this.value) : null;\n }\n\n get canRemove(): boolean {\n return this.removable && !this.disabled && !this.showLoader;\n }\n\n get displayText(): string {\n return this.editedText === null ? this.value : this.editedText;\n }\n\n get loaderSize(): TuiSizeXS {\n return sizeBigger(this.size) ? 's' : 'xs';\n }\n\n @HostBinding('class._has-icon')\n get hasIcon(): boolean {\n return this.showLoader || this.removable;\n }\n\n @HostListener('keydown.enter', ['$event'])\n edit(event: Event) {\n if (!this.canEdit) {\n return;\n }\n\n event.preventDefault();\n this.editing = true;\n this.editedText = this.value;\n }\n\n @HostListener('keydown.delete', ['$event'])\n @HostListener('keydown.backspace', ['$event'])\n remove(event: Event) {\n if (!this.canRemove) {\n return;\n }\n\n event.preventDefault();\n event.stopPropagation();\n this.edited.emit('');\n }\n\n onInput(value: string) {\n const newTags = this.allowSpaces\n ? value.split(',')\n : value.split(ALLOWED_SPACE_REGEXP);\n\n if (newTags.length > 1) {\n this.save(newTags.toString());\n\n return;\n }\n\n this.editedText = value;\n }\n\n onKeyDown(event: KeyboardEvent) {\n event.stopPropagation();\n\n switch (event.key.toLowerCase()) {\n case 'enter':\n event.preventDefault();\n this.save(this.editedText || '');\n break;\n case 'escape':\n case 'esc':\n event.preventDefault();\n this.stopEditing();\n setNativeFocused(this.elementRef.nativeElement);\n break;\n default:\n break;\n }\n }\n\n onBlur() {\n if (this.editedText !== null) {\n this.save(this.editedText);\n }\n }\n\n private get canEdit(): boolean {\n return this.editable && !this.disabled && !this.showLoader;\n }\n\n private stopEditing() {\n this.editing = false;\n this.editedText = null;\n }\n\n private save(value: string) {\n this.stopEditing();\n this.edited.emit(value.trim());\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {FormsModule} from '@angular/forms';\nimport {TuiPreventDefaultModule} from '@taiga-ui/cdk';\nimport {TuiLoaderModule, TuiSvgModule} from '@taiga-ui/core';\nimport {PolymorpheusModule} from '@tinkoff/ng-polymorpheus';\n\nimport {TuiTagComponent} from './tag.component';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n TuiPreventDefaultModule,\n TuiSvgModule,\n TuiLoaderModule,\n PolymorpheusModule,\n ],\n declarations: [TuiTagComponent],\n exports: [TuiTagComponent],\n})\nexport class TuiTagModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;MA2Ba,oBAAoB,GAAG,IAAI,MAAM,CAAC,UAAU,EAAE;IAY9C,eAAe,GAA5B,MAAa,eAAe;IAuExB,YACyC,UAAmC,EAC7C,KAAuC;QAD7B,eAAU,GAAV,UAAU,CAAyB;QAC7C,UAAK,GAAL,KAAK,CAAkC;;QArEtE,UAAK,GAAG,EAAE,CAAC;QAIX,aAAQ,GAAG,KAAK,CAAC;QAIjB,gBAAW,GAAG,IAAI,CAAC;QAInB,cAAS,GAAkB,IAAI,CAAC;QAKhC,SAAI,GAAwB,GAAG,CAAC;QAIhC,eAAU,GAAG,KAAK,CAAC;QAKnB,WAAM,GAAe,SAAS,CAAC;QAK/B,cAAS,GAAG,KAAK,CAAC;QAIlB,cAAS,GAAG,KAAK,CAAC;QAKlB,aAAQ,GAAG,KAAK,CAAC;QAKjB,cAAS,GAAG,KAAK,CAAC;;QAKlB,gBAAW,GAA+B,IAAI,CAAC;QAGtC,WAAM,GAAG,IAAI,YAAY,EAAU,CAAC;QAG7C,YAAO,GAAG,KAAK,CAAC;QAEhB,eAAU,GAAkB,IAAI,CAAC;KAY7B;IATJ,IAAI,KAAK,CAAC,KAAmC;QACzC,IAAI,KAAK,EAAE;YACP,gBAAgB,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;SACzC;KACJ;IAOD,IAAI,eAAe;QACf,OAAO,IAAI,CAAC,SAAS,GAAG,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;KAC9D;IAED,IAAI,SAAS;QACT,OAAO,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;KAC/D;IAED,IAAI,WAAW;QACX,OAAO,IAAI,CAAC,UAAU,KAAK,IAAI,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC;KAClE;IAED,IAAI,UAAU;QACV,OAAO,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC;KAC7C;IAGD,IAAI,OAAO;QACP,OAAO,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,SAAS,CAAC;KAC5C;IAGD,IAAI,CAAC,KAAY;QACb,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YACf,OAAO;SACV;QAED,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC;KAChC;IAID,MAAM,CAAC,KAAY;QACf,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACjB,OAAO;SACV;QAED,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,KAAK,CAAC,eAAe,EAAE,CAAC;QACxB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;KACxB;IAED,OAAO,CAAC,KAAa;QACjB,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW;cAC1B,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC;cAChB,KAAK,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;QAExC,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;YACpB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;YAE9B,OAAO;SACV;QAED,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;KAC3B;IAED,SAAS,CAAC,KAAoB;QAC1B,KAAK,CAAC,eAAe,EAAE,CAAC;QAExB,QAAQ,KAAK,CAAC,GAAG,CAAC,WAAW,EAAE;YAC3B,KAAK,OAAO;gBACR,KAAK,CAAC,cAAc,EAAE,CAAC;gBACvB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC;gBACjC,MAAM;YACV,KAAK,QAAQ,CAAC;YACd,KAAK,KAAK;gBACN,KAAK,CAAC,cAAc,EAAE,CAAC;gBACvB,IAAI,CAAC,WAAW,EAAE,CAAC;gBACnB,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;gBAChD,MAAM;YACV;gBACI,MAAM;SACb;KACJ;IAED,MAAM;QACF,IAAI,IAAI,CAAC,UAAU,KAAK,IAAI,EAAE;YAC1B,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;SAC9B;KACJ;IAED,IAAY,OAAO;QACf,OAAO,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;KAC9D;IAEO,WAAW;QACf,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;KAC1B;IAEO,IAAI,CAAC,KAAa;QACtB,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;KAClC;EACJ;;YApGwD,UAAU,uBAA1D,MAAM,SAAC,UAAU;YACgB,UAAU,uBAA3C,MAAM,SAAC,QAAQ;;AArEpB;IAFC,KAAK,EAAE;IACP,cAAc,EAAE;8CACN;AAIX;IAFC,KAAK,EAAE;IACP,cAAc,EAAE;iDACA;AAIjB;IAFC,KAAK,EAAE;IACP,cAAc,EAAE;oDACE;AAInB;IAFC,KAAK,EAAE;IACP,cAAc,EAAE;kDACe;AAKhC;IAHC,KAAK,EAAE;IACP,WAAW,CAAC,yBAAyB,CAAC;IACtC,cAAc,EAAE;6CACe;AAIhC;IAFC,KAAK,EAAE;IACP,cAAc,EAAE;mDACE;AAKnB;IAHC,KAAK,EAAE;IACP,WAAW,CAAC,2BAA2B,CAAC;IACxC,cAAc,EAAE;+CACc;AAK/B;IAHC,KAAK,EAAE;IACP,WAAW,CAAC,kBAAkB,CAAC;IAC/B,cAAc,EAAE;kDACC;AAIlB;IAFC,KAAK,EAAE;IACP,cAAc,EAAE;kDACC;AAKlB;IAHC,KAAK,EAAE;IACP,WAAW,CAAC,iBAAiB,CAAC;IAC9B,cAAc,EAAE;iDACA;AAKjB;IAHC,KAAK,EAAE;IACP,WAAW,CAAC,kBAAkB,CAAC;IAC/B,cAAc,EAAE;kDACC;AAKlB;IAFC,KAAK,EAAE;IACP,cAAc,EAAE;oDAC8B;AAG/C;IADC,MAAM,EAAE;+CACoC;AAG7C;IADC,WAAW,CAAC,gBAAgB,CAAC;gDACd;AAKhB;IADC,SAAS,CAAC,OAAO,EAAE,EAAC,IAAI,EAAE,UAAU,EAAC,CAAC;4CAKtC;AAwBD;IADC,WAAW,CAAC,iBAAiB,CAAC;8CAG9B;AAGD;IADC,YAAY,CAAC,eAAe,EAAE,CAAC,QAAQ,CAAC,CAAC;2CASzC;AAID;IAFC,YAAY,CAAC,gBAAgB,EAAE,CAAC,QAAQ,CAAC,CAAC;IAC1C,YAAY,CAAC,mBAAmB,EAAE,CAAC,QAAQ,CAAC,CAAC;6CAS7C;AAtHQ,eAAe;IAV3B,SAAS,CAAC;QACP,QAAQ,EAAE,oBAAoB;QAC9B,eAAe,EAAE,uBAAuB,CAAC,MAAM;QAC/C,qiCAAkC;QAElC,SAAS,EAAE,CAAC,aAAa,CAAC;QAC1B,IAAI,EAAE;YACF,oBAAoB,EAAE,OAAO;SAChC;;KACJ,CAAC;IAyEO,WAAA,MAAM,CAAC,UAAU,CAAC,CAAA;IAClB,WAAA,MAAM,CAAC,QAAQ,CAAC,CAAA;GAzEZ,eAAe,CA4K3B;;IC9LY,YAAY,GAAzB,MAAa,YAAY;EAAG;AAAf,YAAY;IAZxB,QAAQ,CAAC;QACN,OAAO,EAAE;YACL,YAAY;YACZ,WAAW;YACX,uBAAuB;YACvB,YAAY;YACZ,eAAe;YACf,kBAAkB;SACrB;QACD,YAAY,EAAE,CAAC,eAAe,CAAC;QAC/B,OAAO,EAAE,CAAC,eAAe,CAAC;KAC7B,CAAC;GACW,YAAY,CAAG;;ACrB5B;;;;;;"}
1
+ {"version":3,"file":"taiga-ui-kit-components-tag.js","sources":["ng://@taiga-ui/kit/components/tag/tag.component.ts","ng://@taiga-ui/kit/components/tag/tag.module.ts","ng://@taiga-ui/kit/components/tag/taiga-ui-kit-components-tag.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n EventEmitter,\n HostBinding,\n HostListener,\n Inject,\n Input,\n Output,\n ViewChild,\n} from '@angular/core';\nimport {setNativeFocused, tuiDefaultProp} from '@taiga-ui/cdk';\nimport {\n MODE_PROVIDER,\n sizeBigger,\n TUI_MODE,\n TuiBrightness,\n TuiSizeL,\n TuiSizeS,\n TuiSizeXS,\n} from '@taiga-ui/core';\nimport {TuiStatusT} from '@taiga-ui/kit/types';\nimport {stringHashToHsl} from '@taiga-ui/kit/utils/format';\nimport {PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\nimport {Observable} from 'rxjs';\n\nexport const ALLOWED_SPACE_REGEXP = new RegExp(`,|[\\\\s]`);\n\n@Component({\n selector: 'tui-tag, a[tuiTag]',\n changeDetection: ChangeDetectionStrategy.OnPush,\n templateUrl: './tag.template.html',\n styleUrls: ['./tag.style.less'],\n providers: [MODE_PROVIDER],\n host: {\n '($.data-mode.attr)': 'mode$',\n },\n})\nexport class TuiTagComponent {\n // TODO: Possibly implement standard focus mechanisms and outline\n @Input()\n @tuiDefaultProp()\n value = '';\n\n @Input()\n @tuiDefaultProp()\n editable = false;\n\n @Input()\n @tuiDefaultProp()\n allowSpaces = true;\n\n @Input()\n @tuiDefaultProp()\n maxLength: number | null = null;\n\n @Input()\n @HostBinding('attr.data-tui-host-size')\n @tuiDefaultProp()\n size: TuiSizeS | TuiSizeL = 'm';\n\n @Input()\n @tuiDefaultProp()\n showLoader = false;\n\n @Input()\n @HostBinding('attr.data-tui-host-status')\n @tuiDefaultProp()\n status: TuiStatusT = 'default';\n\n @Input()\n @HostBinding('class._hoverable')\n @tuiDefaultProp()\n hoverable = false;\n\n @Input()\n @tuiDefaultProp()\n removable = false;\n\n @Input()\n @HostBinding('class._disabled')\n @tuiDefaultProp()\n disabled = false;\n\n @Input()\n @HostBinding('class._autocolor')\n @tuiDefaultProp()\n autoColor = false;\n\n // TODO: Remove null in 3.0\n @Input()\n @tuiDefaultProp()\n leftContent: PolymorpheusContent | null = null;\n\n @Output()\n readonly edited = new EventEmitter<string>();\n\n @HostBinding('class._editing')\n editing = false;\n\n editedText: string | null = null;\n\n @ViewChild('input', {read: ElementRef})\n set input(input: ElementRef<HTMLInputElement>) {\n if (input) {\n setNativeFocused(input.nativeElement);\n }\n }\n\n constructor(\n @Inject(ElementRef) private readonly elementRef: ElementRef<HTMLElement>,\n @Inject(TUI_MODE) readonly mode$: Observable<TuiBrightness | null>,\n ) {}\n\n get backgroundColor(): string | null {\n return this.autoColor ? stringHashToHsl(this.value) : null;\n }\n\n get canRemove(): boolean {\n return this.removable && !this.disabled && !this.showLoader;\n }\n\n get displayText(): string {\n return this.editedText === null ? this.value : this.editedText;\n }\n\n get loaderSize(): TuiSizeXS {\n return sizeBigger(this.size) ? 's' : 'xs';\n }\n\n @HostBinding('class._has-icon')\n get hasIcon(): boolean {\n return this.showLoader || this.removable;\n }\n\n @HostListener('keydown.enter', ['$event'])\n edit(event: Event) {\n if (!this.canEdit) {\n return;\n }\n\n event.preventDefault();\n this.editing = true;\n this.editedText = this.value;\n }\n\n @HostListener('keydown.delete', ['$event'])\n @HostListener('keydown.backspace', ['$event'])\n remove(event: Event) {\n if (!this.canRemove) {\n return;\n }\n\n event.preventDefault();\n event.stopPropagation();\n this.edited.emit('');\n }\n\n onInput(value: string) {\n const newTags = this.allowSpaces\n ? value.split(',')\n : value.split(ALLOWED_SPACE_REGEXP);\n\n if (newTags.length > 1) {\n this.save(newTags.toString());\n\n return;\n }\n\n this.editedText = value;\n }\n\n onKeyDown(event: KeyboardEvent) {\n event.stopPropagation();\n\n switch (event.key.toLowerCase()) {\n case 'enter':\n event.preventDefault();\n this.save(this.editedText || '');\n break;\n case 'escape':\n case 'esc':\n event.preventDefault();\n this.stopEditing();\n setNativeFocused(this.elementRef.nativeElement);\n break;\n default:\n break;\n }\n }\n\n onBlur() {\n if (this.editedText !== null) {\n this.save(this.editedText);\n }\n }\n\n private get canEdit(): boolean {\n return this.editable && !this.disabled && !this.showLoader;\n }\n\n private stopEditing() {\n this.editing = false;\n this.editedText = null;\n }\n\n private save(value: string) {\n this.stopEditing();\n this.edited.emit(value.trim());\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {FormsModule} from '@angular/forms';\nimport {TuiPreventDefaultModule} from '@taiga-ui/cdk';\nimport {TuiLoaderModule, TuiSvgModule} from '@taiga-ui/core';\nimport {PolymorpheusModule} from '@tinkoff/ng-polymorpheus';\n\nimport {TuiTagComponent} from './tag.component';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n TuiPreventDefaultModule,\n TuiSvgModule,\n TuiLoaderModule,\n PolymorpheusModule,\n ],\n declarations: [TuiTagComponent],\n exports: [TuiTagComponent],\n})\nexport class TuiTagModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -48,7 +48,7 @@ let TuiTextAreaComponent = class TuiTextAreaComponent extends AbstractTuiControl
48
48
  return getBorder(false, this.hasCleaner, this.hasTooltip);
49
49
  }
50
50
  get hasCleaner() {
51
- return (this.controller.cleaner && this.hasValue && !this.disabled && !this.readOnly);
51
+ return this.controller.cleaner && this.hasValue && this.interactive;
52
52
  }
53
53
  get hasTooltip() {
54
54
  return !!this.hintController.content && !this.disabled;
@@ -57,7 +57,7 @@ let TuiTextAreaComponent = class TuiTextAreaComponent extends AbstractTuiControl
57
57
  return this.value !== '';
58
58
  }
59
59
  get hasCounter() {
60
- return !!this.controller.maxLength && !this.disabled && !this.readOnly;
60
+ return !!this.controller.maxLength && this.interactive;
61
61
  }
62
62
  get hasPlaceholder() {
63
63
  return !this.controller.labelOutside || (!this.hasValue && !this.hasExampleText);
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-kit-components-text-area.js","sources":["ng://@taiga-ui/kit/components/text-area/text-area.providers.ts","ng://@taiga-ui/kit/components/text-area/text-area.component.ts","ng://@taiga-ui/kit/components/text-area/text-area.module.ts","ng://@taiga-ui/kit/components/text-area/taiga-ui-kit-components-text-area.ts"],"sourcesContent":["import {forwardRef, Provider} from '@angular/core';\nimport {TUI_FOCUSABLE_ITEM_ACCESSOR} from '@taiga-ui/cdk';\nimport {\n HINT_CONTROLLER_PROVIDER,\n MODE_PROVIDER,\n TEXTFIELD_CONTROLLER_PROVIDER,\n} from '@taiga-ui/core';\n\nimport {TuiTextAreaComponent} from './text-area.component';\n\nexport const TUI_TEXT_AREA_PROVIDERS: Provider[] = [\n {\n provide: TUI_FOCUSABLE_ITEM_ACCESSOR,\n useExisting: forwardRef(() => TuiTextAreaComponent),\n },\n TEXTFIELD_CONTROLLER_PROVIDER,\n HINT_CONTROLLER_PROVIDER,\n MODE_PROVIDER,\n];\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n HostBinding,\n Inject,\n Input,\n Optional,\n Self,\n ViewChild,\n} from '@angular/core';\nimport {NgControl} from '@angular/forms';\nimport {\n AbstractTuiControl,\n isNativeFocused,\n setNativeFocused,\n TUI_IS_IOS,\n tuiDefaultProp,\n TuiFocusableElementAccessor,\n} from '@taiga-ui/cdk';\nimport {\n getBorder,\n TUI_HINT_WATCHED_CONTROLLER,\n TUI_MODE,\n TUI_TEXTFIELD_APPEARANCE,\n TUI_TEXTFIELD_WATCHED_CONTROLLER,\n TuiBrightness,\n TuiHintControllerDirective,\n TuiSizeL,\n TuiSizeS,\n TuiTextfieldController,\n} from '@taiga-ui/core';\nimport {Observable} from 'rxjs';\n\nimport {TUI_TEXT_AREA_PROVIDERS} from './text-area.providers';\n\nexport const DEFAULT_ROWS = 20;\nexport const LINE_HEIGHT_M = 20;\nexport const LINE_HEIGHT_L = 24;\n\n@Component({\n selector: 'tui-text-area',\n templateUrl: './text-area.template.html',\n styleUrls: ['./text-area.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: TUI_TEXT_AREA_PROVIDERS,\n host: {\n '($.data-mode.attr)': 'mode$',\n '[class._ios]': 'isIOS',\n },\n})\nexport class TuiTextAreaComponent\n extends AbstractTuiControl<string>\n implements TuiFocusableElementAccessor\n{\n @ViewChild('focusableElement')\n private readonly focusableElement?: ElementRef<HTMLTextAreaElement>;\n\n @Input()\n @tuiDefaultProp()\n rows = DEFAULT_ROWS;\n\n @Input()\n @HostBinding('class._expandable')\n @tuiDefaultProp()\n expandable = false;\n\n constructor(\n @Optional()\n @Self()\n @Inject(NgControl)\n control: NgControl | null,\n @Inject(ChangeDetectorRef) changeDetectorRef: ChangeDetectorRef,\n @Inject(TUI_TEXTFIELD_APPEARANCE) readonly appearance: string,\n @Inject(TUI_IS_IOS) readonly isIOS: boolean,\n @Inject(TUI_MODE) readonly mode$: Observable<TuiBrightness | null>,\n @Inject(TUI_TEXTFIELD_WATCHED_CONTROLLER)\n readonly controller: TuiTextfieldController,\n @Inject(TUI_HINT_WATCHED_CONTROLLER)\n readonly hintController: TuiHintControllerDirective,\n ) {\n super(control, changeDetectorRef);\n }\n\n @HostBinding('class._label-outside')\n get labelOutside(): boolean {\n return this.controller.labelOutside;\n }\n\n get nativeFocusableElement(): HTMLTextAreaElement | null {\n return this.computedDisabled || !this.focusableElement\n ? null\n : this.focusableElement.nativeElement;\n }\n\n get focused(): boolean {\n return isNativeFocused(this.nativeFocusableElement);\n }\n\n @HostBinding('attr.data-tui-host-size')\n get size(): TuiSizeL | TuiSizeS {\n return this.controller.size;\n }\n\n get border(): number {\n return getBorder(false, this.hasCleaner, this.hasTooltip);\n }\n\n get hasCleaner(): boolean {\n return (\n this.controller.cleaner && this.hasValue && !this.disabled && !this.readOnly\n );\n }\n\n @HostBinding('class._has-tooltip')\n get hasTooltip(): boolean {\n return !!this.hintController.content && !this.disabled;\n }\n\n @HostBinding('class._has-value')\n get hasValue(): boolean {\n return this.value !== '';\n }\n\n @HostBinding('class._has-counter')\n get hasCounter(): boolean {\n return !!this.controller.maxLength && !this.disabled && !this.readOnly;\n }\n\n get hasPlaceholder(): boolean {\n return !this.controller.labelOutside || (!this.hasValue && !this.hasExampleText);\n }\n\n get hasExampleText(): boolean {\n return (\n !!this.controller.exampleText &&\n this.focused &&\n !this.hasValue &&\n !this.readOnly\n );\n }\n\n get computeMaxHeight(): number | null {\n return this.expandable ? this.rows * this.lineHeight : null;\n }\n\n get placeholderRaised(): boolean {\n return (\n !this.controller.labelOutside &&\n ((this.computedFocused && !this.readOnly) || this.hasValue)\n );\n }\n\n get fittedContent(): string {\n return this.value.slice(0, this.controller.maxLength || Infinity);\n }\n\n get extraContent(): string {\n return this.value.slice(this.controller.maxLength || Infinity);\n }\n\n onFocused(focused: boolean) {\n this.updateFocused(focused);\n }\n\n onHovered(hovered: boolean) {\n this.updateHovered(hovered);\n }\n\n onPressed(pressed: boolean) {\n this.updatePressed(pressed);\n }\n\n onValue(value: string) {\n this.updateValue(value);\n }\n\n onMouseDown(event: MouseEvent) {\n if (event.target === this.nativeFocusableElement) {\n return;\n }\n\n event.preventDefault();\n\n if (this.nativeFocusableElement) {\n setNativeFocused(this.nativeFocusableElement);\n }\n }\n\n protected getFallbackValue(): string {\n return '';\n }\n\n private get lineHeight(): number {\n return this.controller.size === 'm' ? LINE_HEIGHT_M : LINE_HEIGHT_L;\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {FormsModule} from '@angular/forms';\nimport {TuiFocusableModule, TuiFocusedModule, TuiHoveredModule} from '@taiga-ui/cdk';\nimport {\n TuiBorderModule,\n TuiDescribedByModule,\n TuiScrollbarModule,\n TuiSvgModule,\n TuiTooltipModule,\n TuiWrapperModule,\n} from '@taiga-ui/core';\n\nimport {TuiTextAreaComponent} from './text-area.component';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n TuiFocusableModule,\n TuiFocusedModule,\n TuiHoveredModule,\n TuiScrollbarModule,\n TuiTooltipModule,\n TuiWrapperModule,\n TuiDescribedByModule,\n TuiBorderModule,\n TuiSvgModule,\n ],\n declarations: [TuiTextAreaComponent],\n exports: [TuiTextAreaComponent],\n})\nexport class TuiTextAreaModule {}\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-text-area.js","sources":["ng://@taiga-ui/kit/components/text-area/text-area.providers.ts","ng://@taiga-ui/kit/components/text-area/text-area.component.ts","ng://@taiga-ui/kit/components/text-area/text-area.module.ts","ng://@taiga-ui/kit/components/text-area/taiga-ui-kit-components-text-area.ts"],"sourcesContent":["import {forwardRef, Provider} from '@angular/core';\nimport {TUI_FOCUSABLE_ITEM_ACCESSOR} from '@taiga-ui/cdk';\nimport {\n HINT_CONTROLLER_PROVIDER,\n MODE_PROVIDER,\n TEXTFIELD_CONTROLLER_PROVIDER,\n} from '@taiga-ui/core';\n\nimport {TuiTextAreaComponent} from './text-area.component';\n\nexport const TUI_TEXT_AREA_PROVIDERS: Provider[] = [\n {\n provide: TUI_FOCUSABLE_ITEM_ACCESSOR,\n useExisting: forwardRef(() => TuiTextAreaComponent),\n },\n TEXTFIELD_CONTROLLER_PROVIDER,\n HINT_CONTROLLER_PROVIDER,\n MODE_PROVIDER,\n];\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n HostBinding,\n Inject,\n Input,\n Optional,\n Self,\n ViewChild,\n} from '@angular/core';\nimport {NgControl} from '@angular/forms';\nimport {\n AbstractTuiControl,\n isNativeFocused,\n setNativeFocused,\n TUI_IS_IOS,\n tuiDefaultProp,\n TuiFocusableElementAccessor,\n} from '@taiga-ui/cdk';\nimport {\n getBorder,\n TUI_HINT_WATCHED_CONTROLLER,\n TUI_MODE,\n TUI_TEXTFIELD_APPEARANCE,\n TUI_TEXTFIELD_WATCHED_CONTROLLER,\n TuiBrightness,\n TuiHintControllerDirective,\n TuiSizeL,\n TuiSizeS,\n TuiTextfieldController,\n} from '@taiga-ui/core';\nimport {Observable} from 'rxjs';\n\nimport {TUI_TEXT_AREA_PROVIDERS} from './text-area.providers';\n\nexport const DEFAULT_ROWS = 20;\nexport const LINE_HEIGHT_M = 20;\nexport const LINE_HEIGHT_L = 24;\n\n@Component({\n selector: 'tui-text-area',\n templateUrl: './text-area.template.html',\n styleUrls: ['./text-area.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: TUI_TEXT_AREA_PROVIDERS,\n host: {\n '($.data-mode.attr)': 'mode$',\n '[class._ios]': 'isIOS',\n },\n})\nexport class TuiTextAreaComponent\n extends AbstractTuiControl<string>\n implements TuiFocusableElementAccessor\n{\n @ViewChild('focusableElement')\n private readonly focusableElement?: ElementRef<HTMLTextAreaElement>;\n\n @Input()\n @tuiDefaultProp()\n rows = DEFAULT_ROWS;\n\n @Input()\n @HostBinding('class._expandable')\n @tuiDefaultProp()\n expandable = false;\n\n constructor(\n @Optional()\n @Self()\n @Inject(NgControl)\n control: NgControl | null,\n @Inject(ChangeDetectorRef) changeDetectorRef: ChangeDetectorRef,\n @Inject(TUI_TEXTFIELD_APPEARANCE) readonly appearance: string,\n @Inject(TUI_IS_IOS) readonly isIOS: boolean,\n @Inject(TUI_MODE) readonly mode$: Observable<TuiBrightness | null>,\n @Inject(TUI_TEXTFIELD_WATCHED_CONTROLLER)\n readonly controller: TuiTextfieldController,\n @Inject(TUI_HINT_WATCHED_CONTROLLER)\n readonly hintController: TuiHintControllerDirective,\n ) {\n super(control, changeDetectorRef);\n }\n\n @HostBinding('class._label-outside')\n get labelOutside(): boolean {\n return this.controller.labelOutside;\n }\n\n get nativeFocusableElement(): HTMLTextAreaElement | null {\n return this.computedDisabled || !this.focusableElement\n ? null\n : this.focusableElement.nativeElement;\n }\n\n get focused(): boolean {\n return isNativeFocused(this.nativeFocusableElement);\n }\n\n @HostBinding('attr.data-tui-host-size')\n get size(): TuiSizeL | TuiSizeS {\n return this.controller.size;\n }\n\n get border(): number {\n return getBorder(false, this.hasCleaner, this.hasTooltip);\n }\n\n get hasCleaner(): boolean {\n return this.controller.cleaner && this.hasValue && this.interactive;\n }\n\n @HostBinding('class._has-tooltip')\n get hasTooltip(): boolean {\n return !!this.hintController.content && !this.disabled;\n }\n\n @HostBinding('class._has-value')\n get hasValue(): boolean {\n return this.value !== '';\n }\n\n @HostBinding('class._has-counter')\n get hasCounter(): boolean {\n return !!this.controller.maxLength && this.interactive;\n }\n\n get hasPlaceholder(): boolean {\n return !this.controller.labelOutside || (!this.hasValue && !this.hasExampleText);\n }\n\n get hasExampleText(): boolean {\n return (\n !!this.controller.exampleText &&\n this.focused &&\n !this.hasValue &&\n !this.readOnly\n );\n }\n\n get computeMaxHeight(): number | null {\n return this.expandable ? this.rows * this.lineHeight : null;\n }\n\n get placeholderRaised(): boolean {\n return (\n !this.controller.labelOutside &&\n ((this.computedFocused && !this.readOnly) || this.hasValue)\n );\n }\n\n get fittedContent(): string {\n return this.value.slice(0, this.controller.maxLength || Infinity);\n }\n\n get extraContent(): string {\n return this.value.slice(this.controller.maxLength || Infinity);\n }\n\n onFocused(focused: boolean) {\n this.updateFocused(focused);\n }\n\n onHovered(hovered: boolean) {\n this.updateHovered(hovered);\n }\n\n onPressed(pressed: boolean) {\n this.updatePressed(pressed);\n }\n\n onValue(value: string) {\n this.updateValue(value);\n }\n\n onMouseDown(event: MouseEvent) {\n if (event.target === this.nativeFocusableElement) {\n return;\n }\n\n event.preventDefault();\n\n if (this.nativeFocusableElement) {\n setNativeFocused(this.nativeFocusableElement);\n }\n }\n\n protected getFallbackValue(): string {\n return '';\n }\n\n private get lineHeight(): number {\n return this.controller.size === 'm' ? LINE_HEIGHT_M : LINE_HEIGHT_L;\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {FormsModule} from '@angular/forms';\nimport {TuiFocusableModule, TuiFocusedModule, TuiHoveredModule} from '@taiga-ui/cdk';\nimport {\n TuiBorderModule,\n TuiDescribedByModule,\n TuiScrollbarModule,\n TuiSvgModule,\n TuiTooltipModule,\n TuiWrapperModule,\n} from '@taiga-ui/core';\n\nimport {TuiTextAreaComponent} from './text-area.component';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n TuiFocusableModule,\n TuiFocusedModule,\n TuiHoveredModule,\n TuiScrollbarModule,\n TuiTooltipModule,\n TuiWrapperModule,\n TuiDescribedByModule,\n TuiBorderModule,\n TuiSvgModule,\n ],\n declarations: [TuiTextAreaComponent],\n exports: [TuiTextAreaComponent],\n})\nexport class TuiTextAreaModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,9 +1,9 @@
1
1
  import { __decorate, __param } from 'tslib';
2
2
  import { Input, Directive, Inject, forwardRef, HostBinding, Component, ChangeDetectionStrategy, InjectionToken, SkipSelf, ElementRef, ContentChildren, Optional, ViewChild, EventEmitter, Output, Injectable, NgModule } from '@angular/core';
3
- import { EMPTY_ARRAY, tuiDefaultProp, ALWAYS_TRUE_HANDLER, EMPTY_FUNCTION, EMPTY_QUERY, isPresent } from '@taiga-ui/cdk';
4
- import { POLYMORPHEUS_CONTEXT, PolymorpheusComponent, PolymorpheusModule } from '@tinkoff/ng-polymorpheus';
5
3
  import { Subject } from 'rxjs';
6
4
  import { startWith, map, distinctUntilChanged, switchMap, tap, mapTo } from 'rxjs/operators';
5
+ import { EMPTY_ARRAY, tuiDefaultProp, ALWAYS_TRUE_HANDLER, EMPTY_FUNCTION, EMPTY_QUERY, isPresent, TuiLetModule } from '@taiga-ui/cdk';
6
+ import { POLYMORPHEUS_CONTEXT, PolymorpheusComponent, PolymorpheusModule } from '@tinkoff/ng-polymorpheus';
7
7
  import { CommonModule } from '@angular/common';
8
8
  import { TuiExpandModule, TuiButtonModule } from '@taiga-ui/core';
9
9
 
@@ -150,17 +150,20 @@ var TuiTreeComponent_1;
150
150
  let TuiTreeComponent = TuiTreeComponent_1 = class TuiTreeComponent {
151
151
  constructor(directive) {
152
152
  this.directive = directive;
153
+ this.check$ = new Subject();
154
+ this.children$ = this.check$.pipe(startWith(null), map(() => this.handler(this.value)), distinctUntilChanged());
153
155
  this.content = ({ $implicit }) => String($implicit);
154
156
  }
155
- get children() {
156
- var _a, _b;
157
- return ((_b = (_a = this.directive) === null || _a === void 0 ? void 0 : _a.childrenHandler(this.value)) !== null && _b !== void 0 ? _b : TuiTreeChildrenDirective.defaultHandler(this.value));
158
- }
159
157
  ngDoCheck() {
160
158
  var _a, _b;
159
+ this.check$.next();
161
160
  (_a = this.item) === null || _a === void 0 ? void 0 : _a.ngDoCheck();
162
161
  (_b = this.child) === null || _b === void 0 ? void 0 : _b.ngDoCheck();
163
162
  }
163
+ get handler() {
164
+ var _a, _b;
165
+ return (_b = (_a = this.directive) === null || _a === void 0 ? void 0 : _a.childrenHandler) !== null && _b !== void 0 ? _b : TuiTreeChildrenDirective.defaultHandler;
166
+ }
164
167
  };
165
168
  TuiTreeComponent.ctorParameters = () => [
166
169
  { type: TuiTreeChildrenDirective, decorators: [{ type: Optional }, { type: Inject, args: [TuiTreeChildrenDirective,] }] }
@@ -180,7 +183,7 @@ __decorate([
180
183
  TuiTreeComponent = TuiTreeComponent_1 = __decorate([
181
184
  Component({
182
185
  selector: 'tui-tree[value]',
183
- template: "<tui-tree-item #view [tuiTreeNode]=\"value\">\n <div\n *ngIf=\"value !== children\"\n polymorpheus-outlet\n [content]=\"content\"\n [context]=\"{$implicit: value, node: view}\"\n ></div>\n <tui-tree\n *ngFor=\"let child of children\"\n [value]=\"child\"\n [content]=\"content\"\n ></tui-tree>\n</tui-tree-item>\n",
186
+ template: "<tui-tree-item\n *tuiLet=\"children$ | async as children\"\n #view\n [tuiTreeNode]=\"value\"\n>\n <div\n *ngIf=\"value !== children\"\n polymorpheus-outlet\n [content]=\"content\"\n [context]=\"{$implicit: value, node: view}\"\n ></div>\n <tui-tree\n *ngFor=\"let child of children\"\n [value]=\"child\"\n [content]=\"content\"\n ></tui-tree>\n</tui-tree-item>\n",
184
187
  changeDetection: ChangeDetectionStrategy.OnPush,
185
188
  providers: [
186
189
  {
@@ -353,7 +356,13 @@ let TuiTreeModule = class TuiTreeModule {
353
356
  };
354
357
  TuiTreeModule = __decorate([
355
358
  NgModule({
356
- imports: [CommonModule, PolymorpheusModule, TuiExpandModule, TuiButtonModule],
359
+ imports: [
360
+ CommonModule,
361
+ PolymorpheusModule,
362
+ TuiExpandModule,
363
+ TuiLetModule,
364
+ TuiButtonModule,
365
+ ],
357
366
  entryComponents: [TuiTreeItemContentComponent],
358
367
  declarations: [
359
368
  TuiTreeComponent,
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-kit-components-tree.js","sources":["ng://@taiga-ui/kit/components/tree/directives/tree-children.directive.ts","ng://@taiga-ui/kit/components/tree/components/tree-item-content/tree-item-content.component.ts","ng://@taiga-ui/kit/components/tree/misc/tree.constants.ts","ng://@taiga-ui/kit/components/tree/misc/tree.tokens.ts","ng://@taiga-ui/kit/components/tree/components/tree-item/tree-item.providers.ts","ng://@taiga-ui/kit/components/tree/components/tree-item/tree-item.component.ts","ng://@taiga-ui/kit/components/tree/components/tree/tree.component.ts","ng://@taiga-ui/kit/components/tree/directives/tree-controller.directive.ts","ng://@taiga-ui/kit/components/tree/directives/tree-item-controller.directive.ts","ng://@taiga-ui/kit/components/tree/directives/tree-node.directive.ts","ng://@taiga-ui/kit/components/tree/misc/tree.service.ts","ng://@taiga-ui/kit/components/tree/tree.module.ts","ng://@taiga-ui/kit/components/tree/taiga-ui-kit-components-tree.ts"],"sourcesContent":["import {Directive, Input} from '@angular/core';\nimport {EMPTY_ARRAY, tuiDefaultProp, TuiHandler} from '@taiga-ui/cdk';\n\n@Directive({\n selector: 'tui-tree[childrenHandler]',\n})\nexport class TuiTreeChildrenDirective<T> {\n @Input()\n @tuiDefaultProp()\n childrenHandler: TuiHandler<T, readonly T[]> =\n TuiTreeChildrenDirective.defaultHandler;\n\n static defaultHandler<G>(item: G): readonly G[] {\n return Array.isArray(item) ? item : EMPTY_ARRAY;\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n forwardRef,\n HostBinding,\n Inject,\n} from '@angular/core';\nimport {POLYMORPHEUS_CONTEXT} from '@tinkoff/ng-polymorpheus';\n\nimport {TUI_DEFAULT_TREE_CONTROLLER} from '../../misc/tree.constants';\nimport {TuiTreeController, TuiTreeItemContext} from '../../misc/tree.interfaces';\nimport {TUI_TREE_CONTROLLER} from '../../misc/tree.tokens';\n\n@Component({\n selector: 'tui-tree-item-content',\n templateUrl: 'tree-item-content.template.html',\n styleUrls: ['tree-item-content.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiTreeItemContentComponent {\n constructor(\n @Inject(POLYMORPHEUS_CONTEXT) readonly context: TuiTreeItemContext,\n @Inject(forwardRef(() => TUI_TREE_CONTROLLER))\n private readonly controller: TuiTreeController,\n ) {}\n\n get isExpanded(): boolean {\n return this.context.$implicit.isExpanded;\n }\n\n @HostBinding('class._expandable')\n get isExpandable(): boolean {\n return (\n this.context.$implicit.isExpandable &&\n this.controller !== TUI_DEFAULT_TREE_CONTROLLER\n );\n }\n\n onClick() {\n this.controller.toggle(this.context.$implicit);\n }\n}\n","import {ALWAYS_TRUE_HANDLER, EMPTY_FUNCTION} from '@taiga-ui/cdk';\nimport {PolymorpheusComponent} from '@tinkoff/ng-polymorpheus';\n\nimport {TuiTreeItemContentComponent} from '../components/tree-item-content/tree-item-content.component';\nimport {TuiTreeController} from './tree.interfaces';\n\nexport const TUI_TREE_ITEM_CONTENT = new PolymorpheusComponent(\n TuiTreeItemContentComponent,\n);\n\nexport const TUI_DEFAULT_TREE_CONTROLLER: TuiTreeController = {\n isExpanded: ALWAYS_TRUE_HANDLER,\n toggle: EMPTY_FUNCTION as () => void,\n};\n","import {InjectionToken} from '@angular/core';\nimport {PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\n\nimport {TUI_DEFAULT_TREE_CONTROLLER, TUI_TREE_ITEM_CONTENT} from './tree.constants';\nimport {\n TuiTreeAccessor,\n TuiTreeController,\n TuiTreeItemContext,\n TuiTreeLoader,\n} from './tree.interfaces';\n\nexport const TUI_TREE_ACCESSOR = new InjectionToken<TuiTreeAccessor<any>>(\n 'Controller for tracking value - TuiTreeItemComponent pairs',\n);\n\nexport const TUI_TREE_CONTROLLER = new InjectionToken<TuiTreeController>(\n 'Controller for expanding the tree',\n {\n factory: () => TUI_DEFAULT_TREE_CONTROLLER,\n },\n);\n\nexport const TUI_TREE_NODE = new InjectionToken('A node of a tree view');\n\nexport const TUI_TREE_LOADING = new InjectionToken(\n 'A tree node placeholder for loading',\n {factory: () => ({})},\n);\n\nexport const TUI_TREE_START = new InjectionToken('A tree node starting point');\n\nexport const TUI_TREE_LOADER = new InjectionToken<TuiTreeLoader<any>>(\n 'A service to load tree progressively',\n);\n\nexport const TUI_TREE_CONTENT = new InjectionToken<\n PolymorpheusContent<TuiTreeItemContext>\n>('Content for a tree item', {\n factory: () => TUI_TREE_ITEM_CONTENT,\n});\n\nexport const TUI_TREE_LEVEL = new InjectionToken<number>(\n 'Nesting level of current TreeView node',\n {\n factory: () => -1,\n },\n);\n","import {forwardRef, Provider, SkipSelf} from '@angular/core';\n\nimport {TUI_TREE_LEVEL, TUI_TREE_NODE} from '../../misc/tree.tokens';\nimport {TuiTreeItemComponent} from './tree-item.component';\n\nexport const TUI_TREE_ITEM_PROVIDERS: Provider[] = [\n {\n provide: TUI_TREE_LEVEL,\n deps: [[new SkipSelf(), TUI_TREE_LEVEL]],\n useFactory: treeLevelFactory,\n },\n {\n provide: TUI_TREE_NODE,\n useExisting: forwardRef(() => TuiTreeItemComponent),\n },\n];\n\nexport function treeLevelFactory(level: number): number {\n return ++level;\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n DoCheck,\n ElementRef,\n forwardRef,\n HostBinding,\n Inject,\n QueryList,\n} from '@angular/core';\nimport {EMPTY_QUERY} from '@taiga-ui/cdk';\nimport {PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\nimport {Subject} from 'rxjs';\nimport {distinctUntilChanged, map, startWith} from 'rxjs/operators';\n\nimport {TuiTreeController, TuiTreeItemContext} from '../../misc/tree.interfaces';\nimport {\n TUI_TREE_CONTENT,\n TUI_TREE_CONTROLLER,\n TUI_TREE_LEVEL,\n TUI_TREE_NODE,\n} from '../../misc/tree.tokens';\nimport {TUI_TREE_ITEM_PROVIDERS} from './tree-item.providers';\n\n@Component({\n selector: 'tui-tree-item',\n templateUrl: './tree-item.template.html',\n styleUrls: ['./tree-item.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: TUI_TREE_ITEM_PROVIDERS,\n host: {\n role: 'treeitem',\n },\n})\nexport class TuiTreeItemComponent implements DoCheck {\n @ContentChildren(TUI_TREE_NODE as any)\n private readonly nested: QueryList<unknown> = EMPTY_QUERY;\n\n private readonly change$ = new Subject<void>();\n\n readonly expanded$ = this.change$.pipe(\n startWith(null),\n map(() => this.isExpanded),\n distinctUntilChanged(),\n );\n\n readonly attached$ = this.change$.pipe(\n map(() => this.elementRef.nativeElement.isConnected),\n distinctUntilChanged(),\n );\n\n constructor(\n @Inject(ElementRef)\n private readonly elementRef: ElementRef<HTMLElement>,\n @Inject(forwardRef(() => TUI_TREE_CONTROLLER))\n private readonly controller: TuiTreeController,\n @Inject(forwardRef(() => TUI_TREE_LEVEL))\n readonly level: number,\n @Inject(forwardRef(() => TUI_TREE_CONTENT))\n readonly content: PolymorpheusContent<TuiTreeItemContext>,\n ) {}\n\n @HostBinding('class._expandable')\n get isExpandable(): boolean {\n return !!this.nested.length;\n }\n\n get isExpanded(): boolean {\n return this.controller.isExpanded(this);\n }\n\n ngDoCheck() {\n this.change$.next();\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n DoCheck,\n Inject,\n Input,\n Optional,\n ViewChild,\n} from '@angular/core';\nimport {PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\n\nimport {TuiTreeChildrenDirective} from '../../directives/tree-children.directive';\nimport {TuiTreeContext} from '../../misc/tree.interfaces';\nimport {TUI_TREE_NODE} from '../../misc/tree.tokens';\nimport {TuiTreeItemComponent} from '../tree-item/tree-item.component';\n\n@Component({\n selector: 'tui-tree[value]',\n templateUrl: 'tree.template.html',\n styleUrls: ['tree.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: TUI_TREE_NODE,\n useExisting: TuiTreeComponent,\n },\n ],\n host: {\n role: 'tree',\n },\n})\nexport class TuiTreeComponent<T> implements DoCheck {\n @Input()\n value!: T;\n\n @ViewChild(TuiTreeItemComponent)\n readonly item?: TuiTreeItemComponent;\n\n @ViewChild(TuiTreeComponent)\n readonly child?: TuiTreeComponent<T>;\n\n constructor(\n @Optional()\n @Inject(TuiTreeChildrenDirective)\n readonly directive: TuiTreeChildrenDirective<T> | null,\n ) {}\n\n @Input()\n content: PolymorpheusContent<TuiTreeContext<T>> = ({$implicit}) => String($implicit);\n\n get children(): readonly T[] {\n return (\n this.directive?.childrenHandler(this.value) ??\n TuiTreeChildrenDirective.defaultHandler(this.value)\n );\n }\n\n ngDoCheck() {\n this.item?.ngDoCheck();\n this.child?.ngDoCheck();\n }\n}\n","import {Directive, EventEmitter, Input, Output} from '@angular/core';\nimport {isPresent, tuiDefaultProp} from '@taiga-ui/cdk';\n\nimport {TuiTreeItemComponent} from '../components/tree-item/tree-item.component';\nimport {TuiTreeAccessor, TuiTreeController} from '../misc/tree.interfaces';\nimport {TUI_TREE_ACCESSOR, TUI_TREE_CONTROLLER} from '../misc/tree.tokens';\n\n@Directive({\n selector: '[tuiTreeController][map]',\n exportAs: 'tuiTreeController',\n providers: [\n {\n provide: TUI_TREE_ACCESSOR,\n useExisting: TuiTreeControllerDirective,\n },\n {\n provide: TUI_TREE_CONTROLLER,\n useExisting: TuiTreeControllerDirective,\n },\n ],\n})\nexport class TuiTreeControllerDirective<T>\n implements TuiTreeController, TuiTreeAccessor<T>\n{\n @Input('tuiTreeController')\n @tuiDefaultProp()\n fallback = true;\n\n @Input()\n @tuiDefaultProp()\n map: Map<T, boolean> = new Map();\n\n @Output()\n readonly toggled = new EventEmitter<T>();\n\n readonly items = new Map<TuiTreeItemComponent, T>();\n\n register(item: TuiTreeItemComponent, value: T) {\n this.items.set(item, value);\n }\n\n unregister(item: TuiTreeItemComponent) {\n this.items.delete(item);\n }\n\n isExpanded(item: TuiTreeItemComponent): boolean {\n const value = this.items.get(item);\n\n return (value && this.map.get(value)) ?? this.fallback;\n }\n\n toggle(item: TuiTreeItemComponent) {\n const value = this.items.get(item);\n const expanded = this.isExpanded(item);\n\n if (!isPresent(value)) {\n return;\n }\n\n this.toggled.emit(value);\n this.map.set(value, !expanded);\n }\n}\n","import {Directive, Input} from '@angular/core';\nimport {tuiDefaultProp} from '@taiga-ui/cdk';\n\nimport {TuiTreeItemComponent} from '../components/tree-item/tree-item.component';\nimport {TuiTreeController} from '../misc/tree.interfaces';\nimport {TUI_TREE_CONTROLLER} from '../misc/tree.tokens';\n\n@Directive({\n selector: '[tuiTreeController]:not([map])',\n exportAs: 'tuiTreeController',\n providers: [\n {\n provide: TUI_TREE_CONTROLLER,\n useExisting: TuiTreeItemControllerDirective,\n },\n ],\n})\nexport class TuiTreeItemControllerDirective implements TuiTreeController {\n private readonly map = new WeakMap<TuiTreeItemComponent, boolean>();\n\n @Input('tuiTreeController')\n @tuiDefaultProp()\n fallback = true;\n\n isExpanded(item: TuiTreeItemComponent): boolean {\n return this.map.get(item) ?? this.fallback;\n }\n\n toggle(item: TuiTreeItemComponent) {\n this.map.set(item, !this.isExpanded(item));\n }\n}\n","import {Directive, Inject, Input, OnDestroy, Optional} from '@angular/core';\n\nimport {TuiTreeItemComponent} from '../components/tree-item/tree-item.component';\nimport {TuiTreeAccessor} from '../misc/tree.interfaces';\nimport {TUI_TREE_ACCESSOR} from '../misc/tree.tokens';\n\n@Directive({\n selector: 'tui-tree-item[tuiTreeNode]',\n})\nexport class TuiTreeNodeDirective<T> implements OnDestroy {\n @Input('tuiTreeNode')\n set value(value: T) {\n this.directive?.register(this.component, value);\n }\n\n constructor(\n @Optional()\n @Inject(TUI_TREE_ACCESSOR)\n private readonly directive: TuiTreeAccessor<T>,\n @Inject(TuiTreeItemComponent)\n private readonly component: TuiTreeItemComponent,\n ) {}\n\n ngOnDestroy() {\n this.directive?.unregister(this.component);\n }\n}\n","import {Inject, Injectable} from '@angular/core';\nimport {Subject} from 'rxjs';\nimport {map, mapTo, startWith, switchMap, tap} from 'rxjs/operators';\n\nimport {TuiTreeLoader} from './tree.interfaces';\nimport {TUI_TREE_LOADER, TUI_TREE_LOADING, TUI_TREE_START} from './tree.tokens';\n\n// @dynamic\n@Injectable()\nexport class TuiTreeService<T> {\n private readonly map = new Map<T, readonly T[]>([[this.loading, []]]);\n\n private readonly load$ = new Subject<T>();\n\n readonly data$ = this.load$.pipe(\n switchMap(item =>\n this.loader.loadChildren(item).pipe(\n tap(children => this.map.set(item, children)),\n map(children => children.filter(item => !this.loader.hasChildren(item))),\n tap(children => children.forEach(child => this.map.set(child, []))),\n ),\n ),\n startWith(null),\n mapTo(this.start),\n );\n\n constructor(\n @Inject(TUI_TREE_LOADING) private readonly loading: T,\n @Inject(TUI_TREE_START) private readonly start: T,\n @Inject(TUI_TREE_LOADER) private readonly loader: TuiTreeLoader<T>,\n ) {}\n\n getChildren(item: T): readonly T[] {\n return this.map.get(item) ?? [this.loading];\n }\n\n loadChildren(item: T) {\n if (this.map.get(item)) {\n return;\n }\n\n this.map.set(item, [this.loading]);\n this.load$.next(item);\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {TuiButtonModule, TuiExpandModule} from '@taiga-ui/core';\nimport {PolymorpheusModule} from '@tinkoff/ng-polymorpheus';\n\nimport {TuiTreeComponent} from './components/tree/tree.component';\nimport {TuiTreeItemComponent} from './components/tree-item/tree-item.component';\nimport {TuiTreeItemContentComponent} from './components/tree-item-content/tree-item-content.component';\nimport {TuiTreeChildrenDirective} from './directives/tree-children.directive';\nimport {TuiTreeControllerDirective} from './directives/tree-controller.directive';\nimport {TuiTreeItemControllerDirective} from './directives/tree-item-controller.directive';\nimport {TuiTreeNodeDirective} from './directives/tree-node.directive';\n\n@NgModule({\n imports: [CommonModule, PolymorpheusModule, TuiExpandModule, TuiButtonModule],\n entryComponents: [TuiTreeItemContentComponent],\n declarations: [\n TuiTreeComponent,\n TuiTreeItemComponent,\n TuiTreeItemContentComponent,\n TuiTreeChildrenDirective,\n TuiTreeItemControllerDirective,\n TuiTreeControllerDirective,\n TuiTreeNodeDirective,\n ],\n exports: [\n TuiTreeComponent,\n TuiTreeItemComponent,\n TuiTreeChildrenDirective,\n TuiTreeItemControllerDirective,\n TuiTreeControllerDirective,\n ],\n})\nexport class TuiTreeModule {}\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-tree.js","sources":["ng://@taiga-ui/kit/components/tree/directives/tree-children.directive.ts","ng://@taiga-ui/kit/components/tree/components/tree-item-content/tree-item-content.component.ts","ng://@taiga-ui/kit/components/tree/misc/tree.constants.ts","ng://@taiga-ui/kit/components/tree/misc/tree.tokens.ts","ng://@taiga-ui/kit/components/tree/components/tree-item/tree-item.providers.ts","ng://@taiga-ui/kit/components/tree/components/tree-item/tree-item.component.ts","ng://@taiga-ui/kit/components/tree/components/tree/tree.component.ts","ng://@taiga-ui/kit/components/tree/directives/tree-controller.directive.ts","ng://@taiga-ui/kit/components/tree/directives/tree-item-controller.directive.ts","ng://@taiga-ui/kit/components/tree/directives/tree-node.directive.ts","ng://@taiga-ui/kit/components/tree/misc/tree.service.ts","ng://@taiga-ui/kit/components/tree/tree.module.ts","ng://@taiga-ui/kit/components/tree/taiga-ui-kit-components-tree.ts"],"sourcesContent":["import {Directive, Input} from '@angular/core';\nimport {EMPTY_ARRAY, tuiDefaultProp, TuiHandler} from '@taiga-ui/cdk';\n\n@Directive({\n selector: 'tui-tree[childrenHandler]',\n})\nexport class TuiTreeChildrenDirective<T> {\n @Input()\n @tuiDefaultProp()\n childrenHandler: TuiHandler<T, readonly T[]> =\n TuiTreeChildrenDirective.defaultHandler;\n\n static defaultHandler<G>(item: G): readonly G[] {\n return Array.isArray(item) ? item : EMPTY_ARRAY;\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n forwardRef,\n HostBinding,\n Inject,\n} from '@angular/core';\nimport {POLYMORPHEUS_CONTEXT} from '@tinkoff/ng-polymorpheus';\n\nimport {TUI_DEFAULT_TREE_CONTROLLER} from '../../misc/tree.constants';\nimport {TuiTreeController, TuiTreeItemContext} from '../../misc/tree.interfaces';\nimport {TUI_TREE_CONTROLLER} from '../../misc/tree.tokens';\n\n@Component({\n selector: 'tui-tree-item-content',\n templateUrl: 'tree-item-content.template.html',\n styleUrls: ['tree-item-content.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiTreeItemContentComponent {\n constructor(\n @Inject(POLYMORPHEUS_CONTEXT) readonly context: TuiTreeItemContext,\n @Inject(forwardRef(() => TUI_TREE_CONTROLLER))\n private readonly controller: TuiTreeController,\n ) {}\n\n get isExpanded(): boolean {\n return this.context.$implicit.isExpanded;\n }\n\n @HostBinding('class._expandable')\n get isExpandable(): boolean {\n return (\n this.context.$implicit.isExpandable &&\n this.controller !== TUI_DEFAULT_TREE_CONTROLLER\n );\n }\n\n onClick() {\n this.controller.toggle(this.context.$implicit);\n }\n}\n","import {ALWAYS_TRUE_HANDLER, EMPTY_FUNCTION} from '@taiga-ui/cdk';\nimport {PolymorpheusComponent} from '@tinkoff/ng-polymorpheus';\n\nimport {TuiTreeItemContentComponent} from '../components/tree-item-content/tree-item-content.component';\nimport {TuiTreeController} from './tree.interfaces';\n\nexport const TUI_TREE_ITEM_CONTENT = new PolymorpheusComponent(\n TuiTreeItemContentComponent,\n);\n\nexport const TUI_DEFAULT_TREE_CONTROLLER: TuiTreeController = {\n isExpanded: ALWAYS_TRUE_HANDLER,\n toggle: EMPTY_FUNCTION as () => void,\n};\n","import {InjectionToken} from '@angular/core';\nimport {PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\n\nimport {TUI_DEFAULT_TREE_CONTROLLER, TUI_TREE_ITEM_CONTENT} from './tree.constants';\nimport {\n TuiTreeAccessor,\n TuiTreeController,\n TuiTreeItemContext,\n TuiTreeLoader,\n} from './tree.interfaces';\n\nexport const TUI_TREE_ACCESSOR = new InjectionToken<TuiTreeAccessor<any>>(\n 'Controller for tracking value - TuiTreeItemComponent pairs',\n);\n\nexport const TUI_TREE_CONTROLLER = new InjectionToken<TuiTreeController>(\n 'Controller for expanding the tree',\n {\n factory: () => TUI_DEFAULT_TREE_CONTROLLER,\n },\n);\n\nexport const TUI_TREE_NODE = new InjectionToken('A node of a tree view');\n\nexport const TUI_TREE_LOADING = new InjectionToken(\n 'A tree node placeholder for loading',\n {factory: () => ({})},\n);\n\nexport const TUI_TREE_START = new InjectionToken('A tree node starting point');\n\nexport const TUI_TREE_LOADER = new InjectionToken<TuiTreeLoader<any>>(\n 'A service to load tree progressively',\n);\n\nexport const TUI_TREE_CONTENT = new InjectionToken<\n PolymorpheusContent<TuiTreeItemContext>\n>('Content for a tree item', {\n factory: () => TUI_TREE_ITEM_CONTENT,\n});\n\nexport const TUI_TREE_LEVEL = new InjectionToken<number>(\n 'Nesting level of current TreeView node',\n {\n factory: () => -1,\n },\n);\n","import {forwardRef, Provider, SkipSelf} from '@angular/core';\n\nimport {TUI_TREE_LEVEL, TUI_TREE_NODE} from '../../misc/tree.tokens';\nimport {TuiTreeItemComponent} from './tree-item.component';\n\nexport const TUI_TREE_ITEM_PROVIDERS: Provider[] = [\n {\n provide: TUI_TREE_LEVEL,\n deps: [[new SkipSelf(), TUI_TREE_LEVEL]],\n useFactory: treeLevelFactory,\n },\n {\n provide: TUI_TREE_NODE,\n useExisting: forwardRef(() => TuiTreeItemComponent),\n },\n];\n\nexport function treeLevelFactory(level: number): number {\n return ++level;\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n DoCheck,\n ElementRef,\n forwardRef,\n HostBinding,\n Inject,\n QueryList,\n} from '@angular/core';\nimport {EMPTY_QUERY} from '@taiga-ui/cdk';\nimport {PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\nimport {Subject} from 'rxjs';\nimport {distinctUntilChanged, map, startWith} from 'rxjs/operators';\n\nimport {TuiTreeController, TuiTreeItemContext} from '../../misc/tree.interfaces';\nimport {\n TUI_TREE_CONTENT,\n TUI_TREE_CONTROLLER,\n TUI_TREE_LEVEL,\n TUI_TREE_NODE,\n} from '../../misc/tree.tokens';\nimport {TUI_TREE_ITEM_PROVIDERS} from './tree-item.providers';\n\n@Component({\n selector: 'tui-tree-item',\n templateUrl: './tree-item.template.html',\n styleUrls: ['./tree-item.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: TUI_TREE_ITEM_PROVIDERS,\n host: {\n role: 'treeitem',\n },\n})\nexport class TuiTreeItemComponent implements DoCheck {\n @ContentChildren(TUI_TREE_NODE as any)\n private readonly nested: QueryList<unknown> = EMPTY_QUERY;\n\n private readonly change$ = new Subject<void>();\n\n readonly expanded$ = this.change$.pipe(\n startWith(null),\n map(() => this.isExpanded),\n distinctUntilChanged(),\n );\n\n readonly attached$ = this.change$.pipe(\n map(() => this.elementRef.nativeElement.isConnected),\n distinctUntilChanged(),\n );\n\n constructor(\n @Inject(ElementRef)\n private readonly elementRef: ElementRef<HTMLElement>,\n @Inject(forwardRef(() => TUI_TREE_CONTROLLER))\n private readonly controller: TuiTreeController,\n @Inject(forwardRef(() => TUI_TREE_LEVEL))\n readonly level: number,\n @Inject(forwardRef(() => TUI_TREE_CONTENT))\n readonly content: PolymorpheusContent<TuiTreeItemContext>,\n ) {}\n\n @HostBinding('class._expandable')\n get isExpandable(): boolean {\n return !!this.nested.length;\n }\n\n get isExpanded(): boolean {\n return this.controller.isExpanded(this);\n }\n\n ngDoCheck() {\n this.change$.next();\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n DoCheck,\n Inject,\n Input,\n Optional,\n ViewChild,\n} from '@angular/core';\nimport {TuiHandler} from '@taiga-ui/cdk';\nimport {PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\nimport {Subject} from 'rxjs';\nimport {distinctUntilChanged, map, startWith} from 'rxjs/operators';\n\nimport {TuiTreeChildrenDirective} from '../../directives/tree-children.directive';\nimport {TuiTreeContext} from '../../misc/tree.interfaces';\nimport {TUI_TREE_NODE} from '../../misc/tree.tokens';\nimport {TuiTreeItemComponent} from '../tree-item/tree-item.component';\n\n@Component({\n selector: 'tui-tree[value]',\n templateUrl: 'tree.template.html',\n styleUrls: ['tree.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: TUI_TREE_NODE,\n useExisting: TuiTreeComponent,\n },\n ],\n host: {\n role: 'tree',\n },\n})\nexport class TuiTreeComponent<T> implements DoCheck {\n private readonly check$ = new Subject<void>();\n\n @Input()\n value!: T;\n\n @ViewChild(TuiTreeItemComponent)\n readonly item?: TuiTreeItemComponent;\n\n @ViewChild(TuiTreeComponent)\n readonly child?: TuiTreeComponent<T>;\n\n readonly children$ = this.check$.pipe(\n startWith(null),\n map(() => this.handler(this.value)),\n distinctUntilChanged(),\n );\n\n constructor(\n @Optional()\n @Inject(TuiTreeChildrenDirective)\n readonly directive: TuiTreeChildrenDirective<T> | null,\n ) {}\n\n @Input()\n content: PolymorpheusContent<TuiTreeContext<T>> = ({$implicit}) => String($implicit);\n\n ngDoCheck() {\n this.check$.next();\n this.item?.ngDoCheck();\n this.child?.ngDoCheck();\n }\n\n private get handler(): TuiHandler<T, readonly T[]> {\n return this.directive?.childrenHandler ?? TuiTreeChildrenDirective.defaultHandler;\n }\n}\n","import {Directive, EventEmitter, Input, Output} from '@angular/core';\nimport {isPresent, tuiDefaultProp} from '@taiga-ui/cdk';\n\nimport {TuiTreeItemComponent} from '../components/tree-item/tree-item.component';\nimport {TuiTreeAccessor, TuiTreeController} from '../misc/tree.interfaces';\nimport {TUI_TREE_ACCESSOR, TUI_TREE_CONTROLLER} from '../misc/tree.tokens';\n\n@Directive({\n selector: '[tuiTreeController][map]',\n exportAs: 'tuiTreeController',\n providers: [\n {\n provide: TUI_TREE_ACCESSOR,\n useExisting: TuiTreeControllerDirective,\n },\n {\n provide: TUI_TREE_CONTROLLER,\n useExisting: TuiTreeControllerDirective,\n },\n ],\n})\nexport class TuiTreeControllerDirective<T>\n implements TuiTreeController, TuiTreeAccessor<T>\n{\n @Input('tuiTreeController')\n @tuiDefaultProp()\n fallback = true;\n\n @Input()\n @tuiDefaultProp()\n map: Map<T, boolean> = new Map();\n\n @Output()\n readonly toggled = new EventEmitter<T>();\n\n readonly items = new Map<TuiTreeItemComponent, T>();\n\n register(item: TuiTreeItemComponent, value: T) {\n this.items.set(item, value);\n }\n\n unregister(item: TuiTreeItemComponent) {\n this.items.delete(item);\n }\n\n isExpanded(item: TuiTreeItemComponent): boolean {\n const value = this.items.get(item);\n\n return (value && this.map.get(value)) ?? this.fallback;\n }\n\n toggle(item: TuiTreeItemComponent) {\n const value = this.items.get(item);\n const expanded = this.isExpanded(item);\n\n if (!isPresent(value)) {\n return;\n }\n\n this.toggled.emit(value);\n this.map.set(value, !expanded);\n }\n}\n","import {Directive, Input} from '@angular/core';\nimport {tuiDefaultProp} from '@taiga-ui/cdk';\n\nimport {TuiTreeItemComponent} from '../components/tree-item/tree-item.component';\nimport {TuiTreeController} from '../misc/tree.interfaces';\nimport {TUI_TREE_CONTROLLER} from '../misc/tree.tokens';\n\n@Directive({\n selector: '[tuiTreeController]:not([map])',\n exportAs: 'tuiTreeController',\n providers: [\n {\n provide: TUI_TREE_CONTROLLER,\n useExisting: TuiTreeItemControllerDirective,\n },\n ],\n})\nexport class TuiTreeItemControllerDirective implements TuiTreeController {\n private readonly map = new WeakMap<TuiTreeItemComponent, boolean>();\n\n @Input('tuiTreeController')\n @tuiDefaultProp()\n fallback = true;\n\n isExpanded(item: TuiTreeItemComponent): boolean {\n return this.map.get(item) ?? this.fallback;\n }\n\n toggle(item: TuiTreeItemComponent) {\n this.map.set(item, !this.isExpanded(item));\n }\n}\n","import {Directive, Inject, Input, OnDestroy, Optional} from '@angular/core';\n\nimport {TuiTreeItemComponent} from '../components/tree-item/tree-item.component';\nimport {TuiTreeAccessor} from '../misc/tree.interfaces';\nimport {TUI_TREE_ACCESSOR} from '../misc/tree.tokens';\n\n@Directive({\n selector: 'tui-tree-item[tuiTreeNode]',\n})\nexport class TuiTreeNodeDirective<T> implements OnDestroy {\n @Input('tuiTreeNode')\n set value(value: T) {\n this.directive?.register(this.component, value);\n }\n\n constructor(\n @Optional()\n @Inject(TUI_TREE_ACCESSOR)\n private readonly directive: TuiTreeAccessor<T>,\n @Inject(TuiTreeItemComponent)\n private readonly component: TuiTreeItemComponent,\n ) {}\n\n ngOnDestroy() {\n this.directive?.unregister(this.component);\n }\n}\n","import {Inject, Injectable} from '@angular/core';\nimport {Subject} from 'rxjs';\nimport {map, mapTo, startWith, switchMap, tap} from 'rxjs/operators';\n\nimport {TuiTreeLoader} from './tree.interfaces';\nimport {TUI_TREE_LOADER, TUI_TREE_LOADING, TUI_TREE_START} from './tree.tokens';\n\n// @dynamic\n@Injectable()\nexport class TuiTreeService<T> {\n private readonly map = new Map<T, readonly T[]>([[this.loading, []]]);\n\n private readonly load$ = new Subject<T>();\n\n readonly data$ = this.load$.pipe(\n switchMap(item =>\n this.loader.loadChildren(item).pipe(\n tap(children => this.map.set(item, children)),\n map(children => children.filter(item => !this.loader.hasChildren(item))),\n tap(children => children.forEach(child => this.map.set(child, []))),\n ),\n ),\n startWith(null),\n mapTo(this.start),\n );\n\n constructor(\n @Inject(TUI_TREE_LOADING) private readonly loading: T,\n @Inject(TUI_TREE_START) private readonly start: T,\n @Inject(TUI_TREE_LOADER) private readonly loader: TuiTreeLoader<T>,\n ) {}\n\n getChildren(item: T): readonly T[] {\n return this.map.get(item) ?? [this.loading];\n }\n\n loadChildren(item: T) {\n if (this.map.get(item)) {\n return;\n }\n\n this.map.set(item, [this.loading]);\n this.load$.next(item);\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {TuiLetModule} from '@taiga-ui/cdk';\nimport {TuiButtonModule, TuiExpandModule} from '@taiga-ui/core';\nimport {PolymorpheusModule} from '@tinkoff/ng-polymorpheus';\n\nimport {TuiTreeComponent} from './components/tree/tree.component';\nimport {TuiTreeItemComponent} from './components/tree-item/tree-item.component';\nimport {TuiTreeItemContentComponent} from './components/tree-item-content/tree-item-content.component';\nimport {TuiTreeChildrenDirective} from './directives/tree-children.directive';\nimport {TuiTreeControllerDirective} from './directives/tree-controller.directive';\nimport {TuiTreeItemControllerDirective} from './directives/tree-item-controller.directive';\nimport {TuiTreeNodeDirective} from './directives/tree-node.directive';\n\n@NgModule({\n imports: [\n CommonModule,\n PolymorpheusModule,\n TuiExpandModule,\n TuiLetModule,\n TuiButtonModule,\n ],\n entryComponents: [TuiTreeItemContentComponent],\n declarations: [\n TuiTreeComponent,\n TuiTreeItemComponent,\n TuiTreeItemContentComponent,\n TuiTreeChildrenDirective,\n TuiTreeItemControllerDirective,\n TuiTreeControllerDirective,\n TuiTreeNodeDirective,\n ],\n exports: [\n TuiTreeComponent,\n TuiTreeItemComponent,\n TuiTreeChildrenDirective,\n TuiTreeItemControllerDirective,\n TuiTreeControllerDirective,\n ],\n})\nexport class TuiTreeModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}