@gravity-ui/navigation 2.33.0 → 3.0.0-beta-lunory.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 (278) hide show
  1. package/README.md +1 -1
  2. package/build/cjs/components/ActionBar/ActionBar.d.ts +3 -3
  3. package/build/cjs/components/ActionBar/__stories__/ActionBar.stories.d.ts +17 -0
  4. package/build/cjs/components/ActionBar/__stories__/ActionBarShowcase.d.ts +2 -0
  5. package/build/cjs/components/ActionBar/__stories__/ActionBarSingleSection.d.ts +2 -0
  6. package/build/cjs/components/ActionBar/__tests__/helpersPlaywright.d.ts +1 -1
  7. package/build/cjs/components/ActionBar/types.d.ts +1 -1
  8. package/build/cjs/components/AllPagesPanel/i18n/index.d.ts +5 -1
  9. package/build/cjs/components/AsideHeader/AsideHeaderContext.d.ts +1 -1
  10. package/build/cjs/components/AsideHeader/__stories__/AsideHeader.stories.d.ts +18 -0
  11. package/build/cjs/components/AsideHeader/__stories__/AsideHeaderShowcase.d.ts +14 -0
  12. package/build/cjs/components/AsideHeader/__stories__/getAsideHeaderWrapper.d.ts +3 -0
  13. package/build/cjs/components/AsideHeader/__stories__/moc.d.ts +6 -0
  14. package/build/cjs/components/AsideHeader/__tests__/helpersPlaywright.d.ts +1 -1
  15. package/build/cjs/components/AsideHeader/components/index.d.ts +0 -1
  16. package/build/cjs/components/AsideHeader/i18n/index.d.ts +5 -1
  17. package/build/cjs/components/AsideHeader/types.d.ts +3 -4
  18. package/build/cjs/components/CompositeBar/CompositeBar.d.ts +1 -1
  19. package/build/cjs/components/CompositeBar/HighlightedItem/HighlightedItem.d.ts +1 -1
  20. package/build/cjs/components/CompositeBar/Item/Item.d.ts +15 -2
  21. package/build/cjs/components/Drawer/Drawer.d.ts +0 -5
  22. package/build/cjs/components/Drawer/__stories__/DisablePortal.d.ts +3 -0
  23. package/build/cjs/components/Drawer/__stories__/Drawer.stories.d.ts +7 -0
  24. package/build/cjs/components/Drawer/__stories__/DrawerShowcase.d.ts +3 -0
  25. package/build/cjs/components/Drawer/__stories__/HideVeil.d.ts +3 -0
  26. package/build/cjs/components/Drawer/__stories__/ResizableItem.d.ts +3 -0
  27. package/build/cjs/components/Drawer/__stories__/moc.d.ts +2 -0
  28. package/build/cjs/components/Drawer/__tests__/helpersPlaywright.d.ts +1 -1
  29. package/build/cjs/components/Drawer/utils.d.ts +2 -3
  30. package/build/cjs/components/Footer/desktop/__stories__/Footer.stories.d.ts +8 -0
  31. package/build/cjs/components/Footer/desktop/__stories__/FooterShowcase.d.ts +4 -0
  32. package/build/cjs/components/Footer/desktop/__stories__/moc.d.ts +3 -0
  33. package/build/cjs/components/Footer/desktop/__tests__/helpersPlaywright.d.ts +1 -1
  34. package/build/cjs/components/Footer/mobile/__stories__/MobileFooter.stories.d.ts +8 -0
  35. package/build/cjs/components/Footer/mobile/__stories__/MobileFooterShowcase.d.ts +4 -0
  36. package/build/cjs/components/Footer/mobile/__stories__/moc.d.ts +3 -0
  37. package/build/cjs/components/Footer/mobile/__tests__/helpersPlaywright.d.ts +1 -1
  38. package/build/cjs/components/FooterItem/__stories__/FooterItem.stories.d.ts +6 -0
  39. package/build/cjs/components/FooterItem/__tests__/helpersPlaywright.d.ts +1 -1
  40. package/build/cjs/components/HotkeysPanel/HotkeysPanel.d.ts +1 -3
  41. package/build/cjs/components/HotkeysPanel/__stories__/HotkeysPanel.stories.d.ts +5 -0
  42. package/build/cjs/components/HotkeysPanel/__stories__/HotkeysPanelShowcase.d.ts +6 -0
  43. package/build/cjs/components/HotkeysPanel/__stories__/moc.d.ts +2 -0
  44. package/build/cjs/components/HotkeysPanel/__tests__/helpersPlaywright.d.ts +1 -1
  45. package/build/cjs/components/Logo/Logo.d.ts +1 -1
  46. package/build/cjs/components/Logo/__stories__/Logo.stories.d.ts +6 -0
  47. package/build/cjs/components/Logo/__tests__/helpersPlaywright.d.ts +1 -1
  48. package/build/cjs/components/MobileHeader/BurgerMenu/__stories__/BurgerMenu.stories.d.ts +6 -0
  49. package/build/cjs/components/MobileHeader/BurgerMenu/__stories__/moc.d.ts +2 -0
  50. package/build/cjs/components/MobileHeader/BurgerMenu/__tests__/helpersPlaywright.d.ts +1 -1
  51. package/build/cjs/components/MobileHeader/MobileHeader.d.ts +2 -1
  52. package/build/cjs/components/MobileHeader/OverlapPanel/__stories__/OverlapPanel.stories.d.ts +6 -0
  53. package/build/cjs/components/MobileHeader/OverlapPanel/__stories__/moc.d.ts +2 -0
  54. package/build/cjs/components/MobileHeader/OverlapPanel/__tests__/helpersPlaywright.d.ts +1 -1
  55. package/build/cjs/components/MobileHeader/__stories__/MobileHeader.stories.d.ts +4 -0
  56. package/build/cjs/components/MobileHeader/__stories__/MobileHeaderShowcase.d.ts +3 -0
  57. package/build/cjs/components/MobileHeader/__stories__/moc.d.ts +1 -0
  58. package/build/cjs/components/MobileHeader/__tests__/helpersPlaywright.d.ts +1 -1
  59. package/build/cjs/components/MobileHeader/i18n/index.d.ts +5 -1
  60. package/build/cjs/components/MobileHeader/types.d.ts +0 -1
  61. package/build/cjs/components/MobileLogo/__stories__/MobileLogo.stories.d.ts +6 -0
  62. package/build/cjs/components/MobileLogo/__tests__/helpersPlaywright.d.ts +1 -1
  63. package/build/cjs/components/Settings/Settings.d.ts +1 -3
  64. package/build/cjs/components/Settings/__stories__/Settings.stories.d.ts +5 -0
  65. package/build/cjs/components/Settings/__stories__/SettingsDemo.d.ts +14 -0
  66. package/build/cjs/components/Settings/__stories__/SettingsMobileDemo.d.ts +8 -0
  67. package/build/cjs/components/Settings/__tests__/helpersPlaywright.d.ts +1 -1
  68. package/build/cjs/components/Settings/collect-settings.d.ts +0 -2
  69. package/build/cjs/components/Settings/i18n/index.d.ts +5 -1
  70. package/build/cjs/components/Title/i18n/index.d.ts +5 -1
  71. package/build/cjs/components/TopAlert/TopAlert.d.ts +10 -0
  72. package/build/cjs/components/TopAlert/index.d.ts +1 -0
  73. package/build/cjs/components/TopAlert/useTopAlertHeight.d.ts +10 -0
  74. package/build/cjs/components/types.d.ts +9 -5
  75. package/build/cjs/hooks/useForwardRef.d.ts +1 -1
  76. package/build/cjs/index-HbnaVyaN.js +69 -0
  77. package/build/cjs/index-HbnaVyaN.js.map +1 -0
  78. package/build/cjs/index-j1vouNtm.js +5734 -0
  79. package/build/cjs/index-j1vouNtm.js.map +1 -0
  80. package/build/cjs/index.js +32 -194
  81. package/build/cjs/index.js.map +1 -1
  82. package/build/esm/components/ActionBar/ActionBar.d.ts +3 -3
  83. package/build/esm/components/ActionBar/__stories__/ActionBar.stories.d.ts +17 -0
  84. package/build/esm/components/ActionBar/__stories__/ActionBarShowcase.d.ts +2 -0
  85. package/build/esm/components/ActionBar/__stories__/ActionBarSingleSection.d.ts +2 -0
  86. package/build/esm/components/ActionBar/__tests__/helpersPlaywright.d.ts +1 -1
  87. package/build/esm/components/ActionBar/types.d.ts +1 -1
  88. package/build/esm/components/AllPagesPanel/i18n/index.d.ts +5 -1
  89. package/build/esm/components/AsideHeader/AsideHeaderContext.d.ts +1 -1
  90. package/build/esm/components/AsideHeader/__stories__/AsideHeader.stories.d.ts +18 -0
  91. package/build/esm/components/AsideHeader/__stories__/AsideHeaderShowcase.d.ts +14 -0
  92. package/build/esm/components/AsideHeader/__stories__/getAsideHeaderWrapper.d.ts +3 -0
  93. package/build/esm/components/AsideHeader/__stories__/moc.d.ts +6 -0
  94. package/build/esm/components/AsideHeader/__tests__/helpersPlaywright.d.ts +1 -1
  95. package/build/esm/components/AsideHeader/components/index.d.ts +0 -1
  96. package/build/esm/components/AsideHeader/i18n/index.d.ts +5 -1
  97. package/build/esm/components/AsideHeader/types.d.ts +3 -4
  98. package/build/esm/components/CompositeBar/CompositeBar.d.ts +1 -1
  99. package/build/esm/components/CompositeBar/HighlightedItem/HighlightedItem.d.ts +1 -1
  100. package/build/esm/components/CompositeBar/Item/Item.d.ts +15 -2
  101. package/build/esm/components/Drawer/Drawer.d.ts +0 -5
  102. package/build/esm/components/Drawer/__stories__/DisablePortal.d.ts +3 -0
  103. package/build/esm/components/Drawer/__stories__/Drawer.stories.d.ts +7 -0
  104. package/build/esm/components/Drawer/__stories__/DrawerShowcase.d.ts +3 -0
  105. package/build/esm/components/Drawer/__stories__/HideVeil.d.ts +3 -0
  106. package/build/esm/components/Drawer/__stories__/ResizableItem.d.ts +3 -0
  107. package/build/esm/components/Drawer/__stories__/moc.d.ts +2 -0
  108. package/build/esm/components/Drawer/__tests__/helpersPlaywright.d.ts +1 -1
  109. package/build/esm/components/Drawer/utils.d.ts +2 -3
  110. package/build/esm/components/Footer/desktop/__stories__/Footer.stories.d.ts +8 -0
  111. package/build/esm/components/Footer/desktop/__stories__/FooterShowcase.d.ts +4 -0
  112. package/build/esm/components/Footer/desktop/__stories__/moc.d.ts +3 -0
  113. package/build/esm/components/Footer/desktop/__tests__/helpersPlaywright.d.ts +1 -1
  114. package/build/esm/components/Footer/mobile/__stories__/MobileFooter.stories.d.ts +8 -0
  115. package/build/esm/components/Footer/mobile/__stories__/MobileFooterShowcase.d.ts +4 -0
  116. package/build/esm/components/Footer/mobile/__stories__/moc.d.ts +3 -0
  117. package/build/esm/components/Footer/mobile/__tests__/helpersPlaywright.d.ts +1 -1
  118. package/build/esm/components/FooterItem/__stories__/FooterItem.stories.d.ts +6 -0
  119. package/build/esm/components/FooterItem/__tests__/helpersPlaywright.d.ts +1 -1
  120. package/build/esm/components/HotkeysPanel/HotkeysPanel.d.ts +1 -3
  121. package/build/esm/components/HotkeysPanel/__stories__/HotkeysPanel.stories.d.ts +5 -0
  122. package/build/esm/components/HotkeysPanel/__stories__/HotkeysPanelShowcase.d.ts +6 -0
  123. package/build/esm/components/HotkeysPanel/__stories__/moc.d.ts +2 -0
  124. package/build/esm/components/HotkeysPanel/__tests__/helpersPlaywright.d.ts +1 -1
  125. package/build/esm/components/Logo/Logo.d.ts +1 -1
  126. package/build/esm/components/Logo/__stories__/Logo.stories.d.ts +6 -0
  127. package/build/esm/components/Logo/__tests__/helpersPlaywright.d.ts +1 -1
  128. package/build/esm/components/MobileHeader/BurgerMenu/__stories__/BurgerMenu.stories.d.ts +6 -0
  129. package/build/esm/components/MobileHeader/BurgerMenu/__stories__/moc.d.ts +2 -0
  130. package/build/esm/components/MobileHeader/BurgerMenu/__tests__/helpersPlaywright.d.ts +1 -1
  131. package/build/esm/components/MobileHeader/MobileHeader.d.ts +2 -1
  132. package/build/esm/components/MobileHeader/OverlapPanel/__stories__/OverlapPanel.stories.d.ts +6 -0
  133. package/build/esm/components/MobileHeader/OverlapPanel/__stories__/moc.d.ts +2 -0
  134. package/build/esm/components/MobileHeader/OverlapPanel/__tests__/helpersPlaywright.d.ts +1 -1
  135. package/build/esm/components/MobileHeader/__stories__/MobileHeader.stories.d.ts +4 -0
  136. package/build/esm/components/MobileHeader/__stories__/MobileHeaderShowcase.d.ts +3 -0
  137. package/build/esm/components/MobileHeader/__stories__/moc.d.ts +1 -0
  138. package/build/esm/components/MobileHeader/__tests__/helpersPlaywright.d.ts +1 -1
  139. package/build/esm/components/MobileHeader/i18n/index.d.ts +5 -1
  140. package/build/esm/components/MobileHeader/types.d.ts +0 -1
  141. package/build/esm/components/MobileLogo/__stories__/MobileLogo.stories.d.ts +6 -0
  142. package/build/esm/components/MobileLogo/__tests__/helpersPlaywright.d.ts +1 -1
  143. package/build/esm/components/Settings/Settings.d.ts +1 -3
  144. package/build/esm/components/Settings/__stories__/Settings.stories.d.ts +5 -0
  145. package/build/esm/components/Settings/__stories__/SettingsDemo.d.ts +14 -0
  146. package/build/esm/components/Settings/__stories__/SettingsMobileDemo.d.ts +8 -0
  147. package/build/esm/components/Settings/__tests__/helpersPlaywright.d.ts +1 -1
  148. package/build/esm/components/Settings/collect-settings.d.ts +0 -2
  149. package/build/esm/components/Settings/i18n/index.d.ts +5 -1
  150. package/build/esm/components/Title/i18n/index.d.ts +5 -1
  151. package/build/esm/components/TopAlert/TopAlert.d.ts +10 -0
  152. package/build/esm/components/TopAlert/index.d.ts +1 -0
  153. package/build/esm/components/TopAlert/useTopAlertHeight.d.ts +10 -0
  154. package/build/esm/components/types.d.ts +9 -5
  155. package/build/esm/hooks/useForwardRef.d.ts +1 -1
  156. package/build/esm/index-C7O46WxY.js +5689 -0
  157. package/build/esm/index-C7O46WxY.js.map +1 -0
  158. package/build/esm/index-DruPZQaT.js +67 -0
  159. package/build/esm/index-DruPZQaT.js.map +1 -0
  160. package/build/esm/index.js +6 -167
  161. package/build/esm/index.js.map +1 -1
  162. package/package.json +48 -45
  163. package/build/cjs/ActionBar-3c6cdf57.js +0 -63
  164. package/build/cjs/ActionBar-3c6cdf57.js.map +0 -1
  165. package/build/cjs/AsideFallback.js +0 -31
  166. package/build/cjs/AsideFallback.js.map +0 -1
  167. package/build/cjs/AsideHeader.js +0 -38
  168. package/build/cjs/AsideHeader.js.map +0 -1
  169. package/build/cjs/AsideHeaderContext.js +0 -44
  170. package/build/cjs/AsideHeaderContext.js.map +0 -1
  171. package/build/cjs/Content-64d5738a.js +0 -20
  172. package/build/cjs/Content-64d5738a.js.map +0 -1
  173. package/build/cjs/Drawer.js +0 -3201
  174. package/build/cjs/Drawer.js.map +0 -1
  175. package/build/cjs/FooterItem-d34d84ed.js +0 -336
  176. package/build/cjs/FooterItem-d34d84ed.js.map +0 -1
  177. package/build/cjs/FooterItem.js +0 -31
  178. package/build/cjs/FooterItem.js.map +0 -1
  179. package/build/cjs/HotkeysPanel-1c05ffa8.js +0 -67
  180. package/build/cjs/HotkeysPanel-1c05ffa8.js.map +0 -1
  181. package/build/cjs/Item-ff6bc440.js +0 -303
  182. package/build/cjs/Item-ff6bc440.js.map +0 -1
  183. package/build/cjs/PageLayout.js +0 -40
  184. package/build/cjs/PageLayout.js.map +0 -1
  185. package/build/cjs/PageLayoutAside-56a441a9.js +0 -1008
  186. package/build/cjs/PageLayoutAside-56a441a9.js.map +0 -1
  187. package/build/cjs/PageLayoutAside.js +0 -25
  188. package/build/cjs/PageLayoutAside.js.map +0 -1
  189. package/build/cjs/Settings-8dc2a8ee.js +0 -579
  190. package/build/cjs/Settings-8dc2a8ee.js.map +0 -1
  191. package/build/cjs/Title-54580605.js +0 -42
  192. package/build/cjs/Title-54580605.js.map +0 -1
  193. package/build/cjs/TopPanel-c6b83157.js +0 -82
  194. package/build/cjs/TopPanel-c6b83157.js.map +0 -1
  195. package/build/cjs/cn-9933321a.js +0 -11
  196. package/build/cjs/cn-9933321a.js.map +0 -1
  197. package/build/cjs/components/AsideHeader/components/TopPanel.d.ts +0 -7
  198. package/build/cjs/components/AsideHeader/useAsideHeaderTopPanel.d.ts +0 -10
  199. package/build/cjs/constants-d81c3867.js +0 -14
  200. package/build/cjs/constants-d81c3867.js.map +0 -1
  201. package/build/cjs/debounce-8772fd80.js +0 -545
  202. package/build/cjs/debounce-8772fd80.js.map +0 -1
  203. package/build/cjs/divider-collapsed-b743122e.js +0 -41
  204. package/build/cjs/divider-collapsed-b743122e.js.map +0 -1
  205. package/build/cjs/index2.js +0 -14
  206. package/build/cjs/index2.js.map +0 -1
  207. package/build/cjs/index3.js +0 -17
  208. package/build/cjs/index3.js.map +0 -1
  209. package/build/cjs/index4.js +0 -18
  210. package/build/cjs/index4.js.map +0 -1
  211. package/build/cjs/index5.js +0 -22
  212. package/build/cjs/index5.js.map +0 -1
  213. package/build/cjs/index6.js +0 -23
  214. package/build/cjs/index6.js.map +0 -1
  215. package/build/cjs/style-inject.es-dcee06b6.js +0 -31
  216. package/build/cjs/style-inject.es-dcee06b6.js.map +0 -1
  217. package/build/cjs/tslib.es6-705c6589.js +0 -36
  218. package/build/cjs/tslib.es6-705c6589.js.map +0 -1
  219. package/build/cjs/utils-db3e03c2.js +0 -8
  220. package/build/cjs/utils-db3e03c2.js.map +0 -1
  221. package/build/esm/ActionBar-834b178a.js +0 -57
  222. package/build/esm/ActionBar-834b178a.js.map +0 -1
  223. package/build/esm/AsideFallback.js +0 -23
  224. package/build/esm/AsideFallback.js.map +0 -1
  225. package/build/esm/AsideHeader.js +0 -30
  226. package/build/esm/AsideHeader.js.map +0 -1
  227. package/build/esm/AsideHeaderContext.js +0 -31
  228. package/build/esm/AsideHeaderContext.js.map +0 -1
  229. package/build/esm/Content-f94ba85d.js +0 -14
  230. package/build/esm/Content-f94ba85d.js.map +0 -1
  231. package/build/esm/Drawer.js +0 -3173
  232. package/build/esm/Drawer.js.map +0 -1
  233. package/build/esm/FooterItem-af3c4fa3.js +0 -326
  234. package/build/esm/FooterItem-af3c4fa3.js.map +0 -1
  235. package/build/esm/FooterItem.js +0 -23
  236. package/build/esm/FooterItem.js.map +0 -1
  237. package/build/esm/HotkeysPanel-c7bf8466.js +0 -61
  238. package/build/esm/HotkeysPanel-c7bf8466.js.map +0 -1
  239. package/build/esm/Item-55899ec8.js +0 -289
  240. package/build/esm/Item-55899ec8.js.map +0 -1
  241. package/build/esm/PageLayout.js +0 -32
  242. package/build/esm/PageLayout.js.map +0 -1
  243. package/build/esm/PageLayoutAside-edd59955.js +0 -983
  244. package/build/esm/PageLayoutAside-edd59955.js.map +0 -1
  245. package/build/esm/PageLayoutAside.js +0 -17
  246. package/build/esm/PageLayoutAside.js.map +0 -1
  247. package/build/esm/Settings-e660a4c5.js +0 -553
  248. package/build/esm/Settings-e660a4c5.js.map +0 -1
  249. package/build/esm/Title-03b4255a.js +0 -36
  250. package/build/esm/Title-03b4255a.js.map +0 -1
  251. package/build/esm/TopPanel-cd270f27.js +0 -76
  252. package/build/esm/TopPanel-cd270f27.js.map +0 -1
  253. package/build/esm/cn-ffe5e9f5.js +0 -8
  254. package/build/esm/cn-ffe5e9f5.js.map +0 -1
  255. package/build/esm/components/AsideHeader/components/TopPanel.d.ts +0 -7
  256. package/build/esm/components/AsideHeader/useAsideHeaderTopPanel.d.ts +0 -10
  257. package/build/esm/constants-b1604ff5.js +0 -8
  258. package/build/esm/constants-b1604ff5.js.map +0 -1
  259. package/build/esm/debounce-64cd2b4c.js +0 -543
  260. package/build/esm/debounce-64cd2b4c.js.map +0 -1
  261. package/build/esm/divider-collapsed-a0ef54c3.js +0 -19
  262. package/build/esm/divider-collapsed-a0ef54c3.js.map +0 -1
  263. package/build/esm/index2.js +0 -6
  264. package/build/esm/index2.js.map +0 -1
  265. package/build/esm/index3.js +0 -9
  266. package/build/esm/index3.js.map +0 -1
  267. package/build/esm/index4.js +0 -10
  268. package/build/esm/index4.js.map +0 -1
  269. package/build/esm/index5.js +0 -12
  270. package/build/esm/index5.js.map +0 -1
  271. package/build/esm/index6.js +0 -12
  272. package/build/esm/index6.js.map +0 -1
  273. package/build/esm/style-inject.es-1f59c1d0.js +0 -29
  274. package/build/esm/style-inject.es-1f59c1d0.js.map +0 -1
  275. package/build/esm/tslib.es6-3cd4e99f.js +0 -34
  276. package/build/esm/tslib.es6-3cd4e99f.js.map +0 -1
  277. package/build/esm/utils-117463a5.js +0 -6
  278. package/build/esm/utils-117463a5.js.map +0 -1
@@ -1,1008 +0,0 @@
1
- 'use strict';
2
-
3
- var React = require('react');
4
- var uikit = require('@gravity-ui/uikit');
5
- var icons = require('@gravity-ui/icons');
6
- var AsideHeaderContext = require('./AsideHeaderContext.js');
7
- var cn = require('./cn-9933321a.js');
8
- var styleInject_es = require('./style-inject.es-dcee06b6.js');
9
- var i18n$2 = require('@gravity-ui/uikit/i18n');
10
- var constants = require('./constants-d81c3867.js');
11
- var Item = require('./Item-ff6bc440.js');
12
- var utils = require('./utils-db3e03c2.js');
13
- var dividerCollapsed = require('./divider-collapsed-b743122e.js');
14
- var Drawer = require('./Drawer.js');
15
- require('./debounce-8772fd80.js');
16
-
17
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
18
-
19
- function _interopNamespace(e) {
20
- if (e && e.__esModule) return e;
21
- var n = Object.create(null);
22
- if (e) {
23
- Object.keys(e).forEach(function (k) {
24
- if (k !== 'default') {
25
- var d = Object.getOwnPropertyDescriptor(e, k);
26
- Object.defineProperty(n, k, d.get ? d : {
27
- enumerable: true,
28
- get: function () { return e[k]; }
29
- });
30
- }
31
- });
32
- }
33
- n["default"] = e;
34
- return Object.freeze(n);
35
- }
36
-
37
- var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
38
- var React__namespace = /*#__PURE__*/_interopNamespace(React);
39
-
40
- var css_248z$5 = ".gn-all-pages-list-item{align-items:center;column-gap:var(--g-spacing-4);display:flex;height:40px;padding:0 var(--g-spacing-6);width:100%}.gn-all-pages-list-item__text{flex:1}.gn-all-pages-list-item__icon{color:var(--g-color-text-misc)}.gn-all-pages-list-item_edit-mode{padding:0 0 0 var(--g-spacing-4)}";
41
- styleInject_es.styleInject(css_248z$5);
42
-
43
- const b$5 = cn.block('all-pages-list-item');
44
- const AllPagesListItem = (props) => {
45
- const { item, editMode, onToggle, enableSorting, onDragStart, onDragEnd } = props;
46
- const onPinButtonClick = React.useCallback((e) => {
47
- e.stopPropagation();
48
- e.preventDefault();
49
- onToggle();
50
- }, [onToggle]);
51
- const onItemClick = (e) => {
52
- if (editMode) {
53
- e.stopPropagation();
54
- e.preventDefault();
55
- }
56
- };
57
- const onItemDragStart = (e) => {
58
- if (editMode && onDragStart) {
59
- e.stopPropagation();
60
- e.preventDefault();
61
- onDragStart();
62
- }
63
- };
64
- const onItemDragEnd = (e) => {
65
- if (editMode && onDragEnd) {
66
- e.stopPropagation();
67
- e.preventDefault();
68
- onDragEnd();
69
- }
70
- };
71
- return (React__default["default"].createElement("div", { key: item.id, className: b$5({ 'edit-mode': editMode && enableSorting }), onClick: onItemClick, draggable: editMode && enableSorting, onMouseDown: onItemDragStart, onMouseUp: onItemDragEnd },
72
- item.icon ? (React__default["default"].createElement(uikit.Icon, { className: b$5('icon'), data: item.icon, size: item.iconSize })) : null,
73
- React__default["default"].createElement("span", { className: b$5('text') }, item.title),
74
- editMode && !item.preventUserRemoving && (React__default["default"].createElement(uikit.Button, { onClick: onPinButtonClick, view: item.hidden ? 'flat-secondary' : 'flat-action' },
75
- React__default["default"].createElement(uikit.Button.Icon, null, item.hidden ? React__default["default"].createElement(icons.Pin, null) : React__default["default"].createElement(icons.PinFill, null))))));
76
- };
77
-
78
- var en$1 = {
79
- "menu-item.all-pages.title": "All pages",
80
- "all-panel.menu.category.allOther": "All other",
81
- "all-panel.resetToDefault": "Reset to default",
82
- "all-panel.title.editing": "Configuring the menu bar",
83
- "all-panel.title.main": "All pages"
84
- };
85
-
86
- var ru$1 = {
87
- "menu-item.all-pages.title": "Все страницы",
88
- "all-panel.menu.category.allOther": "Остальное",
89
- "all-panel.resetToDefault": "Сбросить по умолчанию",
90
- "all-panel.title.editing": "Настройка панели меню",
91
- "all-panel.title.main": "Все страницы"
92
- };
93
-
94
- const COMPONENT$1 = 'AllPagesPanel';
95
- var i18n$1 = i18n$2.addComponentKeysets({ en: en$1, ru: ru$1 }, `${cn.NAMESPACE}${COMPONENT$1}`);
96
-
97
- const ALL_PAGES_ID = 'all-pages';
98
- function getAllPagesMenuItem() {
99
- return {
100
- id: ALL_PAGES_ID,
101
- title: i18n$1('menu-item.all-pages.title'),
102
- tooltipText: i18n$1('menu-item.all-pages.title'),
103
- icon: icons.Ellipsis,
104
- };
105
- }
106
-
107
- const useGroupedMenuItems = (items) => {
108
- const allPagesMenuItems = React.useMemo(() => {
109
- const filteredItems = items.filter((item) => item.type !== 'divider' && item.id !== ALL_PAGES_ID);
110
- filteredItems.sort((a, b) => {
111
- if (a.type === 'action') {
112
- return 1;
113
- }
114
- if (b.type === 'action') {
115
- return -1;
116
- }
117
- return 0;
118
- });
119
- const groupedItems = filteredItems.reduce((acc, item) => {
120
- const category = item.category || i18n$1('all-panel.menu.category.allOther');
121
- if (!acc[category]) {
122
- acc[category] = [];
123
- }
124
- acc[category].push(item);
125
- return acc;
126
- }, {});
127
- return groupedItems;
128
- }, [items]);
129
- return allPagesMenuItems;
130
- };
131
-
132
- var css_248z$4 = ".gn-all-pages-panel{box-sizing:border-box;height:100%;min-width:300px;padding:var(--g-spacing-4) var(--g-spacing-6)}.gn-all-pages-panel__content{flex:1;margin:0 calc(var(--g-spacing-6)*-1);overflow:auto}.gn-all-pages-panel__category{padding:0 var(--g-spacing-6)}.gn-all-pages-panel__discoverable-feature-wrapper{display:flex}.gn-all-pages-panel__item_editMode{padding:0 var(--g-spacing-6)}.gn-all-pages-panel__drag-placeholder{text-wrap:nowrap;padding-left:88px;padding-right:68px;visibility:hidden}";
133
- styleInject_es.styleInject(css_248z$4);
134
-
135
- const b$4 = cn.block('all-pages-panel');
136
- const AllPagesPanel = (props) => {
137
- const { startEditIcon, onEditModeChanged, className } = props;
138
- const { menuItems, defaultMenuItems, onMenuItemsChanged, editMenuProps } = AsideHeaderContext.useAsideHeaderInnerContext();
139
- const menuItemsRef = React.useRef(menuItems);
140
- menuItemsRef.current = menuItems;
141
- const [isEditMode, setIsEditMode] = React.useState(false);
142
- const [draggingItemTitle, setDraggingItemTitle] = React.useState(null);
143
- const toggleEditMode = React.useCallback(() => {
144
- setIsEditMode((prev) => !prev);
145
- }, []);
146
- const groupedItems = useGroupedMenuItems(menuItems);
147
- React.useEffect(() => {
148
- var _a;
149
- onEditModeChanged === null || onEditModeChanged === void 0 ? void 0 : onEditModeChanged(isEditMode);
150
- if (isEditMode) {
151
- (_a = editMenuProps === null || editMenuProps === void 0 ? void 0 : editMenuProps.onOpenEditMode) === null || _a === void 0 ? void 0 : _a.call(editMenuProps);
152
- }
153
- }, [isEditMode, onEditModeChanged, editMenuProps]);
154
- const onItemClick = React.useCallback((item) => {
155
- var _a;
156
- //@ts-ignore TODO fix when @gravity-ui/uikit/List will provide event arg on item click
157
- (_a = item.onItemClick) === null || _a === void 0 ? void 0 : _a.call(item, item, false);
158
- }, []);
159
- const togglePageVisibility = React.useCallback((item) => {
160
- var _a;
161
- if (!onMenuItemsChanged) {
162
- return;
163
- }
164
- const changedItem = Object.assign(Object.assign({}, item), { hidden: !item.hidden });
165
- const originItems = menuItemsRef.current.filter((menuItem) => menuItem.id !== ALL_PAGES_ID);
166
- (_a = editMenuProps === null || editMenuProps === void 0 ? void 0 : editMenuProps.onToggleMenuItem) === null || _a === void 0 ? void 0 : _a.call(editMenuProps, changedItem);
167
- onMenuItemsChanged(originItems.map((menuItem) => {
168
- if (menuItem.id !== changedItem.id) {
169
- return menuItem;
170
- }
171
- return changedItem;
172
- }));
173
- }, [onMenuItemsChanged, editMenuProps]);
174
- const onDragEnd = React.useCallback(() => {
175
- setDraggingItemTitle(null);
176
- }, [setDraggingItemTitle]);
177
- const itemRender = React.useCallback((item, _isActive, _itemIndex) => {
178
- const onDragStart = () => {
179
- setDraggingItemTitle(item.title);
180
- };
181
- return (React__default["default"].createElement(AllPagesListItem, { item: item, onDragStart: onDragStart, onDragEnd: onDragEnd, editMode: isEditMode, onToggle: () => togglePageVisibility(item), enableSorting: editMenuProps === null || editMenuProps === void 0 ? void 0 : editMenuProps.enableSorting }));
182
- }, [isEditMode, togglePageVisibility, onDragEnd, setDraggingItemTitle, editMenuProps]);
183
- const onResetToDefaultClick = React.useCallback(() => {
184
- var _a;
185
- if (!onMenuItemsChanged) {
186
- return;
187
- }
188
- (_a = editMenuProps === null || editMenuProps === void 0 ? void 0 : editMenuProps.onResetSettingsToDefault) === null || _a === void 0 ? void 0 : _a.call(editMenuProps);
189
- const originItems = defaultMenuItems === null || defaultMenuItems === void 0 ? void 0 : defaultMenuItems.filter((item) => item.id !== ALL_PAGES_ID);
190
- if (originItems) {
191
- onMenuItemsChanged(originItems);
192
- }
193
- }, [onMenuItemsChanged, editMenuProps, defaultMenuItems]);
194
- const changeItemsOrder = React.useCallback(({ oldIndex, newIndex }) => {
195
- var _a;
196
- const newItems = menuItemsRef.current.filter((item) => item.id !== ALL_PAGES_ID);
197
- const element = newItems.splice(oldIndex, 1)[0];
198
- newItems.splice(newIndex, 0, element);
199
- onMenuItemsChanged === null || onMenuItemsChanged === void 0 ? void 0 : onMenuItemsChanged(newItems.filter((item) => item.type !== 'divider'));
200
- setDraggingItemTitle(null);
201
- (_a = editMenuProps === null || editMenuProps === void 0 ? void 0 : editMenuProps.onChangeItemsOrder) === null || _a === void 0 ? void 0 : _a.call(editMenuProps, element, oldIndex, newIndex);
202
- }, [onMenuItemsChanged, editMenuProps]);
203
- const sortableItems = React.useMemo(() => {
204
- return menuItemsRef.current.filter((item) => item.id !== ALL_PAGES_ID && !item.afterMoreButton && item.type !== 'divider');
205
- }, [menuItems]);
206
- return (React__default["default"].createElement(uikit.Flex, { className: b$4(null, className), gap: "5", direction: "column" },
207
- React__default["default"].createElement(uikit.Flex, { gap: "4", alignItems: "center", justifyContent: "space-between" },
208
- React__default["default"].createElement(uikit.Text, { variant: "subheader-2" }, isEditMode ? i18n$1('all-panel.title.editing') : i18n$1('all-panel.title.main')),
209
- React__default["default"].createElement(uikit.Tooltip, { content: i18n$1('all-panel.title.editing') },
210
- React__default["default"].createElement(uikit.Button, { selected: isEditMode, view: "normal", onClick: toggleEditMode }, startEditIcon ? startEditIcon : React__default["default"].createElement(uikit.Icon, { data: icons.Gear })))),
211
- React__default["default"].createElement(uikit.Flex, { className: b$4('content'), gap: "5", direction: "column" }, isEditMode && (editMenuProps === null || editMenuProps === void 0 ? void 0 : editMenuProps.enableSorting) ? (React__default["default"].createElement("div", null,
212
- React__default["default"].createElement(uikit.List, { itemClassName: b$4('item', { editMode: true }), itemHeight: 40, onSortEnd: changeItemsOrder, sortable: true, virtualized: false, filterable: false, items: sortableItems, onItemClick: onItemClick, renderItem: itemRender }),
213
- draggingItemTitle && (React__default["default"].createElement("div", { className: b$4('drag-placeholder') }, draggingItemTitle)))) : (Object.keys(groupedItems).map((category) => {
214
- return (React__default["default"].createElement(uikit.Flex, { key: category, direction: "column", gap: "3" },
215
- React__default["default"].createElement(uikit.Text, { className: b$4('category'), variant: "body-1", color: "secondary" }, category),
216
- React__default["default"].createElement(uikit.List, { virtualized: false, filterable: false, items: groupedItems[category], onItemClick: onItemClick, renderItem: itemRender })));
217
- }))),
218
- isEditMode && (React__default["default"].createElement(uikit.Button, { onClick: onResetToDefaultClick }, i18n$1('all-panel.resetToDefault')))));
219
- };
220
-
221
- const useVisibleMenuItems = () => {
222
- const { menuItems, allPagesIsAvailable } = AsideHeaderContext.useAsideHeaderInnerContext();
223
- return React.useMemo(() => {
224
- if (!allPagesIsAvailable) {
225
- return menuItems;
226
- }
227
- let lastVisibleIndex = 0;
228
- return menuItems.filter((item, index, items) => {
229
- if (item.hidden) {
230
- return false;
231
- }
232
- if (index > 0 &&
233
- item.type === 'divider' &&
234
- (items[lastVisibleIndex].type === 'divider' || items[lastVisibleIndex].hidden)) {
235
- return false;
236
- }
237
- lastVisibleIndex = index;
238
- return true;
239
- });
240
- }, [allPagesIsAvailable, menuItems]);
241
- };
242
-
243
- /**
244
- * Detect Element Resize.
245
- * https://github.com/sdecima/javascript-detect-element-resize
246
- * Sebastian Decima
247
- *
248
- * Forked from version 0.5.3; includes the following modifications:
249
- * 1) Guard against unsafe 'window' and 'document' references (to support SSR).
250
- * 2) Defer initialization code via a top-level function wrapper (to support SSR).
251
- * 3) Avoid unnecessary reflows by not measuring size for scroll events bubbling from children.
252
- * 4) Add nonce for style element.
253
- * 5) Use 'export' statement over 'module.exports' assignment
254
- **/
255
-
256
- // Check `document` and `window` in case of server-side rendering
257
- let windowObject;
258
- if (typeof window !== "undefined") {
259
- windowObject = window;
260
-
261
- // eslint-disable-next-line no-restricted-globals
262
- } else if (typeof self !== "undefined") {
263
- // eslint-disable-next-line no-restricted-globals
264
- windowObject = self;
265
- } else {
266
- windowObject = global;
267
- }
268
- let cancelFrame = null;
269
- let requestFrame = null;
270
- const TIMEOUT_DURATION = 20;
271
- const clearTimeoutFn = windowObject.clearTimeout;
272
- const setTimeoutFn = windowObject.setTimeout;
273
- const cancelAnimationFrameFn = windowObject.cancelAnimationFrame || windowObject.mozCancelAnimationFrame || windowObject.webkitCancelAnimationFrame;
274
- const requestAnimationFrameFn = windowObject.requestAnimationFrame || windowObject.mozRequestAnimationFrame || windowObject.webkitRequestAnimationFrame;
275
- if (cancelAnimationFrameFn == null || requestAnimationFrameFn == null) {
276
- // For environments that don't support animation frame,
277
- // fallback to a setTimeout based approach.
278
- cancelFrame = clearTimeoutFn;
279
- requestFrame = function requestAnimationFrameViaSetTimeout(callback) {
280
- return setTimeoutFn(callback, TIMEOUT_DURATION);
281
- };
282
- } else {
283
- // Counter intuitively, environments that support animation frames can be trickier.
284
- // Chrome's "Throttle non-visible cross-origin iframes" flag can prevent rAFs from being called.
285
- // In this case, we should fallback to a setTimeout() implementation.
286
- cancelFrame = function cancelFrame([animationFrameID, timeoutID]) {
287
- cancelAnimationFrameFn(animationFrameID);
288
- clearTimeoutFn(timeoutID);
289
- };
290
- requestFrame = function requestAnimationFrameWithSetTimeoutFallback(callback) {
291
- const animationFrameID = requestAnimationFrameFn(function animationFrameCallback() {
292
- clearTimeoutFn(timeoutID);
293
- callback();
294
- });
295
- const timeoutID = setTimeoutFn(function timeoutCallback() {
296
- cancelAnimationFrameFn(animationFrameID);
297
- callback();
298
- }, TIMEOUT_DURATION);
299
- return [animationFrameID, timeoutID];
300
- };
301
- }
302
- function createDetectElementResize(nonce) {
303
- let animationKeyframes;
304
- let animationName;
305
- let animationStartEvent;
306
- let animationStyle;
307
- let checkTriggers;
308
- let resetTriggers;
309
- let scrollListener;
310
- const attachEvent = typeof document !== "undefined" && document.attachEvent;
311
- if (!attachEvent) {
312
- resetTriggers = function (element) {
313
- const triggers = element.__resizeTriggers__,
314
- expand = triggers.firstElementChild,
315
- contract = triggers.lastElementChild,
316
- expandChild = expand.firstElementChild;
317
- contract.scrollLeft = contract.scrollWidth;
318
- contract.scrollTop = contract.scrollHeight;
319
- expandChild.style.width = expand.offsetWidth + 1 + "px";
320
- expandChild.style.height = expand.offsetHeight + 1 + "px";
321
- expand.scrollLeft = expand.scrollWidth;
322
- expand.scrollTop = expand.scrollHeight;
323
- };
324
- checkTriggers = function (element) {
325
- return element.offsetWidth !== element.__resizeLast__.width || element.offsetHeight !== element.__resizeLast__.height;
326
- };
327
- scrollListener = function (e) {
328
- // Don't measure (which forces) reflow for scrolls that happen inside of children!
329
- if (e.target.className && typeof e.target.className.indexOf === "function" && e.target.className.indexOf("contract-trigger") < 0 && e.target.className.indexOf("expand-trigger") < 0) {
330
- return;
331
- }
332
- const element = this;
333
- resetTriggers(this);
334
- if (this.__resizeRAF__) {
335
- cancelFrame(this.__resizeRAF__);
336
- }
337
- this.__resizeRAF__ = requestFrame(function animationFrame() {
338
- if (checkTriggers(element)) {
339
- element.__resizeLast__.width = element.offsetWidth;
340
- element.__resizeLast__.height = element.offsetHeight;
341
- element.__resizeListeners__.forEach(function forEachResizeListener(fn) {
342
- fn.call(element, e);
343
- });
344
- }
345
- });
346
- };
347
-
348
- /* Detect CSS Animations support to detect element display/re-attach */
349
- let animation = false;
350
- let keyframeprefix = "";
351
- animationStartEvent = "animationstart";
352
- const domPrefixes = "Webkit Moz O ms".split(" ");
353
- let startEvents = "webkitAnimationStart animationstart oAnimationStart MSAnimationStart".split(" ");
354
- let pfx = "";
355
- {
356
- const elm = document.createElement("fakeelement");
357
- if (elm.style.animationName !== undefined) {
358
- animation = true;
359
- }
360
- if (animation === false) {
361
- for (let i = 0; i < domPrefixes.length; i++) {
362
- if (elm.style[domPrefixes[i] + "AnimationName"] !== undefined) {
363
- pfx = domPrefixes[i];
364
- keyframeprefix = "-" + pfx.toLowerCase() + "-";
365
- animationStartEvent = startEvents[i];
366
- animation = true;
367
- break;
368
- }
369
- }
370
- }
371
- }
372
- animationName = "resizeanim";
373
- animationKeyframes = "@" + keyframeprefix + "keyframes " + animationName + " { from { opacity: 0; } to { opacity: 0; } } ";
374
- animationStyle = keyframeprefix + "animation: 1ms " + animationName + "; ";
375
- }
376
- const createStyles = function (doc) {
377
- if (!doc.getElementById("detectElementResize")) {
378
- //opacity:0 works around a chrome bug https://code.google.com/p/chromium/issues/detail?id=286360
379
- const css = (animationKeyframes ? animationKeyframes : "") + ".resize-triggers { " + (animationStyle ? animationStyle : "") + "visibility: hidden; opacity: 0; } " + '.resize-triggers, .resize-triggers > div, .contract-trigger:before { content: " "; display: block; position: absolute; top: 0; left: 0; height: 100%; width: 100%; overflow: hidden; z-index: -1; } .resize-triggers > div { background: #eee; overflow: auto; } .contract-trigger:before { width: 200%; height: 200%; }',
380
- head = doc.head || doc.getElementsByTagName("head")[0],
381
- style = doc.createElement("style");
382
- style.id = "detectElementResize";
383
- style.type = "text/css";
384
- if (nonce != null) {
385
- style.setAttribute("nonce", nonce);
386
- }
387
- if (style.styleSheet) {
388
- style.styleSheet.cssText = css;
389
- } else {
390
- style.appendChild(doc.createTextNode(css));
391
- }
392
- head.appendChild(style);
393
- }
394
- };
395
- const addResizeListener = function (element, fn) {
396
- if (attachEvent) {
397
- element.attachEvent("onresize", fn);
398
- } else {
399
- if (!element.__resizeTriggers__) {
400
- const doc = element.ownerDocument;
401
- const elementStyle = windowObject.getComputedStyle(element);
402
- if (elementStyle && elementStyle.position === "static") {
403
- element.style.position = "relative";
404
- }
405
- createStyles(doc);
406
- element.__resizeLast__ = {};
407
- element.__resizeListeners__ = [];
408
- (element.__resizeTriggers__ = doc.createElement("div")).className = "resize-triggers";
409
- const expandTrigger = doc.createElement("div");
410
- expandTrigger.className = "expand-trigger";
411
- expandTrigger.appendChild(doc.createElement("div"));
412
- const contractTrigger = doc.createElement("div");
413
- contractTrigger.className = "contract-trigger";
414
- element.__resizeTriggers__.appendChild(expandTrigger);
415
- element.__resizeTriggers__.appendChild(contractTrigger);
416
- element.appendChild(element.__resizeTriggers__);
417
- resetTriggers(element);
418
- element.addEventListener("scroll", scrollListener, true);
419
-
420
- /* Listen for a css animation to detect element display/re-attach */
421
- if (animationStartEvent) {
422
- element.__resizeTriggers__.__animationListener__ = function animationListener(e) {
423
- if (e.animationName === animationName) {
424
- resetTriggers(element);
425
- }
426
- };
427
- element.__resizeTriggers__.addEventListener(animationStartEvent, element.__resizeTriggers__.__animationListener__);
428
- }
429
- }
430
- element.__resizeListeners__.push(fn);
431
- }
432
- };
433
- const removeResizeListener = function (element, fn) {
434
- if (attachEvent) {
435
- element.detachEvent("onresize", fn);
436
- } else {
437
- element.__resizeListeners__.splice(element.__resizeListeners__.indexOf(fn), 1);
438
- if (!element.__resizeListeners__.length) {
439
- element.removeEventListener("scroll", scrollListener, true);
440
- if (element.__resizeTriggers__.__animationListener__) {
441
- element.__resizeTriggers__.removeEventListener(animationStartEvent, element.__resizeTriggers__.__animationListener__);
442
- element.__resizeTriggers__.__animationListener__ = null;
443
- }
444
- try {
445
- element.__resizeTriggers__ = !element.removeChild(element.__resizeTriggers__);
446
- } catch (e) {
447
- // Preact compat; see developit/preact-compat/issues/228
448
- }
449
- }
450
- }
451
- };
452
- return {
453
- addResizeListener,
454
- removeResizeListener
455
- };
456
- }
457
-
458
- class AutoSizer extends React.Component {
459
- constructor(...args) {
460
- super(...args);
461
- this.state = {
462
- height: this.props.defaultHeight || 0,
463
- scaledHeight: this.props.defaultHeight || 0,
464
- scaledWidth: this.props.defaultWidth || 0,
465
- width: this.props.defaultWidth || 0
466
- };
467
- this._autoSizer = null;
468
- this._detectElementResize = null;
469
- this._parentNode = null;
470
- this._resizeObserver = null;
471
- this._timeoutId = null;
472
- this._onResize = () => {
473
- this._timeoutId = null;
474
- const {
475
- disableHeight,
476
- disableWidth,
477
- onResize
478
- } = this.props;
479
- if (this._parentNode) {
480
- // Guard against AutoSizer component being removed from the DOM immediately after being added.
481
- // This can result in invalid style values which can result in NaN values if we don't handle them.
482
- // See issue #150 for more context.
483
-
484
- const style = window.getComputedStyle(this._parentNode) || {};
485
- const paddingLeft = parseFloat(style.paddingLeft || "0");
486
- const paddingRight = parseFloat(style.paddingRight || "0");
487
- const paddingTop = parseFloat(style.paddingTop || "0");
488
- const paddingBottom = parseFloat(style.paddingBottom || "0");
489
- const rect = this._parentNode.getBoundingClientRect();
490
- const scaledHeight = rect.height - paddingTop - paddingBottom;
491
- const scaledWidth = rect.width - paddingLeft - paddingRight;
492
- const height = this._parentNode.offsetHeight - paddingTop - paddingBottom;
493
- const width = this._parentNode.offsetWidth - paddingLeft - paddingRight;
494
- if (!disableHeight && (this.state.height !== height || this.state.scaledHeight !== scaledHeight) || !disableWidth && (this.state.width !== width || this.state.scaledWidth !== scaledWidth)) {
495
- this.setState({
496
- height,
497
- width,
498
- scaledHeight,
499
- scaledWidth
500
- });
501
- if (typeof onResize === "function") {
502
- onResize({
503
- height,
504
- scaledHeight,
505
- scaledWidth,
506
- width
507
- });
508
- }
509
- }
510
- }
511
- };
512
- this._setRef = autoSizer => {
513
- this._autoSizer = autoSizer;
514
- };
515
- }
516
- componentDidMount() {
517
- const {
518
- nonce
519
- } = this.props;
520
- const parentNode = this._autoSizer ? this._autoSizer.parentNode : null;
521
- if (parentNode != null && parentNode.ownerDocument && parentNode.ownerDocument.defaultView && parentNode instanceof parentNode.ownerDocument.defaultView.HTMLElement) {
522
- // Delay access of parentNode until mount.
523
- // This handles edge-cases where the component has already been unmounted before its ref has been set,
524
- // As well as libraries like react-lite which have a slightly different lifecycle.
525
- this._parentNode = parentNode;
526
-
527
- // Use ResizeObserver from the same context where parentNode (which we will observe) was defined
528
- // Using just global can result into onResize events not being emitted in cases with multiple realms
529
- const ResizeObserverInstance = parentNode.ownerDocument.defaultView.ResizeObserver;
530
- if (ResizeObserverInstance != null) {
531
- this._resizeObserver = new ResizeObserverInstance(() => {
532
- // Guard against "ResizeObserver loop limit exceeded" error;
533
- // could be triggered if the state update causes the ResizeObserver handler to run long.
534
- // See https://github.com/bvaughn/react-virtualized-auto-sizer/issues/55
535
- this._timeoutId = setTimeout(this._onResize, 0);
536
- });
537
- this._resizeObserver.observe(parentNode);
538
- } else {
539
- // Defer requiring resize handler in order to support server-side rendering.
540
- // See issue #41
541
- this._detectElementResize = createDetectElementResize(nonce);
542
- this._detectElementResize.addResizeListener(parentNode, this._onResize);
543
- }
544
- this._onResize();
545
- }
546
- }
547
- componentWillUnmount() {
548
- if (this._parentNode) {
549
- if (this._detectElementResize) {
550
- this._detectElementResize.removeResizeListener(this._parentNode, this._onResize);
551
- }
552
- if (this._timeoutId !== null) {
553
- clearTimeout(this._timeoutId);
554
- }
555
- if (this._resizeObserver) {
556
- this._resizeObserver.disconnect();
557
- }
558
- }
559
- }
560
- render() {
561
- const {
562
- children,
563
- defaultHeight,
564
- defaultWidth,
565
- disableHeight = false,
566
- disableWidth = false,
567
- doNotBailOutOnEmptyChildren = false,
568
- nonce,
569
- onResize,
570
- style = {},
571
- tagName = "div",
572
- ...rest
573
- } = this.props;
574
- const {
575
- height,
576
- scaledHeight,
577
- scaledWidth,
578
- width
579
- } = this.state;
580
-
581
- // Outer div should not force width/height since that may prevent containers from shrinking.
582
- // Inner component should overflow and use calculated width/height.
583
- // See issue #68 for more information.
584
- const outerStyle = {
585
- overflow: "visible"
586
- };
587
- const childParams = {};
588
-
589
- // Avoid rendering children before the initial measurements have been collected.
590
- // At best this would just be wasting cycles.
591
- let bailoutOnChildren = false;
592
- if (!disableHeight) {
593
- if (height === 0) {
594
- bailoutOnChildren = true;
595
- }
596
- outerStyle.height = 0;
597
- childParams.height = height;
598
- childParams.scaledHeight = scaledHeight;
599
- }
600
- if (!disableWidth) {
601
- if (width === 0) {
602
- bailoutOnChildren = true;
603
- }
604
- outerStyle.width = 0;
605
- childParams.width = width;
606
- childParams.scaledWidth = scaledWidth;
607
- }
608
- if (doNotBailOutOnEmptyChildren) {
609
- bailoutOnChildren = false;
610
- }
611
- return React.createElement(tagName, {
612
- ref: this._setRef,
613
- style: {
614
- ...outerStyle,
615
- ...style
616
- },
617
- ...rest
618
- }, !bailoutOnChildren && children(childParams));
619
- }
620
- }
621
-
622
- const multipleTooltipContextDefaults = {
623
- active: false,
624
- activeIndex: undefined,
625
- hideCollapseItemTooltip: false,
626
- lastClickedItemIndex: undefined,
627
- setValue: () => { },
628
- };
629
- const MultipleTooltipContext = React__default["default"].createContext(multipleTooltipContextDefaults);
630
- class MultipleTooltipProvider extends React__default["default"].PureComponent {
631
- constructor() {
632
- super(...arguments);
633
- this.state = Object.assign({}, multipleTooltipContextDefaults);
634
- this.setValue = (value) => {
635
- this.setState(Object.assign({}, value));
636
- };
637
- }
638
- render() {
639
- const { children } = this.props;
640
- return (React__default["default"].createElement(MultipleTooltipContext.Provider, { value: Object.assign(Object.assign({}, this.state), { setValue: this.setValue }) }, children));
641
- }
642
- }
643
-
644
- var css_248z$3 = ".g-root_theme_dark .gn-multiple-tooltip,.g-root_theme_dark-hc .gn-multiple-tooltip{--multiple-tooltip-item-bg-color:var(\n --g-color-base-float-medium,var(--g-color-private-white-100-solid)\n );--multiple-tooltip-item-active-bg-color:var(--g-color-base-float-heavy);--multiple-tooltip-backdrop-background:linear-gradient(90deg,var(--g-color-base-background) 50%,transparent);--multiple-tooltip-backdrop-filter:blur(16px)}.g-root_theme_dark-hc .gn-multiple-tooltip{--multiple-tooltip-item-bg-color:var(\n --g-color-base-float-medium,var(--g-color-private-white-150-solid)\n )}.g-root_theme_light .gn-multiple-tooltip,.g-root_theme_light-hc .gn-multiple-tooltip{--multiple-tooltip-item-bg-color:var(\n --g-color-base-float-medium,var(--g-color-private-black-550-solid)\n );--multiple-tooltip-item-active-bg-color:var(--g-color-base-float-heavy);--multiple-tooltip-backdrop-background:linear-gradient(90deg,var(--g-color-base-background) 50%,transparent);--multiple-tooltip-backdrop-filter:blur(12px)}.gn-multiple-tooltip.gn-multiple-tooltip{background-color:transparent;box-shadow:none}.gn-multiple-tooltip:before{background:var(--multiple-tooltip-backdrop-background);box-shadow:none;content:\"\";filter:var(--multiple-tooltip-backdrop-filter);height:100%;opacity:.7;position:absolute;width:100%;z-index:-1}.gn-multiple-tooltip__items-container{align-items:flex-start;display:flex;flex-direction:column;padding:32px 40px 32px 12px}.gn-multiple-tooltip__item{align-items:center;background-color:var(--multiple-tooltip-item-bg-color);border-radius:5px;box-sizing:border-box;color:var(--g-color-text-light-primary);display:flex;height:30px;margin-bottom:5px;padding:8px 12px;position:relative;transition:transform .1s ease-in-out}.gn-multiple-tooltip__item:first-child,.gn-multiple-tooltip__item:not(.gn-multiple-tooltip__item_divider)+.gn-multiple-tooltip__item:not(.gn-multiple-tooltip__item_divider){margin-top:5px}.gn-multiple-tooltip__item_divider+.gn-multiple-tooltip__item:not(.gn-multiple-tooltip__item_divider){margin-top:4px}.gn-multiple-tooltip__item_active{background-color:var(--multiple-tooltip-item-active-bg-color);transform:translateX(-12px)}.gn-multiple-tooltip__item_divider{height:15px;margin:0;visibility:hidden}";
645
- styleInject_es.styleInject(css_248z$3);
646
-
647
- const b$3 = cn.block('multiple-tooltip');
648
- const POPUP_OFFSET = [-32, 4];
649
- const POPUP_MODIFIERS = [
650
- {
651
- name: 'preventOverflow',
652
- enabled: false,
653
- },
654
- ];
655
- const MultipleTooltip = ({ items, open, anchorRef, placement, }) => {
656
- const { activeIndex, hideCollapseItemTooltip } = React__default["default"].useContext(MultipleTooltipContext);
657
- const activeItem = activeIndex === undefined ? null : items[activeIndex];
658
- return (React__default["default"].createElement(uikit.Popup, { open: open, anchorRef: anchorRef, placement: placement, offset: POPUP_OFFSET, contentClassName: b$3(null), modifiers: POPUP_MODIFIERS, disableLayer: true },
659
- React__default["default"].createElement("div", { className: b$3('items-container') }, items
660
- .filter(({ type = 'regular', id }) => !hideCollapseItemTooltip ||
661
- (id !== Item.COLLAPSE_ITEM_ID && type !== 'action'))
662
- .map((item, idx) => {
663
- switch (item.type) {
664
- case 'divider':
665
- return (React__default["default"].createElement("div", { className: b$3('item', { divider: true }), key: idx }, item.title));
666
- default:
667
- return (React__default["default"].createElement("div", { className: b$3('item', {
668
- active: item === activeItem,
669
- }), key: idx }, item.title));
670
- }
671
- }))));
672
- };
673
-
674
- var css_248z$2 = ".gn-composite-bar{flex:1 0 auto;min-height:40px;width:100%}.gn-composite-bar .gn-composite-bar__root-menu-item[class]{background-color:transparent}";
675
- styleInject_es.styleInject(css_248z$2);
676
-
677
- const b$2 = cn.block('composite-bar');
678
- const CompositeBarView = ({ type, items, onItemClick, onMoreClick, collapseItems, multipleTooltip = false, }) => {
679
- const ref = React.useRef(null);
680
- const tooltipRef = React.useRef(null);
681
- const { setValue: setMultipleTooltipContextValue, active: multipleTooltipActive, activeIndex, lastClickedItemIndex, } = React.useContext(MultipleTooltipContext);
682
- const { compact } = AsideHeaderContext.useAsideHeaderContext();
683
- React__default["default"].useEffect(() => {
684
- function handleBlurWindow() {
685
- if (multipleTooltip && multipleTooltipActive) {
686
- setMultipleTooltipContextValue({ active: false });
687
- }
688
- }
689
- window.addEventListener('blur', handleBlurWindow);
690
- return () => {
691
- window.removeEventListener('blur', handleBlurWindow);
692
- };
693
- }, [multipleTooltip, multipleTooltipActive, setMultipleTooltipContextValue]);
694
- const onTooltipMouseEnter = React.useCallback((e) => {
695
- if (multipleTooltip &&
696
- compact &&
697
- !multipleTooltipActive &&
698
- document.hasFocus() &&
699
- activeIndex !== lastClickedItemIndex &&
700
- e.clientX <= constants.ASIDE_HEADER_COMPACT_WIDTH) {
701
- setMultipleTooltipContextValue === null || setMultipleTooltipContextValue === void 0 ? void 0 : setMultipleTooltipContextValue({
702
- active: true,
703
- });
704
- }
705
- }, [
706
- multipleTooltip,
707
- compact,
708
- multipleTooltipActive,
709
- activeIndex,
710
- lastClickedItemIndex,
711
- setMultipleTooltipContextValue,
712
- ]);
713
- const onTooltipMouseLeave = React.useCallback(() => {
714
- if (multipleTooltip && multipleTooltipActive && document.hasFocus()) {
715
- setMultipleTooltipContextValue === null || setMultipleTooltipContextValue === void 0 ? void 0 : setMultipleTooltipContextValue({
716
- active: false,
717
- lastClickedItemIndex: undefined,
718
- });
719
- }
720
- }, [multipleTooltip, multipleTooltipActive, setMultipleTooltipContextValue]);
721
- const onMouseEnterByIndex = React.useCallback((itemIndex) => () => {
722
- if (multipleTooltip && document.hasFocus()) {
723
- let multipleTooltipActiveValue = multipleTooltipActive;
724
- if (!multipleTooltipActive && itemIndex !== lastClickedItemIndex) {
725
- multipleTooltipActiveValue = true;
726
- }
727
- if (activeIndex === itemIndex &&
728
- multipleTooltipActive === multipleTooltipActiveValue) {
729
- return;
730
- }
731
- setMultipleTooltipContextValue({
732
- activeIndex: itemIndex,
733
- active: multipleTooltipActiveValue,
734
- });
735
- }
736
- }, [
737
- multipleTooltip,
738
- multipleTooltipActive,
739
- lastClickedItemIndex,
740
- activeIndex,
741
- setMultipleTooltipContextValue,
742
- ]);
743
- const onMouseLeave = React.useCallback(() => {
744
- var _a;
745
- if (compact && document.hasFocus()) {
746
- (_a = ref.current) === null || _a === void 0 ? void 0 : _a.activateItem(undefined);
747
- if (multipleTooltip &&
748
- (activeIndex !== undefined || lastClickedItemIndex !== undefined)) {
749
- setMultipleTooltipContextValue({
750
- activeIndex: undefined,
751
- lastClickedItemIndex: undefined,
752
- });
753
- }
754
- }
755
- }, [
756
- activeIndex,
757
- compact,
758
- lastClickedItemIndex,
759
- multipleTooltip,
760
- setMultipleTooltipContextValue,
761
- ]);
762
- const onItemClickByIndex = React.useCallback((itemIndex) => (item, collapsed, event) => {
763
- if (compact &&
764
- multipleTooltip &&
765
- itemIndex !== lastClickedItemIndex &&
766
- item.id !== Item.COLLAPSE_ITEM_ID) {
767
- setMultipleTooltipContextValue({
768
- lastClickedItemIndex: itemIndex,
769
- active: false,
770
- });
771
- }
772
- onItemClick === null || onItemClick === void 0 ? void 0 : onItemClick(item, collapsed, event);
773
- }, [
774
- compact,
775
- lastClickedItemIndex,
776
- multipleTooltip,
777
- onItemClick,
778
- setMultipleTooltipContextValue,
779
- ]);
780
- return (React__default["default"].createElement(React__default["default"].Fragment, null,
781
- React__default["default"].createElement("div", { ref: tooltipRef, onMouseEnter: onTooltipMouseEnter, onMouseLeave: onTooltipMouseLeave },
782
- React__default["default"].createElement(uikit.List, { ref: ref, items: items, selectedItemIndex: type === 'menu' ? Item.getSelectedItemIndex(items) : undefined, itemHeight: Item.getItemHeight, itemsHeight: Item.getItemsHeight, itemClassName: b$2('root-menu-item'), virtualized: false, filterable: false, sortable: false, renderItem: (item, _isItemActive, itemIndex) => {
783
- const itemExtraProps = Item.isMenuItem(item) ? { item } : item;
784
- const enableTooltip = Item.isMenuItem(item)
785
- ? !multipleTooltip
786
- : item.enableTooltip;
787
- return (React__default["default"].createElement(Item.Item, Object.assign({}, itemExtraProps, { enableTooltip: enableTooltip, onMouseEnter: onMouseEnterByIndex(itemIndex), onMouseLeave: onMouseLeave, onItemClick: onItemClickByIndex(itemIndex), onCollapseItemClick: onMoreClick, collapseItems: collapseItems })));
788
- } })),
789
- type === 'menu' && multipleTooltip && (React__default["default"].createElement(MultipleTooltip, { open: compact && multipleTooltipActive, anchorRef: tooltipRef, placement: ['right-start'], items: items }))));
790
- };
791
- const CompositeBar = ({ type, items, menuMoreTitle, onItemClick, onMoreClick, multipleTooltip = false, }) => {
792
- if (items.length === 0) {
793
- return null;
794
- }
795
- let node;
796
- if (type === 'menu') {
797
- const minHeight = Item.getItemsMinHeight(items);
798
- const collapseItem = Item.getMoreButtonItem(menuMoreTitle);
799
- node = (React__default["default"].createElement("div", { className: b$2({ autosizer: true }), style: { minHeight } }, items.length !== 0 && (React__default["default"].createElement(AutoSizer, null, (size) => {
800
- const width = Number.isNaN(size.width) ? 0 : size.width;
801
- const height = Number.isNaN(size.height) ? 0 : size.height;
802
- const { listItems, collapseItems } = Item.getAutosizeListItems(items, height, collapseItem);
803
- return (React__default["default"].createElement("div", { style: { width, height } },
804
- React__default["default"].createElement(CompositeBarView, { type: "menu", items: listItems, onItemClick: onItemClick, onMoreClick: onMoreClick, collapseItems: collapseItems, multipleTooltip: multipleTooltip })));
805
- }))));
806
- }
807
- else {
808
- node = (React__default["default"].createElement("div", { className: b$2({ subheader: true }) },
809
- React__default["default"].createElement(CompositeBarView, { type: "subheader", items: items, onItemClick: onItemClick })));
810
- }
811
- return React__default["default"].createElement(MultipleTooltipProvider, null, node);
812
- };
813
-
814
- var button_collapse$1 = "Collapse";
815
- var button_expand$1 = "Expand";
816
- var label_more$1 = "More";
817
- var en = {
818
- button_collapse: button_collapse$1,
819
- button_expand: button_expand$1,
820
- label_more: label_more$1
821
- };
822
-
823
- var button_collapse = "Свернуть";
824
- var button_expand = "Развернуть";
825
- var label_more = "Ещё";
826
- var ru = {
827
- button_collapse: button_collapse,
828
- button_expand: button_expand,
829
- label_more: label_more
830
- };
831
-
832
- const COMPONENT = 'AsideHeader';
833
- var i18n = i18n$2.addComponentKeysets({ en, ru }, `${cn.NAMESPACE}${COMPONENT}`);
834
-
835
- var _path;
836
- function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
837
- var SvgControlMenuButton = function SvgControlMenuButton(props) {
838
- return /*#__PURE__*/React__namespace.createElement("svg", _extends({
839
- width: 8,
840
- height: 8,
841
- viewBox: "0 0 8 8",
842
- fill: "currentColor",
843
- xmlns: "http://www.w3.org/2000/svg"
844
- }, props), _path || (_path = /*#__PURE__*/React__namespace.createElement("path", {
845
- d: "m.72 7.64 6.39-3.2a.5.5 0 0 0 0-.89L.72.36A.5.5 0 0 0 0 .81v6.38c0 .37.4.61.72.45Z"
846
- })));
847
- };
848
- var controlMenuButtonIcon = SvgControlMenuButton;
849
-
850
- var css_248z$1 = ".gn-collapse-button{--_--focus-outline-color:var(--g-color-line-focus);--_--focus-outline-offset:0;align-items:center;background:none;border:none;border-top:1px solid var(--gn-aside-header-divider-horizontal-color,var(--_--horizontal-divider-line-color));box-sizing:content-box;color:inherit;cursor:pointer;display:flex;font-family:var(--g-text-body-font-family);font-size:inherit;font-weight:var(--g-text-body-font-weight);justify-content:center;min-height:20px;outline:none;padding:0;position:relative;width:100%}.gn-collapse-button:before{content:\"\";inset:0 2px 2px;position:absolute;z-index:-1}.gn-collapse-button:focus-visible:before{outline:var(--_--focus-outline-color) solid 2px;outline-offset:var(--_--focus-outline-offset)}.gn-collapse-button:not(.gn-collapse-button_compact) .gn-collapse-button__icon{transform:rotate(180deg)}.gn-collapse-button:hover .gn-collapse-button__icon{color:var(--g-color-text-primary)}.gn-collapse-button__icon{color:var(--g-color-text-secondary)}";
851
- styleInject_es.styleInject(css_248z$1);
852
-
853
- const b$1 = cn.block('collapse-button');
854
- const CollapseButton = ({ className }) => {
855
- const { onChangeCompact, compact, expandTitle, collapseTitle } = AsideHeaderContext.useAsideHeaderInnerContext();
856
- const onCollapseButtonClick = React.useCallback(() => {
857
- onChangeCompact === null || onChangeCompact === void 0 ? void 0 : onChangeCompact(!compact);
858
- }, [compact, onChangeCompact]);
859
- const buttonTitle = compact
860
- ? expandTitle || i18n('button_expand')
861
- : collapseTitle || i18n('button_collapse');
862
- return (React__default["default"].createElement("button", { className: b$1({ compact }, className), onClick: onCollapseButtonClick, title: buttonTitle },
863
- React__default["default"].createElement(uikit.Icon, { data: controlMenuButtonIcon, className: b$1('icon'), width: "16", height: "10" })));
864
- };
865
-
866
- var css_248z = ".gn-logo{height:40px}.gn-logo,.gn-logo__logo-btn-place{align-items:center;display:flex;flex-shrink:0}.gn-logo__logo-btn-place{cursor:pointer;justify-content:center}.gn-logo__logo-btn-place .g-button:before{background-color:transparent}.gn-logo__logo{cursor:pointer;font-size:var(--g-text-body-2-font-size);font-weight:var(--g-text-body-font-weight);line-height:var(--g-text-body-2-line-height);vertical-align:middle}.gn-logo__logo-link,.gn-logo__logo-link:active,.gn-logo__logo-link:focus,.gn-logo__logo-link:hover,.gn-logo__logo-link:visited{color:inherit;outline:none;text-decoration:none}.g-root .gn-logo__btn-logo.button2_theme_flat.button2_hovered_yes:before{background-color:transparent}";
867
- styleInject_es.styleInject(css_248z);
868
-
869
- const b = cn.block('logo');
870
- const Logo = ({ text, icon, iconSrc, iconClassName, iconSize = 24, textSize = 15, href, target = '_self', wrapper, onClick, compact, className, buttonWrapperClassName, buttonClassName, 'aria-label': ariaLabel, 'aria-labelledby': ariaLabelledby, }) => {
871
- const hasWrapper = typeof wrapper === 'function';
872
- let buttonIcon;
873
- if (iconSrc) {
874
- buttonIcon = (React__default["default"].createElement(uikit.Button.Icon, { className: iconClassName },
875
- React__default["default"].createElement("img", { alt: "logo icon", src: iconSrc, width: iconSize, height: iconSize })));
876
- }
877
- else if (icon) {
878
- buttonIcon = React__default["default"].createElement(uikit.Icon, { data: icon, size: iconSize, className: iconClassName });
879
- }
880
- const button = (React__default["default"].createElement(uikit.Button, { view: "flat", size: "l", className: b('btn-logo', buttonClassName), component: hasWrapper ? 'span' : undefined, onClick: onClick, target: target, rel: target === '_self' ? undefined : 'noreferrer', href: href, extraProps: {
881
- 'aria-label': ariaLabel,
882
- 'aria-labelledby': ariaLabelledby,
883
- } }, buttonIcon));
884
- let logo;
885
- if (typeof text === 'function') {
886
- logo = text();
887
- }
888
- else {
889
- logo = (React__default["default"].createElement("div", { className: b('logo'), style: { fontSize: textSize } }, text));
890
- }
891
- return (React__default["default"].createElement("div", { className: b(null, className) },
892
- React__default["default"].createElement("div", { className: b('logo-btn-place', buttonWrapperClassName) }, hasWrapper ? wrapper(button, Boolean(compact)) : button),
893
- !compact &&
894
- (hasWrapper ? (React__default["default"].createElement("div", { onClick: onClick }, wrapper(logo, Boolean(compact)))) : (React__default["default"].createElement("a", { href: href !== null && href !== void 0 ? href : '/', target: target, rel: target === '_self' ? undefined : 'noreferrer', className: b('logo-link'), onClick: onClick }, logo)))));
895
- };
896
-
897
- const DEFAULT_SUBHEADER_ITEMS = [];
898
- const Header = () => {
899
- const { logo, onItemClick, onClosePanel, headerDecoration, subheaderItems } = AsideHeaderContext.useAsideHeaderInnerContext();
900
- const { compact } = AsideHeaderContext.useAsideHeaderContext();
901
- const onLogoClick = React.useCallback((event) => {
902
- var _a;
903
- onClosePanel === null || onClosePanel === void 0 ? void 0 : onClosePanel();
904
- (_a = logo === null || logo === void 0 ? void 0 : logo.onClick) === null || _a === void 0 ? void 0 : _a.call(logo, event);
905
- }, [onClosePanel, logo]);
906
- return (React__default["default"].createElement("div", { className: utils.b('header', { ['with-decoration']: headerDecoration }) },
907
- logo && (React__default["default"].createElement(Logo, Object.assign({}, logo, { onClick: onLogoClick, compact: compact, buttonWrapperClassName: utils.b('logo-button-wrapper'), buttonClassName: utils.b('logo-button') }))),
908
- React__default["default"].createElement(CompositeBar, { type: "subheader", items: subheaderItems || DEFAULT_SUBHEADER_ITEMS, onItemClick: onItemClick }),
909
- headerDecoration && (React__default["default"].createElement(uikit.Icon, { data: dividerCollapsed.headerDividerCollapsedIcon, className: utils.b('header-divider'), width: constants.ASIDE_HEADER_COMPACT_WIDTH, height: constants.HEADER_DIVIDER_HEIGHT }))));
910
- };
911
-
912
- const Panels = () => {
913
- const { panelItems, onClosePanel, size } = AsideHeaderContext.useAsideHeaderInnerContext();
914
- return panelItems ? (React__default["default"].createElement(Drawer.Drawer, { className: utils.b('panels'), onVeilClick: onClosePanel, onEscape: onClosePanel, style: { left: size } }, panelItems.map((item) => (React__default["default"].createElement(Drawer.DrawerItem, Object.assign({ key: item.id }, item)))))) : null;
915
- };
916
-
917
- const FirstPanel = React__default["default"].forwardRef((_props, ref) => {
918
- const { size, onItemClick, headerDecoration, multipleTooltip, menuMoreTitle, onMenuMoreClick, renderFooter, compact, customBackground, customBackgroundClassName, className, hideCollapseButton, qa, } = AsideHeaderContext.useAsideHeaderInnerContext();
919
- const visibleMenuItems = useVisibleMenuItems();
920
- const asideRef = React.useRef(null);
921
- React__default["default"].useEffect(() => {
922
- uikit.setRef(ref, asideRef.current);
923
- }, [ref]);
924
- return (React__default["default"].createElement(React__default["default"].Fragment, null,
925
- React__default["default"].createElement("div", { className: utils.b('aside', className), style: { width: size }, "data-qa": qa },
926
- React__default["default"].createElement("div", { className: utils.b('aside-popup-anchor'), ref: asideRef }),
927
- React__default["default"].createElement("div", { className: utils.b('aside-content', { ['with-decoration']: headerDecoration }) },
928
- customBackground && (React__default["default"].createElement("div", { className: utils.b('aside-custom-background', customBackgroundClassName) }, customBackground)),
929
- React__default["default"].createElement(Header, null),
930
- (visibleMenuItems === null || visibleMenuItems === void 0 ? void 0 : visibleMenuItems.length) ? (React__default["default"].createElement(CompositeBar, { type: "menu", items: visibleMenuItems, menuMoreTitle: menuMoreTitle !== null && menuMoreTitle !== void 0 ? menuMoreTitle : i18n('label_more'), onItemClick: onItemClick, onMoreClick: onMenuMoreClick, multipleTooltip: multipleTooltip })) : (React__default["default"].createElement("div", { className: utils.b('menu-items') })),
931
- React__default["default"].createElement("div", { className: utils.b('footer') }, renderFooter === null || renderFooter === void 0 ? void 0 : renderFooter({
932
- size,
933
- compact: Boolean(compact),
934
- asideRef,
935
- })),
936
- !hideCollapseButton && React__default["default"].createElement(CollapseButton, null))),
937
- React__default["default"].createElement(Panels, null)));
938
- });
939
- FirstPanel.displayName = 'FirstPanel';
940
-
941
- var InnerPanels;
942
- (function (InnerPanels) {
943
- InnerPanels["AllPages"] = "all-pages";
944
- })(InnerPanels || (InnerPanels = {}));
945
-
946
- const EMPTY_MENU_ITEMS = [];
947
- const useAsideHeaderInnerContextValue = (props) => {
948
- const { size, onClosePanel, menuItems, panelItems, onMenuItemsChanged, onAllPagesClick } = props;
949
- const [innerVisiblePanel, setInnerVisiblePanel] = React.useState();
950
- const ALL_PAGES_MENU_ITEM = React__default["default"].useMemo(() => {
951
- return getAllPagesMenuItem();
952
- }, []);
953
- const allPagesIsAvailable = Boolean(onMenuItemsChanged) && (!menuItems || (menuItems === null || menuItems === void 0 ? void 0 : menuItems.length) > 0);
954
- React.useEffect(() => {
955
- // If any user panel became visible we need to switch off all inner panels
956
- if (panelItems === null || panelItems === void 0 ? void 0 : panelItems.some((x) => x.visible)) {
957
- setInnerVisiblePanel(undefined);
958
- }
959
- }, [panelItems]);
960
- const innerOnClosePanel = React.useCallback(() => {
961
- setInnerVisiblePanel(undefined);
962
- onClosePanel === null || onClosePanel === void 0 ? void 0 : onClosePanel();
963
- }, [onClosePanel]);
964
- const onItemClick = React.useCallback((item, collapsed, event) => {
965
- var _a;
966
- if (item.id === ALL_PAGES_MENU_ITEM.id) {
967
- onClosePanel === null || onClosePanel === void 0 ? void 0 : onClosePanel();
968
- setInnerVisiblePanel((prev) => prev === InnerPanels.AllPages ? undefined : InnerPanels.AllPages);
969
- }
970
- else {
971
- innerOnClosePanel();
972
- }
973
- (_a = item.onItemClick) === null || _a === void 0 ? void 0 : _a.call(item, item, collapsed, event);
974
- }, [innerOnClosePanel, ALL_PAGES_MENU_ITEM, onClosePanel]);
975
- const innerMenuItems = React.useMemo(() => allPagesIsAvailable
976
- ? [
977
- ...(menuItems || EMPTY_MENU_ITEMS),
978
- Object.assign(Object.assign({}, ALL_PAGES_MENU_ITEM), { current: innerVisiblePanel === InnerPanels.AllPages, onItemClick: onAllPagesClick }),
979
- ]
980
- : menuItems || EMPTY_MENU_ITEMS, [allPagesIsAvailable, menuItems, innerVisiblePanel, ALL_PAGES_MENU_ITEM, onAllPagesClick]);
981
- const innerPanelItems = React.useMemo(() => {
982
- if (!allPagesIsAvailable) {
983
- return panelItems;
984
- }
985
- return [
986
- ...(panelItems || []),
987
- {
988
- id: InnerPanels.AllPages,
989
- content: React__default["default"].createElement(AllPagesPanel, null),
990
- visible: innerVisiblePanel === InnerPanels.AllPages,
991
- },
992
- ];
993
- }, [allPagesIsAvailable, panelItems, innerVisiblePanel]);
994
- return Object.assign(Object.assign({}, props), { onClosePanel: innerOnClosePanel, allPagesIsAvailable, menuItems: innerMenuItems, panelItems: innerPanelItems, size,
995
- onItemClick });
996
- };
997
-
998
- const PageLayoutAside = React__default["default"].forwardRef((props, ref) => {
999
- const { size, compact } = AsideHeaderContext.useAsideHeaderContext();
1000
- const asideHeaderInnerContextValue = useAsideHeaderInnerContextValue(Object.assign({ size, compact }, props));
1001
- return (React__default["default"].createElement(AsideHeaderContext.AsideHeaderInnerContextProvider, { value: asideHeaderInnerContextValue },
1002
- React__default["default"].createElement(FirstPanel, { ref: ref })));
1003
- });
1004
- PageLayoutAside.displayName = 'PageLayoutAside';
1005
-
1006
- exports.Logo = Logo;
1007
- exports.PageLayoutAside = PageLayoutAside;
1008
- //# sourceMappingURL=PageLayoutAside-56a441a9.js.map