@gravity-ui/navigation 5.0.0-beta.3 → 6.0.0-beta.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 (374) hide show
  1. package/build/cjs/assets/icons/control-menu-button.svg.js +41 -0
  2. package/build/cjs/assets/icons/control-menu-button.svg.js.map +1 -0
  3. package/build/cjs/components/AsideHeader/AsideHeader.css +1 -1
  4. package/build/cjs/components/AsideHeader/AsideHeader.js +1 -1
  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 +1 -12
  8. package/build/cjs/components/AsideHeader/AsideHeaderContext.js +5 -4
  9. package/build/cjs/components/AsideHeader/AsideHeaderContext.js.map +1 -1
  10. package/build/cjs/components/AsideHeader/components/AllPagesPanel/AllPagesListItem/AllPagesListItem.css +1 -0
  11. package/build/cjs/components/AsideHeader/components/AllPagesPanel/AllPagesListItem/AllPagesListItem.d.ts +12 -0
  12. package/build/cjs/components/AsideHeader/components/AllPagesPanel/AllPagesListItem/AllPagesListItem.js +44 -0
  13. package/build/cjs/components/AsideHeader/components/AllPagesPanel/AllPagesListItem/AllPagesListItem.js.map +1 -0
  14. package/build/cjs/components/AsideHeader/components/AllPagesPanel/AllPagesListItem/AllPagesListItem.module.scss.js +8 -0
  15. package/build/cjs/components/AsideHeader/components/AllPagesPanel/AllPagesListItem/AllPagesListItem.module.scss.js.map +1 -0
  16. package/build/cjs/components/AsideHeader/components/AllPagesPanel/AllPagesListItem/index.d.ts +1 -0
  17. package/build/cjs/components/AsideHeader/components/AllPagesPanel/AllPagesPanel.css +1 -1
  18. package/build/cjs/components/AsideHeader/components/AllPagesPanel/AllPagesPanel.js +48 -98
  19. package/build/cjs/components/AsideHeader/components/AllPagesPanel/AllPagesPanel.js.map +1 -1
  20. package/build/cjs/components/AsideHeader/components/AllPagesPanel/AllPagesPanel.module.scss.js +1 -1
  21. package/build/cjs/components/AsideHeader/components/AllPagesPanel/constants.d.ts +0 -1
  22. package/build/cjs/components/AsideHeader/components/AllPagesPanel/constants.js +0 -2
  23. package/build/cjs/components/AsideHeader/components/AllPagesPanel/constants.js.map +1 -1
  24. package/build/cjs/components/AsideHeader/components/AllPagesPanel/i18n/en.json.js +1 -0
  25. package/build/cjs/components/AsideHeader/components/AllPagesPanel/i18n/en.json.js.map +1 -1
  26. package/build/cjs/components/AsideHeader/components/AllPagesPanel/i18n/index.d.ts +4 -4
  27. package/build/cjs/components/AsideHeader/components/AllPagesPanel/i18n/ru.json.js +1 -0
  28. package/build/cjs/components/AsideHeader/components/AllPagesPanel/i18n/ru.json.js.map +1 -1
  29. package/build/cjs/components/AsideHeader/components/AllPagesPanel/index.d.ts +1 -0
  30. package/build/cjs/components/AsideHeader/components/AllPagesPanel/useGroupedMenuItems.d.ts +4 -3
  31. package/build/cjs/components/AsideHeader/components/AllPagesPanel/useGroupedMenuItems.js +15 -62
  32. package/build/cjs/components/AsideHeader/components/AllPagesPanel/useGroupedMenuItems.js.map +1 -1
  33. package/build/cjs/components/AsideHeader/components/AllPagesPanel/useVisibleMenuItems.d.ts +2 -0
  34. package/build/cjs/components/AsideHeader/components/AllPagesPanel/useVisibleMenuItems.js +29 -0
  35. package/build/cjs/components/AsideHeader/components/AllPagesPanel/useVisibleMenuItems.js.map +1 -0
  36. package/build/cjs/components/AsideHeader/components/CollapseButton/CollapseButton.css +1 -1
  37. package/build/cjs/components/AsideHeader/components/CollapseButton/CollapseButton.js +6 -11
  38. package/build/cjs/components/AsideHeader/components/CollapseButton/CollapseButton.js.map +1 -1
  39. package/build/cjs/components/AsideHeader/components/CollapseButton/CollapseButton.module.scss.js +1 -1
  40. package/build/cjs/components/AsideHeader/components/CompositeBar/CompositeBar.css +1 -1
  41. package/build/cjs/components/AsideHeader/components/CompositeBar/CompositeBar.d.ts +4 -26
  42. package/build/cjs/components/AsideHeader/components/CompositeBar/CompositeBar.js +39 -177
  43. package/build/cjs/components/AsideHeader/components/CompositeBar/CompositeBar.js.map +1 -1
  44. package/build/cjs/components/AsideHeader/components/CompositeBar/CompositeBar.module.scss.js +1 -1
  45. package/build/cjs/components/AsideHeader/components/CompositeBar/Item/Item.css +1 -1
  46. package/build/cjs/components/AsideHeader/components/CompositeBar/Item/Item.d.ts +1 -12
  47. package/build/cjs/components/AsideHeader/components/CompositeBar/Item/Item.js +52 -39
  48. package/build/cjs/components/AsideHeader/components/CompositeBar/Item/Item.js.map +1 -1
  49. package/build/cjs/components/AsideHeader/components/CompositeBar/Item/Item.module.scss.js +1 -1
  50. package/build/cjs/components/AsideHeader/components/CompositeBar/Item/Item.types.d.ts +20 -0
  51. package/build/cjs/components/AsideHeader/components/CompositeBar/Item/ItemPopup.d.ts +18 -0
  52. package/build/cjs/components/AsideHeader/components/CompositeBar/Item/ItemPopup.js +32 -0
  53. package/build/cjs/components/AsideHeader/components/CompositeBar/Item/ItemPopup.js.map +1 -0
  54. package/build/cjs/components/AsideHeader/components/CompositeBar/Item/renderItemTitle.d.ts +3 -0
  55. package/build/cjs/components/AsideHeader/components/CompositeBar/Item/renderItemTitle.js +19 -0
  56. package/build/cjs/components/AsideHeader/components/CompositeBar/Item/renderItemTitle.js.map +1 -0
  57. package/build/cjs/components/AsideHeader/components/CompositeBar/grouping.d.ts +11 -0
  58. package/build/cjs/components/AsideHeader/components/CompositeBar/grouping.js +68 -0
  59. package/build/cjs/components/AsideHeader/components/CompositeBar/grouping.js.map +1 -0
  60. package/build/cjs/components/AsideHeader/components/CompositeBar/utils.d.ts +10 -2
  61. package/build/cjs/components/AsideHeader/components/CompositeBar/utils.js +90 -9
  62. package/build/cjs/components/AsideHeader/components/CompositeBar/utils.js.map +1 -1
  63. package/build/cjs/components/AsideHeader/components/FirstPanel.js +20 -25
  64. package/build/cjs/components/AsideHeader/components/FirstPanel.js.map +1 -1
  65. package/build/cjs/components/AsideHeader/components/FooterItem/FooterItem.css +1 -1
  66. package/build/cjs/components/AsideHeader/components/Header.js +3 -9
  67. package/build/cjs/components/AsideHeader/components/Header.js.map +1 -1
  68. package/build/cjs/components/AsideHeader/components/PageLayout/AsideFallback.css +2 -0
  69. package/build/cjs/components/AsideHeader/components/PageLayout/AsideFallback.js +1 -0
  70. package/build/cjs/components/AsideHeader/components/PageLayout/PageLayout.css +2 -0
  71. package/build/cjs/components/AsideHeader/components/PageLayout/PageLayout.d.ts +1 -2
  72. package/build/cjs/components/AsideHeader/components/PageLayout/PageLayout.js +7 -16
  73. package/build/cjs/components/AsideHeader/components/PageLayout/PageLayout.js.map +1 -1
  74. package/build/cjs/components/AsideHeader/components/PageLayout/PageLayoutAside.css +2 -0
  75. package/build/cjs/components/AsideHeader/components/PageLayout/PageLayoutAside.js +3 -6
  76. package/build/cjs/components/AsideHeader/components/PageLayout/PageLayoutAside.js.map +1 -1
  77. package/build/cjs/components/AsideHeader/components/Panels.d.ts +1 -1
  78. package/build/cjs/components/AsideHeader/components/Panels.js +6 -17
  79. package/build/cjs/components/AsideHeader/components/Panels.js.map +1 -1
  80. package/build/cjs/components/AsideHeader/index.d.ts +1 -0
  81. package/build/cjs/components/AsideHeader/types.d.ts +3 -18
  82. package/build/cjs/components/AsideHeader/types.js.map +1 -1
  83. package/build/cjs/components/AsideHeader/useAsideHeaderInnerContextValue.d.ts +0 -4
  84. package/build/cjs/components/AsideHeader/useAsideHeaderInnerContextValue.js +8 -21
  85. package/build/cjs/components/AsideHeader/useAsideHeaderInnerContextValue.js.map +1 -1
  86. package/build/cjs/components/HotkeysPanel/HotkeysPanel.d.ts +7 -3
  87. package/build/cjs/components/HotkeysPanel/HotkeysPanel.js +15 -7
  88. package/build/cjs/components/HotkeysPanel/HotkeysPanel.js.map +1 -1
  89. package/build/cjs/components/Logo/Logo.css +1 -1
  90. package/build/cjs/components/Logo/Logo.js +2 -12
  91. package/build/cjs/components/Logo/Logo.js.map +1 -1
  92. package/build/cjs/components/Logo/Logo.module.scss.js +1 -1
  93. package/build/cjs/components/MobileHeader/BurgerMenu/BurgerCompositeBar/BurgerCompositeBar.css +1 -1
  94. package/build/cjs/components/MobileHeader/BurgerMenu/BurgerCompositeBar/BurgerCompositeBar.module.scss.js +1 -1
  95. package/build/cjs/components/MobileHeader/MobileHeader.d.ts +3 -7
  96. package/build/cjs/components/MobileHeader/MobileHeader.js +18 -14
  97. package/build/cjs/components/MobileHeader/MobileHeader.js.map +1 -1
  98. package/build/cjs/components/MobileHeader/OverlapPanel/OverlapPanel.d.ts +2 -2
  99. package/build/cjs/components/MobileHeader/OverlapPanel/OverlapPanel.js +2 -2
  100. package/build/cjs/components/MobileHeader/OverlapPanel/OverlapPanel.js.map +1 -1
  101. package/build/cjs/components/MobileHeader/types.d.ts +1 -1
  102. package/build/cjs/components/Settings/Settings.css +1 -1
  103. package/build/cjs/components/Settings/SettingsMenu/SettingsMenu.css +1 -1
  104. package/build/cjs/components/Settings/SettingsMenu/SettingsMenu.js +5 -1
  105. package/build/cjs/components/Settings/SettingsMenu/SettingsMenu.js.map +1 -1
  106. package/build/cjs/components/Settings/SettingsMenu/SettingsMenu.module.scss.js +1 -1
  107. package/build/cjs/components/constants.d.ts +3 -4
  108. package/build/cjs/components/constants.js +4 -6
  109. package/build/cjs/components/constants.js.map +1 -1
  110. package/build/cjs/components/types.d.ts +15 -6
  111. package/build/esm/assets/icons/control-menu-button.svg.js +18 -0
  112. package/build/esm/assets/icons/control-menu-button.svg.js.map +1 -0
  113. package/build/esm/components/AsideHeader/AsideHeader.css +1 -1
  114. package/build/esm/components/AsideHeader/AsideHeader.js +1 -1
  115. package/build/esm/components/AsideHeader/AsideHeader.js.map +1 -1
  116. package/build/esm/components/AsideHeader/AsideHeader.module.scss.js +1 -1
  117. package/build/esm/components/AsideHeader/AsideHeaderContext.d.ts +1 -12
  118. package/build/esm/components/AsideHeader/AsideHeaderContext.js +5 -5
  119. package/build/esm/components/AsideHeader/AsideHeaderContext.js.map +1 -1
  120. package/build/esm/components/AsideHeader/components/AllPagesPanel/AllPagesListItem/AllPagesListItem.css +1 -0
  121. package/build/esm/components/AsideHeader/components/AllPagesPanel/AllPagesListItem/AllPagesListItem.d.ts +12 -0
  122. package/build/esm/components/AsideHeader/components/AllPagesPanel/AllPagesListItem/AllPagesListItem.js +42 -0
  123. package/build/esm/components/AsideHeader/components/AllPagesPanel/AllPagesListItem/AllPagesListItem.js.map +1 -0
  124. package/build/esm/components/AsideHeader/components/AllPagesPanel/AllPagesListItem/AllPagesListItem.module.scss.js +4 -0
  125. package/build/esm/components/AsideHeader/components/AllPagesPanel/AllPagesListItem/AllPagesListItem.module.scss.js.map +1 -0
  126. package/build/esm/components/AsideHeader/components/AllPagesPanel/AllPagesListItem/index.d.ts +1 -0
  127. package/build/esm/components/AsideHeader/components/AllPagesPanel/AllPagesPanel.css +1 -1
  128. package/build/esm/components/AsideHeader/components/AllPagesPanel/AllPagesPanel.js +49 -99
  129. package/build/esm/components/AsideHeader/components/AllPagesPanel/AllPagesPanel.js.map +1 -1
  130. package/build/esm/components/AsideHeader/components/AllPagesPanel/AllPagesPanel.module.scss.js +1 -1
  131. package/build/esm/components/AsideHeader/components/AllPagesPanel/constants.d.ts +0 -1
  132. package/build/esm/components/AsideHeader/components/AllPagesPanel/constants.js +1 -2
  133. package/build/esm/components/AsideHeader/components/AllPagesPanel/constants.js.map +1 -1
  134. package/build/esm/components/AsideHeader/components/AllPagesPanel/i18n/en.json.js +1 -0
  135. package/build/esm/components/AsideHeader/components/AllPagesPanel/i18n/en.json.js.map +1 -1
  136. package/build/esm/components/AsideHeader/components/AllPagesPanel/i18n/index.d.ts +4 -4
  137. package/build/esm/components/AsideHeader/components/AllPagesPanel/i18n/ru.json.js +1 -0
  138. package/build/esm/components/AsideHeader/components/AllPagesPanel/i18n/ru.json.js.map +1 -1
  139. package/build/esm/components/AsideHeader/components/AllPagesPanel/index.d.ts +1 -0
  140. package/build/esm/components/AsideHeader/components/AllPagesPanel/useGroupedMenuItems.d.ts +4 -3
  141. package/build/esm/components/AsideHeader/components/AllPagesPanel/useGroupedMenuItems.js +15 -62
  142. package/build/esm/components/AsideHeader/components/AllPagesPanel/useGroupedMenuItems.js.map +1 -1
  143. package/build/esm/components/AsideHeader/components/AllPagesPanel/useVisibleMenuItems.d.ts +2 -0
  144. package/build/esm/components/AsideHeader/components/AllPagesPanel/useVisibleMenuItems.js +27 -0
  145. package/build/esm/components/AsideHeader/components/AllPagesPanel/useVisibleMenuItems.js.map +1 -0
  146. package/build/esm/components/AsideHeader/components/CollapseButton/CollapseButton.css +1 -1
  147. package/build/esm/components/AsideHeader/components/CollapseButton/CollapseButton.js +8 -13
  148. package/build/esm/components/AsideHeader/components/CollapseButton/CollapseButton.js.map +1 -1
  149. package/build/esm/components/AsideHeader/components/CollapseButton/CollapseButton.module.scss.js +1 -1
  150. package/build/esm/components/AsideHeader/components/CompositeBar/CompositeBar.css +1 -1
  151. package/build/esm/components/AsideHeader/components/CompositeBar/CompositeBar.d.ts +4 -26
  152. package/build/esm/components/AsideHeader/components/CompositeBar/CompositeBar.js +41 -178
  153. package/build/esm/components/AsideHeader/components/CompositeBar/CompositeBar.js.map +1 -1
  154. package/build/esm/components/AsideHeader/components/CompositeBar/CompositeBar.module.scss.js +1 -1
  155. package/build/esm/components/AsideHeader/components/CompositeBar/Item/Item.css +1 -1
  156. package/build/esm/components/AsideHeader/components/CompositeBar/Item/Item.d.ts +1 -12
  157. package/build/esm/components/AsideHeader/components/CompositeBar/Item/Item.js +55 -42
  158. package/build/esm/components/AsideHeader/components/CompositeBar/Item/Item.js.map +1 -1
  159. package/build/esm/components/AsideHeader/components/CompositeBar/Item/Item.module.scss.js +1 -1
  160. package/build/esm/components/AsideHeader/components/CompositeBar/Item/Item.types.d.ts +20 -0
  161. package/build/esm/components/AsideHeader/components/CompositeBar/Item/ItemPopup.d.ts +18 -0
  162. package/build/esm/components/AsideHeader/components/CompositeBar/Item/ItemPopup.js +30 -0
  163. package/build/esm/components/AsideHeader/components/CompositeBar/Item/ItemPopup.js.map +1 -0
  164. package/build/esm/components/AsideHeader/components/CompositeBar/Item/renderItemTitle.d.ts +3 -0
  165. package/build/esm/components/AsideHeader/components/CompositeBar/Item/renderItemTitle.js +17 -0
  166. package/build/esm/components/AsideHeader/components/CompositeBar/Item/renderItemTitle.js.map +1 -0
  167. package/build/esm/components/AsideHeader/components/CompositeBar/grouping.d.ts +11 -0
  168. package/build/esm/components/AsideHeader/components/CompositeBar/grouping.js +65 -0
  169. package/build/esm/components/AsideHeader/components/CompositeBar/grouping.js.map +1 -0
  170. package/build/esm/components/AsideHeader/components/CompositeBar/utils.d.ts +10 -2
  171. package/build/esm/components/AsideHeader/components/CompositeBar/utils.js +87 -11
  172. package/build/esm/components/AsideHeader/components/CompositeBar/utils.js.map +1 -1
  173. package/build/esm/components/AsideHeader/components/FirstPanel.js +20 -25
  174. package/build/esm/components/AsideHeader/components/FirstPanel.js.map +1 -1
  175. package/build/esm/components/AsideHeader/components/FooterItem/FooterItem.css +1 -1
  176. package/build/esm/components/AsideHeader/components/Header.js +3 -9
  177. package/build/esm/components/AsideHeader/components/Header.js.map +1 -1
  178. package/build/esm/components/AsideHeader/components/PageLayout/AsideFallback.css +2 -0
  179. package/build/esm/components/AsideHeader/components/PageLayout/AsideFallback.js +1 -0
  180. package/build/esm/components/AsideHeader/components/PageLayout/PageLayout.css +2 -0
  181. package/build/esm/components/AsideHeader/components/PageLayout/PageLayout.d.ts +1 -2
  182. package/build/esm/components/AsideHeader/components/PageLayout/PageLayout.js +8 -17
  183. package/build/esm/components/AsideHeader/components/PageLayout/PageLayout.js.map +1 -1
  184. package/build/esm/components/AsideHeader/components/PageLayout/PageLayoutAside.css +2 -0
  185. package/build/esm/components/AsideHeader/components/PageLayout/PageLayoutAside.js +3 -6
  186. package/build/esm/components/AsideHeader/components/PageLayout/PageLayoutAside.js.map +1 -1
  187. package/build/esm/components/AsideHeader/components/Panels.d.ts +1 -1
  188. package/build/esm/components/AsideHeader/components/Panels.js +7 -18
  189. package/build/esm/components/AsideHeader/components/Panels.js.map +1 -1
  190. package/build/esm/components/AsideHeader/index.d.ts +1 -0
  191. package/build/esm/components/AsideHeader/types.d.ts +3 -18
  192. package/build/esm/components/AsideHeader/types.js.map +1 -1
  193. package/build/esm/components/AsideHeader/useAsideHeaderInnerContextValue.d.ts +0 -4
  194. package/build/esm/components/AsideHeader/useAsideHeaderInnerContextValue.js +8 -21
  195. package/build/esm/components/AsideHeader/useAsideHeaderInnerContextValue.js.map +1 -1
  196. package/build/esm/components/HotkeysPanel/HotkeysPanel.d.ts +7 -3
  197. package/build/esm/components/HotkeysPanel/HotkeysPanel.js +15 -7
  198. package/build/esm/components/HotkeysPanel/HotkeysPanel.js.map +1 -1
  199. package/build/esm/components/Logo/Logo.css +1 -1
  200. package/build/esm/components/Logo/Logo.js +2 -12
  201. package/build/esm/components/Logo/Logo.js.map +1 -1
  202. package/build/esm/components/Logo/Logo.module.scss.js +1 -1
  203. package/build/esm/components/MobileHeader/BurgerMenu/BurgerCompositeBar/BurgerCompositeBar.css +1 -1
  204. package/build/esm/components/MobileHeader/BurgerMenu/BurgerCompositeBar/BurgerCompositeBar.module.scss.js +1 -1
  205. package/build/esm/components/MobileHeader/MobileHeader.d.ts +3 -7
  206. package/build/esm/components/MobileHeader/MobileHeader.js +18 -14
  207. package/build/esm/components/MobileHeader/MobileHeader.js.map +1 -1
  208. package/build/esm/components/MobileHeader/OverlapPanel/OverlapPanel.d.ts +2 -2
  209. package/build/esm/components/MobileHeader/OverlapPanel/OverlapPanel.js +2 -2
  210. package/build/esm/components/MobileHeader/OverlapPanel/OverlapPanel.js.map +1 -1
  211. package/build/esm/components/MobileHeader/types.d.ts +1 -1
  212. package/build/esm/components/Settings/Settings.css +1 -1
  213. package/build/esm/components/Settings/SettingsMenu/SettingsMenu.css +1 -1
  214. package/build/esm/components/Settings/SettingsMenu/SettingsMenu.js +5 -1
  215. package/build/esm/components/Settings/SettingsMenu/SettingsMenu.js.map +1 -1
  216. package/build/esm/components/Settings/SettingsMenu/SettingsMenu.module.scss.js +1 -1
  217. package/build/esm/components/constants.d.ts +3 -4
  218. package/build/esm/components/constants.js +4 -5
  219. package/build/esm/components/constants.js.map +1 -1
  220. package/build/esm/components/types.d.ts +15 -6
  221. package/codemods/transforms/unifyInterfaces.ts +0 -1
  222. package/package.json +5 -4
  223. package/build/cjs/components/ActionBar/__stories__/ActionBar.stories.d.ts +0 -20
  224. package/build/cjs/components/ActionBar/__stories__/ActionBarShowcase.d.ts +0 -2
  225. package/build/cjs/components/ActionBar/__stories__/ActionBarSingleSection.d.ts +0 -2
  226. package/build/cjs/components/ActionBar/__stories__/ActionBarStretchGroupShowcase.d.ts +0 -2
  227. package/build/cjs/components/ActionBar/__tests__/helpersPlaywright.d.ts +0 -5
  228. package/build/cjs/components/AsideHeader/__stories__/AsideHeader.stories.d.ts +0 -23
  229. package/build/cjs/components/AsideHeader/__stories__/AsideHeaderShowcase.d.ts +0 -13
  230. package/build/cjs/components/AsideHeader/__stories__/getAsideHeaderWrapper.d.ts +0 -3
  231. package/build/cjs/components/AsideHeader/__stories__/moc.d.ts +0 -17
  232. package/build/cjs/components/AsideHeader/__tests__/helpersPlaywright.d.ts +0 -2
  233. package/build/cjs/components/AsideHeader/components/AllPagesPanel/utils/buildExpandedFromFlatList.d.ts +0 -3
  234. package/build/cjs/components/AsideHeader/components/AllPagesPanel/utils/buildExpandedFromFlatList.js +0 -17
  235. package/build/cjs/components/AsideHeader/components/AllPagesPanel/utils/buildExpandedFromFlatList.js.map +0 -1
  236. package/build/cjs/components/AsideHeader/components/AllPagesPanel/utils/getIsMenuItem.d.ts +0 -2
  237. package/build/cjs/components/AsideHeader/components/AllPagesPanel/utils/getIsMenuItem.js +0 -13
  238. package/build/cjs/components/AsideHeader/components/AllPagesPanel/utils/getIsMenuItem.js.map +0 -1
  239. package/build/cjs/components/AsideHeader/components/AllPagesPanel/utils/getRealIndexInGroup.d.ts +0 -2
  240. package/build/cjs/components/AsideHeader/components/AllPagesPanel/utils/getRealIndexInGroup.js +0 -22
  241. package/build/cjs/components/AsideHeader/components/AllPagesPanel/utils/getRealIndexInGroup.js.map +0 -1
  242. package/build/cjs/components/AsideHeader/components/AllPagesPanel/utils/sortMenuItems.d.ts +0 -2
  243. package/build/cjs/components/AsideHeader/components/AllPagesPanel/utils/sortMenuItems.js +0 -16
  244. package/build/cjs/components/AsideHeader/components/AllPagesPanel/utils/sortMenuItems.js.map +0 -1
  245. package/build/cjs/components/AsideHeader/components/AllPagesPanel/utils/sortMenuItemsWithDividers.d.ts +0 -3
  246. package/build/cjs/components/AsideHeader/components/AllPagesPanel/utils/sortMenuItemsWithDividers.js +0 -44
  247. package/build/cjs/components/AsideHeader/components/AllPagesPanel/utils/sortMenuItemsWithDividers.js.map +0 -1
  248. package/build/cjs/components/AsideHeader/components/CompositeBar/MultipleTooltip/MultipleTooltip.css +0 -9
  249. package/build/cjs/components/AsideHeader/components/CompositeBar/MultipleTooltip/MultipleTooltip.d.ts +0 -9
  250. package/build/cjs/components/AsideHeader/components/CompositeBar/MultipleTooltip/MultipleTooltip.js +0 -34
  251. package/build/cjs/components/AsideHeader/components/CompositeBar/MultipleTooltip/MultipleTooltip.js.map +0 -1
  252. package/build/cjs/components/AsideHeader/components/CompositeBar/MultipleTooltip/MultipleTooltip.module.scss.js +0 -8
  253. package/build/cjs/components/AsideHeader/components/CompositeBar/MultipleTooltip/MultipleTooltip.module.scss.js.map +0 -1
  254. package/build/cjs/components/AsideHeader/components/CompositeBar/MultipleTooltip/MultipleTooltipContext.d.ts +0 -24
  255. package/build/cjs/components/AsideHeader/components/CompositeBar/MultipleTooltip/MultipleTooltipContext.js +0 -29
  256. package/build/cjs/components/AsideHeader/components/CompositeBar/MultipleTooltip/MultipleTooltipContext.js.map +0 -1
  257. package/build/cjs/components/AsideHeader/components/CompositeBar/MultipleTooltip/index.d.ts +0 -2
  258. package/build/cjs/components/AsideHeader/components/FooterItem/__stories__/FooterItem.stories.d.ts +0 -6
  259. package/build/cjs/components/AsideHeader/components/FooterItem/__tests__/helpersPlaywright.d.ts +0 -2
  260. package/build/cjs/components/AsideHeader/hooks/useDelayedToggle.d.ts +0 -6
  261. package/build/cjs/components/AsideHeader/hooks/useDelayedToggle.js +0 -57
  262. package/build/cjs/components/AsideHeader/hooks/useDelayedToggle.js.map +0 -1
  263. package/build/cjs/components/AsideHeader/hooks/useIsExpanded.d.ts +0 -7
  264. package/build/cjs/components/AsideHeader/hooks/useIsExpanded.js +0 -44
  265. package/build/cjs/components/AsideHeader/hooks/useIsExpanded.js.map +0 -1
  266. package/build/cjs/components/AsideHeader/utils/getGroupHeight.d.ts +0 -2
  267. package/build/cjs/components/AsideHeader/utils/getGroupHeight.js +0 -16
  268. package/build/cjs/components/AsideHeader/utils/getGroupHeight.js.map +0 -1
  269. package/build/cjs/components/Footer/desktop/__stories__/Footer.stories.d.ts +0 -8
  270. package/build/cjs/components/Footer/desktop/__stories__/FooterShowcase.d.ts +0 -4
  271. package/build/cjs/components/Footer/desktop/__stories__/moc.d.ts +0 -3
  272. package/build/cjs/components/Footer/desktop/__tests__/helpersPlaywright.d.ts +0 -2
  273. package/build/cjs/components/Footer/mobile/__stories__/MobileFooter.stories.d.ts +0 -8
  274. package/build/cjs/components/Footer/mobile/__stories__/MobileFooterShowcase.d.ts +0 -4
  275. package/build/cjs/components/Footer/mobile/__stories__/moc.d.ts +0 -3
  276. package/build/cjs/components/Footer/mobile/__tests__/helpersPlaywright.d.ts +0 -2
  277. package/build/cjs/components/HotkeysPanel/__stories__/HotkeysPanel.stories.d.ts +0 -5
  278. package/build/cjs/components/HotkeysPanel/__stories__/HotkeysPanelShowcase.d.ts +0 -6
  279. package/build/cjs/components/HotkeysPanel/__stories__/moc.d.ts +0 -2
  280. package/build/cjs/components/HotkeysPanel/__tests__/helpersPlaywright.d.ts +0 -2
  281. package/build/cjs/components/Logo/__stories__/Logo.stories.d.ts +0 -7
  282. package/build/cjs/components/Logo/__tests__/helpersPlaywright.d.ts +0 -2
  283. package/build/cjs/components/MobileHeader/BurgerMenu/__stories__/BurgerMenu.stories.d.ts +0 -6
  284. package/build/cjs/components/MobileHeader/BurgerMenu/__stories__/moc.d.ts +0 -2
  285. package/build/cjs/components/MobileHeader/BurgerMenu/__tests__/helpersPlaywright.d.ts +0 -2
  286. package/build/cjs/components/MobileHeader/OverlapPanel/__stories__/OverlapPanel.stories.d.ts +0 -6
  287. package/build/cjs/components/MobileHeader/OverlapPanel/__stories__/moc.d.ts +0 -2
  288. package/build/cjs/components/MobileHeader/OverlapPanel/__tests__/helpersPlaywright.d.ts +0 -2
  289. package/build/cjs/components/MobileHeader/__stories__/MobileHeader.stories.d.ts +0 -4
  290. package/build/cjs/components/MobileHeader/__stories__/MobileHeaderShowcase.d.ts +0 -3
  291. package/build/cjs/components/MobileHeader/__stories__/moc.d.ts +0 -1
  292. package/build/cjs/components/MobileHeader/__tests__/helpersPlaywright.d.ts +0 -2
  293. package/build/cjs/components/MobileLogo/__stories__/MobileLogo.stories.d.ts +0 -6
  294. package/build/cjs/components/MobileLogo/__tests__/helpersPlaywright.d.ts +0 -2
  295. package/build/cjs/components/Settings/__stories__/Settings.stories.d.ts +0 -5
  296. package/build/cjs/components/Settings/__stories__/SettingsDemo.d.ts +0 -14
  297. package/build/cjs/components/Settings/__stories__/SettingsMobileDemo.d.ts +0 -8
  298. package/build/cjs/components/Settings/__tests__/helpersPlaywright.d.ts +0 -2
  299. package/build/esm/components/ActionBar/__stories__/ActionBar.stories.d.ts +0 -20
  300. package/build/esm/components/ActionBar/__stories__/ActionBarShowcase.d.ts +0 -2
  301. package/build/esm/components/ActionBar/__stories__/ActionBarSingleSection.d.ts +0 -2
  302. package/build/esm/components/ActionBar/__stories__/ActionBarStretchGroupShowcase.d.ts +0 -2
  303. package/build/esm/components/ActionBar/__tests__/helpersPlaywright.d.ts +0 -5
  304. package/build/esm/components/AsideHeader/__stories__/AsideHeader.stories.d.ts +0 -23
  305. package/build/esm/components/AsideHeader/__stories__/AsideHeaderShowcase.d.ts +0 -13
  306. package/build/esm/components/AsideHeader/__stories__/getAsideHeaderWrapper.d.ts +0 -3
  307. package/build/esm/components/AsideHeader/__stories__/moc.d.ts +0 -17
  308. package/build/esm/components/AsideHeader/__tests__/helpersPlaywright.d.ts +0 -2
  309. package/build/esm/components/AsideHeader/components/AllPagesPanel/utils/buildExpandedFromFlatList.d.ts +0 -3
  310. package/build/esm/components/AsideHeader/components/AllPagesPanel/utils/buildExpandedFromFlatList.js +0 -15
  311. package/build/esm/components/AsideHeader/components/AllPagesPanel/utils/buildExpandedFromFlatList.js.map +0 -1
  312. package/build/esm/components/AsideHeader/components/AllPagesPanel/utils/getIsMenuItem.d.ts +0 -2
  313. package/build/esm/components/AsideHeader/components/AllPagesPanel/utils/getIsMenuItem.js +0 -11
  314. package/build/esm/components/AsideHeader/components/AllPagesPanel/utils/getIsMenuItem.js.map +0 -1
  315. package/build/esm/components/AsideHeader/components/AllPagesPanel/utils/getRealIndexInGroup.d.ts +0 -2
  316. package/build/esm/components/AsideHeader/components/AllPagesPanel/utils/getRealIndexInGroup.js +0 -20
  317. package/build/esm/components/AsideHeader/components/AllPagesPanel/utils/getRealIndexInGroup.js.map +0 -1
  318. package/build/esm/components/AsideHeader/components/AllPagesPanel/utils/sortMenuItems.d.ts +0 -2
  319. package/build/esm/components/AsideHeader/components/AllPagesPanel/utils/sortMenuItems.js +0 -14
  320. package/build/esm/components/AsideHeader/components/AllPagesPanel/utils/sortMenuItems.js.map +0 -1
  321. package/build/esm/components/AsideHeader/components/AllPagesPanel/utils/sortMenuItemsWithDividers.d.ts +0 -3
  322. package/build/esm/components/AsideHeader/components/AllPagesPanel/utils/sortMenuItemsWithDividers.js +0 -42
  323. package/build/esm/components/AsideHeader/components/AllPagesPanel/utils/sortMenuItemsWithDividers.js.map +0 -1
  324. package/build/esm/components/AsideHeader/components/CompositeBar/MultipleTooltip/MultipleTooltip.css +0 -9
  325. package/build/esm/components/AsideHeader/components/CompositeBar/MultipleTooltip/MultipleTooltip.d.ts +0 -9
  326. package/build/esm/components/AsideHeader/components/CompositeBar/MultipleTooltip/MultipleTooltip.js +0 -32
  327. package/build/esm/components/AsideHeader/components/CompositeBar/MultipleTooltip/MultipleTooltip.js.map +0 -1
  328. package/build/esm/components/AsideHeader/components/CompositeBar/MultipleTooltip/MultipleTooltip.module.scss.js +0 -4
  329. package/build/esm/components/AsideHeader/components/CompositeBar/MultipleTooltip/MultipleTooltip.module.scss.js.map +0 -1
  330. package/build/esm/components/AsideHeader/components/CompositeBar/MultipleTooltip/MultipleTooltipContext.d.ts +0 -24
  331. package/build/esm/components/AsideHeader/components/CompositeBar/MultipleTooltip/MultipleTooltipContext.js +0 -26
  332. package/build/esm/components/AsideHeader/components/CompositeBar/MultipleTooltip/MultipleTooltipContext.js.map +0 -1
  333. package/build/esm/components/AsideHeader/components/CompositeBar/MultipleTooltip/index.d.ts +0 -2
  334. package/build/esm/components/AsideHeader/components/FooterItem/__stories__/FooterItem.stories.d.ts +0 -6
  335. package/build/esm/components/AsideHeader/components/FooterItem/__tests__/helpersPlaywright.d.ts +0 -2
  336. package/build/esm/components/AsideHeader/hooks/useDelayedToggle.d.ts +0 -6
  337. package/build/esm/components/AsideHeader/hooks/useDelayedToggle.js +0 -55
  338. package/build/esm/components/AsideHeader/hooks/useDelayedToggle.js.map +0 -1
  339. package/build/esm/components/AsideHeader/hooks/useIsExpanded.d.ts +0 -7
  340. package/build/esm/components/AsideHeader/hooks/useIsExpanded.js +0 -42
  341. package/build/esm/components/AsideHeader/hooks/useIsExpanded.js.map +0 -1
  342. package/build/esm/components/AsideHeader/utils/getGroupHeight.d.ts +0 -2
  343. package/build/esm/components/AsideHeader/utils/getGroupHeight.js +0 -14
  344. package/build/esm/components/AsideHeader/utils/getGroupHeight.js.map +0 -1
  345. package/build/esm/components/Footer/desktop/__stories__/Footer.stories.d.ts +0 -8
  346. package/build/esm/components/Footer/desktop/__stories__/FooterShowcase.d.ts +0 -4
  347. package/build/esm/components/Footer/desktop/__stories__/moc.d.ts +0 -3
  348. package/build/esm/components/Footer/desktop/__tests__/helpersPlaywright.d.ts +0 -2
  349. package/build/esm/components/Footer/mobile/__stories__/MobileFooter.stories.d.ts +0 -8
  350. package/build/esm/components/Footer/mobile/__stories__/MobileFooterShowcase.d.ts +0 -4
  351. package/build/esm/components/Footer/mobile/__stories__/moc.d.ts +0 -3
  352. package/build/esm/components/Footer/mobile/__tests__/helpersPlaywright.d.ts +0 -2
  353. package/build/esm/components/HotkeysPanel/__stories__/HotkeysPanel.stories.d.ts +0 -5
  354. package/build/esm/components/HotkeysPanel/__stories__/HotkeysPanelShowcase.d.ts +0 -6
  355. package/build/esm/components/HotkeysPanel/__stories__/moc.d.ts +0 -2
  356. package/build/esm/components/HotkeysPanel/__tests__/helpersPlaywright.d.ts +0 -2
  357. package/build/esm/components/Logo/__stories__/Logo.stories.d.ts +0 -7
  358. package/build/esm/components/Logo/__tests__/helpersPlaywright.d.ts +0 -2
  359. package/build/esm/components/MobileHeader/BurgerMenu/__stories__/BurgerMenu.stories.d.ts +0 -6
  360. package/build/esm/components/MobileHeader/BurgerMenu/__stories__/moc.d.ts +0 -2
  361. package/build/esm/components/MobileHeader/BurgerMenu/__tests__/helpersPlaywright.d.ts +0 -2
  362. package/build/esm/components/MobileHeader/OverlapPanel/__stories__/OverlapPanel.stories.d.ts +0 -6
  363. package/build/esm/components/MobileHeader/OverlapPanel/__stories__/moc.d.ts +0 -2
  364. package/build/esm/components/MobileHeader/OverlapPanel/__tests__/helpersPlaywright.d.ts +0 -2
  365. package/build/esm/components/MobileHeader/__stories__/MobileHeader.stories.d.ts +0 -4
  366. package/build/esm/components/MobileHeader/__stories__/MobileHeaderShowcase.d.ts +0 -3
  367. package/build/esm/components/MobileHeader/__stories__/moc.d.ts +0 -1
  368. package/build/esm/components/MobileHeader/__tests__/helpersPlaywright.d.ts +0 -2
  369. package/build/esm/components/MobileLogo/__stories__/MobileLogo.stories.d.ts +0 -6
  370. package/build/esm/components/MobileLogo/__tests__/helpersPlaywright.d.ts +0 -2
  371. package/build/esm/components/Settings/__stories__/Settings.stories.d.ts +0 -5
  372. package/build/esm/components/Settings/__stories__/SettingsDemo.d.ts +0 -14
  373. package/build/esm/components/Settings/__stories__/SettingsMobileDemo.d.ts +0 -8
  374. package/build/esm/components/Settings/__tests__/helpersPlaywright.d.ts +0 -2
@@ -2,210 +2,72 @@ import './CompositeBar.css';
2
2
  'use strict';
3
3
 
4
4
  var React = require('react');
5
- var icons = require('@gravity-ui/icons');
6
5
  var uikit = require('@gravity-ui/uikit');
7
- var constants = require('../../../constants.js');
6
+ var AutoSizer = require('react-virtualized-auto-sizer');
8
7
  var cn = require('../../../utils/cn.js');
9
- var constants$2 = require('../AllPagesPanel/constants.js');
10
8
  var Item = require('./Item/Item.js');
11
- var MultipleTooltip = require('./MultipleTooltip/MultipleTooltip.js');
12
- var MultipleTooltipContext = require('./MultipleTooltip/MultipleTooltipContext.js');
13
- var constants$1 = require('./constants.js');
9
+ var constants = require('./constants.js');
10
+ var grouping = require('./grouping.js');
14
11
  var utils = require('./utils.js');
15
12
  var CompositeBar_module = require('./CompositeBar.module.scss.js');
16
13
 
17
14
  const b = cn.createBlock('composite-bar', CompositeBar_module.default);
18
- const CompositeBarView = ({ type, items, onItemClick, onMoreClick, multipleTooltip = false, compositeId, className, groupClassName, menuItemClassName, enableSorting = false, editMode = false, compact, onToggleGroupCollapsed, onToggleMenuGroupVisibility, onToggleMenuItemVisibility, onFirstLevelSortEnd, onSecondLevelSortEnd, }) => {
15
+ const CompositeBarView = ({ type, items, onItemClick, onMoreClick, collapseItems, compact, compositeId, menuItemClassName, }) => {
19
16
  const ref = React.useRef(null);
20
- const tooltipRef = React.useRef(null);
21
- const [hoveredGroupId, setHoveredGroupId] = React.useState(null);
22
- const { setValue: setMultipleTooltipContextValue, active: multipleTooltipActive, activeIndex, lastClickedItemIndex, } = React.useContext(MultipleTooltipContext.MultipleTooltipContext);
23
- React.useEffect(() => {
24
- function handleBlurWindow() {
25
- if (multipleTooltip && multipleTooltipActive) {
26
- setMultipleTooltipContextValue({ active: false });
27
- }
28
- }
29
- window.addEventListener('blur', handleBlurWindow);
30
- return () => {
31
- window.removeEventListener('blur', handleBlurWindow);
32
- };
33
- }, [multipleTooltip, multipleTooltipActive, setMultipleTooltipContextValue]);
34
- const onTooltipMouseEnter = React.useCallback((e) => {
35
- if (multipleTooltip &&
36
- compact &&
37
- !multipleTooltipActive &&
38
- document.hasFocus() &&
39
- activeIndex !== lastClickedItemIndex &&
40
- e.clientX <= constants.ASIDE_HEADER_COMPACT_WIDTH) {
41
- setMultipleTooltipContextValue === null || setMultipleTooltipContextValue === undefined ? undefined : setMultipleTooltipContextValue({
42
- active: true,
43
- });
44
- }
45
- }, [
46
- multipleTooltip,
47
- compact,
48
- multipleTooltipActive,
49
- activeIndex,
50
- lastClickedItemIndex,
51
- setMultipleTooltipContextValue,
52
- ]);
53
- const onTooltipMouseLeave = React.useCallback(() => {
54
- if (multipleTooltip && multipleTooltipActive && document.hasFocus()) {
55
- setMultipleTooltipContextValue === null || setMultipleTooltipContextValue === undefined ? undefined : setMultipleTooltipContextValue({
56
- active: false,
57
- lastClickedItemIndex: undefined,
58
- });
59
- }
60
- }, [multipleTooltip, multipleTooltipActive, setMultipleTooltipContextValue]);
61
- const onMouseEnterByIndex = React.useCallback((itemIndex) => () => {
62
- if (multipleTooltip && document.hasFocus()) {
63
- let multipleTooltipActiveValue = multipleTooltipActive;
64
- if (!multipleTooltipActive && itemIndex !== lastClickedItemIndex) {
65
- multipleTooltipActiveValue = true;
66
- }
67
- if (activeIndex === itemIndex &&
68
- multipleTooltipActive === multipleTooltipActiveValue) {
69
- return;
70
- }
71
- setMultipleTooltipContextValue({
72
- activeIndex: itemIndex,
73
- active: multipleTooltipActiveValue,
74
- });
75
- }
76
- }, [
77
- multipleTooltip,
78
- multipleTooltipActive,
79
- lastClickedItemIndex,
80
- activeIndex,
81
- setMultipleTooltipContextValue,
82
- ]);
83
17
  const onMouseLeave = React.useCallback(() => {
84
18
  var _a;
85
19
  if (compact && document.hasFocus()) {
86
20
  (_a = ref.current) === null || _a === undefined ? undefined : _a.activateItem(undefined);
87
- if (multipleTooltip &&
88
- (activeIndex !== undefined || lastClickedItemIndex !== undefined)) {
89
- setMultipleTooltipContextValue({
90
- activeIndex: undefined,
91
- lastClickedItemIndex: undefined,
92
- });
93
- }
94
- }
95
- }, [
96
- activeIndex,
97
- compact,
98
- lastClickedItemIndex,
99
- multipleTooltip,
100
- setMultipleTooltipContextValue,
101
- ]);
102
- const onItemClickByIndex = React.useCallback((itemIndex, orginalItemClick) => (item, collapsed, event) => {
103
- if (compact &&
104
- multipleTooltip &&
105
- itemIndex !== lastClickedItemIndex &&
106
- item.id !== constants$1.COLLAPSE_ITEM_ID) {
107
- setMultipleTooltipContextValue({
108
- lastClickedItemIndex: itemIndex,
109
- active: false,
110
- });
111
21
  }
22
+ }, [compact]);
23
+ const onItemClickByIndex = React.useCallback((orginalItemClick) => (item, collapsed, event) => {
112
24
  // Handle clicks on the "more" button (collapse item)
113
- if (item.id === constants$1.COLLAPSE_ITEM_ID && collapsed) {
25
+ if (item.id === constants.COLLAPSE_ITEM_ID && collapsed) {
114
26
  onMoreClick === null || onMoreClick === undefined ? undefined : onMoreClick();
115
27
  }
116
28
  else {
117
- onItemClick === null || onItemClick === undefined ? undefined : onItemClick(Object.assign(Object.assign({}, item), { onItemClick: orginalItemClick }), collapsed, event);
118
- }
119
- }, [
120
- compact,
121
- lastClickedItemIndex,
122
- multipleTooltip,
123
- onItemClick,
124
- onMoreClick,
125
- setMultipleTooltipContextValue,
126
- ]);
127
- const handleFirstLevelSortEnd = React.useCallback(({ oldIndex, newIndex }) => {
128
- if (onFirstLevelSortEnd) {
129
- onFirstLevelSortEnd({ oldIndex, newIndex });
29
+ onItemClick === null || onItemClick === undefined ? undefined : onItemClick(Object.assign(Object.assign({}, item), {
30
+ // For collapsed popup items, preserve the item's own onItemClick
31
+ // since orginalItemClick belongs to the collapse button, not the item
32
+ onItemClick: collapsed ? item.onItemClick : orginalItemClick }), collapsed, event);
130
33
  }
131
- }, [onFirstLevelSortEnd]);
132
- const handleSecondLevelSortEnd = React.useCallback((groupIndex) => ({ oldIndex, newIndex }) => {
133
- if (onSecondLevelSortEnd) {
134
- onSecondLevelSortEnd(groupIndex)({ oldIndex, newIndex });
135
- }
136
- }, [onSecondLevelSortEnd]);
137
- if (!items || items.length === 0) {
138
- return null;
139
- }
140
- return (React.createElement(React.Fragment, null,
141
- React.createElement("div", { className: className, ref: tooltipRef, onMouseEnter: onTooltipMouseEnter, onMouseLeave: onTooltipMouseLeave },
142
- React.createElement(uikit.List, { id: compositeId, ref: ref, items: items, selectedItemIndex: type === 'menu' ? utils.getSelectedItemIndex(items) : undefined, itemHeight: utils.getItemHeight, itemsHeight: utils.getItemsHeight, itemClassName: b('root-menu-item', { compact }), virtualized: false, filterable: false, sortable: enableSorting, onSortEnd: enableSorting ? handleFirstLevelSortEnd : undefined, renderItem: (item, _isItemActive, itemIndex) => {
143
- const groupId = item.groupId;
144
- const itemType = item.type || constants$1.ITEM_TYPE_REGULAR;
145
- if (!groupId) {
146
- return (React.createElement(Item.Item, Object.assign({}, item, { className: b('menu-item', { compact, type: itemType }, menuItemClassName), compact: compact, editMode: editMode, onMouseEnter: onMouseEnterByIndex(itemIndex), onMouseLeave: onMouseLeave, onItemClick: onItemClickByIndex(itemIndex, item.onItemClick), onToggleVisibility: onToggleMenuItemVisibility
147
- ? () => onToggleMenuItemVisibility(item)
148
- : undefined })));
149
- }
150
- const isCollapsible = Boolean('collapsible' in item && item.collapsible);
151
- const isCollapsed = Boolean('isCollapsed' in item && item.isCollapsed);
152
- const groupListItems = ('items' in item && item.items) || [];
153
- const hasHeader = item.title || item.icon || isCollapsible;
154
- const isUngrouped = item.id === constants$2.UNGROUPED_ID;
155
- const isGroupHovered = hoveredGroupId === item.id;
156
- let groupIcon = item.icon;
157
- if (!isCollapsed) {
158
- groupIcon = icons.ChevronDown;
159
- }
160
- else if (isGroupHovered) {
161
- groupIcon = icons.ChevronRight;
162
- }
163
- return (React.createElement("div", { className: b('menu-group', { expanded: !isCollapsed }, groupClassName) },
164
- hasHeader && !isUngrouped && (React.createElement(Item.Item, Object.assign({}, item, { className: b('menu-group-header', { collapsed: isCollapsed }), icon: groupIcon, compact: compact, editMode: editMode, onMouseEnter: () => {
165
- setHoveredGroupId(item.id);
166
- }, onMouseLeave: () => {
167
- setHoveredGroupId(null);
168
- }, onItemClick: onItemClickByIndex(itemIndex, onToggleGroupCollapsed
169
- ? () => onToggleGroupCollapsed(groupId)
170
- : undefined), onToggleVisibility: onToggleMenuGroupVisibility
171
- ? () => onToggleMenuGroupVisibility(groupId)
172
- : undefined }))),
173
- !isCollapsed && (React.createElement(uikit.List, { items: groupListItems, sortable: enableSorting, onSortEnd: handleSecondLevelSortEnd(itemIndex), virtualized: false, filterable: false, itemClassName: b('menu-group-item', {
174
- edit: enableSorting,
175
- compact,
176
- }), itemHeight: utils.getItemHeight, itemsHeight: utils.getItemsHeight, renderItem: (nestedItem, _isNestedItemActive, _nestedItemIndex) => {
177
- return (React.createElement(Item.Item, Object.assign({}, nestedItem, { compact: compact, editMode: editMode, onMouseEnter: () => {
178
- setHoveredGroupId(nestedItem.id);
179
- }, onMouseLeave: () => {
180
- setHoveredGroupId(null);
181
- }, onItemClick: onItemClickByIndex(itemIndex, item.onItemClick), onToggleVisibility: onToggleMenuItemVisibility
182
- ? () => onToggleMenuItemVisibility(nestedItem)
183
- : undefined })));
184
- } }))));
185
- } })),
186
- type === 'menu' && multipleTooltip && (React.createElement(MultipleTooltip.MultipleTooltip, { open: compact && multipleTooltipActive, anchorRef: tooltipRef, placement: ['right-start'], items: items }))));
34
+ }, [onItemClick, onMoreClick]);
35
+ return (React.createElement(uikit.List, { id: compositeId, ref: ref, items: items, selectedItemIndex: type === 'menu' ? utils.getSelectedItemIndex(items) : undefined, itemHeight: utils.getItemHeight, itemsHeight: utils.getItemsHeight, itemClassName: b('root-menu-item', menuItemClassName), virtualized: false, filterable: false, sortable: false, renderItem: (item) => {
36
+ let menuPopupItems;
37
+ let menuPopupTitle;
38
+ if (item.id === constants.COLLAPSE_ITEM_ID) {
39
+ menuPopupItems = collapseItems;
40
+ }
41
+ else if (grouping.isGroupHeaderItem(item)) {
42
+ menuPopupItems = item.groupChildren;
43
+ menuPopupTitle = item.groupPopupTitle;
44
+ }
45
+ return (React.createElement(Item.Item, Object.assign({}, item, { compact: compact, popupItemClassName: menuItemClassName, menuPopupItems: menuPopupItems, menuPopupTitle: menuPopupTitle, onMouseLeave: onMouseLeave, onItemClick: onItemClickByIndex(item.onItemClick) })));
46
+ } }));
187
47
  };
188
- const CompositeBar = ({ type, items, onItemClick, onMoreClick, onToggleGroupCollapsed, multipleTooltip = false, compact, compositeId, className, groupClassName, menuItemClassName, editMode = false, }) => {
189
- var _a;
190
- const visibleItems = (_a = items === null || items === undefined ? undefined : items.filter((item) => !item.hidden)) === null || _a === undefined ? undefined : _a.map((item) => {
191
- var _a;
192
- return (Object.assign(Object.assign({}, item), { items: 'items' in item ? (_a = item.items) === null || _a === undefined ? undefined : _a.filter((item) => !item.hidden) : [] }));
193
- });
194
- if (!visibleItems || visibleItems.length === 0) {
48
+ const CompositeBar = ({ type, items, menuGroups, menuMoreTitle, onItemClick, onMoreClick, compact, compositeId, menuItemClassName, }) => {
49
+ const groupedItems = React.useMemo(() => grouping.getGroupedItems(items, menuGroups), [items, menuGroups]);
50
+ if (groupedItems.length === 0) {
195
51
  return null;
196
52
  }
197
53
  let node;
198
54
  if (type === 'menu') {
199
- node = (React.createElement("div", { className: b({ scrollable: true }, className) },
200
- React.createElement(CompositeBarView, { compositeId: compositeId, groupClassName: groupClassName, menuItemClassName: menuItemClassName, type: "menu", compact: compact, items: visibleItems, onItemClick: onItemClick, onMoreClick: onMoreClick, multipleTooltip: multipleTooltip, onToggleGroupCollapsed: onToggleGroupCollapsed, editMode: editMode })));
55
+ const minHeight = utils.getItemsMinHeight(groupedItems);
56
+ const collapseItem = utils.getMoreButtonItem(menuMoreTitle);
57
+ node = (React.createElement("div", { className: b({ autosizer: true }), style: { minHeight } }, groupedItems.length !== 0 && (React.createElement(AutoSizer, null, (size) => {
58
+ const width = Number.isNaN(size.width) ? 0 : size.width;
59
+ const height = Number.isNaN(size.height) ? 0 : size.height;
60
+ const { listItems, collapseItems } = utils.getAutosizeListItems(groupedItems, height, collapseItem);
61
+ return (React.createElement("div", { style: { width, height } },
62
+ React.createElement(CompositeBarView, { compositeId: compositeId, type: "menu", compact: compact, items: listItems, onItemClick: onItemClick, onMoreClick: onMoreClick, menuItemClassName: menuItemClassName, collapseItems: collapseItems })));
63
+ }))));
201
64
  }
202
65
  else {
203
- node = (React.createElement("div", { className: b({ subheader: true }, className) },
204
- React.createElement(CompositeBarView, { groupClassName: groupClassName, menuItemClassName: menuItemClassName, type: "subheader", compact: compact, items: visibleItems, onItemClick: onItemClick, editMode: editMode })));
66
+ node = (React.createElement("div", { className: b({ subheader: true }) },
67
+ React.createElement(CompositeBarView, { type: "subheader", menuItemClassName: menuItemClassName, compact: compact, items: groupedItems, onItemClick: onItemClick })));
205
68
  }
206
- return React.createElement(MultipleTooltipContext.MultipleTooltipProvider, null, node);
69
+ return node;
207
70
  };
208
71
 
209
72
  exports.CompositeBar = CompositeBar;
210
- exports.CompositeBarView = CompositeBarView;
211
73
  //# sourceMappingURL=CompositeBar.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CompositeBar.js","sources":["../../../../../../../src/components/AsideHeader/components/CompositeBar/CompositeBar.tsx"],"sourcesContent":["import React, {FC, ReactNode, useCallback, useContext, useRef, useState} from 'react';\n\nimport {ChevronDown, ChevronRight} from '@gravity-ui/icons';\nimport {List, ListSortParams} from '@gravity-ui/uikit';\n\nimport {ASIDE_HEADER_COMPACT_WIDTH} from '../../../constants';\nimport {createBlock} from '../../../utils/cn';\nimport {AsideHeaderItem, MenuItemsWithGroups} from '../../types';\nimport {UNGROUPED_ID} from '../AllPagesPanel/constants';\n\nimport {Item, ItemProps} from './Item/Item';\nimport {MultipleTooltip, MultipleTooltipContext, MultipleTooltipProvider} from './MultipleTooltip';\nimport {COLLAPSE_ITEM_ID, ITEM_TYPE_REGULAR} from './constants';\nimport {getItemHeight, getItemsHeight, getSelectedItemIndex} from './utils';\n\nimport styles from './CompositeBar.module.scss';\n\nconst b = createBlock('composite-bar', styles);\n\ntype CompositeBarProps = {\n type: 'menu' | 'subheader';\n\n items?: MenuItemsWithGroups[];\n onItemClick?: (\n item: AsideHeaderItem,\n collapsed: boolean,\n event: React.MouseEvent<HTMLElement, MouseEvent>,\n ) => void;\n multipleTooltip?: boolean;\n menuMoreTitle?: string;\n onMoreClick?: () => void;\n compact: boolean;\n compositeId?: string;\n className?: string;\n groupClassName?: string;\n menuItemClassName?: string;\n editMode?: boolean;\n onToggleGroupCollapsed?: (groupId: string) => void;\n};\n\ntype CompositeBarViewProps = CompositeBarProps & {\n compositeId?: string;\n items?: MenuItemsWithGroups[];\n collapsedIds?: Record<string, boolean>;\n enableSorting?: boolean;\n editMode?: boolean;\n onToggleGroupCollapsed?: (groupId: string) => void;\n onToggleMenuItemVisibility?: (item: AsideHeaderItem) => void;\n onToggleMenuGroupVisibility?: (groupId: string) => void;\n onFirstLevelSortEnd?: (params: {oldIndex: number; newIndex: number}) => void;\n onSecondLevelSortEnd?: (\n groupIndex: number,\n ) => (params: {oldIndex: number; newIndex: number}) => void;\n};\n\nexport const CompositeBarView: FC<CompositeBarViewProps> = ({\n type,\n items,\n onItemClick,\n onMoreClick,\n multipleTooltip = false,\n compositeId,\n className,\n groupClassName,\n menuItemClassName,\n enableSorting = false,\n editMode = false,\n compact,\n onToggleGroupCollapsed,\n onToggleMenuGroupVisibility,\n onToggleMenuItemVisibility,\n onFirstLevelSortEnd,\n onSecondLevelSortEnd,\n}) => {\n const ref = useRef<List<AsideHeaderItem>>(null);\n const tooltipRef = useRef<HTMLDivElement>(null);\n const [hoveredGroupId, setHoveredGroupId] = useState<string | null>(null);\n\n const {\n setValue: setMultipleTooltipContextValue,\n active: multipleTooltipActive,\n activeIndex,\n lastClickedItemIndex,\n } = useContext(MultipleTooltipContext);\n\n React.useEffect(() => {\n function handleBlurWindow() {\n if (multipleTooltip && multipleTooltipActive) {\n setMultipleTooltipContextValue({active: false});\n }\n }\n\n window.addEventListener('blur', handleBlurWindow);\n\n return () => {\n window.removeEventListener('blur', handleBlurWindow);\n };\n }, [multipleTooltip, multipleTooltipActive, setMultipleTooltipContextValue]);\n\n const onTooltipMouseEnter = useCallback(\n (e: {clientX: number}) => {\n if (\n multipleTooltip &&\n compact &&\n !multipleTooltipActive &&\n document.hasFocus() &&\n activeIndex !== lastClickedItemIndex &&\n e.clientX <= ASIDE_HEADER_COMPACT_WIDTH\n ) {\n setMultipleTooltipContextValue?.({\n active: true,\n });\n }\n },\n [\n multipleTooltip,\n compact,\n multipleTooltipActive,\n activeIndex,\n lastClickedItemIndex,\n setMultipleTooltipContextValue,\n ],\n );\n\n const onTooltipMouseLeave = useCallback(() => {\n if (multipleTooltip && multipleTooltipActive && document.hasFocus()) {\n setMultipleTooltipContextValue?.({\n active: false,\n lastClickedItemIndex: undefined,\n });\n }\n }, [multipleTooltip, multipleTooltipActive, setMultipleTooltipContextValue]);\n\n const onMouseEnterByIndex = useCallback(\n (itemIndex: number) => () => {\n if (multipleTooltip && document.hasFocus()) {\n let multipleTooltipActiveValue = multipleTooltipActive;\n if (!multipleTooltipActive && itemIndex !== lastClickedItemIndex) {\n multipleTooltipActiveValue = true;\n }\n if (\n activeIndex === itemIndex &&\n multipleTooltipActive === multipleTooltipActiveValue\n ) {\n return;\n }\n setMultipleTooltipContextValue({\n activeIndex: itemIndex,\n active: multipleTooltipActiveValue,\n });\n }\n },\n [\n multipleTooltip,\n multipleTooltipActive,\n lastClickedItemIndex,\n activeIndex,\n setMultipleTooltipContextValue,\n ],\n );\n\n const onMouseLeave = useCallback(() => {\n if (compact && document.hasFocus()) {\n ref.current?.activateItem(undefined as unknown as number);\n if (\n multipleTooltip &&\n (activeIndex !== undefined || lastClickedItemIndex !== undefined)\n ) {\n setMultipleTooltipContextValue({\n activeIndex: undefined,\n lastClickedItemIndex: undefined,\n });\n }\n }\n }, [\n activeIndex,\n compact,\n lastClickedItemIndex,\n multipleTooltip,\n setMultipleTooltipContextValue,\n ]);\n\n const onItemClickByIndex = useCallback(\n (\n itemIndex: number,\n orginalItemClick: AsideHeaderItem['onItemClick'],\n ): ItemProps['onItemClick'] =>\n (item, collapsed, event) => {\n if (\n compact &&\n multipleTooltip &&\n itemIndex !== lastClickedItemIndex &&\n item.id !== COLLAPSE_ITEM_ID\n ) {\n setMultipleTooltipContextValue({\n lastClickedItemIndex: itemIndex,\n active: false,\n });\n }\n\n // Handle clicks on the \"more\" button (collapse item)\n if (item.id === COLLAPSE_ITEM_ID && collapsed) {\n onMoreClick?.();\n } else {\n onItemClick?.({...item, onItemClick: orginalItemClick}, collapsed, event);\n }\n },\n [\n compact,\n lastClickedItemIndex,\n multipleTooltip,\n onItemClick,\n onMoreClick,\n setMultipleTooltipContextValue,\n ],\n );\n\n const handleFirstLevelSortEnd = useCallback(\n ({oldIndex, newIndex}: ListSortParams) => {\n if (onFirstLevelSortEnd) {\n onFirstLevelSortEnd({oldIndex, newIndex});\n }\n },\n [onFirstLevelSortEnd],\n );\n\n const handleSecondLevelSortEnd = useCallback(\n (groupIndex: number) =>\n ({oldIndex, newIndex}: ListSortParams) => {\n if (onSecondLevelSortEnd) {\n onSecondLevelSortEnd(groupIndex)({oldIndex, newIndex});\n }\n },\n [onSecondLevelSortEnd],\n );\n\n if (!items || items.length === 0) {\n return null;\n }\n\n return (\n <React.Fragment>\n <div\n className={className}\n ref={tooltipRef}\n onMouseEnter={onTooltipMouseEnter}\n onMouseLeave={onTooltipMouseLeave}\n >\n <List<MenuItemsWithGroups>\n id={compositeId}\n ref={ref}\n items={items}\n selectedItemIndex={type === 'menu' ? getSelectedItemIndex(items) : undefined}\n itemHeight={getItemHeight}\n itemsHeight={getItemsHeight}\n itemClassName={b('root-menu-item', {compact})}\n virtualized={false}\n filterable={false}\n sortable={enableSorting}\n onSortEnd={enableSorting ? handleFirstLevelSortEnd : undefined}\n renderItem={(item, _isItemActive, itemIndex) => {\n const groupId = item.groupId;\n const itemType = item.type || ITEM_TYPE_REGULAR;\n\n if (!groupId) {\n return (\n <Item\n {...item}\n className={b(\n 'menu-item',\n {compact, type: itemType},\n menuItemClassName,\n )}\n compact={compact}\n editMode={editMode}\n onMouseEnter={onMouseEnterByIndex(itemIndex)}\n onMouseLeave={onMouseLeave}\n onItemClick={onItemClickByIndex(itemIndex, item.onItemClick)}\n onToggleVisibility={\n onToggleMenuItemVisibility\n ? () => onToggleMenuItemVisibility(item)\n : undefined\n }\n />\n );\n }\n\n const isCollapsible = Boolean('collapsible' in item && item.collapsible);\n const isCollapsed = Boolean('isCollapsed' in item && item.isCollapsed);\n const groupListItems = ('items' in item && item.items) || [];\n const hasHeader = item.title || item.icon || isCollapsible;\n\n const isUngrouped = item.id === UNGROUPED_ID;\n const isGroupHovered = hoveredGroupId === item.id;\n\n let groupIcon = item.icon;\n\n if (!isCollapsed) {\n groupIcon = ChevronDown;\n } else if (isGroupHovered) {\n groupIcon = ChevronRight;\n }\n\n return (\n <div\n className={b(\n 'menu-group',\n {expanded: !isCollapsed},\n groupClassName,\n )}\n >\n {hasHeader && !isUngrouped && (\n <Item\n {...item}\n className={b('menu-group-header', {collapsed: isCollapsed})}\n icon={groupIcon}\n compact={compact}\n editMode={editMode}\n onMouseEnter={() => {\n setHoveredGroupId(item.id);\n }}\n onMouseLeave={() => {\n setHoveredGroupId(null);\n }}\n onItemClick={onItemClickByIndex(\n itemIndex,\n onToggleGroupCollapsed\n ? () => onToggleGroupCollapsed(groupId)\n : undefined,\n )}\n onToggleVisibility={\n onToggleMenuGroupVisibility\n ? () => onToggleMenuGroupVisibility(groupId)\n : undefined\n }\n />\n )}\n\n {!isCollapsed && (\n <List<MenuItemsWithGroups>\n items={groupListItems}\n sortable={enableSorting}\n onSortEnd={handleSecondLevelSortEnd(itemIndex)}\n virtualized={false}\n filterable={false}\n itemClassName={b('menu-group-item', {\n edit: enableSorting,\n compact,\n })}\n itemHeight={getItemHeight}\n itemsHeight={getItemsHeight}\n renderItem={(\n nestedItem,\n _isNestedItemActive,\n _nestedItemIndex,\n ) => {\n return (\n <Item\n {...nestedItem}\n compact={compact}\n editMode={editMode}\n onMouseEnter={() => {\n setHoveredGroupId(nestedItem.id);\n }}\n onMouseLeave={() => {\n setHoveredGroupId(null);\n }}\n onItemClick={onItemClickByIndex(\n itemIndex,\n item.onItemClick,\n )}\n onToggleVisibility={\n onToggleMenuItemVisibility\n ? () =>\n onToggleMenuItemVisibility(\n nestedItem,\n )\n : undefined\n }\n />\n );\n }}\n />\n )}\n </div>\n );\n }}\n />\n </div>\n {type === 'menu' && multipleTooltip && (\n <MultipleTooltip\n open={compact && multipleTooltipActive}\n anchorRef={tooltipRef}\n placement={['right-start']}\n items={items}\n />\n )}\n </React.Fragment>\n );\n};\n\nexport const CompositeBar: FC<CompositeBarProps> = ({\n type,\n items,\n onItemClick,\n onMoreClick,\n onToggleGroupCollapsed,\n multipleTooltip = false,\n compact,\n compositeId,\n className,\n groupClassName,\n menuItemClassName,\n editMode = false,\n}) => {\n const visibleItems = items\n ?.filter((item) => !item.hidden)\n ?.map((item) => ({\n ...item,\n items: 'items' in item ? item.items?.filter((item) => !item.hidden) : [],\n }));\n\n if (!visibleItems || visibleItems.length === 0) {\n return null;\n }\n\n let node: ReactNode;\n\n if (type === 'menu') {\n node = (\n <div className={b({scrollable: true}, className)}>\n <CompositeBarView\n compositeId={compositeId}\n groupClassName={groupClassName}\n menuItemClassName={menuItemClassName}\n type=\"menu\"\n compact={compact}\n items={visibleItems}\n onItemClick={onItemClick}\n onMoreClick={onMoreClick}\n multipleTooltip={multipleTooltip}\n onToggleGroupCollapsed={onToggleGroupCollapsed}\n editMode={editMode}\n />\n </div>\n );\n } else {\n node = (\n <div className={b({subheader: true}, className)}>\n <CompositeBarView\n groupClassName={groupClassName}\n menuItemClassName={menuItemClassName}\n type=\"subheader\"\n compact={compact}\n items={visibleItems}\n onItemClick={onItemClick}\n editMode={editMode}\n />\n </div>\n );\n }\n return <MultipleTooltipProvider>{node}</MultipleTooltipProvider>;\n};\n"],"names":["createBlock","styles","useRef","useState","useContext","MultipleTooltipContext","useCallback","ASIDE_HEADER_COMPACT_WIDTH","COLLAPSE_ITEM_ID","List","getSelectedItemIndex","getItemHeight","getItemsHeight","ITEM_TYPE_REGULAR","Item","UNGROUPED_ID","ChevronDown","ChevronRight","MultipleTooltip","MultipleTooltipProvider"],"mappings":";;;;;;;;;;;;;;;AAiBA,MAAM,CAAC,GAAGA,cAAW,CAAC,eAAe,EAAEC,2BAAM,CAAC;MAsCjC,gBAAgB,GAA8B,CAAC,EACxD,IAAI,EACJ,KAAK,EACL,WAAW,EACX,WAAW,EACX,eAAe,GAAG,KAAK,EACvB,WAAW,EACX,SAAS,EACT,cAAc,EACd,iBAAiB,EACjB,aAAa,GAAG,KAAK,EACrB,QAAQ,GAAG,KAAK,EAChB,OAAO,EACP,sBAAsB,EACtB,2BAA2B,EAC3B,0BAA0B,EAC1B,mBAAmB,EACnB,oBAAoB,GACvB,KAAI;AACD,IAAA,MAAM,GAAG,GAAGC,YAAM,CAAwB,IAAI,CAAC;AAC/C,IAAA,MAAM,UAAU,GAAGA,YAAM,CAAiB,IAAI,CAAC;IAC/C,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAGC,cAAQ,CAAgB,IAAI,CAAC;AAEzE,IAAA,MAAM,EACF,QAAQ,EAAE,8BAA8B,EACxC,MAAM,EAAE,qBAAqB,EAC7B,WAAW,EACX,oBAAoB,GACvB,GAAGC,gBAAU,CAACC,6CAAsB,CAAC;AAEtC,IAAA,KAAK,CAAC,SAAS,CAAC,MAAK;AACjB,QAAA,SAAS,gBAAgB,GAAA;AACrB,YAAA,IAAI,eAAe,IAAI,qBAAqB,EAAE;AAC1C,gBAAA,8BAA8B,CAAC,EAAC,MAAM,EAAE,KAAK,EAAC,CAAC;;;AAIvD,QAAA,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,gBAAgB,CAAC;AAEjD,QAAA,OAAO,MAAK;AACR,YAAA,MAAM,CAAC,mBAAmB,CAAC,MAAM,EAAE,gBAAgB,CAAC;AACxD,SAAC;KACJ,EAAE,CAAC,eAAe,EAAE,qBAAqB,EAAE,8BAA8B,CAAC,CAAC;AAE5E,IAAA,MAAM,mBAAmB,GAAGC,iBAAW,CACnC,CAAC,CAAoB,KAAI;AACrB,QAAA,IACI,eAAe;YACf,OAAO;AACP,YAAA,CAAC,qBAAqB;YACtB,QAAQ,CAAC,QAAQ,EAAE;AACnB,YAAA,WAAW,KAAK,oBAAoB;AACpC,YAAA,CAAC,CAAC,OAAO,IAAIC,oCAA0B,EACzC;AACE,YAAA,8BAA8B,KAA9B,IAAA,IAAA,8BAA8B,KAA9B,SAAA,GAAA,SAAA,GAAA,8BAA8B,CAAG;AAC7B,gBAAA,MAAM,EAAE,IAAI;AACf,aAAA,CAAC;;AAEV,KAAC,EACD;QACI,eAAe;QACf,OAAO;QACP,qBAAqB;QACrB,WAAW;QACX,oBAAoB;QACpB,8BAA8B;AACjC,KAAA,CACJ;AAED,IAAA,MAAM,mBAAmB,GAAGD,iBAAW,CAAC,MAAK;QACzC,IAAI,eAAe,IAAI,qBAAqB,IAAI,QAAQ,CAAC,QAAQ,EAAE,EAAE;AACjE,YAAA,8BAA8B,KAA9B,IAAA,IAAA,8BAA8B,KAA9B,SAAA,GAAA,SAAA,GAAA,8BAA8B,CAAG;AAC7B,gBAAA,MAAM,EAAE,KAAK;AACb,gBAAA,oBAAoB,EAAE,SAAS;AAClC,aAAA,CAAC;;KAET,EAAE,CAAC,eAAe,EAAE,qBAAqB,EAAE,8BAA8B,CAAC,CAAC;IAE5E,MAAM,mBAAmB,GAAGA,iBAAW,CACnC,CAAC,SAAiB,KAAK,MAAK;AACxB,QAAA,IAAI,eAAe,IAAI,QAAQ,CAAC,QAAQ,EAAE,EAAE;YACxC,IAAI,0BAA0B,GAAG,qBAAqB;AACtD,YAAA,IAAI,CAAC,qBAAqB,IAAI,SAAS,KAAK,oBAAoB,EAAE;gBAC9D,0BAA0B,GAAG,IAAI;;YAErC,IACI,WAAW,KAAK,SAAS;gBACzB,qBAAqB,KAAK,0BAA0B,EACtD;gBACE;;AAEJ,YAAA,8BAA8B,CAAC;AAC3B,gBAAA,WAAW,EAAE,SAAS;AACtB,gBAAA,MAAM,EAAE,0BAA0B;AACrC,aAAA,CAAC;;AAEV,KAAC,EACD;QACI,eAAe;QACf,qBAAqB;QACrB,oBAAoB;QACpB,WAAW;QACX,8BAA8B;AACjC,KAAA,CACJ;AAED,IAAA,MAAM,YAAY,GAAGA,iBAAW,CAAC,MAAK;;AAClC,QAAA,IAAI,OAAO,IAAI,QAAQ,CAAC,QAAQ,EAAE,EAAE;YAChC,CAAA,EAAA,GAAA,GAAG,CAAC,OAAO,MAAA,IAAA,IAAA,EAAA,KAAA,SAAA,GAAA,SAAA,GAAA,EAAA,CAAE,YAAY,CAAC,SAA8B,CAAC;AACzD,YAAA,IACI,eAAe;iBACd,WAAW,KAAK,SAAS,IAAI,oBAAoB,KAAK,SAAS,CAAC,EACnE;AACE,gBAAA,8BAA8B,CAAC;AAC3B,oBAAA,WAAW,EAAE,SAAS;AACtB,oBAAA,oBAAoB,EAAE,SAAS;AAClC,iBAAA,CAAC;;;AAGd,KAAC,EAAE;QACC,WAAW;QACX,OAAO;QACP,oBAAoB;QACpB,eAAe;QACf,8BAA8B;AACjC,KAAA,CAAC;AAEF,IAAA,MAAM,kBAAkB,GAAGA,iBAAW,CAClC,CACI,SAAiB,EACjB,gBAAgD,KAEhD,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,KAAI;AACvB,QAAA,IACI,OAAO;YACP,eAAe;AACf,YAAA,SAAS,KAAK,oBAAoB;AAClC,YAAA,IAAI,CAAC,EAAE,KAAKE,4BAAgB,EAC9B;AACE,YAAA,8BAA8B,CAAC;AAC3B,gBAAA,oBAAoB,EAAE,SAAS;AAC/B,gBAAA,MAAM,EAAE,KAAK;AAChB,aAAA,CAAC;;;QAIN,IAAI,IAAI,CAAC,EAAE,KAAKA,4BAAgB,IAAI,SAAS,EAAE;AAC3C,YAAA,WAAW,KAAX,IAAA,IAAA,WAAW,KAAX,SAAA,GAAA,SAAA,GAAA,WAAW,EAAI;;aACZ;AACH,YAAA,WAAW,KAAX,IAAA,IAAA,WAAW,KAAX,SAAA,GAAA,SAAA,GAAA,WAAW,iCAAO,IAAI,CAAA,EAAA,EAAE,WAAW,EAAE,gBAAgB,EAAG,CAAA,EAAA,SAAS,EAAE,KAAK,CAAC;;AAEjF,KAAC,EACL;QACI,OAAO;QACP,oBAAoB;QACpB,eAAe;QACf,WAAW;QACX,WAAW;QACX,8BAA8B;AACjC,KAAA,CACJ;IAED,MAAM,uBAAuB,GAAGF,iBAAW,CACvC,CAAC,EAAC,QAAQ,EAAE,QAAQ,EAAiB,KAAI;QACrC,IAAI,mBAAmB,EAAE;AACrB,YAAA,mBAAmB,CAAC,EAAC,QAAQ,EAAE,QAAQ,EAAC,CAAC;;AAEjD,KAAC,EACD,CAAC,mBAAmB,CAAC,CACxB;AAED,IAAA,MAAM,wBAAwB,GAAGA,iBAAW,CACxC,CAAC,UAAkB,KACf,CAAC,EAAC,QAAQ,EAAE,QAAQ,EAAiB,KAAI;QACrC,IAAI,oBAAoB,EAAE;YACtB,oBAAoB,CAAC,UAAU,CAAC,CAAC,EAAC,QAAQ,EAAE,QAAQ,EAAC,CAAC;;AAE9D,KAAC,EACL,CAAC,oBAAoB,CAAC,CACzB;IAED,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;AAC9B,QAAA,OAAO,IAAI;;AAGf,IAAA,QACI,KAAA,CAAA,aAAA,CAAC,KAAK,CAAC,QAAQ,EAAA,IAAA;AACX,QAAA,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EACI,SAAS,EAAE,SAAS,EACpB,GAAG,EAAE,UAAU,EACf,YAAY,EAAE,mBAAmB,EACjC,YAAY,EAAE,mBAAmB,EAAA;AAEjC,YAAA,KAAA,CAAA,aAAA,CAACG,UAAI,EACD,EAAA,EAAE,EAAE,WAAW,EACf,GAAG,EAAE,GAAG,EACR,KAAK,EAAE,KAAK,EACZ,iBAAiB,EAAE,IAAI,KAAK,MAAM,GAAGC,0BAAoB,CAAC,KAAK,CAAC,GAAG,SAAS,EAC5E,UAAU,EAAEC,mBAAa,EACzB,WAAW,EAAEC,oBAAc,EAC3B,aAAa,EAAE,CAAC,CAAC,gBAAgB,EAAE,EAAC,OAAO,EAAC,CAAC,EAC7C,WAAW,EAAE,KAAK,EAClB,UAAU,EAAE,KAAK,EACjB,QAAQ,EAAE,aAAa,EACvB,SAAS,EAAE,aAAa,GAAG,uBAAuB,GAAG,SAAS,EAC9D,UAAU,EAAE,CAAC,IAAI,EAAE,aAAa,EAAE,SAAS,KAAI;AAC3C,oBAAA,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO;AAC5B,oBAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,IAAIC,6BAAiB;oBAE/C,IAAI,CAAC,OAAO,EAAE;wBACV,QACI,KAAC,CAAA,aAAA,CAAAC,SAAI,EACG,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,IAAI,IACR,SAAS,EAAE,CAAC,CACR,WAAW,EACX,EAAC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAC,EACzB,iBAAiB,CACpB,EACD,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,QAAQ,EAClB,YAAY,EAAE,mBAAmB,CAAC,SAAS,CAAC,EAC5C,YAAY,EAAE,YAAY,EAC1B,WAAW,EAAE,kBAAkB,CAAC,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,EAC5D,kBAAkB,EACd;AACI,kCAAE,MAAM,0BAA0B,CAAC,IAAI;AACvC,kCAAE,SAAS,EAErB,CAAA,CAAA;;AAIV,oBAAA,MAAM,aAAa,GAAG,OAAO,CAAC,aAAa,IAAI,IAAI,IAAI,IAAI,CAAC,WAAW,CAAC;AACxE,oBAAA,MAAM,WAAW,GAAG,OAAO,CAAC,aAAa,IAAI,IAAI,IAAI,IAAI,CAAC,WAAW,CAAC;AACtE,oBAAA,MAAM,cAAc,GAAG,CAAC,OAAO,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,KAAK,EAAE;oBAC5D,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,IAAI,IAAI,aAAa;AAE1D,oBAAA,MAAM,WAAW,GAAG,IAAI,CAAC,EAAE,KAAKC,wBAAY;AAC5C,oBAAA,MAAM,cAAc,GAAG,cAAc,KAAK,IAAI,CAAC,EAAE;AAEjD,oBAAA,IAAI,SAAS,GAAG,IAAI,CAAC,IAAI;oBAEzB,IAAI,CAAC,WAAW,EAAE;wBACd,SAAS,GAAGC,iBAAW;;yBACpB,IAAI,cAAc,EAAE;wBACvB,SAAS,GAAGC,kBAAY;;AAG5B,oBAAA,QACI,KACI,CAAA,aAAA,CAAA,KAAA,EAAA,EAAA,SAAS,EAAE,CAAC,CACR,YAAY,EACZ,EAAC,QAAQ,EAAE,CAAC,WAAW,EAAC,EACxB,cAAc,CACjB,EAAA;AAEA,wBAAA,SAAS,IAAI,CAAC,WAAW,KACtB,oBAACH,SAAI,EAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EACG,IAAI,EAAA,EACR,SAAS,EAAE,CAAC,CAAC,mBAAmB,EAAE,EAAC,SAAS,EAAE,WAAW,EAAC,CAAC,EAC3D,IAAI,EAAE,SAAS,EACf,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,QAAQ,EAClB,YAAY,EAAE,MAAK;AACf,gCAAA,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC;AAC9B,6BAAC,EACD,YAAY,EAAE,MAAK;gCACf,iBAAiB,CAAC,IAAI,CAAC;AAC3B,6BAAC,EACD,WAAW,EAAE,kBAAkB,CAC3B,SAAS,EACT;AACI,kCAAE,MAAM,sBAAsB,CAAC,OAAO;AACtC,kCAAE,SAAS,CAClB,EACD,kBAAkB,EACd;AACI,kCAAE,MAAM,2BAA2B,CAAC,OAAO;kCACzC,SAAS,EAAA,CAAA,CAErB,CACL;AAEA,wBAAA,CAAC,WAAW,KACT,KAAA,CAAA,aAAA,CAACL,UAAI,EACD,EAAA,KAAK,EAAE,cAAc,EACrB,QAAQ,EAAE,aAAa,EACvB,SAAS,EAAE,wBAAwB,CAAC,SAAS,CAAC,EAC9C,WAAW,EAAE,KAAK,EAClB,UAAU,EAAE,KAAK,EACjB,aAAa,EAAE,CAAC,CAAC,iBAAiB,EAAE;AAChC,gCAAA,IAAI,EAAE,aAAa;gCACnB,OAAO;AACV,6BAAA,CAAC,EACF,UAAU,EAAEE,mBAAa,EACzB,WAAW,EAAEC,oBAAc,EAC3B,UAAU,EAAE,CACR,UAAU,EACV,mBAAmB,EACnB,gBAAgB,KAChB;AACA,gCAAA,QACI,KAAC,CAAA,aAAA,CAAAE,SAAI,EACG,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,UAAU,IACd,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,QAAQ,EAClB,YAAY,EAAE,MAAK;AACf,wCAAA,iBAAiB,CAAC,UAAU,CAAC,EAAE,CAAC;AACpC,qCAAC,EACD,YAAY,EAAE,MAAK;wCACf,iBAAiB,CAAC,IAAI,CAAC;AAC3B,qCAAC,EACD,WAAW,EAAE,kBAAkB,CAC3B,SAAS,EACT,IAAI,CAAC,WAAW,CACnB,EACD,kBAAkB,EACd;AACI,0CAAE,MACI,0BAA0B,CACtB,UAAU;AAEpB,0CAAE,SAAS,EAErB,CAAA,CAAA;AAEV,6BAAC,EACH,CAAA,CACL,CACC;AAEd,iBAAC,GACH,CACA;AACL,QAAA,IAAI,KAAK,MAAM,IAAI,eAAe,KAC/B,KAAA,CAAA,aAAA,CAACI,+BAAe,EAAA,EACZ,IAAI,EAAE,OAAO,IAAI,qBAAqB,EACtC,SAAS,EAAE,UAAU,EACrB,SAAS,EAAE,CAAC,aAAa,CAAC,EAC1B,KAAK,EAAE,KAAK,EAAA,CACd,CACL,CACY;AAEzB;AAEO,MAAM,YAAY,GAA0B,CAAC,EAChD,IAAI,EACJ,KAAK,EACL,WAAW,EACX,WAAW,EACX,sBAAsB,EACtB,eAAe,GAAG,KAAK,EACvB,OAAO,EACP,WAAW,EACX,SAAS,EACT,cAAc,EACd,iBAAiB,EACjB,QAAQ,GAAG,KAAK,GACnB,KAAI;;IACD,MAAM,YAAY,GAAG,CAAA,EAAA,GAAA,KAAK,KAAA,IAAA,IAAL,KAAK,KAAA,SAAA,GAAA,SAAA,GAAL,KAAK,CACpB,MAAM,CAAC,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAC9B,IAAA,IAAA,EAAA,KAAA,SAAA,GAAA,SAAA,GAAA,EAAA,CAAA,GAAG,CAAC,CAAC,IAAI,KAAI;;AAAC,QAAA,QACT,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,IAAI,CACP,EAAA,EAAA,KAAK,EAAE,OAAO,IAAI,IAAI,GAAG,CAAA,EAAA,GAAA,IAAI,CAAC,KAAK,MAAA,IAAA,IAAA,EAAA,KAAA,SAAA,GAAA,SAAA,GAAA,EAAA,CAAE,MAAM,CAAC,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE;AAC1E,KAAA,CAAC;IAEP,IAAI,CAAC,YAAY,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE;AAC5C,QAAA,OAAO,IAAI;;AAGf,IAAA,IAAI,IAAe;AAEnB,IAAA,IAAI,IAAI,KAAK,MAAM,EAAE;AACjB,QAAA,IAAI,IACA,KAAK,CAAA,aAAA,CAAA,KAAA,EAAA,EAAA,SAAS,EAAE,CAAC,CAAC,EAAC,UAAU,EAAE,IAAI,EAAC,EAAE,SAAS,CAAC,EAAA;YAC5C,KAAC,CAAA,aAAA,CAAA,gBAAgB,IACb,WAAW,EAAE,WAAW,EACxB,cAAc,EAAE,cAAc,EAC9B,iBAAiB,EAAE,iBAAiB,EACpC,IAAI,EAAC,MAAM,EACX,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,YAAY,EACnB,WAAW,EAAE,WAAW,EACxB,WAAW,EAAE,WAAW,EACxB,eAAe,EAAE,eAAe,EAChC,sBAAsB,EAAE,sBAAsB,EAC9C,QAAQ,EAAE,QAAQ,EAAA,CACpB,CACA,CACT;;SACE;AACH,QAAA,IAAI,IACA,KAAK,CAAA,aAAA,CAAA,KAAA,EAAA,EAAA,SAAS,EAAE,CAAC,CAAC,EAAC,SAAS,EAAE,IAAI,EAAC,EAAE,SAAS,CAAC,EAAA;AAC3C,YAAA,KAAA,CAAA,aAAA,CAAC,gBAAgB,EAAA,EACb,cAAc,EAAE,cAAc,EAC9B,iBAAiB,EAAE,iBAAiB,EACpC,IAAI,EAAC,WAAW,EAChB,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,YAAY,EACnB,WAAW,EAAE,WAAW,EACxB,QAAQ,EAAE,QAAQ,EACpB,CAAA,CACA,CACT;;AAEL,IAAA,OAAO,KAAC,CAAA,aAAA,CAAAC,8CAAuB,EAAE,IAAA,EAAA,IAAI,CAA2B;AACpE;;;;;"}
1
+ {"version":3,"file":"CompositeBar.js","sources":["../../../../../../../src/components/AsideHeader/components/CompositeBar/CompositeBar.tsx"],"sourcesContent":["import React, {FC, ReactNode, useCallback, useMemo, useRef} from 'react';\n\nimport {List} from '@gravity-ui/uikit';\nimport AutoSizer, {Size} from 'react-virtualized-auto-sizer';\n\nimport {MenuGroup} from '../../../types';\nimport {createBlock} from '../../../utils/cn';\nimport {AsideHeaderItem} from '../../types';\n\nimport {Item} from './Item/Item';\nimport {ItemProps} from './Item/Item.types';\nimport {COLLAPSE_ITEM_ID} from './constants';\nimport {getGroupedItems, isGroupHeaderItem} from './grouping';\nimport {\n getAutosizeListItems,\n getItemHeight,\n getItemsHeight,\n getItemsMinHeight,\n getMoreButtonItem,\n getSelectedItemIndex,\n} from './utils';\n\nimport styles from './CompositeBar.module.scss';\n\nconst b = createBlock('composite-bar', styles);\n\ntype CompositeBarProps = {\n type: 'menu' | 'subheader';\n items: AsideHeaderItem[];\n menuGroups?: MenuGroup[];\n onItemClick?: (\n item: AsideHeaderItem,\n collapsed: boolean,\n event: React.MouseEvent<HTMLElement, MouseEvent>,\n ) => void;\n menuMoreTitle?: string;\n onMoreClick?: () => void;\n compact: boolean;\n compositeId?: string;\n menuItemClassName?: string;\n};\n\ntype CompositeBarViewProps = CompositeBarProps & {\n collapseItems?: AsideHeaderItem[];\n};\n\nconst CompositeBarView: FC<CompositeBarViewProps> = ({\n type,\n items,\n onItemClick,\n onMoreClick,\n collapseItems,\n compact,\n compositeId,\n menuItemClassName,\n}) => {\n const ref = useRef<List<AsideHeaderItem>>(null);\n\n const onMouseLeave = useCallback(() => {\n if (compact && document.hasFocus()) {\n ref.current?.activateItem(undefined as unknown as number);\n }\n }, [compact]);\n\n const onItemClickByIndex = useCallback(\n (orginalItemClick: AsideHeaderItem['onItemClick']): ItemProps['onItemClick'] =>\n (item, collapsed, event) => {\n // Handle clicks on the \"more\" button (collapse item)\n if (item.id === COLLAPSE_ITEM_ID && collapsed) {\n onMoreClick?.();\n } else {\n onItemClick?.(\n {\n ...item,\n // For collapsed popup items, preserve the item's own onItemClick\n // since orginalItemClick belongs to the collapse button, not the item\n onItemClick: collapsed ? item.onItemClick : orginalItemClick,\n },\n collapsed,\n event,\n );\n }\n },\n [onItemClick, onMoreClick],\n );\n\n return (\n <List<AsideHeaderItem>\n id={compositeId}\n ref={ref}\n items={items}\n selectedItemIndex={type === 'menu' ? getSelectedItemIndex(items) : undefined}\n itemHeight={getItemHeight}\n itemsHeight={getItemsHeight}\n itemClassName={b('root-menu-item', menuItemClassName)}\n virtualized={false}\n filterable={false}\n sortable={false}\n renderItem={(item) => {\n let menuPopupItems: AsideHeaderItem[] | undefined;\n let menuPopupTitle: string | undefined;\n\n if (item.id === COLLAPSE_ITEM_ID) {\n menuPopupItems = collapseItems;\n } else if (isGroupHeaderItem(item)) {\n menuPopupItems = item.groupChildren;\n menuPopupTitle = item.groupPopupTitle;\n }\n\n return (\n <Item\n {...item}\n compact={compact}\n popupItemClassName={menuItemClassName}\n menuPopupItems={menuPopupItems}\n menuPopupTitle={menuPopupTitle}\n onMouseLeave={onMouseLeave}\n onItemClick={onItemClickByIndex(item.onItemClick)}\n />\n );\n }}\n />\n );\n};\n\nexport const CompositeBar: FC<CompositeBarProps> = ({\n type,\n items,\n menuGroups,\n menuMoreTitle,\n onItemClick,\n onMoreClick,\n compact,\n compositeId,\n menuItemClassName,\n}) => {\n const groupedItems = useMemo(() => getGroupedItems(items, menuGroups), [items, menuGroups]);\n\n if (groupedItems.length === 0) {\n return null;\n }\n let node: ReactNode;\n\n if (type === 'menu') {\n const minHeight = getItemsMinHeight(groupedItems);\n const collapseItem = getMoreButtonItem(menuMoreTitle);\n node = (\n <div className={b({autosizer: true})} style={{minHeight}}>\n {groupedItems.length !== 0 && (\n <AutoSizer>\n {(size: Size) => {\n const width = Number.isNaN(size.width) ? 0 : size.width;\n const height = Number.isNaN(size.height) ? 0 : size.height;\n\n const {listItems, collapseItems} = getAutosizeListItems(\n groupedItems,\n height,\n collapseItem,\n );\n return (\n <div style={{width, height}}>\n <CompositeBarView\n compositeId={compositeId}\n type=\"menu\"\n compact={compact}\n items={listItems}\n onItemClick={onItemClick}\n onMoreClick={onMoreClick}\n menuItemClassName={menuItemClassName}\n collapseItems={collapseItems}\n />\n </div>\n );\n }}\n </AutoSizer>\n )}\n </div>\n );\n } else {\n node = (\n <div className={b({subheader: true})}>\n <CompositeBarView\n type=\"subheader\"\n menuItemClassName={menuItemClassName}\n compact={compact}\n items={groupedItems}\n onItemClick={onItemClick}\n />\n </div>\n );\n }\n return node;\n};\n"],"names":["createBlock","styles","useRef","useCallback","COLLAPSE_ITEM_ID","List","getSelectedItemIndex","getItemHeight","getItemsHeight","isGroupHeaderItem","Item","useMemo","getGroupedItems","getItemsMinHeight","getMoreButtonItem","getAutosizeListItems"],"mappings":"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"}
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var styles = {"gn-composite-bar":"CompositeBar-module__gn-composite-bar___WoCDY","gnCompositeBar":"CompositeBar-module__gn-composite-bar___WoCDY","gn-composite-bar__root-menu-item":"CompositeBar-module__gn-composite-bar__root-menu-item___oxCuF","gnCompositeBarRootMenuItem":"CompositeBar-module__gn-composite-bar__root-menu-item___oxCuF","gn-composite-bar__menu-group-item":"CompositeBar-module__gn-composite-bar__menu-group-item___TLcnI","gnCompositeBarMenuGroupItem":"CompositeBar-module__gn-composite-bar__menu-group-item___TLcnI","gn-composite-bar__menu-group-header":"CompositeBar-module__gn-composite-bar__menu-group-header___Yvr21","gnCompositeBarMenuGroupHeader":"CompositeBar-module__gn-composite-bar__menu-group-header___Yvr21","gn-composite-bar_scrollable":"CompositeBar-module__gn-composite-bar_scrollable___W2xYo","gnCompositeBarScrollable":"CompositeBar-module__gn-composite-bar_scrollable___W2xYo","gn-composite-bar__menu-group":"CompositeBar-module__gn-composite-bar__menu-group___3hCzS","gnCompositeBarMenuGroup":"CompositeBar-module__gn-composite-bar__menu-group___3hCzS","gn-composite-bar__root-menu-item_compact":"CompositeBar-module__gn-composite-bar__root-menu-item_compact___vvKTD","gnCompositeBarRootMenuItemCompact":"CompositeBar-module__gn-composite-bar__root-menu-item_compact___vvKTD","gn-composite-bar__menu-group-item_edit":"CompositeBar-module__gn-composite-bar__menu-group-item_edit___Es8er","gnCompositeBarMenuGroupItemEdit":"CompositeBar-module__gn-composite-bar__menu-group-item_edit___Es8er","gn-composite-bar__menu-group-item_compact":"CompositeBar-module__gn-composite-bar__menu-group-item_compact___-7tZl","gnCompositeBarMenuGroupItemCompact":"CompositeBar-module__gn-composite-bar__menu-group-item_compact___-7tZl","gn-composite-bar__menu-group-header_collapsed":"CompositeBar-module__gn-composite-bar__menu-group-header_collapsed___bTXn1","gnCompositeBarMenuGroupHeaderCollapsed":"CompositeBar-module__gn-composite-bar__menu-group-header_collapsed___bTXn1","gn-composite-bar__menu-item_type_regular":"CompositeBar-module__gn-composite-bar__menu-item_type_regular___8DHUR","gnCompositeBarMenuItemTypeRegular":"CompositeBar-module__gn-composite-bar__menu-item_type_regular___8DHUR","gn-composite-bar__menu-group_expanded":"CompositeBar-module__gn-composite-bar__menu-group_expanded___GY0oS","gnCompositeBarMenuGroupExpanded":"CompositeBar-module__gn-composite-bar__menu-group_expanded___GY0oS","gn-composite-bar__menu-group-toggle":"CompositeBar-module__gn-composite-bar__menu-group-toggle___4--VW","gnCompositeBarMenuGroupToggle":"CompositeBar-module__gn-composite-bar__menu-group-toggle___4--VW","gn-composite-bar__menu-group-toggle-placeholder":"CompositeBar-module__gn-composite-bar__menu-group-toggle-placeholder___vAqkn","gnCompositeBarMenuGroupTogglePlaceholder":"CompositeBar-module__gn-composite-bar__menu-group-toggle-placeholder___vAqkn","gn-composite-bar__menu-group-icon":"CompositeBar-module__gn-composite-bar__menu-group-icon___YVg-C","gnCompositeBarMenuGroupIcon":"CompositeBar-module__gn-composite-bar__menu-group-icon___YVg-C"};
5
+ var styles = {"gn-composite-bar":"CompositeBar-module__gn-composite-bar___WoCDY","gnCompositeBar":"CompositeBar-module__gn-composite-bar___WoCDY","gn-composite-bar__root-menu-item":"CompositeBar-module__gn-composite-bar__root-menu-item___oxCuF","gnCompositeBarRootMenuItem":"CompositeBar-module__gn-composite-bar__root-menu-item___oxCuF"};
6
6
 
7
7
  exports.default = styles;
8
8
  //# sourceMappingURL=CompositeBar.module.scss.js.map
@@ -1 +1 @@
1
- .Item-module__gn-composite-bar-item___-pkx5{background:none;border:none;color:inherit;font:inherit;outline:inherit;text-decoration:inherit}.Item-module__gn-composite-bar-item___-pkx5:focus-visible{outline:solid var(--g-color-line-misc);outline-offset:-2px}.Item-module__gn-composite-bar-item___-pkx5{--gn-composite-bar-item-action-size:36px;--_--item-icon-background-size:36px;--_--horizontal-divider-line-color:var(--g-color-line-generic);--_--item-background-color-hover:var(--g-color-base-simple-hover);--_--item-general-icon-color:var(--g-color-text-primary);--_--item-icon-color:var(--g-color-text-complementary);--_--item-text-color:var(--g-color-text-primary);--_--item-collapsed-radius:7px;--_--item-selected-text-color:var(--g-color-text-primary);--_--item-selected-background-color:var(--g-color-base-selection);align-items:center;cursor:pointer;display:flex;height:100%;min-width:0;padding:0;width:100%}.Item-module__gn-composite-bar-item__icon___ORFNf{color:var(--gn-aside-header-item-icon-color,var(--_--item-icon-color))}.Item-module__gn-composite-bar-item_current___NT2hB .Item-module__gn-composite-bar-item__icon___ORFNf{color:var(--gn-aside-header-item-current-icon-color,var(--gn-aside-header-item-icon-color,var(--_--item-icon-color)))}.gn-composite-bar-highlighted-item .Item-module__gn-composite-bar-item__icon___ORFNf, .gn-composite-bar_subheader .Item-module__gn-composite-bar-item__icon___ORFNf, .gn-footer-item .Item-module__gn-composite-bar-item__icon___ORFNf{color:var(--gn-aside-header-general-item-icon-color,var(--_--item-general-icon-color))}.gn-composite-bar-highlighted-item .Item-module__gn-composite-bar-item_current___NT2hB .Item-module__gn-composite-bar-item__icon___ORFNf, .gn-composite-bar_subheader .Item-module__gn-composite-bar-item_current___NT2hB .Item-module__gn-composite-bar-item__icon___ORFNf, .gn-footer-item .Item-module__gn-composite-bar-item_current___NT2hB .Item-module__gn-composite-bar-item__icon___ORFNf{color:var(--gn-aside-header-item-current-icon-color,var(--gn-aside-header-general-item-icon-color,var(--_--item-general-icon-color)))}.Item-module__gn-composite-bar-item__icon-tooltip___PxU2i .Item-module__g-action-tooltip__description___UsHcG{color:var(--g-color-text-light-primary);margin-block-start:0}.Item-module__gn-composite-bar-item__icon-place___jPKRh{align-items:center;display:flex;flex-shrink:0;height:100%;justify-content:center;width:var(--_--item-icon-background-size,36px)}.Item-module__gn-composite-bar-item__title___wj5L5{align-items:center;display:flex;justify-content:space-between;margin:0 var(--g-spacing-4) 0 var(--g-spacing-2);overflow:hidden}.Item-module__gn-composite-bar-item__transition-title-enter-active___AAvSZ, .Item-module__gn-composite-bar-item__transition-title-enter___4n6yR{opacity:0}.Item-module__gn-composite-bar-item__transition-title-enter-done___Ilzkv, .Item-module__gn-composite-bar-item__transition-title-exit___5-JKk{opacity:1;transition:opacity 50ms ease-in-out}.Item-module__gn-composite-bar-item__transition-title-exit-active___Dif7T, .Item-module__gn-composite-bar-item__transition-title-exit-done___PJvzY{opacity:0}.Item-module__gn-composite-bar-item__visibility-button___QaJg-{margin-left:auto}.Item-module__gn-composite-bar-item__title-text___cILJo{-webkit-box-orient:vertical;-webkit-line-clamp:2;color:var(--gn-aside-header-item-text-color,var(--_--item-text-color));display:-webkit-box;overflow:hidden;text-align:start}.Item-module__gn-composite-bar-item_current___NT2hB .Item-module__gn-composite-bar-item__title-text___cILJo{color:var(--gn-aside-header-item-current-text-color,var(--_--item-selected-text-color))}.Item-module__gn-composite-bar-item__title-adornment___Xcopn{margin:0 10px}.Item-module__gn-composite-bar-item__collapse-item___Up6IX{background:none;border:none;color:inherit;font:inherit;outline:inherit;text-decoration:inherit}.Item-module__gn-composite-bar-item__collapse-item___Up6IX:focus-visible{outline:solid var(--g-color-line-misc);outline-offset:-2px}.Item-module__gn-composite-bar-item__collapse-item___Up6IX{--_--item-icon-color:var(--g-color-text-misc);align-items:center;cursor:pointer;display:flex;height:100%;padding:0 16px;width:100%}.Item-module__gn-composite-bar-item__collapse-item-icon___CD-ao{color:var(--gn-aside-header-item-icon-color,var(--_--item-icon-color));margin-right:10px}.Item-module__gn-composite-bar-item__collapse-item___Up6IX .Item-module__gn-composite-bar-item__title-adornment___Xcopn{margin-right:0}.Item-module__gn-composite-bar-item__menu-divider___hkm-Z{border-top:1px solid var(--gn-aside-header-divider-horizontal-color,var(--_--horizontal-divider-line-color));cursor:default;margin:0 10px;width:100%}.Item-module__gn-composite-bar-item__collapse-items-popup-content___a82to{padding:4px 0}.Item-module__gn-composite-bar-item__link___McAVN{align-items:center;display:flex;height:100%;width:100%}.Item-module__gn-composite-bar-item__link___McAVN, .Item-module__gn-composite-bar-item__link___McAVN:active, .Item-module__gn-composite-bar-item__link___McAVN:focus, .Item-module__gn-composite-bar-item__link___McAVN:hover, .Item-module__gn-composite-bar-item__link___McAVN:visited{color:inherit;outline:none;text-decoration:none}.Item-module__gn-composite-bar-item__btn-icon___SwT65{align-items:center;display:flex;height:100%;justify-content:center;width:100%}.Item-module__gn-composite-bar-item_type_action___2jxO8{background:var(--g-color-base-float);border-radius:var(--gn-composite-bar-item-action-size);box-shadow:0 0 0 1px rgba(0,0,0,.03),0 5px 6px rgba(0,0,0,.12);height:var(--gn-composite-bar-item-action-size);justify-content:center;margin-bottom:var(--g-spacing-2);transition:transform .1s ease-out,background-color .15s linear}.Item-module__gn-composite-bar-item_type_action___2jxO8:focus-visible{box-shadow:0 0 0 2px var(--g-color-line-misc)}.Item-module__gn-composite-bar-item_type_action___2jxO8:hover{background-color:var(--g-color-base-float-hover)}.Item-module__gn-composite-bar-item_type_action___2jxO8:active{box-shadow:0 1px 2px var(--g-color-sfx-shadow);transform:scale(.96);transition:none}.Item-module__gn-composite-bar-item_type_action___2jxO8 .Item-module__gn-composite-bar-item__icon-place___jPKRh{width:var(--gn-composite-bar-item-action-size)}.Item-module__gn-composite-bar-item_type_action___2jxO8.gn-footer-item{width:calc(100% - 20px)}.Item-module__gn-composite-bar-item__icon-tooltip_item-type_action___HUhUR{margin-left:10px}.Item-module__gn-composite-bar-item___-pkx5:not(.Item-module__gn-composite-bar-item_compact___PVTeM).Item-module__gn-composite-bar-item_current___NT2hB.Item-module__gn-composite-bar-item_type_regular___wkhsT{background-color:var(--gn-aside-header-item-current-background-color,var(--_--item-selected-background-color))}.Item-module__gn-composite-bar-item___-pkx5:not(.Item-module__gn-composite-bar-item_compact___PVTeM):hover.Item-module__gn-composite-bar-item_type_regular___wkhsT{background-color:var(--gn-aside-header-item-current-background-color-hover,var(--gn-aside-header-item-current-background-color,var(--_--item-selected-background-color)))}.Item-module__gn-composite-bar-item___-pkx5:not(.Item-module__gn-composite-bar-item_compact___PVTeM):not(.Item-module__gn-composite-bar-item_current___NT2hB):hover.Item-module__gn-composite-bar-item_type_regular___wkhsT{background-color:var(--gn-aside-header-item-background-color-hover,var(--_--item-background-color-hover))}.Item-module__gn-composite-bar-item_compact___PVTeM.Item-module__gn-composite-bar-item_type_action___2jxO8{width:var(--gn-composite-bar-item-action-size)}.Item-module__gn-composite-bar-item_compact___PVTeM.Item-module__gn-composite-bar-item_type_action___2jxO8 .Item-module__gn-composite-bar-item__title___wj5L5{margin:0}.Item-module__gn-composite-bar-item_compact___PVTeM.Item-module__gn-composite-bar-item_current___NT2hB.Item-module__gn-composite-bar-item_type_regular___wkhsT .Item-module__gn-composite-bar-item__btn-icon___SwT65{background-color:transparent;position:relative}.Item-module__gn-composite-bar-item_compact___PVTeM.Item-module__gn-composite-bar-item_current___NT2hB.Item-module__gn-composite-bar-item_type_regular___wkhsT .Item-module__gn-composite-bar-item__btn-icon___SwT65:before{background-color:var(--gn-aside-header-item-current-background-color,var(--_--item-selected-background-color));border-radius:var(--gn-aside-header-item-collapsed-radius,var(--_--item-collapsed-radius));content:"";height:var(--gn-aside-header-item-icon-background-size,var(--_--item-icon-background-size));left:50%;margin-left:-18px;margin-top:-18px;position:absolute;top:50%;width:var(--gn-aside-header-item-icon-background-size,var(--_--item-icon-background-size));z-index:-1}.Item-module__gn-composite-bar-item_compact___PVTeM:hover.Item-module__gn-composite-bar-item_type_regular___wkhsT .Item-module__gn-composite-bar-item__btn-icon___SwT65{background-color:transparent;position:relative}.Item-module__gn-composite-bar-item_compact___PVTeM:hover.Item-module__gn-composite-bar-item_type_regular___wkhsT .Item-module__gn-composite-bar-item__btn-icon___SwT65:before{background-color:var(--gn-aside-header-item-current-background-color-hover,var(--gn-aside-header-item-current-background-color,var(--_--item-selected-background-color)));border-radius:var(--gn-aside-header-item-collapsed-radius,var(--_--item-collapsed-radius));content:"";height:var(--gn-aside-header-item-icon-background-size,var(--_--item-icon-background-size));left:50%;margin-left:-18px;margin-top:-18px;position:absolute;top:50%;width:var(--gn-aside-header-item-icon-background-size,var(--_--item-icon-background-size));z-index:-1}.Item-module__gn-composite-bar-item_compact___PVTeM:not(.Item-module__gn-composite-bar-item_current___NT2hB):hover.Item-module__gn-composite-bar-item_type_regular___wkhsT .Item-module__gn-composite-bar-item__btn-icon___SwT65{background-color:transparent;position:relative}.Item-module__gn-composite-bar-item_compact___PVTeM:not(.Item-module__gn-composite-bar-item_current___NT2hB):hover.Item-module__gn-composite-bar-item_type_regular___wkhsT .Item-module__gn-composite-bar-item__btn-icon___SwT65:before{background-color:var(--gn-aside-header-item-background-color-hover,var(--_--item-background-color-hover));border-radius:var(--gn-aside-header-item-collapsed-radius,var(--_--item-collapsed-radius));content:"";height:var(--gn-aside-header-item-icon-background-size,var(--_--item-icon-background-size));left:50%;margin-left:-18px;margin-top:-18px;position:absolute;top:50%;width:var(--gn-aside-header-item-icon-background-size,var(--_--item-icon-background-size));z-index:-1}
1
+ .Item-module__gn-composite-bar-item___-pkx5{background:none;border:none;color:inherit;font:inherit;outline:inherit;text-decoration:inherit}.Item-module__gn-composite-bar-item___-pkx5:focus-visible{outline:solid var(--g-color-line-misc);outline-offset:-2px}.Item-module__gn-composite-bar-item___-pkx5{--gn-composite-bar-item-action-size:36px;--gn-aside-header-item-expanded-radius:8px;--_--horizontal-divider-line-color:var(--g-color-line-generic);--_--item-background-color-hover:var(--g-color-base-simple-hover);--_--item-general-icon-color:var(--g-color-text-primary);--_--item-icon-color:var(--g-color-text-complementary);--_--item-text-color:var(--g-color-text-primary);--_--item-collapsed-radius:7px;--_--item-action-color:var(--g-color-base-float);--_--item-action-color-hover:var(--g-color-base-float-hover);--_--item-selected-text-color:var(--g-color-text-primary);--_--item-selected-background-color:var(--g-color-base-selection);align-items:center;cursor:pointer;display:flex;height:100%;margin-inline:auto;min-width:0;padding:0;width:100%}.Item-module__gn-composite-bar-item___-pkx5.gn-footer-item.Item-module__gn-composite-bar-item_type_regular___wkhsT{--gn-aside-header-item-icon-background-size:32px;height:32px}.Item-module__gn-composite-bar-item__icon___ORFNf{color:var(--gn-aside-header-item-icon-color,var(--_--item-icon-color))}.Item-module__gn-composite-bar-item_current___NT2hB .Item-module__gn-composite-bar-item__icon___ORFNf{color:var(--gn-aside-header-item-current-icon-color,var(--gn-aside-header-item-icon-color,var(--_--item-icon-color)))}.gn-composite-bar-highlighted-item .Item-module__gn-composite-bar-item__icon___ORFNf, .gn-composite-bar_subheader .Item-module__gn-composite-bar-item__icon___ORFNf, .gn-footer-item .Item-module__gn-composite-bar-item__icon___ORFNf{color:var(--gn-aside-header-general-item-icon-color,var(--_--item-general-icon-color))}.gn-composite-bar-highlighted-item .Item-module__gn-composite-bar-item_current___NT2hB .Item-module__gn-composite-bar-item__icon___ORFNf, .gn-composite-bar_subheader .Item-module__gn-composite-bar-item_current___NT2hB .Item-module__gn-composite-bar-item__icon___ORFNf, .gn-footer-item .Item-module__gn-composite-bar-item_current___NT2hB .Item-module__gn-composite-bar-item__icon___ORFNf{color:var(--gn-aside-header-item-current-icon-color,var(--gn-aside-header-general-item-icon-color,var(--_--item-general-icon-color)))}.Item-module__gn-composite-bar-item__icon-tooltip___PxU2i .Item-module__g-action-tooltip__description___UsHcG{color:var(--g-color-text-light-primary);margin-block-start:0}.Item-module__gn-composite-bar-item__icon-place___jPKRh{align-items:center;display:flex;flex-shrink:0;height:100%;justify-content:center;width:var(--_--item-height,40px)}.Item-module__gn-composite-bar-item__title___wj5L5{align-items:center;display:flex;margin:0 var(--g-spacing-4) 0 var(--g-spacing-2);overflow:hidden}.Item-module__gn-composite-bar-item__title-text___cILJo{-webkit-box-orient:vertical;-webkit-line-clamp:2;color:var(--gn-aside-header-item-text-color,var(--_--item-text-color));display:-webkit-box;overflow:hidden;text-align:start}.Item-module__gn-composite-bar-item_current___NT2hB .Item-module__gn-composite-bar-item__title-text___cILJo{color:var(--gn-aside-header-item-current-text-color,var(--_--item-selected-text-color))}.Item-module__gn-composite-bar-item__title-adornment___Xcopn{margin:0 10px}.Item-module__gn-composite-bar-item__collapse-item___Up6IX{background:none;border:none;color:inherit;font:inherit;outline:inherit;text-decoration:inherit}.Item-module__gn-composite-bar-item__collapse-item___Up6IX:focus-visible{outline:solid var(--g-color-line-misc);outline-offset:-2px}.Item-module__gn-composite-bar-item__collapse-item___Up6IX{--_--item-icon-color:var(--g-color-text-misc);align-items:center;cursor:pointer;display:flex;height:100%;padding:0 16px;width:100%}.Item-module__gn-composite-bar-item__collapse-item-icon___CD-ao{color:var(--gn-aside-header-item-icon-color,var(--_--item-icon-color));margin-right:10px}.Item-module__gn-composite-bar-item__collapse-item___Up6IX .Item-module__gn-composite-bar-item__title-adornment___Xcopn{margin-right:0}.Item-module__gn-composite-bar-item__menu-divider___hkm-Z{border-top:1px solid var(--gn-aside-header-divider-horizontal-color,var(--_--horizontal-divider-line-color));cursor:default;margin:0 8px;width:100%}.Item-module__gn-composite-bar-item__collapse-items-popup-content___a82to{padding:4px 0}.Item-module__gn-composite-bar-item__link___McAVN{align-items:center;display:flex;height:100%;width:100%}.Item-module__gn-composite-bar-item__link___McAVN, .Item-module__gn-composite-bar-item__link___McAVN:active, .Item-module__gn-composite-bar-item__link___McAVN:focus, .Item-module__gn-composite-bar-item__link___McAVN:hover, .Item-module__gn-composite-bar-item__link___McAVN:visited{color:inherit;outline:none;text-decoration:none}.Item-module__gn-composite-bar-item__btn-icon___SwT65{align-items:center;display:flex;height:100%;justify-content:center;width:100%}.Item-module__gn-composite-bar-item_type_action___2jxO8{background:var(--gn-aside-header-item-action-color,var(--_--item-action-color));border-radius:var(--gn-composite-bar-item-action-size);box-shadow:0 0 0 1px rgba(0,0,0,.03),0 5px 6px rgba(0,0,0,.12);height:var(--gn-composite-bar-item-action-size);justify-content:center;margin:0 10px 8px;transition:transform .1s ease-out,background-color .15s linear}.Item-module__gn-composite-bar-item_type_action___2jxO8:focus-visible{box-shadow:0 0 0 2px var(--g-color-line-misc)}.Item-module__gn-composite-bar-item_type_action___2jxO8:hover{background-color:var(--gn-aside-header-item-action-color-hover,var(--_--item-action-color-hover))}.Item-module__gn-composite-bar-item_type_action___2jxO8:active{box-shadow:0 1px 2px var(--g-color-sfx-shadow);transform:scale(.96);transition:none}.Item-module__gn-composite-bar-item_type_action___2jxO8 .Item-module__gn-composite-bar-item__icon-place___jPKRh{width:var(--gn-composite-bar-item-action-size)}.Item-module__gn-composite-bar-item_type_action___2jxO8.gn-footer-item{width:calc(100% - 20px)}.Item-module__gn-composite-bar-item__icon-tooltip___PxU2i{align-items:center;box-sizing:border-box;display:flex;height:30px;padding:8px 12px}.Item-module__gn-composite-bar-item__icon-tooltip___PxU2i .g-action-tooltip__description{color:var(--g-color-text-light-primary);margin:0;margin-block:0}.Item-module__gn-composite-bar-item__icon-tooltip_item-type_action___HUhUR{margin-left:10px}.Item-module__gn-composite-bar-item__icon-popover___euq-P{align-items:center;border-radius:12px;box-sizing:border-box;display:flex;padding:var(--g-spacing-2)}.Item-module__gn-composite-bar-item__icon-popover_item-type_action___ep-D3{margin-left:10px}.Item-module__gn-composite-bar-item__popup-content___oys3t{border-radius:var(--gn-aside-header-item-expanded-radius);box-sizing:border-box;min-width:var(--gn-aside-header-size,240px)}.Item-module__gn-composite-bar-item__popup-content_collapsed___LGcy2{min-width:auto;width:var(--gn-aside-header-size,240px)}.Item-module__gn-composite-bar-item__popup-content___oys3t .Item-module__gn-composite-bar-item__root-menu-item___nlpvH[class]{background-color:transparent}.Item-module__gn-composite-bar-item__popup-title___2-tGd{color:var(--g-color-text-primary);font-size:var(--g-text-subheader-2-font-size);font-weight:var(--g-text-subheader-font-weight);line-height:var(--g-text-subheader-2-line-height);padding:var(--g-spacing-2) var(--g-spacing-2) 2px}.Item-module__gn-composite-bar-item__popup-item___MPgm3{box-sizing:border-box}.Item-module__gn-composite-bar-item__popup-item___MPgm3.Item-module__gn-composite-bar-item_type_regular___wkhsT{border-radius:var(--gn-aside-header-item-expanded-radius);height:32px}.Item-module__gn-composite-bar-item_hide-icon___bf5h3 .Item-module__gn-composite-bar-item__icon-place___jPKRh{display:none}.Item-module__gn-composite-bar-item_hide-icon___bf5h3 .Item-module__gn-composite-bar-item__title___wj5L5{margin-left:var(--g-spacing-4)}.Item-module__gn-composite-bar-item___-pkx5:not(.Item-module__gn-composite-bar-item_compact___PVTeM).Item-module__gn-composite-bar-item_current___NT2hB.Item-module__gn-composite-bar-item_type_regular___wkhsT{background-color:var(--gn-aside-header-item-current-background-color,var(--_--item-selected-background-color));border-radius:var(--gn-aside-header-item-expanded-radius)}.Item-module__gn-composite-bar-item___-pkx5:not(.Item-module__gn-composite-bar-item_compact___PVTeM):hover.Item-module__gn-composite-bar-item_type_regular___wkhsT{background-color:var(--gn-aside-header-item-current-background-color-hover,var(--gn-aside-header-item-current-background-color,var(--_--item-selected-background-color)));border-radius:var(--gn-aside-header-item-expanded-radius)}.Item-module__gn-composite-bar-item___-pkx5:not(.Item-module__gn-composite-bar-item_compact___PVTeM):not(.Item-module__gn-composite-bar-item_current___NT2hB):hover.Item-module__gn-composite-bar-item_type_regular___wkhsT{background-color:var(--gn-aside-header-item-background-color-hover,var(--_--item-background-color-hover));border-radius:var(--gn-aside-header-item-expanded-radius)}.Item-module__gn-composite-bar-item__chevron___ZZ-vf{align-items:center;display:flex;flex-shrink:0;margin-left:auto;margin-right:var(--g-spacing-1)}.Item-module__gn-composite-bar-item_compact___PVTeM .Item-module__gn-composite-bar-item__chevron___ZZ-vf{margin:0;position:absolute;right:8px}.Item-module__gn-composite-bar-item_compact___PVTeM .Item-module__gn-composite-bar-item__chevron___ZZ-vf svg{stroke:currentColor;stroke-width:1}.Item-module__gn-composite-bar-item_compact___PVTeM.Item-module__gn-composite-bar-item_type_action___2jxO8{width:var(--gn-composite-bar-item-action-size)}.Item-module__gn-composite-bar-item_compact___PVTeM.Item-module__gn-composite-bar-item_type_action___2jxO8 .Item-module__gn-composite-bar-item__title___wj5L5{margin:0}.Item-module__gn-composite-bar-item_compact___PVTeM.Item-module__gn-composite-bar-item_current___NT2hB.Item-module__gn-composite-bar-item_type_regular___wkhsT .Item-module__gn-composite-bar-item__btn-icon___SwT65{background-color:transparent;position:relative}.Item-module__gn-composite-bar-item_compact___PVTeM.Item-module__gn-composite-bar-item_current___NT2hB.Item-module__gn-composite-bar-item_type_regular___wkhsT .Item-module__gn-composite-bar-item__btn-icon___SwT65:before{background-color:var(--gn-aside-header-item-current-background-color,var(--_--item-selected-background-color));border-radius:var(--gn-aside-header-item-collapsed-radius,var(--_--item-collapsed-radius));content:"";height:var(--gn-aside-header-item-icon-background-size,var(--_--item-icon-background-size));left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);width:var(--gn-aside-header-item-icon-background-size,var(--_--item-icon-background-size));z-index:-1}.Item-module__gn-composite-bar-item_compact___PVTeM:hover.Item-module__gn-composite-bar-item_type_regular___wkhsT .Item-module__gn-composite-bar-item__btn-icon___SwT65{background-color:transparent;position:relative}.Item-module__gn-composite-bar-item_compact___PVTeM:hover.Item-module__gn-composite-bar-item_type_regular___wkhsT .Item-module__gn-composite-bar-item__btn-icon___SwT65:before{background-color:var(--gn-aside-header-item-current-background-color-hover,var(--gn-aside-header-item-current-background-color,var(--_--item-selected-background-color)));border-radius:var(--gn-aside-header-item-collapsed-radius,var(--_--item-collapsed-radius));content:"";height:var(--gn-aside-header-item-icon-background-size,var(--_--item-icon-background-size));left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);width:var(--gn-aside-header-item-icon-background-size,var(--_--item-icon-background-size));z-index:-1}.Item-module__gn-composite-bar-item_compact___PVTeM:not(.Item-module__gn-composite-bar-item_current___NT2hB):hover.Item-module__gn-composite-bar-item_type_regular___wkhsT .Item-module__gn-composite-bar-item__btn-icon___SwT65{background-color:transparent;position:relative}.Item-module__gn-composite-bar-item_compact___PVTeM:not(.Item-module__gn-composite-bar-item_current___NT2hB):hover.Item-module__gn-composite-bar-item_type_regular___wkhsT .Item-module__gn-composite-bar-item__btn-icon___SwT65:before{background-color:var(--gn-aside-header-item-background-color-hover,var(--_--item-background-color-hover));border-radius:var(--gn-aside-header-item-collapsed-radius,var(--_--item-collapsed-radius));content:"";height:var(--gn-aside-header-item-icon-background-size,var(--_--item-icon-background-size));left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);width:var(--gn-aside-header-item-icon-background-size,var(--_--item-icon-background-size));z-index:-1}
@@ -1,14 +1,3 @@
1
1
  import React from 'react';
2
- import { AsideHeaderItem } from 'src/components/AsideHeader/types';
3
- export interface ItemProps extends AsideHeaderItem {
4
- }
5
- interface ItemInnerProps extends ItemProps {
6
- compact?: boolean;
7
- className?: string;
8
- onMouseEnter?: () => void;
9
- onMouseLeave?: () => void;
10
- editMode?: boolean;
11
- onToggleVisibility?: () => void;
12
- }
2
+ import { ItemInnerProps } from './Item.types';
13
3
  export declare const Item: React.FC<ItemInnerProps>;
14
- export {};
@@ -4,35 +4,23 @@ import './Item.css';
4
4
  var React = require('react');
5
5
  var icons = require('@gravity-ui/icons');
6
6
  var uikit = require('@gravity-ui/uikit');
7
- var reactTransitionGroup = require('react-transition-group');
8
7
  var constants$1 = require('../../../../constants.js');
9
8
  var cn = require('../../../../utils/cn.js');
10
9
  var HighlightedItem = require('../HighlightedItem/HighlightedItem.js');
11
10
  var constants = require('../constants.js');
11
+ var grouping = require('../grouping.js');
12
+ var ItemPopup = require('./ItemPopup.js');
13
+ var renderItemTitle = require('./renderItemTitle.js');
12
14
  var Item_module = require('./Item.module.scss.js');
13
15
 
14
16
  const b = cn.createBlock('composite-bar-item', Item_module.default);
15
- const itemTransitionClasses = {
16
- enter: b('transition-title-enter'),
17
- enterActive: b('transition-title-enter-active'),
18
- enterDone: b('transition-title-enter-done'),
19
- exit: b('transition-title-exit'),
20
- exitActive: b('transition-title-exit-active'),
21
- exitDone: b('transition-title-exit-done'),
22
- };
23
- function renderItemTitle(params) {
24
- let titleNode = React.createElement("div", { className: b('title-text') }, params.title);
25
- if (params.rightAdornment) {
26
- titleNode = (React.createElement(React.Fragment, null,
27
- titleNode,
28
- React.createElement("div", { className: b('title-adornment') }, params.rightAdornment)));
29
- }
30
- return titleNode;
31
- }
32
17
  const defaultPopupPlacement = ['right-end'];
33
- const defaultPopupOffset = { mainAxis: 8, crossAxis: -20 };
18
+ const defaultPopupOffset = { mainAxis: 14 };
19
+ const CHEVRON_SIZE = 16;
20
+ const CHEVRON_SIZE_COMPACT = 10;
34
21
  const Item = (props) => {
35
- const { className, onMouseLeave, onMouseEnter, popupVisible = false, popupRef: anchoreRefProp, popupPlacement = defaultPopupPlacement, popupOffset = defaultPopupOffset, popupKeepMounted, renderPopupContent, onOpenChangePopup, onItemClick, onItemClickCapture, itemWrapper, bringForward, rightAdornment, title, href, qa, compact, editMode = false, onToggleVisibility, hidden, preventUserRemoving, } = props;
22
+ const { className, popupItemClassName, menuPopupItems, menuPopupTitle, compact, onMouseLeave, onMouseEnter, enableTooltip = true, popupVisible = false, popupRef: anchoreRefProp, popupPlacement = defaultPopupPlacement, popupOffset = defaultPopupOffset, popupKeepMounted, renderPopupContent, onOpenChangePopup, onItemClick, onItemClickCapture, itemWrapper, bringForward, rightAdornment, title, href, qa, hideIcon = false, stopClickPropagation = false, } = props;
23
+ const [compactNavPopoverOpen, setCompactNavPopoverOpen] = React.useState(false);
36
24
  const ref = React.useRef(null);
37
25
  const anchorRef = (anchoreRefProp === null || anchoreRefProp === undefined ? undefined : anchoreRefProp.current) ? anchoreRefProp : ref;
38
26
  const highlightedRef = React.useRef(null);
@@ -41,11 +29,8 @@ const Item = (props) => {
41
29
  const icon = props.icon;
42
30
  const iconSize = props.iconSize || constants$1.ASIDE_HEADER_ICON_SIZE;
43
31
  const iconQa = props.iconQa;
44
- const onPinButtonClick = React.useCallback((e) => {
45
- e.stopPropagation();
46
- e.preventDefault();
47
- onToggleVisibility === null || onToggleVisibility === undefined ? undefined : onToggleVisibility();
48
- }, [onToggleVisibility]);
32
+ const collapsedItem = props.id === constants.COLLAPSE_ITEM_ID;
33
+ const isGroupHeader = grouping.isGroupHeaderItem(props);
49
34
  const handleOpenChangePopup = React.useCallback((newOpen, event, reason) => {
50
35
  var _a;
51
36
  if (event instanceof MouseEvent &&
@@ -53,34 +38,62 @@ const Item = (props) => {
53
38
  ((_a = ref.current) === null || _a === undefined ? undefined : _a.contains(event.target))) {
54
39
  return;
55
40
  }
41
+ if (newOpen) {
42
+ setCompactNavPopoverOpen(false);
43
+ }
56
44
  onOpenChangePopup === null || onOpenChangePopup === undefined ? undefined : onOpenChangePopup(newOpen, event, reason);
57
45
  }, [onOpenChangePopup]);
58
46
  if (type === 'divider') {
59
47
  return React.createElement("div", { className: b('menu-divider') });
60
48
  }
49
+ const compactPopoverDisabled = !enableTooltip || popupVisible || type === 'action';
61
50
  const makeIconNode = (iconEl) => {
62
- return compact ? React.createElement("div", { className: b('btn-icon') }, iconEl) : iconEl;
51
+ if (!compact) {
52
+ return iconEl;
53
+ }
54
+ const iconButton = (React.createElement("div", { onMouseEnter: () => onMouseEnter === null || onMouseEnter === undefined ? undefined : onMouseEnter(), onMouseLeave: () => onMouseLeave === null || onMouseLeave === undefined ? undefined : onMouseLeave(), className: b('btn-icon') }, iconEl));
55
+ if (menuPopupItems === null || menuPopupItems === undefined ? undefined : menuPopupItems.length) {
56
+ return iconButton;
57
+ }
58
+ return (React.createElement(ItemPopup.ItemPopup, { items: [props], open: compactNavPopoverOpen, onOpenChange: (nextOpen) => {
59
+ if (nextOpen && compactPopoverDisabled)
60
+ return;
61
+ setCompactNavPopoverOpen(nextOpen);
62
+ }, hideIcon: true, itemClassName: popupItemClassName, disabled: compactPopoverDisabled, type: type, collapsed: compact, onItemClick: onItemClick }, iconButton));
63
63
  };
64
64
  const makeNode = ({ icon: iconEl, title: titleEl }) => {
65
65
  const [Tag, tagProps] = href ? ['a', { href }] : ['button', {}];
66
- const createdNode = (React.createElement(React.Fragment, null,
67
- React.createElement(Tag, Object.assign({}, tagProps, { className: b({ type, current, compact }, className), ref: ref, "data-qa": qa, onClick: (event) => {
68
- onItemClick === null || onItemClick === undefined ? undefined : onItemClick(props, false, event);
69
- }, onClickCapture: onItemClickCapture, onMouseEnter: () => {
66
+ const tagNode = (React.createElement(Tag, Object.assign({}, tagProps, { className: b({ type, current, compact, 'hide-icon': hideIcon }, className), ref: ref, "data-type": type, "data-qa": qa, onClick: (event) => {
67
+ if (stopClickPropagation) {
68
+ event.stopPropagation();
69
+ }
70
+ if (compact && !collapsedItem) {
71
+ setCompactNavPopoverOpen(false);
72
+ }
73
+ onItemClick === null || onItemClick === undefined ? undefined : onItemClick(props, collapsedItem, event);
74
+ }, onClickCapture: onItemClickCapture, onMouseEnter: () => {
75
+ if (!compact) {
70
76
  onMouseEnter === null || onMouseEnter === undefined ? undefined : onMouseEnter();
71
- }, onMouseLeave: () => {
77
+ }
78
+ }, onMouseLeave: () => {
79
+ if (!compact) {
72
80
  onMouseLeave === null || onMouseLeave === undefined ? undefined : onMouseLeave();
73
- } }),
74
- React.createElement("div", { className: b('icon-place'), ref: highlightedRef }, makeIconNode(iconEl)),
75
- React.createElement(reactTransitionGroup.CSSTransition, { in: !compact, timeout: constants$1.ASIDE_HEADER_EXPAND_TRANSITION_DELAY, classNames: itemTransitionClasses },
76
- React.createElement("div", { className: b('title'), title: typeof title === 'string' ? title : undefined }, titleEl)),
77
- editMode && !preventUserRemoving && onToggleVisibility ? (React.createElement(uikit.Button, { onClick: onPinButtonClick, view: hidden ? 'flat-secondary' : 'flat-action', className: b('visibility-button') },
78
- React.createElement(uikit.Button.Icon, null, hidden ? React.createElement(icons.Pin, null) : React.createElement(icons.PinFill, null)))) : null),
81
+ }
82
+ } }),
83
+ React.createElement("div", { className: b('icon-place'), ref: highlightedRef }, makeIconNode(iconEl)),
84
+ React.createElement("div", { className: b('title'), title: typeof title === 'string' ? title : undefined }, titleEl),
85
+ Boolean(menuPopupItems === null || menuPopupItems === undefined ? undefined : menuPopupItems.length) && (isGroupHeader || collapsedItem) && (React.createElement("div", { className: b('chevron') },
86
+ React.createElement(uikit.Icon, { data: icons.ChevronRight, size: compact ? CHEVRON_SIZE_COMPACT : CHEVRON_SIZE })))));
87
+ const expandedMenuRows = menuPopupItems;
88
+ const showMenuPopup = Boolean(expandedMenuRows === null || expandedMenuRows === undefined ? undefined : expandedMenuRows.length) && (collapsedItem || isGroupHeader);
89
+ const wrappedTagNode = showMenuPopup && expandedMenuRows ? (React.createElement(ItemPopup.ItemPopup, { items: expandedMenuRows, title: isGroupHeader ? menuPopupTitle : undefined, open: compactNavPopoverOpen, itemClassName: popupItemClassName, onOpenChange: setCompactNavPopoverOpen, collapsed: collapsedItem ? true : compact, onItemClick: onItemClick }, tagNode)) : (tagNode);
90
+ const createdNode = (React.createElement(React.Fragment, null,
91
+ wrappedTagNode,
79
92
  renderPopupContent && Boolean(anchorRef === null || anchorRef === undefined ? undefined : anchorRef.current) && (React.createElement(uikit.Popup, { strategy: "fixed", open: popupVisible, keepMounted: popupKeepMounted, placement: popupPlacement, offset: popupOffset, anchorElement: anchorRef.current, onOpenChange: handleOpenChangePopup }, renderPopupContent()))));
80
93
  return createdNode;
81
94
  };
82
- const iconNode = icon ? (React.createElement(uikit.Icon, { qa: iconQa, data: icon, size: iconSize, className: b('icon') })) : null;
83
- const titleNode = renderItemTitle({ title, rightAdornment });
95
+ const iconNode = hideIcon || !icon ? null : (React.createElement(uikit.Icon, { qa: iconQa, data: icon, size: iconSize, className: b('icon') }));
96
+ const titleNode = renderItemTitle.renderItemTitle({ title, rightAdornment });
84
97
  const params = { icon: iconNode, title: titleNode };
85
98
  let highlightedNode = null;
86
99
  let node;