@taiga-ui/kit 2.29.0 → 2.33.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 (656) hide show
  1. package/abstract/taiga-ui-kit-abstract.metadata.json +1 -1
  2. package/bundles/taiga-ui-kit-abstract.umd.js +5 -4
  3. package/bundles/taiga-ui-kit-abstract.umd.js.map +1 -1
  4. package/bundles/taiga-ui-kit-abstract.umd.min.js +2 -2
  5. package/bundles/taiga-ui-kit-abstract.umd.min.js.map +1 -1
  6. package/bundles/taiga-ui-kit-components-accordion.umd.js +1 -1
  7. package/bundles/taiga-ui-kit-components-accordion.umd.js.map +1 -1
  8. package/bundles/taiga-ui-kit-components-accordion.umd.min.js +1 -1
  9. package/bundles/taiga-ui-kit-components-accordion.umd.min.js.map +1 -1
  10. package/bundles/taiga-ui-kit-components-arrow.umd.js +31 -8
  11. package/bundles/taiga-ui-kit-components-arrow.umd.js.map +1 -1
  12. package/bundles/taiga-ui-kit-components-arrow.umd.min.js +2 -2
  13. package/bundles/taiga-ui-kit-components-arrow.umd.min.js.map +1 -1
  14. package/bundles/taiga-ui-kit-components-avatar.umd.js +1 -1
  15. package/bundles/taiga-ui-kit-components-avatar.umd.min.js +1 -1
  16. package/bundles/taiga-ui-kit-components-avatar.umd.min.js.map +1 -1
  17. package/bundles/taiga-ui-kit-components-calendar-month.umd.js +4 -1
  18. package/bundles/taiga-ui-kit-components-calendar-month.umd.js.map +1 -1
  19. package/bundles/taiga-ui-kit-components-calendar-month.umd.min.js +2 -2
  20. package/bundles/taiga-ui-kit-components-calendar-month.umd.min.js.map +1 -1
  21. package/bundles/taiga-ui-kit-components-carousel.umd.js +5 -4
  22. package/bundles/taiga-ui-kit-components-carousel.umd.js.map +1 -1
  23. package/bundles/taiga-ui-kit-components-carousel.umd.min.js +1 -1
  24. package/bundles/taiga-ui-kit-components-carousel.umd.min.js.map +1 -1
  25. package/bundles/taiga-ui-kit-components-checkbox.umd.js +1 -1
  26. package/bundles/taiga-ui-kit-components-checkbox.umd.js.map +1 -1
  27. package/bundles/taiga-ui-kit-components-checkbox.umd.min.js +1 -1
  28. package/bundles/taiga-ui-kit-components-checkbox.umd.min.js.map +1 -1
  29. package/bundles/taiga-ui-kit-components-combo-box.umd.js +71 -40
  30. package/bundles/taiga-ui-kit-components-combo-box.umd.js.map +1 -1
  31. package/bundles/taiga-ui-kit-components-combo-box.umd.min.js +2 -2
  32. package/bundles/taiga-ui-kit-components-combo-box.umd.min.js.map +1 -1
  33. package/bundles/taiga-ui-kit-components-input-copy.umd.js +47 -17
  34. package/bundles/taiga-ui-kit-components-input-copy.umd.js.map +1 -1
  35. package/bundles/taiga-ui-kit-components-input-copy.umd.min.js +2 -2
  36. package/bundles/taiga-ui-kit-components-input-copy.umd.min.js.map +1 -1
  37. package/bundles/taiga-ui-kit-components-input-count.umd.js +38 -9
  38. package/bundles/taiga-ui-kit-components-input-count.umd.js.map +1 -1
  39. package/bundles/taiga-ui-kit-components-input-count.umd.min.js +1 -1
  40. package/bundles/taiga-ui-kit-components-input-count.umd.min.js.map +1 -1
  41. package/bundles/taiga-ui-kit-components-input-date-range.umd.js +83 -29
  42. package/bundles/taiga-ui-kit-components-input-date-range.umd.js.map +1 -1
  43. package/bundles/taiga-ui-kit-components-input-date-range.umd.min.js +2 -2
  44. package/bundles/taiga-ui-kit-components-input-date-range.umd.min.js.map +1 -1
  45. package/bundles/taiga-ui-kit-components-input-date-time.umd.js +83 -37
  46. package/bundles/taiga-ui-kit-components-input-date-time.umd.js.map +1 -1
  47. package/bundles/taiga-ui-kit-components-input-date-time.umd.min.js +2 -2
  48. package/bundles/taiga-ui-kit-components-input-date-time.umd.min.js.map +1 -1
  49. package/bundles/taiga-ui-kit-components-input-date.umd.js +79 -29
  50. package/bundles/taiga-ui-kit-components-input-date.umd.js.map +1 -1
  51. package/bundles/taiga-ui-kit-components-input-date.umd.min.js +2 -2
  52. package/bundles/taiga-ui-kit-components-input-date.umd.min.js.map +1 -1
  53. package/bundles/taiga-ui-kit-components-input-file.umd.js +1 -8
  54. package/bundles/taiga-ui-kit-components-input-file.umd.js.map +1 -1
  55. package/bundles/taiga-ui-kit-components-input-file.umd.min.js +1 -1
  56. package/bundles/taiga-ui-kit-components-input-file.umd.min.js.map +1 -1
  57. package/bundles/taiga-ui-kit-components-input-inline.umd.js +2 -15
  58. package/bundles/taiga-ui-kit-components-input-inline.umd.js.map +1 -1
  59. package/bundles/taiga-ui-kit-components-input-inline.umd.min.js +1 -1
  60. package/bundles/taiga-ui-kit-components-input-inline.umd.min.js.map +1 -1
  61. package/bundles/taiga-ui-kit-components-input-month-range.umd.js +52 -10
  62. package/bundles/taiga-ui-kit-components-input-month-range.umd.js.map +1 -1
  63. package/bundles/taiga-ui-kit-components-input-month-range.umd.min.js +1 -1
  64. package/bundles/taiga-ui-kit-components-input-month-range.umd.min.js.map +1 -1
  65. package/bundles/taiga-ui-kit-components-input-month.umd.js +48 -10
  66. package/bundles/taiga-ui-kit-components-input-month.umd.js.map +1 -1
  67. package/bundles/taiga-ui-kit-components-input-month.umd.min.js +1 -1
  68. package/bundles/taiga-ui-kit-components-input-month.umd.min.js.map +1 -1
  69. package/bundles/taiga-ui-kit-components-input-number.umd.js +53 -13
  70. package/bundles/taiga-ui-kit-components-input-number.umd.js.map +1 -1
  71. package/bundles/taiga-ui-kit-components-input-number.umd.min.js +2 -2
  72. package/bundles/taiga-ui-kit-components-input-number.umd.min.js.map +1 -1
  73. package/bundles/taiga-ui-kit-components-input-password.umd.js +45 -11
  74. package/bundles/taiga-ui-kit-components-input-password.umd.js.map +1 -1
  75. package/bundles/taiga-ui-kit-components-input-password.umd.min.js +1 -1
  76. package/bundles/taiga-ui-kit-components-input-password.umd.min.js.map +1 -1
  77. package/bundles/taiga-ui-kit-components-input-phone-international.umd.js +51 -23
  78. package/bundles/taiga-ui-kit-components-input-phone-international.umd.js.map +1 -1
  79. package/bundles/taiga-ui-kit-components-input-phone-international.umd.min.js +1 -1
  80. package/bundles/taiga-ui-kit-components-input-phone-international.umd.min.js.map +1 -1
  81. package/bundles/taiga-ui-kit-components-input-phone.umd.js +61 -25
  82. package/bundles/taiga-ui-kit-components-input-phone.umd.js.map +1 -1
  83. package/bundles/taiga-ui-kit-components-input-phone.umd.min.js +1 -1
  84. package/bundles/taiga-ui-kit-components-input-phone.umd.min.js.map +1 -1
  85. package/bundles/taiga-ui-kit-components-input-range.umd.js +8 -5
  86. package/bundles/taiga-ui-kit-components-input-range.umd.js.map +1 -1
  87. package/bundles/taiga-ui-kit-components-input-range.umd.min.js +2 -2
  88. package/bundles/taiga-ui-kit-components-input-range.umd.min.js.map +1 -1
  89. package/bundles/taiga-ui-kit-components-input-slider.umd.js +8 -5
  90. package/bundles/taiga-ui-kit-components-input-slider.umd.js.map +1 -1
  91. package/bundles/taiga-ui-kit-components-input-slider.umd.min.js +1 -1
  92. package/bundles/taiga-ui-kit-components-input-slider.umd.min.js.map +1 -1
  93. package/bundles/taiga-ui-kit-components-input-tag.umd.js +4 -4
  94. package/bundles/taiga-ui-kit-components-input-tag.umd.js.map +1 -1
  95. package/bundles/taiga-ui-kit-components-input-tag.umd.min.js +1 -1
  96. package/bundles/taiga-ui-kit-components-input-tag.umd.min.js.map +1 -1
  97. package/bundles/taiga-ui-kit-components-input-time.umd.js +14 -14
  98. package/bundles/taiga-ui-kit-components-input-time.umd.js.map +1 -1
  99. package/bundles/taiga-ui-kit-components-input-time.umd.min.js +2 -2
  100. package/bundles/taiga-ui-kit-components-input-time.umd.min.js.map +1 -1
  101. package/bundles/taiga-ui-kit-components-input.umd.js +33 -4
  102. package/bundles/taiga-ui-kit-components-input.umd.js.map +1 -1
  103. package/bundles/taiga-ui-kit-components-input.umd.min.js +1 -1
  104. package/bundles/taiga-ui-kit-components-input.umd.min.js.map +1 -1
  105. package/bundles/taiga-ui-kit-components-multi-select.umd.js +24 -18
  106. package/bundles/taiga-ui-kit-components-multi-select.umd.js.map +1 -1
  107. package/bundles/taiga-ui-kit-components-multi-select.umd.min.js +2 -2
  108. package/bundles/taiga-ui-kit-components-multi-select.umd.min.js.map +1 -1
  109. package/bundles/taiga-ui-kit-components-rating.umd.js +368 -0
  110. package/bundles/taiga-ui-kit-components-rating.umd.js.map +1 -0
  111. package/bundles/taiga-ui-kit-components-rating.umd.min.js +16 -0
  112. package/bundles/taiga-ui-kit-components-rating.umd.min.js.map +1 -0
  113. package/bundles/taiga-ui-kit-components-select.umd.js +75 -36
  114. package/bundles/taiga-ui-kit-components-select.umd.js.map +1 -1
  115. package/bundles/taiga-ui-kit-components-select.umd.min.js +1 -1
  116. package/bundles/taiga-ui-kit-components-select.umd.min.js.map +1 -1
  117. package/bundles/taiga-ui-kit-components-stepper.umd.js +1 -1
  118. package/bundles/taiga-ui-kit-components-stepper.umd.js.map +1 -1
  119. package/bundles/taiga-ui-kit-components-stepper.umd.min.js +1 -1
  120. package/bundles/taiga-ui-kit-components-stepper.umd.min.js.map +1 -1
  121. package/bundles/taiga-ui-kit-components-tabs.umd.js +1 -1
  122. package/bundles/taiga-ui-kit-components-tabs.umd.js.map +1 -1
  123. package/bundles/taiga-ui-kit-components-tabs.umd.min.js +1 -1
  124. package/bundles/taiga-ui-kit-components-tabs.umd.min.js.map +1 -1
  125. package/bundles/taiga-ui-kit-components-tag.umd.js +2 -2
  126. package/bundles/taiga-ui-kit-components-tag.umd.js.map +1 -1
  127. package/bundles/taiga-ui-kit-components-tag.umd.min.js +1 -1
  128. package/bundles/taiga-ui-kit-components-tag.umd.min.js.map +1 -1
  129. package/bundles/taiga-ui-kit-components-text-area.umd.js +8 -6
  130. package/bundles/taiga-ui-kit-components-text-area.umd.js.map +1 -1
  131. package/bundles/taiga-ui-kit-components-text-area.umd.min.js +1 -1
  132. package/bundles/taiga-ui-kit-components-text-area.umd.min.js.map +1 -1
  133. package/bundles/taiga-ui-kit-components-tree.umd.js +23 -13
  134. package/bundles/taiga-ui-kit-components-tree.umd.js.map +1 -1
  135. package/bundles/taiga-ui-kit-components-tree.umd.min.js +2 -2
  136. package/bundles/taiga-ui-kit-components-tree.umd.min.js.map +1 -1
  137. package/bundles/taiga-ui-kit-components.umd.js +12 -4
  138. package/bundles/taiga-ui-kit-components.umd.js.map +1 -1
  139. package/bundles/taiga-ui-kit-components.umd.min.js +1 -1
  140. package/bundles/taiga-ui-kit-constants.umd.js +8 -0
  141. package/bundles/taiga-ui-kit-constants.umd.js.map +1 -1
  142. package/bundles/taiga-ui-kit-constants.umd.min.js +1 -1
  143. package/bundles/taiga-ui-kit-constants.umd.min.js.map +1 -1
  144. package/bundles/taiga-ui-kit-providers.umd.js +6 -5
  145. package/bundles/taiga-ui-kit-providers.umd.js.map +1 -1
  146. package/bundles/taiga-ui-kit-providers.umd.min.js +1 -1
  147. package/bundles/taiga-ui-kit-providers.umd.min.js.map +1 -1
  148. package/bundles/taiga-ui-kit-tokens.umd.js +7 -0
  149. package/bundles/taiga-ui-kit-tokens.umd.js.map +1 -1
  150. package/bundles/taiga-ui-kit-tokens.umd.min.js +1 -1
  151. package/bundles/taiga-ui-kit-tokens.umd.min.js.map +1 -1
  152. package/bundles/taiga-ui-kit-utils-mask.umd.js +19 -10
  153. package/bundles/taiga-ui-kit-utils-mask.umd.js.map +1 -1
  154. package/bundles/taiga-ui-kit-utils-mask.umd.min.js +1 -1
  155. package/bundles/taiga-ui-kit-utils-mask.umd.min.js.map +1 -1
  156. package/bundles/taiga-ui-kit-utils-miscellaneous.umd.js +241 -6
  157. package/bundles/taiga-ui-kit-utils-miscellaneous.umd.js.map +1 -1
  158. package/bundles/taiga-ui-kit-utils-miscellaneous.umd.min.js +15 -1
  159. package/bundles/taiga-ui-kit-utils-miscellaneous.umd.min.js.map +1 -1
  160. package/components/accordion/taiga-ui-kit-components-accordion.metadata.json +1 -1
  161. package/components/arrow/arrow-options.d.ts +16 -0
  162. package/components/arrow/arrow.component.d.ts +5 -3
  163. package/components/arrow/index.d.ts +1 -0
  164. package/components/arrow/taiga-ui-kit-components-arrow.metadata.json +1 -1
  165. package/components/avatar/taiga-ui-kit-components-avatar.metadata.json +1 -1
  166. package/components/calendar-month/taiga-ui-kit-components-calendar-month.metadata.json +1 -1
  167. package/components/carousel/taiga-ui-kit-components-carousel.metadata.json +1 -1
  168. package/components/combo-box/combo-box.component.d.ts +4 -4
  169. package/components/combo-box/combo-box.directive.d.ts +6 -0
  170. package/components/combo-box/combo-box.providers.d.ts +2 -0
  171. package/components/combo-box/index.d.ts +2 -0
  172. package/components/combo-box/taiga-ui-kit-components-combo-box.metadata.json +1 -1
  173. package/components/index.d.ts +1 -0
  174. package/components/input/index.d.ts +1 -0
  175. package/components/input/input.directive.d.ts +5 -0
  176. package/components/input/taiga-ui-kit-components-input.metadata.json +1 -1
  177. package/components/input-copy/index.d.ts +2 -0
  178. package/components/input-copy/input-copy.directive.d.ts +5 -0
  179. package/components/input-copy/input-copy.providers.d.ts +2 -0
  180. package/components/input-copy/taiga-ui-kit-components-input-copy.metadata.json +1 -1
  181. package/components/input-count/index.d.ts +1 -0
  182. package/components/input-count/input-count.directive.d.ts +6 -0
  183. package/components/input-count/taiga-ui-kit-components-input-count.metadata.json +1 -1
  184. package/components/input-date/index.d.ts +2 -0
  185. package/components/input-date/input-date.component.d.ts +3 -4
  186. package/components/input-date/input-date.directive.d.ts +7 -0
  187. package/components/input-date/input-date.providers.d.ts +4 -0
  188. package/components/input-date/taiga-ui-kit-components-input-date.metadata.json +1 -1
  189. package/components/input-date-range/index.d.ts +2 -0
  190. package/components/input-date-range/input-date-range.component.d.ts +3 -4
  191. package/components/input-date-range/input-date-range.directive.d.ts +7 -0
  192. package/components/input-date-range/input-date-range.providers.d.ts +4 -0
  193. package/components/input-date-range/taiga-ui-kit-components-input-date-range.metadata.json +1 -1
  194. package/components/input-date-time/index.d.ts +2 -0
  195. package/components/input-date-time/input-date-time.component.d.ts +3 -5
  196. package/components/input-date-time/input-date-time.directive.d.ts +7 -0
  197. package/components/input-date-time/input-date-time.providers.d.ts +4 -0
  198. package/components/input-date-time/taiga-ui-kit-components-input-date-time.metadata.json +1 -1
  199. package/components/input-file/input-file.component.d.ts +0 -1
  200. package/components/input-file/taiga-ui-kit-components-input-file.metadata.json +1 -1
  201. package/components/input-inline/input-inline.component.d.ts +0 -1
  202. package/components/input-inline/taiga-ui-kit-components-input-inline.metadata.json +1 -1
  203. package/components/input-month/index.d.ts +1 -0
  204. package/components/input-month/input-month.component.d.ts +2 -3
  205. package/components/input-month/input-month.directive.d.ts +7 -0
  206. package/components/input-month/taiga-ui-kit-components-input-month.metadata.json +1 -1
  207. package/components/input-month-range/index.d.ts +1 -0
  208. package/components/input-month-range/input-month-range.component.d.ts +2 -3
  209. package/components/input-month-range/input-month-range.directive.d.ts +7 -0
  210. package/components/input-month-range/taiga-ui-kit-components-input-month-range.metadata.json +1 -1
  211. package/components/input-number/index.d.ts +1 -0
  212. package/components/input-number/input-number.component.d.ts +1 -1
  213. package/components/input-number/input-number.directive.d.ts +7 -0
  214. package/components/input-number/taiga-ui-kit-components-input-number.metadata.json +1 -1
  215. package/components/input-password/index.d.ts +1 -0
  216. package/components/input-password/input-password.component.d.ts +0 -1
  217. package/components/input-password/input-password.directive.d.ts +8 -0
  218. package/components/input-password/taiga-ui-kit-components-input-password.metadata.json +1 -1
  219. package/components/input-phone/index.d.ts +1 -0
  220. package/components/input-phone/input-phone.component.d.ts +1 -1
  221. package/components/input-phone/input-phone.directive.d.ts +7 -0
  222. package/components/input-phone/taiga-ui-kit-components-input-phone.metadata.json +1 -1
  223. package/components/input-phone-international/const/countries.d.ts +15 -7
  224. package/components/input-phone-international/index.d.ts +2 -0
  225. package/components/input-phone-international/input-phone-international.component.d.ts +4 -3
  226. package/components/input-phone-international/taiga-ui-kit-components-input-phone-international.metadata.json +1 -1
  227. package/components/input-phone-international/tokens/countries-masks.d.ts +3 -0
  228. package/components/input-phone-international/utils/extract-value-from-event.d.ts +1 -0
  229. package/components/input-range/input-range.component.d.ts +2 -1
  230. package/components/input-range/taiga-ui-kit-components-input-range.metadata.json +1 -1
  231. package/components/input-slider/input-slider.component.d.ts +2 -1
  232. package/components/input-slider/taiga-ui-kit-components-input-slider.metadata.json +1 -1
  233. package/components/input-tag/taiga-ui-kit-components-input-tag.metadata.json +1 -1
  234. package/components/input-time/input-time-options.d.ts +3 -0
  235. package/components/input-time/input-time.component.d.ts +7 -8
  236. package/components/input-time/taiga-ui-kit-components-input-time.metadata.json +1 -1
  237. package/components/multi-select/multi-select.component.d.ts +4 -2
  238. package/components/multi-select/taiga-ui-kit-components-multi-select.metadata.json +1 -1
  239. package/components/rating/index.d.ts +3 -0
  240. package/components/rating/package.json +13 -0
  241. package/components/rating/rating-options.d.ts +9 -0
  242. package/components/rating/rating.component.d.ts +21 -0
  243. package/components/rating/rating.module.d.ts +2 -0
  244. package/components/rating/taiga-ui-kit-components-rating.d.ts +4 -0
  245. package/components/rating/taiga-ui-kit-components-rating.metadata.json +1 -0
  246. package/components/select/index.d.ts +2 -0
  247. package/components/select/select.component.d.ts +3 -3
  248. package/components/select/select.directive.d.ts +7 -0
  249. package/components/select/select.providers.d.ts +2 -0
  250. package/components/select/taiga-ui-kit-components-select.metadata.json +1 -1
  251. package/components/stepper/taiga-ui-kit-components-stepper.metadata.json +1 -1
  252. package/components/tabs/taiga-ui-kit-components-tabs.metadata.json +1 -1
  253. package/components/tag/taiga-ui-kit-components-tag.metadata.json +1 -1
  254. package/components/taiga-ui-kit-components.metadata.json +1 -1
  255. package/components/text-area/taiga-ui-kit-components-text-area.metadata.json +1 -1
  256. package/components/tree/components/tree/tree.component.d.ts +3 -1
  257. package/components/tree/taiga-ui-kit-components-tree.metadata.json +1 -1
  258. package/constants/index.d.ts +1 -0
  259. package/constants/max-time-values.d.ts +2 -0
  260. package/constants/taiga-ui-kit-constants.metadata.json +1 -1
  261. package/esm2015/abstract/input-slider.js +3 -1
  262. package/esm2015/components/accordion/accordion.component.js +3 -3
  263. package/esm2015/components/arrow/arrow-options.js +17 -0
  264. package/esm2015/components/arrow/arrow.component.js +12 -8
  265. package/esm2015/components/arrow/arrow.module.js +3 -2
  266. package/esm2015/components/arrow/index.js +2 -1
  267. package/esm2015/components/avatar/avatar.component.js +1 -1
  268. package/esm2015/components/calendar-month/calendar-month.component.js +5 -2
  269. package/esm2015/components/carousel/carousel-scroll.directive.js +5 -4
  270. package/esm2015/components/carousel/carousel.component.js +1 -1
  271. package/esm2015/components/checkbox/checkbox.component.js +2 -2
  272. package/esm2015/components/combo-box/combo-box.component.js +23 -43
  273. package/esm2015/components/combo-box/combo-box.directive.js +25 -0
  274. package/esm2015/components/combo-box/combo-box.module.js +5 -4
  275. package/esm2015/components/combo-box/combo-box.providers.js +28 -0
  276. package/esm2015/components/combo-box/index.js +3 -1
  277. package/esm2015/components/index.js +2 -1
  278. package/esm2015/components/input/index.js +2 -1
  279. package/esm2015/components/input/input.component.js +3 -3
  280. package/esm2015/components/input/input.directive.js +22 -0
  281. package/esm2015/components/input/input.module.js +5 -4
  282. package/esm2015/components/input/input.providers.js +6 -2
  283. package/esm2015/components/input-copy/index.js +3 -1
  284. package/esm2015/components/input-copy/input-copy.component.js +8 -15
  285. package/esm2015/components/input-copy/input-copy.directive.js +22 -0
  286. package/esm2015/components/input-copy/input-copy.module.js +5 -4
  287. package/esm2015/components/input-copy/input-copy.providers.js +16 -0
  288. package/esm2015/components/input-count/index.js +2 -1
  289. package/esm2015/components/input-count/input-count.component.js +8 -8
  290. package/esm2015/components/input-count/input-count.directive.js +26 -0
  291. package/esm2015/components/input-count/input-count.module.js +5 -4
  292. package/esm2015/components/input-date/index.js +3 -1
  293. package/esm2015/components/input-date/input-date.component.js +21 -31
  294. package/esm2015/components/input-date/input-date.directive.js +28 -0
  295. package/esm2015/components/input-date/input-date.module.js +5 -4
  296. package/esm2015/components/input-date/input-date.providers.js +29 -0
  297. package/esm2015/components/input-date-range/index.js +3 -1
  298. package/esm2015/components/input-date-range/input-date-range.component.js +21 -31
  299. package/esm2015/components/input-date-range/input-date-range.directive.js +28 -0
  300. package/esm2015/components/input-date-range/input-date-range.module.js +9 -4
  301. package/esm2015/components/input-date-range/input-date-range.providers.js +29 -0
  302. package/esm2015/components/input-date-time/index.js +3 -1
  303. package/esm2015/components/input-date-time/input-date-time.component.js +20 -34
  304. package/esm2015/components/input-date-time/input-date-time.directive.js +28 -0
  305. package/esm2015/components/input-date-time/input-date-time.module.js +9 -4
  306. package/esm2015/components/input-date-time/input-date-time.providers.js +29 -0
  307. package/esm2015/components/input-file/input-file.component.js +2 -5
  308. package/esm2015/components/input-inline/input-inline.component.js +4 -13
  309. package/esm2015/components/input-month/index.js +2 -1
  310. package/esm2015/components/input-month/input-month.component.js +7 -6
  311. package/esm2015/components/input-month/input-month.directive.js +30 -0
  312. package/esm2015/components/input-month/input-month.module.js +5 -4
  313. package/esm2015/components/input-month-range/index.js +2 -1
  314. package/esm2015/components/input-month-range/input-month-range.component.js +7 -6
  315. package/esm2015/components/input-month-range/input-month-range.directive.js +30 -0
  316. package/esm2015/components/input-month-range/input-month-range.module.js +9 -4
  317. package/esm2015/components/input-number/index.js +2 -1
  318. package/esm2015/components/input-number/input-number.component.js +18 -14
  319. package/esm2015/components/input-number/input-number.directive.js +29 -0
  320. package/esm2015/components/input-number/input-number.module.js +5 -4
  321. package/esm2015/components/input-password/index.js +2 -1
  322. package/esm2015/components/input-password/input-password.component.js +7 -6
  323. package/esm2015/components/input-password/input-password.directive.js +30 -0
  324. package/esm2015/components/input-password/input-password.module.js +9 -4
  325. package/esm2015/components/input-phone/index.js +2 -1
  326. package/esm2015/components/input-phone/input-phone.component.js +16 -27
  327. package/esm2015/components/input-phone/input-phone.directive.js +29 -0
  328. package/esm2015/components/input-phone/input-phone.module.js +5 -4
  329. package/esm2015/components/input-phone/input-phone.providers.js +17 -3
  330. package/esm2015/components/input-phone-international/const/countries.js +14 -5
  331. package/esm2015/components/input-phone-international/index.js +3 -1
  332. package/esm2015/components/input-phone-international/input-phone-international.component.js +24 -22
  333. package/esm2015/components/input-phone-international/tokens/countries-masks.js +6 -0
  334. package/esm2015/components/input-phone-international/utils/extract-value-from-event.js +9 -0
  335. package/esm2015/components/input-range/input-range.component.js +10 -7
  336. package/esm2015/components/input-slider/input-slider.component.js +10 -7
  337. package/esm2015/components/input-tag/input-tag.component.js +5 -5
  338. package/esm2015/components/input-time/input-time-options.js +4 -1
  339. package/esm2015/components/input-time/input-time.component.js +10 -8
  340. package/esm2015/components/multi-select/multi-select.component.js +17 -11
  341. package/esm2015/components/multi-select/multi-select.module.js +3 -1
  342. package/esm2015/components/rating/index.js +4 -0
  343. package/esm2015/components/rating/rating-options.js +11 -0
  344. package/esm2015/components/rating/rating.component.js +91 -0
  345. package/esm2015/components/rating/rating.module.js +23 -0
  346. package/esm2015/components/rating/taiga-ui-kit-components-rating.js +5 -0
  347. package/esm2015/components/select/index.js +3 -1
  348. package/esm2015/components/select/select.component.js +20 -39
  349. package/esm2015/components/select/select.directive.js +28 -0
  350. package/esm2015/components/select/select.module.js +5 -4
  351. package/esm2015/components/select/select.providers.js +28 -0
  352. package/esm2015/components/stepper/step/step.component.js +3 -3
  353. package/esm2015/components/tabs/tab/tab.providers.js +3 -3
  354. package/esm2015/components/tag/tag.component.js +4 -4
  355. package/esm2015/components/text-area/text-area.component.js +9 -6
  356. package/esm2015/components/text-area/text-area.module.js +2 -3
  357. package/esm2015/components/tree/components/tree/tree.component.js +11 -6
  358. package/esm2015/components/tree/tree.module.js +9 -2
  359. package/esm2015/constants/index.js +2 -1
  360. package/esm2015/constants/max-time-values.js +7 -0
  361. package/esm2015/providers/value-accessor.provider.js +3 -2
  362. package/esm2015/tokens/date-inputs-value-transformers.js +5 -0
  363. package/esm2015/tokens/index.js +2 -1
  364. package/esm2015/types/index.js +1 -1
  365. package/esm2015/types/time-format-parts.js +1 -0
  366. package/esm2015/utils/mask/create-auto-corrected-date-time-pipe.js +2 -2
  367. package/esm2015/utils/mask/create-auto-corrected-time-pipe.js +8 -7
  368. package/esm2015/utils/mask/create-time-mask.js +16 -8
  369. package/esm2015/utils/miscellaneous/get-precision.js +8 -0
  370. package/esm2015/utils/miscellaneous/index.js +2 -1
  371. package/esm2015/utils/miscellaneous/replay-control-value-changes-factory.js +10 -4
  372. package/esm5/abstract/input-slider.js +3 -1
  373. package/esm5/components/accordion/accordion.component.js +3 -3
  374. package/esm5/components/arrow/arrow-options.js +17 -0
  375. package/esm5/components/arrow/arrow.component.js +12 -8
  376. package/esm5/components/arrow/arrow.module.js +3 -2
  377. package/esm5/components/arrow/index.js +2 -1
  378. package/esm5/components/avatar/avatar.component.js +1 -1
  379. package/esm5/components/calendar-month/calendar-month.component.js +5 -2
  380. package/esm5/components/carousel/carousel-scroll.directive.js +5 -4
  381. package/esm5/components/carousel/carousel.component.js +1 -1
  382. package/esm5/components/checkbox/checkbox.component.js +2 -2
  383. package/esm5/components/combo-box/combo-box.component.js +22 -47
  384. package/esm5/components/combo-box/combo-box.directive.js +35 -0
  385. package/esm5/components/combo-box/combo-box.module.js +5 -4
  386. package/esm5/components/combo-box/combo-box.providers.js +28 -0
  387. package/esm5/components/combo-box/index.js +3 -1
  388. package/esm5/components/index.js +2 -1
  389. package/esm5/components/input/index.js +2 -1
  390. package/esm5/components/input/input.component.js +3 -3
  391. package/esm5/components/input/input.directive.js +28 -0
  392. package/esm5/components/input/input.module.js +5 -4
  393. package/esm5/components/input/input.providers.js +6 -2
  394. package/esm5/components/input-copy/index.js +3 -1
  395. package/esm5/components/input-copy/input-copy.component.js +7 -15
  396. package/esm5/components/input-copy/input-copy.directive.js +28 -0
  397. package/esm5/components/input-copy/input-copy.module.js +5 -4
  398. package/esm5/components/input-copy/input-copy.providers.js +16 -0
  399. package/esm5/components/input-count/index.js +2 -1
  400. package/esm5/components/input-count/input-count.component.js +8 -8
  401. package/esm5/components/input-count/input-count.directive.js +32 -0
  402. package/esm5/components/input-count/input-count.module.js +5 -4
  403. package/esm5/components/input-date/index.js +3 -1
  404. package/esm5/components/input-date/input-date.component.js +22 -31
  405. package/esm5/components/input-date/input-date.directive.js +38 -0
  406. package/esm5/components/input-date/input-date.module.js +5 -4
  407. package/esm5/components/input-date/input-date.providers.js +29 -0
  408. package/esm5/components/input-date-range/index.js +3 -1
  409. package/esm5/components/input-date-range/input-date-range.component.js +22 -31
  410. package/esm5/components/input-date-range/input-date-range.directive.js +38 -0
  411. package/esm5/components/input-date-range/input-date-range.module.js +9 -4
  412. package/esm5/components/input-date-range/input-date-range.providers.js +29 -0
  413. package/esm5/components/input-date-time/index.js +3 -1
  414. package/esm5/components/input-date-time/input-date-time.component.js +21 -38
  415. package/esm5/components/input-date-time/input-date-time.directive.js +38 -0
  416. package/esm5/components/input-date-time/input-date-time.module.js +9 -4
  417. package/esm5/components/input-date-time/input-date-time.providers.js +29 -0
  418. package/esm5/components/input-file/input-file.component.js +2 -9
  419. package/esm5/components/input-inline/input-inline.component.js +4 -17
  420. package/esm5/components/input-month/index.js +2 -1
  421. package/esm5/components/input-month/input-month.component.js +7 -10
  422. package/esm5/components/input-month/input-month.directive.js +44 -0
  423. package/esm5/components/input-month/input-month.module.js +5 -4
  424. package/esm5/components/input-month-range/index.js +2 -1
  425. package/esm5/components/input-month-range/input-month-range.component.js +7 -10
  426. package/esm5/components/input-month-range/input-month-range.directive.js +44 -0
  427. package/esm5/components/input-month-range/input-month-range.module.js +9 -4
  428. package/esm5/components/input-number/index.js +2 -1
  429. package/esm5/components/input-number/input-number.component.js +18 -14
  430. package/esm5/components/input-number/input-number.directive.js +39 -0
  431. package/esm5/components/input-number/input-number.module.js +5 -4
  432. package/esm5/components/input-password/index.js +2 -1
  433. package/esm5/components/input-password/input-password.component.js +7 -10
  434. package/esm5/components/input-password/input-password.directive.js +36 -0
  435. package/esm5/components/input-password/input-password.module.js +9 -4
  436. package/esm5/components/input-phone/index.js +2 -1
  437. package/esm5/components/input-phone/input-phone.component.js +15 -27
  438. package/esm5/components/input-phone/input-phone.directive.js +39 -0
  439. package/esm5/components/input-phone/input-phone.module.js +5 -4
  440. package/esm5/components/input-phone/input-phone.providers.js +17 -3
  441. package/esm5/components/input-phone-international/const/countries.js +14 -5
  442. package/esm5/components/input-phone-international/index.js +3 -1
  443. package/esm5/components/input-phone-international/input-phone-international.component.js +28 -22
  444. package/esm5/components/input-phone-international/tokens/countries-masks.js +6 -0
  445. package/esm5/components/input-phone-international/utils/extract-value-from-event.js +9 -0
  446. package/esm5/components/input-range/input-range.component.js +10 -7
  447. package/esm5/components/input-slider/input-slider.component.js +10 -7
  448. package/esm5/components/input-tag/input-tag.component.js +5 -5
  449. package/esm5/components/input-time/input-time-options.js +4 -1
  450. package/esm5/components/input-time/input-time.component.js +10 -12
  451. package/esm5/components/multi-select/multi-select.component.js +21 -15
  452. package/esm5/components/multi-select/multi-select.module.js +3 -1
  453. package/esm5/components/rating/index.js +4 -0
  454. package/esm5/components/rating/rating-options.js +11 -0
  455. package/esm5/components/rating/rating.component.js +111 -0
  456. package/esm5/components/rating/rating.module.js +26 -0
  457. package/esm5/components/rating/taiga-ui-kit-components-rating.js +5 -0
  458. package/esm5/components/select/index.js +3 -1
  459. package/esm5/components/select/select.component.js +19 -43
  460. package/esm5/components/select/select.directive.js +42 -0
  461. package/esm5/components/select/select.module.js +5 -4
  462. package/esm5/components/select/select.providers.js +28 -0
  463. package/esm5/components/stepper/step/step.component.js +3 -3
  464. package/esm5/components/tabs/tab/tab.providers.js +3 -3
  465. package/esm5/components/tag/tag.component.js +3 -3
  466. package/esm5/components/text-area/text-area.component.js +9 -6
  467. package/esm5/components/text-area/text-area.module.js +2 -3
  468. package/esm5/components/tree/components/tree/tree.component.js +15 -9
  469. package/esm5/components/tree/tree.module.js +9 -2
  470. package/esm5/constants/index.js +2 -1
  471. package/esm5/constants/max-time-values.js +7 -0
  472. package/esm5/providers/value-accessor.provider.js +3 -2
  473. package/esm5/tokens/date-inputs-value-transformers.js +5 -0
  474. package/esm5/tokens/index.js +2 -1
  475. package/esm5/types/index.js +1 -1
  476. package/esm5/types/time-format-parts.js +1 -0
  477. package/esm5/utils/mask/create-auto-corrected-date-time-pipe.js +2 -2
  478. package/esm5/utils/mask/create-auto-corrected-time-pipe.js +9 -6
  479. package/esm5/utils/mask/create-time-mask.js +15 -7
  480. package/esm5/utils/miscellaneous/get-precision.js +9 -0
  481. package/esm5/utils/miscellaneous/index.js +2 -1
  482. package/esm5/utils/miscellaneous/replay-control-value-changes-factory.js +12 -4
  483. package/fesm2015/taiga-ui-kit-abstract.js +2 -0
  484. package/fesm2015/taiga-ui-kit-abstract.js.map +1 -1
  485. package/fesm2015/taiga-ui-kit-components-accordion.js +2 -2
  486. package/fesm2015/taiga-ui-kit-components-accordion.js.map +1 -1
  487. package/fesm2015/taiga-ui-kit-components-arrow.js +29 -11
  488. package/fesm2015/taiga-ui-kit-components-arrow.js.map +1 -1
  489. package/fesm2015/taiga-ui-kit-components-avatar.js +1 -1
  490. package/fesm2015/taiga-ui-kit-components-calendar-month.js +4 -1
  491. package/fesm2015/taiga-ui-kit-components-calendar-month.js.map +1 -1
  492. package/fesm2015/taiga-ui-kit-components-carousel.js +5 -4
  493. package/fesm2015/taiga-ui-kit-components-carousel.js.map +1 -1
  494. package/fesm2015/taiga-ui-kit-components-checkbox.js +1 -1
  495. package/fesm2015/taiga-ui-kit-components-checkbox.js.map +1 -1
  496. package/fesm2015/taiga-ui-kit-components-combo-box.js +65 -41
  497. package/fesm2015/taiga-ui-kit-components-combo-box.js.map +1 -1
  498. package/fesm2015/taiga-ui-kit-components-input-copy.js +41 -18
  499. package/fesm2015/taiga-ui-kit-components-input-copy.js.map +1 -1
  500. package/fesm2015/taiga-ui-kit-components-input-count.js +34 -12
  501. package/fesm2015/taiga-ui-kit-components-input-count.js.map +1 -1
  502. package/fesm2015/taiga-ui-kit-components-input-date-range.js +74 -33
  503. package/fesm2015/taiga-ui-kit-components-input-date-range.js.map +1 -1
  504. package/fesm2015/taiga-ui-kit-components-input-date-time.js +74 -37
  505. package/fesm2015/taiga-ui-kit-components-input-date-time.js.map +1 -1
  506. package/fesm2015/taiga-ui-kit-components-input-date.js +70 -33
  507. package/fesm2015/taiga-ui-kit-components-input-date.js.map +1 -1
  508. package/fesm2015/taiga-ui-kit-components-input-file.js +1 -4
  509. package/fesm2015/taiga-ui-kit-components-input-file.js.map +1 -1
  510. package/fesm2015/taiga-ui-kit-components-input-inline.js +3 -12
  511. package/fesm2015/taiga-ui-kit-components-input-inline.js.map +1 -1
  512. package/fesm2015/taiga-ui-kit-components-input-month-range.js +41 -10
  513. package/fesm2015/taiga-ui-kit-components-input-month-range.js.map +1 -1
  514. package/fesm2015/taiga-ui-kit-components-input-month.js +37 -10
  515. package/fesm2015/taiga-ui-kit-components-input-month.js.map +1 -1
  516. package/fesm2015/taiga-ui-kit-components-input-number.js +46 -17
  517. package/fesm2015/taiga-ui-kit-components-input-number.js.map +1 -1
  518. package/fesm2015/taiga-ui-kit-components-input-password.js +41 -10
  519. package/fesm2015/taiga-ui-kit-components-input-password.js.map +1 -1
  520. package/fesm2015/taiga-ui-kit-components-input-phone-international.js +47 -26
  521. package/fesm2015/taiga-ui-kit-components-input-phone-international.js.map +1 -1
  522. package/fesm2015/taiga-ui-kit-components-input-phone.js +55 -29
  523. package/fesm2015/taiga-ui-kit-components-input-phone.js.map +1 -1
  524. package/fesm2015/taiga-ui-kit-components-input-range.js +9 -6
  525. package/fesm2015/taiga-ui-kit-components-input-range.js.map +1 -1
  526. package/fesm2015/taiga-ui-kit-components-input-slider.js +9 -6
  527. package/fesm2015/taiga-ui-kit-components-input-slider.js.map +1 -1
  528. package/fesm2015/taiga-ui-kit-components-input-tag.js +4 -4
  529. package/fesm2015/taiga-ui-kit-components-input-tag.js.map +1 -1
  530. package/fesm2015/taiga-ui-kit-components-input-time.js +11 -6
  531. package/fesm2015/taiga-ui-kit-components-input-time.js.map +1 -1
  532. package/fesm2015/taiga-ui-kit-components-input.js +29 -7
  533. package/fesm2015/taiga-ui-kit-components-input.js.map +1 -1
  534. package/fesm2015/taiga-ui-kit-components-multi-select.js +17 -10
  535. package/fesm2015/taiga-ui-kit-components-multi-select.js.map +1 -1
  536. package/fesm2015/taiga-ui-kit-components-rating.js +123 -0
  537. package/fesm2015/taiga-ui-kit-components-rating.js.map +1 -0
  538. package/fesm2015/taiga-ui-kit-components-select.js +65 -37
  539. package/fesm2015/taiga-ui-kit-components-select.js.map +1 -1
  540. package/fesm2015/taiga-ui-kit-components-stepper.js +2 -2
  541. package/fesm2015/taiga-ui-kit-components-stepper.js.map +1 -1
  542. package/fesm2015/taiga-ui-kit-components-tabs.js +2 -2
  543. package/fesm2015/taiga-ui-kit-components-tabs.js.map +1 -1
  544. package/fesm2015/taiga-ui-kit-components-tag.js +3 -3
  545. package/fesm2015/taiga-ui-kit-components-tag.js.map +1 -1
  546. package/fesm2015/taiga-ui-kit-components-text-area.js +9 -7
  547. package/fesm2015/taiga-ui-kit-components-text-area.js.map +1 -1
  548. package/fesm2015/taiga-ui-kit-components-tree.js +17 -8
  549. package/fesm2015/taiga-ui-kit-components-tree.js.map +1 -1
  550. package/fesm2015/taiga-ui-kit-components.js +1 -0
  551. package/fesm2015/taiga-ui-kit-components.js.map +1 -1
  552. package/fesm2015/taiga-ui-kit-constants.js +8 -1
  553. package/fesm2015/taiga-ui-kit-constants.js.map +1 -1
  554. package/fesm2015/taiga-ui-kit-providers.js +2 -1
  555. package/fesm2015/taiga-ui-kit-providers.js.map +1 -1
  556. package/fesm2015/taiga-ui-kit-tokens.js +5 -1
  557. package/fesm2015/taiga-ui-kit-tokens.js.map +1 -1
  558. package/fesm2015/taiga-ui-kit-utils-mask.js +22 -14
  559. package/fesm2015/taiga-ui-kit-utils-mask.js.map +1 -1
  560. package/fesm2015/taiga-ui-kit-utils-miscellaneous.js +17 -3
  561. package/fesm2015/taiga-ui-kit-utils-miscellaneous.js.map +1 -1
  562. package/fesm5/taiga-ui-kit-abstract.js +2 -0
  563. package/fesm5/taiga-ui-kit-abstract.js.map +1 -1
  564. package/fesm5/taiga-ui-kit-components-accordion.js +2 -2
  565. package/fesm5/taiga-ui-kit-components-accordion.js.map +1 -1
  566. package/fesm5/taiga-ui-kit-components-arrow.js +29 -11
  567. package/fesm5/taiga-ui-kit-components-arrow.js.map +1 -1
  568. package/fesm5/taiga-ui-kit-components-avatar.js +1 -1
  569. package/fesm5/taiga-ui-kit-components-calendar-month.js +4 -1
  570. package/fesm5/taiga-ui-kit-components-calendar-month.js.map +1 -1
  571. package/fesm5/taiga-ui-kit-components-carousel.js +5 -4
  572. package/fesm5/taiga-ui-kit-components-carousel.js.map +1 -1
  573. package/fesm5/taiga-ui-kit-components-checkbox.js +1 -1
  574. package/fesm5/taiga-ui-kit-components-checkbox.js.map +1 -1
  575. package/fesm5/taiga-ui-kit-components-combo-box.js +74 -45
  576. package/fesm5/taiga-ui-kit-components-combo-box.js.map +1 -1
  577. package/fesm5/taiga-ui-kit-components-input-copy.js +46 -18
  578. package/fesm5/taiga-ui-kit-components-input-copy.js.map +1 -1
  579. package/fesm5/taiga-ui-kit-components-input-count.js +40 -12
  580. package/fesm5/taiga-ui-kit-components-input-count.js.map +1 -1
  581. package/fesm5/taiga-ui-kit-components-input-date-range.js +85 -33
  582. package/fesm5/taiga-ui-kit-components-input-date-range.js.map +1 -1
  583. package/fesm5/taiga-ui-kit-components-input-date-time.js +85 -41
  584. package/fesm5/taiga-ui-kit-components-input-date-time.js.map +1 -1
  585. package/fesm5/taiga-ui-kit-components-input-date.js +81 -33
  586. package/fesm5/taiga-ui-kit-components-input-date.js.map +1 -1
  587. package/fesm5/taiga-ui-kit-components-input-file.js +1 -8
  588. package/fesm5/taiga-ui-kit-components-input-file.js.map +1 -1
  589. package/fesm5/taiga-ui-kit-components-input-inline.js +3 -16
  590. package/fesm5/taiga-ui-kit-components-input-inline.js.map +1 -1
  591. package/fesm5/taiga-ui-kit-components-input-month-range.js +55 -14
  592. package/fesm5/taiga-ui-kit-components-input-month-range.js.map +1 -1
  593. package/fesm5/taiga-ui-kit-components-input-month.js +51 -14
  594. package/fesm5/taiga-ui-kit-components-input-month.js.map +1 -1
  595. package/fesm5/taiga-ui-kit-components-input-number.js +56 -17
  596. package/fesm5/taiga-ui-kit-components-input-number.js.map +1 -1
  597. package/fesm5/taiga-ui-kit-components-input-password.js +47 -14
  598. package/fesm5/taiga-ui-kit-components-input-password.js.map +1 -1
  599. package/fesm5/taiga-ui-kit-components-input-phone-international.js +51 -26
  600. package/fesm5/taiga-ui-kit-components-input-phone-international.js.map +1 -1
  601. package/fesm5/taiga-ui-kit-components-input-phone.js +64 -29
  602. package/fesm5/taiga-ui-kit-components-input-phone.js.map +1 -1
  603. package/fesm5/taiga-ui-kit-components-input-range.js +9 -6
  604. package/fesm5/taiga-ui-kit-components-input-range.js.map +1 -1
  605. package/fesm5/taiga-ui-kit-components-input-slider.js +9 -6
  606. package/fesm5/taiga-ui-kit-components-input-slider.js.map +1 -1
  607. package/fesm5/taiga-ui-kit-components-input-tag.js +4 -4
  608. package/fesm5/taiga-ui-kit-components-input-tag.js.map +1 -1
  609. package/fesm5/taiga-ui-kit-components-input-time.js +11 -10
  610. package/fesm5/taiga-ui-kit-components-input-time.js.map +1 -1
  611. package/fesm5/taiga-ui-kit-components-input.js +36 -8
  612. package/fesm5/taiga-ui-kit-components-input.js.map +1 -1
  613. package/fesm5/taiga-ui-kit-components-multi-select.js +21 -14
  614. package/fesm5/taiga-ui-kit-components-multi-select.js.map +1 -1
  615. package/fesm5/taiga-ui-kit-components-rating.js +146 -0
  616. package/fesm5/taiga-ui-kit-components-rating.js.map +1 -0
  617. package/fesm5/taiga-ui-kit-components-select.js +78 -41
  618. package/fesm5/taiga-ui-kit-components-select.js.map +1 -1
  619. package/fesm5/taiga-ui-kit-components-stepper.js +2 -2
  620. package/fesm5/taiga-ui-kit-components-stepper.js.map +1 -1
  621. package/fesm5/taiga-ui-kit-components-tabs.js +2 -2
  622. package/fesm5/taiga-ui-kit-components-tabs.js.map +1 -1
  623. package/fesm5/taiga-ui-kit-components-tag.js +2 -2
  624. package/fesm5/taiga-ui-kit-components-tag.js.map +1 -1
  625. package/fesm5/taiga-ui-kit-components-text-area.js +9 -7
  626. package/fesm5/taiga-ui-kit-components-text-area.js.map +1 -1
  627. package/fesm5/taiga-ui-kit-components-tree.js +21 -11
  628. package/fesm5/taiga-ui-kit-components-tree.js.map +1 -1
  629. package/fesm5/taiga-ui-kit-components.js +1 -0
  630. package/fesm5/taiga-ui-kit-components.js.map +1 -1
  631. package/fesm5/taiga-ui-kit-constants.js +8 -1
  632. package/fesm5/taiga-ui-kit-constants.js.map +1 -1
  633. package/fesm5/taiga-ui-kit-providers.js +2 -1
  634. package/fesm5/taiga-ui-kit-providers.js.map +1 -1
  635. package/fesm5/taiga-ui-kit-tokens.js +5 -1
  636. package/fesm5/taiga-ui-kit-tokens.js.map +1 -1
  637. package/fesm5/taiga-ui-kit-utils-mask.js +21 -12
  638. package/fesm5/taiga-ui-kit-utils-mask.js.map +1 -1
  639. package/fesm5/taiga-ui-kit-utils-miscellaneous.js +20 -3
  640. package/fesm5/taiga-ui-kit-utils-miscellaneous.js.map +1 -1
  641. package/package.json +12 -12
  642. package/providers/taiga-ui-kit-providers.metadata.json +1 -1
  643. package/providers/value-accessor.provider.d.ts +1 -1
  644. package/tokens/date-inputs-value-transformers.d.ts +5 -0
  645. package/tokens/index.d.ts +1 -0
  646. package/tokens/taiga-ui-kit-tokens.metadata.json +1 -1
  647. package/types/index.d.ts +1 -0
  648. package/types/taiga-ui-kit-types.metadata.json +1 -1
  649. package/types/time-format-parts.d.ts +1 -0
  650. package/utils/mask/create-auto-corrected-time-pipe.d.ts +3 -2
  651. package/utils/mask/create-time-mask.d.ts +2 -1
  652. package/utils/mask/taiga-ui-kit-utils-mask.metadata.json +1 -1
  653. package/utils/miscellaneous/get-precision.d.ts +4 -0
  654. package/utils/miscellaneous/index.d.ts +1 -0
  655. package/utils/miscellaneous/replay-control-value-changes-factory.d.ts +3 -2
  656. package/utils/miscellaneous/taiga-ui-kit-utils-miscellaneous.metadata.json +1 -1
@@ -1,33 +1,51 @@
1
1
  import { __decorate, __param } from 'tslib';
2
- import { Inject, Component, ChangeDetectionStrategy, NgModule } from '@angular/core';
2
+ import { InjectionToken, Inject, Component, ChangeDetectionStrategy, NgModule } from '@angular/core';
3
3
  import { sizeBigger, TuiHostedDropdownComponent, TuiTextfieldSizeDirective, TUI_TEXTFIELD_SIZE, TuiSvgModule } from '@taiga-ui/core';
4
- import { PolymorpheusComponent } from '@tinkoff/ng-polymorpheus';
4
+ import { PolymorpheusComponent, PolymorpheusModule } from '@tinkoff/ng-polymorpheus';
5
5
  import { CommonModule } from '@angular/common';
6
6
 
7
+ // TODO: remove in ivy compilation
8
+ const TUI_ARROW_ICON_SMALL = 'tuiIconChevronDown';
9
+ const TUI_ARROW_ICON_LARGE = 'tuiIconChevronDownLarge';
10
+ /** Default values for arrow options */
11
+ const TUI_ARROW_DEFAULT_OPTIONS = {
12
+ iconSmall: TUI_ARROW_ICON_SMALL,
13
+ iconLarge: TUI_ARROW_ICON_LARGE,
14
+ };
15
+ const TUI_ARROW_OPTIONS = new InjectionToken('Default parameters for arrow component', {
16
+ factory: () => TUI_ARROW_DEFAULT_OPTIONS,
17
+ });
18
+ const TUI_ARROW_MODE = new InjectionToken('Type of icon in dropdowns for interactive or disable mode', {
19
+ factory: () => ({ interactive: TUI_ARROW, disabled: TUI_ARROW }),
20
+ });
21
+
7
22
  let TuiArrowComponent = class TuiArrowComponent {
8
- constructor(dropdown, textfieldSize) {
23
+ constructor(dropdown, textfieldSize, options) {
9
24
  this.dropdown = dropdown;
10
25
  this.textfieldSize = textfieldSize;
26
+ this.options = options;
11
27
  }
12
28
  get arrowIcon() {
13
29
  return sizeBigger(this.textfieldSize.size)
14
- ? 'tuiIconChevronDownLarge'
15
- : 'tuiIconChevronDown';
30
+ ? this.options.iconLarge
31
+ : this.options.iconSmall;
16
32
  }
17
33
  };
18
34
  TuiArrowComponent.ctorParameters = () => [
19
35
  { type: TuiHostedDropdownComponent, decorators: [{ type: Inject, args: [TuiHostedDropdownComponent,] }] },
20
- { type: TuiTextfieldSizeDirective, decorators: [{ type: Inject, args: [TUI_TEXTFIELD_SIZE,] }] }
36
+ { type: TuiTextfieldSizeDirective, decorators: [{ type: Inject, args: [TUI_TEXTFIELD_SIZE,] }] },
37
+ { type: undefined, decorators: [{ type: Inject, args: [TUI_ARROW_OPTIONS,] }] }
21
38
  ];
22
39
  TuiArrowComponent = __decorate([
23
40
  Component({
24
41
  selector: 'tui-arrow',
25
- template: "<tui-svg\n class=\"icon\"\n [class.icon_rotated]=\"dropdown.openChange | async\"\n [src]=\"arrowIcon\"\n></tui-svg>\n",
42
+ template: "<span\n polymorpheus-outlet\n class=\"t-icon\"\n [class.t-icon_rotated]=\"dropdown.openChange | async\"\n [content]=\"arrowIcon\"\n>\n <ng-template let-icon>\n <tui-svg [src]=\"icon\"></tui-svg>\n </ng-template>\n</span>\n",
26
43
  changeDetection: ChangeDetectionStrategy.OnPush,
27
- styles: [".icon{transition-property:transform;transition-duration:var(--tui-duration,300ms);transition-timing-function:ease-in-out;cursor:pointer}.icon_rotated{transform:rotate(180deg)}"]
44
+ styles: [".t-icon{transition-property:transform;transition-duration:var(--tui-duration,300ms);transition-timing-function:ease-in-out;display:block;cursor:pointer;pointer-events:none}.t-icon_rotated{transform:rotate(180deg)}"]
28
45
  }),
29
46
  __param(0, Inject(TuiHostedDropdownComponent)),
30
- __param(1, Inject(TUI_TEXTFIELD_SIZE))
47
+ __param(1, Inject(TUI_TEXTFIELD_SIZE)),
48
+ __param(2, Inject(TUI_ARROW_OPTIONS))
31
49
  ], TuiArrowComponent);
32
50
  const TUI_ARROW = new PolymorpheusComponent(TuiArrowComponent);
33
51
 
@@ -35,7 +53,7 @@ let TuiArrowModule = class TuiArrowModule {
35
53
  };
36
54
  TuiArrowModule = __decorate([
37
55
  NgModule({
38
- imports: [CommonModule, TuiSvgModule],
56
+ imports: [CommonModule, TuiSvgModule, PolymorpheusModule],
39
57
  declarations: [TuiArrowComponent],
40
58
  exports: [TuiArrowComponent],
41
59
  entryComponents: [TuiArrowComponent],
@@ -46,5 +64,5 @@ TuiArrowModule = __decorate([
46
64
  * Generated bundle index. Do not edit.
47
65
  */
48
66
 
49
- export { TUI_ARROW, TuiArrowComponent, TuiArrowModule };
67
+ export { TUI_ARROW, TUI_ARROW_DEFAULT_OPTIONS, TUI_ARROW_ICON_LARGE, TUI_ARROW_ICON_SMALL, TUI_ARROW_MODE, TUI_ARROW_OPTIONS, TuiArrowComponent, TuiArrowModule };
50
68
  //# sourceMappingURL=taiga-ui-kit-components-arrow.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-kit-components-arrow.js","sources":["ng://@taiga-ui/kit/components/arrow/arrow.component.ts","ng://@taiga-ui/kit/components/arrow/arrow.module.ts","ng://@taiga-ui/kit/components/arrow/taiga-ui-kit-components-arrow.ts"],"sourcesContent":["import {ChangeDetectionStrategy, Component, Inject} from '@angular/core';\nimport {\n sizeBigger,\n TUI_TEXTFIELD_SIZE,\n TuiHostedDropdownComponent,\n TuiTextfieldSizeDirective,\n} from '@taiga-ui/core';\nimport {PolymorpheusComponent} from '@tinkoff/ng-polymorpheus';\n\n@Component({\n selector: 'tui-arrow',\n templateUrl: './arrow.template.html',\n styleUrls: ['./arrow.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiArrowComponent {\n constructor(\n @Inject(TuiHostedDropdownComponent)\n readonly dropdown: TuiHostedDropdownComponent,\n @Inject(TUI_TEXTFIELD_SIZE)\n private readonly textfieldSize: TuiTextfieldSizeDirective,\n ) {}\n\n get arrowIcon(): string {\n return sizeBigger(this.textfieldSize.size)\n ? 'tuiIconChevronDownLarge'\n : 'tuiIconChevronDown';\n }\n}\n\nexport const TUI_ARROW = new PolymorpheusComponent(TuiArrowComponent);\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {TuiSvgModule} from '@taiga-ui/core';\n\nimport {TuiArrowComponent} from './arrow.component';\n\n@NgModule({\n imports: [CommonModule, TuiSvgModule],\n declarations: [TuiArrowComponent],\n exports: [TuiArrowComponent],\n entryComponents: [TuiArrowComponent],\n})\nexport class TuiArrowModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;IAea,iBAAiB,GAA9B,MAAa,iBAAiB;IAC1B,YAEa,QAAoC,EAE5B,aAAwC;QAFhD,aAAQ,GAAR,QAAQ,CAA4B;QAE5B,kBAAa,GAAb,aAAa,CAA2B;KACzD;IAEJ,IAAI,SAAS;QACT,OAAO,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;cACpC,yBAAyB;cACzB,oBAAoB,CAAC;KAC9B;EACJ;;YAV0B,0BAA0B,uBAD5C,MAAM,SAAC,0BAA0B;YAGF,yBAAyB,uBADxD,MAAM,SAAC,kBAAkB;;AAJrB,iBAAiB;IAN7B,SAAS,CAAC;QACP,QAAQ,EAAE,WAAW;QACrB,0IAAoC;QAEpC,eAAe,EAAE,uBAAuB,CAAC,MAAM;;KAClD,CAAC;IAGO,WAAA,MAAM,CAAC,0BAA0B,CAAC,CAAA;IAElC,WAAA,MAAM,CAAC,kBAAkB,CAAC,CAAA;GAJtB,iBAAiB,CAa7B;MAEY,SAAS,GAAG,IAAI,qBAAqB,CAAC,iBAAiB;;IClBvD,cAAc,GAA3B,MAAa,cAAc;EAAG;AAAjB,cAAc;IAN1B,QAAQ,CAAC;QACN,OAAO,EAAE,CAAC,YAAY,EAAE,YAAY,CAAC;QACrC,YAAY,EAAE,CAAC,iBAAiB,CAAC;QACjC,OAAO,EAAE,CAAC,iBAAiB,CAAC;QAC5B,eAAe,EAAE,CAAC,iBAAiB,CAAC;KACvC,CAAC;GACW,cAAc,CAAG;;ACZ9B;;;;;;"}
1
+ {"version":3,"file":"taiga-ui-kit-components-arrow.js","sources":["ng://@taiga-ui/kit/components/arrow/arrow-options.ts","ng://@taiga-ui/kit/components/arrow/arrow.component.ts","ng://@taiga-ui/kit/components/arrow/arrow.module.ts","ng://@taiga-ui/kit/components/arrow/taiga-ui-kit-components-arrow.ts"],"sourcesContent":["import {InjectionToken} from '@angular/core';\nimport {PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\n\nimport {TUI_ARROW} from './arrow.component';\n\nexport interface TuiArrowOptions {\n readonly iconSmall: PolymorpheusContent;\n readonly iconLarge: PolymorpheusContent;\n}\n\nexport interface TuiArrowMode {\n interactive: PolymorpheusContent;\n disabled: PolymorpheusContent;\n}\n\n// TODO: remove in ivy compilation\nexport const TUI_ARROW_ICON_SMALL = 'tuiIconChevronDown';\nexport const TUI_ARROW_ICON_LARGE = 'tuiIconChevronDownLarge';\n\n/** Default values for arrow options */\nexport const TUI_ARROW_DEFAULT_OPTIONS: TuiArrowOptions = {\n iconSmall: TUI_ARROW_ICON_SMALL,\n iconLarge: TUI_ARROW_ICON_LARGE,\n};\n\nexport const TUI_ARROW_OPTIONS = new InjectionToken<TuiArrowOptions>(\n 'Default parameters for arrow component',\n {\n factory: () => TUI_ARROW_DEFAULT_OPTIONS,\n },\n);\n\nexport const TUI_ARROW_MODE: InjectionToken<TuiArrowMode> = new InjectionToken(\n 'Type of icon in dropdowns for interactive or disable mode',\n {\n factory: () => ({interactive: TUI_ARROW, disabled: TUI_ARROW}),\n },\n);\n","import {ChangeDetectionStrategy, Component, Inject} from '@angular/core';\nimport {\n sizeBigger,\n TUI_TEXTFIELD_SIZE,\n TuiHostedDropdownComponent,\n TuiTextfieldSizeDirective,\n} from '@taiga-ui/core';\nimport {PolymorpheusComponent, PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\n\nimport {TUI_ARROW_OPTIONS, TuiArrowOptions} from './arrow-options';\n\n@Component({\n selector: 'tui-arrow',\n templateUrl: './arrow.template.html',\n styleUrls: ['./arrow.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiArrowComponent {\n constructor(\n @Inject(TuiHostedDropdownComponent)\n readonly dropdown: TuiHostedDropdownComponent,\n @Inject(TUI_TEXTFIELD_SIZE)\n private readonly textfieldSize: TuiTextfieldSizeDirective,\n @Inject(TUI_ARROW_OPTIONS) private readonly options: TuiArrowOptions,\n ) {}\n\n get arrowIcon(): PolymorpheusContent {\n return sizeBigger(this.textfieldSize.size)\n ? this.options.iconLarge\n : this.options.iconSmall;\n }\n}\n\nexport const TUI_ARROW = new PolymorpheusComponent(TuiArrowComponent);\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {TuiSvgModule} from '@taiga-ui/core';\nimport {PolymorpheusModule} from '@tinkoff/ng-polymorpheus';\n\nimport {TuiArrowComponent} from './arrow.component';\n\n@NgModule({\n imports: [CommonModule, TuiSvgModule, PolymorpheusModule],\n declarations: [TuiArrowComponent],\n exports: [TuiArrowComponent],\n entryComponents: [TuiArrowComponent],\n})\nexport class TuiArrowModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;AAeA;MACa,oBAAoB,GAAG,qBAAqB;MAC5C,oBAAoB,GAAG,0BAA0B;AAE9D;MACa,yBAAyB,GAAoB;IACtD,SAAS,EAAE,oBAAoB;IAC/B,SAAS,EAAE,oBAAoB;EACjC;MAEW,iBAAiB,GAAG,IAAI,cAAc,CAC/C,wCAAwC,EACxC;IACI,OAAO,EAAE,MAAM,yBAAyB;CAC3C,EACH;MAEW,cAAc,GAAiC,IAAI,cAAc,CAC1E,2DAA2D,EAC3D;IACI,OAAO,EAAE,OAAO,EAAC,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAC,CAAC;CACjE;;ICnBQ,iBAAiB,GAA9B,MAAa,iBAAiB;IAC1B,YAEa,QAAoC,EAE5B,aAAwC,EACb,OAAwB;QAH3D,aAAQ,GAAR,QAAQ,CAA4B;QAE5B,kBAAa,GAAb,aAAa,CAA2B;QACb,YAAO,GAAP,OAAO,CAAiB;KACpE;IAEJ,IAAI,SAAS;QACT,OAAO,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;cACpC,IAAI,CAAC,OAAO,CAAC,SAAS;cACtB,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;KAChC;EACJ;;YAX0B,0BAA0B,uBAD5C,MAAM,SAAC,0BAA0B;YAGF,yBAAyB,uBADxD,MAAM,SAAC,kBAAkB;4CAEzB,MAAM,SAAC,iBAAiB;;AANpB,iBAAiB;IAN7B,SAAS,CAAC;QACP,QAAQ,EAAE,WAAW;QACrB,mQAAoC;QAEpC,eAAe,EAAE,uBAAuB,CAAC,MAAM;;KAClD,CAAC;IAGO,WAAA,MAAM,CAAC,0BAA0B,CAAC,CAAA;IAElC,WAAA,MAAM,CAAC,kBAAkB,CAAC,CAAA;IAE1B,WAAA,MAAM,CAAC,iBAAiB,CAAC,CAAA;GANrB,iBAAiB,CAc7B;MAEY,SAAS,GAAG,IAAI,qBAAqB,CAAC,iBAAiB;;ICpBvD,cAAc,GAA3B,MAAa,cAAc;EAAG;AAAjB,cAAc;IAN1B,QAAQ,CAAC;QACN,OAAO,EAAE,CAAC,YAAY,EAAE,YAAY,EAAE,kBAAkB,CAAC;QACzD,YAAY,EAAE,CAAC,iBAAiB,CAAC;QACjC,OAAO,EAAE,CAAC,iBAAiB,CAAC;QAC5B,eAAe,EAAE,CAAC,iBAAiB,CAAC;KACvC,CAAC;GACW,cAAc,CAAG;;ACb9B;;;;;;"}
@@ -71,7 +71,7 @@ TuiAvatarComponent = __decorate([
71
71
  selector: 'tui-avatar',
72
72
  changeDetection: ChangeDetectionStrategy.OnPush,
73
73
  template: "<img\n *ngIf=\"isUrlValid\"\n loading=\"lazy\"\n class=\"image\"\n [attr.alt]=\"text\"\n [src]=\"avatarUrl\"\n (error)=\"onError()\"\n/>\n<span class=\"text\">{{ computedText }}</span>\n",
74
- styles: [":host{position:relative;display:flex;flex-shrink:0;border-radius:var(--tui-radius-m);color:var(--tui-secondary-active);text-align:center;text-transform:uppercase;justify-content:center;align-items:center;background-color:currentColor;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;overflow:hidden}:host[data-tui-host-size=xs]{font:var(--tui-font-text-s);width:1.5rem;height:1.5rem}:host[data-tui-host-size='s']{font:var(--tui-font-text-m);width:2rem;height:2rem}:host[data-tui-host-size='m']{font:var(--tui-font-text-l);width:3rem;height:3rem}:host[data-tui-host-size='l']{font:var(--tui-font-heading-5);width:4rem;height:4rem;border-radius:var(--tui-radius-l)}:host[data-tui-host-size=xl]{font:var(--tui-font-heading-3);width:6rem;height:6rem;border-radius:var(--tui-radius-l)}:host[data-tui-host-size=xxl]{font:var(--tui-font-heading-1);width:9rem;height:9rem;border-radius:var(--tui-radius-l)}:host._has-avatar{background-color:transparent}:host._rounded{border-radius:100%}.image{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.text{color:var(--tui-text-01)}"]
74
+ styles: [":host{position:relative;display:flex;flex-shrink:0;border-radius:var(--tui-radius-m);color:var(--tui-secondary-active);text-align:center;text-transform:uppercase;justify-content:center;align-items:center;background-color:currentColor;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;overflow:hidden}:host[data-tui-host-size=xs]{font:var(--tui-font-text-s);width:1.5rem;height:1.5rem}:host[data-tui-host-size='s']{font:var(--tui-font-text-m);width:2rem;height:2rem}:host[data-tui-host-size='m']{font:var(--tui-font-text-l);width:3rem;height:3rem}:host[data-tui-host-size='l']{font:var(--tui-font-heading-5);width:4rem;height:4rem;border-radius:var(--tui-radius-l)}:host[data-tui-host-size=xl]{font:var(--tui-font-heading-3);width:6rem;height:6rem;border-radius:var(--tui-radius-l)}:host[data-tui-host-size=xxl]{font:var(--tui-font-heading-1);width:9rem;height:9rem;border-radius:var(--tui-radius-l)}:host._has-avatar{background-color:transparent}:host._rounded{border-radius:100%}.image{width:100%;height:100%;object-fit:cover}.text{color:var(--tui-text-01)}"]
75
75
  })
76
76
  ], TuiAvatarComponent);
77
77
 
@@ -67,7 +67,10 @@ let TuiCalendarMonthComponent = class TuiCalendarMonthComponent {
67
67
  return "start" /* Start */;
68
68
  }
69
69
  const theLastOfRange = value.to.monthSame(item) && !value.isSingleMonth;
70
- const hoveredItemBeforeTo = value.to.monthSame(item) && !value.isSingleMonth;
70
+ const hoveredItemBeforeTo = hoveredItem !== null &&
71
+ value.to.monthSame(item) &&
72
+ hoveredItem.monthBefore(value.to) &&
73
+ value.isSingleMonth;
71
74
  const hoveredItemIsCandidatToBeTo = hoveredItem !== null &&
72
75
  hoveredItem.monthSame(item) &&
73
76
  hoveredItem.monthAfter(value.from) &&
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-kit-components-calendar-month.js","sources":["ng://@taiga-ui/kit/components/calendar-month/calendar-month.component.ts","ng://@taiga-ui/kit/components/calendar-month/calendar-month.module.ts","ng://@taiga-ui/kit/components/calendar-month/taiga-ui-kit-components-calendar-month.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n HostBinding,\n Inject,\n Input,\n Output,\n} from '@angular/core';\nimport {\n ALWAYS_FALSE_HANDLER,\n nullableSame,\n TUI_FIRST_DAY,\n TUI_LAST_DAY,\n TuiBooleanHandler,\n TuiDay,\n tuiDefaultProp,\n TuiMonth,\n TuiMonthRange,\n tuiPure,\n TuiYear,\n} from '@taiga-ui/cdk';\nimport {TuiInteractiveState, TuiRangeState, TuiWithOptionalMinMax} from '@taiga-ui/core';\nimport {TuiMonthContext} from '@taiga-ui/kit/interfaces';\nimport {TUI_CALENDAR_MONTHS} from '@taiga-ui/kit/tokens';\nimport {TuiBooleanHandlerWithContext} from '@taiga-ui/kit/types';\nimport {Observable} from 'rxjs';\n\nconst TODAY = TuiDay.currentLocal();\n\n// @dynamic\n@Component({\n selector: 'tui-calendar-month',\n templateUrl: './calendar-month.template.html',\n styleUrls: ['./calendar-month.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiCalendarMonthComponent implements TuiWithOptionalMinMax<TuiMonth> {\n @Input()\n @tuiDefaultProp()\n value: TuiMonthRange | TuiMonth | null = null;\n\n @Input()\n @tuiDefaultProp()\n year: TuiYear = TODAY;\n\n @Input()\n @tuiDefaultProp()\n disabledItemHandler: TuiBooleanHandlerWithContext<TuiMonth, TuiMonthContext> =\n ALWAYS_FALSE_HANDLER;\n\n @Input()\n @tuiDefaultProp()\n min: TuiMonth = TUI_FIRST_DAY;\n\n @Input()\n @tuiDefaultProp()\n max: TuiMonth = TUI_LAST_DAY;\n\n @Output()\n readonly monthClick = new EventEmitter<TuiMonth>();\n\n @Output()\n readonly hoveredItemChange = new EventEmitter<TuiMonth | null>();\n\n @Output()\n readonly yearChange = new EventEmitter<TuiYear>();\n\n isYearPickerShown = false;\n\n hoveredItem: TuiMonth | null = null;\n pressedItem: TuiMonth | null = null;\n\n constructor(\n @Inject(TUI_CALENDAR_MONTHS) readonly months$: Observable<readonly string[]>,\n ) {}\n\n @HostBinding('class._single')\n get isSingle(): boolean {\n return (\n this.value !== null &&\n (this.value instanceof TuiMonth || this.value.isSingleMonth)\n );\n }\n\n get previousYearDisabled(): boolean {\n return this.year.yearSameOrBefore(this.min);\n }\n\n get nextYearDisabled(): boolean {\n return this.year.yearSameOrAfter(this.max);\n }\n\n getItemState(item: TuiMonth): TuiInteractiveState | null {\n const {disabledItemHandlerWithMinMax, pressedItem, hoveredItem} = this;\n\n if (disabledItemHandlerWithMinMax(item)) {\n return TuiInteractiveState.Disabled;\n }\n\n if (pressedItem !== null && pressedItem.monthSame(item)) {\n return TuiInteractiveState.Pressed;\n }\n\n if (hoveredItem !== null && hoveredItem.monthSame(item)) {\n return TuiInteractiveState.Hovered;\n }\n\n return null;\n }\n\n getItemRange(item: TuiMonth): TuiRangeState | null {\n const {value, hoveredItem} = this;\n\n if (value === null) {\n return null;\n }\n\n if (value instanceof TuiMonth) {\n return value.monthSame(item) ? TuiRangeState.Single : null;\n }\n\n const theFirstOfRange = value.from.monthSame(item) && !value.isSingleMonth;\n const hoveredItemAfterFrom =\n hoveredItem !== null &&\n hoveredItem.monthAfter(value.from) &&\n value.from.monthSame(item) &&\n value.isSingleMonth;\n const hoveredItemIsCandidatToBeFrom =\n hoveredItem !== null &&\n hoveredItem.monthSame(item) &&\n hoveredItem.monthBefore(value.from) &&\n value.isSingleMonth;\n\n if (theFirstOfRange || hoveredItemAfterFrom || hoveredItemIsCandidatToBeFrom) {\n return TuiRangeState.Start;\n }\n\n const theLastOfRange = value.to.monthSame(item) && !value.isSingleMonth;\n const hoveredItemBeforeTo = value.to.monthSame(item) && !value.isSingleMonth;\n const hoveredItemIsCandidatToBeTo =\n hoveredItem !== null &&\n hoveredItem.monthSame(item) &&\n hoveredItem.monthAfter(value.from) &&\n value.isSingleMonth;\n\n if (theLastOfRange || hoveredItemBeforeTo || hoveredItemIsCandidatToBeTo) {\n return TuiRangeState.End;\n }\n\n return value.isSingleMonth && value.from.monthSame(item)\n ? TuiRangeState.Single\n : null;\n }\n\n getTuiMonth(monthNumber: number, yearNumber: number): TuiMonth {\n return new TuiMonth(yearNumber, monthNumber);\n }\n\n isItemToday(item: TuiMonth): boolean {\n return TODAY.monthSame(item);\n }\n\n isItemInsideRange(month: TuiMonth): boolean {\n const {value, hoveredItem} = this;\n\n if (value === null || value instanceof TuiMonth) {\n return false;\n }\n\n if (!value.isSingleMonth) {\n return value.from.monthSameOrBefore(month) && value.to.monthAfter(month);\n }\n\n if (hoveredItem === null) {\n return false;\n }\n\n const range = TuiMonthRange.sort(value.from, hoveredItem);\n\n return range.from.monthSameOrBefore(month) && range.to.monthAfter(month);\n }\n\n onPickerYearClick(year: TuiYear) {\n this.isYearPickerShown = false;\n\n if (this.year.yearSame(year)) {\n return;\n }\n\n this.year = year;\n this.yearChange.emit(year);\n }\n\n onItemClick(month: TuiMonth) {\n if (this.disabledItemHandlerWithMinMax(month)) {\n return;\n }\n\n this.monthClick.emit(month);\n }\n\n onYearClick() {\n this.isYearPickerShown = true;\n }\n\n onNextYear() {\n this.year = this.year.append({year: 1});\n }\n\n onPreviousYear() {\n this.year = this.year.append({year: -1});\n }\n\n onItemHovered(hovered: boolean, item: TuiMonth) {\n this.updateHoveredItem(hovered ? item : null);\n }\n\n onItemPressed(pressed: boolean, item: TuiMonth) {\n this.updatePressedItem(pressed ? item : null);\n }\n\n @tuiPure\n private calculateDisabledItemHandlerWithMinMax(\n disabledItemHandler: TuiBooleanHandlerWithContext<TuiMonth, TuiMonthContext>,\n value: TuiMonth | TuiMonthRange | null,\n min: TuiMonth,\n max: TuiMonth,\n ): TuiBooleanHandler<TuiMonth> {\n return item =>\n item.monthBefore(min) ||\n item.monthAfter(max) ||\n disabledItemHandler(item, {value});\n }\n\n private get disabledItemHandlerWithMinMax(): TuiBooleanHandler<TuiMonth> {\n return this.calculateDisabledItemHandlerWithMinMax(\n this.disabledItemHandler,\n this.value,\n this.min,\n this.max,\n );\n }\n\n private updateHoveredItem(month: TuiMonth | null) {\n if (nullableSame(this.hoveredItem, month, (a, b) => a.monthSame(b))) {\n return;\n }\n\n this.hoveredItem = month;\n this.hoveredItemChange.emit(month);\n }\n\n private updatePressedItem(item: TuiMonth | null) {\n this.pressedItem = item;\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {\n TuiFocusableModule,\n TuiHoveredModule,\n TuiLetModule,\n TuiPressedModule,\n} from '@taiga-ui/cdk';\nimport {\n TuiLinkModule,\n TuiPrimitiveSpinButtonModule,\n TuiPrimitiveYearPickerModule,\n TuiScrollbarModule,\n} from '@taiga-ui/core';\n\nimport {TuiCalendarMonthComponent} from './calendar-month.component';\n\n@NgModule({\n imports: [\n CommonModule,\n TuiPrimitiveYearPickerModule,\n TuiPrimitiveSpinButtonModule,\n TuiScrollbarModule,\n TuiLinkModule,\n TuiLetModule,\n TuiHoveredModule,\n TuiPressedModule,\n TuiFocusableModule,\n ],\n declarations: [TuiCalendarMonthComponent],\n exports: [TuiCalendarMonthComponent],\n})\nexport class TuiCalendarMonthModule {}\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-calendar-month.js","sources":["ng://@taiga-ui/kit/components/calendar-month/calendar-month.component.ts","ng://@taiga-ui/kit/components/calendar-month/calendar-month.module.ts","ng://@taiga-ui/kit/components/calendar-month/taiga-ui-kit-components-calendar-month.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n HostBinding,\n Inject,\n Input,\n Output,\n} from '@angular/core';\nimport {\n ALWAYS_FALSE_HANDLER,\n nullableSame,\n TUI_FIRST_DAY,\n TUI_LAST_DAY,\n TuiBooleanHandler,\n TuiDay,\n tuiDefaultProp,\n TuiMonth,\n TuiMonthRange,\n tuiPure,\n TuiYear,\n} from '@taiga-ui/cdk';\nimport {TuiInteractiveState, TuiRangeState, TuiWithOptionalMinMax} from '@taiga-ui/core';\nimport {TuiMonthContext} from '@taiga-ui/kit/interfaces';\nimport {TUI_CALENDAR_MONTHS} from '@taiga-ui/kit/tokens';\nimport {TuiBooleanHandlerWithContext} from '@taiga-ui/kit/types';\nimport {Observable} from 'rxjs';\n\nconst TODAY = TuiDay.currentLocal();\n\n// @dynamic\n@Component({\n selector: 'tui-calendar-month',\n templateUrl: './calendar-month.template.html',\n styleUrls: ['./calendar-month.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiCalendarMonthComponent implements TuiWithOptionalMinMax<TuiMonth> {\n @Input()\n @tuiDefaultProp()\n value: TuiMonthRange | TuiMonth | null = null;\n\n @Input()\n @tuiDefaultProp()\n year: TuiYear = TODAY;\n\n @Input()\n @tuiDefaultProp()\n disabledItemHandler: TuiBooleanHandlerWithContext<TuiMonth, TuiMonthContext> =\n ALWAYS_FALSE_HANDLER;\n\n @Input()\n @tuiDefaultProp()\n min: TuiMonth = TUI_FIRST_DAY;\n\n @Input()\n @tuiDefaultProp()\n max: TuiMonth = TUI_LAST_DAY;\n\n @Output()\n readonly monthClick = new EventEmitter<TuiMonth>();\n\n @Output()\n readonly hoveredItemChange = new EventEmitter<TuiMonth | null>();\n\n @Output()\n readonly yearChange = new EventEmitter<TuiYear>();\n\n isYearPickerShown = false;\n\n hoveredItem: TuiMonth | null = null;\n pressedItem: TuiMonth | null = null;\n\n constructor(\n @Inject(TUI_CALENDAR_MONTHS) readonly months$: Observable<readonly string[]>,\n ) {}\n\n @HostBinding('class._single')\n get isSingle(): boolean {\n return (\n this.value !== null &&\n (this.value instanceof TuiMonth || this.value.isSingleMonth)\n );\n }\n\n get previousYearDisabled(): boolean {\n return this.year.yearSameOrBefore(this.min);\n }\n\n get nextYearDisabled(): boolean {\n return this.year.yearSameOrAfter(this.max);\n }\n\n getItemState(item: TuiMonth): TuiInteractiveState | null {\n const {disabledItemHandlerWithMinMax, pressedItem, hoveredItem} = this;\n\n if (disabledItemHandlerWithMinMax(item)) {\n return TuiInteractiveState.Disabled;\n }\n\n if (pressedItem !== null && pressedItem.monthSame(item)) {\n return TuiInteractiveState.Pressed;\n }\n\n if (hoveredItem !== null && hoveredItem.monthSame(item)) {\n return TuiInteractiveState.Hovered;\n }\n\n return null;\n }\n\n getItemRange(item: TuiMonth): TuiRangeState | null {\n const {value, hoveredItem} = this;\n\n if (value === null) {\n return null;\n }\n\n if (value instanceof TuiMonth) {\n return value.monthSame(item) ? TuiRangeState.Single : null;\n }\n\n const theFirstOfRange = value.from.monthSame(item) && !value.isSingleMonth;\n const hoveredItemAfterFrom =\n hoveredItem !== null &&\n hoveredItem.monthAfter(value.from) &&\n value.from.monthSame(item) &&\n value.isSingleMonth;\n const hoveredItemIsCandidatToBeFrom =\n hoveredItem !== null &&\n hoveredItem.monthSame(item) &&\n hoveredItem.monthBefore(value.from) &&\n value.isSingleMonth;\n\n if (theFirstOfRange || hoveredItemAfterFrom || hoveredItemIsCandidatToBeFrom) {\n return TuiRangeState.Start;\n }\n\n const theLastOfRange = value.to.monthSame(item) && !value.isSingleMonth;\n const hoveredItemBeforeTo =\n hoveredItem !== null &&\n value.to.monthSame(item) &&\n hoveredItem.monthBefore(value.to) &&\n value.isSingleMonth;\n const hoveredItemIsCandidatToBeTo =\n hoveredItem !== null &&\n hoveredItem.monthSame(item) &&\n hoveredItem.monthAfter(value.from) &&\n value.isSingleMonth;\n\n if (theLastOfRange || hoveredItemBeforeTo || hoveredItemIsCandidatToBeTo) {\n return TuiRangeState.End;\n }\n\n return value.isSingleMonth && value.from.monthSame(item)\n ? TuiRangeState.Single\n : null;\n }\n\n getTuiMonth(monthNumber: number, yearNumber: number): TuiMonth {\n return new TuiMonth(yearNumber, monthNumber);\n }\n\n isItemToday(item: TuiMonth): boolean {\n return TODAY.monthSame(item);\n }\n\n isItemInsideRange(month: TuiMonth): boolean {\n const {value, hoveredItem} = this;\n\n if (value === null || value instanceof TuiMonth) {\n return false;\n }\n\n if (!value.isSingleMonth) {\n return value.from.monthSameOrBefore(month) && value.to.monthAfter(month);\n }\n\n if (hoveredItem === null) {\n return false;\n }\n\n const range = TuiMonthRange.sort(value.from, hoveredItem);\n\n return range.from.monthSameOrBefore(month) && range.to.monthAfter(month);\n }\n\n onPickerYearClick(year: TuiYear) {\n this.isYearPickerShown = false;\n\n if (this.year.yearSame(year)) {\n return;\n }\n\n this.year = year;\n this.yearChange.emit(year);\n }\n\n onItemClick(month: TuiMonth) {\n if (this.disabledItemHandlerWithMinMax(month)) {\n return;\n }\n\n this.monthClick.emit(month);\n }\n\n onYearClick() {\n this.isYearPickerShown = true;\n }\n\n onNextYear() {\n this.year = this.year.append({year: 1});\n }\n\n onPreviousYear() {\n this.year = this.year.append({year: -1});\n }\n\n onItemHovered(hovered: boolean, item: TuiMonth) {\n this.updateHoveredItem(hovered ? item : null);\n }\n\n onItemPressed(pressed: boolean, item: TuiMonth) {\n this.updatePressedItem(pressed ? item : null);\n }\n\n @tuiPure\n private calculateDisabledItemHandlerWithMinMax(\n disabledItemHandler: TuiBooleanHandlerWithContext<TuiMonth, TuiMonthContext>,\n value: TuiMonth | TuiMonthRange | null,\n min: TuiMonth,\n max: TuiMonth,\n ): TuiBooleanHandler<TuiMonth> {\n return item =>\n item.monthBefore(min) ||\n item.monthAfter(max) ||\n disabledItemHandler(item, {value});\n }\n\n private get disabledItemHandlerWithMinMax(): TuiBooleanHandler<TuiMonth> {\n return this.calculateDisabledItemHandlerWithMinMax(\n this.disabledItemHandler,\n this.value,\n this.min,\n this.max,\n );\n }\n\n private updateHoveredItem(month: TuiMonth | null) {\n if (nullableSame(this.hoveredItem, month, (a, b) => a.monthSame(b))) {\n return;\n }\n\n this.hoveredItem = month;\n this.hoveredItemChange.emit(month);\n }\n\n private updatePressedItem(item: TuiMonth | null) {\n this.pressedItem = item;\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {\n TuiFocusableModule,\n TuiHoveredModule,\n TuiLetModule,\n TuiPressedModule,\n} from '@taiga-ui/cdk';\nimport {\n TuiLinkModule,\n TuiPrimitiveSpinButtonModule,\n TuiPrimitiveYearPickerModule,\n TuiScrollbarModule,\n} from '@taiga-ui/core';\n\nimport {TuiCalendarMonthComponent} from './calendar-month.component';\n\n@NgModule({\n imports: [\n CommonModule,\n TuiPrimitiveYearPickerModule,\n TuiPrimitiveSpinButtonModule,\n TuiScrollbarModule,\n TuiLinkModule,\n TuiLetModule,\n TuiHoveredModule,\n TuiPressedModule,\n TuiFocusableModule,\n ],\n declarations: [TuiCalendarMonthComponent],\n exports: [TuiCalendarMonthComponent],\n})\nexport class TuiCalendarMonthModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -140,7 +140,7 @@ TuiCarouselComponent = __decorate([
140
140
  useExisting: ElementRef,
141
141
  },
142
142
  ],
143
- styles: [":host{position:relative;display:block;overflow:hidden}:host._draggable{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}:host._draggable:hover{cursor:-webkit-grab;cursor:grab}:host._draggable:active{cursor:-webkit-grabbing;cursor:grabbing}.t-items{display:flex;align-items:center}:host._transitioned .t-items{transition-property:transform;transition-duration:var(--tui-duration,300ms);transition-timing-function:ease-in-out}.t-item{padding:0 1.25rem;flex:1;min-width:100%;max-width:100%;box-sizing:border-box;border:none;margin:0}.t-wrapper{position:sticky;left:0;right:0;min-width:100%;overflow:hidden}.t-scroller{scrollbar-width:none;-ms-overflow-style:none;display:flex;overflow:auto;overscroll-behavior-x:none;padding-bottom:2rem;margin-bottom:-2rem}.t-scroller::-webkit-scrollbar,.t-scroller::-webkit-scrollbar-thumb{background:0 0;width:0;height:0}.t-scroller:after,.t-scroller:before{content:'';display:block;min-width:1rem}"]
143
+ styles: [":host{position:relative;display:block;overflow:hidden}:host._draggable{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}:host._draggable:hover{cursor:-webkit-grab;cursor:grab}:host._draggable:active{cursor:-webkit-grabbing;cursor:grabbing}.t-items{display:flex;align-items:center}:host._transitioned .t-items{transition-property:transform;transition-duration:var(--tui-duration,300ms);transition-timing-function:ease-in-out}.t-item{padding:0 1.25rem;flex:1;min-width:100%;max-width:100%;box-sizing:border-box;border:none;margin:0}.t-wrapper{position:-webkit-sticky;position:sticky;left:0;right:0;min-width:100%;overflow:hidden}.t-scroller{scrollbar-width:none;-ms-overflow-style:none;display:flex;overflow:auto;overscroll-behavior-x:none;padding-bottom:2rem;margin-bottom:-2rem}.t-scroller::-webkit-scrollbar,.t-scroller::-webkit-scrollbar-thumb{background:0 0;width:0;height:0}.t-scroller:after,.t-scroller:before{content:'';display:block;min-width:1rem}"]
144
144
  }),
145
145
  __param(0, Inject(ChangeDetectorRef)),
146
146
  __param(1, Inject(ElementRef)),
@@ -214,9 +214,10 @@ TuiCarouselButtonsDirective = __decorate([
214
214
  let TuiCarouselScrollDirective = class TuiCarouselScrollDirective {
215
215
  constructor(elementRef) {
216
216
  this.elementRef = elementRef;
217
- this.tuiCarouselScroll = typedFromEvent(this.elementRef.nativeElement, 'wheel').pipe(filter(({ deltaX }) => Math.abs(deltaX) > 20), throttleTime(500), map(({ deltaX }) => Math.sign(deltaX)),
218
- // So we always have space to scroll and overflow-behavior saves us from back nav
219
- tap(() => (this.elementRef.nativeElement.scrollLeft = 10)));
217
+ this.tuiCarouselScroll = typedFromEvent(this.elementRef.nativeElement, 'wheel').pipe(filter(({ deltaX }) => Math.abs(deltaX) > 20), throttleTime(500), map(({ deltaX }) => Math.sign(deltaX)), tap(() => {
218
+ // So we always have space to scroll and overflow-behavior saves us from back nav
219
+ this.elementRef.nativeElement.scrollLeft = 10;
220
+ }));
220
221
  }
221
222
  };
222
223
  TuiCarouselScrollDirective.ctorParameters = () => [
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-kit-components-carousel.js","sources":["ng://@taiga-ui/kit/components/carousel/carousel.component.ts","ng://@taiga-ui/kit/components/carousel/carousel.directive.ts","ng://@taiga-ui/kit/components/carousel/carousel-autoscroll.directive.ts","ng://@taiga-ui/kit/components/carousel/carousel-buttons.directive.ts","ng://@taiga-ui/kit/components/carousel/carousel-scroll.directive.ts","ng://@taiga-ui/kit/components/carousel/carousel.module.ts","ng://@taiga-ui/kit/components/carousel/taiga-ui-kit-components-carousel.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n ElementRef,\n EventEmitter,\n HostBinding,\n HostListener,\n Inject,\n Input,\n Output,\n QueryList,\n TemplateRef,\n} from '@angular/core';\nimport {INTERSECTION_ROOT} from '@ng-web-apis/intersection-observer';\nimport {\n clamp,\n EMPTY_QUERY,\n TUI_IS_MOBILE,\n tuiDefaultProp,\n TuiItemDirective,\n tuiPure,\n TuiSwipeDirection,\n} from '@taiga-ui/cdk';\n\n// @dynamic\n@Component({\n selector: 'tui-carousel',\n templateUrl: 'carousel.template.html',\n styleUrls: ['carousel.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: INTERSECTION_ROOT,\n useExisting: ElementRef,\n },\n ],\n})\nexport class TuiCarouselComponent {\n private translate = 0;\n\n @Input()\n @HostBinding('class._draggable')\n @tuiDefaultProp()\n draggable = false;\n\n @Input()\n @tuiDefaultProp()\n itemsCount = 1;\n\n @Input()\n @tuiDefaultProp()\n index = 0;\n\n @Output()\n readonly indexChange = new EventEmitter<number>();\n\n @ContentChildren(TuiItemDirective, {read: TemplateRef})\n readonly items: QueryList<TemplateRef<any>> = EMPTY_QUERY;\n\n @HostBinding('class._transitioned')\n transitioned = true;\n\n constructor(\n @Inject(ChangeDetectorRef) private readonly changeDetectorRef: ChangeDetectorRef,\n @Inject(ElementRef) private readonly elementRef: ElementRef<HTMLElement>,\n @Inject(TUI_IS_MOBILE) private readonly isMobile: boolean,\n ) {}\n\n get transform(): string {\n const x = this.transitioned ? this.computedTranslate : this.translate;\n\n return `translateX(${100 * x}%)`;\n }\n\n @HostListener('touchstart', ['false'])\n @HostListener('touchend', ['true'])\n @HostListener('mousedown', ['false'])\n @HostListener('document:mouseup.silent', ['true'])\n onTransitioned(transitioned: boolean) {\n this.transitioned = transitioned;\n\n if (!transitioned) {\n this.translate = this.computedTranslate;\n }\n }\n\n @tuiPure\n getStyle(itemsCount: number): Partial<CSSStyleDeclaration> {\n const percent = `${100 / itemsCount}%`;\n\n return {\n flexBasis: percent,\n minWidth: percent,\n maxWidth: percent,\n };\n }\n\n next() {\n this.updateIndex(this.index + 1);\n }\n\n prev() {\n this.updateIndex(this.index - 1);\n }\n\n isDisabled(index: number): boolean {\n return index < this.index || index > this.index + this.itemsCount;\n }\n\n onIntersection({intersectionRatio}: IntersectionObserverEntry, index: number) {\n if (intersectionRatio && intersectionRatio !== 1 && !this.transitioned) {\n this.updateIndex(index - Math.floor(this.itemsCount / 2));\n }\n }\n\n onScroll(delta: number) {\n if (!this.isMobile) {\n this.updateIndex(this.index + delta);\n }\n }\n\n onPan(x: number) {\n if (!this.computedDraggable) {\n return;\n }\n\n const {clientWidth} = this.elementRef.nativeElement;\n const min = 1 - this.items.length / this.itemsCount;\n\n this.translate = clamp(x / clientWidth + this.translate, min, 0);\n }\n\n onSwipe(direction: TuiSwipeDirection) {\n if (Math.round(this.translate) !== -this.index || !this.computedDraggable) {\n return;\n } else if (direction === 'left') {\n this.next();\n } else if (direction === 'right') {\n this.prev();\n }\n }\n\n onAutoscroll() {\n this.updateIndex(this.index === this.items.length - 1 ? 0 : this.index + 1);\n }\n\n private get computedTranslate(): number {\n return -this.index / this.itemsCount;\n }\n\n private get computedDraggable(): boolean {\n return this.isMobile || this.draggable;\n }\n\n private updateIndex(index: number) {\n this.index = clamp(index, 0, this.items.length - 1);\n this.indexChange.emit(this.index);\n this.changeDetectorRef.markForCheck();\n }\n}\n","import {Directive, ElementRef, Inject, Input} from '@angular/core';\nimport {PAGE_VISIBILITY} from '@ng-web-apis/common';\nimport {typedFromEvent} from '@taiga-ui/cdk';\nimport {BehaviorSubject, combineLatest, EMPTY, interval, merge, Observable} from 'rxjs';\nimport {mapTo, switchMap} from 'rxjs/operators';\n\n@Directive({\n selector: 'tui-carousel',\n})\nexport class TuiCarouselDirective extends Observable<unknown> {\n private readonly duration$ = new BehaviorSubject(0);\n\n private readonly running$ = merge(\n typedFromEvent(this.elementRef.nativeElement, 'mouseenter').pipe(mapTo(false)),\n typedFromEvent(this.elementRef.nativeElement, 'touchstart').pipe(mapTo(false)),\n typedFromEvent(this.elementRef.nativeElement, 'touchend').pipe(mapTo(true)),\n typedFromEvent(this.elementRef.nativeElement, 'mouseleave').pipe(mapTo(true)),\n this.visible$,\n );\n\n private readonly output$ = combineLatest([this.duration$, this.running$]).pipe(\n switchMap(([duration, running]) =>\n duration && running ? interval(duration) : EMPTY,\n ),\n );\n\n @Input()\n set duration(duration: number) {\n this.duration$.next(duration);\n }\n\n constructor(\n @Inject(ElementRef) private readonly elementRef: ElementRef<HTMLElement>,\n @Inject(PAGE_VISIBILITY) private readonly visible$: Observable<boolean>,\n ) {\n super(subscriber => this.output$.subscribe(subscriber));\n }\n}\n","import {Directive, Inject} from '@angular/core';\nimport {Observable} from 'rxjs';\n\nimport {TuiCarouselDirective} from './carousel.directive';\n\n@Directive({\n selector: '[tuiCarouselAutoscroll]',\n outputs: ['tuiCarouselAutoscroll'],\n})\nexport class TuiCarouselAutoscrollDirective {\n constructor(\n @Inject(TuiCarouselDirective) readonly tuiCarouselAutoscroll: Observable<unknown>,\n ) {}\n}\n","import {Directive} from '@angular/core';\nimport {ButtonOptions, TUI_BUTTON_OPTIONS, TuiAppearance} from '@taiga-ui/core';\n\n// TODO: remove in ivy compilation\nexport const CAROUSEL_BUTTON_OPTIONS: ButtonOptions = {\n appearance: TuiAppearance.Secondary,\n shape: 'rounded',\n size: 'm',\n};\n\n@Directive({\n selector: '[tuiCarouselButtons]',\n providers: [\n {\n provide: TUI_BUTTON_OPTIONS,\n useValue: CAROUSEL_BUTTON_OPTIONS,\n },\n ],\n})\nexport class TuiCarouselButtonsDirective {}\n","import {Directive, ElementRef, Inject, Output} from '@angular/core';\nimport {typedFromEvent} from '@taiga-ui/cdk';\nimport {filter, map, tap, throttleTime} from 'rxjs/operators';\n\n@Directive({\n selector: '[tuiCarouselScroll]',\n})\nexport class TuiCarouselScrollDirective {\n @Output()\n readonly tuiCarouselScroll = typedFromEvent(\n this.elementRef.nativeElement,\n 'wheel',\n ).pipe(\n filter(({deltaX}) => Math.abs(deltaX) > 20),\n throttleTime(500),\n map(({deltaX}) => Math.sign(deltaX)),\n // So we always have space to scroll and overflow-behavior saves us from back nav\n tap(() => (this.elementRef.nativeElement.scrollLeft = 10)),\n );\n\n constructor(\n @Inject(ElementRef) private readonly elementRef: ElementRef<HTMLElement>,\n ) {}\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {IntersectionObserverModule} from '@ng-web-apis/intersection-observer';\nimport {\n TuiItemDirective,\n TuiItemModule,\n TuiPanModule,\n TuiSwipeModule,\n} from '@taiga-ui/cdk';\n\nimport {TuiCarouselComponent} from './carousel.component';\nimport {TuiCarouselDirective} from './carousel.directive';\nimport {TuiCarouselAutoscrollDirective} from './carousel-autoscroll.directive';\nimport {TuiCarouselButtonsDirective} from './carousel-buttons.directive';\nimport {TuiCarouselScrollDirective} from './carousel-scroll.directive';\n\n@NgModule({\n imports: [\n CommonModule,\n IntersectionObserverModule,\n TuiPanModule,\n TuiSwipeModule,\n TuiItemModule,\n ],\n declarations: [\n TuiCarouselComponent,\n TuiCarouselDirective,\n TuiCarouselButtonsDirective,\n TuiCarouselAutoscrollDirective,\n TuiCarouselScrollDirective,\n ],\n exports: [\n TuiCarouselComponent,\n TuiCarouselDirective,\n TuiCarouselButtonsDirective,\n TuiItemDirective,\n ],\n})\nexport class TuiCarouselModule {}\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-carousel.js","sources":["ng://@taiga-ui/kit/components/carousel/carousel.component.ts","ng://@taiga-ui/kit/components/carousel/carousel.directive.ts","ng://@taiga-ui/kit/components/carousel/carousel-autoscroll.directive.ts","ng://@taiga-ui/kit/components/carousel/carousel-buttons.directive.ts","ng://@taiga-ui/kit/components/carousel/carousel-scroll.directive.ts","ng://@taiga-ui/kit/components/carousel/carousel.module.ts","ng://@taiga-ui/kit/components/carousel/taiga-ui-kit-components-carousel.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n ElementRef,\n EventEmitter,\n HostBinding,\n HostListener,\n Inject,\n Input,\n Output,\n QueryList,\n TemplateRef,\n} from '@angular/core';\nimport {INTERSECTION_ROOT} from '@ng-web-apis/intersection-observer';\nimport {\n clamp,\n EMPTY_QUERY,\n TUI_IS_MOBILE,\n tuiDefaultProp,\n TuiItemDirective,\n tuiPure,\n TuiSwipeDirection,\n} from '@taiga-ui/cdk';\n\n// @dynamic\n@Component({\n selector: 'tui-carousel',\n templateUrl: 'carousel.template.html',\n styleUrls: ['carousel.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: INTERSECTION_ROOT,\n useExisting: ElementRef,\n },\n ],\n})\nexport class TuiCarouselComponent {\n private translate = 0;\n\n @Input()\n @HostBinding('class._draggable')\n @tuiDefaultProp()\n draggable = false;\n\n @Input()\n @tuiDefaultProp()\n itemsCount = 1;\n\n @Input()\n @tuiDefaultProp()\n index = 0;\n\n @Output()\n readonly indexChange = new EventEmitter<number>();\n\n @ContentChildren(TuiItemDirective, {read: TemplateRef})\n readonly items: QueryList<TemplateRef<any>> = EMPTY_QUERY;\n\n @HostBinding('class._transitioned')\n transitioned = true;\n\n constructor(\n @Inject(ChangeDetectorRef) private readonly changeDetectorRef: ChangeDetectorRef,\n @Inject(ElementRef) private readonly elementRef: ElementRef<HTMLElement>,\n @Inject(TUI_IS_MOBILE) private readonly isMobile: boolean,\n ) {}\n\n get transform(): string {\n const x = this.transitioned ? this.computedTranslate : this.translate;\n\n return `translateX(${100 * x}%)`;\n }\n\n @HostListener('touchstart', ['false'])\n @HostListener('touchend', ['true'])\n @HostListener('mousedown', ['false'])\n @HostListener('document:mouseup.silent', ['true'])\n onTransitioned(transitioned: boolean) {\n this.transitioned = transitioned;\n\n if (!transitioned) {\n this.translate = this.computedTranslate;\n }\n }\n\n @tuiPure\n getStyle(itemsCount: number): Partial<CSSStyleDeclaration> {\n const percent = `${100 / itemsCount}%`;\n\n return {\n flexBasis: percent,\n minWidth: percent,\n maxWidth: percent,\n };\n }\n\n next() {\n this.updateIndex(this.index + 1);\n }\n\n prev() {\n this.updateIndex(this.index - 1);\n }\n\n isDisabled(index: number): boolean {\n return index < this.index || index > this.index + this.itemsCount;\n }\n\n onIntersection({intersectionRatio}: IntersectionObserverEntry, index: number) {\n if (intersectionRatio && intersectionRatio !== 1 && !this.transitioned) {\n this.updateIndex(index - Math.floor(this.itemsCount / 2));\n }\n }\n\n onScroll(delta: number) {\n if (!this.isMobile) {\n this.updateIndex(this.index + delta);\n }\n }\n\n onPan(x: number) {\n if (!this.computedDraggable) {\n return;\n }\n\n const {clientWidth} = this.elementRef.nativeElement;\n const min = 1 - this.items.length / this.itemsCount;\n\n this.translate = clamp(x / clientWidth + this.translate, min, 0);\n }\n\n onSwipe(direction: TuiSwipeDirection) {\n if (Math.round(this.translate) !== -this.index || !this.computedDraggable) {\n return;\n } else if (direction === 'left') {\n this.next();\n } else if (direction === 'right') {\n this.prev();\n }\n }\n\n onAutoscroll() {\n this.updateIndex(this.index === this.items.length - 1 ? 0 : this.index + 1);\n }\n\n private get computedTranslate(): number {\n return -this.index / this.itemsCount;\n }\n\n private get computedDraggable(): boolean {\n return this.isMobile || this.draggable;\n }\n\n private updateIndex(index: number) {\n this.index = clamp(index, 0, this.items.length - 1);\n this.indexChange.emit(this.index);\n this.changeDetectorRef.markForCheck();\n }\n}\n","import {Directive, ElementRef, Inject, Input} from '@angular/core';\nimport {PAGE_VISIBILITY} from '@ng-web-apis/common';\nimport {typedFromEvent} from '@taiga-ui/cdk';\nimport {BehaviorSubject, combineLatest, EMPTY, interval, merge, Observable} from 'rxjs';\nimport {mapTo, switchMap} from 'rxjs/operators';\n\n@Directive({\n selector: 'tui-carousel',\n})\nexport class TuiCarouselDirective extends Observable<unknown> {\n private readonly duration$ = new BehaviorSubject(0);\n\n private readonly running$ = merge(\n typedFromEvent(this.elementRef.nativeElement, 'mouseenter').pipe(mapTo(false)),\n typedFromEvent(this.elementRef.nativeElement, 'touchstart').pipe(mapTo(false)),\n typedFromEvent(this.elementRef.nativeElement, 'touchend').pipe(mapTo(true)),\n typedFromEvent(this.elementRef.nativeElement, 'mouseleave').pipe(mapTo(true)),\n this.visible$,\n );\n\n private readonly output$ = combineLatest([this.duration$, this.running$]).pipe(\n switchMap(([duration, running]) =>\n duration && running ? interval(duration) : EMPTY,\n ),\n );\n\n @Input()\n set duration(duration: number) {\n this.duration$.next(duration);\n }\n\n constructor(\n @Inject(ElementRef) private readonly elementRef: ElementRef<HTMLElement>,\n @Inject(PAGE_VISIBILITY) private readonly visible$: Observable<boolean>,\n ) {\n super(subscriber => this.output$.subscribe(subscriber));\n }\n}\n","import {Directive, Inject} from '@angular/core';\nimport {Observable} from 'rxjs';\n\nimport {TuiCarouselDirective} from './carousel.directive';\n\n@Directive({\n selector: '[tuiCarouselAutoscroll]',\n outputs: ['tuiCarouselAutoscroll'],\n})\nexport class TuiCarouselAutoscrollDirective {\n constructor(\n @Inject(TuiCarouselDirective) readonly tuiCarouselAutoscroll: Observable<unknown>,\n ) {}\n}\n","import {Directive} from '@angular/core';\nimport {ButtonOptions, TUI_BUTTON_OPTIONS, TuiAppearance} from '@taiga-ui/core';\n\n// TODO: remove in ivy compilation\nexport const CAROUSEL_BUTTON_OPTIONS: ButtonOptions = {\n appearance: TuiAppearance.Secondary,\n shape: 'rounded',\n size: 'm',\n};\n\n@Directive({\n selector: '[tuiCarouselButtons]',\n providers: [\n {\n provide: TUI_BUTTON_OPTIONS,\n useValue: CAROUSEL_BUTTON_OPTIONS,\n },\n ],\n})\nexport class TuiCarouselButtonsDirective {}\n","import {Directive, ElementRef, Inject, Output} from '@angular/core';\nimport {typedFromEvent} from '@taiga-ui/cdk';\nimport {filter, map, tap, throttleTime} from 'rxjs/operators';\n\n@Directive({\n selector: '[tuiCarouselScroll]',\n})\nexport class TuiCarouselScrollDirective {\n @Output()\n readonly tuiCarouselScroll = typedFromEvent(\n this.elementRef.nativeElement,\n 'wheel',\n ).pipe(\n filter(({deltaX}) => Math.abs(deltaX) > 20),\n throttleTime(500),\n map(({deltaX}) => Math.sign(deltaX)),\n tap(() => {\n // So we always have space to scroll and overflow-behavior saves us from back nav\n this.elementRef.nativeElement.scrollLeft = 10;\n }),\n );\n\n constructor(\n @Inject(ElementRef) private readonly elementRef: ElementRef<HTMLElement>,\n ) {}\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {IntersectionObserverModule} from '@ng-web-apis/intersection-observer';\nimport {\n TuiItemDirective,\n TuiItemModule,\n TuiPanModule,\n TuiSwipeModule,\n} from '@taiga-ui/cdk';\n\nimport {TuiCarouselComponent} from './carousel.component';\nimport {TuiCarouselDirective} from './carousel.directive';\nimport {TuiCarouselAutoscrollDirective} from './carousel-autoscroll.directive';\nimport {TuiCarouselButtonsDirective} from './carousel-buttons.directive';\nimport {TuiCarouselScrollDirective} from './carousel-scroll.directive';\n\n@NgModule({\n imports: [\n CommonModule,\n IntersectionObserverModule,\n TuiPanModule,\n TuiSwipeModule,\n TuiItemModule,\n ],\n declarations: [\n TuiCarouselComponent,\n TuiCarouselDirective,\n TuiCarouselButtonsDirective,\n TuiCarouselAutoscrollDirective,\n TuiCarouselScrollDirective,\n ],\n exports: [\n TuiCarouselComponent,\n TuiCarouselDirective,\n TuiCarouselButtonsDirective,\n TuiItemDirective,\n ],\n})\nexport class TuiCarouselModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -21,7 +21,7 @@ let TuiCheckboxComponent = TuiCheckboxComponent_1 = class TuiCheckboxComponent e
21
21
  return isNativeFocused(this.nativeFocusableElement);
22
22
  }
23
23
  get computedFocusable() {
24
- return !this.computedDisabled && !this.readOnly && this.focusable;
24
+ return this.interactive && this.focusable;
25
25
  }
26
26
  onChecked(checked) {
27
27
  this.updateValue(checked);
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-kit-components-checkbox.js","sources":["ng://@taiga-ui/kit/components/checkbox/checkbox.component.ts","ng://@taiga-ui/kit/components/checkbox/checkbox.module.ts","ng://@taiga-ui/kit/components/checkbox/taiga-ui-kit-components-checkbox.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n forwardRef,\n HostBinding,\n Inject,\n Input,\n Optional,\n Self,\n ViewChild,\n} from '@angular/core';\nimport {NgControl} from '@angular/forms';\nimport {\n AbstractTuiNullableControl,\n isNativeFocused,\n TUI_FOCUSABLE_ITEM_ACCESSOR,\n tuiDefaultProp,\n TuiFocusableElementAccessor,\n} from '@taiga-ui/cdk';\nimport {CheckboxOptions, TUI_CHECKBOX_OPTIONS, TuiSizeL} from '@taiga-ui/core';\n\n@Component({\n selector: 'tui-checkbox',\n templateUrl: './checkbox.template.html',\n styleUrls: ['./checkbox.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: TUI_FOCUSABLE_ITEM_ACCESSOR,\n useExisting: forwardRef(() => TuiCheckboxComponent),\n },\n ],\n})\nexport class TuiCheckboxComponent\n extends AbstractTuiNullableControl<boolean>\n implements TuiFocusableElementAccessor\n{\n @ViewChild('focusableElement')\n private readonly focusableElement?: ElementRef<HTMLInputElement>;\n\n @Input()\n @HostBinding('attr.data-tui-host-size')\n @tuiDefaultProp()\n size: TuiSizeL = this.options.size;\n\n constructor(\n @Optional()\n @Self()\n @Inject(NgControl)\n control: NgControl | null,\n @Inject(TUI_CHECKBOX_OPTIONS)\n private readonly options: CheckboxOptions,\n @Inject(ChangeDetectorRef) changeDetectorRef: ChangeDetectorRef,\n ) {\n super(control, changeDetectorRef);\n }\n\n get nativeFocusableElement(): HTMLInputElement | null {\n return !this.focusableElement || this.computedDisabled\n ? null\n : this.focusableElement.nativeElement;\n }\n\n get focused(): boolean {\n return isNativeFocused(this.nativeFocusableElement);\n }\n\n get computedFocusable(): boolean {\n return !this.computedDisabled && !this.readOnly && this.focusable;\n }\n\n onChecked(checked: boolean) {\n this.updateValue(checked);\n }\n\n onFocused(focused: boolean) {\n this.updateFocused(focused);\n }\n\n onHovered(hovered: boolean) {\n this.updateHovered(hovered);\n }\n\n onPressed(pressed: boolean) {\n this.updatePressed(pressed);\n }\n\n onFocusVisible(focusVisible: boolean) {\n this.updateFocusVisible(focusVisible);\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {\n TuiCheckedModule,\n TuiFocusableModule,\n TuiFocusedModule,\n TuiFocusVisibleModule,\n TuiHoveredModule,\n TuiPressedModule,\n} from '@taiga-ui/cdk';\nimport {TuiPrimitiveCheckboxModule} from '@taiga-ui/core';\n\nimport {TuiCheckboxComponent} from './checkbox.component';\n\n@NgModule({\n imports: [\n CommonModule,\n TuiCheckedModule,\n TuiFocusableModule,\n TuiFocusedModule,\n TuiHoveredModule,\n TuiPressedModule,\n TuiFocusVisibleModule,\n TuiPrimitiveCheckboxModule,\n ],\n declarations: [TuiCheckboxComponent],\n exports: [TuiCheckboxComponent],\n})\nexport class TuiCheckboxModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;IAmCa,oBAAoB,4BAAjC,MAAa,oBACT,SAAQ,0BAAmC;IAW3C,YAII,OAAyB,EAER,OAAwB,EACd,iBAAoC;QAE/D,KAAK,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAC;QAHjB,YAAO,GAAP,OAAO,CAAiB;QAR7C,SAAI,GAAa,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;KAYlC;IAED,IAAI,sBAAsB;QACtB,OAAO,CAAC,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,gBAAgB;cAChD,IAAI;cACJ,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC;KAC7C;IAED,IAAI,OAAO;QACP,OAAO,eAAe,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;KACvD;IAED,IAAI,iBAAiB;QACjB,OAAO,CAAC,IAAI,CAAC,gBAAgB,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,SAAS,CAAC;KACrE;IAED,SAAS,CAAC,OAAgB;QACtB,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;KAC7B;IAED,SAAS,CAAC,OAAgB;QACtB,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;KAC/B;IAED,SAAS,CAAC,OAAgB;QACtB,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;KAC/B;IAED,SAAS,CAAC,OAAgB;QACtB,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;KAC/B;IAED,cAAc,CAAC,YAAqB;QAChC,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC;KACzC;EACJ;;YAzCgB,SAAS,uBAHjB,QAAQ,YACR,IAAI,YACJ,MAAM,SAAC,SAAS;4CAEhB,MAAM,SAAC,oBAAoB;YAEkB,iBAAiB,uBAA9D,MAAM,SAAC,iBAAiB;;AAd7B;IADC,SAAS,CAAC,kBAAkB,CAAC;8DACmC;AAKjE;IAHC,KAAK,EAAE;IACP,WAAW,CAAC,yBAAyB,CAAC;IACtC,cAAc,EAAE;kDACkB;AAV1B,oBAAoB;IAZhC,SAAS,CAAC;QACP,QAAQ,EAAE,cAAc;QACxB,2vBAAuC;QAEvC,eAAe,EAAE,uBAAuB,CAAC,MAAM;QAC/C,SAAS,EAAE;YACP;gBACI,OAAO,EAAE,2BAA2B;gBACpC,WAAW,EAAE,UAAU,CAAC,MAAM,sBAAoB,CAAC;aACtD;SACJ;;KACJ,CAAC;IAcO,WAAA,QAAQ,EAAE,CAAA;IACV,WAAA,IAAI,EAAE,CAAA;IACN,WAAA,MAAM,CAAC,SAAS,CAAC,CAAA;IAEjB,WAAA,MAAM,CAAC,oBAAoB,CAAC,CAAA;IAE5B,WAAA,MAAM,CAAC,iBAAiB,CAAC,CAAA;GAnBrB,oBAAoB,CAyDhC;;IChEY,iBAAiB,GAA9B,MAAa,iBAAiB;EAAG;AAApB,iBAAiB;IAd7B,QAAQ,CAAC;QACN,OAAO,EAAE;YACL,YAAY;YACZ,gBAAgB;YAChB,kBAAkB;YAClB,gBAAgB;YAChB,gBAAgB;YAChB,gBAAgB;YAChB,qBAAqB;YACrB,0BAA0B;SAC7B;QACD,YAAY,EAAE,CAAC,oBAAoB,CAAC;QACpC,OAAO,EAAE,CAAC,oBAAoB,CAAC;KAClC,CAAC;GACW,iBAAiB,CAAG;;AC5BjC;;;;;;"}
1
+ {"version":3,"file":"taiga-ui-kit-components-checkbox.js","sources":["ng://@taiga-ui/kit/components/checkbox/checkbox.component.ts","ng://@taiga-ui/kit/components/checkbox/checkbox.module.ts","ng://@taiga-ui/kit/components/checkbox/taiga-ui-kit-components-checkbox.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n forwardRef,\n HostBinding,\n Inject,\n Input,\n Optional,\n Self,\n ViewChild,\n} from '@angular/core';\nimport {NgControl} from '@angular/forms';\nimport {\n AbstractTuiNullableControl,\n isNativeFocused,\n TUI_FOCUSABLE_ITEM_ACCESSOR,\n tuiDefaultProp,\n TuiFocusableElementAccessor,\n} from '@taiga-ui/cdk';\nimport {CheckboxOptions, TUI_CHECKBOX_OPTIONS, TuiSizeL} from '@taiga-ui/core';\n\n@Component({\n selector: 'tui-checkbox',\n templateUrl: './checkbox.template.html',\n styleUrls: ['./checkbox.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: TUI_FOCUSABLE_ITEM_ACCESSOR,\n useExisting: forwardRef(() => TuiCheckboxComponent),\n },\n ],\n})\nexport class TuiCheckboxComponent\n extends AbstractTuiNullableControl<boolean>\n implements TuiFocusableElementAccessor\n{\n @ViewChild('focusableElement')\n private readonly focusableElement?: ElementRef<HTMLInputElement>;\n\n @Input()\n @HostBinding('attr.data-tui-host-size')\n @tuiDefaultProp()\n size: TuiSizeL = this.options.size;\n\n constructor(\n @Optional()\n @Self()\n @Inject(NgControl)\n control: NgControl | null,\n @Inject(TUI_CHECKBOX_OPTIONS)\n private readonly options: CheckboxOptions,\n @Inject(ChangeDetectorRef) changeDetectorRef: ChangeDetectorRef,\n ) {\n super(control, changeDetectorRef);\n }\n\n get nativeFocusableElement(): HTMLInputElement | null {\n return !this.focusableElement || this.computedDisabled\n ? null\n : this.focusableElement.nativeElement;\n }\n\n get focused(): boolean {\n return isNativeFocused(this.nativeFocusableElement);\n }\n\n get computedFocusable(): boolean {\n return this.interactive && this.focusable;\n }\n\n onChecked(checked: boolean) {\n this.updateValue(checked);\n }\n\n onFocused(focused: boolean) {\n this.updateFocused(focused);\n }\n\n onHovered(hovered: boolean) {\n this.updateHovered(hovered);\n }\n\n onPressed(pressed: boolean) {\n this.updatePressed(pressed);\n }\n\n onFocusVisible(focusVisible: boolean) {\n this.updateFocusVisible(focusVisible);\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {\n TuiCheckedModule,\n TuiFocusableModule,\n TuiFocusedModule,\n TuiFocusVisibleModule,\n TuiHoveredModule,\n TuiPressedModule,\n} from '@taiga-ui/cdk';\nimport {TuiPrimitiveCheckboxModule} from '@taiga-ui/core';\n\nimport {TuiCheckboxComponent} from './checkbox.component';\n\n@NgModule({\n imports: [\n CommonModule,\n TuiCheckedModule,\n TuiFocusableModule,\n TuiFocusedModule,\n TuiHoveredModule,\n TuiPressedModule,\n TuiFocusVisibleModule,\n TuiPrimitiveCheckboxModule,\n ],\n declarations: [TuiCheckboxComponent],\n exports: [TuiCheckboxComponent],\n})\nexport class TuiCheckboxModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;IAmCa,oBAAoB,4BAAjC,MAAa,oBACT,SAAQ,0BAAmC;IAW3C,YAII,OAAyB,EAER,OAAwB,EACd,iBAAoC;QAE/D,KAAK,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAC;QAHjB,YAAO,GAAP,OAAO,CAAiB;QAR7C,SAAI,GAAa,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;KAYlC;IAED,IAAI,sBAAsB;QACtB,OAAO,CAAC,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,gBAAgB;cAChD,IAAI;cACJ,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC;KAC7C;IAED,IAAI,OAAO;QACP,OAAO,eAAe,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;KACvD;IAED,IAAI,iBAAiB;QACjB,OAAO,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,SAAS,CAAC;KAC7C;IAED,SAAS,CAAC,OAAgB;QACtB,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;KAC7B;IAED,SAAS,CAAC,OAAgB;QACtB,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;KAC/B;IAED,SAAS,CAAC,OAAgB;QACtB,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;KAC/B;IAED,SAAS,CAAC,OAAgB;QACtB,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;KAC/B;IAED,cAAc,CAAC,YAAqB;QAChC,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC;KACzC;EACJ;;YAzCgB,SAAS,uBAHjB,QAAQ,YACR,IAAI,YACJ,MAAM,SAAC,SAAS;4CAEhB,MAAM,SAAC,oBAAoB;YAEkB,iBAAiB,uBAA9D,MAAM,SAAC,iBAAiB;;AAd7B;IADC,SAAS,CAAC,kBAAkB,CAAC;8DACmC;AAKjE;IAHC,KAAK,EAAE;IACP,WAAW,CAAC,yBAAyB,CAAC;IACtC,cAAc,EAAE;kDACkB;AAV1B,oBAAoB;IAZhC,SAAS,CAAC;QACP,QAAQ,EAAE,cAAc;QACxB,2vBAAuC;QAEvC,eAAe,EAAE,uBAAuB,CAAC,MAAM;QAC/C,SAAS,EAAE;YACP;gBACI,OAAO,EAAE,2BAA2B;gBACpC,WAAW,EAAE,UAAU,CAAC,MAAM,sBAAoB,CAAC;aACtD;SACJ;;KACJ,CAAC;IAcO,WAAA,QAAQ,EAAE,CAAA;IACV,WAAA,IAAI,EAAE,CAAA;IACN,WAAA,MAAM,CAAC,SAAS,CAAC,CAAA;IAEjB,WAAA,MAAM,CAAC,oBAAoB,CAAC,CAAA;IAE5B,WAAA,MAAM,CAAC,iBAAiB,CAAC,CAAA;GAnBrB,oBAAoB,CAyDhC;;IChEY,iBAAiB,GAA9B,MAAa,iBAAiB;EAAG;AAApB,iBAAiB;IAd7B,QAAQ,CAAC;QACN,OAAO,EAAE;YACL,YAAY;YACZ,gBAAgB;YAChB,kBAAkB;YAClB,gBAAgB;YAChB,gBAAgB;YAChB,gBAAgB;YAChB,qBAAqB;YACrB,0BAA0B;SAC7B;QACD,YAAY,EAAE,CAAC,oBAAoB,CAAC;QACpC,OAAO,EAAE,CAAC,oBAAoB,CAAC;KAClC,CAAC;GACW,iBAAiB,CAAG;;AC5BjC;;;;;;"}
@@ -1,20 +1,40 @@
1
1
  import { __decorate, __param } from 'tslib';
2
- import { EventEmitter, Optional, Self, Inject, ChangeDetectorRef, ContentChild, ViewChild, Input, Output, TemplateRef, Component, ChangeDetectionStrategy, forwardRef, NgModule } from '@angular/core';
2
+ import { forwardRef, EventEmitter, Optional, Self, Inject, ChangeDetectorRef, ContentChild, ViewChild, Input, Output, TemplateRef, Component, ChangeDetectionStrategy, Directive, NgModule } from '@angular/core';
3
3
  import { NgControl } from '@angular/forms';
4
- import { AbstractTuiNullableControl, TUI_DEFAULT_STRINGIFY, TUI_STRICT_MATCHER, TUI_DEFAULT_IDENTITY_MATCHER, isNativeFocused, isPresent, setNativeFocused, tuiDefaultProp, tuiPure, TUI_FOCUSABLE_ITEM_ACCESSOR, TuiActiveZoneModule } from '@taiga-ui/cdk';
5
- import { TUI_DATA_LIST_ACCESSOR, TuiHostedDropdownComponent, TuiPrimitiveTextfieldComponent, TuiDataListDirective, TUI_DATA_LIST_HOST, TUI_OPTION_CONTENT, TuiPrimitiveTextfieldModule, TuiHostedDropdownModule } from '@taiga-ui/core';
6
- import { TUI_ARROW, TuiArrowModule } from '@taiga-ui/kit/components/arrow';
4
+ import { TUI_FOCUSABLE_ITEM_ACCESSOR, AbstractTuiControl, AbstractTuiNullableControl, TUI_DEFAULT_STRINGIFY, TUI_STRICT_MATCHER, TUI_DEFAULT_IDENTITY_MATCHER, isNativeFocused, isPresent, setNativeFocused, tuiDefaultProp, tuiPure, TuiActiveZoneModule } from '@taiga-ui/cdk';
5
+ import { TUI_DATA_LIST_HOST, TUI_OPTION_CONTENT, TUI_DATA_LIST_ACCESSOR, TuiHostedDropdownComponent, TuiPrimitiveTextfieldComponent, TuiDataListDirective, TuiAbstractTextfieldHost, TUI_TEXTFIELD_HOST, TuiPrimitiveTextfieldModule, TuiHostedDropdownModule, TuiTextfieldComponent } from '@taiga-ui/core';
6
+ import { TUI_ARROW_MODE, TuiArrowModule } from '@taiga-ui/kit/components/arrow';
7
7
  import { TUI_SELECT_OPTION, TuiSelectOptionModule } from '@taiga-ui/kit/components/select-option';
8
8
  import { FIXED_DROPDOWN_CONTROLLER_PROVIDER } from '@taiga-ui/kit/providers';
9
9
  import { CommonModule } from '@angular/common';
10
10
  import { PolymorpheusModule } from '@tinkoff/ng-polymorpheus';
11
11
 
12
- var TuiComboBoxComponent_1;
13
12
  // TODO: remove in ivy compilation
14
13
  const COMBOBOX_OPTION = TUI_SELECT_OPTION;
15
- let TuiComboBoxComponent = TuiComboBoxComponent_1 = class TuiComboBoxComponent extends AbstractTuiNullableControl {
16
- constructor(control, changeDetectorRef) {
14
+ const TUI_COMBO_BOX_PROVIDERS = [
15
+ {
16
+ provide: TUI_FOCUSABLE_ITEM_ACCESSOR,
17
+ useExisting: forwardRef(() => TuiComboBoxComponent),
18
+ },
19
+ {
20
+ provide: TUI_DATA_LIST_HOST,
21
+ useExisting: forwardRef(() => TuiComboBoxComponent),
22
+ },
23
+ {
24
+ provide: AbstractTuiControl,
25
+ useExisting: forwardRef(() => TuiComboBoxComponent),
26
+ },
27
+ {
28
+ provide: TUI_OPTION_CONTENT,
29
+ useValue: COMBOBOX_OPTION,
30
+ },
31
+ FIXED_DROPDOWN_CONTROLLER_PROVIDER,
32
+ ];
33
+
34
+ let TuiComboBoxComponent = class TuiComboBoxComponent extends AbstractTuiNullableControl {
35
+ constructor(control, changeDetectorRef, arrowMode) {
17
36
  super(control, changeDetectorRef);
37
+ this.arrowMode = arrowMode;
18
38
  this.stringify = TUI_DEFAULT_STRINGIFY;
19
39
  this.strictMatcher = TUI_STRICT_MATCHER;
20
40
  this.identityMatcher = TUI_DEFAULT_IDENTITY_MATCHER;
@@ -26,7 +46,7 @@ let TuiComboBoxComponent = TuiComboBoxComponent_1 = class TuiComboBoxComponent e
26
46
  this.open = false;
27
47
  }
28
48
  get arrow() {
29
- return this.disabled || this.readOnly ? '' : TUI_ARROW;
49
+ return !this.interactive ? this.arrowMode.disabled : this.arrowMode.interactive;
30
50
  }
31
51
  get nativeFocusableElement() {
32
52
  return this.textfield ? this.textfield.nativeFocusableElement : null;
@@ -44,9 +64,6 @@ let TuiComboBoxComponent = TuiComboBoxComponent_1 = class TuiComboBoxComponent e
44
64
  get showValueTemplate() {
45
65
  return isPresent(this.value) && !this.focused;
46
66
  }
47
- get canOpen() {
48
- return !this.computedDisabled && !this.readOnly;
49
- }
50
67
  get computedContent() {
51
68
  return this.valueContent || this.nativeValue;
52
69
  }
@@ -85,7 +102,7 @@ let TuiComboBoxComponent = TuiComboBoxComponent_1 = class TuiComboBoxComponent e
85
102
  this.updateSearch(null);
86
103
  this.close();
87
104
  }
88
- onInput(value) {
105
+ onValueChange(value) {
89
106
  var _a;
90
107
  this.updateSearch(value);
91
108
  const match = this.accessor &&
@@ -102,17 +119,15 @@ let TuiComboBoxComponent = TuiComboBoxComponent_1 = class TuiComboBoxComponent e
102
119
  this.updateHovered(hovered);
103
120
  }
104
121
  toggle() {
105
- if (this.hostedDropdown) {
106
- this.hostedDropdown.updateOpen(!this.open);
107
- }
122
+ var _a;
123
+ (_a = this.hostedDropdown) === null || _a === void 0 ? void 0 : _a.updateOpen(!this.open);
108
124
  }
109
125
  isStrictMatch(item) {
110
126
  return this.strictMatcher(item, this.search || '', this.stringify);
111
127
  }
112
128
  close() {
113
- if (this.hostedDropdown) {
114
- this.hostedDropdown.updateOpen(false);
115
- }
129
+ var _a;
130
+ (_a = this.hostedDropdown) === null || _a === void 0 ? void 0 : _a.updateOpen(false);
116
131
  }
117
132
  updateSearch(search) {
118
133
  if (this.search === search) {
@@ -134,7 +149,8 @@ let TuiComboBoxComponent = TuiComboBoxComponent_1 = class TuiComboBoxComponent e
134
149
  };
135
150
  TuiComboBoxComponent.ctorParameters = () => [
136
151
  { type: NgControl, decorators: [{ type: Optional }, { type: Self }, { type: Inject, args: [NgControl,] }] },
137
- { type: ChangeDetectorRef, decorators: [{ type: Inject, args: [ChangeDetectorRef,] }] }
152
+ { type: ChangeDetectorRef, decorators: [{ type: Inject, args: [ChangeDetectorRef,] }] },
153
+ { type: undefined, decorators: [{ type: Inject, args: [TUI_ARROW_MODE,] }] }
138
154
  ];
139
155
  __decorate([
140
156
  ContentChild(TUI_DATA_LIST_ACCESSOR)
@@ -178,34 +194,42 @@ __decorate([
178
194
  __decorate([
179
195
  tuiPure
180
196
  ], TuiComboBoxComponent.prototype, "computeContext", null);
181
- TuiComboBoxComponent = TuiComboBoxComponent_1 = __decorate([
197
+ TuiComboBoxComponent = __decorate([
182
198
  Component({
183
199
  selector: 'tui-combo-box',
184
- template: "<tui-hosted-dropdown\n class=\"hosted\"\n [canOpen]=\"canOpen\"\n [content]=\"datalist || ''\"\n [(open)]=\"open\"\n (tuiActiveZoneChange)=\"onActiveZone($event)\"\n>\n <tui-primitive-textfield\n automation-id=\"tui-combo-box__textfield\"\n class=\"textfield\"\n [pseudoFocused]=\"computedFocused\"\n [pseudoHovered]=\"computedHovered\"\n [invalid]=\"computedInvalid\"\n [nativeId]=\"nativeId\"\n [readOnly]=\"readOnly\"\n [iconContent]=\"arrow\"\n [disabled]=\"computedDisabled\"\n [focusable]=\"computedFocusable\"\n [value]=\"nativeValue\"\n (valueChange)=\"onInput($event)\"\n (hoveredChange)=\"onHovered($event)\"\n (click)=\"toggle()\"\n (keydown.enter)=\"onFieldKeyDownEnter($event)\"\n >\n <ng-content></ng-content>\n <div\n *ngIf=\"showValueTemplate\"\n polymorpheus-outlet\n automation-id=\"tui-combo-box__template\"\n class=\"value\"\n [content]=\"computedContent\"\n [context]=\"computeContext(value, computedFocused)\"\n ></div>\n </tui-primitive-textfield>\n</tui-hosted-dropdown>\n",
200
+ template: "<tui-hosted-dropdown\n class=\"hosted\"\n [canOpen]=\"interactive\"\n [content]=\"datalist || ''\"\n [(open)]=\"open\"\n (tuiActiveZoneChange)=\"onActiveZone($event)\"\n>\n <tui-primitive-textfield\n automation-id=\"tui-combo-box__textfield\"\n class=\"textfield\"\n [pseudoFocused]=\"computedFocused\"\n [pseudoHovered]=\"computedHovered\"\n [invalid]=\"computedInvalid\"\n [nativeId]=\"nativeId\"\n [readOnly]=\"readOnly\"\n [iconContent]=\"icon\"\n [disabled]=\"computedDisabled\"\n [focusable]=\"computedFocusable\"\n [value]=\"nativeValue\"\n (valueChange)=\"onValueChange($event)\"\n (hoveredChange)=\"onHovered($event)\"\n (click)=\"toggle()\"\n (keydown.enter)=\"onFieldKeyDownEnter($event)\"\n >\n <ng-content></ng-content>\n <ng-content select=\"input\" ngProjectAs=\"input\"></ng-content>\n <div\n *ngIf=\"showValueTemplate\"\n polymorpheus-outlet\n automation-id=\"tui-combo-box__template\"\n class=\"value\"\n [content]=\"computedContent\"\n [context]=\"computeContext(value, computedFocused)\"\n ></div>\n </tui-primitive-textfield>\n\n <ng-template #icon>\n <div polymorpheus-outlet class=\"t-icon\" [content]=\"arrow\"></div>\n </ng-template>\n</tui-hosted-dropdown>\n",
185
201
  changeDetection: ChangeDetectionStrategy.OnPush,
186
- providers: [
187
- {
188
- provide: TUI_FOCUSABLE_ITEM_ACCESSOR,
189
- useExisting: forwardRef(() => TuiComboBoxComponent_1),
190
- },
191
- {
192
- provide: TUI_DATA_LIST_HOST,
193
- useExisting: forwardRef(() => TuiComboBoxComponent_1),
194
- },
195
- {
196
- provide: TUI_OPTION_CONTENT,
197
- useValue: COMBOBOX_OPTION,
198
- },
199
- FIXED_DROPDOWN_CONTROLLER_PROVIDER,
200
- ],
201
- styles: [":host{display:block;border-radius:var(--tui-radius-m);text-align:left}.hosted{display:block;border-radius:inherit}.textfield{border-radius:inherit;text-align:inherit}.value{display:flex;width:100%;align-items:center}"]
202
+ providers: TUI_COMBO_BOX_PROVIDERS,
203
+ styles: [":host{display:block;border-radius:var(--tui-radius-m);text-align:left}.hosted{display:block;border-radius:inherit}.textfield{border-radius:inherit;text-align:inherit}.value{display:flex;width:100%;align-items:center}.t-icon{pointer-events:auto}"]
202
204
  }),
203
205
  __param(0, Optional()),
204
206
  __param(0, Self()),
205
207
  __param(0, Inject(NgControl)),
206
- __param(1, Inject(ChangeDetectorRef))
208
+ __param(1, Inject(ChangeDetectorRef)),
209
+ __param(2, Inject(TUI_ARROW_MODE))
207
210
  ], TuiComboBoxComponent);
208
211
 
212
+ var TuiComboBoxDirective_1;
213
+ let TuiComboBoxDirective = TuiComboBoxDirective_1 = class TuiComboBoxDirective extends TuiAbstractTextfieldHost {
214
+ get value() {
215
+ return this.host.nativeValue;
216
+ }
217
+ onValueChange(value) {
218
+ this.host.onValueChange(value);
219
+ }
220
+ };
221
+ TuiComboBoxDirective = TuiComboBoxDirective_1 = __decorate([
222
+ Directive({
223
+ selector: 'tui-combo-box',
224
+ providers: [
225
+ {
226
+ provide: TUI_TEXTFIELD_HOST,
227
+ useExisting: forwardRef(() => TuiComboBoxDirective_1),
228
+ },
229
+ ],
230
+ })
231
+ ], TuiComboBoxDirective);
232
+
209
233
  let TuiComboBoxModule = class TuiComboBoxModule {
210
234
  };
211
235
  TuiComboBoxModule = __decorate([
@@ -219,8 +243,8 @@ TuiComboBoxModule = __decorate([
219
243
  TuiSelectOptionModule,
220
244
  TuiArrowModule,
221
245
  ],
222
- declarations: [TuiComboBoxComponent],
223
- exports: [TuiComboBoxComponent],
246
+ declarations: [TuiComboBoxComponent, TuiComboBoxDirective],
247
+ exports: [TuiComboBoxComponent, TuiComboBoxDirective, TuiTextfieldComponent],
224
248
  })
225
249
  ], TuiComboBoxModule);
226
250
 
@@ -228,5 +252,5 @@ TuiComboBoxModule = __decorate([
228
252
  * Generated bundle index. Do not edit.
229
253
  */
230
254
 
231
- export { COMBOBOX_OPTION, TuiComboBoxComponent, TuiComboBoxModule };
255
+ export { COMBOBOX_OPTION, TUI_COMBO_BOX_PROVIDERS, TuiComboBoxComponent, TuiComboBoxDirective, TuiComboBoxModule };
232
256
  //# sourceMappingURL=taiga-ui-kit-components-combo-box.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-kit-components-combo-box.js","sources":["ng://@taiga-ui/kit/components/combo-box/combo-box.component.ts","ng://@taiga-ui/kit/components/combo-box/combo-box.module.ts","ng://@taiga-ui/kit/components/combo-box/taiga-ui-kit-components-combo-box.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n EventEmitter,\n forwardRef,\n Inject,\n Input,\n Optional,\n Output,\n Self,\n TemplateRef,\n ViewChild,\n} from '@angular/core';\nimport {NgControl} from '@angular/forms';\nimport {\n AbstractTuiNullableControl,\n isNativeFocused,\n isPresent,\n setNativeFocused,\n TUI_DEFAULT_IDENTITY_MATCHER,\n TUI_DEFAULT_STRINGIFY,\n TUI_FOCUSABLE_ITEM_ACCESSOR,\n TUI_STRICT_MATCHER,\n tuiDefaultProp,\n TuiFocusableElementAccessor,\n TuiIdentityMatcher,\n tuiPure,\n TuiStringHandler,\n TuiStringMatcher,\n} from '@taiga-ui/cdk';\nimport {\n TUI_DATA_LIST_ACCESSOR,\n TUI_DATA_LIST_HOST,\n TUI_OPTION_CONTENT,\n TuiDataListAccessor,\n TuiDataListDirective,\n TuiDataListHost,\n TuiHostedDropdownComponent,\n TuiPrimitiveTextfieldComponent,\n TuiValueContentContext,\n} from '@taiga-ui/core';\nimport {TUI_ARROW} from '@taiga-ui/kit/components/arrow';\nimport {TUI_SELECT_OPTION} from '@taiga-ui/kit/components/select-option';\nimport {FIXED_DROPDOWN_CONTROLLER_PROVIDER} from '@taiga-ui/kit/providers';\nimport {PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\n\n// TODO: remove in ivy compilation\nexport const COMBOBOX_OPTION: any = TUI_SELECT_OPTION;\n\n@Component({\n selector: 'tui-combo-box',\n templateUrl: './combo-box.template.html',\n styleUrls: ['./combo-box.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: TUI_FOCUSABLE_ITEM_ACCESSOR,\n useExisting: forwardRef(() => TuiComboBoxComponent),\n },\n {\n provide: TUI_DATA_LIST_HOST,\n useExisting: forwardRef(() => TuiComboBoxComponent),\n },\n {\n provide: TUI_OPTION_CONTENT,\n useValue: COMBOBOX_OPTION,\n },\n FIXED_DROPDOWN_CONTROLLER_PROVIDER,\n ],\n})\nexport class TuiComboBoxComponent<T>\n extends AbstractTuiNullableControl<T | string>\n implements TuiFocusableElementAccessor, TuiDataListHost<T>\n{\n @ContentChild(TUI_DATA_LIST_ACCESSOR as any)\n private readonly accessor?: TuiDataListAccessor<T>;\n\n @ViewChild(TuiHostedDropdownComponent)\n private readonly hostedDropdown?: TuiHostedDropdownComponent;\n\n @ViewChild(TuiPrimitiveTextfieldComponent)\n private readonly textfield?: TuiPrimitiveTextfieldComponent;\n\n @Input()\n @tuiDefaultProp()\n stringify: TuiStringHandler<T> = TUI_DEFAULT_STRINGIFY;\n\n @Input()\n @tuiDefaultProp()\n strictMatcher: TuiStringMatcher<T> = TUI_STRICT_MATCHER;\n\n @Input()\n @tuiDefaultProp()\n identityMatcher: TuiIdentityMatcher<T> = TUI_DEFAULT_IDENTITY_MATCHER;\n\n @Input()\n @tuiDefaultProp()\n valueContent: PolymorpheusContent<TuiValueContentContext<T>> = '';\n\n @Input()\n @tuiDefaultProp()\n strict = true;\n\n @Input()\n @tuiDefaultProp()\n search: string | null = '';\n\n @Output()\n readonly searchChange = new EventEmitter<string | null>();\n\n @ContentChild(TuiDataListDirective, {read: TemplateRef})\n readonly datalist: PolymorpheusContent = '';\n\n open = false;\n\n constructor(\n @Optional()\n @Self()\n @Inject(NgControl)\n control: NgControl | null,\n @Inject(ChangeDetectorRef) changeDetectorRef: ChangeDetectorRef,\n ) {\n super(control, changeDetectorRef);\n }\n\n get arrow(): PolymorpheusContent {\n return this.disabled || this.readOnly ? '' : TUI_ARROW;\n }\n\n get nativeFocusableElement(): HTMLInputElement | null {\n return this.textfield ? this.textfield.nativeFocusableElement : null;\n }\n\n get focused(): boolean {\n return (\n isNativeFocused(this.nativeFocusableElement) ||\n (!!this.hostedDropdown && this.hostedDropdown.focused)\n );\n }\n\n get nativeValue(): string {\n if (this.value === null) {\n return this.search || '';\n }\n\n return typeof this.value === 'string' ? this.value : this.stringify(this.value);\n }\n\n get showValueTemplate(): boolean {\n return isPresent(this.value) && !this.focused;\n }\n\n get canOpen(): boolean {\n return !this.computedDisabled && !this.readOnly;\n }\n\n get computedContent(): PolymorpheusContent<TuiValueContentContext<T>> {\n return this.valueContent || this.nativeValue;\n }\n\n @tuiPure\n computeContext(\n $implicit: T | null,\n active: boolean,\n ): TuiValueContentContext<T | null> {\n return {\n $implicit,\n active,\n };\n }\n\n onActiveZone(active: boolean) {\n this.updateFocused(active);\n }\n\n checkOption(option: T) {\n if (!this.isStrictMatch(option)) {\n return;\n }\n\n this.updateValue(option);\n this.updateSearch(null);\n }\n\n handleOption(item: T) {\n this.setNativeValue(this.stringify(item));\n this.focusInput();\n this.close();\n this.updateSearch(null);\n this.updateValue(item);\n }\n\n onFieldKeyDownEnter(event: KeyboardEvent) {\n if (this.open) {\n event.preventDefault();\n }\n\n const options = this.accessor ? this.accessor.getOptions() : [];\n\n if (options.length !== 1) {\n return;\n }\n\n this.updateValue(options[0]);\n this.updateSearch(null);\n this.close();\n }\n\n onInput(value: string) {\n this.updateSearch(value);\n\n const match =\n this.accessor &&\n this.accessor.getOptions().find(item => this.isStrictMatch(item));\n\n if (match !== undefined) {\n this.updateValue(match);\n this.updateSearch(null);\n\n return;\n }\n\n this.updateValue(this.strict || this.search === '' ? null : this.search);\n this.hostedDropdown?.updateOpen(true);\n }\n\n onHovered(hovered: boolean) {\n this.updateHovered(hovered);\n }\n\n toggle() {\n if (this.hostedDropdown) {\n this.hostedDropdown.updateOpen(!this.open);\n }\n }\n\n private isStrictMatch(item: T): boolean {\n return this.strictMatcher(item, this.search || '', this.stringify);\n }\n\n private close() {\n if (this.hostedDropdown) {\n this.hostedDropdown.updateOpen(false);\n }\n }\n\n private updateSearch(search: string | null) {\n if (this.search === search) {\n return;\n }\n\n this.search = search;\n this.searchChange.emit(search);\n }\n\n private setNativeValue(value: string) {\n if (this.nativeFocusableElement) {\n this.nativeFocusableElement.value = value;\n }\n }\n\n private focusInput(preventScroll: boolean = false) {\n if (this.nativeFocusableElement) {\n setNativeFocused(this.nativeFocusableElement, true, preventScroll);\n }\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {TuiActiveZoneModule} from '@taiga-ui/cdk';\nimport {TuiHostedDropdownModule, TuiPrimitiveTextfieldModule} from '@taiga-ui/core';\nimport {TuiArrowModule} from '@taiga-ui/kit/components/arrow';\nimport {TuiSelectOptionModule} from '@taiga-ui/kit/components/select-option';\nimport {PolymorpheusModule} from '@tinkoff/ng-polymorpheus';\n\nimport {TuiComboBoxComponent} from './combo-box.component';\n\n@NgModule({\n imports: [\n CommonModule,\n PolymorpheusModule,\n TuiActiveZoneModule,\n TuiPrimitiveTextfieldModule,\n TuiHostedDropdownModule,\n TuiSelectOptionModule,\n TuiArrowModule,\n ],\n declarations: [TuiComboBoxComponent],\n exports: [TuiComboBoxComponent],\n})\nexport class TuiComboBoxModule {}\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-combo-box.js","sources":["ng://@taiga-ui/kit/components/combo-box/combo-box.providers.ts","ng://@taiga-ui/kit/components/combo-box/combo-box.component.ts","ng://@taiga-ui/kit/components/combo-box/combo-box.directive.ts","ng://@taiga-ui/kit/components/combo-box/combo-box.module.ts","ng://@taiga-ui/kit/components/combo-box/taiga-ui-kit-components-combo-box.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 {TuiComboBoxComponent} from './combo-box.component';\n\n// TODO: remove in ivy compilation\nexport const COMBOBOX_OPTION: any = TUI_SELECT_OPTION;\n\nexport const TUI_COMBO_BOX_PROVIDERS = [\n {\n provide: TUI_FOCUSABLE_ITEM_ACCESSOR,\n useExisting: forwardRef(() => TuiComboBoxComponent),\n },\n {\n provide: TUI_DATA_LIST_HOST,\n useExisting: forwardRef(() => TuiComboBoxComponent),\n },\n {\n provide: AbstractTuiControl,\n useExisting: forwardRef(() => TuiComboBoxComponent),\n },\n {\n provide: TUI_OPTION_CONTENT,\n useValue: COMBOBOX_OPTION,\n },\n FIXED_DROPDOWN_CONTROLLER_PROVIDER,\n];\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n EventEmitter,\n Inject,\n Input,\n Optional,\n Output,\n Self,\n TemplateRef,\n ViewChild,\n} from '@angular/core';\nimport {NgControl} from '@angular/forms';\nimport {\n AbstractTuiNullableControl,\n isNativeFocused,\n isPresent,\n setNativeFocused,\n TUI_DEFAULT_IDENTITY_MATCHER,\n TUI_DEFAULT_STRINGIFY,\n TUI_STRICT_MATCHER,\n tuiDefaultProp,\n TuiFocusableElementAccessor,\n TuiIdentityMatcher,\n tuiPure,\n TuiStringHandler,\n TuiStringMatcher,\n} from '@taiga-ui/cdk';\nimport {\n TUI_DATA_LIST_ACCESSOR,\n TuiDataListAccessor,\n TuiDataListDirective,\n TuiDataListHost,\n TuiHostedDropdownComponent,\n TuiPrimitiveTextfieldComponent,\n TuiValueContentContext,\n} from '@taiga-ui/core';\nimport {TUI_ARROW_MODE, TuiArrowMode} from '@taiga-ui/kit/components/arrow';\nimport {PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\n\nimport {TUI_COMBO_BOX_PROVIDERS} from './combo-box.providers';\n\n@Component({\n selector: 'tui-combo-box',\n templateUrl: './combo-box.template.html',\n styleUrls: ['./combo-box.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: TUI_COMBO_BOX_PROVIDERS,\n})\nexport class TuiComboBoxComponent<T>\n extends AbstractTuiNullableControl<T | string>\n implements TuiFocusableElementAccessor, TuiDataListHost<T>\n{\n @ContentChild(TUI_DATA_LIST_ACCESSOR as any)\n private readonly accessor?: TuiDataListAccessor<T>;\n\n @ViewChild(TuiHostedDropdownComponent)\n private readonly hostedDropdown?: TuiHostedDropdownComponent;\n\n @ViewChild(TuiPrimitiveTextfieldComponent)\n private readonly textfield?: TuiPrimitiveTextfieldComponent;\n\n @Input()\n @tuiDefaultProp()\n stringify: TuiStringHandler<T> = TUI_DEFAULT_STRINGIFY;\n\n @Input()\n @tuiDefaultProp()\n strictMatcher: TuiStringMatcher<T> = TUI_STRICT_MATCHER;\n\n @Input()\n @tuiDefaultProp()\n identityMatcher: TuiIdentityMatcher<T> = TUI_DEFAULT_IDENTITY_MATCHER;\n\n @Input()\n @tuiDefaultProp()\n valueContent: PolymorpheusContent<TuiValueContentContext<T>> = '';\n\n @Input()\n @tuiDefaultProp()\n strict = true;\n\n @Input()\n @tuiDefaultProp()\n search: string | null = '';\n\n @Output()\n readonly searchChange = new EventEmitter<string | null>();\n\n @ContentChild(TuiDataListDirective, {read: TemplateRef})\n readonly datalist: PolymorpheusContent = '';\n\n open = false;\n\n constructor(\n @Optional()\n @Self()\n @Inject(NgControl)\n control: NgControl | null,\n @Inject(ChangeDetectorRef) changeDetectorRef: ChangeDetectorRef,\n @Inject(TUI_ARROW_MODE)\n private readonly arrowMode: TuiArrowMode,\n ) {\n super(control, changeDetectorRef);\n }\n\n get arrow(): PolymorpheusContent {\n return !this.interactive ? this.arrowMode.disabled : this.arrowMode.interactive;\n }\n\n get nativeFocusableElement(): HTMLInputElement | null {\n return this.textfield ? this.textfield.nativeFocusableElement : null;\n }\n\n get focused(): boolean {\n return (\n isNativeFocused(this.nativeFocusableElement) ||\n (!!this.hostedDropdown && this.hostedDropdown.focused)\n );\n }\n\n get nativeValue(): string {\n if (this.value === null) {\n return this.search || '';\n }\n\n return typeof this.value === 'string' ? this.value : this.stringify(this.value);\n }\n\n get showValueTemplate(): boolean {\n return isPresent(this.value) && !this.focused;\n }\n\n get computedContent(): PolymorpheusContent<TuiValueContentContext<T>> {\n return this.valueContent || this.nativeValue;\n }\n\n @tuiPure\n computeContext(\n $implicit: T | null,\n active: boolean,\n ): TuiValueContentContext<T | null> {\n return {\n $implicit,\n active,\n };\n }\n\n onActiveZone(active: boolean) {\n this.updateFocused(active);\n }\n\n checkOption(option: T) {\n if (!this.isStrictMatch(option)) {\n return;\n }\n\n this.updateValue(option);\n this.updateSearch(null);\n }\n\n handleOption(item: T) {\n this.setNativeValue(this.stringify(item));\n this.focusInput();\n this.close();\n this.updateSearch(null);\n this.updateValue(item);\n }\n\n onFieldKeyDownEnter(event: KeyboardEvent) {\n if (this.open) {\n event.preventDefault();\n }\n\n const options = this.accessor ? this.accessor.getOptions() : [];\n\n if (options.length !== 1) {\n return;\n }\n\n this.updateValue(options[0]);\n this.updateSearch(null);\n this.close();\n }\n\n onValueChange(value: string) {\n this.updateSearch(value);\n\n const match =\n this.accessor &&\n this.accessor.getOptions().find(item => this.isStrictMatch(item));\n\n if (match !== undefined) {\n this.updateValue(match);\n this.updateSearch(null);\n\n return;\n }\n\n this.updateValue(this.strict || this.search === '' ? null : this.search);\n this.hostedDropdown?.updateOpen(true);\n }\n\n onHovered(hovered: boolean) {\n this.updateHovered(hovered);\n }\n\n toggle() {\n this.hostedDropdown?.updateOpen(!this.open);\n }\n\n private isStrictMatch(item: T): boolean {\n return this.strictMatcher(item, this.search || '', this.stringify);\n }\n\n private close() {\n this.hostedDropdown?.updateOpen(false);\n }\n\n private updateSearch(search: string | null) {\n if (this.search === search) {\n return;\n }\n\n this.search = search;\n this.searchChange.emit(search);\n }\n\n private setNativeValue(value: string) {\n if (this.nativeFocusableElement) {\n this.nativeFocusableElement.value = value;\n }\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 {TuiComboBoxComponent} from './combo-box.component';\n\n@Directive({\n selector: 'tui-combo-box',\n providers: [\n {\n provide: TUI_TEXTFIELD_HOST,\n useExisting: forwardRef(() => TuiComboBoxDirective),\n },\n ],\n})\nexport class TuiComboBoxDirective extends TuiAbstractTextfieldHost<\n TuiComboBoxComponent<any>\n> {\n get value(): string {\n return this.host.nativeValue;\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 {TuiComboBoxComponent} from './combo-box.component';\nimport {TuiComboBoxDirective} from './combo-box.directive';\n\n@NgModule({\n imports: [\n CommonModule,\n PolymorpheusModule,\n TuiActiveZoneModule,\n TuiPrimitiveTextfieldModule,\n TuiHostedDropdownModule,\n TuiSelectOptionModule,\n TuiArrowModule,\n ],\n declarations: [TuiComboBoxComponent, TuiComboBoxDirective],\n exports: [TuiComboBoxComponent, TuiComboBoxDirective, TuiTextfieldComponent],\n})\nexport class TuiComboBoxModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;AAQA;MACa,eAAe,GAAQ,kBAAkB;MAEzC,uBAAuB,GAAG;IACnC;QACI,OAAO,EAAE,2BAA2B;QACpC,WAAW,EAAE,UAAU,CAAC,MAAM,oBAAoB,CAAC;KACtD;IACD;QACI,OAAO,EAAE,kBAAkB;QAC3B,WAAW,EAAE,UAAU,CAAC,MAAM,oBAAoB,CAAC;KACtD;IACD;QACI,OAAO,EAAE,kBAAkB;QAC3B,WAAW,EAAE,UAAU,CAAC,MAAM,oBAAoB,CAAC;KACtD;IACD;QACI,OAAO,EAAE,kBAAkB;QAC3B,QAAQ,EAAE,eAAe;KAC5B;IACD,kCAAkC;;;ICuBzB,oBAAoB,GAAjC,MAAa,oBACT,SAAQ,0BAAsC;IA4C9C,YAII,OAAyB,EACE,iBAAoC,EAE9C,SAAuB;QAExC,KAAK,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAC;QAFjB,cAAS,GAAT,SAAS,CAAc;QArC5C,cAAS,GAAwB,qBAAqB,CAAC;QAIvD,kBAAa,GAAwB,kBAAkB,CAAC;QAIxD,oBAAe,GAA0B,4BAA4B,CAAC;QAItE,iBAAY,GAAmD,EAAE,CAAC;QAIlE,WAAM,GAAG,IAAI,CAAC;QAId,WAAM,GAAkB,EAAE,CAAC;QAGlB,iBAAY,GAAG,IAAI,YAAY,EAAiB,CAAC;QAGjD,aAAQ,GAAwB,EAAE,CAAC;QAE5C,SAAI,GAAG,KAAK,CAAC;KAYZ;IAED,IAAI,KAAK;QACL,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,WAAW;QACX,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,EAAE;YACrB,OAAO,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC;SAC5B;QAED,OAAO,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACnF;IAED,IAAI,iBAAiB;QACjB,OAAO,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;KACjD;IAED,IAAI,eAAe;QACf,OAAO,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,WAAW,CAAC;KAChD;IAGD,cAAc,CACV,SAAmB,EACnB,MAAe;QAEf,OAAO;YACH,SAAS;YACT,MAAM;SACT,CAAC;KACL;IAED,YAAY,CAAC,MAAe;QACxB,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;KAC9B;IAED,WAAW,CAAC,MAAS;QACjB,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE;YAC7B,OAAO;SACV;QAED,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QACzB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;KAC3B;IAED,YAAY,CAAC,IAAO;QAChB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;QAC1C,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,IAAI,CAAC,KAAK,EAAE,CAAC;QACb,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QACxB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;KAC1B;IAED,mBAAmB,CAAC,KAAoB;QACpC,IAAI,IAAI,CAAC,IAAI,EAAE;YACX,KAAK,CAAC,cAAc,EAAE,CAAC;SAC1B;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE,CAAC;QAEhE,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;YACtB,OAAO;SACV;QAED,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QACxB,IAAI,CAAC,KAAK,EAAE,CAAC;KAChB;IAED,aAAa,CAAC,KAAa;;QACvB,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QAEzB,MAAM,KAAK,GACP,IAAI,CAAC,QAAQ;YACb,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC;QAEtE,IAAI,KAAK,KAAK,SAAS,EAAE;YACrB,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;YACxB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;YAExB,OAAO;SACV;QAED,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,KAAK,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;QACzE,MAAA,IAAI,CAAC,cAAc,0CAAE,UAAU,CAAC,IAAI,EAAE;KACzC;IAED,SAAS,CAAC,OAAgB;QACtB,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;KAC/B;IAED,MAAM;;QACF,MAAA,IAAI,CAAC,cAAc,0CAAE,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE;KAC/C;IAEO,aAAa,CAAC,IAAO;QACzB,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,IAAI,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;KACtE;IAEO,KAAK;;QACT,MAAA,IAAI,CAAC,cAAc,0CAAE,UAAU,CAAC,KAAK,EAAE;KAC1C;IAEO,YAAY,CAAC,MAAqB;QACtC,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM,EAAE;YACxB,OAAO;SACV;QAED,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;KAClC;IAEO,cAAc,CAAC,KAAa;QAChC,IAAI,IAAI,CAAC,sBAAsB,EAAE;YAC7B,IAAI,CAAC,sBAAsB,CAAC,KAAK,GAAG,KAAK,CAAC;SAC7C;KACJ;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;;YA7IgB,SAAS,uBAHjB,QAAQ,YACR,IAAI,YACJ,MAAM,SAAC,SAAS;YAE6B,iBAAiB,uBAA9D,MAAM,SAAC,iBAAiB;4CACxB,MAAM,SAAC,cAAc;;AA9C1B;IADC,YAAY,CAAC,sBAA6B,CAAC;sDACO;AAGnD;IADC,SAAS,CAAC,0BAA0B,CAAC;4DACuB;AAG7D;IADC,SAAS,CAAC,8BAA8B,CAAC;uDACkB;AAI5D;IAFC,KAAK,EAAE;IACP,cAAc,EAAE;uDACsC;AAIvD;IAFC,KAAK,EAAE;IACP,cAAc,EAAE;2DACuC;AAIxD;IAFC,KAAK,EAAE;IACP,cAAc,EAAE;6DACqD;AAItE;IAFC,KAAK,EAAE;IACP,cAAc,EAAE;0DACiD;AAIlE;IAFC,KAAK,EAAE;IACP,cAAc,EAAE;oDACH;AAId;IAFC,KAAK,EAAE;IACP,cAAc,EAAE;oDACU;AAG3B;IADC,MAAM,EAAE;0DACiD;AAG1D;IADC,YAAY,CAAC,oBAAoB,EAAE,EAAC,IAAI,EAAE,WAAW,EAAC,CAAC;sDACZ;AAgD5C;IADC,OAAO;0DASP;AAjGQ,oBAAoB;IAPhC,SAAS,CAAC;QACP,QAAQ,EAAE,eAAe;QACzB,w5CAAwC;QAExC,eAAe,EAAE,uBAAuB,CAAC,MAAM;QAC/C,SAAS,EAAE,uBAAuB;;KACrC,CAAC;IA+CO,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,cAAc,CAAC,CAAA;GAnDlB,oBAAoB,CA8LhC;;;ICnOY,oBAAoB,4BAAjC,MAAa,oBAAqB,SAAQ,wBAEzC;IACG,IAAI,KAAK;QACL,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC;KAChC;IAED,aAAa,CAAC,KAAa;QACvB,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;KAClC;EACJ;AAVY,oBAAoB;IAThC,SAAS,CAAC;QACP,QAAQ,EAAE,eAAe;QACzB,SAAS,EAAE;YACP;gBACI,OAAO,EAAE,kBAAkB;gBAC3B,WAAW,EAAE,UAAU,CAAC,MAAM,sBAAoB,CAAC;aACtD;SACJ;KACJ,CAAC;GACW,oBAAoB,CAUhC;;ICIY,iBAAiB,GAA9B,MAAa,iBAAiB;EAAG;AAApB,iBAAiB;IAb7B,QAAQ,CAAC;QACN,OAAO,EAAE;YACL,YAAY;YACZ,kBAAkB;YAClB,mBAAmB;YACnB,2BAA2B;YAC3B,uBAAuB;YACvB,qBAAqB;YACrB,cAAc;SACjB;QACD,YAAY,EAAE,CAAC,oBAAoB,EAAE,oBAAoB,CAAC;QAC1D,OAAO,EAAE,CAAC,oBAAoB,EAAE,oBAAoB,EAAE,qBAAqB,CAAC;KAC/E,CAAC;GACW,iBAAiB,CAAG;;AC5BjC;;;;;;"}