@gravity-ui/navigation 5.0.0-beta.3 → 5.0.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 (395) hide show
  1. package/build/cjs/assets/icons/divider-collapsed-compact.svg.js +41 -0
  2. package/build/cjs/assets/icons/divider-collapsed-compact.svg.js.map +1 -0
  3. package/build/cjs/components/AsideHeader/AsideHeader.css +1 -1
  4. package/build/cjs/components/AsideHeader/AsideHeader.js +3 -3
  5. package/build/cjs/components/AsideHeader/AsideHeader.js.map +1 -1
  6. package/build/cjs/components/AsideHeader/AsideHeader.module.scss.js +1 -1
  7. package/build/cjs/components/AsideHeader/AsideHeaderContext.d.ts +17 -4
  8. package/build/cjs/components/AsideHeader/AsideHeaderContext.js +10 -8
  9. package/build/cjs/components/AsideHeader/AsideHeaderContext.js.map +1 -1
  10. package/build/cjs/components/AsideHeader/FooterLayoutContext.d.ts +7 -0
  11. package/build/cjs/components/AsideHeader/FooterLayoutContext.js +10 -0
  12. package/build/cjs/components/AsideHeader/FooterLayoutContext.js.map +1 -0
  13. package/build/cjs/components/AsideHeader/components/AllPagesPanel/AllPagesPanel.css +1 -1
  14. package/build/cjs/components/AsideHeader/components/AllPagesPanel/AllPagesPanel.js +23 -15
  15. package/build/cjs/components/AsideHeader/components/AllPagesPanel/AllPagesPanel.js.map +1 -1
  16. package/build/cjs/components/AsideHeader/components/AllPagesPanel/AllPagesPanel.module.scss.js +1 -1
  17. package/build/cjs/components/AsideHeader/components/AllPagesPanel/useGroupedMenuItems.js +10 -5
  18. package/build/cjs/components/AsideHeader/components/AllPagesPanel/useGroupedMenuItems.js.map +1 -1
  19. package/build/cjs/components/AsideHeader/components/AllPagesPanel/utils/getExpandedIndexForSortableIndex.d.ts +9 -0
  20. package/build/cjs/components/AsideHeader/components/AllPagesPanel/utils/getExpandedIndexForSortableIndex.js +27 -0
  21. package/build/cjs/components/AsideHeader/components/AllPagesPanel/utils/getExpandedIndexForSortableIndex.js.map +1 -0
  22. package/build/cjs/components/AsideHeader/components/AllPagesPanel/utils/getRealIndexInGroup.d.ts +71 -0
  23. package/build/cjs/components/AsideHeader/components/AllPagesPanel/utils/getRealIndexInGroup.js +122 -0
  24. package/build/cjs/components/AsideHeader/components/AllPagesPanel/utils/getRealIndexInGroup.js.map +1 -1
  25. package/build/cjs/components/AsideHeader/components/AllPagesPanel/utils/sortMenuItemsWithDividers.d.ts +3 -1
  26. package/build/cjs/components/AsideHeader/components/AllPagesPanel/utils/sortMenuItemsWithDividers.js +23 -22
  27. package/build/cjs/components/AsideHeader/components/AllPagesPanel/utils/sortMenuItemsWithDividers.js.map +1 -1
  28. package/build/cjs/components/AsideHeader/components/CollapseButton/CollapseButton.css +1 -1
  29. package/build/cjs/components/AsideHeader/components/CollapseButton/CollapseButton.d.ts +2 -1
  30. package/build/cjs/components/AsideHeader/components/CollapseButton/CollapseButton.js +13 -13
  31. package/build/cjs/components/AsideHeader/components/CollapseButton/CollapseButton.js.map +1 -1
  32. package/build/cjs/components/AsideHeader/components/CollapseButton/CollapseButton.module.scss.js +1 -1
  33. package/build/cjs/components/AsideHeader/components/CompositeBar/CompositeBar.css +1 -1
  34. package/build/cjs/components/AsideHeader/components/CompositeBar/CompositeBar.d.ts +11 -5
  35. package/build/cjs/components/AsideHeader/components/CompositeBar/CompositeBar.js +63 -165
  36. package/build/cjs/components/AsideHeader/components/CompositeBar/CompositeBar.js.map +1 -1
  37. package/build/cjs/components/AsideHeader/components/CompositeBar/CompositeBar.module.scss.js +1 -1
  38. package/build/cjs/components/AsideHeader/components/CompositeBar/HighlightedItem/HighlightedItem.css +1 -1
  39. package/build/cjs/components/AsideHeader/components/CompositeBar/Item/Item.css +25 -1
  40. package/build/cjs/components/AsideHeader/components/CompositeBar/Item/Item.d.ts +7 -2
  41. package/build/cjs/components/AsideHeader/components/CompositeBar/Item/Item.js +26 -8
  42. package/build/cjs/components/AsideHeader/components/CompositeBar/Item/Item.js.map +1 -1
  43. package/build/cjs/components/AsideHeader/components/CompositeBar/Item/Item.module.scss.js +1 -1
  44. package/build/cjs/components/AsideHeader/components/CompositeBar/ScrollableWithScrollbar/ScrollableWithScrollbar.css +1 -0
  45. package/build/cjs/components/AsideHeader/components/CompositeBar/ScrollableWithScrollbar/ScrollableWithScrollbar.d.ts +8 -0
  46. package/build/cjs/components/AsideHeader/components/CompositeBar/ScrollableWithScrollbar/ScrollableWithScrollbar.js +27 -0
  47. package/build/cjs/components/AsideHeader/components/CompositeBar/ScrollableWithScrollbar/ScrollableWithScrollbar.js.map +1 -0
  48. package/build/cjs/components/AsideHeader/components/CompositeBar/ScrollableWithScrollbar/ScrollableWithScrollbar.module.scss.js +8 -0
  49. package/build/cjs/components/AsideHeader/components/CompositeBar/ScrollableWithScrollbar/ScrollableWithScrollbar.module.scss.js.map +1 -0
  50. package/build/cjs/components/AsideHeader/components/CompositeBar/ScrollableWithScrollbar/index.d.ts +1 -0
  51. package/build/cjs/components/AsideHeader/components/CompositeBar/ScrollableWithScrollbar/useScrollbar.d.ts +21 -0
  52. package/build/cjs/components/AsideHeader/components/CompositeBar/ScrollableWithScrollbar/useScrollbar.js +146 -0
  53. package/build/cjs/components/AsideHeader/components/CompositeBar/ScrollableWithScrollbar/useScrollbar.js.map +1 -0
  54. package/build/cjs/components/AsideHeader/components/CompositeBar/utils.d.ts +4 -2
  55. package/build/cjs/components/AsideHeader/components/CompositeBar/utils.js +57 -7
  56. package/build/cjs/components/AsideHeader/components/CompositeBar/utils.js.map +1 -1
  57. package/build/cjs/components/AsideHeader/components/FirstPanel.js +29 -9
  58. package/build/cjs/components/AsideHeader/components/FirstPanel.js.map +1 -1
  59. package/build/cjs/components/AsideHeader/components/FooterBar/FooterBar.css +1 -0
  60. package/build/cjs/components/AsideHeader/components/FooterBar/FooterBar.d.ts +19 -0
  61. package/build/cjs/components/AsideHeader/components/FooterBar/FooterBar.js +95 -0
  62. package/build/cjs/components/AsideHeader/components/FooterBar/FooterBar.js.map +1 -0
  63. package/build/cjs/components/AsideHeader/components/FooterBar/FooterBar.module.scss.js +8 -0
  64. package/build/cjs/components/AsideHeader/components/FooterBar/FooterBar.module.scss.js.map +1 -0
  65. package/build/cjs/components/AsideHeader/components/FooterBar/constants.d.ts +1 -0
  66. package/build/cjs/components/AsideHeader/components/FooterBar/constants.js +6 -0
  67. package/build/cjs/components/AsideHeader/components/FooterBar/constants.js.map +1 -0
  68. package/build/cjs/components/AsideHeader/components/FooterBar/index.d.ts +1 -0
  69. package/build/cjs/components/AsideHeader/components/FooterItem/FooterItem.css +1 -1
  70. package/build/cjs/components/AsideHeader/components/FooterItem/FooterItem.d.ts +2 -0
  71. package/build/cjs/components/AsideHeader/components/FooterItem/FooterItem.js +12 -1
  72. package/build/cjs/components/AsideHeader/components/FooterItem/FooterItem.js.map +1 -1
  73. package/build/cjs/components/AsideHeader/components/FooterItem/FooterItem.module.scss.js +1 -1
  74. package/build/cjs/components/AsideHeader/components/Header.js +9 -6
  75. package/build/cjs/components/AsideHeader/components/Header.js.map +1 -1
  76. package/build/cjs/components/AsideHeader/components/PageLayout/AsideFallback.css +2 -0
  77. package/build/cjs/components/AsideHeader/components/PageLayout/AsideFallback.js +4 -3
  78. package/build/cjs/components/AsideHeader/components/PageLayout/AsideFallback.js.map +1 -1
  79. package/build/cjs/components/AsideHeader/components/PageLayout/PageLayout.css +2 -0
  80. package/build/cjs/components/AsideHeader/components/PageLayout/PageLayout.d.ts +4 -2
  81. package/build/cjs/components/AsideHeader/components/PageLayout/PageLayout.js +12 -9
  82. package/build/cjs/components/AsideHeader/components/PageLayout/PageLayout.js.map +1 -1
  83. package/build/cjs/components/AsideHeader/components/PageLayout/PageLayoutAside.css +2 -0
  84. package/build/cjs/components/AsideHeader/components/PageLayout/PageLayoutAside.d.ts +1 -1
  85. package/build/cjs/components/AsideHeader/components/PageLayout/PageLayoutAside.js +5 -3
  86. package/build/cjs/components/AsideHeader/components/PageLayout/PageLayoutAside.js.map +1 -1
  87. package/build/cjs/components/AsideHeader/components/Panels.js +6 -3
  88. package/build/cjs/components/AsideHeader/components/Panels.js.map +1 -1
  89. package/build/cjs/components/AsideHeader/hooks/useIsExpanded.d.ts +3 -1
  90. package/build/cjs/components/AsideHeader/hooks/useIsExpanded.js +34 -11
  91. package/build/cjs/components/AsideHeader/hooks/useIsExpanded.js.map +1 -1
  92. package/build/cjs/components/AsideHeader/i18n/en.json.js +4 -1
  93. package/build/cjs/components/AsideHeader/i18n/en.json.js.map +1 -1
  94. package/build/cjs/components/AsideHeader/i18n/index.d.ts +4 -4
  95. package/build/cjs/components/AsideHeader/i18n/ru.json.js +4 -1
  96. package/build/cjs/components/AsideHeader/i18n/ru.json.js.map +1 -1
  97. package/build/cjs/components/AsideHeader/index.d.ts +3 -2
  98. package/build/cjs/components/AsideHeader/types.d.ts +30 -14
  99. package/build/cjs/components/AsideHeader/types.js.map +1 -1
  100. package/build/cjs/components/AsideHeader/useAsideHeaderInnerContextValue.d.ts +3 -2
  101. package/build/cjs/components/AsideHeader/useAsideHeaderInnerContextValue.js +31 -9
  102. package/build/cjs/components/AsideHeader/useAsideHeaderInnerContextValue.js.map +1 -1
  103. package/build/cjs/components/AsideHeader/utils/getGroupHeight.d.ts +1 -1
  104. package/build/cjs/components/AsideHeader/utils/getGroupHeight.js +5 -5
  105. package/build/cjs/components/AsideHeader/utils/getGroupHeight.js.map +1 -1
  106. package/build/cjs/components/Footer/desktop/Footer.js +1 -1
  107. package/build/cjs/components/Footer/desktop/Footer.js.map +1 -1
  108. package/build/cjs/components/Footer/mobile/Footer.js +1 -1
  109. package/build/cjs/components/Footer/mobile/Footer.js.map +1 -1
  110. package/build/cjs/components/HotkeysPanel/HotkeysPanel.d.ts +6 -4
  111. package/build/cjs/components/HotkeysPanel/HotkeysPanel.js +4 -7
  112. package/build/cjs/components/HotkeysPanel/HotkeysPanel.js.map +1 -1
  113. package/build/cjs/components/Logo/Logo.css +1 -1
  114. package/build/cjs/components/Logo/Logo.d.ts +7 -3
  115. package/build/cjs/components/Logo/Logo.js +9 -6
  116. package/build/cjs/components/Logo/Logo.js.map +1 -1
  117. package/build/cjs/components/Logo/Logo.module.scss.js +1 -1
  118. package/build/cjs/components/MobileHeader/MobileHeader.d.ts +4 -8
  119. package/build/cjs/components/MobileHeader/MobileHeader.js +24 -20
  120. package/build/cjs/components/MobileHeader/MobileHeader.js.map +1 -1
  121. package/build/cjs/components/MobileHeader/OverlapPanel/OverlapPanel.d.ts +2 -2
  122. package/build/cjs/components/MobileHeader/OverlapPanel/OverlapPanel.js +2 -2
  123. package/build/cjs/components/MobileHeader/OverlapPanel/OverlapPanel.js.map +1 -1
  124. package/build/cjs/components/MobileLogo/MobileLogo.d.ts +1 -1
  125. package/build/cjs/components/MobileLogo/MobileLogo.js +2 -2
  126. package/build/cjs/components/MobileLogo/MobileLogo.js.map +1 -1
  127. package/build/cjs/components/Settings/Settings.css +1 -1
  128. package/build/cjs/components/Settings/SettingsMenu/SettingsMenu.css +1 -1
  129. package/build/cjs/components/Settings/SettingsMenu/SettingsMenu.js +5 -1
  130. package/build/cjs/components/Settings/SettingsMenu/SettingsMenu.js.map +1 -1
  131. package/build/cjs/components/Settings/SettingsMenu/SettingsMenu.module.scss.js +1 -1
  132. package/build/cjs/components/constants.d.ts +6 -2
  133. package/build/cjs/components/constants.js +11 -3
  134. package/build/cjs/components/constants.js.map +1 -1
  135. package/build/cjs/components/types.d.ts +11 -6
  136. package/build/cjs/components/utils/getCollapsedWidth.d.ts +1 -0
  137. package/build/cjs/components/utils/getCollapsedWidth.js +10 -0
  138. package/build/cjs/components/utils/getCollapsedWidth.js.map +1 -0
  139. package/build/cjs/index.js +4 -0
  140. package/build/cjs/index.js.map +1 -1
  141. package/build/esm/assets/icons/divider-collapsed-compact.svg.js +18 -0
  142. package/build/esm/assets/icons/divider-collapsed-compact.svg.js.map +1 -0
  143. package/build/esm/components/AsideHeader/AsideHeader.css +1 -1
  144. package/build/esm/components/AsideHeader/AsideHeader.js +3 -3
  145. package/build/esm/components/AsideHeader/AsideHeader.js.map +1 -1
  146. package/build/esm/components/AsideHeader/AsideHeader.module.scss.js +1 -1
  147. package/build/esm/components/AsideHeader/AsideHeaderContext.d.ts +17 -4
  148. package/build/esm/components/AsideHeader/AsideHeaderContext.js +10 -9
  149. package/build/esm/components/AsideHeader/AsideHeaderContext.js.map +1 -1
  150. package/build/esm/components/AsideHeader/FooterLayoutContext.d.ts +7 -0
  151. package/build/esm/components/AsideHeader/FooterLayoutContext.js +7 -0
  152. package/build/esm/components/AsideHeader/FooterLayoutContext.js.map +1 -0
  153. package/build/esm/components/AsideHeader/components/AllPagesPanel/AllPagesPanel.css +1 -1
  154. package/build/esm/components/AsideHeader/components/AllPagesPanel/AllPagesPanel.js +24 -16
  155. package/build/esm/components/AsideHeader/components/AllPagesPanel/AllPagesPanel.js.map +1 -1
  156. package/build/esm/components/AsideHeader/components/AllPagesPanel/AllPagesPanel.module.scss.js +1 -1
  157. package/build/esm/components/AsideHeader/components/AllPagesPanel/useGroupedMenuItems.js +10 -5
  158. package/build/esm/components/AsideHeader/components/AllPagesPanel/useGroupedMenuItems.js.map +1 -1
  159. package/build/esm/components/AsideHeader/components/AllPagesPanel/utils/getExpandedIndexForSortableIndex.d.ts +9 -0
  160. package/build/esm/components/AsideHeader/components/AllPagesPanel/utils/getExpandedIndexForSortableIndex.js +25 -0
  161. package/build/esm/components/AsideHeader/components/AllPagesPanel/utils/getExpandedIndexForSortableIndex.js.map +1 -0
  162. package/build/esm/components/AsideHeader/components/AllPagesPanel/utils/getRealIndexInGroup.d.ts +71 -0
  163. package/build/esm/components/AsideHeader/components/AllPagesPanel/utils/getRealIndexInGroup.js +117 -1
  164. package/build/esm/components/AsideHeader/components/AllPagesPanel/utils/getRealIndexInGroup.js.map +1 -1
  165. package/build/esm/components/AsideHeader/components/AllPagesPanel/utils/sortMenuItemsWithDividers.d.ts +3 -1
  166. package/build/esm/components/AsideHeader/components/AllPagesPanel/utils/sortMenuItemsWithDividers.js +23 -22
  167. package/build/esm/components/AsideHeader/components/AllPagesPanel/utils/sortMenuItemsWithDividers.js.map +1 -1
  168. package/build/esm/components/AsideHeader/components/CollapseButton/CollapseButton.css +1 -1
  169. package/build/esm/components/AsideHeader/components/CollapseButton/CollapseButton.d.ts +2 -1
  170. package/build/esm/components/AsideHeader/components/CollapseButton/CollapseButton.js +13 -13
  171. package/build/esm/components/AsideHeader/components/CollapseButton/CollapseButton.js.map +1 -1
  172. package/build/esm/components/AsideHeader/components/CollapseButton/CollapseButton.module.scss.js +1 -1
  173. package/build/esm/components/AsideHeader/components/CompositeBar/CompositeBar.css +1 -1
  174. package/build/esm/components/AsideHeader/components/CompositeBar/CompositeBar.d.ts +11 -5
  175. package/build/esm/components/AsideHeader/components/CompositeBar/CompositeBar.js +62 -164
  176. package/build/esm/components/AsideHeader/components/CompositeBar/CompositeBar.js.map +1 -1
  177. package/build/esm/components/AsideHeader/components/CompositeBar/CompositeBar.module.scss.js +1 -1
  178. package/build/esm/components/AsideHeader/components/CompositeBar/HighlightedItem/HighlightedItem.css +1 -1
  179. package/build/esm/components/AsideHeader/components/CompositeBar/Item/Item.css +25 -1
  180. package/build/esm/components/AsideHeader/components/CompositeBar/Item/Item.d.ts +7 -2
  181. package/build/esm/components/AsideHeader/components/CompositeBar/Item/Item.js +26 -8
  182. package/build/esm/components/AsideHeader/components/CompositeBar/Item/Item.js.map +1 -1
  183. package/build/esm/components/AsideHeader/components/CompositeBar/Item/Item.module.scss.js +1 -1
  184. package/build/esm/components/AsideHeader/components/CompositeBar/ScrollableWithScrollbar/ScrollableWithScrollbar.css +1 -0
  185. package/build/esm/components/AsideHeader/components/CompositeBar/ScrollableWithScrollbar/ScrollableWithScrollbar.d.ts +8 -0
  186. package/build/esm/components/AsideHeader/components/CompositeBar/ScrollableWithScrollbar/ScrollableWithScrollbar.js +25 -0
  187. package/build/esm/components/AsideHeader/components/CompositeBar/ScrollableWithScrollbar/ScrollableWithScrollbar.js.map +1 -0
  188. package/build/esm/components/AsideHeader/components/CompositeBar/ScrollableWithScrollbar/ScrollableWithScrollbar.module.scss.js +4 -0
  189. package/build/esm/components/AsideHeader/components/CompositeBar/ScrollableWithScrollbar/ScrollableWithScrollbar.module.scss.js.map +1 -0
  190. package/build/esm/components/AsideHeader/components/CompositeBar/ScrollableWithScrollbar/index.d.ts +1 -0
  191. package/build/esm/components/AsideHeader/components/CompositeBar/ScrollableWithScrollbar/useScrollbar.d.ts +21 -0
  192. package/build/esm/components/AsideHeader/components/CompositeBar/ScrollableWithScrollbar/useScrollbar.js +144 -0
  193. package/build/esm/components/AsideHeader/components/CompositeBar/ScrollableWithScrollbar/useScrollbar.js.map +1 -0
  194. package/build/esm/components/AsideHeader/components/CompositeBar/utils.d.ts +4 -2
  195. package/build/esm/components/AsideHeader/components/CompositeBar/utils.js +57 -9
  196. package/build/esm/components/AsideHeader/components/CompositeBar/utils.js.map +1 -1
  197. package/build/esm/components/AsideHeader/components/FirstPanel.js +30 -10
  198. package/build/esm/components/AsideHeader/components/FirstPanel.js.map +1 -1
  199. package/build/esm/components/AsideHeader/components/FooterBar/FooterBar.css +1 -0
  200. package/build/esm/components/AsideHeader/components/FooterBar/FooterBar.d.ts +19 -0
  201. package/build/esm/components/AsideHeader/components/FooterBar/FooterBar.js +93 -0
  202. package/build/esm/components/AsideHeader/components/FooterBar/FooterBar.js.map +1 -0
  203. package/build/esm/components/AsideHeader/components/FooterBar/FooterBar.module.scss.js +4 -0
  204. package/build/esm/components/AsideHeader/components/FooterBar/FooterBar.module.scss.js.map +1 -0
  205. package/build/esm/components/AsideHeader/components/FooterBar/constants.d.ts +1 -0
  206. package/build/esm/components/AsideHeader/components/FooterBar/constants.js +4 -0
  207. package/build/esm/components/AsideHeader/components/FooterBar/constants.js.map +1 -0
  208. package/build/esm/components/AsideHeader/components/FooterBar/index.d.ts +1 -0
  209. package/build/esm/components/AsideHeader/components/FooterItem/FooterItem.css +1 -1
  210. package/build/esm/components/AsideHeader/components/FooterItem/FooterItem.d.ts +2 -0
  211. package/build/esm/components/AsideHeader/components/FooterItem/FooterItem.js +12 -1
  212. package/build/esm/components/AsideHeader/components/FooterItem/FooterItem.js.map +1 -1
  213. package/build/esm/components/AsideHeader/components/FooterItem/FooterItem.module.scss.js +1 -1
  214. package/build/esm/components/AsideHeader/components/Header.js +10 -7
  215. package/build/esm/components/AsideHeader/components/Header.js.map +1 -1
  216. package/build/esm/components/AsideHeader/components/PageLayout/AsideFallback.css +2 -0
  217. package/build/esm/components/AsideHeader/components/PageLayout/AsideFallback.js +5 -4
  218. package/build/esm/components/AsideHeader/components/PageLayout/AsideFallback.js.map +1 -1
  219. package/build/esm/components/AsideHeader/components/PageLayout/PageLayout.css +2 -0
  220. package/build/esm/components/AsideHeader/components/PageLayout/PageLayout.d.ts +4 -2
  221. package/build/esm/components/AsideHeader/components/PageLayout/PageLayout.js +13 -10
  222. package/build/esm/components/AsideHeader/components/PageLayout/PageLayout.js.map +1 -1
  223. package/build/esm/components/AsideHeader/components/PageLayout/PageLayoutAside.css +2 -0
  224. package/build/esm/components/AsideHeader/components/PageLayout/PageLayoutAside.d.ts +1 -1
  225. package/build/esm/components/AsideHeader/components/PageLayout/PageLayoutAside.js +5 -3
  226. package/build/esm/components/AsideHeader/components/PageLayout/PageLayoutAside.js.map +1 -1
  227. package/build/esm/components/AsideHeader/components/Panels.js +6 -3
  228. package/build/esm/components/AsideHeader/components/Panels.js.map +1 -1
  229. package/build/esm/components/AsideHeader/hooks/useIsExpanded.d.ts +3 -1
  230. package/build/esm/components/AsideHeader/hooks/useIsExpanded.js +35 -12
  231. package/build/esm/components/AsideHeader/hooks/useIsExpanded.js.map +1 -1
  232. package/build/esm/components/AsideHeader/i18n/en.json.js +4 -2
  233. package/build/esm/components/AsideHeader/i18n/en.json.js.map +1 -1
  234. package/build/esm/components/AsideHeader/i18n/index.d.ts +4 -4
  235. package/build/esm/components/AsideHeader/i18n/ru.json.js +4 -2
  236. package/build/esm/components/AsideHeader/i18n/ru.json.js.map +1 -1
  237. package/build/esm/components/AsideHeader/index.d.ts +3 -2
  238. package/build/esm/components/AsideHeader/types.d.ts +30 -14
  239. package/build/esm/components/AsideHeader/types.js.map +1 -1
  240. package/build/esm/components/AsideHeader/useAsideHeaderInnerContextValue.d.ts +3 -2
  241. package/build/esm/components/AsideHeader/useAsideHeaderInnerContextValue.js +31 -9
  242. package/build/esm/components/AsideHeader/useAsideHeaderInnerContextValue.js.map +1 -1
  243. package/build/esm/components/AsideHeader/utils/getGroupHeight.d.ts +1 -1
  244. package/build/esm/components/AsideHeader/utils/getGroupHeight.js +6 -6
  245. package/build/esm/components/AsideHeader/utils/getGroupHeight.js.map +1 -1
  246. package/build/esm/components/Footer/desktop/Footer.js +1 -1
  247. package/build/esm/components/Footer/desktop/Footer.js.map +1 -1
  248. package/build/esm/components/Footer/mobile/Footer.js +1 -1
  249. package/build/esm/components/Footer/mobile/Footer.js.map +1 -1
  250. package/build/esm/components/HotkeysPanel/HotkeysPanel.d.ts +6 -4
  251. package/build/esm/components/HotkeysPanel/HotkeysPanel.js +4 -7
  252. package/build/esm/components/HotkeysPanel/HotkeysPanel.js.map +1 -1
  253. package/build/esm/components/Logo/Logo.css +1 -1
  254. package/build/esm/components/Logo/Logo.d.ts +7 -3
  255. package/build/esm/components/Logo/Logo.js +9 -6
  256. package/build/esm/components/Logo/Logo.js.map +1 -1
  257. package/build/esm/components/Logo/Logo.module.scss.js +1 -1
  258. package/build/esm/components/MobileHeader/MobileHeader.d.ts +4 -8
  259. package/build/esm/components/MobileHeader/MobileHeader.js +25 -21
  260. package/build/esm/components/MobileHeader/MobileHeader.js.map +1 -1
  261. package/build/esm/components/MobileHeader/OverlapPanel/OverlapPanel.d.ts +2 -2
  262. package/build/esm/components/MobileHeader/OverlapPanel/OverlapPanel.js +2 -2
  263. package/build/esm/components/MobileHeader/OverlapPanel/OverlapPanel.js.map +1 -1
  264. package/build/esm/components/MobileLogo/MobileLogo.d.ts +1 -1
  265. package/build/esm/components/MobileLogo/MobileLogo.js +2 -2
  266. package/build/esm/components/MobileLogo/MobileLogo.js.map +1 -1
  267. package/build/esm/components/Settings/Settings.css +1 -1
  268. package/build/esm/components/Settings/SettingsMenu/SettingsMenu.css +1 -1
  269. package/build/esm/components/Settings/SettingsMenu/SettingsMenu.js +5 -1
  270. package/build/esm/components/Settings/SettingsMenu/SettingsMenu.js.map +1 -1
  271. package/build/esm/components/Settings/SettingsMenu/SettingsMenu.module.scss.js +1 -1
  272. package/build/esm/components/constants.d.ts +6 -2
  273. package/build/esm/components/constants.js +7 -3
  274. package/build/esm/components/constants.js.map +1 -1
  275. package/build/esm/components/types.d.ts +11 -6
  276. package/build/esm/components/utils/getCollapsedWidth.d.ts +1 -0
  277. package/build/esm/components/utils/getCollapsedWidth.js +8 -0
  278. package/build/esm/components/utils/getCollapsedWidth.js.map +1 -0
  279. package/build/esm/index.js +2 -1
  280. package/build/esm/index.js.map +1 -1
  281. package/codemods/bin/cli.js +19 -6
  282. package/codemods/transforms/compactToIsExpanded.ts +345 -0
  283. package/codemods/transforms/compactToPinned.ts +135 -0
  284. package/codemods/transforms/v5.ts +36 -0
  285. package/package.json +2 -2
  286. package/build/cjs/components/ActionBar/__stories__/ActionBar.stories.d.ts +0 -20
  287. package/build/cjs/components/ActionBar/__stories__/ActionBarShowcase.d.ts +0 -2
  288. package/build/cjs/components/ActionBar/__stories__/ActionBarSingleSection.d.ts +0 -2
  289. package/build/cjs/components/ActionBar/__stories__/ActionBarStretchGroupShowcase.d.ts +0 -2
  290. package/build/cjs/components/ActionBar/__tests__/helpersPlaywright.d.ts +0 -5
  291. package/build/cjs/components/AsideHeader/__stories__/AsideHeader.stories.d.ts +0 -23
  292. package/build/cjs/components/AsideHeader/__stories__/AsideHeaderShowcase.d.ts +0 -13
  293. package/build/cjs/components/AsideHeader/__stories__/getAsideHeaderWrapper.d.ts +0 -3
  294. package/build/cjs/components/AsideHeader/__stories__/moc.d.ts +0 -17
  295. package/build/cjs/components/AsideHeader/__tests__/helpersPlaywright.d.ts +0 -2
  296. package/build/cjs/components/AsideHeader/components/AllPagesPanel/utils/sortMenuItems.d.ts +0 -2
  297. package/build/cjs/components/AsideHeader/components/AllPagesPanel/utils/sortMenuItems.js +0 -16
  298. package/build/cjs/components/AsideHeader/components/AllPagesPanel/utils/sortMenuItems.js.map +0 -1
  299. package/build/cjs/components/AsideHeader/components/CompositeBar/MultipleTooltip/MultipleTooltip.css +0 -9
  300. package/build/cjs/components/AsideHeader/components/CompositeBar/MultipleTooltip/MultipleTooltip.d.ts +0 -9
  301. package/build/cjs/components/AsideHeader/components/CompositeBar/MultipleTooltip/MultipleTooltip.js +0 -34
  302. package/build/cjs/components/AsideHeader/components/CompositeBar/MultipleTooltip/MultipleTooltip.js.map +0 -1
  303. package/build/cjs/components/AsideHeader/components/CompositeBar/MultipleTooltip/MultipleTooltip.module.scss.js +0 -8
  304. package/build/cjs/components/AsideHeader/components/CompositeBar/MultipleTooltip/MultipleTooltip.module.scss.js.map +0 -1
  305. package/build/cjs/components/AsideHeader/components/CompositeBar/MultipleTooltip/MultipleTooltipContext.d.ts +0 -24
  306. package/build/cjs/components/AsideHeader/components/CompositeBar/MultipleTooltip/MultipleTooltipContext.js +0 -29
  307. package/build/cjs/components/AsideHeader/components/CompositeBar/MultipleTooltip/MultipleTooltipContext.js.map +0 -1
  308. package/build/cjs/components/AsideHeader/components/CompositeBar/MultipleTooltip/index.d.ts +0 -2
  309. package/build/cjs/components/AsideHeader/components/FooterItem/__stories__/FooterItem.stories.d.ts +0 -6
  310. package/build/cjs/components/AsideHeader/components/FooterItem/__tests__/helpersPlaywright.d.ts +0 -2
  311. package/build/cjs/components/Footer/desktop/__stories__/Footer.stories.d.ts +0 -8
  312. package/build/cjs/components/Footer/desktop/__stories__/FooterShowcase.d.ts +0 -4
  313. package/build/cjs/components/Footer/desktop/__stories__/moc.d.ts +0 -3
  314. package/build/cjs/components/Footer/desktop/__tests__/helpersPlaywright.d.ts +0 -2
  315. package/build/cjs/components/Footer/mobile/__stories__/MobileFooter.stories.d.ts +0 -8
  316. package/build/cjs/components/Footer/mobile/__stories__/MobileFooterShowcase.d.ts +0 -4
  317. package/build/cjs/components/Footer/mobile/__stories__/moc.d.ts +0 -3
  318. package/build/cjs/components/Footer/mobile/__tests__/helpersPlaywright.d.ts +0 -2
  319. package/build/cjs/components/HotkeysPanel/__stories__/HotkeysPanel.stories.d.ts +0 -5
  320. package/build/cjs/components/HotkeysPanel/__stories__/HotkeysPanelShowcase.d.ts +0 -6
  321. package/build/cjs/components/HotkeysPanel/__stories__/moc.d.ts +0 -2
  322. package/build/cjs/components/HotkeysPanel/__tests__/helpersPlaywright.d.ts +0 -2
  323. package/build/cjs/components/Logo/__stories__/Logo.stories.d.ts +0 -7
  324. package/build/cjs/components/Logo/__tests__/helpersPlaywright.d.ts +0 -2
  325. package/build/cjs/components/MobileHeader/BurgerMenu/__stories__/BurgerMenu.stories.d.ts +0 -6
  326. package/build/cjs/components/MobileHeader/BurgerMenu/__stories__/moc.d.ts +0 -2
  327. package/build/cjs/components/MobileHeader/BurgerMenu/__tests__/helpersPlaywright.d.ts +0 -2
  328. package/build/cjs/components/MobileHeader/OverlapPanel/__stories__/OverlapPanel.stories.d.ts +0 -6
  329. package/build/cjs/components/MobileHeader/OverlapPanel/__stories__/moc.d.ts +0 -2
  330. package/build/cjs/components/MobileHeader/OverlapPanel/__tests__/helpersPlaywright.d.ts +0 -2
  331. package/build/cjs/components/MobileHeader/__stories__/MobileHeader.stories.d.ts +0 -4
  332. package/build/cjs/components/MobileHeader/__stories__/MobileHeaderShowcase.d.ts +0 -3
  333. package/build/cjs/components/MobileHeader/__stories__/moc.d.ts +0 -1
  334. package/build/cjs/components/MobileHeader/__tests__/helpersPlaywright.d.ts +0 -2
  335. package/build/cjs/components/MobileLogo/__stories__/MobileLogo.stories.d.ts +0 -6
  336. package/build/cjs/components/MobileLogo/__tests__/helpersPlaywright.d.ts +0 -2
  337. package/build/cjs/components/Settings/__stories__/Settings.stories.d.ts +0 -5
  338. package/build/cjs/components/Settings/__stories__/SettingsDemo.d.ts +0 -14
  339. package/build/cjs/components/Settings/__stories__/SettingsMobileDemo.d.ts +0 -8
  340. package/build/cjs/components/Settings/__tests__/helpersPlaywright.d.ts +0 -2
  341. package/build/esm/components/ActionBar/__stories__/ActionBar.stories.d.ts +0 -20
  342. package/build/esm/components/ActionBar/__stories__/ActionBarShowcase.d.ts +0 -2
  343. package/build/esm/components/ActionBar/__stories__/ActionBarSingleSection.d.ts +0 -2
  344. package/build/esm/components/ActionBar/__stories__/ActionBarStretchGroupShowcase.d.ts +0 -2
  345. package/build/esm/components/ActionBar/__tests__/helpersPlaywright.d.ts +0 -5
  346. package/build/esm/components/AsideHeader/__stories__/AsideHeader.stories.d.ts +0 -23
  347. package/build/esm/components/AsideHeader/__stories__/AsideHeaderShowcase.d.ts +0 -13
  348. package/build/esm/components/AsideHeader/__stories__/getAsideHeaderWrapper.d.ts +0 -3
  349. package/build/esm/components/AsideHeader/__stories__/moc.d.ts +0 -17
  350. package/build/esm/components/AsideHeader/__tests__/helpersPlaywright.d.ts +0 -2
  351. package/build/esm/components/AsideHeader/components/AllPagesPanel/utils/sortMenuItems.d.ts +0 -2
  352. package/build/esm/components/AsideHeader/components/AllPagesPanel/utils/sortMenuItems.js +0 -14
  353. package/build/esm/components/AsideHeader/components/AllPagesPanel/utils/sortMenuItems.js.map +0 -1
  354. package/build/esm/components/AsideHeader/components/CompositeBar/MultipleTooltip/MultipleTooltip.css +0 -9
  355. package/build/esm/components/AsideHeader/components/CompositeBar/MultipleTooltip/MultipleTooltip.d.ts +0 -9
  356. package/build/esm/components/AsideHeader/components/CompositeBar/MultipleTooltip/MultipleTooltip.js +0 -32
  357. package/build/esm/components/AsideHeader/components/CompositeBar/MultipleTooltip/MultipleTooltip.js.map +0 -1
  358. package/build/esm/components/AsideHeader/components/CompositeBar/MultipleTooltip/MultipleTooltip.module.scss.js +0 -4
  359. package/build/esm/components/AsideHeader/components/CompositeBar/MultipleTooltip/MultipleTooltip.module.scss.js.map +0 -1
  360. package/build/esm/components/AsideHeader/components/CompositeBar/MultipleTooltip/MultipleTooltipContext.d.ts +0 -24
  361. package/build/esm/components/AsideHeader/components/CompositeBar/MultipleTooltip/MultipleTooltipContext.js +0 -26
  362. package/build/esm/components/AsideHeader/components/CompositeBar/MultipleTooltip/MultipleTooltipContext.js.map +0 -1
  363. package/build/esm/components/AsideHeader/components/CompositeBar/MultipleTooltip/index.d.ts +0 -2
  364. package/build/esm/components/AsideHeader/components/FooterItem/__stories__/FooterItem.stories.d.ts +0 -6
  365. package/build/esm/components/AsideHeader/components/FooterItem/__tests__/helpersPlaywright.d.ts +0 -2
  366. package/build/esm/components/Footer/desktop/__stories__/Footer.stories.d.ts +0 -8
  367. package/build/esm/components/Footer/desktop/__stories__/FooterShowcase.d.ts +0 -4
  368. package/build/esm/components/Footer/desktop/__stories__/moc.d.ts +0 -3
  369. package/build/esm/components/Footer/desktop/__tests__/helpersPlaywright.d.ts +0 -2
  370. package/build/esm/components/Footer/mobile/__stories__/MobileFooter.stories.d.ts +0 -8
  371. package/build/esm/components/Footer/mobile/__stories__/MobileFooterShowcase.d.ts +0 -4
  372. package/build/esm/components/Footer/mobile/__stories__/moc.d.ts +0 -3
  373. package/build/esm/components/Footer/mobile/__tests__/helpersPlaywright.d.ts +0 -2
  374. package/build/esm/components/HotkeysPanel/__stories__/HotkeysPanel.stories.d.ts +0 -5
  375. package/build/esm/components/HotkeysPanel/__stories__/HotkeysPanelShowcase.d.ts +0 -6
  376. package/build/esm/components/HotkeysPanel/__stories__/moc.d.ts +0 -2
  377. package/build/esm/components/HotkeysPanel/__tests__/helpersPlaywright.d.ts +0 -2
  378. package/build/esm/components/Logo/__stories__/Logo.stories.d.ts +0 -7
  379. package/build/esm/components/Logo/__tests__/helpersPlaywright.d.ts +0 -2
  380. package/build/esm/components/MobileHeader/BurgerMenu/__stories__/BurgerMenu.stories.d.ts +0 -6
  381. package/build/esm/components/MobileHeader/BurgerMenu/__stories__/moc.d.ts +0 -2
  382. package/build/esm/components/MobileHeader/BurgerMenu/__tests__/helpersPlaywright.d.ts +0 -2
  383. package/build/esm/components/MobileHeader/OverlapPanel/__stories__/OverlapPanel.stories.d.ts +0 -6
  384. package/build/esm/components/MobileHeader/OverlapPanel/__stories__/moc.d.ts +0 -2
  385. package/build/esm/components/MobileHeader/OverlapPanel/__tests__/helpersPlaywright.d.ts +0 -2
  386. package/build/esm/components/MobileHeader/__stories__/MobileHeader.stories.d.ts +0 -4
  387. package/build/esm/components/MobileHeader/__stories__/MobileHeaderShowcase.d.ts +0 -3
  388. package/build/esm/components/MobileHeader/__stories__/moc.d.ts +0 -1
  389. package/build/esm/components/MobileHeader/__tests__/helpersPlaywright.d.ts +0 -2
  390. package/build/esm/components/MobileLogo/__stories__/MobileLogo.stories.d.ts +0 -6
  391. package/build/esm/components/MobileLogo/__tests__/helpersPlaywright.d.ts +0 -2
  392. package/build/esm/components/Settings/__stories__/Settings.stories.d.ts +0 -5
  393. package/build/esm/components/Settings/__stories__/SettingsDemo.d.ts +0 -14
  394. package/build/esm/components/Settings/__stories__/SettingsMobileDemo.d.ts +0 -8
  395. package/build/esm/components/Settings/__tests__/helpersPlaywright.d.ts +0 -2
@@ -0,0 +1,7 @@
1
+ import React from 'react';
2
+ export interface FooterLayoutContextValue {
3
+ layout: 'horizontal' | 'vertical';
4
+ isExpanded: boolean;
5
+ }
6
+ export declare const FooterLayoutContext: React.Context<FooterLayoutContextValue | undefined>;
7
+ export declare const useFooterLayout: () => FooterLayoutContextValue | undefined;
@@ -0,0 +1,7 @@
1
+ import React__default from 'react';
2
+
3
+ const FooterLayoutContext = React__default.createContext(undefined);
4
+ const useFooterLayout = () => React__default.useContext(FooterLayoutContext);
5
+
6
+ export { FooterLayoutContext, useFooterLayout };
7
+ //# sourceMappingURL=FooterLayoutContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FooterLayoutContext.js","sources":["../../../../../src/components/AsideHeader/FooterLayoutContext.ts"],"sourcesContent":["import React from 'react';\n\nexport interface FooterLayoutContextValue {\n layout: 'horizontal' | 'vertical';\n isExpanded: boolean;\n}\n\nexport const FooterLayoutContext = React.createContext<FooterLayoutContextValue | undefined>(\n undefined,\n);\n\nexport const useFooterLayout = (): FooterLayoutContextValue | undefined =>\n React.useContext(FooterLayoutContext);\n"],"names":["React"],"mappings":";;AAOa,MAAA,mBAAmB,GAAGA,cAAK,CAAC,aAAa,CAClD,SAAS;AAGN,MAAM,eAAe,GAAG,MAC3BA,cAAK,CAAC,UAAU,CAAC,mBAAmB;;;;"}
@@ -1 +1 @@
1
- .AllPagesPanel-module__gn-all-pages-panel___RN6Kk{--gn-aside-header-item-expanded-radius:6px;box-sizing:border-box;height:100%;min-width:300px;padding:var(--g-spacing-4) var(--g-spacing-6)}.AllPagesPanel-module__gn-all-pages-panel__content___XgBXG{flex:1;overflow:auto}.AllPagesPanel-module__gn-all-pages-panel__discoverable-feature-wrapper___fwkXa{display:flex}.AllPagesPanel-module__gn-all-pages-panel__menu-group___sLa1D{margin-inline:10px;width:100%}.AllPagesPanel-module__gn-all-pages-panel__menu-group___sLa1D:not(:last-child){border-bottom:1px solid var(--g-color-line-generic);padding-bottom:var(--g-spacing-2)}
1
+ .AllPagesPanel-module__gn-all-pages-panel___RN6Kk{--gn-aside-header-item-expanded-radius:6px;--_--item-height:36px;box-sizing:border-box;height:100%;min-width:300px;padding:var(--g-spacing-4) var(--g-spacing-6)}.AllPagesPanel-module__gn-all-pages-panel__content___XgBXG{flex:1;overflow:auto}
@@ -9,9 +9,9 @@ import { ALL_PAGES_ID } from './constants.js';
9
9
  import i18n from './i18n/index.js';
10
10
  import { useGroupedMenuItems } from './useGroupedMenuItems.js';
11
11
  import { buildExpandedFromFlatList } from './utils/buildExpandedFromFlatList.js';
12
+ import { getExpandedIndexForSortableIndex } from './utils/getExpandedIndexForSortableIndex.js';
12
13
  import { getIsMenuItem } from './utils/getIsMenuItem.js';
13
- import { getRealIndexInGroup } from './utils/getRealIndexInGroup.js';
14
- import { sortMenuItems } from './utils/sortMenuItems.js';
14
+ import { applySecondLevelSort } from './utils/getRealIndexInGroup.js';
15
15
  import { sortMenuItemsWithDividers } from './utils/sortMenuItemsWithDividers.js';
16
16
  import styles from './AllPagesPanel.module.scss.js';
17
17
 
@@ -47,10 +47,10 @@ const AllPagesPanel = (props) => {
47
47
  (_a = editMenuProps === null || editMenuProps === undefined ? undefined : editMenuProps.onOpenEditMode) === null || _a === undefined ? undefined : _a.call(editMenuProps);
48
48
  }
49
49
  }, [isEditMode, onEditModeChanged, editMenuProps]);
50
- const onItemClick = useCallback((item, collapsed, event) => {
50
+ const onItemClick = useCallback((item, collapsed, event, options) => {
51
51
  var _a;
52
52
  // TODO: make event an optional argument
53
- (_a = item.onItemClick) === null || _a === undefined ? undefined : _a.call(item, item, collapsed, event);
53
+ (_a = item.onItemClick) === null || _a === undefined ? undefined : _a.call(item, item, collapsed, event, options);
54
54
  }, []);
55
55
  const onResetToDefaultClick = useCallback(() => {
56
56
  var _a;
@@ -102,30 +102,38 @@ const AllPagesPanel = (props) => {
102
102
  }));
103
103
  }, [onMenuItemsChanged, editMenuProps]);
104
104
  const onFirstLevelSortEnd = useCallback(({ oldIndex, newIndex }) => {
105
+ var _a;
105
106
  if (!onMenuItemsChanged) {
106
107
  return;
107
108
  }
108
109
  const currentFlatList = menuItemsRef.current || [];
109
110
  const sortedResult = sortMenuItemsWithDividers(oldIndex, newIndex, currentFlatList);
110
- // convert to expanded list and pass to onMenuItemsChanged
111
+ const expandedItems = buildExpandedFromFlatList(currentFlatList);
111
112
  const updatedItems = buildExpandedFromFlatList(sortedResult);
112
- {
113
- onMenuItemsChanged === null || onMenuItemsChanged === undefined ? undefined : onMenuItemsChanged(updatedItems);
113
+ const realOldIndex = getExpandedIndexForSortableIndex(oldIndex, currentFlatList);
114
+ const realNewIndex = getExpandedIndexForSortableIndex(newIndex, sortedResult);
115
+ const changedItem = expandedItems[realOldIndex];
116
+ onMenuItemsChanged === null || onMenuItemsChanged === undefined ? undefined : onMenuItemsChanged(updatedItems);
117
+ if (changedItem && getIsMenuItem(changedItem)) {
118
+ (_a = editMenuProps === null || editMenuProps === undefined ? undefined : editMenuProps.onChangeItemsOrder) === null || _a === undefined ? undefined : _a.call(editMenuProps, changedItem, realOldIndex, realNewIndex);
114
119
  }
115
- }, [onMenuItemsChanged]);
120
+ }, [onMenuItemsChanged, editMenuProps]);
116
121
  const onSecondLevelSortEnd = useCallback((groupIndex) => ({ oldIndex, newIndex }) => {
122
+ var _a;
117
123
  if (!onMenuItemsChanged) {
118
124
  return;
119
125
  }
120
126
  const currentFlatList = menuItemsRef.current || [];
121
- const realOldIndex = getRealIndexInGroup(groupIndex, oldIndex, currentFlatList);
122
- const realNewIndex = getRealIndexInGroup(groupIndex, newIndex, currentFlatList);
123
- const expandedItems = buildExpandedFromFlatList(currentFlatList);
124
- const updatedItems = sortMenuItems(realOldIndex, realNewIndex, expandedItems);
125
- if (updatedItems) {
126
- onMenuItemsChanged === null || onMenuItemsChanged === undefined ? undefined : onMenuItemsChanged(updatedItems);
127
+ const result = applySecondLevelSort(groupIndex, oldIndex, newIndex, currentFlatList);
128
+ if (!result) {
129
+ return;
127
130
  }
128
- }, [onMenuItemsChanged]);
131
+ const { expandedItems, realOldIndex, realNewIndex, changedItem } = result;
132
+ onMenuItemsChanged(expandedItems);
133
+ if (changedItem && getIsMenuItem(changedItem)) {
134
+ (_a = editMenuProps === null || editMenuProps === undefined ? undefined : editMenuProps.onChangeItemsOrder) === null || _a === undefined ? undefined : _a.call(editMenuProps, changedItem, realOldIndex, realNewIndex);
135
+ }
136
+ }, [onMenuItemsChanged, editMenuProps]);
129
137
  const itemsWithLocalCollapsed = useMemo(() => {
130
138
  if (Object.keys(collapsedGroups).length === 0)
131
139
  return items;
@@ -142,7 +150,7 @@ const AllPagesPanel = (props) => {
142
150
  React__default.createElement(Text, { variant: "subheader-2" }, isEditMode ? i18n('all-panel.title.editing') : i18n('all-panel.title.main')),
143
151
  React__default.createElement(Tooltip, { content: i18n('all-panel.title.editing') },
144
152
  React__default.createElement(Button, { selected: isEditMode, view: "flat-secondary", onClick: toggleEditMode }, startEditIcon ? startEditIcon : React__default.createElement(Icon, { data: Gear })))),
145
- React__default.createElement(CompositeBarView, { type: "menu", compact: false, className: b('content'), enableSorting: isEditMode && (editMenuProps === null || editMenuProps === undefined ? undefined : editMenuProps.enableSorting), items: data, onFirstLevelSortEnd: isEditMode && (editMenuProps === null || editMenuProps === undefined ? undefined : editMenuProps.enableSorting) ? onFirstLevelSortEnd : undefined, onSecondLevelSortEnd: isEditMode && (editMenuProps === null || editMenuProps === undefined ? undefined : editMenuProps.enableSorting) ? onSecondLevelSortEnd : undefined, editMode: isEditMode, onItemClick: onItemClick, onToggleGroupCollapsed: handleToggleGroupCollapsed, onToggleMenuGroupVisibility: handleToggleGroupVisibility, onToggleMenuItemVisibility: toggleMenuItemsVisibility }),
153
+ React__default.createElement(CompositeBarView, { type: "menu", isExpanded: true, className: b('content'), enableSorting: isEditMode && (editMenuProps === null || editMenuProps === undefined ? undefined : editMenuProps.enableSorting), items: data, onFirstLevelSortEnd: isEditMode && (editMenuProps === null || editMenuProps === undefined ? undefined : editMenuProps.enableSorting) ? onFirstLevelSortEnd : undefined, onSecondLevelSortEnd: isEditMode && (editMenuProps === null || editMenuProps === undefined ? undefined : editMenuProps.enableSorting) ? onSecondLevelSortEnd : undefined, editMode: isEditMode, onItemClick: onItemClick, onToggleGroupCollapsed: handleToggleGroupCollapsed, onToggleMenuGroupVisibility: handleToggleGroupVisibility, onToggleMenuItemVisibility: toggleMenuItemsVisibility }),
146
154
  isEditMode && (React__default.createElement(Button, { onClick: onResetToDefaultClick }, i18n('all-panel.resetToDefault')))));
147
155
  };
148
156
 
@@ -1 +1 @@
1
- {"version":3,"file":"AllPagesPanel.js","sources":["../../../../../../../src/components/AsideHeader/components/AllPagesPanel/AllPagesPanel.tsx"],"sourcesContent":["import React, {useCallback, useEffect, useMemo, useRef, useState} from 'react';\n\nimport {Gear} from '@gravity-ui/icons';\nimport {Button, Flex, Icon, ListSortParams, Text, Tooltip} from '@gravity-ui/uikit';\n\nimport {createBlock} from '../../../utils/cn';\nimport {useAsideHeaderInnerContext} from '../../AsideHeaderContext';\nimport {AsideHeaderItem, MenuItemsWithGroups} from '../../types';\nimport {CompositeBarView} from '../CompositeBar/CompositeBar';\n\nimport {ALL_PAGES_ID} from './constants';\nimport i18n from './i18n';\nimport {useGroupedMenuItems} from './useGroupedMenuItems';\nimport {buildExpandedFromFlatList} from './utils/buildExpandedFromFlatList';\nimport {getIsMenuItem} from './utils/getIsMenuItem';\nimport {getRealIndexInGroup} from './utils/getRealIndexInGroup';\nimport {sortMenuItems} from './utils/sortMenuItems';\nimport {sortMenuItemsWithDividers} from './utils/sortMenuItemsWithDividers';\n\nimport styles from './AllPagesPanel.module.scss';\n\nconst b = createBlock('all-pages-panel', styles);\n\ninterface AllPagesPanelProps {\n className?: string;\n startEditIcon?: React.ReactNode;\n onEditModeChanged?: (isEditMode: boolean) => void;\n}\n\nexport const AllPagesPanel: React.FC<AllPagesPanelProps> = (props) => {\n const {startEditIcon, onEditModeChanged, className} = props;\n const {\n defaultMenuItems,\n editMenuProps,\n menuItems,\n menuGroups,\n defaultMenuGroups,\n onMenuItemsChanged,\n onMenuGroupsChanged,\n } = useAsideHeaderInnerContext();\n const items = useGroupedMenuItems(menuItems, menuGroups, true);\n\n const menuItemsRef = useRef(items);\n menuItemsRef.current = items;\n\n const menuGroupsRef = useRef(menuGroups);\n menuGroupsRef.current = menuGroups;\n\n const [isEditMode, setIsEditMode] = useState(false);\n\n const [collapsedGroups, setCollapsedGroups] = useState<Record<string, boolean>>(() => {\n const initial: Record<string, boolean> = {};\n\n items.forEach((item) => {\n if ('groupId' in item && item.groupId && 'isCollapsed' in item) {\n initial[item.groupId] = false;\n }\n });\n return initial;\n });\n\n const handleToggleGroupCollapsed = useCallback((groupId: string) => {\n setCollapsedGroups((prev) => ({...prev, [groupId]: !prev[groupId]}));\n }, []);\n\n const toggleEditMode = useCallback(() => {\n setIsEditMode((prev) => !prev);\n }, []);\n\n useEffect(() => {\n onEditModeChanged?.(isEditMode);\n\n if (isEditMode) {\n editMenuProps?.onOpenEditMode?.();\n }\n }, [isEditMode, onEditModeChanged, editMenuProps]);\n\n const onItemClick = useCallback(\n (\n item: AsideHeaderItem,\n collapsed: boolean,\n event: React.MouseEvent<HTMLElement, MouseEvent>,\n ) => {\n // TODO: make event an optional argument\n item.onItemClick?.(item, collapsed, event as React.MouseEvent<HTMLElement, MouseEvent>);\n },\n [],\n );\n\n const onResetToDefaultClick = useCallback(() => {\n if (!onMenuItemsChanged) {\n return;\n }\n editMenuProps?.onResetSettingsToDefault?.();\n const originItems = defaultMenuItems?.filter(({id}) => id !== ALL_PAGES_ID);\n\n if (originItems) {\n onMenuItemsChanged(originItems);\n }\n\n if (onMenuGroupsChanged && defaultMenuGroups) {\n onMenuGroupsChanged(defaultMenuGroups);\n }\n }, [\n onMenuItemsChanged,\n editMenuProps,\n defaultMenuItems,\n onMenuGroupsChanged,\n defaultMenuGroups,\n ]);\n\n const handleToggleGroupVisibility = useCallback(\n (groupId: string) => {\n if (!onMenuGroupsChanged) {\n return;\n }\n\n const currentGroups = menuGroupsRef.current || [];\n const updatedGroups = currentGroups.map((group) => {\n if (group.id === groupId) {\n return {\n ...group,\n hidden: !group.hidden,\n };\n }\n\n return group;\n });\n\n onMenuGroupsChanged(updatedGroups);\n },\n [onMenuGroupsChanged],\n );\n\n const toggleMenuItemsVisibility = useCallback(\n (item: MenuItemsWithGroups) => {\n if (!onMenuItemsChanged) {\n return;\n }\n\n const changedItem: MenuItemsWithGroups = {\n ...item,\n hidden: !item.hidden,\n };\n\n const originItems = menuItemsRef.current;\n const expandedItems = buildExpandedFromFlatList(originItems);\n\n editMenuProps?.onToggleMenuItem?.(changedItem);\n\n onMenuItemsChanged(\n expandedItems.map((menuItem) => {\n if (menuItem.id !== changedItem.id) {\n return menuItem;\n }\n return changedItem;\n }),\n );\n },\n [onMenuItemsChanged, editMenuProps],\n );\n\n const onFirstLevelSortEnd = useCallback(\n ({oldIndex, newIndex}: ListSortParams) => {\n if (!onMenuItemsChanged) {\n return;\n }\n\n const currentFlatList = menuItemsRef.current || [];\n const sortedResult = sortMenuItemsWithDividers(oldIndex, newIndex, currentFlatList);\n\n // convert to expanded list and pass to onMenuItemsChanged\n const updatedItems = buildExpandedFromFlatList(sortedResult);\n\n if (updatedItems) {\n onMenuItemsChanged?.(updatedItems);\n }\n },\n [onMenuItemsChanged],\n );\n\n const onSecondLevelSortEnd = useCallback(\n (groupIndex: number) =>\n ({oldIndex, newIndex}: ListSortParams) => {\n if (!onMenuItemsChanged) {\n return;\n }\n\n const currentFlatList = menuItemsRef.current || [];\n const realOldIndex = getRealIndexInGroup(groupIndex, oldIndex, currentFlatList);\n const realNewIndex = getRealIndexInGroup(groupIndex, newIndex, currentFlatList);\n const expandedItems = buildExpandedFromFlatList(currentFlatList);\n\n const updatedItems = sortMenuItems(realOldIndex, realNewIndex, expandedItems);\n\n if (updatedItems) {\n onMenuItemsChanged?.(updatedItems);\n }\n },\n [onMenuItemsChanged],\n );\n\n const itemsWithLocalCollapsed = useMemo(() => {\n if (Object.keys(collapsedGroups).length === 0) return items;\n\n return items.map((item) => {\n if ('groupId' in item && item.groupId && item.groupId in collapsedGroups) {\n return {\n ...item,\n isCollapsed: collapsedGroups[item.groupId],\n };\n }\n return item;\n });\n }, [items, collapsedGroups]);\n\n const data = itemsWithLocalCollapsed.filter((item) => getIsMenuItem(item));\n\n return (\n <Flex className={b(null, className)} gap=\"1\" direction=\"column\">\n <Flex gap=\"4\" alignItems=\"center\" justifyContent=\"space-between\">\n <Text variant=\"subheader-2\">\n {isEditMode ? i18n('all-panel.title.editing') : i18n('all-panel.title.main')}\n </Text>\n <Tooltip content={i18n('all-panel.title.editing')}>\n <Button selected={isEditMode} view=\"flat-secondary\" onClick={toggleEditMode}>\n {startEditIcon ? startEditIcon : <Icon data={Gear} />}\n </Button>\n </Tooltip>\n </Flex>\n\n <CompositeBarView\n type=\"menu\"\n compact={false}\n className={b('content')}\n enableSorting={isEditMode && editMenuProps?.enableSorting}\n items={data}\n onFirstLevelSortEnd={\n isEditMode && editMenuProps?.enableSorting ? onFirstLevelSortEnd : undefined\n }\n onSecondLevelSortEnd={\n isEditMode && editMenuProps?.enableSorting ? onSecondLevelSortEnd : undefined\n }\n editMode={isEditMode}\n onItemClick={onItemClick}\n onToggleGroupCollapsed={handleToggleGroupCollapsed}\n onToggleMenuGroupVisibility={handleToggleGroupVisibility}\n onToggleMenuItemVisibility={toggleMenuItemsVisibility}\n />\n {isEditMode && (\n <Button onClick={onResetToDefaultClick}>{i18n('all-panel.resetToDefault')}</Button>\n )}\n </Flex>\n );\n};\n"],"names":["React"],"mappings":"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"}
1
+ {"version":3,"file":"AllPagesPanel.js","sources":["../../../../../../../src/components/AsideHeader/components/AllPagesPanel/AllPagesPanel.tsx"],"sourcesContent":["import React, {useCallback, useEffect, useMemo, useRef, useState} from 'react';\n\nimport {Gear} from '@gravity-ui/icons';\nimport {Button, Flex, Icon, ListSortParams, Text, Tooltip} from '@gravity-ui/uikit';\n\nimport {createBlock} from '../../../utils/cn';\nimport {useAsideHeaderInnerContext} from '../../AsideHeaderContext';\nimport {AsideHeaderItem, MenuItemsWithGroups, SetCollapseBlocker} from '../../types';\nimport {CompositeBarView} from '../CompositeBar/CompositeBar';\n\nimport {ALL_PAGES_ID} from './constants';\nimport i18n from './i18n';\nimport {useGroupedMenuItems} from './useGroupedMenuItems';\nimport {buildExpandedFromFlatList} from './utils/buildExpandedFromFlatList';\nimport {getExpandedIndexForSortableIndex} from './utils/getExpandedIndexForSortableIndex';\nimport {getIsMenuItem} from './utils/getIsMenuItem';\nimport {applySecondLevelSort} from './utils/getRealIndexInGroup';\nimport {sortMenuItemsWithDividers} from './utils/sortMenuItemsWithDividers';\n\nimport styles from './AllPagesPanel.module.scss';\n\nconst b = createBlock('all-pages-panel', styles);\n\ninterface AllPagesPanelProps {\n className?: string;\n startEditIcon?: React.ReactNode;\n onEditModeChanged?: (isEditMode: boolean) => void;\n}\n\nexport const AllPagesPanel: React.FC<AllPagesPanelProps> = (props) => {\n const {startEditIcon, onEditModeChanged, className} = props;\n const {\n defaultMenuItems,\n editMenuProps,\n menuItems,\n menuGroups,\n defaultMenuGroups,\n onMenuItemsChanged,\n onMenuGroupsChanged,\n } = useAsideHeaderInnerContext();\n const items = useGroupedMenuItems(menuItems, menuGroups, true);\n\n const menuItemsRef = useRef(items);\n menuItemsRef.current = items;\n\n const menuGroupsRef = useRef(menuGroups);\n menuGroupsRef.current = menuGroups;\n\n const [isEditMode, setIsEditMode] = useState(false);\n\n const [collapsedGroups, setCollapsedGroups] = useState<Record<string, boolean>>(() => {\n const initial: Record<string, boolean> = {};\n\n items.forEach((item) => {\n if ('groupId' in item && item.groupId && 'isCollapsed' in item) {\n initial[item.groupId] = false;\n }\n });\n return initial;\n });\n\n const handleToggleGroupCollapsed = useCallback((groupId: string) => {\n setCollapsedGroups((prev) => ({...prev, [groupId]: !prev[groupId]}));\n }, []);\n\n const toggleEditMode = useCallback(() => {\n setIsEditMode((prev) => !prev);\n }, []);\n\n useEffect(() => {\n onEditModeChanged?.(isEditMode);\n\n if (isEditMode) {\n editMenuProps?.onOpenEditMode?.();\n }\n }, [isEditMode, onEditModeChanged, editMenuProps]);\n\n const onItemClick = useCallback(\n (\n item: AsideHeaderItem,\n collapsed: boolean,\n event: React.MouseEvent<HTMLElement, MouseEvent>,\n options: {setCollapseBlocker: SetCollapseBlocker | undefined},\n ) => {\n // TODO: make event an optional argument\n item.onItemClick?.(\n item,\n collapsed,\n event as React.MouseEvent<HTMLElement, MouseEvent>,\n options,\n );\n },\n [],\n );\n\n const onResetToDefaultClick = useCallback(() => {\n if (!onMenuItemsChanged) {\n return;\n }\n editMenuProps?.onResetSettingsToDefault?.();\n const originItems = defaultMenuItems?.filter(({id}) => id !== ALL_PAGES_ID);\n\n if (originItems) {\n onMenuItemsChanged(originItems);\n }\n\n if (onMenuGroupsChanged && defaultMenuGroups) {\n onMenuGroupsChanged(defaultMenuGroups);\n }\n }, [\n onMenuItemsChanged,\n editMenuProps,\n defaultMenuItems,\n onMenuGroupsChanged,\n defaultMenuGroups,\n ]);\n\n const handleToggleGroupVisibility = useCallback(\n (groupId: string) => {\n if (!onMenuGroupsChanged) {\n return;\n }\n\n const currentGroups = menuGroupsRef.current || [];\n const updatedGroups = currentGroups.map((group) => {\n if (group.id === groupId) {\n return {\n ...group,\n hidden: !group.hidden,\n };\n }\n\n return group;\n });\n\n onMenuGroupsChanged(updatedGroups);\n },\n [onMenuGroupsChanged],\n );\n\n const toggleMenuItemsVisibility = useCallback(\n (item: MenuItemsWithGroups) => {\n if (!onMenuItemsChanged) {\n return;\n }\n\n const changedItem: MenuItemsWithGroups = {\n ...item,\n hidden: !item.hidden,\n };\n\n const originItems = menuItemsRef.current;\n const expandedItems = buildExpandedFromFlatList(originItems);\n\n editMenuProps?.onToggleMenuItem?.(changedItem);\n\n onMenuItemsChanged(\n expandedItems.map((menuItem) => {\n if (menuItem.id !== changedItem.id) {\n return menuItem;\n }\n return changedItem;\n }),\n );\n },\n [onMenuItemsChanged, editMenuProps],\n );\n\n const onFirstLevelSortEnd = useCallback(\n ({oldIndex, newIndex}: ListSortParams) => {\n if (!onMenuItemsChanged) {\n return;\n }\n\n const currentFlatList = menuItemsRef.current || [];\n const sortedResult = sortMenuItemsWithDividers(oldIndex, newIndex, currentFlatList);\n const expandedItems = buildExpandedFromFlatList(currentFlatList);\n const updatedItems = buildExpandedFromFlatList(sortedResult);\n\n const realOldIndex = getExpandedIndexForSortableIndex(oldIndex, currentFlatList);\n const realNewIndex = getExpandedIndexForSortableIndex(newIndex, sortedResult);\n const changedItem = expandedItems[realOldIndex];\n\n onMenuItemsChanged?.(updatedItems);\n\n if (changedItem && getIsMenuItem(changedItem)) {\n editMenuProps?.onChangeItemsOrder?.(changedItem, realOldIndex, realNewIndex);\n }\n },\n [onMenuItemsChanged, editMenuProps],\n );\n\n const onSecondLevelSortEnd = useCallback(\n (groupIndex: number) =>\n ({oldIndex, newIndex}: ListSortParams) => {\n if (!onMenuItemsChanged) {\n return;\n }\n\n const currentFlatList = menuItemsRef.current || [];\n const result = applySecondLevelSort(\n groupIndex,\n oldIndex,\n newIndex,\n currentFlatList,\n );\n\n if (!result) {\n return;\n }\n\n const {expandedItems, realOldIndex, realNewIndex, changedItem} = result;\n\n onMenuItemsChanged(expandedItems);\n\n if (changedItem && getIsMenuItem(changedItem)) {\n editMenuProps?.onChangeItemsOrder?.(changedItem, realOldIndex, realNewIndex);\n }\n },\n [onMenuItemsChanged, editMenuProps],\n );\n\n const itemsWithLocalCollapsed = useMemo(() => {\n if (Object.keys(collapsedGroups).length === 0) return items;\n\n return items.map((item) => {\n if ('groupId' in item && item.groupId && item.groupId in collapsedGroups) {\n return {\n ...item,\n isCollapsed: collapsedGroups[item.groupId],\n };\n }\n return item;\n });\n }, [items, collapsedGroups]);\n\n const data = itemsWithLocalCollapsed.filter((item) => getIsMenuItem(item));\n\n return (\n <Flex className={b(null, className)} gap=\"1\" direction=\"column\">\n <Flex gap=\"4\" alignItems=\"center\" justifyContent=\"space-between\">\n <Text variant=\"subheader-2\">\n {isEditMode ? i18n('all-panel.title.editing') : i18n('all-panel.title.main')}\n </Text>\n <Tooltip content={i18n('all-panel.title.editing')}>\n <Button selected={isEditMode} view=\"flat-secondary\" onClick={toggleEditMode}>\n {startEditIcon ? startEditIcon : <Icon data={Gear} />}\n </Button>\n </Tooltip>\n </Flex>\n\n <CompositeBarView\n type=\"menu\"\n isExpanded={true}\n className={b('content')}\n enableSorting={isEditMode && editMenuProps?.enableSorting}\n items={data}\n onFirstLevelSortEnd={\n isEditMode && editMenuProps?.enableSorting ? onFirstLevelSortEnd : undefined\n }\n onSecondLevelSortEnd={\n isEditMode && editMenuProps?.enableSorting ? onSecondLevelSortEnd : undefined\n }\n editMode={isEditMode}\n onItemClick={onItemClick}\n onToggleGroupCollapsed={handleToggleGroupCollapsed}\n onToggleMenuGroupVisibility={handleToggleGroupVisibility}\n onToggleMenuItemVisibility={toggleMenuItemsVisibility}\n />\n {isEditMode && (\n <Button onClick={onResetToDefaultClick}>{i18n('all-panel.resetToDefault')}</Button>\n )}\n </Flex>\n );\n};\n"],"names":["React"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- var styles = {"gn-all-pages-panel":"AllPagesPanel-module__gn-all-pages-panel___RN6Kk","gnAllPagesPanel":"AllPagesPanel-module__gn-all-pages-panel___RN6Kk","gn-all-pages-panel__content":"AllPagesPanel-module__gn-all-pages-panel__content___XgBXG","gnAllPagesPanelContent":"AllPagesPanel-module__gn-all-pages-panel__content___XgBXG","gn-all-pages-panel__discoverable-feature-wrapper":"AllPagesPanel-module__gn-all-pages-panel__discoverable-feature-wrapper___fwkXa","gnAllPagesPanelDiscoverableFeatureWrapper":"AllPagesPanel-module__gn-all-pages-panel__discoverable-feature-wrapper___fwkXa","gn-all-pages-panel__menu-group":"AllPagesPanel-module__gn-all-pages-panel__menu-group___sLa1D","gnAllPagesPanelMenuGroup":"AllPagesPanel-module__gn-all-pages-panel__menu-group___sLa1D"};
1
+ var styles = {"gn-all-pages-panel":"AllPagesPanel-module__gn-all-pages-panel___RN6Kk","gnAllPagesPanel":"AllPagesPanel-module__gn-all-pages-panel___RN6Kk","gn-all-pages-panel__content":"AllPagesPanel-module__gn-all-pages-panel__content___XgBXG","gnAllPagesPanelContent":"AllPagesPanel-module__gn-all-pages-panel__content___XgBXG"};
2
2
 
3
3
  export { styles as default };
4
4
  //# sourceMappingURL=AllPagesPanel.module.scss.js.map
@@ -1,8 +1,10 @@
1
1
  import { useMemo } from 'react';
2
+ import { getVisibleItemsWithFilteredDividers } from '../CompositeBar/utils.js';
2
3
  import { ALL_PAGES_ID } from './constants.js';
3
4
 
4
5
  const useGroupedMenuItems = (menuItems, menuGroups, isEditMode = false) => {
5
6
  return useMemo(() => {
7
+ var _a;
6
8
  const visibleItems = menuItems.filter((item) => {
7
9
  if (isEditMode && item.id === ALL_PAGES_ID) {
8
10
  return false;
@@ -38,7 +40,7 @@ const useGroupedMenuItems = (menuItems, menuGroups, isEditMode = false) => {
38
40
  });
39
41
  const flatListItems = [];
40
42
  visibleItems.forEach((item) => {
41
- var _a, _b;
43
+ var _a, _b, _c, _d;
42
44
  const groupId = item.groupId;
43
45
  if (groupId) {
44
46
  if (!processedGroups.has(groupId)) {
@@ -51,15 +53,15 @@ const useGroupedMenuItems = (menuItems, menuGroups, isEditMode = false) => {
51
53
  const isGroupHidden = isAllGroupItemsHidden
52
54
  ? true
53
55
  : ((_a = group === null || group === undefined ? undefined : group.hidden) !== null && _a !== undefined ? _a : false);
56
+ const effectiveCollapsed = (_c = (_b = group === null || group === undefined ? undefined : group.collapsed) !== null && _b !== undefined ? _b : group === null || group === undefined ? undefined : group.collapsedByDefault) !== null && _c !== undefined ? _c : false;
54
57
  flatListItems.push({
55
58
  id: groupId,
56
- title: (_b = group === null || group === undefined ? undefined : group.title) !== null && _b !== undefined ? _b : groupId,
59
+ title: (_d = group === null || group === undefined ? undefined : group.title) !== null && _d !== undefined ? _d : groupId,
57
60
  icon: group === null || group === undefined ? undefined : group.icon,
58
61
  hidden: isGroupHidden,
59
- isDisabled: isAllGroupItemsHidden,
60
62
  collapsible: group === null || group === undefined ? undefined : group.collapsible,
61
63
  collapsedByDefault: group === null || group === undefined ? undefined : group.collapsedByDefault,
62
- isCollapsed: group === null || group === undefined ? undefined : group.collapsed,
64
+ isCollapsed: effectiveCollapsed,
63
65
  groupId: groupId,
64
66
  items,
65
67
  });
@@ -70,7 +72,10 @@ const useGroupedMenuItems = (menuItems, menuGroups, isEditMode = false) => {
70
72
  flatListItems.push(item);
71
73
  }
72
74
  });
73
- return flatListItems;
75
+ if (isEditMode) {
76
+ return flatListItems;
77
+ }
78
+ return (_a = getVisibleItemsWithFilteredDividers(flatListItems, ALL_PAGES_ID)) !== null && _a !== undefined ? _a : [];
74
79
  }, [menuItems, menuGroups, isEditMode]);
75
80
  };
76
81
 
@@ -1 +1 @@
1
- {"version":3,"file":"useGroupedMenuItems.js","sources":["../../../../../../../src/components/AsideHeader/components/AllPagesPanel/useGroupedMenuItems.ts"],"sourcesContent":["import {useMemo} from 'react';\n\nimport {MenuGroup, MenuItem} from '../../../types';\nimport {MenuItemsWithGroups} from '../../types';\n\nimport {ALL_PAGES_ID} from './constants';\n\nexport const useGroupedMenuItems = (\n menuItems: MenuItem[],\n menuGroups?: MenuGroup[],\n isEditMode = false,\n): MenuItemsWithGroups[] => {\n return useMemo(() => {\n const visibleItems = menuItems.filter((item: MenuItem): boolean => {\n if (isEditMode && item.id === ALL_PAGES_ID) {\n return false;\n }\n\n return true;\n });\n\n visibleItems.sort(({type: typeA}, {type: typeB}) => {\n if (typeA === 'action') {\n return 1;\n }\n if (typeB === 'action') {\n return -1;\n }\n return 0;\n });\n\n const groupsMap = new Map<string, MenuGroup>();\n\n menuGroups?.forEach((group) => {\n groupsMap.set(group.id, group);\n });\n\n const groupedItems = new Map<string, MenuItemsWithGroups[]>();\n const ungroupedItems: MenuItemsWithGroups[] = [];\n const processedGroups = new Set<string>();\n\n visibleItems.forEach((item) => {\n const groupId = item.groupId;\n\n if (groupId) {\n if (!groupedItems.has(groupId)) {\n groupedItems.set(groupId, []);\n }\n\n const group = groupedItems.get(groupId);\n\n if (group) {\n group.push(item);\n }\n } else {\n ungroupedItems.push(item);\n }\n });\n\n const flatListItems: MenuItemsWithGroups[] = [];\n\n visibleItems.forEach((item) => {\n const groupId = item.groupId;\n\n if (groupId) {\n if (!processedGroups.has(groupId)) {\n processedGroups.add(groupId);\n\n const items = groupedItems.get(groupId) || [];\n\n if (items.length > 0) {\n const itemsWithVisible = items.filter((sortedItem) => !sortedItem.hidden);\n\n const group = groupsMap.get(groupId);\n const isAllGroupItemsHidden = itemsWithVisible.length === 0;\n const isGroupHidden = isAllGroupItemsHidden\n ? true\n : (group?.hidden ?? false);\n\n flatListItems.push({\n id: groupId,\n title: group?.title ?? groupId,\n icon: group?.icon,\n hidden: isGroupHidden,\n isDisabled: isAllGroupItemsHidden,\n collapsible: group?.collapsible,\n collapsedByDefault: group?.collapsedByDefault,\n isCollapsed: group?.collapsed,\n groupId: groupId,\n items,\n });\n }\n }\n }\n\n if (!groupId) {\n flatListItems.push(item);\n }\n });\n\n return flatListItems;\n }, [menuItems, menuGroups, isEditMode]);\n};\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useGroupedMenuItems.js","sources":["../../../../../../../src/components/AsideHeader/components/AllPagesPanel/useGroupedMenuItems.ts"],"sourcesContent":["import {useMemo} from 'react';\n\nimport {MenuGroup, MenuItem} from '../../../types';\nimport {MenuItemsWithGroups} from '../../types';\nimport {getVisibleItemsWithFilteredDividers} from '../CompositeBar/utils';\n\nimport {ALL_PAGES_ID} from './constants';\n\nexport const useGroupedMenuItems = (\n menuItems: MenuItem[],\n menuGroups?: MenuGroup[],\n isEditMode = false,\n): MenuItemsWithGroups[] => {\n return useMemo(() => {\n const visibleItems = menuItems.filter((item: MenuItem): boolean => {\n if (isEditMode && item.id === ALL_PAGES_ID) {\n return false;\n }\n\n return true;\n });\n\n visibleItems.sort(({type: typeA}, {type: typeB}) => {\n if (typeA === 'action') {\n return 1;\n }\n if (typeB === 'action') {\n return -1;\n }\n return 0;\n });\n\n const groupsMap = new Map<string, MenuGroup>();\n\n menuGroups?.forEach((group) => {\n groupsMap.set(group.id, group);\n });\n\n const groupedItems = new Map<string, MenuItemsWithGroups[]>();\n const ungroupedItems: MenuItemsWithGroups[] = [];\n const processedGroups = new Set<string>();\n\n visibleItems.forEach((item) => {\n const groupId = item.groupId;\n\n if (groupId) {\n if (!groupedItems.has(groupId)) {\n groupedItems.set(groupId, []);\n }\n\n const group = groupedItems.get(groupId);\n\n if (group) {\n group.push(item);\n }\n } else {\n ungroupedItems.push(item);\n }\n });\n\n const flatListItems: MenuItemsWithGroups[] = [];\n\n visibleItems.forEach((item) => {\n const groupId = item.groupId;\n\n if (groupId) {\n if (!processedGroups.has(groupId)) {\n processedGroups.add(groupId);\n\n const items = groupedItems.get(groupId) || [];\n\n if (items.length > 0) {\n const itemsWithVisible = items.filter((sortedItem) => !sortedItem.hidden);\n\n const group = groupsMap.get(groupId);\n const isAllGroupItemsHidden = itemsWithVisible.length === 0;\n const isGroupHidden = isAllGroupItemsHidden\n ? true\n : (group?.hidden ?? false);\n\n const effectiveCollapsed =\n group?.collapsed ?? group?.collapsedByDefault ?? false;\n\n flatListItems.push({\n id: groupId,\n title: group?.title ?? groupId,\n icon: group?.icon,\n hidden: isGroupHidden,\n collapsible: group?.collapsible,\n collapsedByDefault: group?.collapsedByDefault,\n isCollapsed: effectiveCollapsed,\n groupId: groupId,\n items,\n });\n }\n }\n }\n\n if (!groupId) {\n flatListItems.push(item);\n }\n });\n\n if (isEditMode) {\n return flatListItems;\n }\n\n return getVisibleItemsWithFilteredDividers(flatListItems, ALL_PAGES_ID) ?? [];\n }, [menuItems, menuGroups, isEditMode]);\n};\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { MenuItemsWithGroups } from '../../../types';
2
+ /**
3
+ * Returns index in expanded list for the sortableIndex-th sortable item in flatList.
4
+ *
5
+ * @param sortableIndex - Index in the list of sortable (non-divider) items.
6
+ * @param flatList - Flat list with groups and dividers.
7
+ * @returns Index in the expanded (flattened) menu list.
8
+ */
9
+ export declare function getExpandedIndexForSortableIndex(sortableIndex: number, flatList: MenuItemsWithGroups[]): number;
@@ -0,0 +1,25 @@
1
+ import { getIsMenuItem } from './getIsMenuItem.js';
2
+ import { getRealIndexInExpandedMenu } from './getRealIndexInGroup.js';
3
+
4
+ /**
5
+ * Returns index in expanded list for the sortableIndex-th sortable item in flatList.
6
+ *
7
+ * @param sortableIndex - Index in the list of sortable (non-divider) items.
8
+ * @param flatList - Flat list with groups and dividers.
9
+ * @returns Index in the expanded (flattened) menu list.
10
+ */
11
+ function getExpandedIndexForSortableIndex(sortableIndex, flatList) {
12
+ let sortableCount = 0;
13
+ for (let i = 0; i < flatList.length; i++) {
14
+ if (getIsMenuItem(flatList[i])) {
15
+ if (sortableCount === sortableIndex) {
16
+ return getRealIndexInExpandedMenu(i, flatList);
17
+ }
18
+ sortableCount++;
19
+ }
20
+ }
21
+ return 0;
22
+ }
23
+
24
+ export { getExpandedIndexForSortableIndex };
25
+ //# sourceMappingURL=getExpandedIndexForSortableIndex.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getExpandedIndexForSortableIndex.js","sources":["../../../../../../../../src/components/AsideHeader/components/AllPagesPanel/utils/getExpandedIndexForSortableIndex.ts"],"sourcesContent":["import {MenuItemsWithGroups} from '../../../types';\n\nimport {getIsMenuItem} from './getIsMenuItem';\nimport {getRealIndexInExpandedMenu} from './getRealIndexInGroup';\n\n/**\n * Returns index in expanded list for the sortableIndex-th sortable item in flatList.\n *\n * @param sortableIndex - Index in the list of sortable (non-divider) items.\n * @param flatList - Flat list with groups and dividers.\n * @returns Index in the expanded (flattened) menu list.\n */\nexport function getExpandedIndexForSortableIndex(\n sortableIndex: number,\n flatList: MenuItemsWithGroups[],\n): number {\n let sortableCount = 0;\n for (let i = 0; i < flatList.length; i++) {\n if (getIsMenuItem(flatList[i])) {\n if (sortableCount === sortableIndex) {\n return getRealIndexInExpandedMenu(i, flatList);\n }\n sortableCount++;\n }\n }\n return 0;\n}\n"],"names":[],"mappings":";;;AAKA;;;;;;AAMG;AACa,SAAA,gCAAgC,CAC5C,aAAqB,EACrB,QAA+B,EAAA;IAE/B,IAAI,aAAa,GAAG,CAAC;AACrB,IAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACtC,IAAI,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE;AAC5B,YAAA,IAAI,aAAa,KAAK,aAAa,EAAE;AACjC,gBAAA,OAAO,0BAA0B,CAAC,CAAC,EAAE,QAAQ,CAAC;;AAElD,YAAA,aAAa,EAAE;;;AAGvB,IAAA,OAAO,CAAC;AACZ;;;;"}
@@ -1,2 +1,73 @@
1
1
  import { MenuItemsWithGroups } from '../../../types';
2
+ import { buildExpandedFromFlatList } from './buildExpandedFromFlatList';
3
+ /**
4
+ * Returns index in flatList of the sortableIndex-th sortable item (getIsMenuItem).
5
+ * Used when groupIndex from the List is the index in the filtered list without dividers.
6
+ *
7
+ * @param sortableIndex - Index in the list of sortable (non-divider) items.
8
+ * @param flatList - Flat list with groups and dividers.
9
+ * @returns Index in flatList of the sortableIndex-th sortable item.
10
+ */
11
+ export declare function getFlatListIndexForSortableIndex(sortableIndex: number, flatList: MenuItemsWithGroups[]): number;
12
+ /**
13
+ * Returns index in groupItems array for the sortableIndex-th sortable (non-divider) item.
14
+ * Used when oldIndex/newIndex from sort are indices in the sortable-only list.
15
+ *
16
+ * @param sortableIndex - Index in the list of sortable (non-divider) items.
17
+ * @param groupItems - Items of the group (may contain dividers).
18
+ * @returns Index in groupItems of the sortableIndex-th sortable item.
19
+ */
20
+ export declare function getIndexInGroupItemsForSortableIndex(sortableIndex: number, groupItems: MenuItemsWithGroups[]): number;
21
+ export declare function getRealIndexInExpandedMenu(flatListIndex: number, flatList: MenuItemsWithGroups[]): number;
22
+ /**
23
+ * Returns index in the expanded menu for an item in a group.
24
+ * itemIndexInGroup is the index in the sortable-only list (dividers are not counted).
25
+ *
26
+ * @param groupIndex - Index of the group in the flat list.
27
+ * @param itemIndexInGroup - Index in the sortable-only list within the group.
28
+ * @param flatList - Flat list with groups and dividers.
29
+ * @returns Index in the expanded (flattened) menu list.
30
+ */
2
31
  export declare function getRealIndexInGroup(groupIndex: number, itemIndexInGroup: number, flatList: MenuItemsWithGroups[]): number;
32
+ type GroupWithItems = MenuItemsWithGroups & {
33
+ items: MenuItemsWithGroups[];
34
+ };
35
+ /**
36
+ * Returns group item and its index in flat list by sortable index (index in list without dividers).
37
+ *
38
+ * @param sortableIndex - Index in the filtered list (getIsMenuItem).
39
+ * @param flatList - Flat list with groups and dividers.
40
+ * @returns Object with flatListGroupIndex and groupItem, or null if not a group with items.
41
+ */
42
+ export declare function getGroupAtSortableIndex(sortableIndex: number, flatList: MenuItemsWithGroups[]): {
43
+ flatListGroupIndex: number;
44
+ groupItem: GroupWithItems;
45
+ } | null;
46
+ /**
47
+ * Returns new flat list with group items replaced at the given index.
48
+ *
49
+ * @param flatList - Current flat list.
50
+ * @param flatListGroupIndex - Index of the group in flat list.
51
+ * @param newGroupItems - New items array for the group.
52
+ * @returns New flat list with updated group.
53
+ */
54
+ export declare function updateGroupItemsInFlatList(flatList: MenuItemsWithGroups[], flatListGroupIndex: number, newGroupItems: MenuItemsWithGroups[]): MenuItemsWithGroups[];
55
+ interface SecondLevelSortResult {
56
+ newFlatList: MenuItemsWithGroups[];
57
+ expandedItems: ReturnType<typeof buildExpandedFromFlatList>;
58
+ realOldIndex: number;
59
+ realNewIndex: number;
60
+ changedItem: ReturnType<typeof buildExpandedFromFlatList>[number] | undefined;
61
+ }
62
+ /**
63
+ * Applies second-level sort (within a group) and returns new flat list, expanded items and indices.
64
+ * Keeps dividers in place inside the group.
65
+ *
66
+ * @param groupIndex - Sortable index of the group (from List, without dividers).
67
+ * @param oldIndex - Sortable index of dragged item in the group.
68
+ * @param newIndex - Sortable index of drop position in the group.
69
+ * @param currentFlatList - Current flat list.
70
+ * @returns Result with newFlatList, expandedItems, indices and changedItem, or null if invalid.
71
+ */
72
+ export declare function applySecondLevelSort(groupIndex: number, oldIndex: number, newIndex: number, currentFlatList: MenuItemsWithGroups[]): SecondLevelSortResult | null;
73
+ export {};
@@ -1,3 +1,47 @@
1
+ import { buildExpandedFromFlatList } from './buildExpandedFromFlatList.js';
2
+ import { getIsMenuItem } from './getIsMenuItem.js';
3
+ import { sortMenuItemsWithDividers } from './sortMenuItemsWithDividers.js';
4
+
5
+ /**
6
+ * Returns index in flatList of the sortableIndex-th sortable item (getIsMenuItem).
7
+ * Used when groupIndex from the List is the index in the filtered list without dividers.
8
+ *
9
+ * @param sortableIndex - Index in the list of sortable (non-divider) items.
10
+ * @param flatList - Flat list with groups and dividers.
11
+ * @returns Index in flatList of the sortableIndex-th sortable item.
12
+ */
13
+ function getFlatListIndexForSortableIndex(sortableIndex, flatList) {
14
+ let sortableCount = 0;
15
+ for (let i = 0; i < flatList.length; i++) {
16
+ if (getIsMenuItem(flatList[i])) {
17
+ if (sortableCount === sortableIndex) {
18
+ return i;
19
+ }
20
+ sortableCount++;
21
+ }
22
+ }
23
+ return 0;
24
+ }
25
+ /**
26
+ * Returns index in groupItems array for the sortableIndex-th sortable (non-divider) item.
27
+ * Used when oldIndex/newIndex from sort are indices in the sortable-only list.
28
+ *
29
+ * @param sortableIndex - Index in the list of sortable (non-divider) items.
30
+ * @param groupItems - Items of the group (may contain dividers).
31
+ * @returns Index in groupItems of the sortableIndex-th sortable item.
32
+ */
33
+ function getIndexInGroupItemsForSortableIndex(sortableIndex, groupItems) {
34
+ let sortableCount = 0;
35
+ for (let i = 0; i < groupItems.length; i++) {
36
+ if (getIsMenuItem(groupItems[i])) {
37
+ if (sortableCount === sortableIndex) {
38
+ return i;
39
+ }
40
+ sortableCount++;
41
+ }
42
+ }
43
+ return 0;
44
+ }
1
45
  function getRealIndexInExpandedMenu(flatListIndex, flatList) {
2
46
  let realIndex = 0;
3
47
  for (let i = 0; i < flatListIndex; i++) {
@@ -11,10 +55,82 @@ function getRealIndexInExpandedMenu(flatListIndex, flatList) {
11
55
  }
12
56
  return realIndex;
13
57
  }
58
+ /**
59
+ * Returns index in the expanded menu for an item in a group.
60
+ * itemIndexInGroup is the index in the sortable-only list (dividers are not counted).
61
+ *
62
+ * @param groupIndex - Index of the group in the flat list.
63
+ * @param itemIndexInGroup - Index in the sortable-only list within the group.
64
+ * @param flatList - Flat list with groups and dividers.
65
+ * @returns Index in the expanded (flattened) menu list.
66
+ */
14
67
  function getRealIndexInGroup(groupIndex, itemIndexInGroup, flatList) {
15
68
  const groupStartIndex = getRealIndexInExpandedMenu(groupIndex, flatList);
69
+ const groupItem = flatList[groupIndex];
70
+ if ('items' in groupItem && groupItem.items && groupItem.items.length > 0) {
71
+ const positionInGroup = getIndexInGroupItemsForSortableIndex(itemIndexInGroup, groupItem.items);
72
+ return groupStartIndex + positionInGroup;
73
+ }
16
74
  return groupStartIndex + itemIndexInGroup;
17
75
  }
76
+ /**
77
+ * Returns group item and its index in flat list by sortable index (index in list without dividers).
78
+ *
79
+ * @param sortableIndex - Index in the filtered list (getIsMenuItem).
80
+ * @param flatList - Flat list with groups and dividers.
81
+ * @returns Object with flatListGroupIndex and groupItem, or null if not a group with items.
82
+ */
83
+ function getGroupAtSortableIndex(sortableIndex, flatList) {
84
+ var _a;
85
+ const flatListGroupIndex = getFlatListIndexForSortableIndex(sortableIndex, flatList);
86
+ const groupItem = flatList[flatListGroupIndex];
87
+ if (!groupItem || !('items' in groupItem) || !((_a = groupItem.items) === null || _a === undefined ? undefined : _a.length)) {
88
+ return null;
89
+ }
90
+ return { flatListGroupIndex, groupItem: groupItem };
91
+ }
92
+ /**
93
+ * Returns new flat list with group items replaced at the given index.
94
+ *
95
+ * @param flatList - Current flat list.
96
+ * @param flatListGroupIndex - Index of the group in flat list.
97
+ * @param newGroupItems - New items array for the group.
98
+ * @returns New flat list with updated group.
99
+ */
100
+ function updateGroupItemsInFlatList(flatList, flatListGroupIndex, newGroupItems) {
101
+ return flatList.map((item, i) => i === flatListGroupIndex && 'items' in item ? Object.assign(Object.assign({}, item), { items: newGroupItems }) : item);
102
+ }
103
+ /**
104
+ * Applies second-level sort (within a group) and returns new flat list, expanded items and indices.
105
+ * Keeps dividers in place inside the group.
106
+ *
107
+ * @param groupIndex - Sortable index of the group (from List, without dividers).
108
+ * @param oldIndex - Sortable index of dragged item in the group.
109
+ * @param newIndex - Sortable index of drop position in the group.
110
+ * @param currentFlatList - Current flat list.
111
+ * @returns Result with newFlatList, expandedItems, indices and changedItem, or null if invalid.
112
+ */
113
+ function applySecondLevelSort(groupIndex, oldIndex, newIndex, currentFlatList) {
114
+ const groupData = getGroupAtSortableIndex(groupIndex, currentFlatList);
115
+ if (!groupData) {
116
+ return null;
117
+ }
118
+ const { flatListGroupIndex, groupItem } = groupData;
119
+ const sortedGroupItems = sortMenuItemsWithDividers(oldIndex, newIndex, groupItem.items);
120
+ const newFlatList = updateGroupItemsInFlatList(currentFlatList, flatListGroupIndex, sortedGroupItems);
121
+ const expandedItems = buildExpandedFromFlatList(newFlatList);
122
+ const expandedItemsOld = buildExpandedFromFlatList(currentFlatList);
123
+ const realOldIndex = getRealIndexInGroup(flatListGroupIndex, oldIndex, currentFlatList);
124
+ const realNewIndex = getRealIndexInGroup(flatListGroupIndex, newIndex, newFlatList);
125
+ const changedItem = expandedItemsOld[realOldIndex];
126
+ return {
127
+ newFlatList,
128
+ expandedItems,
129
+ realOldIndex,
130
+ realNewIndex,
131
+ changedItem,
132
+ };
133
+ }
18
134
 
19
- export { getRealIndexInGroup };
135
+ export { applySecondLevelSort, getFlatListIndexForSortableIndex, getGroupAtSortableIndex, getIndexInGroupItemsForSortableIndex, getRealIndexInExpandedMenu, getRealIndexInGroup, updateGroupItemsInFlatList };
20
136
  //# sourceMappingURL=getRealIndexInGroup.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"getRealIndexInGroup.js","sources":["../../../../../../../../src/components/AsideHeader/components/AllPagesPanel/utils/getRealIndexInGroup.ts"],"sourcesContent":["import {MenuItemsWithGroups} from '../../../types';\n\nfunction getRealIndexInExpandedMenu(\n flatListIndex: number,\n flatList: MenuItemsWithGroups[],\n): number {\n let realIndex = 0;\n\n for (let i = 0; i < flatListIndex; i++) {\n const item = flatList[i];\n\n if ('items' in item && item.items && item.items.length > 0) {\n realIndex += item.items.length;\n } else {\n realIndex += 1;\n }\n }\n\n return realIndex;\n}\n\nexport function getRealIndexInGroup(\n groupIndex: number,\n itemIndexInGroup: number,\n flatList: MenuItemsWithGroups[],\n): number {\n const groupStartIndex = getRealIndexInExpandedMenu(groupIndex, flatList);\n\n return groupStartIndex + itemIndexInGroup;\n}\n"],"names":[],"mappings":"AAEA,SAAS,0BAA0B,CAC/B,aAAqB,EACrB,QAA+B,EAAA;IAE/B,IAAI,SAAS,GAAG,CAAC;AAEjB,IAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,EAAE,CAAC,EAAE,EAAE;AACpC,QAAA,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC;AAExB,QAAA,IAAI,OAAO,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;AACxD,YAAA,SAAS,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM;;aAC3B;YACH,SAAS,IAAI,CAAC;;;AAItB,IAAA,OAAO,SAAS;AACpB;SAEgB,mBAAmB,CAC/B,UAAkB,EAClB,gBAAwB,EACxB,QAA+B,EAAA;IAE/B,MAAM,eAAe,GAAG,0BAA0B,CAAC,UAAU,EAAE,QAAQ,CAAC;IAExE,OAAO,eAAe,GAAG,gBAAgB;AAC7C;;;;"}
1
+ {"version":3,"file":"getRealIndexInGroup.js","sources":["../../../../../../../../src/components/AsideHeader/components/AllPagesPanel/utils/getRealIndexInGroup.ts"],"sourcesContent":["import {MenuItemsWithGroups} from '../../../types';\n\nimport {buildExpandedFromFlatList} from './buildExpandedFromFlatList';\nimport {getIsMenuItem} from './getIsMenuItem';\nimport {sortMenuItemsWithDividers} from './sortMenuItemsWithDividers';\n\n/**\n * Returns index in flatList of the sortableIndex-th sortable item (getIsMenuItem).\n * Used when groupIndex from the List is the index in the filtered list without dividers.\n *\n * @param sortableIndex - Index in the list of sortable (non-divider) items.\n * @param flatList - Flat list with groups and dividers.\n * @returns Index in flatList of the sortableIndex-th sortable item.\n */\nexport function getFlatListIndexForSortableIndex(\n sortableIndex: number,\n flatList: MenuItemsWithGroups[],\n): number {\n let sortableCount = 0;\n for (let i = 0; i < flatList.length; i++) {\n if (getIsMenuItem(flatList[i])) {\n if (sortableCount === sortableIndex) {\n return i;\n }\n sortableCount++;\n }\n }\n return 0;\n}\n\n/**\n * Returns index in groupItems array for the sortableIndex-th sortable (non-divider) item.\n * Used when oldIndex/newIndex from sort are indices in the sortable-only list.\n *\n * @param sortableIndex - Index in the list of sortable (non-divider) items.\n * @param groupItems - Items of the group (may contain dividers).\n * @returns Index in groupItems of the sortableIndex-th sortable item.\n */\nexport function getIndexInGroupItemsForSortableIndex(\n sortableIndex: number,\n groupItems: MenuItemsWithGroups[],\n): number {\n let sortableCount = 0;\n for (let i = 0; i < groupItems.length; i++) {\n if (getIsMenuItem(groupItems[i])) {\n if (sortableCount === sortableIndex) {\n return i;\n }\n sortableCount++;\n }\n }\n return 0;\n}\n\nexport function getRealIndexInExpandedMenu(\n flatListIndex: number,\n flatList: MenuItemsWithGroups[],\n): number {\n let realIndex = 0;\n\n for (let i = 0; i < flatListIndex; i++) {\n const item = flatList[i];\n\n if ('items' in item && item.items && item.items.length > 0) {\n realIndex += item.items.length;\n } else {\n realIndex += 1;\n }\n }\n\n return realIndex;\n}\n\n/**\n * Returns index in the expanded menu for an item in a group.\n * itemIndexInGroup is the index in the sortable-only list (dividers are not counted).\n *\n * @param groupIndex - Index of the group in the flat list.\n * @param itemIndexInGroup - Index in the sortable-only list within the group.\n * @param flatList - Flat list with groups and dividers.\n * @returns Index in the expanded (flattened) menu list.\n */\nexport function getRealIndexInGroup(\n groupIndex: number,\n itemIndexInGroup: number,\n flatList: MenuItemsWithGroups[],\n): number {\n const groupStartIndex = getRealIndexInExpandedMenu(groupIndex, flatList);\n const groupItem = flatList[groupIndex];\n\n if ('items' in groupItem && groupItem.items && groupItem.items.length > 0) {\n const positionInGroup = getIndexInGroupItemsForSortableIndex(\n itemIndexInGroup,\n groupItem.items,\n );\n return groupStartIndex + positionInGroup;\n }\n\n return groupStartIndex + itemIndexInGroup;\n}\n\ntype GroupWithItems = MenuItemsWithGroups & {items: MenuItemsWithGroups[]};\n\n/**\n * Returns group item and its index in flat list by sortable index (index in list without dividers).\n *\n * @param sortableIndex - Index in the filtered list (getIsMenuItem).\n * @param flatList - Flat list with groups and dividers.\n * @returns Object with flatListGroupIndex and groupItem, or null if not a group with items.\n */\nexport function getGroupAtSortableIndex(\n sortableIndex: number,\n flatList: MenuItemsWithGroups[],\n): {flatListGroupIndex: number; groupItem: GroupWithItems} | null {\n const flatListGroupIndex = getFlatListIndexForSortableIndex(sortableIndex, flatList);\n const groupItem = flatList[flatListGroupIndex];\n\n if (!groupItem || !('items' in groupItem) || !(groupItem as GroupWithItems).items?.length) {\n return null;\n }\n\n return {flatListGroupIndex, groupItem: groupItem as GroupWithItems};\n}\n\n/**\n * Returns new flat list with group items replaced at the given index.\n *\n * @param flatList - Current flat list.\n * @param flatListGroupIndex - Index of the group in flat list.\n * @param newGroupItems - New items array for the group.\n * @returns New flat list with updated group.\n */\nexport function updateGroupItemsInFlatList(\n flatList: MenuItemsWithGroups[],\n flatListGroupIndex: number,\n newGroupItems: MenuItemsWithGroups[],\n): MenuItemsWithGroups[] {\n return flatList.map((item, i) =>\n i === flatListGroupIndex && 'items' in item ? {...item, items: newGroupItems} : item,\n );\n}\n\ninterface SecondLevelSortResult {\n newFlatList: MenuItemsWithGroups[];\n expandedItems: ReturnType<typeof buildExpandedFromFlatList>;\n realOldIndex: number;\n realNewIndex: number;\n changedItem: ReturnType<typeof buildExpandedFromFlatList>[number] | undefined;\n}\n\n/**\n * Applies second-level sort (within a group) and returns new flat list, expanded items and indices.\n * Keeps dividers in place inside the group.\n *\n * @param groupIndex - Sortable index of the group (from List, without dividers).\n * @param oldIndex - Sortable index of dragged item in the group.\n * @param newIndex - Sortable index of drop position in the group.\n * @param currentFlatList - Current flat list.\n * @returns Result with newFlatList, expandedItems, indices and changedItem, or null if invalid.\n */\nexport function applySecondLevelSort(\n groupIndex: number,\n oldIndex: number,\n newIndex: number,\n currentFlatList: MenuItemsWithGroups[],\n): SecondLevelSortResult | null {\n const groupData = getGroupAtSortableIndex(groupIndex, currentFlatList);\n\n if (!groupData) {\n return null;\n }\n\n const {flatListGroupIndex, groupItem} = groupData;\n const sortedGroupItems = sortMenuItemsWithDividers(oldIndex, newIndex, groupItem.items);\n const newFlatList = updateGroupItemsInFlatList(\n currentFlatList,\n flatListGroupIndex,\n sortedGroupItems,\n );\n const expandedItems = buildExpandedFromFlatList(newFlatList);\n const expandedItemsOld = buildExpandedFromFlatList(currentFlatList);\n const realOldIndex = getRealIndexInGroup(flatListGroupIndex, oldIndex, currentFlatList);\n const realNewIndex = getRealIndexInGroup(flatListGroupIndex, newIndex, newFlatList);\n const changedItem = expandedItemsOld[realOldIndex];\n\n return {\n newFlatList,\n expandedItems,\n realOldIndex,\n realNewIndex,\n changedItem,\n };\n}\n"],"names":[],"mappings":";;;;AAMA;;;;;;;AAOG;AACa,SAAA,gCAAgC,CAC5C,aAAqB,EACrB,QAA+B,EAAA;IAE/B,IAAI,aAAa,GAAG,CAAC;AACrB,IAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACtC,IAAI,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE;AAC5B,YAAA,IAAI,aAAa,KAAK,aAAa,EAAE;AACjC,gBAAA,OAAO,CAAC;;AAEZ,YAAA,aAAa,EAAE;;;AAGvB,IAAA,OAAO,CAAC;AACZ;AAEA;;;;;;;AAOG;AACa,SAAA,oCAAoC,CAChD,aAAqB,EACrB,UAAiC,EAAA;IAEjC,IAAI,aAAa,GAAG,CAAC;AACrB,IAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACxC,IAAI,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE;AAC9B,YAAA,IAAI,aAAa,KAAK,aAAa,EAAE;AACjC,gBAAA,OAAO,CAAC;;AAEZ,YAAA,aAAa,EAAE;;;AAGvB,IAAA,OAAO,CAAC;AACZ;AAEgB,SAAA,0BAA0B,CACtC,aAAqB,EACrB,QAA+B,EAAA;IAE/B,IAAI,SAAS,GAAG,CAAC;AAEjB,IAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,EAAE,CAAC,EAAE,EAAE;AACpC,QAAA,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC;AAExB,QAAA,IAAI,OAAO,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;AACxD,YAAA,SAAS,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM;;aAC3B;YACH,SAAS,IAAI,CAAC;;;AAItB,IAAA,OAAO,SAAS;AACpB;AAEA;;;;;;;;AAQG;SACa,mBAAmB,CAC/B,UAAkB,EAClB,gBAAwB,EACxB,QAA+B,EAAA;IAE/B,MAAM,eAAe,GAAG,0BAA0B,CAAC,UAAU,EAAE,QAAQ,CAAC;AACxE,IAAA,MAAM,SAAS,GAAG,QAAQ,CAAC,UAAU,CAAC;AAEtC,IAAA,IAAI,OAAO,IAAI,SAAS,IAAI,SAAS,CAAC,KAAK,IAAI,SAAS,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;QACvE,MAAM,eAAe,GAAG,oCAAoC,CACxD,gBAAgB,EAChB,SAAS,CAAC,KAAK,CAClB;QACD,OAAO,eAAe,GAAG,eAAe;;IAG5C,OAAO,eAAe,GAAG,gBAAgB;AAC7C;AAIA;;;;;;AAMG;AACa,SAAA,uBAAuB,CACnC,aAAqB,EACrB,QAA+B,EAAA;;IAE/B,MAAM,kBAAkB,GAAG,gCAAgC,CAAC,aAAa,EAAE,QAAQ,CAAC;AACpF,IAAA,MAAM,SAAS,GAAG,QAAQ,CAAC,kBAAkB,CAAC;IAE9C,IAAI,CAAC,SAAS,IAAI,EAAE,OAAO,IAAI,SAAS,CAAC,IAAI,EAAC,CAAA,EAAA,GAAC,SAA4B,CAAC,KAAK,gDAAE,MAAM,CAAA,EAAE;AACvF,QAAA,OAAO,IAAI;;AAGf,IAAA,OAAO,EAAC,kBAAkB,EAAE,SAAS,EAAE,SAA2B,EAAC;AACvE;AAEA;;;;;;;AAOG;SACa,0BAA0B,CACtC,QAA+B,EAC/B,kBAA0B,EAC1B,aAAoC,EAAA;AAEpC,IAAA,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,KACxB,CAAC,KAAK,kBAAkB,IAAI,OAAO,IAAI,IAAI,GAAE,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAK,IAAI,CAAE,EAAA,EAAA,KAAK,EAAE,aAAa,EAAE,CAAA,GAAE,IAAI,CACvF;AACL;AAUA;;;;;;;;;AASG;AACG,SAAU,oBAAoB,CAChC,UAAkB,EAClB,QAAgB,EAChB,QAAgB,EAChB,eAAsC,EAAA;IAEtC,MAAM,SAAS,GAAG,uBAAuB,CAAC,UAAU,EAAE,eAAe,CAAC;IAEtE,IAAI,CAAC,SAAS,EAAE;AACZ,QAAA,OAAO,IAAI;;AAGf,IAAA,MAAM,EAAC,kBAAkB,EAAE,SAAS,EAAC,GAAG,SAAS;AACjD,IAAA,MAAM,gBAAgB,GAAG,yBAAyB,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC,KAAK,CAAC;IACvF,MAAM,WAAW,GAAG,0BAA0B,CAC1C,eAAe,EACf,kBAAkB,EAClB,gBAAgB,CACnB;AACD,IAAA,MAAM,aAAa,GAAG,yBAAyB,CAAC,WAAW,CAAC;AAC5D,IAAA,MAAM,gBAAgB,GAAG,yBAAyB,CAAC,eAAe,CAAC;IACnE,MAAM,YAAY,GAAG,mBAAmB,CAAC,kBAAkB,EAAE,QAAQ,EAAE,eAAe,CAAC;IACvF,MAAM,YAAY,GAAG,mBAAmB,CAAC,kBAAkB,EAAE,QAAQ,EAAE,WAAW,CAAC;AACnF,IAAA,MAAM,WAAW,GAAG,gBAAgB,CAAC,YAAY,CAAC;IAElD,OAAO;QACH,WAAW;QACX,aAAa;QACb,YAAY;QACZ,YAAY;QACZ,WAAW;KACd;AACL;;;;"}
@@ -1,3 +1,5 @@
1
1
  import { MenuItemsWithGroups } from '../../../types';
2
- /** Sorts menu items while preserving divider positions at their original locations. */
2
+ /**
3
+ * Sorts menu items while preserving divider and action positions at their original locations.
4
+ */
3
5
  export declare function sortMenuItemsWithDividers(oldIndex: number, newIndex: number, currentFlatList: MenuItemsWithGroups[]): MenuItemsWithGroups[];