@salutejs/plasma-new-hope 0.340.0-canary.2324.19228888741.0 → 0.340.0-canary.2325.19236948330.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 (620) hide show
  1. package/cjs/components/Calendar/CalendarBase/CalendarBase.js +6 -0
  2. package/cjs/components/Calendar/CalendarBase/CalendarBase.js.map +1 -1
  3. package/cjs/components/Calendar/CalendarDouble/CalendarDouble.js +6 -0
  4. package/cjs/components/Calendar/CalendarDouble/CalendarDouble.js.map +1 -1
  5. package/cjs/components/Combobox/ComboboxNew/Combobox.css +19 -0
  6. package/cjs/components/Combobox/ComboboxNew/Combobox.js +93 -19
  7. package/cjs/components/Combobox/ComboboxNew/Combobox.js.map +1 -1
  8. package/cjs/components/Combobox/ComboboxNew/Combobox.tokens.js +2 -0
  9. package/cjs/components/Combobox/ComboboxNew/Combobox.tokens.js.map +1 -1
  10. package/cjs/components/Combobox/ComboboxNew/hooks/getPathMaps.js +8 -2
  11. package/cjs/components/Combobox/ComboboxNew/hooks/getPathMaps.js.map +1 -1
  12. package/cjs/components/Combobox/ComboboxNew/hooks/useKeyboardNavigation.js +319 -1
  13. package/cjs/components/Combobox/ComboboxNew/hooks/useKeyboardNavigation.js.map +1 -1
  14. package/cjs/components/Combobox/ComboboxNew/reducers/focusedPathReducer.js +7 -0
  15. package/cjs/components/Combobox/ComboboxNew/reducers/focusedPathReducer.js.map +1 -1
  16. package/cjs/components/Combobox/ComboboxNew/reducers/treePathReducer.js +161 -0
  17. package/cjs/components/Combobox/ComboboxNew/reducers/treePathReducer.js.map +1 -0
  18. package/cjs/components/Combobox/ComboboxNew/ui/TreeList/TreeList.css +57 -0
  19. package/cjs/components/Combobox/ComboboxNew/ui/TreeList/TreeList.js +96 -0
  20. package/cjs/components/Combobox/ComboboxNew/ui/TreeList/TreeList.js.map +1 -0
  21. package/cjs/components/Combobox/ComboboxNew/ui/TreeList/TreeList.styles.js +30 -0
  22. package/cjs/components/Combobox/ComboboxNew/ui/TreeList/TreeList.styles.js.map +1 -0
  23. package/cjs/components/Combobox/ComboboxNew/ui/TreeList/TreeList.styles_1auklgl.css +2 -0
  24. package/cjs/components/Combobox/ComboboxNew/ui/TreeList/ui/Item/Item.css +54 -0
  25. package/cjs/components/Combobox/ComboboxNew/ui/TreeList/ui/Item/Item.js +144 -0
  26. package/cjs/components/Combobox/ComboboxNew/ui/TreeList/ui/Item/Item.js.map +1 -0
  27. package/cjs/components/Combobox/ComboboxNew/ui/TreeList/ui/Item/Item.styles.js +205 -0
  28. package/cjs/components/Combobox/ComboboxNew/ui/TreeList/ui/Item/Item.styles.js.map +1 -0
  29. package/cjs/components/Combobox/ComboboxNew/ui/TreeList/ui/Item/Item.styles_7nhjnm.css +15 -0
  30. package/cjs/components/Combobox/ComboboxNew/utils/filterItems.js +4 -3
  31. package/cjs/components/Combobox/ComboboxNew/utils/filterItems.js.map +1 -1
  32. package/cjs/components/DatePicker/utils/normalizeDates.js +3 -6
  33. package/cjs/components/DatePicker/utils/normalizeDates.js.map +1 -1
  34. package/cjs/components/DateTimePicker/DateTimePicker.css +200 -0
  35. package/cjs/components/DateTimePicker/DateTimePicker.js +337 -0
  36. package/cjs/components/DateTimePicker/DateTimePicker.js.map +1 -0
  37. package/cjs/components/DateTimePicker/DateTimePicker.styles.js +23 -0
  38. package/cjs/components/DateTimePicker/DateTimePicker.styles.js.map +1 -0
  39. package/cjs/components/DateTimePicker/DateTimePicker.styles_x7parr.css +3 -0
  40. package/cjs/components/DateTimePicker/DateTimePicker.tokens.js +268 -0
  41. package/cjs/components/DateTimePicker/DateTimePicker.tokens.js.map +1 -0
  42. package/cjs/components/DateTimePicker/hooks/useDateTimePicker.js +445 -0
  43. package/cjs/components/DateTimePicker/hooks/useDateTimePicker.js.map +1 -0
  44. package/cjs/components/DateTimePicker/hooks/useKeyboardNavigation.js +40 -0
  45. package/cjs/components/DateTimePicker/hooks/useKeyboardNavigation.js.map +1 -0
  46. package/cjs/components/DateTimePicker/ui/CalendarGrid/CalendarGrid.css +82 -0
  47. package/cjs/components/DateTimePicker/ui/CalendarGrid/CalendarGrid.js +36 -0
  48. package/cjs/components/DateTimePicker/ui/CalendarGrid/CalendarGrid.js.map +1 -0
  49. package/cjs/components/DateTimePicker/ui/CalendarGrid/CalendarGrid.styles.js +83 -0
  50. package/cjs/components/DateTimePicker/ui/CalendarGrid/CalendarGrid.styles.js.map +1 -0
  51. package/cjs/components/DateTimePicker/ui/CalendarGrid/CalendarGrid.styles_1yl3xrz.css +2 -0
  52. package/cjs/components/DateTimePicker/ui/DateShortcut/DateShortcutList.css +34 -0
  53. package/cjs/components/DateTimePicker/ui/DateShortcut/DateShortcutList.js +44 -0
  54. package/cjs/components/DateTimePicker/ui/DateShortcut/DateShortcutList.js.map +1 -0
  55. package/cjs/components/DateTimePicker/ui/DateShortcut/DateShortcutList.styles.js +92 -0
  56. package/cjs/components/DateTimePicker/ui/DateShortcut/DateShortcutList.styles.js.map +1 -0
  57. package/cjs/components/DateTimePicker/ui/DateShortcut/DateShortcutList.styles_pdofx1.css +6 -0
  58. package/cjs/components/DateTimePicker/ui/Input/Input.css +80 -0
  59. package/cjs/components/DateTimePicker/ui/Input/Input.js +70 -0
  60. package/cjs/components/DateTimePicker/ui/Input/Input.js.map +1 -0
  61. package/cjs/components/DateTimePicker/ui/Input/Input.styles.js +24 -0
  62. package/cjs/components/DateTimePicker/ui/Input/Input.styles.js.map +1 -0
  63. package/cjs/components/DateTimePicker/ui/Input/Input.styles_1af0tdj.css +1 -0
  64. package/cjs/components/DateTimePicker/ui/Popover/Popover.css +11 -0
  65. package/cjs/components/DateTimePicker/ui/Popover/Popover.js +37 -0
  66. package/cjs/components/DateTimePicker/ui/Popover/Popover.js.map +1 -0
  67. package/cjs/components/DateTimePicker/ui/Popover/Popover.styles.js +44 -0
  68. package/cjs/components/DateTimePicker/ui/Popover/Popover.styles.js.map +1 -0
  69. package/cjs/components/DateTimePicker/ui/Popover/Popover.styles_1v6vurg.css +2 -0
  70. package/cjs/components/DateTimePicker/ui/TimeGrid/TimeGrid.css +12 -0
  71. package/cjs/components/DateTimePicker/ui/TimeGrid/TimeGrid.js +30 -0
  72. package/cjs/components/DateTimePicker/ui/TimeGrid/TimeGrid.js.map +1 -0
  73. package/cjs/components/DateTimePicker/ui/TimeGrid/TimeGrid.styles.js +40 -0
  74. package/cjs/components/DateTimePicker/ui/TimeGrid/TimeGrid.styles.js.map +1 -0
  75. package/cjs/components/DateTimePicker/ui/TimeGrid/TimeGrid.styles_31tnfx.css +1 -0
  76. package/cjs/components/DateTimePicker/utils/getFormattedDateTime.js +81 -0
  77. package/cjs/components/DateTimePicker/utils/getFormattedDateTime.js.map +1 -0
  78. package/cjs/components/DateTimePicker/utils/getMaskedValue.js +53 -0
  79. package/cjs/components/DateTimePicker/utils/getMaskedValue.js.map +1 -0
  80. package/cjs/components/DateTimePicker/utils/getOriginalDateTime.js +73 -0
  81. package/cjs/components/DateTimePicker/utils/getOriginalDateTime.js.map +1 -0
  82. package/cjs/components/DateTimePicker/utils/normalizeDateTime.js +33 -0
  83. package/cjs/components/DateTimePicker/utils/normalizeDateTime.js.map +1 -0
  84. package/cjs/components/DateTimePicker/variations/_disabled/base.js +9 -0
  85. package/cjs/components/DateTimePicker/variations/_disabled/base.js.map +1 -0
  86. package/cjs/components/DateTimePicker/variations/_disabled/base_7ophop.css +1 -0
  87. package/cjs/components/DateTimePicker/variations/_readonly/base.js +9 -0
  88. package/cjs/components/DateTimePicker/variations/_readonly/base.js.map +1 -0
  89. package/cjs/components/DateTimePicker/variations/_readonly/base_rrpgsr.css +1 -0
  90. package/cjs/components/DateTimePicker/variations/_size/base.js +9 -0
  91. package/cjs/components/DateTimePicker/variations/_size/base.js.map +1 -0
  92. package/cjs/components/DateTimePicker/variations/_size/base_19i3bl1.css +1 -0
  93. package/cjs/components/DateTimePicker/variations/_tooltip-size/base.js +9 -0
  94. package/cjs/components/DateTimePicker/variations/_tooltip-size/base.js.map +1 -0
  95. package/cjs/components/DateTimePicker/variations/_tooltip-size/base_x642ct.css +1 -0
  96. package/cjs/components/DateTimePicker/variations/_view/base.js +9 -0
  97. package/cjs/components/DateTimePicker/variations/_view/base.js.map +1 -0
  98. package/cjs/components/DateTimePicker/variations/_view/base_1a1ebsk.css +1 -0
  99. package/cjs/components/Select/Select.js +2 -1
  100. package/cjs/components/Select/Select.js.map +1 -1
  101. package/cjs/components/Select/hooks/useKeyboardNavigation.js +127 -38
  102. package/cjs/components/Select/hooks/useKeyboardNavigation.js.map +1 -1
  103. package/cjs/components/Select/reducers/focusedPathReducer.js +7 -0
  104. package/cjs/components/Select/reducers/focusedPathReducer.js.map +1 -1
  105. package/cjs/components/Select/reducers/treePathReducer.js +12 -0
  106. package/cjs/components/Select/reducers/treePathReducer.js.map +1 -1
  107. package/cjs/components/Select/ui/Target/ui/Textfield/Textfield.js +5 -2
  108. package/cjs/components/Select/ui/Target/ui/Textfield/Textfield.js.map +1 -1
  109. package/cjs/components/Select/ui/TreeList/TreeList.js +3 -3
  110. package/cjs/components/Select/ui/TreeList/TreeList.js.map +1 -1
  111. package/cjs/components/Select/ui/TreeList/ui/Item/Item.js +22 -5
  112. package/cjs/components/Select/ui/TreeList/ui/Item/Item.js.map +1 -1
  113. package/cjs/components/TimePickerGrid/TimePickerGrid.js +206 -276
  114. package/cjs/components/TimePickerGrid/TimePickerGrid.js.map +1 -1
  115. package/cjs/components/TimePickerGrid/ui/TimeColumn/TimeColumn.js +2 -1
  116. package/cjs/components/TimePickerGrid/ui/TimeColumn/TimeColumn.js.map +1 -1
  117. package/cjs/index.css +48 -0
  118. package/cjs/index.js +8 -0
  119. package/cjs/index.js.map +1 -1
  120. package/cjs/utils/index.js.map +1 -1
  121. package/cjs/utils/isArraysEqual.js +12 -0
  122. package/cjs/utils/isArraysEqual.js.map +1 -0
  123. package/emotion/cjs/components/Calendar/CalendarBase/CalendarBase.js +6 -0
  124. package/emotion/cjs/components/Calendar/CalendarDouble/CalendarDouble.js +6 -0
  125. package/emotion/cjs/components/Combobox/ComboboxNew/Combobox.js +82 -17
  126. package/emotion/cjs/components/Combobox/ComboboxNew/Combobox.tokens.js +2 -0
  127. package/emotion/cjs/components/Combobox/ComboboxNew/hooks/getPathMaps.js +35 -3
  128. package/emotion/cjs/components/Combobox/ComboboxNew/hooks/useKeyboardNavigation.js +312 -0
  129. package/emotion/cjs/components/Combobox/ComboboxNew/reducers/focusedPathReducer.js +7 -0
  130. package/emotion/cjs/components/Combobox/ComboboxNew/reducers/index.js +1 -0
  131. package/emotion/cjs/components/Combobox/ComboboxNew/reducers/treePathReducer.js +174 -0
  132. package/emotion/cjs/components/Combobox/ComboboxNew/ui/TreeList/TreeList.js +130 -0
  133. package/emotion/cjs/components/Combobox/ComboboxNew/ui/TreeList/TreeList.styles.js +36 -0
  134. package/emotion/cjs/components/Combobox/ComboboxNew/ui/TreeList/TreeList.types.js +4 -0
  135. package/emotion/cjs/components/Combobox/ComboboxNew/ui/TreeList/ui/Item/Item.js +192 -0
  136. package/emotion/cjs/components/Combobox/ComboboxNew/ui/TreeList/ui/Item/Item.styles.js +183 -0
  137. package/emotion/cjs/components/Combobox/ComboboxNew/ui/TreeList/ui/Item/Item.types.js +4 -0
  138. package/emotion/cjs/components/Combobox/ComboboxNew/ui/index.js +1 -0
  139. package/emotion/cjs/components/Combobox/ComboboxNew/utils/filterItems.js +14 -6
  140. package/emotion/cjs/components/Combobox/ComboboxNew/utils/index.js +3 -0
  141. package/emotion/cjs/components/DatePicker/utils/normalizeDates.js +3 -6
  142. package/emotion/cjs/components/DateTimePicker/DateTimePicker.js +459 -0
  143. package/emotion/cjs/components/DateTimePicker/DateTimePicker.styles.js +39 -0
  144. package/emotion/cjs/components/DateTimePicker/DateTimePicker.tokens.js +269 -0
  145. package/emotion/cjs/components/DateTimePicker/DateTimePicker.types.js +4 -0
  146. package/emotion/cjs/components/DateTimePicker/hooks/useDateTimePicker.js +499 -0
  147. package/emotion/cjs/components/DateTimePicker/hooks/useKeyboardNavigation.js +52 -0
  148. package/emotion/cjs/components/DateTimePicker/index.js +26 -0
  149. package/emotion/cjs/components/DateTimePicker/ui/CalendarGrid/CalendarGrid.js +93 -0
  150. package/emotion/cjs/components/DateTimePicker/ui/CalendarGrid/CalendarGrid.styles.js +61 -0
  151. package/emotion/cjs/components/DateTimePicker/ui/DateShortcut/DateShortcutList.js +53 -0
  152. package/emotion/cjs/components/DateTimePicker/ui/DateShortcut/DateShortcutList.styles.js +88 -0
  153. package/emotion/cjs/components/DateTimePicker/ui/Input/Input.js +167 -0
  154. package/emotion/cjs/components/DateTimePicker/ui/Input/Input.styles.js +25 -0
  155. package/emotion/cjs/components/DateTimePicker/ui/Popover/Popover.js +153 -0
  156. package/emotion/cjs/components/DateTimePicker/ui/Popover/Popover.styles.js +43 -0
  157. package/emotion/cjs/components/DateTimePicker/ui/TimeGrid/TimeGrid.js +87 -0
  158. package/emotion/cjs/components/DateTimePicker/ui/TimeGrid/TimeGrid.styles.js +31 -0
  159. package/emotion/cjs/components/DateTimePicker/ui/index.js +29 -0
  160. package/emotion/cjs/components/DateTimePicker/utils/getFormattedDateTime.js +118 -0
  161. package/emotion/cjs/components/DateTimePicker/utils/getMaskedValue.js +52 -0
  162. package/emotion/cjs/components/DateTimePicker/utils/getOriginalDateTime.js +128 -0
  163. package/emotion/cjs/components/DateTimePicker/utils/index.js +19 -0
  164. package/emotion/cjs/components/DateTimePicker/utils/normalizeDateTime.js +30 -0
  165. package/emotion/cjs/components/DateTimePicker/variations/_disabled/base.js +13 -0
  166. package/emotion/cjs/components/DateTimePicker/variations/_readonly/base.js +14 -0
  167. package/emotion/cjs/components/DateTimePicker/variations/_size/base.js +14 -0
  168. package/emotion/cjs/components/DateTimePicker/variations/_tooltip-size/base.js +12 -0
  169. package/emotion/cjs/components/DateTimePicker/variations/_view/base.js +14 -0
  170. package/emotion/cjs/components/Select/Select.js +2 -1
  171. package/emotion/cjs/components/Select/hooks/useKeyboardNavigation.js +156 -44
  172. package/emotion/cjs/components/Select/reducers/focusedPathReducer.js +7 -0
  173. package/emotion/cjs/components/Select/reducers/treePathReducer.js +12 -0
  174. package/emotion/cjs/components/Select/ui/Target/ui/Textfield/Textfield.js +5 -2
  175. package/emotion/cjs/components/Select/ui/TreeList/TreeList.js +7 -3
  176. package/emotion/cjs/components/Select/ui/TreeList/ui/Item/Item.js +49 -5
  177. package/emotion/cjs/components/TimePickerGrid/TimePickerGrid.js +213 -282
  178. package/emotion/cjs/components/TimePickerGrid/ui/TimeColumn/TimeColumn.js +2 -2
  179. package/emotion/cjs/examples/components/Combobox/Combobox.config.js +15 -15
  180. package/emotion/cjs/examples/components/Combobox/Combobox.js +0 -15
  181. package/emotion/cjs/examples/components/DateTimePicker/DateTimePicker.config.js +40 -0
  182. package/emotion/cjs/examples/components/DateTimePicker/DateTimePicker.js +15 -0
  183. package/emotion/cjs/examples/components/Select/Select.config.js +24 -24
  184. package/emotion/cjs/index.js +1 -0
  185. package/emotion/cjs/utils/index.js +4 -0
  186. package/emotion/cjs/utils/isArraysEqual.js +15 -0
  187. package/emotion/es/components/Calendar/CalendarBase/CalendarBase.js +6 -0
  188. package/emotion/es/components/Calendar/CalendarDouble/CalendarDouble.js +6 -0
  189. package/emotion/es/components/Combobox/ComboboxNew/Combobox.js +85 -20
  190. package/emotion/es/components/Combobox/ComboboxNew/Combobox.tokens.js +2 -0
  191. package/emotion/es/components/Combobox/ComboboxNew/hooks/getPathMaps.js +35 -3
  192. package/emotion/es/components/Combobox/ComboboxNew/hooks/useKeyboardNavigation.js +313 -0
  193. package/emotion/es/components/Combobox/ComboboxNew/reducers/focusedPathReducer.js +7 -0
  194. package/emotion/es/components/Combobox/ComboboxNew/reducers/index.js +1 -0
  195. package/emotion/es/components/Combobox/ComboboxNew/reducers/treePathReducer.js +157 -0
  196. package/emotion/es/components/Combobox/ComboboxNew/ui/TreeList/TreeList.js +79 -0
  197. package/emotion/es/components/Combobox/ComboboxNew/ui/TreeList/TreeList.styles.js +13 -0
  198. package/emotion/es/components/Combobox/ComboboxNew/ui/TreeList/TreeList.types.js +1 -0
  199. package/emotion/es/components/Combobox/ComboboxNew/ui/TreeList/ui/Item/Item.js +141 -0
  200. package/emotion/es/components/Combobox/ComboboxNew/ui/TreeList/ui/Item/Item.styles.js +119 -0
  201. package/emotion/es/components/Combobox/ComboboxNew/ui/TreeList/ui/Item/Item.types.js +1 -0
  202. package/emotion/es/components/Combobox/ComboboxNew/ui/index.js +1 -0
  203. package/emotion/es/components/Combobox/ComboboxNew/utils/filterItems.js +3 -3
  204. package/emotion/es/components/Combobox/ComboboxNew/utils/index.js +1 -1
  205. package/emotion/es/components/DatePicker/utils/normalizeDates.js +3 -6
  206. package/emotion/es/components/DateTimePicker/DateTimePicker.js +395 -0
  207. package/emotion/es/components/DateTimePicker/DateTimePicker.styles.js +13 -0
  208. package/emotion/es/components/DateTimePicker/DateTimePicker.tokens.js +248 -0
  209. package/emotion/es/components/DateTimePicker/DateTimePicker.types.js +1 -0
  210. package/emotion/es/components/DateTimePicker/hooks/useDateTimePicker.js +489 -0
  211. package/emotion/es/components/DateTimePicker/hooks/useKeyboardNavigation.js +34 -0
  212. package/emotion/es/components/DateTimePicker/index.js +2 -0
  213. package/emotion/es/components/DateTimePicker/ui/CalendarGrid/CalendarGrid.js +78 -0
  214. package/emotion/es/components/DateTimePicker/ui/CalendarGrid/CalendarGrid.styles.js +36 -0
  215. package/emotion/es/components/DateTimePicker/ui/DateShortcut/DateShortcutList.js +38 -0
  216. package/emotion/es/components/DateTimePicker/ui/DateShortcut/DateShortcutList.styles.js +53 -0
  217. package/emotion/es/components/DateTimePicker/ui/Input/Input.js +111 -0
  218. package/emotion/es/components/DateTimePicker/ui/Input/Input.styles.js +11 -0
  219. package/emotion/es/components/DateTimePicker/ui/Popover/Popover.js +102 -0
  220. package/emotion/es/components/DateTimePicker/ui/Popover/Popover.styles.js +20 -0
  221. package/emotion/es/components/DateTimePicker/ui/TimeGrid/TimeGrid.js +72 -0
  222. package/emotion/es/components/DateTimePicker/ui/TimeGrid/TimeGrid.styles.js +16 -0
  223. package/emotion/es/components/DateTimePicker/ui/index.js +6 -0
  224. package/emotion/es/components/DateTimePicker/utils/getFormattedDateTime.js +108 -0
  225. package/emotion/es/components/DateTimePicker/utils/getMaskedValue.js +42 -0
  226. package/emotion/es/components/DateTimePicker/utils/getOriginalDateTime.js +118 -0
  227. package/emotion/es/components/DateTimePicker/utils/index.js +2 -0
  228. package/emotion/es/components/DateTimePicker/utils/normalizeDateTime.js +20 -0
  229. package/emotion/es/components/DateTimePicker/variations/_disabled/base.js +3 -0
  230. package/emotion/es/components/DateTimePicker/variations/_readonly/base.js +4 -0
  231. package/emotion/es/components/DateTimePicker/variations/_size/base.js +4 -0
  232. package/emotion/es/components/DateTimePicker/variations/_tooltip-size/base.js +2 -0
  233. package/emotion/es/components/DateTimePicker/variations/_view/base.js +4 -0
  234. package/emotion/es/components/Select/Select.js +2 -1
  235. package/emotion/es/components/Select/hooks/useKeyboardNavigation.js +157 -44
  236. package/emotion/es/components/Select/reducers/focusedPathReducer.js +7 -0
  237. package/emotion/es/components/Select/reducers/treePathReducer.js +12 -0
  238. package/emotion/es/components/Select/ui/Target/ui/Textfield/Textfield.js +5 -2
  239. package/emotion/es/components/Select/ui/TreeList/TreeList.js +7 -3
  240. package/emotion/es/components/Select/ui/TreeList/ui/Item/Item.js +50 -6
  241. package/emotion/es/components/TimePickerGrid/TimePickerGrid.js +213 -282
  242. package/emotion/es/components/TimePickerGrid/ui/TimeColumn/TimeColumn.js +2 -2
  243. package/emotion/es/examples/components/Combobox/Combobox.config.js +15 -15
  244. package/emotion/es/examples/components/Combobox/Combobox.js +0 -7
  245. package/emotion/es/examples/components/DateTimePicker/DateTimePicker.config.js +30 -0
  246. package/emotion/es/examples/components/DateTimePicker/DateTimePicker.js +5 -0
  247. package/emotion/es/examples/components/Select/Select.config.js +24 -24
  248. package/emotion/es/index.js +1 -0
  249. package/emotion/es/utils/index.js +1 -0
  250. package/emotion/es/utils/isArraysEqual.js +5 -0
  251. package/es/components/Calendar/CalendarBase/CalendarBase.js +6 -0
  252. package/es/components/Calendar/CalendarBase/CalendarBase.js.map +1 -1
  253. package/es/components/Calendar/CalendarDouble/CalendarDouble.js +6 -0
  254. package/es/components/Calendar/CalendarDouble/CalendarDouble.js.map +1 -1
  255. package/es/components/Combobox/ComboboxNew/Combobox.css +19 -0
  256. package/es/components/Combobox/ComboboxNew/Combobox.js +95 -21
  257. package/es/components/Combobox/ComboboxNew/Combobox.js.map +1 -1
  258. package/es/components/Combobox/ComboboxNew/Combobox.tokens.js +2 -0
  259. package/es/components/Combobox/ComboboxNew/Combobox.tokens.js.map +1 -1
  260. package/es/components/Combobox/ComboboxNew/hooks/getPathMaps.js +8 -2
  261. package/es/components/Combobox/ComboboxNew/hooks/getPathMaps.js.map +1 -1
  262. package/es/components/Combobox/ComboboxNew/hooks/useKeyboardNavigation.js +319 -1
  263. package/es/components/Combobox/ComboboxNew/hooks/useKeyboardNavigation.js.map +1 -1
  264. package/es/components/Combobox/ComboboxNew/reducers/focusedPathReducer.js +7 -0
  265. package/es/components/Combobox/ComboboxNew/reducers/focusedPathReducer.js.map +1 -1
  266. package/es/components/Combobox/ComboboxNew/reducers/treePathReducer.js +156 -0
  267. package/es/components/Combobox/ComboboxNew/reducers/treePathReducer.js.map +1 -0
  268. package/es/components/Combobox/ComboboxNew/ui/TreeList/TreeList.css +57 -0
  269. package/es/components/Combobox/ComboboxNew/ui/TreeList/TreeList.js +88 -0
  270. package/es/components/Combobox/ComboboxNew/ui/TreeList/TreeList.js.map +1 -0
  271. package/es/components/Combobox/ComboboxNew/ui/TreeList/TreeList.styles.js +25 -0
  272. package/es/components/Combobox/ComboboxNew/ui/TreeList/TreeList.styles.js.map +1 -0
  273. package/es/components/Combobox/ComboboxNew/ui/TreeList/TreeList.styles_1auklgl.css +2 -0
  274. package/es/components/Combobox/ComboboxNew/ui/TreeList/ui/Item/Item.css +54 -0
  275. package/es/components/Combobox/ComboboxNew/ui/TreeList/ui/Item/Item.js +136 -0
  276. package/es/components/Combobox/ComboboxNew/ui/TreeList/ui/Item/Item.js.map +1 -0
  277. package/es/components/Combobox/ComboboxNew/ui/TreeList/ui/Item/Item.styles.js +187 -0
  278. package/es/components/Combobox/ComboboxNew/ui/TreeList/ui/Item/Item.styles.js.map +1 -0
  279. package/es/components/Combobox/ComboboxNew/ui/TreeList/ui/Item/Item.styles_7nhjnm.css +15 -0
  280. package/es/components/Combobox/ComboboxNew/utils/filterItems.js +4 -4
  281. package/es/components/Combobox/ComboboxNew/utils/filterItems.js.map +1 -1
  282. package/es/components/DatePicker/utils/normalizeDates.js +3 -6
  283. package/es/components/DatePicker/utils/normalizeDates.js.map +1 -1
  284. package/es/components/DateTimePicker/DateTimePicker.css +200 -0
  285. package/es/components/DateTimePicker/DateTimePicker.js +327 -0
  286. package/es/components/DateTimePicker/DateTimePicker.js.map +1 -0
  287. package/es/components/DateTimePicker/DateTimePicker.styles.js +17 -0
  288. package/es/components/DateTimePicker/DateTimePicker.styles.js.map +1 -0
  289. package/es/components/DateTimePicker/DateTimePicker.styles_x7parr.css +3 -0
  290. package/es/components/DateTimePicker/DateTimePicker.tokens.js +262 -0
  291. package/es/components/DateTimePicker/DateTimePicker.tokens.js.map +1 -0
  292. package/es/components/DateTimePicker/hooks/useDateTimePicker.js +441 -0
  293. package/es/components/DateTimePicker/hooks/useDateTimePicker.js.map +1 -0
  294. package/es/components/DateTimePicker/hooks/useKeyboardNavigation.js +35 -0
  295. package/es/components/DateTimePicker/hooks/useKeyboardNavigation.js.map +1 -0
  296. package/es/components/DateTimePicker/ui/CalendarGrid/CalendarGrid.css +82 -0
  297. package/es/components/DateTimePicker/ui/CalendarGrid/CalendarGrid.js +28 -0
  298. package/es/components/DateTimePicker/ui/CalendarGrid/CalendarGrid.js.map +1 -0
  299. package/es/components/DateTimePicker/ui/CalendarGrid/CalendarGrid.styles.js +78 -0
  300. package/es/components/DateTimePicker/ui/CalendarGrid/CalendarGrid.styles.js.map +1 -0
  301. package/es/components/DateTimePicker/ui/CalendarGrid/CalendarGrid.styles_1yl3xrz.css +2 -0
  302. package/es/components/DateTimePicker/ui/DateShortcut/DateShortcutList.css +34 -0
  303. package/es/components/DateTimePicker/ui/DateShortcut/DateShortcutList.js +35 -0
  304. package/es/components/DateTimePicker/ui/DateShortcut/DateShortcutList.js.map +1 -0
  305. package/es/components/DateTimePicker/ui/DateShortcut/DateShortcutList.styles.js +83 -0
  306. package/es/components/DateTimePicker/ui/DateShortcut/DateShortcutList.styles.js.map +1 -0
  307. package/es/components/DateTimePicker/ui/DateShortcut/DateShortcutList.styles_pdofx1.css +6 -0
  308. package/es/components/DateTimePicker/ui/Input/Input.css +80 -0
  309. package/es/components/DateTimePicker/ui/Input/Input.js +61 -0
  310. package/es/components/DateTimePicker/ui/Input/Input.js.map +1 -0
  311. package/es/components/DateTimePicker/ui/Input/Input.styles.js +20 -0
  312. package/es/components/DateTimePicker/ui/Input/Input.styles.js.map +1 -0
  313. package/es/components/DateTimePicker/ui/Input/Input.styles_1af0tdj.css +1 -0
  314. package/es/components/DateTimePicker/ui/Popover/Popover.css +11 -0
  315. package/es/components/DateTimePicker/ui/Popover/Popover.js +29 -0
  316. package/es/components/DateTimePicker/ui/Popover/Popover.js.map +1 -0
  317. package/es/components/DateTimePicker/ui/Popover/Popover.styles.js +39 -0
  318. package/es/components/DateTimePicker/ui/Popover/Popover.styles.js.map +1 -0
  319. package/es/components/DateTimePicker/ui/Popover/Popover.styles_1v6vurg.css +2 -0
  320. package/es/components/DateTimePicker/ui/TimeGrid/TimeGrid.css +12 -0
  321. package/es/components/DateTimePicker/ui/TimeGrid/TimeGrid.js +22 -0
  322. package/es/components/DateTimePicker/ui/TimeGrid/TimeGrid.js.map +1 -0
  323. package/es/components/DateTimePicker/ui/TimeGrid/TimeGrid.styles.js +36 -0
  324. package/es/components/DateTimePicker/ui/TimeGrid/TimeGrid.styles.js.map +1 -0
  325. package/es/components/DateTimePicker/ui/TimeGrid/TimeGrid.styles_31tnfx.css +1 -0
  326. package/es/components/DateTimePicker/utils/getFormattedDateTime.js +77 -0
  327. package/es/components/DateTimePicker/utils/getFormattedDateTime.js.map +1 -0
  328. package/es/components/DateTimePicker/utils/getMaskedValue.js +49 -0
  329. package/es/components/DateTimePicker/utils/getMaskedValue.js.map +1 -0
  330. package/es/components/DateTimePicker/utils/getOriginalDateTime.js +69 -0
  331. package/es/components/DateTimePicker/utils/getOriginalDateTime.js.map +1 -0
  332. package/es/components/DateTimePicker/utils/normalizeDateTime.js +29 -0
  333. package/es/components/DateTimePicker/utils/normalizeDateTime.js.map +1 -0
  334. package/es/components/DateTimePicker/variations/_disabled/base.js +5 -0
  335. package/es/components/DateTimePicker/variations/_disabled/base.js.map +1 -0
  336. package/es/components/DateTimePicker/variations/_disabled/base_7ophop.css +1 -0
  337. package/es/components/DateTimePicker/variations/_readonly/base.js +5 -0
  338. package/es/components/DateTimePicker/variations/_readonly/base.js.map +1 -0
  339. package/es/components/DateTimePicker/variations/_readonly/base_rrpgsr.css +1 -0
  340. package/es/components/DateTimePicker/variations/_size/base.js +5 -0
  341. package/es/components/DateTimePicker/variations/_size/base.js.map +1 -0
  342. package/es/components/DateTimePicker/variations/_size/base_19i3bl1.css +1 -0
  343. package/es/components/DateTimePicker/variations/_tooltip-size/base.js +5 -0
  344. package/es/components/DateTimePicker/variations/_tooltip-size/base.js.map +1 -0
  345. package/es/components/DateTimePicker/variations/_tooltip-size/base_x642ct.css +1 -0
  346. package/es/components/DateTimePicker/variations/_view/base.js +5 -0
  347. package/es/components/DateTimePicker/variations/_view/base.js.map +1 -0
  348. package/es/components/DateTimePicker/variations/_view/base_1a1ebsk.css +1 -0
  349. package/es/components/Select/Select.js +2 -1
  350. package/es/components/Select/Select.js.map +1 -1
  351. package/es/components/Select/hooks/useKeyboardNavigation.js +127 -38
  352. package/es/components/Select/hooks/useKeyboardNavigation.js.map +1 -1
  353. package/es/components/Select/reducers/focusedPathReducer.js +7 -0
  354. package/es/components/Select/reducers/focusedPathReducer.js.map +1 -1
  355. package/es/components/Select/reducers/treePathReducer.js +12 -0
  356. package/es/components/Select/reducers/treePathReducer.js.map +1 -1
  357. package/es/components/Select/ui/Target/ui/Textfield/Textfield.js +5 -2
  358. package/es/components/Select/ui/Target/ui/Textfield/Textfield.js.map +1 -1
  359. package/es/components/Select/ui/TreeList/TreeList.js +3 -3
  360. package/es/components/Select/ui/TreeList/TreeList.js.map +1 -1
  361. package/es/components/Select/ui/TreeList/ui/Item/Item.js +23 -6
  362. package/es/components/Select/ui/TreeList/ui/Item/Item.js.map +1 -1
  363. package/es/components/TimePickerGrid/TimePickerGrid.js +208 -278
  364. package/es/components/TimePickerGrid/TimePickerGrid.js.map +1 -1
  365. package/es/components/TimePickerGrid/ui/TimeColumn/TimeColumn.js +2 -1
  366. package/es/components/TimePickerGrid/ui/TimeColumn/TimeColumn.js.map +1 -1
  367. package/es/index.css +48 -0
  368. package/es/index.js +3 -0
  369. package/es/index.js.map +1 -1
  370. package/es/utils/index.js.map +1 -1
  371. package/es/utils/isArraysEqual.js +8 -0
  372. package/es/utils/isArraysEqual.js.map +1 -0
  373. package/package.json +2 -2
  374. package/styled-components/cjs/components/Calendar/CalendarBase/CalendarBase.js +6 -0
  375. package/styled-components/cjs/components/Calendar/CalendarDouble/CalendarDouble.js +6 -0
  376. package/styled-components/cjs/components/Combobox/ComboboxNew/Combobox.js +82 -17
  377. package/styled-components/cjs/components/Combobox/ComboboxNew/Combobox.tokens.js +2 -0
  378. package/styled-components/cjs/components/Combobox/ComboboxNew/hooks/getPathMaps.js +35 -3
  379. package/styled-components/cjs/components/Combobox/ComboboxNew/hooks/useKeyboardNavigation.js +312 -0
  380. package/styled-components/cjs/components/Combobox/ComboboxNew/reducers/focusedPathReducer.js +7 -0
  381. package/styled-components/cjs/components/Combobox/ComboboxNew/reducers/index.js +1 -0
  382. package/styled-components/cjs/components/Combobox/ComboboxNew/reducers/treePathReducer.js +174 -0
  383. package/styled-components/cjs/components/Combobox/ComboboxNew/ui/TreeList/TreeList.js +130 -0
  384. package/styled-components/cjs/components/Combobox/ComboboxNew/ui/TreeList/TreeList.styles.js +50 -0
  385. package/styled-components/cjs/components/Combobox/ComboboxNew/ui/TreeList/TreeList.types.js +4 -0
  386. package/styled-components/cjs/components/Combobox/ComboboxNew/ui/TreeList/ui/Item/Item.js +192 -0
  387. package/styled-components/cjs/components/Combobox/ComboboxNew/ui/TreeList/ui/Item/Item.styles.js +296 -0
  388. package/styled-components/cjs/components/Combobox/ComboboxNew/ui/TreeList/ui/Item/Item.types.js +4 -0
  389. package/styled-components/cjs/components/Combobox/ComboboxNew/ui/index.js +1 -0
  390. package/styled-components/cjs/components/Combobox/ComboboxNew/utils/filterItems.js +14 -6
  391. package/styled-components/cjs/components/Combobox/ComboboxNew/utils/index.js +3 -0
  392. package/styled-components/cjs/components/DatePicker/utils/normalizeDates.js +3 -6
  393. package/styled-components/cjs/components/DateTimePicker/DateTimePicker.js +459 -0
  394. package/styled-components/cjs/components/DateTimePicker/DateTimePicker.styles.js +89 -0
  395. package/styled-components/cjs/components/DateTimePicker/DateTimePicker.tokens.js +269 -0
  396. package/styled-components/cjs/components/DateTimePicker/DateTimePicker.types.js +4 -0
  397. package/styled-components/cjs/components/DateTimePicker/hooks/useDateTimePicker.js +499 -0
  398. package/styled-components/cjs/components/DateTimePicker/hooks/useKeyboardNavigation.js +52 -0
  399. package/styled-components/cjs/components/DateTimePicker/index.js +26 -0
  400. package/styled-components/cjs/components/DateTimePicker/ui/CalendarGrid/CalendarGrid.js +93 -0
  401. package/styled-components/cjs/components/DateTimePicker/ui/CalendarGrid/CalendarGrid.styles.js +75 -0
  402. package/styled-components/cjs/components/DateTimePicker/ui/DateShortcut/DateShortcutList.js +53 -0
  403. package/styled-components/cjs/components/DateTimePicker/ui/DateShortcut/DateShortcutList.styles.js +132 -0
  404. package/styled-components/cjs/components/DateTimePicker/ui/Input/Input.js +167 -0
  405. package/styled-components/cjs/components/DateTimePicker/ui/Input/Input.styles.js +176 -0
  406. package/styled-components/cjs/components/DateTimePicker/ui/Popover/Popover.js +153 -0
  407. package/styled-components/cjs/components/DateTimePicker/ui/Popover/Popover.styles.js +56 -0
  408. package/styled-components/cjs/components/DateTimePicker/ui/TimeGrid/TimeGrid.js +87 -0
  409. package/styled-components/cjs/components/DateTimePicker/ui/TimeGrid/TimeGrid.styles.js +69 -0
  410. package/styled-components/cjs/components/DateTimePicker/ui/index.js +29 -0
  411. package/styled-components/cjs/components/DateTimePicker/utils/getFormattedDateTime.js +118 -0
  412. package/styled-components/cjs/components/DateTimePicker/utils/getMaskedValue.js +52 -0
  413. package/styled-components/cjs/components/DateTimePicker/utils/getOriginalDateTime.js +128 -0
  414. package/styled-components/cjs/components/DateTimePicker/utils/index.js +19 -0
  415. package/styled-components/cjs/components/DateTimePicker/utils/normalizeDateTime.js +30 -0
  416. package/styled-components/cjs/components/DateTimePicker/variations/_disabled/base.js +16 -0
  417. package/styled-components/cjs/components/DateTimePicker/variations/_readonly/base.js +18 -0
  418. package/styled-components/cjs/components/DateTimePicker/variations/_size/base.js +24 -0
  419. package/styled-components/cjs/components/DateTimePicker/variations/_tooltip-size/base.js +14 -0
  420. package/styled-components/cjs/components/DateTimePicker/variations/_view/base.js +18 -0
  421. package/styled-components/cjs/components/Select/Select.js +2 -1
  422. package/styled-components/cjs/components/Select/hooks/useKeyboardNavigation.js +156 -44
  423. package/styled-components/cjs/components/Select/reducers/focusedPathReducer.js +7 -0
  424. package/styled-components/cjs/components/Select/reducers/treePathReducer.js +12 -0
  425. package/styled-components/cjs/components/Select/ui/Target/ui/Textfield/Textfield.js +5 -2
  426. package/styled-components/cjs/components/Select/ui/TreeList/TreeList.js +7 -3
  427. package/styled-components/cjs/components/Select/ui/TreeList/ui/Item/Item.js +49 -5
  428. package/styled-components/cjs/components/TimePickerGrid/TimePickerGrid.js +213 -282
  429. package/styled-components/cjs/components/TimePickerGrid/ui/TimeColumn/TimeColumn.js +2 -2
  430. package/styled-components/cjs/examples/components/Combobox/Combobox.config.js +20 -12
  431. package/styled-components/cjs/examples/components/DateTimePicker/DateTimePicker.config.js +786 -0
  432. package/styled-components/cjs/examples/components/DateTimePicker/DateTimePicker.js +15 -0
  433. package/styled-components/cjs/examples/components/Select/Select.config.js +7 -7
  434. package/styled-components/cjs/index.js +1 -0
  435. package/styled-components/cjs/utils/index.js +4 -0
  436. package/styled-components/cjs/utils/isArraysEqual.js +15 -0
  437. package/styled-components/es/components/Calendar/CalendarBase/CalendarBase.js +6 -0
  438. package/styled-components/es/components/Calendar/CalendarDouble/CalendarDouble.js +6 -0
  439. package/styled-components/es/components/Combobox/ComboboxNew/Combobox.js +85 -20
  440. package/styled-components/es/components/Combobox/ComboboxNew/Combobox.tokens.js +2 -0
  441. package/styled-components/es/components/Combobox/ComboboxNew/hooks/getPathMaps.js +35 -3
  442. package/styled-components/es/components/Combobox/ComboboxNew/hooks/useKeyboardNavigation.js +313 -0
  443. package/styled-components/es/components/Combobox/ComboboxNew/reducers/focusedPathReducer.js +7 -0
  444. package/styled-components/es/components/Combobox/ComboboxNew/reducers/index.js +1 -0
  445. package/styled-components/es/components/Combobox/ComboboxNew/reducers/treePathReducer.js +157 -0
  446. package/styled-components/es/components/Combobox/ComboboxNew/ui/TreeList/TreeList.js +79 -0
  447. package/styled-components/es/components/Combobox/ComboboxNew/ui/TreeList/TreeList.styles.js +27 -0
  448. package/styled-components/es/components/Combobox/ComboboxNew/ui/TreeList/TreeList.types.js +1 -0
  449. package/styled-components/es/components/Combobox/ComboboxNew/ui/TreeList/ui/Item/Item.js +141 -0
  450. package/styled-components/es/components/Combobox/ComboboxNew/ui/TreeList/ui/Item/Item.styles.js +232 -0
  451. package/styled-components/es/components/Combobox/ComboboxNew/ui/TreeList/ui/Item/Item.types.js +1 -0
  452. package/styled-components/es/components/Combobox/ComboboxNew/ui/index.js +1 -0
  453. package/styled-components/es/components/Combobox/ComboboxNew/utils/filterItems.js +3 -3
  454. package/styled-components/es/components/Combobox/ComboboxNew/utils/index.js +1 -1
  455. package/styled-components/es/components/DatePicker/utils/normalizeDates.js +3 -6
  456. package/styled-components/es/components/DateTimePicker/DateTimePicker.js +395 -0
  457. package/styled-components/es/components/DateTimePicker/DateTimePicker.styles.js +28 -0
  458. package/styled-components/es/components/DateTimePicker/DateTimePicker.tokens.js +248 -0
  459. package/styled-components/es/components/DateTimePicker/DateTimePicker.types.js +1 -0
  460. package/styled-components/es/components/DateTimePicker/hooks/useDateTimePicker.js +489 -0
  461. package/styled-components/es/components/DateTimePicker/hooks/useKeyboardNavigation.js +34 -0
  462. package/styled-components/es/components/DateTimePicker/index.js +2 -0
  463. package/styled-components/es/components/DateTimePicker/ui/CalendarGrid/CalendarGrid.js +78 -0
  464. package/styled-components/es/components/DateTimePicker/ui/CalendarGrid/CalendarGrid.styles.js +50 -0
  465. package/styled-components/es/components/DateTimePicker/ui/DateShortcut/DateShortcutList.js +38 -0
  466. package/styled-components/es/components/DateTimePicker/ui/DateShortcut/DateShortcutList.styles.js +97 -0
  467. package/styled-components/es/components/DateTimePicker/ui/Input/Input.js +111 -0
  468. package/styled-components/es/components/DateTimePicker/ui/Input/Input.styles.js +162 -0
  469. package/styled-components/es/components/DateTimePicker/ui/Popover/Popover.js +102 -0
  470. package/styled-components/es/components/DateTimePicker/ui/Popover/Popover.styles.js +33 -0
  471. package/styled-components/es/components/DateTimePicker/ui/TimeGrid/TimeGrid.js +72 -0
  472. package/styled-components/es/components/DateTimePicker/ui/TimeGrid/TimeGrid.styles.js +54 -0
  473. package/styled-components/es/components/DateTimePicker/ui/index.js +6 -0
  474. package/styled-components/es/components/DateTimePicker/utils/getFormattedDateTime.js +108 -0
  475. package/styled-components/es/components/DateTimePicker/utils/getMaskedValue.js +42 -0
  476. package/styled-components/es/components/DateTimePicker/utils/getOriginalDateTime.js +118 -0
  477. package/styled-components/es/components/DateTimePicker/utils/index.js +2 -0
  478. package/styled-components/es/components/DateTimePicker/utils/normalizeDateTime.js +20 -0
  479. package/styled-components/es/components/DateTimePicker/variations/_disabled/base.js +6 -0
  480. package/styled-components/es/components/DateTimePicker/variations/_readonly/base.js +8 -0
  481. package/styled-components/es/components/DateTimePicker/variations/_size/base.js +14 -0
  482. package/styled-components/es/components/DateTimePicker/variations/_tooltip-size/base.js +4 -0
  483. package/styled-components/es/components/DateTimePicker/variations/_view/base.js +8 -0
  484. package/styled-components/es/components/Select/Select.js +2 -1
  485. package/styled-components/es/components/Select/hooks/useKeyboardNavigation.js +157 -44
  486. package/styled-components/es/components/Select/reducers/focusedPathReducer.js +7 -0
  487. package/styled-components/es/components/Select/reducers/treePathReducer.js +12 -0
  488. package/styled-components/es/components/Select/ui/Target/ui/Textfield/Textfield.js +5 -2
  489. package/styled-components/es/components/Select/ui/TreeList/TreeList.js +7 -3
  490. package/styled-components/es/components/Select/ui/TreeList/ui/Item/Item.js +50 -6
  491. package/styled-components/es/components/TimePickerGrid/TimePickerGrid.js +213 -282
  492. package/styled-components/es/components/TimePickerGrid/ui/TimeColumn/TimeColumn.js +2 -2
  493. package/styled-components/es/examples/components/Combobox/Combobox.config.js +20 -12
  494. package/styled-components/es/examples/components/DateTimePicker/DateTimePicker.config.js +776 -0
  495. package/styled-components/es/examples/components/DateTimePicker/DateTimePicker.js +5 -0
  496. package/styled-components/es/examples/components/Select/Select.config.js +7 -7
  497. package/styled-components/es/index.js +1 -0
  498. package/styled-components/es/utils/index.js +1 -0
  499. package/styled-components/es/utils/isArraysEqual.js +5 -0
  500. package/types/components/Calendar/CalendarBase/CalendarBase.d.ts.map +1 -1
  501. package/types/components/Calendar/CalendarDouble/CalendarDouble.d.ts.map +1 -1
  502. package/types/components/Combobox/ComboboxNew/Combobox.d.ts.map +1 -1
  503. package/types/components/Combobox/ComboboxNew/Combobox.tokens.d.ts +2 -0
  504. package/types/components/Combobox/ComboboxNew/Combobox.tokens.d.ts.map +1 -1
  505. package/types/components/Combobox/ComboboxNew/Combobox.types.d.ts +17 -3
  506. package/types/components/Combobox/ComboboxNew/Combobox.types.d.ts.map +1 -1
  507. package/types/components/Combobox/ComboboxNew/hooks/getPathMaps.d.ts +2 -1
  508. package/types/components/Combobox/ComboboxNew/hooks/getPathMaps.d.ts.map +1 -1
  509. package/types/components/Combobox/ComboboxNew/hooks/useKeyboardNavigation.d.ts +8 -3
  510. package/types/components/Combobox/ComboboxNew/hooks/useKeyboardNavigation.d.ts.map +1 -1
  511. package/types/components/Combobox/ComboboxNew/reducers/focusedPathReducer.d.ts +3 -0
  512. package/types/components/Combobox/ComboboxNew/reducers/focusedPathReducer.d.ts.map +1 -1
  513. package/types/components/Combobox/ComboboxNew/reducers/index.d.ts +1 -0
  514. package/types/components/Combobox/ComboboxNew/reducers/index.d.ts.map +1 -1
  515. package/types/components/Combobox/ComboboxNew/reducers/treePathReducer.d.ts +28 -0
  516. package/types/components/Combobox/ComboboxNew/reducers/treePathReducer.d.ts.map +1 -0
  517. package/types/components/Combobox/ComboboxNew/ui/TreeList/TreeList.d.ts +4 -0
  518. package/types/components/Combobox/ComboboxNew/ui/TreeList/TreeList.d.ts.map +1 -0
  519. package/types/components/Combobox/ComboboxNew/ui/TreeList/TreeList.styles.d.ts +6 -0
  520. package/types/components/Combobox/ComboboxNew/ui/TreeList/TreeList.styles.d.ts.map +1 -0
  521. package/types/components/Combobox/ComboboxNew/ui/TreeList/TreeList.types.d.ts +11 -0
  522. package/types/components/Combobox/ComboboxNew/ui/TreeList/TreeList.types.d.ts.map +1 -0
  523. package/types/components/Combobox/ComboboxNew/ui/TreeList/ui/Item/Item.d.ts +4 -0
  524. package/types/components/Combobox/ComboboxNew/ui/TreeList/ui/Item/Item.d.ts.map +1 -0
  525. package/types/components/Combobox/ComboboxNew/ui/TreeList/ui/Item/Item.styles.d.ts +62 -0
  526. package/types/components/Combobox/ComboboxNew/ui/TreeList/ui/Item/Item.styles.d.ts.map +1 -0
  527. package/types/components/Combobox/ComboboxNew/ui/TreeList/ui/Item/Item.types.d.ts +6 -0
  528. package/types/components/Combobox/ComboboxNew/ui/TreeList/ui/Item/Item.types.d.ts.map +1 -0
  529. package/types/components/Combobox/ComboboxNew/ui/index.d.ts +1 -0
  530. package/types/components/Combobox/ComboboxNew/ui/index.d.ts.map +1 -1
  531. package/types/components/Combobox/ComboboxNew/utils/filterItems.d.ts +1 -0
  532. package/types/components/Combobox/ComboboxNew/utils/filterItems.d.ts.map +1 -1
  533. package/types/components/Combobox/ComboboxNew/utils/index.d.ts +1 -1
  534. package/types/components/Combobox/ComboboxNew/utils/index.d.ts.map +1 -1
  535. package/types/components/DatePicker/utils/normalizeDates.d.ts.map +1 -1
  536. package/types/components/DateTimePicker/DateTimePicker.d.ts +73 -0
  537. package/types/components/DateTimePicker/DateTimePicker.d.ts.map +1 -0
  538. package/types/components/DateTimePicker/DateTimePicker.styles.d.ts +4 -0
  539. package/types/components/DateTimePicker/DateTimePicker.styles.d.ts.map +1 -0
  540. package/types/components/DateTimePicker/DateTimePicker.tokens.d.ts +257 -0
  541. package/types/components/DateTimePicker/DateTimePicker.tokens.d.ts.map +1 -0
  542. package/types/components/DateTimePicker/DateTimePicker.types.d.ts +160 -0
  543. package/types/components/DateTimePicker/DateTimePicker.types.d.ts.map +1 -0
  544. package/types/components/DateTimePicker/hooks/useDateTimePicker.d.ts +26 -0
  545. package/types/components/DateTimePicker/hooks/useDateTimePicker.d.ts.map +1 -0
  546. package/types/components/DateTimePicker/hooks/useKeyboardNavigation.d.ts +18 -0
  547. package/types/components/DateTimePicker/hooks/useKeyboardNavigation.d.ts.map +1 -0
  548. package/types/components/DateTimePicker/index.d.ts +4 -0
  549. package/types/components/DateTimePicker/index.d.ts.map +1 -0
  550. package/types/components/DateTimePicker/ui/CalendarGrid/CalendarGrid.d.ts +11 -0
  551. package/types/components/DateTimePicker/ui/CalendarGrid/CalendarGrid.d.ts.map +1 -0
  552. package/types/components/DateTimePicker/ui/CalendarGrid/CalendarGrid.styles.d.ts +10 -0
  553. package/types/components/DateTimePicker/ui/CalendarGrid/CalendarGrid.styles.d.ts.map +1 -0
  554. package/types/components/DateTimePicker/ui/DateShortcut/DateShortcutList.d.ts +12 -0
  555. package/types/components/DateTimePicker/ui/DateShortcut/DateShortcutList.d.ts.map +1 -0
  556. package/types/components/DateTimePicker/ui/DateShortcut/DateShortcutList.styles.d.ts +44 -0
  557. package/types/components/DateTimePicker/ui/DateShortcut/DateShortcutList.styles.d.ts.map +1 -0
  558. package/types/components/DateTimePicker/ui/Input/Input.d.ts +8 -0
  559. package/types/components/DateTimePicker/ui/Input/Input.d.ts.map +1 -0
  560. package/types/components/DateTimePicker/ui/Input/Input.styles.d.ts +298 -0
  561. package/types/components/DateTimePicker/ui/Input/Input.styles.d.ts.map +1 -0
  562. package/types/components/DateTimePicker/ui/Popover/Popover.d.ts +8 -0
  563. package/types/components/DateTimePicker/ui/Popover/Popover.d.ts.map +1 -0
  564. package/types/components/DateTimePicker/ui/Popover/Popover.styles.d.ts +6 -0
  565. package/types/components/DateTimePicker/ui/Popover/Popover.styles.d.ts.map +1 -0
  566. package/types/components/DateTimePicker/ui/TimeGrid/TimeGrid.d.ts +9 -0
  567. package/types/components/DateTimePicker/ui/TimeGrid/TimeGrid.d.ts.map +1 -0
  568. package/types/components/DateTimePicker/ui/TimeGrid/TimeGrid.styles.d.ts +23 -0
  569. package/types/components/DateTimePicker/ui/TimeGrid/TimeGrid.styles.d.ts.map +1 -0
  570. package/types/components/DateTimePicker/ui/index.d.ts +7 -0
  571. package/types/components/DateTimePicker/ui/index.d.ts.map +1 -0
  572. package/types/components/DateTimePicker/utils/getFormattedDateTime.d.ts +27 -0
  573. package/types/components/DateTimePicker/utils/getFormattedDateTime.d.ts.map +1 -0
  574. package/types/components/DateTimePicker/utils/getMaskedValue.d.ts +13 -0
  575. package/types/components/DateTimePicker/utils/getMaskedValue.d.ts.map +1 -0
  576. package/types/components/DateTimePicker/utils/getOriginalDateTime.d.ts +19 -0
  577. package/types/components/DateTimePicker/utils/getOriginalDateTime.d.ts.map +1 -0
  578. package/types/components/DateTimePicker/utils/index.d.ts +3 -0
  579. package/types/components/DateTimePicker/utils/index.d.ts.map +1 -0
  580. package/types/components/DateTimePicker/utils/normalizeDateTime.d.ts +15 -0
  581. package/types/components/DateTimePicker/utils/normalizeDateTime.d.ts.map +1 -0
  582. package/types/components/DateTimePicker/variations/_disabled/base.d.ts +2 -0
  583. package/types/components/DateTimePicker/variations/_disabled/base.d.ts.map +1 -0
  584. package/types/components/DateTimePicker/variations/_readonly/base.d.ts +2 -0
  585. package/types/components/DateTimePicker/variations/_readonly/base.d.ts.map +1 -0
  586. package/types/components/DateTimePicker/variations/_size/base.d.ts +2 -0
  587. package/types/components/DateTimePicker/variations/_size/base.d.ts.map +1 -0
  588. package/types/components/DateTimePicker/variations/_tooltip-size/base.d.ts +2 -0
  589. package/types/components/DateTimePicker/variations/_tooltip-size/base.d.ts.map +1 -0
  590. package/types/components/DateTimePicker/variations/_view/base.d.ts +2 -0
  591. package/types/components/DateTimePicker/variations/_view/base.d.ts.map +1 -0
  592. package/types/components/Select/Select.d.ts.map +1 -1
  593. package/types/components/Select/hooks/useKeyboardNavigation.d.ts +2 -1
  594. package/types/components/Select/hooks/useKeyboardNavigation.d.ts.map +1 -1
  595. package/types/components/Select/reducers/focusedPathReducer.d.ts +3 -0
  596. package/types/components/Select/reducers/focusedPathReducer.d.ts.map +1 -1
  597. package/types/components/Select/reducers/treePathReducer.d.ts +6 -0
  598. package/types/components/Select/reducers/treePathReducer.d.ts.map +1 -1
  599. package/types/components/Select/ui/Target/ui/Textfield/Textfield.d.ts.map +1 -1
  600. package/types/components/Select/ui/TreeList/ui/Item/Item.d.ts.map +1 -1
  601. package/types/components/Select/ui/TreeList/ui/Item/Item.types.d.ts +1 -9
  602. package/types/components/Select/ui/TreeList/ui/Item/Item.types.d.ts.map +1 -1
  603. package/types/components/TimePickerGrid/TimePickerGrid.d.ts.map +1 -1
  604. package/types/components/TimePickerGrid/ui/TimeColumn/TimeColumn.d.ts +1 -1
  605. package/types/components/TimePickerGrid/ui/TimeColumn/TimeColumn.d.ts.map +1 -1
  606. package/types/components/TimePickerGrid/ui/TimeColumn/TimeColumn.types.d.ts +2 -1
  607. package/types/components/TimePickerGrid/ui/TimeColumn/TimeColumn.types.d.ts.map +1 -1
  608. package/types/examples/components/Combobox/Combobox.config.d.ts.map +1 -1
  609. package/types/examples/components/Combobox/Combobox.d.ts +48 -0
  610. package/types/examples/components/Combobox/Combobox.d.ts.map +1 -1
  611. package/types/examples/components/DateTimePicker/DateTimePicker.config.d.ts +29 -0
  612. package/types/examples/components/DateTimePicker/DateTimePicker.config.d.ts.map +1 -0
  613. package/types/examples/components/DateTimePicker/DateTimePicker.d.ts +42 -0
  614. package/types/examples/components/DateTimePicker/DateTimePicker.d.ts.map +1 -0
  615. package/types/index.d.ts +1 -0
  616. package/types/index.d.ts.map +1 -1
  617. package/types/utils/index.d.ts +1 -0
  618. package/types/utils/index.d.ts.map +1 -1
  619. package/types/utils/isArraysEqual.d.ts +2 -0
  620. package/types/utils/isArraysEqual.d.ts.map +1 -0
@@ -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, TreeList } from './ui';\nimport { pathReducer, focusedPathReducer, treePathReducer } 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 treeView = false,\n arrowPlacement = 'left',\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 mode = 'default',\n chipClickArea,\n // @ts-ignore\n _offset,\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, valueToPathMap] = 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 [treePath, dispatchTreePath] = useReducer(treePathReducer, {});\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 listWrapperRef = useRef<HTMLDivElement>(null);\n const view = target === 'textfield-like' && (disabled || readOnly) ? 'default' : getView(status, outerView);\n const rootRef = useRef<HTMLInputElement>(null);\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 /* Логика работы при клике за пределами выпадающего списка */\n useOutsideClick(() => {\n if (!isCurrentListOpen) {\n return;\n }\n\n handleListToggle(false);\n }, [floatingPopoverRef, listWrapperRef]);\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 dispatchTreePath({ type: 'reset' });\n\n // Скроллим чипы к левому краю при закрытии компонента\n const el = rootRef?.current?.querySelector('.input-scrollable-wrapper');\n if (multiselect && value.length > 0 && el) {\n el.scrollLeft = 0;\n }\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 switch (checkedCopy.get(item.value)) {\n // Если чекбокс в состоянии indeterminate\n case 'indeterminate': {\n updateDescendants(item, checkedCopy, true, valueToItemMap);\n break;\n }\n // Если чекбокс в состоянии checked\n case true: {\n updateDescendants(item, checkedCopy, false, valueToItemMap);\n checkedCopy.set(item.value, false);\n break;\n }\n // Если чекбокс в состоянии unchecked\n case false: {\n updateDescendants(item, checkedCopy, true, valueToItemMap);\n checkedCopy.set(item.value, true);\n break;\n }\n default: {\n break;\n }\n }\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 dispatchTreePath({ 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 dispatchTreePath({ type: 'reset' });\n }\n\n // Закрываем список, если элемент уже выбран.\n if (mode === 'radio' && isCurrentChecked) {\n return;\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<HTMLElement>) => {\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 treePath,\n dispatchTreePath,\n treeView,\n valueToPathMap,\n });\n\n // В данном эффекте мы следим за изменениями value снаружи и вносим коррективы в дерево чекбоксов.\n // Пример: когда юзер очистил value извне, тогда нужно пройтись по элементам и выключить все чекбоксы.\n useLayoutEffect(() => {\n const checkedCopy = new Map(valueToCheckedMap);\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 ref={rootRef}\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 treePath,\n dispatchTreePath,\n arrowPlacement,\n valueToPathMap,\n }}\n >\n <FloatingPopover\n ref={floatingPopoverRef}\n opened={isCurrentListOpen}\n onToggle={handleListToggle}\n placement={placement}\n portal={portal}\n listWidth={listWidth}\n offset={_offset}\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 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 {treeView ? (\n <TreeList\n items={items}\n listMaxHeight={listMaxHeight}\n onScroll={virtual ? undefined : handleScroll}\n virtual={virtual}\n beforeList={beforeList}\n afterList={afterList}\n />\n ) : (\n <ListWrapper ref={listWrapperRef} listWidth={listWidth}>\n <Ul\n role=\"tree\"\n id={`${treeId}_tree_level_1`}\n aria-multiselectable={Boolean(props.multiselect)}\n listMaxHeight={listMaxHeight || listHeight}\n onScroll={virtual ? undefined : handleScroll}\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 portal={listWrapperRef}\n />\n ))\n )}\n {afterList}\n </Ul>\n </ListWrapper>\n )}\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$treeView","treeView","_props$arrowPlacement","arrowPlacement","_props$placement","placement","label","labelPlacement","placeholder","helperText","_props$disabled","disabled","_props$readOnly","readOnly","outerView","view","size","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","multiselect","_props$mode","mode","_offset","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","valueToPathMap","_useState","useState","_useState2","internalValue","setInternalValue","undefined","floatingPopoverRef","useRef","_useReducer","useReducer","pathReducer","_useReducer2","path","dispatchPath","_useReducer3","treePathReducer","_useReducer4","treePath","dispatchTreePath","_useReducer5","focusedPathReducer","_useReducer6","focusedPath","dispatchFocusedPath","_useState3","_useState4","checked","setChecked","isCurrentListOpen","Boolean","activeDescendantItemValue","getItemByFocused","toString","treeId","safeUseId","listWrapperRef","getView","rootRef","requiredProps","hintProps","useOutsideClick","handleListToggle","onChange","newValue","item","Array","isArray","_typeof","opened","type","_rootRef$current","el","current","querySelector","length","scrollLeft","handleCheckboxChange","checkedCopy","Map","get","updateDescendants","set","newValues","forEach","key","push","val","has","handleItemClick","e","isEmpty","stopPropagation","isCurrentChecked","handlePressDown","handleScroll","scrollHeight","scrollTop","clientHeight","_useKeyNavigation","useKeyNavigation","onKeyDown","useLayoutEffect","_","updateAncestors","updateSingleAncestors","React","createElement","_extends","SelectNative","onSetValue","Context","Provider","_checkboxAppearance","FloatingPopover","offset","referenceRef","Target","selectProps","inputWrapperRef","isInner","TreeList","ListWrapper","Ul","role","concat","selectAllOptions","SelectAll","VirtualList","map","index","Inner","currentLevel","selectConfig","tag","layout","base","variations","defaults"],"mappings":"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"}
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, TreeList } from './ui';\nimport { pathReducer, focusedPathReducer, treePathReducer } 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 treeView = false,\n arrowPlacement = 'left',\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 mode = 'default',\n chipClickArea,\n // @ts-ignore\n _offset,\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, valueToPathMap] = 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 [treePath, dispatchTreePath] = useReducer(treePathReducer, {});\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 listWrapperRef = useRef<HTMLDivElement>(null);\n const view = target === 'textfield-like' && (disabled || readOnly) ? 'default' : getView(status, outerView);\n const rootRef = useRef<HTMLInputElement>(null);\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 /* Логика работы при клике за пределами выпадающего списка */\n useOutsideClick(() => {\n if (!isCurrentListOpen) {\n return;\n }\n\n handleListToggle(false);\n }, [floatingPopoverRef, listWrapperRef]);\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 dispatchTreePath({ type: 'reset' });\n\n // Скроллим чипы к левому краю при закрытии компонента\n const el = rootRef?.current?.querySelector('.input-scrollable-wrapper');\n if (multiselect && value.length > 0 && el) {\n el.scrollLeft = 0;\n }\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 switch (checkedCopy.get(item.value)) {\n // Если чекбокс в состоянии indeterminate\n case 'indeterminate': {\n updateDescendants(item, checkedCopy, true, valueToItemMap);\n break;\n }\n // Если чекбокс в состоянии checked\n case true: {\n updateDescendants(item, checkedCopy, false, valueToItemMap);\n checkedCopy.set(item.value, false);\n break;\n }\n // Если чекбокс в состоянии unchecked\n case false: {\n updateDescendants(item, checkedCopy, true, valueToItemMap);\n checkedCopy.set(item.value, true);\n break;\n }\n default: {\n break;\n }\n }\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 dispatchTreePath({ 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 dispatchTreePath({ type: 'reset' });\n }\n\n // Закрываем список, если элемент уже выбран.\n if (mode === 'radio' && isCurrentChecked) {\n return;\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<HTMLElement>) => {\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 treePath,\n dispatchTreePath,\n treeView,\n valueToPathMap,\n items: transformedItems,\n });\n\n // В данном эффекте мы следим за изменениями value снаружи и вносим коррективы в дерево чекбоксов.\n // Пример: когда юзер очистил value извне, тогда нужно пройтись по элементам и выключить все чекбоксы.\n useLayoutEffect(() => {\n const checkedCopy = new Map(valueToCheckedMap);\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 ref={rootRef}\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 treePath,\n dispatchTreePath,\n arrowPlacement,\n valueToPathMap,\n }}\n >\n <FloatingPopover\n ref={floatingPopoverRef}\n opened={isCurrentListOpen}\n onToggle={handleListToggle}\n placement={placement}\n portal={portal}\n listWidth={listWidth}\n offset={_offset}\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 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 {treeView ? (\n <TreeList\n items={items}\n listMaxHeight={listMaxHeight}\n onScroll={virtual ? undefined : handleScroll}\n virtual={virtual}\n beforeList={beforeList}\n afterList={afterList}\n />\n ) : (\n <ListWrapper ref={listWrapperRef} listWidth={listWidth}>\n <Ul\n role=\"tree\"\n id={`${treeId}_tree_level_1`}\n aria-multiselectable={Boolean(props.multiselect)}\n listMaxHeight={listMaxHeight || listHeight}\n onScroll={virtual ? undefined : handleScroll}\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 portal={listWrapperRef}\n />\n ))\n )}\n {afterList}\n </Ul>\n </ListWrapper>\n )}\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$treeView","treeView","_props$arrowPlacement","arrowPlacement","_props$placement","placement","label","labelPlacement","placeholder","helperText","_props$disabled","disabled","_props$readOnly","readOnly","outerView","view","size","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","multiselect","_props$mode","mode","_offset","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","valueToPathMap","_useState","useState","_useState2","internalValue","setInternalValue","undefined","floatingPopoverRef","useRef","_useReducer","useReducer","pathReducer","_useReducer2","path","dispatchPath","_useReducer3","treePathReducer","_useReducer4","treePath","dispatchTreePath","_useReducer5","focusedPathReducer","_useReducer6","focusedPath","dispatchFocusedPath","_useState3","_useState4","checked","setChecked","isCurrentListOpen","Boolean","activeDescendantItemValue","getItemByFocused","toString","treeId","safeUseId","listWrapperRef","getView","rootRef","requiredProps","hintProps","useOutsideClick","handleListToggle","onChange","newValue","item","Array","isArray","_typeof","opened","type","_rootRef$current","el","current","querySelector","length","scrollLeft","handleCheckboxChange","checkedCopy","Map","get","updateDescendants","set","newValues","forEach","key","push","val","has","handleItemClick","e","isEmpty","stopPropagation","isCurrentChecked","handlePressDown","handleScroll","scrollHeight","scrollTop","clientHeight","_useKeyNavigation","useKeyNavigation","onKeyDown","useLayoutEffect","_","updateAncestors","updateSingleAncestors","React","createElement","_extends","SelectNative","onSetValue","Context","Provider","_checkboxAppearance","FloatingPopover","offset","referenceRef","Target","selectProps","inputWrapperRef","isInner","TreeList","ListWrapper","Ul","role","concat","selectAllOptions","SelectAll","VirtualList","map","index","Inner","currentLevel","selectConfig","tag","layout","base","variations","defaults"],"mappings":"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"}
@@ -2,6 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
+ var _rollupPluginBabelHelpers = require('../../../_virtual/_rollupPluginBabelHelpers.js');
5
6
  var treePathReducer = require('../reducers/treePathReducer.js');
6
7
 
7
8
  var JUMP_SIZE = 10;
@@ -26,6 +27,7 @@ var getItemByFocused = function getItemByFocused(focusedPath, focusedToValueMap)
26
27
  }, '').replace(/^(\/)/, '');
27
28
  return focusedToValueMap.get(focusedPathAsString);
28
29
  };
30
+ // #TODO: подумать над идеей выноса логики фокуса непосредственно в focusedPathReducer.
29
31
  var useKeyNavigation = function useKeyNavigation(_ref) {
30
32
  var focusedPath = _ref.focusedPath,
31
33
  dispatchFocusedPath = _ref.dispatchFocusedPath,
@@ -38,7 +40,8 @@ var useKeyNavigation = function useKeyNavigation(_ref) {
38
40
  treePath = _ref.treePath,
39
41
  dispatchTreePath = _ref.dispatchTreePath,
40
42
  treeView = _ref.treeView,
41
- valueToPathMap = _ref.valueToPathMap;
43
+ valueToPathMap = _ref.valueToPathMap,
44
+ items = _ref.items;
42
45
  if (treeView) {
43
46
  return keyboardNavigationTree({
44
47
  focusedPath: focusedPath,
@@ -52,7 +55,8 @@ var useKeyNavigation = function useKeyNavigation(_ref) {
52
55
  treePath: treePath,
53
56
  dispatchTreePath: dispatchTreePath,
54
57
  treeView: treeView,
55
- valueToPathMap: valueToPathMap
58
+ valueToPathMap: valueToPathMap,
59
+ items: items
56
60
  });
57
61
  }
58
62
  return keyboardNavigationDefault({
@@ -67,7 +71,8 @@ var useKeyNavigation = function useKeyNavigation(_ref) {
67
71
  treePath: treePath,
68
72
  dispatchTreePath: dispatchTreePath,
69
73
  treeView: treeView,
70
- valueToPathMap: valueToPathMap
74
+ valueToPathMap: valueToPathMap,
75
+ items: items
71
76
  });
72
77
  };
73
78
  var keyboardNavigationDefault = function keyboardNavigationDefault(_ref2) {
@@ -350,22 +355,76 @@ var keyboardNavigationTree = function keyboardNavigationTree(_ref3) {
350
355
  handlePressDown = _ref3.handlePressDown,
351
356
  treePath = _ref3.treePath,
352
357
  dispatchTreePath = _ref3.dispatchTreePath,
353
- valueToPathMap = _ref3.valueToPathMap;
354
- var currentIndex = (focusedPath === null || focusedPath === void 0 ? void 0 : focusedPath[focusedPath.length - 1]) || 0;
358
+ valueToPathMap = _ref3.valueToPathMap,
359
+ items = _ref3.items;
355
360
  var currentItem = getItemByFocused(focusedPath, focusedToValueMap);
361
+ var currentIndex = (focusedPath === null || focusedPath === void 0 ? void 0 : focusedPath[focusedPath.length - 1]) || 0;
356
362
  var currentLength = (currentItem === null || currentItem === void 0 || (_currentItem$parent = currentItem.parent) === null || _currentItem$parent === void 0 || (_currentItem$parent = _currentItem$parent.items) === null || _currentItem$parent === void 0 ? void 0 : _currentItem$parent.length) || pathMap.get('root') || 0;
363
+ var isValidFocus = function isValidFocus(focusCandidate) {
364
+ if (!Array.isArray(items) || !Array.isArray(focusCandidate)) return false;
365
+ var currentLevel = items;
366
+ var _iterator = _rollupPluginBabelHelpers.createForOfIteratorHelper(focusCandidate),
367
+ _step;
368
+ try {
369
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
370
+ var index = _step.value;
371
+ if (!Array.isArray(currentLevel) || index >= currentLevel.length) {
372
+ return false;
373
+ }
374
+ var node = currentLevel[index];
375
+ currentLevel = node.items || [];
376
+ }
377
+ } catch (err) {
378
+ _iterator.e(err);
379
+ } finally {
380
+ _iterator.f();
381
+ }
382
+ return true;
383
+ };
357
384
  var onKeyDown = function onKeyDown(event) {
358
385
  switch (event.code) {
359
386
  case keys.ArrowUp:
360
387
  {
388
+ /**
389
+ * Если список открыт и фокус уже установлен на каком-либо элементе.
390
+ * */
361
391
  if (focusedPath.length) {
392
+ /**
393
+ * Если это не первый элемент, то нужно вначале найти элемент для фокуса.
394
+ * Т.к. если верхний элемент раскрыт, то и перемещаться нужно не на него,
395
+ * а на его самый нижний дочерний элемент.
396
+ * */
362
397
  if (currentIndex > 0) {
398
+ var nextFocus = [].concat(_rollupPluginBabelHelpers.toConsumableArray(focusedPath.slice(0, -1)), [currentIndex - 1]);
399
+ while (nextFocus) {
400
+ var focusedPathAsString = nextFocus.reduce(function (acc, n) {
401
+ return "".concat(acc, "/").concat(n);
402
+ }, '').replace(/^(\/)/, '');
403
+ var item = focusedToValueMap.get(focusedPathAsString);
404
+ var isLevelOpened = treePathReducer.keyExists(treePath, valueToPathMap.get(item.value.toString()) || []);
405
+ if (isLevelOpened) {
406
+ var _item$items;
407
+ nextFocus = [].concat(_rollupPluginBabelHelpers.toConsumableArray(nextFocus), [((item === null || item === void 0 || (_item$items = item.items) === null || _item$items === void 0 ? void 0 : _item$items.length) || 0) - 1]);
408
+ } else {
409
+ break;
410
+ }
411
+ }
363
412
  dispatchFocusedPath({
364
- type: 'change_last_focus',
365
- value: currentIndex - 1
413
+ type: 'set_focus',
414
+ value: nextFocus
415
+ });
416
+ } else {
417
+ /**
418
+ * Если элемент первый, то нужно лишь подняться к его родителю.
419
+ * */
420
+ dispatchFocusedPath({
421
+ type: 'return_prev_focus'
366
422
  });
367
423
  }
368
424
  } else {
425
+ /**
426
+ * Если список закрыт, то нужно его открыть и установить фокус на первый элемент.
427
+ * */
369
428
  dispatchPath({
370
429
  type: 'opened_first_level'
371
430
  });
@@ -378,14 +437,66 @@ var keyboardNavigationTree = function keyboardNavigationTree(_ref3) {
378
437
  }
379
438
  case keys.ArrowDown:
380
439
  {
440
+ /**
441
+ * Если список открыт и фокус уже установлен на каком-либо элементе.
442
+ * */
381
443
  if (focusedPath.length) {
444
+ /**
445
+ * Заходим сюда если у элемента есть другие вложенные элементы.
446
+ * */
447
+ if (currentItem !== null && currentItem !== void 0 && currentItem.items && currentItem !== null && currentItem !== void 0 && currentItem.items.length) {
448
+ var isCurrentLevelOpened = treePathReducer.keyExists(treePath, valueToPathMap.get(currentItem.value.toString()) || []);
449
+
450
+ /**
451
+ * Если у этого элемента открыт его дочерний список,
452
+ * то устанавливаем фокус на первый элемент из этого списка
453
+ * и сразу же выходим из обработчика события.
454
+ * */
455
+ if (isCurrentLevelOpened) {
456
+ dispatchFocusedPath({
457
+ type: 'add_focus',
458
+ value: 0
459
+ });
460
+ break;
461
+ }
462
+ }
463
+
464
+ /**
465
+ * Если мы еще не достигли конца списка, то движемся к следующему элементу.
466
+ * */
382
467
  if (currentIndex + 1 < currentLength) {
383
468
  dispatchFocusedPath({
384
469
  type: 'change_last_focus',
385
470
  value: currentIndex + 1
386
471
  });
472
+ } else {
473
+ /**
474
+ * Если же достигли последнего элемента на текущем уровне, то нужно определить,
475
+ * на какой из элементов ниже мы перейдем.
476
+ * Переход фокуса отсюда может быть только на уровни выше, при чем сразу на несколько.
477
+ * */
478
+ var focusCandidate = _rollupPluginBabelHelpers.toConsumableArray(focusedPath);
479
+ var _nextFocus = null;
480
+ while (focusCandidate.length > 1) {
481
+ focusCandidate = [].concat(_rollupPluginBabelHelpers.toConsumableArray(focusCandidate.slice(0, -2)), [(focusCandidate.at(-2) || 0) + 1]);
482
+ if (isValidFocus(focusCandidate)) {
483
+ _nextFocus = focusCandidate;
484
+ break;
485
+ }
486
+ }
487
+ if (_nextFocus) {
488
+ dispatchFocusedPath({
489
+ type: 'set_focus',
490
+ value: _nextFocus
491
+ });
492
+ } else {
493
+ break;
494
+ }
387
495
  }
388
496
  } else {
497
+ /**
498
+ * Если список закрыт, то нужно его открыть и установить фокус на первый элемент.
499
+ * */
389
500
  dispatchPath({
390
501
  type: 'opened_first_level'
391
502
  });
@@ -400,19 +511,10 @@ var keyboardNavigationTree = function keyboardNavigationTree(_ref3) {
400
511
  {
401
512
  if (path[0]) {
402
513
  if (focusedPath.length) {
403
- var isCurrentLevelOpened = treePathReducer.keyExists(treePath, valueToPathMap.get((currentItem === null || currentItem === void 0 ? void 0 : currentItem.value.toString()) || '') || []);
404
- if (isCurrentLevelOpened) {
405
- dispatchTreePath({
406
- type: 'toggled_level',
407
- value: valueToPathMap.get((currentItem === null || currentItem === void 0 ? void 0 : currentItem.value.toString()) || '') || []
408
- });
409
- } else if (focusedPath.length === 1) {
410
- handleListToggle(false);
411
- } else {
412
- dispatchFocusedPath({
413
- type: 'return_prev_focus'
414
- });
415
- }
514
+ dispatchTreePath({
515
+ type: 'close_level',
516
+ value: valueToPathMap.get((currentItem === null || currentItem === void 0 ? void 0 : currentItem.value.toString()) || '') || []
517
+ });
416
518
  }
417
519
  }
418
520
  break;
@@ -420,26 +522,13 @@ var keyboardNavigationTree = function keyboardNavigationTree(_ref3) {
420
522
  case keys.ArrowRight:
421
523
  {
422
524
  if (path[0]) {
423
- if (!focusedPath.length) {
424
- break;
425
- }
426
- if (currentItem !== null && currentItem !== void 0 && currentItem.disabled || currentItem !== null && currentItem !== void 0 && currentItem.isDisabled) {
525
+ if (!focusedPath.length || currentItem !== null && currentItem !== void 0 && currentItem.disabled || currentItem !== null && currentItem !== void 0 && currentItem.isDisabled || !(currentItem !== null && currentItem !== void 0 && currentItem.items)) {
427
526
  break;
428
527
  }
429
- if (currentItem !== null && currentItem !== void 0 && currentItem.items) {
430
- var _isCurrentLevelOpened = treePathReducer.keyExists(treePath, valueToPathMap.get(currentItem.value.toString()) || []);
431
- if (_isCurrentLevelOpened) {
432
- dispatchFocusedPath({
433
- type: 'add_focus',
434
- value: 0
435
- });
436
- } else {
437
- dispatchTreePath({
438
- type: 'toggled_level',
439
- value: valueToPathMap.get(currentItem.value.toString()) || []
440
- });
441
- }
442
- }
528
+ dispatchTreePath({
529
+ type: 'open_level',
530
+ value: valueToPathMap.get(currentItem.value.toString()) || []
531
+ });
443
532
  }
444
533
  break;
445
534
  }