@salutejs/plasma-new-hope 0.327.0-canary.2029.15774117371.0 → 0.327.0-canary.2031.15756758840.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (294) hide show
  1. package/cjs/components/Autocomplete/Autocomplete.js +3 -3
  2. package/cjs/components/Autocomplete/Autocomplete.js.map +1 -1
  3. package/cjs/components/Autocomplete/FloatingPopover.js +2 -2
  4. package/cjs/components/Autocomplete/FloatingPopover.js.map +1 -1
  5. package/cjs/components/Checkbox/Checkbox.js +1 -2
  6. package/cjs/components/Checkbox/Checkbox.js.map +1 -1
  7. package/cjs/components/Combobox/ComboboxNew/Combobox.js +1 -2
  8. package/cjs/components/Combobox/ComboboxNew/Combobox.js.map +1 -1
  9. package/cjs/components/Combobox/ComboboxNew/FloatingPopover.js +2 -2
  10. package/cjs/components/Combobox/ComboboxNew/FloatingPopover.js.map +1 -1
  11. package/cjs/components/Combobox/ComboboxNew/ui/Inner/Inner.js +2 -2
  12. package/cjs/components/Combobox/ComboboxNew/ui/Inner/Inner.js.map +1 -1
  13. package/cjs/components/Combobox/ComboboxOld/Combobox.js +1 -2
  14. package/cjs/components/Combobox/ComboboxOld/Combobox.js.map +1 -1
  15. package/cjs/components/Combobox/ComboboxOld/ui/ComboboxItem/ComboboxItem.js +3 -3
  16. package/cjs/components/Combobox/ComboboxOld/ui/ComboboxItem/ComboboxItem.js.map +1 -1
  17. package/cjs/components/Drawer/Drawer.js +3 -4
  18. package/cjs/components/Drawer/Drawer.js.map +1 -1
  19. package/cjs/components/Drawer/hooks/useDrawer.js +2 -2
  20. package/cjs/components/Drawer/hooks/useDrawer.js.map +1 -1
  21. package/cjs/components/Dropdown/Dropdown.js +2 -2
  22. package/cjs/components/Dropdown/Dropdown.js.map +1 -1
  23. package/cjs/components/Dropdown/FloatingPopover.js +2 -2
  24. package/cjs/components/Dropdown/FloatingPopover.js.map +1 -1
  25. package/cjs/components/Dropdown/ui/DropdownDivider/DropdownDivider.js.map +1 -1
  26. package/cjs/components/Dropdown/ui/DropdownFooter/DropdownFooter.js.map +1 -1
  27. package/cjs/components/Dropdown/ui/DropdownGroup/DropdownGroup.js.map +1 -1
  28. package/cjs/components/Dropdown/ui/DropdownHeader/DropdownHeader.js.map +1 -1
  29. package/cjs/components/Dropdown/ui/DropdownInner/DropdownInner.js +2 -2
  30. package/cjs/components/Dropdown/ui/DropdownInner/DropdownInner.js.map +1 -1
  31. package/cjs/components/Dropdown/ui/DropdownItemOld/DropdownItemOld.js +3 -3
  32. package/cjs/components/Dropdown/ui/DropdownItemOld/DropdownItemOld.js.map +1 -1
  33. package/cjs/components/Dropdown/ui/DropdownOld/DropdownOld.js.map +1 -1
  34. package/cjs/components/Modal/Modal.js +2 -3
  35. package/cjs/components/Modal/Modal.js.map +1 -1
  36. package/cjs/components/Modal/hooks/useModal.js +1 -1
  37. package/cjs/components/Modal/hooks/useModal.js.map +1 -1
  38. package/cjs/components/Popup/Popup.js +1 -2
  39. package/cjs/components/Popup/Popup.js.map +1 -1
  40. package/cjs/components/Popup/PopupContext.js +15 -13
  41. package/cjs/components/Popup/PopupContext.js.map +1 -1
  42. package/cjs/components/Radiobox/Radiobox.js +2 -3
  43. package/cjs/components/Radiobox/Radiobox.js.map +1 -1
  44. package/cjs/components/Segment/ui/SegmentGroup/SegmentGroup.js +3 -3
  45. package/cjs/components/Segment/ui/SegmentGroup/SegmentGroup.js.map +1 -1
  46. package/cjs/components/Segment/ui/SegmentItem/SegmentItem.js +2 -2
  47. package/cjs/components/Segment/ui/SegmentItem/SegmentItem.js.map +1 -1
  48. package/cjs/components/Select/FloatingPopover.js +2 -2
  49. package/cjs/components/Select/FloatingPopover.js.map +1 -1
  50. package/cjs/components/Select/Select.js +2 -2
  51. package/cjs/components/Select/Select.js.map +1 -1
  52. package/cjs/components/Select/ui/Inner/Inner.js +2 -2
  53. package/cjs/components/Select/ui/Inner/Inner.js.map +1 -1
  54. package/cjs/components/Spinner/Spinner.js +2 -2
  55. package/cjs/components/Spinner/Spinner.js.map +1 -1
  56. package/cjs/components/Tabs/ui/horizontal/HorizontalTabs/HorizontalTabs.js +3 -3
  57. package/cjs/components/Tabs/ui/horizontal/HorizontalTabs/HorizontalTabs.js.map +1 -1
  58. package/cjs/components/Tabs/ui/vertical/VerticalTabs/VerticalTabs.js +3 -3
  59. package/cjs/components/Tabs/ui/vertical/VerticalTabs/VerticalTabs.js.map +1 -1
  60. package/cjs/components/TextArea/ui/Hint/Hint.js.map +1 -1
  61. package/cjs/components/TextField/TextField.js +3 -4
  62. package/cjs/components/TextField/TextField.js.map +1 -1
  63. package/cjs/components/TextField/ui/Hint/Hint.js.map +1 -1
  64. package/emotion/cjs/components/Autocomplete/Autocomplete.js +3 -3
  65. package/emotion/cjs/components/Autocomplete/FloatingPopover.js +2 -2
  66. package/emotion/cjs/components/Checkbox/Checkbox.js +1 -1
  67. package/emotion/cjs/components/Combobox/ComboboxNew/Combobox.js +1 -1
  68. package/emotion/cjs/components/Combobox/ComboboxNew/FloatingPopover.js +2 -2
  69. package/emotion/cjs/components/Combobox/ComboboxNew/ui/Inner/Inner.js +3 -2
  70. package/emotion/cjs/components/Combobox/ComboboxOld/Combobox.js +1 -1
  71. package/emotion/cjs/components/Combobox/ComboboxOld/ui/ComboboxItem/ComboboxItem.js +7 -6
  72. package/emotion/cjs/components/Drawer/Drawer.js +8 -8
  73. package/emotion/cjs/components/Drawer/hooks/useDrawer.js +2 -2
  74. package/emotion/cjs/components/Dropdown/Dropdown.js +2 -1
  75. package/emotion/cjs/components/Dropdown/FloatingPopover.js +2 -2
  76. package/emotion/cjs/components/Dropdown/ui/DropdownInner/DropdownInner.js +4 -4
  77. package/emotion/cjs/components/Dropdown/ui/DropdownItemOld/DropdownItemOld.js +3 -2
  78. package/emotion/cjs/components/Dropdown/ui/DropdownOld/DropdownOld.js +1 -1
  79. package/emotion/cjs/components/Modal/Modal.js +5 -6
  80. package/emotion/cjs/components/Modal/hooks/useModal.js +1 -1
  81. package/emotion/cjs/components/Popup/Popup.js +1 -1
  82. package/emotion/cjs/components/Popup/PopupContext.js +20 -14
  83. package/emotion/cjs/components/Radiobox/Radiobox.js +2 -2
  84. package/emotion/cjs/components/Segment/ui/SegmentGroup/SegmentGroup.js +3 -2
  85. package/emotion/cjs/components/Segment/ui/SegmentItem/SegmentItem.js +2 -1
  86. package/emotion/cjs/components/Select/FloatingPopover.js +5 -5
  87. package/emotion/cjs/components/Select/Select.js +2 -1
  88. package/emotion/cjs/components/Select/ui/Inner/Inner.js +2 -1
  89. package/emotion/cjs/components/Spinner/Spinner.js +2 -2
  90. package/emotion/cjs/components/Tabs/ui/horizontal/HorizontalTabs/HorizontalTabs.js +3 -2
  91. package/emotion/cjs/components/Tabs/ui/vertical/VerticalTabs/VerticalTabs.js +3 -2
  92. package/emotion/cjs/components/TextArea/ui/Hint/Hint.js +1 -1
  93. package/emotion/cjs/components/TextField/TextField.js +4 -4
  94. package/emotion/cjs/components/TextField/ui/Hint/Hint.js +1 -1
  95. package/emotion/es/components/Autocomplete/Autocomplete.js +1 -1
  96. package/emotion/es/components/Autocomplete/FloatingPopover.js +1 -1
  97. package/emotion/es/components/Checkbox/Checkbox.js +1 -2
  98. package/emotion/es/components/Combobox/ComboboxNew/Combobox.js +1 -2
  99. package/emotion/es/components/Combobox/ComboboxNew/FloatingPopover.js +1 -1
  100. package/emotion/es/components/Combobox/ComboboxNew/ui/Inner/Inner.js +1 -1
  101. package/emotion/es/components/Combobox/ComboboxOld/Combobox.js +1 -2
  102. package/emotion/es/components/Combobox/ComboboxOld/ui/ComboboxItem/ComboboxItem.js +1 -1
  103. package/emotion/es/components/Drawer/Drawer.js +3 -3
  104. package/emotion/es/components/Drawer/hooks/useDrawer.js +2 -2
  105. package/emotion/es/components/Dropdown/Dropdown.js +1 -1
  106. package/emotion/es/components/Dropdown/FloatingPopover.js +1 -1
  107. package/emotion/es/components/Dropdown/ui/DropdownInner/DropdownInner.js +1 -1
  108. package/emotion/es/components/Dropdown/ui/DropdownItemOld/DropdownItemOld.js +2 -1
  109. package/emotion/es/components/Dropdown/ui/DropdownOld/DropdownOld.js +1 -1
  110. package/emotion/es/components/Modal/Modal.js +3 -4
  111. package/emotion/es/components/Modal/hooks/useModal.js +1 -1
  112. package/emotion/es/components/Popup/Popup.js +2 -2
  113. package/emotion/es/components/Popup/PopupContext.js +20 -14
  114. package/emotion/es/components/Radiobox/Radiobox.js +2 -2
  115. package/emotion/es/components/Segment/ui/SegmentGroup/SegmentGroup.js +2 -1
  116. package/emotion/es/components/Segment/ui/SegmentItem/SegmentItem.js +2 -1
  117. package/emotion/es/components/Select/FloatingPopover.js +1 -1
  118. package/emotion/es/components/Select/Select.js +2 -1
  119. package/emotion/es/components/Select/ui/Inner/Inner.js +2 -1
  120. package/emotion/es/components/Spinner/Spinner.js +1 -1
  121. package/emotion/es/components/Tabs/ui/horizontal/HorizontalTabs/HorizontalTabs.js +2 -1
  122. package/emotion/es/components/Tabs/ui/vertical/VerticalTabs/VerticalTabs.js +2 -1
  123. package/emotion/es/components/TextArea/ui/Hint/Hint.js +1 -1
  124. package/emotion/es/components/TextField/TextField.js +3 -3
  125. package/emotion/es/components/TextField/ui/Hint/Hint.js +1 -1
  126. package/es/components/Autocomplete/Autocomplete.js +1 -1
  127. package/es/components/Autocomplete/Autocomplete.js.map +1 -1
  128. package/es/components/Autocomplete/FloatingPopover.js +1 -1
  129. package/es/components/Autocomplete/FloatingPopover.js.map +1 -1
  130. package/es/components/Checkbox/Checkbox.js +1 -2
  131. package/es/components/Checkbox/Checkbox.js.map +1 -1
  132. package/es/components/Combobox/ComboboxNew/Combobox.js +1 -2
  133. package/es/components/Combobox/ComboboxNew/Combobox.js.map +1 -1
  134. package/es/components/Combobox/ComboboxNew/FloatingPopover.js +1 -1
  135. package/es/components/Combobox/ComboboxNew/FloatingPopover.js.map +1 -1
  136. package/es/components/Combobox/ComboboxNew/ui/Inner/Inner.js +1 -1
  137. package/es/components/Combobox/ComboboxNew/ui/Inner/Inner.js.map +1 -1
  138. package/es/components/Combobox/ComboboxOld/Combobox.js +1 -2
  139. package/es/components/Combobox/ComboboxOld/Combobox.js.map +1 -1
  140. package/es/components/Combobox/ComboboxOld/ui/ComboboxItem/ComboboxItem.js +2 -2
  141. package/es/components/Combobox/ComboboxOld/ui/ComboboxItem/ComboboxItem.js.map +1 -1
  142. package/es/components/Drawer/Drawer.js +3 -4
  143. package/es/components/Drawer/Drawer.js.map +1 -1
  144. package/es/components/Drawer/hooks/useDrawer.js +2 -2
  145. package/es/components/Drawer/hooks/useDrawer.js.map +1 -1
  146. package/es/components/Dropdown/Dropdown.js +1 -1
  147. package/es/components/Dropdown/Dropdown.js.map +1 -1
  148. package/es/components/Dropdown/FloatingPopover.js +1 -1
  149. package/es/components/Dropdown/FloatingPopover.js.map +1 -1
  150. package/es/components/Dropdown/ui/DropdownDivider/DropdownDivider.js.map +1 -1
  151. package/es/components/Dropdown/ui/DropdownFooter/DropdownFooter.js.map +1 -1
  152. package/es/components/Dropdown/ui/DropdownGroup/DropdownGroup.js.map +1 -1
  153. package/es/components/Dropdown/ui/DropdownHeader/DropdownHeader.js.map +1 -1
  154. package/es/components/Dropdown/ui/DropdownInner/DropdownInner.js +1 -1
  155. package/es/components/Dropdown/ui/DropdownInner/DropdownInner.js.map +1 -1
  156. package/es/components/Dropdown/ui/DropdownItemOld/DropdownItemOld.js +2 -2
  157. package/es/components/Dropdown/ui/DropdownItemOld/DropdownItemOld.js.map +1 -1
  158. package/es/components/Dropdown/ui/DropdownOld/DropdownOld.js.map +1 -1
  159. package/es/components/Modal/Modal.js +2 -3
  160. package/es/components/Modal/Modal.js.map +1 -1
  161. package/es/components/Modal/hooks/useModal.js +1 -1
  162. package/es/components/Modal/hooks/useModal.js.map +1 -1
  163. package/es/components/Popup/Popup.js +1 -2
  164. package/es/components/Popup/Popup.js.map +1 -1
  165. package/es/components/Popup/PopupContext.js +16 -14
  166. package/es/components/Popup/PopupContext.js.map +1 -1
  167. package/es/components/Radiobox/Radiobox.js +2 -3
  168. package/es/components/Radiobox/Radiobox.js.map +1 -1
  169. package/es/components/Segment/ui/SegmentGroup/SegmentGroup.js +2 -2
  170. package/es/components/Segment/ui/SegmentGroup/SegmentGroup.js.map +1 -1
  171. package/es/components/Segment/ui/SegmentItem/SegmentItem.js +1 -1
  172. package/es/components/Segment/ui/SegmentItem/SegmentItem.js.map +1 -1
  173. package/es/components/Select/FloatingPopover.js +1 -1
  174. package/es/components/Select/FloatingPopover.js.map +1 -1
  175. package/es/components/Select/Select.js +1 -1
  176. package/es/components/Select/Select.js.map +1 -1
  177. package/es/components/Select/ui/Inner/Inner.js +1 -1
  178. package/es/components/Select/ui/Inner/Inner.js.map +1 -1
  179. package/es/components/Spinner/Spinner.js +1 -1
  180. package/es/components/Spinner/Spinner.js.map +1 -1
  181. package/es/components/Tabs/ui/horizontal/HorizontalTabs/HorizontalTabs.js +2 -2
  182. package/es/components/Tabs/ui/horizontal/HorizontalTabs/HorizontalTabs.js.map +1 -1
  183. package/es/components/Tabs/ui/vertical/VerticalTabs/VerticalTabs.js +2 -2
  184. package/es/components/Tabs/ui/vertical/VerticalTabs/VerticalTabs.js.map +1 -1
  185. package/es/components/TextArea/ui/Hint/Hint.js.map +1 -1
  186. package/es/components/TextField/TextField.js +1 -2
  187. package/es/components/TextField/TextField.js.map +1 -1
  188. package/es/components/TextField/ui/Hint/Hint.js.map +1 -1
  189. package/package.json +2 -2
  190. package/styled-components/cjs/components/Autocomplete/Autocomplete.js +3 -3
  191. package/styled-components/cjs/components/Autocomplete/FloatingPopover.js +2 -2
  192. package/styled-components/cjs/components/Checkbox/Checkbox.js +1 -1
  193. package/styled-components/cjs/components/Combobox/ComboboxNew/Combobox.js +1 -1
  194. package/styled-components/cjs/components/Combobox/ComboboxNew/FloatingPopover.js +2 -2
  195. package/styled-components/cjs/components/Combobox/ComboboxNew/ui/Inner/Inner.js +3 -2
  196. package/styled-components/cjs/components/Combobox/ComboboxOld/Combobox.js +1 -1
  197. package/styled-components/cjs/components/Combobox/ComboboxOld/ui/ComboboxItem/ComboboxItem.js +7 -6
  198. package/styled-components/cjs/components/Drawer/Drawer.js +8 -8
  199. package/styled-components/cjs/components/Drawer/hooks/useDrawer.js +2 -2
  200. package/styled-components/cjs/components/Dropdown/Dropdown.js +2 -1
  201. package/styled-components/cjs/components/Dropdown/FloatingPopover.js +2 -2
  202. package/styled-components/cjs/components/Dropdown/ui/DropdownInner/DropdownInner.js +4 -4
  203. package/styled-components/cjs/components/Dropdown/ui/DropdownItemOld/DropdownItemOld.js +3 -2
  204. package/styled-components/cjs/components/Dropdown/ui/DropdownOld/DropdownOld.js +1 -1
  205. package/styled-components/cjs/components/Modal/Modal.js +5 -6
  206. package/styled-components/cjs/components/Modal/hooks/useModal.js +1 -1
  207. package/styled-components/cjs/components/Popup/Popup.js +1 -1
  208. package/styled-components/cjs/components/Popup/PopupContext.js +20 -14
  209. package/styled-components/cjs/components/Radiobox/Radiobox.js +2 -2
  210. package/styled-components/cjs/components/Segment/ui/SegmentGroup/SegmentGroup.js +3 -2
  211. package/styled-components/cjs/components/Segment/ui/SegmentItem/SegmentItem.js +2 -1
  212. package/styled-components/cjs/components/Select/FloatingPopover.js +5 -5
  213. package/styled-components/cjs/components/Select/Select.js +2 -1
  214. package/styled-components/cjs/components/Select/ui/Inner/Inner.js +2 -1
  215. package/styled-components/cjs/components/Spinner/Spinner.js +2 -2
  216. package/styled-components/cjs/components/Tabs/ui/horizontal/HorizontalTabs/HorizontalTabs.js +3 -2
  217. package/styled-components/cjs/components/Tabs/ui/vertical/VerticalTabs/VerticalTabs.js +3 -2
  218. package/styled-components/cjs/components/TextArea/ui/Hint/Hint.js +1 -1
  219. package/styled-components/cjs/components/TextField/TextField.js +3 -3
  220. package/styled-components/cjs/components/TextField/ui/Hint/Hint.js +1 -1
  221. package/styled-components/es/components/Autocomplete/Autocomplete.js +1 -1
  222. package/styled-components/es/components/Autocomplete/FloatingPopover.js +1 -1
  223. package/styled-components/es/components/Checkbox/Checkbox.js +1 -2
  224. package/styled-components/es/components/Combobox/ComboboxNew/Combobox.js +1 -2
  225. package/styled-components/es/components/Combobox/ComboboxNew/FloatingPopover.js +1 -1
  226. package/styled-components/es/components/Combobox/ComboboxNew/ui/Inner/Inner.js +1 -1
  227. package/styled-components/es/components/Combobox/ComboboxOld/Combobox.js +1 -2
  228. package/styled-components/es/components/Combobox/ComboboxOld/ui/ComboboxItem/ComboboxItem.js +1 -1
  229. package/styled-components/es/components/Drawer/Drawer.js +3 -3
  230. package/styled-components/es/components/Drawer/hooks/useDrawer.js +2 -2
  231. package/styled-components/es/components/Dropdown/Dropdown.js +1 -1
  232. package/styled-components/es/components/Dropdown/FloatingPopover.js +1 -1
  233. package/styled-components/es/components/Dropdown/ui/DropdownInner/DropdownInner.js +1 -1
  234. package/styled-components/es/components/Dropdown/ui/DropdownItemOld/DropdownItemOld.js +2 -1
  235. package/styled-components/es/components/Dropdown/ui/DropdownOld/DropdownOld.js +1 -1
  236. package/styled-components/es/components/Modal/Modal.js +3 -4
  237. package/styled-components/es/components/Modal/hooks/useModal.js +1 -1
  238. package/styled-components/es/components/Popup/Popup.js +2 -2
  239. package/styled-components/es/components/Popup/PopupContext.js +20 -14
  240. package/styled-components/es/components/Radiobox/Radiobox.js +2 -2
  241. package/styled-components/es/components/Segment/ui/SegmentGroup/SegmentGroup.js +2 -1
  242. package/styled-components/es/components/Segment/ui/SegmentItem/SegmentItem.js +2 -1
  243. package/styled-components/es/components/Select/FloatingPopover.js +1 -1
  244. package/styled-components/es/components/Select/Select.js +2 -1
  245. package/styled-components/es/components/Select/ui/Inner/Inner.js +2 -1
  246. package/styled-components/es/components/Spinner/Spinner.js +1 -1
  247. package/styled-components/es/components/Tabs/ui/horizontal/HorizontalTabs/HorizontalTabs.js +2 -1
  248. package/styled-components/es/components/Tabs/ui/vertical/VerticalTabs/VerticalTabs.js +2 -1
  249. package/styled-components/es/components/TextArea/ui/Hint/Hint.js +1 -1
  250. package/styled-components/es/components/TextField/TextField.js +2 -2
  251. package/styled-components/es/components/TextField/ui/Hint/Hint.js +1 -1
  252. package/types/components/Checkbox/Checkbox.d.ts.map +1 -1
  253. package/types/components/Combobox/ComboboxNew/Combobox.d.ts.map +1 -1
  254. package/types/components/Combobox/ComboboxOld/Combobox.d.ts.map +1 -1
  255. package/types/components/Combobox/ComboboxOld/ui/ComboboxItem/ComboboxItem.d.ts.map +1 -1
  256. package/types/components/Drawer/Drawer.d.ts +1 -1
  257. package/types/components/Drawer/Drawer.d.ts.map +1 -1
  258. package/types/components/Drawer/hooks/useDrawer.d.ts.map +1 -1
  259. package/types/components/Dropdown/Dropdown.d.ts.map +1 -1
  260. package/types/components/Dropdown/ui/DropdownDivider/DropdownDivider.d.ts +1 -1
  261. package/types/components/Dropdown/ui/DropdownDivider/DropdownDivider.d.ts.map +1 -1
  262. package/types/components/Dropdown/ui/DropdownFooter/DropdownFooter.d.ts +1 -1
  263. package/types/components/Dropdown/ui/DropdownFooter/DropdownFooter.d.ts.map +1 -1
  264. package/types/components/Dropdown/ui/DropdownGroup/DropdownGroup.d.ts +1 -1
  265. package/types/components/Dropdown/ui/DropdownGroup/DropdownGroup.d.ts.map +1 -1
  266. package/types/components/Dropdown/ui/DropdownHeader/DropdownHeader.d.ts +1 -1
  267. package/types/components/Dropdown/ui/DropdownHeader/DropdownHeader.d.ts.map +1 -1
  268. package/types/components/Dropdown/ui/DropdownItemOld/DropdownItemOld.d.ts +1 -1
  269. package/types/components/Dropdown/ui/DropdownItemOld/DropdownItemOld.d.ts.map +1 -1
  270. package/types/components/Dropdown/ui/DropdownOld/DropdownOld.d.ts +1 -1
  271. package/types/components/Dropdown/ui/DropdownOld/DropdownOld.d.ts.map +1 -1
  272. package/types/components/Modal/Modal.d.ts +1 -1
  273. package/types/components/Modal/Modal.d.ts.map +1 -1
  274. package/types/components/Popup/Popup.d.ts +1 -1
  275. package/types/components/Popup/Popup.d.ts.map +1 -1
  276. package/types/components/Popup/Popup.types.d.ts +1 -1
  277. package/types/components/Popup/Popup.types.d.ts.map +1 -1
  278. package/types/components/Popup/PopupContext.d.ts.map +1 -1
  279. package/types/components/Radiobox/Radiobox.d.ts +2 -2
  280. package/types/components/Radiobox/Radiobox.d.ts.map +1 -1
  281. package/types/components/Segment/ui/SegmentGroup/SegmentGroup.d.ts +1 -1
  282. package/types/components/Segment/ui/SegmentGroup/SegmentGroup.d.ts.map +1 -1
  283. package/types/components/Segment/ui/SegmentItem/SegmentItem.d.ts +1 -1
  284. package/types/components/Segment/ui/SegmentItem/SegmentItem.d.ts.map +1 -1
  285. package/types/components/Select/Select.d.ts.map +1 -1
  286. package/types/components/Select/ui/Inner/Inner.d.ts.map +1 -1
  287. package/types/components/Spinner/Spinner.d.ts +1 -1
  288. package/types/components/Spinner/Spinner.d.ts.map +1 -1
  289. package/types/components/Tabs/ui/horizontal/HorizontalTabs/HorizontalTabs.d.ts +1 -1
  290. package/types/components/Tabs/ui/horizontal/HorizontalTabs/HorizontalTabs.d.ts.map +1 -1
  291. package/types/components/Tabs/ui/vertical/VerticalTabs/VerticalTabs.d.ts +1 -1
  292. package/types/components/Tabs/ui/vertical/VerticalTabs/VerticalTabs.d.ts.map +1 -1
  293. package/types/components/TextField/TextField.d.ts +1 -1
  294. package/types/components/TextField/TextField.d.ts.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"Select.js","sources":["../../../src/components/Select/Select.tsx"],"sourcesContent":["import React, {\n forwardRef,\n useState,\n useReducer,\n useMemo,\n useLayoutEffect,\n useRef,\n ChangeEvent,\n ForwardedRef,\n} from 'react';\nimport { RootProps } from 'src/engines';\nimport { isEmpty, safeUseId } from 'src/utils';\nimport { useOutsideClick } from 'src/hooks';\n\nimport type { HintProps } from '../TextField/TextField.types';\n\nimport { useKeyNavigation, getItemByFocused } from './hooks/useKeyboardNavigation';\nimport { initialItemsTransform, updateAncestors, updateDescendants, updateSingleAncestors, getView } from './utils';\nimport { Inner, Target, VirtualList, SelectAll } from './ui';\nimport { pathReducer, focusedPathReducer } from './reducers';\nimport { usePathMaps } from './hooks/usePathMaps';\nimport { Ul, base, ListWrapper } from './Select.styles';\nimport type { MergedSelectProps, RequiredProps } from './Select.types';\nimport type { MergedDropdownNodeTransformed } from './ui/Inner/ui/Item/Item.types';\nimport { FloatingPopover } from './FloatingPopover';\nimport { SelectNative } from './ui/SelectNative/SelectNative';\nimport { Context } from './Select.context';\n\n/**\n * Выпадающий список. Поддерживает выбор одного или нескольких значений.\n */\nexport const selectRoot = (Root: RootProps<HTMLButtonElement, Omit<MergedSelectProps, 'items'>>) =>\n forwardRef<HTMLButtonElement, MergedSelectProps>((props, ref) => {\n const {\n // eslint-disable-block @typescript-eslint/ban-ts-comment\n id,\n value: outerValue,\n onChange: outerOnChange,\n target = 'textfield-like',\n items,\n placement = 'bottom',\n label,\n labelPlacement,\n placeholder,\n helperText,\n disabled = false,\n readOnly = false,\n view: outerView,\n size,\n listOverflow,\n listHeight,\n listMaxHeight,\n listWidth,\n contentLeft,\n onScrollBottom,\n onScroll,\n chipView,\n variant = 'normal',\n portal,\n renderValue,\n renderItem,\n status,\n onItemSelect,\n separator,\n closeAfterSelect: outerCloseAfterSelect,\n isTargetAmount,\n beforeList,\n afterList,\n zIndex,\n name,\n defaultValue,\n virtual = false,\n onToggle,\n chipType,\n multiselect,\n\n // Извлекаем пропсы для required и hint, чтобы они не попадали в DOM.\n // @ts-ignore\n required,\n // @ts-ignore\n requiredPlacement,\n // @ts-ignore\n hasRequiredIndicator,\n // @ts-ignore\n optional,\n // @ts-ignore\n hintText,\n // @ts-ignore\n hintTrigger,\n // @ts-ignore\n hintView,\n // @ts-ignore\n hintSize,\n // @ts-ignore\n hintTargetPlacement,\n // @ts-ignore\n hintPlacement,\n // @ts-ignore\n hintWidth,\n // @ts-ignore\n hintHasArrow,\n // @ts-ignore\n hasHint,\n ...rest\n } = props;\n const transformedItems = useMemo(() => initialItemsTransform(items || []), [items]);\n\n // Создаем структуры для быстрой работы с деревом\n const [pathMap, focusedToValueMap, valueToCheckedMap, valueToItemMap, labelToItemMap] = usePathMaps(\n transformedItems,\n );\n\n const [internalValue, setInternalValue] = useState<string | number | Array<string | number>>(\n props.multiselect ? [] : '',\n );\n\n const value = outerValue !== null && outerValue !== undefined ? outerValue : internalValue;\n\n const floatingPopoverRef = useRef<HTMLDivElement>(null);\n\n // Состояния дерева элементов\n const [path, dispatchPath] = useReducer(pathReducer, []);\n const [focusedPath, dispatchFocusedPath] = useReducer(focusedPathReducer, []);\n const [checked, setChecked] = useState(valueToCheckedMap);\n\n const isCurrentListOpen = Boolean(path[0]);\n const activeDescendantItemValue = getItemByFocused(focusedPath, focusedToValueMap)?.value.toString() || '';\n const closeAfterSelect = outerCloseAfterSelect ?? !props.multiselect;\n const treeId = safeUseId();\n const view = target === 'textfield-like' && (disabled || readOnly) ? 'default' : getView(status, outerView);\n\n // Собираем объект с пропсами для required и прокидываем их напрямую в компонент Textfield.\n const requiredProps =\n props.target === 'button-like'\n ? undefined\n : ({\n required,\n requiredPlacement,\n hasRequiredIndicator,\n optional,\n } as RequiredProps);\n\n // Собираем объект с пропсами для hint и прокидываем их напрямую в компонент Textfield.\n const hintProps =\n props.target === 'button-like'\n ? undefined\n : ({\n hintText,\n hintTrigger,\n hintView,\n hintSize,\n hintTargetPlacement,\n hintPlacement,\n hintWidth,\n hintHasArrow,\n } as HintProps);\n\n const targetRef = useOutsideClick<HTMLUListElement>(() => {\n if (!isCurrentListOpen) {\n return;\n }\n\n dispatchPath({ type: 'reset' });\n dispatchFocusedPath({ type: 'reset' });\n\n if (onToggle) {\n onToggle(false);\n }\n }, floatingPopoverRef);\n\n const onChange = (\n newValue?: string | number | Array<string | number> | ChangeEvent<HTMLSelectElement> | null,\n item?: MergedDropdownNodeTransformed | null,\n ) => {\n if (props.onChange) {\n // Условие для отправки если компонент используется без формы.\n if (!props.name && (typeof newValue === 'string' || Array.isArray(newValue))) {\n props.onChange(newValue as any, item || null);\n }\n\n // Условие для отправки если компонент используется с формой.\n // Убрать условие \"typeof ref === 'function'\" в PLASMA 2.0\n if (props.name && typeof newValue === 'object' && !Array.isArray(newValue)) {\n props.onChange(newValue as any, item || null);\n }\n }\n\n // Условие для изменения внутреннего значения (только если newValue строка или массив строк).\n if (typeof newValue === 'string' || Array.isArray(newValue)) {\n setInternalValue(newValue);\n }\n };\n\n const handleListToggle = (opened: boolean) => {\n if (disabled || readOnly) {\n return;\n }\n\n if (opened) {\n dispatchPath({ type: 'opened_first_level' });\n } else {\n dispatchFocusedPath({ type: 'reset' });\n dispatchPath({ type: 'reset' });\n }\n\n if (onToggle) {\n onToggle(opened);\n }\n };\n\n const handleCheckboxChange = (item: MergedDropdownNodeTransformed) => {\n if (!props.multiselect) {\n return;\n }\n\n const checkedCopy = new Map(checked);\n\n if (!checkedCopy.get(item.value)) {\n checkedCopy.set(item.value, true);\n updateDescendants(item, checkedCopy, true, valueToItemMap);\n } else {\n checkedCopy.set(item.value, false);\n updateDescendants(item, checkedCopy, false);\n }\n\n updateAncestors(item, checkedCopy);\n\n const newValues: Array<string | number> = [];\n\n valueToItemMap.forEach((item, key) => {\n if (checkedCopy.get(key)) {\n newValues.push(item.value);\n }\n });\n\n // Оставляем values, которых нет в items.\n if (Array.isArray(value)) {\n value.forEach((val: string) => {\n if (!valueToItemMap.has(val)) {\n newValues.push(val);\n }\n });\n }\n\n if (closeAfterSelect) {\n dispatchPath({ type: 'reset' });\n dispatchFocusedPath({ type: 'reset' });\n }\n\n if (onChange) {\n onChange(newValues, item);\n }\n };\n\n const handleItemClick = (item: MergedDropdownNodeTransformed, e?: React.MouseEvent<HTMLElement>) => {\n if (!isEmpty(item?.items)) {\n return;\n }\n\n if (props.multiselect) {\n handleCheckboxChange(item);\n return;\n }\n\n if (e) {\n e.stopPropagation();\n }\n\n const isCurrentChecked = checked.get(item.value);\n\n if (closeAfterSelect) {\n dispatchPath({ type: 'reset' });\n dispatchFocusedPath({ type: 'reset' });\n }\n\n if (onChange) {\n onChange(isCurrentChecked ? '' : item.value, item);\n }\n\n if (onItemSelect) {\n onItemSelect(item, e!);\n }\n };\n\n const handlePressDown = (item: MergedDropdownNodeTransformed, e?: React.MouseEvent<HTMLElement>) => {\n if (isEmpty(item.items)) {\n handleItemClick(item, e);\n } else if (props.multiselect) {\n handleCheckboxChange(item);\n }\n };\n\n const handleScroll = (e: React.UIEvent<HTMLUListElement>) => {\n if (onScroll) {\n onScroll(e);\n }\n\n if (!onScrollBottom) return;\n\n const { target } = e;\n\n if (\n (target as HTMLElement).scrollHeight - (target as HTMLElement).scrollTop ===\n (target as HTMLElement).clientHeight\n ) {\n onScrollBottom(e);\n }\n };\n\n const { onKeyDown } = useKeyNavigation({\n focusedPath,\n dispatchFocusedPath,\n path,\n dispatchPath,\n pathMap,\n focusedToValueMap,\n handleListToggle,\n handlePressDown,\n });\n\n // В данном эффекте мы следим за изменениями value снаружи и вносим коррективы в дерево чекбоксов.\n // Пример: когда юзер очистил value извне, тогда нужно пройтись по элементам и выключить все чекбоксы.\n useLayoutEffect(() => {\n const checkedCopy = new Map(checked);\n\n checkedCopy.forEach((_, key) => {\n checkedCopy.set(key, false);\n });\n\n if (!isEmpty(value) || typeof value === 'number') {\n if (Array.isArray(value)) {\n value.forEach((val) => {\n // Только если value находится в items, т.к. value может и не существовать в items.\n if (valueToItemMap.has(val)) {\n checkedCopy.set(val, true);\n updateDescendants(valueToItemMap.get(val)!, checkedCopy, true);\n updateAncestors(valueToItemMap.get(val)!, checkedCopy);\n }\n });\n } else {\n // Только если value находится в items, т.к. value может и не существовать в items.\n // eslint-disable-next-line no-lonely-if\n if (valueToItemMap.has(value)) {\n checkedCopy.set(value, 'done');\n updateSingleAncestors(valueToItemMap.get(value)!, checkedCopy, 'dot');\n }\n }\n }\n\n setChecked(checkedCopy);\n\n // В deps мы кладем именно outerValue и internalValue, а не просто value.\n // Т.к. вначале нужно отфильтровать и провалидировать outerValue и результат положить в переменную.\n // А переменную, содержащую сложные типы данных, нельзя помещать в deps.\n }, [outerValue, internalValue, items]);\n\n useLayoutEffect(() => {\n if (defaultValue) {\n setInternalValue(defaultValue as string | string[]);\n }\n }, [defaultValue]);\n\n return (\n <Root\n view={view}\n size={size}\n labelPlacement={labelPlacement}\n chipView={chipView}\n disabled={disabled}\n readOnly={readOnly}\n id={id}\n {...(rest as any)}\n >\n {name && (\n <SelectNative\n items={valueToItemMap}\n name={name}\n value={internalValue}\n multiselect={props.multiselect}\n onChange={onChange}\n onSetValue={setInternalValue}\n ref={ref as ForwardedRef<HTMLButtonElement>}\n />\n )}\n <Context.Provider\n value={{\n focusedPath,\n checked,\n multiselect: props.multiselect,\n size,\n handleCheckboxChange,\n handleItemClick,\n variant,\n renderItem,\n treeId,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n // eslint-disable-next-line no-underscore-dangle\n _checkboxAppearance: (rest as any)._checkboxAppearance,\n }}\n >\n <FloatingPopover\n ref={floatingPopoverRef}\n opened={isCurrentListOpen}\n onToggle={handleListToggle}\n placement={placement}\n portal={portal}\n listWidth={listWidth}\n target={(referenceRef) => (\n <Target\n ref={name ? null : ref}\n value={value}\n opened={isCurrentListOpen}\n valueToItemMap={valueToItemMap}\n label={label}\n placeholder={placeholder}\n onKeyDown={onKeyDown}\n labelPlacement={labelPlacement}\n size={size}\n contentLeft={contentLeft}\n disabled={disabled}\n readOnly={readOnly}\n renderValue={renderValue}\n selectProps={props}\n inputWrapperRef={referenceRef as React.MutableRefObject<HTMLDivElement>}\n multiselect={props.multiselect}\n view={view}\n helperText={helperText}\n treeId={treeId}\n activeDescendantItemValue={activeDescendantItemValue}\n isTargetAmount={isTargetAmount}\n onChange={onChange}\n labelToItemMap={labelToItemMap}\n chipView={chipView}\n separator={separator}\n requiredProps={requiredProps}\n hintProps={hintProps}\n />\n )}\n zIndex={zIndex}\n isInner={false}\n >\n <Root\n view={view}\n size={size}\n labelPlacement={labelPlacement}\n chipView={chipView}\n disabled={disabled}\n readOnly={readOnly}\n {...(rest as any)}\n >\n <ListWrapper listWidth={listWidth}>\n <Ul\n role=\"tree\"\n id={`${treeId}_tree_level_1`}\n aria-multiselectable={Boolean(props.multiselect)}\n listOverflow={listOverflow}\n listMaxHeight={listMaxHeight || listHeight}\n onScroll={virtual ? undefined : handleScroll}\n ref={targetRef}\n virtual={virtual}\n >\n {beforeList}\n\n {props.multiselect && props.selectAllOptions && (\n // TODO: #2004\n <SelectAll selectAllOptions={props.selectAllOptions} variant={variant} />\n )}\n\n {virtual ? (\n <VirtualList\n items={transformedItems}\n listMaxHeight={listMaxHeight || listHeight}\n onScroll={onScroll}\n />\n ) : (\n transformedItems.map((item, index) => (\n <Inner\n key={`${index}/0`}\n item={item}\n currentLevel={0}\n path={path}\n dispatchPath={dispatchPath}\n index={index}\n listWidth={listWidth}\n />\n ))\n )}\n {afterList}\n </Ul>\n </ListWrapper>\n </Root>\n </FloatingPopover>\n </Context.Provider>\n </Root>\n );\n });\n\nexport const selectConfig = {\n name: 'Select',\n tag: 'div',\n layout: selectRoot,\n base,\n variations: {},\n defaults: {\n view: 'default',\n size: 'm',\n labelPlacement: 'outer',\n chipView: 'default',\n },\n};\n"],"names":["selectRoot","Root","forwardRef","props","ref","_getItemByFocused","id","outerValue","value","_props$target","target","items","_props$placement","placement","label","labelPlacement","placeholder","helperText","_props$disabled","disabled","_props$readOnly","readOnly","outerView","view","size","listOverflow","listHeight","listMaxHeight","listWidth","contentLeft","onScrollBottom","onScroll","chipView","_props$variant","variant","portal","renderValue","renderItem","status","onItemSelect","separator","outerCloseAfterSelect","closeAfterSelect","isTargetAmount","beforeList","afterList","zIndex","name","defaultValue","_props$virtual","virtual","onToggle","required","requiredPlacement","hasRequiredIndicator","optional","hintText","hintTrigger","hintView","hintSize","hintTargetPlacement","hintPlacement","hintWidth","hintHasArrow","rest","_objectWithoutProperties","_excluded","transformedItems","useMemo","initialItemsTransform","_usePathMaps","usePathMaps","_usePathMaps2","_slicedToArray","pathMap","focusedToValueMap","valueToCheckedMap","valueToItemMap","labelToItemMap","_useState","useState","multiselect","_useState2","internalValue","setInternalValue","undefined","floatingPopoverRef","useRef","_useReducer","useReducer","pathReducer","_useReducer2","path","dispatchPath","_useReducer3","focusedPathReducer","_useReducer4","focusedPath","dispatchFocusedPath","_useState3","_useState4","checked","setChecked","isCurrentListOpen","Boolean","activeDescendantItemValue","getItemByFocused","toString","treeId","safeUseId","getView","requiredProps","hintProps","targetRef","useOutsideClick","type","onChange","newValue","item","Array","isArray","_typeof","handleListToggle","opened","handleCheckboxChange","checkedCopy","Map","get","set","updateDescendants","updateAncestors","newValues","forEach","key","push","val","has","handleItemClick","e","isEmpty","stopPropagation","isCurrentChecked","handlePressDown","handleScroll","scrollHeight","scrollTop","clientHeight","_useKeyNavigation","useKeyNavigation","onKeyDown","useLayoutEffect","_","updateSingleAncestors","React","createElement","_extends","SelectNative","onSetValue","Context","Provider","_checkboxAppearance","FloatingPopover","referenceRef","Target","selectProps","inputWrapperRef","isInner","ListWrapper","Ul","role","concat","selectAllOptions","SelectAll","VirtualList","map","index","Inner","currentLevel","selectConfig","tag","layout","base","variations","defaults"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4BA;AACA;AACA;IACaA,UAAU,GAAG,SAAbA,UAAUA,CAAIC,IAAoE,EAAA;AAAA,EAAA,oBAC3FC,gBAAU,CAAuC,UAACC,KAAK,EAAEC,GAAG,EAAK;AAAA,IAAA,IAAAC,iBAAA,CAAA;AAC7D,IAAA,IAEIC,EAAE,GAqEFH,KAAK,CArELG,EAAE,CAAA;MACKC,UAAU,GAoEjBJ,KAAK,CApELK,KAAK,CAAA;MACGC,aAAA,GAmERN,KAAK,CAlELO,MAAM,CAAA;AAANA,MAAAA,MAAM,GAAAD,aAAA,KAAG,KAAA,CAAA,GAAA,gBAAgB,GAAAA,aAAA,CAAA;MACzBE,KAAK,GAiELR,KAAK,CAjELQ,KAAK,CAAA;MAAAC,gBAAA,GAiELT,KAAK,CAhELU,SAAS,CAAA;AAATA,MAAAA,SAAS,GAAAD,gBAAA,KAAG,KAAA,CAAA,GAAA,QAAQ,GAAAA,gBAAA,CAAA;MACpBE,KAAK,GA+DLX,KAAK,CA/DLW,KAAK,CAAA;MACLC,cAAc,GA8DdZ,KAAK,CA9DLY,cAAc,CAAA;MACdC,WAAW,GA6DXb,KAAK,CA7DLa,WAAW,CAAA;MACXC,UAAU,GA4DVd,KAAK,CA5DLc,UAAU,CAAA;MAAAC,eAAA,GA4DVf,KAAK,CA3DLgB,QAAQ,CAAA;AAARA,MAAAA,QAAQ,GAAAD,eAAA,KAAG,KAAA,CAAA,GAAA,KAAK,GAAAA,eAAA,CAAA;MAAAE,eAAA,GA2DhBjB,KAAK,CA1DLkB,QAAQ,CAAA;AAARA,MAAAA,QAAQ,GAAAD,eAAA,KAAG,KAAA,CAAA,GAAA,KAAK,GAAAA,eAAA,CAAA;MACVE,SAAS,GAyDfnB,KAAK,CAzDLoB,IAAI,CAAA;MACJC,IAAI,GAwDJrB,KAAK,CAxDLqB,IAAI,CAAA;MACJC,YAAY,GAuDZtB,KAAK,CAvDLsB,YAAY,CAAA;MACZC,UAAU,GAsDVvB,KAAK,CAtDLuB,UAAU,CAAA;MACVC,aAAa,GAqDbxB,KAAK,CArDLwB,aAAa,CAAA;MACbC,SAAS,GAoDTzB,KAAK,CApDLyB,SAAS,CAAA;MACTC,WAAW,GAmDX1B,KAAK,CAnDL0B,WAAW,CAAA;MACXC,cAAc,GAkDd3B,KAAK,CAlDL2B,cAAc,CAAA;MACdC,QAAQ,GAiDR5B,KAAK,CAjDL4B,QAAQ,CAAA;MACRC,QAAQ,GAgDR7B,KAAK,CAhDL6B,QAAQ,CAAA;MAAAC,cAAA,GAgDR9B,KAAK,CA/CL+B,OAAO,CAAA;AAAPA,MAAAA,OAAO,GAAAD,cAAA,KAAG,KAAA,CAAA,GAAA,QAAQ,GAAAA,cAAA,CAAA;MAClBE,MAAM,GA8CNhC,KAAK,CA9CLgC,MAAM,CAAA;MACNC,WAAW,GA6CXjC,KAAK,CA7CLiC,WAAW,CAAA;MACXC,UAAU,GA4CVlC,KAAK,CA5CLkC,UAAU,CAAA;MACVC,MAAM,GA2CNnC,KAAK,CA3CLmC,MAAM,CAAA;MACNC,YAAY,GA0CZpC,KAAK,CA1CLoC,YAAY,CAAA;MACZC,SAAS,GAyCTrC,KAAK,CAzCLqC,SAAS,CAAA;MACSC,qBAAqB,GAwCvCtC,KAAK,CAxCLuC,gBAAgB,CAAA;MAChBC,cAAc,GAuCdxC,KAAK,CAvCLwC,cAAc,CAAA;MACdC,UAAU,GAsCVzC,KAAK,CAtCLyC,UAAU,CAAA;MACVC,SAAS,GAqCT1C,KAAK,CArCL0C,SAAS,CAAA;MACTC,MAAM,GAoCN3C,KAAK,CApCL2C,MAAM,CAAA;MACNC,IAAI,GAmCJ5C,KAAK,CAnCL4C,IAAI,CAAA;MACJC,YAAY,GAkCZ7C,KAAK,CAlCL6C,YAAY,CAAA;MAAAC,cAAA,GAkCZ9C,KAAK,CAjCL+C,OAAO,CAAA;AAAPA,MAAAA,OAAO,GAAAD,cAAA,KAAG,KAAA,CAAA,GAAA,KAAK,GAAAA,cAAA,CAAA;MACfE,QAAQ,GAgCRhD,KAAK,CAhCLgD,QAAQ,CAAA;MAMRC,QAAQ,GA0BRjD,KAAK,CA1BLiD,QAAQ,CAAA;MAERC,iBAAiB,GAwBjBlD,KAAK,CAxBLkD,iBAAiB,CAAA;MAEjBC,oBAAoB,GAsBpBnD,KAAK,CAtBLmD,oBAAoB,CAAA;MAEpBC,QAAQ,GAoBRpD,KAAK,CApBLoD,QAAQ,CAAA;MAERC,QAAQ,GAkBRrD,KAAK,CAlBLqD,QAAQ,CAAA;MAERC,WAAW,GAgBXtD,KAAK,CAhBLsD,WAAW,CAAA;MAEXC,QAAQ,GAcRvD,KAAK,CAdLuD,QAAQ,CAAA;MAERC,QAAQ,GAYRxD,KAAK,CAZLwD,QAAQ,CAAA;MAERC,mBAAmB,GAUnBzD,KAAK,CAVLyD,mBAAmB,CAAA;MAEnBC,aAAa,GAQb1D,KAAK,CARL0D,aAAa,CAAA;MAEbC,SAAS,GAMT3D,KAAK,CANL2D,SAAS,CAAA;MAETC,YAAY,GAIZ5D,KAAK,CAJL4D,YAAY,CAAA;MAGTC,IAAI,GAAAC,iDAAA,CACP9D,KAAK,EAAA+D,SAAA,EAAA;IACT,IAAMC,gBAAgB,GAAGC,aAAO,CAAC,YAAA;AAAA,MAAA,OAAMC,2CAAqB,CAAC1D,KAAK,IAAI,EAAE,CAAC,CAAA;KAAE,EAAA,CAACA,KAAK,CAAC,CAAC,CAAA;;AAEnF;AACA,IAAA,IAAA2D,YAAA,GAAwFC,uBAAW,CAC/FJ,gBACJ,CAAC;MAAAK,aAAA,GAAAC,uCAAA,CAAAH,YAAA,EAAA,CAAA,CAAA;AAFMI,MAAAA,OAAO,GAAAF,aAAA,CAAA,CAAA,CAAA;AAAEG,MAAAA,iBAAiB,GAAAH,aAAA,CAAA,CAAA,CAAA;AAAEI,MAAAA,iBAAiB,GAAAJ,aAAA,CAAA,CAAA,CAAA;AAAEK,MAAAA,cAAc,GAAAL,aAAA,CAAA,CAAA,CAAA;AAAEM,MAAAA,cAAc,GAAAN,aAAA,CAAA,CAAA,CAAA,CAAA;IAIpF,IAAAO,SAAA,GAA0CC,cAAQ,CAC9C7E,KAAK,CAAC8E,WAAW,GAAG,EAAE,GAAG,EAC7B,CAAC;MAAAC,UAAA,GAAAT,uCAAA,CAAAM,SAAA,EAAA,CAAA,CAAA;AAFMI,MAAAA,aAAa,GAAAD,UAAA,CAAA,CAAA,CAAA;AAAEE,MAAAA,gBAAgB,GAAAF,UAAA,CAAA,CAAA,CAAA,CAAA;AAItC,IAAA,IAAM1E,KAAK,GAAGD,UAAU,KAAK,IAAI,IAAIA,UAAU,KAAK8E,SAAS,GAAG9E,UAAU,GAAG4E,aAAa,CAAA;AAE1F,IAAA,IAAMG,kBAAkB,GAAGC,YAAM,CAAiB,IAAI,CAAC,CAAA;;AAEvD;AACA,IAAA,IAAAC,WAAA,GAA6BC,gBAAU,CAACC,uBAAW,EAAE,EAAE,CAAC;MAAAC,YAAA,GAAAlB,uCAAA,CAAAe,WAAA,EAAA,CAAA,CAAA;AAAjDI,MAAAA,IAAI,GAAAD,YAAA,CAAA,CAAA,CAAA;AAAEE,MAAAA,YAAY,GAAAF,YAAA,CAAA,CAAA,CAAA,CAAA;AACzB,IAAA,IAAAG,YAAA,GAA2CL,gBAAU,CAACM,qCAAkB,EAAE,EAAE,CAAC;MAAAC,YAAA,GAAAvB,uCAAA,CAAAqB,YAAA,EAAA,CAAA,CAAA;AAAtEG,MAAAA,WAAW,GAAAD,YAAA,CAAA,CAAA,CAAA;AAAEE,MAAAA,mBAAmB,GAAAF,YAAA,CAAA,CAAA,CAAA,CAAA;AACvC,IAAA,IAAAG,UAAA,GAA8BnB,cAAQ,CAACJ,iBAAiB,CAAC;MAAAwB,UAAA,GAAA3B,uCAAA,CAAA0B,UAAA,EAAA,CAAA,CAAA;AAAlDE,MAAAA,OAAO,GAAAD,UAAA,CAAA,CAAA,CAAA;AAAEE,MAAAA,UAAU,GAAAF,UAAA,CAAA,CAAA,CAAA,CAAA;IAE1B,IAAMG,iBAAiB,GAAGC,OAAO,CAACZ,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;IAC1C,IAAMa,yBAAyB,GAAG,CAAApG,CAAAA,iBAAA,GAAAqG,sCAAgB,CAACT,WAAW,EAAEtB,iBAAiB,CAAC,cAAAtE,iBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAhDA,iBAAA,CAAkDG,KAAK,CAACmG,QAAQ,EAAE,KAAI,EAAE,CAAA;IAC1G,IAAMjE,gBAAgB,GAAGD,qBAAqB,KAArBA,IAAAA,IAAAA,qBAAqB,KAArBA,KAAAA,CAAAA,GAAAA,qBAAqB,GAAI,CAACtC,KAAK,CAAC8E,WAAW,CAAA;AACpE,IAAA,IAAM2B,MAAM,GAAGC,eAAS,EAAE,CAAA;AAC1B,IAAA,IAAMtF,IAAI,GAAGb,MAAM,KAAK,gBAAgB,KAAKS,QAAQ,IAAIE,QAAQ,CAAC,GAAG,SAAS,GAAGyF,eAAO,CAACxE,MAAM,EAAEhB,SAAS,CAAC,CAAA;;AAE3G;IACA,IAAMyF,aAAa,GACf5G,KAAK,CAACO,MAAM,KAAK,aAAa,GACxB2E,SAAS,GACR;AACGjC,MAAAA,QAAQ,EAARA,QAAQ;AACRC,MAAAA,iBAAiB,EAAjBA,iBAAiB;AACjBC,MAAAA,oBAAoB,EAApBA,oBAAoB;AACpBC,MAAAA,QAAQ,EAARA,QAAAA;KACe,CAAA;;AAE7B;IACA,IAAMyD,SAAS,GACX7G,KAAK,CAACO,MAAM,KAAK,aAAa,GACxB2E,SAAS,GACR;AACG7B,MAAAA,QAAQ,EAARA,QAAQ;AACRC,MAAAA,WAAW,EAAXA,WAAW;AACXC,MAAAA,QAAQ,EAARA,QAAQ;AACRC,MAAAA,QAAQ,EAARA,QAAQ;AACRC,MAAAA,mBAAmB,EAAnBA,mBAAmB;AACnBC,MAAAA,aAAa,EAAbA,aAAa;AACbC,MAAAA,SAAS,EAATA,SAAS;AACTC,MAAAA,YAAY,EAAZA,YAAAA;KACW,CAAA;AAEzB,IAAA,IAAMkD,SAAS,GAAGC,+BAAe,CAAmB,YAAM;MACtD,IAAI,CAACX,iBAAiB,EAAE;AACpB,QAAA,OAAA;AACJ,OAAA;AAEAV,MAAAA,YAAY,CAAC;AAAEsB,QAAAA,IAAI,EAAE,OAAA;AAAQ,OAAC,CAAC,CAAA;AAC/BjB,MAAAA,mBAAmB,CAAC;AAAEiB,QAAAA,IAAI,EAAE,OAAA;AAAQ,OAAC,CAAC,CAAA;AAEtC,MAAA,IAAIhE,QAAQ,EAAE;QACVA,QAAQ,CAAC,KAAK,CAAC,CAAA;AACnB,OAAA;KACH,EAAEmC,kBAAkB,CAAC,CAAA;IAEtB,IAAM8B,QAAQ,GAAG,SAAXA,QAAQA,CACVC,QAA2F,EAC3FC,IAA2C,EAC1C;MACD,IAAInH,KAAK,CAACiH,QAAQ,EAAE;AAChB;AACA,QAAA,IAAI,CAACjH,KAAK,CAAC4C,IAAI,KAAK,OAAOsE,QAAQ,KAAK,QAAQ,IAAIE,KAAK,CAACC,OAAO,CAACH,QAAQ,CAAC,CAAC,EAAE;UAC1ElH,KAAK,CAACiH,QAAQ,CAACC,QAAQ,EAASC,IAAI,IAAI,IAAI,CAAC,CAAA;AACjD,SAAA;;AAEA;AACA;AACA,QAAA,IAAInH,KAAK,CAAC4C,IAAI,IAAI0E,gCAAA,CAAOJ,QAAQ,CAAA,KAAK,QAAQ,IAAI,CAACE,KAAK,CAACC,OAAO,CAACH,QAAQ,CAAC,EAAE;UACxElH,KAAK,CAACiH,QAAQ,CAACC,QAAQ,EAASC,IAAI,IAAI,IAAI,CAAC,CAAA;AACjD,SAAA;AACJ,OAAA;;AAEA;MACA,IAAI,OAAOD,QAAQ,KAAK,QAAQ,IAAIE,KAAK,CAACC,OAAO,CAACH,QAAQ,CAAC,EAAE;QACzDjC,gBAAgB,CAACiC,QAAQ,CAAC,CAAA;AAC9B,OAAA;KACH,CAAA;AAED,IAAA,IAAMK,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAIC,MAAe,EAAK;MAC1C,IAAIxG,QAAQ,IAAIE,QAAQ,EAAE;AACtB,QAAA,OAAA;AACJ,OAAA;AAEA,MAAA,IAAIsG,MAAM,EAAE;AACR9B,QAAAA,YAAY,CAAC;AAAEsB,UAAAA,IAAI,EAAE,oBAAA;AAAqB,SAAC,CAAC,CAAA;AAChD,OAAC,MAAM;AACHjB,QAAAA,mBAAmB,CAAC;AAAEiB,UAAAA,IAAI,EAAE,OAAA;AAAQ,SAAC,CAAC,CAAA;AACtCtB,QAAAA,YAAY,CAAC;AAAEsB,UAAAA,IAAI,EAAE,OAAA;AAAQ,SAAC,CAAC,CAAA;AACnC,OAAA;AAEA,MAAA,IAAIhE,QAAQ,EAAE;QACVA,QAAQ,CAACwE,MAAM,CAAC,CAAA;AACpB,OAAA;KACH,CAAA;AAED,IAAA,IAAMC,oBAAoB,GAAG,SAAvBA,oBAAoBA,CAAIN,IAAmC,EAAK;AAClE,MAAA,IAAI,CAACnH,KAAK,CAAC8E,WAAW,EAAE;AACpB,QAAA,OAAA;AACJ,OAAA;AAEA,MAAA,IAAM4C,WAAW,GAAG,IAAIC,GAAG,CAACzB,OAAO,CAAC,CAAA;MAEpC,IAAI,CAACwB,WAAW,CAACE,GAAG,CAACT,IAAI,CAAC9G,KAAK,CAAC,EAAE;QAC9BqH,WAAW,CAACG,GAAG,CAACV,IAAI,CAAC9G,KAAK,EAAE,IAAI,CAAC,CAAA;QACjCyH,mCAAiB,CAACX,IAAI,EAAEO,WAAW,EAAE,IAAI,EAAEhD,cAAc,CAAC,CAAA;AAC9D,OAAC,MAAM;QACHgD,WAAW,CAACG,GAAG,CAACV,IAAI,CAAC9G,KAAK,EAAE,KAAK,CAAC,CAAA;AAClCyH,QAAAA,mCAAiB,CAACX,IAAI,EAAEO,WAAW,EAAE,KAAK,CAAC,CAAA;AAC/C,OAAA;AAEAK,MAAAA,+BAAe,CAACZ,IAAI,EAAEO,WAAW,CAAC,CAAA;MAElC,IAAMM,SAAiC,GAAG,EAAE,CAAA;AAE5CtD,MAAAA,cAAc,CAACuD,OAAO,CAAC,UAACd,IAAI,EAAEe,GAAG,EAAK;AAClC,QAAA,IAAIR,WAAW,CAACE,GAAG,CAACM,GAAG,CAAC,EAAE;AACtBF,UAAAA,SAAS,CAACG,IAAI,CAAChB,IAAI,CAAC9G,KAAK,CAAC,CAAA;AAC9B,SAAA;AACJ,OAAC,CAAC,CAAA;;AAEF;AACA,MAAA,IAAI+G,KAAK,CAACC,OAAO,CAAChH,KAAK,CAAC,EAAE;AACtBA,QAAAA,KAAK,CAAC4H,OAAO,CAAC,UAACG,GAAW,EAAK;AAC3B,UAAA,IAAI,CAAC1D,cAAc,CAAC2D,GAAG,CAACD,GAAG,CAAC,EAAE;AAC1BJ,YAAAA,SAAS,CAACG,IAAI,CAACC,GAAG,CAAC,CAAA;AACvB,WAAA;AACJ,SAAC,CAAC,CAAA;AACN,OAAA;AAEA,MAAA,IAAI7F,gBAAgB,EAAE;AAClBmD,QAAAA,YAAY,CAAC;AAAEsB,UAAAA,IAAI,EAAE,OAAA;AAAQ,SAAC,CAAC,CAAA;AAC/BjB,QAAAA,mBAAmB,CAAC;AAAEiB,UAAAA,IAAI,EAAE,OAAA;AAAQ,SAAC,CAAC,CAAA;AAC1C,OAAA;AAEA,MAAA,IAAIC,QAAQ,EAAE;AACVA,QAAAA,QAAQ,CAACe,SAAS,EAAEb,IAAI,CAAC,CAAA;AAC7B,OAAA;KACH,CAAA;IAED,IAAMmB,eAAe,GAAG,SAAlBA,eAAeA,CAAInB,IAAmC,EAAEoB,CAAiC,EAAK;MAChG,IAAI,CAACC,eAAO,CAACrB,IAAI,KAAA,IAAA,IAAJA,IAAI,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAJA,IAAI,CAAE3G,KAAK,CAAC,EAAE;AACvB,QAAA,OAAA;AACJ,OAAA;MAEA,IAAIR,KAAK,CAAC8E,WAAW,EAAE;QACnB2C,oBAAoB,CAACN,IAAI,CAAC,CAAA;AAC1B,QAAA,OAAA;AACJ,OAAA;AAEA,MAAA,IAAIoB,CAAC,EAAE;QACHA,CAAC,CAACE,eAAe,EAAE,CAAA;AACvB,OAAA;MAEA,IAAMC,gBAAgB,GAAGxC,OAAO,CAAC0B,GAAG,CAACT,IAAI,CAAC9G,KAAK,CAAC,CAAA;AAEhD,MAAA,IAAIkC,gBAAgB,EAAE;AAClBmD,QAAAA,YAAY,CAAC;AAAEsB,UAAAA,IAAI,EAAE,OAAA;AAAQ,SAAC,CAAC,CAAA;AAC/BjB,QAAAA,mBAAmB,CAAC;AAAEiB,UAAAA,IAAI,EAAE,OAAA;AAAQ,SAAC,CAAC,CAAA;AAC1C,OAAA;AAEA,MAAA,IAAIC,QAAQ,EAAE;QACVA,QAAQ,CAACyB,gBAAgB,GAAG,EAAE,GAAGvB,IAAI,CAAC9G,KAAK,EAAE8G,IAAI,CAAC,CAAA;AACtD,OAAA;AAEA,MAAA,IAAI/E,YAAY,EAAE;AACdA,QAAAA,YAAY,CAAC+E,IAAI,EAAEoB,CAAE,CAAC,CAAA;AAC1B,OAAA;KACH,CAAA;IAED,IAAMI,eAAe,GAAG,SAAlBA,eAAeA,CAAIxB,IAAmC,EAAEoB,CAAiC,EAAK;AAChG,MAAA,IAAIC,eAAO,CAACrB,IAAI,CAAC3G,KAAK,CAAC,EAAE;AACrB8H,QAAAA,eAAe,CAACnB,IAAI,EAAEoB,CAAC,CAAC,CAAA;AAC5B,OAAC,MAAM,IAAIvI,KAAK,CAAC8E,WAAW,EAAE;QAC1B2C,oBAAoB,CAACN,IAAI,CAAC,CAAA;AAC9B,OAAA;KACH,CAAA;AAED,IAAA,IAAMyB,YAAY,GAAG,SAAfA,YAAYA,CAAIL,CAAkC,EAAK;AACzD,MAAA,IAAI3G,QAAQ,EAAE;QACVA,QAAQ,CAAC2G,CAAC,CAAC,CAAA;AACf,OAAA;MAEA,IAAI,CAAC5G,cAAc,EAAE,OAAA;AAErB,MAAA,IAAQpB,MAAM,GAAKgI,CAAC,CAAZhI,MAAM,CAAA;MAEd,IACKA,MAAM,CAAiBsI,YAAY,GAAItI,MAAM,CAAiBuI,SAAS,KACvEvI,MAAM,CAAiBwI,YAAY,EACtC;QACEpH,cAAc,CAAC4G,CAAC,CAAC,CAAA;AACrB,OAAA;KACH,CAAA;IAED,IAAAS,iBAAA,GAAsBC,sCAAgB,CAAC;AACnCnD,QAAAA,WAAW,EAAXA,WAAW;AACXC,QAAAA,mBAAmB,EAAnBA,mBAAmB;AACnBN,QAAAA,IAAI,EAAJA,IAAI;AACJC,QAAAA,YAAY,EAAZA,YAAY;AACZnB,QAAAA,OAAO,EAAPA,OAAO;AACPC,QAAAA,iBAAiB,EAAjBA,iBAAiB;AACjB+C,QAAAA,gBAAgB,EAAhBA,gBAAgB;AAChBoB,QAAAA,eAAe,EAAfA,eAAAA;AACJ,OAAC,CAAC;MATMO,SAAS,GAAAF,iBAAA,CAATE,SAAS,CAAA;;AAWjB;AACA;AACAC,IAAAA,qBAAe,CAAC,YAAM;AAClB,MAAA,IAAMzB,WAAW,GAAG,IAAIC,GAAG,CAACzB,OAAO,CAAC,CAAA;AAEpCwB,MAAAA,WAAW,CAACO,OAAO,CAAC,UAACmB,CAAC,EAAElB,GAAG,EAAK;AAC5BR,QAAAA,WAAW,CAACG,GAAG,CAACK,GAAG,EAAE,KAAK,CAAC,CAAA;AAC/B,OAAC,CAAC,CAAA;MAEF,IAAI,CAACM,eAAO,CAACnI,KAAK,CAAC,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE;AAC9C,QAAA,IAAI+G,KAAK,CAACC,OAAO,CAAChH,KAAK,CAAC,EAAE;AACtBA,UAAAA,KAAK,CAAC4H,OAAO,CAAC,UAACG,GAAG,EAAK;AACnB;AACA,YAAA,IAAI1D,cAAc,CAAC2D,GAAG,CAACD,GAAG,CAAC,EAAE;AACzBV,cAAAA,WAAW,CAACG,GAAG,CAACO,GAAG,EAAE,IAAI,CAAC,CAAA;cAC1BN,mCAAiB,CAACpD,cAAc,CAACkD,GAAG,CAACQ,GAAG,CAAC,EAAGV,WAAW,EAAE,IAAI,CAAC,CAAA;cAC9DK,+BAAe,CAACrD,cAAc,CAACkD,GAAG,CAACQ,GAAG,CAAC,EAAGV,WAAW,CAAC,CAAA;AAC1D,aAAA;AACJ,WAAC,CAAC,CAAA;AACN,SAAC,MAAM;AACH;AACA;AACA,UAAA,IAAIhD,cAAc,CAAC2D,GAAG,CAAChI,KAAK,CAAC,EAAE;AAC3BqH,YAAAA,WAAW,CAACG,GAAG,CAACxH,KAAK,EAAE,MAAM,CAAC,CAAA;YAC9BgJ,2CAAqB,CAAC3E,cAAc,CAACkD,GAAG,CAACvH,KAAK,CAAC,EAAGqH,WAAW,EAAE,KAAK,CAAC,CAAA;AACzE,WAAA;AACJ,SAAA;AACJ,OAAA;MAEAvB,UAAU,CAACuB,WAAW,CAAC,CAAA;;AAEvB;AACA;AACA;KACH,EAAE,CAACtH,UAAU,EAAE4E,aAAa,EAAExE,KAAK,CAAC,CAAC,CAAA;AAEtC2I,IAAAA,qBAAe,CAAC,YAAM;AAClB,MAAA,IAAItG,YAAY,EAAE;QACdoC,gBAAgB,CAACpC,YAAiC,CAAC,CAAA;AACvD,OAAA;AACJ,KAAC,EAAE,CAACA,YAAY,CAAC,CAAC,CAAA;AAElB,IAAA,oBACIyG,sBAAA,CAAAC,aAAA,CAACzJ,IAAI,EAAA0J,iCAAA,CAAA;AACDpI,MAAAA,IAAI,EAAEA,IAAK;AACXC,MAAAA,IAAI,EAAEA,IAAK;AACXT,MAAAA,cAAc,EAAEA,cAAe;AAC/BiB,MAAAA,QAAQ,EAAEA,QAAS;AACnBb,MAAAA,QAAQ,EAAEA,QAAS;AACnBE,MAAAA,QAAQ,EAAEA,QAAS;AACnBf,MAAAA,EAAE,EAAEA,EAAAA;KACC0D,EAAAA,IAAI,GAERjB,IAAI,iBACD0G,sBAAA,CAAAC,aAAA,CAACE,yBAAY,EAAA;AACTjJ,MAAAA,KAAK,EAAEkE,cAAe;AACtB9B,MAAAA,IAAI,EAAEA,IAAK;AACXvC,MAAAA,KAAK,EAAE2E,aAAc;MACrBF,WAAW,EAAE9E,KAAK,CAAC8E,WAAY;AAC/BmC,MAAAA,QAAQ,EAAEA,QAAS;AACnByC,MAAAA,UAAU,EAAEzE,gBAAiB;AAC7BhF,MAAAA,GAAG,EAAEA,GAAAA;KACR,CACJ,eACDqJ,sBAAA,CAAAC,aAAA,CAACI,sBAAO,CAACC,QAAQ,EAAA;AACbvJ,MAAAA,KAAK,EAAE;AACHyF,QAAAA,WAAW,EAAXA,WAAW;AACXI,QAAAA,OAAO,EAAPA,OAAO;QACPpB,WAAW,EAAE9E,KAAK,CAAC8E,WAAW;AAC9BzD,QAAAA,IAAI,EAAJA,IAAI;AACJoG,QAAAA,oBAAoB,EAApBA,oBAAoB;AACpBa,QAAAA,eAAe,EAAfA,eAAe;AACfvG,QAAAA,OAAO,EAAPA,OAAO;AACPG,QAAAA,UAAU,EAAVA,UAAU;AACVuE,QAAAA,MAAM,EAANA,MAAM;AACN;AACA;AACA;QACAoD,mBAAmB,EAAGhG,IAAI,CAASgG,mBAAAA;AACvC,OAAA;AAAE,KAAA,eAEFP,sBAAA,CAAAC,aAAA,CAACO,+BAAe,EAAA;AACZ7J,MAAAA,GAAG,EAAEkF,kBAAmB;AACxBqC,MAAAA,MAAM,EAAEpB,iBAAkB;AAC1BpD,MAAAA,QAAQ,EAAEuE,gBAAiB;AAC3B7G,MAAAA,SAAS,EAAEA,SAAU;AACrBsB,MAAAA,MAAM,EAAEA,MAAO;AACfP,MAAAA,SAAS,EAAEA,SAAU;MACrBlB,MAAM,EAAE,SAAAA,MAAAA,CAACwJ,YAAY,EAAA;AAAA,QAAA,oBACjBT,sBAAA,CAAAC,aAAA,CAACS,aAAM,EAAA;AACH/J,UAAAA,GAAG,EAAE2C,IAAI,GAAG,IAAI,GAAG3C,GAAI;AACvBI,UAAAA,KAAK,EAAEA,KAAM;AACbmH,UAAAA,MAAM,EAAEpB,iBAAkB;AAC1B1B,UAAAA,cAAc,EAAEA,cAAe;AAC/B/D,UAAAA,KAAK,EAAEA,KAAM;AACbE,UAAAA,WAAW,EAAEA,WAAY;AACzBqI,UAAAA,SAAS,EAAEA,SAAU;AACrBtI,UAAAA,cAAc,EAAEA,cAAe;AAC/BS,UAAAA,IAAI,EAAEA,IAAK;AACXK,UAAAA,WAAW,EAAEA,WAAY;AACzBV,UAAAA,QAAQ,EAAEA,QAAS;AACnBE,UAAAA,QAAQ,EAAEA,QAAS;AACnBe,UAAAA,WAAW,EAAEA,WAAY;AACzBgI,UAAAA,WAAW,EAAEjK,KAAM;AACnBkK,UAAAA,eAAe,EAAEH,YAAuD;UACxEjF,WAAW,EAAE9E,KAAK,CAAC8E,WAAY;AAC/B1D,UAAAA,IAAI,EAAEA,IAAK;AACXN,UAAAA,UAAU,EAAEA,UAAW;AACvB2F,UAAAA,MAAM,EAAEA,MAAO;AACfH,UAAAA,yBAAyB,EAAEA,yBAA0B;AACrD9D,UAAAA,cAAc,EAAEA,cAAe;AAC/ByE,UAAAA,QAAQ,EAAEA,QAAS;AACnBtC,UAAAA,cAAc,EAAEA,cAAe;AAC/B9C,UAAAA,QAAQ,EAAEA,QAAS;AACnBQ,UAAAA,SAAS,EAAEA,SAAU;AACrBuE,UAAAA,aAAa,EAAEA,aAAc;AAC7BC,UAAAA,SAAS,EAAEA,SAAAA;AAAU,SACxB,CAAC,CAAA;OACJ;AACFlE,MAAAA,MAAM,EAAEA,MAAO;AACfwH,MAAAA,OAAO,EAAE,KAAA;AAAM,KAAA,eAEfb,sBAAA,CAAAC,aAAA,CAACzJ,IAAI,EAAA0J,iCAAA,CAAA;AACDpI,MAAAA,IAAI,EAAEA,IAAK;AACXC,MAAAA,IAAI,EAAEA,IAAK;AACXT,MAAAA,cAAc,EAAEA,cAAe;AAC/BiB,MAAAA,QAAQ,EAAEA,QAAS;AACnBb,MAAAA,QAAQ,EAAEA,QAAS;AACnBE,MAAAA,QAAQ,EAAEA,QAAAA;AAAS,KAAA,EACd2C,IAAI,CAETyF,eAAAA,sBAAA,CAAAC,aAAA,CAACa,yBAAW,EAAA;AAAC3I,MAAAA,SAAS,EAAEA,SAAAA;AAAU,KAAA,eAC9B6H,sBAAA,CAAAC,aAAA,CAACc,gBAAE,EAAA;AACCC,MAAAA,IAAI,EAAC,MAAM;AACXnK,MAAAA,EAAE,EAAAoK,EAAAA,CAAAA,MAAA,CAAK9D,MAAM,EAAgB,eAAA,CAAA;AAC7B,MAAA,sBAAA,EAAsBJ,OAAO,CAACrG,KAAK,CAAC8E,WAAW,CAAE;AACjDxD,MAAAA,YAAY,EAAEA,YAAa;MAC3BE,aAAa,EAAEA,aAAa,IAAID,UAAW;AAC3CK,MAAAA,QAAQ,EAAEmB,OAAO,GAAGmC,SAAS,GAAG0D,YAAa;AAC7C3I,MAAAA,GAAG,EAAE6G,SAAU;AACf/D,MAAAA,OAAO,EAAEA,OAAAA;KAERN,EAAAA,UAAU,EAEVzC,KAAK,CAAC8E,WAAW,IAAI9E,KAAK,CAACwK,gBAAgB;AAAA;AACxC;IACAlB,sBAAA,CAAAC,aAAA,CAACkB,mBAAS,EAAA;MAACD,gBAAgB,EAAExK,KAAK,CAACwK,gBAAiB;AAACzI,MAAAA,OAAO,EAAEA,OAAAA;KAAU,CAC3E,EAEAgB,OAAO,gBACJuG,sBAAA,CAAAC,aAAA,CAACmB,uBAAW,EAAA;AACRlK,MAAAA,KAAK,EAAEwD,gBAAiB;MACxBxC,aAAa,EAAEA,aAAa,IAAID,UAAW;AAC3CK,MAAAA,QAAQ,EAAEA,QAAAA;KACb,CAAC,GAEFoC,gBAAgB,CAAC2G,GAAG,CAAC,UAACxD,IAAI,EAAEyD,KAAK,EAAA;AAAA,MAAA,oBAC7BtB,sBAAA,CAAAC,aAAA,CAACsB,WAAK,EAAA;AACF3C,QAAAA,GAAG,EAAAqC,EAAAA,CAAAA,MAAA,CAAKK,KAAK,EAAK,IAAA,CAAA;AAClBzD,QAAAA,IAAI,EAAEA,IAAK;AACX2D,QAAAA,YAAY,EAAE,CAAE;AAChBrF,QAAAA,IAAI,EAAEA,IAAK;AACXC,QAAAA,YAAY,EAAEA,YAAa;AAC3BkF,QAAAA,KAAK,EAAEA,KAAM;AACbnJ,QAAAA,SAAS,EAAEA,SAAAA;AAAU,OACxB,CAAC,CAAA;KACL,CACJ,EACAiB,SACD,CACK,CACX,CACO,CACH,CAChB,CAAC,CAAA;AAEf,GAAC,CAAC,CAAA;AAAA,EAAA;AAEC,IAAMqI,YAAY,GAAG;AACxBnI,EAAAA,IAAI,EAAE,QAAQ;AACdoI,EAAAA,GAAG,EAAE,KAAK;AACVC,EAAAA,MAAM,EAAEpL,UAAU;AAClBqL,EAAAA,IAAI,EAAJA,kBAAI;EACJC,UAAU,EAAE,EAAE;AACdC,EAAAA,QAAQ,EAAE;AACNhK,IAAAA,IAAI,EAAE,SAAS;AACfC,IAAAA,IAAI,EAAE,GAAG;AACTT,IAAAA,cAAc,EAAE,OAAO;AACvBiB,IAAAA,QAAQ,EAAE,SAAA;AACd,GAAA;AACJ;;;;;"}
1
+ {"version":3,"file":"Select.js","sources":["../../../src/components/Select/Select.tsx"],"sourcesContent":["import React, {\n forwardRef,\n useState,\n useReducer,\n useMemo,\n useLayoutEffect,\n useRef,\n ChangeEvent,\n ForwardedRef,\n} from 'react';\nimport { safeUseId } from '@salutejs/plasma-core';\nimport { RootProps } from 'src/engines';\nimport { isEmpty } from 'src/utils';\nimport { useOutsideClick } from 'src/hooks';\n\nimport type { HintProps } from '../TextField/TextField.types';\n\nimport { useKeyNavigation, getItemByFocused } from './hooks/useKeyboardNavigation';\nimport { initialItemsTransform, updateAncestors, updateDescendants, updateSingleAncestors, getView } from './utils';\nimport { Inner, Target, VirtualList, SelectAll } from './ui';\nimport { pathReducer, focusedPathReducer } from './reducers';\nimport { usePathMaps } from './hooks/usePathMaps';\nimport { Ul, base, ListWrapper } from './Select.styles';\nimport type { MergedSelectProps, RequiredProps } from './Select.types';\nimport type { MergedDropdownNodeTransformed } from './ui/Inner/ui/Item/Item.types';\nimport { FloatingPopover } from './FloatingPopover';\nimport { SelectNative } from './ui/SelectNative/SelectNative';\nimport { Context } from './Select.context';\n\n/**\n * Выпадающий список. Поддерживает выбор одного или нескольких значений.\n */\nexport const selectRoot = (Root: RootProps<HTMLButtonElement, Omit<MergedSelectProps, 'items'>>) =>\n forwardRef<HTMLButtonElement, MergedSelectProps>((props, ref) => {\n const {\n // eslint-disable-block @typescript-eslint/ban-ts-comment\n id,\n value: outerValue,\n onChange: outerOnChange,\n target = 'textfield-like',\n items,\n placement = 'bottom',\n label,\n labelPlacement,\n placeholder,\n helperText,\n disabled = false,\n readOnly = false,\n view: outerView,\n size,\n listOverflow,\n listHeight,\n listMaxHeight,\n listWidth,\n contentLeft,\n onScrollBottom,\n onScroll,\n chipView,\n variant = 'normal',\n portal,\n renderValue,\n renderItem,\n status,\n onItemSelect,\n separator,\n closeAfterSelect: outerCloseAfterSelect,\n isTargetAmount,\n beforeList,\n afterList,\n zIndex,\n name,\n defaultValue,\n virtual = false,\n onToggle,\n chipType,\n multiselect,\n\n // Извлекаем пропсы для required и hint, чтобы они не попадали в DOM.\n // @ts-ignore\n required,\n // @ts-ignore\n requiredPlacement,\n // @ts-ignore\n hasRequiredIndicator,\n // @ts-ignore\n optional,\n // @ts-ignore\n hintText,\n // @ts-ignore\n hintTrigger,\n // @ts-ignore\n hintView,\n // @ts-ignore\n hintSize,\n // @ts-ignore\n hintTargetPlacement,\n // @ts-ignore\n hintPlacement,\n // @ts-ignore\n hintWidth,\n // @ts-ignore\n hintHasArrow,\n // @ts-ignore\n hasHint,\n ...rest\n } = props;\n const transformedItems = useMemo(() => initialItemsTransform(items || []), [items]);\n\n // Создаем структуры для быстрой работы с деревом\n const [pathMap, focusedToValueMap, valueToCheckedMap, valueToItemMap, labelToItemMap] = usePathMaps(\n transformedItems,\n );\n\n const [internalValue, setInternalValue] = useState<string | number | Array<string | number>>(\n props.multiselect ? [] : '',\n );\n\n const value = outerValue !== null && outerValue !== undefined ? outerValue : internalValue;\n\n const floatingPopoverRef = useRef<HTMLDivElement>(null);\n\n // Состояния дерева элементов\n const [path, dispatchPath] = useReducer(pathReducer, []);\n const [focusedPath, dispatchFocusedPath] = useReducer(focusedPathReducer, []);\n const [checked, setChecked] = useState(valueToCheckedMap);\n\n const isCurrentListOpen = Boolean(path[0]);\n const activeDescendantItemValue = getItemByFocused(focusedPath, focusedToValueMap)?.value.toString() || '';\n const closeAfterSelect = outerCloseAfterSelect ?? !props.multiselect;\n const treeId = safeUseId();\n const view = target === 'textfield-like' && (disabled || readOnly) ? 'default' : getView(status, outerView);\n\n // Собираем объект с пропсами для required и прокидываем их напрямую в компонент Textfield.\n const requiredProps =\n props.target === 'button-like'\n ? undefined\n : ({\n required,\n requiredPlacement,\n hasRequiredIndicator,\n optional,\n } as RequiredProps);\n\n // Собираем объект с пропсами для hint и прокидываем их напрямую в компонент Textfield.\n const hintProps =\n props.target === 'button-like'\n ? undefined\n : ({\n hintText,\n hintTrigger,\n hintView,\n hintSize,\n hintTargetPlacement,\n hintPlacement,\n hintWidth,\n hintHasArrow,\n } as HintProps);\n\n const targetRef = useOutsideClick<HTMLUListElement>(() => {\n if (!isCurrentListOpen) {\n return;\n }\n\n dispatchPath({ type: 'reset' });\n dispatchFocusedPath({ type: 'reset' });\n\n if (onToggle) {\n onToggle(false);\n }\n }, floatingPopoverRef);\n\n const onChange = (\n newValue?: string | number | Array<string | number> | ChangeEvent<HTMLSelectElement> | null,\n item?: MergedDropdownNodeTransformed | null,\n ) => {\n if (props.onChange) {\n // Условие для отправки если компонент используется без формы.\n if (!props.name && (typeof newValue === 'string' || Array.isArray(newValue))) {\n props.onChange(newValue as any, item || null);\n }\n\n // Условие для отправки если компонент используется с формой.\n // Убрать условие \"typeof ref === 'function'\" в PLASMA 2.0\n if (props.name && typeof newValue === 'object' && !Array.isArray(newValue)) {\n props.onChange(newValue as any, item || null);\n }\n }\n\n // Условие для изменения внутреннего значения (только если newValue строка или массив строк).\n if (typeof newValue === 'string' || Array.isArray(newValue)) {\n setInternalValue(newValue);\n }\n };\n\n const handleListToggle = (opened: boolean) => {\n if (disabled || readOnly) {\n return;\n }\n\n if (opened) {\n dispatchPath({ type: 'opened_first_level' });\n } else {\n dispatchFocusedPath({ type: 'reset' });\n dispatchPath({ type: 'reset' });\n }\n\n if (onToggle) {\n onToggle(opened);\n }\n };\n\n const handleCheckboxChange = (item: MergedDropdownNodeTransformed) => {\n if (!props.multiselect) {\n return;\n }\n\n const checkedCopy = new Map(checked);\n\n if (!checkedCopy.get(item.value)) {\n checkedCopy.set(item.value, true);\n updateDescendants(item, checkedCopy, true, valueToItemMap);\n } else {\n checkedCopy.set(item.value, false);\n updateDescendants(item, checkedCopy, false);\n }\n\n updateAncestors(item, checkedCopy);\n\n const newValues: Array<string | number> = [];\n\n valueToItemMap.forEach((item, key) => {\n if (checkedCopy.get(key)) {\n newValues.push(item.value);\n }\n });\n\n // Оставляем values, которых нет в items.\n if (Array.isArray(value)) {\n value.forEach((val: string) => {\n if (!valueToItemMap.has(val)) {\n newValues.push(val);\n }\n });\n }\n\n if (closeAfterSelect) {\n dispatchPath({ type: 'reset' });\n dispatchFocusedPath({ type: 'reset' });\n }\n\n if (onChange) {\n onChange(newValues, item);\n }\n };\n\n const handleItemClick = (item: MergedDropdownNodeTransformed, e?: React.MouseEvent<HTMLElement>) => {\n if (!isEmpty(item?.items)) {\n return;\n }\n\n if (props.multiselect) {\n handleCheckboxChange(item);\n return;\n }\n\n if (e) {\n e.stopPropagation();\n }\n\n const isCurrentChecked = checked.get(item.value);\n\n if (closeAfterSelect) {\n dispatchPath({ type: 'reset' });\n dispatchFocusedPath({ type: 'reset' });\n }\n\n if (onChange) {\n onChange(isCurrentChecked ? '' : item.value, item);\n }\n\n if (onItemSelect) {\n onItemSelect(item, e!);\n }\n };\n\n const handlePressDown = (item: MergedDropdownNodeTransformed, e?: React.MouseEvent<HTMLElement>) => {\n if (isEmpty(item.items)) {\n handleItemClick(item, e);\n } else if (props.multiselect) {\n handleCheckboxChange(item);\n }\n };\n\n const handleScroll = (e: React.UIEvent<HTMLUListElement>) => {\n if (onScroll) {\n onScroll(e);\n }\n\n if (!onScrollBottom) return;\n\n const { target } = e;\n\n if (\n (target as HTMLElement).scrollHeight - (target as HTMLElement).scrollTop ===\n (target as HTMLElement).clientHeight\n ) {\n onScrollBottom(e);\n }\n };\n\n const { onKeyDown } = useKeyNavigation({\n focusedPath,\n dispatchFocusedPath,\n path,\n dispatchPath,\n pathMap,\n focusedToValueMap,\n handleListToggle,\n handlePressDown,\n });\n\n // В данном эффекте мы следим за изменениями value снаружи и вносим коррективы в дерево чекбоксов.\n // Пример: когда юзер очистил value извне, тогда нужно пройтись по элементам и выключить все чекбоксы.\n useLayoutEffect(() => {\n const checkedCopy = new Map(checked);\n\n checkedCopy.forEach((_, key) => {\n checkedCopy.set(key, false);\n });\n\n if (!isEmpty(value) || typeof value === 'number') {\n if (Array.isArray(value)) {\n value.forEach((val) => {\n // Только если value находится в items, т.к. value может и не существовать в items.\n if (valueToItemMap.has(val)) {\n checkedCopy.set(val, true);\n updateDescendants(valueToItemMap.get(val)!, checkedCopy, true);\n updateAncestors(valueToItemMap.get(val)!, checkedCopy);\n }\n });\n } else {\n // Только если value находится в items, т.к. value может и не существовать в items.\n // eslint-disable-next-line no-lonely-if\n if (valueToItemMap.has(value)) {\n checkedCopy.set(value, 'done');\n updateSingleAncestors(valueToItemMap.get(value)!, checkedCopy, 'dot');\n }\n }\n }\n\n setChecked(checkedCopy);\n\n // В deps мы кладем именно outerValue и internalValue, а не просто value.\n // Т.к. вначале нужно отфильтровать и провалидировать outerValue и результат положить в переменную.\n // А переменную, содержащую сложные типы данных, нельзя помещать в deps.\n }, [outerValue, internalValue, items]);\n\n useLayoutEffect(() => {\n if (defaultValue) {\n setInternalValue(defaultValue as string | string[]);\n }\n }, [defaultValue]);\n\n return (\n <Root\n view={view}\n size={size}\n labelPlacement={labelPlacement}\n chipView={chipView}\n disabled={disabled}\n readOnly={readOnly}\n id={id}\n {...(rest as any)}\n >\n {name && (\n <SelectNative\n items={valueToItemMap}\n name={name}\n value={internalValue}\n multiselect={props.multiselect}\n onChange={onChange}\n onSetValue={setInternalValue}\n ref={ref as ForwardedRef<HTMLButtonElement>}\n />\n )}\n <Context.Provider\n value={{\n focusedPath,\n checked,\n multiselect: props.multiselect,\n size,\n handleCheckboxChange,\n handleItemClick,\n variant,\n renderItem,\n treeId,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n // eslint-disable-next-line no-underscore-dangle\n _checkboxAppearance: (rest as any)._checkboxAppearance,\n }}\n >\n <FloatingPopover\n ref={floatingPopoverRef}\n opened={isCurrentListOpen}\n onToggle={handleListToggle}\n placement={placement}\n portal={portal}\n listWidth={listWidth}\n target={(referenceRef) => (\n <Target\n ref={name ? null : ref}\n value={value}\n opened={isCurrentListOpen}\n valueToItemMap={valueToItemMap}\n label={label}\n placeholder={placeholder}\n onKeyDown={onKeyDown}\n labelPlacement={labelPlacement}\n size={size}\n contentLeft={contentLeft}\n disabled={disabled}\n readOnly={readOnly}\n renderValue={renderValue}\n selectProps={props}\n inputWrapperRef={referenceRef as React.MutableRefObject<HTMLDivElement>}\n multiselect={props.multiselect}\n view={view}\n helperText={helperText}\n treeId={treeId}\n activeDescendantItemValue={activeDescendantItemValue}\n isTargetAmount={isTargetAmount}\n onChange={onChange}\n labelToItemMap={labelToItemMap}\n chipView={chipView}\n separator={separator}\n requiredProps={requiredProps}\n hintProps={hintProps}\n />\n )}\n zIndex={zIndex}\n isInner={false}\n >\n <Root\n view={view}\n size={size}\n labelPlacement={labelPlacement}\n chipView={chipView}\n disabled={disabled}\n readOnly={readOnly}\n {...(rest as any)}\n >\n <ListWrapper listWidth={listWidth}>\n <Ul\n role=\"tree\"\n id={`${treeId}_tree_level_1`}\n aria-multiselectable={Boolean(props.multiselect)}\n listOverflow={listOverflow}\n listMaxHeight={listMaxHeight || listHeight}\n onScroll={virtual ? undefined : handleScroll}\n ref={targetRef}\n virtual={virtual}\n >\n {beforeList}\n\n {props.multiselect && props.selectAllOptions && (\n // TODO: #2004\n <SelectAll selectAllOptions={props.selectAllOptions} variant={variant} />\n )}\n\n {virtual ? (\n <VirtualList\n items={transformedItems}\n listMaxHeight={listMaxHeight || listHeight}\n onScroll={onScroll}\n />\n ) : (\n transformedItems.map((item, index) => (\n <Inner\n key={`${index}/0`}\n item={item}\n currentLevel={0}\n path={path}\n dispatchPath={dispatchPath}\n index={index}\n listWidth={listWidth}\n />\n ))\n )}\n {afterList}\n </Ul>\n </ListWrapper>\n </Root>\n </FloatingPopover>\n </Context.Provider>\n </Root>\n );\n });\n\nexport const selectConfig = {\n name: 'Select',\n tag: 'div',\n layout: selectRoot,\n base,\n variations: {},\n defaults: {\n view: 'default',\n size: 'm',\n labelPlacement: 'outer',\n chipView: 'default',\n },\n};\n"],"names":["selectRoot","Root","forwardRef","props","ref","_getItemByFocused","id","outerValue","value","_props$target","target","items","_props$placement","placement","label","labelPlacement","placeholder","helperText","_props$disabled","disabled","_props$readOnly","readOnly","outerView","view","size","listOverflow","listHeight","listMaxHeight","listWidth","contentLeft","onScrollBottom","onScroll","chipView","_props$variant","variant","portal","renderValue","renderItem","status","onItemSelect","separator","outerCloseAfterSelect","closeAfterSelect","isTargetAmount","beforeList","afterList","zIndex","name","defaultValue","_props$virtual","virtual","onToggle","required","requiredPlacement","hasRequiredIndicator","optional","hintText","hintTrigger","hintView","hintSize","hintTargetPlacement","hintPlacement","hintWidth","hintHasArrow","rest","_objectWithoutProperties","_excluded","transformedItems","useMemo","initialItemsTransform","_usePathMaps","usePathMaps","_usePathMaps2","_slicedToArray","pathMap","focusedToValueMap","valueToCheckedMap","valueToItemMap","labelToItemMap","_useState","useState","multiselect","_useState2","internalValue","setInternalValue","undefined","floatingPopoverRef","useRef","_useReducer","useReducer","pathReducer","_useReducer2","path","dispatchPath","_useReducer3","focusedPathReducer","_useReducer4","focusedPath","dispatchFocusedPath","_useState3","_useState4","checked","setChecked","isCurrentListOpen","Boolean","activeDescendantItemValue","getItemByFocused","toString","treeId","safeUseId","getView","requiredProps","hintProps","targetRef","useOutsideClick","type","onChange","newValue","item","Array","isArray","_typeof","handleListToggle","opened","handleCheckboxChange","checkedCopy","Map","get","set","updateDescendants","updateAncestors","newValues","forEach","key","push","val","has","handleItemClick","e","isEmpty","stopPropagation","isCurrentChecked","handlePressDown","handleScroll","scrollHeight","scrollTop","clientHeight","_useKeyNavigation","useKeyNavigation","onKeyDown","useLayoutEffect","_","updateSingleAncestors","React","createElement","_extends","SelectNative","onSetValue","Context","Provider","_checkboxAppearance","FloatingPopover","referenceRef","Target","selectProps","inputWrapperRef","isInner","ListWrapper","Ul","role","concat","selectAllOptions","SelectAll","VirtualList","map","index","Inner","currentLevel","selectConfig","tag","layout","base","variations","defaults"],"mappings":"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"}
@@ -3,10 +3,10 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var React = require('react');
6
+ var plasmaCore = require('@salutejs/plasma-core');
6
7
  var Select_styles = require('../../Select.styles.js');
7
8
  var FloatingPopover = require('../../FloatingPopover.js');
8
9
  var Item = require('./ui/Item/Item.js');
9
- var react = require('../../../../utils/react.js');
10
10
  var isEmpty = require('../../../../utils/isEmpty.js');
11
11
 
12
12
  function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
@@ -35,7 +35,7 @@ var Inner = function Inner(_ref) {
35
35
  }
36
36
  };
37
37
  var isCurrentListOpen = path[currentLevel + 1] === item.value.toString();
38
- var treeId = react.safeUseId();
38
+ var treeId = plasmaCore.safeUseId();
39
39
  var listId = "".concat(treeId, "_tree_level_").concat(currentLevel + 2);
40
40
  var nextLevel = currentLevel + 1;
41
41
  if (!isEmpty.isEmpty(item === null || item === void 0 ? void 0 : item.items)) {
@@ -1 +1 @@
1
- {"version":3,"file":"Inner.js","sources":["../../../../../src/components/Select/ui/Inner/Inner.tsx"],"sourcesContent":["import React from 'react';\nimport type { FC } from 'react';\nimport { isEmpty, safeUseId } from 'src/utils';\n\nimport { Ul, ListWrapper } from '../../Select.styles';\nimport { FloatingPopover } from '../../FloatingPopover';\n\nimport type { MergedDropdownNodeTransformed } from './ui/Item/Item.types';\nimport { Item } from './ui/Item/Item';\nimport { InnerProps } from './Inner.type';\n\nexport const Inner: FC<InnerProps> = ({ item, currentLevel, path, dispatchPath, index, listWidth }) => {\n const handleToggle = (opened: boolean): void => {\n if (opened) {\n dispatchPath({ type: 'changed_on_level', value: item.value.toString(), level: currentLevel + 1 });\n } else {\n dispatchPath({ type: 'cut_by_level', level: currentLevel + 1 });\n }\n };\n\n const isCurrentListOpen = path[currentLevel + 1] === item.value.toString();\n\n const treeId = safeUseId();\n const listId = `${treeId}_tree_level_${currentLevel + 2}`;\n const nextLevel = currentLevel + 1;\n\n if (!isEmpty(item?.items)) {\n return (\n <FloatingPopover\n placement={item?.placement || 'right'}\n opened={isCurrentListOpen}\n onToggle={handleToggle}\n target={\n <Item\n item={item}\n path={path}\n currentLevel={currentLevel}\n index={index}\n ariaControls={listId}\n ariaExpanded={isCurrentListOpen}\n ariaLevel={nextLevel}\n ariaLabel={item.label}\n />\n }\n isInner\n >\n <ListWrapper listWidth={listWidth}>\n <Ul role=\"group\" id={listId} virtual={false}>\n {item.items?.map((innerItem: MergedDropdownNodeTransformed, innerIndex: number) => (\n <Inner\n key={`${innerIndex}/${currentLevel}`}\n item={innerItem}\n currentLevel={nextLevel}\n path={path}\n dispatchPath={dispatchPath}\n index={innerIndex}\n listWidth={listWidth}\n />\n ))}\n </Ul>\n </ListWrapper>\n </FloatingPopover>\n );\n }\n\n return <Item item={item} path={path} index={index} currentLevel={currentLevel} ariaLevel={nextLevel} />;\n};\n"],"names":["Inner","_ref","item","currentLevel","path","dispatchPath","index","listWidth","handleToggle","opened","type","value","toString","level","isCurrentListOpen","treeId","safeUseId","listId","concat","nextLevel","isEmpty","items","_item$items","React","createElement","FloatingPopover","placement","onToggle","target","Item","ariaControls","ariaExpanded","ariaLevel","ariaLabel","label","isInner","ListWrapper","Ul","role","id","virtual","map","innerItem","innerIndex","key"],"mappings":"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"}
1
+ {"version":3,"file":"Inner.js","sources":["../../../../../src/components/Select/ui/Inner/Inner.tsx"],"sourcesContent":["import React from 'react';\nimport type { FC } from 'react';\nimport { safeUseId } from '@salutejs/plasma-core';\nimport { isEmpty } from 'src/utils';\n\nimport { Ul, ListWrapper } from '../../Select.styles';\nimport { FloatingPopover } from '../../FloatingPopover';\n\nimport type { MergedDropdownNodeTransformed } from './ui/Item/Item.types';\nimport { Item } from './ui/Item/Item';\nimport { InnerProps } from './Inner.type';\n\nexport const Inner: FC<InnerProps> = ({ item, currentLevel, path, dispatchPath, index, listWidth }) => {\n const handleToggle = (opened: boolean): void => {\n if (opened) {\n dispatchPath({ type: 'changed_on_level', value: item.value.toString(), level: currentLevel + 1 });\n } else {\n dispatchPath({ type: 'cut_by_level', level: currentLevel + 1 });\n }\n };\n\n const isCurrentListOpen = path[currentLevel + 1] === item.value.toString();\n\n const treeId = safeUseId();\n const listId = `${treeId}_tree_level_${currentLevel + 2}`;\n const nextLevel = currentLevel + 1;\n\n if (!isEmpty(item?.items)) {\n return (\n <FloatingPopover\n placement={item?.placement || 'right'}\n opened={isCurrentListOpen}\n onToggle={handleToggle}\n target={\n <Item\n item={item}\n path={path}\n currentLevel={currentLevel}\n index={index}\n ariaControls={listId}\n ariaExpanded={isCurrentListOpen}\n ariaLevel={nextLevel}\n ariaLabel={item.label}\n />\n }\n isInner\n >\n <ListWrapper listWidth={listWidth}>\n <Ul role=\"group\" id={listId} virtual={false}>\n {item.items?.map((innerItem: MergedDropdownNodeTransformed, innerIndex: number) => (\n <Inner\n key={`${innerIndex}/${currentLevel}`}\n item={innerItem}\n currentLevel={nextLevel}\n path={path}\n dispatchPath={dispatchPath}\n index={innerIndex}\n listWidth={listWidth}\n />\n ))}\n </Ul>\n </ListWrapper>\n </FloatingPopover>\n );\n }\n\n return <Item item={item} path={path} index={index} currentLevel={currentLevel} ariaLevel={nextLevel} />;\n};\n"],"names":["Inner","_ref","item","currentLevel","path","dispatchPath","index","listWidth","handleToggle","opened","type","value","toString","level","isCurrentListOpen","treeId","safeUseId","listId","concat","nextLevel","isEmpty","items","_item$items","React","createElement","FloatingPopover","placement","onToggle","target","Item","ariaControls","ariaExpanded","ariaLevel","ariaLabel","label","isInner","ListWrapper","Ul","role","id","virtual","map","innerItem","innerIndex","key"],"mappings":"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"}
@@ -4,12 +4,12 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var _rollupPluginBabelHelpers = require('../../_virtual/_rollupPluginBabelHelpers.js');
6
6
  var React = require('react');
7
+ var plasmaCore = require('@salutejs/plasma-core');
7
8
  var base$1 = require('./variations/_view/base.js');
8
9
  var base = require('./variations/_size/base.js');
9
10
  var SpinnerSvg = require('./SpinnerSvg.js');
10
11
  var Spinner_styles = require('./Spinner.styles.js');
11
12
  var index = require('./hooks/index.js');
12
- var react = require('../../utils/react.js');
13
13
 
14
14
  function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
15
15
 
@@ -27,7 +27,7 @@ var spinnerRoot = function spinnerRoot(Root) {
27
27
  svgHeight: 'var(--plasma-spinner-size)',
28
28
  color: 'currentColor'
29
29
  });
30
- var uniqId = react.safeUseId;
30
+ var uniqId = plasmaCore.safeUseId;
31
31
  var innerId = id || uniqId();
32
32
  return /*#__PURE__*/React__default.default.createElement(Root, _rollupPluginBabelHelpers.extends({
33
33
  ref: ref,
@@ -1 +1 @@
1
- {"version":3,"file":"Spinner.js","sources":["../../../src/components/Spinner/Spinner.tsx"],"sourcesContent":["import React, { forwardRef } from 'react';\nimport { safeUseId } from 'src/utils';\nimport type { RootProps } from 'src/engines/types';\n\nimport { base as viewCSS } from './variations/_view/base';\nimport { base as sizeCSS } from './variations/_size/base';\nimport { SpinnerSvg } from './SpinnerSvg';\nimport { SpinnerWrapper, base } from './Spinner.styles';\nimport type { SpinnerProps } from './Spinner.types';\nimport { useInnerProps } from './hooks';\n\nexport const spinnerRoot = (Root: RootProps<HTMLDivElement, SpinnerProps>) =>\n forwardRef<HTMLDivElement, SpinnerProps>((props, ref) => {\n const { id, ...rest } = props;\n\n const innerProps = useInnerProps(props, {\n wrapperWidth: 'auto',\n wrapperHeight: 'auto',\n svgWidth: 'var(--plasma-spinner-size)',\n svgHeight: 'var(--plasma-spinner-size)',\n color: 'currentColor',\n });\n\n const uniqId = safeUseId;\n const innerId = id || uniqId();\n\n return (\n <Root ref={ref} id={innerId} {...rest}>\n <SpinnerWrapper width={innerProps.wrapperWidth} height={innerProps.wrapperHeight}>\n <SpinnerSvg\n id={innerId}\n width={innerProps.svgWidth}\n height={innerProps.svgHeight}\n color={innerProps.color}\n />\n </SpinnerWrapper>\n </Root>\n );\n });\n\nexport const spinnerConfig = {\n name: 'Spinner',\n tag: 'div',\n layout: spinnerRoot,\n base,\n variations: {\n size: {\n css: sizeCSS,\n },\n view: {\n css: viewCSS,\n },\n },\n defaults: {\n size: 'm',\n view: 'accent',\n },\n};\n"],"names":["spinnerRoot","Root","forwardRef","props","ref","id","rest","_objectWithoutProperties","_excluded","innerProps","useInnerProps","wrapperWidth","wrapperHeight","svgWidth","svgHeight","color","uniqId","safeUseId","innerId","React","createElement","_extends","SpinnerWrapper","width","height","SpinnerSvg","spinnerConfig","name","tag","layout","base","variations","size","css","sizeCSS","view","viewCSS","defaults"],"mappings":";;;;;;;;;;;;;;;;;;IAWaA,WAAW,GAAG,SAAdA,WAAWA,CAAIC,IAA6C,EAAA;AAAA,EAAA,oBACrEC,gBAAU,CAA+B,UAACC,KAAK,EAAEC,GAAG,EAAK;AACrD,IAAA,IAAQC,EAAE,GAAcF,KAAK,CAArBE,EAAE;AAAKC,MAAAA,IAAI,GAAAC,iDAAA,CAAKJ,KAAK,EAAAK,SAAA,CAAA,CAAA;AAE7B,IAAA,IAAMC,UAAU,GAAGC,mBAAa,CAACP,KAAK,EAAE;AACpCQ,MAAAA,YAAY,EAAE,MAAM;AACpBC,MAAAA,aAAa,EAAE,MAAM;AACrBC,MAAAA,QAAQ,EAAE,4BAA4B;AACtCC,MAAAA,SAAS,EAAE,4BAA4B;AACvCC,MAAAA,KAAK,EAAE,cAAA;AACX,KAAC,CAAC,CAAA;IAEF,IAAMC,MAAM,GAAGC,eAAS,CAAA;AACxB,IAAA,IAAMC,OAAO,GAAGb,EAAE,IAAIW,MAAM,EAAE,CAAA;AAE9B,IAAA,oBACIG,sBAAA,CAAAC,aAAA,CAACnB,IAAI,EAAAoB,iCAAA,CAAA;AAACjB,MAAAA,GAAG,EAAEA,GAAI;AAACC,MAAAA,EAAE,EAAEa,OAAAA;AAAQ,KAAA,EAAKZ,IAAI,CACjCa,eAAAA,sBAAA,CAAAC,aAAA,CAACE,6BAAc,EAAA;MAACC,KAAK,EAAEd,UAAU,CAACE,YAAa;MAACa,MAAM,EAAEf,UAAU,CAACG,aAAAA;AAAc,KAAA,eAC7EO,sBAAA,CAAAC,aAAA,CAACK,qBAAU,EAAA;AACPpB,MAAAA,EAAE,EAAEa,OAAQ;MACZK,KAAK,EAAEd,UAAU,CAACI,QAAS;MAC3BW,MAAM,EAAEf,UAAU,CAACK,SAAU;MAC7BC,KAAK,EAAEN,UAAU,CAACM,KAAAA;KACrB,CACW,CACd,CAAC,CAAA;AAEf,GAAC,CAAC,CAAA;AAAA,EAAA;AAEC,IAAMW,aAAa,GAAG;AACzBC,EAAAA,IAAI,EAAE,SAAS;AACfC,EAAAA,GAAG,EAAE,KAAK;AACVC,EAAAA,MAAM,EAAE7B,WAAW;AACnB8B,EAAAA,IAAI,EAAJA,mBAAI;AACJC,EAAAA,UAAU,EAAE;AACRC,IAAAA,IAAI,EAAE;AACFC,MAAAA,GAAG,EAAEC,SAAAA;KACR;AACDC,IAAAA,IAAI,EAAE;AACFF,MAAAA,GAAG,EAAEG,WAAAA;AACT,KAAA;GACH;AACDC,EAAAA,QAAQ,EAAE;AACNL,IAAAA,IAAI,EAAE,GAAG;AACTG,IAAAA,IAAI,EAAE,QAAA;AACV,GAAA;AACJ;;;;;"}
1
+ {"version":3,"file":"Spinner.js","sources":["../../../src/components/Spinner/Spinner.tsx"],"sourcesContent":["import React, { forwardRef } from 'react';\nimport { safeUseId } from '@salutejs/plasma-core';\n\nimport type { RootProps } from '../../engines/types';\n\nimport { base as viewCSS } from './variations/_view/base';\nimport { base as sizeCSS } from './variations/_size/base';\nimport { SpinnerSvg } from './SpinnerSvg';\nimport { SpinnerWrapper, base } from './Spinner.styles';\nimport type { SpinnerProps } from './Spinner.types';\nimport { useInnerProps } from './hooks';\n\nexport const spinnerRoot = (Root: RootProps<HTMLDivElement, SpinnerProps>) =>\n forwardRef<HTMLDivElement, SpinnerProps>((props, ref) => {\n const { id, ...rest } = props;\n\n const innerProps = useInnerProps(props, {\n wrapperWidth: 'auto',\n wrapperHeight: 'auto',\n svgWidth: 'var(--plasma-spinner-size)',\n svgHeight: 'var(--plasma-spinner-size)',\n color: 'currentColor',\n });\n\n const uniqId = safeUseId;\n const innerId = id || uniqId();\n\n return (\n <Root ref={ref} id={innerId} {...rest}>\n <SpinnerWrapper width={innerProps.wrapperWidth} height={innerProps.wrapperHeight}>\n <SpinnerSvg\n id={innerId}\n width={innerProps.svgWidth}\n height={innerProps.svgHeight}\n color={innerProps.color}\n />\n </SpinnerWrapper>\n </Root>\n );\n });\n\nexport const spinnerConfig = {\n name: 'Spinner',\n tag: 'div',\n layout: spinnerRoot,\n base,\n variations: {\n size: {\n css: sizeCSS,\n },\n view: {\n css: viewCSS,\n },\n },\n defaults: {\n size: 'm',\n view: 'accent',\n },\n};\n"],"names":["spinnerRoot","Root","forwardRef","props","ref","id","rest","_objectWithoutProperties","_excluded","innerProps","useInnerProps","wrapperWidth","wrapperHeight","svgWidth","svgHeight","color","uniqId","safeUseId","innerId","React","createElement","_extends","SpinnerWrapper","width","height","SpinnerSvg","spinnerConfig","name","tag","layout","base","variations","size","css","sizeCSS","view","viewCSS","defaults"],"mappings":";;;;;;;;;;;;;;;;;;IAYaA,WAAW,GAAG,SAAdA,WAAWA,CAAIC,IAA6C,EAAA;AAAA,EAAA,oBACrEC,gBAAU,CAA+B,UAACC,KAAK,EAAEC,GAAG,EAAK;AACrD,IAAA,IAAQC,EAAE,GAAcF,KAAK,CAArBE,EAAE;AAAKC,MAAAA,IAAI,GAAAC,iDAAA,CAAKJ,KAAK,EAAAK,SAAA,CAAA,CAAA;AAE7B,IAAA,IAAMC,UAAU,GAAGC,mBAAa,CAACP,KAAK,EAAE;AACpCQ,MAAAA,YAAY,EAAE,MAAM;AACpBC,MAAAA,aAAa,EAAE,MAAM;AACrBC,MAAAA,QAAQ,EAAE,4BAA4B;AACtCC,MAAAA,SAAS,EAAE,4BAA4B;AACvCC,MAAAA,KAAK,EAAE,cAAA;AACX,KAAC,CAAC,CAAA;IAEF,IAAMC,MAAM,GAAGC,oBAAS,CAAA;AACxB,IAAA,IAAMC,OAAO,GAAGb,EAAE,IAAIW,MAAM,EAAE,CAAA;AAE9B,IAAA,oBACIG,sBAAA,CAAAC,aAAA,CAACnB,IAAI,EAAAoB,iCAAA,CAAA;AAACjB,MAAAA,GAAG,EAAEA,GAAI;AAACC,MAAAA,EAAE,EAAEa,OAAAA;AAAQ,KAAA,EAAKZ,IAAI,CACjCa,eAAAA,sBAAA,CAAAC,aAAA,CAACE,6BAAc,EAAA;MAACC,KAAK,EAAEd,UAAU,CAACE,YAAa;MAACa,MAAM,EAAEf,UAAU,CAACG,aAAAA;AAAc,KAAA,eAC7EO,sBAAA,CAAAC,aAAA,CAACK,qBAAU,EAAA;AACPpB,MAAAA,EAAE,EAAEa,OAAQ;MACZK,KAAK,EAAEd,UAAU,CAACI,QAAS;MAC3BW,MAAM,EAAEf,UAAU,CAACK,SAAU;MAC7BC,KAAK,EAAEN,UAAU,CAACM,KAAAA;KACrB,CACW,CACd,CAAC,CAAA;AAEf,GAAC,CAAC,CAAA;AAAA,EAAA;AAEC,IAAMW,aAAa,GAAG;AACzBC,EAAAA,IAAI,EAAE,SAAS;AACfC,EAAAA,GAAG,EAAE,KAAK;AACVC,EAAAA,MAAM,EAAE7B,WAAW;AACnB8B,EAAAA,IAAI,EAAJA,mBAAI;AACJC,EAAAA,UAAU,EAAE;AACRC,IAAAA,IAAI,EAAE;AACFC,MAAAA,GAAG,EAAEC,SAAAA;KACR;AACDC,IAAAA,IAAI,EAAE;AACFF,MAAAA,GAAG,EAAEG,WAAAA;AACT,KAAA;GACH;AACDC,EAAAA,QAAQ,EAAE;AACNL,IAAAA,IAAI,EAAE,GAAG;AACTG,IAAAA,IAAI,EAAE,QAAA;AACV,GAAA;AACJ;;;;;"}
@@ -4,8 +4,9 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var _rollupPluginBabelHelpers = require('../../../../../_virtual/_rollupPluginBabelHelpers.js');
6
6
  var React = require('react');
7
- var index$1 = require('../../../../../utils/index.js');
7
+ var plasmaCore = require('@salutejs/plasma-core');
8
8
  var tokens = require('../../../tokens.js');
9
+ var index$1 = require('../../../../../utils/index.js');
9
10
  var TabsContext = require('../../../TabsContext.js');
10
11
  var index = require('../../../utils/index.js');
11
12
  var base = require('./variations/_size/base.js');
@@ -14,7 +15,6 @@ var base$2 = require('./variations/_disabled/base.js');
14
15
  var base$4 = require('./variations/_pilled/base.js');
15
16
  var base$3 = require('./variations/_stretch/base.js');
16
17
  var HorizontalTabs_styles = require('./HorizontalTabs.styles.js');
17
- var react = require('../../../../../utils/react.js');
18
18
  var IconDisclosureLeft = require('../../../../_Icon/Icons/IconDisclosureLeft.js');
19
19
  var IconDisclosureRight = require('../../../../_Icon/Icons/IconDisclosureRight.js');
20
20
 
@@ -71,7 +71,7 @@ var horizontalTabsRoot = function horizontalTabsRoot(Root) {
71
71
  var refs = React.useMemo(function () {
72
72
  return new TabsContext.TabItemRefs(index$2);
73
73
  }, []);
74
- var uniqId = react.safeUseId();
74
+ var uniqId = plasmaCore.safeUseId();
75
75
  var tabsId = id || uniqId;
76
76
  var isFilled = view === 'filled'; // outer padding is only for filled view
77
77
  var pilledAttr = view !== 'clear' && pilled;
@@ -1 +1 @@
1
- {"version":3,"file":"HorizontalTabs.js","sources":["../../../../../../src/components/Tabs/ui/horizontal/HorizontalTabs/HorizontalTabs.tsx"],"sourcesContent":["import React, { forwardRef, useCallback, useMemo, useState, useRef, KeyboardEvent, useLayoutEffect } from 'react';\nimport type { MutableRefObject } from 'react';\nimport { cx, safeUseId } from 'src/utils';\nimport type { RootProps } from 'src/engines/types';\n\nimport { IconDisclosureLeft, IconDisclosureRight } from '../../../../_Icon';\nimport { classes } from '../../../tokens';\nimport { TabItemRefs, TabsContext } from '../../../TabsContext';\nimport type { HorizontalTabsProps } from '../../../Tabs.types';\nimport { getFirstOverflowingTab, getLastOverflowingTab } from '../../../utils';\n\nimport { base as sizeCSS } from './variations/_size/base';\nimport { base as viewCSS } from './variations/_view/base';\nimport { base as disabledCSS } from './variations/_disabled/base';\nimport { base as pilledCSS } from './variations/_pilled/base';\nimport { base as stretchCSS } from './variations/_stretch/base';\nimport { StyledArrow, StyledContent, StyledContentWrapper, base } from './HorizontalTabs.styles';\n\nenum Keys {\n end = 35,\n home = 36,\n left = 37,\n right = 39,\n}\n\nconst getIconSize = (size?: string) => {\n return size === 'h1' || size === 'h2' ? 'm' : 's';\n};\n\n// TODO: https://github.com/salute-developers/plasma/issues/1474\nexport const horizontalTabsRoot = (Root: RootProps<HTMLDivElement, HorizontalTabsProps>) =>\n forwardRef<HTMLDivElement, HorizontalTabsProps>((props, outerRef) => {\n const {\n id,\n stretch = false,\n disabled = false,\n clip = 'scroll',\n size,\n view,\n children,\n pilled = false,\n index,\n className,\n hasDivider = true,\n ...rest\n } = props;\n const [firstItemVisible, setFirstItemVisible] = useState(true);\n const [lastItemVisible, setLastItemVisible] = useState(false);\n\n // Триггер доп. скролла при появлении левой стрелки, которая отъедает ширину scroll-контейнера\n const [shouldTriggerAdditionalScroll, setShouldTriggerAdditionalScroll] = useState(false);\n\n const refs = useMemo(() => new TabItemRefs(index), []);\n\n const uniqId = safeUseId();\n const tabsId = id || uniqId;\n\n const isFilled = view === 'filled'; // outer padding is only for filled view\n const pilledAttr = view !== 'clear' && pilled;\n const pilledClass = pilledAttr ? classes.tabsPilled : undefined;\n\n const noDividerClass = !hasDivider ? classes.tabsNoDivider : undefined;\n const stretchClass = firstItemVisible && lastItemVisible && stretch ? classes.tabsStretch : undefined;\n const hasLeftArrowClass = !firstItemVisible ? classes.tabsHasLeftArrow : undefined;\n const hasRightArrowClass = !lastItemVisible ? classes.tabsHasRightArrow : undefined;\n const clipScrollClass = clip === 'scroll' ? classes.tabsClipScroll : undefined;\n const clipShowAllClass = clip === 'showAll' ? classes.tabsClipShowAll : undefined;\n\n const scrollRef = useRef<HTMLElement | null>(null);\n const trackRef = useRef<HTMLElement | null>(null);\n const leftArrowRef = useRef<HTMLButtonElement | null>(null);\n\n const onPrev = useCallback(() => {\n if (disabled || !scrollRef.current) {\n return;\n }\n\n const { scrollLeft } = scrollRef.current;\n const firstOverflowingTab = getFirstOverflowingTab(\n refs.items.slice().reverse(),\n scrollLeft,\n rest.orientation,\n );\n\n if (!firstOverflowingTab?.current) {\n return;\n }\n\n const scrollElStyle = getComputedStyle(scrollRef.current);\n scrollRef.current.scrollTo({\n left: firstOverflowingTab.current.offsetLeft - parseInt(scrollElStyle.paddingLeft, 10),\n });\n }, [disabled, scrollRef, refs]);\n\n const onNext = useCallback(() => {\n if (disabled || !scrollRef.current) {\n return;\n }\n\n const scrollRight = Math.round(scrollRef.current.scrollLeft + scrollRef.current.clientWidth);\n const lastOverflowingTab = getLastOverflowingTab(refs.items, scrollRight, rest.orientation);\n\n if (!lastOverflowingTab?.current) {\n return;\n }\n\n if (firstItemVisible) {\n setShouldTriggerAdditionalScroll(true);\n }\n\n const scrollElStyle = getComputedStyle(scrollRef.current);\n scrollRef.current.scrollTo({\n left: Math.round(\n lastOverflowingTab.current.offsetLeft +\n lastOverflowingTab.current.offsetWidth -\n scrollRef.current.clientWidth +\n parseInt(scrollElStyle.paddingRight, 10),\n ),\n });\n }, [firstItemVisible, disabled, scrollRef, refs]);\n\n const PreviousButton = useMemo(\n () => (\n <StyledArrow\n type=\"button\"\n aria-label=\"Предыдущий таб\"\n onClick={onPrev}\n tabIndex={disabled ? -1 : 0}\n disabled={disabled}\n isFilled={isFilled}\n ref={leftArrowRef}\n isLeftArrow\n >\n <IconDisclosureLeft size={getIconSize(size)} color=\"inherit\" />\n </StyledArrow>\n ),\n [onPrev, size, disabled, isFilled],\n );\n\n const NextButton = useMemo(\n () => (\n <StyledArrow\n type=\"button\"\n aria-label=\"Следующий таб\"\n onClick={onNext}\n tabIndex={disabled ? -1 : 0}\n disabled={disabled}\n isFilled={isFilled}\n >\n <IconDisclosureRight size={getIconSize(size)} color=\"inherit\" />\n </StyledArrow>\n ),\n [onNext, size, disabled, isFilled],\n );\n\n const handleScroll = useCallback(\n (event: React.UIEvent<HTMLElement>): void => {\n event.stopPropagation();\n const scrollElStyle = getComputedStyle(event.currentTarget);\n const minScrollLeft = parseInt(scrollElStyle.paddingLeft, 10);\n const maxScrollLeft =\n event.currentTarget.scrollWidth -\n event.currentTarget.clientWidth -\n parseInt(scrollElStyle.paddingRight, 10);\n const scrollLeft = Math.round(event.currentTarget.scrollLeft);\n\n setFirstItemVisible(scrollLeft <= minScrollLeft);\n setLastItemVisible(scrollLeft >= maxScrollLeft);\n },\n [setFirstItemVisible, setLastItemVisible],\n );\n\n const onKeyDown = useCallback(\n (event: KeyboardEvent<HTMLDivElement>) => {\n if (index === undefined) {\n return;\n }\n\n const minIndex = 0;\n const maxIndex = refs.items.length - 1;\n let nextIndex: number;\n\n switch (event.keyCode) {\n case Keys.end:\n nextIndex = maxIndex;\n break;\n case Keys.left:\n nextIndex = index > minIndex ? index - 1 : index;\n break;\n case Keys.right:\n nextIndex = index < maxIndex ? index + 1 : index;\n break;\n case Keys.home:\n nextIndex = minIndex;\n break;\n default:\n return;\n }\n\n if (nextIndex !== index) {\n event.preventDefault();\n refs.items[nextIndex].current?.focus();\n refs.items[nextIndex].current?.scrollIntoView({\n block: 'nearest',\n inline: 'center',\n behavior: 'smooth',\n });\n }\n },\n [index],\n );\n\n useLayoutEffect(() => {\n setLastItemVisible(scrollRef.current?.scrollWidth === scrollRef.current?.clientWidth);\n }, []);\n\n // Этот хук компенсирует появление левой стрелки при прокрутке\n useLayoutEffect(() => {\n if (firstItemVisible || !shouldTriggerAdditionalScroll || !scrollRef.current || !leftArrowRef.current) {\n return;\n }\n const style = getComputedStyle(scrollRef.current);\n scrollRef.current.scrollTo({\n left: Math.round(\n scrollRef.current.scrollLeft + leftArrowRef.current.clientWidth + parseInt(style.paddingLeft, 10),\n ),\n });\n setShouldTriggerAdditionalScroll(false);\n }, [firstItemVisible, shouldTriggerAdditionalScroll, scrollRef, leftArrowRef]);\n\n return (\n <TabsContext.Provider value={refs}>\n <Root\n view={view}\n role=\"tablist\"\n // TODO: убрать каст any, когда будут удалены deprecated props\n size={size as any}\n pilled={pilled}\n id={tabsId}\n ref={outerRef}\n disabled={disabled}\n className={cx(\n pilledClass,\n stretchClass,\n hasLeftArrowClass,\n hasRightArrowClass,\n noDividerClass,\n className,\n )}\n onKeyDown={onKeyDown}\n {...rest}\n >\n {!firstItemVisible && PreviousButton}\n <StyledContentWrapper\n className={cx(clipScrollClass, clipShowAllClass)}\n ref={scrollRef as MutableRefObject<HTMLDivElement | null>}\n onScroll={handleScroll}\n >\n <StyledContent ref={trackRef as MutableRefObject<HTMLDivElement | null>}>\n {children}\n </StyledContent>\n </StyledContentWrapper>\n {!lastItemVisible && NextButton}\n </Root>\n </TabsContext.Provider>\n );\n });\n\nexport const horizontalTabsConfig = {\n name: 'HorizontalTabs',\n tag: 'div',\n layout: horizontalTabsRoot,\n base,\n variations: {\n size: {\n css: sizeCSS,\n },\n view: {\n css: viewCSS,\n },\n disabled: {\n css: disabledCSS,\n attrs: true,\n },\n stretch: {\n css: stretchCSS,\n attrs: true,\n },\n pilled: {\n css: pilledCSS,\n },\n },\n defaults: {\n view: 'clear',\n size: 'xs',\n },\n};\n"],"names":["Keys","getIconSize","size","horizontalTabsRoot","Root","forwardRef","props","outerRef","id","_props$stretch","stretch","_props$disabled","disabled","_props$clip","clip","view","children","_props$pilled","pilled","index","className","_props$hasDivider","hasDivider","rest","_objectWithoutProperties","_excluded","_useState","useState","_useState2","_slicedToArray","firstItemVisible","setFirstItemVisible","_useState3","_useState4","lastItemVisible","setLastItemVisible","_useState5","_useState6","shouldTriggerAdditionalScroll","setShouldTriggerAdditionalScroll","refs","useMemo","TabItemRefs","uniqId","safeUseId","tabsId","isFilled","pilledAttr","pilledClass","classes","tabsPilled","undefined","noDividerClass","tabsNoDivider","stretchClass","tabsStretch","hasLeftArrowClass","tabsHasLeftArrow","hasRightArrowClass","tabsHasRightArrow","clipScrollClass","tabsClipScroll","clipShowAllClass","tabsClipShowAll","scrollRef","useRef","trackRef","leftArrowRef","onPrev","useCallback","current","scrollLeft","firstOverflowingTab","getFirstOverflowingTab","items","slice","reverse","orientation","scrollElStyle","getComputedStyle","scrollTo","left","offsetLeft","parseInt","paddingLeft","onNext","scrollRight","Math","round","clientWidth","lastOverflowingTab","getLastOverflowingTab","offsetWidth","paddingRight","PreviousButton","React","createElement","StyledArrow","type","onClick","tabIndex","ref","isLeftArrow","IconDisclosureLeft","color","NextButton","IconDisclosureRight","handleScroll","event","stopPropagation","currentTarget","minScrollLeft","maxScrollLeft","scrollWidth","onKeyDown","minIndex","maxIndex","length","nextIndex","keyCode","end","right","home","_refs$items$nextIndex","_refs$items$nextIndex2","preventDefault","focus","scrollIntoView","block","inline","behavior","useLayoutEffect","_scrollRef$current","_scrollRef$current2","style","TabsContext","Provider","value","_extends","role","cx","StyledContentWrapper","onScroll","StyledContent","horizontalTabsConfig","name","tag","layout","base","variations","css","sizeCSS","viewCSS","disabledCSS","attrs","stretchCSS","pilledCSS","defaults"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAgBiG,IAE5FA,IAAI,0BAAJA,IAAI,EAAA;AAAJA,EAAAA,IAAI,CAAJA,IAAI,CAAA,KAAA,CAAA,GAAA,EAAA,CAAA,GAAA,KAAA,CAAA;AAAJA,EAAAA,IAAI,CAAJA,IAAI,CAAA,MAAA,CAAA,GAAA,EAAA,CAAA,GAAA,MAAA,CAAA;AAAJA,EAAAA,IAAI,CAAJA,IAAI,CAAA,MAAA,CAAA,GAAA,EAAA,CAAA,GAAA,MAAA,CAAA;AAAJA,EAAAA,IAAI,CAAJA,IAAI,CAAA,OAAA,CAAA,GAAA,EAAA,CAAA,GAAA,OAAA,CAAA;AAAA,EAAA,OAAJA,IAAI,CAAA;AAAA,CAAA,CAAJA,IAAI,IAAA,EAAA,CAAA,CAAA;AAOT,IAAMC,WAAW,GAAG,SAAdA,WAAWA,CAAIC,IAAa,EAAK;EACnC,OAAOA,IAAI,KAAK,IAAI,IAAIA,IAAI,KAAK,IAAI,GAAG,GAAG,GAAG,GAAG,CAAA;AACrD,CAAC,CAAA;;AAED;IACaC,kBAAkB,GAAG,SAArBA,kBAAkBA,CAAIC,IAAoD,EAAA;AAAA,EAAA,oBACnFC,gBAAU,CAAsC,UAACC,KAAK,EAAEC,QAAQ,EAAK;AACjE,IAAA,IACIC,EAAE,GAYFF,KAAK,CAZLE,EAAE;MAAAC,cAAA,GAYFH,KAAK,CAXLI,OAAO;AAAPA,MAAAA,OAAO,GAAAD,cAAA,KAAG,KAAA,CAAA,GAAA,KAAK,GAAAA,cAAA;MAAAE,eAAA,GAWfL,KAAK,CAVLM,QAAQ;AAARA,MAAAA,QAAQ,GAAAD,eAAA,KAAG,KAAA,CAAA,GAAA,KAAK,GAAAA,eAAA;MAAAE,WAAA,GAUhBP,KAAK,CATLQ,IAAI;AAAJA,MAAAA,IAAI,GAAAD,WAAA,KAAG,KAAA,CAAA,GAAA,QAAQ,GAAAA,WAAA;MACfX,IAAI,GAQJI,KAAK,CARLJ,IAAI;MACJa,IAAI,GAOJT,KAAK,CAPLS,IAAI;MACJC,QAAQ,GAMRV,KAAK,CANLU,QAAQ;MAAAC,aAAA,GAMRX,KAAK,CALLY,MAAM;AAANA,MAAAA,MAAM,GAAAD,aAAA,KAAG,KAAA,CAAA,GAAA,KAAK,GAAAA,aAAA;MACdE,OAAK,GAILb,KAAK,CAJLa,KAAK;MACLC,SAAS,GAGTd,KAAK,CAHLc,SAAS;MAAAC,iBAAA,GAGTf,KAAK,CAFLgB,UAAU;AAAVA,MAAAA,UAAU,GAAAD,iBAAA,KAAG,KAAA,CAAA,GAAA,IAAI,GAAAA,iBAAA;AACdE,MAAAA,IAAI,GAAAC,iDAAA,CACPlB,KAAK,EAAAmB,SAAA,CAAA,CAAA;AACT,IAAA,IAAAC,SAAA,GAAgDC,cAAQ,CAAC,IAAI,CAAC;MAAAC,UAAA,GAAAC,uCAAA,CAAAH,SAAA,EAAA,CAAA,CAAA;AAAvDI,MAAAA,gBAAgB,GAAAF,UAAA,CAAA,CAAA,CAAA;AAAEG,MAAAA,mBAAmB,GAAAH,UAAA,CAAA,CAAA,CAAA,CAAA;AAC5C,IAAA,IAAAI,UAAA,GAA8CL,cAAQ,CAAC,KAAK,CAAC;MAAAM,UAAA,GAAAJ,uCAAA,CAAAG,UAAA,EAAA,CAAA,CAAA;AAAtDE,MAAAA,eAAe,GAAAD,UAAA,CAAA,CAAA,CAAA;AAAEE,MAAAA,kBAAkB,GAAAF,UAAA,CAAA,CAAA,CAAA,CAAA;;AAE1C;AACA,IAAA,IAAAG,UAAA,GAA0ET,cAAQ,CAAC,KAAK,CAAC;MAAAU,UAAA,GAAAR,uCAAA,CAAAO,UAAA,EAAA,CAAA,CAAA;AAAlFE,MAAAA,6BAA6B,GAAAD,UAAA,CAAA,CAAA,CAAA;AAAEE,MAAAA,gCAAgC,GAAAF,UAAA,CAAA,CAAA,CAAA,CAAA;IAEtE,IAAMG,IAAI,GAAGC,aAAO,CAAC,YAAA;AAAA,MAAA,OAAM,IAAIC,uBAAW,CAACvB,OAAK,CAAC,CAAA;AAAA,KAAA,EAAE,EAAE,CAAC,CAAA;AAEtD,IAAA,IAAMwB,MAAM,GAAGC,eAAS,EAAE,CAAA;AAC1B,IAAA,IAAMC,MAAM,GAAGrC,EAAE,IAAImC,MAAM,CAAA;AAE3B,IAAA,IAAMG,QAAQ,GAAG/B,IAAI,KAAK,QAAQ,CAAC;AACnC,IAAA,IAAMgC,UAAU,GAAGhC,IAAI,KAAK,OAAO,IAAIG,MAAM,CAAA;IAC7C,IAAM8B,WAAW,GAAGD,UAAU,GAAGE,cAAO,CAACC,UAAU,GAAGC,SAAS,CAAA;IAE/D,IAAMC,cAAc,GAAG,CAAC9B,UAAU,GAAG2B,cAAO,CAACI,aAAa,GAAGF,SAAS,CAAA;AACtE,IAAA,IAAMG,YAAY,GAAGxB,gBAAgB,IAAII,eAAe,IAAIxB,OAAO,GAAGuC,cAAO,CAACM,WAAW,GAAGJ,SAAS,CAAA;IACrG,IAAMK,iBAAiB,GAAG,CAAC1B,gBAAgB,GAAGmB,cAAO,CAACQ,gBAAgB,GAAGN,SAAS,CAAA;IAClF,IAAMO,kBAAkB,GAAG,CAACxB,eAAe,GAAGe,cAAO,CAACU,iBAAiB,GAAGR,SAAS,CAAA;IACnF,IAAMS,eAAe,GAAG9C,IAAI,KAAK,QAAQ,GAAGmC,cAAO,CAACY,cAAc,GAAGV,SAAS,CAAA;IAC9E,IAAMW,gBAAgB,GAAGhD,IAAI,KAAK,SAAS,GAAGmC,cAAO,CAACc,eAAe,GAAGZ,SAAS,CAAA;AAEjF,IAAA,IAAMa,SAAS,GAAGC,YAAM,CAAqB,IAAI,CAAC,CAAA;AAClD,IAAA,IAAMC,QAAQ,GAAGD,YAAM,CAAqB,IAAI,CAAC,CAAA;AACjD,IAAA,IAAME,YAAY,GAAGF,YAAM,CAA2B,IAAI,CAAC,CAAA;AAE3D,IAAA,IAAMG,MAAM,GAAGC,iBAAW,CAAC,YAAM;AAC7B,MAAA,IAAIzD,QAAQ,IAAI,CAACoD,SAAS,CAACM,OAAO,EAAE;AAChC,QAAA,OAAA;AACJ,OAAA;AAEA,MAAA,IAAQC,UAAU,GAAKP,SAAS,CAACM,OAAO,CAAhCC,UAAU,CAAA;MAClB,IAAMC,mBAAmB,GAAGC,4BAAsB,CAC9CjC,IAAI,CAACkC,KAAK,CAACC,KAAK,EAAE,CAACC,OAAO,EAAE,EAC5BL,UAAU,EACVhD,IAAI,CAACsD,WACT,CAAC,CAAA;MAED,IAAI,EAACL,mBAAmB,KAAnBA,IAAAA,IAAAA,mBAAmB,eAAnBA,mBAAmB,CAAEF,OAAO,CAAE,EAAA;AAC/B,QAAA,OAAA;AACJ,OAAA;AAEA,MAAA,IAAMQ,aAAa,GAAGC,gBAAgB,CAACf,SAAS,CAACM,OAAO,CAAC,CAAA;AACzDN,MAAAA,SAAS,CAACM,OAAO,CAACU,QAAQ,CAAC;AACvBC,QAAAA,IAAI,EAAET,mBAAmB,CAACF,OAAO,CAACY,UAAU,GAAGC,QAAQ,CAACL,aAAa,CAACM,WAAW,EAAE,EAAE,CAAA;AACzF,OAAC,CAAC,CAAA;KACL,EAAE,CAACxE,QAAQ,EAAEoD,SAAS,EAAExB,IAAI,CAAC,CAAC,CAAA;AAE/B,IAAA,IAAM6C,MAAM,GAAGhB,iBAAW,CAAC,YAAM;AAC7B,MAAA,IAAIzD,QAAQ,IAAI,CAACoD,SAAS,CAACM,OAAO,EAAE;AAChC,QAAA,OAAA;AACJ,OAAA;AAEA,MAAA,IAAMgB,WAAW,GAAGC,IAAI,CAACC,KAAK,CAACxB,SAAS,CAACM,OAAO,CAACC,UAAU,GAAGP,SAAS,CAACM,OAAO,CAACmB,WAAW,CAAC,CAAA;AAC5F,MAAA,IAAMC,kBAAkB,GAAGC,2BAAqB,CAACnD,IAAI,CAACkC,KAAK,EAAEY,WAAW,EAAE/D,IAAI,CAACsD,WAAW,CAAC,CAAA;MAE3F,IAAI,EAACa,kBAAkB,KAAlBA,IAAAA,IAAAA,kBAAkB,eAAlBA,kBAAkB,CAAEpB,OAAO,CAAE,EAAA;AAC9B,QAAA,OAAA;AACJ,OAAA;AAEA,MAAA,IAAIxC,gBAAgB,EAAE;QAClBS,gCAAgC,CAAC,IAAI,CAAC,CAAA;AAC1C,OAAA;AAEA,MAAA,IAAMuC,aAAa,GAAGC,gBAAgB,CAACf,SAAS,CAACM,OAAO,CAAC,CAAA;AACzDN,MAAAA,SAAS,CAACM,OAAO,CAACU,QAAQ,CAAC;AACvBC,QAAAA,IAAI,EAAEM,IAAI,CAACC,KAAK,CACZE,kBAAkB,CAACpB,OAAO,CAACY,UAAU,GACjCQ,kBAAkB,CAACpB,OAAO,CAACsB,WAAW,GACtC5B,SAAS,CAACM,OAAO,CAACmB,WAAW,GAC7BN,QAAQ,CAACL,aAAa,CAACe,YAAY,EAAE,EAAE,CAC/C,CAAA;AACJ,OAAC,CAAC,CAAA;KACL,EAAE,CAAC/D,gBAAgB,EAAElB,QAAQ,EAAEoD,SAAS,EAAExB,IAAI,CAAC,CAAC,CAAA;IAEjD,IAAMsD,cAAc,GAAGrD,aAAO,CAC1B,YAAA;AAAA,MAAA,oBACIsD,sBAAA,CAAAC,aAAA,CAACC,iCAAW,EAAA;AACRC,QAAAA,IAAI,EAAC,QAAQ;AACb,QAAA,YAAA,EAAW,iFAAgB;AAC3BC,QAAAA,OAAO,EAAE/B,MAAO;AAChBgC,QAAAA,QAAQ,EAAExF,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAE;AAC5BA,QAAAA,QAAQ,EAAEA,QAAS;AACnBkC,QAAAA,QAAQ,EAAEA,QAAS;AACnBuD,QAAAA,GAAG,EAAElC,YAAa;QAClBmC,WAAW,EAAA,IAAA;AAAA,OAAA,eAEXP,sBAAA,CAAAC,aAAA,CAACO,qCAAkB,EAAA;AAACrG,QAAAA,IAAI,EAAED,WAAW,CAACC,IAAI,CAAE;AAACsG,QAAAA,KAAK,EAAC,SAAA;AAAS,OAAE,CACrD,CAAC,CAAA;KACjB,EACD,CAACpC,MAAM,EAAElE,IAAI,EAAEU,QAAQ,EAAEkC,QAAQ,CACrC,CAAC,CAAA;IAED,IAAM2D,UAAU,GAAGhE,aAAO,CACtB,YAAA;AAAA,MAAA,oBACIsD,sBAAA,CAAAC,aAAA,CAACC,iCAAW,EAAA;AACRC,QAAAA,IAAI,EAAC,QAAQ;AACb,QAAA,YAAA,EAAW,2EAAe;AAC1BC,QAAAA,OAAO,EAAEd,MAAO;AAChBe,QAAAA,QAAQ,EAAExF,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAE;AAC5BA,QAAAA,QAAQ,EAAEA,QAAS;AACnBkC,QAAAA,QAAQ,EAAEA,QAAAA;AAAS,OAAA,eAEnBiD,sBAAA,CAAAC,aAAA,CAACU,uCAAmB,EAAA;AAACxG,QAAAA,IAAI,EAAED,WAAW,CAACC,IAAI,CAAE;AAACsG,QAAAA,KAAK,EAAC,SAAA;AAAS,OAAE,CACtD,CAAC,CAAA;KACjB,EACD,CAACnB,MAAM,EAAEnF,IAAI,EAAEU,QAAQ,EAAEkC,QAAQ,CACrC,CAAC,CAAA;AAED,IAAA,IAAM6D,YAAY,GAAGtC,iBAAW,CAC5B,UAACuC,KAAiC,EAAW;MACzCA,KAAK,CAACC,eAAe,EAAE,CAAA;AACvB,MAAA,IAAM/B,aAAa,GAAGC,gBAAgB,CAAC6B,KAAK,CAACE,aAAa,CAAC,CAAA;MAC3D,IAAMC,aAAa,GAAG5B,QAAQ,CAACL,aAAa,CAACM,WAAW,EAAE,EAAE,CAAC,CAAA;MAC7D,IAAM4B,aAAa,GACfJ,KAAK,CAACE,aAAa,CAACG,WAAW,GAC/BL,KAAK,CAACE,aAAa,CAACrB,WAAW,GAC/BN,QAAQ,CAACL,aAAa,CAACe,YAAY,EAAE,EAAE,CAAC,CAAA;MAC5C,IAAMtB,UAAU,GAAGgB,IAAI,CAACC,KAAK,CAACoB,KAAK,CAACE,aAAa,CAACvC,UAAU,CAAC,CAAA;AAE7DxC,MAAAA,mBAAmB,CAACwC,UAAU,IAAIwC,aAAa,CAAC,CAAA;AAChD5E,MAAAA,kBAAkB,CAACoC,UAAU,IAAIyC,aAAa,CAAC,CAAA;AACnD,KAAC,EACD,CAACjF,mBAAmB,EAAEI,kBAAkB,CAC5C,CAAC,CAAA;AAED,IAAA,IAAM+E,SAAS,GAAG7C,iBAAW,CACzB,UAACuC,KAAoC,EAAK;MACtC,IAAIzF,OAAK,KAAKgC,SAAS,EAAE;AACrB,QAAA,OAAA;AACJ,OAAA;MAEA,IAAMgE,QAAQ,GAAG,CAAC,CAAA;MAClB,IAAMC,QAAQ,GAAG5E,IAAI,CAACkC,KAAK,CAAC2C,MAAM,GAAG,CAAC,CAAA;AACtC,MAAA,IAAIC,SAAiB,CAAA;MAErB,QAAQV,KAAK,CAACW,OAAO;QACjB,KAAKvH,IAAI,CAACwH,GAAG;AACTF,UAAAA,SAAS,GAAGF,QAAQ,CAAA;AACpB,UAAA,MAAA;QACJ,KAAKpH,IAAI,CAACiF,IAAI;UACVqC,SAAS,GAAGnG,OAAK,GAAGgG,QAAQ,GAAGhG,OAAK,GAAG,CAAC,GAAGA,OAAK,CAAA;AAChD,UAAA,MAAA;QACJ,KAAKnB,IAAI,CAACyH,KAAK;UACXH,SAAS,GAAGnG,OAAK,GAAGiG,QAAQ,GAAGjG,OAAK,GAAG,CAAC,GAAGA,OAAK,CAAA;AAChD,UAAA,MAAA;QACJ,KAAKnB,IAAI,CAAC0H,IAAI;AACVJ,UAAAA,SAAS,GAAGH,QAAQ,CAAA;AACpB,UAAA,MAAA;AACJ,QAAA;AACI,UAAA,OAAA;AACR,OAAA;MAEA,IAAIG,SAAS,KAAKnG,OAAK,EAAE;QAAA,IAAAwG,qBAAA,EAAAC,sBAAA,CAAA;QACrBhB,KAAK,CAACiB,cAAc,EAAE,CAAA;AACtB,QAAA,CAAAF,qBAAA,GAAAnF,IAAI,CAACkC,KAAK,CAAC4C,SAAS,CAAC,CAAChD,OAAO,cAAAqD,qBAAA,KAAA,KAAA,CAAA,IAA7BA,qBAAA,CAA+BG,KAAK,EAAE,CAAA;AACtC,QAAA,CAAAF,sBAAA,GAAApF,IAAI,CAACkC,KAAK,CAAC4C,SAAS,CAAC,CAAChD,OAAO,cAAAsD,sBAAA,KAAA,KAAA,CAAA,IAA7BA,sBAAA,CAA+BG,cAAc,CAAC;AAC1CC,UAAAA,KAAK,EAAE,SAAS;AAChBC,UAAAA,MAAM,EAAE,QAAQ;AAChBC,UAAAA,QAAQ,EAAE,QAAA;AACd,SAAC,CAAC,CAAA;AACN,OAAA;AACJ,KAAC,EACD,CAAC/G,OAAK,CACV,CAAC,CAAA;AAEDgH,IAAAA,qBAAe,CAAC,YAAM;MAAA,IAAAC,kBAAA,EAAAC,mBAAA,CAAA;MAClBlG,kBAAkB,CAAC,CAAAiG,CAAAA,kBAAA,GAAApE,SAAS,CAACM,OAAO,MAAA,IAAA,IAAA8D,kBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAjBA,kBAAA,CAAmBnB,WAAW,OAAAoB,CAAAA,mBAAA,GAAKrE,SAAS,CAACM,OAAO,MAAA+D,IAAAA,IAAAA,mBAAA,KAAjBA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,mBAAA,CAAmB5C,WAAW,CAAC,CAAA,CAAA;KACxF,EAAE,EAAE,CAAC,CAAA;;AAEN;AACA0C,IAAAA,qBAAe,CAAC,YAAM;AAClB,MAAA,IAAIrG,gBAAgB,IAAI,CAACQ,6BAA6B,IAAI,CAAC0B,SAAS,CAACM,OAAO,IAAI,CAACH,YAAY,CAACG,OAAO,EAAE;AACnG,QAAA,OAAA;AACJ,OAAA;AACA,MAAA,IAAMgE,KAAK,GAAGvD,gBAAgB,CAACf,SAAS,CAACM,OAAO,CAAC,CAAA;AACjDN,MAAAA,SAAS,CAACM,OAAO,CAACU,QAAQ,CAAC;QACvBC,IAAI,EAAEM,IAAI,CAACC,KAAK,CACZxB,SAAS,CAACM,OAAO,CAACC,UAAU,GAAGJ,YAAY,CAACG,OAAO,CAACmB,WAAW,GAAGN,QAAQ,CAACmD,KAAK,CAAClD,WAAW,EAAE,EAAE,CACpG,CAAA;AACJ,OAAC,CAAC,CAAA;MACF7C,gCAAgC,CAAC,KAAK,CAAC,CAAA;KAC1C,EAAE,CAACT,gBAAgB,EAAEQ,6BAA6B,EAAE0B,SAAS,EAAEG,YAAY,CAAC,CAAC,CAAA;AAE9E,IAAA,oBACI4B,sBAAA,CAAAC,aAAA,CAACuC,uBAAW,CAACC,QAAQ,EAAA;AAACC,MAAAA,KAAK,EAAEjG,IAAAA;AAAK,KAAA,eAC9BuD,sBAAA,CAAAC,aAAA,CAAC5F,IAAI,EAAAsI,iCAAA,CAAA;AACD3H,MAAAA,IAAI,EAAEA,IAAK;AACX4H,MAAAA,IAAI,EAAC,SAAA;AACL;AAAA;AACAzI,MAAAA,IAAI,EAAEA,IAAY;AAClBgB,MAAAA,MAAM,EAAEA,MAAO;AACfV,MAAAA,EAAE,EAAEqC,MAAO;AACXwD,MAAAA,GAAG,EAAE9F,QAAS;AACdK,MAAAA,QAAQ,EAAEA,QAAS;AACnBQ,MAAAA,SAAS,EAAEwH,UAAE,CACT5F,WAAW,EACXM,YAAY,EACZE,iBAAiB,EACjBE,kBAAkB,EAClBN,cAAc,EACdhC,SACJ,CAAE;AACF8F,MAAAA,SAAS,EAAEA,SAAAA;KACP3F,EAAAA,IAAI,CAEP,EAAA,CAACO,gBAAgB,IAAIgE,cAAc,eACpCC,sBAAA,CAAAC,aAAA,CAAC6C,0CAAoB,EAAA;AACjBzH,MAAAA,SAAS,EAAEwH,UAAE,CAAChF,eAAe,EAAEE,gBAAgB,CAAE;AACjDuC,MAAAA,GAAG,EAAErC,SAAqD;AAC1D8E,MAAAA,QAAQ,EAAEnC,YAAAA;AAAa,KAAA,eAEvBZ,sBAAA,CAAAC,aAAA,CAAC+C,mCAAa,EAAA;AAAC1C,MAAAA,GAAG,EAAEnC,QAAAA;KACflD,EAAAA,QACU,CACG,CAAC,EACtB,CAACkB,eAAe,IAAIuE,UACnB,CACY,CAAC,CAAA;AAE/B,GAAC,CAAC,CAAA;AAAA,EAAA;AAEC,IAAMuC,oBAAoB,GAAG;AAChCC,EAAAA,IAAI,EAAE,gBAAgB;AACtBC,EAAAA,GAAG,EAAE,KAAK;AACVC,EAAAA,MAAM,EAAEhJ,kBAAkB;AAC1BiJ,EAAAA,IAAI,EAAJA,0BAAI;AACJC,EAAAA,UAAU,EAAE;AACRnJ,IAAAA,IAAI,EAAE;AACFoJ,MAAAA,GAAG,EAAEC,SAAAA;KACR;AACDxI,IAAAA,IAAI,EAAE;AACFuI,MAAAA,GAAG,EAAEE,WAAAA;KACR;AACD5I,IAAAA,QAAQ,EAAE;AACN0I,MAAAA,GAAG,EAAEG,WAAW;AAChBC,MAAAA,KAAK,EAAE,IAAA;KACV;AACDhJ,IAAAA,OAAO,EAAE;AACL4I,MAAAA,GAAG,EAAEK,WAAU;AACfD,MAAAA,KAAK,EAAE,IAAA;KACV;AACDxI,IAAAA,MAAM,EAAE;AACJoI,MAAAA,GAAG,EAAEM,WAAAA;AACT,KAAA;GACH;AACDC,EAAAA,QAAQ,EAAE;AACN9I,IAAAA,IAAI,EAAE,OAAO;AACbb,IAAAA,IAAI,EAAE,IAAA;AACV,GAAA;AACJ;;;;;"}
1
+ {"version":3,"file":"HorizontalTabs.js","sources":["../../../../../../src/components/Tabs/ui/horizontal/HorizontalTabs/HorizontalTabs.tsx"],"sourcesContent":["import React, { forwardRef, useCallback, useMemo, useState, useRef, KeyboardEvent, useLayoutEffect } from 'react';\nimport type { MutableRefObject } from 'react';\nimport { safeUseId } from '@salutejs/plasma-core';\n\nimport type { RootProps } from '../../../../../engines/types';\nimport { IconDisclosureLeft, IconDisclosureRight } from '../../../../_Icon';\nimport { classes } from '../../../tokens';\nimport { cx } from '../../../../../utils';\nimport { TabItemRefs, TabsContext } from '../../../TabsContext';\nimport type { HorizontalTabsProps } from '../../../Tabs.types';\nimport { getFirstOverflowingTab, getLastOverflowingTab } from '../../../utils';\n\nimport { base as sizeCSS } from './variations/_size/base';\nimport { base as viewCSS } from './variations/_view/base';\nimport { base as disabledCSS } from './variations/_disabled/base';\nimport { base as pilledCSS } from './variations/_pilled/base';\nimport { base as stretchCSS } from './variations/_stretch/base';\nimport { StyledArrow, StyledContent, StyledContentWrapper, base } from './HorizontalTabs.styles';\n\nenum Keys {\n end = 35,\n home = 36,\n left = 37,\n right = 39,\n}\n\nconst getIconSize = (size?: string) => {\n return size === 'h1' || size === 'h2' ? 'm' : 's';\n};\n\n// TODO: https://github.com/salute-developers/plasma/issues/1474\nexport const horizontalTabsRoot = (Root: RootProps<HTMLDivElement, HorizontalTabsProps>) =>\n forwardRef<HTMLDivElement, HorizontalTabsProps>((props, outerRef) => {\n const {\n id,\n stretch = false,\n disabled = false,\n clip = 'scroll',\n size,\n view,\n children,\n pilled = false,\n index,\n className,\n hasDivider = true,\n ...rest\n } = props;\n const [firstItemVisible, setFirstItemVisible] = useState(true);\n const [lastItemVisible, setLastItemVisible] = useState(false);\n\n // Триггер доп. скролла при появлении левой стрелки, которая отъедает ширину scroll-контейнера\n const [shouldTriggerAdditionalScroll, setShouldTriggerAdditionalScroll] = useState(false);\n\n const refs = useMemo(() => new TabItemRefs(index), []);\n\n const uniqId = safeUseId();\n const tabsId = id || uniqId;\n\n const isFilled = view === 'filled'; // outer padding is only for filled view\n const pilledAttr = view !== 'clear' && pilled;\n const pilledClass = pilledAttr ? classes.tabsPilled : undefined;\n\n const noDividerClass = !hasDivider ? classes.tabsNoDivider : undefined;\n const stretchClass = firstItemVisible && lastItemVisible && stretch ? classes.tabsStretch : undefined;\n const hasLeftArrowClass = !firstItemVisible ? classes.tabsHasLeftArrow : undefined;\n const hasRightArrowClass = !lastItemVisible ? classes.tabsHasRightArrow : undefined;\n const clipScrollClass = clip === 'scroll' ? classes.tabsClipScroll : undefined;\n const clipShowAllClass = clip === 'showAll' ? classes.tabsClipShowAll : undefined;\n\n const scrollRef = useRef<HTMLElement | null>(null);\n const trackRef = useRef<HTMLElement | null>(null);\n const leftArrowRef = useRef<HTMLButtonElement | null>(null);\n\n const onPrev = useCallback(() => {\n if (disabled || !scrollRef.current) {\n return;\n }\n\n const { scrollLeft } = scrollRef.current;\n const firstOverflowingTab = getFirstOverflowingTab(\n refs.items.slice().reverse(),\n scrollLeft,\n rest.orientation,\n );\n\n if (!firstOverflowingTab?.current) {\n return;\n }\n\n const scrollElStyle = getComputedStyle(scrollRef.current);\n scrollRef.current.scrollTo({\n left: firstOverflowingTab.current.offsetLeft - parseInt(scrollElStyle.paddingLeft, 10),\n });\n }, [disabled, scrollRef, refs]);\n\n const onNext = useCallback(() => {\n if (disabled || !scrollRef.current) {\n return;\n }\n\n const scrollRight = Math.round(scrollRef.current.scrollLeft + scrollRef.current.clientWidth);\n const lastOverflowingTab = getLastOverflowingTab(refs.items, scrollRight, rest.orientation);\n\n if (!lastOverflowingTab?.current) {\n return;\n }\n\n if (firstItemVisible) {\n setShouldTriggerAdditionalScroll(true);\n }\n\n const scrollElStyle = getComputedStyle(scrollRef.current);\n scrollRef.current.scrollTo({\n left: Math.round(\n lastOverflowingTab.current.offsetLeft +\n lastOverflowingTab.current.offsetWidth -\n scrollRef.current.clientWidth +\n parseInt(scrollElStyle.paddingRight, 10),\n ),\n });\n }, [firstItemVisible, disabled, scrollRef, refs]);\n\n const PreviousButton = useMemo(\n () => (\n <StyledArrow\n type=\"button\"\n aria-label=\"Предыдущий таб\"\n onClick={onPrev}\n tabIndex={disabled ? -1 : 0}\n disabled={disabled}\n isFilled={isFilled}\n ref={leftArrowRef}\n isLeftArrow\n >\n <IconDisclosureLeft size={getIconSize(size)} color=\"inherit\" />\n </StyledArrow>\n ),\n [onPrev, size, disabled, isFilled],\n );\n\n const NextButton = useMemo(\n () => (\n <StyledArrow\n type=\"button\"\n aria-label=\"Следующий таб\"\n onClick={onNext}\n tabIndex={disabled ? -1 : 0}\n disabled={disabled}\n isFilled={isFilled}\n >\n <IconDisclosureRight size={getIconSize(size)} color=\"inherit\" />\n </StyledArrow>\n ),\n [onNext, size, disabled, isFilled],\n );\n\n const handleScroll = useCallback(\n (event: React.UIEvent<HTMLElement>): void => {\n event.stopPropagation();\n const scrollElStyle = getComputedStyle(event.currentTarget);\n const minScrollLeft = parseInt(scrollElStyle.paddingLeft, 10);\n const maxScrollLeft =\n event.currentTarget.scrollWidth -\n event.currentTarget.clientWidth -\n parseInt(scrollElStyle.paddingRight, 10);\n const scrollLeft = Math.round(event.currentTarget.scrollLeft);\n\n setFirstItemVisible(scrollLeft <= minScrollLeft);\n setLastItemVisible(scrollLeft >= maxScrollLeft);\n },\n [setFirstItemVisible, setLastItemVisible],\n );\n\n const onKeyDown = useCallback(\n (event: KeyboardEvent<HTMLDivElement>) => {\n if (index === undefined) {\n return;\n }\n\n const minIndex = 0;\n const maxIndex = refs.items.length - 1;\n let nextIndex: number;\n\n switch (event.keyCode) {\n case Keys.end:\n nextIndex = maxIndex;\n break;\n case Keys.left:\n nextIndex = index > minIndex ? index - 1 : index;\n break;\n case Keys.right:\n nextIndex = index < maxIndex ? index + 1 : index;\n break;\n case Keys.home:\n nextIndex = minIndex;\n break;\n default:\n return;\n }\n\n if (nextIndex !== index) {\n event.preventDefault();\n refs.items[nextIndex].current?.focus();\n refs.items[nextIndex].current?.scrollIntoView({\n block: 'nearest',\n inline: 'center',\n behavior: 'smooth',\n });\n }\n },\n [index],\n );\n\n useLayoutEffect(() => {\n setLastItemVisible(scrollRef.current?.scrollWidth === scrollRef.current?.clientWidth);\n }, []);\n\n // Этот хук компенсирует появление левой стрелки при прокрутке\n useLayoutEffect(() => {\n if (firstItemVisible || !shouldTriggerAdditionalScroll || !scrollRef.current || !leftArrowRef.current) {\n return;\n }\n const style = getComputedStyle(scrollRef.current);\n scrollRef.current.scrollTo({\n left: Math.round(\n scrollRef.current.scrollLeft + leftArrowRef.current.clientWidth + parseInt(style.paddingLeft, 10),\n ),\n });\n setShouldTriggerAdditionalScroll(false);\n }, [firstItemVisible, shouldTriggerAdditionalScroll, scrollRef, leftArrowRef]);\n\n return (\n <TabsContext.Provider value={refs}>\n <Root\n view={view}\n role=\"tablist\"\n // TODO: убрать каст any, когда будут удалены deprecated props\n size={size as any}\n pilled={pilled}\n id={tabsId}\n ref={outerRef}\n disabled={disabled}\n className={cx(\n pilledClass,\n stretchClass,\n hasLeftArrowClass,\n hasRightArrowClass,\n noDividerClass,\n className,\n )}\n onKeyDown={onKeyDown}\n {...rest}\n >\n {!firstItemVisible && PreviousButton}\n <StyledContentWrapper\n className={cx(clipScrollClass, clipShowAllClass)}\n ref={scrollRef as MutableRefObject<HTMLDivElement | null>}\n onScroll={handleScroll}\n >\n <StyledContent ref={trackRef as MutableRefObject<HTMLDivElement | null>}>\n {children}\n </StyledContent>\n </StyledContentWrapper>\n {!lastItemVisible && NextButton}\n </Root>\n </TabsContext.Provider>\n );\n });\n\nexport const horizontalTabsConfig = {\n name: 'HorizontalTabs',\n tag: 'div',\n layout: horizontalTabsRoot,\n base,\n variations: {\n size: {\n css: sizeCSS,\n },\n view: {\n css: viewCSS,\n },\n disabled: {\n css: disabledCSS,\n attrs: true,\n },\n stretch: {\n css: stretchCSS,\n attrs: true,\n },\n pilled: {\n css: pilledCSS,\n },\n },\n defaults: {\n view: 'clear',\n size: 'xs',\n },\n};\n"],"names":["Keys","getIconSize","size","horizontalTabsRoot","Root","forwardRef","props","outerRef","id","_props$stretch","stretch","_props$disabled","disabled","_props$clip","clip","view","children","_props$pilled","pilled","index","className","_props$hasDivider","hasDivider","rest","_objectWithoutProperties","_excluded","_useState","useState","_useState2","_slicedToArray","firstItemVisible","setFirstItemVisible","_useState3","_useState4","lastItemVisible","setLastItemVisible","_useState5","_useState6","shouldTriggerAdditionalScroll","setShouldTriggerAdditionalScroll","refs","useMemo","TabItemRefs","uniqId","safeUseId","tabsId","isFilled","pilledAttr","pilledClass","classes","tabsPilled","undefined","noDividerClass","tabsNoDivider","stretchClass","tabsStretch","hasLeftArrowClass","tabsHasLeftArrow","hasRightArrowClass","tabsHasRightArrow","clipScrollClass","tabsClipScroll","clipShowAllClass","tabsClipShowAll","scrollRef","useRef","trackRef","leftArrowRef","onPrev","useCallback","current","scrollLeft","firstOverflowingTab","getFirstOverflowingTab","items","slice","reverse","orientation","scrollElStyle","getComputedStyle","scrollTo","left","offsetLeft","parseInt","paddingLeft","onNext","scrollRight","Math","round","clientWidth","lastOverflowingTab","getLastOverflowingTab","offsetWidth","paddingRight","PreviousButton","React","createElement","StyledArrow","type","onClick","tabIndex","ref","isLeftArrow","IconDisclosureLeft","color","NextButton","IconDisclosureRight","handleScroll","event","stopPropagation","currentTarget","minScrollLeft","maxScrollLeft","scrollWidth","onKeyDown","minIndex","maxIndex","length","nextIndex","keyCode","end","right","home","_refs$items$nextIndex","_refs$items$nextIndex2","preventDefault","focus","scrollIntoView","block","inline","behavior","useLayoutEffect","_scrollRef$current","_scrollRef$current2","style","TabsContext","Provider","value","_extends","role","cx","StyledContentWrapper","onScroll","StyledContent","horizontalTabsConfig","name","tag","layout","base","variations","css","sizeCSS","viewCSS","disabledCSS","attrs","stretchCSS","pilledCSS","defaults"],"mappings":"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"}
@@ -4,15 +4,15 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var _rollupPluginBabelHelpers = require('../../../../../_virtual/_rollupPluginBabelHelpers.js');
6
6
  var React = require('react');
7
- var index$1 = require('../../../../../utils/index.js');
7
+ var plasmaCore = require('@salutejs/plasma-core');
8
8
  var tokens = require('../../../tokens.js');
9
+ var index$1 = require('../../../../../utils/index.js');
9
10
  var TabsContext = require('../../../TabsContext.js');
10
11
  var index = require('../../../utils/index.js');
11
12
  var VerticalTabs_styles = require('./VerticalTabs.styles.js');
12
13
  var base = require('./variations/_size/base.js');
13
14
  var base$1 = require('./variations/_view/base.js');
14
15
  var base$2 = require('./variations/_disabled/base.js');
15
- var react = require('../../../../../utils/react.js');
16
16
  var IconDisclosureLeft = require('../../../../_Icon/Icons/IconDisclosureLeft.js');
17
17
  var IconDisclosureRight = require('../../../../_Icon/Icons/IconDisclosureRight.js');
18
18
 
@@ -62,7 +62,7 @@ var verticalTabsRoot = function verticalTabsRoot(Root) {
62
62
  var refs = React.useMemo(function () {
63
63
  return new TabsContext.TabItemRefs(index$2);
64
64
  }, []);
65
- var uniqId = react.safeUseId();
65
+ var uniqId = plasmaCore.safeUseId();
66
66
  var tabsId = id || uniqId;
67
67
  var noDividerClass = !hasDivider ? tokens.classes.tabsNoDivider : undefined;
68
68
  var hasTopArrowClass = !firstItemVisible ? tokens.classes.tabsHasTopArrow : undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"VerticalTabs.js","sources":["../../../../../../src/components/Tabs/ui/vertical/VerticalTabs/VerticalTabs.tsx"],"sourcesContent":["import React, { forwardRef, useCallback, useMemo, useState, useLayoutEffect, useRef, KeyboardEvent } from 'react';\nimport type { MutableRefObject } from 'react';\nimport { cx, safeUseId } from 'src/utils';\nimport type { RootProps } from 'src/engines/types';\n\nimport { classes } from '../../../tokens';\nimport { TabItemRefs, TabsContext } from '../../../TabsContext';\nimport type { VerticalTabsProps } from '../../../Tabs.types';\nimport { IconDisclosureLeft, IconDisclosureRight } from '../../../../_Icon';\nimport { getFirstOverflowingTab, getLastOverflowingTab } from '../../../utils';\n\nimport { base, StyledArrow, StyledContent, StyledContentWrapper } from './VerticalTabs.styles';\nimport { base as sizeCSS } from './variations/_size/base';\nimport { base as viewCSS } from './variations/_view/base';\nimport { base as disabledCSS } from './variations/_disabled/base';\n\nenum Keys {\n end = 35,\n home = 36,\n up = 38,\n down = 40,\n}\n\n// TODO: https://github.com/salute-developers/plasma/issues/1474\nexport const verticalTabsRoot = (Root: RootProps<HTMLDivElement, VerticalTabsProps>) =>\n forwardRef<HTMLDivElement, VerticalTabsProps>((props, outerRef) => {\n const {\n id,\n disabled = false,\n clip = 'showAll',\n size,\n view,\n children,\n index,\n className,\n orientation,\n hasDivider = true,\n ...rest\n } = props;\n\n const [firstItemVisible, setFirstItemVisible] = useState(true);\n const [lastItemVisible, setLastItemVisible] = useState(false);\n\n // Триггер доп. скролла при появлении левой стрелки, которая отъедает ширину scroll-контейнера\n const [shouldTriggerAdditionalScroll, setShouldTriggerAdditionalScroll] = useState(false);\n\n const refs = useMemo(() => new TabItemRefs(index), []);\n\n const uniqId = safeUseId();\n const tabsId = id || uniqId;\n\n const noDividerClass = !hasDivider ? classes.tabsNoDivider : undefined;\n const hasTopArrowClass = !firstItemVisible ? classes.tabsHasTopArrow : undefined;\n const hasBottomArrowClass = !lastItemVisible ? classes.tabsHasBottomArrow : undefined;\n const clipScrollClass = clip === 'scroll' ? classes.tabsClipScroll : undefined;\n const clipShowAllClass = clip === 'showAll' ? classes.tabsClipShowAll : undefined;\n\n const scrollRef = useRef<HTMLElement | null>(null);\n const trackRef = useRef<HTMLElement | null>(null);\n const upArrowRef = useRef<HTMLButtonElement | null>(null);\n\n const onPrev = useCallback(() => {\n if (disabled || !scrollRef.current) {\n return;\n }\n\n const { scrollTop } = scrollRef.current;\n const firstOverflowingTab = getFirstOverflowingTab(refs.items.slice().reverse(), scrollTop, orientation);\n\n if (!firstOverflowingTab?.current) {\n return;\n }\n\n const scrollElStyle = getComputedStyle(scrollRef.current);\n scrollRef.current.scrollTo({\n top: firstOverflowingTab.current.offsetTop - parseInt(scrollElStyle.paddingTop, 10),\n });\n }, [disabled, scrollRef, refs]);\n\n const onNext = useCallback(() => {\n if (disabled || !scrollRef.current) {\n return;\n }\n\n const scrollBottom = Math.round(scrollRef.current.scrollTop + scrollRef.current.clientHeight);\n const lastOverflowingTab = getLastOverflowingTab(refs.items, scrollBottom, orientation);\n\n if (!lastOverflowingTab?.current) {\n return;\n }\n\n if (firstItemVisible) {\n setShouldTriggerAdditionalScroll(true);\n }\n\n const scrollElStyle = getComputedStyle(scrollRef.current);\n scrollRef.current.scrollTo({\n top: Math.round(\n lastOverflowingTab.current.offsetTop +\n lastOverflowingTab.current.offsetHeight -\n scrollRef.current.clientHeight +\n parseInt(scrollElStyle.paddingTop, 10),\n ),\n });\n }, [firstItemVisible, disabled, scrollRef, refs]);\n\n const PreviousButton = (\n <StyledArrow\n type=\"button\"\n aria-label=\"Предыдущий таб\"\n onClick={onPrev}\n tabIndex={disabled ? -1 : 0}\n disabled={disabled}\n ref={upArrowRef}\n >\n <IconDisclosureLeft color=\"inherit\" />\n </StyledArrow>\n );\n\n const NextButton = (\n <StyledArrow\n type=\"button\"\n aria-label=\"Следующий таб\"\n onClick={onNext}\n tabIndex={disabled ? -1 : 0}\n disabled={disabled}\n >\n <IconDisclosureRight color=\"inherit\" />\n </StyledArrow>\n );\n\n const handleScroll = useCallback(\n (event: React.UIEvent<HTMLElement>): void => {\n event.stopPropagation();\n const scrollElStyle = getComputedStyle(event.currentTarget);\n const minScrollTop = parseInt(scrollElStyle.paddingLeft, 10);\n const maxScrollTop =\n event.currentTarget.scrollHeight -\n event.currentTarget.clientHeight -\n parseInt(scrollElStyle.paddingTop, 10);\n const scrollTop = Math.round(event.currentTarget.scrollTop);\n\n setFirstItemVisible(scrollTop <= minScrollTop);\n setLastItemVisible(scrollTop >= maxScrollTop);\n },\n [setFirstItemVisible, setLastItemVisible],\n );\n\n const onKeyDown = useCallback(\n (event: KeyboardEvent<HTMLDivElement>) => {\n if (index === undefined) {\n return;\n }\n\n const minIndex = 0;\n const maxIndex = refs.items.length - 1;\n let nextIndex: number;\n\n switch (event.keyCode) {\n case Keys.end:\n nextIndex = maxIndex;\n break;\n case Keys.up:\n nextIndex = index > minIndex ? index - 1 : index;\n break;\n case Keys.down:\n nextIndex = index < maxIndex ? index + 1 : index;\n break;\n case Keys.home:\n nextIndex = minIndex;\n break;\n default:\n return;\n }\n\n if (nextIndex !== index) {\n event.preventDefault();\n refs.items[nextIndex].current?.focus();\n refs.items[nextIndex].current?.scrollIntoView({\n block: 'nearest',\n inline: 'nearest',\n behavior: 'smooth',\n });\n }\n },\n [index],\n );\n\n useLayoutEffect(() => {\n setLastItemVisible(scrollRef.current?.scrollHeight === scrollRef.current?.clientHeight);\n }, []);\n\n // Этот хук компенсирует появление верхней стрелки при прокрутке\n useLayoutEffect(() => {\n if (firstItemVisible || !shouldTriggerAdditionalScroll || !scrollRef.current || !upArrowRef.current) {\n return;\n }\n\n const style = getComputedStyle(scrollRef.current);\n scrollRef.current.scrollTo({\n top: Math.round(\n scrollRef.current.scrollTop + upArrowRef.current.clientHeight + parseInt(style.paddingTop, 10),\n ),\n });\n setShouldTriggerAdditionalScroll(false);\n }, [firstItemVisible, shouldTriggerAdditionalScroll, scrollRef, upArrowRef]);\n\n return (\n <TabsContext.Provider value={refs}>\n <Root\n view={view}\n role=\"tablist\"\n size={size}\n id={tabsId}\n ref={outerRef}\n disabled={disabled}\n className={cx(hasTopArrowClass, hasBottomArrowClass, noDividerClass, className)}\n onKeyDown={onKeyDown}\n orientation={orientation}\n {...rest}\n >\n {!firstItemVisible && PreviousButton}\n <StyledContentWrapper\n className={cx(clipScrollClass, clipShowAllClass)}\n ref={scrollRef as MutableRefObject<HTMLDivElement | null>}\n onScroll={handleScroll}\n >\n <StyledContent ref={trackRef as MutableRefObject<HTMLDivElement | null>}>\n {children}\n </StyledContent>\n </StyledContentWrapper>\n {!lastItemVisible && NextButton}\n </Root>\n </TabsContext.Provider>\n );\n });\n\nexport const verticalTabsConfig = {\n name: 'VerticalTabs',\n tag: 'div',\n layout: verticalTabsRoot,\n base,\n variations: {\n size: {\n css: sizeCSS,\n },\n view: {\n css: viewCSS,\n },\n disabled: {\n css: disabledCSS,\n attrs: true,\n },\n },\n defaults: {\n view: 'divider',\n size: 'xs',\n },\n};\n"],"names":["Keys","verticalTabsRoot","Root","forwardRef","props","outerRef","id","_props$disabled","disabled","_props$clip","clip","size","view","children","index","className","orientation","_props$hasDivider","hasDivider","rest","_objectWithoutProperties","_excluded","_useState","useState","_useState2","_slicedToArray","firstItemVisible","setFirstItemVisible","_useState3","_useState4","lastItemVisible","setLastItemVisible","_useState5","_useState6","shouldTriggerAdditionalScroll","setShouldTriggerAdditionalScroll","refs","useMemo","TabItemRefs","uniqId","safeUseId","tabsId","noDividerClass","classes","tabsNoDivider","undefined","hasTopArrowClass","tabsHasTopArrow","hasBottomArrowClass","tabsHasBottomArrow","clipScrollClass","tabsClipScroll","clipShowAllClass","tabsClipShowAll","scrollRef","useRef","trackRef","upArrowRef","onPrev","useCallback","current","scrollTop","firstOverflowingTab","getFirstOverflowingTab","items","slice","reverse","scrollElStyle","getComputedStyle","scrollTo","top","offsetTop","parseInt","paddingTop","onNext","scrollBottom","Math","round","clientHeight","lastOverflowingTab","getLastOverflowingTab","offsetHeight","PreviousButton","React","createElement","StyledArrow","type","onClick","tabIndex","ref","_IconDisclosureLeft","IconDisclosureLeft","color","NextButton","_IconDisclosureRight","IconDisclosureRight","handleScroll","event","stopPropagation","currentTarget","minScrollTop","paddingLeft","maxScrollTop","scrollHeight","onKeyDown","minIndex","maxIndex","length","nextIndex","keyCode","end","up","down","home","_refs$items$nextIndex","_refs$items$nextIndex2","preventDefault","focus","scrollIntoView","block","inline","behavior","useLayoutEffect","_scrollRef$current","_scrollRef$current2","style","TabsContext","Provider","value","_extends","role","cx","StyledContentWrapper","onScroll","StyledContent","verticalTabsConfig","name","tag","layout","base","variations","css","sizeCSS","viewCSS","disabledCSS","attrs","defaults"],"mappings":"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"}
1
+ {"version":3,"file":"VerticalTabs.js","sources":["../../../../../../src/components/Tabs/ui/vertical/VerticalTabs/VerticalTabs.tsx"],"sourcesContent":["import React, { forwardRef, useCallback, useMemo, useState, useLayoutEffect, useRef, KeyboardEvent } from 'react';\nimport type { MutableRefObject } from 'react';\nimport { safeUseId } from '@salutejs/plasma-core';\n\nimport type { RootProps } from '../../../../../engines/types';\nimport { classes } from '../../../tokens';\nimport { cx } from '../../../../../utils';\nimport { TabItemRefs, TabsContext } from '../../../TabsContext';\nimport type { VerticalTabsProps } from '../../../Tabs.types';\nimport { IconDisclosureLeft, IconDisclosureRight } from '../../../../_Icon';\nimport { getFirstOverflowingTab, getLastOverflowingTab } from '../../../utils';\n\nimport { base, StyledArrow, StyledContent, StyledContentWrapper } from './VerticalTabs.styles';\nimport { base as sizeCSS } from './variations/_size/base';\nimport { base as viewCSS } from './variations/_view/base';\nimport { base as disabledCSS } from './variations/_disabled/base';\n\nenum Keys {\n end = 35,\n home = 36,\n up = 38,\n down = 40,\n}\n\n// TODO: https://github.com/salute-developers/plasma/issues/1474\nexport const verticalTabsRoot = (Root: RootProps<HTMLDivElement, VerticalTabsProps>) =>\n forwardRef<HTMLDivElement, VerticalTabsProps>((props, outerRef) => {\n const {\n id,\n disabled = false,\n clip = 'showAll',\n size,\n view,\n children,\n index,\n className,\n orientation,\n hasDivider = true,\n ...rest\n } = props;\n\n const [firstItemVisible, setFirstItemVisible] = useState(true);\n const [lastItemVisible, setLastItemVisible] = useState(false);\n\n // Триггер доп. скролла при появлении левой стрелки, которая отъедает ширину scroll-контейнера\n const [shouldTriggerAdditionalScroll, setShouldTriggerAdditionalScroll] = useState(false);\n\n const refs = useMemo(() => new TabItemRefs(index), []);\n\n const uniqId = safeUseId();\n const tabsId = id || uniqId;\n\n const noDividerClass = !hasDivider ? classes.tabsNoDivider : undefined;\n const hasTopArrowClass = !firstItemVisible ? classes.tabsHasTopArrow : undefined;\n const hasBottomArrowClass = !lastItemVisible ? classes.tabsHasBottomArrow : undefined;\n const clipScrollClass = clip === 'scroll' ? classes.tabsClipScroll : undefined;\n const clipShowAllClass = clip === 'showAll' ? classes.tabsClipShowAll : undefined;\n\n const scrollRef = useRef<HTMLElement | null>(null);\n const trackRef = useRef<HTMLElement | null>(null);\n const upArrowRef = useRef<HTMLButtonElement | null>(null);\n\n const onPrev = useCallback(() => {\n if (disabled || !scrollRef.current) {\n return;\n }\n\n const { scrollTop } = scrollRef.current;\n const firstOverflowingTab = getFirstOverflowingTab(refs.items.slice().reverse(), scrollTop, orientation);\n\n if (!firstOverflowingTab?.current) {\n return;\n }\n\n const scrollElStyle = getComputedStyle(scrollRef.current);\n scrollRef.current.scrollTo({\n top: firstOverflowingTab.current.offsetTop - parseInt(scrollElStyle.paddingTop, 10),\n });\n }, [disabled, scrollRef, refs]);\n\n const onNext = useCallback(() => {\n if (disabled || !scrollRef.current) {\n return;\n }\n\n const scrollBottom = Math.round(scrollRef.current.scrollTop + scrollRef.current.clientHeight);\n const lastOverflowingTab = getLastOverflowingTab(refs.items, scrollBottom, orientation);\n\n if (!lastOverflowingTab?.current) {\n return;\n }\n\n if (firstItemVisible) {\n setShouldTriggerAdditionalScroll(true);\n }\n\n const scrollElStyle = getComputedStyle(scrollRef.current);\n scrollRef.current.scrollTo({\n top: Math.round(\n lastOverflowingTab.current.offsetTop +\n lastOverflowingTab.current.offsetHeight -\n scrollRef.current.clientHeight +\n parseInt(scrollElStyle.paddingTop, 10),\n ),\n });\n }, [firstItemVisible, disabled, scrollRef, refs]);\n\n const PreviousButton = (\n <StyledArrow\n type=\"button\"\n aria-label=\"Предыдущий таб\"\n onClick={onPrev}\n tabIndex={disabled ? -1 : 0}\n disabled={disabled}\n ref={upArrowRef}\n >\n <IconDisclosureLeft color=\"inherit\" />\n </StyledArrow>\n );\n\n const NextButton = (\n <StyledArrow\n type=\"button\"\n aria-label=\"Следующий таб\"\n onClick={onNext}\n tabIndex={disabled ? -1 : 0}\n disabled={disabled}\n >\n <IconDisclosureRight color=\"inherit\" />\n </StyledArrow>\n );\n\n const handleScroll = useCallback(\n (event: React.UIEvent<HTMLElement>): void => {\n event.stopPropagation();\n const scrollElStyle = getComputedStyle(event.currentTarget);\n const minScrollTop = parseInt(scrollElStyle.paddingLeft, 10);\n const maxScrollTop =\n event.currentTarget.scrollHeight -\n event.currentTarget.clientHeight -\n parseInt(scrollElStyle.paddingTop, 10);\n const scrollTop = Math.round(event.currentTarget.scrollTop);\n\n setFirstItemVisible(scrollTop <= minScrollTop);\n setLastItemVisible(scrollTop >= maxScrollTop);\n },\n [setFirstItemVisible, setLastItemVisible],\n );\n\n const onKeyDown = useCallback(\n (event: KeyboardEvent<HTMLDivElement>) => {\n if (index === undefined) {\n return;\n }\n\n const minIndex = 0;\n const maxIndex = refs.items.length - 1;\n let nextIndex: number;\n\n switch (event.keyCode) {\n case Keys.end:\n nextIndex = maxIndex;\n break;\n case Keys.up:\n nextIndex = index > minIndex ? index - 1 : index;\n break;\n case Keys.down:\n nextIndex = index < maxIndex ? index + 1 : index;\n break;\n case Keys.home:\n nextIndex = minIndex;\n break;\n default:\n return;\n }\n\n if (nextIndex !== index) {\n event.preventDefault();\n refs.items[nextIndex].current?.focus();\n refs.items[nextIndex].current?.scrollIntoView({\n block: 'nearest',\n inline: 'nearest',\n behavior: 'smooth',\n });\n }\n },\n [index],\n );\n\n useLayoutEffect(() => {\n setLastItemVisible(scrollRef.current?.scrollHeight === scrollRef.current?.clientHeight);\n }, []);\n\n // Этот хук компенсирует появление верхней стрелки при прокрутке\n useLayoutEffect(() => {\n if (firstItemVisible || !shouldTriggerAdditionalScroll || !scrollRef.current || !upArrowRef.current) {\n return;\n }\n\n const style = getComputedStyle(scrollRef.current);\n scrollRef.current.scrollTo({\n top: Math.round(\n scrollRef.current.scrollTop + upArrowRef.current.clientHeight + parseInt(style.paddingTop, 10),\n ),\n });\n setShouldTriggerAdditionalScroll(false);\n }, [firstItemVisible, shouldTriggerAdditionalScroll, scrollRef, upArrowRef]);\n\n return (\n <TabsContext.Provider value={refs}>\n <Root\n view={view}\n role=\"tablist\"\n size={size}\n id={tabsId}\n ref={outerRef}\n disabled={disabled}\n className={cx(hasTopArrowClass, hasBottomArrowClass, noDividerClass, className)}\n onKeyDown={onKeyDown}\n orientation={orientation}\n {...rest}\n >\n {!firstItemVisible && PreviousButton}\n <StyledContentWrapper\n className={cx(clipScrollClass, clipShowAllClass)}\n ref={scrollRef as MutableRefObject<HTMLDivElement | null>}\n onScroll={handleScroll}\n >\n <StyledContent ref={trackRef as MutableRefObject<HTMLDivElement | null>}>\n {children}\n </StyledContent>\n </StyledContentWrapper>\n {!lastItemVisible && NextButton}\n </Root>\n </TabsContext.Provider>\n );\n });\n\nexport const verticalTabsConfig = {\n name: 'VerticalTabs',\n tag: 'div',\n layout: verticalTabsRoot,\n base,\n variations: {\n size: {\n css: sizeCSS,\n },\n view: {\n css: viewCSS,\n },\n disabled: {\n css: disabledCSS,\n attrs: true,\n },\n },\n defaults: {\n view: 'divider',\n size: 'xs',\n },\n};\n"],"names":["Keys","verticalTabsRoot","Root","forwardRef","props","outerRef","id","_props$disabled","disabled","_props$clip","clip","size","view","children","index","className","orientation","_props$hasDivider","hasDivider","rest","_objectWithoutProperties","_excluded","_useState","useState","_useState2","_slicedToArray","firstItemVisible","setFirstItemVisible","_useState3","_useState4","lastItemVisible","setLastItemVisible","_useState5","_useState6","shouldTriggerAdditionalScroll","setShouldTriggerAdditionalScroll","refs","useMemo","TabItemRefs","uniqId","safeUseId","tabsId","noDividerClass","classes","tabsNoDivider","undefined","hasTopArrowClass","tabsHasTopArrow","hasBottomArrowClass","tabsHasBottomArrow","clipScrollClass","tabsClipScroll","clipShowAllClass","tabsClipShowAll","scrollRef","useRef","trackRef","upArrowRef","onPrev","useCallback","current","scrollTop","firstOverflowingTab","getFirstOverflowingTab","items","slice","reverse","scrollElStyle","getComputedStyle","scrollTo","top","offsetTop","parseInt","paddingTop","onNext","scrollBottom","Math","round","clientHeight","lastOverflowingTab","getLastOverflowingTab","offsetHeight","PreviousButton","React","createElement","StyledArrow","type","onClick","tabIndex","ref","_IconDisclosureLeft","IconDisclosureLeft","color","NextButton","_IconDisclosureRight","IconDisclosureRight","handleScroll","event","stopPropagation","currentTarget","minScrollTop","paddingLeft","maxScrollTop","scrollHeight","onKeyDown","minIndex","maxIndex","length","nextIndex","keyCode","end","up","down","home","_refs$items$nextIndex","_refs$items$nextIndex2","preventDefault","focus","scrollIntoView","block","inline","behavior","useLayoutEffect","_scrollRef$current","_scrollRef$current2","style","TabsContext","Provider","value","_extends","role","cx","StyledContentWrapper","onScroll","StyledContent","verticalTabsConfig","name","tag","layout","base","variations","css","sizeCSS","viewCSS","disabledCSS","attrs","defaults"],"mappings":"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"}