@taiga-ui/kit 2.33.0 → 2.34.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 (469) hide show
  1. package/abstract/taiga-ui-kit-abstract.metadata.json +1 -1
  2. package/bundles/taiga-ui-kit-abstract.umd.js +2 -2
  3. package/bundles/taiga-ui-kit-abstract.umd.js.map +1 -1
  4. package/bundles/taiga-ui-kit-abstract.umd.min.js +1 -1
  5. package/bundles/taiga-ui-kit-abstract.umd.min.js.map +1 -1
  6. package/bundles/taiga-ui-kit-components-accordion.umd.js +2 -2
  7. package/bundles/taiga-ui-kit-components-accordion.umd.js.map +1 -1
  8. package/bundles/taiga-ui-kit-components-accordion.umd.min.js +1 -1
  9. package/bundles/taiga-ui-kit-components-accordion.umd.min.js.map +1 -1
  10. package/bundles/taiga-ui-kit-components-arrow.umd.js +14 -1
  11. package/bundles/taiga-ui-kit-components-arrow.umd.js.map +1 -1
  12. package/bundles/taiga-ui-kit-components-arrow.umd.min.js +1 -1
  13. package/bundles/taiga-ui-kit-components-arrow.umd.min.js.map +1 -1
  14. package/bundles/taiga-ui-kit-components-avatar.umd.js +2 -2
  15. package/bundles/taiga-ui-kit-components-avatar.umd.js.map +1 -1
  16. package/bundles/taiga-ui-kit-components-avatar.umd.min.js +2 -2
  17. package/bundles/taiga-ui-kit-components-avatar.umd.min.js.map +1 -1
  18. package/bundles/taiga-ui-kit-components-badge.umd.js +2 -2
  19. package/bundles/taiga-ui-kit-components-badge.umd.js.map +1 -1
  20. package/bundles/taiga-ui-kit-components-badge.umd.min.js +1 -1
  21. package/bundles/taiga-ui-kit-components-badge.umd.min.js.map +1 -1
  22. package/bundles/taiga-ui-kit-components-badged-content.umd.js +2 -2
  23. package/bundles/taiga-ui-kit-components-badged-content.umd.js.map +1 -1
  24. package/bundles/taiga-ui-kit-components-badged-content.umd.min.js +2 -2
  25. package/bundles/taiga-ui-kit-components-badged-content.umd.min.js.map +1 -1
  26. package/bundles/taiga-ui-kit-components-breadcrumbs.umd.js +2 -2
  27. package/bundles/taiga-ui-kit-components-breadcrumbs.umd.js.map +1 -1
  28. package/bundles/taiga-ui-kit-components-breadcrumbs.umd.min.js +1 -1
  29. package/bundles/taiga-ui-kit-components-breadcrumbs.umd.min.js.map +1 -1
  30. package/bundles/taiga-ui-kit-components-carousel.umd.js.map +1 -1
  31. package/bundles/taiga-ui-kit-components-carousel.umd.min.js.map +1 -1
  32. package/bundles/taiga-ui-kit-components-checkbox-block.umd.js +2 -2
  33. package/bundles/taiga-ui-kit-components-checkbox-block.umd.js.map +1 -1
  34. package/bundles/taiga-ui-kit-components-checkbox-block.umd.min.js +2 -2
  35. package/bundles/taiga-ui-kit-components-checkbox-block.umd.min.js.map +1 -1
  36. package/bundles/taiga-ui-kit-components-checkbox-labeled.umd.js +2 -2
  37. package/bundles/taiga-ui-kit-components-checkbox-labeled.umd.js.map +1 -1
  38. package/bundles/taiga-ui-kit-components-checkbox-labeled.umd.min.js +1 -1
  39. package/bundles/taiga-ui-kit-components-checkbox-labeled.umd.min.js.map +1 -1
  40. package/bundles/taiga-ui-kit-components-checkbox.umd.js +2 -2
  41. package/bundles/taiga-ui-kit-components-checkbox.umd.js.map +1 -1
  42. package/bundles/taiga-ui-kit-components-checkbox.umd.min.js +1 -1
  43. package/bundles/taiga-ui-kit-components-checkbox.umd.min.js.map +1 -1
  44. package/bundles/taiga-ui-kit-components-combo-box.umd.js +63 -21
  45. package/bundles/taiga-ui-kit-components-combo-box.umd.js.map +1 -1
  46. package/bundles/taiga-ui-kit-components-combo-box.umd.min.js +2 -2
  47. package/bundles/taiga-ui-kit-components-combo-box.umd.min.js.map +1 -1
  48. package/bundles/taiga-ui-kit-components-data-list-wrapper.umd.js +17 -11
  49. package/bundles/taiga-ui-kit-components-data-list-wrapper.umd.js.map +1 -1
  50. package/bundles/taiga-ui-kit-components-data-list-wrapper.umd.min.js +2 -2
  51. package/bundles/taiga-ui-kit-components-data-list-wrapper.umd.min.js.map +1 -1
  52. package/bundles/taiga-ui-kit-components-field-error.umd.js +10 -15
  53. package/bundles/taiga-ui-kit-components-field-error.umd.js.map +1 -1
  54. package/bundles/taiga-ui-kit-components-field-error.umd.min.js +1 -1
  55. package/bundles/taiga-ui-kit-components-field-error.umd.min.js.map +1 -1
  56. package/bundles/taiga-ui-kit-components-filter.umd.js +2 -2
  57. package/bundles/taiga-ui-kit-components-filter.umd.js.map +1 -1
  58. package/bundles/taiga-ui-kit-components-filter.umd.min.js +1 -1
  59. package/bundles/taiga-ui-kit-components-filter.umd.min.js.map +1 -1
  60. package/bundles/taiga-ui-kit-components-input-count.umd.js +7 -2
  61. package/bundles/taiga-ui-kit-components-input-count.umd.js.map +1 -1
  62. package/bundles/taiga-ui-kit-components-input-count.umd.min.js +1 -1
  63. package/bundles/taiga-ui-kit-components-input-count.umd.min.js.map +1 -1
  64. package/bundles/taiga-ui-kit-components-input-password.umd.js +5 -0
  65. package/bundles/taiga-ui-kit-components-input-password.umd.js.map +1 -1
  66. package/bundles/taiga-ui-kit-components-input-password.umd.min.js +1 -1
  67. package/bundles/taiga-ui-kit-components-input-password.umd.min.js.map +1 -1
  68. package/bundles/taiga-ui-kit-components-input-range.umd.js +1 -1
  69. package/bundles/taiga-ui-kit-components-input-range.umd.min.js +1 -1
  70. package/bundles/taiga-ui-kit-components-input-range.umd.min.js.map +1 -1
  71. package/bundles/taiga-ui-kit-components-input-slider.umd.js +1 -1
  72. package/bundles/taiga-ui-kit-components-input-slider.umd.min.js +2 -2
  73. package/bundles/taiga-ui-kit-components-input-slider.umd.min.js.map +1 -1
  74. package/bundles/taiga-ui-kit-components-input-tag.umd.js +42 -13
  75. package/bundles/taiga-ui-kit-components-input-tag.umd.js.map +1 -1
  76. package/bundles/taiga-ui-kit-components-input-tag.umd.min.js +2 -2
  77. package/bundles/taiga-ui-kit-components-input-tag.umd.min.js.map +1 -1
  78. package/bundles/taiga-ui-kit-components-input-time.umd.js +5 -0
  79. package/bundles/taiga-ui-kit-components-input-time.umd.js.map +1 -1
  80. package/bundles/taiga-ui-kit-components-input-time.umd.min.js +1 -1
  81. package/bundles/taiga-ui-kit-components-input-time.umd.min.js.map +1 -1
  82. package/bundles/taiga-ui-kit-components-marker-icon.umd.js +2 -2
  83. package/bundles/taiga-ui-kit-components-marker-icon.umd.js.map +1 -1
  84. package/bundles/taiga-ui-kit-components-marker-icon.umd.min.js +1 -1
  85. package/bundles/taiga-ui-kit-components-marker-icon.umd.min.js.map +1 -1
  86. package/bundles/taiga-ui-kit-components-multi-select.umd.js +34 -13
  87. package/bundles/taiga-ui-kit-components-multi-select.umd.js.map +1 -1
  88. package/bundles/taiga-ui-kit-components-multi-select.umd.min.js +2 -2
  89. package/bundles/taiga-ui-kit-components-multi-select.umd.min.js.map +1 -1
  90. package/bundles/taiga-ui-kit-components-radio-block.umd.js +2 -2
  91. package/bundles/taiga-ui-kit-components-radio-block.umd.js.map +1 -1
  92. package/bundles/taiga-ui-kit-components-radio-block.umd.min.js +1 -1
  93. package/bundles/taiga-ui-kit-components-radio-block.umd.min.js.map +1 -1
  94. package/bundles/taiga-ui-kit-components-radio-labeled.umd.js +2 -2
  95. package/bundles/taiga-ui-kit-components-radio-labeled.umd.js.map +1 -1
  96. package/bundles/taiga-ui-kit-components-radio-labeled.umd.min.js +1 -1
  97. package/bundles/taiga-ui-kit-components-radio-labeled.umd.min.js.map +1 -1
  98. package/bundles/taiga-ui-kit-components-radio-list.umd.js +2 -2
  99. package/bundles/taiga-ui-kit-components-radio-list.umd.js.map +1 -1
  100. package/bundles/taiga-ui-kit-components-radio-list.umd.min.js +1 -1
  101. package/bundles/taiga-ui-kit-components-radio-list.umd.min.js.map +1 -1
  102. package/bundles/taiga-ui-kit-components-radio.umd.js +7 -2
  103. package/bundles/taiga-ui-kit-components-radio.umd.js.map +1 -1
  104. package/bundles/taiga-ui-kit-components-radio.umd.min.js +1 -1
  105. package/bundles/taiga-ui-kit-components-radio.umd.min.js.map +1 -1
  106. package/bundles/taiga-ui-kit-components-range.umd.js +1 -1
  107. package/bundles/taiga-ui-kit-components-range.umd.min.js +1 -1
  108. package/bundles/taiga-ui-kit-components-range.umd.min.js.map +1 -1
  109. package/bundles/taiga-ui-kit-components-rating.umd.js +5 -0
  110. package/bundles/taiga-ui-kit-components-rating.umd.js.map +1 -1
  111. package/bundles/taiga-ui-kit-components-rating.umd.min.js +1 -1
  112. package/bundles/taiga-ui-kit-components-rating.umd.min.js.map +1 -1
  113. package/bundles/taiga-ui-kit-components-select.umd.js +35 -10
  114. package/bundles/taiga-ui-kit-components-select.umd.js.map +1 -1
  115. package/bundles/taiga-ui-kit-components-select.umd.min.js +2 -2
  116. package/bundles/taiga-ui-kit-components-select.umd.min.js.map +1 -1
  117. package/bundles/taiga-ui-kit-components-slider.umd.js +142 -27
  118. package/bundles/taiga-ui-kit-components-slider.umd.js.map +1 -1
  119. package/bundles/taiga-ui-kit-components-slider.umd.min.js +2 -2
  120. package/bundles/taiga-ui-kit-components-slider.umd.min.js.map +1 -1
  121. package/bundles/taiga-ui-kit-components-tag.umd.js +9 -3
  122. package/bundles/taiga-ui-kit-components-tag.umd.js.map +1 -1
  123. package/bundles/taiga-ui-kit-components-tag.umd.min.js +1 -1
  124. package/bundles/taiga-ui-kit-components-tag.umd.min.js.map +1 -1
  125. package/bundles/taiga-ui-kit-components-toggle.umd.js +7 -2
  126. package/bundles/taiga-ui-kit-components-toggle.umd.js.map +1 -1
  127. package/bundles/taiga-ui-kit-components-toggle.umd.min.js +1 -1
  128. package/bundles/taiga-ui-kit-components-toggle.umd.min.js.map +1 -1
  129. package/bundles/taiga-ui-kit-pipes-field-error.umd.js +389 -0
  130. package/bundles/taiga-ui-kit-pipes-field-error.umd.js.map +1 -0
  131. package/bundles/taiga-ui-kit-pipes-field-error.umd.min.js +16 -0
  132. package/bundles/taiga-ui-kit-pipes-field-error.umd.min.js.map +1 -0
  133. package/bundles/taiga-ui-kit-pipes.umd.js +12 -4
  134. package/bundles/taiga-ui-kit-pipes.umd.js.map +1 -1
  135. package/bundles/taiga-ui-kit-pipes.umd.min.js +1 -1
  136. package/bundles/taiga-ui-kit-tokens.umd.js +239 -4
  137. package/bundles/taiga-ui-kit-tokens.umd.js.map +1 -1
  138. package/bundles/taiga-ui-kit-tokens.umd.min.js +15 -1
  139. package/bundles/taiga-ui-kit-tokens.umd.min.js.map +1 -1
  140. package/components/accordion/taiga-ui-kit-components-accordion.metadata.json +1 -1
  141. package/components/arrow/arrow-options.d.ts +7 -5
  142. package/components/arrow/taiga-ui-kit-components-arrow.metadata.json +1 -1
  143. package/components/avatar/taiga-ui-kit-components-avatar.metadata.json +1 -1
  144. package/components/badge/taiga-ui-kit-components-badge.metadata.json +1 -1
  145. package/components/badged-content/taiga-ui-kit-components-badged-content.metadata.json +1 -1
  146. package/components/breadcrumbs/taiga-ui-kit-components-breadcrumbs.metadata.json +1 -1
  147. package/components/carousel/carousel-buttons.directive.d.ts +2 -2
  148. package/components/checkbox/checkbox.component.d.ts +2 -2
  149. package/components/checkbox/taiga-ui-kit-components-checkbox.metadata.json +1 -1
  150. package/components/checkbox-block/taiga-ui-kit-components-checkbox-block.metadata.json +1 -1
  151. package/components/checkbox-labeled/taiga-ui-kit-components-checkbox-labeled.metadata.json +1 -1
  152. package/components/combo-box/combo-box-strict.directive.d.ts +7 -0
  153. package/components/combo-box/combo-box.component.d.ts +8 -5
  154. package/components/combo-box/index.d.ts +1 -0
  155. package/components/combo-box/taiga-ui-kit-components-combo-box.metadata.json +1 -1
  156. package/components/data-list-wrapper/data-list-wrapper.component.d.ts +5 -3
  157. package/components/data-list-wrapper/taiga-ui-kit-components-data-list-wrapper.metadata.json +1 -1
  158. package/components/field-error/field-error.component.d.ts +1 -2
  159. package/components/field-error/field-error.module.d.ts +3 -0
  160. package/components/field-error/taiga-ui-kit-components-field-error.metadata.json +1 -1
  161. package/components/filter/taiga-ui-kit-components-filter.metadata.json +1 -1
  162. package/components/input-count/input-count-options.d.ts +10 -4
  163. package/components/input-count/input-count.component.d.ts +3 -3
  164. package/components/input-count/taiga-ui-kit-components-input-count.metadata.json +1 -1
  165. package/components/input-password/input-password-options.d.ts +10 -4
  166. package/components/input-password/input-password.component.d.ts +3 -3
  167. package/components/input-password/taiga-ui-kit-components-input-password.metadata.json +1 -1
  168. package/components/input-range/taiga-ui-kit-components-input-range.metadata.json +1 -1
  169. package/components/input-slider/taiga-ui-kit-components-input-slider.metadata.json +1 -1
  170. package/components/input-tag/index.d.ts +1 -0
  171. package/components/input-tag/input-tag-options.d.ts +7 -0
  172. package/components/input-tag/input-tag.component.d.ts +6 -2
  173. package/components/input-tag/taiga-ui-kit-components-input-tag.metadata.json +1 -1
  174. package/components/input-time/input-time-options.d.ts +10 -4
  175. package/components/input-time/input-time.component.d.ts +6 -6
  176. package/components/input-time/taiga-ui-kit-components-input-time.metadata.json +1 -1
  177. package/components/marker-icon/taiga-ui-kit-components-marker-icon.metadata.json +1 -1
  178. package/components/multi-select/index.d.ts +1 -0
  179. package/components/multi-select/multi-select-options.d.ts +10 -0
  180. package/components/multi-select/multi-select.component.d.ts +11 -7
  181. package/components/multi-select/taiga-ui-kit-components-multi-select.metadata.json +1 -1
  182. package/components/radio/radio-options.d.ts +10 -4
  183. package/components/radio/radio.component.d.ts +2 -2
  184. package/components/radio/taiga-ui-kit-components-radio.metadata.json +1 -1
  185. package/components/radio-block/taiga-ui-kit-components-radio-block.metadata.json +1 -1
  186. package/components/radio-labeled/taiga-ui-kit-components-radio-labeled.metadata.json +1 -1
  187. package/components/radio-list/taiga-ui-kit-components-radio-list.metadata.json +1 -1
  188. package/components/range/taiga-ui-kit-components-range.metadata.json +1 -1
  189. package/components/rating/rating-options.d.ts +2 -1
  190. package/components/rating/taiga-ui-kit-components-rating.metadata.json +1 -1
  191. package/components/select/index.d.ts +1 -0
  192. package/components/select/select-options.d.ts +9 -0
  193. package/components/select/select.component.d.ts +9 -4
  194. package/components/select/taiga-ui-kit-components-select.metadata.json +1 -1
  195. package/components/slider/index.d.ts +1 -0
  196. package/components/slider/slider-old.component.d.ts +19 -0
  197. package/components/slider/slider.component.d.ts +16 -13
  198. package/components/slider/taiga-ui-kit-components-slider.metadata.json +1 -1
  199. package/components/tag/tag.component.d.ts +1 -0
  200. package/components/tag/taiga-ui-kit-components-tag.metadata.json +1 -1
  201. package/components/toggle/taiga-ui-kit-components-toggle.metadata.json +1 -1
  202. package/components/toggle/toggle-options.d.ts +10 -4
  203. package/components/toggle/toggle.component.d.ts +3 -3
  204. package/esm2015/abstract/input-slider.js +2 -2
  205. package/esm2015/abstract/slider/slider.js +2 -2
  206. package/esm2015/components/accordion/accordion-item/accordion-item.component.js +3 -3
  207. package/esm2015/components/arrow/arrow-options.js +13 -2
  208. package/esm2015/components/avatar/avatar.component.js +3 -3
  209. package/esm2015/components/badge/badge.component.js +3 -3
  210. package/esm2015/components/badged-content/badged-content.component.js +3 -3
  211. package/esm2015/components/breadcrumbs/breadcrumbs.component.js +3 -3
  212. package/esm2015/components/carousel/carousel-buttons.directive.js +1 -1
  213. package/esm2015/components/checkbox/checkbox.component.js +3 -3
  214. package/esm2015/components/checkbox-block/checkbox-block.component.js +3 -3
  215. package/esm2015/components/checkbox-labeled/checkbox-labeled.component.js +3 -3
  216. package/esm2015/components/combo-box/combo-box-strict.directive.js +31 -0
  217. package/esm2015/components/combo-box/combo-box.component.js +23 -17
  218. package/esm2015/components/combo-box/combo-box.module.js +13 -3
  219. package/esm2015/components/combo-box/index.js +2 -1
  220. package/esm2015/components/data-list-wrapper/data-list-wrapper.component.js +17 -11
  221. package/esm2015/components/field-error/field-error.component.js +8 -12
  222. package/esm2015/components/field-error/field-error.module.js +6 -2
  223. package/esm2015/components/filter/filter.component.js +3 -3
  224. package/esm2015/components/input-count/input-count-options.js +5 -1
  225. package/esm2015/components/input-count/input-count.component.js +3 -3
  226. package/esm2015/components/input-password/input-password-options.js +5 -1
  227. package/esm2015/components/input-password/input-password.component.js +2 -2
  228. package/esm2015/components/input-range/input-range.component.js +1 -1
  229. package/esm2015/components/input-slider/input-slider.component.js +1 -1
  230. package/esm2015/components/input-tag/index.js +2 -1
  231. package/esm2015/components/input-tag/input-tag-options.js +9 -0
  232. package/esm2015/components/input-tag/input-tag.component.js +29 -13
  233. package/esm2015/components/input-time/input-time-options.js +5 -1
  234. package/esm2015/components/input-time/input-time.component.js +1 -1
  235. package/esm2015/components/marker-icon/marker-icon.component.js +3 -3
  236. package/esm2015/components/multi-select/index.js +2 -1
  237. package/esm2015/components/multi-select/multi-select-options.js +13 -0
  238. package/esm2015/components/multi-select/multi-select.component.js +19 -11
  239. package/esm2015/components/radio/radio-options.js +5 -1
  240. package/esm2015/components/radio/radio.component.js +3 -3
  241. package/esm2015/components/radio-block/radio-block.component.js +3 -3
  242. package/esm2015/components/radio-labeled/radio-labeled.component.js +3 -3
  243. package/esm2015/components/radio-list/radio-list.component.js +3 -3
  244. package/esm2015/components/range/range.component.js +1 -1
  245. package/esm2015/components/rating/rating-options.js +5 -1
  246. package/esm2015/components/select/index.js +2 -1
  247. package/esm2015/components/select/select-options.js +12 -0
  248. package/esm2015/components/select/select.component.js +21 -8
  249. package/esm2015/components/slider/index.js +2 -1
  250. package/esm2015/components/slider/slider-old.component.js +71 -0
  251. package/esm2015/components/slider/slider.component.js +66 -46
  252. package/esm2015/components/slider/slider.module.js +4 -3
  253. package/esm2015/components/tag/tag.component.js +10 -4
  254. package/esm2015/components/toggle/toggle-options.js +5 -1
  255. package/esm2015/components/toggle/toggle.component.js +3 -3
  256. package/esm2015/pipes/field-error/field-error-pipe.js +120 -0
  257. package/esm2015/pipes/field-error/field-error.module.js +13 -0
  258. package/esm2015/pipes/field-error/index.js +3 -0
  259. package/esm2015/pipes/field-error/taiga-ui-kit-pipes-field-error.js +5 -0
  260. package/esm2015/pipes/index.js +2 -1
  261. package/esm2015/tokens/index.js +2 -1
  262. package/esm2015/tokens/items-handlers.js +15 -0
  263. package/esm5/abstract/input-slider.js +2 -2
  264. package/esm5/abstract/slider/slider.js +2 -2
  265. package/esm5/components/accordion/accordion-item/accordion-item.component.js +3 -3
  266. package/esm5/components/arrow/arrow-options.js +14 -2
  267. package/esm5/components/avatar/avatar.component.js +3 -3
  268. package/esm5/components/badge/badge.component.js +3 -3
  269. package/esm5/components/badged-content/badged-content.component.js +3 -3
  270. package/esm5/components/breadcrumbs/breadcrumbs.component.js +3 -3
  271. package/esm5/components/carousel/carousel-buttons.directive.js +1 -1
  272. package/esm5/components/checkbox/checkbox.component.js +3 -3
  273. package/esm5/components/checkbox-block/checkbox-block.component.js +3 -3
  274. package/esm5/components/checkbox-labeled/checkbox-labeled.component.js +3 -3
  275. package/esm5/components/combo-box/combo-box-strict.directive.js +32 -0
  276. package/esm5/components/combo-box/combo-box.component.js +23 -17
  277. package/esm5/components/combo-box/combo-box.module.js +13 -3
  278. package/esm5/components/combo-box/index.js +2 -1
  279. package/esm5/components/data-list-wrapper/data-list-wrapper.component.js +18 -11
  280. package/esm5/components/field-error/field-error.component.js +8 -16
  281. package/esm5/components/field-error/field-error.module.js +6 -2
  282. package/esm5/components/filter/filter.component.js +3 -3
  283. package/esm5/components/input-count/input-count-options.js +6 -1
  284. package/esm5/components/input-count/input-count.component.js +3 -3
  285. package/esm5/components/input-password/input-password-options.js +6 -1
  286. package/esm5/components/input-password/input-password.component.js +2 -2
  287. package/esm5/components/input-range/input-range.component.js +1 -1
  288. package/esm5/components/input-slider/input-slider.component.js +1 -1
  289. package/esm5/components/input-tag/index.js +2 -1
  290. package/esm5/components/input-tag/input-tag-options.js +9 -0
  291. package/esm5/components/input-tag/input-tag.component.js +34 -14
  292. package/esm5/components/input-time/input-time-options.js +6 -1
  293. package/esm5/components/input-time/input-time.component.js +1 -1
  294. package/esm5/components/marker-icon/marker-icon.component.js +3 -3
  295. package/esm5/components/multi-select/index.js +2 -1
  296. package/esm5/components/multi-select/multi-select-options.js +14 -0
  297. package/esm5/components/multi-select/multi-select.component.js +19 -11
  298. package/esm5/components/radio/radio-options.js +6 -1
  299. package/esm5/components/radio/radio.component.js +3 -3
  300. package/esm5/components/radio-block/radio-block.component.js +3 -3
  301. package/esm5/components/radio-labeled/radio-labeled.component.js +3 -3
  302. package/esm5/components/radio-list/radio-list.component.js +3 -3
  303. package/esm5/components/range/range.component.js +1 -1
  304. package/esm5/components/rating/rating-options.js +6 -1
  305. package/esm5/components/select/index.js +2 -1
  306. package/esm5/components/select/select-options.js +13 -0
  307. package/esm5/components/select/select.component.js +21 -8
  308. package/esm5/components/slider/index.js +2 -1
  309. package/esm5/components/slider/slider-old.component.js +90 -0
  310. package/esm5/components/slider/slider.component.js +83 -53
  311. package/esm5/components/slider/slider.module.js +4 -3
  312. package/esm5/components/tag/tag.component.js +10 -4
  313. package/esm5/components/toggle/toggle-options.js +6 -1
  314. package/esm5/components/toggle/toggle.component.js +3 -3
  315. package/esm5/pipes/field-error/field-error-pipe.js +153 -0
  316. package/esm5/pipes/field-error/field-error.module.js +16 -0
  317. package/esm5/pipes/field-error/index.js +3 -0
  318. package/esm5/pipes/field-error/taiga-ui-kit-pipes-field-error.js +5 -0
  319. package/esm5/pipes/index.js +2 -1
  320. package/esm5/tokens/index.js +2 -1
  321. package/esm5/tokens/items-handlers.js +16 -0
  322. package/fesm2015/taiga-ui-kit-abstract.js +2 -2
  323. package/fesm2015/taiga-ui-kit-abstract.js.map +1 -1
  324. package/fesm2015/taiga-ui-kit-components-accordion.js +2 -2
  325. package/fesm2015/taiga-ui-kit-components-accordion.js.map +1 -1
  326. package/fesm2015/taiga-ui-kit-components-arrow.js +13 -2
  327. package/fesm2015/taiga-ui-kit-components-arrow.js.map +1 -1
  328. package/fesm2015/taiga-ui-kit-components-avatar.js +2 -2
  329. package/fesm2015/taiga-ui-kit-components-avatar.js.map +1 -1
  330. package/fesm2015/taiga-ui-kit-components-badge.js +2 -2
  331. package/fesm2015/taiga-ui-kit-components-badge.js.map +1 -1
  332. package/fesm2015/taiga-ui-kit-components-badged-content.js +2 -2
  333. package/fesm2015/taiga-ui-kit-components-badged-content.js.map +1 -1
  334. package/fesm2015/taiga-ui-kit-components-breadcrumbs.js +2 -2
  335. package/fesm2015/taiga-ui-kit-components-breadcrumbs.js.map +1 -1
  336. package/fesm2015/taiga-ui-kit-components-carousel.js.map +1 -1
  337. package/fesm2015/taiga-ui-kit-components-checkbox-block.js +2 -2
  338. package/fesm2015/taiga-ui-kit-components-checkbox-block.js.map +1 -1
  339. package/fesm2015/taiga-ui-kit-components-checkbox-labeled.js +2 -2
  340. package/fesm2015/taiga-ui-kit-components-checkbox-labeled.js.map +1 -1
  341. package/fesm2015/taiga-ui-kit-components-checkbox.js +2 -2
  342. package/fesm2015/taiga-ui-kit-components-checkbox.js.map +1 -1
  343. package/fesm2015/taiga-ui-kit-components-combo-box.js +61 -20
  344. package/fesm2015/taiga-ui-kit-components-combo-box.js.map +1 -1
  345. package/fesm2015/taiga-ui-kit-components-data-list-wrapper.js +16 -10
  346. package/fesm2015/taiga-ui-kit-components-data-list-wrapper.js.map +1 -1
  347. package/fesm2015/taiga-ui-kit-components-field-error.js +12 -13
  348. package/fesm2015/taiga-ui-kit-components-field-error.js.map +1 -1
  349. package/fesm2015/taiga-ui-kit-components-filter.js +2 -2
  350. package/fesm2015/taiga-ui-kit-components-filter.js.map +1 -1
  351. package/fesm2015/taiga-ui-kit-components-input-count.js +7 -3
  352. package/fesm2015/taiga-ui-kit-components-input-count.js.map +1 -1
  353. package/fesm2015/taiga-ui-kit-components-input-password.js +5 -1
  354. package/fesm2015/taiga-ui-kit-components-input-password.js.map +1 -1
  355. package/fesm2015/taiga-ui-kit-components-input-range.js +1 -1
  356. package/fesm2015/taiga-ui-kit-components-input-slider.js +1 -1
  357. package/fesm2015/taiga-ui-kit-components-input-tag.js +37 -14
  358. package/fesm2015/taiga-ui-kit-components-input-tag.js.map +1 -1
  359. package/fesm2015/taiga-ui-kit-components-input-time.js +5 -1
  360. package/fesm2015/taiga-ui-kit-components-input-time.js.map +1 -1
  361. package/fesm2015/taiga-ui-kit-components-marker-icon.js +2 -2
  362. package/fesm2015/taiga-ui-kit-components-marker-icon.js.map +1 -1
  363. package/fesm2015/taiga-ui-kit-components-multi-select.js +31 -12
  364. package/fesm2015/taiga-ui-kit-components-multi-select.js.map +1 -1
  365. package/fesm2015/taiga-ui-kit-components-radio-block.js +2 -2
  366. package/fesm2015/taiga-ui-kit-components-radio-block.js.map +1 -1
  367. package/fesm2015/taiga-ui-kit-components-radio-labeled.js +2 -2
  368. package/fesm2015/taiga-ui-kit-components-radio-labeled.js.map +1 -1
  369. package/fesm2015/taiga-ui-kit-components-radio-list.js +2 -2
  370. package/fesm2015/taiga-ui-kit-components-radio-list.js.map +1 -1
  371. package/fesm2015/taiga-ui-kit-components-radio.js +7 -3
  372. package/fesm2015/taiga-ui-kit-components-radio.js.map +1 -1
  373. package/fesm2015/taiga-ui-kit-components-range.js +1 -1
  374. package/fesm2015/taiga-ui-kit-components-rating.js +5 -1
  375. package/fesm2015/taiga-ui-kit-components-rating.js.map +1 -1
  376. package/fesm2015/taiga-ui-kit-components-select.js +32 -9
  377. package/fesm2015/taiga-ui-kit-components-select.js.map +1 -1
  378. package/fesm2015/taiga-ui-kit-components-slider.js +100 -14
  379. package/fesm2015/taiga-ui-kit-components-slider.js.map +1 -1
  380. package/fesm2015/taiga-ui-kit-components-tag.js +9 -3
  381. package/fesm2015/taiga-ui-kit-components-tag.js.map +1 -1
  382. package/fesm2015/taiga-ui-kit-components-toggle.js +7 -3
  383. package/fesm2015/taiga-ui-kit-components-toggle.js.map +1 -1
  384. package/fesm2015/taiga-ui-kit-pipes-field-error.js +135 -0
  385. package/fesm2015/taiga-ui-kit-pipes-field-error.js.map +1 -0
  386. package/fesm2015/taiga-ui-kit-pipes.js +1 -0
  387. package/fesm2015/taiga-ui-kit-pipes.js.map +1 -1
  388. package/fesm2015/taiga-ui-kit-tokens.js +15 -1
  389. package/fesm2015/taiga-ui-kit-tokens.js.map +1 -1
  390. package/fesm5/taiga-ui-kit-abstract.js +2 -2
  391. package/fesm5/taiga-ui-kit-abstract.js.map +1 -1
  392. package/fesm5/taiga-ui-kit-components-accordion.js +2 -2
  393. package/fesm5/taiga-ui-kit-components-accordion.js.map +1 -1
  394. package/fesm5/taiga-ui-kit-components-arrow.js +14 -3
  395. package/fesm5/taiga-ui-kit-components-arrow.js.map +1 -1
  396. package/fesm5/taiga-ui-kit-components-avatar.js +2 -2
  397. package/fesm5/taiga-ui-kit-components-avatar.js.map +1 -1
  398. package/fesm5/taiga-ui-kit-components-badge.js +2 -2
  399. package/fesm5/taiga-ui-kit-components-badge.js.map +1 -1
  400. package/fesm5/taiga-ui-kit-components-badged-content.js +2 -2
  401. package/fesm5/taiga-ui-kit-components-badged-content.js.map +1 -1
  402. package/fesm5/taiga-ui-kit-components-breadcrumbs.js +2 -2
  403. package/fesm5/taiga-ui-kit-components-breadcrumbs.js.map +1 -1
  404. package/fesm5/taiga-ui-kit-components-carousel.js.map +1 -1
  405. package/fesm5/taiga-ui-kit-components-checkbox-block.js +2 -2
  406. package/fesm5/taiga-ui-kit-components-checkbox-block.js.map +1 -1
  407. package/fesm5/taiga-ui-kit-components-checkbox-labeled.js +2 -2
  408. package/fesm5/taiga-ui-kit-components-checkbox-labeled.js.map +1 -1
  409. package/fesm5/taiga-ui-kit-components-checkbox.js +2 -2
  410. package/fesm5/taiga-ui-kit-components-checkbox.js.map +1 -1
  411. package/fesm5/taiga-ui-kit-components-combo-box.js +62 -20
  412. package/fesm5/taiga-ui-kit-components-combo-box.js.map +1 -1
  413. package/fesm5/taiga-ui-kit-components-data-list-wrapper.js +17 -10
  414. package/fesm5/taiga-ui-kit-components-data-list-wrapper.js.map +1 -1
  415. package/fesm5/taiga-ui-kit-components-field-error.js +12 -17
  416. package/fesm5/taiga-ui-kit-components-field-error.js.map +1 -1
  417. package/fesm5/taiga-ui-kit-components-filter.js +2 -2
  418. package/fesm5/taiga-ui-kit-components-filter.js.map +1 -1
  419. package/fesm5/taiga-ui-kit-components-input-count.js +8 -4
  420. package/fesm5/taiga-ui-kit-components-input-count.js.map +1 -1
  421. package/fesm5/taiga-ui-kit-components-input-password.js +6 -2
  422. package/fesm5/taiga-ui-kit-components-input-password.js.map +1 -1
  423. package/fesm5/taiga-ui-kit-components-input-range.js +1 -1
  424. package/fesm5/taiga-ui-kit-components-input-slider.js +1 -1
  425. package/fesm5/taiga-ui-kit-components-input-tag.js +42 -15
  426. package/fesm5/taiga-ui-kit-components-input-tag.js.map +1 -1
  427. package/fesm5/taiga-ui-kit-components-input-time.js +6 -2
  428. package/fesm5/taiga-ui-kit-components-input-time.js.map +1 -1
  429. package/fesm5/taiga-ui-kit-components-marker-icon.js +2 -2
  430. package/fesm5/taiga-ui-kit-components-marker-icon.js.map +1 -1
  431. package/fesm5/taiga-ui-kit-components-multi-select.js +32 -13
  432. package/fesm5/taiga-ui-kit-components-multi-select.js.map +1 -1
  433. package/fesm5/taiga-ui-kit-components-radio-block.js +2 -2
  434. package/fesm5/taiga-ui-kit-components-radio-block.js.map +1 -1
  435. package/fesm5/taiga-ui-kit-components-radio-labeled.js +2 -2
  436. package/fesm5/taiga-ui-kit-components-radio-labeled.js.map +1 -1
  437. package/fesm5/taiga-ui-kit-components-radio-list.js +2 -2
  438. package/fesm5/taiga-ui-kit-components-radio-list.js.map +1 -1
  439. package/fesm5/taiga-ui-kit-components-radio.js +8 -4
  440. package/fesm5/taiga-ui-kit-components-radio.js.map +1 -1
  441. package/fesm5/taiga-ui-kit-components-range.js +1 -1
  442. package/fesm5/taiga-ui-kit-components-rating.js +6 -2
  443. package/fesm5/taiga-ui-kit-components-rating.js.map +1 -1
  444. package/fesm5/taiga-ui-kit-components-select.js +33 -10
  445. package/fesm5/taiga-ui-kit-components-select.js.map +1 -1
  446. package/fesm5/taiga-ui-kit-components-slider.js +141 -26
  447. package/fesm5/taiga-ui-kit-components-slider.js.map +1 -1
  448. package/fesm5/taiga-ui-kit-components-tag.js +9 -3
  449. package/fesm5/taiga-ui-kit-components-tag.js.map +1 -1
  450. package/fesm5/taiga-ui-kit-components-toggle.js +8 -4
  451. package/fesm5/taiga-ui-kit-components-toggle.js.map +1 -1
  452. package/fesm5/taiga-ui-kit-pipes-field-error.js +171 -0
  453. package/fesm5/taiga-ui-kit-pipes-field-error.js.map +1 -0
  454. package/fesm5/taiga-ui-kit-pipes.js +1 -0
  455. package/fesm5/taiga-ui-kit-pipes.js.map +1 -1
  456. package/fesm5/taiga-ui-kit-tokens.js +16 -1
  457. package/fesm5/taiga-ui-kit-tokens.js.map +1 -1
  458. package/package.json +4 -4
  459. package/pipes/field-error/field-error-pipe.d.ts +29 -0
  460. package/pipes/field-error/field-error.module.d.ts +2 -0
  461. package/pipes/field-error/index.d.ts +2 -0
  462. package/pipes/field-error/package.json +13 -0
  463. package/pipes/field-error/taiga-ui-kit-pipes-field-error.d.ts +4 -0
  464. package/pipes/field-error/taiga-ui-kit-pipes-field-error.metadata.json +1 -0
  465. package/pipes/index.d.ts +1 -0
  466. package/pipes/taiga-ui-kit-pipes.metadata.json +1 -1
  467. package/tokens/index.d.ts +1 -0
  468. package/tokens/items-handlers.d.ts +10 -0
  469. package/tokens/taiga-ui-kit-tokens.metadata.json +1 -1
@@ -1,9 +1,10 @@
1
1
  import { __decorate, __param } from 'tslib';
2
- import { forwardRef, Optional, Self, Inject, ChangeDetectorRef, ViewChild, Input, ContentChild, TemplateRef, Component, ChangeDetectionStrategy, Directive, NgModule } from '@angular/core';
2
+ import { forwardRef, InjectionToken, Optional, Self, Inject, ChangeDetectorRef, ViewChild, Input, ContentChild, TemplateRef, Component, ChangeDetectionStrategy, Directive, NgModule } from '@angular/core';
3
3
  import { NgControl } from '@angular/forms';
4
- import { AbstractTuiControl, TUI_FOCUSABLE_ITEM_ACCESSOR, AbstractTuiNullableControl, TUI_DEFAULT_IDENTITY_MATCHER, isNativeFocused, setNativeFocused, tuiDefaultProp, tuiPure, TuiActiveZoneModule } from '@taiga-ui/cdk';
4
+ import { AbstractTuiControl, TUI_FOCUSABLE_ITEM_ACCESSOR, AbstractTuiNullableControl, isNativeFocused, setNativeFocused, tuiDefaultProp, tuiPure, TuiActiveZoneModule } from '@taiga-ui/cdk';
5
5
  import { TUI_DATA_LIST_HOST, TUI_OPTION_CONTENT, TuiTextfieldCleanerDirective, TUI_TEXTFIELD_CLEANER, TuiPrimitiveTextfieldComponent, TuiHostedDropdownComponent, TuiDataListDirective, TuiAbstractTextfieldHost, TUI_TEXTFIELD_HOST, TuiPrimitiveTextfieldModule, TuiHostedDropdownModule, TuiTextfieldComponent } from '@taiga-ui/core';
6
6
  import { TUI_ARROW_MODE, TuiArrowModule } from '@taiga-ui/kit/components/arrow';
7
+ import { TUI_ITEMS_HANDLERS } from '@taiga-ui/kit/tokens';
7
8
  import { TUI_SELECT_OPTION, TuiSelectOptionModule } from '@taiga-ui/kit/components/select-option';
8
9
  import { FIXED_DROPDOWN_CONTROLLER_PROVIDER } from '@taiga-ui/kit/providers';
9
10
  import { CommonModule } from '@angular/common';
@@ -31,13 +32,27 @@ const TUI_SELECT_PROVIDERS = [
31
32
  FIXED_DROPDOWN_CONTROLLER_PROVIDER,
32
33
  ];
33
34
 
35
+ const TUI_SELECT_DEFAULT_OPTIONS = {
36
+ valueContent: '',
37
+ };
38
+ const TUI_SELECT_OPTIONS = new InjectionToken('Default parameters for select component', {
39
+ factory: () => TUI_SELECT_DEFAULT_OPTIONS,
40
+ });
41
+ const tuiSelectOptionsProvider = (options) => ({
42
+ provide: TUI_SELECT_OPTIONS,
43
+ useValue: Object.assign(Object.assign({}, TUI_SELECT_DEFAULT_OPTIONS), options),
44
+ });
45
+
34
46
  let TuiSelectComponent = class TuiSelectComponent extends AbstractTuiNullableControl {
35
- constructor(control, changeDetectorRef, textfieldCleaner, arrowMode) {
47
+ constructor(control, changeDetectorRef, textfieldCleaner, arrowMode, itemsHandlers, options) {
36
48
  super(control, changeDetectorRef);
37
49
  this.textfieldCleaner = textfieldCleaner;
38
50
  this.arrowMode = arrowMode;
39
- this.identityMatcher = TUI_DEFAULT_IDENTITY_MATCHER;
40
- this.valueContent = '';
51
+ this.itemsHandlers = itemsHandlers;
52
+ this.options = options;
53
+ this.stringify = this.itemsHandlers.stringify;
54
+ this.identityMatcher = this.itemsHandlers.identityMatcher;
55
+ this.valueContent = this.options.valueContent;
41
56
  this.datalist = '';
42
57
  }
43
58
  get arrow() {
@@ -51,7 +66,7 @@ let TuiSelectComponent = class TuiSelectComponent extends AbstractTuiNullableCon
51
66
  (!!this.hostedDropdown && this.hostedDropdown.focused));
52
67
  }
53
68
  get computedValue() {
54
- return this.value === null ? '' : String(this.value) || ' ';
69
+ return this.value === null ? '' : this.stringify(this.value) || ' ';
55
70
  }
56
71
  get computedContent() {
57
72
  return this.valueContent || this.computedValue;
@@ -91,7 +106,9 @@ TuiSelectComponent.ctorParameters = () => [
91
106
  { type: NgControl, decorators: [{ type: Optional }, { type: Self }, { type: Inject, args: [NgControl,] }] },
92
107
  { type: ChangeDetectorRef, decorators: [{ type: Inject, args: [ChangeDetectorRef,] }] },
93
108
  { type: TuiTextfieldCleanerDirective, decorators: [{ type: Inject, args: [TUI_TEXTFIELD_CLEANER,] }] },
94
- { type: undefined, decorators: [{ type: Inject, args: [TUI_ARROW_MODE,] }] }
109
+ { type: undefined, decorators: [{ type: Inject, args: [TUI_ARROW_MODE,] }] },
110
+ { type: undefined, decorators: [{ type: Inject, args: [TUI_ITEMS_HANDLERS,] }] },
111
+ { type: undefined, decorators: [{ type: Inject, args: [TUI_SELECT_OPTIONS,] }] }
95
112
  ];
96
113
  __decorate([
97
114
  ViewChild(TuiPrimitiveTextfieldComponent)
@@ -99,6 +116,10 @@ __decorate([
99
116
  __decorate([
100
117
  ViewChild(TuiHostedDropdownComponent)
101
118
  ], TuiSelectComponent.prototype, "hostedDropdown", void 0);
119
+ __decorate([
120
+ Input(),
121
+ tuiDefaultProp()
122
+ ], TuiSelectComponent.prototype, "stringify", void 0);
102
123
  __decorate([
103
124
  Input(),
104
125
  tuiDefaultProp()
@@ -126,7 +147,9 @@ TuiSelectComponent = __decorate([
126
147
  __param(0, Inject(NgControl)),
127
148
  __param(1, Inject(ChangeDetectorRef)),
128
149
  __param(2, Inject(TUI_TEXTFIELD_CLEANER)),
129
- __param(3, Inject(TUI_ARROW_MODE))
150
+ __param(3, Inject(TUI_ARROW_MODE)),
151
+ __param(4, Inject(TUI_ITEMS_HANDLERS)),
152
+ __param(5, Inject(TUI_SELECT_OPTIONS))
130
153
  ], TuiSelectComponent);
131
154
 
132
155
  var TuiSelectDirective_1;
@@ -175,5 +198,5 @@ TuiSelectModule = __decorate([
175
198
  * Generated bundle index. Do not edit.
176
199
  */
177
200
 
178
- export { SELECT_OPTION, TUI_SELECT_PROVIDERS, TuiSelectComponent, TuiSelectDirective, TuiSelectModule };
201
+ export { SELECT_OPTION, TUI_SELECT_DEFAULT_OPTIONS, TUI_SELECT_OPTIONS, TUI_SELECT_PROVIDERS, TuiSelectComponent, TuiSelectDirective, TuiSelectModule, tuiSelectOptionsProvider };
179
202
  //# sourceMappingURL=taiga-ui-kit-components-select.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-kit-components-select.js","sources":["ng://@taiga-ui/kit/components/select/select.providers.ts","ng://@taiga-ui/kit/components/select/select.component.ts","ng://@taiga-ui/kit/components/select/select.directive.ts","ng://@taiga-ui/kit/components/select/select.module.ts","ng://@taiga-ui/kit/components/select/taiga-ui-kit-components-select.ts"],"sourcesContent":["import {forwardRef} from '@angular/core';\nimport {AbstractTuiControl, TUI_FOCUSABLE_ITEM_ACCESSOR} from '@taiga-ui/cdk';\nimport {TUI_DATA_LIST_HOST, TUI_OPTION_CONTENT} from '@taiga-ui/core';\nimport {TUI_SELECT_OPTION} from '@taiga-ui/kit/components/select-option';\nimport {FIXED_DROPDOWN_CONTROLLER_PROVIDER} from '@taiga-ui/kit/providers';\n\nimport {TuiSelectComponent} from './select.component';\n\n// TODO: remove in ivy compilation\nexport const SELECT_OPTION: unknown = TUI_SELECT_OPTION;\n\nexport const TUI_SELECT_PROVIDERS = [\n {\n provide: AbstractTuiControl,\n useExisting: forwardRef(() => TuiSelectComponent),\n },\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","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\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 tuiDefaultProp,\n TuiFocusableElementAccessor,\n TuiIdentityMatcher,\n tuiPure,\n} from '@taiga-ui/cdk';\nimport {\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 {PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\n\nimport {TUI_SELECT_PROVIDERS} from './select.providers';\n\n@Component({\n selector: 'tui-select',\n templateUrl: './select.template.html',\n styleUrls: ['./select.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: TUI_SELECT_PROVIDERS,\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 {Directive, forwardRef} from '@angular/core';\nimport {TUI_TEXTFIELD_HOST, TuiAbstractTextfieldHost} from '@taiga-ui/core';\n\nimport {TuiSelectComponent} from './select.component';\n\n@Directive({\n selector: 'tui-select',\n providers: [\n {\n provide: TUI_TEXTFIELD_HOST,\n useExisting: forwardRef(() => TuiSelectDirective),\n },\n ],\n})\nexport class TuiSelectDirective extends TuiAbstractTextfieldHost<\n TuiSelectComponent<unknown>\n> {\n get readOnly(): boolean {\n return true;\n }\n\n get value(): string {\n return this.host.computedValue;\n }\n\n onValueChange(value: string) {\n this.host.onValueChange(value);\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {TuiActiveZoneModule} from '@taiga-ui/cdk';\nimport {\n TuiHostedDropdownModule,\n TuiPrimitiveTextfieldModule,\n TuiTextfieldComponent,\n} 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';\nimport {TuiSelectDirective} from './select.directive';\n\n@NgModule({\n imports: [\n CommonModule,\n PolymorpheusModule,\n TuiActiveZoneModule,\n TuiPrimitiveTextfieldModule,\n TuiHostedDropdownModule,\n TuiSelectOptionModule,\n TuiArrowModule,\n ],\n declarations: [TuiSelectComponent, TuiSelectDirective],\n exports: [TuiSelectComponent, TuiSelectDirective, TuiTextfieldComponent],\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.providers.ts","ng://@taiga-ui/kit/components/select/select-options.ts","ng://@taiga-ui/kit/components/select/select.component.ts","ng://@taiga-ui/kit/components/select/select.directive.ts","ng://@taiga-ui/kit/components/select/select.module.ts","ng://@taiga-ui/kit/components/select/taiga-ui-kit-components-select.ts"],"sourcesContent":["import {forwardRef} from '@angular/core';\nimport {AbstractTuiControl, TUI_FOCUSABLE_ITEM_ACCESSOR} from '@taiga-ui/cdk';\nimport {TUI_DATA_LIST_HOST, TUI_OPTION_CONTENT} from '@taiga-ui/core';\nimport {TUI_SELECT_OPTION} from '@taiga-ui/kit/components/select-option';\nimport {FIXED_DROPDOWN_CONTROLLER_PROVIDER} from '@taiga-ui/kit/providers';\n\nimport {TuiSelectComponent} from './select.component';\n\n// TODO: remove in ivy compilation\nexport const SELECT_OPTION: unknown = TUI_SELECT_OPTION;\n\nexport const TUI_SELECT_PROVIDERS = [\n {\n provide: AbstractTuiControl,\n useExisting: forwardRef(() => TuiSelectComponent),\n },\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","import {InjectionToken, ValueProvider} from '@angular/core';\nimport {TuiValueContentContext} from '@taiga-ui/core';\nimport {PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\n\nexport interface TuiSelectOptions<T> {\n readonly valueContent: PolymorpheusContent<TuiValueContentContext<T>>;\n}\n\nexport const TUI_SELECT_DEFAULT_OPTIONS: TuiSelectOptions<unknown> = {\n valueContent: '',\n};\n\nexport const TUI_SELECT_OPTIONS = new InjectionToken<TuiSelectOptions<unknown>>(\n 'Default parameters for select component',\n {\n factory: () => TUI_SELECT_DEFAULT_OPTIONS,\n },\n);\n\nexport const tuiSelectOptionsProvider: <T>(\n options: Partial<TuiSelectOptions<T>>,\n) => ValueProvider = <T>(options: Partial<TuiSelectOptions<T>>) => ({\n provide: TUI_SELECT_OPTIONS,\n useValue: {...TUI_SELECT_DEFAULT_OPTIONS, ...options},\n});\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\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 tuiDefaultProp,\n TuiFocusableElementAccessor,\n tuiPure,\n} from '@taiga-ui/cdk';\nimport {\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_ITEMS_HANDLERS, TuiItemsHandlers} from '@taiga-ui/kit/tokens';\nimport {PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\n\nimport {TUI_SELECT_PROVIDERS} from './select.providers';\nimport {TUI_SELECT_OPTIONS, TuiSelectOptions} from './select-options';\n\n@Component({\n selector: 'tui-select',\n templateUrl: './select.template.html',\n styleUrls: ['./select.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: TUI_SELECT_PROVIDERS,\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 stringify: TuiItemsHandlers<T>['stringify'] = this.itemsHandlers.stringify;\n\n @Input()\n @tuiDefaultProp()\n identityMatcher: TuiItemsHandlers<T>['identityMatcher'] =\n this.itemsHandlers.identityMatcher;\n\n @Input()\n @tuiDefaultProp()\n valueContent: TuiSelectOptions<T>['valueContent'] = this.options.valueContent;\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 @Inject(TUI_ITEMS_HANDLERS)\n private readonly itemsHandlers: TuiItemsHandlers<T>,\n @Inject(TUI_SELECT_OPTIONS)\n private readonly options: TuiSelectOptions<T>,\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 ? '' : this.stringify(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 {Directive, forwardRef} from '@angular/core';\nimport {TUI_TEXTFIELD_HOST, TuiAbstractTextfieldHost} from '@taiga-ui/core';\n\nimport {TuiSelectComponent} from './select.component';\n\n@Directive({\n selector: 'tui-select',\n providers: [\n {\n provide: TUI_TEXTFIELD_HOST,\n useExisting: forwardRef(() => TuiSelectDirective),\n },\n ],\n})\nexport class TuiSelectDirective extends TuiAbstractTextfieldHost<\n TuiSelectComponent<unknown>\n> {\n get readOnly(): boolean {\n return true;\n }\n\n get value(): string {\n return this.host.computedValue;\n }\n\n onValueChange(value: string) {\n this.host.onValueChange(value);\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {TuiActiveZoneModule} from '@taiga-ui/cdk';\nimport {\n TuiHostedDropdownModule,\n TuiPrimitiveTextfieldModule,\n TuiTextfieldComponent,\n} 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';\nimport {TuiSelectDirective} from './select.directive';\n\n@NgModule({\n imports: [\n CommonModule,\n PolymorpheusModule,\n TuiActiveZoneModule,\n TuiPrimitiveTextfieldModule,\n TuiHostedDropdownModule,\n TuiSelectOptionModule,\n TuiArrowModule,\n ],\n declarations: [TuiSelectComponent, TuiSelectDirective],\n exports: [TuiSelectComponent, TuiSelectDirective, TuiTextfieldComponent],\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,16 +1,102 @@
1
1
  import { __decorate, __param } from 'tslib';
2
+ import { Optional, Self, Inject, ElementRef, Input, HostBinding, Component, ChangeDetectionStrategy, ChangeDetectorRef, forwardRef, NgModule } from '@angular/core';
3
+ import { NgModel, NgControl } from '@angular/forms';
4
+ import { USER_AGENT } from '@ng-web-apis/common';
5
+ import { isEdgeOlderThan, CHROMIUM_EDGE_START_VERSION, tuiDefaultProp, isNativeFocused, TUI_FOCUSABLE_ITEM_ACCESSOR, TuiRepeatTimesModule, TuiFocusableModule, TuiFocusVisibleModule, TuiActiveZoneModule } from '@taiga-ui/cdk';
2
6
  import { DOCUMENT, CommonModule } from '@angular/common';
3
- import { Optional, Self, Inject, ChangeDetectorRef, Component, ChangeDetectionStrategy, forwardRef, NgModule } from '@angular/core';
4
- import { NgControl } from '@angular/forms';
5
- import { isNativeFocused, TUI_FOCUSABLE_ITEM_ACCESSOR, TuiRepeatTimesModule, TuiFocusableModule, TuiFocusVisibleModule, TuiActiveZoneModule } from '@taiga-ui/cdk';
7
+ import { TuiFormatNumberPipeModule } from '@taiga-ui/core';
6
8
  import { AbstractTuiSlider } from '@taiga-ui/kit/abstract';
7
9
  import { TUI_FROM_TO_TEXTS } from '@taiga-ui/kit/tokens';
8
10
  import { Observable } from 'rxjs';
9
- import { TuiFormatNumberPipeModule } from '@taiga-ui/core';
10
11
 
11
- var TuiSliderComponent_1;
12
+ let TuiSliderComponent = class TuiSliderComponent {
13
+ constructor(control, elementRef, userAgent) {
14
+ this.control = control;
15
+ this.elementRef = elementRef;
16
+ this.userAgent = userAgent;
17
+ this.size = 'm';
18
+ this.segments = 1;
19
+ }
20
+ get min() {
21
+ return Number(this.elementRef.nativeElement.min);
22
+ }
23
+ get max() {
24
+ return Number(this.elementRef.nativeElement.max) || 100;
25
+ }
26
+ get step() {
27
+ return Number(this.elementRef.nativeElement.step) || 1;
28
+ }
29
+ get fillPercentage() {
30
+ const percentage = Math.floor((100 * this.value) / (this.max - this.min));
31
+ return `${percentage}%`;
32
+ }
33
+ get stepPercentage() {
34
+ const percentage = 100 / this.segments - 0.1;
35
+ return `${percentage}%`;
36
+ }
37
+ get isOldEdge() {
38
+ return isEdgeOlderThan(CHROMIUM_EDGE_START_VERSION, this.userAgent);
39
+ }
40
+ get value() {
41
+ const { control } = this;
42
+ const controlValue = control instanceof NgModel ? control.viewModel : control === null || control === void 0 ? void 0 : control.value;
43
+ return controlValue || Number(this.elementRef.nativeElement.value) || 0;
44
+ }
45
+ };
46
+ TuiSliderComponent.ctorParameters = () => [
47
+ { type: NgControl, decorators: [{ type: Optional }, { type: Self }, { type: Inject, args: [NgControl,] }] },
48
+ { type: ElementRef, decorators: [{ type: Inject, args: [ElementRef,] }] },
49
+ { type: String, decorators: [{ type: Inject, args: [USER_AGENT,] }] }
50
+ ];
51
+ __decorate([
52
+ Input(),
53
+ HostBinding('attr.data-size'),
54
+ tuiDefaultProp()
55
+ ], TuiSliderComponent.prototype, "size", void 0);
56
+ __decorate([
57
+ Input(),
58
+ tuiDefaultProp()
59
+ ], TuiSliderComponent.prototype, "segments", void 0);
60
+ __decorate([
61
+ HostBinding('style.--tui-slider-fill-percentage')
62
+ ], TuiSliderComponent.prototype, "fillPercentage", null);
63
+ __decorate([
64
+ HostBinding('style.--tui-slider-segment-width')
65
+ ], TuiSliderComponent.prototype, "stepPercentage", null);
66
+ __decorate([
67
+ HostBinding('class._old-edge')
68
+ ], TuiSliderComponent.prototype, "isOldEdge", null);
69
+ TuiSliderComponent = __decorate([
70
+ Component({
71
+ selector: 'input[tuiSlider]',
72
+ template: ``,
73
+ host: {
74
+ type: 'range',
75
+ /**
76
+ * For change detection.
77
+ * Webkit does not have built-in method for customization of filling progress (as Firefox).
78
+ * We draw filling of progress by `background: linear-gradient(...)` of the track.
79
+ * This function triggers change detection (for `fillPercentage` function) when we drag thumb of the input.
80
+ */
81
+ '(input)': '0',
82
+ },
83
+ changeDetection: ChangeDetectionStrategy.OnPush,
84
+ styles: [":host{display:block;width:100%;color:var(--tui-primary);cursor:pointer}:host:disabled{opacity:var(--tui-disabled-opacity);cursor:auto}:host:not(._old-edge){-webkit-appearance:none;-moz-appearance:none;appearance:none;height:.125rem;padding:.4375rem 0;background:var(--tui-base-03);background-clip:content-box;outline:0}:host:not(._old-edge)::-webkit-slider-runnable-track{height:.125rem;border-radius:var(--tui-radius-m);background:linear-gradient(to right,currentColor 0 .25rem,transparent .25rem),linear-gradient(to left,var(--tui-base-03) 0 .25rem,transparent .25rem),repeating-linear-gradient(to right,var(--tui-base-07) 0 .25rem,transparent .25rem var(--tui-slider-segment-width)),linear-gradient(to right,currentColor var(--tui-slider-fill-percentage),transparent var(--tui-slider-fill-percentage))}:host:not(._old-edge)::-moz-range-track{height:.125rem;border-radius:var(--tui-radius-m);background:linear-gradient(to right,currentColor 0 .25rem,transparent .25rem),linear-gradient(to left,var(--tui-base-03) 0 .25rem,transparent .25rem),repeating-linear-gradient(to right,var(--tui-base-07) 0 .25rem,transparent .25rem var(--tui-slider-segment-width))}:host:not(._old-edge)[data-size='m']::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;background-color:currentColor;border:none;border-radius:50%;height:1rem;width:1rem;margin-top:-.4375rem}:not(:disabled):host:not(._old-edge)[data-size='m']::-webkit-slider-thumb{cursor:ew-resize}:focus-visible:host:not(._old-edge)[data-size='m']::-webkit-slider-thumb{box-shadow:0 0 0 2px inset var(--tui-focus)}:host:not(._old-edge)[data-size='s']::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;background-color:currentColor;border:none;border-radius:50%;height:.5rem;width:.5rem;margin-top:-.1875rem}:not(:disabled):host:not(._old-edge)[data-size='s']::-webkit-slider-thumb{cursor:ew-resize}:focus-visible:host:not(._old-edge)[data-size='s']::-webkit-slider-thumb{box-shadow:0 0 0 2px inset var(--tui-focus)}:host:not(._old-edge)[data-size='m']::-moz-range-thumb{-moz-appearance:none;appearance:none;background-color:currentColor;border:none;border-radius:50%;height:1rem;width:1rem}:not(:disabled):host:not(._old-edge)[data-size='m']::-moz-range-thumb{cursor:ew-resize}:focus-visible:host:not(._old-edge)[data-size='m']::-moz-range-thumb{box-shadow:0 0 0 2px inset var(--tui-focus)}:host:not(._old-edge)[data-size='s']::-moz-range-thumb{-moz-appearance:none;appearance:none;background-color:currentColor;border:none;border-radius:50%;height:.5rem;width:.5rem}:not(:disabled):host:not(._old-edge)[data-size='s']::-moz-range-thumb{cursor:ew-resize}:focus-visible:host:not(._old-edge)[data-size='s']::-moz-range-thumb{box-shadow:0 0 0 2px inset var(--tui-focus)}:host:not(._old-edge)::-moz-range-progress{background:currentColor}:host._old-edge::-ms-thumb{background:currentColor}:host._old-edge::-ms-fill-lower{background:currentColor}:host._old-edge::-ms-track{background:var(--tui-base-03)}"]
85
+ }),
86
+ __param(0, Optional()),
87
+ __param(0, Self()),
88
+ __param(0, Inject(NgControl)),
89
+ __param(1, Inject(ElementRef)),
90
+ __param(2, Inject(USER_AGENT))
91
+ ], TuiSliderComponent);
92
+
93
+ var TuiSliderOldComponent_1;
94
+ /**
95
+ * @deprecated use {@link TuiSliderComponent} instead
96
+ * TODO remove in 3.0
97
+ */
12
98
  // @dynamic
13
- let TuiSliderComponent = TuiSliderComponent_1 = class TuiSliderComponent extends AbstractTuiSlider {
99
+ let TuiSliderOldComponent = TuiSliderOldComponent_1 = class TuiSliderOldComponent extends AbstractTuiSlider {
14
100
  constructor(control, changeDetectorRef, documentRef, fromToTexts$) {
15
101
  super(control, changeDetectorRef, documentRef, fromToTexts$);
16
102
  }
@@ -39,13 +125,13 @@ let TuiSliderComponent = TuiSliderComponent_1 = class TuiSliderComponent extends
39
125
  this.updateValue(this.valueGuard(value));
40
126
  }
41
127
  };
42
- TuiSliderComponent.ctorParameters = () => [
128
+ TuiSliderOldComponent.ctorParameters = () => [
43
129
  { type: NgControl, decorators: [{ type: Optional }, { type: Self }, { type: Inject, args: [NgControl,] }] },
44
130
  { type: ChangeDetectorRef, decorators: [{ type: Inject, args: [ChangeDetectorRef,] }] },
45
131
  { type: Document, decorators: [{ type: Inject, args: [DOCUMENT,] }] },
46
132
  { type: Observable, decorators: [{ type: Inject, args: [TUI_FROM_TO_TEXTS,] }] }
47
133
  ];
48
- TuiSliderComponent = TuiSliderComponent_1 = __decorate([
134
+ TuiSliderOldComponent = TuiSliderOldComponent_1 = __decorate([
49
135
  Component({
50
136
  selector: 'tui-slider',
51
137
  template: "<div\n class=\"event-catcher\"\n (tuiActiveZoneChange)=\"onActiveZone($event)\"\n (mousedown)=\"onMouseDown($event)\"\n (touchstart)=\"onTouchStart($event)\"\n>\n <div class=\"wrapper\">\n <div *ngIf=\"segmented\" class=\"segments\">\n <span\n *tuiRepeatTimes=\"let segmentIndex of segments + 1\"\n automation-id=\"tui-slider__segment\"\n class=\"segment\"\n >\n <span *ngIf=\"fromToTexts$ | async as fromToText\" class=\"number\">\n {{ getSegmentPrefix(segmentIndex, fromToText) }} {{\n getSegmentLabel(segmentIndex) | tuiFormatNumber }}\n <span *ngIf=\"pluralizeMap\">\n {{ getSegmentLabel(segmentIndex) | i18nPlural:\n pluralizeMap }}\n </span>\n </span>\n </span>\n </div>\n <div\n automation-id=\"tui-slider__bar\"\n class=\"bar\"\n [style.left.%]=\"left\"\n [style.right.%]=\"right\"\n >\n <div\n #dotLeft\n automation-id=\"tui-slider__left\"\n class=\"dot\"\n [class.dot_focus-visible]=\"focusVisibleLeft && computedFocused\"\n [tuiFocusable]=\"isLeftFocusable\"\n (tuiFocusVisibleChange)=\"onLeftFocusVisible($event)\"\n (keydown.arrowLeft.prevent)=\"decrement(false)\"\n (keydown.arrowDown.prevent)=\"decrement(false)\"\n (keydown.arrowRight.prevent)=\"increment(false)\"\n (keydown.arrowUp.prevent)=\"increment(false)\"\n ></div>\n <div\n #dotRight\n automation-id=\"tui-slider__right\"\n class=\"dot\"\n [class.dot_focus-visible]=\"focusVisibleRight && computedFocused\"\n [tuiFocusable]=\"isRightFocusable\"\n (tuiFocusVisibleChange)=\"onRightFocusVisible($event)\"\n (keydown.arrowLeft.prevent)=\"decrement(true)\"\n (keydown.arrowDown.prevent)=\"decrement(true)\"\n (keydown.arrowRight.prevent)=\"increment(true)\"\n (keydown.arrowUp.prevent)=\"increment(true)\"\n ></div>\n </div>\n </div>\n</div>\n",
@@ -53,10 +139,10 @@ TuiSliderComponent = TuiSliderComponent_1 = __decorate([
53
139
  providers: [
54
140
  {
55
141
  provide: TUI_FOCUSABLE_ITEM_ACCESSOR,
56
- useExisting: forwardRef(() => TuiSliderComponent_1),
142
+ useExisting: forwardRef(() => TuiSliderOldComponent_1),
57
143
  },
58
144
  ],
59
- styles: [":host{display:block;border-radius:var(--tui-radius-m);color:var(--tui-base-03);min-height:.125rem;font-size:1rem}:host[data-tui-host-size='s']{min-height:.125rem;font-size:.5rem}:host._segmented{padding-bottom:1.25rem}:host._disabled{cursor:default;pointer-events:none;opacity:var(--tui-disabled-opacity)}.event-catcher{min-height:inherit;border-radius:inherit;padding:.4375rem 0;cursor:pointer}.wrapper{position:relative;min-height:inherit;border-radius:inherit;background-color:currentColor;border:solid transparent;border-width:0 1em}.bar{position:absolute;top:0;bottom:0;margin:0 -1em;border-radius:inherit;background-color:var(--tui-primary)}:host-context(tui-input-slider) .bar{margin-left:calc(var(--tui-radius-m)/ 2);border-bottom-left-radius:calc(var(--tui-radius-m) * 5) calc(var(--tui-radius-m) * 1.5)}.dot{transition-property:background-color;transition-duration:var(--tui-duration,300ms);transition-timing-function:ease-in-out;position:absolute;top:50%;z-index:1;width:1em;height:1em;transform:translate(0,-50%);border-radius:100%;background-color:var(--tui-primary);outline:0;cursor:ew-resize}.dot:last-child{right:0;transform:translate(0,-50%)}.dot:hover{background-color:var(--tui-primary-hover)}.dot:active{background-color:var(--tui-primary-active)}.dot_focus-visible{box-shadow:inset 0 0 0 2px var(--tui-focus)}.segments{position:relative;z-index:1;display:flex;justify-content:space-between;min-height:inherit;margin:0 -1em}.segments-spacer{height:1.625rem}.segment{position:relative;height:inherit;width:.25rem;background-color:rgba(0,0,0,.36);pointer-events:none}.segment:first-of-type,.segment:last-of-type{background-color:transparent}.number{position:absolute;left:50%;transform:translate(-50%,0);top:100%;font:var(--tui-font-text-s);margin-top:.5rem;color:var(--tui-text-02);white-space:nowrap}.segment:first-of-type .number{left:-.05em;transform:none}.segment:last-of-type .number{left:auto;right:-.05em;transform:none}:host._disabled .number{color:var(--tui-text-01)}", ".dot:first-child{display:none}.wrapper{border-left:none}.bar,.segments{margin-left:0}"]
145
+ styles: [":host{display:block;border-radius:var(--tui-radius-m);color:var(--tui-base-03);min-height:.125rem;font-size:1rem}:host[data-size='s']{min-height:.125rem;font-size:.5rem}:host._segmented{padding-bottom:1.25rem}:host._disabled{cursor:default;pointer-events:none;opacity:var(--tui-disabled-opacity)}.event-catcher{min-height:inherit;border-radius:inherit;padding:.4375rem 0;cursor:pointer}.wrapper{position:relative;min-height:inherit;border-radius:inherit;background-color:currentColor;border:solid transparent;border-width:0 1em}.bar{position:absolute;top:0;bottom:0;margin:0 -1em;border-radius:inherit;background-color:var(--tui-primary)}:host-context(tui-input-slider) .bar{margin-left:calc(var(--tui-radius-m)/ 2);border-bottom-left-radius:calc(var(--tui-radius-m) * 5) calc(var(--tui-radius-m) * 1.5)}.dot{transition-property:background-color;transition-duration:var(--tui-duration,300ms);transition-timing-function:ease-in-out;position:absolute;top:50%;z-index:1;width:1em;height:1em;transform:translate(0,-50%);border-radius:100%;background-color:var(--tui-primary);outline:0;cursor:ew-resize}.dot:last-child{right:0;transform:translate(0,-50%)}.dot:hover{background-color:var(--tui-primary-hover)}.dot:active{background-color:var(--tui-primary-active)}.dot_focus-visible{box-shadow:inset 0 0 0 2px var(--tui-focus)}.segments{position:relative;z-index:1;display:flex;justify-content:space-between;min-height:inherit;margin:0 -1em}.segments-spacer{height:1.625rem}.segment{position:relative;height:inherit;width:.25rem;background-color:rgba(0,0,0,.36);pointer-events:none}.segment:first-of-type,.segment:last-of-type{background-color:transparent}.number{position:absolute;left:50%;transform:translate(-50%,0);top:100%;font:var(--tui-font-text-s);margin-top:.5rem;color:var(--tui-text-02);white-space:nowrap}.segment:first-of-type .number{left:-.05em;transform:none}.segment:last-of-type .number{left:auto;right:-.05em;transform:none}:host._disabled .number{color:var(--tui-text-01)}", ".dot:first-child{display:none}.wrapper{border-left:none}.bar,.segments{margin-left:0}"]
60
146
  }),
61
147
  __param(0, Optional()),
62
148
  __param(0, Self()),
@@ -64,7 +150,7 @@ TuiSliderComponent = TuiSliderComponent_1 = __decorate([
64
150
  __param(1, Inject(ChangeDetectorRef)),
65
151
  __param(2, Inject(DOCUMENT)),
66
152
  __param(3, Inject(TUI_FROM_TO_TEXTS))
67
- ], TuiSliderComponent);
153
+ ], TuiSliderOldComponent);
68
154
 
69
155
  let TuiSliderModule = class TuiSliderModule {
70
156
  };
@@ -78,8 +164,8 @@ TuiSliderModule = __decorate([
78
164
  TuiActiveZoneModule,
79
165
  TuiFormatNumberPipeModule,
80
166
  ],
81
- declarations: [TuiSliderComponent],
82
- exports: [TuiSliderComponent],
167
+ declarations: [TuiSliderComponent, TuiSliderOldComponent],
168
+ exports: [TuiSliderComponent, TuiSliderOldComponent],
83
169
  })
84
170
  ], TuiSliderModule);
85
171
 
@@ -87,5 +173,5 @@ TuiSliderModule = __decorate([
87
173
  * Generated bundle index. Do not edit.
88
174
  */
89
175
 
90
- export { TuiSliderComponent, TuiSliderModule };
176
+ export { TuiSliderComponent, TuiSliderModule, TuiSliderOldComponent };
91
177
  //# sourceMappingURL=taiga-ui-kit-components-slider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-kit-components-slider.js","sources":["ng://@taiga-ui/kit/components/slider/slider.component.ts","ng://@taiga-ui/kit/components/slider/slider.module.ts","ng://@taiga-ui/kit/components/slider/taiga-ui-kit-components-slider.ts"],"sourcesContent":["import {DOCUMENT} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n forwardRef,\n Inject,\n Optional,\n Self,\n} from '@angular/core';\nimport {NgControl} from '@angular/forms';\nimport {\n isNativeFocused,\n TUI_FOCUSABLE_ITEM_ACCESSOR,\n TuiFocusableElementAccessor,\n TuiNativeFocusableElement,\n} from '@taiga-ui/cdk';\nimport {AbstractTuiSlider} from '@taiga-ui/kit/abstract';\nimport {TUI_FROM_TO_TEXTS} from '@taiga-ui/kit/tokens';\nimport {Observable} from 'rxjs';\n\n// @dynamic\n@Component({\n selector: 'tui-slider',\n templateUrl: '../../abstract/slider/slider.common.template.html',\n styleUrls: ['../../abstract/slider/slider.common.style.less', './slider.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: TUI_FOCUSABLE_ITEM_ACCESSOR,\n useExisting: forwardRef(() => TuiSliderComponent),\n },\n ],\n})\nexport class TuiSliderComponent\n extends AbstractTuiSlider<number>\n implements TuiFocusableElementAccessor\n{\n constructor(\n @Optional()\n @Self()\n @Inject(NgControl)\n control: NgControl | null,\n @Inject(ChangeDetectorRef) changeDetectorRef: ChangeDetectorRef,\n @Inject(DOCUMENT) documentRef: Document,\n @Inject(TUI_FROM_TO_TEXTS) fromToTexts$: Observable<[string, string]>,\n ) {\n super(control, changeDetectorRef, documentRef, fromToTexts$);\n }\n\n get nativeFocusableElement(): TuiNativeFocusableElement | null {\n return this.dotRight ? this.dotRight.nativeElement : null;\n }\n\n get focused(): boolean {\n return isNativeFocused(this.nativeFocusableElement);\n }\n\n get left(): number {\n return 0;\n }\n\n get right(): number {\n return 100 - 100 * this.getFractionFromValue(this.value);\n }\n\n protected getFallbackValue(): number {\n return 0;\n }\n\n protected processStep(increment: boolean) {\n const fraction = this.getFractionFromValue(this.value);\n const step = this.computedStep;\n const value = this.getValueFromFraction(\n increment ? fraction + step : fraction - step,\n );\n\n this.processValue(value);\n }\n\n protected processValue(value: number) {\n this.updateValue(this.valueGuard(value));\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {\n TuiActiveZoneModule,\n TuiFocusableModule,\n TuiFocusVisibleModule,\n TuiRepeatTimesModule,\n} from '@taiga-ui/cdk';\nimport {TuiFormatNumberPipeModule} from '@taiga-ui/core';\n\nimport {TuiSliderComponent} from './slider.component';\n\n@NgModule({\n imports: [\n CommonModule,\n TuiRepeatTimesModule,\n TuiFocusableModule,\n TuiFocusVisibleModule,\n TuiActiveZoneModule,\n TuiFormatNumberPipeModule,\n ],\n declarations: [TuiSliderComponent],\n exports: [TuiSliderComponent],\n})\nexport class TuiSliderModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;AAqBA;IAaa,kBAAkB,0BAA/B,MAAa,kBACT,SAAQ,iBAAyB;IAGjC,YAII,OAAyB,EACE,iBAAoC,EAC7C,WAAqB,EACZ,YAA0C;QAErE,KAAK,CAAC,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC;KAChE;IAED,IAAI,sBAAsB;QACtB,OAAO,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,GAAG,IAAI,CAAC;KAC7D;IAED,IAAI,OAAO;QACP,OAAO,eAAe,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;KACvD;IAED,IAAI,IAAI;QACJ,OAAO,CAAC,CAAC;KACZ;IAED,IAAI,KAAK;QACL,OAAO,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC5D;IAES,gBAAgB;QACtB,OAAO,CAAC,CAAC;KACZ;IAES,WAAW,CAAC,SAAkB;QACpC,MAAM,QAAQ,GAAG,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACvD,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC;QAC/B,MAAM,KAAK,GAAG,IAAI,CAAC,oBAAoB,CACnC,SAAS,GAAG,QAAQ,GAAG,IAAI,GAAG,QAAQ,GAAG,IAAI,CAChD,CAAC;QAEF,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;KAC5B;IAES,YAAY,CAAC,KAAa;QAChC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;KAC5C;EACJ;;YAzCgB,SAAS,uBAHjB,QAAQ,YACR,IAAI,YACJ,MAAM,SAAC,SAAS;YAE6B,iBAAiB,uBAA9D,MAAM,SAAC,iBAAiB;YACM,QAAQ,uBAAtC,MAAM,SAAC,QAAQ;YACyB,UAAU,uBAAlD,MAAM,SAAC,iBAAiB;;AAXpB,kBAAkB;IAZ9B,SAAS,CAAC;QACP,QAAQ,EAAE,YAAY;QACtB,61EAAgE;QAEhE,eAAe,EAAE,uBAAuB,CAAC,MAAM;QAC/C,SAAS,EAAE;YACP;gBACI,OAAO,EAAE,2BAA2B;gBACpC,WAAW,EAAE,UAAU,CAAC,MAAM,oBAAkB,CAAC;aACpD;SACJ;;KACJ,CAAC;IAMO,WAAA,QAAQ,EAAE,CAAA;IACV,WAAA,IAAI,EAAE,CAAA;IACN,WAAA,MAAM,CAAC,SAAS,CAAC,CAAA;IAEjB,WAAA,MAAM,CAAC,iBAAiB,CAAC,CAAA;IACzB,WAAA,MAAM,CAAC,QAAQ,CAAC,CAAA;IAChB,WAAA,MAAM,CAAC,iBAAiB,CAAC,CAAA;GAXrB,kBAAkB,CAiD9B;;IC3DY,eAAe,GAA5B,MAAa,eAAe;EAAG;AAAlB,eAAe;IAZ3B,QAAQ,CAAC;QACN,OAAO,EAAE;YACL,YAAY;YACZ,oBAAoB;YACpB,kBAAkB;YAClB,qBAAqB;YACrB,mBAAmB;YACnB,yBAAyB;SAC5B;QACD,YAAY,EAAE,CAAC,kBAAkB,CAAC;QAClC,OAAO,EAAE,CAAC,kBAAkB,CAAC;KAChC,CAAC;GACW,eAAe,CAAG;;ACxB/B;;;;;;"}
1
+ {"version":3,"file":"taiga-ui-kit-components-slider.js","sources":["ng://@taiga-ui/kit/components/slider/slider.component.ts","ng://@taiga-ui/kit/components/slider/slider-old.component.ts","ng://@taiga-ui/kit/components/slider/slider.module.ts","ng://@taiga-ui/kit/components/slider/taiga-ui-kit-components-slider.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n HostBinding,\n Inject,\n Input,\n Optional,\n Self,\n} from '@angular/core';\nimport {NgControl, NgModel} from '@angular/forms';\nimport {USER_AGENT} from '@ng-web-apis/common';\nimport {\n CHROMIUM_EDGE_START_VERSION,\n isEdgeOlderThan,\n tuiDefaultProp,\n} from '@taiga-ui/cdk';\nimport {TuiSizeS} from '@taiga-ui/core';\n\n@Component({\n selector: 'input[tuiSlider]',\n template: ``,\n styleUrls: ['./slider.style.less'],\n host: {\n type: 'range',\n /**\n * For change detection.\n * Webkit does not have built-in method for customization of filling progress (as Firefox).\n * We draw filling of progress by `background: linear-gradient(...)` of the track.\n * This function triggers change detection (for `fillPercentage` function) when we drag thumb of the input.\n */\n '(input)': '0',\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiSliderComponent {\n @Input()\n @HostBinding('attr.data-size')\n @tuiDefaultProp()\n size: TuiSizeS = 'm';\n\n @Input()\n @tuiDefaultProp()\n segments = 1;\n\n get min(): number {\n return Number(this.elementRef.nativeElement.min);\n }\n\n get max(): number {\n return Number(this.elementRef.nativeElement.max) || 100;\n }\n\n get step(): number {\n return Number(this.elementRef.nativeElement.step) || 1;\n }\n\n @HostBinding('style.--tui-slider-fill-percentage')\n get fillPercentage(): string {\n const percentage = Math.floor((100 * this.value) / (this.max - this.min));\n\n return `${percentage}%`;\n }\n\n @HostBinding('style.--tui-slider-segment-width')\n get stepPercentage(): string {\n const percentage = 100 / this.segments - 0.1;\n\n return `${percentage}%`;\n }\n\n @HostBinding('class._old-edge')\n get isOldEdge(): boolean {\n return isEdgeOlderThan(CHROMIUM_EDGE_START_VERSION, this.userAgent);\n }\n\n get value(): number {\n const {control} = this;\n const controlValue =\n control instanceof NgModel ? control.viewModel : control?.value;\n\n return controlValue || Number(this.elementRef.nativeElement.value) || 0;\n }\n\n constructor(\n @Optional()\n @Self()\n @Inject(NgControl)\n private readonly control: NgControl | null,\n @Inject(ElementRef) private readonly elementRef: ElementRef<HTMLInputElement>,\n @Inject(USER_AGENT) private readonly userAgent: string,\n ) {}\n}\n","import {DOCUMENT} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n forwardRef,\n Inject,\n Optional,\n Self,\n} from '@angular/core';\nimport {NgControl} from '@angular/forms';\nimport {\n isNativeFocused,\n TUI_FOCUSABLE_ITEM_ACCESSOR,\n TuiFocusableElementAccessor,\n TuiNativeFocusableElement,\n} from '@taiga-ui/cdk';\nimport {AbstractTuiSlider} from '@taiga-ui/kit/abstract';\nimport {TUI_FROM_TO_TEXTS} from '@taiga-ui/kit/tokens';\nimport {Observable} from 'rxjs';\n\n/**\n * @deprecated use {@link TuiSliderComponent} instead\n * TODO remove in 3.0\n */\n// @dynamic\n@Component({\n selector: 'tui-slider',\n templateUrl: '../../abstract/slider/slider.common.template.html',\n styleUrls: [\n '../../abstract/slider/slider.common.style.less',\n './slider-old.style.less',\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: TUI_FOCUSABLE_ITEM_ACCESSOR,\n useExisting: forwardRef(() => TuiSliderOldComponent),\n },\n ],\n})\nexport class TuiSliderOldComponent\n extends AbstractTuiSlider<number>\n implements TuiFocusableElementAccessor\n{\n constructor(\n @Optional()\n @Self()\n @Inject(NgControl)\n control: NgControl | null,\n @Inject(ChangeDetectorRef) changeDetectorRef: ChangeDetectorRef,\n @Inject(DOCUMENT) documentRef: Document,\n @Inject(TUI_FROM_TO_TEXTS) fromToTexts$: Observable<[string, string]>,\n ) {\n super(control, changeDetectorRef, documentRef, fromToTexts$);\n }\n\n get nativeFocusableElement(): TuiNativeFocusableElement | null {\n return this.dotRight ? this.dotRight.nativeElement : null;\n }\n\n get focused(): boolean {\n return isNativeFocused(this.nativeFocusableElement);\n }\n\n get left(): number {\n return 0;\n }\n\n get right(): number {\n return 100 - 100 * this.getFractionFromValue(this.value);\n }\n\n protected getFallbackValue(): number {\n return 0;\n }\n\n protected processStep(increment: boolean) {\n const fraction = this.getFractionFromValue(this.value);\n const step = this.computedStep;\n const value = this.getValueFromFraction(\n increment ? fraction + step : fraction - step,\n );\n\n this.processValue(value);\n }\n\n protected processValue(value: number) {\n this.updateValue(this.valueGuard(value));\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {\n TuiActiveZoneModule,\n TuiFocusableModule,\n TuiFocusVisibleModule,\n TuiRepeatTimesModule,\n} from '@taiga-ui/cdk';\nimport {TuiFormatNumberPipeModule} from '@taiga-ui/core';\n\nimport {TuiSliderComponent} from './slider.component';\nimport {TuiSliderOldComponent} from './slider-old.component';\n\n@NgModule({\n imports: [\n CommonModule,\n TuiRepeatTimesModule,\n TuiFocusableModule,\n TuiFocusVisibleModule,\n TuiActiveZoneModule,\n TuiFormatNumberPipeModule,\n ],\n declarations: [TuiSliderComponent, TuiSliderOldComponent],\n exports: [TuiSliderComponent, TuiSliderOldComponent],\n})\nexport class TuiSliderModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -16,7 +16,9 @@ let TuiTagComponent = class TuiTagComponent {
16
16
  // TODO: Possibly implement standard focus mechanisms and outline
17
17
  this.value = '';
18
18
  this.editable = false;
19
+ // TODO: Remove in 3.0
19
20
  this.allowSpaces = true;
21
+ this.separator = ',';
20
22
  this.maxLength = null;
21
23
  this.size = 'm';
22
24
  this.showLoader = false;
@@ -69,7 +71,7 @@ let TuiTagComponent = class TuiTagComponent {
69
71
  }
70
72
  onInput(value) {
71
73
  const newTags = this.allowSpaces
72
- ? value.split(',')
74
+ ? value.split(this.separator)
73
75
  : value.split(ALLOWED_SPACE_REGEXP);
74
76
  if (newTags.length > 1) {
75
77
  this.save(String(newTags));
@@ -127,13 +129,17 @@ __decorate([
127
129
  Input(),
128
130
  tuiDefaultProp()
129
131
  ], TuiTagComponent.prototype, "allowSpaces", void 0);
132
+ __decorate([
133
+ Input(),
134
+ tuiDefaultProp()
135
+ ], TuiTagComponent.prototype, "separator", void 0);
130
136
  __decorate([
131
137
  Input(),
132
138
  tuiDefaultProp()
133
139
  ], TuiTagComponent.prototype, "maxLength", void 0);
134
140
  __decorate([
135
141
  Input(),
136
- HostBinding('attr.data-tui-host-size'),
142
+ HostBinding('attr.data-size'),
137
143
  tuiDefaultProp()
138
144
  ], TuiTagComponent.prototype, "size", void 0);
139
145
  __decorate([
@@ -196,7 +202,7 @@ TuiTagComponent = __decorate([
196
202
  host: {
197
203
  '($.data-mode.attr)': 'mode$',
198
204
  },
199
- styles: [":host{transition-property:background;transition-duration:var(--tui-duration,300ms);transition-timing-function:ease-in-out;position:relative;display:inline-block;font:var(--tui-font-text-s);border-radius:var(--tui-radius-s);max-width:100%;cursor:default;outline:0;text-decoration:none}:host:after{transition-property:background;transition-duration:var(--tui-duration,300ms);transition-timing-function:ease-in-out;position:absolute;top:0;left:0;width:100%;height:100%;content:'';box-sizing:border-box;border-radius:inherit;pointer-events:none}:host._hoverable:active[data-tui-host-status=custom]:after,:host._hoverable:hover[data-tui-host-status=custom]:after{background-color:var(--tui-clear)}:host:focus:after{border:2px solid var(--tui-focus)}:host[data-tui-host-status=primary]{background-color:var(--tui-primary);color:var(--tui-primary-text)}:host[data-tui-host-status=primary]._hoverable:hover{background-color:var(--tui-primary-hover)}:host[data-tui-host-status=primary]._hoverable:active{background-color:var(--tui-primary-active)}:host[data-tui-host-status=error]{background-color:var(--tui-error-bg);color:var(--tui-text-01)}:host[data-tui-host-status=error]._hoverable:active,:host[data-tui-host-status=error]._hoverable:hover{background-color:var(--tui-error-bg-hover)}:host[data-tui-host-status=error][data-mode=onDark]{background-color:var(--tui-error-bg-night);color:var(--tui-text-01-night)}:host[data-tui-host-status=error][data-mode=onDark]._hoverable:active,:host[data-tui-host-status=error][data-mode=onDark]._hoverable:hover{background-color:var(--tui-error-bg-night-hover)}:host[data-tui-host-status=success]{background-color:var(--tui-success-bg);color:var(--tui-text-01)}:host[data-tui-host-status=success]._hoverable:active,:host[data-tui-host-status=success]._hoverable:hover{background-color:var(--tui-success-bg-hover)}:host[data-tui-host-status=success][data-mode=onDark]{background-color:var(--tui-success-bg-night);color:var(--tui-text-01-night)}:host[data-tui-host-status=success][data-mode=onDark]._hoverable:active,:host[data-tui-host-status=success][data-mode=onDark]._hoverable:hover{background-color:var(--tui-success-bg-night-hover)}:host[data-tui-host-status=warning]{background-color:var(--tui-warning-bg);color:var(--tui-text-01)}:host[data-tui-host-status=warning]._hoverable:active,:host[data-tui-host-status=warning]._hoverable:hover{background-color:var(--tui-warning-bg-hover)}:host[data-tui-host-status=warning][data-mode=onDark]{background-color:var(--tui-warning-bg-night);color:var(--tui-text-01-night)}:host[data-tui-host-status=warning][data-mode=onDark]._hoverable:active,:host[data-tui-host-status=warning][data-mode=onDark]._hoverable:hover{background-color:var(--tui-warning-bg-night-hover)}:host[data-tui-host-status=default]{color:var(--tui-text-01-night);background-color:var(--tui-base-06)}:host[data-tui-host-status=default]:not([data-mode])._hoverable:hover{background-color:var(--tui-base-07)}:host[data-tui-host-status=default]:not([data-mode])._hoverable:active{background-color:var(--tui-base-08)}:host[data-tui-host-status=default][data-mode=onDark]{color:var(--tui-text-01-night);background-color:var(--tui-clear-inverse)}:host[data-tui-host-status=default][data-mode=onDark]._hoverable:hover{background-color:var(--tui-clear-inverse-hover)}:host[data-tui-host-status=default][data-mode=onDark]._hoverable:active{background-color:var(--tui-clear-inverse-active)}:host[data-tui-host-status=default][data-mode=onDark]:focus:after{border:2px solid var(--tui-base-01)}:host[data-tui-host-status=default][data-mode=onLight]{background-color:var(--tui-clear);color:var(--tui-text-01)}:host[data-tui-host-status=default][data-mode=onLight]._hoverable:hover{background-color:var(--tui-clear-hover)}:host[data-tui-host-status=default][data-mode=onLight]._hoverable:active{background-color:var(--tui-clear-active)}:host._editing{background:0 0!important}:host._disabled{pointer-events:none;opacity:var(--tui-disabled-opacity)}:host._hoverable{cursor:pointer}:host._autocolor{color:var(--tui-text-01)}.text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-right:.02em}.tag{position:relative;display:flex;align-items:center;border-radius:inherit;white-space:pre}:host[data-tui-host-size='s'] .tag{font:var(--tui-font-text-xs);height:1.25rem;padding:0 .5rem}:host[data-tui-host-size='m'] .tag{height:var(--tui-height-xs);padding:0 .5rem}:host[data-tui-host-size='l'] .tag{height:var(--tui-height-s);padding:0 .75rem}:host._has-icon[data-tui-host-size='s'] .tag{padding:0 .125rem 0 .75rem;-webkit-padding-start:.75rem;padding-inline-start:.75rem;-webkit-padding-end:.125rem;padding-inline-end:.125rem}:host._has-icon[data-tui-host-size='m'] .tag{padding:0 0 0 .75rem;-webkit-padding-start:.75rem;padding-inline-start:.75rem;-webkit-padding-end:0;padding-inline-end:0}:host._has-icon[data-tui-host-size='l'] .tag{padding:0 .25rem 0 .75rem;-webkit-padding-start:.75rem;padding-inline-start:.75rem;-webkit-padding-end:.25rem;padding-inline-end:.25rem}:host._editing .tag{visibility:hidden}:host._disabled._has-icon[data-tui-host-size='m'] .tag,:host._disabled._has-icon[data-tui-host-size='s'] .tag{padding:0 .5rem 0 .75rem;-webkit-padding-start:.75rem;padding-inline-start:.75rem;-webkit-padding-end:.5rem;padding-inline-end:.5rem}:host._disabled._has-icon[data-tui-host-size='l'] .tag{padding:0 .75rem}.edit{padding:0 0 0 .5rem;border:0;border-radius:inherit;background:0 0;font-size:inherit;line-height:inherit;font-weight:inherit;color:inherit;caret-color:currentColor;outline:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;word-break:keep-all;-webkit-text-fill-color:currentColor;position:absolute;top:0;left:0;font:var(--tui-font-text-s);color:var(--tui-text-01);width:100%;box-sizing:border-box;-webkit-padding-start:.5rem;padding-inline-start:.5rem;-webkit-padding-end:0;padding-inline-end:0}.edit:-webkit-autofill,.edit:-webkit-autofill:focus,.edit:-webkit-autofill:hover{border-radius:inherit;color:inherit!important;background-color:transparent!important;-webkit-text-fill-color:var(--tui-text-01)!important;border-color:var(--tui-autofill);-webkit-box-shadow:0 0 0 1000px var(--tui-autofill) inset!important}:host[data-tui-host-size='s'] .edit{height:1.25rem;line-height:1.25rem}:host[data-tui-host-size='m'] .edit{height:var(--tui-height-xs);line-height:var(--tui-height-xs)}:host[data-tui-host-size='l'] .edit{height:var(--tui-height-s);line-height:var(--tui-height-s);padding:0 0 0 .75rem;-webkit-padding-start:.75rem;padding-inline-start:.75rem;-webkit-padding-end:0;padding-inline-end:0}.icon{margin:0 0 0 .25rem;-webkit-margin-start:.25rem;margin-inline-start:.25rem;-webkit-margin-end:0;margin-inline-end:0;height:100%}.icon:not(.icon_loader){cursor:pointer;pointer-events:all;opacity:var(--tui-disabled-opacity)}.icon:hover{opacity:1}.icon_loader{width:1rem;height:1rem;margin:0 .25rem}:host[data-tui-host-size='s'] .icon_loader{margin:0 .375rem 0 .75rem;-webkit-margin-start:.75rem;margin-inline-start:.75rem;-webkit-margin-end:.375rem;margin-inline-end:.375rem;width:.5rem;height:.5rem}:host[data-tui-host-size='l'] .icon_loader{margin:0 .25rem 0 .5rem;-webkit-margin-start:.5rem;margin-inline-start:.5rem;-webkit-margin-end:.25rem;margin-inline-end:.25rem}.left-content{margin:0 .25rem 0 0;-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:.25rem;margin-inline-end:.25rem;width:1rem;height:1rem}"]
205
+ styles: [":host{transition-property:background;transition-duration:var(--tui-duration,300ms);transition-timing-function:ease-in-out;position:relative;display:inline-block;font:var(--tui-font-text-s);border-radius:var(--tui-radius-s);max-width:100%;cursor:default;outline:0;text-decoration:none}:host:after{transition-property:background;transition-duration:var(--tui-duration,300ms);transition-timing-function:ease-in-out;position:absolute;top:0;left:0;width:100%;height:100%;content:'';box-sizing:border-box;border-radius:inherit;pointer-events:none}:host._hoverable:active[data-tui-host-status=custom]:after,:host._hoverable:hover[data-tui-host-status=custom]:after{background-color:var(--tui-clear)}:host:focus:after{border:2px solid var(--tui-focus)}:host[data-tui-host-status=primary]{background-color:var(--tui-primary);color:var(--tui-primary-text)}:host[data-tui-host-status=primary]._hoverable:hover{background-color:var(--tui-primary-hover)}:host[data-tui-host-status=primary]._hoverable:active{background-color:var(--tui-primary-active)}:host[data-tui-host-status=error]{background-color:var(--tui-error-bg);color:var(--tui-text-01)}:host[data-tui-host-status=error]._hoverable:active,:host[data-tui-host-status=error]._hoverable:hover{background-color:var(--tui-error-bg-hover)}:host[data-tui-host-status=error][data-mode=onDark]{background-color:var(--tui-error-bg-night);color:var(--tui-text-01-night)}:host[data-tui-host-status=error][data-mode=onDark]._hoverable:active,:host[data-tui-host-status=error][data-mode=onDark]._hoverable:hover{background-color:var(--tui-error-bg-night-hover)}:host[data-tui-host-status=success]{background-color:var(--tui-success-bg);color:var(--tui-text-01)}:host[data-tui-host-status=success]._hoverable:active,:host[data-tui-host-status=success]._hoverable:hover{background-color:var(--tui-success-bg-hover)}:host[data-tui-host-status=success][data-mode=onDark]{background-color:var(--tui-success-bg-night);color:var(--tui-text-01-night)}:host[data-tui-host-status=success][data-mode=onDark]._hoverable:active,:host[data-tui-host-status=success][data-mode=onDark]._hoverable:hover{background-color:var(--tui-success-bg-night-hover)}:host[data-tui-host-status=warning]{background-color:var(--tui-warning-bg);color:var(--tui-text-01)}:host[data-tui-host-status=warning]._hoverable:active,:host[data-tui-host-status=warning]._hoverable:hover{background-color:var(--tui-warning-bg-hover)}:host[data-tui-host-status=warning][data-mode=onDark]{background-color:var(--tui-warning-bg-night);color:var(--tui-text-01-night)}:host[data-tui-host-status=warning][data-mode=onDark]._hoverable:active,:host[data-tui-host-status=warning][data-mode=onDark]._hoverable:hover{background-color:var(--tui-warning-bg-night-hover)}:host[data-tui-host-status=default]{color:var(--tui-text-01-night);background-color:var(--tui-base-06)}:host[data-tui-host-status=default]:not([data-mode])._hoverable:hover{background-color:var(--tui-base-07)}:host[data-tui-host-status=default]:not([data-mode])._hoverable:active{background-color:var(--tui-base-08)}:host[data-tui-host-status=default][data-mode=onDark]{color:var(--tui-text-01-night);background-color:var(--tui-clear-inverse)}:host[data-tui-host-status=default][data-mode=onDark]._hoverable:hover{background-color:var(--tui-clear-inverse-hover)}:host[data-tui-host-status=default][data-mode=onDark]._hoverable:active{background-color:var(--tui-clear-inverse-active)}:host[data-tui-host-status=default][data-mode=onDark]:focus:after{border:2px solid var(--tui-base-01)}:host[data-tui-host-status=default][data-mode=onLight]{background-color:var(--tui-clear);color:var(--tui-text-01)}:host[data-tui-host-status=default][data-mode=onLight]._hoverable:hover{background-color:var(--tui-clear-hover)}:host[data-tui-host-status=default][data-mode=onLight]._hoverable:active{background-color:var(--tui-clear-active)}:host._editing{background:0 0!important}:host._disabled{pointer-events:none;opacity:var(--tui-disabled-opacity)}:host._hoverable{cursor:pointer}:host._autocolor{color:var(--tui-text-01)}.text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-right:.02em}.tag{position:relative;display:flex;align-items:center;border-radius:inherit;white-space:pre}:host[data-size='s'] .tag{font:var(--tui-font-text-xs);height:1.25rem;padding:0 .5rem}:host[data-size='m'] .tag{height:var(--tui-height-xs);padding:0 .5rem}:host[data-size='l'] .tag{height:var(--tui-height-s);padding:0 .75rem}:host._has-icon[data-size='s'] .tag{padding:0 .125rem 0 .75rem;-webkit-padding-start:.75rem;padding-inline-start:.75rem;-webkit-padding-end:.125rem;padding-inline-end:.125rem}:host._has-icon[data-size='m'] .tag{padding:0 0 0 .75rem;-webkit-padding-start:.75rem;padding-inline-start:.75rem;-webkit-padding-end:0;padding-inline-end:0}:host._has-icon[data-size='l'] .tag{padding:0 .25rem 0 .75rem;-webkit-padding-start:.75rem;padding-inline-start:.75rem;-webkit-padding-end:.25rem;padding-inline-end:.25rem}:host._editing .tag{visibility:hidden}:host._disabled._has-icon[data-size='m'] .tag,:host._disabled._has-icon[data-size='s'] .tag{padding:0 .5rem 0 .75rem;-webkit-padding-start:.75rem;padding-inline-start:.75rem;-webkit-padding-end:.5rem;padding-inline-end:.5rem}:host._disabled._has-icon[data-size='l'] .tag{padding:0 .75rem}.edit{padding:0 0 0 .5rem;border:0;border-radius:inherit;background:0 0;font-size:inherit;line-height:inherit;font-weight:inherit;color:inherit;caret-color:currentColor;outline:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;word-break:keep-all;-webkit-text-fill-color:currentColor;position:absolute;top:0;left:0;font:var(--tui-font-text-s);color:var(--tui-text-01);width:100%;box-sizing:border-box;-webkit-padding-start:.5rem;padding-inline-start:.5rem;-webkit-padding-end:0;padding-inline-end:0}.edit:-webkit-autofill,.edit:-webkit-autofill:focus,.edit:-webkit-autofill:hover{border-radius:inherit;color:inherit!important;background-color:transparent!important;-webkit-text-fill-color:var(--tui-text-01)!important;border-color:var(--tui-autofill);-webkit-box-shadow:0 0 0 1000px var(--tui-autofill) inset!important}:host[data-size='s'] .edit{height:1.25rem;line-height:1.25rem}:host[data-size='m'] .edit{height:var(--tui-height-xs);line-height:var(--tui-height-xs)}:host[data-size='l'] .edit{height:var(--tui-height-s);line-height:var(--tui-height-s);padding:0 0 0 .75rem;-webkit-padding-start:.75rem;padding-inline-start:.75rem;-webkit-padding-end:0;padding-inline-end:0}.icon{margin:0 0 0 .25rem;-webkit-margin-start:.25rem;margin-inline-start:.25rem;-webkit-margin-end:0;margin-inline-end:0;height:100%}.icon:not(.icon_loader){cursor:pointer;pointer-events:all;opacity:var(--tui-disabled-opacity)}.icon:hover{opacity:1}.icon_loader{width:1rem;height:1rem;margin:0 .25rem}:host[data-size='s'] .icon_loader{margin:0 .375rem 0 .75rem;-webkit-margin-start:.75rem;margin-inline-start:.75rem;-webkit-margin-end:.375rem;margin-inline-end:.375rem;width:.5rem;height:.5rem}:host[data-size='l'] .icon_loader{margin:0 .25rem 0 .5rem;-webkit-margin-start:.5rem;margin-inline-start:.5rem;-webkit-margin-end:.25rem;margin-inline-end:.25rem}.left-content{margin:0 .25rem 0 0;-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:.25rem;margin-inline-end:.25rem;width:1rem;height:1rem}"]
200
206
  }),
201
207
  __param(0, Inject(ElementRef)),
202
208
  __param(1, Inject(TUI_MODE))
@@ -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 templateUrl: './tag.template.html',\n styleUrls: ['./tag.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\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(String(newTags));\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,SAAS,EAAE;IAY7C,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,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;YAE3B,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,qiCAAkC;QAElC,eAAe,EAAE,uBAAuB,CAAC,MAAM;QAC/C,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 templateUrl: './tag.template.html',\n styleUrls: ['./tag.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\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 // TODO: Remove in 3.0\n @Input()\n @tuiDefaultProp()\n allowSpaces = true;\n\n @Input()\n @tuiDefaultProp()\n separator: string | RegExp = ',';\n\n @Input()\n @tuiDefaultProp()\n maxLength: number | null = null;\n\n @Input()\n @HostBinding('attr.data-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(this.separator)\n : value.split(ALLOWED_SPACE_REGEXP);\n\n if (newTags.length > 1) {\n this.save(String(newTags));\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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"}
@@ -23,6 +23,10 @@ const TUI_TOGGLE_DEFAULT_OPTIONS = {
23
23
  const TUI_TOGGLE_OPTIONS = new InjectionToken('Default parameters for toggle component', {
24
24
  factory: () => TUI_TOGGLE_DEFAULT_OPTIONS,
25
25
  });
26
+ const tuiToggleOptionsProvider = (options) => ({
27
+ provide: TUI_TOGGLE_OPTIONS,
28
+ useValue: Object.assign(Object.assign({}, TUI_TOGGLE_DEFAULT_OPTIONS), options),
29
+ });
26
30
 
27
31
  var TuiToggleComponent_1;
28
32
  let TuiToggleComponent = TuiToggleComponent_1 = class TuiToggleComponent extends AbstractTuiControl {
@@ -106,7 +110,7 @@ __decorate([
106
110
  ], TuiToggleComponent.prototype, "showLoader", void 0);
107
111
  __decorate([
108
112
  Input(),
109
- HostBinding('attr.data-tui-host-size'),
113
+ HostBinding('attr.data-size'),
110
114
  tuiDefaultProp()
111
115
  ], TuiToggleComponent.prototype, "size", void 0);
112
116
  __decorate([
@@ -126,7 +130,7 @@ TuiToggleComponent = TuiToggleComponent_1 = __decorate([
126
130
  useExisting: forwardRef(() => TuiToggleComponent_1),
127
131
  },
128
132
  ],
129
- styles: [":host{position:relative;display:inline-block;vertical-align:middle;overflow:hidden;border-radius:6.25rem}:host[data-tui-host-size='m']{width:2rem;height:1rem}:host[data-tui-host-size='l']{width:3rem;height:1.5rem}.checkbox{padding:0;border:0;border-radius:inherit;background:0 0;font-size:inherit;line-height:inherit;font-weight:inherit;color:inherit;caret-color:currentColor;outline:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;word-break:keep-all;-webkit-text-fill-color:currentColor;position:absolute;top:0;left:0;height:100%;width:100%;opacity:0;cursor:pointer}.checkbox:-webkit-autofill,.checkbox:-webkit-autofill:focus,.checkbox:-webkit-autofill:hover{border-radius:inherit;color:inherit!important;background-color:transparent!important;-webkit-text-fill-color:var(--tui-text-01)!important;border-color:var(--tui-autofill);-webkit-box-shadow:0 0 0 1000px var(--tui-autofill) inset!important}:host._disabled .checkbox{pointer-events:none;cursor:default}.toggle{transition-property:transform;transition-duration:var(--tui-duration,300ms);transition-timing-function:ease-in-out;display:flex;align-items:center;justify-content:center}:host[data-tui-host-size='m'] .toggle{width:3rem;height:1rem;transform:translateX(-1rem)}:host[data-tui-host-size='l'] .toggle{width:4.5rem;height:1.5rem;transform:translateX(-1.5rem)}:host._checked .toggle{transform:translateX(0)}.circle{margin:.125rem 0;flex-shrink:0;border-radius:100%;background-color:var(--tui-base-01)}:host._disabled .circle_light{opacity:.24}:host[data-tui-host-size='m'] .circle{width:.75rem;height:.75rem}:host[data-tui-host-size='l'] .circle{width:1rem;height:1rem}:host._disabled .circle{background-color:var(--tui-base-01)}:host:not(._checked) .loader{color:var(--tui-base-06)}:host:not(._checked)._disabled .loader{color:var(--tui-base-05)}:host:not(._checked)[data-mode=onDark] .loader{color:var(--tui-text-03-night)}:host:not(._checked)[data-mode=onDark]._disabled .loader{color:var(--tui-clear-inverse-active)}:host:not(._checked)[data-mode=onLight] .loader{color:var(--tui-text-03)}:host:not(._checked)[data-mode=onLight]._disabled .loader{color:var(--tui-clear-active)}:host[data-tui-host-size='m'] .loader{width:.75rem;margin:0 .2rem;transform:scale(.75)}:host[data-tui-host-size='l'] .loader{width:1rem;margin:0 .25rem}.icon-wrapper{display:flex}.icon{opacity:.8}.icon_off{color:var(--tui-base-06)}:host._disabled .icon_off{color:var(--tui-base-05)}:host[data-mode=onDark] .icon_off{color:var(--tui-text-03-night)}:host[data-mode=onDark]._disabled .icon_off{color:var(--tui-clear-inverse-active)}:host[data-mode=onLight] .icon_off{color:var(--tui-text-03)}:host[data-mode=onLight]._disabled .icon_off{color:var(--tui-clear-active)}:host[data-tui-host-size='m'] .icon{width:1rem;height:1rem;transform:scale(.75)}:host[data-tui-host-size='l'] .icon{margin:0 .125rem;width:1.5rem;height:1.5rem}:host._hovered .icon{opacity:1}"]
133
+ styles: [":host{position:relative;display:inline-block;vertical-align:middle;overflow:hidden;border-radius:6.25rem}:host[data-size='m']{width:2rem;height:1rem}:host[data-size='l']{width:3rem;height:1.5rem}.checkbox{padding:0;border:0;border-radius:inherit;background:0 0;font-size:inherit;line-height:inherit;font-weight:inherit;color:inherit;caret-color:currentColor;outline:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;word-break:keep-all;-webkit-text-fill-color:currentColor;position:absolute;top:0;left:0;height:100%;width:100%;opacity:0;cursor:pointer}.checkbox:-webkit-autofill,.checkbox:-webkit-autofill:focus,.checkbox:-webkit-autofill:hover{border-radius:inherit;color:inherit!important;background-color:transparent!important;-webkit-text-fill-color:var(--tui-text-01)!important;border-color:var(--tui-autofill);-webkit-box-shadow:0 0 0 1000px var(--tui-autofill) inset!important}:host._disabled .checkbox{pointer-events:none;cursor:default}.toggle{transition-property:transform;transition-duration:var(--tui-duration,300ms);transition-timing-function:ease-in-out;display:flex;align-items:center;justify-content:center}:host[data-size='m'] .toggle{width:3rem;height:1rem;transform:translateX(-1rem)}:host[data-size='l'] .toggle{width:4.5rem;height:1.5rem;transform:translateX(-1.5rem)}:host._checked .toggle{transform:translateX(0)}.circle{margin:.125rem 0;flex-shrink:0;border-radius:100%;background-color:var(--tui-base-01)}:host._disabled .circle_light{opacity:.24}:host[data-size='m'] .circle{width:.75rem;height:.75rem}:host[data-size='l'] .circle{width:1rem;height:1rem}:host._disabled .circle{background-color:var(--tui-base-01)}:host:not(._checked) .loader{color:var(--tui-base-06)}:host:not(._checked)._disabled .loader{color:var(--tui-base-05)}:host:not(._checked)[data-mode=onDark] .loader{color:var(--tui-text-03-night)}:host:not(._checked)[data-mode=onDark]._disabled .loader{color:var(--tui-clear-inverse-active)}:host:not(._checked)[data-mode=onLight] .loader{color:var(--tui-text-03)}:host:not(._checked)[data-mode=onLight]._disabled .loader{color:var(--tui-clear-active)}:host[data-size='m'] .loader{width:.75rem;margin:0 .2rem;transform:scale(.75)}:host[data-size='l'] .loader{width:1rem;margin:0 .25rem}.icon-wrapper{display:flex}.icon{opacity:.8}.icon_off{color:var(--tui-base-06)}:host._disabled .icon_off{color:var(--tui-base-05)}:host[data-mode=onDark] .icon_off{color:var(--tui-text-03-night)}:host[data-mode=onDark]._disabled .icon_off{color:var(--tui-clear-inverse-active)}:host[data-mode=onLight] .icon_off{color:var(--tui-text-03)}:host[data-mode=onLight]._disabled .icon_off{color:var(--tui-clear-active)}:host[data-size='m'] .icon{width:1rem;height:1rem;transform:scale(.75)}:host[data-size='l'] .icon{margin:0 .125rem;width:1.5rem;height:1.5rem}:host._hovered .icon{opacity:1}"]
130
134
  }),
131
135
  __param(0, Optional()),
132
136
  __param(0, Self()),
@@ -163,5 +167,5 @@ TuiToggleModule = __decorate([
163
167
  * Generated bundle index. Do not edit.
164
168
  */
165
169
 
166
- export { TUI_TOGGLE_DEFAULT_OPTIONS, TUI_TOGGLE_OPTIONS, TuiToggleComponent, TuiToggleModule };
170
+ export { TUI_TOGGLE_DEFAULT_OPTIONS, TUI_TOGGLE_OPTIONS, TuiToggleComponent, TuiToggleModule, tuiToggleOptionsProvider };
167
171
  //# sourceMappingURL=taiga-ui-kit-components-toggle.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-kit-components-toggle.js","sources":["ng://@taiga-ui/kit/components/toggle/toggle-options.ts","ng://@taiga-ui/kit/components/toggle/toggle.component.ts","ng://@taiga-ui/kit/components/toggle/toggle.module.ts","ng://@taiga-ui/kit/components/toggle/taiga-ui-kit-components-toggle.ts"],"sourcesContent":["import {InjectionToken} from '@angular/core';\nimport {TuiContextWithImplicit} from '@taiga-ui/cdk';\nimport {TuiSizeL} from '@taiga-ui/core';\nimport {PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\n\nexport interface ToggleOptions {\n readonly icons: Readonly<{\n toggleOff: PolymorpheusContent<TuiContextWithImplicit<TuiSizeL>>;\n toggleOn: PolymorpheusContent<TuiContextWithImplicit<TuiSizeL>>;\n }>;\n readonly singleColor: boolean;\n readonly showIcons: boolean;\n readonly size: TuiSizeL;\n}\n\n/** Default values for the toggle options. */\nexport const TUI_TOGGLE_DEFAULT_OPTIONS: ToggleOptions = {\n icons: {\n toggleOff({$implicit}: TuiContextWithImplicit<TuiSizeL>): string {\n return $implicit === 'm' ? 'tuiIconToggleOff' : 'tuiIconToggleOffLarge';\n },\n toggleOn({$implicit}: TuiContextWithImplicit<TuiSizeL>): string {\n return $implicit === 'm' ? 'tuiIconToggleOn' : 'tuiIconToggleOnLarge';\n },\n },\n singleColor: false,\n showIcons: false,\n size: 'm',\n};\n\nexport const TUI_TOGGLE_OPTIONS = new InjectionToken<ToggleOptions>(\n 'Default parameters for toggle component',\n {\n factory: () => TUI_TOGGLE_DEFAULT_OPTIONS,\n },\n);\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n forwardRef,\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 TUI_FOCUSABLE_ITEM_ACCESSOR,\n TuiContextWithImplicit,\n tuiDefaultProp,\n TuiFocusableElementAccessor,\n TuiNativeFocusableElement,\n} from '@taiga-ui/cdk';\nimport {\n TuiAppearance,\n TuiBrightness,\n TuiModeDirective,\n TuiSizeL,\n TuiSizeXS,\n} from '@taiga-ui/core';\nimport {PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\n\nimport {ToggleOptions, TUI_TOGGLE_OPTIONS} from './toggle-options';\n\n@Component({\n selector: 'tui-toggle',\n templateUrl: './toggle.template.html',\n styleUrls: ['./toggle.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: TUI_FOCUSABLE_ITEM_ACCESSOR,\n useExisting: forwardRef(() => TuiToggleComponent),\n },\n ],\n})\nexport class TuiToggleComponent\n extends AbstractTuiControl<boolean>\n implements TuiFocusableElementAccessor\n{\n @ViewChild('focusableElement')\n private readonly focusableElement?: ElementRef<TuiNativeFocusableElement>;\n\n @Input()\n @tuiDefaultProp()\n singleColor = this.options.singleColor;\n\n @Input()\n @tuiDefaultProp()\n showIcons = this.options.showIcons;\n\n @Input()\n @tuiDefaultProp()\n showLoader = false;\n\n @Input()\n @HostBinding('attr.data-tui-host-size')\n @tuiDefaultProp()\n size: TuiSizeL = this.options.size;\n\n constructor(\n @Optional()\n @Self()\n @Inject(NgControl)\n control: NgControl | null,\n @Inject(ChangeDetectorRef) changeDetectorRef: ChangeDetectorRef,\n @Optional()\n @Inject(TuiModeDirective)\n private readonly modeDirective: TuiModeDirective | null,\n @Inject(TUI_TOGGLE_OPTIONS)\n readonly options: ToggleOptions,\n ) {\n super(control, changeDetectorRef);\n }\n\n get iconOn(): PolymorpheusContent<TuiContextWithImplicit<TuiSizeL>> {\n return this.options.icons.toggleOn;\n }\n\n get iconOff(): PolymorpheusContent<TuiContextWithImplicit<TuiSizeL>> {\n return this.options.icons.toggleOff;\n }\n\n get nativeFocusableElement(): TuiNativeFocusableElement | null {\n return this.focusableElement ? this.focusableElement.nativeElement : null;\n }\n\n get focused(): boolean {\n return isNativeFocused(this.nativeFocusableElement);\n }\n\n get appearance(): TuiAppearance {\n return this.singleColor || this.checked\n ? TuiAppearance.Primary\n : TuiAppearance.Secondary;\n }\n\n get sizeM(): boolean {\n return this.size === 'm';\n }\n\n @HostBinding('class._checked')\n get checked(): boolean {\n return this.value;\n }\n\n get loaderSize(): TuiSizeXS {\n return this.sizeM ? 'xs' : 's';\n }\n\n @HostBinding('attr.data-mode')\n get hostMode(): TuiBrightness | null {\n return this.modeDirective ? this.modeDirective.mode : null;\n }\n\n onChecked(checked: boolean) {\n this.updateValue(checked);\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 onFocusVisible(focusVisible: boolean) {\n this.updateFocusVisible(focusVisible);\n }\n\n protected getFallbackValue(): boolean {\n return false;\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {\n TuiCheckedModule,\n TuiFocusableModule,\n TuiFocusedModule,\n TuiFocusVisibleModule,\n TuiHoveredModule,\n TuiPressedModule,\n} from '@taiga-ui/cdk';\nimport {TuiLoaderModule, TuiSvgModule, TuiWrapperModule} from '@taiga-ui/core';\nimport {PolymorpheusModule} from '@tinkoff/ng-polymorpheus';\n\nimport {TuiToggleComponent} from './toggle.component';\n\n@NgModule({\n imports: [\n CommonModule,\n TuiFocusedModule,\n TuiFocusableModule,\n TuiHoveredModule,\n TuiPressedModule,\n TuiFocusVisibleModule,\n TuiCheckedModule,\n TuiWrapperModule,\n TuiSvgModule,\n TuiLoaderModule,\n PolymorpheusModule,\n ],\n declarations: [TuiToggleComponent],\n exports: [TuiToggleComponent],\n})\nexport class TuiToggleModule {}\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-toggle.js","sources":["ng://@taiga-ui/kit/components/toggle/toggle-options.ts","ng://@taiga-ui/kit/components/toggle/toggle.component.ts","ng://@taiga-ui/kit/components/toggle/toggle.module.ts","ng://@taiga-ui/kit/components/toggle/taiga-ui-kit-components-toggle.ts"],"sourcesContent":["import {InjectionToken, ValueProvider} from '@angular/core';\nimport {TuiContextWithImplicit} from '@taiga-ui/cdk';\nimport {TuiSizeL} from '@taiga-ui/core';\nimport {PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\n\nexport interface TuiToggleOptions {\n readonly icons: Readonly<{\n toggleOff: PolymorpheusContent<TuiContextWithImplicit<TuiSizeL>>;\n toggleOn: PolymorpheusContent<TuiContextWithImplicit<TuiSizeL>>;\n }>;\n readonly singleColor: boolean;\n readonly showIcons: boolean;\n readonly size: TuiSizeL;\n}\n\n/**\n * @deprecated: use TuiToggleOptions instead\n * todo: remove in 3.0\n */\nexport type ToggleOptions = TuiToggleOptions;\n\n/** Default values for the toggle options. */\nexport const TUI_TOGGLE_DEFAULT_OPTIONS: TuiToggleOptions = {\n icons: {\n toggleOff({$implicit}: TuiContextWithImplicit<TuiSizeL>): string {\n return $implicit === 'm' ? 'tuiIconToggleOff' : 'tuiIconToggleOffLarge';\n },\n toggleOn({$implicit}: TuiContextWithImplicit<TuiSizeL>): string {\n return $implicit === 'm' ? 'tuiIconToggleOn' : 'tuiIconToggleOnLarge';\n },\n },\n singleColor: false,\n showIcons: false,\n size: 'm',\n};\n\nexport const TUI_TOGGLE_OPTIONS = new InjectionToken<TuiToggleOptions>(\n 'Default parameters for toggle component',\n {\n factory: () => TUI_TOGGLE_DEFAULT_OPTIONS,\n },\n);\n\nexport const tuiToggleOptionsProvider: (\n options: Partial<TuiToggleOptions>,\n) => ValueProvider = (options: Partial<TuiToggleOptions>) => ({\n provide: TUI_TOGGLE_OPTIONS,\n useValue: {...TUI_TOGGLE_DEFAULT_OPTIONS, ...options},\n});\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n forwardRef,\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 TUI_FOCUSABLE_ITEM_ACCESSOR,\n TuiContextWithImplicit,\n tuiDefaultProp,\n TuiFocusableElementAccessor,\n TuiNativeFocusableElement,\n} from '@taiga-ui/cdk';\nimport {\n TuiAppearance,\n TuiBrightness,\n TuiModeDirective,\n TuiSizeL,\n TuiSizeXS,\n} from '@taiga-ui/core';\nimport {PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\n\nimport {TUI_TOGGLE_OPTIONS, TuiToggleOptions} from './toggle-options';\n\n@Component({\n selector: 'tui-toggle',\n templateUrl: './toggle.template.html',\n styleUrls: ['./toggle.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: TUI_FOCUSABLE_ITEM_ACCESSOR,\n useExisting: forwardRef(() => TuiToggleComponent),\n },\n ],\n})\nexport class TuiToggleComponent\n extends AbstractTuiControl<boolean>\n implements TuiFocusableElementAccessor\n{\n @ViewChild('focusableElement')\n private readonly focusableElement?: ElementRef<TuiNativeFocusableElement>;\n\n @Input()\n @tuiDefaultProp()\n singleColor = this.options.singleColor;\n\n @Input()\n @tuiDefaultProp()\n showIcons = this.options.showIcons;\n\n @Input()\n @tuiDefaultProp()\n showLoader = false;\n\n @Input()\n @HostBinding('attr.data-size')\n @tuiDefaultProp()\n size: TuiSizeL = this.options.size;\n\n constructor(\n @Optional()\n @Self()\n @Inject(NgControl)\n control: NgControl | null,\n @Inject(ChangeDetectorRef) changeDetectorRef: ChangeDetectorRef,\n @Optional()\n @Inject(TuiModeDirective)\n private readonly modeDirective: TuiModeDirective | null,\n @Inject(TUI_TOGGLE_OPTIONS)\n readonly options: TuiToggleOptions,\n ) {\n super(control, changeDetectorRef);\n }\n\n get iconOn(): PolymorpheusContent<TuiContextWithImplicit<TuiSizeL>> {\n return this.options.icons.toggleOn;\n }\n\n get iconOff(): PolymorpheusContent<TuiContextWithImplicit<TuiSizeL>> {\n return this.options.icons.toggleOff;\n }\n\n get nativeFocusableElement(): TuiNativeFocusableElement | null {\n return this.focusableElement ? this.focusableElement.nativeElement : null;\n }\n\n get focused(): boolean {\n return isNativeFocused(this.nativeFocusableElement);\n }\n\n get appearance(): TuiAppearance {\n return this.singleColor || this.checked\n ? TuiAppearance.Primary\n : TuiAppearance.Secondary;\n }\n\n get sizeM(): boolean {\n return this.size === 'm';\n }\n\n @HostBinding('class._checked')\n get checked(): boolean {\n return this.value;\n }\n\n get loaderSize(): TuiSizeXS {\n return this.sizeM ? 'xs' : 's';\n }\n\n @HostBinding('attr.data-mode')\n get hostMode(): TuiBrightness | null {\n return this.modeDirective ? this.modeDirective.mode : null;\n }\n\n onChecked(checked: boolean) {\n this.updateValue(checked);\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 onFocusVisible(focusVisible: boolean) {\n this.updateFocusVisible(focusVisible);\n }\n\n protected getFallbackValue(): boolean {\n return false;\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {\n TuiCheckedModule,\n TuiFocusableModule,\n TuiFocusedModule,\n TuiFocusVisibleModule,\n TuiHoveredModule,\n TuiPressedModule,\n} from '@taiga-ui/cdk';\nimport {TuiLoaderModule, TuiSvgModule, TuiWrapperModule} from '@taiga-ui/core';\nimport {PolymorpheusModule} from '@tinkoff/ng-polymorpheus';\n\nimport {TuiToggleComponent} from './toggle.component';\n\n@NgModule({\n imports: [\n CommonModule,\n TuiFocusedModule,\n TuiFocusableModule,\n TuiHoveredModule,\n TuiPressedModule,\n TuiFocusVisibleModule,\n TuiCheckedModule,\n TuiWrapperModule,\n TuiSvgModule,\n TuiLoaderModule,\n PolymorpheusModule,\n ],\n declarations: [TuiToggleComponent],\n exports: [TuiToggleComponent],\n})\nexport class TuiToggleModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}