@next-bricks/nav 1.19.0 → 1.19.1

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 (184) hide show
  1. package/dist/bricks.json +20 -20
  2. package/dist/chunks/{1122.2174d8eb.js → 1122.0de99639.js} +2 -2
  3. package/dist/chunks/{1122.2174d8eb.js.map → 1122.0de99639.js.map} +1 -1
  4. package/dist/chunks/{114.8d5f0b37.js → 114.1fff8883.js} +2 -2
  5. package/dist/chunks/{114.8d5f0b37.js.map → 114.1fff8883.js.map} +1 -1
  6. package/dist/chunks/1370.0e594072.js +2 -0
  7. package/dist/chunks/1370.0e594072.js.map +1 -0
  8. package/dist/chunks/2133.756e2e04.js +2 -0
  9. package/dist/chunks/2133.756e2e04.js.map +1 -0
  10. package/dist/chunks/2252.e1ea00e7.js +3 -0
  11. package/dist/chunks/2252.e1ea00e7.js.map +1 -0
  12. package/dist/chunks/{2277.c14d0d67.js → 2277.ba342aae.js} +2 -2
  13. package/dist/chunks/{2277.c14d0d67.js.map → 2277.ba342aae.js.map} +1 -1
  14. package/dist/chunks/{3171.10e6abd7.js → 3171.4dbfe341.js} +2 -2
  15. package/dist/chunks/{3171.10e6abd7.js.map → 3171.4dbfe341.js.map} +1 -1
  16. package/dist/chunks/{3278.083af081.js → 3278.0f918c33.js} +2 -2
  17. package/dist/chunks/{3278.083af081.js.map → 3278.0f918c33.js.map} +1 -1
  18. package/dist/chunks/{5764.962abddb.js → 3796.50b037c1.js} +3 -3
  19. package/dist/chunks/3796.50b037c1.js.map +1 -0
  20. package/dist/chunks/{3933.cc514840.js → 3933.51f9dbab.js} +2 -2
  21. package/dist/chunks/{3933.cc514840.js.map → 3933.51f9dbab.js.map} +1 -1
  22. package/dist/chunks/4185.0a1811dd.js +3 -0
  23. package/dist/chunks/{4185.6bb963ac.js.map → 4185.0a1811dd.js.map} +1 -1
  24. package/dist/chunks/{4306.543cf3ba.js → 4306.0db9f63f.js} +2 -2
  25. package/dist/chunks/{4306.543cf3ba.js.map → 4306.0db9f63f.js.map} +1 -1
  26. package/dist/chunks/{4658.a0d181eb.js → 4658.94297dd4.js} +2 -2
  27. package/dist/chunks/{4658.a0d181eb.js.map → 4658.94297dd4.js.map} +1 -1
  28. package/dist/chunks/{3703.029f16d4.js → 4691.8c7517e4.js} +3 -3
  29. package/dist/chunks/4691.8c7517e4.js.map +1 -0
  30. package/dist/chunks/4727.a0c26777.js +2 -0
  31. package/dist/chunks/4727.a0c26777.js.map +1 -0
  32. package/dist/chunks/{4837.900bfc51.js → 4837.c5865dab.js} +2 -2
  33. package/dist/chunks/{4837.900bfc51.js.map → 4837.c5865dab.js.map} +1 -1
  34. package/dist/chunks/{6256.5623ff67.js → 4934.d9e44c27.js} +3 -3
  35. package/dist/chunks/4934.d9e44c27.js.map +1 -0
  36. package/dist/chunks/{5294.92b3255a.js → 5294.311bf701.js} +2 -2
  37. package/dist/chunks/{5294.92b3255a.js.map → 5294.311bf701.js.map} +1 -1
  38. package/dist/chunks/{5552.28246bbe.js → 5552.637cf356.js} +2 -2
  39. package/dist/chunks/{5552.28246bbe.js.map → 5552.637cf356.js.map} +1 -1
  40. package/dist/chunks/{6314.7c789fd1.js → 6314.a355d670.js} +2 -2
  41. package/dist/chunks/{6314.7c789fd1.js.map → 6314.a355d670.js.map} +1 -1
  42. package/dist/chunks/{6519.c702aa91.js → 6519.731d398d.js} +2 -2
  43. package/dist/chunks/{6519.c702aa91.js.map → 6519.731d398d.js.map} +1 -1
  44. package/dist/chunks/6595.bd9e01e1.js +2 -0
  45. package/dist/chunks/{6595.df7d6299.js.map → 6595.bd9e01e1.js.map} +1 -1
  46. package/dist/chunks/{7218.cb7a3902.js → 7218.80bc6c0e.js} +2 -2
  47. package/dist/chunks/{7218.cb7a3902.js.map → 7218.80bc6c0e.js.map} +1 -1
  48. package/dist/chunks/{726.1d2dd9fa.js → 726.1c09f96b.js} +2 -2
  49. package/dist/chunks/726.1c09f96b.js.map +1 -0
  50. package/dist/chunks/7505.11d54588.js +2 -0
  51. package/dist/chunks/7505.11d54588.js.map +1 -0
  52. package/dist/chunks/{7733.d84a812b.js → 7733.56080c36.js} +2 -2
  53. package/dist/chunks/{7733.d84a812b.js.map → 7733.56080c36.js.map} +1 -1
  54. package/dist/chunks/{8097.cf09fa17.js → 8097.1ce8c748.js} +2 -2
  55. package/dist/chunks/{8097.cf09fa17.js.map → 8097.1ce8c748.js.map} +1 -1
  56. package/dist/chunks/8274.fa37deb0.js +3 -0
  57. package/dist/chunks/8274.fa37deb0.js.map +1 -0
  58. package/dist/chunks/8989.7fb3ddb5.js +2 -0
  59. package/dist/chunks/{8989.69bc5a2a.js.map → 8989.7fb3ddb5.js.map} +1 -1
  60. package/dist/chunks/{9149.39fc3e88.js → 9149.c981b445.js} +2 -2
  61. package/dist/chunks/{9149.39fc3e88.js.map → 9149.c981b445.js.map} +1 -1
  62. package/dist/chunks/9559.693f2629.js +2 -0
  63. package/dist/chunks/{1940.639bb674.js.map → 9559.693f2629.js.map} +1 -1
  64. package/dist/chunks/easyops-navbar-alerts.a4ab065d.js +2 -0
  65. package/dist/chunks/easyops-navbar-alerts.a4ab065d.js.map +1 -0
  66. package/dist/chunks/{eo-app-bar-wrapper.174668bf.js → eo-app-bar-wrapper.7b154b71.js} +3 -3
  67. package/dist/chunks/{eo-app-bar-wrapper.174668bf.js.map → eo-app-bar-wrapper.7b154b71.js.map} +1 -1
  68. package/dist/chunks/{eo-directory-tree-internal-node.9a5ba4a5.js → eo-directory-tree-internal-node.8879e296.js} +2 -2
  69. package/dist/chunks/{eo-directory-tree-internal-node.9a5ba4a5.js.map → eo-directory-tree-internal-node.8879e296.js.map} +1 -1
  70. package/dist/chunks/{eo-directory-tree-leaf.b95878a8.js → eo-directory-tree-leaf.78d21704.js} +2 -2
  71. package/dist/chunks/{eo-directory-tree-leaf.b95878a8.js.map → eo-directory-tree-leaf.78d21704.js.map} +1 -1
  72. package/dist/chunks/{eo-directory-tree.016bb346.js → eo-directory-tree.161030d2.js} +3 -3
  73. package/dist/chunks/{eo-directory-tree.016bb346.js.map → eo-directory-tree.161030d2.js.map} +1 -1
  74. package/dist/chunks/{eo-directory.ee4ba2e2.js → eo-directory.8a63fdf3.js} +3 -3
  75. package/dist/chunks/{eo-directory.ee4ba2e2.js.map → eo-directory.8a63fdf3.js.map} +1 -1
  76. package/dist/chunks/{eo-frame-breadcrumb.762554a4.js → eo-frame-breadcrumb.ee00de97.js} +2 -2
  77. package/dist/chunks/{eo-frame-breadcrumb.762554a4.js.map → eo-frame-breadcrumb.ee00de97.js.map} +1 -1
  78. package/dist/chunks/{eo-launchpad-button-v2.46ee2628.js → eo-launchpad-button-v2.b06eb0f7.js} +3 -3
  79. package/dist/chunks/{eo-launchpad-button-v2.46ee2628.js.map → eo-launchpad-button-v2.b06eb0f7.js.map} +1 -1
  80. package/dist/chunks/eo-launchpad-button.8968bce1.js +3 -0
  81. package/dist/chunks/eo-launchpad-button.8968bce1.js.map +1 -0
  82. package/dist/chunks/eo-launchpad-quick-access.fea6db1b.js +3 -0
  83. package/dist/chunks/eo-launchpad-quick-access.fea6db1b.js.map +1 -0
  84. package/dist/chunks/eo-launchpad-recent-visits.73d97344.js +3 -0
  85. package/dist/chunks/{eo-launchpad-recent-visits.a60bec3b.js.map → eo-launchpad-recent-visits.73d97344.js.map} +1 -1
  86. package/dist/chunks/eo-nav-menu.c6c6f3b2.js +2 -0
  87. package/dist/chunks/eo-nav-menu.c6c6f3b2.js.map +1 -0
  88. package/dist/chunks/{eo-search-launchpad.3e45105c.js → eo-search-launchpad.a9cb71a5.js} +2 -2
  89. package/dist/chunks/{eo-search-launchpad.3e45105c.js.map → eo-search-launchpad.a9cb71a5.js.map} +1 -1
  90. package/dist/chunks/{eo-sidebar-menu-group.ef46414f.js → eo-sidebar-menu-group.c6a274c0.js} +3 -3
  91. package/dist/chunks/{eo-sidebar-menu-group.ef46414f.js.map → eo-sidebar-menu-group.c6a274c0.js.map} +1 -1
  92. package/dist/chunks/{eo-sidebar-menu-item.128c342c.js → eo-sidebar-menu-item.39352d3f.js} +2 -2
  93. package/dist/chunks/{eo-sidebar-menu-item.128c342c.js.map → eo-sidebar-menu-item.39352d3f.js.map} +1 -1
  94. package/dist/chunks/{eo-sidebar-menu-submenu.cc04ae01.js → eo-sidebar-menu-submenu.b6c0b43a.js} +3 -3
  95. package/dist/chunks/{eo-sidebar-menu-submenu.cc04ae01.js.map → eo-sidebar-menu-submenu.b6c0b43a.js.map} +1 -1
  96. package/dist/chunks/{eo-sidebar-menu.3459644e.js → eo-sidebar-menu.5f675037.js} +2 -2
  97. package/dist/chunks/{eo-sidebar-menu.3459644e.js.map → eo-sidebar-menu.5f675037.js.map} +1 -1
  98. package/dist/chunks/eo-sidebar-sub-menu.96ff89b5.js +3 -0
  99. package/dist/chunks/eo-sidebar-sub-menu.96ff89b5.js.map +1 -0
  100. package/dist/chunks/{eo-sidebar.8ca0d20d.js → eo-sidebar.5fa916fb.js} +3 -3
  101. package/dist/chunks/eo-sidebar.5fa916fb.js.map +1 -0
  102. package/dist/chunks/get-menu-config-options.5db0206b.js +2 -0
  103. package/dist/chunks/{get-menu-config-options.330a0e31.js.map → get-menu-config-options.5db0206b.js.map} +1 -1
  104. package/dist/chunks/get-menu-config-tree.6dbe14c1.js +2 -0
  105. package/dist/chunks/{get-menu-config-tree.c947edd2.js.map → get-menu-config-tree.6dbe14c1.js.map} +1 -1
  106. package/dist/chunks/launchpad-config.2707249a.js +3 -0
  107. package/dist/chunks/{launchpad-config.246362e6.js.map → launchpad-config.2707249a.js.map} +1 -1
  108. package/dist/chunks/main.577dcf1f.js +2 -0
  109. package/dist/chunks/main.577dcf1f.js.map +1 -0
  110. package/dist/chunks/{nav-logo.e2780c91.js → nav-logo.d45f446c.js} +2 -2
  111. package/dist/chunks/{nav-logo.e2780c91.js.map → nav-logo.d45f446c.js.map} +1 -1
  112. package/dist/chunks/poll-announce.f7d2378c.js +3 -0
  113. package/dist/chunks/{poll-announce.dedd36fe.js.map → poll-announce.f7d2378c.js.map} +1 -1
  114. package/dist/examples.json +3 -3
  115. package/dist/index.75d2cbcd.js +2 -0
  116. package/dist/index.75d2cbcd.js.map +1 -0
  117. package/dist/manifest.json +57 -57
  118. package/dist/types.json +105 -105
  119. package/package.json +6 -6
  120. package/dist/chunks/1370.62ed48ee.js +0 -2
  121. package/dist/chunks/1370.62ed48ee.js.map +0 -1
  122. package/dist/chunks/1940.639bb674.js +0 -2
  123. package/dist/chunks/2133.035a3a97.js +0 -2
  124. package/dist/chunks/2133.035a3a97.js.map +0 -1
  125. package/dist/chunks/2140.2e870601.js +0 -3
  126. package/dist/chunks/2140.2e870601.js.map +0 -1
  127. package/dist/chunks/2248.1c89b192.js +0 -2
  128. package/dist/chunks/2248.1c89b192.js.map +0 -1
  129. package/dist/chunks/2252.8fa914f0.js +0 -3
  130. package/dist/chunks/2252.8fa914f0.js.map +0 -1
  131. package/dist/chunks/3703.029f16d4.js.map +0 -1
  132. package/dist/chunks/3751.625e4868.js +0 -2
  133. package/dist/chunks/3751.625e4868.js.map +0 -1
  134. package/dist/chunks/4185.6bb963ac.js +0 -3
  135. package/dist/chunks/5764.962abddb.js.map +0 -1
  136. package/dist/chunks/6132.2bc55492.js +0 -2
  137. package/dist/chunks/6132.2bc55492.js.map +0 -1
  138. package/dist/chunks/6256.5623ff67.js.map +0 -1
  139. package/dist/chunks/6595.df7d6299.js +0 -2
  140. package/dist/chunks/726.1d2dd9fa.js.map +0 -1
  141. package/dist/chunks/8518.0c52c2b5.js +0 -2
  142. package/dist/chunks/8518.0c52c2b5.js.map +0 -1
  143. package/dist/chunks/8989.69bc5a2a.js +0 -2
  144. package/dist/chunks/9559.7f108302.js +0 -2
  145. package/dist/chunks/9559.7f108302.js.map +0 -1
  146. package/dist/chunks/easyops-navbar-alerts.4c3fa5b4.js +0 -2
  147. package/dist/chunks/easyops-navbar-alerts.4c3fa5b4.js.map +0 -1
  148. package/dist/chunks/eo-launchpad-button.642275eb.js +0 -3
  149. package/dist/chunks/eo-launchpad-button.642275eb.js.map +0 -1
  150. package/dist/chunks/eo-launchpad-quick-access.a5583d91.js +0 -3
  151. package/dist/chunks/eo-launchpad-quick-access.a5583d91.js.map +0 -1
  152. package/dist/chunks/eo-launchpad-recent-visits.a60bec3b.js +0 -3
  153. package/dist/chunks/eo-nav-menu.37be67af.js +0 -2
  154. package/dist/chunks/eo-nav-menu.37be67af.js.map +0 -1
  155. package/dist/chunks/eo-sidebar-sub-menu.0d7abb3f.js +0 -3
  156. package/dist/chunks/eo-sidebar-sub-menu.0d7abb3f.js.map +0 -1
  157. package/dist/chunks/eo-sidebar.8ca0d20d.js.map +0 -1
  158. package/dist/chunks/get-menu-config-options.330a0e31.js +0 -2
  159. package/dist/chunks/get-menu-config-tree.c947edd2.js +0 -2
  160. package/dist/chunks/launchpad-config.246362e6.js +0 -3
  161. package/dist/chunks/main.d9ff1d7b.js +0 -2
  162. package/dist/chunks/main.d9ff1d7b.js.map +0 -1
  163. package/dist/chunks/poll-announce.dedd36fe.js +0 -3
  164. package/dist/index.57559e93.js +0 -2
  165. package/dist/index.57559e93.js.map +0 -1
  166. /package/dist/chunks/{2252.8fa914f0.js.LICENSE.txt → 2252.e1ea00e7.js.LICENSE.txt} +0 -0
  167. /package/dist/chunks/{5764.962abddb.js.LICENSE.txt → 3796.50b037c1.js.LICENSE.txt} +0 -0
  168. /package/dist/chunks/{4185.6bb963ac.js.LICENSE.txt → 4185.0a1811dd.js.LICENSE.txt} +0 -0
  169. /package/dist/chunks/{3703.029f16d4.js.LICENSE.txt → 4691.8c7517e4.js.LICENSE.txt} +0 -0
  170. /package/dist/chunks/{6256.5623ff67.js.LICENSE.txt → 4934.d9e44c27.js.LICENSE.txt} +0 -0
  171. /package/dist/chunks/{2140.2e870601.js.LICENSE.txt → 8274.fa37deb0.js.LICENSE.txt} +0 -0
  172. /package/dist/chunks/{eo-app-bar-wrapper.174668bf.js.LICENSE.txt → eo-app-bar-wrapper.7b154b71.js.LICENSE.txt} +0 -0
  173. /package/dist/chunks/{eo-directory-tree.016bb346.js.LICENSE.txt → eo-directory-tree.161030d2.js.LICENSE.txt} +0 -0
  174. /package/dist/chunks/{eo-directory.ee4ba2e2.js.LICENSE.txt → eo-directory.8a63fdf3.js.LICENSE.txt} +0 -0
  175. /package/dist/chunks/{eo-launchpad-button-v2.46ee2628.js.LICENSE.txt → eo-launchpad-button-v2.b06eb0f7.js.LICENSE.txt} +0 -0
  176. /package/dist/chunks/{eo-launchpad-button.642275eb.js.LICENSE.txt → eo-launchpad-button.8968bce1.js.LICENSE.txt} +0 -0
  177. /package/dist/chunks/{eo-launchpad-quick-access.a5583d91.js.LICENSE.txt → eo-launchpad-quick-access.fea6db1b.js.LICENSE.txt} +0 -0
  178. /package/dist/chunks/{eo-launchpad-recent-visits.a60bec3b.js.LICENSE.txt → eo-launchpad-recent-visits.73d97344.js.LICENSE.txt} +0 -0
  179. /package/dist/chunks/{eo-sidebar-menu-group.ef46414f.js.LICENSE.txt → eo-sidebar-menu-group.c6a274c0.js.LICENSE.txt} +0 -0
  180. /package/dist/chunks/{eo-sidebar-menu-submenu.cc04ae01.js.LICENSE.txt → eo-sidebar-menu-submenu.b6c0b43a.js.LICENSE.txt} +0 -0
  181. /package/dist/chunks/{eo-sidebar-sub-menu.0d7abb3f.js.LICENSE.txt → eo-sidebar-sub-menu.96ff89b5.js.LICENSE.txt} +0 -0
  182. /package/dist/chunks/{eo-sidebar.8ca0d20d.js.LICENSE.txt → eo-sidebar.5fa916fb.js.LICENSE.txt} +0 -0
  183. /package/dist/chunks/{launchpad-config.246362e6.js.LICENSE.txt → launchpad-config.2707249a.js.LICENSE.txt} +0 -0
  184. /package/dist/chunks/{poll-announce.dedd36fe.js.LICENSE.txt → poll-announce.f7d2378c.js.LICENSE.txt} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chunks/eo-sidebar.5fa916fb.js","mappings":"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","sources":["webpack:///./src/sidebar/i18n.ts","webpack:///./src/sidebar/index.tsx","webpack:///./src/sidebar/utils.tsx","webpack:///./src/images/fixed.svg","webpack:///./src/images/toFixed.svg","webpack:///./src/sidebar/styles.shadow.css","webpack:///../../node_modules/css-loader/dist/runtime/api.js","webpack:///../../node_modules/css-loader/dist/runtime/noSourceMaps.js","webpack:///../../node_modules/classnames/index.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/setFunctionName.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/applyDecs2311.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/assertClassBrand.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/checkInRHS.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/checkPrivateRedeclaration.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/classPrivateFieldGet2.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/classPrivateFieldInitSpec.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/classPrivateFieldSet2.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/classPrivateGetter.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/classPrivateMethodInitSpec.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/extends.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/toPrimitive.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/typeof.js","webpack:///../../node_modules/@next-shared/general/dist/esm/JsonStorage.js","webpack:///../../node_modules/@next-shared/general/dist/esm/debounceByAnimationFrame.js","webpack:///../../node_modules/@next-shared/general/dist/esm/menu.js"],"sourcesContent":["export enum K {\n CLICK_TO_FIX_NAVIGATION = \"CLICK_TO_FIX_NAVIGATION\",\n UNPIN_NAVIGATION = \"UNPIN_NAVIGATION\",\n FIXED_NAVIGATION = \"FIXED_NAVIGATION\",\n}\n\nconst en: Locale = {\n UNPIN_NAVIGATION: \"Unpin navigation\",\n FIXED_NAVIGATION: \"Fixed navigation\",\n CLICK_TO_FIX_NAVIGATION: \"Click to {{action}}\",\n};\n\nconst zh: Locale = {\n UNPIN_NAVIGATION: \"取消固定\",\n FIXED_NAVIGATION: \"固定导航\",\n CLICK_TO_FIX_NAVIGATION: \"点击{{action}}\",\n};\n\nexport const NS = \"bricks/nav/eo-sidebar\";\n\nexport const locales = { en, zh };\n\ntype Locale = { [key in K]: string };\n","import React, {\n MouseEventHandler,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { EventEmitter, createDecorators } from \"@next-core/element\";\nimport { ReactNextElement, wrapBrick } from \"@next-core/react-element\";\nimport type { EoTooltip, ToolTipProps } from \"@next-bricks/basic/tooltip\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\nimport type { SidebarMenu as SidebarMenuType } from \"@next-shared/general/types\";\nimport \"@next-core/theme\";\nimport styleText from \"./styles.shadow.css\";\nimport FixedSvg from \"../images/fixed.svg\";\nimport ToFixedSvg from \"../images/toFixed.svg\";\nimport { debounceByAnimationFrame } from \"@next-shared/general/debounceByAnimationFrame\";\nimport { JsonStorage } from \"@next-shared/general/JsonStorage\";\nimport {\n ExpandedState,\n SIDE_BAR_EXPAND_STATE,\n SIDE_BAR_HAS_BEEN_USED,\n SIDE_BAR_RESIZE_WIDTH,\n SidebarMenu,\n sideBarCollapsedWidth,\n sideBarWidth,\n} from \"./utils.js\";\nimport { useTranslation, initializeReactI18n } from \"@next-core/i18n/react\";\nimport { K, NS, locales } from \"./i18n.js\";\nimport classNames from \"classnames\";\nimport { initMenuItemAndMatchCurrentPathKeys } from \"@next-shared/general/menu\";\nimport { UnregisterCallback } from \"history\";\nimport { getHistory, getRuntime } from \"@next-core/runtime\";\nimport { useCurrentApp } from \"@next-core/react-runtime\";\n\ninitializeReactI18n(NS, locales);\n\nconst { defineElement, property, event } = createDecorators();\n\nconst WrappedTooltip = wrapBrick<EoTooltip, ToolTipProps>(\"eo-tooltip\");\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\n\nexport interface EoSidebarProps {\n menu: SidebarMenuType;\n expandedState?: ExpandedState;\n hiddenFixedIcon?: boolean;\n position?: \"static\" | \"fixed\";\n}\n\nexport interface EoSidebarEvents {\n \"actual.width.change\": CustomEvent<number>;\n \"expanded.state.change\": CustomEvent<ExpandedState>;\n}\n\nexport interface EoSidebarEventsMapping {\n onActualWidthChange: \"actual.width.change\";\n onExpandedStateChange: \"expanded.state.change\";\n}\n\n/**\n * 侧边栏\n *\n * @category navigation\n */\nexport\n@defineElement(\"eo-sidebar\", {\n styleTexts: [styleText],\n})\nclass EoSidebar extends ReactNextElement implements EoSidebarProps {\n /**\n * 菜单数据\n */\n @property({ attribute: false })\n accessor menu!: SidebarMenuType;\n\n /**\n * 是否隐藏固定按钮\n */\n @property({ type: Boolean })\n accessor hiddenFixedIcon: boolean | undefined;\n\n /**\n * 侧栏状态\n */\n @property()\n accessor expandedState: ExpandedState | undefined;\n\n /**\n * 设置定位方式:静态定位或固定定位。\n *\n * @default \"fixed\"\n */\n @property()\n accessor position: \"static\" | \"fixed\" | undefined;\n\n /**\n * 宽度变化时触发\n * @detail 当前宽度\n */\n @event({ type: \"actual.width.change\" })\n accessor #actualWidthChangeEvent!: EventEmitter<number>;\n #handleActualWidthChange = (actualWidth: number): void => {\n this.#actualWidthChangeEvent.emit(actualWidth);\n };\n\n /**\n * 侧栏状态变化时触发\n * @detail 侧栏状态\n */\n @event({ type: \"expanded.state.change\" })\n accessor #expandedStateChangeEvent!: EventEmitter<ExpandedState>;\n #handleExpandedStateChange = (state: ExpandedState): void => {\n this.expandedState = state;\n this.#expandedStateChangeEvent.emit(state);\n };\n\n render() {\n return (\n <EoSidebarComponent\n menu={this.menu}\n expandedState={this.expandedState}\n hiddenFixedIcon={this.hiddenFixedIcon}\n position={this.position}\n onActualWidthChange={this.#handleActualWidthChange}\n onExpandedStateChange={this.#handleExpandedStateChange}\n />\n );\n }\n}\n\ninterface EoSidebarComponentProps extends EoSidebarProps {\n onActualWidthChange?: (actualWidth: number) => void;\n onExpandedStateChange?: (state: ExpandedState) => void;\n}\n\nexport function EoSidebarComponent(props: EoSidebarComponentProps) {\n const { t } = useTranslation(NS);\n const {\n menu,\n hiddenFixedIcon,\n position,\n onActualWidthChange,\n onExpandedStateChange,\n } = props;\n\n const showUserDefinedIcon = React.useMemo(\n () => getRuntime()?.getFeatureFlags()[\"sidebar-show-user-defined-icon\"],\n []\n );\n\n const storage = useMemo(() => new JsonStorage(localStorage), []);\n const history = getHistory();\n const currentApp = useCurrentApp();\n const [location, setLocation] = useState(history.location);\n const { pathname, search } = location;\n\n const [isFirstUsedTooltip, setIsFirstUsedTooltip] = useState<boolean>(\n !storage.getItem(SIDE_BAR_HAS_BEEN_USED)\n );\n const [showContentShadow, setShowContentShadow] = useState<boolean>();\n const [dragging, setDragging] = useState<boolean>();\n const [expandedState, setExpandedState] = useState<ExpandedState>(\n props.expandedState ||\n storage.getItem(SIDE_BAR_EXPAND_STATE) ||\n ExpandedState.Collapsed\n );\n\n const titleIcon = showUserDefinedIcon ? menu?.icon : currentApp?.menuIcon;\n\n const { selectedKeys, openedKeys, matchedKeys } = useMemo(() => {\n return initMenuItemAndMatchCurrentPathKeys(\n menu?.menuItems ?? [],\n pathname,\n search,\n \"\"\n );\n }, [menu?.menuItems, pathname, search]);\n\n useEffect(() => {\n const unListen: UnregisterCallback = history.listen((location) => {\n setLocation(location);\n });\n return unListen;\n }, [history]);\n\n const contentBottomPlaceholderRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n if (contentBottomPlaceholderRef.current) {\n const observer = new IntersectionObserver(\n (entries) => {\n entries.forEach((entry) => {\n if (entry.target === contentBottomPlaceholderRef.current) {\n setShowContentShadow(!entry.isIntersecting);\n }\n });\n },\n { threshold: 1 }\n );\n\n observer.observe(contentBottomPlaceholderRef.current);\n\n return () => {\n observer.disconnect();\n };\n }\n }, []);\n\n useEffect(() => {\n setExpandedState(\n props.expandedState ||\n storage.getItem(SIDE_BAR_EXPAND_STATE) ||\n ExpandedState.Collapsed\n );\n }, [props.expandedState]);\n\n useEffect(() => {\n storage.setItem(\n SIDE_BAR_EXPAND_STATE,\n expandedState === ExpandedState.Expanded\n ? ExpandedState.Expanded\n : ExpandedState.Collapsed\n );\n }, [expandedState]);\n\n const handleFixedIconClick = (): void => {\n setIsFirstUsedTooltip(false);\n storage.setItem(SIDE_BAR_HAS_BEEN_USED, true);\n\n setExpandedState((state) => {\n const newState =\n state === ExpandedState.Expanded\n ? ExpandedState.Collapsed\n : ExpandedState.Expanded;\n\n newState !== state && onExpandedStateChange?.(newState);\n return newState;\n });\n };\n\n const [expandedWidth, setExpandedWidth] = useState<number>(() => {\n // Use parseInt to compatible non-number types\n let memorizedWidth = parseInt(storage.getItem(SIDE_BAR_RESIZE_WIDTH), 10);\n if (memorizedWidth < sideBarWidth || Number.isNaN(memorizedWidth)) {\n memorizedWidth = sideBarWidth;\n }\n return memorizedWidth;\n });\n\n useEffect(() => {\n storage.setItem(SIDE_BAR_RESIZE_WIDTH, expandedWidth);\n }, [expandedWidth]);\n\n const containerRef = useRef<HTMLDivElement>(null);\n\n const handleResizeDown: MouseEventHandler = (e) => {\n setDragging(true);\n\n // Prevent text selection when dragging\n if (e.cancelable) {\n e.preventDefault();\n }\n\n const offsetX = containerRef.current?.getBoundingClientRect().left ?? 0;\n\n const drag = debounceByAnimationFrame((e: MouseEvent) => {\n const x = e.clientX - offsetX;\n const width = x >= sideBarWidth ? x : sideBarWidth;\n\n setExpandedWidth(width);\n });\n const dragEnd = (e: MouseEvent) => {\n setDragging(false);\n e.preventDefault();\n\n window.removeEventListener(\"mousemove\", drag);\n window.removeEventListener(\"mouseup\", dragEnd);\n };\n\n window.addEventListener(\"mousemove\", drag, { passive: true });\n window.addEventListener(\"mouseup\", dragEnd);\n };\n\n const handleMouseEnter = (): void => {\n setExpandedState((state) => {\n const newState =\n state === ExpandedState.Expanded\n ? ExpandedState.Expanded\n : ExpandedState.Hovered;\n\n newState !== state && onExpandedStateChange?.(newState);\n return newState;\n });\n };\n\n const handleMouseLeave = (): void => {\n setExpandedState((state) => {\n const newState =\n state === ExpandedState.Expanded\n ? ExpandedState.Expanded\n : ExpandedState.Collapsed;\n\n newState !== state && onExpandedStateChange?.(newState);\n return newState;\n });\n };\n\n const sidebarActualWidth = useMemo(() => {\n return expandedState === ExpandedState.Expanded\n ? expandedWidth\n : sideBarCollapsedWidth;\n }, [expandedState, expandedWidth]);\n\n useEffect(() => {\n onActualWidthChange?.(sidebarActualWidth);\n }, [onActualWidthChange, sidebarActualWidth]);\n\n const getContainerWidth = (inner?: boolean) => {\n // With static position, when not expanded, the outer container will keep\n // collapsed even if hovered, while only the inner container will expand.\n if (position === \"static\") {\n return expandedState === ExpandedState.Expanded ||\n (inner && expandedState === ExpandedState.Hovered)\n ? expandedWidth\n : sideBarCollapsedWidth;\n }\n return expandedState === ExpandedState.Collapsed\n ? sideBarCollapsedWidth\n : expandedWidth;\n };\n\n useEffect(() => {\n const container = containerRef.current;\n container?.addEventListener(\"mouseenter\", handleMouseEnter);\n container?.addEventListener(\"mouseleave\", handleMouseLeave);\n\n return () => {\n container?.removeEventListener(\"mouseenter\", handleMouseEnter);\n container?.removeEventListener(\"mouseleave\", handleMouseLeave);\n };\n }, []);\n\n return (\n <div\n className={classNames(\"sidebar-container\", `state-${expandedState}`, {\n dragging,\n })}\n style={{ width: getContainerWidth() }}\n ref={containerRef}\n data-testid=\"side-bar\"\n >\n <div className=\"inner\" style={{ width: getContainerWidth(true) }}>\n <div className=\"header\">\n <div className=\"menu-title\">\n <div className={classNames(\"menu-title-icon-container\")}>\n {titleIcon ? (\n <WrappedIcon\n {...(titleIcon as GeneralIconProps)}\n className=\"menu-title-icon\"\n />\n ) : (\n <span className=\"menu-title-point\" />\n )}\n </div>\n <div className=\"menu-title-text\" title={menu?.title}>\n {menu?.title}\n </div>\n </div>\n </div>\n\n <div\n className={classNames(\"content\", {\n \"show-shadow\": showContentShadow,\n })}\n >\n <SidebarMenu\n selectedKeys={selectedKeys}\n openedKeys={openedKeys}\n matchedKeys={matchedKeys}\n menu={menu}\n expandedState={expandedState}\n />\n <div ref={contentBottomPlaceholderRef} />\n </div>\n\n <div className=\"footer\">\n {!hiddenFixedIcon && (\n <WrappedTooltip\n content={\n (expandedState === ExpandedState.Expanded\n ? isFirstUsedTooltip\n ? t(K.CLICK_TO_FIX_NAVIGATION, {\n action: t(K.UNPIN_NAVIGATION),\n })\n : t(K.UNPIN_NAVIGATION)\n : isFirstUsedTooltip\n ? t(K.CLICK_TO_FIX_NAVIGATION, {\n action: t(K.FIXED_NAVIGATION),\n })\n : t(K.FIXED_NAVIGATION)) as string\n }\n >\n <i className=\"fixed-icon\" onClick={handleFixedIconClick}>\n <FixedSvg\n style={{\n display:\n expandedState === ExpandedState.Expanded\n ? undefined\n : \"none\",\n }}\n />\n <ToFixedSvg\n style={{\n display:\n expandedState === ExpandedState.Expanded\n ? \"none\"\n : undefined,\n }}\n />\n </i>\n </WrappedTooltip>\n )}\n </div>\n {expandedState === ExpandedState.Expanded && (\n <span className=\"resize-line\" onMouseDown={handleResizeDown} />\n )}\n </div>\n </div>\n );\n}\n","import React, {\n createContext,\n useCallback,\n useContext,\n useEffect,\n useRef,\n} from \"react\";\nimport { getCssPropertyValue } from \"@next-core/runtime\";\nimport { wrapBrick } from \"@next-core/react-element\";\nimport type {\n SidebarMenu as SidebarMenuType,\n SidebarMenuGroup,\n SidebarMenuItem,\n SidebarMenuSimpleItem,\n} from \"@next-shared/general/types\";\nimport type {\n EoSidebarMenu,\n EoSidebarMenuProps,\n} from \"./sidebar-menu/index.js\";\nimport type {\n EoSidebarMenuItem,\n EoSidebarMenuItemProps,\n} from \"./sidebar-menu-item/index.js\";\nimport type {\n EoSidebarMenuGroup,\n EoSidebarMenuGroupProps,\n} from \"./sidebar-menu-group/index.js\";\nimport type {\n EoSidebarMenuSubmenu,\n EoSidebarMenuSubmenuProps,\n} from \"./sidebar-menu-submenu/index.js\";\n\nconst sidebarMenuItemTagNameSet = new Set([\n \"EO-SIDEBAR-MENU-ITEM\",\n \"EO-SIDEBAR-MENU-GROUP\",\n \"EO-SIDEBAR-MENU-SUBMENU\",\n]);\n\nconst isSidebarMenuItem = (element: Element) =>\n sidebarMenuItemTagNameSet.has(element.tagName);\n\nexport function useUpdateMenuCollapsedState(menuCollapsed?: boolean) {\n const slotRef = useRef<HTMLSlotElement>(null);\n\n const updateChildrenMenuCollapsedState = useCallback(() => {\n slotRef.current?.assignedElements().forEach((ele) => {\n if (isSidebarMenuItem(ele)) {\n (ele as any).menuCollapsed = menuCollapsed;\n }\n });\n }, [menuCollapsed]);\n\n useEffect(() => {\n updateChildrenMenuCollapsedState();\n }, [menuCollapsed, updateChildrenMenuCollapsedState]);\n\n useEffect(() => {\n const slotElem = slotRef.current;\n const handleSlotchange = () => {\n updateChildrenMenuCollapsedState();\n };\n slotElem?.addEventListener(\"slotchange\", handleSlotchange);\n\n return () => {\n slotElem?.removeEventListener(\"slotchange\", handleSlotchange);\n };\n }, [updateChildrenMenuCollapsedState]);\n\n return [slotRef];\n}\n\nexport const SIDE_BAR_HAS_BEEN_USED = \"side-bar-has-been-used\";\nexport const SIDE_BAR_EXPAND_STATE = \"side-bar-expand-state\";\nexport const SIDE_BAR_RESIZE_WIDTH = \"side-bar-resize-width\";\n\nexport enum ExpandedState {\n Collapsed = \"collapsed\",\n Hovered = \"hovered\",\n Expanded = \"expanded\",\n}\n\nexport const sideBarWidth =\n parseInt(getCssPropertyValue(\"--side-bar-width\", document.body), 10) || 220;\nexport const sideBarCollapsedWidth =\n parseInt(\n getCssPropertyValue(\"--side-bar-collapsed-width\", document.body),\n 10\n ) || 60;\n\ninterface ContextOfSidebarMenu {\n selectedKeys: string[];\n openedKeys: string[];\n matchedKeys: string[];\n}\n\nconst SidebarMenuContext = createContext<ContextOfSidebarMenu>({\n selectedKeys: [],\n openedKeys: [],\n matchedKeys: [],\n});\n\nconst WrappedSidebarMenu = wrapBrick<EoSidebarMenu, EoSidebarMenuProps>(\n \"eo-sidebar-menu\"\n);\nconst WrappedSidebarMenuItem = wrapBrick<\n EoSidebarMenuItem,\n EoSidebarMenuItemProps\n>(\"eo-sidebar-menu-item\");\nconst WrappedSidebarMenuGroup = wrapBrick<\n EoSidebarMenuGroup,\n EoSidebarMenuGroupProps\n>(\"eo-sidebar-menu-group\");\nconst WrappedSidebarMenuSubmenu = wrapBrick<\n EoSidebarMenuSubmenu,\n EoSidebarMenuSubmenuProps\n>(\"eo-sidebar-menu-submenu\");\n\nfunction MenuSimpleItem(\n props: SidebarMenuSimpleItem & { id?: string; inSubmenu?: boolean }\n) {\n const { to, href, target, icon, text, id, inSubmenu } = props;\n const { selectedKeys } = useContext(SidebarMenuContext);\n\n return (\n <WrappedSidebarMenuItem\n url={to as any}\n href={href}\n target={target as any}\n icon={icon}\n inSubmenu={inSubmenu}\n selected={selectedKeys.includes(id!)}\n >\n {text}\n </WrappedSidebarMenuItem>\n );\n}\n\nfunction MenuGroup(\n props: SidebarMenuGroup & { id?: string; top?: boolean; inSubmenu?: boolean }\n) {\n const { title, items, id, top, inSubmenu } = props;\n const { matchedKeys } = useContext(SidebarMenuContext);\n const isSelected = id && matchedKeys.includes(id);\n\n if (items?.length > 0) {\n return (\n <WrappedSidebarMenuGroup selected={!!isSelected} collapsable={!top}>\n <span slot=\"title\">{title}</span>\n {props.items.map((item) => {\n return (\n <MenuItem\n key={item.key}\n {...item}\n id={item.key}\n top={false}\n inSubmenu={inSubmenu}\n />\n );\n })}\n </WrappedSidebarMenuGroup>\n );\n }\n return null;\n}\n\nfunction MenuSubmenu(props: SidebarMenuGroup & { id?: string }) {\n const { title, icon, items, id } = props;\n const { openedKeys, matchedKeys } = useContext(SidebarMenuContext);\n const isSelected = id && matchedKeys.includes(id);\n\n if (items?.length > 0) {\n return (\n <WrappedSidebarMenuSubmenu\n icon={icon}\n collapsed={!openedKeys.includes(id!)}\n selected={!!isSelected}\n >\n <span slot=\"title\">{title}</span>\n {props.items.map((item) => {\n return (\n <MenuItem\n key={item.key}\n {...item}\n id={item.key}\n top={false}\n inSubmenu={true}\n />\n );\n })}\n </WrappedSidebarMenuSubmenu>\n );\n }\n return null;\n}\n\nfunction MenuItem(\n props: SidebarMenuItem & { id?: string; top?: boolean; inSubmenu?: boolean }\n) {\n if (props.type === \"subMenu\") {\n return <MenuSubmenu {...props} />;\n } else if (props.type === \"group\") {\n return <MenuGroup {...props} />;\n } else {\n return <MenuSimpleItem {...(props as SidebarMenuSimpleItem)} />;\n }\n}\n\nexport function SidebarMenu(props: {\n menu?: SidebarMenuType;\n expandedState: ExpandedState;\n selectedKeys?: string[];\n openedKeys?: string[];\n matchedKeys?: string[];\n}) {\n const { menu, expandedState, selectedKeys, openedKeys, matchedKeys } = props;\n\n return (\n <SidebarMenuContext.Provider\n value={{\n selectedKeys: selectedKeys || [],\n openedKeys: openedKeys || [],\n matchedKeys: matchedKeys || [],\n }}\n >\n <WrappedSidebarMenu\n menuCollapsed={expandedState === ExpandedState.Collapsed}\n >\n {menu?.menuItems?.map((item) => {\n return <MenuItem key={item.key} {...item} id={item.key} top={true} />;\n })}\n </WrappedSidebarMenu>\n </SidebarMenuContext.Provider>\n );\n}\n","import * as React from \"react\";\nconst SvgFixed = props => <svg xmlns=\"http://www.w3.org/2000/svg\" width={20} height={20} viewBox=\"0 0 20 20\" {...props}><g fill=\"none\" fillRule=\"evenodd\"><path d=\"M0 0h20v20H0z\" /><path fill=\"#595959\" fillRule=\"nonzero\" d=\"m14.599 11.59-1.685-1.606-.348-4.876.93-1.044s.617-.93-.62-1.045L7.323 3s-.85.657-.097 1.296l.754.755-.385 4.76-1.49 1.683s-.388.774.328 1.065l2.961-.02.668 3.887H6.388V17h7.832v-.574h-3.743l.6-3.946 3.154.097s.812-.464.368-.986\" /></g></svg>;\nexport default SvgFixed;","import * as React from \"react\";\nconst SvgToFixed = props => <svg xmlns=\"http://www.w3.org/2000/svg\" width={20} height={20} viewBox=\"0 0 20 20\" {...props}><g fill=\"none\" fillRule=\"evenodd\"><path d=\"M0 0h20v20H0z\" /><path fill=\"#595959\" fillRule=\"nonzero\" d=\"m13.06 3.765 3.22 3.08c.42.28.42.84.14 1.26-.42.42-.98.42-1.26.14l-.14-.14-.28-.28-3.22 4.62.98.98c.28.42.28.98-.14 1.26-.28.28-.7.28-1.12 0l-5.88-6.02q-.42-.63 0-1.26c.28-.28.84-.28 1.12 0l.98.98 4.62-3.22-.14-.14c-.42-.42-.42-.84-.14-1.26.28-.28.84-.42 1.26 0m-4.76 9.1-1.12-1.12c-.98 1.12-2.52 2.8-2.8 3.22-.42.42-.7.98-.98 1.54q1.05-.21 1.68-.84c.42-.28 2.1-1.82 3.22-2.8\" /></g></svg>;\nexport default SvgToFixed;","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:block}:host([hidden]){display:none}:host([position=\"static\"]){height:100%}*,\n*::before,\n*::after{box-sizing:border-box}.sidebar-container{position:relative;z-index:998;height:100%}.sidebar-container,\n.inner{transition:all var(--side-bar-collapse-transition-duration) var(--side-bar-collapse-transition-timing-function)}:host(:not([position=\"static\"])) .sidebar-container{position:fixed;left:0;top:var(--app-bar-height);height:calc(100vh - var(--app-bar-height))}.inner{position:absolute;left:0;height:100%;display:flex;flex-direction:column;background-color:var(--left-menu-bg);border-right:1px solid var(--left-sidebar-border-right)}.inner:hover{background-color:var(--left-menu-hover-bg)}.inner::before{content:\"\";position:absolute;left:0;right:0;top:0;bottom:0;z-index:-1;background:var(--sidebar-bg)}.header{padding:0 12px;margin-top:14px;height:52px;flex-shrink:0}.menu-title{height:100%;display:flex;align-items:center;color:var(--left-sidebar-large-title-color)}.menu-title-icon-container{flex-shrink:0;display:flex;justify-content:center;align-items:center;width:20px;height:20px;font-size:20px;line-height:0;transition:all var(--side-bar-collapse-transition-duration) var(--side-bar-collapse-transition-timing-function)}.menu-title-icon{color:var(--left-sidebar-item-collapsed-icon-color)}.menu-title-point{width:4px;height:4px;background:var(--antd-text-color);border-radius:50%}.menu-title-text{font-size:16px;font-weight:var(--font-weight-500);color:var(--left-sidebar-large-title-color);overflow:hidden;white-space:nowrap;text-overflow:ellipsis;transition:all var(--side-bar-collapse-transition-duration) var(--side-bar-collapse-transition-timing-function)}.state-collapsed .menu-title{padding:0 calc(50% - 10px)}.state-hovered .menu-title,\n.state-expanded .menu-title{padding:0 12px}.state-collapsed .menu-title-icon-container{margin-right:12px}.state-hovered .menu-title-icon-container,\n.state-expanded .menu-title-icon-container{margin-right:0;width:0;opacity:0}.content{padding:0 12px;flex:1;overflow-y:auto;scrollbar-width:none}.content::-webkit-scrollbar{width:0;background:transparent}.content.show-shadow{box-shadow:0 -17px 10px -16px rgb(0 0 0/8%) inset}.footer{height:60px;flex-shrink:0;display:flex;align-items:center;justify-content:flex-end}.fixed-icon{display:flex;justify-content:center;align-items:center;width:20px;height:20px;margin-right:8px;transition:all var(--side-bar-collapse-transition-duration) var(--side-bar-collapse-transition-timing-function)}.fixed-icon > svg{width:100%;height:100%}.fixed-icon:hover > svg path[fill]{fill:var(--color-brand)}.state-collapsed .fixed-icon{visibility:hidden;opacity:0}.state-hovered .fixed-icon,\n.state-expanded .fixed-icon{visibility:visible;opacity:1}.state-hovered .inner{box-shadow:var(--left-sidebar-shadow)}.resize-line{position:absolute;right:-2px;height:100%;width:2px;cursor:col-resize}.resize-line:hover,\n.resize-line:active{background-color:rgba(26,122,255,1)}.dragging,\n.dragging .inner{transition:none}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","\"use strict\";\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\nmodule.exports = function (cssWithMappingToString) {\n var list = [];\n\n // return the list of modules as css string\n list.toString = function toString() {\n return this.map(function (item) {\n var content = \"\";\n var needLayer = typeof item[5] !== \"undefined\";\n if (item[4]) {\n content += \"@supports (\".concat(item[4], \") {\");\n }\n if (item[2]) {\n content += \"@media \".concat(item[2], \" {\");\n }\n if (needLayer) {\n content += \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\");\n }\n content += cssWithMappingToString(item);\n if (needLayer) {\n content += \"}\";\n }\n if (item[2]) {\n content += \"}\";\n }\n if (item[4]) {\n content += \"}\";\n }\n return content;\n }).join(\"\");\n };\n\n // import a list of modules into the list\n list.i = function i(modules, media, dedupe, supports, layer) {\n if (typeof modules === \"string\") {\n modules = [[null, modules, undefined]];\n }\n var alreadyImportedModules = {};\n if (dedupe) {\n for (var k = 0; k < this.length; k++) {\n var id = this[k][0];\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n for (var _k = 0; _k < modules.length; _k++) {\n var item = [].concat(modules[_k]);\n if (dedupe && alreadyImportedModules[item[0]]) {\n continue;\n }\n if (typeof layer !== \"undefined\") {\n if (typeof item[5] === \"undefined\") {\n item[5] = layer;\n } else {\n item[1] = \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\").concat(item[1], \"}\");\n item[5] = layer;\n }\n }\n if (media) {\n if (!item[2]) {\n item[2] = media;\n } else {\n item[1] = \"@media \".concat(item[2], \" {\").concat(item[1], \"}\");\n item[2] = media;\n }\n }\n if (supports) {\n if (!item[4]) {\n item[4] = \"\".concat(supports);\n } else {\n item[1] = \"@supports (\".concat(item[4], \") {\").concat(item[1], \"}\");\n item[4] = supports;\n }\n }\n list.push(item);\n }\n };\n return list;\n};","\"use strict\";\n\nmodule.exports = function (i) {\n return i[1];\n};","/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = '';\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (arg) {\n\t\t\t\tclasses = appendClass(classes, parseValue(arg));\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction parseValue (arg) {\n\t\tif (typeof arg === 'string' || typeof arg === 'number') {\n\t\t\treturn arg;\n\t\t}\n\n\t\tif (typeof arg !== 'object') {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (Array.isArray(arg)) {\n\t\t\treturn classNames.apply(null, arg);\n\t\t}\n\n\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\treturn arg.toString();\n\t\t}\n\n\t\tvar classes = '';\n\n\t\tfor (var key in arg) {\n\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\tclasses = appendClass(classes, key);\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction appendClass (value, newClass) {\n\t\tif (!newClass) {\n\t\t\treturn value;\n\t\t}\n\t\n\t\tif (value) {\n\t\t\treturn value + ' ' + newClass;\n\t\t}\n\t\n\t\treturn value + newClass;\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","import _typeof from \"./typeof.js\";\nexport default function setFunctionName(e, t, n) {\n \"symbol\" == _typeof(t) && (t = (t = t.description) ? \"[\" + t + \"]\" : \"\");\n try {\n Object.defineProperty(e, \"name\", {\n configurable: !0,\n value: n ? n + \" \" + t : t\n });\n } catch (e) {}\n return e;\n}","import _typeof from \"./typeof.js\";\nimport checkInRHS from \"./checkInRHS.js\";\nimport setFunctionName from \"./setFunctionName.js\";\nimport toPropertyKey from \"./toPropertyKey.js\";\nexport default function applyDecs2311(e, t, n, r, o, i) {\n var a,\n c,\n u,\n s,\n f,\n l,\n p,\n d = Symbol.metadata || Symbol[\"for\"](\"Symbol.metadata\"),\n m = Object.defineProperty,\n h = Object.create,\n y = [h(null), h(null)],\n v = t.length;\n function g(t, n, r) {\n return function (o, i) {\n n && (i = o, o = e);\n for (var a = 0; a < t.length; a++) i = t[a].apply(o, r ? [i] : []);\n return r ? i : o;\n };\n }\n function b(e, t, n, r) {\n if (\"function\" != typeof e && (r || void 0 !== e)) throw new TypeError(t + \" must \" + (n || \"be\") + \" a function\" + (r ? \"\" : \" or undefined\"));\n return e;\n }\n function applyDec(e, t, n, r, o, i, u, s, f, l, p) {\n function d(e) {\n if (!p(e)) throw new TypeError(\"Attempted to access private element on non-instance\");\n }\n var h = [].concat(t[0]),\n v = t[3],\n w = !u,\n D = 1 === o,\n S = 3 === o,\n j = 4 === o,\n E = 2 === o;\n function I(t, n, r) {\n return function (o, i) {\n return n && (i = o, o = e), r && r(o), P[t].call(o, i);\n };\n }\n if (!w) {\n var P = {},\n k = [],\n F = S ? \"get\" : j || D ? \"set\" : \"value\";\n if (f ? (l || D ? P = {\n get: setFunctionName(function () {\n return v(this);\n }, r, \"get\"),\n set: function set(e) {\n t[4](this, e);\n }\n } : P[F] = v, l || setFunctionName(P[F], r, E ? \"\" : F)) : l || (P = Object.getOwnPropertyDescriptor(e, r)), !l && !f) {\n if ((c = y[+s][r]) && 7 != (c ^ o)) throw Error(\"Decorating two elements with the same name (\" + P[F].name + \") is not supported yet\");\n y[+s][r] = o < 3 ? 1 : o;\n }\n }\n for (var N = e, O = h.length - 1; O >= 0; O -= n ? 2 : 1) {\n var z = b(h[O], \"A decorator\", \"be\", !0),\n A = n ? h[O - 1] : void 0,\n H = {},\n K = {\n kind: [\"field\", \"accessor\", \"method\", \"getter\", \"setter\", \"class\"][o],\n name: r,\n metadata: a,\n addInitializer: function (e, t) {\n if (e.v) throw Error(\"attempted to call addInitializer after decoration was finished\");\n b(t, \"An initializer\", \"be\", !0), i.push(t);\n }.bind(null, H)\n };\n if (w) c = z.call(A, N, K), H.v = 1, b(c, \"class decorators\", \"return\") && (N = c);else if (K[\"static\"] = s, K[\"private\"] = f, c = K.access = {\n has: f ? p.bind() : function (e) {\n return r in e;\n }\n }, j || (c.get = f ? E ? function (e) {\n return d(e), P.value;\n } : I(\"get\", 0, d) : function (e) {\n return e[r];\n }), E || S || (c.set = f ? I(\"set\", 0, d) : function (e, t) {\n e[r] = t;\n }), N = z.call(A, D ? {\n get: P.get,\n set: P.set\n } : P[F], K), H.v = 1, D) {\n if (\"object\" == _typeof(N) && N) (c = b(N.get, \"accessor.get\")) && (P.get = c), (c = b(N.set, \"accessor.set\")) && (P.set = c), (c = b(N.init, \"accessor.init\")) && k.unshift(c);else if (void 0 !== N) throw new TypeError(\"accessor decorators must return an object with get, set, or init properties or undefined\");\n } else b(N, (l ? \"field\" : \"method\") + \" decorators\", \"return\") && (l ? k.unshift(N) : P[F] = N);\n }\n return o < 2 && u.push(g(k, s, 1), g(i, s, 0)), l || w || (f ? D ? u.splice(-1, 0, I(\"get\", s), I(\"set\", s)) : u.push(E ? P[F] : b.call.bind(P[F])) : m(e, r, P)), N;\n }\n function w(e) {\n return m(e, d, {\n configurable: !0,\n enumerable: !0,\n value: a\n });\n }\n return void 0 !== i && (a = i[d]), a = h(null == a ? null : a), f = [], l = function l(e) {\n e && f.push(g(e));\n }, p = function p(t, r) {\n for (var i = 0; i < n.length; i++) {\n var a = n[i],\n c = a[1],\n l = 7 & c;\n if ((8 & c) == t && !l == r) {\n var p = a[2],\n d = !!a[3],\n m = 16 & c;\n applyDec(t ? e : e.prototype, a, m, d ? \"#\" + p : toPropertyKey(p), l, l < 2 ? [] : t ? s = s || [] : u = u || [], f, !!t, d, r, t && d ? function (t) {\n return checkInRHS(t) === e;\n } : o);\n }\n }\n }, p(8, 0), p(0, 0), p(8, 1), p(0, 1), l(u), l(s), c = f, v || w(e), {\n e: c,\n get c() {\n var n = [];\n return v && [w(e = applyDec(e, [t], r, e.name, 5, n)), g(n, 1)];\n }\n };\n}","export default function _assertClassBrand(e, t, n) {\n if (\"function\" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n;\n throw new TypeError(\"Private element is not present on this object\");\n}","import _typeof from \"./typeof.js\";\nexport default function _checkInRHS(e) {\n if (Object(e) !== e) throw TypeError(\"right-hand side of 'in' should be an object, got \" + (null !== e ? _typeof(e) : \"null\"));\n return e;\n}","export default function _checkPrivateRedeclaration(obj, privateCollection) {\n if (privateCollection.has(obj)) {\n throw new TypeError(\"Cannot initialize the same private elements twice on an object\");\n }\n}","import assertClassBrand from \"./assertClassBrand.js\";\nexport default function _classPrivateFieldGet2(s, a) {\n return s.get(assertClassBrand(s, a));\n}","import checkPrivateRedeclaration from \"./checkPrivateRedeclaration.js\";\nexport default function _classPrivateFieldInitSpec(obj, privateMap, value) {\n checkPrivateRedeclaration(obj, privateMap);\n privateMap.set(obj, value);\n}","import assertClassBrand from \"./assertClassBrand.js\";\nexport default function _classPrivateFieldSet2(s, a, r) {\n return s.set(assertClassBrand(s, a), r), r;\n}","import assertClassBrand from \"./assertClassBrand.js\";\nexport default function _classPrivateGetter(s, r, a) {\n return a(assertClassBrand(s, r));\n}","import checkPrivateRedeclaration from \"./checkPrivateRedeclaration.js\";\nexport default function _classPrivateMethodInitSpec(obj, privateSet) {\n checkPrivateRedeclaration(obj, privateSet);\n privateSet.add(obj);\n}","export default function _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nexport default function toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : i + \"\";\n}","import _typeof from \"./typeof.js\";\nexport default function toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}","export default function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}","export class JsonStorage {\n constructor(storage) {\n let prefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : \"brick-next-\";\n this.storage = storage;\n this.prefix = prefix;\n }\n setItem(name, value) {\n this.storage.setItem(this.prefix + name, JSON.stringify(value));\n }\n getItem(name) {\n return JSON.parse(this.storage.getItem(this.prefix + name));\n }\n removeItem(name) {\n return this.storage.removeItem(this.prefix + name);\n }\n clear() {\n return this.storage.clear();\n }\n}\n//# sourceMappingURL=JsonStorage.js.map","// The debounce function receives our function as a parameter\nexport function debounceByAnimationFrame(fn) {\n // This holds the requestAnimationFrame reference, so we can cancel it if we wish\n let frame;\n const cancel = () => cancelAnimationFrame(frame);\n\n // The debounce function returns a new function that can receive a variable number of arguments\n const func = function () {\n for (var _len = arguments.length, params = new Array(_len), _key = 0; _key < _len; _key++) {\n params[_key] = arguments[_key];\n }\n // If the frame variable has been defined, clear it now, and queue for next frame\n if (frame) {\n cancel();\n }\n\n // Queue our function call for the next frame\n frame = requestAnimationFrame(() => {\n // Call our function and pass any params we received\n fn(...params);\n });\n };\n func.cancel = cancel;\n return func;\n}\n//# sourceMappingURL=debounceByAnimationFrame.js.map","import { parsePath } from \"history\";\nimport { matchPath } from \"@next-core/runtime\";\nimport { isObject } from \"lodash\";\nexport function isGroup(item) {\n return item.type === \"group\";\n}\nexport function isSubMenu(item, groupAsSubMenu) {\n return Boolean(item.type === \"subMenu\" || groupAsSubMenu && item.type === \"group\");\n}\nexport function initMenuItemAndMatchCurrentPathKeys(menuItems, pathname, search, parentCursor) {\n const selectedKeys = [];\n const openedKeys = [];\n const matchedKeys = [];\n let cursor = 0;\n menuItems && menuItems.forEach(item => {\n // key的格式最终为0,1,2,0.1,0.2,0.1.1,0.1.2\n item.key = parentCursor === \"\" ? `${cursor}` : `${parentCursor}.${cursor}`;\n if (isGroup(item) || isSubMenu(item)) {\n const tmp = initMenuItemAndMatchCurrentPathKeys(item.items, pathname, search, item.key);\n selectedKeys.push(...tmp.selectedKeys);\n if (tmp.selectedKeys.length || item.defaultExpanded) {\n openedKeys.push(item.key);\n }\n openedKeys.push(...tmp.openedKeys);\n matchedKeys.push(...tmp.matchedKeys);\n } else {\n if (matchMenuItem(item, pathname, search)) {\n selectedKeys.push(String(item.key));\n const keyPath = item.key.split(\".\");\n for (let i = 0; i < keyPath.length; i++) {\n matchedKeys.push(keyPath.slice(0, i + 1).join(\".\"));\n }\n }\n }\n cursor += 1;\n });\n if (selectedKeys.length && parentCursor !== \"\") {\n openedKeys.push(parentCursor);\n }\n return {\n selectedKeys: selectedKeys,\n openedKeys: openedKeys,\n matchedKeys: matchedKeys\n };\n}\nfunction getMatchOfSearch(currentSearch, toSearch) {\n const current = new URLSearchParams(currentSearch);\n const to = new URLSearchParams(toSearch);\n for (const [key, value] of to.entries()) {\n var _current$get;\n // Allow `?k=` to match `?` (when `k` doesn't exist)\n if (((_current$get = current.get(key)) !== null && _current$get !== void 0 ? _current$get : \"\") !== value) {\n return false;\n }\n }\n return true;\n}\nexport function matchMenuItem(item, pathname, search) {\n if (!item.to) return false;\n const to = typeof item.to === \"object\" ? item.to : parsePath(item.to);\n\n // Regex taken from: https://github.com/pillarjs/path-to-regexp/blob/master/index.js#L202\n const escapedPath = to.pathname.replace(/([.+*?=^!:${}()[\\]|/\\\\])/g, \"\\\\$1\");\n let match = !!matchPath(pathname, {\n path: escapedPath,\n exact: item.exact\n });\n if (match && item.activeMatchSearch) {\n match = getMatchOfSearch(search, to.search);\n }\n if (!match && Array.isArray(item.activeIncludes)) {\n for (const include of item.activeIncludes) {\n let paths;\n let exact = true;\n if (isObject(include)) {\n paths = Array.isArray(include.path) ? include.path : [include.path];\n exact = include.exact;\n } else {\n paths = [include];\n }\n for (const path of paths) {\n var _parsedPath;\n let parsedPath;\n const hasSearch = path.includes(\"?\");\n if (hasSearch) {\n parsedPath = parsePath(path);\n }\n match = !!matchPath(pathname, {\n path: hasSearch ? parsedPath.pathname : path,\n exact\n });\n if (match && (_parsedPath = parsedPath) !== null && _parsedPath !== void 0 && _parsedPath.search) {\n match = getMatchOfSearch(search, parsedPath.search);\n }\n if (match) {\n break;\n }\n }\n if (match) {\n break;\n }\n }\n }\n if (match && Array.isArray(item.activeExcludes)) {\n for (const include of item.activeExcludes) {\n let paths;\n let exact = true;\n if (isObject(include)) {\n paths = Array.isArray(include.path) ? include.path : [include.path];\n exact = include.exact;\n } else {\n paths = [include];\n }\n for (const path of paths) {\n let parsedPathWithSearch;\n if (path.includes(\"?\")) {\n parsedPathWithSearch = parsePath(path);\n }\n match = !(matchPath(pathname, {\n path: parsedPathWithSearch ? parsedPathWithSearch.pathname : path,\n exact\n }) && (!parsedPathWithSearch || getMatchOfSearch(search, parsedPathWithSearch.search)));\n if (!match) {\n break;\n }\n }\n if (!match) {\n break;\n }\n }\n }\n return match;\n}\n//# sourceMappingURL=menu.js.map"],"names":["K","NS","locales","en","UNPIN_NAVIGATION","FIXED_NAVIGATION","CLICK_TO_FIX_NAVIGATION","zh","initializeReactI18n","defineElement","property","event","createDecorators","WrappedTooltip","wrapBrick","WrappedIcon","_EoSidebar","_A","WeakMap","_B","_C","_D","_E","_EoSidebar_brand","WeakSet","_handleActualWidthChange","_F","_handleExpandedStateChange","EoSidebar","ReactNextElement","constructor","arguments","_classPrivateMethodInitSpec","_classPrivateFieldInitSpec","_init_menu","_init_extra_menu","_init_hiddenFixedIcon","_init_extra_hiddenFixedIcon","_init_expandedState","_init_extra_expandedState","_init_position","_init_extra_position","_init_actualWidthChangeEvent","_init_extra_actualWidthChangeEvent","actualWidth","_classPrivateGetter","this","_get_actualWidthChangeEvent","emit","_init_expandedStateChangeEvent","_init_extra_expandedStateChangeEvent","state","expandedState","_get_expandedStateChangeEvent","menu","_classPrivateFieldGet","v","_classPrivateFieldSet","hiddenFixedIcon","position","render","React","EoSidebarComponent","onActualWidthChange","onExpandedStateChange","props","useTranslation","showUserDefinedIcon","_getRuntime","getRuntime","getFeatureFlags","storage","useMemo","JsonStorage","localStorage","history","getHistory","currentApp","useCurrentApp","location","setLocation","useState","pathname","search","isFirstUsedTooltip","setIsFirstUsedTooltip","getItem","SIDE_BAR_HAS_BEEN_USED","showContentShadow","setShowContentShadow","dragging","setDragging","setExpandedState","SIDE_BAR_EXPAND_STATE","ExpandedState","Collapsed","titleIcon","icon","menuIcon","selectedKeys","openedKeys","matchedKeys","_menu$menuItems","initMenuItemAndMatchCurrentPathKeys","menuItems","useEffect","unListen","listen","contentBottomPlaceholderRef","useRef","current","observer","IntersectionObserver","entries","forEach","entry","target","isIntersecting","threshold","observe","disconnect","setItem","Expanded","expandedWidth","setExpandedWidth","memorizedWidth","parseInt","SIDE_BAR_RESIZE_WIDTH","sideBarWidth","Number","isNaN","containerRef","handleMouseEnter","newState","Hovered","handleMouseLeave","sidebarActualWidth","sideBarCollapsedWidth","getContainerWidth","inner","container","addEventListener","removeEventListener","className","classNames","style","width","ref","_extends","title","SidebarMenu","content","t","action","onClick","handleFixedIconClick","FixedSvg","display","undefined","ToFixedSvg","onMouseDown","e","_containerRef$current","_containerRef$current2","cancelable","preventDefault","offsetX","getBoundingClientRect","left","drag","debounceByAnimationFrame","x","clientX","dragEnd","window","passive","_EoSidebar2","_set_actualWidthChangeEvent","_set_expandedStateChangeEvent","c","_initClass","_applyDecs","styleTexts","styleText","attribute","type","Boolean","o","_","has","_checkInRHS","sidebarMenuItemTagNameSet","Set","isSidebarMenuItem","element","tagName","useUpdateMenuCollapsedState","menuCollapsed","slotRef","updateChildrenMenuCollapsedState","useCallback","_slotRef$current","assignedElements","ele","slotElem","handleSlotchange","getCssPropertyValue","document","body","SidebarMenuContext","createContext","WrappedSidebarMenu","WrappedSidebarMenuItem","WrappedSidebarMenuGroup","WrappedSidebarMenuSubmenu","MenuSimpleItem","to","href","text","id","inSubmenu","useContext","url","selected","includes","MenuGroup","items","top","isSelected","length","collapsable","slot","map","item","MenuItem","key","MenuSubmenu","collapsed","Provider","value","xmlns","height","viewBox","fill","fillRule","d","___CSS_LOADER_EXPORT___","push","module","toString","exports","cssWithMappingToString","list","needLayer","concat","join","i","modules","media","dedupe","supports","layer","alreadyImportedModules","k","_k","hasOwn","hasOwnProperty","classes","arg","appendClass","parseValue","Array","isArray","apply","Object","prototype","call","newClass","default","setFunctionName","n","description","defineProperty","configurable","applyDecs2311","r","a","u","s","f","l","p","Symbol","metadata","m","h","create","y","g","b","TypeError","applyDec","w","D","S","j","E","I","P","F","get","set","getOwnPropertyDescriptor","Error","name","N","O","z","A","H","kind","addInitializer","bind","access","init","unshift","splice","enumerable","toPropertyKey","checkInRHS","_assertClassBrand","_checkPrivateRedeclaration","obj","privateCollection","_classPrivateFieldGet2","privateMap","_classPrivateFieldSet2","privateSet","add","assign","source","toPrimitive","String","_typeof","iterator","prefix","JSON","stringify","parse","removeItem","clear","fn","frame","cancel","cancelAnimationFrame","func","_len","params","_key","requestAnimationFrame","isGroup","isSubMenu","groupAsSubMenu","parentCursor","cursor","tmp","defaultExpanded","parsePath","escapedPath","replace","match","matchPath","path","exact","activeMatchSearch","getMatchOfSearch","activeIncludes","include","paths","isObject","_parsedPath","parsedPath","hasSearch","activeExcludes","parsedPathWithSearch","matchMenuItem","keyPath","split","slice","currentSearch","toSearch","URLSearchParams","_current$get"],"sourceRoot":""}
@@ -0,0 +1,2 @@
1
+ "use strict";(globalThis.webpackChunk_next_bricks_nav=globalThis.webpackChunk_next_bricks_nav||[]).push([[7159],{3162:(e,t,o)=>{o.r(t),o.d(t,{getMenuConfigOptions:()=>a});var s=o(2729),n=o(1189);async function a(e){const t=[],{menuWithI18n:o,dispose:s}=(0,n.i)(e);for(const s of e){var a;t.push({label:`${null!==(a=(0,n.G)(s.title,o.get(s),s.overrideApp))&&void 0!==a?a:""} (${s.menuId})`,value:s.menuId})}return s(),t}customElements.define("nav.get-menu-config-options",(0,s.createProviderClass)(a))},1189:(e,t,o)=>{o.d(t,{G:()=>c,i:()=>u});var s=o(3324),n=o(2729),a=o(1321),i=o(4167),r=o(6376);const l=new Set(["name","id","homepage","localeName"]);function c(e,t,o){if("string"==typeof e){if((0,a.isEvaluable)(e)){let c;const u={usedProperties:new Set,hasNonStaticUsage:!1};try{c=(0,a.preevaluate)(e,{withParent:!0,hooks:{beforeVisitGlobal:(0,r.beforeVisitGlobalMember)(u,["APP"])}})}catch(t){console.error(`Parse menu title expression "${e}" failed:`,t)}if(c&&(!c.attemptToVisitGlobals.has("APP")||o&&!u.hasNonStaticUsage&&[...u.usedProperties].every((e=>l.has(e))))){const r={};for(const e of c.attemptToVisitGlobals)switch(e){case"I18N":r[e]=s.i18n.getFixedT(null,[t].filter(Boolean));break;case"APP":r[e]={...o,localeName:null==o?void 0:o.name}}const l=(0,i.supply)(c.attemptToVisitGlobals,r);let u=!0;for(const e of c.attemptToVisitGlobals)if(!(0,n.hasOwnProperty)(l,e)){u=!1;break}if(u)try{const t=(0,a.cook)(c.expression,c.source,{globalVariables:l});if("string"==typeof t)return t;console.error(`The result of menu title expression "${e}" is not a string:`,t)}catch(t){console.error(`Evaluate menu title expression "${e}" failed:`,t)}}}else if(o)return e.replace(/\$\{\s*APP\s*\.\s*(?:name|localeName)\s*\}/g,(()=>o.name));return e}}function u(e){const t=new WeakMap,o=[];for(const o of e){var n;const e=`customize-menu/${o.menuId}~${o.app[0].appId}+${o.instanceId}`;Object.entries(null!==(n=o.i18n)&&void 0!==n?n:{}).forEach((t=>{let[o,n]=t;s.i18n.addResourceBundle(o,e,n)})),t.set(o,e)}return{menuWithI18n:t,dispose:()=>{for(const[e,t]of o)s.i18n.removeResourceBundle(e,t)}}}}}]);
2
+ //# sourceMappingURL=get-menu-config-options.5db0206b.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"chunks/get-menu-config-options.330a0e31.js","mappings":"mMAiBOA,eAAeC,EACpBC,GAEA,MAAMC,EAAwB,IAExB,aAAEC,EAAY,QAAEC,IAAYC,EAAAA,EAAAA,GAAmBJ,GAErD,IAAK,MAAMK,KAAQL,EAAU,KAAAM,EAC3BL,EAAQM,KAAK,CACXC,MAAO,GAAiF,QAAjFF,GAAGG,EAAAA,EAAAA,GAAyBJ,EAAKK,MAAOR,EAAaS,IAAIN,GAAOA,EAAKO,oBAAY,IAAAN,EAAAA,EAAI,OAAOD,EAAKQ,UACxGC,MAAOT,EAAKQ,QAEhB,CAIA,OAFAV,IAEOF,CACT,CAEAc,eAAeC,OACb,+BACAC,EAAAA,EAAAA,qBAAoBlB,G,+FCtBtB,MAAMmB,EAAkB,IAAIC,IAAI,CAAC,OAAQ,KAAM,WAAY,eAKpD,SAASV,EACdC,EACAU,EACAR,GAEA,GAAqB,iBAAVF,EAAX,CAGA,IAAIW,EAAAA,EAAAA,aAAYX,GAAQ,CAEtB,IAAIY,EACJ,MAAMC,EAAqC,CACzCC,eAAgB,IAAIL,IACpBM,mBAAmB,GAErB,IACEH,GAAYI,EAAAA,EAAAA,aAAYhB,EAAO,CAC7BiB,YAAY,EACZC,MAAO,CACLC,mBAAmBC,EAAAA,EAAAA,yBAAwBP,EAAU,CAAC,UAG5D,CAAE,MAAOQ,GAEPC,QAAQD,MAAM,gCAAgCrB,aAAkBqB,EAClE,CAEA,GACET,KACEA,EAAUW,sBAAsBC,IAAI,QACnCtB,IACEW,EAASE,mBACV,IAAIF,EAASC,gBAAgBW,OAAOC,GAClClB,EAAgBgB,IAAIE,MAE1B,CACA,MAAMC,EAAmC,CAAC,EAC1C,IAAK,MAAMC,KAAOhB,EAAUW,sBAC1B,OAAQK,GACN,IAAK,OACHD,EAAQC,GAAOC,EAAAA,KAAKC,UAClB,KACA,CAACpB,GAAeqB,OAAOC,UAEzB,MACF,IAAK,MACHL,EAAQC,GAAO,IACV1B,EACH+B,WAAY/B,aAAW,EAAXA,EAAagC,MAKjC,MAAMC,GAAkBC,EAAAA,EAAAA,QAAOxB,EAAUW,sBAAuBI,GAEhE,IAAIU,GAAa,EACjB,IAAK,MAAMT,KAAOhB,EAAUW,sBAC1B,KAAKe,EAAAA,EAAAA,gBAAeH,EAAiBP,GAAM,CACzCS,GAAa,EACb,KACF,CAGF,GAAIA,EACF,IACE,MAAME,GAASC,EAAAA,EAAAA,MAAK5B,EAAU6B,WAAY7B,EAAU8B,OAAQ,CAC1DC,gBAAiBR,IAEnB,GAAsB,iBAAXI,EACT,OAAOA,EAGTjB,QAAQD,MACN,wCAAwCrB,sBACxCuC,EAEJ,CAAE,MAAOlB,GAEPC,QAAQD,MACN,mCAAmCrB,aACnCqB,EAEJ,CAEJ,CACF,MAAO,GAAInB,EAET,OAAOF,EAAM4C,QACX,+CACA,IAAM1C,EAAYgC,OAGtB,OAAOlC,CArFP,CAsFF,CAEO,SAASN,EAAmBJ,GACjC,MAAME,EAAe,IAAIqD,QACnBC,EAAgD,GAEtD,IAAK,MAAMnD,KAAQL,EAAU,KAAAyD,EAC3B,MAAMC,EAAoB,kBAAkBrD,EAAKQ,UAAUR,EAAKsD,IAAI,GAAGC,SACrEvD,EAAKwD,aAGPC,OAAOC,QAAiB,QAAVN,EAACpD,EAAKkC,YAAI,IAAAkB,EAAAA,EAAI,CAAC,GAAGO,SAAQC,IAAuB,IAArBC,EAAMC,GAAUF,EACxD1B,EAAAA,KAAK6B,kBAAkBF,EAAMR,EAAmBS,EAAU,IAE5DjE,EAAamE,IAAIhE,EAAMqD,EACzB,CAEA,MAAO,CACLxD,eACAC,QAASA,KACP,IAAK,MAAO+D,EAAMI,KAAOd,EACvBjB,EAAAA,KAAKgC,qBAAqBL,EAAMI,EAClC,EAGN,C","sources":["webpack:///./src/data-providers/get-menu-config-options.ts","webpack:///./src/data-providers/shared/smartDisplayForMenuTitle.ts"],"sourcesContent":["import { createProviderClass } from \"@next-core/utils/general\";\nimport type { MenuRawData } from \"./get-menu-config-tree\";\nimport {\n initializeMenuI18n,\n smartDisplayForMenuTitle,\n} from \"./shared/smartDisplayForMenuTitle\";\n\nexport interface MenuOption {\n label: string;\n value: string;\n}\n\n/**\n * 构造用于菜单自定义的下拉选项数据。\n *\n * 将对菜单标题进行表达式解析,支持 I18N 和 APP。\n */\nexport async function getMenuConfigOptions(\n menuList: MenuRawData[]\n): Promise<MenuOption[]> {\n const options: MenuOption[] = [];\n\n const { menuWithI18n, dispose } = initializeMenuI18n(menuList);\n\n for (const menu of menuList) {\n options.push({\n label: `${smartDisplayForMenuTitle(menu.title, menuWithI18n.get(menu), menu.overrideApp) ?? \"\"} (${menu.menuId})`,\n value: menu.menuId,\n });\n }\n\n dispose();\n\n return options;\n}\n\ncustomElements.define(\n \"nav.get-menu-config-options\",\n createProviderClass(getMenuConfigOptions)\n);\n","import type { MicroApp } from \"@next-core/types\";\nimport { i18n } from \"@next-core/i18n\";\nimport { hasOwnProperty } from \"@next-core/utils/general\";\nimport {\n cook,\n isEvaluable,\n preevaluate,\n type PreevaluateResult,\n} from \"@next-core/cook\";\nimport { supply } from \"@next-core/supply\";\nimport {\n beforeVisitGlobalMember,\n type MemberUsageInExpressions,\n} from \"@next-core/utils/storyboard\";\nimport type { MenuRawData } from \"../get-menu-config-tree\";\n\nconst allowedAppProps = new Set([\"name\", \"id\", \"homepage\", \"localeName\"]);\n\n/**\n * 对菜单标题进行表达式解析,支持 I18N 和 APP。\n */\nexport function smartDisplayForMenuTitle(\n title: unknown,\n i18nNamespace: string | undefined,\n overrideApp: MicroApp | undefined\n): string | undefined {\n if (typeof title !== \"string\") {\n return;\n }\n if (isEvaluable(title)) {\n // A `SyntaxError` maybe thrown.\n let precooked: PreevaluateResult | undefined;\n const appUsage: MemberUsageInExpressions = {\n usedProperties: new Set(),\n hasNonStaticUsage: false,\n };\n try {\n precooked = preevaluate(title, {\n withParent: true,\n hooks: {\n beforeVisitGlobal: beforeVisitGlobalMember(appUsage, [\"APP\"]),\n },\n });\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error(`Parse menu title expression \"${title}\" failed:`, error);\n }\n\n if (\n precooked &&\n (!precooked.attemptToVisitGlobals.has(\"APP\") ||\n (overrideApp &&\n !appUsage.hasNonStaticUsage &&\n [...appUsage.usedProperties].every((prop) =>\n allowedAppProps.has(prop)\n )))\n ) {\n const globals: Record<string, unknown> = {};\n for (const key of precooked.attemptToVisitGlobals) {\n switch (key) {\n case \"I18N\":\n globals[key] = i18n.getFixedT(\n null,\n [i18nNamespace].filter(Boolean)\n );\n break;\n case \"APP\":\n globals[key] = {\n ...overrideApp,\n localeName: overrideApp?.name,\n };\n break;\n }\n }\n const suppliedGlobals = supply(precooked.attemptToVisitGlobals, globals);\n\n let computable = true;\n for (const key of precooked.attemptToVisitGlobals) {\n if (!hasOwnProperty(suppliedGlobals, key)) {\n computable = false;\n break;\n }\n }\n\n if (computable) {\n try {\n const result = cook(precooked.expression, precooked.source, {\n globalVariables: suppliedGlobals,\n });\n if (typeof result === \"string\") {\n return result;\n }\n // eslint-disable-next-line no-console\n console.error(\n `The result of menu title expression \"${title}\" is not a string:`,\n result\n );\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error(\n `Evaluate menu title expression \"${title}\" failed:`,\n error\n );\n }\n }\n }\n } else if (overrideApp) {\n // 处理简单的占位符替换: ${APP.name} 和 ${APP.localeName}\n return title.replace(\n /\\$\\{\\s*APP\\s*\\.\\s*(?:name|localeName)\\s*\\}/g,\n () => overrideApp.name\n );\n }\n return title;\n}\n\nexport function initializeMenuI18n(menuList: MenuRawData[]) {\n const menuWithI18n = new WeakMap<MenuRawData, string>();\n const menuI18nBundles: [lang: string, ns: string][] = [];\n\n for (const menu of menuList) {\n const menuI18nNamespace = `customize-menu/${menu.menuId}~${menu.app[0].appId}+${\n menu.instanceId\n }`;\n // Support any language in `menu.i18n`.\n Object.entries(menu.i18n ?? {}).forEach(([lang, resources]) => {\n i18n.addResourceBundle(lang, menuI18nNamespace, resources);\n });\n menuWithI18n.set(menu, menuI18nNamespace);\n }\n\n return {\n menuWithI18n,\n dispose: () => {\n for (const [lang, ns] of menuI18nBundles) {\n i18n.removeResourceBundle(lang, ns);\n }\n },\n };\n}\n"],"names":["async","getMenuConfigOptions","menuList","options","menuWithI18n","dispose","initializeMenuI18n","menu","_smartDisplayForMenuT","push","label","smartDisplayForMenuTitle","title","get","overrideApp","menuId","value","customElements","define","createProviderClass","allowedAppProps","Set","i18nNamespace","isEvaluable","precooked","appUsage","usedProperties","hasNonStaticUsage","preevaluate","withParent","hooks","beforeVisitGlobal","beforeVisitGlobalMember","error","console","attemptToVisitGlobals","has","every","prop","globals","key","i18n","getFixedT","filter","Boolean","localeName","name","suppliedGlobals","supply","computable","hasOwnProperty","result","cook","expression","source","globalVariables","replace","WeakMap","menuI18nBundles","_menu$i18n","menuI18nNamespace","app","appId","instanceId","Object","entries","forEach","_ref","lang","resources","addResourceBundle","set","ns","removeResourceBundle"],"sourceRoot":""}
1
+ {"version":3,"file":"chunks/get-menu-config-options.5db0206b.js","mappings":"mMAiBOA,eAAeC,EACpBC,GAEA,MAAMC,EAAwB,IAExB,aAAEC,EAAY,QAAEC,IAAYC,EAAAA,EAAAA,GAAmBJ,GAErD,IAAK,MAAMK,KAAQL,EAAU,KAAAM,EAC3BL,EAAQM,KAAK,CACXC,MAAO,GAAiF,QAAjFF,GAAGG,EAAAA,EAAAA,GAAyBJ,EAAKK,MAAOR,EAAaS,IAAIN,GAAOA,EAAKO,oBAAY,IAAAN,EAAAA,EAAI,OAAOD,EAAKQ,UACxGC,MAAOT,EAAKQ,QAEhB,CAIA,OAFAV,IAEOF,CACT,CAEAc,eAAeC,OACb,+BACAC,EAAAA,EAAAA,qBAAoBlB,G,gGCtBtB,MAAMmB,EAAkB,IAAIC,IAAI,CAAC,OAAQ,KAAM,WAAY,eAKpD,SAASV,EACdC,EACAU,EACAR,GAEA,GAAqB,iBAAVF,EAAX,CAGA,IAAIW,EAAAA,EAAAA,aAAYX,GAAQ,CAEtB,IAAIY,EACJ,MAAMC,EAAqC,CACzCC,eAAgB,IAAIL,IACpBM,mBAAmB,GAErB,IACEH,GAAYI,EAAAA,EAAAA,aAAYhB,EAAO,CAC7BiB,YAAY,EACZC,MAAO,CACLC,mBAAmBC,EAAAA,EAAAA,yBAAwBP,EAAU,CAAC,UAG5D,CAAE,MAAOQ,GAEPC,QAAQD,MAAM,gCAAgCrB,aAAkBqB,EAClE,CAEA,GACET,KACEA,EAAUW,sBAAsBC,IAAI,QACnCtB,IACEW,EAASE,mBACV,IAAIF,EAASC,gBAAgBW,OAAOC,GAClClB,EAAgBgB,IAAIE,MAE1B,CACA,MAAMC,EAAmC,CAAC,EAC1C,IAAK,MAAMC,KAAOhB,EAAUW,sBAC1B,OAAQK,GACN,IAAK,OACHD,EAAQC,GAAOC,EAAAA,KAAKC,UAClB,KACA,CAACpB,GAAeqB,OAAOC,UAEzB,MACF,IAAK,MACHL,EAAQC,GAAO,IACV1B,EACH+B,WAAY/B,aAAW,EAAXA,EAAagC,MAKjC,MAAMC,GAAkBC,EAAAA,EAAAA,QAAOxB,EAAUW,sBAAuBI,GAEhE,IAAIU,GAAa,EACjB,IAAK,MAAMT,KAAOhB,EAAUW,sBAC1B,KAAKe,EAAAA,EAAAA,gBAAeH,EAAiBP,GAAM,CACzCS,GAAa,EACb,KACF,CAGF,GAAIA,EACF,IACE,MAAME,GAASC,EAAAA,EAAAA,MAAK5B,EAAU6B,WAAY7B,EAAU8B,OAAQ,CAC1DC,gBAAiBR,IAEnB,GAAsB,iBAAXI,EACT,OAAOA,EAGTjB,QAAQD,MACN,wCAAwCrB,sBACxCuC,EAEJ,CAAE,MAAOlB,GAEPC,QAAQD,MACN,mCAAmCrB,aACnCqB,EAEJ,CAEJ,CACF,MAAO,GAAInB,EAET,OAAOF,EAAM4C,QACX,+CACA,IAAM1C,EAAYgC,OAGtB,OAAOlC,CArFP,CAsFF,CAEO,SAASN,EAAmBJ,GACjC,MAAME,EAAe,IAAIqD,QACnBC,EAAgD,GAEtD,IAAK,MAAMnD,KAAQL,EAAU,KAAAyD,EAC3B,MAAMC,EAAoB,kBAAkBrD,EAAKQ,UAAUR,EAAKsD,IAAI,GAAGC,SACrEvD,EAAKwD,aAGPC,OAAOC,QAAiB,QAAVN,EAACpD,EAAKkC,YAAI,IAAAkB,EAAAA,EAAI,CAAC,GAAGO,SAAQC,IAAuB,IAArBC,EAAMC,GAAUF,EACxD1B,EAAAA,KAAK6B,kBAAkBF,EAAMR,EAAmBS,EAAU,IAE5DjE,EAAamE,IAAIhE,EAAMqD,EACzB,CAEA,MAAO,CACLxD,eACAC,QAASA,KACP,IAAK,MAAO+D,EAAMI,KAAOd,EACvBjB,EAAAA,KAAKgC,qBAAqBL,EAAMI,EAClC,EAGN,C","sources":["webpack:///./src/data-providers/get-menu-config-options.ts","webpack:///./src/data-providers/shared/smartDisplayForMenuTitle.ts"],"sourcesContent":["import { createProviderClass } from \"@next-core/utils/general\";\nimport type { MenuRawData } from \"./get-menu-config-tree\";\nimport {\n initializeMenuI18n,\n smartDisplayForMenuTitle,\n} from \"./shared/smartDisplayForMenuTitle\";\n\nexport interface MenuOption {\n label: string;\n value: string;\n}\n\n/**\n * 构造用于菜单自定义的下拉选项数据。\n *\n * 将对菜单标题进行表达式解析,支持 I18N 和 APP。\n */\nexport async function getMenuConfigOptions(\n menuList: MenuRawData[]\n): Promise<MenuOption[]> {\n const options: MenuOption[] = [];\n\n const { menuWithI18n, dispose } = initializeMenuI18n(menuList);\n\n for (const menu of menuList) {\n options.push({\n label: `${smartDisplayForMenuTitle(menu.title, menuWithI18n.get(menu), menu.overrideApp) ?? \"\"} (${menu.menuId})`,\n value: menu.menuId,\n });\n }\n\n dispose();\n\n return options;\n}\n\ncustomElements.define(\n \"nav.get-menu-config-options\",\n createProviderClass(getMenuConfigOptions)\n);\n","import type { MicroApp } from \"@next-core/types\";\nimport { i18n } from \"@next-core/i18n\";\nimport { hasOwnProperty } from \"@next-core/utils/general\";\nimport {\n cook,\n isEvaluable,\n preevaluate,\n type PreevaluateResult,\n} from \"@next-core/cook\";\nimport { supply } from \"@next-core/supply\";\nimport {\n beforeVisitGlobalMember,\n type MemberUsageInExpressions,\n} from \"@next-core/utils/storyboard\";\nimport type { MenuRawData } from \"../get-menu-config-tree\";\n\nconst allowedAppProps = new Set([\"name\", \"id\", \"homepage\", \"localeName\"]);\n\n/**\n * 对菜单标题进行表达式解析,支持 I18N 和 APP。\n */\nexport function smartDisplayForMenuTitle(\n title: unknown,\n i18nNamespace: string | undefined,\n overrideApp: MicroApp | undefined\n): string | undefined {\n if (typeof title !== \"string\") {\n return;\n }\n if (isEvaluable(title)) {\n // A `SyntaxError` maybe thrown.\n let precooked: PreevaluateResult | undefined;\n const appUsage: MemberUsageInExpressions = {\n usedProperties: new Set(),\n hasNonStaticUsage: false,\n };\n try {\n precooked = preevaluate(title, {\n withParent: true,\n hooks: {\n beforeVisitGlobal: beforeVisitGlobalMember(appUsage, [\"APP\"]),\n },\n });\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error(`Parse menu title expression \"${title}\" failed:`, error);\n }\n\n if (\n precooked &&\n (!precooked.attemptToVisitGlobals.has(\"APP\") ||\n (overrideApp &&\n !appUsage.hasNonStaticUsage &&\n [...appUsage.usedProperties].every((prop) =>\n allowedAppProps.has(prop)\n )))\n ) {\n const globals: Record<string, unknown> = {};\n for (const key of precooked.attemptToVisitGlobals) {\n switch (key) {\n case \"I18N\":\n globals[key] = i18n.getFixedT(\n null,\n [i18nNamespace].filter(Boolean)\n );\n break;\n case \"APP\":\n globals[key] = {\n ...overrideApp,\n localeName: overrideApp?.name,\n };\n break;\n }\n }\n const suppliedGlobals = supply(precooked.attemptToVisitGlobals, globals);\n\n let computable = true;\n for (const key of precooked.attemptToVisitGlobals) {\n if (!hasOwnProperty(suppliedGlobals, key)) {\n computable = false;\n break;\n }\n }\n\n if (computable) {\n try {\n const result = cook(precooked.expression, precooked.source, {\n globalVariables: suppliedGlobals,\n });\n if (typeof result === \"string\") {\n return result;\n }\n // eslint-disable-next-line no-console\n console.error(\n `The result of menu title expression \"${title}\" is not a string:`,\n result\n );\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error(\n `Evaluate menu title expression \"${title}\" failed:`,\n error\n );\n }\n }\n }\n } else if (overrideApp) {\n // 处理简单的占位符替换: ${APP.name} 和 ${APP.localeName}\n return title.replace(\n /\\$\\{\\s*APP\\s*\\.\\s*(?:name|localeName)\\s*\\}/g,\n () => overrideApp.name\n );\n }\n return title;\n}\n\nexport function initializeMenuI18n(menuList: MenuRawData[]) {\n const menuWithI18n = new WeakMap<MenuRawData, string>();\n const menuI18nBundles: [lang: string, ns: string][] = [];\n\n for (const menu of menuList) {\n const menuI18nNamespace = `customize-menu/${menu.menuId}~${menu.app[0].appId}+${\n menu.instanceId\n }`;\n // Support any language in `menu.i18n`.\n Object.entries(menu.i18n ?? {}).forEach(([lang, resources]) => {\n i18n.addResourceBundle(lang, menuI18nNamespace, resources);\n });\n menuWithI18n.set(menu, menuI18nNamespace);\n }\n\n return {\n menuWithI18n,\n dispose: () => {\n for (const [lang, ns] of menuI18nBundles) {\n i18n.removeResourceBundle(lang, ns);\n }\n },\n };\n}\n"],"names":["async","getMenuConfigOptions","menuList","options","menuWithI18n","dispose","initializeMenuI18n","menu","_smartDisplayForMenuT","push","label","smartDisplayForMenuTitle","title","get","overrideApp","menuId","value","customElements","define","createProviderClass","allowedAppProps","Set","i18nNamespace","isEvaluable","precooked","appUsage","usedProperties","hasNonStaticUsage","preevaluate","withParent","hooks","beforeVisitGlobal","beforeVisitGlobalMember","error","console","attemptToVisitGlobals","has","every","prop","globals","key","i18n","getFixedT","filter","Boolean","localeName","name","suppliedGlobals","supply","computable","hasOwnProperty","result","cook","expression","source","globalVariables","replace","WeakMap","menuI18nBundles","_menu$i18n","menuI18nNamespace","app","appId","instanceId","Object","entries","forEach","_ref","lang","resources","addResourceBundle","set","ns","removeResourceBundle"],"sourceRoot":""}
@@ -0,0 +1,2 @@
1
+ "use strict";(globalThis.webpackChunk_next_bricks_nav=globalThis.webpackChunk_next_bricks_nav||[]).push([[1255],{1794:(e,t,n)=>{n.r(t),n.d(t,{getMenuConfigTree:()=>c});var o=n(2729),i=n(1030),r=n(1189);const s=Symbol("menuI18nNamespace"),a=Symbol("overrideApp"),l={lib:"fa",icon:"bars"};async function c(e){var t;const n=[],o=e.find((e=>"main"===e.type));if(!o)return[];const i=[],l=new Map,{menuWithI18n:c,dispose:f}=(0,r.i)(e);for(const t of e){var m;if((!t.dynamicItems||!t.itemsResolve)&&null!==(m=t.items)&&void 0!==m&&m.length)if("inject"===t.type&&t.injectMenuGroupId){let e=l.get(t.injectMenuGroupId);e||(e=[],l.set(t.injectMenuGroupId,e)),e.push(t)}else i.push(t)}n.push("0");const h=p(i.flatMap((e=>d(e.items,e,l,c)))),v=[{key:"0",__keys:n,title:null!==(t=(0,r.G)(o.title,c.get(o),o.overrideApp))&&void 0!==t?t:o.menuId,data:o,icon:u(o.icon),children:function e(t,o){const i=null==t?void 0:t.map(((t,i)=>{var l;const c=`${o}-${i}`;return n.push(c),{key:c,title:null!==(l=(0,r.G)(t.text,t[s],t[a]))&&void 0!==l?l:"",data:t,icon:u(t.icon),faded:t.hidden,children:e(t.children,c)}}));return null!=i&&i.length?i:void 0}(h,"0")}];return f(),v}function u(e){return null!=e&&e.imgSrc?l:null!=e?e:l}function d(e,t,n,o){return null==e?void 0:e.map((e=>{var i;const r=e.groupId&&n.get(e.groupId);return r&&n.delete(e.groupId),{...e,children:(null!==(i=d(e.children,t,n,o))&&void 0!==i?i:[]).concat(r?r.flatMap((e=>d(e.items,e,n,o))):[]),[a]:t.overrideApp,[s]:o.get(t)}}))}function p(e){return function(e){return(0,i.sortBy)(e,(e=>{var t;return null!==(t=e.sort)&&void 0!==t?t:-1/0}),"text")}(e).map((e=>({...e,children:p(e.children)})))}customElements.define("nav.get-menu-config-tree",(0,o.createProviderClass)(c))},1189:(e,t,n)=>{n.d(t,{G:()=>c,i:()=>u});var o=n(3324),i=n(2729),r=n(1321),s=n(4167),a=n(6376);const l=new Set(["name","id","homepage","localeName"]);function c(e,t,n){if("string"==typeof e){if((0,r.isEvaluable)(e)){let c;const u={usedProperties:new Set,hasNonStaticUsage:!1};try{c=(0,r.preevaluate)(e,{withParent:!0,hooks:{beforeVisitGlobal:(0,a.beforeVisitGlobalMember)(u,["APP"])}})}catch(t){console.error(`Parse menu title expression "${e}" failed:`,t)}if(c&&(!c.attemptToVisitGlobals.has("APP")||n&&!u.hasNonStaticUsage&&[...u.usedProperties].every((e=>l.has(e))))){const a={};for(const e of c.attemptToVisitGlobals)switch(e){case"I18N":a[e]=o.i18n.getFixedT(null,[t].filter(Boolean));break;case"APP":a[e]={...n,localeName:null==n?void 0:n.name}}const l=(0,s.supply)(c.attemptToVisitGlobals,a);let u=!0;for(const e of c.attemptToVisitGlobals)if(!(0,i.hasOwnProperty)(l,e)){u=!1;break}if(u)try{const t=(0,r.cook)(c.expression,c.source,{globalVariables:l});if("string"==typeof t)return t;console.error(`The result of menu title expression "${e}" is not a string:`,t)}catch(t){console.error(`Evaluate menu title expression "${e}" failed:`,t)}}}else if(n)return e.replace(/\$\{\s*APP\s*\.\s*(?:name|localeName)\s*\}/g,(()=>n.name));return e}}function u(e){const t=new WeakMap,n=[];for(const n of e){var i;const e=`customize-menu/${n.menuId}~${n.app[0].appId}+${n.instanceId}`;Object.entries(null!==(i=n.i18n)&&void 0!==i?i:{}).forEach((t=>{let[n,i]=t;o.i18n.addResourceBundle(n,e,i)})),t.set(n,e)}return{menuWithI18n:t,dispose:()=>{for(const[e,t]of n)o.i18n.removeResourceBundle(e,t)}}}}}]);
2
+ //# sourceMappingURL=get-menu-config-tree.6dbe14c1.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"chunks/get-menu-config-tree.c947edd2.js","mappings":"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","sources":["webpack:///./src/data-providers/get-menu-config-tree.ts","webpack:///./src/data-providers/shared/smartDisplayForMenuTitle.ts"],"sourcesContent":["import type { MetaI18n, MicroApp } from \"@next-core/types\";\nimport { createProviderClass } from \"@next-core/utils/general\";\nimport { sortBy } from \"lodash\";\nimport {\n initializeMenuI18n,\n smartDisplayForMenuTitle,\n} from \"./shared/smartDisplayForMenuTitle\";\n\nconst symbolMenuI18nNamespace = Symbol(\"menuI18nNamespace\");\nconst symbolOverrideApp = Symbol(\"overrideApp\");\n\n/** 原始菜单数据。 */\nexport interface MenuRawData {\n menuId: string;\n title: string;\n icon?: {\n imgSrc?: string;\n };\n type?: \"main\" | \"inject\";\n injectMenuGroupId?: string;\n dynamicItems?: boolean;\n itemsResolve?: unknown;\n items?: MenuItemRawData[];\n instanceId: string;\n app: [\n {\n appId: string;\n },\n ];\n i18n?: MetaI18n;\n overrideApp?: MicroApp;\n}\n\n/** 原始菜单项数据。 */\nexport type MenuItemRawData = {\n /** 菜单项文本。 */\n text: string;\n icon?: {\n imgSrc?: string;\n };\n sort?: number;\n groupId?: string;\n hidden?: boolean;\n children?: MenuItemRawData[];\n};\n\nexport interface TitleDataSource {\n objectId: string;\n instanceId: string;\n attributeId?: string;\n}\n\ninterface RuntimeMenuItemRawData extends MenuItemRawData {\n children?: RuntimeMenuItemRawData[];\n [symbolMenuI18nNamespace]?: string;\n [symbolOverrideApp]?: MicroApp;\n}\n\nexport interface TreeNode {\n key: string;\n title: string;\n icon?: unknown;\n faded?: unknown;\n children?: TreeNode[];\n data: MenuRawData | MenuItemRawData;\n /** 第一个节点额外返回 __keys,包含所有节点的 key */\n __keys?: string[];\n}\n\nconst DEFAULT_ICON = {\n lib: \"fa\",\n icon: \"bars\",\n};\n\n/**\n * 构造用于菜单自定义的树形结构数据。\n *\n * 将对菜单标题进行表达式解析,支持 I18N 和 APP。\n */\nexport async function getMenuConfigTree(\n menuList: MenuRawData[]\n): Promise<TreeNode[]> {\n const keys: string[] = [];\n\n function getChildren(\n items: RuntimeMenuItemRawData[] | undefined,\n prefixKey: string\n ): TreeNode[] | undefined {\n const children = items?.map<TreeNode>((item, j) => {\n const key = `${prefixKey}-${j}`;\n keys.push(key);\n return {\n key,\n title:\n smartDisplayForMenuTitle(\n item.text,\n item[symbolMenuI18nNamespace],\n item[symbolOverrideApp]\n ) ?? \"\",\n data: item,\n icon: getIcon(item.icon),\n faded: item.hidden,\n children: getChildren(item.children, key),\n };\n });\n return children?.length ? children : undefined;\n }\n\n const mainMenu = menuList.find((menu) => menu.type === \"main\");\n if (!mainMenu) {\n return [];\n }\n\n const validMenuList: MenuRawData[] = [];\n const injectWithMenus = new Map<string, MenuRawData[]>();\n const { menuWithI18n, dispose } = initializeMenuI18n(menuList);\n\n for (const menu of menuList) {\n if (!(menu.dynamicItems && menu.itemsResolve) && menu.items?.length) {\n if (menu.type === \"inject\" && menu.injectMenuGroupId) {\n let injectingMenus = injectWithMenus.get(menu.injectMenuGroupId);\n if (!injectingMenus) {\n injectingMenus = [];\n injectWithMenus.set(menu.injectMenuGroupId, injectingMenus);\n }\n injectingMenus.push(menu);\n } else {\n validMenuList.push(menu);\n }\n }\n }\n\n keys.push(\"0\");\n\n const firstLevelItems = reorderMenuItems(\n validMenuList.flatMap(\n (menu) =>\n // Here always have non-empty items\n processGroupInject(menu.items, menu, injectWithMenus, menuWithI18n)!\n )\n );\n\n const tree: TreeNode[] = [\n {\n key: \"0\",\n __keys: keys,\n title:\n smartDisplayForMenuTitle(\n mainMenu.title,\n menuWithI18n.get(mainMenu),\n mainMenu.overrideApp\n ) ?? mainMenu.menuId,\n data: mainMenu,\n icon: getIcon(mainMenu.icon),\n children: getChildren(firstLevelItems, \"0\"),\n },\n ];\n\n dispose();\n\n return tree;\n}\n\nfunction getIcon(icon: { imgSrc?: string } | undefined): unknown {\n // 使用图片图标时,该图标一般是表达式,是应用的运行时数据,菜单管理无法获取。\n if (icon?.imgSrc) {\n return DEFAULT_ICON;\n }\n return icon ?? DEFAULT_ICON;\n}\n\nfunction processGroupInject(\n items: MenuItemRawData[] | undefined,\n menu: MenuRawData,\n injectWithMenus: Map<string, MenuRawData[]>,\n menuWithI18n: WeakMap<MenuRawData, string>\n): RuntimeMenuItemRawData[] | undefined {\n return items?.map((item) => {\n const foundInjectingMenus =\n item.groupId && injectWithMenus.get(item.groupId);\n if (foundInjectingMenus) {\n // Each menu to be injected with should be injected only once.\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n injectWithMenus.delete(item.groupId!);\n }\n return {\n ...item,\n children: (\n processGroupInject(\n item.children,\n menu,\n injectWithMenus,\n menuWithI18n\n ) ?? ([] as RuntimeMenuItemRawData[])\n ).concat(\n foundInjectingMenus\n ? foundInjectingMenus.flatMap(\n (injectingMenu) =>\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n processGroupInject(\n injectingMenu.items,\n injectingMenu,\n injectWithMenus,\n menuWithI18n\n )!\n )\n : ([] as RuntimeMenuItemRawData[])\n ),\n [symbolOverrideApp]: menu.overrideApp,\n [symbolMenuI18nNamespace]: menuWithI18n.get(menu),\n };\n });\n}\n\nfunction reorderMenuItems(\n list: MenuItemRawData[] | undefined\n): MenuItemRawData[] {\n return sortMenuItems(list).map((item) => ({\n ...item,\n children: reorderMenuItems(item.children),\n }));\n}\n\nfunction sortMenuItems(list: MenuItemRawData[] | undefined): MenuItemRawData[] {\n return sortBy(list, (item) => item.sort ?? -Infinity, \"text\");\n}\n\ncustomElements.define(\n \"nav.get-menu-config-tree\",\n createProviderClass(getMenuConfigTree)\n);\n","import type { MicroApp } from \"@next-core/types\";\nimport { i18n } from \"@next-core/i18n\";\nimport { hasOwnProperty } from \"@next-core/utils/general\";\nimport {\n cook,\n isEvaluable,\n preevaluate,\n type PreevaluateResult,\n} from \"@next-core/cook\";\nimport { supply } from \"@next-core/supply\";\nimport {\n beforeVisitGlobalMember,\n type MemberUsageInExpressions,\n} from \"@next-core/utils/storyboard\";\nimport type { MenuRawData } from \"../get-menu-config-tree\";\n\nconst allowedAppProps = new Set([\"name\", \"id\", \"homepage\", \"localeName\"]);\n\n/**\n * 对菜单标题进行表达式解析,支持 I18N 和 APP。\n */\nexport function smartDisplayForMenuTitle(\n title: unknown,\n i18nNamespace: string | undefined,\n overrideApp: MicroApp | undefined\n): string | undefined {\n if (typeof title !== \"string\") {\n return;\n }\n if (isEvaluable(title)) {\n // A `SyntaxError` maybe thrown.\n let precooked: PreevaluateResult | undefined;\n const appUsage: MemberUsageInExpressions = {\n usedProperties: new Set(),\n hasNonStaticUsage: false,\n };\n try {\n precooked = preevaluate(title, {\n withParent: true,\n hooks: {\n beforeVisitGlobal: beforeVisitGlobalMember(appUsage, [\"APP\"]),\n },\n });\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error(`Parse menu title expression \"${title}\" failed:`, error);\n }\n\n if (\n precooked &&\n (!precooked.attemptToVisitGlobals.has(\"APP\") ||\n (overrideApp &&\n !appUsage.hasNonStaticUsage &&\n [...appUsage.usedProperties].every((prop) =>\n allowedAppProps.has(prop)\n )))\n ) {\n const globals: Record<string, unknown> = {};\n for (const key of precooked.attemptToVisitGlobals) {\n switch (key) {\n case \"I18N\":\n globals[key] = i18n.getFixedT(\n null,\n [i18nNamespace].filter(Boolean)\n );\n break;\n case \"APP\":\n globals[key] = {\n ...overrideApp,\n localeName: overrideApp?.name,\n };\n break;\n }\n }\n const suppliedGlobals = supply(precooked.attemptToVisitGlobals, globals);\n\n let computable = true;\n for (const key of precooked.attemptToVisitGlobals) {\n if (!hasOwnProperty(suppliedGlobals, key)) {\n computable = false;\n break;\n }\n }\n\n if (computable) {\n try {\n const result = cook(precooked.expression, precooked.source, {\n globalVariables: suppliedGlobals,\n });\n if (typeof result === \"string\") {\n return result;\n }\n // eslint-disable-next-line no-console\n console.error(\n `The result of menu title expression \"${title}\" is not a string:`,\n result\n );\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error(\n `Evaluate menu title expression \"${title}\" failed:`,\n error\n );\n }\n }\n }\n } else if (overrideApp) {\n // 处理简单的占位符替换: ${APP.name} 和 ${APP.localeName}\n return title.replace(\n /\\$\\{\\s*APP\\s*\\.\\s*(?:name|localeName)\\s*\\}/g,\n () => overrideApp.name\n );\n }\n return title;\n}\n\nexport function initializeMenuI18n(menuList: MenuRawData[]) {\n const menuWithI18n = new WeakMap<MenuRawData, string>();\n const menuI18nBundles: [lang: string, ns: string][] = [];\n\n for (const menu of menuList) {\n const menuI18nNamespace = `customize-menu/${menu.menuId}~${menu.app[0].appId}+${\n menu.instanceId\n }`;\n // Support any language in `menu.i18n`.\n Object.entries(menu.i18n ?? {}).forEach(([lang, resources]) => {\n i18n.addResourceBundle(lang, menuI18nNamespace, resources);\n });\n menuWithI18n.set(menu, menuI18nNamespace);\n }\n\n return {\n menuWithI18n,\n dispose: () => {\n for (const [lang, ns] of menuI18nBundles) {\n i18n.removeResourceBundle(lang, ns);\n }\n },\n };\n}\n"],"names":["symbolMenuI18nNamespace","Symbol","symbolOverrideApp","DEFAULT_ICON","lib","icon","async","getMenuConfigTree","menuList","_smartDisplayForMenuT2","keys","mainMenu","find","menu","type","validMenuList","injectWithMenus","Map","menuWithI18n","dispose","initializeMenuI18n","_menu$items","dynamicItems","itemsResolve","items","length","injectMenuGroupId","injectingMenus","get","set","push","firstLevelItems","reorderMenuItems","flatMap","processGroupInject","tree","key","__keys","title","smartDisplayForMenuTitle","overrideApp","menuId","data","getIcon","children","getChildren","prefixKey","map","item","j","_smartDisplayForMenuT","text","faded","hidden","undefined","imgSrc","_processGroupInject","foundInjectingMenus","groupId","delete","concat","injectingMenu","list","sortBy","_item$sort","sort","sortMenuItems","customElements","define","createProviderClass","allowedAppProps","Set","i18nNamespace","isEvaluable","precooked","appUsage","usedProperties","hasNonStaticUsage","preevaluate","withParent","hooks","beforeVisitGlobal","beforeVisitGlobalMember","error","console","attemptToVisitGlobals","has","every","prop","globals","i18n","getFixedT","filter","Boolean","localeName","name","suppliedGlobals","supply","computable","hasOwnProperty","result","cook","expression","source","globalVariables","replace","WeakMap","menuI18nBundles","_menu$i18n","menuI18nNamespace","app","appId","instanceId","Object","entries","forEach","_ref","lang","resources","addResourceBundle","ns","removeResourceBundle"],"sourceRoot":""}
1
+ {"version":3,"file":"chunks/get-menu-config-tree.6dbe14c1.js","mappings":"0MAQA,MAAMA,EAA0BC,OAAO,qBACjCC,EAAoBD,OAAO,eA4D3BE,EAAe,CACnBC,IAAK,KACLC,KAAM,QAQDC,eAAeC,EACpBC,GACqB,IAAAC,EACrB,MAAMC,EAAiB,GA0BjBC,EAAWH,EAASI,MAAMC,GAAuB,SAAdA,EAAKC,OAC9C,IAAKH,EACH,MAAO,GAGT,MAAMI,EAA+B,GAC/BC,EAAkB,IAAIC,KACtB,aAAEC,EAAY,QAAEC,IAAYC,EAAAA,EAAAA,GAAmBZ,GAErD,IAAK,MAAMK,KAAQL,EAAU,KAAAa,EAC3B,KAAMR,EAAKS,eAAgBT,EAAKU,eAA2B,QAAdF,EAAIR,EAAKW,aAAK,IAAAH,GAAVA,EAAYI,OAC3D,GAAkB,WAAdZ,EAAKC,MAAqBD,EAAKa,kBAAmB,CACpD,IAAIC,EAAiBX,EAAgBY,IAAIf,EAAKa,mBACzCC,IACHA,EAAiB,GACjBX,EAAgBa,IAAIhB,EAAKa,kBAAmBC,IAE9CA,EAAeG,KAAKjB,EACtB,MACEE,EAAce,KAAKjB,EAGzB,CAEAH,EAAKoB,KAAK,KAEV,MAAMC,EAAkBC,EACtBjB,EAAckB,SACXpB,GAECqB,EAAmBrB,EAAKW,MAAOX,EAAMG,EAAiBE,MAItDiB,EAAmB,CACvB,CACEC,IAAK,IACLC,OAAQ3B,EACR4B,MAKG,QALE7B,GACH8B,EAAAA,EAAAA,GACE5B,EAAS2B,MACTpB,EAAaU,IAAIjB,GACjBA,EAAS6B,oBACV,IAAA/B,EAAAA,EAAIE,EAAS8B,OAChBC,KAAM/B,EACNN,KAAMsC,EAAQhC,EAASN,MACvBuC,SAtEJ,SAASC,EACPrB,EACAsB,GAEA,MAAMF,EAAWpB,aAAK,EAALA,EAAOuB,KAAc,CAACC,EAAMC,KAAM,IAAAC,EACjD,MAAMd,EAAM,GAAGU,KAAaG,IAE5B,OADAvC,EAAKoB,KAAKM,GACH,CACLA,MACAE,MAKG,QALEY,GACHX,EAAAA,EAAAA,GACES,EAAKG,KACLH,EAAKhD,GACLgD,EAAK9C,WACN,IAAAgD,EAAAA,EAAI,GACPR,KAAMM,EACN3C,KAAMsC,EAAQK,EAAK3C,MACnB+C,MAAOJ,EAAKK,OACZT,SAAUC,EAAYG,EAAKJ,SAAUR,GACtC,IAEH,OAAOQ,SAAAA,EAAUnB,OAASmB,OAAWU,CACvC,CAgDcT,CAAYd,EAAiB,OAM3C,OAFAZ,IAEOgB,CACT,CAEA,SAASQ,EAAQtC,GAEf,OAAIA,SAAAA,EAAMkD,OACDpD,EAEFE,QAAAA,EAAQF,CACjB,CAEA,SAAS+B,EACPV,EACAX,EACAG,EACAE,GAEA,OAAOM,aAAK,EAALA,EAAOuB,KAAKC,IAAS,IAAAQ,EAC1B,MAAMC,EACJT,EAAKU,SAAW1C,EAAgBY,IAAIoB,EAAKU,SAM3C,OALID,GAGFzC,EAAgB2C,OAAOX,EAAKU,SAEvB,IACFV,EACHJ,UAMG,QANOY,EACRtB,EACEc,EAAKJ,SACL/B,EACAG,EACAE,UACD,IAAAsC,EAAAA,EAAK,IACNI,OACAH,EACIA,EAAoBxB,SACjB4B,GAEC3B,EACE2B,EAAcrC,MACdqC,EACA7C,EACAE,KAGL,IAEP,CAAChB,GAAoBW,EAAK2B,YAC1B,CAACxC,GAA0BkB,EAAaU,IAAIf,GAC7C,GAEL,CAEA,SAASmB,EACP8B,GAEA,OAMF,SAAuBA,GACrB,OAAOC,EAAAA,EAAAA,QAAOD,GAAOd,IAAI,IAAAgB,EAAA,OAAc,QAAdA,EAAKhB,EAAKiB,YAAI,IAAAD,EAAAA,GAAI,GAAS,GAAE,OACxD,CARSE,CAAcJ,GAAMf,KAAKC,IAAI,IAC/BA,EACHJ,SAAUZ,EAAiBgB,EAAKJ,aAEpC,CAMAuB,eAAeC,OACb,4BACAC,EAAAA,EAAAA,qBAAoB9D,G,gGCrNtB,MAAM+D,EAAkB,IAAIC,IAAI,CAAC,OAAQ,KAAM,WAAY,eAKpD,SAAShC,EACdD,EACAkC,EACAhC,GAEA,GAAqB,iBAAVF,EAAX,CAGA,IAAImC,EAAAA,EAAAA,aAAYnC,GAAQ,CAEtB,IAAIoC,EACJ,MAAMC,EAAqC,CACzCC,eAAgB,IAAIL,IACpBM,mBAAmB,GAErB,IACEH,GAAYI,EAAAA,EAAAA,aAAYxC,EAAO,CAC7ByC,YAAY,EACZC,MAAO,CACLC,mBAAmBC,EAAAA,EAAAA,yBAAwBP,EAAU,CAAC,UAG5D,CAAE,MAAOQ,GAEPC,QAAQD,MAAM,gCAAgC7C,aAAkB6C,EAClE,CAEA,GACET,KACEA,EAAUW,sBAAsBC,IAAI,QACnC9C,IACEmC,EAASE,mBACV,IAAIF,EAASC,gBAAgBW,OAAOC,GAClClB,EAAgBgB,IAAIE,MAE1B,CACA,MAAMC,EAAmC,CAAC,EAC1C,IAAK,MAAMrD,KAAOsC,EAAUW,sBAC1B,OAAQjD,GACN,IAAK,OACHqD,EAAQrD,GAAOsD,EAAAA,KAAKC,UAClB,KACA,CAACnB,GAAeoB,OAAOC,UAEzB,MACF,IAAK,MACHJ,EAAQrD,GAAO,IACVI,EACHsD,WAAYtD,aAAW,EAAXA,EAAauD,MAKjC,MAAMC,GAAkBC,EAAAA,EAAAA,QAAOvB,EAAUW,sBAAuBI,GAEhE,IAAIS,GAAa,EACjB,IAAK,MAAM9D,KAAOsC,EAAUW,sBAC1B,KAAKc,EAAAA,EAAAA,gBAAeH,EAAiB5D,GAAM,CACzC8D,GAAa,EACb,KACF,CAGF,GAAIA,EACF,IACE,MAAME,GAASC,EAAAA,EAAAA,MAAK3B,EAAU4B,WAAY5B,EAAU6B,OAAQ,CAC1DC,gBAAiBR,IAEnB,GAAsB,iBAAXI,EACT,OAAOA,EAGThB,QAAQD,MACN,wCAAwC7C,sBACxC8D,EAEJ,CAAE,MAAOjB,GAEPC,QAAQD,MACN,mCAAmC7C,aACnC6C,EAEJ,CAEJ,CACF,MAAO,GAAI3C,EAET,OAAOF,EAAMmE,QACX,+CACA,IAAMjE,EAAYuD,OAGtB,OAAOzD,CArFP,CAsFF,CAEO,SAASlB,EAAmBZ,GACjC,MAAMU,EAAe,IAAIwF,QACnBC,EAAgD,GAEtD,IAAK,MAAM9F,KAAQL,EAAU,KAAAoG,EAC3B,MAAMC,EAAoB,kBAAkBhG,EAAK4B,UAAU5B,EAAKiG,IAAI,GAAGC,SACrElG,EAAKmG,aAGPC,OAAOC,QAAiB,QAAVN,EAAC/F,EAAK6E,YAAI,IAAAkB,EAAAA,EAAI,CAAC,GAAGO,SAAQC,IAAuB,IAArBC,EAAMC,GAAUF,EACxD1B,EAAAA,KAAK6B,kBAAkBF,EAAMR,EAAmBS,EAAU,IAE5DpG,EAAaW,IAAIhB,EAAMgG,EACzB,CAEA,MAAO,CACL3F,eACAC,QAASA,KACP,IAAK,MAAOkG,EAAMG,KAAOb,EACvBjB,EAAAA,KAAK+B,qBAAqBJ,EAAMG,EAClC,EAGN,C","sources":["webpack:///./src/data-providers/get-menu-config-tree.ts","webpack:///./src/data-providers/shared/smartDisplayForMenuTitle.ts"],"sourcesContent":["import type { MetaI18n, MicroApp } from \"@next-core/types\";\nimport { createProviderClass } from \"@next-core/utils/general\";\nimport { sortBy } from \"lodash\";\nimport {\n initializeMenuI18n,\n smartDisplayForMenuTitle,\n} from \"./shared/smartDisplayForMenuTitle\";\n\nconst symbolMenuI18nNamespace = Symbol(\"menuI18nNamespace\");\nconst symbolOverrideApp = Symbol(\"overrideApp\");\n\n/** 原始菜单数据。 */\nexport interface MenuRawData {\n menuId: string;\n title: string;\n icon?: {\n imgSrc?: string;\n };\n type?: \"main\" | \"inject\";\n injectMenuGroupId?: string;\n dynamicItems?: boolean;\n itemsResolve?: unknown;\n items?: MenuItemRawData[];\n instanceId: string;\n app: [\n {\n appId: string;\n },\n ];\n i18n?: MetaI18n;\n overrideApp?: MicroApp;\n}\n\n/** 原始菜单项数据。 */\nexport type MenuItemRawData = {\n /** 菜单项文本。 */\n text: string;\n icon?: {\n imgSrc?: string;\n };\n sort?: number;\n groupId?: string;\n hidden?: boolean;\n children?: MenuItemRawData[];\n};\n\nexport interface TitleDataSource {\n objectId: string;\n instanceId: string;\n attributeId?: string;\n}\n\ninterface RuntimeMenuItemRawData extends MenuItemRawData {\n children?: RuntimeMenuItemRawData[];\n [symbolMenuI18nNamespace]?: string;\n [symbolOverrideApp]?: MicroApp;\n}\n\nexport interface TreeNode {\n key: string;\n title: string;\n icon?: unknown;\n faded?: unknown;\n children?: TreeNode[];\n data: MenuRawData | MenuItemRawData;\n /** 第一个节点额外返回 __keys,包含所有节点的 key */\n __keys?: string[];\n}\n\nconst DEFAULT_ICON = {\n lib: \"fa\",\n icon: \"bars\",\n};\n\n/**\n * 构造用于菜单自定义的树形结构数据。\n *\n * 将对菜单标题进行表达式解析,支持 I18N 和 APP。\n */\nexport async function getMenuConfigTree(\n menuList: MenuRawData[]\n): Promise<TreeNode[]> {\n const keys: string[] = [];\n\n function getChildren(\n items: RuntimeMenuItemRawData[] | undefined,\n prefixKey: string\n ): TreeNode[] | undefined {\n const children = items?.map<TreeNode>((item, j) => {\n const key = `${prefixKey}-${j}`;\n keys.push(key);\n return {\n key,\n title:\n smartDisplayForMenuTitle(\n item.text,\n item[symbolMenuI18nNamespace],\n item[symbolOverrideApp]\n ) ?? \"\",\n data: item,\n icon: getIcon(item.icon),\n faded: item.hidden,\n children: getChildren(item.children, key),\n };\n });\n return children?.length ? children : undefined;\n }\n\n const mainMenu = menuList.find((menu) => menu.type === \"main\");\n if (!mainMenu) {\n return [];\n }\n\n const validMenuList: MenuRawData[] = [];\n const injectWithMenus = new Map<string, MenuRawData[]>();\n const { menuWithI18n, dispose } = initializeMenuI18n(menuList);\n\n for (const menu of menuList) {\n if (!(menu.dynamicItems && menu.itemsResolve) && menu.items?.length) {\n if (menu.type === \"inject\" && menu.injectMenuGroupId) {\n let injectingMenus = injectWithMenus.get(menu.injectMenuGroupId);\n if (!injectingMenus) {\n injectingMenus = [];\n injectWithMenus.set(menu.injectMenuGroupId, injectingMenus);\n }\n injectingMenus.push(menu);\n } else {\n validMenuList.push(menu);\n }\n }\n }\n\n keys.push(\"0\");\n\n const firstLevelItems = reorderMenuItems(\n validMenuList.flatMap(\n (menu) =>\n // Here always have non-empty items\n processGroupInject(menu.items, menu, injectWithMenus, menuWithI18n)!\n )\n );\n\n const tree: TreeNode[] = [\n {\n key: \"0\",\n __keys: keys,\n title:\n smartDisplayForMenuTitle(\n mainMenu.title,\n menuWithI18n.get(mainMenu),\n mainMenu.overrideApp\n ) ?? mainMenu.menuId,\n data: mainMenu,\n icon: getIcon(mainMenu.icon),\n children: getChildren(firstLevelItems, \"0\"),\n },\n ];\n\n dispose();\n\n return tree;\n}\n\nfunction getIcon(icon: { imgSrc?: string } | undefined): unknown {\n // 使用图片图标时,该图标一般是表达式,是应用的运行时数据,菜单管理无法获取。\n if (icon?.imgSrc) {\n return DEFAULT_ICON;\n }\n return icon ?? DEFAULT_ICON;\n}\n\nfunction processGroupInject(\n items: MenuItemRawData[] | undefined,\n menu: MenuRawData,\n injectWithMenus: Map<string, MenuRawData[]>,\n menuWithI18n: WeakMap<MenuRawData, string>\n): RuntimeMenuItemRawData[] | undefined {\n return items?.map((item) => {\n const foundInjectingMenus =\n item.groupId && injectWithMenus.get(item.groupId);\n if (foundInjectingMenus) {\n // Each menu to be injected with should be injected only once.\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n injectWithMenus.delete(item.groupId!);\n }\n return {\n ...item,\n children: (\n processGroupInject(\n item.children,\n menu,\n injectWithMenus,\n menuWithI18n\n ) ?? ([] as RuntimeMenuItemRawData[])\n ).concat(\n foundInjectingMenus\n ? foundInjectingMenus.flatMap(\n (injectingMenu) =>\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n processGroupInject(\n injectingMenu.items,\n injectingMenu,\n injectWithMenus,\n menuWithI18n\n )!\n )\n : ([] as RuntimeMenuItemRawData[])\n ),\n [symbolOverrideApp]: menu.overrideApp,\n [symbolMenuI18nNamespace]: menuWithI18n.get(menu),\n };\n });\n}\n\nfunction reorderMenuItems(\n list: MenuItemRawData[] | undefined\n): MenuItemRawData[] {\n return sortMenuItems(list).map((item) => ({\n ...item,\n children: reorderMenuItems(item.children),\n }));\n}\n\nfunction sortMenuItems(list: MenuItemRawData[] | undefined): MenuItemRawData[] {\n return sortBy(list, (item) => item.sort ?? -Infinity, \"text\");\n}\n\ncustomElements.define(\n \"nav.get-menu-config-tree\",\n createProviderClass(getMenuConfigTree)\n);\n","import type { MicroApp } from \"@next-core/types\";\nimport { i18n } from \"@next-core/i18n\";\nimport { hasOwnProperty } from \"@next-core/utils/general\";\nimport {\n cook,\n isEvaluable,\n preevaluate,\n type PreevaluateResult,\n} from \"@next-core/cook\";\nimport { supply } from \"@next-core/supply\";\nimport {\n beforeVisitGlobalMember,\n type MemberUsageInExpressions,\n} from \"@next-core/utils/storyboard\";\nimport type { MenuRawData } from \"../get-menu-config-tree\";\n\nconst allowedAppProps = new Set([\"name\", \"id\", \"homepage\", \"localeName\"]);\n\n/**\n * 对菜单标题进行表达式解析,支持 I18N 和 APP。\n */\nexport function smartDisplayForMenuTitle(\n title: unknown,\n i18nNamespace: string | undefined,\n overrideApp: MicroApp | undefined\n): string | undefined {\n if (typeof title !== \"string\") {\n return;\n }\n if (isEvaluable(title)) {\n // A `SyntaxError` maybe thrown.\n let precooked: PreevaluateResult | undefined;\n const appUsage: MemberUsageInExpressions = {\n usedProperties: new Set(),\n hasNonStaticUsage: false,\n };\n try {\n precooked = preevaluate(title, {\n withParent: true,\n hooks: {\n beforeVisitGlobal: beforeVisitGlobalMember(appUsage, [\"APP\"]),\n },\n });\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error(`Parse menu title expression \"${title}\" failed:`, error);\n }\n\n if (\n precooked &&\n (!precooked.attemptToVisitGlobals.has(\"APP\") ||\n (overrideApp &&\n !appUsage.hasNonStaticUsage &&\n [...appUsage.usedProperties].every((prop) =>\n allowedAppProps.has(prop)\n )))\n ) {\n const globals: Record<string, unknown> = {};\n for (const key of precooked.attemptToVisitGlobals) {\n switch (key) {\n case \"I18N\":\n globals[key] = i18n.getFixedT(\n null,\n [i18nNamespace].filter(Boolean)\n );\n break;\n case \"APP\":\n globals[key] = {\n ...overrideApp,\n localeName: overrideApp?.name,\n };\n break;\n }\n }\n const suppliedGlobals = supply(precooked.attemptToVisitGlobals, globals);\n\n let computable = true;\n for (const key of precooked.attemptToVisitGlobals) {\n if (!hasOwnProperty(suppliedGlobals, key)) {\n computable = false;\n break;\n }\n }\n\n if (computable) {\n try {\n const result = cook(precooked.expression, precooked.source, {\n globalVariables: suppliedGlobals,\n });\n if (typeof result === \"string\") {\n return result;\n }\n // eslint-disable-next-line no-console\n console.error(\n `The result of menu title expression \"${title}\" is not a string:`,\n result\n );\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error(\n `Evaluate menu title expression \"${title}\" failed:`,\n error\n );\n }\n }\n }\n } else if (overrideApp) {\n // 处理简单的占位符替换: ${APP.name} 和 ${APP.localeName}\n return title.replace(\n /\\$\\{\\s*APP\\s*\\.\\s*(?:name|localeName)\\s*\\}/g,\n () => overrideApp.name\n );\n }\n return title;\n}\n\nexport function initializeMenuI18n(menuList: MenuRawData[]) {\n const menuWithI18n = new WeakMap<MenuRawData, string>();\n const menuI18nBundles: [lang: string, ns: string][] = [];\n\n for (const menu of menuList) {\n const menuI18nNamespace = `customize-menu/${menu.menuId}~${menu.app[0].appId}+${\n menu.instanceId\n }`;\n // Support any language in `menu.i18n`.\n Object.entries(menu.i18n ?? {}).forEach(([lang, resources]) => {\n i18n.addResourceBundle(lang, menuI18nNamespace, resources);\n });\n menuWithI18n.set(menu, menuI18nNamespace);\n }\n\n return {\n menuWithI18n,\n dispose: () => {\n for (const [lang, ns] of menuI18nBundles) {\n i18n.removeResourceBundle(lang, ns);\n }\n },\n };\n}\n"],"names":["symbolMenuI18nNamespace","Symbol","symbolOverrideApp","DEFAULT_ICON","lib","icon","async","getMenuConfigTree","menuList","_smartDisplayForMenuT2","keys","mainMenu","find","menu","type","validMenuList","injectWithMenus","Map","menuWithI18n","dispose","initializeMenuI18n","_menu$items","dynamicItems","itemsResolve","items","length","injectMenuGroupId","injectingMenus","get","set","push","firstLevelItems","reorderMenuItems","flatMap","processGroupInject","tree","key","__keys","title","smartDisplayForMenuTitle","overrideApp","menuId","data","getIcon","children","getChildren","prefixKey","map","item","j","_smartDisplayForMenuT","text","faded","hidden","undefined","imgSrc","_processGroupInject","foundInjectingMenus","groupId","delete","concat","injectingMenu","list","sortBy","_item$sort","sort","sortMenuItems","customElements","define","createProviderClass","allowedAppProps","Set","i18nNamespace","isEvaluable","precooked","appUsage","usedProperties","hasNonStaticUsage","preevaluate","withParent","hooks","beforeVisitGlobal","beforeVisitGlobalMember","error","console","attemptToVisitGlobals","has","every","prop","globals","i18n","getFixedT","filter","Boolean","localeName","name","suppliedGlobals","supply","computable","hasOwnProperty","result","cook","expression","source","globalVariables","replace","WeakMap","menuI18nBundles","_menu$i18n","menuI18nNamespace","app","appId","instanceId","Object","entries","forEach","_ref","lang","resources","addResourceBundle","ns","removeResourceBundle"],"sourceRoot":""}
@@ -0,0 +1,3 @@
1
+ /*! For license information please see launchpad-config.2707249a.js.LICENSE.txt */
2
+ (globalThis.webpackChunk_next_bricks_nav=globalThis.webpackChunk_next_bricks_nav||[]).push([[1369,2052,4344],{9248:(e,t,n)=>{"use strict";n.d(t,{r:()=>p});var r=n(9575),i=n(8769),a=n.n(i),o=n(1030),l=n(3373),c=n.n(l),s=n(6201),u=n(10),m=n(6659);function p(e){let{data:t,actions:n,variant:r,urlTemplate:o,customUrlTemplate:l,onActionClick:m}=e;const{name:p,items:h}=t,[g,v]=(0,i.useState)(!1),b=(0,i.useMemo)((()=>null==n?void 0:n.filter((e=>(0,s.checkIfByTransform)(e,{type:"group"})))),[n]),y=(0,i.useCallback)((e=>{null==m||m({data:t,action:e.detail})}),[t,m]);return a().createElement("li",{className:c()("menu-group",{empty:0===h.length})},a().createElement("div",{className:"menu-group-label-wrapper"},a().createElement("span",{className:"menu-group-label"},p),"menu-config"!==r&&a().createElement(u.qb,{actions:b,onVisibleChange:e=>{v(e.detail)},onActionClick:y},a().createElement(u.Bj,{lib:"fa",icon:"gear",className:c()("menu-config",{active:g})}))),a().createElement("ul",{className:"menu"},h.map((e=>"dir"===e.type?a().createElement(f,{key:e.instanceId,data:e,actions:n,variant:r,urlTemplate:o,customUrlTemplate:l,onActionClick:m}):a().createElement(d,{key:`${e.type}-${e.id}`,data:e,actions:n,variant:r,urlTemplate:o,customUrlTemplate:l,onActionClick:m})))))}function d(e){var t;let{data:n,actions:l,variant:p,urlTemplate:d,customUrlTemplate:f,onActionClick:g}=e;const v=(0,i.useMemo)((()=>"app"===n.type?(0,m.F)(n.locales,n.name):n.name),[n]),[b,y]=(0,i.useState)(!1),A=(0,i.useMemo)((()=>null==l?void 0:l.filter((e=>(0,s.checkIfByTransform)(e,n)))),[l,n]),k=(0,i.useCallback)((e=>{null==g||g({data:n,action:e.detail})}),[n,g]);let w=!1,x="";if("menu-config"===p)if("app"===n.type)x=h(d,n,"");else{const e=new URL(n.url,location.origin);w=e.origin!==location.origin,x=w?"":h(f,{...n,__pathname:e.pathname},"")}return a().createElement("li",{className:c()("menu-item",{disabled:w})},a().createElement(u.EM,{tooltip:w?"该菜单项为外链,不支持配置":"",url:x},a().createElement(u.Bj,(0,r.A)({className:"menu-icon",lib:"easyops",icon:"micro-app-center"},null!==(t=n.menuIcon)&&void 0!==t&&t.lib&&n.menuIcon.icon?(0,o.pick)(n.menuIcon,["lib","icon","theme","category","prefix"]):null)),a().createElement("span",{className:"menu-item-label"},v)),"menu-config"!==p&&a().createElement(u.qb,{actions:A,onVisibleChange:e=>{y(e.detail)},onActionClick:k},a().createElement(u.Bj,{lib:"fa",icon:"gear",className:c()("menu-config",{active:b})})))}function f(e){let{data:t,actions:n,variant:r,urlTemplate:o,customUrlTemplate:l,onActionClick:m}=e;const{name:p,items:f}=t,[h,g]=(0,i.useState)(!1),[v,b]=(0,i.useState)(!1),y=(0,i.useMemo)((()=>null==n?void 0:n.filter((e=>(0,s.checkIfByTransform)(e,{type:"dir"})))),[n]),A=(0,i.useCallback)((()=>{b((e=>!e))}),[]),k=(0,i.useCallback)((e=>{null==m||m({data:t,action:e.detail})}),[t,m]);return a().createElement("li",{className:c()("menu-item folder",{empty:0===f.length})},a().createElement("div",{className:"menu-folder-label-wrapper"},a().createElement(u.EM,{onClick:A},a().createElement(u.Bj,{lib:"fa",prefix:"far",icon:"folder-open",className:"menu-icon"}),a().createElement("span",{className:"menu-item-label"},p),a().createElement(u.Bj,{lib:"antd",icon:v?"up":"down",className:"menu-item-toggle"})),"menu-config"!==r&&a().createElement(u.qb,{actions:y,onVisibleChange:e=>{g(e.detail)},onActionClick:k},a().createElement(u.Bj,{lib:"fa",icon:"gear",className:c()("menu-config",{active:h})}))),a().createElement("ul",{className:c()("sub-menu",{expanded:v})},f.map((e=>a().createElement(d,{key:e.instanceId,data:e,actions:n,variant:r,urlTemplate:o,customUrlTemplate:l,onActionClick:m})))))}function h(e,t,n){var r;return null!==(r=null==e?void 0:e.replace(/{{(.*?)}}/g,((e,n)=>encodeURIComponent(String((0,o.get)(t,n.trim()))))))&&void 0!==r?r:n}},5658:(e,t,n)=>{"use strict";n.r(t),n.d(t,{LaunchpadConfig:()=>P,LaunchpadConfigComponent:()=>F});var r,i=n(4635),a=n(918),o=n(6902),l=n(5536),c=n(6121),s=n(829),u=n(2740),m=n(8769),p=n.n(m),d=n(1123),f=n(9006),h=(n(6477),n(9248)),g=n(4081);let v,b,y,A,k,w,x,E,T,C,j,S,N,U,M;const{defineElement:O,property:B,event:I}=(0,d.createDecorators)();let P;var W=new WeakMap,_=new WeakMap,z=new WeakMap,G=new WeakMap,q=new WeakMap,R=new WeakMap,V=new WeakSet,D=new WeakMap;class L extends f.ReactNextElement{constructor(){super(...arguments),(0,i.A)(this,V),(0,a.A)(this,W,b(this)),(0,a.A)(this,_,(y(this),A(this))),(0,a.A)(this,z,(k(this),w(this))),(0,a.A)(this,G,(x(this),E(this))),(0,a.A)(this,q,(T(this),C(this))),(0,a.A)(this,R,(j(this),S(this))),(0,a.A)(this,D,(M(this),e=>{(0,l.A)(V,this,N).emit(e)}))}get menuGroups(){return(0,s.A)(W,this)}set menuGroups(e){(0,c.A)(W,this,e)}get actions(){return(0,s.A)(_,this)}set actions(e){(0,c.A)(_,this,e)}get variant(){return(0,s.A)(z,this)}set variant(e){(0,c.A)(z,this,e)}get urlTemplate(){return(0,s.A)(G,this)}set urlTemplate(e){(0,c.A)(G,this,e)}get customUrlTemplate(){return(0,s.A)(q,this)}set customUrlTemplate(e){(0,c.A)(q,this,e)}render(){return p().createElement(F,{menuGroups:this.menuGroups,actions:this.actions,variant:this.variant,urlTemplate:this.urlTemplate,customUrlTemplate:this.customUrlTemplate,onActionClick:(0,s.A)(D,this)})}}function F(e){let{menuGroups:t,actions:n,variant:r,urlTemplate:i,customUrlTemplate:a,onActionClick:o}=e;return p().createElement("ul",{className:"menu-groups"},null==t?void 0:t.map((e=>p().createElement(h.r,{key:e.instanceId,data:e,actions:n,variant:r,urlTemplate:i,customUrlTemplate:a,onActionClick:o}))))}r=L,({e:[b,y,A,k,w,x,E,T,C,j,S,N,U,M],c:[P,v]}=(0,u.A)(r,[O("nav.launchpad-config",{styleTexts:[g.A]})],[[B({attribute:!1}),1,"menuGroups"],[B({attribute:!1}),1,"actions"],[B(),1,"variant"],[B(),1,"urlTemplate"],[B(),1,"customUrlTemplate"],[I({type:"action.click"}),1,"actionClickEvent",e=>(0,s.A)(R,e),(e,t)=>(0,c.A)(R,e,t)]],0,(e=>D.has((0,o.A)(e))),f.ReactNextElement)),v()},10:(e,t,n)=>{"use strict";n.d(t,{Bj:()=>a,EM:()=>o,qb:()=>l});var r=n(9006),i=n(2729);const a=(0,r.wrapBrick)("eo-icon"),o=(0,r.wrapBrick)("eo-link"),l=(0,r.wrapBrick)("eo-dropdown-actions",{onActionClick:"action.click",onVisibleChange:"visible.change"});(0,i.unwrapProvider)("basic.show-dialog")},6659:(e,t,n)=>{"use strict";n.d(t,{F:()=>i});var r=n(3324);function i(e,t){var n;if(!e)return t;const i=Object.fromEntries(Object.entries(e).filter((e=>{let[t,n]=e;return n.name})).map((e=>{let[t,n]=e;return[t,n.name]})));return null!==(n=(0,r.i18nText)(i))&&void 0!==n?n:t}},4081:(e,t,n)=>{"use strict";n.d(t,{A:()=>l});var r=n(6758),i=n.n(r),a=n(935),o=n.n(a)()(i());o.push([e.id,":host{display:block;--local-menu-icon-color:#8c8c8c}:host([hidden]){display:none;--local-menu-icon-color:rgba(255,255,255,0.45)}ul{list-style:none;margin:0;padding:0}.menu-groups{display:grid;gap:32px 16px;grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}.menu,\n.sub-menu{display:flex;flex-direction:column;gap:14px}.menu-folder-label-wrapper > eo-link,\n.menu-item > eo-link{display:block}.menu-folder-label-wrapper > eo-link::part(link),\n.menu-item > eo-link::part(link){height:20px;display:flex;align-items:center;gap:8px;color:var(--color-header-text)}.menu-group-label-wrapper,\n.menu-folder-label-wrapper,\n.menu-item:not(.folder){display:flex;gap:8px;align-items:center}.menu-group-label-wrapper{gap:3px}.menu-group:not(.empty) .menu-group-label-wrapper{margin-bottom:14px}.menu-group-label,\n.menu-item-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.menu-group-label{font-size:var(--card-title-font-size);font-weight:500;color:var(--color-header-text)}.menu-icon{color:var(--local-menu-icon-color)}.menu-item.disabled > eo-link::part(link),\n.menu-item.disabled .menu-icon{color:var(--color-disabled-text)}.menu-folder-label-wrapper > eo-link,\n.menu-item > eo-link{max-width:100%;width:-moz-fit-content;width:fit-content;min-width:0}.sub-menu:not(.expanded){display:none}.sub-menu{margin-left:8px;border-left:1px solid var(--color-text-divider-line);padding-left:15px}.menu-item:not(.empty) .sub-menu{margin-top:14px}.menu-item-toggle{color:var(--color-secondary-text)}.menu-config{visibility:hidden;color:var(--color-brand);cursor:pointer;display:flex;justify-content:center;align-items:center;height:24px;width:0}.menu-config.active,\n.menu-group-label-wrapper:hover .menu-config,\n.menu-item:not(.folder):not(.disabled):hover .menu-config,\n.menu-folder-label-wrapper:hover .menu-config{visibility:visible;width:24px}.menu-config:hover,\n.menu-item:not(.disabled) > eo-link:hover::part(link),\n.menu-item:not(.disabled) > eo-link:hover .menu-icon,\n.menu-folder-label-wrapper > eo-link:hover::part(link),\n.menu-folder-label-wrapper > eo-link:hover .menu-icon,\n.menu-folder-label-wrapper > eo-link:hover .menu-item-toggle{color:var(--color-brand-hover)}@supports not (inset: 0){.sub-menu,\n .menu,\n .menu-group-label-wrapper,\n .menu-folder-label-wrapper,\n .menu-item:not(.folder),\n .menu-item > eo-link::part(link){gap:0}.menu > :not(:first-child),\n .sub-menu > :not(:first-child){margin-top:14px}.menu-icon{margin-right:8px}eo-dropdown-actions,\n .menu-item-toggle{margin-left:8px}}",""]);const l=o.toString()},935:e=>{"use strict";e.exports=function(e){var t=[];return t.toString=function(){return this.map((function(t){var n="",r=void 0!==t[5];return t[4]&&(n+="@supports (".concat(t[4],") {")),t[2]&&(n+="@media ".concat(t[2]," {")),r&&(n+="@layer".concat(t[5].length>0?" ".concat(t[5]):""," {")),n+=e(t),r&&(n+="}"),t[2]&&(n+="}"),t[4]&&(n+="}"),n})).join("")},t.i=function(e,n,r,i,a){"string"==typeof e&&(e=[[null,e,void 0]]);var o={};if(r)for(var l=0;l<this.length;l++){var c=this[l][0];null!=c&&(o[c]=!0)}for(var s=0;s<e.length;s++){var u=[].concat(e[s]);r&&o[u[0]]||(void 0!==a&&(void 0===u[5]||(u[1]="@layer".concat(u[5].length>0?" ".concat(u[5]):""," {").concat(u[1],"}")),u[5]=a),n&&(u[2]?(u[1]="@media ".concat(u[2]," {").concat(u[1],"}"),u[2]=n):u[2]=n),i&&(u[4]?(u[1]="@supports (".concat(u[4],") {").concat(u[1],"}"),u[4]=i):u[4]="".concat(i)),t.push(u))}},t}},6758:e=>{"use strict";e.exports=function(e){return e[1]}},3373:(e,t)=>{var n;!function(){"use strict";var r={}.hasOwnProperty;function i(){for(var e="",t=0;t<arguments.length;t++){var n=arguments[t];n&&(e=o(e,a(n)))}return e}function a(e){if("string"==typeof e||"number"==typeof e)return e;if("object"!=typeof e)return"";if(Array.isArray(e))return i.apply(null,e);if(e.toString!==Object.prototype.toString&&!e.toString.toString().includes("[native code]"))return e.toString();var t="";for(var n in e)r.call(e,n)&&e[n]&&(t=o(t,n));return t}function o(e,t){return t?e?e+" "+t:e+t:e}e.exports?(i.default=i,e.exports=i):void 0===(n=function(){return i}.apply(t,[]))||(e.exports=n)}()},2740:(e,t,n)=>{"use strict";n.d(t,{A:()=>l});var r=n(7545),i=n(6902);function a(e,t,n){"symbol"==(0,r.A)(t)&&(t=(t=t.description)?"["+t+"]":"");try{Object.defineProperty(e,"name",{configurable:!0,value:n?n+" "+t:t})}catch(e){}return e}var o=n(1369);function l(e,t,n,l,c,s){var u,m,p,d,f,h,g,v=Symbol.metadata||Symbol.for("Symbol.metadata"),b=Object.defineProperty,y=Object.create,A=[y(null),y(null)],k=t.length;function w(t,n,r){return function(i,a){n&&(a=i,i=e);for(var o=0;o<t.length;o++)a=t[o].apply(i,r?[a]:[]);return r?a:i}}function x(e,t,n,r){if("function"!=typeof e&&(r||void 0!==e))throw new TypeError(t+" must "+(n||"be")+" a function"+(r?"":" or undefined"));return e}function E(e,t,n,i,o,l,c,s,p,d,f){function h(e){if(!f(e))throw new TypeError("Attempted to access private element on non-instance")}var g=[].concat(t[0]),v=t[3],y=!c,k=1===o,E=3===o,T=4===o,C=2===o;function j(t,n,r){return function(i,a){return n&&(a=i,i=e),r&&r(i),S[t].call(i,a)}}if(!y){var S={},N=[],U=E?"get":T||k?"set":"value";if(p?(d||k?S={get:a((function(){return v(this)}),i,"get"),set:function(e){t[4](this,e)}}:S[U]=v,d||a(S[U],i,C?"":U)):d||(S=Object.getOwnPropertyDescriptor(e,i)),!d&&!p){if((m=A[+s][i])&&7!=(m^o))throw Error("Decorating two elements with the same name ("+S[U].name+") is not supported yet");A[+s][i]=o<3?1:o}}for(var M=e,O=g.length-1;O>=0;O-=n?2:1){var B=x(g[O],"A decorator","be",!0),I=n?g[O-1]:void 0,P={},W={kind:["field","accessor","method","getter","setter","class"][o],name:i,metadata:u,addInitializer:function(e,t){if(e.v)throw Error("attempted to call addInitializer after decoration was finished");x(t,"An initializer","be",!0),l.push(t)}.bind(null,P)};if(y)m=B.call(I,M,W),P.v=1,x(m,"class decorators","return")&&(M=m);else if(W.static=s,W.private=p,m=W.access={has:p?f.bind():function(e){return i in e}},T||(m.get=p?C?function(e){return h(e),S.value}:j("get",0,h):function(e){return e[i]}),C||E||(m.set=p?j("set",0,h):function(e,t){e[i]=t}),M=B.call(I,k?{get:S.get,set:S.set}:S[U],W),P.v=1,k){if("object"==(0,r.A)(M)&&M)(m=x(M.get,"accessor.get"))&&(S.get=m),(m=x(M.set,"accessor.set"))&&(S.set=m),(m=x(M.init,"accessor.init"))&&N.unshift(m);else if(void 0!==M)throw new TypeError("accessor decorators must return an object with get, set, or init properties or undefined")}else x(M,(d?"field":"method")+" decorators","return")&&(d?N.unshift(M):S[U]=M)}return o<2&&c.push(w(N,s,1),w(l,s,0)),d||y||(p?k?c.splice(-1,0,j("get",s),j("set",s)):c.push(C?S[U]:x.call.bind(S[U])):b(e,i,S)),M}function T(e){return b(e,v,{configurable:!0,enumerable:!0,value:u})}return void 0!==s&&(u=s[v]),u=y(null==u?null:u),f=[],h=function(e){e&&f.push(w(e))},g=function(t,r){for(var a=0;a<n.length;a++){var l=n[a],s=l[1],u=7&s;if((8&s)==t&&!u==r){var m=l[2],h=!!l[3],g=16&s;E(t?e:e.prototype,l,g,h?"#"+m:(0,o.A)(m),u,u<2?[]:t?d=d||[]:p=p||[],f,!!t,h,r,t&&h?function(t){return(0,i.A)(t)===e}:c)}}},g(8,0),g(0,0),g(8,1),g(0,1),h(p),h(d),m=f,k||T(e),{e:m,get c(){var n=[];return k&&[T(e=E(e,[t],l,e.name,5,n)),w(n,1)]}}}},2559:(e,t,n)=>{"use strict";function r(e,t,n){if("function"==typeof e?e===t:e.has(t))return arguments.length<3?t:n;throw new TypeError("Private element is not present on this object")}n.d(t,{A:()=>r})},6902:(e,t,n)=>{"use strict";n.d(t,{A:()=>i});var r=n(7545);function i(e){if(Object(e)!==e)throw TypeError("right-hand side of 'in' should be an object, got "+(null!==e?(0,r.A)(e):"null"));return e}},2016:(e,t,n)=>{"use strict";function r(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}n.d(t,{A:()=>r})},829:(e,t,n)=>{"use strict";n.d(t,{A:()=>i});var r=n(2559);function i(e,t){return e.get((0,r.A)(e,t))}},918:(e,t,n)=>{"use strict";n.d(t,{A:()=>i});var r=n(2016);function i(e,t,n){(0,r.A)(e,t),t.set(e,n)}},6121:(e,t,n)=>{"use strict";n.d(t,{A:()=>i});var r=n(2559);function i(e,t,n){return e.set((0,r.A)(e,t),n),n}},5536:(e,t,n)=>{"use strict";n.d(t,{A:()=>i});var r=n(2559);function i(e,t,n){return n((0,r.A)(e,t))}},4635:(e,t,n)=>{"use strict";n.d(t,{A:()=>i});var r=n(2016);function i(e,t){(0,r.A)(e,t),t.add(e)}},9575:(e,t,n)=>{"use strict";function r(){return r=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},r.apply(this,arguments)}n.d(t,{A:()=>r})},1369:(e,t,n)=>{"use strict";n.d(t,{A:()=>i});var r=n(7545);function i(e){var t=function(e,t){if("object"!=(0,r.A)(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var i=n.call(e,"string");if("object"!=(0,r.A)(i))return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==(0,r.A)(t)?t:t+""}},7545:(e,t,n)=>{"use strict";function r(e){return r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r(e)}n.d(t,{A:()=>r})}}]);
3
+ //# sourceMappingURL=launchpad-config.2707249a.js.map