@taiga-ui/kit 4.52.0-canary.932d3ef → 4.52.0-canary.9c7b1f0

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 (511) hide show
  1. package/README.md +1 -1
  2. package/components/accordion/accordion.component.d.ts +13 -0
  3. package/components/accordion/accordion.d.ts +4 -4
  4. package/components/accordion/accordion.directive.d.ts +11 -10
  5. package/components/accordion/index.d.ts +1 -3
  6. package/components/action-bar/action-bar.component.d.ts +5 -7
  7. package/components/action-bar/index.d.ts +0 -2
  8. package/components/avatar/avatar-labeled.component.d.ts +3 -3
  9. package/components/avatar/avatar-outline.directive.d.ts +3 -3
  10. package/components/avatar/avatar-stack.component.d.ts +2 -2
  11. package/components/avatar/avatar.directive.d.ts +4 -3
  12. package/components/badge/badge.directive.d.ts +2 -2
  13. package/components/badge/badge.options.d.ts +1 -3
  14. package/components/badge-notification/badge-notification.component.d.ts +2 -3
  15. package/components/badge-notification/badge-notification.options.d.ts +1 -3
  16. package/components/badged-content/badged-content.directive.d.ts +2 -3
  17. package/components/block/block.directive.d.ts +4 -4
  18. package/components/block/block.options.d.ts +2 -4
  19. package/components/breadcrumbs/breadcrumbs.component.d.ts +6 -7
  20. package/components/breadcrumbs/breadcrumbs.options.d.ts +1 -3
  21. package/components/button-loading/button-loading.component.d.ts +5 -5
  22. package/components/calendar-month/calendar-month.component.d.ts +1 -1
  23. package/components/calendar-range/calendar-range.component.d.ts +1 -3
  24. package/components/calendar-range/day-range-period.d.ts +2 -1
  25. package/components/carousel/carousel-autoscroll.directive.d.ts +1 -2
  26. package/components/carousel/carousel-scroll.directive.d.ts +1 -1
  27. package/components/carousel/carousel.component.d.ts +15 -18
  28. package/components/carousel/carousel.directive.d.ts +5 -4
  29. package/components/checkbox/checkbox.component.d.ts +7 -18
  30. package/components/checkbox/checkbox.options.d.ts +5 -9
  31. package/components/chip/chip.directive.d.ts +2 -4
  32. package/components/chip/chip.options.d.ts +1 -3
  33. package/components/combo-box/combo-box.d.ts +5 -0
  34. package/components/combo-box/combo-box.directive.d.ts +7 -9
  35. package/components/combo-box/index.d.ts +1 -0
  36. package/components/comment/comment.directive.d.ts +2 -2
  37. package/components/compass/compass.component.d.ts +2 -2
  38. package/components/confirm/confirm.component.d.ts +5 -3
  39. package/components/confirm/confirm.service.d.ts +3 -2
  40. package/{directives → components}/copy/copy.component.d.ts +4 -5
  41. package/{directives → components}/copy/copy.directive.d.ts +4 -6
  42. package/{directives → components}/copy/copy.options.d.ts +1 -1
  43. package/components/data-list-wrapper/data-list-group-wrapper.component.d.ts +4 -2
  44. package/components/data-list-wrapper/data-list-wrapper.component.d.ts +14 -22
  45. package/components/data-list-wrapper/{data-list-wrapper.module.d.ts → data-list-wrapper.d.ts} +1 -2
  46. package/components/data-list-wrapper/index.d.ts +1 -1
  47. package/components/drawer/drawer.component.d.ts +3 -4
  48. package/components/files/file/file.component.d.ts +16 -29
  49. package/components/files/file/file.options.d.ts +1 -1
  50. package/components/files/files/files.component.d.ts +7 -10
  51. package/components/files/input-files/input-files.component.d.ts +2 -2
  52. package/components/files/input-files/input-files.content.d.ts +7 -8
  53. package/components/files/input-files/input-files.directive.d.ts +2 -2
  54. package/components/files/input-files/input-files.options.d.ts +1 -3
  55. package/components/filter/filter.component.d.ts +9 -12
  56. package/components/fullscreen/fullscreen.component.d.ts +11 -0
  57. package/components/fullscreen/index.d.ts +1 -0
  58. package/components/index.d.ts +3 -5
  59. package/components/input-chip/input-chip.component.d.ts +9 -8
  60. package/components/input-chip/input-chip.d.ts +5 -1
  61. package/components/input-chip/input-chip.directive.d.ts +7 -12
  62. package/components/input-color/index.d.ts +1 -0
  63. package/components/input-color/input-color.component.d.ts +10 -14
  64. package/components/input-color/input-color.d.ts +5 -0
  65. package/components/input-date/input-date.component.d.ts +2 -2
  66. package/components/input-date/input-date.d.ts +4 -1
  67. package/components/input-date/input-date.directive.d.ts +21 -22
  68. package/components/input-date/input-date.options.d.ts +3 -3
  69. package/components/input-date-multi/input-date-multi.d.ts +1 -2
  70. package/components/input-date-multi/input-date-multi.directive.d.ts +10 -14
  71. package/components/input-date-range/input-date-range.d.ts +4 -1
  72. package/components/input-date-range/input-date-range.directive.d.ts +9 -10
  73. package/components/input-date-range/input-date-range.options.d.ts +2 -2
  74. package/components/input-date-time/input-date-time.d.ts +4 -1
  75. package/components/input-date-time/input-date-time.directive.d.ts +14 -14
  76. package/components/input-date-time/input-date-time.options.d.ts +2 -2
  77. package/components/input-inline/input-inline.component.d.ts +3 -2
  78. package/components/input-month/input-month.component.d.ts +3 -5
  79. package/components/input-month/input-month.d.ts +4 -1
  80. package/components/input-month/input-month.directive.d.ts +6 -5
  81. package/components/input-month-range/input-month-range.d.ts +4 -1
  82. package/components/input-month-range/input-month-range.directive.d.ts +6 -5
  83. package/components/input-number/index.d.ts +3 -0
  84. package/components/input-number/input-number.d.ts +7 -2
  85. package/components/input-number/input-number.directive.d.ts +11 -28
  86. package/components/input-number/input-number.options.d.ts +4 -7
  87. package/components/input-number/number-mask.directive.d.ts +42 -0
  88. package/components/input-number/quantum.directive.d.ts +10 -8
  89. package/components/input-number/step/input-number-step.component.d.ts +11 -10
  90. package/components/input-number/transformers/bigint.value-transformer.d.ts +11 -0
  91. package/components/input-number/transformers/number.value-transformer.d.ts +11 -0
  92. package/components/input-phone/index.d.ts +1 -0
  93. package/components/input-phone/input-phone.d.ts +5 -0
  94. package/components/input-phone/input-phone.directive.d.ts +12 -14
  95. package/components/input-phone-international/index.d.ts +1 -0
  96. package/components/input-phone-international/input-phone-international.component.d.ts +28 -36
  97. package/components/input-phone-international/input-phone-international.d.ts +5 -0
  98. package/components/input-phone-international/input-phone-international.options.d.ts +2 -3
  99. package/components/input-pin/index.d.ts +1 -0
  100. package/components/input-pin/input-pin.component.d.ts +6 -7
  101. package/components/input-pin/input-pin.d.ts +5 -0
  102. package/components/input-range/index.d.ts +0 -1
  103. package/components/input-range/input-range.component.d.ts +29 -62
  104. package/components/input-slider/input-slider.d.ts +4 -1
  105. package/components/input-slider/input-slider.directive.d.ts +6 -7
  106. package/components/input-time/input-time.component.d.ts +1 -3
  107. package/components/input-time/input-time.d.ts +4 -1
  108. package/components/input-time/input-time.directive.d.ts +9 -11
  109. package/components/input-year/input-year.d.ts +4 -1
  110. package/components/input-year/input-year.directive.d.ts +8 -10
  111. package/components/input-year/input-year.options.d.ts +2 -2
  112. package/components/items-with-more/items-with-more.component.d.ts +6 -6
  113. package/components/items-with-more/items-with-more.directive.d.ts +6 -6
  114. package/components/like/like.component.d.ts +4 -11
  115. package/components/like/like.options.d.ts +3 -4
  116. package/components/line-clamp/line-clamp-box.component.d.ts +3 -4
  117. package/components/line-clamp/line-clamp.component.d.ts +8 -10
  118. package/components/line-clamp/line-clamp.options.d.ts +1 -3
  119. package/components/multi-select/multi-select-group/multi-select-group.component.d.ts +6 -8
  120. package/components/multi-select/multi-select-native/multi-select-native.component.d.ts +5 -4
  121. package/components/multi-select/multi-select-option/multi-select-option.component.d.ts +1 -1
  122. package/components/notification-middle/notification-middle.component.d.ts +2 -2
  123. package/components/notification-middle/notification-middle.directive.d.ts +4 -3
  124. package/components/notification-middle/notification-middle.service.d.ts +7 -3
  125. package/components/pager/pager.component.d.ts +13 -13
  126. package/components/pagination/index.d.ts +1 -0
  127. package/components/pagination/pagination.component.d.ts +25 -54
  128. package/components/pagination/pagination.options.d.ts +7 -0
  129. package/components/pin/pin.directive.d.ts +2 -2
  130. package/components/preview/dialog/preview-dialog.component.d.ts +2 -2
  131. package/components/preview/dialog/preview-dialog.directive.d.ts +3 -3
  132. package/components/preview/dialog/preview-dialog.service.d.ts +5 -2
  133. package/components/preview/index.d.ts +1 -0
  134. package/components/preview/pagination/preview-pagination.component.d.ts +6 -10
  135. package/components/preview/preview.component.d.ts +6 -6
  136. package/components/preview/preview.d.ts +2 -1
  137. package/{tokens/preview-icons.d.ts → components/preview/preview.options.d.ts} +1 -3
  138. package/components/preview/zoom/preview-zoom.component.d.ts +11 -17
  139. package/components/progress/progress-bar/fixed-gradient/progress-fixed-gradient.directive.d.ts +1 -2
  140. package/components/progress/progress-bar/progress-bar.component.d.ts +3 -4
  141. package/components/progress/progress-bar/progress-color-segments.directive.d.ts +4 -4
  142. package/components/progress/progress-circle/progress-circle.component.d.ts +7 -11
  143. package/components/progress/progress-segmented/progress-segmented.directive.d.ts +2 -2
  144. package/components/progress/progress.options.d.ts +1 -3
  145. package/components/pulse/pulse.component.d.ts +2 -2
  146. package/components/push/push-alert.component.d.ts +4 -3
  147. package/components/push/push.component.d.ts +7 -8
  148. package/components/push/push.directive.d.ts +4 -6
  149. package/components/push/push.options.d.ts +5 -8
  150. package/components/push/push.service.d.ts +6 -2
  151. package/components/radio/radio.component.d.ts +8 -9
  152. package/components/radio/radio.directive.d.ts +2 -2
  153. package/components/radio/radio.options.d.ts +2 -5
  154. package/components/radio-list/radio-list.component.d.ts +11 -9
  155. package/components/range/range-change.directive.d.ts +1 -2
  156. package/components/range/range.component.d.ts +16 -25
  157. package/components/rating/rating.component.d.ts +5 -5
  158. package/components/rating/rating.options.d.ts +6 -6
  159. package/components/routable-dialog/generate-dialogable-route.d.ts +1 -1
  160. package/components/segmented/segmented.component.d.ts +4 -6
  161. package/components/segmented/segmented.directive.d.ts +6 -7
  162. package/components/select/native-select/native-select.component.d.ts +7 -8
  163. package/components/select/select.d.ts +4 -1
  164. package/components/select/select.directive.d.ts +4 -3
  165. package/components/slider/helpers/key-steps.d.ts +1 -2
  166. package/components/slider/helpers/slider-key-steps.directive.d.ts +15 -23
  167. package/components/slider/helpers/slider-readonly.directive.d.ts +2 -4
  168. package/components/slider/helpers/slider-thumb-label.component.d.ts +2 -4
  169. package/components/slider/slider.component.d.ts +4 -7
  170. package/components/slider/slider.options.d.ts +1 -6
  171. package/components/status/status.directive.d.ts +2 -2
  172. package/components/stepper/step.component.d.ts +14 -9
  173. package/components/stepper/stepper.component.d.ts +5 -12
  174. package/components/switch/switch.component.d.ts +8 -19
  175. package/components/switch/switch.options.d.ts +4 -8
  176. package/components/tabs/tabs-horizontal.directive.d.ts +4 -5
  177. package/components/tabs/tabs-vertical.directive.d.ts +2 -2
  178. package/components/tabs/tabs-with-more.component.d.ts +13 -17
  179. package/components/tabs/tabs.directive.d.ts +5 -7
  180. package/components/tabs/tabs.options.d.ts +1 -6
  181. package/components/textarea/index.d.ts +2 -1
  182. package/components/textarea/textarea.component.d.ts +10 -11
  183. package/components/textarea/textarea.d.ts +6 -0
  184. package/components/textarea/textarea.directive.d.ts +13 -0
  185. package/components/tiles/tile.component.d.ts +7 -10
  186. package/components/tiles/tile.service.d.ts +1 -1
  187. package/components/tiles/tiles.component.d.ts +4 -7
  188. package/components/toast/index.d.ts +5 -0
  189. package/components/toast/toast.component.d.ts +18 -0
  190. package/components/toast/toast.d.ts +3 -0
  191. package/components/toast/toast.directive.d.ts +7 -0
  192. package/components/toast/toast.options.d.ts +10 -0
  193. package/components/toast/toast.service.d.ts +17 -0
  194. package/components/tree/components/tree/tree.component.d.ts +7 -7
  195. package/components/tree/components/tree-item/tree-item.component.d.ts +1 -1
  196. package/components/tree/components/tree-item-content/tree-item-content.component.d.ts +8 -1
  197. package/components/tree/directives/tree-children.directive.d.ts +2 -2
  198. package/components/tree/directives/tree-controller.directive.d.ts +4 -5
  199. package/components/tree/directives/tree-item-controller.directive.d.ts +2 -2
  200. package/components/tree/directives/tree-node.directive.d.ts +5 -4
  201. package/components/tree/misc/tree.constants.d.ts +0 -3
  202. package/components/tree/misc/tree.tokens.d.ts +1 -6
  203. package/directives/appearance-proxy/appearance-proxy.directive.d.ts +10 -0
  204. package/directives/appearance-proxy/index.d.ts +1 -0
  205. package/directives/button-select/button-select.directive.d.ts +4 -4
  206. package/directives/chevron/chevron.directive.d.ts +2 -3
  207. package/directives/data-list-dropdown-manager/data-list-dropdown-manager.directive.d.ts +5 -5
  208. package/directives/fade/fade.directive.d.ts +6 -6
  209. package/directives/fluid-typography/fluid-typography.directive.d.ts +3 -6
  210. package/directives/fluid-typography/fluid-typography.options.d.ts +1 -3
  211. package/directives/highlight/highlight.directive.d.ts +4 -4
  212. package/directives/index.d.ts +1 -3
  213. package/directives/password/password.directive.d.ts +1 -1
  214. package/directives/present/present.directive.d.ts +2 -4
  215. package/directives/sensitive/sensitive.directive.d.ts +2 -2
  216. package/directives/shimmer/shimmer.directive.d.ts +3 -3
  217. package/directives/skeleton/skeleton.directive.d.ts +3 -3
  218. package/directives/tooltip/tooltip.directive.d.ts +3 -3
  219. package/directives/unfinished-validator/unfinished-validator.directive.d.ts +2 -2
  220. package/directives/unmask-handler/unmask-handler.directive.d.ts +3 -3
  221. package/fesm2022/taiga-ui-kit-components-accordion.mjs +69 -145
  222. package/fesm2022/taiga-ui-kit-components-accordion.mjs.map +1 -1
  223. package/fesm2022/taiga-ui-kit-components-action-bar.mjs +24 -40
  224. package/fesm2022/taiga-ui-kit-components-action-bar.mjs.map +1 -1
  225. package/fesm2022/taiga-ui-kit-components-avatar.mjs +54 -80
  226. package/fesm2022/taiga-ui-kit-components-avatar.mjs.map +1 -1
  227. package/fesm2022/taiga-ui-kit-components-badge-notification.mjs +11 -18
  228. package/fesm2022/taiga-ui-kit-components-badge-notification.mjs.map +1 -1
  229. package/fesm2022/taiga-ui-kit-components-badge.mjs +16 -27
  230. package/fesm2022/taiga-ui-kit-components-badge.mjs.map +1 -1
  231. package/fesm2022/taiga-ui-kit-components-badged-content.mjs +9 -12
  232. package/fesm2022/taiga-ui-kit-components-badged-content.mjs.map +1 -1
  233. package/fesm2022/taiga-ui-kit-components-block.mjs +20 -31
  234. package/fesm2022/taiga-ui-kit-components-block.mjs.map +1 -1
  235. package/fesm2022/taiga-ui-kit-components-breadcrumbs.mjs +19 -39
  236. package/fesm2022/taiga-ui-kit-components-breadcrumbs.mjs.map +1 -1
  237. package/fesm2022/taiga-ui-kit-components-button-loading.mjs +19 -27
  238. package/fesm2022/taiga-ui-kit-components-button-loading.mjs.map +1 -1
  239. package/fesm2022/taiga-ui-kit-components-calendar-month.mjs +6 -17
  240. package/fesm2022/taiga-ui-kit-components-calendar-month.mjs.map +1 -1
  241. package/fesm2022/taiga-ui-kit-components-calendar-range.mjs +25 -26
  242. package/fesm2022/taiga-ui-kit-components-calendar-range.mjs.map +1 -1
  243. package/fesm2022/taiga-ui-kit-components-carousel.mjs +70 -123
  244. package/fesm2022/taiga-ui-kit-components-carousel.mjs.map +1 -1
  245. package/fesm2022/taiga-ui-kit-components-checkbox.mjs +18 -76
  246. package/fesm2022/taiga-ui-kit-components-checkbox.mjs.map +1 -1
  247. package/fesm2022/taiga-ui-kit-components-chip.mjs +18 -34
  248. package/fesm2022/taiga-ui-kit-components-chip.mjs.map +1 -1
  249. package/fesm2022/taiga-ui-kit-components-combo-box.mjs +45 -50
  250. package/fesm2022/taiga-ui-kit-components-combo-box.mjs.map +1 -1
  251. package/fesm2022/taiga-ui-kit-components-comment.mjs +13 -20
  252. package/fesm2022/taiga-ui-kit-components-comment.mjs.map +1 -1
  253. package/fesm2022/taiga-ui-kit-components-compass.mjs +9 -11
  254. package/fesm2022/taiga-ui-kit-components-compass.mjs.map +1 -1
  255. package/fesm2022/taiga-ui-kit-components-confirm.mjs +14 -17
  256. package/fesm2022/taiga-ui-kit-components-confirm.mjs.map +1 -1
  257. package/fesm2022/taiga-ui-kit-components-copy.mjs +106 -0
  258. package/fesm2022/taiga-ui-kit-components-copy.mjs.map +1 -0
  259. package/fesm2022/taiga-ui-kit-components-data-list-wrapper.mjs +25 -78
  260. package/fesm2022/taiga-ui-kit-components-data-list-wrapper.mjs.map +1 -1
  261. package/fesm2022/taiga-ui-kit-components-drawer.mjs +15 -32
  262. package/fesm2022/taiga-ui-kit-components-drawer.mjs.map +1 -1
  263. package/fesm2022/taiga-ui-kit-components-files.mjs +118 -245
  264. package/fesm2022/taiga-ui-kit-components-files.mjs.map +1 -1
  265. package/fesm2022/taiga-ui-kit-components-filter.mjs +21 -34
  266. package/fesm2022/taiga-ui-kit-components-filter.mjs.map +1 -1
  267. package/fesm2022/taiga-ui-kit-components-fullscreen.mjs +44 -0
  268. package/fesm2022/taiga-ui-kit-components-fullscreen.mjs.map +1 -0
  269. package/fesm2022/taiga-ui-kit-components-input-chip.mjs +72 -81
  270. package/fesm2022/taiga-ui-kit-components-input-chip.mjs.map +1 -1
  271. package/fesm2022/taiga-ui-kit-components-input-color.mjs +30 -33
  272. package/fesm2022/taiga-ui-kit-components-input-color.mjs.map +1 -1
  273. package/fesm2022/taiga-ui-kit-components-input-date-multi.mjs +36 -53
  274. package/fesm2022/taiga-ui-kit-components-input-date-multi.mjs.map +1 -1
  275. package/fesm2022/taiga-ui-kit-components-input-date-range.mjs +37 -37
  276. package/fesm2022/taiga-ui-kit-components-input-date-range.mjs.map +1 -1
  277. package/fesm2022/taiga-ui-kit-components-input-date-time.mjs +42 -59
  278. package/fesm2022/taiga-ui-kit-components-input-date-time.mjs.map +1 -1
  279. package/fesm2022/taiga-ui-kit-components-input-date.mjs +58 -72
  280. package/fesm2022/taiga-ui-kit-components-input-date.mjs.map +1 -1
  281. package/fesm2022/taiga-ui-kit-components-input-inline.mjs +10 -13
  282. package/fesm2022/taiga-ui-kit-components-input-inline.mjs.map +1 -1
  283. package/fesm2022/taiga-ui-kit-components-input-month-range.mjs +30 -28
  284. package/fesm2022/taiga-ui-kit-components-input-month-range.mjs.map +1 -1
  285. package/fesm2022/taiga-ui-kit-components-input-month.mjs +43 -51
  286. package/fesm2022/taiga-ui-kit-components-input-month.mjs.map +1 -1
  287. package/fesm2022/taiga-ui-kit-components-input-number.mjs +270 -214
  288. package/fesm2022/taiga-ui-kit-components-input-number.mjs.map +1 -1
  289. package/fesm2022/taiga-ui-kit-components-input-phone-international.mjs +126 -159
  290. package/fesm2022/taiga-ui-kit-components-input-phone-international.mjs.map +1 -1
  291. package/fesm2022/taiga-ui-kit-components-input-phone.mjs +40 -46
  292. package/fesm2022/taiga-ui-kit-components-input-phone.mjs.map +1 -1
  293. package/fesm2022/taiga-ui-kit-components-input-pin.mjs +26 -24
  294. package/fesm2022/taiga-ui-kit-components-input-pin.mjs.map +1 -1
  295. package/fesm2022/taiga-ui-kit-components-input-range.mjs +68 -91
  296. package/fesm2022/taiga-ui-kit-components-input-range.mjs.map +1 -1
  297. package/fesm2022/taiga-ui-kit-components-input-slider.mjs +46 -50
  298. package/fesm2022/taiga-ui-kit-components-input-slider.mjs.map +1 -1
  299. package/fesm2022/taiga-ui-kit-components-input-time.mjs +64 -71
  300. package/fesm2022/taiga-ui-kit-components-input-time.mjs.map +1 -1
  301. package/fesm2022/taiga-ui-kit-components-input-year.mjs +33 -40
  302. package/fesm2022/taiga-ui-kit-components-input-year.mjs.map +1 -1
  303. package/fesm2022/taiga-ui-kit-components-items-with-more.mjs +50 -72
  304. package/fesm2022/taiga-ui-kit-components-items-with-more.mjs.map +1 -1
  305. package/fesm2022/taiga-ui-kit-components-like.mjs +40 -33
  306. package/fesm2022/taiga-ui-kit-components-like.mjs.map +1 -1
  307. package/fesm2022/taiga-ui-kit-components-line-clamp.mjs +38 -82
  308. package/fesm2022/taiga-ui-kit-components-line-clamp.mjs.map +1 -1
  309. package/fesm2022/taiga-ui-kit-components-message.mjs +9 -12
  310. package/fesm2022/taiga-ui-kit-components-message.mjs.map +1 -1
  311. package/fesm2022/taiga-ui-kit-components-multi-select.mjs +44 -60
  312. package/fesm2022/taiga-ui-kit-components-multi-select.mjs.map +1 -1
  313. package/fesm2022/taiga-ui-kit-components-notification-middle.mjs +38 -34
  314. package/fesm2022/taiga-ui-kit-components-notification-middle.mjs.map +1 -1
  315. package/fesm2022/taiga-ui-kit-components-pager.mjs +31 -45
  316. package/fesm2022/taiga-ui-kit-components-pager.mjs.map +1 -1
  317. package/fesm2022/taiga-ui-kit-components-pagination.mjs +75 -150
  318. package/fesm2022/taiga-ui-kit-components-pagination.mjs.map +1 -1
  319. package/fesm2022/taiga-ui-kit-components-pin.mjs +15 -19
  320. package/fesm2022/taiga-ui-kit-components-pin.mjs.map +1 -1
  321. package/fesm2022/taiga-ui-kit-components-preview.mjs +98 -158
  322. package/fesm2022/taiga-ui-kit-components-preview.mjs.map +1 -1
  323. package/fesm2022/taiga-ui-kit-components-progress.mjs +93 -117
  324. package/fesm2022/taiga-ui-kit-components-progress.mjs.map +1 -1
  325. package/fesm2022/taiga-ui-kit-components-pulse.mjs +7 -11
  326. package/fesm2022/taiga-ui-kit-components-pulse.mjs.map +1 -1
  327. package/fesm2022/taiga-ui-kit-components-push.mjs +54 -74
  328. package/fesm2022/taiga-ui-kit-components-push.mjs.map +1 -1
  329. package/fesm2022/taiga-ui-kit-components-radio-list.mjs +23 -35
  330. package/fesm2022/taiga-ui-kit-components-radio-list.mjs.map +1 -1
  331. package/fesm2022/taiga-ui-kit-components-radio.mjs +35 -41
  332. package/fesm2022/taiga-ui-kit-components-radio.mjs.map +1 -1
  333. package/fesm2022/taiga-ui-kit-components-range.mjs +42 -96
  334. package/fesm2022/taiga-ui-kit-components-range.mjs.map +1 -1
  335. package/fesm2022/taiga-ui-kit-components-rating.mjs +19 -28
  336. package/fesm2022/taiga-ui-kit-components-rating.mjs.map +1 -1
  337. package/fesm2022/taiga-ui-kit-components-routable-dialog.mjs +11 -7
  338. package/fesm2022/taiga-ui-kit-components-routable-dialog.mjs.map +1 -1
  339. package/fesm2022/taiga-ui-kit-components-segmented.mjs +32 -59
  340. package/fesm2022/taiga-ui-kit-components-segmented.mjs.map +1 -1
  341. package/fesm2022/taiga-ui-kit-components-select.mjs +81 -62
  342. package/fesm2022/taiga-ui-kit-components-select.mjs.map +1 -1
  343. package/fesm2022/taiga-ui-kit-components-slider.mjs +96 -122
  344. package/fesm2022/taiga-ui-kit-components-slider.mjs.map +1 -1
  345. package/fesm2022/taiga-ui-kit-components-status.mjs +12 -16
  346. package/fesm2022/taiga-ui-kit-components-status.mjs.map +1 -1
  347. package/fesm2022/taiga-ui-kit-components-stepper.mjs +61 -88
  348. package/fesm2022/taiga-ui-kit-components-stepper.mjs.map +1 -1
  349. package/fesm2022/taiga-ui-kit-components-switch.mjs +22 -64
  350. package/fesm2022/taiga-ui-kit-components-switch.mjs.map +1 -1
  351. package/fesm2022/taiga-ui-kit-components-tabs.mjs +96 -166
  352. package/fesm2022/taiga-ui-kit-components-tabs.mjs.map +1 -1
  353. package/fesm2022/taiga-ui-kit-components-textarea.mjs +62 -82
  354. package/fesm2022/taiga-ui-kit-components-textarea.mjs.map +1 -1
  355. package/fesm2022/taiga-ui-kit-components-tiles.mjs +38 -71
  356. package/fesm2022/taiga-ui-kit-components-tiles.mjs.map +1 -1
  357. package/fesm2022/taiga-ui-kit-components-toast.mjs +164 -0
  358. package/fesm2022/taiga-ui-kit-components-toast.mjs.map +1 -0
  359. package/fesm2022/taiga-ui-kit-components-tree.mjs +92 -127
  360. package/fesm2022/taiga-ui-kit-components-tree.mjs.map +1 -1
  361. package/fesm2022/taiga-ui-kit-components.mjs +3 -5
  362. package/fesm2022/taiga-ui-kit-components.mjs.map +1 -1
  363. package/fesm2022/taiga-ui-kit-directives-appearance-proxy.mjs +27 -0
  364. package/fesm2022/taiga-ui-kit-directives-appearance-proxy.mjs.map +1 -0
  365. package/fesm2022/taiga-ui-kit-directives-button-group.mjs +9 -12
  366. package/fesm2022/taiga-ui-kit-directives-button-group.mjs.map +1 -1
  367. package/fesm2022/taiga-ui-kit-directives-button-select.mjs +20 -19
  368. package/fesm2022/taiga-ui-kit-directives-button-select.mjs.map +1 -1
  369. package/fesm2022/taiga-ui-kit-directives-chevron.mjs +16 -22
  370. package/fesm2022/taiga-ui-kit-directives-chevron.mjs.map +1 -1
  371. package/fesm2022/taiga-ui-kit-directives-connected.mjs +9 -15
  372. package/fesm2022/taiga-ui-kit-directives-connected.mjs.map +1 -1
  373. package/fesm2022/taiga-ui-kit-directives-data-list-dropdown-manager.mjs +25 -53
  374. package/fesm2022/taiga-ui-kit-directives-data-list-dropdown-manager.mjs.map +1 -1
  375. package/fesm2022/taiga-ui-kit-directives-fade.mjs +28 -40
  376. package/fesm2022/taiga-ui-kit-directives-fade.mjs.map +1 -1
  377. package/fesm2022/taiga-ui-kit-directives-fluid-typography.mjs +14 -27
  378. package/fesm2022/taiga-ui-kit-directives-fluid-typography.mjs.map +1 -1
  379. package/fesm2022/taiga-ui-kit-directives-highlight.mjs +16 -21
  380. package/fesm2022/taiga-ui-kit-directives-highlight.mjs.map +1 -1
  381. package/fesm2022/taiga-ui-kit-directives-password.mjs +14 -16
  382. package/fesm2022/taiga-ui-kit-directives-password.mjs.map +1 -1
  383. package/fesm2022/taiga-ui-kit-directives-present.mjs +10 -18
  384. package/fesm2022/taiga-ui-kit-directives-present.mjs.map +1 -1
  385. package/fesm2022/taiga-ui-kit-directives-sensitive.mjs +13 -18
  386. package/fesm2022/taiga-ui-kit-directives-sensitive.mjs.map +1 -1
  387. package/fesm2022/taiga-ui-kit-directives-shimmer.mjs +24 -34
  388. package/fesm2022/taiga-ui-kit-directives-shimmer.mjs.map +1 -1
  389. package/fesm2022/taiga-ui-kit-directives-skeleton.mjs +28 -38
  390. package/fesm2022/taiga-ui-kit-directives-skeleton.mjs.map +1 -1
  391. package/fesm2022/taiga-ui-kit-directives-tooltip.mjs +17 -22
  392. package/fesm2022/taiga-ui-kit-directives-tooltip.mjs.map +1 -1
  393. package/fesm2022/taiga-ui-kit-directives-unfinished-validator.mjs +10 -14
  394. package/fesm2022/taiga-ui-kit-directives-unfinished-validator.mjs.map +1 -1
  395. package/fesm2022/taiga-ui-kit-directives-unmask-handler.mjs +10 -15
  396. package/fesm2022/taiga-ui-kit-directives-unmask-handler.mjs.map +1 -1
  397. package/fesm2022/taiga-ui-kit-directives.mjs +1 -3
  398. package/fesm2022/taiga-ui-kit-directives.mjs.map +1 -1
  399. package/fesm2022/taiga-ui-kit-pipes-auto-color.mjs +43 -0
  400. package/fesm2022/taiga-ui-kit-pipes-auto-color.mjs.map +1 -0
  401. package/fesm2022/taiga-ui-kit-pipes-emails.mjs +3 -4
  402. package/fesm2022/taiga-ui-kit-pipes-emails.mjs.map +1 -1
  403. package/fesm2022/taiga-ui-kit-pipes-filter-by-input.mjs +22 -36
  404. package/fesm2022/taiga-ui-kit-pipes-filter-by-input.mjs.map +1 -1
  405. package/fesm2022/taiga-ui-kit-pipes-flag.mjs +30 -0
  406. package/fesm2022/taiga-ui-kit-pipes-flag.mjs.map +1 -0
  407. package/fesm2022/taiga-ui-kit-pipes-hide-selected.mjs +23 -27
  408. package/fesm2022/taiga-ui-kit-pipes-hide-selected.mjs.map +1 -1
  409. package/fesm2022/taiga-ui-kit-pipes-initials.mjs +28 -0
  410. package/fesm2022/taiga-ui-kit-pipes-initials.mjs.map +1 -0
  411. package/fesm2022/taiga-ui-kit-pipes-sort-countries.mjs +10 -8
  412. package/fesm2022/taiga-ui-kit-pipes-sort-countries.mjs.map +1 -1
  413. package/fesm2022/taiga-ui-kit-pipes-stringify-content.mjs +3 -4
  414. package/fesm2022/taiga-ui-kit-pipes-stringify-content.mjs.map +1 -1
  415. package/fesm2022/taiga-ui-kit-pipes-stringify.mjs +3 -4
  416. package/fesm2022/taiga-ui-kit-pipes-stringify.mjs.map +1 -1
  417. package/fesm2022/taiga-ui-kit-pipes.mjs +3 -1
  418. package/fesm2022/taiga-ui-kit-pipes.mjs.map +1 -1
  419. package/fesm2022/taiga-ui-kit-tokens.mjs +4 -126
  420. package/fesm2022/taiga-ui-kit-tokens.mjs.map +1 -1
  421. package/fesm2022/taiga-ui-kit-utils.mjs +3 -15
  422. package/fesm2022/taiga-ui-kit-utils.mjs.map +1 -1
  423. package/package.json +49 -57
  424. package/pipes/auto-color/auto-color.pipe.d.ts +13 -0
  425. package/pipes/auto-color/index.d.ts +1 -0
  426. package/pipes/filter-by-input/filter-by-input.pipe.d.ts +5 -2
  427. package/pipes/flag/flag.pipe.d.ts +13 -0
  428. package/pipes/flag/index.d.ts +1 -0
  429. package/pipes/hide-selected/hide-selected.pipe.d.ts +2 -0
  430. package/pipes/index.d.ts +3 -1
  431. package/pipes/initials/index.d.ts +1 -0
  432. package/pipes/initials/initials.pipe.d.ts +7 -0
  433. package/pipes/sort-countries/sort-countries.pipe.d.ts +4 -3
  434. package/pipes/stringify-content/stringify-content.pipe.d.ts +2 -3
  435. package/styles/components/avatar.less +188 -0
  436. package/styles/components/badge.less +4 -3
  437. package/styles/components/block.less +4 -4
  438. package/styles/components/checkbox.less +14 -12
  439. package/styles/components/chip.less +15 -4
  440. package/styles/components/comment.less +1 -1
  441. package/styles/components/like.less +4 -9
  442. package/styles/components/message.less +1 -1
  443. package/styles/components/pin.less +6 -10
  444. package/styles/components/radio.less +1 -1
  445. package/styles/components/switch.less +12 -11
  446. package/styles/components/toast.less +44 -0
  447. package/tokens/i18n.d.ts +26 -26
  448. package/tokens/index.d.ts +0 -8
  449. package/utils/index.d.ts +0 -2
  450. package/utils/maskito.binding.d.ts +1 -1
  451. package/components/accordion/accordion-item-content.directive.d.ts +0 -6
  452. package/components/accordion/accordion-item-eager-content.directive.d.ts +0 -5
  453. package/components/accordion/accordion-item.component.d.ts +0 -25
  454. package/components/action-bar/action-bar.d.ts +0 -3
  455. package/components/action-bar/action-bar.directive.d.ts +0 -6
  456. package/components/elastic-container/elastic-container.component.d.ts +0 -8
  457. package/components/elastic-container/elastic-container.directive.d.ts +0 -7
  458. package/components/elastic-container/index.d.ts +0 -2
  459. package/components/floating-container/floating-container.directive.d.ts +0 -7
  460. package/components/floating-container/index.d.ts +0 -1
  461. package/components/input-password/index.d.ts +0 -2
  462. package/components/input-password/input-password.component.d.ts +0 -16
  463. package/components/input-password/input-password.options.d.ts +0 -24
  464. package/components/input-range/input-range.d.ts +0 -3
  465. package/components/pdf-viewer/index.d.ts +0 -4
  466. package/components/pdf-viewer/pdf-viewer.component.d.ts +0 -12
  467. package/components/pdf-viewer/pdf-viewer.directive.d.ts +0 -7
  468. package/components/pdf-viewer/pdf-viewer.options.d.ts +0 -13
  469. package/components/pdf-viewer/pdf-viewer.service.d.ts +0 -13
  470. package/components/slides/index.d.ts +0 -1
  471. package/components/slides/slides.directive.d.ts +0 -11
  472. package/components/textarea/textarea-limit.directive.d.ts +0 -27
  473. package/directives/button-close/button-close.directive.d.ts +0 -5
  474. package/directives/button-close/index.d.ts +0 -1
  475. package/directives/lazy-loading/index.d.ts +0 -2
  476. package/directives/lazy-loading/lazy-loading.directive.d.ts +0 -18
  477. package/directives/lazy-loading/lazy-loading.service.d.ts +0 -12
  478. package/fesm2022/taiga-ui-kit-components-elastic-container.mjs +0 -78
  479. package/fesm2022/taiga-ui-kit-components-elastic-container.mjs.map +0 -1
  480. package/fesm2022/taiga-ui-kit-components-floating-container.mjs +0 -43
  481. package/fesm2022/taiga-ui-kit-components-floating-container.mjs.map +0 -1
  482. package/fesm2022/taiga-ui-kit-components-input-password.mjs +0 -95
  483. package/fesm2022/taiga-ui-kit-components-input-password.mjs.map +0 -1
  484. package/fesm2022/taiga-ui-kit-components-pdf-viewer.mjs +0 -83
  485. package/fesm2022/taiga-ui-kit-components-pdf-viewer.mjs.map +0 -1
  486. package/fesm2022/taiga-ui-kit-components-preview-dialog.mjs +0 -64
  487. package/fesm2022/taiga-ui-kit-components-preview-dialog.mjs.map +0 -1
  488. package/fesm2022/taiga-ui-kit-components-slides.mjs +0 -57
  489. package/fesm2022/taiga-ui-kit-components-slides.mjs.map +0 -1
  490. package/fesm2022/taiga-ui-kit-directives-button-close.mjs +0 -39
  491. package/fesm2022/taiga-ui-kit-directives-button-close.mjs.map +0 -1
  492. package/fesm2022/taiga-ui-kit-directives-copy.mjs +0 -121
  493. package/fesm2022/taiga-ui-kit-directives-copy.mjs.map +0 -1
  494. package/fesm2022/taiga-ui-kit-directives-lazy-loading.mjs +0 -81
  495. package/fesm2022/taiga-ui-kit-directives-lazy-loading.mjs.map +0 -1
  496. package/fesm2022/taiga-ui-kit-pipes-field-error.mjs +0 -147
  497. package/fesm2022/taiga-ui-kit-pipes-field-error.mjs.map +0 -1
  498. package/pipes/field-error/field-error-content-pipe.d.ts +0 -14
  499. package/pipes/field-error/field-error-pipe.d.ts +0 -29
  500. package/pipes/field-error/index.d.ts +0 -2
  501. package/tokens/calendar-date-stream.d.ts +0 -10
  502. package/tokens/date-inputs-value-transformers.d.ts +0 -19
  503. package/tokens/input-date-options.d.ts +0 -15
  504. package/tokens/items-handlers.d.ts +0 -26
  505. package/tokens/mobile-calendar.d.ts +0 -6
  506. package/tokens/month-formatter.d.ts +0 -5
  507. package/tokens/validation-errors.d.ts +0 -5
  508. package/utils/phone.d.ts +0 -3
  509. package/utils/toggle-day.d.ts +0 -2
  510. /package/{directives → components}/copy/copy.d.ts +0 -0
  511. /package/{directives → components}/copy/index.d.ts +0 -0
@@ -0,0 +1,27 @@
1
+ import * as i0 from '@angular/core';
2
+ import { inject, Directive } from '@angular/core';
3
+ import * as i1 from '@taiga-ui/core/directives/appearance';
4
+ import { TuiAppearance, tuiAppearanceFocus, tuiAppearanceMode, tuiAppearanceState } from '@taiga-ui/core/directives/appearance';
5
+
6
+ const O = { skipSelf: true };
7
+ class TuiAppearanceProxy {
8
+ constructor() {
9
+ this.a = inject(TuiAppearance);
10
+ this.f = tuiAppearanceFocus(this.a.tuiAppearanceFocus, O);
11
+ this.m = tuiAppearanceMode(this.a.tuiAppearanceMode, O);
12
+ this.s = tuiAppearanceState(this.a.tuiAppearanceState, O);
13
+ }
14
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiAppearanceProxy, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
15
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.17", type: TuiAppearanceProxy, isStandalone: true, hostDirectives: [{ directive: i1.TuiAppearance }], ngImport: i0 }); }
16
+ }
17
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiAppearanceProxy, decorators: [{
18
+ type: Directive,
19
+ args: [{ hostDirectives: [TuiAppearance] }]
20
+ }] });
21
+
22
+ /**
23
+ * Generated bundle index. Do not edit.
24
+ */
25
+
26
+ export { TuiAppearanceProxy };
27
+ //# sourceMappingURL=taiga-ui-kit-directives-appearance-proxy.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"taiga-ui-kit-directives-appearance-proxy.mjs","sources":["../../../projects/kit/directives/appearance-proxy/appearance-proxy.directive.ts","../../../projects/kit/directives/appearance-proxy/taiga-ui-kit-directives-appearance-proxy.ts"],"sourcesContent":["import {Directive, inject} from '@angular/core';\nimport {\n TuiAppearance,\n tuiAppearanceFocus,\n tuiAppearanceMode,\n tuiAppearanceState,\n} from '@taiga-ui/core/directives/appearance';\n\nconst O = {skipSelf: true};\n\n@Directive({hostDirectives: [TuiAppearance]})\nexport class TuiAppearanceProxy {\n private readonly a = inject(TuiAppearance);\n\n protected readonly f = tuiAppearanceFocus(this.a.tuiAppearanceFocus, O);\n protected readonly m = tuiAppearanceMode(this.a.tuiAppearanceMode, O);\n protected readonly s = tuiAppearanceState(this.a.tuiAppearanceState, O);\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;AAQA,MAAM,CAAC,GAAG,EAAC,QAAQ,EAAE,IAAI,EAAC;MAGb,kBAAkB,CAAA;AAD/B,IAAA,WAAA,GAAA;AAEqB,QAAA,IAAA,CAAA,CAAC,GAAG,MAAM,CAAC,aAAa,CAAC;QAEvB,IAAC,CAAA,CAAA,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,kBAAkB,EAAE,CAAC,CAAC;QACpD,IAAC,CAAA,CAAA,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,iBAAiB,EAAE,CAAC,CAAC;QAClD,IAAC,CAAA,CAAA,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,kBAAkB,EAAE,CAAC,CAAC;AAC1E;+GANY,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAlB,kBAAkB,EAAA,YAAA,EAAA,IAAA,EAAA,cAAA,EAAA,CAAA,EAAA,SAAA,EAAA,EAAA,CAAA,aAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAAlB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAD9B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA,EAAC,cAAc,EAAE,CAAC,aAAa,CAAC,EAAC;;;ACV5C;;AAEG;;;;"}
@@ -2,27 +2,24 @@ import * as i0 from '@angular/core';
2
2
  import { ChangeDetectionStrategy, ViewEncapsulation, Component, Directive } from '@angular/core';
3
3
  import { tuiWithStyles } from '@taiga-ui/cdk/utils/miscellaneous';
4
4
 
5
- class TuiButtonGroupStyles {
6
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiButtonGroupStyles, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
7
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: TuiButtonGroupStyles, isStandalone: true, selector: "ng-component", host: { classAttribute: "tui-button-group-styles" }, ngImport: i0, template: '', isInline: true, styles: ["[tuiButtonGroup],[tuiButtonGroup] tui-elastic-container{transition-property:background,height,border-radius;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;border-radius:var(--tui-radius-xl);overflow:hidden}[tuiButtonGroup],[tuiButtonGroup] tui-elastic-container .t-wrapper{display:flex;justify-content:center}[tuiButtonGroup] tui-elastic-container{inline-size:100%}[tuiButtonGroup] button,[tuiButtonGroup] a{transition-property:background;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;position:relative;display:flex;border:none;outline:none;background:transparent;align-items:center;flex:1;flex-direction:column;padding:1.125rem .25rem;gap:.5rem;font:var(--tui-font-text-ui-s);max-inline-size:calc(50% - 1.75rem);cursor:pointer;color:var(--tui-text-action);text-align:center;text-decoration:none;clip-path:inset(0)}[tuiButtonGroup] button:first-child,[tuiButtonGroup] a:first-child{clip-path:inset(0 0 0 -10rem)}[tuiButtonGroup] button:last-child,[tuiButtonGroup] a:last-child{clip-path:inset(0 -10rem 0 0)}[tuiButtonGroup] button:active,[tuiButtonGroup] a:active{background:var(--tui-background-neutral-1)}[tuiButtonGroup] button:before,[tuiButtonGroup] a:before,[tuiButtonGroup] button:after,[tuiButtonGroup] a:after{position:absolute;top:0;background:inherit;inline-size:1.75rem;block-size:100%}[tuiButtonGroup] button:first-child:before,[tuiButtonGroup] a:first-child:before{content:\"\";left:-1.75rem}[tuiButtonGroup] button:last-child:after,[tuiButtonGroup] a:last-child:after{content:\"\";right:-1.75rem}[tuiButtonGroup] button tui-icon,[tuiButtonGroup] a tui-icon{font-size:1.75rem}[tuiButtonGroup]:has(button:only-child){border-radius:1rem}[tuiButtonGroup] button:only-child,[tuiButtonGroup] a:only-child{inline-size:100%;flex-direction:row;font:var(--tui-font-text-ui-l);max-inline-size:100%;justify-content:center}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
5
+ class Styles {
6
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: Styles, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
7
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.17", type: Styles, isStandalone: true, selector: "ng-component", host: { classAttribute: "tui-button-group" }, ngImport: i0, template: '', isInline: true, styles: ["[tuiButtonGroup],[tuiButtonGroup] tui-elastic-container{transition-property:background,height,border-radius;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;border-radius:var(--tui-radius-xl);overflow:hidden}[tuiButtonGroup],[tuiButtonGroup] tui-elastic-container .t-wrapper{display:flex;justify-content:center}[tuiButtonGroup] tui-elastic-container{inline-size:100%}[tuiButtonGroup] button,[tuiButtonGroup] a{transition-property:background;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;position:relative;display:flex;border:none;outline:none;background:transparent;align-items:center;flex:1;flex-direction:column;padding:1.125rem .25rem;gap:.5rem;font:var(--tui-font-ui-s);max-inline-size:calc(50% - 1.75rem);cursor:pointer;color:var(--tui-text-action);text-align:center;text-decoration:none;clip-path:inset(0)}[tuiButtonGroup] button:first-child,[tuiButtonGroup] a:first-child{clip-path:inset(0 0 0 -10rem)}[tuiButtonGroup] button:last-child,[tuiButtonGroup] a:last-child{clip-path:inset(0 -10rem 0 0)}[tuiButtonGroup] button:active,[tuiButtonGroup] a:active{background:var(--tui-background-neutral-1)}[tuiButtonGroup] button:before,[tuiButtonGroup] a:before,[tuiButtonGroup] button:after,[tuiButtonGroup] a:after{position:absolute;top:0;background:inherit;inline-size:1.75rem;block-size:100%}[tuiButtonGroup] button:first-child:before,[tuiButtonGroup] a:first-child:before{content:\"\";left:-1.75rem}[tuiButtonGroup] button:last-child:after,[tuiButtonGroup] a:last-child:after{content:\"\";right:-1.75rem}[tuiButtonGroup] button tui-icon,[tuiButtonGroup] a tui-icon{font-size:1.75rem}[tuiButtonGroup]:has(button:only-child){border-radius:1rem}[tuiButtonGroup] button:only-child,[tuiButtonGroup] a:only-child{inline-size:100%;flex-direction:row;font:var(--tui-font-ui-l);max-inline-size:100%;justify-content:center}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
8
8
  }
9
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiButtonGroupStyles, decorators: [{
9
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: Styles, decorators: [{
10
10
  type: Component,
11
- args: [{ standalone: true, template: '', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: {
12
- class: 'tui-button-group-styles',
13
- }, styles: ["[tuiButtonGroup],[tuiButtonGroup] tui-elastic-container{transition-property:background,height,border-radius;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;border-radius:var(--tui-radius-xl);overflow:hidden}[tuiButtonGroup],[tuiButtonGroup] tui-elastic-container .t-wrapper{display:flex;justify-content:center}[tuiButtonGroup] tui-elastic-container{inline-size:100%}[tuiButtonGroup] button,[tuiButtonGroup] a{transition-property:background;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;position:relative;display:flex;border:none;outline:none;background:transparent;align-items:center;flex:1;flex-direction:column;padding:1.125rem .25rem;gap:.5rem;font:var(--tui-font-text-ui-s);max-inline-size:calc(50% - 1.75rem);cursor:pointer;color:var(--tui-text-action);text-align:center;text-decoration:none;clip-path:inset(0)}[tuiButtonGroup] button:first-child,[tuiButtonGroup] a:first-child{clip-path:inset(0 0 0 -10rem)}[tuiButtonGroup] button:last-child,[tuiButtonGroup] a:last-child{clip-path:inset(0 -10rem 0 0)}[tuiButtonGroup] button:active,[tuiButtonGroup] a:active{background:var(--tui-background-neutral-1)}[tuiButtonGroup] button:before,[tuiButtonGroup] a:before,[tuiButtonGroup] button:after,[tuiButtonGroup] a:after{position:absolute;top:0;background:inherit;inline-size:1.75rem;block-size:100%}[tuiButtonGroup] button:first-child:before,[tuiButtonGroup] a:first-child:before{content:\"\";left:-1.75rem}[tuiButtonGroup] button:last-child:after,[tuiButtonGroup] a:last-child:after{content:\"\";right:-1.75rem}[tuiButtonGroup] button tui-icon,[tuiButtonGroup] a tui-icon{font-size:1.75rem}[tuiButtonGroup]:has(button:only-child){border-radius:1rem}[tuiButtonGroup] button:only-child,[tuiButtonGroup] a:only-child{inline-size:100%;flex-direction:row;font:var(--tui-font-text-ui-l);max-inline-size:100%;justify-content:center}\n"] }]
11
+ args: [{ template: '', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: { class: 'tui-button-group' }, styles: ["[tuiButtonGroup],[tuiButtonGroup] tui-elastic-container{transition-property:background,height,border-radius;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;border-radius:var(--tui-radius-xl);overflow:hidden}[tuiButtonGroup],[tuiButtonGroup] tui-elastic-container .t-wrapper{display:flex;justify-content:center}[tuiButtonGroup] tui-elastic-container{inline-size:100%}[tuiButtonGroup] button,[tuiButtonGroup] a{transition-property:background;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;position:relative;display:flex;border:none;outline:none;background:transparent;align-items:center;flex:1;flex-direction:column;padding:1.125rem .25rem;gap:.5rem;font:var(--tui-font-ui-s);max-inline-size:calc(50% - 1.75rem);cursor:pointer;color:var(--tui-text-action);text-align:center;text-decoration:none;clip-path:inset(0)}[tuiButtonGroup] button:first-child,[tuiButtonGroup] a:first-child{clip-path:inset(0 0 0 -10rem)}[tuiButtonGroup] button:last-child,[tuiButtonGroup] a:last-child{clip-path:inset(0 -10rem 0 0)}[tuiButtonGroup] button:active,[tuiButtonGroup] a:active{background:var(--tui-background-neutral-1)}[tuiButtonGroup] button:before,[tuiButtonGroup] a:before,[tuiButtonGroup] button:after,[tuiButtonGroup] a:after{position:absolute;top:0;background:inherit;inline-size:1.75rem;block-size:100%}[tuiButtonGroup] button:first-child:before,[tuiButtonGroup] a:first-child:before{content:\"\";left:-1.75rem}[tuiButtonGroup] button:last-child:after,[tuiButtonGroup] a:last-child:after{content:\"\";right:-1.75rem}[tuiButtonGroup] button tui-icon,[tuiButtonGroup] a tui-icon{font-size:1.75rem}[tuiButtonGroup]:has(button:only-child){border-radius:1rem}[tuiButtonGroup] button:only-child,[tuiButtonGroup] a:only-child{inline-size:100%;flex-direction:row;font:var(--tui-font-ui-l);max-inline-size:100%;justify-content:center}\n"] }]
14
12
  }] });
15
13
  class TuiButtonGroup {
16
14
  constructor() {
17
- this.nothing = tuiWithStyles(TuiButtonGroupStyles);
15
+ this.nothing = tuiWithStyles(Styles);
18
16
  }
19
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiButtonGroup, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
20
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.15", type: TuiButtonGroup, isStandalone: true, selector: "[tuiButtonGroup]", ngImport: i0 }); }
17
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiButtonGroup, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
18
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.17", type: TuiButtonGroup, isStandalone: true, selector: "[tuiButtonGroup]", ngImport: i0 }); }
21
19
  }
22
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiButtonGroup, decorators: [{
20
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiButtonGroup, decorators: [{
23
21
  type: Directive,
24
22
  args: [{
25
- standalone: true,
26
23
  selector: '[tuiButtonGroup]',
27
24
  }]
28
25
  }] });
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-kit-directives-button-group.mjs","sources":["../../../projects/kit/directives/button-group/button-group.directive.ts","../../../projects/kit/directives/button-group/taiga-ui-kit-directives-button-group.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n Directive,\n ViewEncapsulation,\n} from '@angular/core';\nimport {tuiWithStyles} from '@taiga-ui/cdk/utils/miscellaneous';\n\n@Component({\n standalone: true,\n template: '',\n styleUrls: ['./button-group.style.less'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'tui-button-group-styles',\n },\n})\nclass TuiButtonGroupStyles {}\n\n@Directive({\n standalone: true,\n selector: '[tuiButtonGroup]',\n})\nexport class TuiButtonGroup {\n protected readonly nothing = tuiWithStyles(TuiButtonGroupStyles);\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;AAQA,MAUM,oBAAoB,CAAA;+GAApB,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAApB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,oBAAoB,6HARZ,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,g3DAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;4FAQV,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAVzB,SAAS;iCACM,IAAI,EAAA,QAAA,EACN,EAAE,EAAA,aAAA,EAEG,iBAAiB,CAAC,IAAI,EACpB,eAAA,EAAA,uBAAuB,CAAC,MAAM,EACzC,IAAA,EAAA;AACF,wBAAA,KAAK,EAAE,yBAAyB;AACnC,qBAAA,EAAA,MAAA,EAAA,CAAA,g3DAAA,CAAA,EAAA;;MAQQ,cAAc,CAAA;AAJ3B,IAAA,WAAA,GAAA;AAKuB,QAAA,IAAA,CAAA,OAAO,GAAG,aAAa,CAAC,oBAAoB,CAAC;AACnE;+GAFY,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAd,cAAc,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAAd,cAAc,EAAA,UAAA,EAAA,CAAA;kBAJ1B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,kBAAkB;AAC/B,iBAAA;;;ACvBD;;AAEG;;;;"}
1
+ {"version":3,"file":"taiga-ui-kit-directives-button-group.mjs","sources":["../../../projects/kit/directives/button-group/button-group.directive.ts","../../../projects/kit/directives/button-group/taiga-ui-kit-directives-button-group.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n Directive,\n ViewEncapsulation,\n} from '@angular/core';\nimport {tuiWithStyles} from '@taiga-ui/cdk/utils/miscellaneous';\n\n@Component({\n template: '',\n styleUrl: './button-group.style.less',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {class: 'tui-button-group'},\n})\nclass Styles {}\n\n@Directive({\n selector: '[tuiButtonGroup]',\n})\nexport class TuiButtonGroup {\n protected readonly nothing = tuiWithStyles(Styles);\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;AAQA,MAOM,MAAM,CAAA;+GAAN,MAAM,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAN,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,MAAM,sHANE,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,s2DAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;4FAMV,MAAM,EAAA,UAAA,EAAA,CAAA;kBAPX,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAE,EAEG,aAAA,EAAA,iBAAiB,CAAC,IAAI,EACpB,eAAA,EAAA,uBAAuB,CAAC,MAAM,EACzC,IAAA,EAAA,EAAC,KAAK,EAAE,kBAAkB,EAAC,EAAA,MAAA,EAAA,CAAA,s2DAAA,CAAA,EAAA;;MAOxB,cAAc,CAAA;AAH3B,IAAA,WAAA,GAAA;AAIuB,QAAA,IAAA,CAAA,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC;AACrD;+GAFY,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAd,cAAc,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAAd,cAAc,EAAA,UAAA,EAAA,CAAA;kBAH1B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,kBAAkB;AAC/B,iBAAA;;;ACnBD;;AAEG;;;;"}
@@ -1,48 +1,49 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Directive } from '@angular/core';
2
+ import { inject, Directive } from '@angular/core';
3
3
  import { TuiControl } from '@taiga-ui/cdk/classes';
4
4
  import * as i2 from '@taiga-ui/cdk/directives/native-validator';
5
5
  import { TuiNativeValidator } from '@taiga-ui/cdk/directives/native-validator';
6
+ import { tuiArrayToggle } from '@taiga-ui/cdk/utils/miscellaneous';
6
7
  import { tuiAsOptionContent, tuiAsDataListHost } from '@taiga-ui/core/components/data-list';
7
- import * as i3 from '@taiga-ui/core/components/textfield';
8
- import { TuiWithTextfieldDropdown } from '@taiga-ui/core/components/textfield';
9
- import * as i1 from '@taiga-ui/core/directives/dropdown';
10
- import { tuiDropdownOpen, tuiDropdownOptionsProvider, TuiDropdownDirective, TuiWithDropdownOpen } from '@taiga-ui/core/directives/dropdown';
8
+ import { TUI_ITEMS_HANDLERS } from '@taiga-ui/core/directives/items-handlers';
9
+ import * as i1 from '@taiga-ui/core/portals/dropdown';
10
+ import { TuiDropdownOpen, tuiDropdownOptionsProvider, TuiDropdownDirective, TuiWithDropdownOpen } from '@taiga-ui/core/portals/dropdown';
11
11
  import { TuiSelectOption } from '@taiga-ui/kit/components/select';
12
12
 
13
13
  class TuiButtonSelect extends TuiControl {
14
14
  constructor() {
15
15
  super(...arguments);
16
- this.open = tuiDropdownOpen();
16
+ this.open = inject(TuiDropdownOpen).open;
17
+ this.handlers = inject(TUI_ITEMS_HANDLERS);
17
18
  this.size = 's';
18
19
  }
19
20
  handleOption(option) {
20
- this.onChange(option);
21
- this.open.set(false);
21
+ if (Array.isArray(this.control.value)) {
22
+ const result = tuiArrayToggle(this.control.value, option, this.handlers.identityMatcher());
23
+ this.onChange(result);
24
+ }
25
+ else {
26
+ this.onChange(option);
27
+ this.open.set(false);
28
+ }
22
29
  }
23
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiButtonSelect, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
24
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.15", type: TuiButtonSelect, isStandalone: true, selector: "button[tuiButtonSelect]", providers: [
30
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiButtonSelect, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
31
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.17", type: TuiButtonSelect, isStandalone: true, selector: "button[tuiButtonSelect]", providers: [
25
32
  tuiAsOptionContent(TuiSelectOption),
26
33
  tuiAsDataListHost(TuiButtonSelect),
27
34
  tuiDropdownOptionsProvider({ align: 'right' }),
28
- ], usesInheritance: true, hostDirectives: [{ directive: i1.TuiDropdownDirective }, { directive: i2.TuiNativeValidator }, { directive: i1.TuiWithDropdownOpen }, { directive: i3.TuiWithTextfieldDropdown }], ngImport: i0 }); }
35
+ ], usesInheritance: true, hostDirectives: [{ directive: i1.TuiDropdownDirective }, { directive: i2.TuiNativeValidator }, { directive: i1.TuiWithDropdownOpen }], ngImport: i0 }); }
29
36
  }
30
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiButtonSelect, decorators: [{
37
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiButtonSelect, decorators: [{
31
38
  type: Directive,
32
39
  args: [{
33
- standalone: true,
34
40
  selector: 'button[tuiButtonSelect]',
35
41
  providers: [
36
42
  tuiAsOptionContent(TuiSelectOption),
37
43
  tuiAsDataListHost(TuiButtonSelect),
38
44
  tuiDropdownOptionsProvider({ align: 'right' }),
39
45
  ],
40
- hostDirectives: [
41
- TuiDropdownDirective,
42
- TuiNativeValidator,
43
- TuiWithDropdownOpen,
44
- TuiWithTextfieldDropdown,
45
- ],
46
+ hostDirectives: [TuiDropdownDirective, TuiNativeValidator, TuiWithDropdownOpen],
46
47
  }]
47
48
  }] });
48
49
 
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-kit-directives-button-select.mjs","sources":["../../../projects/kit/directives/button-select/button-select.directive.ts","../../../projects/kit/directives/button-select/taiga-ui-kit-directives-button-select.ts"],"sourcesContent":["import {Directive} from '@angular/core';\nimport {TuiControl} from '@taiga-ui/cdk/classes';\nimport {TuiNativeValidator} from '@taiga-ui/cdk/directives/native-validator';\nimport {\n tuiAsDataListHost,\n tuiAsOptionContent,\n type TuiDataListHost,\n} from '@taiga-ui/core/components/data-list';\nimport {TuiWithTextfieldDropdown} from '@taiga-ui/core/components/textfield';\nimport {\n TuiDropdownDirective,\n tuiDropdownOpen,\n tuiDropdownOptionsProvider,\n TuiWithDropdownOpen,\n} from '@taiga-ui/core/directives/dropdown';\nimport {TuiSelectOption} from '@taiga-ui/kit/components/select';\n\n@Directive({\n standalone: true,\n selector: 'button[tuiButtonSelect]',\n providers: [\n tuiAsOptionContent(TuiSelectOption),\n tuiAsDataListHost(TuiButtonSelect),\n tuiDropdownOptionsProvider({align: 'right'}),\n ],\n hostDirectives: [\n TuiDropdownDirective,\n TuiNativeValidator,\n TuiWithDropdownOpen,\n TuiWithTextfieldDropdown,\n ],\n})\nexport class TuiButtonSelect<T> extends TuiControl<T> implements TuiDataListHost<T> {\n private readonly open = tuiDropdownOpen();\n\n public readonly size = 's';\n\n public handleOption(option: T): void {\n this.onChange(option);\n this.open.set(false);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;;AAgCM,MAAO,eAAmB,SAAQ,UAAa,CAAA;AAfrD,IAAA,WAAA,GAAA;;QAgBqB,IAAI,CAAA,IAAA,GAAG,eAAe,EAAE;QAEzB,IAAI,CAAA,IAAA,GAAG,GAAG;AAM7B;AAJU,IAAA,YAAY,CAAC,MAAS,EAAA;AACzB,QAAA,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;AACrB,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;;+GAPf,eAAe,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAf,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,eAAe,EAZb,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,SAAA,EAAA;YACP,kBAAkB,CAAC,eAAe,CAAC;YACnC,iBAAiB,CAAC,eAAe,CAAC;AAClC,YAAA,0BAA0B,CAAC,EAAC,KAAK,EAAE,OAAO,EAAC,CAAC;AAC/C,SAAA,EAAA,eAAA,EAAA,IAAA,EAAA,cAAA,EAAA,CAAA,EAAA,SAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,EAAA,EAAA,SAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,EAAA,EAAA,SAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,EAAA,EAAA,SAAA,EAAA,EAAA,CAAA,wBAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAQQ,eAAe,EAAA,UAAA,EAAA,CAAA;kBAf3B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,yBAAyB;AACnC,oBAAA,SAAS,EAAE;wBACP,kBAAkB,CAAC,eAAe,CAAC;AACnC,wBAAA,iBAAiB,CAAiB,eAAA,CAAA;AAClC,wBAAA,0BAA0B,CAAC,EAAC,KAAK,EAAE,OAAO,EAAC,CAAC;AAC/C,qBAAA;AACD,oBAAA,cAAc,EAAE;wBACZ,oBAAoB;wBACpB,kBAAkB;wBAClB,mBAAmB;wBACnB,wBAAwB;AAC3B,qBAAA;AACJ,iBAAA;;;AC/BD;;AAEG;;;;"}
1
+ {"version":3,"file":"taiga-ui-kit-directives-button-select.mjs","sources":["../../../projects/kit/directives/button-select/button-select.directive.ts","../../../projects/kit/directives/button-select/taiga-ui-kit-directives-button-select.ts"],"sourcesContent":["import {Directive, inject} from '@angular/core';\nimport {TuiControl} from '@taiga-ui/cdk/classes';\nimport {TuiNativeValidator} from '@taiga-ui/cdk/directives/native-validator';\nimport {tuiArrayToggle} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {\n tuiAsDataListHost,\n tuiAsOptionContent,\n type TuiDataListHost,\n} from '@taiga-ui/core/components/data-list';\nimport {TUI_ITEMS_HANDLERS} from '@taiga-ui/core/directives/items-handlers';\nimport {\n TuiDropdownDirective,\n TuiDropdownOpen,\n tuiDropdownOptionsProvider,\n TuiWithDropdownOpen,\n} from '@taiga-ui/core/portals/dropdown';\nimport {TuiSelectOption} from '@taiga-ui/kit/components/select';\n\n@Directive({\n selector: 'button[tuiButtonSelect]',\n providers: [\n tuiAsOptionContent(TuiSelectOption),\n tuiAsDataListHost(TuiButtonSelect),\n tuiDropdownOptionsProvider({align: 'right'}),\n ],\n hostDirectives: [TuiDropdownDirective, TuiNativeValidator, TuiWithDropdownOpen],\n})\nexport class TuiButtonSelect<T>\n extends TuiControl<T | T[]>\n implements TuiDataListHost<T>\n{\n private readonly open = inject(TuiDropdownOpen).open;\n private readonly handlers = inject(TUI_ITEMS_HANDLERS);\n\n public readonly size = 's';\n\n public handleOption(option: T): void {\n if (Array.isArray(this.control.value)) {\n const result = tuiArrayToggle(\n this.control.value as T[],\n option,\n this.handlers.identityMatcher(),\n );\n\n this.onChange(result);\n } else {\n this.onChange(option);\n this.open.set(false);\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;;AA2BM,MAAO,eACT,SAAQ,UAAmB,CAAA;AAV/B,IAAA,WAAA,GAAA;;AAaqB,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAAC,eAAe,CAAC,CAAC,IAAI;AACnC,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,kBAAkB,CAAC;QAEtC,IAAI,CAAA,IAAA,GAAG,GAAG;AAgB7B;AAdU,IAAA,YAAY,CAAC,MAAS,EAAA;QACzB,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AACnC,YAAA,MAAM,MAAM,GAAG,cAAc,CACzB,IAAI,CAAC,OAAO,CAAC,KAAY,EACzB,MAAM,EACN,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE,CAClC;AAED,YAAA,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;;aAClB;AACH,YAAA,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;AACrB,YAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;;;+GApBnB,eAAe,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAf,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,eAAe,EAPb,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,SAAA,EAAA;YACP,kBAAkB,CAAC,eAAe,CAAC;YACnC,iBAAiB,CAAC,eAAe,CAAC;AAClC,YAAA,0BAA0B,CAAC,EAAC,KAAK,EAAE,OAAO,EAAC,CAAC;AAC/C,SAAA,EAAA,eAAA,EAAA,IAAA,EAAA,cAAA,EAAA,CAAA,EAAA,SAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,EAAA,EAAA,SAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,EAAA,EAAA,SAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAGQ,eAAe,EAAA,UAAA,EAAA,CAAA;kBAT3B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,yBAAyB;AACnC,oBAAA,SAAS,EAAE;wBACP,kBAAkB,CAAC,eAAe,CAAC;AACnC,wBAAA,iBAAiB,CAAiB,eAAA,CAAA;AAClC,wBAAA,0BAA0B,CAAC,EAAC,KAAK,EAAE,OAAO,EAAC,CAAC;AAC/C,qBAAA;AACD,oBAAA,cAAc,EAAE,CAAC,oBAAoB,EAAE,kBAAkB,EAAE,mBAAmB,CAAC;AAClF,iBAAA;;;AC1BD;;AAEG;;;;"}
@@ -1,47 +1,41 @@
1
1
  import * as i0 from '@angular/core';
2
- import { InjectionToken, ChangeDetectionStrategy, ViewEncapsulation, Component, inject, effect, signal, Input, Directive } from '@angular/core';
2
+ import { InjectionToken, ChangeDetectionStrategy, ViewEncapsulation, Component, inject, effect, input, Directive } from '@angular/core';
3
+ import { tuiProvide } from '@taiga-ui/cdk/utils/di';
3
4
  import { tuiInjectElement } from '@taiga-ui/cdk/utils/dom';
4
- import { tuiWithStyles, tuiProvide } from '@taiga-ui/cdk/utils/miscellaneous';
5
- import { TuiDropdownDirective } from '@taiga-ui/core/directives/dropdown';
5
+ import { tuiWithStyles } from '@taiga-ui/cdk/utils/miscellaneous';
6
+ import { TuiDropdownDirective } from '@taiga-ui/core/portals/dropdown';
6
7
  import { TUI_ICON_END } from '@taiga-ui/core/tokens';
7
8
 
8
9
  const TUI_CHEVRON = new InjectionToken(ngDevMode ? 'TUI_CHEVRON' : '', {
9
10
  factory: () => '@tui.chevron-down',
10
11
  });
11
- class TuiChevronStyles {
12
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiChevronStyles, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
13
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: TuiChevronStyles, isStandalone: true, selector: "ng-component", host: { classAttribute: "tui-chevron" }, ngImport: i0, template: '', isInline: true, styles: ["[tuiChevron][tuiIcons]:after,tui-icon[tuiChevron]:before{transition-property:transform,color;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;cursor:pointer}tui-textfield[tuiChevron][tuiIcons]:after{font-size:1rem}tui-textfield[data-size=s][tuiChevron][tuiIcons]:after{margin-inline-end:calc(-.125rem - var(--t-padding))}tui-textfield[data-size=m][tuiChevron][tuiIcons]:after{margin-inline-end:calc(.125rem - var(--t-padding))}tui-textfield[data-size=l][tuiChevron][tuiIcons]:after{margin-inline-end:calc(.25rem - var(--t-padding))}[tuiChevron][tuiIcons]._chevron-rotated:after,tui-icon[tuiChevron]._chevron-rotated:before{transform:rotate(180deg)}[tuiChevron]:has(input[tuiAppearance]:read-only):after{cursor:default}tui-textfield[tuiChevron][style*=\"--t-icon-end:\"][data-size=l]{--t-end: 1.875rem}tui-textfield[tuiChevron][style*=\"--t-icon-end:\"][data-size=m]{--t-end: 1.5rem}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
12
+ class Styles {
13
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: Styles, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
14
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.17", type: Styles, isStandalone: true, selector: "ng-component", host: { classAttribute: "tui-chevron" }, ngImport: i0, template: '', isInline: true, styles: ["[tuiChevron][tuiIcons]:after,tui-icon[tuiChevron]:before{transition-property:transform,color;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;cursor:pointer;font-size:1rem}[tuiButton][data-size=m][tuiChevron][tuiIcons]:after{margin-inline-end:-.125rem}tui-textfield[data-size=s][tuiChevron][tuiIcons]:after{margin-inline-end:calc(-.125rem - var(--t-padding))}tui-textfield[data-size=m][tuiChevron][tuiIcons]:after{margin-inline-end:calc(.125rem - var(--t-padding))}tui-textfield[data-size=l][tuiChevron][tuiIcons]:after{margin-inline-end:calc(.25rem - var(--t-padding))}[tuiChevron][tuiIcons]._chevron-rotated:after,tui-icon[tuiChevron]._chevron-rotated:before{transform:rotate(180deg)}tui-textfield[tuiChevron][data-icon-end][data-size=l]{--t-end: 1.875rem}tui-textfield[tuiChevron][data-icon-end][data-size=m]{--t-end: 1.5rem}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
14
15
  }
15
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiChevronStyles, decorators: [{
16
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: Styles, decorators: [{
16
17
  type: Component,
17
- args: [{ standalone: true, template: '', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: { class: 'tui-chevron' }, styles: ["[tuiChevron][tuiIcons]:after,tui-icon[tuiChevron]:before{transition-property:transform,color;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;cursor:pointer}tui-textfield[tuiChevron][tuiIcons]:after{font-size:1rem}tui-textfield[data-size=s][tuiChevron][tuiIcons]:after{margin-inline-end:calc(-.125rem - var(--t-padding))}tui-textfield[data-size=m][tuiChevron][tuiIcons]:after{margin-inline-end:calc(.125rem - var(--t-padding))}tui-textfield[data-size=l][tuiChevron][tuiIcons]:after{margin-inline-end:calc(.25rem - var(--t-padding))}[tuiChevron][tuiIcons]._chevron-rotated:after,tui-icon[tuiChevron]._chevron-rotated:before{transform:rotate(180deg)}[tuiChevron]:has(input[tuiAppearance]:read-only):after{cursor:default}tui-textfield[tuiChevron][style*=\"--t-icon-end:\"][data-size=l]{--t-end: 1.875rem}tui-textfield[tuiChevron][style*=\"--t-icon-end:\"][data-size=m]{--t-end: 1.5rem}\n"] }]
18
+ args: [{ template: '', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: { class: 'tui-chevron' }, styles: ["[tuiChevron][tuiIcons]:after,tui-icon[tuiChevron]:before{transition-property:transform,color;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;cursor:pointer;font-size:1rem}[tuiButton][data-size=m][tuiChevron][tuiIcons]:after{margin-inline-end:-.125rem}tui-textfield[data-size=s][tuiChevron][tuiIcons]:after{margin-inline-end:calc(-.125rem - var(--t-padding))}tui-textfield[data-size=m][tuiChevron][tuiIcons]:after{margin-inline-end:calc(.125rem - var(--t-padding))}tui-textfield[data-size=l][tuiChevron][tuiIcons]:after{margin-inline-end:calc(.25rem - var(--t-padding))}[tuiChevron][tuiIcons]._chevron-rotated:after,tui-icon[tuiChevron]._chevron-rotated:before{transform:rotate(180deg)}tui-textfield[tuiChevron][data-icon-end][data-size=l]{--t-end: 1.875rem}tui-textfield[tuiChevron][data-icon-end][data-size=m]{--t-end: 1.5rem}\n"] }]
18
19
  }] });
19
20
  class TuiChevron {
20
21
  constructor() {
21
22
  this.el = tuiInjectElement();
22
23
  this.dropdown = inject(TuiDropdownDirective, { optional: true });
23
- this.nothing = tuiWithStyles(TuiChevronStyles);
24
- this.toggle = effect(() => this.el.classList.toggle('_chevron-rotated', this.chevron() || (this.chevron() === '' && !!this.dropdown?.ref())));
25
- // TODO: refactor to signal inputs after Angular update
26
- this.chevron = signal('');
24
+ this.nothing = tuiWithStyles(Styles);
25
+ this.toggle = effect(() => this.el.classList.toggle('_chevron-rotated', this.rotated() || (this.rotated() === '' && !!this.dropdown?.ref())));
26
+ this.rotated = input('', { alias: 'tuiChevron' });
27
27
  }
28
- set tuiChevron(chevron) {
29
- this.chevron.set(chevron);
30
- }
31
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiChevron, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
32
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.15", type: TuiChevron, isStandalone: true, selector: "[tuiChevron]", inputs: { tuiChevron: "tuiChevron" }, host: { attributes: { "tuiChevron": "" } }, providers: [tuiProvide(TUI_ICON_END, TUI_CHEVRON)], ngImport: i0 }); }
28
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiChevron, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
29
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.17", type: TuiChevron, isStandalone: true, selector: "[tuiChevron]", inputs: { rotated: { classPropertyName: "rotated", publicName: "tuiChevron", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "tuiChevron": "" } }, providers: [tuiProvide(TUI_ICON_END, TUI_CHEVRON)], ngImport: i0 }); }
33
30
  }
34
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiChevron, decorators: [{
31
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiChevron, decorators: [{
35
32
  type: Directive,
36
33
  args: [{
37
- standalone: true,
38
34
  selector: '[tuiChevron]',
39
35
  providers: [tuiProvide(TUI_ICON_END, TUI_CHEVRON)],
40
36
  host: { tuiChevron: '' },
41
37
  }]
42
- }], propDecorators: { tuiChevron: [{
43
- type: Input
44
- }] } });
38
+ }] });
45
39
 
46
40
  /**
47
41
  * Generated bundle index. Do not edit.
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-kit-directives-chevron.mjs","sources":["../../../projects/kit/directives/chevron/chevron.directive.ts","../../../projects/kit/directives/chevron/taiga-ui-kit-directives-chevron.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n Directive,\n effect,\n inject,\n InjectionToken,\n Input,\n signal,\n ViewEncapsulation,\n} from '@angular/core';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {tuiProvide, tuiWithStyles} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TuiDropdownDirective} from '@taiga-ui/core/directives/dropdown';\nimport {TUI_ICON_END} from '@taiga-ui/core/tokens';\n\nexport const TUI_CHEVRON = new InjectionToken(ngDevMode ? 'TUI_CHEVRON' : '', {\n factory: () => '@tui.chevron-down',\n});\n\n@Component({\n standalone: true,\n template: '',\n styleUrls: ['./chevron.style.less'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {class: 'tui-chevron'},\n})\nclass TuiChevronStyles {}\n\n@Directive({\n standalone: true,\n selector: '[tuiChevron]',\n providers: [tuiProvide(TUI_ICON_END, TUI_CHEVRON)],\n host: {tuiChevron: ''},\n})\nexport class TuiChevron {\n private readonly el = tuiInjectElement();\n private readonly dropdown = inject(TuiDropdownDirective, {optional: true});\n\n protected readonly nothing = tuiWithStyles(TuiChevronStyles);\n protected readonly toggle = effect(() =>\n this.el.classList.toggle(\n '_chevron-rotated',\n this.chevron() || (this.chevron() === '' && !!this.dropdown?.ref()),\n ),\n );\n\n // TODO: refactor to signal inputs after Angular update\n public readonly chevron = signal<boolean | ''>('');\n\n @Input()\n public set tuiChevron(chevron: boolean | '') {\n this.chevron.set(chevron);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;AAgBa,MAAA,WAAW,GAAG,IAAI,cAAc,CAAC,SAAS,GAAG,aAAa,GAAG,EAAE,EAAE;AAC1E,IAAA,OAAO,EAAE,MAAM,mBAAmB;AACrC,CAAA;AAED,MAQM,gBAAgB,CAAA;+GAAhB,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAhB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,gBAAgB,iHANR,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,y5BAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;4FAMV,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBARrB,SAAS;AACM,YAAA,IAAA,EAAA,CAAA,EAAA,UAAA,EAAA,IAAI,EACN,QAAA,EAAA,EAAE,EAEG,aAAA,EAAA,iBAAiB,CAAC,IAAI,EAAA,eAAA,EACpB,uBAAuB,CAAC,MAAM,EACzC,IAAA,EAAA,EAAC,KAAK,EAAE,aAAa,EAAC,EAAA,MAAA,EAAA,CAAA,y5BAAA,CAAA,EAAA;;MAUnB,UAAU,CAAA;AANvB,IAAA,WAAA,GAAA;QAOqB,IAAE,CAAA,EAAA,GAAG,gBAAgB,EAAE;QACvB,IAAQ,CAAA,QAAA,GAAG,MAAM,CAAC,oBAAoB,EAAE,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC;AAEvD,QAAA,IAAA,CAAA,OAAO,GAAG,aAAa,CAAC,gBAAgB,CAAC;AACzC,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,MAC/B,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,MAAM,CACpB,kBAAkB,EAClB,IAAI,CAAC,OAAO,EAAE,KAAK,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,CACtE,CACJ;;AAGe,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAe,EAAE,CAAC;AAMrD;IAJG,IACW,UAAU,CAAC,OAAqB,EAAA;AACvC,QAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC;;+GAjBpB,UAAU,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAV,UAAU,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,YAAA,EAAA,EAAA,EAAA,EAAA,EAAA,SAAA,EAHR,CAAC,UAAU,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAGzC,UAAU,EAAA,UAAA,EAAA,CAAA;kBANtB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,cAAc;oBACxB,SAAS,EAAE,CAAC,UAAU,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;AAClD,oBAAA,IAAI,EAAE,EAAC,UAAU,EAAE,EAAE,EAAC;AACzB,iBAAA;8BAiBc,UAAU,EAAA,CAAA;sBADpB;;;ACnDL;;AAEG;;;;"}
1
+ {"version":3,"file":"taiga-ui-kit-directives-chevron.mjs","sources":["../../../projects/kit/directives/chevron/chevron.directive.ts","../../../projects/kit/directives/chevron/taiga-ui-kit-directives-chevron.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n Directive,\n effect,\n inject,\n InjectionToken,\n input,\n ViewEncapsulation,\n} from '@angular/core';\nimport {tuiProvide} from '@taiga-ui/cdk/utils/di';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {tuiWithStyles} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TuiDropdownDirective} from '@taiga-ui/core/portals/dropdown';\nimport {TUI_ICON_END} from '@taiga-ui/core/tokens';\n\nexport const TUI_CHEVRON = new InjectionToken(ngDevMode ? 'TUI_CHEVRON' : '', {\n factory: () => '@tui.chevron-down',\n});\n\n@Component({\n template: '',\n styleUrl: './chevron.style.less',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {class: 'tui-chevron'},\n})\nclass Styles {}\n\n@Directive({\n selector: '[tuiChevron]',\n providers: [tuiProvide(TUI_ICON_END, TUI_CHEVRON)],\n host: {tuiChevron: ''},\n})\nexport class TuiChevron {\n private readonly el = tuiInjectElement();\n private readonly dropdown = inject(TuiDropdownDirective, {optional: true});\n\n protected readonly nothing = tuiWithStyles(Styles);\n protected readonly toggle = effect(() =>\n this.el.classList.toggle(\n '_chevron-rotated',\n this.rotated() || (this.rotated() === '' && !!this.dropdown?.ref()),\n ),\n );\n\n public readonly rotated = input<boolean | ''>('', {alias: 'tuiChevron'});\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;AAgBa,MAAA,WAAW,GAAG,IAAI,cAAc,CAAC,SAAS,GAAG,aAAa,GAAG,EAAE,EAAE;AAC1E,IAAA,OAAO,EAAE,MAAM,mBAAmB;AACrC,CAAA;AAED,MAOM,MAAM,CAAA;+GAAN,MAAM,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAN,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,MAAM,iHANE,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,m2BAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;4FAMV,MAAM,EAAA,UAAA,EAAA,CAAA;kBAPX,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAE,EAEG,aAAA,EAAA,iBAAiB,CAAC,IAAI,EACpB,eAAA,EAAA,uBAAuB,CAAC,MAAM,EACzC,IAAA,EAAA,EAAC,KAAK,EAAE,aAAa,EAAC,EAAA,MAAA,EAAA,CAAA,m2BAAA,CAAA,EAAA;;MASnB,UAAU,CAAA;AALvB,IAAA,WAAA,GAAA;QAMqB,IAAE,CAAA,EAAA,GAAG,gBAAgB,EAAE;QACvB,IAAQ,CAAA,QAAA,GAAG,MAAM,CAAC,oBAAoB,EAAE,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC;AAEvD,QAAA,IAAA,CAAA,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC;AAC/B,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,MAC/B,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,MAAM,CACpB,kBAAkB,EAClB,IAAI,CAAC,OAAO,EAAE,KAAK,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,CACtE,CACJ;QAEe,IAAO,CAAA,OAAA,GAAG,KAAK,CAAe,EAAE,EAAE,EAAC,KAAK,EAAE,YAAY,EAAC,CAAC;AAC3E;+GAbY,UAAU,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAV,UAAU,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,YAAA,EAAA,EAAA,EAAA,EAAA,EAAA,SAAA,EAHR,CAAC,UAAU,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAGzC,UAAU,EAAA,UAAA,EAAA,CAAA;kBALtB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,cAAc;oBACxB,SAAS,EAAE,CAAC,UAAU,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;AAClD,oBAAA,IAAI,EAAE,EAAC,UAAU,EAAE,EAAE,EAAC;AACzB,iBAAA;;;ACjCD;;AAEG;;;;"}
@@ -2,31 +2,25 @@ import * as i0 from '@angular/core';
2
2
  import { ChangeDetectionStrategy, ViewEncapsulation, Component, Directive } from '@angular/core';
3
3
  import { tuiWithStyles } from '@taiga-ui/cdk/utils/miscellaneous';
4
4
 
5
- class TuiConnectedStyles {
6
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiConnectedStyles, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
7
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: TuiConnectedStyles, isStandalone: true, selector: "ng-component", host: { classAttribute: "tui-connected-styles" }, ngImport: i0, template: '', isInline: true, styles: ["[tuiConnected]{--t-image-size: 2.5rem;--t-connected-height: calc(100% - var(--t-image-size) - .5rem)}[tuiConnected][tuiCardLarge]{--t-connected-height: calc(100% - var(--t-image-size) - .25rem)}tui-accordion[tuiConnected]{--t-image-size: 2rem}[tuiConnected]>[tuiAccordion]:before,[tuiConnected]>[tuiCell]:not(:last-of-type):before,[tuiConnected]>[tuiStep]:not(:last-of-type):before{content:\"\";position:absolute;top:calc(var(--t-image-size) + .25rem);left:calc(var(--t-image-size) / 2);display:block;inset-inline-start:calc(var(--t-image-size) / 2);block-size:var(--t-connected-height);inline-size:1px;color:var(--tui-border-normal);background:linear-gradient(to bottom,currentColor 75%,transparent 75%) top center / 300% 300%;background-clip:content-box;padding:inherit}[tuiConnected]>[tuiAccordion]{gap:1rem;--t-margin: 0}[tuiConnected]>[tuiAccordion]:before{top:0;left:calc(var(--t-image-size) / 2);inset-inline-start:calc(var(--t-image-size) / 2);block-size:100%;margin:0;background:var(--tui-border-normal);mask:linear-gradient(to top,black calc(50% - var(--t-image-size) / 2),transparent calc(50% - var(--t-image-size) / 2),transparent calc(50% + var(--t-image-size) / 2),black calc(50% + var(--t-image-size) / 2))}[tuiConnected]>[tuiAccordion]:first-of-type:before{mask:linear-gradient(to top,black calc(50% - var(--t-image-size) / 2),transparent calc(50% - var(--t-image-size) / 2))}[tuiConnected]>[tuiAccordion]:last-of-type:before{mask:linear-gradient(to bottom,black calc(50% - var(--t-image-size) / 2),transparent calc(50% - var(--t-image-size) / 2))}[tuiConnected]>tui-expand>*{padding:0;padding-inline-start:3rem}[tuiConnected]>tui-expand:not(:last-child):before{content:\"\";position:absolute;top:0;left:calc(var(--t-image-size) / 2);inset-inline-start:calc(var(--t-image-size) / 2);block-size:100%;inline-size:1px;background:var(--tui-border-normal)}[tuiConnected]>[tuiStep]{--t-image-size: 2rem;--t-connected-height: calc(100% - var(--t-image-size) + .75rem)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
5
+ class Styles {
6
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: Styles, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
7
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.17", type: Styles, isStandalone: true, selector: "ng-component", host: { classAttribute: "tui-connected" }, ngImport: i0, template: '', isInline: true, styles: ["[tuiConnected]{--t-image-size: 2.5rem;--t-connected-height: calc(100% - var(--t-image-size) - .5rem)}[tuiConnected][tuiCardLarge]{--t-connected-height: calc(100% - var(--t-image-size) - .25rem)}tui-accordion[tuiConnected]{--t-image-size: 2rem}[tuiConnected]>[tuiAccordion]:before,[tuiConnected]>[tuiCell]:not(:last-of-type):before,[tuiConnected]>[tuiStep]:not(:last-of-type):before{content:\"\";position:absolute;top:calc(var(--t-image-size) + .25rem);left:calc(var(--t-image-size) / 2);display:block;inset-inline-start:calc(var(--t-image-size) / 2);block-size:var(--t-connected-height);inline-size:1px;color:var(--tui-border-normal);background:linear-gradient(to bottom,currentColor 75%,transparent 75%) top center / 300% 300%;background-clip:content-box;padding:inherit}[tuiConnected]>[tuiAccordion]{gap:1rem;--t-margin: 0}[tuiConnected]>[tuiAccordion]:before{top:0;left:calc(var(--t-image-size) / 2);inset-inline-start:calc(var(--t-image-size) / 2);block-size:100%;margin:0;background:var(--tui-border-normal);mask:linear-gradient(to top,black calc(50% - var(--t-image-size) / 2),transparent calc(50% - var(--t-image-size) / 2),transparent calc(50% + var(--t-image-size) / 2),black calc(50% + var(--t-image-size) / 2))}[tuiConnected]>[tuiAccordion]:first-of-type:before{mask:linear-gradient(to top,black calc(50% - var(--t-image-size) / 2),transparent calc(50% - var(--t-image-size) / 2))}[tuiConnected]>[tuiAccordion]:last-of-type:before{mask:linear-gradient(to bottom,black calc(50% - var(--t-image-size) / 2),transparent calc(50% - var(--t-image-size) / 2))}[tuiConnected]>tui-expand>*{padding:0;padding-inline-start:3rem}[tuiConnected]>tui-expand:not(:last-child):before{content:\"\";position:absolute;top:0;left:calc(var(--t-image-size) / 2);inset-inline-start:calc(var(--t-image-size) / 2);block-size:100%;inline-size:1px;background:var(--tui-border-normal)}[tuiConnected]>[tuiStep]{--t-image-size: 2rem;--t-connected-height: calc(100% - var(--t-image-size))}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
8
8
  }
9
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiConnectedStyles, decorators: [{
9
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: Styles, decorators: [{
10
10
  type: Component,
11
- args: [{ standalone: true, template: '', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: {
12
- class: 'tui-connected-styles',
13
- }, styles: ["[tuiConnected]{--t-image-size: 2.5rem;--t-connected-height: calc(100% - var(--t-image-size) - .5rem)}[tuiConnected][tuiCardLarge]{--t-connected-height: calc(100% - var(--t-image-size) - .25rem)}tui-accordion[tuiConnected]{--t-image-size: 2rem}[tuiConnected]>[tuiAccordion]:before,[tuiConnected]>[tuiCell]:not(:last-of-type):before,[tuiConnected]>[tuiStep]:not(:last-of-type):before{content:\"\";position:absolute;top:calc(var(--t-image-size) + .25rem);left:calc(var(--t-image-size) / 2);display:block;inset-inline-start:calc(var(--t-image-size) / 2);block-size:var(--t-connected-height);inline-size:1px;color:var(--tui-border-normal);background:linear-gradient(to bottom,currentColor 75%,transparent 75%) top center / 300% 300%;background-clip:content-box;padding:inherit}[tuiConnected]>[tuiAccordion]{gap:1rem;--t-margin: 0}[tuiConnected]>[tuiAccordion]:before{top:0;left:calc(var(--t-image-size) / 2);inset-inline-start:calc(var(--t-image-size) / 2);block-size:100%;margin:0;background:var(--tui-border-normal);mask:linear-gradient(to top,black calc(50% - var(--t-image-size) / 2),transparent calc(50% - var(--t-image-size) / 2),transparent calc(50% + var(--t-image-size) / 2),black calc(50% + var(--t-image-size) / 2))}[tuiConnected]>[tuiAccordion]:first-of-type:before{mask:linear-gradient(to top,black calc(50% - var(--t-image-size) / 2),transparent calc(50% - var(--t-image-size) / 2))}[tuiConnected]>[tuiAccordion]:last-of-type:before{mask:linear-gradient(to bottom,black calc(50% - var(--t-image-size) / 2),transparent calc(50% - var(--t-image-size) / 2))}[tuiConnected]>tui-expand>*{padding:0;padding-inline-start:3rem}[tuiConnected]>tui-expand:not(:last-child):before{content:\"\";position:absolute;top:0;left:calc(var(--t-image-size) / 2);inset-inline-start:calc(var(--t-image-size) / 2);block-size:100%;inline-size:1px;background:var(--tui-border-normal)}[tuiConnected]>[tuiStep]{--t-image-size: 2rem;--t-connected-height: calc(100% - var(--t-image-size) + .75rem)}\n"] }]
11
+ args: [{ template: '', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: { class: 'tui-connected' }, styles: ["[tuiConnected]{--t-image-size: 2.5rem;--t-connected-height: calc(100% - var(--t-image-size) - .5rem)}[tuiConnected][tuiCardLarge]{--t-connected-height: calc(100% - var(--t-image-size) - .25rem)}tui-accordion[tuiConnected]{--t-image-size: 2rem}[tuiConnected]>[tuiAccordion]:before,[tuiConnected]>[tuiCell]:not(:last-of-type):before,[tuiConnected]>[tuiStep]:not(:last-of-type):before{content:\"\";position:absolute;top:calc(var(--t-image-size) + .25rem);left:calc(var(--t-image-size) / 2);display:block;inset-inline-start:calc(var(--t-image-size) / 2);block-size:var(--t-connected-height);inline-size:1px;color:var(--tui-border-normal);background:linear-gradient(to bottom,currentColor 75%,transparent 75%) top center / 300% 300%;background-clip:content-box;padding:inherit}[tuiConnected]>[tuiAccordion]{gap:1rem;--t-margin: 0}[tuiConnected]>[tuiAccordion]:before{top:0;left:calc(var(--t-image-size) / 2);inset-inline-start:calc(var(--t-image-size) / 2);block-size:100%;margin:0;background:var(--tui-border-normal);mask:linear-gradient(to top,black calc(50% - var(--t-image-size) / 2),transparent calc(50% - var(--t-image-size) / 2),transparent calc(50% + var(--t-image-size) / 2),black calc(50% + var(--t-image-size) / 2))}[tuiConnected]>[tuiAccordion]:first-of-type:before{mask:linear-gradient(to top,black calc(50% - var(--t-image-size) / 2),transparent calc(50% - var(--t-image-size) / 2))}[tuiConnected]>[tuiAccordion]:last-of-type:before{mask:linear-gradient(to bottom,black calc(50% - var(--t-image-size) / 2),transparent calc(50% - var(--t-image-size) / 2))}[tuiConnected]>tui-expand>*{padding:0;padding-inline-start:3rem}[tuiConnected]>tui-expand:not(:last-child):before{content:\"\";position:absolute;top:0;left:calc(var(--t-image-size) / 2);inset-inline-start:calc(var(--t-image-size) / 2);block-size:100%;inline-size:1px;background:var(--tui-border-normal)}[tuiConnected]>[tuiStep]{--t-image-size: 2rem;--t-connected-height: calc(100% - var(--t-image-size))}\n"] }]
14
12
  }] });
15
13
  class TuiConnected {
16
14
  constructor() {
17
- this.nothing = tuiWithStyles(TuiConnectedStyles);
15
+ this.nothing = tuiWithStyles(Styles);
18
16
  }
19
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiConnected, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
20
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.15", type: TuiConnected, isStandalone: true, selector: "[tuiConnected]", host: { attributes: { "tuiConnected": "" } }, ngImport: i0 }); }
17
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiConnected, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
18
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.17", type: TuiConnected, isStandalone: true, selector: "[tuiConnected]", ngImport: i0 }); }
21
19
  }
22
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiConnected, decorators: [{
20
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiConnected, decorators: [{
23
21
  type: Directive,
24
22
  args: [{
25
- standalone: true,
26
23
  selector: '[tuiConnected]',
27
- host: {
28
- tuiConnected: '',
29
- },
30
24
  }]
31
25
  }] });
32
26
 
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-kit-directives-connected.mjs","sources":["../../../projects/kit/directives/connected/connected.directive.ts","../../../projects/kit/directives/connected/taiga-ui-kit-directives-connected.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n Directive,\n ViewEncapsulation,\n} from '@angular/core';\nimport {tuiWithStyles} from '@taiga-ui/cdk/utils/miscellaneous';\n\n@Component({\n standalone: true,\n template: '',\n styleUrls: ['./connected.style.less'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'tui-connected-styles',\n },\n})\nclass TuiConnectedStyles {}\n\n@Directive({\n standalone: true,\n selector: '[tuiConnected]',\n host: {\n tuiConnected: '',\n },\n})\nexport class TuiConnected {\n protected readonly nothing = tuiWithStyles(TuiConnectedStyles);\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;AAQA,MAUM,kBAAkB,CAAA;+GAAlB,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,kBAAkB,0HARV,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,67DAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;4FAQV,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAVvB,SAAS;iCACM,IAAI,EAAA,QAAA,EACN,EAAE,EAAA,aAAA,EAEG,iBAAiB,CAAC,IAAI,EACpB,eAAA,EAAA,uBAAuB,CAAC,MAAM,EACzC,IAAA,EAAA;AACF,wBAAA,KAAK,EAAE,sBAAsB;AAChC,qBAAA,EAAA,MAAA,EAAA,CAAA,67DAAA,CAAA,EAAA;;MAWQ,YAAY,CAAA;AAPzB,IAAA,WAAA,GAAA;AAQuB,QAAA,IAAA,CAAA,OAAO,GAAG,aAAa,CAAC,kBAAkB,CAAC;AACjE;+GAFY,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAZ,YAAY,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,cAAA,EAAA,EAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAAZ,YAAY,EAAA,UAAA,EAAA,CAAA;kBAPxB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,gBAAgB;AAC1B,oBAAA,IAAI,EAAE;AACF,wBAAA,YAAY,EAAE,EAAE;AACnB,qBAAA;AACJ,iBAAA;;;AC1BD;;AAEG;;;;"}
1
+ {"version":3,"file":"taiga-ui-kit-directives-connected.mjs","sources":["../../../projects/kit/directives/connected/connected.directive.ts","../../../projects/kit/directives/connected/taiga-ui-kit-directives-connected.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n Directive,\n ViewEncapsulation,\n} from '@angular/core';\nimport {tuiWithStyles} from '@taiga-ui/cdk/utils/miscellaneous';\n\n@Component({\n template: '',\n styleUrl: './connected.style.less',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {class: 'tui-connected'},\n})\nclass Styles {}\n\n@Directive({\n selector: '[tuiConnected]',\n})\nexport class TuiConnected {\n protected readonly nothing = tuiWithStyles(Styles);\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;AAQA,MAOM,MAAM,CAAA;+GAAN,MAAM,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAN,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,MAAM,mHANE,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,o7DAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;4FAMV,MAAM,EAAA,UAAA,EAAA,CAAA;kBAPX,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAE,EAEG,aAAA,EAAA,iBAAiB,CAAC,IAAI,EACpB,eAAA,EAAA,uBAAuB,CAAC,MAAM,EACzC,IAAA,EAAA,EAAC,KAAK,EAAE,eAAe,EAAC,EAAA,MAAA,EAAA,CAAA,o7DAAA,CAAA,EAAA;;MAOrB,YAAY,CAAA;AAHzB,IAAA,WAAA,GAAA;AAIuB,QAAA,IAAA,CAAA,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC;AACrD;+GAFY,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAZ,YAAY,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAAZ,YAAY,EAAA,UAAA,EAAA,CAAA;kBAHxB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,gBAAgB;AAC7B,iBAAA;;;ACnBD;;AAEG;;;;"}
@@ -1,19 +1,25 @@
1
- import { __decorate } from 'tslib';
2
1
  import * as i0 from '@angular/core';
3
- import { inject, DestroyRef, ElementRef, ContentChildren, Directive } from '@angular/core';
4
- import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
5
- import { EMPTY_QUERY } from '@taiga-ui/cdk/constants';
6
- import { tuiTypedFromEvent, tuiQueryListChanges, tuiPreventDefault } from '@taiga-ui/cdk/observables';
2
+ import { inject, DestroyRef, contentChildren, ElementRef, Directive } from '@angular/core';
3
+ import { toObservable, takeUntilDestroyed } from '@angular/core/rxjs-interop';
4
+ import { tuiTypedFromEvent, tuiPreventDefault } from '@taiga-ui/cdk/observables';
7
5
  import { tuiGetClosestFocusable } from '@taiga-ui/cdk/utils/focus';
8
- import { tuiPure } from '@taiga-ui/cdk/utils/miscellaneous';
9
- import { TuiDropdownDirective } from '@taiga-ui/core/directives/dropdown';
10
- import { merge, switchMap, EMPTY, take, filter, tap, map, shareReplay, debounceTime } from 'rxjs';
6
+ import { TuiDropdownDirective } from '@taiga-ui/core/portals/dropdown';
7
+ import { map, shareReplay, switchMap, merge, filter, debounceTime, EMPTY, take, tap } from 'rxjs';
11
8
 
12
9
  class TuiDataListDropdownManager {
13
10
  constructor() {
14
- this.dropdowns = EMPTY_QUERY;
15
- this.els = EMPTY_QUERY;
16
11
  this.destroyRef = inject(DestroyRef);
12
+ this.dropdowns = contentChildren(TuiDropdownDirective, {
13
+ descendants: true,
14
+ });
15
+ this.els = contentChildren(TuiDropdownDirective, {
16
+ read: ElementRef,
17
+ descendants: true,
18
+ });
19
+ this.elements$ = toObservable(this.els).pipe(map((array) => array.map(({ nativeElement }) => nativeElement)), shareReplay({ bufferSize: 1, refCount: true }));
20
+ this.right$ = this.elements$.pipe(switchMap((elements) => merge(...elements.map((element, index) => tuiTypedFromEvent(element, 'keydown').pipe(filter(({ key }) => key === 'ArrowRight'), tuiPreventDefault(), map(() => index))))));
21
+ this.immediate$ = this.elements$.pipe(switchMap((elements) => merge(...elements.map((element, index) => tuiTypedFromEvent(element, 'click').pipe(map(() => index))))));
22
+ this.debounce$ = this.elements$.pipe(switchMap((elements) => merge(...elements.map((element, index) => merge(tuiTypedFromEvent(element, 'focus'), tuiTypedFromEvent(element, 'blur')).pipe(filter(({ relatedTarget }) => this.notInDropdown(relatedTarget, index)), map(({ type }) => (type === 'focus' ? index : NaN)))))), debounceTime(300));
17
23
  }
18
24
  ngAfterViewInit() {
19
25
  this.right$.pipe(takeUntilDestroyed(this.destroyRef)).subscribe((index) => {
@@ -21,11 +27,11 @@ class TuiDataListDropdownManager {
21
27
  });
22
28
  merge(this.immediate$, this.debounce$)
23
29
  .pipe(switchMap((active) => {
24
- this.dropdowns.forEach((dropdown, index) => {
30
+ this.dropdowns().forEach((dropdown, index) => {
25
31
  dropdown.toggle(index === active);
26
32
  });
27
- const element = this.els.get(active);
28
- const dropdown = this.dropdowns.get(active);
33
+ const element = this.els()[active];
34
+ const dropdown = this.dropdowns()[active];
29
35
  const ref = dropdown?.ref();
30
36
  if (!element || !dropdown || !ref) {
31
37
  return EMPTY;
@@ -43,26 +49,11 @@ class TuiDataListDropdownManager {
43
49
  }), takeUntilDestroyed(this.destroyRef))
44
50
  .subscribe();
45
51
  }
46
- get elements$() {
47
- return tuiQueryListChanges(this.els).pipe(map((array) => array.map(({ nativeElement }) => nativeElement)), shareReplay({ bufferSize: 1, refCount: true }));
48
- }
49
- get right$() {
50
- return this.elements$.pipe(switchMap((elements) => merge(...elements.map((element, index) => tuiTypedFromEvent(element, 'keydown').pipe(filter(({ key }) => key === 'ArrowRight'), tuiPreventDefault(), map(() => index))))));
51
- }
52
- get immediate$() {
53
- return this.elements$.pipe(switchMap((elements) => merge(...elements.map((element, index) => tuiTypedFromEvent(element, 'click').pipe(map(() => index))))));
54
- }
55
- get debounce$() {
56
- return this.elements$.pipe(switchMap((elements) => merge(...elements.map((element, index) => merge(tuiTypedFromEvent(element, 'focus'), tuiTypedFromEvent(element, 'blur')).pipe(filter(({ relatedTarget }) => this.notInDropdown(relatedTarget, index)), map(({ type }) => (type === 'focus' ? index : NaN)))))), debounceTime(300));
57
- }
58
52
  notInDropdown(element, index) {
59
- return !this.dropdowns
60
- .get(index)
61
- ?.ref()
62
- ?.location.nativeElement.contains(element);
53
+ return !this.dropdowns()[index]?.ref()?.location.nativeElement.contains(element);
63
54
  }
64
55
  tryToFocus(index) {
65
- const content = this.dropdowns.get(index)?.ref()?.location.nativeElement;
56
+ const content = this.dropdowns()[index]?.ref()?.location.nativeElement;
66
57
  if (!content) {
67
58
  return;
68
59
  }
@@ -74,34 +65,15 @@ class TuiDataListDropdownManager {
74
65
  });
75
66
  item?.focus();
76
67
  }
77
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiDataListDropdownManager, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
78
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.15", type: TuiDataListDropdownManager, isStandalone: true, selector: "tui-data-list[tuiDataListDropdownManager]", queries: [{ propertyName: "dropdowns", predicate: TuiDropdownDirective, descendants: true }, { propertyName: "els", predicate: TuiDropdownDirective, descendants: true, read: ElementRef }], ngImport: i0 }); }
68
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiDataListDropdownManager, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
69
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "19.2.17", type: TuiDataListDropdownManager, isStandalone: true, selector: "tui-data-list[tuiDataListDropdownManager]", queries: [{ propertyName: "dropdowns", predicate: TuiDropdownDirective, descendants: true, isSignal: true }, { propertyName: "els", predicate: TuiDropdownDirective, descendants: true, read: ElementRef, isSignal: true }], ngImport: i0 }); }
79
70
  }
80
- __decorate([
81
- tuiPure
82
- ], TuiDataListDropdownManager.prototype, "elements$", null);
83
- __decorate([
84
- tuiPure
85
- ], TuiDataListDropdownManager.prototype, "right$", null);
86
- __decorate([
87
- tuiPure
88
- ], TuiDataListDropdownManager.prototype, "immediate$", null);
89
- __decorate([
90
- tuiPure
91
- ], TuiDataListDropdownManager.prototype, "debounce$", null);
92
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiDataListDropdownManager, decorators: [{
71
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiDataListDropdownManager, decorators: [{
93
72
  type: Directive,
94
73
  args: [{
95
- standalone: true,
96
74
  selector: 'tui-data-list[tuiDataListDropdownManager]',
97
75
  }]
98
- }], propDecorators: { dropdowns: [{
99
- type: ContentChildren,
100
- args: [TuiDropdownDirective, { descendants: true }]
101
- }], els: [{
102
- type: ContentChildren,
103
- args: [TuiDropdownDirective, { read: ElementRef, descendants: true }]
104
- }], elements$: [], right$: [], immediate$: [], debounce$: [] } });
76
+ }] });
105
77
 
106
78
  /**
107
79
  * Generated bundle index. Do not edit.
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-kit-directives-data-list-dropdown-manager.mjs","sources":["../../../projects/kit/directives/data-list-dropdown-manager/data-list-dropdown-manager.directive.ts","../../../projects/kit/directives/data-list-dropdown-manager/taiga-ui-kit-directives-data-list-dropdown-manager.ts"],"sourcesContent":["import {\n type AfterViewInit,\n ContentChildren,\n DestroyRef,\n Directive,\n ElementRef,\n inject,\n type QueryList,\n} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {EMPTY_QUERY} from '@taiga-ui/cdk/constants';\nimport {\n tuiPreventDefault,\n tuiQueryListChanges,\n tuiTypedFromEvent,\n} from '@taiga-ui/cdk/observables';\nimport {tuiGetClosestFocusable} from '@taiga-ui/cdk/utils/focus';\nimport {tuiPure} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TuiDropdownDirective} from '@taiga-ui/core/directives/dropdown';\nimport {\n debounceTime,\n EMPTY,\n filter,\n map,\n merge,\n type Observable,\n shareReplay,\n switchMap,\n take,\n tap,\n} from 'rxjs';\n\n@Directive({\n standalone: true,\n selector: 'tui-data-list[tuiDataListDropdownManager]',\n})\nexport class TuiDataListDropdownManager implements AfterViewInit {\n @ContentChildren(TuiDropdownDirective, {descendants: true})\n private readonly dropdowns: QueryList<TuiDropdownDirective> = EMPTY_QUERY;\n\n @ContentChildren(TuiDropdownDirective, {read: ElementRef, descendants: true})\n private readonly els: QueryList<ElementRef<HTMLElement>> = EMPTY_QUERY;\n\n private readonly destroyRef = inject(DestroyRef);\n\n public ngAfterViewInit(): void {\n this.right$.pipe(takeUntilDestroyed(this.destroyRef)).subscribe((index) => {\n this.tryToFocus(index);\n });\n\n merge(this.immediate$, this.debounce$)\n .pipe(\n switchMap((active) => {\n this.dropdowns.forEach((dropdown, index) => {\n dropdown.toggle(index === active);\n });\n\n const element = this.els.get(active);\n const dropdown = this.dropdowns.get(active);\n const ref = dropdown?.ref();\n\n if (!element || !dropdown || !ref) {\n return EMPTY;\n }\n\n const {nativeElement} = ref.location;\n const mouseEnter$ = tuiTypedFromEvent(\n nativeElement,\n 'mouseenter',\n ).pipe(take(1));\n const esc$ = merge(\n tuiTypedFromEvent(element.nativeElement, 'keydown'),\n tuiTypedFromEvent(nativeElement, 'keydown'),\n ).pipe(filter(({key}) => key === 'Escape'));\n\n return merge(mouseEnter$, esc$).pipe(\n tap((event) => {\n if (dropdown.ref()) {\n event.stopPropagation();\n }\n\n element.nativeElement.focus();\n dropdown.toggle('offsetX' in event);\n }),\n );\n }),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe();\n }\n\n @tuiPure\n private get elements$(): Observable<readonly HTMLElement[]> {\n return tuiQueryListChanges(this.els).pipe(\n map((array) => array.map(({nativeElement}) => nativeElement)),\n shareReplay({bufferSize: 1, refCount: true}),\n );\n }\n\n @tuiPure\n private get right$(): Observable<number> {\n return this.elements$.pipe(\n switchMap((elements) =>\n merge(\n ...elements.map((element, index) =>\n tuiTypedFromEvent(element, 'keydown').pipe(\n filter(({key}) => key === 'ArrowRight'),\n tuiPreventDefault(),\n map(() => index),\n ),\n ),\n ),\n ),\n );\n }\n\n @tuiPure\n private get immediate$(): Observable<number> {\n return this.elements$.pipe(\n switchMap((elements) =>\n merge(\n ...elements.map((element, index) =>\n tuiTypedFromEvent(element, 'click').pipe(map(() => index)),\n ),\n ),\n ),\n );\n }\n\n @tuiPure\n private get debounce$(): Observable<number> {\n return this.elements$.pipe(\n switchMap((elements) =>\n merge(\n ...elements.map((element, index) =>\n merge(\n tuiTypedFromEvent(element, 'focus'),\n tuiTypedFromEvent(element, 'blur'),\n ).pipe(\n filter(({relatedTarget}) =>\n this.notInDropdown(relatedTarget, index),\n ),\n map(({type}) => (type === 'focus' ? index : NaN)),\n ),\n ),\n ),\n ),\n debounceTime(300),\n );\n }\n\n private notInDropdown(element: EventTarget | null, index: number): boolean {\n return !this.dropdowns\n .get(index)\n ?.ref()\n ?.location.nativeElement.contains(element);\n }\n\n private tryToFocus(index: number): void {\n const content = this.dropdowns.get(index)?.ref()?.location.nativeElement;\n\n if (!content) {\n return;\n }\n\n // First item is focus trap\n const focusTrap = tuiGetClosestFocusable({initial: content, root: content});\n const item = tuiGetClosestFocusable({\n initial: focusTrap || content,\n root: content,\n });\n\n item?.focus();\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;MAoCa,0BAA0B,CAAA;AAJvC,IAAA,WAAA,GAAA;QAMqB,IAAS,CAAA,SAAA,GAAoC,WAAW;QAGxD,IAAG,CAAA,GAAA,GAAuC,WAAW;AAErD,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;AAmInD;IAjIU,eAAe,GAAA;AAClB,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,KAAK,KAAI;AACtE,YAAA,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;AAC1B,SAAC,CAAC;QAEF,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS;AAChC,aAAA,IAAI,CACD,SAAS,CAAC,CAAC,MAAM,KAAI;YACjB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,KAAK,KAAI;AACvC,gBAAA,QAAQ,CAAC,MAAM,CAAC,KAAK,KAAK,MAAM,CAAC;AACrC,aAAC,CAAC;YAEF,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC;YACpC,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC;AAC3C,YAAA,MAAM,GAAG,GAAG,QAAQ,EAAE,GAAG,EAAE;YAE3B,IAAI,CAAC,OAAO,IAAI,CAAC,QAAQ,IAAI,CAAC,GAAG,EAAE;AAC/B,gBAAA,OAAO,KAAK;;AAGhB,YAAA,MAAM,EAAC,aAAa,EAAC,GAAG,GAAG,CAAC,QAAQ;AACpC,YAAA,MAAM,WAAW,GAAG,iBAAiB,CACjC,aAAa,EACb,YAAY,CACf,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACf,YAAA,MAAM,IAAI,GAAG,KAAK,CACd,iBAAiB,CAAC,OAAO,CAAC,aAAa,EAAE,SAAS,CAAC,EACnD,iBAAiB,CAAC,aAAa,EAAE,SAAS,CAAC,CAC9C,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAC,GAAG,EAAC,KAAK,GAAG,KAAK,QAAQ,CAAC,CAAC;AAE3C,YAAA,OAAO,KAAK,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,IAAI,CAChC,GAAG,CAAC,CAAC,KAAK,KAAI;AACV,gBAAA,IAAI,QAAQ,CAAC,GAAG,EAAE,EAAE;oBAChB,KAAK,CAAC,eAAe,EAAE;;AAG3B,gBAAA,OAAO,CAAC,aAAa,CAAC,KAAK,EAAE;AAC7B,gBAAA,QAAQ,CAAC,MAAM,CAAC,SAAS,IAAI,KAAK,CAAC;aACtC,CAAC,CACL;SACJ,CAAC,EACF,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC;AAEtC,aAAA,SAAS,EAAE;;AAIpB,IAAA,IAAY,SAAS,GAAA;QACjB,OAAO,mBAAmB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CACrC,GAAG,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,GAAG,CAAC,CAAC,EAAC,aAAa,EAAC,KAAK,aAAa,CAAC,CAAC,EAC7D,WAAW,CAAC,EAAC,UAAU,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAC,CAAC,CAC/C;;AAIL,IAAA,IAAY,MAAM,GAAA;AACd,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CACtB,SAAS,CAAC,CAAC,QAAQ,KACf,KAAK,CACD,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,KAAK,KAC3B,iBAAiB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,IAAI,CACtC,MAAM,CAAC,CAAC,EAAC,GAAG,EAAC,KAAK,GAAG,KAAK,YAAY,CAAC,EACvC,iBAAiB,EAAE,EACnB,GAAG,CAAC,MAAM,KAAK,CAAC,CACnB,CACJ,CACJ,CACJ,CACJ;;AAIL,IAAA,IAAY,UAAU,GAAA;QAClB,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CACtB,SAAS,CAAC,CAAC,QAAQ,KACf,KAAK,CACD,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,KAAK,KAC3B,iBAAiB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,KAAK,CAAC,CAAC,CAC7D,CACJ,CACJ,CACJ;;AAIL,IAAA,IAAY,SAAS,GAAA;QACjB,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CACtB,SAAS,CAAC,CAAC,QAAQ,KACf,KAAK,CACD,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,KAAK,KAC3B,KAAK,CACD,iBAAiB,CAAC,OAAO,EAAE,OAAO,CAAC,EACnC,iBAAiB,CAAC,OAAO,EAAE,MAAM,CAAC,CACrC,CAAC,IAAI,CACF,MAAM,CAAC,CAAC,EAAC,aAAa,EAAC,KACnB,IAAI,CAAC,aAAa,CAAC,aAAa,EAAE,KAAK,CAAC,CAC3C,EACD,GAAG,CAAC,CAAC,EAAC,IAAI,EAAC,MAAM,IAAI,KAAK,OAAO,GAAG,KAAK,GAAG,GAAG,CAAC,CAAC,CACpD,CACJ,CACJ,CACJ,EACD,YAAY,CAAC,GAAG,CAAC,CACpB;;IAGG,aAAa,CAAC,OAA2B,EAAE,KAAa,EAAA;QAC5D,OAAO,CAAC,IAAI,CAAC;aACR,GAAG,CAAC,KAAK;AACV,cAAE,GAAG;cACH,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC;;AAG1C,IAAA,UAAU,CAAC,KAAa,EAAA;AAC5B,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,EAAE,QAAQ,CAAC,aAAa;QAExE,IAAI,CAAC,OAAO,EAAE;YACV;;;AAIJ,QAAA,MAAM,SAAS,GAAG,sBAAsB,CAAC,EAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAC,CAAC;QAC3E,MAAM,IAAI,GAAG,sBAAsB,CAAC;YAChC,OAAO,EAAE,SAAS,IAAI,OAAO;AAC7B,YAAA,IAAI,EAAE,OAAO;AAChB,SAAA,CAAC;QAEF,IAAI,EAAE,KAAK,EAAE;;+GAxIR,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA1B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,0BAA0B,EAClB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,WAAA,EAAA,SAAA,EAAA,oBAAoB,EAGpB,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,KAAA,EAAA,SAAA,EAAA,oBAAoB,2BAAS,UAAU,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;AAoDxD,UAAA,CAAA;IADC;AAMA,CAAA,EAAA,0BAAA,CAAA,SAAA,EAAA,WAAA,EAAA,IAAA,CAAA;AAGD,UAAA,CAAA;IADC;AAeA,CAAA,EAAA,0BAAA,CAAA,SAAA,EAAA,QAAA,EAAA,IAAA,CAAA;AAGD,UAAA,CAAA;IADC;AAWA,CAAA,EAAA,0BAAA,CAAA,SAAA,EAAA,YAAA,EAAA,IAAA,CAAA;AAGD,UAAA,CAAA;IADC;AAoBA,CAAA,EAAA,0BAAA,CAAA,SAAA,EAAA,WAAA,EAAA,IAAA,CAAA;4FAjHQ,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBAJtC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,2CAA2C;AACxD,iBAAA;8BAGoB,SAAS,EAAA,CAAA;sBADzB,eAAe;AAAC,gBAAA,IAAA,EAAA,CAAA,oBAAoB,EAAE,EAAC,WAAW,EAAE,IAAI,EAAC;gBAIzC,GAAG,EAAA,CAAA;sBADnB,eAAe;uBAAC,oBAAoB,EAAE,EAAC,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,IAAI,EAAC;AAoDhE,aAAA,CAAA,EAAA,SAAS,EAQT,EAAA,EAAA,MAAM,EAiBN,EAAA,EAAA,UAAU,MAaV,SAAS,EAAA,EAAA,EAAA,EAAA,CAAA;;AClIzB;;AAEG;;;;"}
1
+ {"version":3,"file":"taiga-ui-kit-directives-data-list-dropdown-manager.mjs","sources":["../../../projects/kit/directives/data-list-dropdown-manager/data-list-dropdown-manager.directive.ts","../../../projects/kit/directives/data-list-dropdown-manager/taiga-ui-kit-directives-data-list-dropdown-manager.ts"],"sourcesContent":["import {\n type AfterViewInit,\n contentChildren,\n DestroyRef,\n Directive,\n ElementRef,\n inject,\n} from '@angular/core';\nimport {takeUntilDestroyed, toObservable} from '@angular/core/rxjs-interop';\nimport {tuiPreventDefault, tuiTypedFromEvent} from '@taiga-ui/cdk/observables';\nimport {tuiGetClosestFocusable} from '@taiga-ui/cdk/utils/focus';\nimport {TuiDropdownDirective} from '@taiga-ui/core/portals/dropdown';\nimport {\n debounceTime,\n EMPTY,\n filter,\n map,\n merge,\n shareReplay,\n switchMap,\n take,\n tap,\n} from 'rxjs';\n\n@Directive({\n selector: 'tui-data-list[tuiDataListDropdownManager]',\n})\nexport class TuiDataListDropdownManager implements AfterViewInit {\n private readonly destroyRef = inject(DestroyRef);\n private readonly dropdowns = contentChildren(TuiDropdownDirective, {\n descendants: true,\n });\n\n private readonly els = contentChildren(TuiDropdownDirective, {\n read: ElementRef,\n descendants: true,\n });\n\n private readonly elements$ = toObservable(this.els).pipe(\n map((array) => array.map(({nativeElement}) => nativeElement)),\n shareReplay({bufferSize: 1, refCount: true}),\n );\n\n private readonly right$ = this.elements$.pipe(\n switchMap((elements) =>\n merge(\n ...elements.map((element, index) =>\n tuiTypedFromEvent(element, 'keydown').pipe(\n filter(({key}) => key === 'ArrowRight'),\n tuiPreventDefault(),\n map(() => index),\n ),\n ),\n ),\n ),\n );\n\n private readonly immediate$ = this.elements$.pipe(\n switchMap((elements) =>\n merge(\n ...elements.map((element, index) =>\n tuiTypedFromEvent(element, 'click').pipe(map(() => index)),\n ),\n ),\n ),\n );\n\n private readonly debounce$ = this.elements$.pipe(\n switchMap((elements) =>\n merge(\n ...elements.map((element, index) =>\n merge(\n tuiTypedFromEvent(element, 'focus'),\n tuiTypedFromEvent(element, 'blur'),\n ).pipe(\n filter(({relatedTarget}) =>\n this.notInDropdown(relatedTarget, index),\n ),\n map(({type}) => (type === 'focus' ? index : NaN)),\n ),\n ),\n ),\n ),\n debounceTime(300),\n );\n\n public ngAfterViewInit(): void {\n this.right$.pipe(takeUntilDestroyed(this.destroyRef)).subscribe((index) => {\n this.tryToFocus(index);\n });\n\n merge(this.immediate$, this.debounce$)\n .pipe(\n switchMap((active) => {\n this.dropdowns().forEach((dropdown, index) => {\n dropdown.toggle(index === active);\n });\n\n const element = this.els()[active];\n const dropdown = this.dropdowns()[active];\n const ref = dropdown?.ref();\n\n if (!element || !dropdown || !ref) {\n return EMPTY;\n }\n\n const {nativeElement} = ref.location;\n const mouseEnter$ = tuiTypedFromEvent(\n nativeElement,\n 'mouseenter',\n ).pipe(take(1));\n const esc$ = merge(\n tuiTypedFromEvent(element.nativeElement, 'keydown'),\n tuiTypedFromEvent(nativeElement, 'keydown'),\n ).pipe(filter(({key}) => key === 'Escape'));\n\n return merge(mouseEnter$, esc$).pipe(\n tap((event) => {\n if (dropdown.ref()) {\n event.stopPropagation();\n }\n\n element.nativeElement.focus();\n dropdown.toggle('offsetX' in event);\n }),\n );\n }),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe();\n }\n\n private notInDropdown(element: EventTarget | null, index: number): boolean {\n return !this.dropdowns()[index]?.ref()?.location.nativeElement.contains(element);\n }\n\n private tryToFocus(index: number): void {\n const content = this.dropdowns()[index]?.ref()?.location.nativeElement;\n\n if (!content) {\n return;\n }\n\n // First item is focus trap\n const focusTrap = tuiGetClosestFocusable({initial: content, root: content});\n const item = tuiGetClosestFocusable({\n initial: focusTrap || content,\n root: content,\n });\n\n item?.focus();\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}