@taiga-ui/kit 2.40.0 → 2.42.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 (556) hide show
  1. package/abstract/input-slider.d.ts +27 -9
  2. package/abstract/slider/slider.d.ts +3 -6
  3. package/abstract/taiga-ui-kit-abstract.metadata.json +1 -1
  4. package/bundles/taiga-ui-kit-abstract.umd.js +43 -64
  5. package/bundles/taiga-ui-kit-abstract.umd.js.map +1 -1
  6. package/bundles/taiga-ui-kit-abstract.umd.min.js +2 -2
  7. package/bundles/taiga-ui-kit-abstract.umd.min.js.map +1 -1
  8. package/bundles/taiga-ui-kit-components-accordion.umd.js +1 -1
  9. package/bundles/taiga-ui-kit-components-accordion.umd.js.map +1 -1
  10. package/bundles/taiga-ui-kit-components-accordion.umd.min.js +1 -1
  11. package/bundles/taiga-ui-kit-components-accordion.umd.min.js.map +1 -1
  12. package/bundles/taiga-ui-kit-components-action.umd.js +1 -1
  13. package/bundles/taiga-ui-kit-components-action.umd.js.map +1 -1
  14. package/bundles/taiga-ui-kit-components-action.umd.min.js +1 -1
  15. package/bundles/taiga-ui-kit-components-action.umd.min.js.map +1 -1
  16. package/bundles/taiga-ui-kit-components-avatar.umd.js +27 -5
  17. package/bundles/taiga-ui-kit-components-avatar.umd.js.map +1 -1
  18. package/bundles/taiga-ui-kit-components-avatar.umd.min.js +2 -2
  19. package/bundles/taiga-ui-kit-components-avatar.umd.min.js.map +1 -1
  20. package/bundles/taiga-ui-kit-components-breadcrumbs.umd.js +1 -1
  21. package/bundles/taiga-ui-kit-components-breadcrumbs.umd.js.map +1 -1
  22. package/bundles/taiga-ui-kit-components-breadcrumbs.umd.min.js +1 -1
  23. package/bundles/taiga-ui-kit-components-breadcrumbs.umd.min.js.map +1 -1
  24. package/bundles/taiga-ui-kit-components-calendar-month.umd.js +1 -1
  25. package/bundles/taiga-ui-kit-components-calendar-month.umd.js.map +1 -1
  26. package/bundles/taiga-ui-kit-components-calendar-month.umd.min.js +1 -1
  27. package/bundles/taiga-ui-kit-components-calendar-month.umd.min.js.map +1 -1
  28. package/bundles/taiga-ui-kit-components-carousel.umd.js +1 -1
  29. package/bundles/taiga-ui-kit-components-carousel.umd.js.map +1 -1
  30. package/bundles/taiga-ui-kit-components-carousel.umd.min.js +1 -1
  31. package/bundles/taiga-ui-kit-components-carousel.umd.min.js.map +1 -1
  32. package/bundles/taiga-ui-kit-components-checkbox-labeled.umd.js +1 -1
  33. package/bundles/taiga-ui-kit-components-checkbox-labeled.umd.js.map +1 -1
  34. package/bundles/taiga-ui-kit-components-checkbox-labeled.umd.min.js +1 -1
  35. package/bundles/taiga-ui-kit-components-checkbox-labeled.umd.min.js.map +1 -1
  36. package/bundles/taiga-ui-kit-components-checkbox.umd.js +1 -1
  37. package/bundles/taiga-ui-kit-components-checkbox.umd.min.js +1 -1
  38. package/bundles/taiga-ui-kit-components-checkbox.umd.min.js.map +1 -1
  39. package/bundles/taiga-ui-kit-components-combo-box.umd.js +1 -1
  40. package/bundles/taiga-ui-kit-components-combo-box.umd.js.map +1 -1
  41. package/bundles/taiga-ui-kit-components-combo-box.umd.min.js +1 -1
  42. package/bundles/taiga-ui-kit-components-combo-box.umd.min.js.map +1 -1
  43. package/bundles/taiga-ui-kit-components-data-list-wrapper.umd.js +2 -2
  44. package/bundles/taiga-ui-kit-components-data-list-wrapper.umd.js.map +1 -1
  45. package/bundles/taiga-ui-kit-components-data-list-wrapper.umd.min.js +1 -1
  46. package/bundles/taiga-ui-kit-components-data-list-wrapper.umd.min.js.map +1 -1
  47. package/bundles/taiga-ui-kit-components-files.umd.js +3 -3
  48. package/bundles/taiga-ui-kit-components-files.umd.js.map +1 -1
  49. package/bundles/taiga-ui-kit-components-files.umd.min.js +1 -1
  50. package/bundles/taiga-ui-kit-components-files.umd.min.js.map +1 -1
  51. package/bundles/taiga-ui-kit-components-filter.umd.js +1 -1
  52. package/bundles/taiga-ui-kit-components-filter.umd.js.map +1 -1
  53. package/bundles/taiga-ui-kit-components-filter.umd.min.js +1 -1
  54. package/bundles/taiga-ui-kit-components-filter.umd.min.js.map +1 -1
  55. package/bundles/taiga-ui-kit-components-input-copy.umd.js +1 -1
  56. package/bundles/taiga-ui-kit-components-input-copy.umd.js.map +1 -1
  57. package/bundles/taiga-ui-kit-components-input-copy.umd.min.js +1 -1
  58. package/bundles/taiga-ui-kit-components-input-copy.umd.min.js.map +1 -1
  59. package/bundles/taiga-ui-kit-components-input-count.umd.js +1 -1
  60. package/bundles/taiga-ui-kit-components-input-count.umd.js.map +1 -1
  61. package/bundles/taiga-ui-kit-components-input-count.umd.min.js +1 -1
  62. package/bundles/taiga-ui-kit-components-input-count.umd.min.js.map +1 -1
  63. package/bundles/taiga-ui-kit-components-input-date-range.umd.js +1 -1
  64. package/bundles/taiga-ui-kit-components-input-date-range.umd.js.map +1 -1
  65. package/bundles/taiga-ui-kit-components-input-date-range.umd.min.js +1 -1
  66. package/bundles/taiga-ui-kit-components-input-date-range.umd.min.js.map +1 -1
  67. package/bundles/taiga-ui-kit-components-input-date-time.umd.js +1 -1
  68. package/bundles/taiga-ui-kit-components-input-date-time.umd.js.map +1 -1
  69. package/bundles/taiga-ui-kit-components-input-date-time.umd.min.js +1 -1
  70. package/bundles/taiga-ui-kit-components-input-date-time.umd.min.js.map +1 -1
  71. package/bundles/taiga-ui-kit-components-input-date.umd.js +1 -1
  72. package/bundles/taiga-ui-kit-components-input-date.umd.js.map +1 -1
  73. package/bundles/taiga-ui-kit-components-input-date.umd.min.js +1 -1
  74. package/bundles/taiga-ui-kit-components-input-date.umd.min.js.map +1 -1
  75. package/bundles/taiga-ui-kit-components-input-file.umd.js +1 -1
  76. package/bundles/taiga-ui-kit-components-input-file.umd.js.map +1 -1
  77. package/bundles/taiga-ui-kit-components-input-file.umd.min.js +2 -2
  78. package/bundles/taiga-ui-kit-components-input-file.umd.min.js.map +1 -1
  79. package/bundles/taiga-ui-kit-components-input-files.umd.js +1 -1
  80. package/bundles/taiga-ui-kit-components-input-files.umd.min.js +2 -2
  81. package/bundles/taiga-ui-kit-components-input-files.umd.min.js.map +1 -1
  82. package/bundles/taiga-ui-kit-components-input-month-range.umd.js +1 -1
  83. package/bundles/taiga-ui-kit-components-input-month-range.umd.js.map +1 -1
  84. package/bundles/taiga-ui-kit-components-input-month-range.umd.min.js +1 -1
  85. package/bundles/taiga-ui-kit-components-input-month-range.umd.min.js.map +1 -1
  86. package/bundles/taiga-ui-kit-components-input-month.umd.js +1 -1
  87. package/bundles/taiga-ui-kit-components-input-month.umd.js.map +1 -1
  88. package/bundles/taiga-ui-kit-components-input-month.umd.min.js +1 -1
  89. package/bundles/taiga-ui-kit-components-input-month.umd.min.js.map +1 -1
  90. package/bundles/taiga-ui-kit-components-input-number.umd.js +2 -2
  91. package/bundles/taiga-ui-kit-components-input-number.umd.js.map +1 -1
  92. package/bundles/taiga-ui-kit-components-input-number.umd.min.js +1 -1
  93. package/bundles/taiga-ui-kit-components-input-number.umd.min.js.map +1 -1
  94. package/bundles/taiga-ui-kit-components-input-password.umd.js +1 -1
  95. package/bundles/taiga-ui-kit-components-input-password.umd.js.map +1 -1
  96. package/bundles/taiga-ui-kit-components-input-password.umd.min.js +1 -1
  97. package/bundles/taiga-ui-kit-components-input-password.umd.min.js.map +1 -1
  98. package/bundles/taiga-ui-kit-components-input-phone.umd.js +1 -1
  99. package/bundles/taiga-ui-kit-components-input-phone.umd.js.map +1 -1
  100. package/bundles/taiga-ui-kit-components-input-phone.umd.min.js +1 -1
  101. package/bundles/taiga-ui-kit-components-input-phone.umd.min.js.map +1 -1
  102. package/bundles/taiga-ui-kit-components-input-range.umd.js +196 -164
  103. package/bundles/taiga-ui-kit-components-input-range.umd.js.map +1 -1
  104. package/bundles/taiga-ui-kit-components-input-range.umd.min.js +2 -2
  105. package/bundles/taiga-ui-kit-components-input-range.umd.min.js.map +1 -1
  106. package/bundles/taiga-ui-kit-components-input-slider.umd.js +6 -18
  107. package/bundles/taiga-ui-kit-components-input-slider.umd.js.map +1 -1
  108. package/bundles/taiga-ui-kit-components-input-slider.umd.min.js +1 -1
  109. package/bundles/taiga-ui-kit-components-input-slider.umd.min.js.map +1 -1
  110. package/bundles/taiga-ui-kit-components-input-tag.umd.js +5 -5
  111. package/bundles/taiga-ui-kit-components-input-tag.umd.js.map +1 -1
  112. package/bundles/taiga-ui-kit-components-input-tag.umd.min.js +1 -1
  113. package/bundles/taiga-ui-kit-components-input-tag.umd.min.js.map +1 -1
  114. package/bundles/taiga-ui-kit-components-input.umd.js +1 -1
  115. package/bundles/taiga-ui-kit-components-input.umd.js.map +1 -1
  116. package/bundles/taiga-ui-kit-components-input.umd.min.js +1 -1
  117. package/bundles/taiga-ui-kit-components-input.umd.min.js.map +1 -1
  118. package/bundles/taiga-ui-kit-components-marker-icon.umd.js +1 -1
  119. package/bundles/taiga-ui-kit-components-marker-icon.umd.js.map +1 -1
  120. package/bundles/taiga-ui-kit-components-marker-icon.umd.min.js +1 -1
  121. package/bundles/taiga-ui-kit-components-marker-icon.umd.min.js.map +1 -1
  122. package/bundles/taiga-ui-kit-components-multi-select.umd.js +1 -1
  123. package/bundles/taiga-ui-kit-components-multi-select.umd.js.map +1 -1
  124. package/bundles/taiga-ui-kit-components-multi-select.umd.min.js +1 -1
  125. package/bundles/taiga-ui-kit-components-multi-select.umd.min.js.map +1 -1
  126. package/bundles/taiga-ui-kit-components-pagination.umd.js +1 -1
  127. package/bundles/taiga-ui-kit-components-pagination.umd.js.map +1 -1
  128. package/bundles/taiga-ui-kit-components-pagination.umd.min.js +1 -1
  129. package/bundles/taiga-ui-kit-components-pagination.umd.min.js.map +1 -1
  130. package/bundles/taiga-ui-kit-components-pdf-viewer.umd.js +1 -1
  131. package/bundles/taiga-ui-kit-components-pdf-viewer.umd.js.map +1 -1
  132. package/bundles/taiga-ui-kit-components-pdf-viewer.umd.min.js +1 -1
  133. package/bundles/taiga-ui-kit-components-pdf-viewer.umd.min.js.map +1 -1
  134. package/bundles/taiga-ui-kit-components-progress.umd.js +2 -2
  135. package/bundles/taiga-ui-kit-components-progress.umd.js.map +1 -1
  136. package/bundles/taiga-ui-kit-components-progress.umd.min.js +1 -1
  137. package/bundles/taiga-ui-kit-components-progress.umd.min.js.map +1 -1
  138. package/bundles/taiga-ui-kit-components-radio.umd.js +2 -2
  139. package/bundles/taiga-ui-kit-components-radio.umd.js.map +1 -1
  140. package/bundles/taiga-ui-kit-components-radio.umd.min.js +1 -1
  141. package/bundles/taiga-ui-kit-components-radio.umd.min.js.map +1 -1
  142. package/bundles/taiga-ui-kit-components-range.umd.js +221 -31
  143. package/bundles/taiga-ui-kit-components-range.umd.js.map +1 -1
  144. package/bundles/taiga-ui-kit-components-range.umd.min.js +2 -2
  145. package/bundles/taiga-ui-kit-components-range.umd.min.js.map +1 -1
  146. package/bundles/taiga-ui-kit-components-rating.umd.js +1 -1
  147. package/bundles/taiga-ui-kit-components-rating.umd.js.map +1 -1
  148. package/bundles/taiga-ui-kit-components-rating.umd.min.js +1 -1
  149. package/bundles/taiga-ui-kit-components-rating.umd.min.js.map +1 -1
  150. package/bundles/taiga-ui-kit-components-select.umd.js +1 -1
  151. package/bundles/taiga-ui-kit-components-select.umd.js.map +1 -1
  152. package/bundles/taiga-ui-kit-components-select.umd.min.js +1 -1
  153. package/bundles/taiga-ui-kit-components-select.umd.min.js.map +1 -1
  154. package/bundles/taiga-ui-kit-components-slider.umd.js +62 -6
  155. package/bundles/taiga-ui-kit-components-slider.umd.js.map +1 -1
  156. package/bundles/taiga-ui-kit-components-slider.umd.min.js +1 -1
  157. package/bundles/taiga-ui-kit-components-slider.umd.min.js.map +1 -1
  158. package/bundles/taiga-ui-kit-components-stepper.umd.js +1 -1
  159. package/bundles/taiga-ui-kit-components-stepper.umd.js.map +1 -1
  160. package/bundles/taiga-ui-kit-components-stepper.umd.min.js +2 -2
  161. package/bundles/taiga-ui-kit-components-stepper.umd.min.js.map +1 -1
  162. package/bundles/taiga-ui-kit-components-tabs.umd.js +38 -36
  163. package/bundles/taiga-ui-kit-components-tabs.umd.js.map +1 -1
  164. package/bundles/taiga-ui-kit-components-tabs.umd.min.js +1 -1
  165. package/bundles/taiga-ui-kit-components-tabs.umd.min.js.map +1 -1
  166. package/bundles/taiga-ui-kit-components-tag.umd.js +2 -2
  167. package/bundles/taiga-ui-kit-components-tag.umd.js.map +1 -1
  168. package/bundles/taiga-ui-kit-components-tag.umd.min.js +1 -1
  169. package/bundles/taiga-ui-kit-components-tag.umd.min.js.map +1 -1
  170. package/bundles/taiga-ui-kit-components-text-area.umd.js +2 -2
  171. package/bundles/taiga-ui-kit-components-text-area.umd.js.map +1 -1
  172. package/bundles/taiga-ui-kit-components-text-area.umd.min.js +1 -1
  173. package/bundles/taiga-ui-kit-components-text-area.umd.min.js.map +1 -1
  174. package/bundles/taiga-ui-kit-components-toggle.umd.js +1 -1
  175. package/bundles/taiga-ui-kit-components-toggle.umd.min.js +1 -1
  176. package/bundles/taiga-ui-kit-components-toggle.umd.min.js.map +1 -1
  177. package/bundles/taiga-ui-kit-tokens.umd.js +7 -1
  178. package/bundles/taiga-ui-kit-tokens.umd.js.map +1 -1
  179. package/bundles/taiga-ui-kit-tokens.umd.min.js +1 -1
  180. package/bundles/taiga-ui-kit-tokens.umd.min.js.map +1 -1
  181. package/components/accordion/taiga-ui-kit-components-accordion.metadata.json +1 -1
  182. package/components/action/taiga-ui-kit-components-action.metadata.json +1 -1
  183. package/components/avatar/avatar-options.d.ts +11 -0
  184. package/components/avatar/avatar.component.d.ts +4 -2
  185. package/components/avatar/index.d.ts +1 -0
  186. package/components/avatar/taiga-ui-kit-components-avatar.metadata.json +1 -1
  187. package/components/breadcrumbs/taiga-ui-kit-components-breadcrumbs.metadata.json +1 -1
  188. package/components/calendar-month/taiga-ui-kit-components-calendar-month.metadata.json +1 -1
  189. package/components/carousel/taiga-ui-kit-components-carousel.metadata.json +1 -1
  190. package/components/checkbox/taiga-ui-kit-components-checkbox.metadata.json +1 -1
  191. package/components/checkbox-labeled/taiga-ui-kit-components-checkbox-labeled.metadata.json +1 -1
  192. package/components/combo-box/taiga-ui-kit-components-combo-box.metadata.json +1 -1
  193. package/components/data-list-wrapper/taiga-ui-kit-components-data-list-wrapper.metadata.json +1 -1
  194. package/components/files/taiga-ui-kit-components-files.metadata.json +1 -1
  195. package/components/filter/taiga-ui-kit-components-filter.metadata.json +1 -1
  196. package/components/input/taiga-ui-kit-components-input.metadata.json +1 -1
  197. package/components/input-copy/taiga-ui-kit-components-input-copy.metadata.json +1 -1
  198. package/components/input-count/taiga-ui-kit-components-input-count.metadata.json +1 -1
  199. package/components/input-date/taiga-ui-kit-components-input-date.metadata.json +1 -1
  200. package/components/input-date-range/taiga-ui-kit-components-input-date-range.metadata.json +1 -1
  201. package/components/input-date-time/taiga-ui-kit-components-input-date-time.metadata.json +1 -1
  202. package/components/input-file/taiga-ui-kit-components-input-file.metadata.json +1 -1
  203. package/components/input-files/taiga-ui-kit-components-input-files.metadata.json +1 -1
  204. package/components/input-month/taiga-ui-kit-components-input-month.metadata.json +1 -1
  205. package/components/input-month-range/taiga-ui-kit-components-input-month-range.metadata.json +1 -1
  206. package/components/input-number/taiga-ui-kit-components-input-number.metadata.json +1 -1
  207. package/components/input-password/taiga-ui-kit-components-input-password.metadata.json +1 -1
  208. package/components/input-phone/taiga-ui-kit-components-input-phone.metadata.json +1 -1
  209. package/components/input-range/input-range.component.d.ts +44 -31
  210. package/components/input-range/taiga-ui-kit-components-input-range.metadata.json +1 -1
  211. package/components/input-slider/input-slider.component.d.ts +2 -8
  212. package/components/input-slider/taiga-ui-kit-components-input-slider.metadata.json +1 -1
  213. package/components/input-tag/input-tag.component.d.ts +1 -1
  214. package/components/input-tag/taiga-ui-kit-components-input-tag.metadata.json +1 -1
  215. package/components/marker-icon/taiga-ui-kit-components-marker-icon.metadata.json +1 -1
  216. package/components/multi-select/taiga-ui-kit-components-multi-select.metadata.json +1 -1
  217. package/components/pagination/taiga-ui-kit-components-pagination.metadata.json +1 -1
  218. package/components/pdf-viewer/taiga-ui-kit-components-pdf-viewer.metadata.json +1 -1
  219. package/components/progress/taiga-ui-kit-components-progress.metadata.json +1 -1
  220. package/components/radio/taiga-ui-kit-components-radio.metadata.json +1 -1
  221. package/components/range/index.d.ts +1 -0
  222. package/components/range/range-change.directive.d.ts +20 -0
  223. package/components/range/range.component.d.ts +33 -5
  224. package/components/range/taiga-ui-kit-components-range.metadata.json +1 -1
  225. package/components/rating/taiga-ui-kit-components-rating.metadata.json +1 -1
  226. package/components/select/taiga-ui-kit-components-select.metadata.json +1 -1
  227. package/components/slider/index.d.ts +1 -0
  228. package/components/slider/slider-old.component.d.ts +3 -1
  229. package/components/slider/slider-readonly.directive.d.ts +9 -0
  230. package/components/slider/taiga-ui-kit-components-slider.metadata.json +1 -1
  231. package/components/stepper/taiga-ui-kit-components-stepper.metadata.json +1 -1
  232. package/components/tabs/index.d.ts +0 -1
  233. package/components/tabs/tab/tab.component.d.ts +2 -1
  234. package/components/tabs/tabs/tabs.component.d.ts +2 -3
  235. package/components/tabs/tabs-with-more/tabs-with-more.component.d.ts +4 -1
  236. package/components/tabs/taiga-ui-kit-components-tabs.metadata.json +1 -1
  237. package/components/tag/taiga-ui-kit-components-tag.metadata.json +1 -1
  238. package/components/text-area/taiga-ui-kit-components-text-area.metadata.json +1 -1
  239. package/components/toggle/taiga-ui-kit-components-toggle.metadata.json +1 -1
  240. package/esm2015/abstract/input-slider.js +30 -37
  241. package/esm2015/abstract/slider/slider.js +13 -19
  242. package/esm2015/components/accordion/accordion-item/accordion-item.component.js +2 -2
  243. package/esm2015/components/action/action.component.js +2 -2
  244. package/esm2015/components/avatar/avatar-options.js +15 -0
  245. package/esm2015/components/avatar/avatar.component.js +14 -8
  246. package/esm2015/components/avatar/index.js +2 -1
  247. package/esm2015/components/breadcrumbs/breadcrumbs-wrapper.component.js +2 -2
  248. package/esm2015/components/calendar-month/calendar-month.component.js +2 -2
  249. package/esm2015/components/carousel/carousel.component.js +2 -2
  250. package/esm2015/components/checkbox/checkbox.component.js +1 -1
  251. package/esm2015/components/checkbox-labeled/checkbox-labeled.component.js +2 -2
  252. package/esm2015/components/combo-box/combo-box.component.js +2 -2
  253. package/esm2015/components/data-list-wrapper/data-list-group-wrapper.component.js +2 -2
  254. package/esm2015/components/data-list-wrapper/data-list-wrapper.component.js +2 -2
  255. package/esm2015/components/files/file/file.component.js +2 -2
  256. package/esm2015/components/files/files.component.js +3 -3
  257. package/esm2015/components/filter/filter.component.js +2 -2
  258. package/esm2015/components/input/input.component.js +2 -2
  259. package/esm2015/components/input-copy/input-copy.component.js +2 -2
  260. package/esm2015/components/input-count/input-count.component.js +2 -2
  261. package/esm2015/components/input-date/input-date.component.js +2 -2
  262. package/esm2015/components/input-date-range/input-date-range.component.js +2 -2
  263. package/esm2015/components/input-date-time/input-date-time.component.js +2 -2
  264. package/esm2015/components/input-file/file/file.component.js +2 -2
  265. package/esm2015/components/input-files/input-files.component.js +1 -1
  266. package/esm2015/components/input-month/input-month.component.js +2 -2
  267. package/esm2015/components/input-month-range/input-month-range.component.js +2 -2
  268. package/esm2015/components/input-number/input-number.component.js +3 -3
  269. package/esm2015/components/input-password/input-password.component.js +2 -2
  270. package/esm2015/components/input-phone/input-phone.component.js +2 -2
  271. package/esm2015/components/input-range/input-range.component.js +192 -156
  272. package/esm2015/components/input-range/input-range.module.js +13 -15
  273. package/esm2015/components/input-slider/input-slider.component.js +8 -20
  274. package/esm2015/components/input-tag/input-tag.component.js +6 -6
  275. package/esm2015/components/marker-icon/marker-icon.component.js +2 -2
  276. package/esm2015/components/multi-select/multi-select.component.js +2 -2
  277. package/esm2015/components/pagination/pagination.component.js +2 -2
  278. package/esm2015/components/pdf-viewer/pdf-viewer.component.js +2 -2
  279. package/esm2015/components/progress/progress-circle/progress-circle.component.js +2 -2
  280. package/esm2015/components/progress/progress-segmented/progress-segmented.component.js +2 -2
  281. package/esm2015/components/radio/radio.component.js +3 -3
  282. package/esm2015/components/range/index.js +2 -1
  283. package/esm2015/components/range/range-change.directive.js +83 -0
  284. package/esm2015/components/range/range.component.js +118 -28
  285. package/esm2015/components/range/range.module.js +10 -7
  286. package/esm2015/components/rating/rating.component.js +2 -2
  287. package/esm2015/components/select/select.component.js +2 -2
  288. package/esm2015/components/slider/index.js +2 -1
  289. package/esm2015/components/slider/slider-key-steps.directive.js +2 -2
  290. package/esm2015/components/slider/slider-old.component.js +11 -5
  291. package/esm2015/components/slider/slider-readonly.directive.js +50 -0
  292. package/esm2015/components/slider/slider.component.js +1 -1
  293. package/esm2015/components/slider/slider.module.js +4 -1
  294. package/esm2015/components/stepper/step/step.component.js +2 -2
  295. package/esm2015/components/tabs/index.js +1 -2
  296. package/esm2015/components/tabs/tab/tab.component.js +13 -9
  297. package/esm2015/components/tabs/tabs/tabs.component.js +5 -11
  298. package/esm2015/components/tabs/tabs-with-more/tabs-with-more.component.js +24 -16
  299. package/esm2015/components/tabs/underline/underline.component.js +2 -2
  300. package/esm2015/components/tag/tag.component.js +3 -3
  301. package/esm2015/components/text-area/text-area.component.js +3 -3
  302. package/esm2015/components/toggle/toggle.component.js +1 -1
  303. package/esm2015/tokens/i18n.js +2 -2
  304. package/esm2015/tokens/index.js +2 -1
  305. package/esm2015/tokens/mobile-aware.js +2 -1
  306. package/esm2015/tokens/tab-margin.js +5 -0
  307. package/esm5/abstract/input-slider.js +30 -48
  308. package/esm5/abstract/slider/slider.js +13 -19
  309. package/esm5/components/accordion/accordion-item/accordion-item.component.js +2 -2
  310. package/esm5/components/action/action.component.js +2 -2
  311. package/esm5/components/avatar/avatar-options.js +16 -0
  312. package/esm5/components/avatar/avatar.component.js +14 -8
  313. package/esm5/components/avatar/index.js +2 -1
  314. package/esm5/components/breadcrumbs/breadcrumbs-wrapper.component.js +2 -2
  315. package/esm5/components/calendar-month/calendar-month.component.js +2 -2
  316. package/esm5/components/carousel/carousel.component.js +2 -2
  317. package/esm5/components/checkbox/checkbox.component.js +1 -1
  318. package/esm5/components/checkbox-labeled/checkbox-labeled.component.js +2 -2
  319. package/esm5/components/combo-box/combo-box.component.js +2 -2
  320. package/esm5/components/data-list-wrapper/data-list-group-wrapper.component.js +2 -2
  321. package/esm5/components/data-list-wrapper/data-list-wrapper.component.js +2 -2
  322. package/esm5/components/files/file/file.component.js +2 -2
  323. package/esm5/components/files/files.component.js +3 -3
  324. package/esm5/components/filter/filter.component.js +2 -2
  325. package/esm5/components/input/input.component.js +2 -2
  326. package/esm5/components/input-copy/input-copy.component.js +2 -2
  327. package/esm5/components/input-count/input-count.component.js +2 -2
  328. package/esm5/components/input-date/input-date.component.js +2 -2
  329. package/esm5/components/input-date-range/input-date-range.component.js +2 -2
  330. package/esm5/components/input-date-time/input-date-time.component.js +2 -2
  331. package/esm5/components/input-file/file/file.component.js +2 -2
  332. package/esm5/components/input-files/input-files.component.js +1 -1
  333. package/esm5/components/input-month/input-month.component.js +2 -2
  334. package/esm5/components/input-month-range/input-month-range.component.js +2 -2
  335. package/esm5/components/input-number/input-number.component.js +3 -3
  336. package/esm5/components/input-password/input-password.component.js +2 -2
  337. package/esm5/components/input-phone/input-phone.component.js +2 -2
  338. package/esm5/components/input-range/input-range.component.js +194 -157
  339. package/esm5/components/input-range/input-range.module.js +13 -15
  340. package/esm5/components/input-slider/input-slider.component.js +8 -20
  341. package/esm5/components/input-tag/input-tag.component.js +6 -6
  342. package/esm5/components/marker-icon/marker-icon.component.js +2 -2
  343. package/esm5/components/multi-select/multi-select.component.js +2 -2
  344. package/esm5/components/pagination/pagination.component.js +2 -2
  345. package/esm5/components/pdf-viewer/pdf-viewer.component.js +2 -2
  346. package/esm5/components/progress/progress-circle/progress-circle.component.js +2 -2
  347. package/esm5/components/progress/progress-segmented/progress-segmented.component.js +2 -2
  348. package/esm5/components/radio/radio.component.js +3 -3
  349. package/esm5/components/range/index.js +2 -1
  350. package/esm5/components/range/range-change.directive.js +101 -0
  351. package/esm5/components/range/range.component.js +126 -29
  352. package/esm5/components/range/range.module.js +10 -7
  353. package/esm5/components/rating/rating.component.js +2 -2
  354. package/esm5/components/select/select.component.js +2 -2
  355. package/esm5/components/slider/index.js +2 -1
  356. package/esm5/components/slider/slider-key-steps.directive.js +2 -2
  357. package/esm5/components/slider/slider-old.component.js +11 -5
  358. package/esm5/components/slider/slider-readonly.directive.js +51 -0
  359. package/esm5/components/slider/slider.component.js +1 -1
  360. package/esm5/components/slider/slider.module.js +4 -1
  361. package/esm5/components/stepper/step/step.component.js +2 -2
  362. package/esm5/components/tabs/index.js +1 -2
  363. package/esm5/components/tabs/tab/tab.component.js +13 -9
  364. package/esm5/components/tabs/tabs/tabs.component.js +5 -15
  365. package/esm5/components/tabs/tabs-with-more/tabs-with-more.component.js +27 -16
  366. package/esm5/components/tabs/underline/underline.component.js +2 -2
  367. package/esm5/components/tag/tag.component.js +3 -3
  368. package/esm5/components/text-area/text-area.component.js +3 -3
  369. package/esm5/components/toggle/toggle.component.js +1 -1
  370. package/esm5/tokens/i18n.js +2 -2
  371. package/esm5/tokens/index.js +2 -1
  372. package/esm5/tokens/mobile-aware.js +2 -1
  373. package/esm5/tokens/tab-margin.js +5 -0
  374. package/fesm2015/taiga-ui-kit-abstract.js +43 -55
  375. package/fesm2015/taiga-ui-kit-abstract.js.map +1 -1
  376. package/fesm2015/taiga-ui-kit-components-accordion.js +1 -1
  377. package/fesm2015/taiga-ui-kit-components-accordion.js.map +1 -1
  378. package/fesm2015/taiga-ui-kit-components-action.js +1 -1
  379. package/fesm2015/taiga-ui-kit-components-action.js.map +1 -1
  380. package/fesm2015/taiga-ui-kit-components-avatar.js +27 -8
  381. package/fesm2015/taiga-ui-kit-components-avatar.js.map +1 -1
  382. package/fesm2015/taiga-ui-kit-components-breadcrumbs.js +1 -1
  383. package/fesm2015/taiga-ui-kit-components-breadcrumbs.js.map +1 -1
  384. package/fesm2015/taiga-ui-kit-components-calendar-month.js +1 -1
  385. package/fesm2015/taiga-ui-kit-components-calendar-month.js.map +1 -1
  386. package/fesm2015/taiga-ui-kit-components-carousel.js +1 -1
  387. package/fesm2015/taiga-ui-kit-components-carousel.js.map +1 -1
  388. package/fesm2015/taiga-ui-kit-components-checkbox-labeled.js +1 -1
  389. package/fesm2015/taiga-ui-kit-components-checkbox-labeled.js.map +1 -1
  390. package/fesm2015/taiga-ui-kit-components-checkbox.js +1 -1
  391. package/fesm2015/taiga-ui-kit-components-combo-box.js +1 -1
  392. package/fesm2015/taiga-ui-kit-components-combo-box.js.map +1 -1
  393. package/fesm2015/taiga-ui-kit-components-data-list-wrapper.js +2 -2
  394. package/fesm2015/taiga-ui-kit-components-data-list-wrapper.js.map +1 -1
  395. package/fesm2015/taiga-ui-kit-components-files.js +3 -3
  396. package/fesm2015/taiga-ui-kit-components-files.js.map +1 -1
  397. package/fesm2015/taiga-ui-kit-components-filter.js +1 -1
  398. package/fesm2015/taiga-ui-kit-components-filter.js.map +1 -1
  399. package/fesm2015/taiga-ui-kit-components-input-copy.js +1 -1
  400. package/fesm2015/taiga-ui-kit-components-input-copy.js.map +1 -1
  401. package/fesm2015/taiga-ui-kit-components-input-count.js +1 -1
  402. package/fesm2015/taiga-ui-kit-components-input-count.js.map +1 -1
  403. package/fesm2015/taiga-ui-kit-components-input-date-range.js +1 -1
  404. package/fesm2015/taiga-ui-kit-components-input-date-range.js.map +1 -1
  405. package/fesm2015/taiga-ui-kit-components-input-date-time.js +1 -1
  406. package/fesm2015/taiga-ui-kit-components-input-date-time.js.map +1 -1
  407. package/fesm2015/taiga-ui-kit-components-input-date.js +1 -1
  408. package/fesm2015/taiga-ui-kit-components-input-date.js.map +1 -1
  409. package/fesm2015/taiga-ui-kit-components-input-file.js +1 -1
  410. package/fesm2015/taiga-ui-kit-components-input-file.js.map +1 -1
  411. package/fesm2015/taiga-ui-kit-components-input-files.js +1 -1
  412. package/fesm2015/taiga-ui-kit-components-input-month-range.js +1 -1
  413. package/fesm2015/taiga-ui-kit-components-input-month-range.js.map +1 -1
  414. package/fesm2015/taiga-ui-kit-components-input-month.js +1 -1
  415. package/fesm2015/taiga-ui-kit-components-input-month.js.map +1 -1
  416. package/fesm2015/taiga-ui-kit-components-input-number.js +2 -2
  417. package/fesm2015/taiga-ui-kit-components-input-number.js.map +1 -1
  418. package/fesm2015/taiga-ui-kit-components-input-password.js +1 -1
  419. package/fesm2015/taiga-ui-kit-components-input-password.js.map +1 -1
  420. package/fesm2015/taiga-ui-kit-components-input-phone.js +1 -1
  421. package/fesm2015/taiga-ui-kit-components-input-phone.js.map +1 -1
  422. package/fesm2015/taiga-ui-kit-components-input-range.js +198 -167
  423. package/fesm2015/taiga-ui-kit-components-input-range.js.map +1 -1
  424. package/fesm2015/taiga-ui-kit-components-input-slider.js +7 -19
  425. package/fesm2015/taiga-ui-kit-components-input-slider.js.map +1 -1
  426. package/fesm2015/taiga-ui-kit-components-input-tag.js +5 -5
  427. package/fesm2015/taiga-ui-kit-components-input-tag.js.map +1 -1
  428. package/fesm2015/taiga-ui-kit-components-input.js +1 -1
  429. package/fesm2015/taiga-ui-kit-components-input.js.map +1 -1
  430. package/fesm2015/taiga-ui-kit-components-marker-icon.js +1 -1
  431. package/fesm2015/taiga-ui-kit-components-marker-icon.js.map +1 -1
  432. package/fesm2015/taiga-ui-kit-components-multi-select.js +1 -1
  433. package/fesm2015/taiga-ui-kit-components-multi-select.js.map +1 -1
  434. package/fesm2015/taiga-ui-kit-components-pagination.js +1 -1
  435. package/fesm2015/taiga-ui-kit-components-pagination.js.map +1 -1
  436. package/fesm2015/taiga-ui-kit-components-pdf-viewer.js +1 -1
  437. package/fesm2015/taiga-ui-kit-components-pdf-viewer.js.map +1 -1
  438. package/fesm2015/taiga-ui-kit-components-progress.js +2 -2
  439. package/fesm2015/taiga-ui-kit-components-progress.js.map +1 -1
  440. package/fesm2015/taiga-ui-kit-components-radio.js +2 -2
  441. package/fesm2015/taiga-ui-kit-components-radio.js.map +1 -1
  442. package/fesm2015/taiga-ui-kit-components-range.js +199 -34
  443. package/fesm2015/taiga-ui-kit-components-range.js.map +1 -1
  444. package/fesm2015/taiga-ui-kit-components-rating.js +1 -1
  445. package/fesm2015/taiga-ui-kit-components-rating.js.map +1 -1
  446. package/fesm2015/taiga-ui-kit-components-select.js +1 -1
  447. package/fesm2015/taiga-ui-kit-components-select.js.map +1 -1
  448. package/fesm2015/taiga-ui-kit-components-slider.js +61 -7
  449. package/fesm2015/taiga-ui-kit-components-slider.js.map +1 -1
  450. package/fesm2015/taiga-ui-kit-components-stepper.js +1 -1
  451. package/fesm2015/taiga-ui-kit-components-stepper.js.map +1 -1
  452. package/fesm2015/taiga-ui-kit-components-tabs.js +39 -34
  453. package/fesm2015/taiga-ui-kit-components-tabs.js.map +1 -1
  454. package/fesm2015/taiga-ui-kit-components-tag.js +2 -2
  455. package/fesm2015/taiga-ui-kit-components-tag.js.map +1 -1
  456. package/fesm2015/taiga-ui-kit-components-text-area.js +2 -2
  457. package/fesm2015/taiga-ui-kit-components-text-area.js.map +1 -1
  458. package/fesm2015/taiga-ui-kit-components-toggle.js +1 -1
  459. package/fesm2015/taiga-ui-kit-tokens.js +7 -2
  460. package/fesm2015/taiga-ui-kit-tokens.js.map +1 -1
  461. package/fesm5/taiga-ui-kit-abstract.js +43 -66
  462. package/fesm5/taiga-ui-kit-abstract.js.map +1 -1
  463. package/fesm5/taiga-ui-kit-components-accordion.js +1 -1
  464. package/fesm5/taiga-ui-kit-components-accordion.js.map +1 -1
  465. package/fesm5/taiga-ui-kit-components-action.js +1 -1
  466. package/fesm5/taiga-ui-kit-components-action.js.map +1 -1
  467. package/fesm5/taiga-ui-kit-components-avatar.js +27 -8
  468. package/fesm5/taiga-ui-kit-components-avatar.js.map +1 -1
  469. package/fesm5/taiga-ui-kit-components-breadcrumbs.js +1 -1
  470. package/fesm5/taiga-ui-kit-components-breadcrumbs.js.map +1 -1
  471. package/fesm5/taiga-ui-kit-components-calendar-month.js +1 -1
  472. package/fesm5/taiga-ui-kit-components-calendar-month.js.map +1 -1
  473. package/fesm5/taiga-ui-kit-components-carousel.js +1 -1
  474. package/fesm5/taiga-ui-kit-components-carousel.js.map +1 -1
  475. package/fesm5/taiga-ui-kit-components-checkbox-labeled.js +1 -1
  476. package/fesm5/taiga-ui-kit-components-checkbox-labeled.js.map +1 -1
  477. package/fesm5/taiga-ui-kit-components-checkbox.js +1 -1
  478. package/fesm5/taiga-ui-kit-components-combo-box.js +1 -1
  479. package/fesm5/taiga-ui-kit-components-combo-box.js.map +1 -1
  480. package/fesm5/taiga-ui-kit-components-data-list-wrapper.js +2 -2
  481. package/fesm5/taiga-ui-kit-components-data-list-wrapper.js.map +1 -1
  482. package/fesm5/taiga-ui-kit-components-files.js +3 -3
  483. package/fesm5/taiga-ui-kit-components-files.js.map +1 -1
  484. package/fesm5/taiga-ui-kit-components-filter.js +1 -1
  485. package/fesm5/taiga-ui-kit-components-filter.js.map +1 -1
  486. package/fesm5/taiga-ui-kit-components-input-copy.js +1 -1
  487. package/fesm5/taiga-ui-kit-components-input-copy.js.map +1 -1
  488. package/fesm5/taiga-ui-kit-components-input-count.js +1 -1
  489. package/fesm5/taiga-ui-kit-components-input-count.js.map +1 -1
  490. package/fesm5/taiga-ui-kit-components-input-date-range.js +1 -1
  491. package/fesm5/taiga-ui-kit-components-input-date-range.js.map +1 -1
  492. package/fesm5/taiga-ui-kit-components-input-date-time.js +1 -1
  493. package/fesm5/taiga-ui-kit-components-input-date-time.js.map +1 -1
  494. package/fesm5/taiga-ui-kit-components-input-date.js +1 -1
  495. package/fesm5/taiga-ui-kit-components-input-date.js.map +1 -1
  496. package/fesm5/taiga-ui-kit-components-input-file.js +1 -1
  497. package/fesm5/taiga-ui-kit-components-input-file.js.map +1 -1
  498. package/fesm5/taiga-ui-kit-components-input-files.js +1 -1
  499. package/fesm5/taiga-ui-kit-components-input-month-range.js +1 -1
  500. package/fesm5/taiga-ui-kit-components-input-month-range.js.map +1 -1
  501. package/fesm5/taiga-ui-kit-components-input-month.js +1 -1
  502. package/fesm5/taiga-ui-kit-components-input-month.js.map +1 -1
  503. package/fesm5/taiga-ui-kit-components-input-number.js +2 -2
  504. package/fesm5/taiga-ui-kit-components-input-number.js.map +1 -1
  505. package/fesm5/taiga-ui-kit-components-input-password.js +1 -1
  506. package/fesm5/taiga-ui-kit-components-input-password.js.map +1 -1
  507. package/fesm5/taiga-ui-kit-components-input-phone.js +1 -1
  508. package/fesm5/taiga-ui-kit-components-input-phone.js.map +1 -1
  509. package/fesm5/taiga-ui-kit-components-input-range.js +200 -168
  510. package/fesm5/taiga-ui-kit-components-input-range.js.map +1 -1
  511. package/fesm5/taiga-ui-kit-components-input-slider.js +7 -19
  512. package/fesm5/taiga-ui-kit-components-input-slider.js.map +1 -1
  513. package/fesm5/taiga-ui-kit-components-input-tag.js +5 -5
  514. package/fesm5/taiga-ui-kit-components-input-tag.js.map +1 -1
  515. package/fesm5/taiga-ui-kit-components-input.js +1 -1
  516. package/fesm5/taiga-ui-kit-components-input.js.map +1 -1
  517. package/fesm5/taiga-ui-kit-components-marker-icon.js +1 -1
  518. package/fesm5/taiga-ui-kit-components-marker-icon.js.map +1 -1
  519. package/fesm5/taiga-ui-kit-components-multi-select.js +1 -1
  520. package/fesm5/taiga-ui-kit-components-multi-select.js.map +1 -1
  521. package/fesm5/taiga-ui-kit-components-pagination.js +1 -1
  522. package/fesm5/taiga-ui-kit-components-pagination.js.map +1 -1
  523. package/fesm5/taiga-ui-kit-components-pdf-viewer.js +1 -1
  524. package/fesm5/taiga-ui-kit-components-pdf-viewer.js.map +1 -1
  525. package/fesm5/taiga-ui-kit-components-progress.js +2 -2
  526. package/fesm5/taiga-ui-kit-components-progress.js.map +1 -1
  527. package/fesm5/taiga-ui-kit-components-radio.js +2 -2
  528. package/fesm5/taiga-ui-kit-components-radio.js.map +1 -1
  529. package/fesm5/taiga-ui-kit-components-range.js +225 -35
  530. package/fesm5/taiga-ui-kit-components-range.js.map +1 -1
  531. package/fesm5/taiga-ui-kit-components-rating.js +1 -1
  532. package/fesm5/taiga-ui-kit-components-rating.js.map +1 -1
  533. package/fesm5/taiga-ui-kit-components-select.js +1 -1
  534. package/fesm5/taiga-ui-kit-components-select.js.map +1 -1
  535. package/fesm5/taiga-ui-kit-components-slider.js +62 -7
  536. package/fesm5/taiga-ui-kit-components-slider.js.map +1 -1
  537. package/fesm5/taiga-ui-kit-components-stepper.js +1 -1
  538. package/fesm5/taiga-ui-kit-components-stepper.js.map +1 -1
  539. package/fesm5/taiga-ui-kit-components-tabs.js +42 -38
  540. package/fesm5/taiga-ui-kit-components-tabs.js.map +1 -1
  541. package/fesm5/taiga-ui-kit-components-tag.js +2 -2
  542. package/fesm5/taiga-ui-kit-components-tag.js.map +1 -1
  543. package/fesm5/taiga-ui-kit-components-text-area.js +2 -2
  544. package/fesm5/taiga-ui-kit-components-text-area.js.map +1 -1
  545. package/fesm5/taiga-ui-kit-components-toggle.js +1 -1
  546. package/fesm5/taiga-ui-kit-tokens.js +7 -2
  547. package/fesm5/taiga-ui-kit-tokens.js.map +1 -1
  548. package/package.json +7 -7
  549. package/tokens/i18n.d.ts +1 -5
  550. package/tokens/index.d.ts +1 -0
  551. package/tokens/mobile-aware.d.ts +1 -0
  552. package/tokens/tab-margin.d.ts +2 -0
  553. package/tokens/taiga-ui-kit-tokens.metadata.json +1 -1
  554. package/components/tabs/tabs.const.d.ts +0 -2
  555. package/esm2015/components/tabs/tabs.const.js +0 -3
  556. package/esm5/components/tabs/tabs.const.js +0 -3
@@ -1,63 +1,109 @@
1
1
  import { __decorate, __param } from 'tslib';
2
2
  import { DOCUMENT, CommonModule } from '@angular/common';
3
- import { Optional, Self, Inject, ChangeDetectorRef, ElementRef, Component, ChangeDetectionStrategy, forwardRef, NgModule } from '@angular/core';
4
- import { NgControl } from '@angular/forms';
5
- import { isNativeFocusedIn, round, TUI_FOCUSABLE_ITEM_ACCESSOR, TuiRepeatTimesModule, TuiFocusableModule, TuiActiveZoneModule, TuiFocusVisibleModule } from '@taiga-ui/cdk';
6
- import { AbstractTuiSlider, DOT_WIDTH } from '@taiga-ui/kit/abstract';
7
- import { TUI_FLOATING_PRECISION } from '@taiga-ui/kit/constants';
3
+ import { Directive, Optional, Self, Inject, ChangeDetectorRef, ElementRef, Input, ViewChildren, HostBinding, HostListener, Component, ChangeDetectionStrategy, forwardRef, EventEmitter, Output, NgModule } from '@angular/core';
4
+ import { NgControl, FormsModule } from '@angular/forms';
5
+ import { EMPTY_QUERY, isNativeFocusedIn, tuiDefaultProp, nonNegativeFiniteAssertion, tuiPure, TUI_FOCUSABLE_ITEM_ACCESSOR, typedFromEvent, clamp, round, TuiDestroyService, TuiRepeatTimesModule, TuiFocusableModule } from '@taiga-ui/cdk';
6
+ import { AbstractTuiSlider } from '@taiga-ui/kit/abstract';
7
+ import { TuiSliderComponent, TuiSliderModule } from '@taiga-ui/kit/components/slider';
8
8
  import { TUI_FROM_TO_TEXTS } from '@taiga-ui/kit/tokens';
9
- import { Observable } from 'rxjs';
9
+ import { Observable, merge } from 'rxjs';
10
10
  import { TuiFormatNumberPipeModule } from '@taiga-ui/core';
11
+ import { TUI_FLOATING_PRECISION } from '@taiga-ui/kit/constants';
12
+ import { filter, map, tap, switchMap, startWith, takeUntil, repeat } from 'rxjs/operators';
11
13
 
12
14
  var TuiRangeComponent_1;
15
+ /**
16
+ * Turn on new mode for `Range` and `InputRange`.
17
+ * The new version of component will behave almost the same as the same component from the next major release.
18
+ * @deprecated TODO remove me in v3.0 and make `Range` and `InputRange` always "new".
19
+ */
20
+ let TuiNewRangeDirective = class TuiNewRangeDirective {
21
+ };
22
+ TuiNewRangeDirective = __decorate([
23
+ Directive({
24
+ selector: 'tui-range[new], tui-input-range[new]',
25
+ })
26
+ ], TuiNewRangeDirective);
13
27
  // @dynamic
14
28
  let TuiRangeComponent = TuiRangeComponent_1 = class TuiRangeComponent extends AbstractTuiSlider {
15
- constructor(control, changeDetectorRef, documentRef, elementRef, fromToTexts$) {
29
+ constructor(control, changeDetectorRef, documentRef, elementRef, fromToTexts$, isNew) {
16
30
  super(control, changeDetectorRef, documentRef, fromToTexts$);
17
31
  this.elementRef = elementRef;
32
+ this.isNew = isNew;
33
+ this.min = 0;
34
+ /**
35
+ * TODO: make `100` as default value (to be like native sliders) in v3.0
36
+ */
37
+ this.max = Infinity;
38
+ /**
39
+ * TODO: think about replacing this props by `step` (to be like native slider).
40
+ * It can be easy after refactor of keySteps.
41
+ */
42
+ this.steps = 0;
43
+ /**
44
+ * TODO: think about replacing this props by `step` (to be like native slider).
45
+ * It can be easy after refactor of keySteps.
46
+ * */
47
+ this.quantum = 0;
48
+ this.slidersRefs = EMPTY_QUERY;
49
+ this.lastActiveThumb = 'right';
18
50
  }
19
51
  get nativeFocusableElement() {
20
- if (this.computedDisabled || !this.dotLeft || !this.dotRight) {
52
+ const [sliderLeftRef, sliderRightRef] = this.slidersRefs;
53
+ if (this.computedDisabled || !sliderLeftRef || !sliderRightRef) {
21
54
  return null;
22
55
  }
23
56
  return this.isLeftFocusable
24
- ? this.dotLeft.nativeElement
25
- : this.dotRight.nativeElement;
57
+ ? sliderLeftRef.nativeElement
58
+ : sliderRightRef.nativeElement;
26
59
  }
27
60
  get focused() {
28
61
  return isNativeFocusedIn(this.elementRef.nativeElement);
29
62
  }
63
+ get computedKeySteps() {
64
+ return this.computePureKeySteps(this.keySteps, this.min, this.max);
65
+ }
30
66
  get left() {
31
67
  return 100 * this.getFractionFromValue(this.value[0]);
32
68
  }
33
69
  get right() {
34
70
  return 100 - 100 * this.getFractionFromValue(this.value[1]);
35
71
  }
36
- getFallbackValue() {
37
- return [0, 0];
72
+ onFocused(focused) {
73
+ this.updateFocused(focused);
38
74
  }
39
- processStep(increment, right) {
40
- const fraction = this.getFractionFromValue(right ? this.value[1] : this.value[0]);
41
- const step = this.computedStep;
42
- const value = this.getValueFromFraction(increment ? fraction + step : fraction - step);
43
- this.processValue(value, right);
75
+ changeByStep(coefficient, target) {
76
+ const [sliderLeftRef, sliderRightRef] = this.slidersRefs;
77
+ const leftThumbElement = sliderLeftRef.nativeElement;
78
+ const rightThumbElement = sliderRightRef.nativeElement;
79
+ const isRightThumb = target === this.elementRef.nativeElement
80
+ ? this.lastActiveThumb === 'right'
81
+ : target === rightThumbElement;
82
+ const activeThumbElement = isRightThumb ? rightThumbElement : leftThumbElement;
83
+ const previousValue = isRightThumb ? this.value[1] : this.value[0];
84
+ /** @bad TODO think about a solution without twice conversion */
85
+ const previousFraction = this.getFractionFromValue(previousValue);
86
+ const newFractionValue = previousFraction + coefficient * this.computedStep;
87
+ this.processValue(this.getValueFromFraction(newFractionValue), isRightThumb);
88
+ if (activeThumbElement) {
89
+ activeThumbElement.focus();
90
+ }
44
91
  }
45
92
  processValue(value, right) {
46
93
  const guardedValue = this.valueGuard(value);
47
- if (right === true) {
94
+ if (right) {
48
95
  this.updateEnd(guardedValue);
49
96
  }
50
97
  else {
51
98
  this.updateStart(guardedValue);
52
99
  }
100
+ this.lastActiveThumb = right ? 'right' : 'left';
53
101
  }
54
- getCalibratedFractionFromEvents(rect, clientX, isMouseDownRight) {
55
- const value = clientX -
56
- rect.left -
57
- DOT_WIDTH[this.size] / 2 -
58
- (isMouseDownRight ? DOT_WIDTH[this.size] : 0);
59
- const total = rect.width - 2 * DOT_WIDTH[this.size];
60
- return round(value / total, TUI_FLOATING_PRECISION);
102
+ getFallbackValue() {
103
+ return [0, 0];
104
+ }
105
+ computePureKeySteps(keySteps, min, max) {
106
+ return [[0, min], ...(keySteps || []), [100, max]];
61
107
  }
62
108
  updateStart(value) {
63
109
  this.updateValue([Math.min(value, this.value[1]), this.value[1]]);
@@ -71,20 +117,63 @@ TuiRangeComponent.ctorParameters = () => [
71
117
  { type: ChangeDetectorRef, decorators: [{ type: Inject, args: [ChangeDetectorRef,] }] },
72
118
  { type: Document, decorators: [{ type: Inject, args: [DOCUMENT,] }] },
73
119
  { type: ElementRef, decorators: [{ type: Inject, args: [ElementRef,] }] },
74
- { type: Observable, decorators: [{ type: Inject, args: [TUI_FROM_TO_TEXTS,] }] }
120
+ { type: Observable, decorators: [{ type: Inject, args: [TUI_FROM_TO_TEXTS,] }] },
121
+ { type: TuiNewRangeDirective, decorators: [{ type: Optional }, { type: Inject, args: [TuiNewRangeDirective,] }] }
75
122
  ];
123
+ __decorate([
124
+ Input(),
125
+ tuiDefaultProp()
126
+ ], TuiRangeComponent.prototype, "min", void 0);
127
+ __decorate([
128
+ Input(),
129
+ tuiDefaultProp()
130
+ ], TuiRangeComponent.prototype, "max", void 0);
131
+ __decorate([
132
+ Input(),
133
+ tuiDefaultProp()
134
+ ], TuiRangeComponent.prototype, "steps", void 0);
135
+ __decorate([
136
+ Input(),
137
+ tuiDefaultProp(nonNegativeFiniteAssertion, 'Quantum must be a non-negative number')
138
+ ], TuiRangeComponent.prototype, "quantum", void 0);
139
+ __decorate([
140
+ ViewChildren(TuiSliderComponent, { read: ElementRef })
141
+ ], TuiRangeComponent.prototype, "slidersRefs", void 0);
142
+ __decorate([
143
+ HostBinding('style.--left.%')
144
+ ], TuiRangeComponent.prototype, "left", null);
145
+ __decorate([
146
+ HostBinding('style.--right.%')
147
+ ], TuiRangeComponent.prototype, "right", null);
148
+ __decorate([
149
+ HostListener('focusin', ['true']),
150
+ HostListener('focusout', ['false'])
151
+ ], TuiRangeComponent.prototype, "onFocused", null);
152
+ __decorate([
153
+ HostListener('keydown.arrowUp.prevent', ['1', '$event.target']),
154
+ HostListener('keydown.arrowRight.prevent', ['1', '$event.target']),
155
+ HostListener('keydown.arrowLeft.prevent', ['-1', '$event.target']),
156
+ HostListener('keydown.arrowDown.prevent', ['-1', '$event.target'])
157
+ ], TuiRangeComponent.prototype, "changeByStep", null);
158
+ __decorate([
159
+ tuiPure
160
+ ], TuiRangeComponent.prototype, "computePureKeySteps", null);
76
161
  TuiRangeComponent = TuiRangeComponent_1 = __decorate([
77
162
  Component({
78
163
  selector: 'tui-range',
79
- 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",
164
+ template: "<div class=\"track\">\n <input\n tuiSlider\n readonly\n type=\"range\"\n step=\"any\"\n automation-id=\"tui-range__left\"\n class=\"thumb\"\n [min]=\"min\"\n [max]=\"max\"\n [ngModel]=\"value[0]\"\n [size]=\"size\"\n [keySteps]=\"computedKeySteps\"\n [tuiFocusable]=\"focusable\"\n [attr.disabled]=\"computedDisabled || null\"\n />\n <input\n tuiSlider\n readonly\n type=\"range\"\n step=\"any\"\n automation-id=\"tui-range__right\"\n class=\"thumb\"\n [min]=\"min\"\n [max]=\"max\"\n [ngModel]=\"value[1]\"\n [size]=\"size\"\n [keySteps]=\"computedKeySteps\"\n [tuiFocusable]=\"focusable\"\n [attr.disabled]=\"computedDisabled || null\"\n />\n</div>\n\n<!-- TODO backward compatibility only (remove in v3.0) -->\n<div\n *ngIf=\"segmented\"\n class=\"segments\"\n>\n <span\n *tuiRepeatTimes=\"let tickIndex of segments + 1\"\n automation-id=\"tui-slider__segment\"\n class=\"segment\"\n >\n <ng-container *ngIf=\"fromToTexts$ | async as fromToText\">\n <span\n *ngIf=\"!isNew\"\n class=\"number\"\n >\n {{ getSegmentPrefix(tickIndex, fromToText) }} {{ tickIndex |\n tuiSliderTickLabel:segments:computedKeySteps | tuiFormatNumber\n }}\n <span *ngIf=\"pluralizeMap\">\n {{ tickIndex | tuiSliderTickLabel:segments:computedKeySteps\n | i18nPlural: pluralizeMap }}\n </span>\n </span>\n </ng-container>\n </span>\n</div>\n",
80
165
  changeDetection: ChangeDetectionStrategy.OnPush,
166
+ host: {
167
+ '[attr.tabindex]': '-1',
168
+ '[attr.aria-disabled]': 'computedDisabled',
169
+ },
81
170
  providers: [
82
171
  {
83
172
  provide: TUI_FOCUSABLE_ITEM_ACCESSOR,
84
173
  useExisting: forwardRef(() => TuiRangeComponent_1),
85
174
  },
86
175
  ],
87
- 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)}"]
176
+ styles: [":host{position:relative;display:block;height:.125rem;border-radius:var(--tui-radius-m);background:var(--tui-base-03);cursor:pointer;outline:0;margin:.4375rem 0}:host:active{cursor:ew-resize}:host:after{content:'';position:absolute;top:-.4375rem;bottom:-.4375rem;width:100%}:host._disabled{opacity:var(--tui-disabled-opacity);cursor:auto}:host[data-size='s'] .track{position:relative;margin:0 .25rem;height:100%}:host[data-size='s'] .track:after{content:'';position:absolute;top:0;left:var(--left);right:var(--right);height:100%;background:var(--tui-primary);margin:0 -.25rem}:host[data-size='m'] .track{position:relative;margin:0 .5rem;height:100%}:host[data-size='m'] .track:after{content:'';position:absolute;top:0;left:var(--left);right:var(--right);height:100%;background:var(--tui-primary);margin:0 -.5rem}.thumb{pointer-events:none;position:absolute;top:.0625rem;left:0;right:0;z-index:1;transform:translate(0,-50%)}.thumb::-webkit-slider-thumb{pointer-events:all}.thumb::-moz-range-thumb{pointer-events:all}input[type=range].thumb::-webkit-slider-runnable-track{background:0 0}input[type=range].thumb::-moz-range-track{background:0 0}input[type=range].thumb::-moz-range-progress{background:0 0}input[type=range].thumb::-ms-track{background:0 0}input[type=range].thumb::-ms-fill-lower{background:0 0}.thumb:last-of-type::-webkit-slider-thumb{transform:translate(50%,0)}.thumb:first-of-type::-webkit-slider-thumb{transform:translate(-50%,0)}.thumb:last-of-type::-moz-range-thumb{transform:translate(50%,0)}.thumb:first-of-type::-moz-range-thumb{transform:translate(-50%,0)}:host._disabled .thumb{opacity:1}.segments{position:absolute;top:0;left:0;bottom:0;right:0}:host[data-size='s'] .segments{display:flex;margin:0 .25rem;font:var(--tui-font-text-s);padding:0 .25rem}:host[data-size='s'] .segments>*{position:relative;flex:2;text-align:center}:host[data-size='s'] .segments>:first-child{left:-.25rem;flex:1;text-align:left}:host[data-size='s'] .segments>:last-child{right:-.25rem;flex:1;text-align:right}tui-input-slider+:host[data-size='s'] .segments{margin-left:calc(var(--tui-radius-m)/ 2 + .25rem)}tui-input-range+:host[data-size='s'] .segments,tui-range+:host[data-size='s'] .segments{margin-left:.5rem;margin-right:.5rem}tui-input-range+:host[data-size='s'] .segments>:first-child,tui-range+:host[data-size='s'] .segments>:first-child{left:-.5rem}tui-input-range+:host[data-size='s'] .segments>:last-child,tui-range+:host[data-size='s'] .segments>:last-child{right:-.5rem}:host[data-size='m'] .segments{display:flex;margin:0 .5rem;font:var(--tui-font-text-s);padding:0 .5rem}:host[data-size='m'] .segments>*{position:relative;flex:2;text-align:center}:host[data-size='m'] .segments>:first-child{left:-.5rem;flex:1;text-align:left}:host[data-size='m'] .segments>:last-child{right:-.5rem;flex:1;text-align:right}tui-input-slider+:host[data-size='m'] .segments{margin-left:calc(var(--tui-radius-m)/ 2 + .5rem)}tui-input-range+:host[data-size='m'] .segments,tui-range+:host[data-size='m'] .segments{margin-left:1rem;margin-right:1rem}tui-input-range+:host[data-size='m'] .segments>:first-child,tui-range+:host[data-size='m'] .segments>:first-child{left:-1rem}tui-input-range+:host[data-size='m'] .segments>:last-child,tui-range+:host[data-size='m'] .segments>:last-child{right:-1rem}.segment:not(:last-of-type):not(:first-of-type):before{content:'';position:absolute;left:0;right:0;margin:auto;background:var(--tui-base-07);width:.25rem;height:100%}.segment:last-of-type .number{margin-right:-.5rem}.segment:first-of-type .number{margin-left:-.5rem}.number{display:inline-block;margin-top:.5rem}"]
88
177
  }),
89
178
  __param(0, Optional()),
90
179
  __param(0, Self()),
@@ -92,9 +181,85 @@ TuiRangeComponent = TuiRangeComponent_1 = __decorate([
92
181
  __param(1, Inject(ChangeDetectorRef)),
93
182
  __param(2, Inject(DOCUMENT)),
94
183
  __param(3, Inject(ElementRef)),
95
- __param(4, Inject(TUI_FROM_TO_TEXTS))
184
+ __param(4, Inject(TUI_FROM_TO_TEXTS)),
185
+ __param(5, Optional()),
186
+ __param(5, Inject(TuiNewRangeDirective))
96
187
  ], TuiRangeComponent);
97
188
 
189
+ // @dynamic
190
+ let TuiRangeChangeDirective = class TuiRangeChangeDirective {
191
+ constructor(documentRef, elementRef, range, destroy$) {
192
+ this.documentRef = documentRef;
193
+ this.elementRef = elementRef;
194
+ this.range = range;
195
+ /**
196
+ * TODO replace with pointer events (when all supported browsers can handle them).
197
+ * Dont forget to use setPointerCapture instead of listening all documentRef events
198
+ */
199
+ this.pointerDown$ = merge(typedFromEvent(this.elementRef.nativeElement, 'touchstart', { passive: true }).pipe(filter(({ touches }) => touches.length === 1), map(({ touches }) => touches[0])), typedFromEvent(this.elementRef.nativeElement, 'mousedown', { passive: true }));
200
+ this.pointerMove$ = merge(typedFromEvent(this.documentRef, 'touchmove').pipe(filter(({ touches }) => touches.length === 1), map(({ touches }) => touches[0])), typedFromEvent(this.documentRef, 'mousemove'));
201
+ this.pointerUp$ = merge(typedFromEvent(this.documentRef, 'touchend', { passive: true }), typedFromEvent(this.documentRef, 'mouseup', { passive: true }));
202
+ this.activeThumbChange = new EventEmitter();
203
+ let activeThumb;
204
+ this.pointerDown$
205
+ .pipe(tap(({ clientX, target }) => {
206
+ activeThumb = this.detectActiveThumb(clientX, target);
207
+ this.activeThumbChange.emit(activeThumb);
208
+ elementRef.nativeElement.focus();
209
+ }), switchMap(event => this.pointerMove$.pipe(startWith(event))), map(({ clientX }) => clamp(this.getFractionFromEvents(clientX), 0, 1)), takeUntil(this.pointerUp$), repeat(), takeUntil(destroy$))
210
+ .subscribe(fraction => {
211
+ const value = this.range.getValueFromFraction(this.range.fractionGuard(fraction));
212
+ this.range.processValue(value, activeThumb === 'right');
213
+ });
214
+ }
215
+ getFractionFromEvents(clickClientX) {
216
+ const hostRect = this.elementRef.nativeElement.getBoundingClientRect();
217
+ const value = clickClientX - hostRect.left;
218
+ const total = hostRect.width;
219
+ return round(value / total, TUI_FLOATING_PRECISION);
220
+ }
221
+ detectActiveThumb(clientX, target) {
222
+ const [leftSliderRef, rightSliderRef] = this.range.slidersRefs;
223
+ switch (target) {
224
+ case leftSliderRef.nativeElement:
225
+ return 'left';
226
+ case rightSliderRef.nativeElement:
227
+ return 'right';
228
+ default:
229
+ return this.findNearestActiveThumb(clientX);
230
+ }
231
+ }
232
+ findNearestActiveThumb(clientX) {
233
+ const fraction = this.getFractionFromEvents(clientX);
234
+ const deltaLeft = fraction * 100 - this.range.left;
235
+ const deltaRight = fraction * 100 - 100 + this.range.right;
236
+ return Math.abs(deltaLeft) > Math.abs(deltaRight) ||
237
+ deltaRight > 0 ||
238
+ (this.range.left === 0 && this.range.right === 100)
239
+ ? 'right'
240
+ : 'left';
241
+ }
242
+ };
243
+ TuiRangeChangeDirective.ctorParameters = () => [
244
+ { type: Document, decorators: [{ type: Inject, args: [DOCUMENT,] }] },
245
+ { type: ElementRef, decorators: [{ type: Inject, args: [ElementRef,] }] },
246
+ { type: TuiRangeComponent, decorators: [{ type: Inject, args: [TuiRangeComponent,] }] },
247
+ { type: Observable, decorators: [{ type: Inject, args: [TuiDestroyService,] }] }
248
+ ];
249
+ __decorate([
250
+ Output()
251
+ ], TuiRangeChangeDirective.prototype, "activeThumbChange", void 0);
252
+ TuiRangeChangeDirective = __decorate([
253
+ Directive({
254
+ selector: 'tui-range',
255
+ providers: [TuiDestroyService],
256
+ }),
257
+ __param(0, Inject(DOCUMENT)),
258
+ __param(1, Inject(ElementRef)),
259
+ __param(2, Inject(TuiRangeComponent)),
260
+ __param(3, Inject(TuiDestroyService))
261
+ ], TuiRangeChangeDirective);
262
+
98
263
  let TuiRangeModule = class TuiRangeModule {
99
264
  };
100
265
  TuiRangeModule = __decorate([
@@ -103,12 +268,12 @@ TuiRangeModule = __decorate([
103
268
  CommonModule,
104
269
  TuiRepeatTimesModule,
105
270
  TuiFocusableModule,
106
- TuiActiveZoneModule,
107
- TuiFocusVisibleModule,
108
271
  TuiFormatNumberPipeModule,
272
+ TuiSliderModule,
273
+ FormsModule,
109
274
  ],
110
- declarations: [TuiRangeComponent],
111
- exports: [TuiRangeComponent],
275
+ declarations: [TuiRangeComponent, TuiRangeChangeDirective, TuiNewRangeDirective],
276
+ exports: [TuiRangeComponent, TuiRangeChangeDirective, TuiNewRangeDirective],
112
277
  })
113
278
  ], TuiRangeModule);
114
279
 
@@ -116,5 +281,5 @@ TuiRangeModule = __decorate([
116
281
  * Generated bundle index. Do not edit.
117
282
  */
118
283
 
119
- export { TuiRangeComponent, TuiRangeModule };
284
+ export { TuiNewRangeDirective, TuiRangeChangeDirective, TuiRangeComponent, TuiRangeModule };
120
285
  //# sourceMappingURL=taiga-ui-kit-components-range.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-kit-components-range.js","sources":["ng://@taiga-ui/kit/components/range/range.component.ts","ng://@taiga-ui/kit/components/range/range.module.ts","ng://@taiga-ui/kit/components/range/taiga-ui-kit-components-range.ts"],"sourcesContent":["import {DOCUMENT} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n forwardRef,\n Inject,\n Optional,\n Self,\n} from '@angular/core';\nimport {NgControl} from '@angular/forms';\nimport {\n isNativeFocusedIn,\n round,\n TUI_FOCUSABLE_ITEM_ACCESSOR,\n TuiFocusableElementAccessor,\n TuiNativeFocusableElement,\n} from '@taiga-ui/cdk';\nimport {AbstractTuiSlider, DOT_WIDTH} from '@taiga-ui/kit/abstract';\nimport {TUI_FLOATING_PRECISION} from '@taiga-ui/kit/constants';\nimport {TUI_FROM_TO_TEXTS} from '@taiga-ui/kit/tokens';\nimport {Observable} from 'rxjs';\n\n// @dynamic\n@Component({\n selector: 'tui-range',\n templateUrl: '../../abstract/slider/slider.common.template.html',\n styleUrls: ['../../abstract/slider/slider.common.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: TUI_FOCUSABLE_ITEM_ACCESSOR,\n useExisting: forwardRef(() => TuiRangeComponent),\n },\n ],\n})\nexport class TuiRangeComponent\n extends AbstractTuiSlider<[number, 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(ElementRef) private readonly elementRef: ElementRef<HTMLElement>,\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 if (this.computedDisabled || !this.dotLeft || !this.dotRight) {\n return null;\n }\n\n return this.isLeftFocusable\n ? this.dotLeft.nativeElement\n : this.dotRight.nativeElement;\n }\n\n get focused(): boolean {\n return isNativeFocusedIn(this.elementRef.nativeElement);\n }\n\n get left(): number {\n return 100 * this.getFractionFromValue(this.value[0]);\n }\n\n get right(): number {\n return 100 - 100 * this.getFractionFromValue(this.value[1]);\n }\n\n protected getFallbackValue(): [number, number] {\n return [0, 0];\n }\n\n protected processStep(increment: boolean, right: boolean) {\n const fraction = this.getFractionFromValue(right ? this.value[1] : this.value[0]);\n const step = this.computedStep;\n const value = this.getValueFromFraction(\n increment ? fraction + step : fraction - step,\n );\n\n this.processValue(value, right);\n }\n\n protected processValue(value: number, right: boolean) {\n const guardedValue = this.valueGuard(value);\n\n if (right === true) {\n this.updateEnd(guardedValue);\n } else {\n this.updateStart(guardedValue);\n }\n }\n\n protected getCalibratedFractionFromEvents(\n rect: ClientRect,\n clientX: number,\n isMouseDownRight: boolean,\n ): number {\n const value =\n clientX -\n rect.left -\n DOT_WIDTH[this.size] / 2 -\n (isMouseDownRight ? DOT_WIDTH[this.size] : 0);\n const total = rect.width - 2 * DOT_WIDTH[this.size];\n\n return round(value / total, TUI_FLOATING_PRECISION);\n }\n\n private updateStart(value: number) {\n this.updateValue([Math.min(value, this.value[1]), this.value[1]]);\n }\n\n private updateEnd(value: number) {\n this.updateValue([this.value[0], Math.max(value, this.value[0])]);\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 {TuiRangeComponent} from './range.component';\n\n@NgModule({\n imports: [\n CommonModule,\n TuiRepeatTimesModule,\n TuiFocusableModule,\n TuiActiveZoneModule,\n TuiFocusVisibleModule,\n TuiFormatNumberPipeModule,\n ],\n declarations: [TuiRangeComponent],\n exports: [TuiRangeComponent],\n})\nexport class TuiRangeModule {}\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-range.js","sources":["ng://@taiga-ui/kit/components/range/range.component.ts","ng://@taiga-ui/kit/components/range/range-change.directive.ts","ng://@taiga-ui/kit/components/range/range.module.ts","ng://@taiga-ui/kit/components/range/taiga-ui-kit-components-range.ts"],"sourcesContent":["import {DOCUMENT} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Directive,\n ElementRef,\n forwardRef,\n HostBinding,\n HostListener,\n Inject,\n Input,\n Optional,\n QueryList,\n Self,\n ViewChildren,\n} from '@angular/core';\nimport {NgControl} from '@angular/forms';\nimport {\n EMPTY_QUERY,\n isNativeFocusedIn,\n nonNegativeFiniteAssertion,\n TUI_FOCUSABLE_ITEM_ACCESSOR,\n tuiDefaultProp,\n TuiFocusableElementAccessor,\n TuiNativeFocusableElement,\n tuiPure,\n} from '@taiga-ui/cdk';\nimport {AbstractTuiSlider} from '@taiga-ui/kit/abstract';\nimport {TuiSliderComponent} from '@taiga-ui/kit/components/slider';\nimport {TUI_FROM_TO_TEXTS} from '@taiga-ui/kit/tokens';\nimport {TuiKeySteps} from '@taiga-ui/kit/types';\nimport {Observable} from 'rxjs';\n\n/**\n * Turn on new mode for `Range` and `InputRange`.\n * The new version of component will behave almost the same as the same component from the next major release.\n * @deprecated TODO remove me in v3.0 and make `Range` and `InputRange` always \"new\".\n */\n@Directive({\n selector: 'tui-range[new], tui-input-range[new]',\n})\nexport class TuiNewRangeDirective {}\n\n// @dynamic\n@Component({\n selector: 'tui-range',\n templateUrl: './range.template.html',\n styleUrls: ['./range.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[attr.tabindex]': '-1',\n '[attr.aria-disabled]': 'computedDisabled',\n },\n providers: [\n {\n provide: TUI_FOCUSABLE_ITEM_ACCESSOR,\n useExisting: forwardRef(() => TuiRangeComponent),\n },\n ],\n})\nexport class TuiRangeComponent\n extends AbstractTuiSlider<[number, number]>\n implements TuiFocusableElementAccessor\n{\n @Input()\n @tuiDefaultProp()\n min = 0;\n\n /**\n * TODO: make `100` as default value (to be like native sliders) in v3.0\n */\n @Input()\n @tuiDefaultProp()\n max = Infinity;\n\n /**\n * TODO: think about replacing this props by `step` (to be like native slider).\n * It can be easy after refactor of keySteps.\n */\n @Input()\n @tuiDefaultProp()\n steps = 0;\n\n /**\n * TODO: think about replacing this props by `step` (to be like native slider).\n * It can be easy after refactor of keySteps.\n * */\n @Input()\n @tuiDefaultProp(nonNegativeFiniteAssertion, 'Quantum must be a non-negative number')\n quantum = 0;\n\n @ViewChildren(TuiSliderComponent, {read: ElementRef})\n slidersRefs: QueryList<ElementRef<HTMLInputElement>> = EMPTY_QUERY;\n\n lastActiveThumb: 'right' | 'left' = 'right';\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(ElementRef) private readonly elementRef: ElementRef<HTMLElement>,\n @Inject(TUI_FROM_TO_TEXTS) fromToTexts$: Observable<[string, string]>,\n @Optional()\n @Inject(TuiNewRangeDirective)\n readonly isNew: TuiNewRangeDirective | null,\n ) {\n super(control, changeDetectorRef, documentRef, fromToTexts$);\n }\n\n get nativeFocusableElement(): TuiNativeFocusableElement | null {\n const [sliderLeftRef, sliderRightRef] = this.slidersRefs;\n\n if (this.computedDisabled || !sliderLeftRef || !sliderRightRef) {\n return null;\n }\n\n return this.isLeftFocusable\n ? sliderLeftRef.nativeElement\n : sliderRightRef.nativeElement;\n }\n\n get focused(): boolean {\n return isNativeFocusedIn(this.elementRef.nativeElement);\n }\n\n get computedKeySteps(): TuiKeySteps {\n return this.computePureKeySteps(this.keySteps, this.min, this.max);\n }\n\n @HostBinding('style.--left.%')\n get left(): number {\n return 100 * this.getFractionFromValue(this.value[0]);\n }\n\n @HostBinding('style.--right.%')\n get right(): number {\n return 100 - 100 * this.getFractionFromValue(this.value[1]);\n }\n\n @HostListener('focusin', ['true'])\n @HostListener('focusout', ['false'])\n onFocused(focused: boolean) {\n this.updateFocused(focused);\n }\n\n @HostListener('keydown.arrowUp.prevent', ['1', '$event.target'])\n @HostListener('keydown.arrowRight.prevent', ['1', '$event.target'])\n @HostListener('keydown.arrowLeft.prevent', ['-1', '$event.target'])\n @HostListener('keydown.arrowDown.prevent', ['-1', '$event.target'])\n changeByStep(coefficient: number, target: HTMLElement) {\n const [sliderLeftRef, sliderRightRef] = this.slidersRefs;\n const leftThumbElement = sliderLeftRef.nativeElement;\n const rightThumbElement = sliderRightRef.nativeElement;\n\n const isRightThumb =\n target === this.elementRef.nativeElement\n ? this.lastActiveThumb === 'right'\n : target === rightThumbElement;\n const activeThumbElement = isRightThumb ? rightThumbElement : leftThumbElement;\n const previousValue = isRightThumb ? this.value[1] : this.value[0];\n /** @bad TODO think about a solution without twice conversion */\n const previousFraction = this.getFractionFromValue(previousValue);\n const newFractionValue = previousFraction + coefficient * this.computedStep;\n\n this.processValue(this.getValueFromFraction(newFractionValue), isRightThumb);\n\n if (activeThumbElement) {\n activeThumbElement.focus();\n }\n }\n\n processValue(value: number, right: boolean) {\n const guardedValue = this.valueGuard(value);\n\n if (right) {\n this.updateEnd(guardedValue);\n } else {\n this.updateStart(guardedValue);\n }\n\n this.lastActiveThumb = right ? 'right' : 'left';\n }\n\n protected getFallbackValue(): [number, number] {\n return [0, 0];\n }\n\n @tuiPure\n private computePureKeySteps(\n keySteps: TuiKeySteps | null,\n min: number,\n max: number,\n ): TuiKeySteps {\n return [[0, min], ...(keySteps || []), [100, max]];\n }\n\n private updateStart(value: number) {\n this.updateValue([Math.min(value, this.value[1]), this.value[1]]);\n }\n\n private updateEnd(value: number) {\n this.updateValue([this.value[0], Math.max(value, this.value[0])]);\n }\n}\n","import {DOCUMENT} from '@angular/common';\nimport {Directive, ElementRef, EventEmitter, Inject, Output} from '@angular/core';\nimport {clamp, round, TuiDestroyService, typedFromEvent} from '@taiga-ui/cdk';\nimport {TUI_FLOATING_PRECISION} from '@taiga-ui/kit/constants';\nimport {merge, Observable} from 'rxjs';\nimport {filter, map, repeat, startWith, switchMap, takeUntil, tap} from 'rxjs/operators';\n\nimport {TuiRangeComponent} from './range.component';\n\n// @dynamic\n@Directive({\n selector: 'tui-range',\n providers: [TuiDestroyService],\n})\nexport class TuiRangeChangeDirective {\n /**\n * TODO replace with pointer events (when all supported browsers can handle them).\n * Dont forget to use setPointerCapture instead of listening all documentRef events\n */\n private readonly pointerDown$ = merge(\n typedFromEvent(this.elementRef.nativeElement, 'touchstart', {passive: true}).pipe(\n filter(({touches}) => touches.length === 1),\n map(({touches}) => touches[0]),\n ),\n typedFromEvent(this.elementRef.nativeElement, 'mousedown', {passive: true}),\n );\n\n private readonly pointerMove$ = merge(\n typedFromEvent(this.documentRef, 'touchmove').pipe(\n filter(({touches}) => touches.length === 1),\n map(({touches}) => touches[0]),\n ),\n typedFromEvent(this.documentRef, 'mousemove'),\n );\n\n private readonly pointerUp$ = merge(\n typedFromEvent(this.documentRef, 'touchend', {passive: true}),\n typedFromEvent(this.documentRef, 'mouseup', {passive: true}),\n );\n\n @Output()\n activeThumbChange = new EventEmitter<'left' | 'right'>();\n\n constructor(\n @Inject(DOCUMENT) private readonly documentRef: Document,\n @Inject(ElementRef) private readonly elementRef: ElementRef<HTMLElement>,\n @Inject(TuiRangeComponent) private readonly range: TuiRangeComponent,\n @Inject(TuiDestroyService) destroy$: Observable<unknown>,\n ) {\n let activeThumb: 'left' | 'right';\n\n this.pointerDown$\n .pipe(\n tap(({clientX, target}) => {\n activeThumb = this.detectActiveThumb(clientX, target);\n this.activeThumbChange.emit(activeThumb);\n elementRef.nativeElement.focus();\n }),\n switchMap(event => this.pointerMove$.pipe(startWith(event))),\n map(({clientX}) => clamp(this.getFractionFromEvents(clientX), 0, 1)),\n takeUntil(this.pointerUp$),\n repeat(),\n takeUntil(destroy$),\n )\n .subscribe(fraction => {\n const value = this.range.getValueFromFraction(\n this.range.fractionGuard(fraction),\n );\n\n this.range.processValue(value, activeThumb === 'right');\n });\n }\n\n private getFractionFromEvents(clickClientX: number): number {\n const hostRect = this.elementRef.nativeElement.getBoundingClientRect();\n const value = clickClientX - hostRect.left;\n const total = hostRect.width;\n\n return round(value / total, TUI_FLOATING_PRECISION);\n }\n\n private detectActiveThumb(\n clientX: number,\n target: EventTarget | null,\n ): 'left' | 'right' {\n const [leftSliderRef, rightSliderRef] = this.range.slidersRefs;\n\n switch (target) {\n case leftSliderRef.nativeElement:\n return 'left';\n case rightSliderRef.nativeElement:\n return 'right';\n default:\n return this.findNearestActiveThumb(clientX);\n }\n }\n\n private findNearestActiveThumb(clientX: number): 'left' | 'right' {\n const fraction = this.getFractionFromEvents(clientX);\n const deltaLeft = fraction * 100 - this.range.left;\n const deltaRight = fraction * 100 - 100 + this.range.right;\n\n return Math.abs(deltaLeft) > Math.abs(deltaRight) ||\n deltaRight > 0 ||\n (this.range.left === 0 && this.range.right === 100)\n ? 'right'\n : 'left';\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {FormsModule} from '@angular/forms';\nimport {TuiFocusableModule, TuiRepeatTimesModule} from '@taiga-ui/cdk';\nimport {TuiFormatNumberPipeModule} from '@taiga-ui/core';\nimport {TuiSliderModule} from '@taiga-ui/kit/components/slider';\n\nimport {TuiNewRangeDirective, TuiRangeComponent} from './range.component';\nimport {TuiRangeChangeDirective} from './range-change.directive';\n\n@NgModule({\n imports: [\n CommonModule,\n TuiRepeatTimesModule,\n TuiFocusableModule,\n TuiFormatNumberPipeModule,\n TuiSliderModule,\n FormsModule,\n ],\n declarations: [TuiRangeComponent, TuiRangeChangeDirective, TuiNewRangeDirective],\n exports: [TuiRangeComponent, TuiRangeChangeDirective, TuiNewRangeDirective],\n})\nexport class TuiRangeModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;;;;AAkCA;;;;;IAQa,oBAAoB,GAAjC,MAAa,oBAAoB;EAAG;AAAvB,oBAAoB;IAHhC,SAAS,CAAC;QACP,QAAQ,EAAE,sCAAsC;KACnD,CAAC;GACW,oBAAoB,CAAG;AAEpC;IAiBa,iBAAiB,yBAA9B,MAAa,iBACT,SAAQ,iBAAmC;IAmC3C,YAII,OAAyB,EACE,iBAAoC,EAC7C,WAAqB,EACF,UAAmC,EAC7C,YAA0C,EAG5D,KAAkC;QAE3C,KAAK,CAAC,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC;QANxB,eAAU,GAAV,UAAU,CAAyB;QAI/D,UAAK,GAAL,KAAK,CAA6B;QAzC/C,QAAG,GAAG,CAAC,CAAC;;;;QAOR,QAAG,GAAG,QAAQ,CAAC;;;;;QAQf,UAAK,GAAG,CAAC,CAAC;;;;;QAQV,YAAO,GAAG,CAAC,CAAC;QAGZ,gBAAW,GAA4C,WAAW,CAAC;QAEnE,oBAAe,GAAqB,OAAO,CAAC;KAgB3C;IAED,IAAI,sBAAsB;QACtB,MAAM,CAAC,aAAa,EAAE,cAAc,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC;QAEzD,IAAI,IAAI,CAAC,gBAAgB,IAAI,CAAC,aAAa,IAAI,CAAC,cAAc,EAAE;YAC5D,OAAO,IAAI,CAAC;SACf;QAED,OAAO,IAAI,CAAC,eAAe;cACrB,aAAa,CAAC,aAAa;cAC3B,cAAc,CAAC,aAAa,CAAC;KACtC;IAED,IAAI,OAAO;QACP,OAAO,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;KAC3D;IAED,IAAI,gBAAgB;QAChB,OAAO,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;KACtE;IAGD,IAAI,IAAI;QACJ,OAAO,GAAG,GAAG,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;KACzD;IAGD,IAAI,KAAK;QACL,OAAO,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;KAC/D;IAID,SAAS,CAAC,OAAgB;QACtB,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;KAC/B;IAMD,YAAY,CAAC,WAAmB,EAAE,MAAmB;QACjD,MAAM,CAAC,aAAa,EAAE,cAAc,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC;QACzD,MAAM,gBAAgB,GAAG,aAAa,CAAC,aAAa,CAAC;QACrD,MAAM,iBAAiB,GAAG,cAAc,CAAC,aAAa,CAAC;QAEvD,MAAM,YAAY,GACd,MAAM,KAAK,IAAI,CAAC,UAAU,CAAC,aAAa;cAClC,IAAI,CAAC,eAAe,KAAK,OAAO;cAChC,MAAM,KAAK,iBAAiB,CAAC;QACvC,MAAM,kBAAkB,GAAG,YAAY,GAAG,iBAAiB,GAAG,gBAAgB,CAAC;QAC/E,MAAM,aAAa,GAAG,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;;QAEnE,MAAM,gBAAgB,GAAG,IAAI,CAAC,oBAAoB,CAAC,aAAa,CAAC,CAAC;QAClE,MAAM,gBAAgB,GAAG,gBAAgB,GAAG,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC;QAE5E,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,EAAE,YAAY,CAAC,CAAC;QAE7E,IAAI,kBAAkB,EAAE;YACpB,kBAAkB,CAAC,KAAK,EAAE,CAAC;SAC9B;KACJ;IAED,YAAY,CAAC,KAAa,EAAE,KAAc;QACtC,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAE5C,IAAI,KAAK,EAAE;YACP,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;SAChC;aAAM;YACH,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;SAClC;QAED,IAAI,CAAC,eAAe,GAAG,KAAK,GAAG,OAAO,GAAG,MAAM,CAAC;KACnD;IAES,gBAAgB;QACtB,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;KACjB;IAGO,mBAAmB,CACvB,QAA4B,EAC5B,GAAW,EACX,GAAW;QAEX,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,IAAI,QAAQ,IAAI,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;KACtD;IAEO,WAAW,CAAC,KAAa;QAC7B,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KACrE;IAEO,SAAS,CAAC,KAAa;QAC3B,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KACrE;EACJ;;YA1GgB,SAAS,uBAHjB,QAAQ,YACR,IAAI,YACJ,MAAM,SAAC,SAAS;YAE6B,iBAAiB,uBAA9D,MAAM,SAAC,iBAAiB;YACM,QAAQ,uBAAtC,MAAM,SAAC,QAAQ;YACiC,UAAU,uBAA1D,MAAM,SAAC,UAAU;YACuB,UAAU,uBAAlD,MAAM,SAAC,iBAAiB;YAGT,oBAAoB,uBAFnC,QAAQ,YACR,MAAM,SAAC,oBAAoB;;AAxChC;IAFC,KAAK,EAAE;IACP,cAAc,EAAE;8CACT;AAOR;IAFC,KAAK,EAAE;IACP,cAAc,EAAE;8CACF;AAQf;IAFC,KAAK,EAAE;IACP,cAAc,EAAE;gDACP;AAQV;IAFC,KAAK,EAAE;IACP,cAAc,CAAC,0BAA0B,EAAE,uCAAuC,CAAC;kDACxE;AAGZ;IADC,YAAY,CAAC,kBAAkB,EAAE,EAAC,IAAI,EAAE,UAAU,EAAC,CAAC;sDACc;AAyCnE;IADC,WAAW,CAAC,gBAAgB,CAAC;6CAG7B;AAGD;IADC,WAAW,CAAC,iBAAiB,CAAC;8CAG9B;AAID;IAFC,YAAY,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC,CAAC;IACjC,YAAY,CAAC,UAAU,EAAE,CAAC,OAAO,CAAC,CAAC;kDAGnC;AAMD;IAJC,YAAY,CAAC,yBAAyB,EAAE,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC;IAC/D,YAAY,CAAC,4BAA4B,EAAE,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC;IAClE,YAAY,CAAC,2BAA2B,EAAE,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;IAClE,YAAY,CAAC,2BAA2B,EAAE,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;qDAqBlE;AAmBD;IADC,OAAO;4DAOP;AAzIQ,iBAAiB;IAhB7B,SAAS,CAAC;QACP,QAAQ,EAAE,WAAW;QACrB,qtDAAoC;QAEpC,eAAe,EAAE,uBAAuB,CAAC,MAAM;QAC/C,IAAI,EAAE;YACF,iBAAiB,EAAE,IAAI;YACvB,sBAAsB,EAAE,kBAAkB;SAC7C;QACD,SAAS,EAAE;YACP;gBACI,OAAO,EAAE,2BAA2B;gBACpC,WAAW,EAAE,UAAU,CAAC,MAAM,mBAAiB,CAAC;aACnD;SACJ;;KACJ,CAAC;IAsCO,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,UAAU,CAAC,CAAA;IAClB,WAAA,MAAM,CAAC,iBAAiB,CAAC,CAAA;IACzB,WAAA,QAAQ,EAAE,CAAA;IACV,WAAA,MAAM,CAAC,oBAAoB,CAAC,CAAA;GA9CxB,iBAAiB,CAkJ7B;;ACtMD;IAKa,uBAAuB,GAApC,MAAa,uBAAuB;IA6BhC,YACuC,WAAqB,EACnB,UAAmC,EAC5B,KAAwB,EACzC,QAA6B;QAHrB,gBAAW,GAAX,WAAW,CAAU;QACnB,eAAU,GAAV,UAAU,CAAyB;QAC5B,UAAK,GAAL,KAAK,CAAmB;;;;;QA3BvD,iBAAY,GAAG,KAAK,CACjC,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,YAAY,EAAE,EAAC,OAAO,EAAE,IAAI,EAAC,CAAC,CAAC,IAAI,CAC7E,MAAM,CAAC,CAAC,EAAC,OAAO,EAAC,KAAK,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,EAC3C,GAAG,CAAC,CAAC,EAAC,OAAO,EAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CACjC,EACD,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,WAAW,EAAE,EAAC,OAAO,EAAE,IAAI,EAAC,CAAC,CAC9E,CAAC;QAEe,iBAAY,GAAG,KAAK,CACjC,cAAc,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC,IAAI,CAC9C,MAAM,CAAC,CAAC,EAAC,OAAO,EAAC,KAAK,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,EAC3C,GAAG,CAAC,CAAC,EAAC,OAAO,EAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CACjC,EACD,cAAc,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,CAChD,CAAC;QAEe,eAAU,GAAG,KAAK,CAC/B,cAAc,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,EAAE,EAAC,OAAO,EAAE,IAAI,EAAC,CAAC,EAC7D,cAAc,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,EAAE,EAAC,OAAO,EAAE,IAAI,EAAC,CAAC,CAC/D,CAAC;QAGF,sBAAiB,GAAG,IAAI,YAAY,EAAoB,CAAC;QAQrD,IAAI,WAA6B,CAAC;QAElC,IAAI,CAAC,YAAY;aACZ,IAAI,CACD,GAAG,CAAC,CAAC,EAAC,OAAO,EAAE,MAAM,EAAC;YAClB,WAAW,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YACtD,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACzC,UAAU,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;SACpC,CAAC,EACF,SAAS,CAAC,KAAK,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,EAC5D,GAAG,CAAC,CAAC,EAAC,OAAO,EAAC,KAAK,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EACpE,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,EAC1B,MAAM,EAAE,EACR,SAAS,CAAC,QAAQ,CAAC,CACtB;aACA,SAAS,CAAC,QAAQ;YACf,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,oBAAoB,CACzC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,QAAQ,CAAC,CACrC,CAAC;YAEF,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK,EAAE,WAAW,KAAK,OAAO,CAAC,CAAC;SAC3D,CAAC,CAAC;KACV;IAEO,qBAAqB,CAAC,YAAoB;QAC9C,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,qBAAqB,EAAE,CAAC;QACvE,MAAM,KAAK,GAAG,YAAY,GAAG,QAAQ,CAAC,IAAI,CAAC;QAC3C,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;QAE7B,OAAO,KAAK,CAAC,KAAK,GAAG,KAAK,EAAE,sBAAsB,CAAC,CAAC;KACvD;IAEO,iBAAiB,CACrB,OAAe,EACf,MAA0B;QAE1B,MAAM,CAAC,aAAa,EAAE,cAAc,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;QAE/D,QAAQ,MAAM;YACV,KAAK,aAAa,CAAC,aAAa;gBAC5B,OAAO,MAAM,CAAC;YAClB,KAAK,cAAc,CAAC,aAAa;gBAC7B,OAAO,OAAO,CAAC;YACnB;gBACI,OAAO,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC;SACnD;KACJ;IAEO,sBAAsB,CAAC,OAAe;QAC1C,MAAM,QAAQ,GAAG,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC;QACrD,MAAM,SAAS,GAAG,QAAQ,GAAG,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;QACnD,MAAM,UAAU,GAAG,QAAQ,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;QAE3D,OAAO,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC;YAC7C,UAAU,GAAG,CAAC;aACb,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,KAAK,GAAG,CAAC;cACjD,OAAO;cACP,MAAM,CAAC;KAChB;EACJ;;YAhEuD,QAAQ,uBAAvD,MAAM,SAAC,QAAQ;YACiC,UAAU,uBAA1D,MAAM,SAAC,UAAU;YACiC,iBAAiB,uBAAnE,MAAM,SAAC,iBAAiB;YACY,UAAU,uBAA9C,MAAM,SAAC,iBAAiB;;AAN7B;IADC,MAAM,EAAE;kEACgD;AA3BhD,uBAAuB;IAJnC,SAAS,CAAC;QACP,QAAQ,EAAE,WAAW;QACrB,SAAS,EAAE,CAAC,iBAAiB,CAAC;KACjC,CAAC;IA+BO,WAAA,MAAM,CAAC,QAAQ,CAAC,CAAA;IAChB,WAAA,MAAM,CAAC,UAAU,CAAC,CAAA;IAClB,WAAA,MAAM,CAAC,iBAAiB,CAAC,CAAA;IACzB,WAAA,MAAM,CAAC,iBAAiB,CAAC,CAAA;GAjCrB,uBAAuB,CA8FnC;;ICtFY,cAAc,GAA3B,MAAa,cAAc;EAAG;AAAjB,cAAc;IAZ1B,QAAQ,CAAC;QACN,OAAO,EAAE;YACL,YAAY;YACZ,oBAAoB;YACpB,kBAAkB;YAClB,yBAAyB;YACzB,eAAe;YACf,WAAW;SACd;QACD,YAAY,EAAE,CAAC,iBAAiB,EAAE,uBAAuB,EAAE,oBAAoB,CAAC;QAChF,OAAO,EAAE,CAAC,iBAAiB,EAAE,uBAAuB,EAAE,oBAAoB,CAAC;KAC9E,CAAC;GACW,cAAc,CAAG;;ACtB9B;;;;;;"}
@@ -86,7 +86,7 @@ __decorate([
86
86
  TuiRatingComponent = TuiRatingComponent_1 = __decorate([
87
87
  Component({
88
88
  selector: 'tui-rating',
89
- template: "<label>\n <ng-content></ng-content>\n\n <div class=\"t-host\">\n <div class=\"t-interactive\">\n <tui-svg\n *tuiRepeatTimes=\"let index of max\"\n class=\"t-icon-filled\"\n [src]=\"iconFilled\"\n (click)=\"setRateByReverseIndex(index)\"\n ></tui-svg>\n </div>\n\n <div class=\"t-wrapper\" [style.width.%]=\"percent\">\n <tui-svg\n *tuiRepeatTimes=\"let index of max\"\n class=\"t-icon-filled\"\n [src]=\"iconFilled\"\n ></tui-svg>\n </div>\n\n <tui-svg *tuiRepeatTimes=\"let item of max\" [src]=\"iconNormal\"></tui-svg>\n\n <input\n #focusableElement\n type=\"range\"\n step=\"1\"\n class=\"t-input\"\n [min]=\"min\"\n [max]=\"max\"\n [ngModel]=\"value\"\n [tuiFocusable]=\"isFocusable\"\n (ngModelChange)=\"setRate($event)\"\n />\n </div>\n</label>\n",
89
+ template: "<label>\n <ng-content></ng-content>\n\n <div class=\"t-host\">\n <div class=\"t-interactive\">\n <tui-svg\n *tuiRepeatTimes=\"let index of max\"\n class=\"t-icon-filled\"\n [src]=\"iconFilled\"\n (click)=\"setRateByReverseIndex(index)\"\n ></tui-svg>\n </div>\n\n <div\n class=\"t-wrapper\"\n [style.width.%]=\"percent\"\n >\n <tui-svg\n *tuiRepeatTimes=\"let index of max\"\n class=\"t-icon-filled\"\n [src]=\"iconFilled\"\n ></tui-svg>\n </div>\n\n <tui-svg\n *tuiRepeatTimes=\"let item of max\"\n [src]=\"iconNormal\"\n ></tui-svg>\n\n <input\n #focusableElement\n type=\"range\"\n step=\"1\"\n class=\"t-input\"\n [min]=\"min\"\n [max]=\"max\"\n [ngModel]=\"value\"\n [tuiFocusable]=\"isFocusable\"\n (ngModelChange)=\"setRate($event)\"\n />\n </div>\n</label>\n",
90
90
  changeDetection: ChangeDetectionStrategy.OnPush,
91
91
  providers: [
92
92
  {
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-kit-components-rating.js","sources":["ng://@taiga-ui/kit/components/rating/rating-options.ts","ng://@taiga-ui/kit/components/rating/rating.component.ts","ng://@taiga-ui/kit/components/rating/rating.module.ts","ng://@taiga-ui/kit/components/rating/taiga-ui-kit-components-rating.ts"],"sourcesContent":["import {InjectionToken, ValueProvider} from '@angular/core';\n\nexport interface TuiRatingOptions {\n readonly min: number;\n readonly max: number;\n readonly iconNormal: string;\n readonly iconFilled: string;\n}\n\nexport const TUI_RATING_DEFAULT_OPTIONS: TuiRatingOptions = {\n min: 0,\n max: 5,\n iconNormal: 'tuiIconStarLarge',\n iconFilled: 'tuiIconStarFilledLarge',\n};\n\nexport const TUI_RATING_OPTIONS = new InjectionToken<TuiRatingOptions>(\n 'Default parameters for rating component',\n {\n factory: () => TUI_RATING_DEFAULT_OPTIONS,\n },\n);\n\nexport const tuiRatingOptionsProvider: (\n options: Partial<TuiRatingOptions>,\n) => ValueProvider = (options: Partial<TuiRatingOptions>) => ({\n provide: TUI_RATING_OPTIONS,\n useValue: {...TUI_RATING_DEFAULT_OPTIONS, ...options},\n});\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n forwardRef,\n HostListener,\n Inject,\n Input,\n Optional,\n Self,\n ViewChild,\n} from '@angular/core';\nimport {NgControl} from '@angular/forms';\nimport {\n AbstractTuiControl,\n isNativeFocused,\n TUI_FOCUSABLE_ITEM_ACCESSOR,\n tuiDefaultProp,\n TuiFocusableElementAccessor,\n} from '@taiga-ui/cdk';\n\nimport {TUI_RATING_OPTIONS, TuiRatingOptions} from './rating-options';\n\n@Component({\n selector: 'tui-rating',\n templateUrl: './rating.template.html',\n styleUrls: ['./rating.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: TUI_FOCUSABLE_ITEM_ACCESSOR,\n useExisting: forwardRef(() => TuiRatingComponent),\n },\n ],\n})\nexport class TuiRatingComponent\n extends AbstractTuiControl<number>\n implements TuiFocusableElementAccessor\n{\n @ViewChild('focusableElement')\n private readonly focusableElement?: ElementRef<HTMLInputElement>;\n\n @Input()\n @tuiDefaultProp()\n min = this.options.min;\n\n @Input()\n @tuiDefaultProp()\n max = this.options.max;\n\n @Input()\n @tuiDefaultProp()\n iconNormal = this.options.iconNormal;\n\n @Input()\n @tuiDefaultProp()\n iconFilled = this.options.iconFilled;\n\n constructor(\n @Optional()\n @Self()\n @Inject(NgControl)\n ngControl: NgControl | null,\n @Inject(ChangeDetectorRef)\n changeDetectorRef: ChangeDetectorRef,\n @Inject(TUI_RATING_OPTIONS)\n private readonly options: TuiRatingOptions,\n ) {\n super(ngControl, changeDetectorRef);\n }\n\n get nativeFocusableElement(): HTMLInputElement | null {\n return this.computedDisabled || !this.focusableElement\n ? null\n : this.focusableElement.nativeElement;\n }\n\n get focused(): boolean {\n return isNativeFocused(this.nativeFocusableElement);\n }\n\n get isFocusable(): boolean {\n return !(this.readOnly || this.disabled);\n }\n\n get percent(): number {\n return (100 * this.value) / this.max;\n }\n\n @HostListener('focusin', ['true'])\n @HostListener('focusout', ['false'])\n onFocused(focused: boolean): void {\n this.updateFocused(focused);\n }\n\n setRateByReverseIndex(index: number): void {\n this.updateValue(this.max - index);\n }\n\n setRate(value: number): void {\n this.updateValue(value);\n }\n\n protected getFallbackValue(): number {\n return 0;\n }\n}\n","import {NgModule} from '@angular/core';\nimport {FormsModule, ReactiveFormsModule} from '@angular/forms';\nimport {TuiFocusableModule, TuiRepeatTimesModule} from '@taiga-ui/cdk';\nimport {TuiSvgModule} from '@taiga-ui/core';\n\nimport {TuiRatingComponent} from './rating.component';\n\n@NgModule({\n imports: [\n TuiSvgModule,\n TuiFocusableModule,\n TuiRepeatTimesModule,\n FormsModule,\n ReactiveFormsModule,\n ],\n declarations: [TuiRatingComponent],\n exports: [TuiRatingComponent],\n})\nexport class TuiRatingModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"taiga-ui-kit-components-rating.js","sources":["ng://@taiga-ui/kit/components/rating/rating-options.ts","ng://@taiga-ui/kit/components/rating/rating.component.ts","ng://@taiga-ui/kit/components/rating/rating.module.ts","ng://@taiga-ui/kit/components/rating/taiga-ui-kit-components-rating.ts"],"sourcesContent":["import {InjectionToken, ValueProvider} from '@angular/core';\n\nexport interface TuiRatingOptions {\n readonly min: number;\n readonly max: number;\n readonly iconNormal: string;\n readonly iconFilled: string;\n}\n\nexport const TUI_RATING_DEFAULT_OPTIONS: TuiRatingOptions = {\n min: 0,\n max: 5,\n iconNormal: 'tuiIconStarLarge',\n iconFilled: 'tuiIconStarFilledLarge',\n};\n\nexport const TUI_RATING_OPTIONS = new InjectionToken<TuiRatingOptions>(\n 'Default parameters for rating component',\n {\n factory: () => TUI_RATING_DEFAULT_OPTIONS,\n },\n);\n\nexport const tuiRatingOptionsProvider: (\n options: Partial<TuiRatingOptions>,\n) => ValueProvider = (options: Partial<TuiRatingOptions>) => ({\n provide: TUI_RATING_OPTIONS,\n useValue: {...TUI_RATING_DEFAULT_OPTIONS, ...options},\n});\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n forwardRef,\n HostListener,\n Inject,\n Input,\n Optional,\n Self,\n ViewChild,\n} from '@angular/core';\nimport {NgControl} from '@angular/forms';\nimport {\n AbstractTuiControl,\n isNativeFocused,\n TUI_FOCUSABLE_ITEM_ACCESSOR,\n tuiDefaultProp,\n TuiFocusableElementAccessor,\n} from '@taiga-ui/cdk';\n\nimport {TUI_RATING_OPTIONS, TuiRatingOptions} from './rating-options';\n\n@Component({\n selector: 'tui-rating',\n templateUrl: './rating.template.html',\n styleUrls: ['./rating.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: TUI_FOCUSABLE_ITEM_ACCESSOR,\n useExisting: forwardRef(() => TuiRatingComponent),\n },\n ],\n})\nexport class TuiRatingComponent\n extends AbstractTuiControl<number>\n implements TuiFocusableElementAccessor\n{\n @ViewChild('focusableElement')\n private readonly focusableElement?: ElementRef<HTMLInputElement>;\n\n @Input()\n @tuiDefaultProp()\n min = this.options.min;\n\n @Input()\n @tuiDefaultProp()\n max = this.options.max;\n\n @Input()\n @tuiDefaultProp()\n iconNormal = this.options.iconNormal;\n\n @Input()\n @tuiDefaultProp()\n iconFilled = this.options.iconFilled;\n\n constructor(\n @Optional()\n @Self()\n @Inject(NgControl)\n ngControl: NgControl | null,\n @Inject(ChangeDetectorRef)\n changeDetectorRef: ChangeDetectorRef,\n @Inject(TUI_RATING_OPTIONS)\n private readonly options: TuiRatingOptions,\n ) {\n super(ngControl, changeDetectorRef);\n }\n\n get nativeFocusableElement(): HTMLInputElement | null {\n return this.computedDisabled || !this.focusableElement\n ? null\n : this.focusableElement.nativeElement;\n }\n\n get focused(): boolean {\n return isNativeFocused(this.nativeFocusableElement);\n }\n\n get isFocusable(): boolean {\n return !(this.readOnly || this.disabled);\n }\n\n get percent(): number {\n return (100 * this.value) / this.max;\n }\n\n @HostListener('focusin', ['true'])\n @HostListener('focusout', ['false'])\n onFocused(focused: boolean): void {\n this.updateFocused(focused);\n }\n\n setRateByReverseIndex(index: number): void {\n this.updateValue(this.max - index);\n }\n\n setRate(value: number): void {\n this.updateValue(value);\n }\n\n protected getFallbackValue(): number {\n return 0;\n }\n}\n","import {NgModule} from '@angular/core';\nimport {FormsModule, ReactiveFormsModule} from '@angular/forms';\nimport {TuiFocusableModule, TuiRepeatTimesModule} from '@taiga-ui/cdk';\nimport {TuiSvgModule} from '@taiga-ui/core';\n\nimport {TuiRatingComponent} from './rating.component';\n\n@NgModule({\n imports: [\n TuiSvgModule,\n TuiFocusableModule,\n TuiRepeatTimesModule,\n FormsModule,\n ReactiveFormsModule,\n ],\n declarations: [TuiRatingComponent],\n exports: [TuiRatingComponent],\n})\nexport class TuiRatingModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -137,7 +137,7 @@ __decorate([
137
137
  TuiSelectComponent = __decorate([
138
138
  Component({
139
139
  selector: 'tui-select',
140
- template: "<tui-hosted-dropdown\n class=\"t-hosted\"\n [canOpen]=\"interactive\"\n [content]=\"datalist || ''\"\n (tuiActiveZoneChange)=\"onActiveZone($event)\"\n>\n <tui-primitive-textfield\n automation-id=\"tui-select__textfield\"\n class=\"t-textfield\"\n [editable]=\"false\"\n [pseudoFocused]=\"computedFocused\"\n [pseudoHovered]=\"pseudoHovered\"\n [pseudoPressed]=\"pseudoPressed\"\n [invalid]=\"computedInvalid\"\n [nativeId]=\"nativeId\"\n [readOnly]=\"readOnly\"\n [iconContent]=\"arrow\"\n [disabled]=\"computedDisabled\"\n [focusable]=\"computedFocusable\"\n [value]=\"computedValue\"\n (valueChange)=\"onValueChange($event)\"\n (hoveredChange)=\"onHovered($event)\"\n (keydown.delete.prevent)=\"onKeyDownDelete()\"\n (keydown.backspace.prevent)=\"onKeyDownDelete()\"\n >\n <ng-content></ng-content>\n <ng-content select=\"input\" ngProjectAs=\"input\"></ng-content>\n <div\n *ngIf=\"value !== null\"\n polymorpheus-outlet\n automation-id=\"tui-select__value\"\n class=\"t-value\"\n [content]=\"computedContent\"\n [context]=\"computeContext(value, computedFocused)\"\n >\n <ng-template let-primitiveValue>\n <div class=\"t-primitive-value\">{{ primitiveValue }}</div>\n </ng-template>\n </div>\n </tui-primitive-textfield>\n</tui-hosted-dropdown>\n",
140
+ template: "<tui-hosted-dropdown\n class=\"t-hosted\"\n [canOpen]=\"interactive\"\n [content]=\"datalist || ''\"\n (tuiActiveZoneChange)=\"onActiveZone($event)\"\n>\n <tui-primitive-textfield\n automation-id=\"tui-select__textfield\"\n class=\"t-textfield\"\n [editable]=\"false\"\n [pseudoFocused]=\"computedFocused\"\n [pseudoHovered]=\"pseudoHovered\"\n [pseudoPressed]=\"pseudoPressed\"\n [invalid]=\"computedInvalid\"\n [nativeId]=\"nativeId\"\n [readOnly]=\"readOnly\"\n [iconContent]=\"arrow\"\n [disabled]=\"computedDisabled\"\n [focusable]=\"computedFocusable\"\n [value]=\"computedValue\"\n (valueChange)=\"onValueChange($event)\"\n (hoveredChange)=\"onHovered($event)\"\n (keydown.delete.prevent)=\"onKeyDownDelete()\"\n (keydown.backspace.prevent)=\"onKeyDownDelete()\"\n >\n <ng-content></ng-content>\n <ng-content\n select=\"input\"\n ngProjectAs=\"input\"\n ></ng-content>\n <div\n *ngIf=\"value !== null\"\n polymorpheus-outlet\n automation-id=\"tui-select__value\"\n class=\"t-value\"\n [content]=\"computedContent\"\n [context]=\"computeContext(value, computedFocused)\"\n >\n <ng-template let-primitiveValue>\n <div class=\"t-primitive-value\">{{ primitiveValue }}</div>\n </ng-template>\n </div>\n </tui-primitive-textfield>\n</tui-hosted-dropdown>\n",
141
141
  changeDetection: ChangeDetectionStrategy.OnPush,
142
142
  providers: TUI_SELECT_PROVIDERS,
143
143
  styles: [":host{display:block;border-radius:var(--tui-radius-m);text-align:left}:host:not(._readonly) ::ng-deep input:not(:disabled){cursor:pointer}:host._readonly ::ng-deep input{cursor:default}.t-hosted{display:block;border-radius:inherit}.t-textfield{border-radius:inherit;text-align:inherit}.t-value{display:flex;width:100%;align-items:center}.t-primitive-value{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}"]
@@ -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-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 TuiActiveZoneDirective,\n TuiContextWithImplicit,\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 TuiSizeL,\n TuiSizeM,\n TuiSizeS,\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 TuiContextWithImplicit<TuiActiveZoneDirective>\n > = '';\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 TuiContextWithImplicit<TuiSizeS | TuiSizeM | TuiSizeL>\n > {\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
+ {"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 TuiActiveZoneDirective,\n TuiContextWithImplicit,\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 TuiSizeL,\n TuiSizeM,\n TuiSizeS,\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 TuiContextWithImplicit<TuiActiveZoneDirective>\n > = '';\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 TuiContextWithImplicit<TuiSizeS | TuiSizeM | TuiSizeL>\n > {\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":";;;;;;;;;;;;AAQA;MACa,aAAa,GAAY,kBAAkB;MAE3C,oBAAoB,GAAG;IAChC;QACI,OAAO,EAAE,kBAAkB;QAC3B,WAAW,EAAE,UAAU,CAAC,MAAM,kBAAkB,CAAC;KACpD;IACD;QACI,OAAO,EAAE,2BAA2B;QACpC,WAAW,EAAE,UAAU,CAAC,MAAM,kBAAkB,CAAC;KACpD;IACD;QACI,OAAO,EAAE,kBAAkB;QAC3B,WAAW,EAAE,UAAU,CAAC,MAAM,kBAAkB,CAAC;KACpD;IACD;QACI,OAAO,EAAE,kBAAkB;QAC3B,QAAQ,EAAE,aAAa;KAC1B;IACD,kCAAkC;;;MCpBzB,0BAA0B,GAA8B;IACjE,YAAY,EAAE,EAAE;EAClB;MAEW,kBAAkB,GAAG,IAAI,cAAc,CAChD,yCAAyC,EACzC;IACI,OAAO,EAAE,MAAM,0BAA0B;CAC5C,EACH;MAEW,wBAAwB,GAEhB,CAAI,OAAqC,MAAM;IAChE,OAAO,EAAE,kBAAkB;IAC3B,QAAQ,kCAAM,0BAA0B,GAAK,OAAO,CAAC;CACxD;;ICyBY,kBAAkB,GAA/B,MAAa,kBACT,SAAQ,0BAA6B;IA2BrC,YAII,OAAyB,EACE,iBAAoC,EAE9C,gBAA8C,EAE9C,SAAuB,EAEvB,aAAkC,EAElC,OAA4B;QAE7C,KAAK,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAC;QARjB,qBAAgB,GAAhB,gBAAgB,CAA8B;QAE9C,cAAS,GAAT,SAAS,CAAc;QAEvB,kBAAa,GAAb,aAAa,CAAqB;QAElC,YAAO,GAAP,OAAO,CAAqB;QA7BjD,cAAS,GAAqC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC;QAI3E,oBAAe,GACX,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC;QAIvC,iBAAY,GAAwC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC;QAGrE,aAAQ,GAEb,EAAE,CAAC;KAkBN;IAED,IAAI,KAAK;QAGL,OAAO,CAAC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC;KACnF;IAED,IAAI,sBAAsB;QACtB,OAAO,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,sBAAsB,GAAG,IAAI,CAAC;KACxE;IAED,IAAI,OAAO;QACP,QACI,eAAe,CAAC,IAAI,CAAC,sBAAsB,CAAC;aAC3C,CAAC,CAAC,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,EACxD;KACL;IAED,IAAI,aAAa;QACb,OAAO,IAAI,CAAC,KAAK,KAAK,IAAI,GAAG,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC;KACvE;IAED,IAAI,eAAe;QACf,OAAO,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,aAAa,CAAC;KAClD;IAGD,cAAc,CACV,SAAmB,EACnB,MAAe;QAEf,OAAO,EAAC,SAAS,EAAE,MAAM,EAAC,CAAC;KAC9B;IAED,aAAa,CAAC,KAAa;QACvB,IAAI,CAAC,KAAK,EAAE;YACR,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;SAC1B;KACJ;IAED,YAAY,CAAC,MAAe;QACxB,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;KAC9B;IAED,SAAS,CAAC,OAAgB;QACtB,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;KAC/B;IAED,eAAe;QACX,IAAI,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE;YAC/B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;SAC1B;KACJ;IAED,YAAY,CAAC,MAAS;;QAClB,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QACzB,MAAA,IAAI,CAAC,cAAc,0CAAE,UAAU,CAAC,KAAK,EAAE;KAC1C;IAEO,UAAU,CAAC,gBAAyB,KAAK;QAC7C,IAAI,IAAI,CAAC,sBAAsB,EAAE;YAC7B,gBAAgB,CAAC,IAAI,CAAC,sBAAsB,EAAE,IAAI,EAAE,aAAa,CAAC,CAAC;SACtE;KACJ;EACJ;;YA9EgB,SAAS,uBAHjB,QAAQ,YACR,IAAI,YACJ,MAAM,SAAC,SAAS;YAE6B,iBAAiB,uBAA9D,MAAM,SAAC,iBAAiB;YAEU,4BAA4B,uBAD9D,MAAM,SAAC,qBAAqB;4CAE5B,MAAM,SAAC,cAAc;4CAErB,MAAM,SAAC,kBAAkB;4CAEzB,MAAM,SAAC,kBAAkB;;AAnC9B;IADC,SAAS,CAAC,8BAA8B,CAAC;qDACkB;AAG5D;IADC,SAAS,CAAC,0BAA0B,CAAC;0DACuB;AAI7D;IAFC,KAAK,EAAE;IACP,cAAc,EAAE;qDAC0D;AAI3E;IAFC,KAAK,EAAE;IACP,cAAc,EAAE;2DAEsB;AAIvC;IAFC,KAAK,EAAE;IACP,cAAc,EAAE;wDAC6D;AAG9E;IADC,YAAY,CAAC,oBAAoB,EAAE,EAAC,IAAI,EAAE,WAAW,EAAC,CAAC;oDAGjD;AA8CP;IADC,OAAO;wDAMP;AA7EQ,kBAAkB;IAP9B,SAAS,CAAC;QACP,QAAQ,EAAE,YAAY;QACtB,yiDAAqC;QAErC,eAAe,EAAE,uBAAuB,CAAC,MAAM;QAC/C,SAAS,EAAE,oBAAoB;;KAClC,CAAC;IA8BO,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,qBAAqB,CAAC,CAAA;IAE7B,WAAA,MAAM,CAAC,cAAc,CAAC,CAAA;IAEtB,WAAA,MAAM,CAAC,kBAAkB,CAAC,CAAA;IAE1B,WAAA,MAAM,CAAC,kBAAkB,CAAC,CAAA;GAxCtB,kBAAkB,CA8G9B;;;ICjJY,kBAAkB,0BAA/B,MAAa,kBAAmB,SAAQ,wBAEvC;IACG,IAAI,QAAQ;QACR,OAAO,IAAI,CAAC;KACf;IAED,IAAI,KAAK;QACL,OAAO,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC;KAClC;IAED,aAAa,CAAC,KAAa;QACvB,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;KAClC;EACJ;AAdY,kBAAkB;IAT9B,SAAS,CAAC;QACP,QAAQ,EAAE,YAAY;QACtB,SAAS,EAAE;YACP;gBACI,OAAO,EAAE,kBAAkB;gBAC3B,WAAW,EAAE,UAAU,CAAC,MAAM,oBAAkB,CAAC;aACpD;SACJ;KACJ,CAAC;GACW,kBAAkB,CAc9B;;ICAY,eAAe,GAA5B,MAAa,eAAe;EAAG;AAAlB,eAAe;IAb3B,QAAQ,CAAC;QACN,OAAO,EAAE;YACL,YAAY;YACZ,kBAAkB;YAClB,mBAAmB;YACnB,2BAA2B;YAC3B,uBAAuB;YACvB,qBAAqB;YACrB,cAAc;SACjB;QACD,YAAY,EAAE,CAAC,kBAAkB,EAAE,kBAAkB,CAAC;QACtD,OAAO,EAAE,CAAC,kBAAkB,EAAE,kBAAkB,EAAE,qBAAqB,CAAC;KAC3E,CAAC;GACW,eAAe,CAAG;;AC5B/B;;;;;;"}