@next-bricks/nav 1.17.2 → 1.17.4

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 (146) hide show
  1. package/dist/bricks.json +12 -12
  2. package/dist/chunks/1045.2be35f04.js +2 -0
  3. package/dist/chunks/1045.2be35f04.js.map +1 -0
  4. package/dist/chunks/114.59938342.js +2 -0
  5. package/dist/chunks/{114.05400951.js.map → 114.59938342.js.map} +1 -1
  6. package/dist/chunks/{1477.eacfe479.js → 1477.ecc02980.js} +2 -2
  7. package/dist/chunks/{1477.eacfe479.js.map → 1477.ecc02980.js.map} +1 -1
  8. package/dist/chunks/{1491.5bd4248e.js → 1491.97db62dc.js} +3 -3
  9. package/dist/chunks/{1491.5bd4248e.js.map → 1491.97db62dc.js.map} +1 -1
  10. package/dist/chunks/{1940.c77fc820.js → 1940.92801c99.js} +2 -2
  11. package/dist/chunks/{1940.c77fc820.js.map → 1940.92801c99.js.map} +1 -1
  12. package/dist/chunks/{2133.d6ec3359.js → 2133.b61baf6d.js} +2 -2
  13. package/dist/chunks/{2133.d6ec3359.js.map → 2133.b61baf6d.js.map} +1 -1
  14. package/dist/chunks/{2252.208774a8.js → 2252.c6384bfa.js} +3 -3
  15. package/dist/chunks/{2252.208774a8.js.map → 2252.c6384bfa.js.map} +1 -1
  16. package/dist/chunks/{2277.d774e4c4.js → 2277.cca7bfbb.js} +2 -2
  17. package/dist/chunks/{4658.226b7328.js.map → 2277.cca7bfbb.js.map} +1 -1
  18. package/dist/chunks/{3171.bf134c77.js → 3171.341af692.js} +2 -2
  19. package/dist/chunks/{3171.bf134c77.js.map → 3171.341af692.js.map} +1 -1
  20. package/dist/chunks/3933.5beff826.js +2 -0
  21. package/dist/chunks/{6314.72a8afba.js.map → 3933.5beff826.js.map} +1 -1
  22. package/dist/chunks/{4658.226b7328.js → 4658.ec53b5a3.js} +2 -2
  23. package/dist/chunks/{2277.d774e4c4.js.map → 4658.ec53b5a3.js.map} +1 -1
  24. package/dist/chunks/{4837.f51d340b.js → 4837.3de45a75.js} +2 -2
  25. package/dist/chunks/{4837.f51d340b.js.map → 4837.3de45a75.js.map} +1 -1
  26. package/dist/chunks/{5552.a395e3e7.js → 5552.c19bf135.js} +2 -2
  27. package/dist/chunks/{5552.a395e3e7.js.map → 5552.c19bf135.js.map} +1 -1
  28. package/dist/chunks/6314.72f5466c.js +2 -0
  29. package/dist/chunks/{3933.a7d045ca.js.map → 6314.72f5466c.js.map} +1 -1
  30. package/dist/chunks/{6595.6d0368b4.js → 6595.a094555b.js} +2 -2
  31. package/dist/chunks/{6595.6d0368b4.js.map → 6595.a094555b.js.map} +1 -1
  32. package/dist/chunks/{7218.c7dcfb02.js → 7218.54273ee5.js} +2 -2
  33. package/dist/chunks/{7218.c7dcfb02.js.map → 7218.54273ee5.js.map} +1 -1
  34. package/dist/chunks/7733.62bea996.js +2 -0
  35. package/dist/chunks/{7733.c358be3a.js.map → 7733.62bea996.js.map} +1 -1
  36. package/dist/chunks/{8097.d19b8f60.js → 8097.5abb0469.js} +2 -2
  37. package/dist/chunks/{8097.d19b8f60.js.map → 8097.5abb0469.js.map} +1 -1
  38. package/dist/chunks/{8518.ac8f53a7.js → 8518.e5f62114.js} +2 -2
  39. package/dist/chunks/8518.e5f62114.js.map +1 -0
  40. package/dist/chunks/{9149.f26f74bb.js → 9149.1577ab1e.js} +2 -2
  41. package/dist/chunks/{9149.f26f74bb.js.map → 9149.1577ab1e.js.map} +1 -1
  42. package/dist/chunks/{9515.9c362d1f.js → 9515.df23b98d.js} +2 -2
  43. package/dist/chunks/{9515.9c362d1f.js.map → 9515.df23b98d.js.map} +1 -1
  44. package/dist/chunks/{9559.3956978c.js → 9559.98506a68.js} +2 -2
  45. package/dist/chunks/{9559.3956978c.js.map → 9559.98506a68.js.map} +1 -1
  46. package/dist/chunks/easyops-navbar-alerts.c7394ca5.js +2 -0
  47. package/dist/chunks/{easyops-navbar-alerts.59e43685.js.map → easyops-navbar-alerts.c7394ca5.js.map} +1 -1
  48. package/dist/chunks/eo-app-bar-wrapper.925d35a8.js +3 -0
  49. package/dist/chunks/{eo-app-bar-wrapper.b367af8d.js.map → eo-app-bar-wrapper.925d35a8.js.map} +1 -1
  50. package/dist/chunks/eo-directory-tree-internal-node.79084f52.js +2 -0
  51. package/dist/chunks/{eo-directory-tree-internal-node.9b27dad7.js.map → eo-directory-tree-internal-node.79084f52.js.map} +1 -1
  52. package/dist/chunks/eo-directory-tree-leaf.d355268c.js +2 -0
  53. package/dist/chunks/{eo-directory-tree-leaf.bfd0aeb0.js.map → eo-directory-tree-leaf.d355268c.js.map} +1 -1
  54. package/dist/chunks/eo-directory-tree.8fe2c82b.js +3 -0
  55. package/dist/chunks/{eo-directory-tree.6c753652.js.map → eo-directory-tree.8fe2c82b.js.map} +1 -1
  56. package/dist/chunks/eo-directory.9ccef6ae.js +3 -0
  57. package/dist/chunks/{eo-directory.981564a4.js.map → eo-directory.9ccef6ae.js.map} +1 -1
  58. package/dist/chunks/eo-frame-breadcrumb.84094125.js +2 -0
  59. package/dist/chunks/{eo-frame-breadcrumb.43f2d2ef.js.map → eo-frame-breadcrumb.84094125.js.map} +1 -1
  60. package/dist/chunks/{eo-launchpad-button-v2.741943e0.js → eo-launchpad-button-v2.8514695c.js} +3 -3
  61. package/dist/chunks/{eo-launchpad-button-v2.741943e0.js.map → eo-launchpad-button-v2.8514695c.js.map} +1 -1
  62. package/dist/chunks/eo-launchpad-button.f3c77a56.js +3 -0
  63. package/dist/chunks/{eo-launchpad-button.f1433197.js.map → eo-launchpad-button.f3c77a56.js.map} +1 -1
  64. package/dist/chunks/eo-launchpad-quick-access.99e2399c.js +3 -0
  65. package/dist/chunks/{eo-launchpad-quick-access.d53425f7.js.map → eo-launchpad-quick-access.99e2399c.js.map} +1 -1
  66. package/dist/chunks/eo-launchpad-recent-visits.c071c457.js +3 -0
  67. package/dist/chunks/{eo-launchpad-recent-visits.bea0828f.js.map → eo-launchpad-recent-visits.c071c457.js.map} +1 -1
  68. package/dist/chunks/eo-nav-menu.fcd39b48.js +2 -0
  69. package/dist/chunks/{eo-nav-menu.2c67b500.js.map → eo-nav-menu.fcd39b48.js.map} +1 -1
  70. package/dist/chunks/eo-search-launchpad.9381d449.js +2 -0
  71. package/dist/chunks/{eo-search-launchpad.1f32d980.js.map → eo-search-launchpad.9381d449.js.map} +1 -1
  72. package/dist/chunks/eo-sidebar-menu-group.6cfc80fa.js +3 -0
  73. package/dist/chunks/{eo-sidebar-menu-group.bf48e0b6.js.map → eo-sidebar-menu-group.6cfc80fa.js.map} +1 -1
  74. package/dist/chunks/eo-sidebar-menu-item.b6480a0b.js +2 -0
  75. package/dist/chunks/{eo-sidebar-menu-item.281131dc.js.map → eo-sidebar-menu-item.b6480a0b.js.map} +1 -1
  76. package/dist/chunks/eo-sidebar-menu-submenu.d049eded.js +3 -0
  77. package/dist/chunks/{eo-sidebar-menu-submenu.a5a7b759.js.map → eo-sidebar-menu-submenu.d049eded.js.map} +1 -1
  78. package/dist/chunks/eo-sidebar-menu.dd865a26.js +2 -0
  79. package/dist/chunks/{eo-sidebar-menu.823ac225.js.map → eo-sidebar-menu.dd865a26.js.map} +1 -1
  80. package/dist/chunks/eo-sidebar-sub-menu.dbeaffcf.js +3 -0
  81. package/dist/chunks/eo-sidebar-sub-menu.dbeaffcf.js.map +1 -0
  82. package/dist/chunks/eo-sidebar.8cf721fe.js +3 -0
  83. package/dist/chunks/eo-sidebar.8cf721fe.js.map +1 -0
  84. package/dist/chunks/get-menu-config-tree.97e0ed20.js +2 -0
  85. package/dist/chunks/{get-menu-config-tree.b334456f.js.map → get-menu-config-tree.97e0ed20.js.map} +1 -1
  86. package/dist/chunks/{launchpad-config.e132d755.js → launchpad-config.39e1639c.js} +3 -3
  87. package/dist/chunks/{launchpad-config.e132d755.js.map → launchpad-config.39e1639c.js.map} +1 -1
  88. package/dist/chunks/main.05e76cec.js +2 -0
  89. package/dist/chunks/{main.432590a6.js.map → main.05e76cec.js.map} +1 -1
  90. package/dist/chunks/nav-logo.098d84c2.js +2 -0
  91. package/dist/chunks/{nav-logo.69ab541c.js.map → nav-logo.098d84c2.js.map} +1 -1
  92. package/dist/chunks/{poll-announce.4f643769.js → poll-announce.398b6790.js} +3 -3
  93. package/dist/chunks/{poll-announce.4f643769.js.map → poll-announce.398b6790.js.map} +1 -1
  94. package/dist/examples.json +3 -3
  95. package/dist/index.4c9a5094.js +2 -0
  96. package/dist/index.4c9a5094.js.map +1 -0
  97. package/dist/manifest.json +27 -27
  98. package/dist/types.json +16 -16
  99. package/package.json +3 -3
  100. package/dist/chunks/1045.28eda4d4.js +0 -2
  101. package/dist/chunks/1045.28eda4d4.js.map +0 -1
  102. package/dist/chunks/114.05400951.js +0 -2
  103. package/dist/chunks/3933.a7d045ca.js +0 -2
  104. package/dist/chunks/6314.72a8afba.js +0 -2
  105. package/dist/chunks/7733.c358be3a.js +0 -2
  106. package/dist/chunks/8518.ac8f53a7.js.map +0 -1
  107. package/dist/chunks/easyops-navbar-alerts.59e43685.js +0 -2
  108. package/dist/chunks/eo-app-bar-wrapper.b367af8d.js +0 -3
  109. package/dist/chunks/eo-directory-tree-internal-node.9b27dad7.js +0 -2
  110. package/dist/chunks/eo-directory-tree-leaf.bfd0aeb0.js +0 -2
  111. package/dist/chunks/eo-directory-tree.6c753652.js +0 -3
  112. package/dist/chunks/eo-directory.981564a4.js +0 -3
  113. package/dist/chunks/eo-frame-breadcrumb.43f2d2ef.js +0 -2
  114. package/dist/chunks/eo-launchpad-button.f1433197.js +0 -3
  115. package/dist/chunks/eo-launchpad-quick-access.d53425f7.js +0 -3
  116. package/dist/chunks/eo-launchpad-recent-visits.bea0828f.js +0 -3
  117. package/dist/chunks/eo-nav-menu.2c67b500.js +0 -2
  118. package/dist/chunks/eo-search-launchpad.1f32d980.js +0 -2
  119. package/dist/chunks/eo-sidebar-menu-group.bf48e0b6.js +0 -3
  120. package/dist/chunks/eo-sidebar-menu-item.281131dc.js +0 -2
  121. package/dist/chunks/eo-sidebar-menu-submenu.a5a7b759.js +0 -3
  122. package/dist/chunks/eo-sidebar-menu.823ac225.js +0 -2
  123. package/dist/chunks/eo-sidebar-sub-menu.b40e39af.js +0 -3
  124. package/dist/chunks/eo-sidebar-sub-menu.b40e39af.js.map +0 -1
  125. package/dist/chunks/eo-sidebar.facc5198.js +0 -3
  126. package/dist/chunks/eo-sidebar.facc5198.js.map +0 -1
  127. package/dist/chunks/get-menu-config-tree.b334456f.js +0 -2
  128. package/dist/chunks/main.432590a6.js +0 -2
  129. package/dist/chunks/nav-logo.69ab541c.js +0 -2
  130. package/dist/index.a809483d.js +0 -2
  131. package/dist/index.a809483d.js.map +0 -1
  132. /package/dist/chunks/{1491.5bd4248e.js.LICENSE.txt → 1491.97db62dc.js.LICENSE.txt} +0 -0
  133. /package/dist/chunks/{2252.208774a8.js.LICENSE.txt → 2252.c6384bfa.js.LICENSE.txt} +0 -0
  134. /package/dist/chunks/{eo-app-bar-wrapper.b367af8d.js.LICENSE.txt → eo-app-bar-wrapper.925d35a8.js.LICENSE.txt} +0 -0
  135. /package/dist/chunks/{eo-directory-tree.6c753652.js.LICENSE.txt → eo-directory-tree.8fe2c82b.js.LICENSE.txt} +0 -0
  136. /package/dist/chunks/{eo-directory.981564a4.js.LICENSE.txt → eo-directory.9ccef6ae.js.LICENSE.txt} +0 -0
  137. /package/dist/chunks/{eo-launchpad-button-v2.741943e0.js.LICENSE.txt → eo-launchpad-button-v2.8514695c.js.LICENSE.txt} +0 -0
  138. /package/dist/chunks/{eo-launchpad-button.f1433197.js.LICENSE.txt → eo-launchpad-button.f3c77a56.js.LICENSE.txt} +0 -0
  139. /package/dist/chunks/{eo-launchpad-quick-access.d53425f7.js.LICENSE.txt → eo-launchpad-quick-access.99e2399c.js.LICENSE.txt} +0 -0
  140. /package/dist/chunks/{eo-launchpad-recent-visits.bea0828f.js.LICENSE.txt → eo-launchpad-recent-visits.c071c457.js.LICENSE.txt} +0 -0
  141. /package/dist/chunks/{eo-sidebar-menu-group.bf48e0b6.js.LICENSE.txt → eo-sidebar-menu-group.6cfc80fa.js.LICENSE.txt} +0 -0
  142. /package/dist/chunks/{eo-sidebar-menu-submenu.a5a7b759.js.LICENSE.txt → eo-sidebar-menu-submenu.d049eded.js.LICENSE.txt} +0 -0
  143. /package/dist/chunks/{eo-sidebar-sub-menu.b40e39af.js.LICENSE.txt → eo-sidebar-sub-menu.dbeaffcf.js.LICENSE.txt} +0 -0
  144. /package/dist/chunks/{eo-sidebar.facc5198.js.LICENSE.txt → eo-sidebar.8cf721fe.js.LICENSE.txt} +0 -0
  145. /package/dist/chunks/{launchpad-config.e132d755.js.LICENSE.txt → launchpad-config.39e1639c.js.LICENSE.txt} +0 -0
  146. /package/dist/chunks/{poll-announce.4f643769.js.LICENSE.txt → poll-announce.398b6790.js.LICENSE.txt} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chunks/8518.e5f62114.js","mappings":"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","sources":["webpack:///./src/nav-menu/ThreeLevelMenuPopoverContent.tsx","webpack:///./src/nav-menu/i18n.ts","webpack:///./src/nav-menu/site-map/constants.ts","webpack:///./src/nav-menu/site-map/CollectService.ts","webpack:///./src/nav-menu/site-map/ItemTag.tsx","webpack:///./src/nav-menu/site-map/processor.ts","webpack:///./src/nav-menu/site-map/GroupItem.tsx","webpack:///./src/nav-menu/site-map/SiteMapItem.tsx","webpack:///./src/nav-menu/utils.tsx","webpack:///./src/nav-menu/host-context.css","webpack:///./src/nav-menu/nav-menu.shadow.css","webpack:///./src/nav-menu/site-map/GroupItem.shadow.css","webpack:///./src/nav-menu/site-map/ItemTag.shadow.css","webpack:///./src/nav-menu/site-map/SiteMapItem.shadow.css","webpack:///./src/nav-menu/host-context.css?ac7e","webpack:///../../src/menu.ts"],"sourcesContent":["import React, { useMemo, useState, useRef } from \"react\";\nimport classnames from \"classnames\";\nimport { renderLinkCom } from \"./utils.js\";\nimport { uniq } from \"lodash\";\nimport type {\n SidebarMenuGroup,\n SidebarMenuItem,\n SidebarMenuSimpleItem,\n} from \"@next-shared/general/types\";\nimport { wrapBrick } from \"@next-core/react-element\";\nimport type { ReactNextElement } from \"@next-core/react-element\";\nimport type { Popover, PopoverProps } from \"@next-bricks/basic/popover\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\nimport { JsonStorage } from \"@next-shared/general/JsonStorage\";\nimport { K, NS, locales } from \"./i18n.js\";\nimport { useTranslation, initializeReactI18n } from \"@next-core/i18n/react\";\n\ninitializeReactI18n(NS, locales);\nconst WrappedPopover = wrapBrick<Popover, PopoverProps>(\"eo-popover\");\ninterface SearchProps {\n value?: string;\n placeholder?: string;\n autoFocus?: boolean;\n clearable?: boolean;\n trim?: boolean;\n debounceTime?: number;\n}\n\ninterface SearchEvents {\n change: CustomEvent<string>;\n search: CustomEvent<string>;\n}\n\ninterface SearchEventsMap {\n onChange: \"change\";\n onSearch: \"search\";\n}\nconst WrappedSearch = wrapBrick<\n ReactNextElement,\n SearchProps,\n SearchEvents,\n SearchEventsMap\n>(\"eo-search\", {\n onChange: \"change\",\n onSearch: \"search\",\n});\n\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\n\ninterface ThreeLevelMenuPopoverContentProps {\n menuItem: SidebarMenuGroup;\n selectedKey: string[];\n}\nconst LOCAL_STORAGE_PREFIX = \"threeLevelCategoryMenu\";\nconst maxVisitorLength = 6;\nexport function ThreeLevelMenuPopoverContent(\n props: ThreeLevelMenuPopoverContentProps\n): React.ReactElement {\n const { t } = useTranslation(NS);\n const { menuItem, selectedKey } = props;\n const items = menuItem.items as SidebarMenuGroup[];\n const [searchResult, setSearchResult] = useState<SidebarMenuSimpleItem[]>([]);\n const [searchKey, setSearchKey] = useState(\"\");\n const triggerRef = useRef<HTMLDivElement>(null);\n const nameSpace = `${LOCAL_STORAGE_PREFIX}_${menuItem.title}`;\n const storage = useMemo(() => new JsonStorage(localStorage), []);\n const searchHistory = (storage.getItem(nameSpace) as string[]) || [];\n\n const handleSearch = (e: CustomEvent<string>) => {\n setSearchKey(e.detail);\n if (e.detail) {\n const list = uniq([e.detail, ...searchHistory]);\n if (list.length > maxVisitorLength) {\n list.pop();\n }\n storage.setItem(nameSpace, list);\n setSearchResult(\n items\n .flatMap((i) => (i.items as SidebarMenuSimpleItem[]) || [])\n .filter((i) =>\n (i.text as string)\n .toLowerCase()\n .includes((e.detail as string).trim().toLowerCase())\n )\n );\n } else {\n setSearchResult([]);\n }\n };\n\n const popoverTriggerClick = () => {\n triggerRef.current?.click();\n };\n\n return (\n <div className={\"three-level-menu-container\"}>\n <div\n className=\"three-level-menu-search-container\"\n onClick={(e) => {\n e.stopPropagation();\n }}\n >\n <WrappedSearch\n placeholder={t(K.SEARCH_BY_MENU_NAME) as string}\n onSearch={handleSearch}\n onFocus={popoverTriggerClick}\n onBlur={popoverTriggerClick}\n />\n <WrappedPopover\n trigger=\"click\"\n placement={\"bottom-start\"}\n anchorDisplay=\"block\"\n distance={0}\n >\n <div slot=\"anchor\" ref={triggerRef}></div>\n {\n <div className=\"three-level-menu-search-result\">\n {!!searchResult.length &&\n searchResult.map((i) => renderLinkCom(i, { width: \"100%\" }))}\n {searchKey && !searchResult.length && (\n <div\n style={{\n height: \"100px\",\n textAlign: \"center\",\n lineHeight: \"100px\",\n }}\n >\n {t(K.NO_DATA)}\n </div>\n )}\n </div>\n }\n </WrappedPopover>\n </div>\n {!!searchHistory.length && (\n <div className=\"three-level-menu-search-history-container\">\n <div className=\"three-level-menu-search-history-title\">\n {t(K.SEARCH_HISTORY)}\n <WrappedIcon\n lib=\"antd\"\n theme=\"outlined\"\n icon=\"delete\"\n className=\"three-level-menu-search-history-icon\"\n />\n </div>\n <div>\n {searchHistory.map((h) => (\n <span key={h} className=\"three-level-menu-search-history-text\">\n {h}\n </span>\n ))}\n </div>\n </div>\n )}\n <div\n className={\"three-level-menu-item-container\"}\n style={{\n gridTemplateColumns: `repeat(${\n items.length > 4 ? 4 : items.length\n },1fr)`,\n }}\n >\n {items.map((item: SidebarMenuGroup, index: number) => (\n <div key={index}>\n <div className=\"three-level-menu-item-title-container\">\n <span className=\"three-level-menu-item-title-icon\"></span>\n <span className=\"three-level-menu-item-title\">{item.title}</span>\n </div>\n {item.items?.map((i) => (\n <span\n key={i.key}\n className={classnames({\n active: i.key ? selectedKey.includes(i.key) : false,\n })}\n >\n {renderLinkCom(i as SidebarMenuSimpleItem, { width: \"100%\" })}\n </span>\n ))}\n </div>\n ))}\n </div>\n </div>\n );\n}\n","export enum K {\n SEARCH_BY_MENU_NAME = \"SEARCH_BY_MENU_NAME\",\n SEARCH_HISTORY = \"SEARCH_HISTORY\",\n NO_DATA = \"NO_DATA\",\n QUICK_ACCESS = \"QUICK_ACCESS\",\n REMOVE_ITEM_FROM_QUICK_ACCESS = \"REMOVE_ITEM_FROM_QUICK_ACCESS\",\n ADD_ITEM_TO_QUICK_ACCESS = \"ADD_ITEM_TO_QUICK_ACCESS\",\n NO_DATA_TIPS_IN_QUICK_ACCESS = \"NO_DATA_TIPS_IN_QUICK_ACCESS\",\n SITE_MAP_SEARCH_RECOMMEND = \"SITE_MAP_SEARCH_RECOMMEND\",\n MAX_COLLECT_COUNT_TIPS = \"MAX_COLLECT_COUNT_TIPS\",\n NO_DATA_SEARCH_INFO = \"NO_DATA_SEARCH_INFO\",\n SEARCH_ITEM_PLACEHOLDER = \"SEARCH_ITEM_PLACEHOLDER\",\n}\n\nconst en: Locale = {\n SEARCH_BY_MENU_NAME: \"Search by menu name\",\n SEARCH_HISTORY: \"Search history\",\n NO_DATA: \"No data\",\n QUICK_ACCESS: \"Quick Access\",\n REMOVE_ITEM_FROM_QUICK_ACCESS: \"Remove from Quick Access\",\n ADD_ITEM_TO_QUICK_ACCESS: \"Add to Quick Access\",\n NO_DATA_TIPS_IN_QUICK_ACCESS:\n \"No quick access resources have been added yet. Please add from the list below or after searching\",\n SITE_MAP_SEARCH_RECOMMEND: \"Search recommend\",\n MAX_COLLECT_COUNT_TIPS: \"Need to delete some favorites in order to add\",\n NO_DATA_SEARCH_INFO: \"The search result is empty, please enter again\",\n SEARCH_ITEM_PLACEHOLDER: \"Please enter keywords to search\",\n};\n\nconst zh: Locale = {\n SEARCH_BY_MENU_NAME: \"通过菜单名称搜索\",\n SEARCH_HISTORY: \"历史搜索\",\n NO_DATA: \"暂无数据\",\n QUICK_ACCESS: \"快捷访问\",\n REMOVE_ITEM_FROM_QUICK_ACCESS: \"从快捷访问移除\",\n ADD_ITEM_TO_QUICK_ACCESS: \"添加至快捷访问\",\n NO_DATA_TIPS_IN_QUICK_ACCESS: \"暂未添加快捷访问资源,从下方列表或搜索后添加\",\n SITE_MAP_SEARCH_RECOMMEND: \"搜索推荐\",\n MAX_COLLECT_COUNT_TIPS: \"需删除部分收藏,才能添加\",\n NO_DATA_SEARCH_INFO: \"搜索结果为空,请重新输入\",\n SEARCH_ITEM_PLACEHOLDER: \"请输入关键词搜索\",\n};\n\nexport const NS = \"bricks/nav/nav-menu\";\n\nexport const locales = { en, zh };\n\ntype Locale = { [key in K]: string };\n","import React from \"react\";\n\nexport enum DRAG_DIRECTION {\n Left = \"left\",\n Right = \"right\",\n}\n\nexport interface ContextOfDragProps {\n groupId: string;\n direction?: DRAG_DIRECTION;\n overElement?: HTMLElement;\n allowDrag?: boolean;\n onAllowDrag?: (enable: boolean) => void;\n onDragStart?: (e: React.DragEvent) => void;\n onDragOver?: (e: React.DragEvent) => void;\n onDragEnd?: (e: React.DragEvent) => void;\n onFavoriteUpdate?: (list: any[]) => void;\n}\n\nexport const collectModule = \"sidebarMenuCollect\";\n\nexport const DragContext = React.createContext<ContextOfDragProps>(\n {} as ContextOfDragProps\n);\n","import type { SidebarMenuSimpleItem } from \"@next-shared/general/types\";\nimport {\n MyCollectionApi_listMyCollection,\n MyCollectionApi_ListMyCollectionResponseBody,\n MyCollectionApi_upsertMyCollection,\n} from \"@next-api-sdk/user-service-sdk\";\nimport { DRAG_DIRECTION, collectModule } from \"./constants.js\";\nimport { cloneDeep } from \"lodash\";\nimport { handleHttpError } from \"@next-core/runtime\";\n\nexport class CollectService {\n private maxCollectLength: number;\n private collectMap: Map<string, SidebarMenuSimpleItem[]> = new Map();\n private collectPromise: Map<string, Promise<SidebarMenuSimpleItem[]>> =\n new Map();\n\n constructor(maxCollectLength?: number) {\n this.maxCollectLength = maxCollectLength ?? 10;\n }\n\n public getFavoritesById(id: string): SidebarMenuSimpleItem[] {\n return cloneDeep(this.collectMap.get(id)) ?? [];\n }\n\n public async fetchFavorites(id: string): Promise<SidebarMenuSimpleItem[]> {\n const cachedPromise = this.collectPromise.get(id);\n if (cachedPromise) {\n const collectList = this.collectMap.get(id);\n\n return collectList ? collectList : cachedPromise;\n }\n\n const favoritesPromise = MyCollectionApi_listMyCollection({\n module: collectModule,\n collectionName: id,\n }).then((result) => {\n const list = result.payloads\n ?.map((item) => item.extInfo)\n .filter(Boolean) as SidebarMenuSimpleItem[];\n this.collectMap.set(id, list);\n\n return list;\n }) as Promise<SidebarMenuSimpleItem[]>;\n\n this.collectPromise.set(id, favoritesPromise);\n\n return favoritesPromise;\n }\n\n public setItemAsFavorite(id: string, item: SidebarMenuSimpleItem): void {\n const list = this.getFavoritesById(id);\n\n if (list.length >= this.maxCollectLength) {\n list.pop();\n }\n\n list.unshift(item);\n this.updateFavoriteItems(id, list);\n }\n\n public updateFavoriteItems(id: string, list: SidebarMenuSimpleItem[]): void {\n try {\n this.collectMap.set(id, list);\n MyCollectionApi_upsertMyCollection({\n module: collectModule,\n collectionName: id,\n payloads: list?.map((item) => ({\n name: item.text,\n url: item.to,\n extInfo: item,\n })) as MyCollectionApi_ListMyCollectionResponseBody[\"payloads\"],\n });\n } catch (error) {\n // istanbul ignore next\n handleHttpError(error);\n }\n }\n\n private equalItem(\n prevItem: SidebarMenuSimpleItem,\n item: SidebarMenuSimpleItem\n ): boolean {\n return prevItem.text === item.text && prevItem.to === item.to;\n }\n\n public removeItemFromFavorite(id: string, item: SidebarMenuSimpleItem): void {\n const list = this.getFavoritesById(id);\n const index = list.findIndex((row) => this.equalItem(row, item));\n // istanbul ignore else\n if (index !== -1) {\n list.splice(index, 1);\n this.updateFavoriteItems(id, list);\n }\n }\n\n public isCollected(id: string, item: SidebarMenuSimpleItem): boolean {\n const list = this.getFavoritesById(id);\n return list.some((row) => this.equalItem(row, item));\n }\n\n public toggleFavorite(id: string, item: SidebarMenuSimpleItem): void {\n if (this.isCollected(id, item)) {\n this.removeItemFromFavorite(id, item);\n } else {\n if (this.checkMaxCapacity(id)) return;\n this.setItemAsFavorite(id, item);\n }\n }\n\n public moveFavoriteTo(\n id: string,\n option: {\n from: SidebarMenuSimpleItem;\n to: SidebarMenuSimpleItem;\n direction: DRAG_DIRECTION;\n }\n ): SidebarMenuSimpleItem[] {\n const { from, to, direction } = option;\n\n const list = this.getFavoritesById(id);\n if (this.equalItem(from, to)) return list;\n\n const fromIndex = list.findIndex((row) => this.equalItem(row, from));\n\n // istanbul ignore else\n if (fromIndex !== -1) {\n list.splice(fromIndex, 1);\n\n const toIndex = list.findIndex((row) => this.equalItem(row, to));\n\n // istanbul ignore else\n if (toIndex !== -1) {\n if (direction === DRAG_DIRECTION.Left) {\n list.splice(toIndex, 0, from);\n } else {\n list.splice(toIndex + 1, 0, from);\n }\n\n this.updateFavoriteItems(id, list);\n }\n }\n\n return list;\n }\n\n checkMaxCapacity(groupId: string): boolean {\n return this.getFavoritesById(groupId).length >= this.maxCollectLength;\n }\n}\n\nexport const collectService = new CollectService();\n","import React, {\n useMemo,\n useCallback,\n useRef,\n useState,\n useEffect,\n useContext,\n DragEvent,\n} from \"react\";\nimport { wrapBrick } from \"@next-core/react-element\";\nimport { Link, LinkProps } from \"@next-bricks/basic/link\";\n\nimport { EoTooltip, ToolTipProps } from \"@next-bricks/basic/tooltip\";\nimport classNames from \"classnames\";\nimport { SidebarMenuSimpleItem } from \"@next-shared/general/types\";\nimport { K, NS, locales } from \"../i18n.js\";\nimport { collectService } from \"./CollectService.js\";\nimport { useTranslation, initializeReactI18n } from \"@next-core/i18n/react\";\nimport { DRAG_DIRECTION, DragContext } from \"./constants.js\";\n\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\ninitializeReactI18n(NS, locales);\nconst WrappedLink = wrapBrick<Link, LinkProps>(\"eo-link\");\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\nconst WrappedTooltip = wrapBrick<EoTooltip, ToolTipProps>(\"eo-tooltip\");\n\ninterface CellItemProps {\n data: SidebarMenuSimpleItem;\n suffix?: React.ReactNode;\n className?: string;\n}\n\nexport type OnFavoriteCallback = (collectList: SidebarMenuSimpleItem[]) => void;\n\ninterface PlaceholderCompProps {\n data: SidebarMenuSimpleItem;\n direction: DRAG_DIRECTION;\n onDragOver?: (e: DragEvent) => void;\n}\nexport function PlaceholderDropComp({\n data,\n onDragOver,\n direction,\n}: PlaceholderCompProps) {\n const { groupId, onFavoriteUpdate } = useContext(DragContext);\n const handleDrop = (e: DragEvent) => {\n const formData = JSON.parse(e.dataTransfer.getData(\"application/json\"));\n\n const newDataList = collectService.moveFavoriteTo(groupId, {\n from: formData,\n to: data,\n direction,\n });\n\n onFavoriteUpdate?.(newDataList);\n };\n\n return (\n <div\n className=\"indicate-wrapper\"\n data-direction={direction}\n data-to={data.to}\n onDragEnter={(e) =>\n ((e.target as HTMLElement).style.background = \"var(--palette-blue-1)\")\n }\n onDragLeave={(e) =>\n ((e.target as HTMLElement).style.background = \"transparent\")\n }\n data-text={data.text}\n onDragOver={onDragOver}\n onDrop={handleDrop}\n />\n );\n}\n\nexport function ItemTag(props: CellItemProps): React.ReactElement {\n const { data, suffix, className } = props;\n\n const {\n allowDrag,\n onDragStart,\n overElement,\n direction,\n onDragEnd,\n onDragOver,\n } = useContext(DragContext);\n const containerRef = useRef<any>(null);\n\n const [isDragIng, setIsDragIng] = useState(false);\n\n const isActive = useMemo(\n () =>\n overElement &&\n overElement.dataset.to == data.to &&\n overElement.dataset.text === overElement.dataset.text,\n [overElement, data]\n );\n\n const handleDragStart = (e: React.DragEvent) => {\n if (!allowDrag) {\n e.preventDefault();\n } else {\n setIsDragIng(true);\n e.dataTransfer?.setData(\"application/json\", JSON.stringify(data));\n onDragStart?.(e);\n }\n };\n\n const handleDragEnd = (e: React.DragEvent) => {\n setIsDragIng(false);\n onDragEnd?.(e);\n };\n\n const handleOver = (e: React.DragEvent) => {\n e.dataTransfer.dropEffect = \"none\";\n onDragOver?.(e);\n };\n\n return (\n <>\n {isActive && direction === DRAG_DIRECTION.Left && (\n <PlaceholderDropComp\n data={data}\n onDragOver={onDragOver}\n direction={DRAG_DIRECTION.Left}\n />\n )}\n <WrappedLink\n data-to={data.to}\n data-text={data.text}\n ref={containerRef}\n draggable\n onDragStart={handleDragStart}\n onDragEnd={handleDragEnd}\n onDragOver={handleOver}\n className={classNames(\"tag-container\", className, {\n \"is-drag\": isDragIng,\n })}\n url={data.to as string}\n href={data.href}\n target={data.target as LinkProps[\"target\"]}\n >\n <span className=\"tag-text ellipsis\" title={data.text}>\n {data.text}\n </span>\n <span className=\"tag-suffix\" onClick={(e) => e.preventDefault()}>\n {suffix}\n </span>\n </WrappedLink>\n\n {isActive && direction === DRAG_DIRECTION.Right && (\n <PlaceholderDropComp\n data={data}\n onDragOver={onDragOver}\n direction={DRAG_DIRECTION.Right}\n />\n )}\n </>\n );\n}\n\ninterface QuickVisitTagProps extends CellItemProps {\n groupId: string;\n onFavorite?: OnFavoriteCallback;\n}\n\nexport function QuickVisitItem(props: QuickVisitTagProps): React.ReactElement {\n const { t } = useTranslation(NS);\n const { onAllowDrag } = useContext(DragContext);\n const { data, onFavorite, groupId } = props;\n const suffixRef = useRef<any>();\n const iconRef = useRef<any>();\n\n const handleRemove = useCallback(() => {\n collectService.removeItemFromFavorite(groupId, data);\n onFavorite?.(collectService.getFavoritesById(groupId));\n }, [groupId, data, onFavorite]);\n\n const handleMouseDown = () => {\n onAllowDrag?.(true);\n };\n\n useEffect(() => {\n const icon = iconRef.current;\n icon.addEventListener(\"click\", handleRemove);\n\n return () => {\n icon.removeEventListener(\"click\", handleRemove);\n };\n }, [handleRemove]);\n\n useEffect(() => {\n const suffix = suffixRef.current;\n const handleClick = (e: MouseEvent) => {\n e.preventDefault();\n };\n suffix.addEventListener(\"click\", handleClick);\n\n return () => {\n suffix.removeEventListener(\"click\", handleClick);\n };\n }, []);\n\n const suffixGroups = useMemo(\n () => (\n <div className=\"operation\" ref={suffixRef}>\n <WrappedTooltip\n content={t(K.REMOVE_ITEM_FROM_QUICK_ACCESS)!}\n hoist\n placement=\"bottom\"\n className=\"close\"\n >\n <WrappedIcon lib=\"antd\" icon=\"close\" ref={iconRef} />\n </WrappedTooltip>\n <span className=\"drag-wrapper\" onMouseDown={handleMouseDown}>\n :::\n </span>\n </div>\n ),\n [t, handleRemove]\n );\n\n return (\n <ItemTag className=\"visit-container\" suffix={suffixGroups} data={data} />\n );\n}\n\ninterface StarIconProps {\n onFavorite?: OnFavoriteCallback;\n className?: string;\n groupId: string;\n data: SidebarMenuSimpleItem;\n active?: boolean;\n}\n\nexport function StarIcon({\n onFavorite,\n className,\n groupId,\n data,\n active,\n}: StarIconProps): React.ReactElement {\n const { t } = useTranslation(NS);\n const iconRef = useRef<any>();\n\n const handleClick = (e: React.MouseEvent) => {\n e.preventDefault();\n collectService.toggleFavorite(groupId, data);\n onFavorite?.(collectService.getFavoritesById(groupId));\n };\n\n useEffect(() => {\n // workaround for prevent Link jump when click.\n const icon = iconRef.current;\n icon.addEventListener(\"click\", handleClick);\n\n return () => {\n icon.removeEventListener(\"click\", handleClick);\n };\n }, []);\n\n return (\n <WrappedTooltip\n content={\n active\n ? t(K.REMOVE_ITEM_FROM_QUICK_ACCESS)!\n : collectService.checkMaxCapacity(groupId)\n ? t(K.MAX_COLLECT_COUNT_TIPS)!\n : t(K.ADD_ITEM_TO_QUICK_ACCESS)!\n }\n className={classNames(\"star-icon\", className)}\n >\n <WrappedIcon\n ref={iconRef}\n className={classNames({ active })}\n lib=\"antd\"\n icon=\"star\"\n {...(active ? { theme: \"filled\" } : {})}\n />\n </WrappedTooltip>\n );\n}\n\ninterface RecommendItemProps extends CellItemProps {\n active?: boolean;\n groupId: string;\n onFavorite?: OnFavoriteCallback;\n}\n\nexport function RecommendItem(props: RecommendItemProps): React.ReactElement {\n const { data, className, groupId, onFavorite, active } = props;\n\n const suffixGroups = useMemo(\n () => (\n <StarIcon\n groupId={groupId}\n active={active}\n className=\"star\"\n data={data}\n onFavorite={onFavorite}\n />\n ),\n [data, groupId, onFavorite, active]\n );\n\n return (\n <ItemTag\n className={classNames(\"recommend-container\", className)}\n suffix={suffixGroups}\n data={data}\n />\n );\n}\n","import {\n SidebarMenuItem,\n SidebarMenuGroup,\n SidebarMenuSimpleItem,\n} from \"@next-shared/general/types\";\n\nfunction walkMenuItem(item: SidebarMenuItem, list: SidebarMenuSimpleItem[]) {\n if (\n (item as SidebarMenuGroup).type === \"group\" &&\n Array.isArray((item as SidebarMenuGroup).items)\n ) {\n walkMenuItems((item as SidebarMenuGroup).items, list);\n } else {\n list.push(item as SidebarMenuSimpleItem);\n }\n}\n\nfunction walkMenuItems(\n items: SidebarMenuItem[],\n list: SidebarMenuSimpleItem[]\n): void {\n for (const item of items) {\n walkMenuItem(item, list);\n }\n}\n\nexport function flatMenuItems(item: SidebarMenuItem): SidebarMenuSimpleItem[] {\n const list: SidebarMenuSimpleItem[] = [];\n\n walkMenuItem(item, list);\n\n return list;\n}\n\nexport function processGroupItems(groups: SidebarMenuGroup[]): Array<{\n groupFrom: string;\n groups: SidebarMenuGroup[];\n}> {\n const groupCategoryMap = new Map<string, SidebarMenuGroup[]>();\n const categoryOrder = new Set<string>();\n\n groups?.forEach((item) => {\n const from = item.groupFrom ?? \"default\";\n categoryOrder.add(from);\n\n const value = groupCategoryMap.get(from);\n\n if (!value) {\n groupCategoryMap.set(from, [item]);\n } else {\n value!.push(item);\n }\n });\n\n return Array.from(categoryOrder).map((key) => ({\n groupFrom: key,\n groups: groupCategoryMap!.get(key)!,\n }));\n}\n","import React, { useEffect, useState } from \"react\";\nimport type {\n SidebarMenuSimpleItem,\n SidebarMenuGroup,\n} from \"@next-shared/general/types\";\nimport { wrapBrick } from \"@next-core/react-element\";\nimport { StarIcon, OnFavoriteCallback } from \"./ItemTag.js\";\nimport { Link, LinkProps } from \"@next-bricks/basic/link\";\nimport { collectService } from \"./CollectService.js\";\nimport { processGroupItems } from \"./processor.js\";\nimport classNames from \"classnames\";\n\nconst WrappedLink = wrapBrick<Link, LinkProps>(\"eo-link\");\n\ninterface GroupViewProps {\n groups: SidebarMenuGroup[];\n groupId: string;\n selectedKey?: string[];\n onFavorite: OnFavoriteCallback;\n}\n\nexport const itemColumnWidth = 240;\n\nexport function GroupView(props: GroupViewProps): React.ReactElement {\n const { groupId, selectedKey, onFavorite } = props;\n const groupMenus = processGroupItems(props.groups);\n\n return (\n <div className=\"group-view\">\n {groupMenus.map((item, index) => {\n return (\n <div key={index}>\n {index !== 0 && <div className=\"divider\" />}\n {item.groupFrom === \"default\" ? (\n <DefaultGroup\n groupId={groupId}\n selectedKey={selectedKey}\n groups={item.groups}\n onFavorite={onFavorite}\n />\n ) : (\n <CustomGroup\n groupId={groupId}\n selectedKey={selectedKey}\n groups={item.groups}\n onFavorite={onFavorite}\n />\n )}\n </div>\n );\n })}\n </div>\n );\n}\n\ninterface BaseGroupProps {\n groupId: string;\n selectedKey?: string[];\n onFavorite: OnFavoriteCallback;\n groups: SidebarMenuGroup[];\n}\nexport function DefaultGroup(props: BaseGroupProps): React.ReactElement {\n const { groupId, onFavorite, selectedKey, groups } = props;\n\n const groupRef = React.useRef<HTMLDivElement>(null);\n const [columnCount, setColumnCount] = useState<number>();\n\n useEffect(() => {\n // istanbul ignore next\n const resizeObserver = new ResizeObserver((entries) => {\n for (const entry of entries) {\n if (entry.target === groupRef.current) {\n const width = entry.contentRect.width;\n\n if (width) {\n setColumnCount(Math.floor(width / itemColumnWidth));\n }\n }\n }\n });\n\n resizeObserver.observe(groupRef.current as HTMLDivElement);\n\n return () => resizeObserver.disconnect();\n }, []);\n\n return (\n <div\n className=\"group\"\n ref={groupRef}\n style={\n (columnCount as number) < groups?.length\n ? { columnCount, columnWidth: itemColumnWidth }\n : {\n display: \"grid\",\n gridTemplateColumns: `repeat(auto-fit, ${itemColumnWidth}px)`,\n }\n }\n >\n {groups.map((group) => (\n <div key={group.key} className=\"group-item\">\n <div className=\"title\">{group.title}</div>\n <div className=\"content\">\n {group.items.map((item) => (\n <GroupItem\n key={item.key}\n groupId={groupId}\n selectedKey={selectedKey}\n data={item as SidebarMenuSimpleItem}\n onFavorite={onFavorite}\n />\n ))}\n </div>\n </div>\n ))}\n </div>\n );\n}\n\nexport function CustomGroup(props: BaseGroupProps): React.ReactElement {\n const { groupId, onFavorite, selectedKey, groups } = props;\n\n return (\n <div className=\"custom-group\">\n {groups.map((group) => (\n <div key={group.key}>\n <div className=\"title\">{group.title}</div>\n <div\n className=\"custom-content\"\n style={{\n display: \"grid\",\n gridTemplateColumns: `repeat(auto-fit, ${itemColumnWidth}px)`,\n }}\n >\n {group.items.map((item) => (\n <GroupItem\n key={item.key}\n selectedKey={selectedKey}\n groupId={groupId}\n data={item as SidebarMenuSimpleItem}\n onFavorite={onFavorite}\n />\n ))}\n </div>\n </div>\n ))}\n </div>\n );\n}\n\ninterface GroupItemProps {\n data: SidebarMenuSimpleItem;\n selectedKey?: string[];\n groupId: string;\n onFavorite: OnFavoriteCallback;\n}\nexport function GroupItem(props: GroupItemProps): React.ReactElement {\n const { data, groupId, onFavorite, selectedKey } = props;\n\n return (\n <WrappedLink\n key={data.key}\n icon={data.icon}\n url={data.to as string}\n href={data.href}\n target={data.target as LinkProps[\"target\"]}\n className={classNames(\"item-link\", {\n active: selectedKey?.includes(data.key as string),\n })}\n >\n <span className=\"ellipsis\" title={data.text}>\n {data.text}\n </span>\n <span className=\"icon-wrapper\">\n <StarIcon\n active={collectService.isCollected(groupId, data)}\n groupId={groupId}\n data={data}\n onFavorite={onFavorite}\n />\n </span>\n </WrappedLink>\n );\n}\n","import React, { useCallback, useEffect, useMemo, useState } from \"react\";\nimport type {\n SidebarMenuGroup,\n SidebarMenuSimpleItem,\n} from \"@next-shared/general/types\";\nimport { wrapBrick } from \"@next-core/react-element\";\nimport { QuickVisitItem, RecommendItem } from \"./ItemTag.js\";\nimport { GroupView } from \"./GroupItem.js\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\nimport { K, NS } from \"../i18n.js\";\nimport { DragContext } from \"./constants.js\";\nimport { useTranslation } from \"@next-core/i18n/react\";\nimport { collectService } from \"./CollectService.js\";\nimport { flatMenuItems } from \"./processor.js\";\nimport { DRAG_DIRECTION } from \"./constants.js\";\nimport classNames from \"classnames\";\nimport { throttle, debounce } from \"lodash\";\n\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\n\nexport interface InputEvents {\n change: CustomEvent<string>;\n}\n\nexport interface InputEventsMap {\n onValueChange: \"change\";\n}\n\nconst WrappedInput = wrapBrick<any, any, InputEvents, InputEventsMap>(\n \"eo-input\",\n {\n onValueChange: \"change\",\n }\n);\n\ninterface SiteMapItemProps {\n menuGroup: SidebarMenuGroup;\n selectedKey?: string[];\n visible?: boolean;\n}\n\nexport function findDropElement(element: HTMLElement): HTMLElement | undefined {\n let node = element;\n\n while (node) {\n if (node.draggable || node.className === \"indicate-wrapper\") {\n return node;\n }\n\n node = node.parentElement as HTMLElement;\n }\n}\n\nexport function isValidDragAction(\n dragElement: HTMLElement,\n dropElement: HTMLElement\n): boolean {\n return (\n dragElement &&\n dropElement &&\n !(\n dragElement.dataset.to === dropElement.dataset.to &&\n dragElement.dataset.text === dropElement.dataset.text\n )\n );\n}\n\nexport function SiteMapItem(props: SiteMapItemProps) {\n const { t } = useTranslation(NS);\n const { menuGroup, selectedKey, visible } = props;\n const groupId = menuGroup.groupId as string;\n\n const [favoriteList, setFavoriteList] = useState<SidebarMenuSimpleItem[]>([]);\n const flatItems = useMemo(() => flatMenuItems(menuGroup), [menuGroup]);\n const [q, setQ] = useState<string>();\n const [filter, setFilters] = useState<SidebarMenuSimpleItem[]>([]);\n const [dragElement, setDragElement] = useState<HTMLElement>();\n const [overElement, setOverElement] = useState<HTMLElement>();\n const [allowDrag, setAllowDrag] = useState<boolean>();\n const [direction, setDirection] = useState<DRAG_DIRECTION>();\n const [initialized, setInitialized] = useState(false);\n\n useEffect(() => {\n if (visible && !initialized) {\n setInitialized(true);\n }\n }, [visible, initialized]);\n\n const handleFavorite = (collectList: SidebarMenuSimpleItem[]) => {\n setFavoriteList(collectList);\n };\n\n const handleSearch = useCallback(\n (e: CustomEvent<string>): void => {\n const v = e.detail;\n setQ(e.detail);\n\n setFilters(\n !v\n ? flatItems\n : flatItems.filter((item) =>\n item.text.toLowerCase().includes(e.detail.toLowerCase())\n )\n );\n },\n [flatItems]\n );\n\n const debouncedHandleSearch = useMemo(\n () => debounce(handleSearch, 200),\n [handleSearch]\n );\n\n const handleDragStart = (e: React.DragEvent): void => {\n setDragElement(e.target as HTMLElement);\n };\n\n const handleDragOver = useMemo(\n () =>\n throttle((e: React.DragEvent): void => {\n e.preventDefault();\n\n const dropElement = findDropElement(e.target as HTMLElement);\n setOverElement(dropElement);\n\n if (\n dropElement &&\n isValidDragAction(dropElement, dragElement as HTMLElement)\n ) {\n if (dropElement.className === \"indicate-wrapper\") {\n setDirection(dropElement.dataset.direction as DRAG_DIRECTION);\n } else {\n const { width, left } = dropElement.getBoundingClientRect();\n\n const right = e.clientX > left + width / 2;\n setDirection(right ? DRAG_DIRECTION.Right : DRAG_DIRECTION.Left);\n }\n } else {\n setDirection(undefined);\n }\n }),\n [dragElement]\n );\n\n const handleDragEnd = (): void => {\n setDragElement(undefined);\n setDirection(undefined);\n setAllowDrag(false);\n };\n\n const handleAllowDrag = (enable: boolean): void => {\n setAllowDrag(enable);\n };\n\n useEffect(() => {\n (async () => {\n if (visible) {\n const list = await collectService.fetchFavorites(groupId);\n setFavoriteList(list);\n }\n })();\n }, [groupId, visible]);\n\n return (\n initialized && (\n <div className=\"site-map\">\n <div className=\"search-wrapper\">\n <WrappedInput\n className=\"search-input\"\n style={{ width: \"100%\" }}\n onValueChange={debouncedHandleSearch}\n placeholder={t(K.SEARCH_ITEM_PLACEHOLDER)}\n >\n <WrappedIcon slot=\"prefix\" lib=\"antd\" icon=\"search\" />\n </WrappedInput>\n </div>\n\n {!q && (\n <div>\n {favoriteList.length !== 0 && (\n <div\n className={classNames(\"visit-access\", {\n hasData: favoriteList.length,\n })}\n >\n <span className=\"title\">{t(K.QUICK_ACCESS)}</span>\n <DragContext.Provider\n value={{\n groupId,\n overElement,\n direction,\n allowDrag,\n onDragStart: handleDragStart,\n onDragOver: handleDragOver,\n onDragEnd: handleDragEnd,\n onAllowDrag: handleAllowDrag,\n onFavoriteUpdate: handleFavorite,\n }}\n >\n <div className=\"tag-wrapper\">\n {favoriteList.map((item) => (\n <QuickVisitItem\n onFavorite={handleFavorite}\n groupId={groupId}\n key={item.key}\n data={item}\n />\n ))}\n </div>\n </DragContext.Provider>\n </div>\n )}\n\n <GroupView\n groupId={groupId}\n selectedKey={selectedKey}\n groups={menuGroup.items as SidebarMenuGroup[]}\n onFavorite={handleFavorite}\n />\n </div>\n )}\n\n {q && (\n <div className=\"search-panel\">\n <span className=\"title\">{t(K.SITE_MAP_SEARCH_RECOMMEND)}</span>\n {filter.length ? (\n <div className=\"recommend-wrapper\">\n {filter.map((item) => (\n <RecommendItem\n key={item.key}\n groupId={groupId}\n data={item}\n onFavorite={handleFavorite}\n active={collectService.isCollected(groupId, item)}\n />\n ))}\n </div>\n ) : (\n <div className=\"no-data-tips\">{t(K.NO_DATA_SEARCH_INFO)}</div>\n )}\n </div>\n )}\n </div>\n )\n );\n}\n","import React from \"react\";\nimport { wrapBrick } from \"@next-core/react-element\";\nimport type {\n SidebarMenuGroup,\n SidebarMenuItem,\n SidebarMenuSimpleItem,\n} from \"@next-shared/general/types\";\nimport type { Link, LinkProps } from \"@next-bricks/basic/link\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\n\nconst WrappedLinkItem = wrapBrick<Link, LinkProps>(\"eo-link\");\n\nexport function isGroup(item: SidebarMenuItem): item is SidebarMenuGroup {\n return item.type === \"group\";\n}\n\nexport function isSubMenu(\n item: SidebarMenuGroup,\n groupAsSubMenu?: boolean\n): item is SidebarMenuGroup {\n return Boolean(\n item.type === \"subMenu\" || (groupAsSubMenu && item.type === \"group\")\n );\n}\n\nexport function isSimple(item: SidebarMenuItem): item is SidebarMenuSimpleItem {\n return item.type === \"default\" || !item.type;\n}\n\nexport const renderLinkCom = (\n item: SidebarMenuSimpleItem,\n linkStyle?: React.CSSProperties,\n labelStyle?: React.CSSProperties\n): React.ReactElement => {\n return (\n <WrappedLinkItem\n type=\"plain\"\n key={item.key}\n url={item.to as string}\n href={item.href}\n target={item.target as LinkProps[\"target\"]}\n style={linkStyle}\n >\n <span className=\"menu-item-label\" style={{ ...labelStyle }}>\n {item.text}\n </span>\n </WrappedLinkItem>\n );\n};\n\nexport const renderSpanCom = (\n item: SidebarMenuGroup,\n subMenu?: boolean,\n style?: React.CSSProperties\n): React.ReactElement => {\n return (\n <span key={item.key} className=\"menu-item-label\" style={{ ...style }}>\n {item.title}\n {subMenu && <WrappedIcon lib=\"fa\" icon=\"angle-right\" />}\n </span>\n );\n};\n","// 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, `:root{--eo-three-level-menu-search-input-background:linear-gradient(90deg,#e8eef6 0%,rgba(233,234,243,0) 100%);--eo-three-level-menu-hover-color:#6bb3ff;--eo-three-level-menu-title-color:#0b5ad9;--eo-three-level-menu-active-color:#1a7aff;--eo-three-level-menu-search-tag-color:rgb(89,89,89);--eo-three-level-menu-search-tag-background:rgb(245,245,245)}html[data-theme=\"dark\"],\nhtml[data-theme=\"dark-v2\"]{--eo-three-level-menu-search-input-background:linear-gradient(124deg,rgba(255,255,255,0.36) 0%,rgba(255,255,255,0) 100%);--eo-three-level-menu-hover-color:rgba(54,95,175,0.85);--eo-three-level-menu-title-color:#6597e8;--eo-three-level-menu-active-color:#3f75dd;--eo-three-level-menu-search-tag-color:rgb(140,140,140);--eo-three-level-menu-search-tag-background:rgb(107,107,107)}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// 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:inline-block;background:none}:host::part(menu-item),\neo-link{display:block}eo-menu-item{margin:4px 0}.sub-menu-wrapper eo-menu-item:first-child,\n.group-wrapper eo-menu-item:first-child{margin-top:0}.sub-menu-wrapper eo-menu-item:last-child{margin-bottom:0}.nav-menu-wrapper{display:flex;align-items:center;gap:8px;white-space:nowrap}.popover .sub-menu-item-label{padding:2px 0px;color:var(--color-normal-text)}.popover.subprime{display:block;width:100%}.sub-menu-wrapper{min-width:160px;max-height:calc(100vh - 100px);background-color:var(--antd-dropdown-menu-bg);padding:12px 0;border-radius:6px;box-shadow:0px 4px 12px 0px rgba(17,37,64,0.08);overflow-x:hidden;overflow-y:auto}.overflow-menu-wrapper{display:flex;flex-direction:column}.sub-menu-wrapper > eo-menu-item{display:block;width:100%}.sub-menu-wrapper > eo-menu-item .menu-item-label,\n.sub-menu-wrapper > eo-popover .menu-item-label,\n.sub-menu-wrapper > .group-wrapper > eo-popover .menu-item-label,\n.sub-menu-wrapper > .group-wrapper > eo-menu-item .menu-item-label{display:block;width:100%;padding:7px 24px;box-sizing:border-box;line-height:22px;color:var(--color-normal-text)}.sub-menu-wrapper > eo-popover.subprime .menu-item-label,\n.sub-menu-wrapper > .group-wrapper > eo-popover.subprime .menu-item-label{display:flex;justify-content:space-between;align-items:center}.sub-menu-wrapper .menu-item-label{border-radius:0}.menu-item-label{display:inline-block;cursor:pointer;border-radius:4px;padding:1px 8px;line-height:22px;color:var(--nav-menu-item-label-color)}.menu-item-label:hover{background-color:var(--top-menu-item-hover-bg)}.group-label{padding-left:16px;font-size:12px;color:var(--palette-gray-7);padding:8px 16px;line-height:20px;margin-top:4px}.sub-menu-wrapper .group-label:first-child{margin-top:0px}.sub-menu-wrapper eo-menu-item[active] .menu-item-label{background:var(--top-menu-item-selected-bg);color:var(--color-brand);font-weight:500}.three-level-menu-container{max-width:980px;max-height:510px;overflow:auto;min-width:160px}.three-level-menu-item-container{display:grid;gap:20px;margin-top:13px;padding:5px 10px}.three-level-menu-item-title-container{display:flex;align-items:center}.three-level-menu-item-title-icon{width:4px;height:4px;background-color:var(--eo-three-level-menu-title-color);margin-right:4px;transform:rotate(45deg)}.three-level-menu-item-title{font-size:14px;font-family:PingFang-SC-Medium,PingFang-SC;font-weight:500;color:var(--eo-three-level-menu-title-color)}.three-level-menu-container .menu-item-label{margin-top:4px;margin-left:4px;padding:4px;width:100%}.three-level-menu-container .active .menu-item-label{color:var(--eo-three-level-menu-active-color)}.three-level-menu-search-result .menu-item-label{margin:0px}.three-level-menu-container .menu-item-label:hover{color:var(--eo-three-level-menu-hover-color)}.three-level-menu-popover .sub-menu-wrapper{padding-top:0px}.three-level-menu-search-container{background:var(--eo-three-level-menu-search-input-background);padding:5px 10px}.three-level-menu-search-result{min-width:187px;max-width:328px;max-height:324px;background-color:var(--antd-dropdown-menu-bg);box-shadow:0px 4px 12px 0px rgba(17,37,64,0.08);overflow:scroll}.three-level-menu-search-history-container{padding:5px 10px}.three-level-menu-search-history-text{background:var(--eo-three-level-menu-search-tag-background);border-radius:2px;font-size:7px;line-height:11px;display:inline-block;height:11px;padding:4px;color:var(--eo-three-level-menu-search-tag-color);margin-right:8px}.three-level-menu-search-history-title{color:#8c8c8c;margin:10px 0;display:flex;align-items:center}.three-level-menu-search-history-icon{margin-left:5px}.sub-menu-sit-map-wrapper{box-sizing:border-box;width:calc(100vw);padding:0 60px 24px;max-height:520px;background-color:var(--antd-dropdown-menu-bg);border-radius:6px;box-shadow:0px 4px 12px 0px rgba(17,37,64,0.08);overflow-x:hidden;overflow-y:auto}.overflow-menu-item{position:absolute;opacity:0;height:0;pointer-events:none}.in-group-site-map{width:auto;padding:0 20px}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// 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, `.group .item-link,.custom-group .item-link{font-weight:400}.group .item-link:hover,.custom-group .item-link:hover{background-color:var(--color-fill-bg-base-1)}.group .item-link:hover::part(link){color:var(--color-brand-hover)}.custom-group .item-link:hover::part(link){color:var(--color-brand-hover)}.group .item-link:hover::part(icon){color:var(--color-brand-hover)}.custom-group .item-link:hover::part(icon){color:var(--color-brand-hover)}.group .item-link.active::part(link){color:var(--palette-blue-8)}.custom-group .item-link.active::part(link){color:var(--palette-blue-8)}.group .item-link.active::part(icon){color:var(--palette-blue-8)}.custom-group .item-link.active::part(icon){color:var(--palette-blue-8)}.group .item-link::part(link){padding:8px 12px 8px 24px;display:flex;gap:4px;color:var(--color-header-text)}.custom-group .item-link::part(link){padding:8px 12px 8px 24px;display:flex;gap:4px;color:var(--color-header-text)}.group .item-link::part(icon){color:var(--color-normal-text)}.custom-group .item-link::part(icon){color:var(--color-normal-text)}.group .title,.custom-group .title{padding:8px 16px 8px 24px;font-size:16px;font-weight:500;position:relative}.group .title::before{content:\"\";position:absolute;width:6px;height:6px;top:17px;left:9px;transform:rotate(45deg);background:var(--color-secondary-text)}.custom-group .title::before{content:\"\";position:absolute;width:6px;height:6px;top:17px;left:9px;transform:rotate(45deg);background:var(--color-secondary-text)}.group .content .icon-wrapper,.custom-group .content .icon-wrapper,.group .custom-content .icon-wrapper,.custom-group .custom-content .icon-wrapper{color:var(--color-secondary-text);font-size:16px;display:none;margin-left:auto}.group .content .item-link:hover .icon-wrapper,.custom-group .content .item-link:hover .icon-wrapper,.group .custom-content .item-link:hover .icon-wrapper,.custom-group .custom-content .item-link:hover .icon-wrapper{display:block}.group .content .item-link:hover .icon-wrapper:hover,.custom-group .content .item-link:hover .icon-wrapper:hover,.group .custom-content .item-link:hover .icon-wrapper:hover,.custom-group .custom-content .item-link:hover .icon-wrapper:hover{color:var(--color-brand-hover)}.group .content,.custom-group .content{display:flex;flex-direction:column}.group .group-item,.custom-group .group-item{page-break-inside:avoid;break-inside:avoid}.group-view{min-height:300px}.group-view .divider{height:2px;background:var(--color-text-divider-line);margin:16px 0}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// 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, `.tag-container::part(link){display:flex;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;-moz-user-select:none;justify-content:space-between;background-color:var(--color-fill-bg-base-1);border-radius:2px;padding:1px 6px}.tag-container .tag-text{color:var(--color-normal-text);font-weight:400}.tag-container:hover .tag-text{color:var(--color-brand-hover)}.tag-container .tag-suffix{display:inline-flex;font-size:12px;gap:4px;align-items:center;color:var(--color-secondary-text)}.tag-container.is-drag{opacity:0.4}.indicate-wrapper{border:1px dashed var(--color-brand-hover);border-radius:4px;height:20px;margin:2px 0}.close{display:inline-flex;margin-top:2px;padding:0 2px}.close:hover{color:var(--color-error)}.drag-wrapper{cursor:move}.drag-wrapper:hover{color:var(--color-brand-hover)}.star-icon{display:flex;alignitems:center;color:var(--color-secondary-text)}.star-icon:hover{color:var(--color-brand-hover)}.star-icon .active{color:var(--palette-yellow-6)}.recommend-container:hover .star{display:inline-flex}.recommend-container .star{font-size:13px;display:none}.visit-container:hover .operation{display:inline-flex;align-items:center}.visit-container .operation{display:none}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// 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, `.site-map .search-wrapper{position:sticky;top:0;z-index:9999;padding-top:24px;padding-bottom:16px;background:var(--antd-dropdown-menu-bg)}.site-map .search-input::part(affix-wrapper){border:none;border-bottom:1px solid var(--antd-input-border-color);border-radius:0px;background:transparent}.site-map .visit-access .title,.site-map .search-panel .title{display:inline-block;padding:2px 16px 2px 24px;font-weight:500;line-height:24px;position:relative}.site-map .visit-access .title::before{content:\"\";position:absolute;width:6px;height:6px;top:10px;left:9px;border-radius:50%;background:var(--color-secondary-text)}.site-map .search-panel .title::before{content:\"\";position:absolute;width:6px;height:6px;top:10px;left:9px;border-radius:50%;background:var(--color-secondary-text)}.site-map .visit-access .no-data-tips,.site-map .search-panel .no-data-tips{display:flex;margin:16px 0 32px;align-items:center;justify-content:center;color:var(--color-secondary-text)}.site-map .visit-access.hasData{display:flex}.site-map .visit-access{margin-bottom:8px}.site-map .visit-access .tag-wrapper{flex:1;display:grid;grid-template-columns:repeat(auto-fit,200px);gap:8px}.site-map .ellipsis{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.site-map .search-panel .recommend-wrapper{margin-top:16px;display:grid;grid-template-columns:repeat(auto-fit,200px);gap:8px}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[0].use[1]!../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./host-context.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[0].use[1]!../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./host-context.css\";\n export default content && content.locals ? content.locals : undefined;\n","import { Location, parsePath } from \"history\";\nimport { matchPath } from \"@next-core/runtime\";\nimport type {\n SidebarMenuSimpleItem,\n SidebarMenuItem,\n SidebarMenuGroup,\n} from \"./types.js\";\nimport { isObject } from \"lodash\";\n\nexport function isGroup(item: SidebarMenuItem): item is SidebarMenuGroup {\n return item.type === \"group\";\n}\n\nexport function isSubMenu(\n item: SidebarMenuItem,\n groupAsSubMenu?: boolean\n): item is SidebarMenuGroup {\n return Boolean(\n item.type === \"subMenu\" || (groupAsSubMenu && item.type === \"group\")\n );\n}\n\nexport function initMenuItemAndMatchCurrentPathKeys(\n menuItems: SidebarMenuItem[],\n pathname: string,\n search: string,\n parentCursor: string\n): {\n selectedKeys: string[];\n openedKeys: string[];\n matchedKeys: string[];\n} {\n const selectedKeys: string[] = [];\n const openedKeys: string[] = [];\n const matchedKeys: string[] = [];\n\n let cursor = 0;\n menuItems &&\n menuItems.forEach((item) => {\n // key的格式最终为0,1,2,0.1,0.2,0.1.1,0.1.2\n item.key =\n parentCursor === \"\" ? `${cursor}` : `${parentCursor}.${cursor}`;\n if (isGroup(item) || isSubMenu(item)) {\n const tmp = initMenuItemAndMatchCurrentPathKeys(\n item.items,\n pathname,\n search,\n item.key\n );\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\n const keyPath = item.key.split(\".\");\n\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}\n\nfunction getMatchOfSearch(\n currentSearch: string,\n toSearch: string | undefined\n): boolean {\n const current = new URLSearchParams(currentSearch);\n const to = new URLSearchParams(toSearch);\n for (const [key, value] of to.entries()) {\n // Allow `?k=` to match `?` (when `k` doesn't exist)\n if ((current.get(key) ?? \"\") !== value) {\n return false;\n }\n }\n return true;\n}\n\nexport function matchMenuItem(\n item: SidebarMenuSimpleItem,\n pathname: string,\n search: string\n): boolean {\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\n let match = !!matchPath(pathname, {\n path: escapedPath,\n exact: item.exact,\n });\n\n if (match && item.activeMatchSearch) {\n match = getMatchOfSearch(search, to.search);\n }\n\n if (!match && Array.isArray(item.activeIncludes)) {\n for (const include of item.activeIncludes) {\n let paths: string[];\n let exact: boolean | undefined = true;\n\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\n for (const path of paths) {\n let parsedPath: Location | undefined;\n const hasSearch = path.includes(\"?\");\n\n if (hasSearch) {\n parsedPath = parsePath(path);\n }\n match = !!matchPath(pathname, {\n path: hasSearch ? parsedPath!.pathname : path,\n exact,\n });\n\n if (match && parsedPath?.search) {\n match = getMatchOfSearch(search, parsedPath.search);\n }\n\n if (match) {\n break;\n }\n }\n\n if (match) {\n break;\n }\n }\n }\n\n if (match && Array.isArray(item.activeExcludes)) {\n for (const include of item.activeExcludes) {\n let paths: string[];\n let exact: boolean | undefined = true;\n\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\n for (const path of paths) {\n let parsedPathWithSearch: Location | undefined;\n if (path.includes(\"?\")) {\n parsedPathWithSearch = parsePath(path);\n }\n\n match = !(\n matchPath(pathname, {\n path: parsedPathWithSearch ? parsedPathWithSearch.pathname : path,\n exact,\n }) &&\n (!parsedPathWithSearch ||\n getMatchOfSearch(search, parsedPathWithSearch.search))\n );\n\n if (!match) {\n break;\n }\n }\n\n if (!match) {\n break;\n }\n }\n }\n\n return match;\n}\n"],"names":["initializeReactI18n","NS","locales","WrappedPopover","wrapBrick","WrappedSearch","onChange","onSearch","WrappedIcon","LOCAL_STORAGE_PREFIX","maxVisitorLength","ThreeLevelMenuPopoverContent","props","useTranslation","menuItem","selectedKey","items","searchResult","setSearchResult","useState","searchKey","setSearchKey","triggerRef","useRef","nameSpace","title","storage","useMemo","JsonStorage","localStorage","searchHistory","getItem","popoverTriggerClick","_triggerRef$current","current","click","React","className","onClick","e","stopPropagation","placeholder","t","K","SEARCH_BY_MENU_NAME","detail","list","uniq","length","pop","setItem","flatMap","i","filter","text","toLowerCase","includes","trim","onFocus","onBlur","trigger","placement","anchorDisplay","distance","slot","ref","map","renderLinkCom","width","style","height","textAlign","lineHeight","NO_DATA","SEARCH_HISTORY","lib","theme","icon","h","key","gridTemplateColumns","item","index","_item$items","classnames","active","en","QUICK_ACCESS","REMOVE_ITEM_FROM_QUICK_ACCESS","ADD_ITEM_TO_QUICK_ACCESS","NO_DATA_TIPS_IN_QUICK_ACCESS","SITE_MAP_SEARCH_RECOMMEND","MAX_COLLECT_COUNT_TIPS","NO_DATA_SEARCH_INFO","SEARCH_ITEM_PLACEHOLDER","zh","DRAG_DIRECTION","collectModule","DragContext","collectService","constructor","maxCollectLength","_defineProperty","Map","this","getFavoritesById","id","_cloneDeep","cloneDeep","collectMap","get","fetchFavorites","cachedPromise","collectPromise","favoritesPromise","MyCollectionApi_listMyCollection","module","collectionName","then","result","_result$payloads","payloads","extInfo","Boolean","set","setItemAsFavorite","unshift","updateFavoriteItems","MyCollectionApi_upsertMyCollection","name","url","to","error","handleHttpError","equalItem","prevItem","removeItemFromFavorite","findIndex","row","splice","isCollected","some","toggleFavorite","checkMaxCapacity","moveFavoriteTo","option","from","direction","fromIndex","toIndex","Left","groupId","WrappedLink","WrappedTooltip","PlaceholderDropComp","_ref","data","onDragOver","onFavoriteUpdate","useContext","onDragEnter","target","background","onDragLeave","onDrop","formData","JSON","parse","dataTransfer","getData","newDataList","ItemTag","suffix","allowDrag","onDragStart","overElement","onDragEnd","containerRef","isDragIng","setIsDragIng","isActive","dataset","draggable","_e$dataTransfer","setData","stringify","preventDefault","dropEffect","classNames","href","Right","QuickVisitItem","onAllowDrag","onFavorite","suffixRef","iconRef","handleRemove","useCallback","handleMouseDown","useEffect","addEventListener","removeEventListener","handleClick","suffixGroups","content","hoist","onMouseDown","StarIcon","_ref2","_extends","RecommendItem","walkMenuItem","type","Array","isArray","walkMenuItems","push","itemColumnWidth","GroupView","groupMenus","groups","groupCategoryMap","categoryOrder","Set","forEach","_item$groupFrom","groupFrom","add","value","processGroupItems","DefaultGroup","CustomGroup","groupRef","columnCount","setColumnCount","resizeObserver","ResizeObserver","entries","entry","contentRect","Math","floor","observe","disconnect","columnWidth","display","group","GroupItem","WrappedInput","onValueChange","SiteMapItem","menuGroup","visible","favoriteList","setFavoriteList","flatItems","flatMenuItems","q","setQ","setFilters","dragElement","setDragElement","setOverElement","setAllowDrag","setDirection","initialized","setInitialized","handleFavorite","collectList","handleSearch","v","debouncedHandleSearch","debounce","handleDragOver","throttle","dropElement","element","node","parentElement","findDropElement","isValidDragAction","left","getBoundingClientRect","right","clientX","undefined","hasData","Provider","handleDragEnd","enable","WrappedLinkItem","isGroup","isSubMenu","groupAsSubMenu","linkStyle","labelStyle","renderSpanCom","subMenu","___CSS_LOADER_EXPORT___","toString","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","initMenuItemAndMatchCurrentPathKeys","menuItems","pathname","search","parentCursor","selectedKeys","openedKeys","matchedKeys","cursor","tmp","defaultExpanded","parsePath","escapedPath","replace","match","matchPath","path","exact","activeMatchSearch","getMatchOfSearch","activeIncludes","include","paths","isObject","_parsedPath","parsedPath","hasSearch","activeExcludes","parsedPathWithSearch","matchMenuItem","String","keyPath","split","slice","join","currentSearch","toSearch","URLSearchParams","_current$get"],"sourceRoot":""}
@@ -1,2 +1,2 @@
1
- "use strict";(globalThis.webpackChunk_next_bricks_nav=globalThis.webpackChunk_next_bricks_nav||[]).push([[9149],{9302:(e,t,a)=>{a.d(t,{r:()=>b});var n=a(9575),l=a(8769),r=a.n(l),i=a(3373),o=a.n(i),c=a(9393),m=a(2133),s=a(8839),p=a(8356),u=a(1030);function d(e){var t;let{item:a,active:l,onClick:i}=e;return r().createElement("li",{className:"platform-category-sidebar-menu-item"},r().createElement(c.EM,{type:"plain",className:o()({active:l}),onClick:()=>null==i?void 0:i(a)},r().createElement(c.Bj,(0,n.A)({className:"platform-category-sidebar-menu-icon",lib:"easyops",category:"second-menu",icon:"serve-second-menu"},null!==(t=a.icon)&&void 0!==t&&t.lib&&a.icon.icon?(0,u.pick)(a.icon,["lib","icon","theme","category","prefix"]):null)),r().createElement("span",{className:"platform-category-sidebar-menu-item-label"},a.name)))}function v(e){var t;let{item:a}=e;return r().createElement("li",null,r().createElement(c.EM,(0,n.A)({type:"plain"},"app"===a.type?{url:a.url}:{href:a.url,target:"_blank"}),r().createElement("div",{className:"platform-item"},r().createElement("div",{className:"platform-item-title"},r().createElement(c.Bj,(0,n.A)({className:"platform-item-icon",lib:"easyops",category:"third-menu",icon:"deploy-orchestration-tasks-third-menu"},null!==(t=a.menuIcon)&&void 0!==t&&t.lib&&a.menuIcon.icon?(0,u.pick)(a.menuIcon,["lib","icon","theme","category","prefix"]):null)),r().createElement("div",{className:"platform-item-name"},a.name)),r().createElement("div",{className:"platform-item-description"},a.description))))}var f=a(4899),g=a(1675),h=a(2865);function b(e){let{active:t}=e;const a=(0,l.useRef)(null),[i,u]=(0,l.useState)([]),b=(0,l.useCallback)((()=>{var e;null===(e=a.current)||void 0===e||e.focus()}),[]),[y,k]=(0,l.useState)("#all"),E=r().useMemo((()=>{var e;return null===(e=(0,f.getRuntime)())||void 0===e?void 0:e.getFeatureFlags()["launchpad-show-platform-category"]}),[]),N=r().useMemo((()=>{var e;return null===(e=(0,f.getRuntime)())||void 0===e?void 0:e.getFeatureFlags()["launchpad-show-scenario-center"]}),[]),w=r().useMemo((()=>{var e;return null===(e=(0,f.getRuntime)())||void 0===e?void 0:e.getFeatureFlags()["launchpad-show-solution-center"]}),[]),j=r().useMemo((()=>{var e;return null===(e=(0,f.getRuntime)())||void 0===e?void 0:e.getFeatureFlags()["launchpad-show-open-platform"]}),[]),{loading:A,q:C,setQ:M,menuGroups:S,favorites:z,loadingFavorites:B,recentVisits:F,pushRecentVisit:I,toggleStar:R,isStarred:q,platformCategories:_}=(0,m.sZ)(t),P=!!C,$=(0,l.useCallback)((e=>{M(e.target.value)}),[M]),T=(0,l.useCallback)((()=>{M("")}),[M]);(0,l.useEffect)((()=>{var e;t&&(null===(e=a.current)||void 0===e||e.focus())}),[t]);const V=(0,l.useCallback)((e=>{k(e.id)}),[]),D=(0,l.useMemo)((()=>_.find((e=>e.id===y))),[y,_]);return(0,l.useEffect)((()=>{z.length>i.length?u(z):setTimeout((()=>{u(z)}),300)}),[z,i.length]),r().createElement("div",{className:o()("launchpad",{active:t})},r().createElement(p.z.Provider,{value:{searching:P,loadingFavorites:B,pushRecentVisit:I,toggleStar:R,isStarred:q}},r().createElement("div",{className:"sidebar"},r().createElement("div",{className:"union"},r().createElement("div",{className:"quick-nav"},r().createElement("div",{className:"quick-nav-label"},"快捷访问"),r().createElement(g.A,null,r().createElement("ul",{className:"sidebar-menu quick-nav-menu"},i.map(((e,t)=>r().createElement(h.A,{key:t,timeout:300,in:!!z.find((t=>t.id===e.id)),classNames:{enter:"fadeEnter",enterActive:"fadeEnterActive",exit:"fadeExit",exitActive:"fadeExitActive",exitDone:"fadeExitDone"}},r().createElement(s.F,{key:t,item:e}))))))),E&&r().createElement("div",{className:"platform-nav"},r().createElement("div",{className:"platform-nav-label"},"平台底座"),r().createElement("ul",{className:"sidebar-menu platform-nav-menu"},_.map(((e,t)=>r().createElement(d,{key:t,onClick:V,item:e,active:y===e.id})))))),N&&r().createElement("div",{className:"jump-nav"},r().createElement(c.EM,{type:"plain",url:"/portal/scenario"},r().createElement("div",{className:"jump-nav-label"},"场景中心"),r().createElement(c.Bj,{lib:"antd",icon:"right",theme:"outlined"}))),w&&r().createElement("div",{className:"jump-nav"},r().createElement(c.EM,{type:"plain",url:"/portal/solution"},r().createElement("div",{className:"jump-nav-label"},"解决方案"),r().createElement(c.Bj,{lib:"antd",icon:"right",theme:"outlined"}))),j&&r().createElement("div",{className:"jump-nav"},r().createElement(c.EM,{type:"plain",url:"/developers"},r().createElement("div",{className:"jump-nav-label"},"开放平台"),r().createElement(c.Bj,{lib:"antd",icon:"right",theme:"outlined"})))),r().createElement("div",{className:o()("content",{loading:A})},r().createElement(x,{loading:A}),"#all"!==y&&r().createElement("div",{className:"platform-category-name"},null==D?void 0:D.name),r().createElement("div",{className:"search-box",onClick:b},r().createElement(c.Bj,{lib:"fa",icon:"magnifying-glass",className:"search-icon"}),r().createElement("input",{ref:a,placeholder:"通过关键字搜索",value:C,onChange:$,className:"search-input"}),r().createElement(c.Bj,{lib:"antd",theme:"filled",icon:"close-circle",className:o()("search-clear",{searching:P}),onClick:T})),"#all"===y&&r().createElement("div",{className:o()({empty:0===F.length})},r().createElement("div",{className:"recent-visits-label"},"最近访问"),r().createElement("ul",{className:"recent-visits"},F.map(((e,t)=>r().createElement("li",{key:t},r().createElement(c.EM,(0,n.A)({onClick:()=>I(e)},"app"===e.type?{url:e.url}:{href:e.url,target:"_blank"}),r().createElement("span",null,e.name))))))),"#all"===y&&r().createElement("ul",{className:"menu-groups"},S.map((e=>r().createElement(s.r,{key:e.name,name:e.name,items:e.items})))),"#all"!==y&&r().createElement("ul",{className:o()("platform-items",{empty:0===(null==D?void 0:D.items.length)})},null==D?void 0:D.items.map(((e,t)=>r().createElement(v,{item:e,key:t})))))))}function x(e){let{loading:t}=e;return t&&r().createElement("div",{className:"spinner"},r().createElement(c.Bj,{lib:"fa",icon:"spinner",spinning:!0}))}},8356:(e,t,a)=>{a.d(t,{P:()=>i,z:()=>r});var n=a(8769),l=a.n(n);const r=l().createContext({}),i=()=>l().useContext(r)},8839:(e,t,a)=>{a.d(t,{F:()=>d,r:()=>p});var n=a(9575),l=a(8769),r=a.n(l),i=a(1030),o=a(3373),c=a.n(o),m=a(9393),s=a(8356);function p(e){let{name:t,items:a}=e;return r().createElement("li",{className:"menu-group"},r().createElement("div",{className:"menu-group-label"},t),r().createElement("ul",{className:"menu"},a.map((e=>"dir"===e.type?r().createElement(v,{key:`${e.type}-${e.id}`,name:e.name,items:e.items}):r().createElement(u,{key:`${e.type}-${e.id}`,item:e})))))}function u(e){var t;let{item:a}=e;const{loadingFavorites:o,readonly:p,pushRecentVisit:u,toggleStar:d,isStarred:v}=(0,s.P)(),f=(0,l.useMemo)((()=>v(a)),[v,a]),g=(0,l.useCallback)((()=>{d(a)}),[a,d]),h=(0,l.useCallback)((()=>{u(a)}),[a,u]);return r().createElement("li",{className:c()("menu-item",{starred:f,"can-star":!o})},r().createElement(m.EM,(0,n.A)({onClick:h},"app"===a.type?{url:a.url}:{href:a.url}),r().createElement(m.Bj,(0,n.A)({className:"menu-icon",lib:"easyops",icon:"micro-app-center"},null!==(t=a.menuIcon)&&void 0!==t&&t.lib&&a.menuIcon.icon?(0,i.pick)(a.menuIcon,["lib","icon","theme","category","prefix"]):null)),r().createElement("span",{className:"menu-item-label"},a.name)),!p&&r().createElement(m.Bj,{lib:"fa",prefix:f?"fas":"far",icon:"star",className:"menu-item-star",title:f?"取消收藏":"收藏",onClick:g}))}function d(e){var t;let{item:a,target:o}=e;const{readonly:c,pushRecentVisit:p,toggleStar:u}=(0,s.P)(),d=(0,l.useCallback)((()=>{"link"!==a.type&&p(a)}),[a,p]),v=(0,l.useCallback)((()=>{u(a)}),[a,u]);return r().createElement("li",{className:"sidebar-menu-item"},r().createElement(m.EM,(0,n.A)({onClick:d},"app"===a.type?{url:a.url}:{href:a.url},o?{target:o}:null),r().createElement(m.Bj,(0,n.A)({className:"sidebar-menu-icon",lib:"easyops",icon:"micro-app-center"},null!==(t=a.menuIcon)&&void 0!==t&&t.lib&&a.menuIcon.icon?(0,i.pick)(a.menuIcon,["lib","icon","theme","category","prefix"]):null)),r().createElement("span",{className:"menu-item-label"},a.name)),!c&&r().createElement(m.Bj,{lib:"fa",icon:"xmark",className:"menu-item-remove",onClick:v}))}function v(e){let{name:t,items:a}=e;const{searching:n}=(0,s.P)(),[i,o]=(0,l.useState)(!1),[p,d]=(0,l.useState)(!1),v=(0,l.useCallback)((()=>{n?d((e=>!e)):o((e=>!e))}),[n]);(0,l.useEffect)((()=>{d(!0)}),[n]);const f=n?p:i;return r().createElement("li",{className:"menu-item folder"},r().createElement(m.EM,{onClick:v},r().createElement(m.Bj,{lib:"fa",prefix:"far",icon:"folder-open",className:"menu-icon"}),r().createElement("span",{className:"menu-item-label"},t),r().createElement(m.Bj,{lib:"antd",icon:f?"up":"down",className:"menu-item-toggle"})),r().createElement("ul",{className:c()("sub-menu",{expanded:f})},a.map((e=>r().createElement(u,{key:`${e.type}-${e.id}`,item:e})))))}},1724:(e,t,a)=>{a.d(t,{A:()=>o});var n=a(6758),l=a.n(n),r=a(935),i=a.n(r)()(l());i.push([e.id,':root{--eo-launchpad-v2-background:#fff;--eo-launchpad-v2-menu-icon-color:#8c8c8c}html[data-theme="dark"],\nhtml[data-theme="dark-v2"]{--eo-launchpad-v2-background:#26262a;--eo-launchpad-v2-menu-icon-color:rgba(255,255,255,0.45)}',""]);const o=i},8776:(e,t,a)=>{a.d(t,{A:()=>o});var n=a(6758),l=a.n(n),r=a(935),i=a.n(r)()(l());i.push([e.id,".fadeEnter{opacity:0;transform:scale(0.95)}.fadeEnterActive{opacity:1;transform:translateX(0);transition:opacity 100ms ease-out,transform 100ms ease-out}.fadeExit{transform:translate(-30px,0)}.fadeExitActive{transform:translate(-100%,0);transition:transform 300ms ease-out}.fadeExitDone{display:none}",""]);const o=i.toString()},3693:(e,t,a)=>{a.d(t,{A:()=>o});var n=a(6758),l=a.n(n),r=a(935),i=a.n(r)()(l());i.push([e.id,".platform-category-name,\n.platform-category-sidebar-menu-item-label,\n.platform-item-name,\n.platform-item-description{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.platform-category-sidebar-menu-item{display:flex;gap:8px;align-items:center;padding:0px 12px 0px 16px}.platform-category-sidebar-menu-item > eo-link{display:block;min-width:0px;color:var(--color-header-text);cursor:pointer}.platform-category-sidebar-menu-item > eo-link:hover,\n.platform-category-sidebar-menu-item\n > eo-link:hover\n .platform-category-sidebar-menu-icon{color:var(--color-brand-hover)}.platform-category-sidebar-menu-item > eo-link.active,\n.platform-category-sidebar-menu-item\n > eo-link.active\n .platform-category-sidebar-menu-icon{color:var(--color-brand-active)}.platform-category-sidebar-menu-item > eo-link::part(link){height:20px;display:flex;align-items:center;gap:8px}.platform-category-sidebar-menu-icon{color:var(--left-sidebar-item-collapsed-icon-color)}.platform-category-name{font-size:18px;font-weight:500;color:var(--text-color-secondary);flex-shrink:0}.platform-items{display:grid;grid-template-columns:repeat(2,1fr);gap:0 54px}.platform-items > li{min-width:0}.platform-items > li > eo-link{width:100%;cursor:pointer}.platform-item{padding:12px 0;display:flex;flex-direction:column}.platform-item:hover .platform-item-icon,\n.platform-item:hover .platform-item-name{color:var(--color-brand-hover)}.platform-item-title{display:flex;align-items:center;margin-bottom:4px}.platform-item-icon{margin-right:8px;font-size:14px;color:var(--text-color-secondary);flex-shrink:0}.platform-item-name{font-weight:500;color:var(--text-color-title);line-height:18px}.platform-item-description{margin-left:22px;color:var(--text-color-secondary);line-height:18px}",""]);const o=i.toString()},5924:(e,t,a)=>{a.d(t,{A:()=>o});var n=a(6758),l=a.n(n),r=a(935),i=a.n(r)()(l());i.push([e.id,":host{display:inline-block;width:32px;height:32px;--eo-launchpad-v2-max-height:calc(100vh - var(--app-bar-height) - 36px)}:host([hidden]){display:none}.launchpad-button{width:100%;height:100%;display:flex;justify-content:center;align-items:center;color:#999;cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:3px}.launchpad-button:hover,\n.launchpad-button.active{background-color:var(--color-fill-bg-base-1)}.launchpad-button.active{color:var(--color-brand)}.mask{position:fixed;top:0;bottom:0;left:0;right:0;z-index:1;display:none}.mask.active{display:block}.launchpad{display:none;position:absolute;margin-top:4px;z-index:1;width:1110px;max-width:calc(100vw - 100px);height:var(--eo-launchpad-v2-max-height);background-color:var(--eo-launchpad-v2-background);border:1px solid var(--color-text-divider-line);border-radius:6px;box-shadow:var(--fullscreen-overlay-shadow)}.launchpad.active{display:flex}.sidebar{width:190px;display:flex;flex-direction:column;background:var(--color-fill-bg-base-3);min-width:0;background-size:205px 205px;background-repeat:no-repeat;background-position:left 52px bottom 27px}.sidebar > *:not(:last-child){border-bottom:1px solid var(--stroke-color-default)}.quick-nav-label,\n.platform-nav-label,\n.jump-nav-label,\n.menu-group-label,\n.menu-item-label,\n.recent-visits span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-menu,\n.menu-groups,\n.menu,\n.sub-menu,\n.recent-visits,\n.platform-items{list-style:none;margin:0;padding:0}.sidebar-menu,\n.menu,\n.sub-menu{display:flex;flex-direction:column;gap:14px}.sidebar-menu-item > eo-link,\n.menu-item > eo-link,\n.recent-visits eo-link{display:block;min-width:0}.sidebar-menu-item > 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)}.sidebar-menu-item{padding:0 12px 0 16px;justify-content:space-between}.sidebar-menu-icon{color:var(--left-sidebar-item-collapsed-icon-color)}.union{flex:1;display:flex;flex-direction:column;overflow-y:auto}.quick-nav,\n.platform-nav{display:flex;flex-direction:column;padding:20px 0 24px}.platform-nav{padding:0 0 24px}.quick-nav-label,\n.platform-nav-label{color:var(--color-header-text);font-weight:500;margin-bottom:14px;padding:0 16px}.quick-nav-menu,\n.platform-nav-menu{flex:1}.jump-nav > eo-link{display:block;cursor:pointer}.jump-nav > eo-link::part(link){padding:10px 16px;display:flex;justify-content:space-between;align-items:center}.jump-nav-label{flex:1;color:var(--color-header-text);font-weight:500}.jump-nav > eo-icon{font-size:14px;color:var(--text-color-default)}.content{flex:1;padding:20px 24px 24px;min-width:0;overflow-y:auto;display:flex;flex-direction:column;gap:24px}.search-box{border-bottom:1px solid var(--color-text-divider-line);display:flex;gap:8px;align-items:center;padding:10px 0;margin-top:-10px;cursor:text}.search-icon{color:var(--color-auxiliary-text)}.search-input{padding:0;margin:0;border:none;outline:none;color:inherit;background-color:transparent;font-size:14px;line-height:22px;flex:1;min-width:0}.search-input::placeholder{color:var(--color-disabled-text);opacity:1}.search-clear{display:none;color:var(--color-secondary-text);cursor:pointer}.search-clear.searching{display:inline-block}.search-clear:hover{color:var(--color-auxiliary-text)}.menu-groups,\n.recent-visits{grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}.menu-groups{display:grid;gap:32px 8px}.menu-group{padding-right:12px;color:var(--color-header-text)}.menu-group-label{font-size:var(--card-title-font-size);font-weight:500;color:var(--color-header-text);margin-bottom:14px}.sidebar-menu-item,\n.menu-item:not(.folder){display:flex;gap:8px;align-items:center}.menu-icon{color:var(--eo-launchpad-v2-menu-icon-color)}.menu-item.active,\n.menu-item.active .menu-icon{color:var(--color-brand-active)}.sub-menu:not(.expanded){display:none}.sub-menu{margin-top:14px;margin-left:8px;border-left:1px solid var(--color-text-divider-line);padding-left:15px}.menu-item-remove,\n.menu-item-star{cursor:pointer}.menu-item-remove,\n.menu-item-star,\n.menu-item-toggle{color:var(--color-secondary-text)}.sidebar-menu-item:not(:hover) .menu-item-remove{display:none}.menu-item-remove:hover{color:var(--color-normal-text)}.menu-item-remove:active{color:var(--color-strong-text)}.menu-item-star{display:none}.can-star.starred > .menu-item-star,\n.can-star:hover > .menu-item-star{display:inline-block}.can-star:not(.starred) > .menu-item-star{color:var(--color-secondary-text)}.starred > .menu-item-star{color:var(--palette-yellow-6)}.recent-visits-label{margin-bottom:12px;font-size:var(--card-title-font-size);color:var(--color-header-text);font-weight:500}.recent-visits{display:grid;gap:8px}.recent-visits eo-link::part(link){background-color:var(--color-fill-bg-base-1);border-radius:3px;color:var(--color-header-text);display:flex;align-items:center;height:24px;padding:0 8px}.sidebar-menu-item > eo-link:hover::part(link),\n.sidebar-menu-item > eo-link:hover .sidebar-menu-icon,\n.menu-item > eo-link:hover::part(link),\n.menu-item > eo-link:hover .menu-icon,\n.menu-item > eo-link:hover .menu-item-toggle,\n.recent-visits eo-link:hover::part(link){color:var(--color-brand-hover)}.spinner{display:flex;justify-content:center;align-items:center;color:var(--theme-doderblue-color);flex:1;font-size:30px}.empty,\n.loading > :not(.spinner){display:none}@supports not (inset: 0){.content,\n .search-box,\n .sidebar-menu,\n .menu,\n .sub-menu,\n .sidebar-menu-item,\n .menu-item:not(.folder),\n .sidebar-menu-item > eo-link::part(link),\n .menu-item > eo-link::part(link){gap:0}.sidebar-menu > :not(:first-child),\n .menu > :not(:first-child),\n .sub-menu > :not(:first-child){margin-top:14px}.search-icon,\n .sidebar-menu-icon,\n .menu-icon{margin-right:8px}.search-clear,\n .menu-item-star,\n .menu-item-toggle{margin-left:8px}.content > :not(:last-child){margin-bottom:24px}}",""]);const o=i.toString()},9262:(e,t,a)=>{var n=a(2591),l=a.n(n),r=a(1740),i=a.n(r),o=a(8128),c=a.n(o),m=a(855),s=a.n(m),p=a(3051),u=a.n(p),d=a(3656),v=a.n(d),f=a(1724),g={};g.styleTagTransform=v(),g.setAttributes=s(),g.insert=c().bind(null,"head"),g.domAPI=i(),g.insertStyleElement=u(),l()(f.A,g),f.A&&f.A.locals&&f.A.locals}}]);
2
- //# sourceMappingURL=9149.f26f74bb.js.map
1
+ "use strict";(globalThis.webpackChunk_next_bricks_nav=globalThis.webpackChunk_next_bricks_nav||[]).push([[9149],{9302:(e,t,a)=>{a.d(t,{r:()=>b});var n=a(9575),l=a(8769),r=a.n(l),i=a(3373),o=a.n(i),c=a(9393),m=a(2133),s=a(8839),p=a(8356),u=a(1030);function d(e){var t;let{item:a,active:l,onClick:i}=e;return r().createElement("li",{className:"platform-category-sidebar-menu-item"},r().createElement(c.EM,{type:"plain",className:o()({active:l}),onClick:()=>null==i?void 0:i(a)},r().createElement(c.Bj,(0,n.A)({className:"platform-category-sidebar-menu-icon",lib:"easyops",category:"second-menu",icon:"serve-second-menu"},null!==(t=a.icon)&&void 0!==t&&t.lib&&a.icon.icon?(0,u.pick)(a.icon,["lib","icon","theme","category","prefix"]):null)),r().createElement("span",{className:"platform-category-sidebar-menu-item-label"},a.name)))}function v(e){var t;let{item:a}=e;return r().createElement("li",null,r().createElement(c.EM,(0,n.A)({type:"plain"},"app"===a.type?{url:a.url}:{href:a.url,target:"_blank"}),r().createElement("div",{className:"platform-item"},r().createElement("div",{className:"platform-item-title"},r().createElement(c.Bj,(0,n.A)({className:"platform-item-icon",lib:"easyops",category:"third-menu",icon:"deploy-orchestration-tasks-third-menu"},null!==(t=a.menuIcon)&&void 0!==t&&t.lib&&a.menuIcon.icon?(0,u.pick)(a.menuIcon,["lib","icon","theme","category","prefix"]):null)),r().createElement("div",{className:"platform-item-name"},a.name)),r().createElement("div",{className:"platform-item-description"},a.description))))}var f=a(3504),g=a(1675),h=a(2865);function b(e){let{active:t}=e;const a=(0,l.useRef)(null),[i,u]=(0,l.useState)([]),b=(0,l.useCallback)((()=>{var e;null===(e=a.current)||void 0===e||e.focus()}),[]),[y,k]=(0,l.useState)("#all"),E=r().useMemo((()=>{var e;return null===(e=(0,f.getRuntime)())||void 0===e?void 0:e.getFeatureFlags()["launchpad-show-platform-category"]}),[]),N=r().useMemo((()=>{var e;return null===(e=(0,f.getRuntime)())||void 0===e?void 0:e.getFeatureFlags()["launchpad-show-scenario-center"]}),[]),w=r().useMemo((()=>{var e;return null===(e=(0,f.getRuntime)())||void 0===e?void 0:e.getFeatureFlags()["launchpad-show-solution-center"]}),[]),j=r().useMemo((()=>{var e;return null===(e=(0,f.getRuntime)())||void 0===e?void 0:e.getFeatureFlags()["launchpad-show-open-platform"]}),[]),{loading:A,q:C,setQ:M,menuGroups:S,favorites:z,loadingFavorites:B,recentVisits:F,pushRecentVisit:I,toggleStar:R,isStarred:q,platformCategories:_}=(0,m.sZ)(t),P=!!C,$=(0,l.useCallback)((e=>{M(e.target.value)}),[M]),T=(0,l.useCallback)((()=>{M("")}),[M]);(0,l.useEffect)((()=>{var e;t&&(null===(e=a.current)||void 0===e||e.focus())}),[t]);const V=(0,l.useCallback)((e=>{k(e.id)}),[]),D=(0,l.useMemo)((()=>_.find((e=>e.id===y))),[y,_]);return(0,l.useEffect)((()=>{z.length>i.length?u(z):setTimeout((()=>{u(z)}),300)}),[z,i.length]),r().createElement("div",{className:o()("launchpad",{active:t})},r().createElement(p.z.Provider,{value:{searching:P,loadingFavorites:B,pushRecentVisit:I,toggleStar:R,isStarred:q}},r().createElement("div",{className:"sidebar"},r().createElement("div",{className:"union"},r().createElement("div",{className:"quick-nav"},r().createElement("div",{className:"quick-nav-label"},"快捷访问"),r().createElement(g.A,null,r().createElement("ul",{className:"sidebar-menu quick-nav-menu"},i.map(((e,t)=>r().createElement(h.A,{key:t,timeout:300,in:!!z.find((t=>t.id===e.id)),classNames:{enter:"fadeEnter",enterActive:"fadeEnterActive",exit:"fadeExit",exitActive:"fadeExitActive",exitDone:"fadeExitDone"}},r().createElement(s.F,{key:t,item:e}))))))),E&&r().createElement("div",{className:"platform-nav"},r().createElement("div",{className:"platform-nav-label"},"平台底座"),r().createElement("ul",{className:"sidebar-menu platform-nav-menu"},_.map(((e,t)=>r().createElement(d,{key:t,onClick:V,item:e,active:y===e.id})))))),N&&r().createElement("div",{className:"jump-nav"},r().createElement(c.EM,{type:"plain",url:"/portal/scenario"},r().createElement("div",{className:"jump-nav-label"},"场景中心"),r().createElement(c.Bj,{lib:"antd",icon:"right",theme:"outlined"}))),w&&r().createElement("div",{className:"jump-nav"},r().createElement(c.EM,{type:"plain",url:"/portal/solution"},r().createElement("div",{className:"jump-nav-label"},"解决方案"),r().createElement(c.Bj,{lib:"antd",icon:"right",theme:"outlined"}))),j&&r().createElement("div",{className:"jump-nav"},r().createElement(c.EM,{type:"plain",url:"/developers"},r().createElement("div",{className:"jump-nav-label"},"开放平台"),r().createElement(c.Bj,{lib:"antd",icon:"right",theme:"outlined"})))),r().createElement("div",{className:o()("content",{loading:A})},r().createElement(x,{loading:A}),"#all"!==y&&r().createElement("div",{className:"platform-category-name"},null==D?void 0:D.name),r().createElement("div",{className:"search-box",onClick:b},r().createElement(c.Bj,{lib:"fa",icon:"magnifying-glass",className:"search-icon"}),r().createElement("input",{ref:a,placeholder:"通过关键字搜索",value:C,onChange:$,className:"search-input"}),r().createElement(c.Bj,{lib:"antd",theme:"filled",icon:"close-circle",className:o()("search-clear",{searching:P}),onClick:T})),"#all"===y&&r().createElement("div",{className:o()({empty:0===F.length})},r().createElement("div",{className:"recent-visits-label"},"最近访问"),r().createElement("ul",{className:"recent-visits"},F.map(((e,t)=>r().createElement("li",{key:t},r().createElement(c.EM,(0,n.A)({onClick:()=>I(e)},"app"===e.type?{url:e.url}:{href:e.url,target:"_blank"}),r().createElement("span",null,e.name))))))),"#all"===y&&r().createElement("ul",{className:"menu-groups"},S.map((e=>r().createElement(s.r,{key:e.name,name:e.name,items:e.items})))),"#all"!==y&&r().createElement("ul",{className:o()("platform-items",{empty:0===(null==D?void 0:D.items.length)})},null==D?void 0:D.items.map(((e,t)=>r().createElement(v,{item:e,key:t})))))))}function x(e){let{loading:t}=e;return t&&r().createElement("div",{className:"spinner"},r().createElement(c.Bj,{lib:"fa",icon:"spinner",spinning:!0}))}},8356:(e,t,a)=>{a.d(t,{P:()=>i,z:()=>r});var n=a(8769),l=a.n(n);const r=l().createContext({}),i=()=>l().useContext(r)},8839:(e,t,a)=>{a.d(t,{F:()=>d,r:()=>p});var n=a(9575),l=a(8769),r=a.n(l),i=a(1030),o=a(3373),c=a.n(o),m=a(9393),s=a(8356);function p(e){let{name:t,items:a}=e;return r().createElement("li",{className:"menu-group"},r().createElement("div",{className:"menu-group-label"},t),r().createElement("ul",{className:"menu"},a.map((e=>"dir"===e.type?r().createElement(v,{key:`${e.type}-${e.id}`,name:e.name,items:e.items}):r().createElement(u,{key:`${e.type}-${e.id}`,item:e})))))}function u(e){var t;let{item:a}=e;const{loadingFavorites:o,readonly:p,pushRecentVisit:u,toggleStar:d,isStarred:v}=(0,s.P)(),f=(0,l.useMemo)((()=>v(a)),[v,a]),g=(0,l.useCallback)((()=>{d(a)}),[a,d]),h=(0,l.useCallback)((()=>{u(a)}),[a,u]);return r().createElement("li",{className:c()("menu-item",{starred:f,"can-star":!o})},r().createElement(m.EM,(0,n.A)({onClick:h},"app"===a.type?{url:a.url}:{href:a.url}),r().createElement(m.Bj,(0,n.A)({className:"menu-icon",lib:"easyops",icon:"micro-app-center"},null!==(t=a.menuIcon)&&void 0!==t&&t.lib&&a.menuIcon.icon?(0,i.pick)(a.menuIcon,["lib","icon","theme","category","prefix"]):null)),r().createElement("span",{className:"menu-item-label"},a.name)),!p&&r().createElement(m.Bj,{lib:"fa",prefix:f?"fas":"far",icon:"star",className:"menu-item-star",title:f?"取消收藏":"收藏",onClick:g}))}function d(e){var t;let{item:a,target:o}=e;const{readonly:c,pushRecentVisit:p,toggleStar:u}=(0,s.P)(),d=(0,l.useCallback)((()=>{"link"!==a.type&&p(a)}),[a,p]),v=(0,l.useCallback)((()=>{u(a)}),[a,u]);return r().createElement("li",{className:"sidebar-menu-item"},r().createElement(m.EM,(0,n.A)({onClick:d},"app"===a.type?{url:a.url}:{href:a.url},o?{target:o}:null),r().createElement(m.Bj,(0,n.A)({className:"sidebar-menu-icon",lib:"easyops",icon:"micro-app-center"},null!==(t=a.menuIcon)&&void 0!==t&&t.lib&&a.menuIcon.icon?(0,i.pick)(a.menuIcon,["lib","icon","theme","category","prefix"]):null)),r().createElement("span",{className:"menu-item-label"},a.name)),!c&&r().createElement(m.Bj,{lib:"fa",icon:"xmark",className:"menu-item-remove",onClick:v}))}function v(e){let{name:t,items:a}=e;const{searching:n}=(0,s.P)(),[i,o]=(0,l.useState)(!1),[p,d]=(0,l.useState)(!1),v=(0,l.useCallback)((()=>{n?d((e=>!e)):o((e=>!e))}),[n]);(0,l.useEffect)((()=>{d(!0)}),[n]);const f=n?p:i;return r().createElement("li",{className:"menu-item folder"},r().createElement(m.EM,{onClick:v},r().createElement(m.Bj,{lib:"fa",prefix:"far",icon:"folder-open",className:"menu-icon"}),r().createElement("span",{className:"menu-item-label"},t),r().createElement(m.Bj,{lib:"antd",icon:f?"up":"down",className:"menu-item-toggle"})),r().createElement("ul",{className:c()("sub-menu",{expanded:f})},a.map((e=>r().createElement(u,{key:`${e.type}-${e.id}`,item:e})))))}},1724:(e,t,a)=>{a.d(t,{A:()=>o});var n=a(6758),l=a.n(n),r=a(935),i=a.n(r)()(l());i.push([e.id,':root{--eo-launchpad-v2-background:#fff;--eo-launchpad-v2-menu-icon-color:#8c8c8c}html[data-theme="dark"],\nhtml[data-theme="dark-v2"]{--eo-launchpad-v2-background:#26262a;--eo-launchpad-v2-menu-icon-color:rgba(255,255,255,0.45)}',""]);const o=i},8776:(e,t,a)=>{a.d(t,{A:()=>o});var n=a(6758),l=a.n(n),r=a(935),i=a.n(r)()(l());i.push([e.id,".fadeEnter{opacity:0;transform:scale(0.95)}.fadeEnterActive{opacity:1;transform:translateX(0);transition:opacity 100ms ease-out,transform 100ms ease-out}.fadeExit{transform:translate(-30px,0)}.fadeExitActive{transform:translate(-100%,0);transition:transform 300ms ease-out}.fadeExitDone{display:none}",""]);const o=i.toString()},3693:(e,t,a)=>{a.d(t,{A:()=>o});var n=a(6758),l=a.n(n),r=a(935),i=a.n(r)()(l());i.push([e.id,".platform-category-name,\n.platform-category-sidebar-menu-item-label,\n.platform-item-name,\n.platform-item-description{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.platform-category-sidebar-menu-item{display:flex;gap:8px;align-items:center;padding:0px 12px 0px 16px}.platform-category-sidebar-menu-item > eo-link{display:block;min-width:0px;color:var(--color-header-text);cursor:pointer}.platform-category-sidebar-menu-item > eo-link:hover,\n.platform-category-sidebar-menu-item\n > eo-link:hover\n .platform-category-sidebar-menu-icon{color:var(--color-brand-hover)}.platform-category-sidebar-menu-item > eo-link.active,\n.platform-category-sidebar-menu-item\n > eo-link.active\n .platform-category-sidebar-menu-icon{color:var(--color-brand-active)}.platform-category-sidebar-menu-item > eo-link::part(link){height:20px;display:flex;align-items:center;gap:8px}.platform-category-sidebar-menu-icon{color:var(--left-sidebar-item-collapsed-icon-color)}.platform-category-name{font-size:18px;font-weight:500;color:var(--text-color-secondary);flex-shrink:0}.platform-items{display:grid;grid-template-columns:repeat(2,1fr);gap:0 54px}.platform-items > li{min-width:0}.platform-items > li > eo-link{width:100%;cursor:pointer}.platform-item{padding:12px 0;display:flex;flex-direction:column}.platform-item:hover .platform-item-icon,\n.platform-item:hover .platform-item-name{color:var(--color-brand-hover)}.platform-item-title{display:flex;align-items:center;margin-bottom:4px}.platform-item-icon{margin-right:8px;font-size:14px;color:var(--text-color-secondary);flex-shrink:0}.platform-item-name{font-weight:500;color:var(--text-color-title);line-height:18px}.platform-item-description{margin-left:22px;color:var(--text-color-secondary);line-height:18px}",""]);const o=i.toString()},5924:(e,t,a)=>{a.d(t,{A:()=>o});var n=a(6758),l=a.n(n),r=a(935),i=a.n(r)()(l());i.push([e.id,":host{display:inline-block;width:32px;height:32px;--eo-launchpad-v2-max-height:calc(100vh - var(--app-bar-height) - 36px)}:host([hidden]){display:none}.launchpad-button{width:100%;height:100%;display:flex;justify-content:center;align-items:center;color:#999;cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:3px}.launchpad-button:hover,\n.launchpad-button.active{background-color:var(--color-fill-bg-base-1)}.launchpad-button.active{color:var(--color-brand)}.mask{position:fixed;top:0;bottom:0;left:0;right:0;z-index:1;display:none}.mask.active{display:block}.launchpad{display:none;position:absolute;margin-top:4px;z-index:1;width:1110px;max-width:calc(100vw - 100px);height:var(--eo-launchpad-v2-max-height);background-color:var(--eo-launchpad-v2-background);border:1px solid var(--color-text-divider-line);border-radius:6px;box-shadow:var(--fullscreen-overlay-shadow)}.launchpad.active{display:flex}.sidebar{width:190px;display:flex;flex-direction:column;background:var(--color-fill-bg-base-3);min-width:0;background-size:205px 205px;background-repeat:no-repeat;background-position:left 52px bottom 27px}.sidebar > *:not(:last-child){border-bottom:1px solid var(--stroke-color-default)}.quick-nav-label,\n.platform-nav-label,\n.jump-nav-label,\n.menu-group-label,\n.menu-item-label,\n.recent-visits span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-menu,\n.menu-groups,\n.menu,\n.sub-menu,\n.recent-visits,\n.platform-items{list-style:none;margin:0;padding:0}.sidebar-menu,\n.menu,\n.sub-menu{display:flex;flex-direction:column;gap:14px}.sidebar-menu-item > eo-link,\n.menu-item > eo-link,\n.recent-visits eo-link{display:block;min-width:0}.sidebar-menu-item > 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)}.sidebar-menu-item{padding:0 12px 0 16px;justify-content:space-between}.sidebar-menu-icon{color:var(--left-sidebar-item-collapsed-icon-color)}.union{flex:1;display:flex;flex-direction:column;overflow-y:auto}.quick-nav,\n.platform-nav{display:flex;flex-direction:column;padding:20px 0 24px}.platform-nav{padding:0 0 24px}.quick-nav-label,\n.platform-nav-label{color:var(--color-header-text);font-weight:500;margin-bottom:14px;padding:0 16px}.quick-nav-menu,\n.platform-nav-menu{flex:1}.jump-nav > eo-link{display:block;cursor:pointer}.jump-nav > eo-link::part(link){padding:10px 16px;display:flex;justify-content:space-between;align-items:center}.jump-nav-label{flex:1;color:var(--color-header-text);font-weight:500}.jump-nav > eo-icon{font-size:14px;color:var(--text-color-default)}.content{flex:1;padding:20px 24px 24px;min-width:0;overflow-y:auto;display:flex;flex-direction:column;gap:24px}.search-box{border-bottom:1px solid var(--color-text-divider-line);display:flex;gap:8px;align-items:center;padding:10px 0;margin-top:-10px;cursor:text}.search-icon{color:var(--color-auxiliary-text)}.search-input{padding:0;margin:0;border:none;outline:none;color:inherit;background-color:transparent;font-size:14px;line-height:22px;flex:1;min-width:0}.search-input::placeholder{color:var(--color-disabled-text);opacity:1}.search-clear{display:none;color:var(--color-secondary-text);cursor:pointer}.search-clear.searching{display:inline-block}.search-clear:hover{color:var(--color-auxiliary-text)}.menu-groups,\n.recent-visits{grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}.menu-groups{display:grid;gap:32px 8px}.menu-group{padding-right:12px;color:var(--color-header-text)}.menu-group-label{font-size:var(--card-title-font-size);font-weight:500;color:var(--color-header-text);margin-bottom:14px}.sidebar-menu-item,\n.menu-item:not(.folder){display:flex;gap:8px;align-items:center}.menu-icon{color:var(--eo-launchpad-v2-menu-icon-color)}.menu-item.active,\n.menu-item.active .menu-icon{color:var(--color-brand-active)}.sub-menu:not(.expanded){display:none}.sub-menu{margin-top:14px;margin-left:8px;border-left:1px solid var(--color-text-divider-line);padding-left:15px}.menu-item-remove,\n.menu-item-star{cursor:pointer}.menu-item-remove,\n.menu-item-star,\n.menu-item-toggle{color:var(--color-secondary-text)}.sidebar-menu-item:not(:hover) .menu-item-remove{display:none}.menu-item-remove:hover{color:var(--color-normal-text)}.menu-item-remove:active{color:var(--color-strong-text)}.menu-item-star{display:none}.can-star.starred > .menu-item-star,\n.can-star:hover > .menu-item-star{display:inline-block}.can-star:not(.starred) > .menu-item-star{color:var(--color-secondary-text)}.starred > .menu-item-star{color:var(--palette-yellow-6)}.recent-visits-label{margin-bottom:12px;font-size:var(--card-title-font-size);color:var(--color-header-text);font-weight:500}.recent-visits{display:grid;gap:8px}.recent-visits eo-link::part(link){background-color:var(--color-fill-bg-base-1);border-radius:3px;color:var(--color-header-text);display:flex;align-items:center;height:24px;padding:0 8px}.sidebar-menu-item > eo-link:hover::part(link),\n.sidebar-menu-item > eo-link:hover .sidebar-menu-icon,\n.menu-item > eo-link:hover::part(link),\n.menu-item > eo-link:hover .menu-icon,\n.menu-item > eo-link:hover .menu-item-toggle,\n.recent-visits eo-link:hover::part(link){color:var(--color-brand-hover)}.spinner{display:flex;justify-content:center;align-items:center;color:var(--theme-doderblue-color);flex:1;font-size:30px}.empty,\n.loading > :not(.spinner){display:none}@supports not (inset: 0){.content,\n .search-box,\n .sidebar-menu,\n .menu,\n .sub-menu,\n .sidebar-menu-item,\n .menu-item:not(.folder),\n .sidebar-menu-item > eo-link::part(link),\n .menu-item > eo-link::part(link){gap:0}.sidebar-menu > :not(:first-child),\n .menu > :not(:first-child),\n .sub-menu > :not(:first-child){margin-top:14px}.search-icon,\n .sidebar-menu-icon,\n .menu-icon{margin-right:8px}.search-clear,\n .menu-item-star,\n .menu-item-toggle{margin-left:8px}.content > :not(:last-child){margin-bottom:24px}}",""]);const o=i.toString()},9262:(e,t,a)=>{var n=a(2591),l=a.n(n),r=a(1740),i=a.n(r),o=a(8128),c=a.n(o),m=a(855),s=a.n(m),p=a(3051),u=a.n(p),d=a(3656),v=a.n(d),f=a(1724),g={};g.styleTagTransform=v(),g.setAttributes=s(),g.insert=c().bind(null,"head"),g.domAPI=i(),g.insertStyleElement=u(),l()(f.A,g),f.A&&f.A.locals&&f.A.locals}}]);
2
+ //# sourceMappingURL=9149.1577ab1e.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"chunks/9149.f26f74bb.js","mappings":"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","sources":["webpack:///./src/launchpad-button-v2/PlatformCategory.tsx","webpack:///./src/launchpad-button-v2/Launchpad.tsx","webpack:///./src/launchpad-button-v2/LaunchpadContext.ts","webpack:///./src/launchpad-button-v2/MenuGroup.tsx","webpack:///./src/launchpad-button-v2/host-context.css","webpack:///./src/launchpad-button-v2/Launchpad.shadow.css","webpack:///./src/launchpad-button-v2/PlatformCategory.shadow.css","webpack:///./src/launchpad-button-v2/styles.shadow.css","webpack:///./src/launchpad-button-v2/host-context.css?59a8"],"sourcesContent":["import React from \"react\";\nimport { WrappedLink, WrappedIcon } from \"./wrapped-bricks\";\nimport { MenuItemDataNormal, PlatformCategoryItem } from \"./interfaces\";\nimport { pick } from \"lodash\";\nimport classNames from \"classnames\";\n\nexport interface PlatformCategorySidebarMenuItemProps {\n item: PlatformCategoryItem;\n active?: boolean;\n onClick?: (item: PlatformCategoryItem) => void;\n}\n\nexport function PlatformCategorySidebarMenuItem({\n item,\n active,\n onClick,\n}: PlatformCategorySidebarMenuItemProps) {\n return (\n <li className=\"platform-category-sidebar-menu-item\">\n <WrappedLink\n type=\"plain\"\n className={classNames({ active })}\n onClick={() => onClick?.(item)}\n >\n <WrappedIcon\n className={\"platform-category-sidebar-menu-icon\"}\n lib=\"easyops\"\n category=\"second-menu\"\n icon=\"serve-second-menu\"\n {...(item.icon?.lib && item.icon.icon\n ? (pick(item.icon, [\n \"lib\",\n \"icon\",\n \"theme\",\n \"category\",\n \"prefix\",\n ]) as any)\n : null)}\n />\n <span className=\"platform-category-sidebar-menu-item-label\">\n {item.name}\n </span>\n </WrappedLink>\n </li>\n );\n}\n\nexport interface PlatformItemProps {\n item: MenuItemDataNormal;\n}\n\nexport function PlatformItem({ item }: PlatformItemProps) {\n return (\n <li>\n <WrappedLink\n type=\"plain\"\n {...(item.type === \"app\"\n ? {\n url: item.url,\n }\n : {\n href: item.url,\n target: \"_blank\",\n })}\n >\n <div className=\"platform-item\">\n <div className=\"platform-item-title\">\n <WrappedIcon\n className=\"platform-item-icon\"\n lib=\"easyops\"\n category=\"third-menu\"\n icon=\"deploy-orchestration-tasks-third-menu\"\n {...(item.menuIcon?.lib && item.menuIcon.icon\n ? (pick(item.menuIcon, [\n \"lib\",\n \"icon\",\n \"theme\",\n \"category\",\n \"prefix\",\n ]) as any)\n : null)}\n />\n <div className=\"platform-item-name\">{item.name}</div>\n </div>\n <div className=\"platform-item-description\">{item.description}</div>\n </div>\n </WrappedLink>\n </li>\n );\n}\n","import React, {\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport classNames from \"classnames\";\nimport { WrappedIcon, WrappedLink } from \"./wrapped-bricks\";\nimport { useLaunchpadInfo } from \"./useLaunchpadInfo.js\";\nimport { MenuGroup, SidebarMenuItem } from \"./MenuGroup.js\";\nimport { LaunchpadsContext } from \"./LaunchpadContext.js\";\nimport {\n FavMenuItem,\n PlatformCategoryItem,\n SidebarMenuItemData,\n} from \"./interfaces\";\nimport {\n PlatformItem,\n PlatformCategorySidebarMenuItem,\n} from \"./PlatformCategory\";\nimport { getRuntime } from \"@next-core/runtime\";\nimport { CSSTransition, TransitionGroup } from \"react-transition-group\";\n\nexport function Launchpad({ active }: { active?: boolean }) {\n const searchInputRef = useRef<HTMLInputElement>(null);\n const [favorites, setFavorites] = useState<FavMenuItem[]>([]);\n const handleClickSearchBox = useCallback(() => {\n searchInputRef.current?.focus();\n }, []);\n const [platform, setPlatform] = useState(\"#all\");\n\n const showPlatformCategory = React.useMemo(\n () => getRuntime()?.getFeatureFlags()[\"launchpad-show-platform-category\"],\n []\n );\n\n const showScenarioCenter = React.useMemo(\n () => getRuntime()?.getFeatureFlags()[\"launchpad-show-scenario-center\"],\n []\n );\n\n const showSolutionCenter = React.useMemo(\n () => getRuntime()?.getFeatureFlags()[\"launchpad-show-solution-center\"],\n []\n );\n\n const showOpenPlatform = React.useMemo(\n () => getRuntime()?.getFeatureFlags()[\"launchpad-show-open-platform\"],\n []\n );\n\n const {\n loading,\n q,\n setQ,\n menuGroups,\n favorites: _favorites,\n loadingFavorites,\n recentVisits,\n pushRecentVisit,\n toggleStar,\n isStarred,\n platformCategories,\n } = useLaunchpadInfo(active);\n const searching = !!q;\n\n const handleSearch = useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n setQ(e.target.value);\n },\n [setQ]\n );\n\n const clearSearch = useCallback(() => {\n setQ(\"\");\n }, [setQ]);\n\n useEffect(() => {\n if (active) {\n searchInputRef.current?.focus();\n }\n }, [active]);\n\n const handlePlatformCategoryClick = useCallback(\n (item: PlatformCategoryItem) => {\n setPlatform(item.id);\n },\n []\n );\n\n const curCategory = useMemo(() => {\n return platformCategories.find((v) => v.id === platform);\n }, [platform, platformCategories]);\n\n useEffect(() => {\n if (_favorites.length > favorites.length) {\n // 新增无需等待直接更新列表\n setFavorites(_favorites);\n } else {\n // 删除操作需要等待动画执行完后才更新列表数据\n setTimeout(() => {\n setFavorites(_favorites);\n }, 300);\n }\n }, [_favorites, favorites.length]);\n\n return (\n <div className={classNames(\"launchpad\", { active })}>\n <LaunchpadsContext.Provider\n value={{\n searching,\n loadingFavorites,\n pushRecentVisit,\n toggleStar,\n isStarred,\n }}\n >\n <div className=\"sidebar\">\n <div className=\"union\">\n <div className=\"quick-nav\">\n <div className=\"quick-nav-label\">快捷访问</div>\n {/* <Loading loading={loading || loadingFavorites} /> */}\n <TransitionGroup>\n <ul className=\"sidebar-menu quick-nav-menu\">\n {favorites.map((item, index) => (\n <CSSTransition\n key={index}\n timeout={300}\n in={!!_favorites.find((i) => i.id === item.id)}\n classNames={{\n enter: \"fadeEnter\",\n enterActive: \"fadeEnterActive\",\n exit: \"fadeExit\",\n exitActive: \"fadeExitActive\",\n exitDone: \"fadeExitDone\",\n }}\n >\n <SidebarMenuItem\n key={index}\n item={item as SidebarMenuItemData}\n />\n </CSSTransition>\n ))}\n </ul>\n </TransitionGroup>\n </div>\n\n {showPlatformCategory && (\n <div className=\"platform-nav\">\n <div className=\"platform-nav-label\">平台底座</div>\n <ul className=\"sidebar-menu platform-nav-menu\">\n {platformCategories.map((item, index) => (\n <PlatformCategorySidebarMenuItem\n key={index}\n onClick={handlePlatformCategoryClick}\n item={item}\n active={platform === item.id}\n />\n ))}\n </ul>\n </div>\n )}\n </div>\n {showScenarioCenter && (\n <div className=\"jump-nav\">\n <WrappedLink type=\"plain\" url={\"/portal/scenario\"}>\n <div className=\"jump-nav-label\">场景中心</div>\n <WrappedIcon lib=\"antd\" icon=\"right\" theme=\"outlined\" />\n </WrappedLink>\n </div>\n )}\n\n {showSolutionCenter && (\n <div className=\"jump-nav\">\n <WrappedLink type=\"plain\" url={\"/portal/solution\"}>\n <div className=\"jump-nav-label\">解决方案</div>\n <WrappedIcon lib=\"antd\" icon=\"right\" theme=\"outlined\" />\n </WrappedLink>\n </div>\n )}\n {showOpenPlatform && (\n <div className=\"jump-nav\">\n <WrappedLink type=\"plain\" url={\"/developers\"}>\n <div className=\"jump-nav-label\">开放平台</div>\n <WrappedIcon lib=\"antd\" icon=\"right\" theme=\"outlined\" />\n </WrappedLink>\n </div>\n )}\n </div>\n <div className={classNames(\"content\", { loading })}>\n <Loading loading={loading} />\n {platform !== \"#all\" && (\n <div className=\"platform-category-name\">{curCategory?.name}</div>\n )}\n <div className=\"search-box\" onClick={handleClickSearchBox}>\n <WrappedIcon\n lib=\"fa\"\n icon=\"magnifying-glass\"\n className=\"search-icon\"\n />\n <input\n ref={searchInputRef}\n placeholder=\"通过关键字搜索\"\n value={q}\n onChange={handleSearch}\n className=\"search-input\"\n />\n <WrappedIcon\n lib=\"antd\"\n theme=\"filled\"\n icon=\"close-circle\"\n className={classNames(\"search-clear\", { searching })}\n onClick={clearSearch}\n />\n </div>\n {platform === \"#all\" && (\n <div className={classNames({ empty: recentVisits.length === 0 })}>\n <div className=\"recent-visits-label\">最近访问</div>\n <ul className=\"recent-visits\">\n {recentVisits.map((item, index) => (\n <li key={index}>\n <WrappedLink\n onClick={() => pushRecentVisit(item)}\n {...(item.type === \"app\"\n ? {\n url: item.url,\n }\n : {\n href: item.url,\n target: \"_blank\",\n })}\n >\n <span>{item.name}</span>\n </WrappedLink>\n </li>\n ))}\n </ul>\n </div>\n )}\n {platform === \"#all\" && (\n <ul className=\"menu-groups\">\n {menuGroups.map((group) => (\n <MenuGroup\n key={group.name}\n name={group.name}\n items={group.items}\n />\n ))}\n </ul>\n )}\n {platform !== \"#all\" && (\n <ul\n className={classNames(\"platform-items\", {\n empty: curCategory?.items.length === 0,\n })}\n >\n {curCategory?.items.map((item, index) => (\n <PlatformItem item={item} key={index} />\n ))}\n </ul>\n )}\n </div>\n </LaunchpadsContext.Provider>\n </div>\n );\n}\n\nfunction Loading({ loading }: { loading: boolean }) {\n return (\n loading && (\n <div className=\"spinner\">\n <WrappedIcon lib=\"fa\" icon=\"spinner\" spinning />\n </div>\n )\n );\n}\n","import React from \"react\";\nimport type { MenuItemDataLink, MenuItemDataNormal } from \"./interfaces\";\n\nexport interface LaunchpadContextData {\n searching: boolean;\n loadingFavorites: boolean;\n readonly?: boolean;\n pushRecentVisit(item: MenuItemDataNormal): void;\n toggleStar(item: MenuItemDataNormal | MenuItemDataLink): void;\n isStarred(item: MenuItemDataNormal): boolean;\n}\n\nexport const LaunchpadsContext = React.createContext<LaunchpadContextData>(\n {} as LaunchpadContextData\n);\n\nexport const useLaunchpadContext = (): LaunchpadContextData =>\n React.useContext(LaunchpadsContext);\n","import React, { useCallback, useEffect, useMemo, useState } from \"react\";\nimport { pick } from \"lodash\";\nimport classNames from \"classnames\";\nimport { WrappedIcon, WrappedLink } from \"./wrapped-bricks\";\nimport { useLaunchpadContext } from \"./LaunchpadContext\";\nimport type {\n MenuItemData,\n MenuItemDataNormal,\n SidebarMenuItemData,\n} from \"./interfaces\";\nimport { Target } from \"@next-bricks/basic/link\";\n\nexport interface MenuGroupProps {\n name: string;\n items: MenuItemData[];\n}\n\nexport function MenuGroup({ name, items }: MenuGroupProps) {\n return (\n <li className=\"menu-group\">\n <div className=\"menu-group-label\">{name}</div>\n <ul className=\"menu\">\n {items.map((item) =>\n item.type === \"dir\" ? (\n <MenuItemFolder\n key={`${item.type}-${item.id}`}\n name={item.name}\n items={item.items}\n />\n ) : (\n <MenuItem key={`${item.type}-${item.id}`} item={item} />\n )\n )}\n </ul>\n </li>\n );\n}\n\nexport interface MenuItemProps {\n item: MenuItemDataNormal;\n}\n\nfunction MenuItem({ item }: MenuItemProps) {\n const { loadingFavorites, readonly, pushRecentVisit, toggleStar, isStarred } =\n useLaunchpadContext();\n\n const starred = useMemo(() => isStarred(item), [isStarred, item]);\n\n const handleStarClick = useCallback(() => {\n toggleStar(item);\n }, [item, toggleStar]);\n\n const handleClick = useCallback(() => {\n pushRecentVisit(item);\n }, [item, pushRecentVisit]);\n\n return (\n <li\n className={classNames(\"menu-item\", {\n starred,\n \"can-star\": !loadingFavorites,\n })}\n >\n <WrappedLink\n onClick={handleClick}\n {...(item.type === \"app\"\n ? {\n url: item.url,\n }\n : {\n href: item.url,\n })}\n >\n <WrappedIcon\n className=\"menu-icon\"\n lib=\"easyops\"\n icon=\"micro-app-center\"\n {...(item.menuIcon?.lib && item.menuIcon.icon\n ? (pick(item.menuIcon, [\n \"lib\",\n \"icon\",\n \"theme\",\n \"category\",\n \"prefix\",\n ]) as any)\n : null)}\n />\n <span className=\"menu-item-label\">{item.name}</span>\n </WrappedLink>\n {!readonly && (\n <WrappedIcon\n lib=\"fa\"\n prefix={starred ? \"fas\" : \"far\"}\n icon=\"star\"\n className=\"menu-item-star\"\n title={starred ? \"取消收藏\" : \"收藏\"}\n onClick={handleStarClick}\n />\n )}\n </li>\n );\n}\n\nexport interface SidebarMenuItemProps {\n item: SidebarMenuItemData;\n target?: Target;\n}\n\nexport function SidebarMenuItem({ item, target }: SidebarMenuItemProps) {\n const { readonly, pushRecentVisit, toggleStar } = useLaunchpadContext();\n\n const handleClick = useCallback(() => {\n if (item.type !== \"link\") {\n pushRecentVisit(item);\n }\n }, [item, pushRecentVisit]);\n\n const handleRemoveStar = useCallback(() => {\n toggleStar(item);\n }, [item, toggleStar]);\n\n return (\n <li className=\"sidebar-menu-item\">\n <WrappedLink\n onClick={handleClick}\n {...(item.type === \"app\"\n ? {\n url: item.url,\n }\n : {\n href: item.url,\n })}\n {...(target\n ? {\n target,\n }\n : null)}\n >\n <WrappedIcon\n className={`sidebar-menu-icon`}\n lib=\"easyops\"\n icon=\"micro-app-center\"\n {...(item.menuIcon?.lib && item.menuIcon.icon\n ? (pick(item.menuIcon, [\n \"lib\",\n \"icon\",\n \"theme\",\n \"category\",\n \"prefix\",\n ]) as any)\n : null)}\n />\n <span className=\"menu-item-label\">{item.name}</span>\n </WrappedLink>\n {!readonly && (\n <WrappedIcon\n lib=\"fa\"\n icon=\"xmark\"\n className=\"menu-item-remove\"\n onClick={handleRemoveStar}\n />\n )}\n </li>\n );\n}\n\nexport interface MenuItemFolderProps {\n name: string;\n items: MenuItemDataNormal[];\n}\n\nfunction MenuItemFolder({ name, items }: MenuItemFolderProps) {\n const { searching } = useLaunchpadContext();\n const [expanded, setExpanded] = useState(false);\n const [searchingExpanded, setSearchingExpanded] = useState(false);\n\n const toggle = useCallback(() => {\n // Use separated expanded states for searching and non-searching.\n if (searching) {\n setSearchingExpanded((previous) => !previous);\n } else {\n setExpanded((previous) => !previous);\n }\n }, [searching]);\n\n useEffect(() => {\n // Each time when start searching, set it as expanded.\n setSearchingExpanded(true);\n }, [searching]);\n\n const actualExpanded = searching ? searchingExpanded : expanded;\n\n return (\n <li className=\"menu-item folder\">\n <WrappedLink onClick={toggle}>\n <WrappedIcon\n lib=\"fa\"\n prefix=\"far\"\n icon=\"folder-open\"\n className=\"menu-icon\"\n />\n <span className=\"menu-item-label\">{name}</span>\n <WrappedIcon\n lib=\"antd\"\n icon={actualExpanded ? \"up\" : \"down\"}\n className=\"menu-item-toggle\"\n />\n </WrappedLink>\n <ul className={classNames(\"sub-menu\", { expanded: actualExpanded })}>\n {items.map((item) => (\n <MenuItem key={`${item.type}-${item.id}`} item={item} />\n ))}\n </ul>\n </li>\n );\n}\n","// 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, `:root{--eo-launchpad-v2-background:#fff;--eo-launchpad-v2-menu-icon-color:#8c8c8c}html[data-theme=\"dark\"],\nhtml[data-theme=\"dark-v2\"]{--eo-launchpad-v2-background:#26262a;--eo-launchpad-v2-menu-icon-color:rgba(255,255,255,0.45)}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// 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, `.fadeEnter{opacity:0;transform:scale(0.95)}.fadeEnterActive{opacity:1;transform:translateX(0);transition:opacity 100ms ease-out,transform 100ms ease-out}.fadeExit{transform:translate(-30px,0)}.fadeExitActive{transform:translate(-100%,0);transition:transform 300ms ease-out}.fadeExitDone{display:none}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// 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, `.platform-category-name,\n.platform-category-sidebar-menu-item-label,\n.platform-item-name,\n.platform-item-description{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.platform-category-sidebar-menu-item{display:flex;gap:8px;align-items:center;padding:0px 12px 0px 16px}.platform-category-sidebar-menu-item > eo-link{display:block;min-width:0px;color:var(--color-header-text);cursor:pointer}.platform-category-sidebar-menu-item > eo-link:hover,\n.platform-category-sidebar-menu-item\n > eo-link:hover\n .platform-category-sidebar-menu-icon{color:var(--color-brand-hover)}.platform-category-sidebar-menu-item > eo-link.active,\n.platform-category-sidebar-menu-item\n > eo-link.active\n .platform-category-sidebar-menu-icon{color:var(--color-brand-active)}.platform-category-sidebar-menu-item > eo-link::part(link){height:20px;display:flex;align-items:center;gap:8px}.platform-category-sidebar-menu-icon{color:var(--left-sidebar-item-collapsed-icon-color)}.platform-category-name{font-size:18px;font-weight:500;color:var(--text-color-secondary);flex-shrink:0}.platform-items{display:grid;grid-template-columns:repeat(2,1fr);gap:0 54px}.platform-items > li{min-width:0}.platform-items > li > eo-link{width:100%;cursor:pointer}.platform-item{padding:12px 0;display:flex;flex-direction:column}.platform-item:hover .platform-item-icon,\n.platform-item:hover .platform-item-name{color:var(--color-brand-hover)}.platform-item-title{display:flex;align-items:center;margin-bottom:4px}.platform-item-icon{margin-right:8px;font-size:14px;color:var(--text-color-secondary);flex-shrink:0}.platform-item-name{font-weight:500;color:var(--text-color-title);line-height:18px}.platform-item-description{margin-left:22px;color:var(--text-color-secondary);line-height:18px}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// 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:inline-block;width:32px;height:32px;--eo-launchpad-v2-max-height:calc(100vh - var(--app-bar-height) - 36px)}:host([hidden]){display:none}.launchpad-button{width:100%;height:100%;display:flex;justify-content:center;align-items:center;color:#999;cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:3px}.launchpad-button:hover,\n.launchpad-button.active{background-color:var(--color-fill-bg-base-1)}.launchpad-button.active{color:var(--color-brand)}.mask{position:fixed;top:0;bottom:0;left:0;right:0;z-index:1;display:none}.mask.active{display:block}.launchpad{display:none;position:absolute;margin-top:4px;z-index:1;width:1110px;max-width:calc(100vw - 100px);height:var(--eo-launchpad-v2-max-height);background-color:var(--eo-launchpad-v2-background);border:1px solid var(--color-text-divider-line);border-radius:6px;box-shadow:var(--fullscreen-overlay-shadow)}.launchpad.active{display:flex}.sidebar{width:190px;display:flex;flex-direction:column;background:var(--color-fill-bg-base-3);min-width:0;background-size:205px 205px;background-repeat:no-repeat;background-position:left 52px bottom 27px}.sidebar > *:not(:last-child){border-bottom:1px solid var(--stroke-color-default)}.quick-nav-label,\n.platform-nav-label,\n.jump-nav-label,\n.menu-group-label,\n.menu-item-label,\n.recent-visits span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-menu,\n.menu-groups,\n.menu,\n.sub-menu,\n.recent-visits,\n.platform-items{list-style:none;margin:0;padding:0}.sidebar-menu,\n.menu,\n.sub-menu{display:flex;flex-direction:column;gap:14px}.sidebar-menu-item > eo-link,\n.menu-item > eo-link,\n.recent-visits eo-link{display:block;min-width:0}.sidebar-menu-item > 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)}.sidebar-menu-item{padding:0 12px 0 16px;justify-content:space-between}.sidebar-menu-icon{color:var(--left-sidebar-item-collapsed-icon-color)}.union{flex:1;display:flex;flex-direction:column;overflow-y:auto}.quick-nav,\n.platform-nav{display:flex;flex-direction:column;padding:20px 0 24px}.platform-nav{padding:0 0 24px}.quick-nav-label,\n.platform-nav-label{color:var(--color-header-text);font-weight:500;margin-bottom:14px;padding:0 16px}.quick-nav-menu,\n.platform-nav-menu{flex:1}.jump-nav > eo-link{display:block;cursor:pointer}.jump-nav > eo-link::part(link){padding:10px 16px;display:flex;justify-content:space-between;align-items:center}.jump-nav-label{flex:1;color:var(--color-header-text);font-weight:500}.jump-nav > eo-icon{font-size:14px;color:var(--text-color-default)}.content{flex:1;padding:20px 24px 24px;min-width:0;overflow-y:auto;display:flex;flex-direction:column;gap:24px}.search-box{border-bottom:1px solid var(--color-text-divider-line);display:flex;gap:8px;align-items:center;padding:10px 0;margin-top:-10px;cursor:text}.search-icon{color:var(--color-auxiliary-text)}.search-input{padding:0;margin:0;border:none;outline:none;color:inherit;background-color:transparent;font-size:14px;line-height:22px;flex:1;min-width:0}.search-input::placeholder{color:var(--color-disabled-text);opacity:1}.search-clear{display:none;color:var(--color-secondary-text);cursor:pointer}.search-clear.searching{display:inline-block}.search-clear:hover{color:var(--color-auxiliary-text)}.menu-groups,\n.recent-visits{grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}.menu-groups{display:grid;gap:32px 8px}.menu-group{padding-right:12px;color:var(--color-header-text)}.menu-group-label{font-size:var(--card-title-font-size);font-weight:500;color:var(--color-header-text);margin-bottom:14px}.sidebar-menu-item,\n.menu-item:not(.folder){display:flex;gap:8px;align-items:center}.menu-icon{color:var(--eo-launchpad-v2-menu-icon-color)}.menu-item.active,\n.menu-item.active .menu-icon{color:var(--color-brand-active)}.sub-menu:not(.expanded){display:none}.sub-menu{margin-top:14px;margin-left:8px;border-left:1px solid var(--color-text-divider-line);padding-left:15px}.menu-item-remove,\n.menu-item-star{cursor:pointer}.menu-item-remove,\n.menu-item-star,\n.menu-item-toggle{color:var(--color-secondary-text)}.sidebar-menu-item:not(:hover) .menu-item-remove{display:none}.menu-item-remove:hover{color:var(--color-normal-text)}.menu-item-remove:active{color:var(--color-strong-text)}.menu-item-star{display:none}.can-star.starred > .menu-item-star,\n.can-star:hover > .menu-item-star{display:inline-block}.can-star:not(.starred) > .menu-item-star{color:var(--color-secondary-text)}.starred > .menu-item-star{color:var(--palette-yellow-6)}.recent-visits-label{margin-bottom:12px;font-size:var(--card-title-font-size);color:var(--color-header-text);font-weight:500}.recent-visits{display:grid;gap:8px}.recent-visits eo-link::part(link){background-color:var(--color-fill-bg-base-1);border-radius:3px;color:var(--color-header-text);display:flex;align-items:center;height:24px;padding:0 8px}.sidebar-menu-item > eo-link:hover::part(link),\n.sidebar-menu-item > eo-link:hover .sidebar-menu-icon,\n.menu-item > eo-link:hover::part(link),\n.menu-item > eo-link:hover .menu-icon,\n.menu-item > eo-link:hover .menu-item-toggle,\n.recent-visits eo-link:hover::part(link){color:var(--color-brand-hover)}.spinner{display:flex;justify-content:center;align-items:center;color:var(--theme-doderblue-color);flex:1;font-size:30px}.empty,\n.loading > :not(.spinner){display:none}@supports not (inset: 0){.content,\n .search-box,\n .sidebar-menu,\n .menu,\n .sub-menu,\n .sidebar-menu-item,\n .menu-item:not(.folder),\n .sidebar-menu-item > eo-link::part(link),\n .menu-item > eo-link::part(link){gap:0}.sidebar-menu > :not(:first-child),\n .menu > :not(:first-child),\n .sub-menu > :not(:first-child){margin-top:14px}.search-icon,\n .sidebar-menu-icon,\n .menu-icon{margin-right:8px}.search-clear,\n .menu-item-star,\n .menu-item-toggle{margin-left:8px}.content > :not(:last-child){margin-bottom:24px}}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[0].use[1]!../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./host-context.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[0].use[1]!../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./host-context.css\";\n export default content && content.locals ? content.locals : undefined;\n"],"names":["PlatformCategorySidebarMenuItem","_ref","_item$icon","item","active","onClick","React","className","WrappedLink","type","classNames","WrappedIcon","_extends","lib","category","icon","pick","name","PlatformItem","_ref2","_item$menuIcon","url","href","target","menuIcon","description","Launchpad","searchInputRef","useRef","favorites","setFavorites","useState","handleClickSearchBox","useCallback","_searchInputRef$curre","current","focus","platform","setPlatform","showPlatformCategory","_getRuntime","getRuntime","getFeatureFlags","showScenarioCenter","_getRuntime2","showSolutionCenter","_getRuntime3","showOpenPlatform","_getRuntime4","loading","q","setQ","menuGroups","_favorites","loadingFavorites","recentVisits","pushRecentVisit","toggleStar","isStarred","platformCategories","useLaunchpadInfo","searching","handleSearch","e","value","clearSearch","useEffect","_searchInputRef$curre2","handlePlatformCategoryClick","id","curCategory","useMemo","find","v","length","setTimeout","LaunchpadsContext","Provider","TransitionGroup","map","index","CSSTransition","key","timeout","in","i","enter","enterActive","exit","exitActive","exitDone","SidebarMenuItem","theme","Loading","ref","placeholder","onChange","empty","group","MenuGroup","items","spinning","useLaunchpadContext","MenuItemFolder","MenuItem","readonly","starred","handleStarClick","handleClick","prefix","title","_ref3","_item$menuIcon2","handleRemoveStar","_ref4","expanded","setExpanded","searchingExpanded","setSearchingExpanded","toggle","previous","actualExpanded","___CSS_LOADER_EXPORT___","push","module","toString","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals"],"sourceRoot":""}
1
+ {"version":3,"file":"chunks/9149.1577ab1e.js","mappings":"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","sources":["webpack:///./src/launchpad-button-v2/PlatformCategory.tsx","webpack:///./src/launchpad-button-v2/Launchpad.tsx","webpack:///./src/launchpad-button-v2/LaunchpadContext.ts","webpack:///./src/launchpad-button-v2/MenuGroup.tsx","webpack:///./src/launchpad-button-v2/host-context.css","webpack:///./src/launchpad-button-v2/Launchpad.shadow.css","webpack:///./src/launchpad-button-v2/PlatformCategory.shadow.css","webpack:///./src/launchpad-button-v2/styles.shadow.css","webpack:///./src/launchpad-button-v2/host-context.css?59a8"],"sourcesContent":["import React from \"react\";\nimport { WrappedLink, WrappedIcon } from \"./wrapped-bricks\";\nimport { MenuItemDataNormal, PlatformCategoryItem } from \"./interfaces\";\nimport { pick } from \"lodash\";\nimport classNames from \"classnames\";\n\nexport interface PlatformCategorySidebarMenuItemProps {\n item: PlatformCategoryItem;\n active?: boolean;\n onClick?: (item: PlatformCategoryItem) => void;\n}\n\nexport function PlatformCategorySidebarMenuItem({\n item,\n active,\n onClick,\n}: PlatformCategorySidebarMenuItemProps) {\n return (\n <li className=\"platform-category-sidebar-menu-item\">\n <WrappedLink\n type=\"plain\"\n className={classNames({ active })}\n onClick={() => onClick?.(item)}\n >\n <WrappedIcon\n className={\"platform-category-sidebar-menu-icon\"}\n lib=\"easyops\"\n category=\"second-menu\"\n icon=\"serve-second-menu\"\n {...(item.icon?.lib && item.icon.icon\n ? (pick(item.icon, [\n \"lib\",\n \"icon\",\n \"theme\",\n \"category\",\n \"prefix\",\n ]) as any)\n : null)}\n />\n <span className=\"platform-category-sidebar-menu-item-label\">\n {item.name}\n </span>\n </WrappedLink>\n </li>\n );\n}\n\nexport interface PlatformItemProps {\n item: MenuItemDataNormal;\n}\n\nexport function PlatformItem({ item }: PlatformItemProps) {\n return (\n <li>\n <WrappedLink\n type=\"plain\"\n {...(item.type === \"app\"\n ? {\n url: item.url,\n }\n : {\n href: item.url,\n target: \"_blank\",\n })}\n >\n <div className=\"platform-item\">\n <div className=\"platform-item-title\">\n <WrappedIcon\n className=\"platform-item-icon\"\n lib=\"easyops\"\n category=\"third-menu\"\n icon=\"deploy-orchestration-tasks-third-menu\"\n {...(item.menuIcon?.lib && item.menuIcon.icon\n ? (pick(item.menuIcon, [\n \"lib\",\n \"icon\",\n \"theme\",\n \"category\",\n \"prefix\",\n ]) as any)\n : null)}\n />\n <div className=\"platform-item-name\">{item.name}</div>\n </div>\n <div className=\"platform-item-description\">{item.description}</div>\n </div>\n </WrappedLink>\n </li>\n );\n}\n","import React, {\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport classNames from \"classnames\";\nimport { WrappedIcon, WrappedLink } from \"./wrapped-bricks\";\nimport { useLaunchpadInfo } from \"./useLaunchpadInfo.js\";\nimport { MenuGroup, SidebarMenuItem } from \"./MenuGroup.js\";\nimport { LaunchpadsContext } from \"./LaunchpadContext.js\";\nimport {\n FavMenuItem,\n PlatformCategoryItem,\n SidebarMenuItemData,\n} from \"./interfaces\";\nimport {\n PlatformItem,\n PlatformCategorySidebarMenuItem,\n} from \"./PlatformCategory\";\nimport { getRuntime } from \"@next-core/runtime\";\nimport { CSSTransition, TransitionGroup } from \"react-transition-group\";\n\nexport function Launchpad({ active }: { active?: boolean }) {\n const searchInputRef = useRef<HTMLInputElement>(null);\n const [favorites, setFavorites] = useState<FavMenuItem[]>([]);\n const handleClickSearchBox = useCallback(() => {\n searchInputRef.current?.focus();\n }, []);\n const [platform, setPlatform] = useState(\"#all\");\n\n const showPlatformCategory = React.useMemo(\n () => getRuntime()?.getFeatureFlags()[\"launchpad-show-platform-category\"],\n []\n );\n\n const showScenarioCenter = React.useMemo(\n () => getRuntime()?.getFeatureFlags()[\"launchpad-show-scenario-center\"],\n []\n );\n\n const showSolutionCenter = React.useMemo(\n () => getRuntime()?.getFeatureFlags()[\"launchpad-show-solution-center\"],\n []\n );\n\n const showOpenPlatform = React.useMemo(\n () => getRuntime()?.getFeatureFlags()[\"launchpad-show-open-platform\"],\n []\n );\n\n const {\n loading,\n q,\n setQ,\n menuGroups,\n favorites: _favorites,\n loadingFavorites,\n recentVisits,\n pushRecentVisit,\n toggleStar,\n isStarred,\n platformCategories,\n } = useLaunchpadInfo(active);\n const searching = !!q;\n\n const handleSearch = useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n setQ(e.target.value);\n },\n [setQ]\n );\n\n const clearSearch = useCallback(() => {\n setQ(\"\");\n }, [setQ]);\n\n useEffect(() => {\n if (active) {\n searchInputRef.current?.focus();\n }\n }, [active]);\n\n const handlePlatformCategoryClick = useCallback(\n (item: PlatformCategoryItem) => {\n setPlatform(item.id);\n },\n []\n );\n\n const curCategory = useMemo(() => {\n return platformCategories.find((v) => v.id === platform);\n }, [platform, platformCategories]);\n\n useEffect(() => {\n if (_favorites.length > favorites.length) {\n // 新增无需等待直接更新列表\n setFavorites(_favorites);\n } else {\n // 删除操作需要等待动画执行完后才更新列表数据\n setTimeout(() => {\n setFavorites(_favorites);\n }, 300);\n }\n }, [_favorites, favorites.length]);\n\n return (\n <div className={classNames(\"launchpad\", { active })}>\n <LaunchpadsContext.Provider\n value={{\n searching,\n loadingFavorites,\n pushRecentVisit,\n toggleStar,\n isStarred,\n }}\n >\n <div className=\"sidebar\">\n <div className=\"union\">\n <div className=\"quick-nav\">\n <div className=\"quick-nav-label\">快捷访问</div>\n {/* <Loading loading={loading || loadingFavorites} /> */}\n <TransitionGroup>\n <ul className=\"sidebar-menu quick-nav-menu\">\n {favorites.map((item, index) => (\n <CSSTransition\n key={index}\n timeout={300}\n in={!!_favorites.find((i) => i.id === item.id)}\n classNames={{\n enter: \"fadeEnter\",\n enterActive: \"fadeEnterActive\",\n exit: \"fadeExit\",\n exitActive: \"fadeExitActive\",\n exitDone: \"fadeExitDone\",\n }}\n >\n <SidebarMenuItem\n key={index}\n item={item as SidebarMenuItemData}\n />\n </CSSTransition>\n ))}\n </ul>\n </TransitionGroup>\n </div>\n\n {showPlatformCategory && (\n <div className=\"platform-nav\">\n <div className=\"platform-nav-label\">平台底座</div>\n <ul className=\"sidebar-menu platform-nav-menu\">\n {platformCategories.map((item, index) => (\n <PlatformCategorySidebarMenuItem\n key={index}\n onClick={handlePlatformCategoryClick}\n item={item}\n active={platform === item.id}\n />\n ))}\n </ul>\n </div>\n )}\n </div>\n {showScenarioCenter && (\n <div className=\"jump-nav\">\n <WrappedLink type=\"plain\" url={\"/portal/scenario\"}>\n <div className=\"jump-nav-label\">场景中心</div>\n <WrappedIcon lib=\"antd\" icon=\"right\" theme=\"outlined\" />\n </WrappedLink>\n </div>\n )}\n\n {showSolutionCenter && (\n <div className=\"jump-nav\">\n <WrappedLink type=\"plain\" url={\"/portal/solution\"}>\n <div className=\"jump-nav-label\">解决方案</div>\n <WrappedIcon lib=\"antd\" icon=\"right\" theme=\"outlined\" />\n </WrappedLink>\n </div>\n )}\n {showOpenPlatform && (\n <div className=\"jump-nav\">\n <WrappedLink type=\"plain\" url={\"/developers\"}>\n <div className=\"jump-nav-label\">开放平台</div>\n <WrappedIcon lib=\"antd\" icon=\"right\" theme=\"outlined\" />\n </WrappedLink>\n </div>\n )}\n </div>\n <div className={classNames(\"content\", { loading })}>\n <Loading loading={loading} />\n {platform !== \"#all\" && (\n <div className=\"platform-category-name\">{curCategory?.name}</div>\n )}\n <div className=\"search-box\" onClick={handleClickSearchBox}>\n <WrappedIcon\n lib=\"fa\"\n icon=\"magnifying-glass\"\n className=\"search-icon\"\n />\n <input\n ref={searchInputRef}\n placeholder=\"通过关键字搜索\"\n value={q}\n onChange={handleSearch}\n className=\"search-input\"\n />\n <WrappedIcon\n lib=\"antd\"\n theme=\"filled\"\n icon=\"close-circle\"\n className={classNames(\"search-clear\", { searching })}\n onClick={clearSearch}\n />\n </div>\n {platform === \"#all\" && (\n <div className={classNames({ empty: recentVisits.length === 0 })}>\n <div className=\"recent-visits-label\">最近访问</div>\n <ul className=\"recent-visits\">\n {recentVisits.map((item, index) => (\n <li key={index}>\n <WrappedLink\n onClick={() => pushRecentVisit(item)}\n {...(item.type === \"app\"\n ? {\n url: item.url,\n }\n : {\n href: item.url,\n target: \"_blank\",\n })}\n >\n <span>{item.name}</span>\n </WrappedLink>\n </li>\n ))}\n </ul>\n </div>\n )}\n {platform === \"#all\" && (\n <ul className=\"menu-groups\">\n {menuGroups.map((group) => (\n <MenuGroup\n key={group.name}\n name={group.name}\n items={group.items}\n />\n ))}\n </ul>\n )}\n {platform !== \"#all\" && (\n <ul\n className={classNames(\"platform-items\", {\n empty: curCategory?.items.length === 0,\n })}\n >\n {curCategory?.items.map((item, index) => (\n <PlatformItem item={item} key={index} />\n ))}\n </ul>\n )}\n </div>\n </LaunchpadsContext.Provider>\n </div>\n );\n}\n\nfunction Loading({ loading }: { loading: boolean }) {\n return (\n loading && (\n <div className=\"spinner\">\n <WrappedIcon lib=\"fa\" icon=\"spinner\" spinning />\n </div>\n )\n );\n}\n","import React from \"react\";\nimport type { MenuItemDataLink, MenuItemDataNormal } from \"./interfaces\";\n\nexport interface LaunchpadContextData {\n searching: boolean;\n loadingFavorites: boolean;\n readonly?: boolean;\n pushRecentVisit(item: MenuItemDataNormal): void;\n toggleStar(item: MenuItemDataNormal | MenuItemDataLink): void;\n isStarred(item: MenuItemDataNormal): boolean;\n}\n\nexport const LaunchpadsContext = React.createContext<LaunchpadContextData>(\n {} as LaunchpadContextData\n);\n\nexport const useLaunchpadContext = (): LaunchpadContextData =>\n React.useContext(LaunchpadsContext);\n","import React, { useCallback, useEffect, useMemo, useState } from \"react\";\nimport { pick } from \"lodash\";\nimport classNames from \"classnames\";\nimport { WrappedIcon, WrappedLink } from \"./wrapped-bricks\";\nimport { useLaunchpadContext } from \"./LaunchpadContext\";\nimport type {\n MenuItemData,\n MenuItemDataNormal,\n SidebarMenuItemData,\n} from \"./interfaces\";\nimport { Target } from \"@next-bricks/basic/link\";\n\nexport interface MenuGroupProps {\n name: string;\n items: MenuItemData[];\n}\n\nexport function MenuGroup({ name, items }: MenuGroupProps) {\n return (\n <li className=\"menu-group\">\n <div className=\"menu-group-label\">{name}</div>\n <ul className=\"menu\">\n {items.map((item) =>\n item.type === \"dir\" ? (\n <MenuItemFolder\n key={`${item.type}-${item.id}`}\n name={item.name}\n items={item.items}\n />\n ) : (\n <MenuItem key={`${item.type}-${item.id}`} item={item} />\n )\n )}\n </ul>\n </li>\n );\n}\n\nexport interface MenuItemProps {\n item: MenuItemDataNormal;\n}\n\nfunction MenuItem({ item }: MenuItemProps) {\n const { loadingFavorites, readonly, pushRecentVisit, toggleStar, isStarred } =\n useLaunchpadContext();\n\n const starred = useMemo(() => isStarred(item), [isStarred, item]);\n\n const handleStarClick = useCallback(() => {\n toggleStar(item);\n }, [item, toggleStar]);\n\n const handleClick = useCallback(() => {\n pushRecentVisit(item);\n }, [item, pushRecentVisit]);\n\n return (\n <li\n className={classNames(\"menu-item\", {\n starred,\n \"can-star\": !loadingFavorites,\n })}\n >\n <WrappedLink\n onClick={handleClick}\n {...(item.type === \"app\"\n ? {\n url: item.url,\n }\n : {\n href: item.url,\n })}\n >\n <WrappedIcon\n className=\"menu-icon\"\n lib=\"easyops\"\n icon=\"micro-app-center\"\n {...(item.menuIcon?.lib && item.menuIcon.icon\n ? (pick(item.menuIcon, [\n \"lib\",\n \"icon\",\n \"theme\",\n \"category\",\n \"prefix\",\n ]) as any)\n : null)}\n />\n <span className=\"menu-item-label\">{item.name}</span>\n </WrappedLink>\n {!readonly && (\n <WrappedIcon\n lib=\"fa\"\n prefix={starred ? \"fas\" : \"far\"}\n icon=\"star\"\n className=\"menu-item-star\"\n title={starred ? \"取消收藏\" : \"收藏\"}\n onClick={handleStarClick}\n />\n )}\n </li>\n );\n}\n\nexport interface SidebarMenuItemProps {\n item: SidebarMenuItemData;\n target?: Target;\n}\n\nexport function SidebarMenuItem({ item, target }: SidebarMenuItemProps) {\n const { readonly, pushRecentVisit, toggleStar } = useLaunchpadContext();\n\n const handleClick = useCallback(() => {\n if (item.type !== \"link\") {\n pushRecentVisit(item);\n }\n }, [item, pushRecentVisit]);\n\n const handleRemoveStar = useCallback(() => {\n toggleStar(item);\n }, [item, toggleStar]);\n\n return (\n <li className=\"sidebar-menu-item\">\n <WrappedLink\n onClick={handleClick}\n {...(item.type === \"app\"\n ? {\n url: item.url,\n }\n : {\n href: item.url,\n })}\n {...(target\n ? {\n target,\n }\n : null)}\n >\n <WrappedIcon\n className={`sidebar-menu-icon`}\n lib=\"easyops\"\n icon=\"micro-app-center\"\n {...(item.menuIcon?.lib && item.menuIcon.icon\n ? (pick(item.menuIcon, [\n \"lib\",\n \"icon\",\n \"theme\",\n \"category\",\n \"prefix\",\n ]) as any)\n : null)}\n />\n <span className=\"menu-item-label\">{item.name}</span>\n </WrappedLink>\n {!readonly && (\n <WrappedIcon\n lib=\"fa\"\n icon=\"xmark\"\n className=\"menu-item-remove\"\n onClick={handleRemoveStar}\n />\n )}\n </li>\n );\n}\n\nexport interface MenuItemFolderProps {\n name: string;\n items: MenuItemDataNormal[];\n}\n\nfunction MenuItemFolder({ name, items }: MenuItemFolderProps) {\n const { searching } = useLaunchpadContext();\n const [expanded, setExpanded] = useState(false);\n const [searchingExpanded, setSearchingExpanded] = useState(false);\n\n const toggle = useCallback(() => {\n // Use separated expanded states for searching and non-searching.\n if (searching) {\n setSearchingExpanded((previous) => !previous);\n } else {\n setExpanded((previous) => !previous);\n }\n }, [searching]);\n\n useEffect(() => {\n // Each time when start searching, set it as expanded.\n setSearchingExpanded(true);\n }, [searching]);\n\n const actualExpanded = searching ? searchingExpanded : expanded;\n\n return (\n <li className=\"menu-item folder\">\n <WrappedLink onClick={toggle}>\n <WrappedIcon\n lib=\"fa\"\n prefix=\"far\"\n icon=\"folder-open\"\n className=\"menu-icon\"\n />\n <span className=\"menu-item-label\">{name}</span>\n <WrappedIcon\n lib=\"antd\"\n icon={actualExpanded ? \"up\" : \"down\"}\n className=\"menu-item-toggle\"\n />\n </WrappedLink>\n <ul className={classNames(\"sub-menu\", { expanded: actualExpanded })}>\n {items.map((item) => (\n <MenuItem key={`${item.type}-${item.id}`} item={item} />\n ))}\n </ul>\n </li>\n );\n}\n","// 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, `:root{--eo-launchpad-v2-background:#fff;--eo-launchpad-v2-menu-icon-color:#8c8c8c}html[data-theme=\"dark\"],\nhtml[data-theme=\"dark-v2\"]{--eo-launchpad-v2-background:#26262a;--eo-launchpad-v2-menu-icon-color:rgba(255,255,255,0.45)}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// 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, `.fadeEnter{opacity:0;transform:scale(0.95)}.fadeEnterActive{opacity:1;transform:translateX(0);transition:opacity 100ms ease-out,transform 100ms ease-out}.fadeExit{transform:translate(-30px,0)}.fadeExitActive{transform:translate(-100%,0);transition:transform 300ms ease-out}.fadeExitDone{display:none}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// 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, `.platform-category-name,\n.platform-category-sidebar-menu-item-label,\n.platform-item-name,\n.platform-item-description{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.platform-category-sidebar-menu-item{display:flex;gap:8px;align-items:center;padding:0px 12px 0px 16px}.platform-category-sidebar-menu-item > eo-link{display:block;min-width:0px;color:var(--color-header-text);cursor:pointer}.platform-category-sidebar-menu-item > eo-link:hover,\n.platform-category-sidebar-menu-item\n > eo-link:hover\n .platform-category-sidebar-menu-icon{color:var(--color-brand-hover)}.platform-category-sidebar-menu-item > eo-link.active,\n.platform-category-sidebar-menu-item\n > eo-link.active\n .platform-category-sidebar-menu-icon{color:var(--color-brand-active)}.platform-category-sidebar-menu-item > eo-link::part(link){height:20px;display:flex;align-items:center;gap:8px}.platform-category-sidebar-menu-icon{color:var(--left-sidebar-item-collapsed-icon-color)}.platform-category-name{font-size:18px;font-weight:500;color:var(--text-color-secondary);flex-shrink:0}.platform-items{display:grid;grid-template-columns:repeat(2,1fr);gap:0 54px}.platform-items > li{min-width:0}.platform-items > li > eo-link{width:100%;cursor:pointer}.platform-item{padding:12px 0;display:flex;flex-direction:column}.platform-item:hover .platform-item-icon,\n.platform-item:hover .platform-item-name{color:var(--color-brand-hover)}.platform-item-title{display:flex;align-items:center;margin-bottom:4px}.platform-item-icon{margin-right:8px;font-size:14px;color:var(--text-color-secondary);flex-shrink:0}.platform-item-name{font-weight:500;color:var(--text-color-title);line-height:18px}.platform-item-description{margin-left:22px;color:var(--text-color-secondary);line-height:18px}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// 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:inline-block;width:32px;height:32px;--eo-launchpad-v2-max-height:calc(100vh - var(--app-bar-height) - 36px)}:host([hidden]){display:none}.launchpad-button{width:100%;height:100%;display:flex;justify-content:center;align-items:center;color:#999;cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:3px}.launchpad-button:hover,\n.launchpad-button.active{background-color:var(--color-fill-bg-base-1)}.launchpad-button.active{color:var(--color-brand)}.mask{position:fixed;top:0;bottom:0;left:0;right:0;z-index:1;display:none}.mask.active{display:block}.launchpad{display:none;position:absolute;margin-top:4px;z-index:1;width:1110px;max-width:calc(100vw - 100px);height:var(--eo-launchpad-v2-max-height);background-color:var(--eo-launchpad-v2-background);border:1px solid var(--color-text-divider-line);border-radius:6px;box-shadow:var(--fullscreen-overlay-shadow)}.launchpad.active{display:flex}.sidebar{width:190px;display:flex;flex-direction:column;background:var(--color-fill-bg-base-3);min-width:0;background-size:205px 205px;background-repeat:no-repeat;background-position:left 52px bottom 27px}.sidebar > *:not(:last-child){border-bottom:1px solid var(--stroke-color-default)}.quick-nav-label,\n.platform-nav-label,\n.jump-nav-label,\n.menu-group-label,\n.menu-item-label,\n.recent-visits span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-menu,\n.menu-groups,\n.menu,\n.sub-menu,\n.recent-visits,\n.platform-items{list-style:none;margin:0;padding:0}.sidebar-menu,\n.menu,\n.sub-menu{display:flex;flex-direction:column;gap:14px}.sidebar-menu-item > eo-link,\n.menu-item > eo-link,\n.recent-visits eo-link{display:block;min-width:0}.sidebar-menu-item > 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)}.sidebar-menu-item{padding:0 12px 0 16px;justify-content:space-between}.sidebar-menu-icon{color:var(--left-sidebar-item-collapsed-icon-color)}.union{flex:1;display:flex;flex-direction:column;overflow-y:auto}.quick-nav,\n.platform-nav{display:flex;flex-direction:column;padding:20px 0 24px}.platform-nav{padding:0 0 24px}.quick-nav-label,\n.platform-nav-label{color:var(--color-header-text);font-weight:500;margin-bottom:14px;padding:0 16px}.quick-nav-menu,\n.platform-nav-menu{flex:1}.jump-nav > eo-link{display:block;cursor:pointer}.jump-nav > eo-link::part(link){padding:10px 16px;display:flex;justify-content:space-between;align-items:center}.jump-nav-label{flex:1;color:var(--color-header-text);font-weight:500}.jump-nav > eo-icon{font-size:14px;color:var(--text-color-default)}.content{flex:1;padding:20px 24px 24px;min-width:0;overflow-y:auto;display:flex;flex-direction:column;gap:24px}.search-box{border-bottom:1px solid var(--color-text-divider-line);display:flex;gap:8px;align-items:center;padding:10px 0;margin-top:-10px;cursor:text}.search-icon{color:var(--color-auxiliary-text)}.search-input{padding:0;margin:0;border:none;outline:none;color:inherit;background-color:transparent;font-size:14px;line-height:22px;flex:1;min-width:0}.search-input::placeholder{color:var(--color-disabled-text);opacity:1}.search-clear{display:none;color:var(--color-secondary-text);cursor:pointer}.search-clear.searching{display:inline-block}.search-clear:hover{color:var(--color-auxiliary-text)}.menu-groups,\n.recent-visits{grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}.menu-groups{display:grid;gap:32px 8px}.menu-group{padding-right:12px;color:var(--color-header-text)}.menu-group-label{font-size:var(--card-title-font-size);font-weight:500;color:var(--color-header-text);margin-bottom:14px}.sidebar-menu-item,\n.menu-item:not(.folder){display:flex;gap:8px;align-items:center}.menu-icon{color:var(--eo-launchpad-v2-menu-icon-color)}.menu-item.active,\n.menu-item.active .menu-icon{color:var(--color-brand-active)}.sub-menu:not(.expanded){display:none}.sub-menu{margin-top:14px;margin-left:8px;border-left:1px solid var(--color-text-divider-line);padding-left:15px}.menu-item-remove,\n.menu-item-star{cursor:pointer}.menu-item-remove,\n.menu-item-star,\n.menu-item-toggle{color:var(--color-secondary-text)}.sidebar-menu-item:not(:hover) .menu-item-remove{display:none}.menu-item-remove:hover{color:var(--color-normal-text)}.menu-item-remove:active{color:var(--color-strong-text)}.menu-item-star{display:none}.can-star.starred > .menu-item-star,\n.can-star:hover > .menu-item-star{display:inline-block}.can-star:not(.starred) > .menu-item-star{color:var(--color-secondary-text)}.starred > .menu-item-star{color:var(--palette-yellow-6)}.recent-visits-label{margin-bottom:12px;font-size:var(--card-title-font-size);color:var(--color-header-text);font-weight:500}.recent-visits{display:grid;gap:8px}.recent-visits eo-link::part(link){background-color:var(--color-fill-bg-base-1);border-radius:3px;color:var(--color-header-text);display:flex;align-items:center;height:24px;padding:0 8px}.sidebar-menu-item > eo-link:hover::part(link),\n.sidebar-menu-item > eo-link:hover .sidebar-menu-icon,\n.menu-item > eo-link:hover::part(link),\n.menu-item > eo-link:hover .menu-icon,\n.menu-item > eo-link:hover .menu-item-toggle,\n.recent-visits eo-link:hover::part(link){color:var(--color-brand-hover)}.spinner{display:flex;justify-content:center;align-items:center;color:var(--theme-doderblue-color);flex:1;font-size:30px}.empty,\n.loading > :not(.spinner){display:none}@supports not (inset: 0){.content,\n .search-box,\n .sidebar-menu,\n .menu,\n .sub-menu,\n .sidebar-menu-item,\n .menu-item:not(.folder),\n .sidebar-menu-item > eo-link::part(link),\n .menu-item > eo-link::part(link){gap:0}.sidebar-menu > :not(:first-child),\n .menu > :not(:first-child),\n .sub-menu > :not(:first-child){margin-top:14px}.search-icon,\n .sidebar-menu-icon,\n .menu-icon{margin-right:8px}.search-clear,\n .menu-item-star,\n .menu-item-toggle{margin-left:8px}.content > :not(:last-child){margin-bottom:24px}}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[0].use[1]!../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./host-context.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[0].use[1]!../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./host-context.css\";\n export default content && content.locals ? content.locals : undefined;\n"],"names":["PlatformCategorySidebarMenuItem","_ref","_item$icon","item","active","onClick","React","className","WrappedLink","type","classNames","WrappedIcon","_extends","lib","category","icon","pick","name","PlatformItem","_ref2","_item$menuIcon","url","href","target","menuIcon","description","Launchpad","searchInputRef","useRef","favorites","setFavorites","useState","handleClickSearchBox","useCallback","_searchInputRef$curre","current","focus","platform","setPlatform","showPlatformCategory","_getRuntime","getRuntime","getFeatureFlags","showScenarioCenter","_getRuntime2","showSolutionCenter","_getRuntime3","showOpenPlatform","_getRuntime4","loading","q","setQ","menuGroups","_favorites","loadingFavorites","recentVisits","pushRecentVisit","toggleStar","isStarred","platformCategories","useLaunchpadInfo","searching","handleSearch","e","value","clearSearch","useEffect","_searchInputRef$curre2","handlePlatformCategoryClick","id","curCategory","useMemo","find","v","length","setTimeout","LaunchpadsContext","Provider","TransitionGroup","map","index","CSSTransition","key","timeout","in","i","enter","enterActive","exit","exitActive","exitDone","SidebarMenuItem","theme","Loading","ref","placeholder","onChange","empty","group","MenuGroup","items","spinning","useLaunchpadContext","MenuItemFolder","MenuItem","readonly","starred","handleStarClick","handleClick","prefix","title","_ref3","_item$menuIcon2","handleRemoveStar","_ref4","expanded","setExpanded","searchingExpanded","setSearchingExpanded","toggle","previous","actualExpanded","___CSS_LOADER_EXPORT___","push","module","toString","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals"],"sourceRoot":""}