@next-bricks/nav 0.9.2 → 0.9.3
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.
- package/dist/bricks.json +59 -9
- package/dist/chunks/2024.ddc88ed1.js +2 -0
- package/dist/chunks/{5326.42956a9e.js.map → 2024.ddc88ed1.js.map} +1 -1
- package/dist/chunks/5951.999e9688.js +3 -0
- package/dist/chunks/5951.999e9688.js.map +1 -0
- package/dist/chunks/{7632.b82bb027.js → 7632.51556511.js} +2 -2
- package/dist/chunks/7632.51556511.js.map +1 -0
- package/dist/chunks/eo-app-bar-wrapper.7d8078ce.js +3 -0
- package/dist/chunks/eo-app-bar-wrapper.7d8078ce.js.LICENSE.txt +5 -0
- package/dist/chunks/eo-app-bar-wrapper.7d8078ce.js.map +1 -0
- package/dist/chunks/eo-frame-breadcrumb.f2a2e95c.js +2 -0
- package/dist/chunks/eo-frame-breadcrumb.f2a2e95c.js.map +1 -0
- package/dist/chunks/eo-sidebar-menu-group.ab7d3a0d.js +3 -0
- package/dist/chunks/eo-sidebar-menu-group.ab7d3a0d.js.LICENSE.txt +5 -0
- package/dist/chunks/eo-sidebar-menu-group.ab7d3a0d.js.map +1 -0
- package/dist/chunks/eo-sidebar-menu-item.ffaa073d.js +2 -0
- package/dist/chunks/eo-sidebar-menu-item.ffaa073d.js.map +1 -0
- package/dist/chunks/eo-sidebar-menu-submenu.d62608cc.js +3 -0
- package/dist/chunks/eo-sidebar-menu-submenu.d62608cc.js.LICENSE.txt +5 -0
- package/dist/chunks/eo-sidebar-menu-submenu.d62608cc.js.map +1 -0
- package/dist/chunks/eo-sidebar-menu.084e4c74.js +2 -0
- package/dist/chunks/eo-sidebar-menu.084e4c74.js.map +1 -0
- package/dist/chunks/eo-sidebar-sub-menu.170d5571.js +3 -0
- package/dist/chunks/eo-sidebar-sub-menu.170d5571.js.LICENSE.txt +5 -0
- package/dist/chunks/eo-sidebar-sub-menu.170d5571.js.map +1 -0
- package/dist/chunks/eo-sidebar.6b4bde6a.js +3 -0
- package/dist/chunks/eo-sidebar.6b4bde6a.js.LICENSE.txt +5 -0
- package/dist/chunks/eo-sidebar.6b4bde6a.js.map +1 -0
- package/dist/chunks/main.482fbe2f.js +2 -0
- package/dist/chunks/main.482fbe2f.js.map +1 -0
- package/dist/index.7ff5d3e5.js +2 -0
- package/dist/index.7ff5d3e5.js.map +1 -0
- package/dist/manifest.json +286 -12
- package/dist/types.json +434 -0
- package/dist-types/app-bar-wrapper/index.d.ts +40 -0
- package/dist-types/app-bar-wrapper/index.spec.d.ts +1 -0
- package/dist-types/bootstrap.d.ts +8 -0
- package/dist-types/frame-breadcrumb/index.d.ts +35 -0
- package/dist-types/frame-breadcrumb/index.spec.d.ts +1 -0
- package/dist-types/sidebar/i18n.d.ts +14 -0
- package/dist-types/sidebar/index.d.ts +52 -0
- package/dist-types/sidebar/index.spec.d.ts +5 -0
- package/dist-types/sidebar/sidebar-menu/index.d.ts +19 -0
- package/dist-types/sidebar/sidebar-menu/index.spec.d.ts +1 -0
- package/dist-types/sidebar/sidebar-menu-group/index.d.ts +39 -0
- package/dist-types/sidebar/sidebar-menu-group/index.spec.d.ts +1 -0
- package/dist-types/sidebar/sidebar-menu-item/index.d.ts +45 -0
- package/dist-types/sidebar/sidebar-menu-item/index.spec.d.ts +1 -0
- package/dist-types/sidebar/sidebar-menu-submenu/index.d.ts +40 -0
- package/dist-types/sidebar/sidebar-menu-submenu/index.spec.d.ts +1 -0
- package/dist-types/sidebar/utils.d.ts +20 -0
- package/dist-types/sidebar-sub-menu/i18n.d.ts +11 -0
- package/dist-types/sidebar-sub-menu/index.d.ts +21 -0
- package/dist-types/sidebar-sub-menu/index.spec.d.ts +1 -0
- package/package.json +2 -2
- package/dist/chunks/2024.3653c941.js +0 -2
- package/dist/chunks/2024.3653c941.js.map +0 -1
- package/dist/chunks/5326.42956a9e.js +0 -2
- package/dist/chunks/7394.63355aa9.js +0 -3
- package/dist/chunks/7394.63355aa9.js.map +0 -1
- package/dist/chunks/7632.b82bb027.js.map +0 -1
- package/dist/chunks/main.7d3dfcde.js +0 -2
- package/dist/chunks/main.7d3dfcde.js.map +0 -1
- package/dist/index.d2af6391.js +0 -2
- package/dist/index.d2af6391.js.map +0 -1
- /package/dist/chunks/{7394.63355aa9.js.LICENSE.txt → 5951.999e9688.js.LICENSE.txt} +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"chunks/7394.63355aa9.js","mappings":"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","sources":["webpack:///./src/nav-menu/index.tsx","webpack:///./src/launchpad/index.tsx","webpack:///./src/launchpad-button-v2/Launchpad.tsx","webpack:///./src/launchpad-button-v2/host-context.css?59a8","webpack:///./src/launchpad-button-v2/index.tsx","webpack:///./src/launchpad-config/wrapped-bricks.ts","webpack:///./src/launchpad-config/MenuGroup.tsx","webpack:///./src/launchpad-config/index.tsx","webpack:///./src/easyops-navbar-alerts/index.tsx","webpack:///./src/launchpad-quick-access/index.tsx","webpack:///./src/search-launchpad/host-context.css?4d0b","webpack:///./src/search-launchpad/index.tsx","webpack:///./src/launchpad-recent-visits/index.tsx","webpack:///./src/launchpad-button-v2/host-context.css","webpack:///./src/search-launchpad/host-context.css","webpack:///./src/easyops-navbar-alerts/styles.shadow.css","webpack:///./src/launchpad-button-v2/styles.shadow.css","webpack:///./src/launchpad-config/styles.shadow.css","webpack:///./src/launchpad-quick-access/styles.shadow.css","webpack:///./src/launchpad-recent-visits/styles.shadow.css","webpack:///./src/search-launchpad/styles.shadow.css","webpack:///../../node_modules/css-loader/dist/runtime/getUrl.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/checkPrivateRedeclaration.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/classExtractFieldDescriptor.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/classPrivateFieldGet.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/classApplyDescriptorGet.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/classPrivateFieldInitSpec.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/classPrivateFieldSet.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/classApplyDescriptorSet.js","webpack:///../../node_modules/@next-api-sdk/user-service-sdk/dist/esm/api/user_service/launchpad/createCollectionV2.js","webpack:///../../node_modules/@next-api-sdk/user-service-sdk/dist/esm/api/user_service/launchpad/deleteCollectionV2.js","webpack:///../../node_modules/@next-api-sdk/user-service-sdk/dist/esm/api/user_service/launchpad/listCollectionV2.js","webpack:///../../node_modules/@next-api-sdk/user-service-sdk/dist/esm/api/user_service/my_collection/listMyCollection.js","webpack:///../../node_modules/@next-api-sdk/user-service-sdk/dist/esm/api/user_service/my_collection/upsertMyCollection.js"],"sourcesContent":["import React, {\n CSSProperties,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { createDecorators } from \"@next-core/element\";\nimport { getHistory } from \"@next-core/runtime\";\nimport { ReactNextElement, wrapBrick } from \"@next-core/react-element\";\nimport styleText from \"./nav-menu.shadow.css\";\nimport { UnregisterCallback } from \"history\";\nimport type { SidebarMenu } from \"@next-bricks/basic/menu\";\nimport type {\n MenuItem as MenuItemComponent,\n MenuComponentProps,\n} from \"@next-bricks/basic/menu-item\";\nimport { isSubMenu, isGroup, renderLinkCom, renderSpanCom } from \"./utils.js\";\nimport { initMenuItemAndMatchCurrentPathKeys } from \"@next-shared/general/menu\";\nimport type {\n SidebarMenuGroup,\n SidebarMenuItem,\n SidebarMenuSimpleItem,\n} from \"@next-shared/general/types\";\nimport type {\n Popover,\n PopoverProps,\n PopoverEvents,\n PopoverEventsMapping,\n Placement,\n} from \"@next-bricks/basic/popover\";\nimport \"@next-core/theme\";\nimport classnames from \"classnames\";\nimport { ThreeLevelMenuPopoverContent } from \"./ThreeLevelMenuPopoverContent.js\";\nimport { SiteMapItem } from \"./site-map/SiteMapItem.js\";\nimport SiteMapStyleText from \"../nav-menu/site-map/SiteMapItem.shadow.css\";\nimport ItemTagStyleText from \"../nav-menu/site-map/ItemTag.shadow.css\";\nimport GroupItemStyleText from \"../nav-menu/site-map/GroupItem.shadow.css\";\nimport \"./host-context.css\";\n\nconst { defineElement, property } = createDecorators();\n\nconst WrappedMenuItem = wrapBrick<MenuItemComponent, MenuComponentProps>(\n \"eo-menu-item\"\n);\nconst WrappedPopover = wrapBrick<\n Popover,\n PopoverProps,\n PopoverEvents,\n PopoverEventsMapping\n>(\"eo-popover\", {\n onVisibleChange: \"visible.change\",\n beforeVisibleChange: \"before.visible.change\",\n});\n\nconst GAP_WIDTH = 8;\n\ninterface NavMenuProps {\n menu?: SidebarMenu;\n showTooltip?: boolean;\n}\n\ninterface MenuItemComProps {\n index?: number;\n hidden?: boolean;\n item: SidebarMenuItem;\n topData?: boolean;\n selectedKey?: string[];\n showTooltip?: boolean;\n overflow?: boolean;\n}\ninterface SimpleMenuItemComProps extends MenuItemComProps {\n item: SidebarMenuSimpleItem;\n}\ninterface MenuGroupComProps extends MenuItemComProps {\n item: SidebarMenuGroup;\n}\nfunction RenderMenuItemCom(props: MenuItemComProps) {\n const { item } = props;\n return isSubMenu(item as SidebarMenuGroup, props.topData) ? (\n <SubMenuItemCom {...props} item={item as SidebarMenuGroup}></SubMenuItemCom>\n ) : isGroup(item) ? (\n <GroupMenuItemCom {...props} item={item as SidebarMenuGroup} />\n ) : (\n <SimpleMenuItemCom\n {...props}\n item={item as SidebarMenuSimpleItem}\n ></SimpleMenuItemCom>\n );\n}\nfunction SimpleMenuItemCom(props: SimpleMenuItemComProps) {\n const { item, index, hidden, showTooltip, selectedKey = [] } = props;\n return (\n <WrappedMenuItem\n data-index={index}\n className={hidden ? \"overflow-menu-item\" : \"\"}\n key={item.key}\n title={showTooltip ? item.text : \"\"}\n active={item.key ? selectedKey.includes(item.key) : false}\n >\n {renderLinkCom(item, { width: \"100%\" })}\n </WrappedMenuItem>\n );\n}\n\nlet scrollWidth: number;\n// istanbul ignore next;\nconst handlePopupVisibleChange = (event: CustomEvent<boolean>) => {\n // 当用户设置滚动条一直显示时,来回切换 overflow: hidden 会导致滚动条显示或隐藏\n // 造成页面宽度变化而导致的抖动的问题\n const paddingRight =\n scrollWidth ??\n (scrollWidth = window.innerWidth - document.body.clientWidth);\n\n document.body.style.paddingRight = event.detail ? paddingRight + \"px\" : \"\";\n document.body.style.overflow = event.detail ? \"hidden\" : \"\";\n document.body.style.touchAction = event.detail ? \"none\" : \"\";\n};\n\nfunction SubMenuItemCom({\n index,\n hidden,\n item,\n topData,\n showTooltip,\n selectedKey = [],\n overflow,\n}: MenuGroupComProps) {\n return item.items?.length > 0 ? (\n <WrappedPopover\n data-index={index}\n className={classnames(\"popover\", {\n subprime: !topData,\n \"overflow-menu-item\": hidden,\n })}\n trigger=\"hover\"\n placement={topData ? \"bottom-start\" : \"right-start\"}\n distance={0}\n anchorDisplay=\"block\"\n strategy=\"fixed\"\n >\n <WrappedMenuItem\n className=\"sub-menu-item-label\"\n key={item.key}\n slot=\"anchor\"\n title={showTooltip ? item.title : \"\"}\n >\n {renderSpanCom(item, !topData)}\n </WrappedMenuItem>\n <div\n className={classnames(\"sub-menu-wrapper\", {\n \"overflow-menu-wrapper\": overflow,\n })}\n >\n {item.items.map((innerItem) => (\n <React.Fragment key={innerItem.key}>\n <RenderMenuItemCom\n item={innerItem}\n selectedKey={selectedKey}\n showTooltip={showTooltip}\n />\n </React.Fragment>\n ))}\n </div>\n </WrappedPopover>\n ) : null;\n}\n\nfunction GroupMenuItemCom({\n item,\n showTooltip,\n selectedKey = [],\n}: MenuGroupComProps) {\n return item.items?.length > 0 ? (\n item.childLayout === \"category\" ? (\n <ThreeLevelMenuCom\n item={item}\n selectedKey={selectedKey}\n showTooltip={showTooltip}\n placement=\"right-start\"\n anchorDisplay=\"block\"\n />\n ) : (item as SidebarMenuGroup).childLayout === \"siteMap\" ? (\n <SitMapMenCom\n item={item}\n selectedKey={selectedKey}\n showTooltip={showTooltip}\n placement=\"right-start\"\n anchorDisplay=\"block\"\n topData={false}\n />\n ) : (\n <>\n <div className=\"group-label\">{item.title}</div>\n <div className=\"group-wrapper\">\n {item.items.map((innerItem) => {\n return (\n <React.Fragment key={innerItem.key}>\n <RenderMenuItemCom\n item={innerItem}\n showTooltip={showTooltip}\n selectedKey={selectedKey}\n />\n </React.Fragment>\n );\n })}\n </div>\n </>\n )\n ) : null;\n}\n\nfunction ThreeLevelMenuCom({\n index,\n hidden,\n item,\n selectedKey = [],\n showTooltip,\n placement = \"bottom-start\",\n anchorDisplay,\n}: {\n index?: number;\n hidden?: boolean;\n item: SidebarMenuGroup;\n selectedKey?: string[];\n showTooltip?: boolean;\n placement?: Placement;\n anchorDisplay?: CSSProperties[\"display\"];\n}) {\n return item.items?.length > 0 ? (\n <WrappedPopover\n data-index={index}\n className={classnames(\"three-level-menu-popover\", \"popover\", {\n \"overflow-menu-item\": hidden,\n })}\n trigger={\"hover\"}\n placement={placement}\n distance={0}\n key={item.key}\n strategy=\"fixed\"\n anchorDisplay={anchorDisplay}\n beforeVisibleChange={handlePopupVisibleChange}\n >\n <WrappedMenuItem\n className=\"sub-menu-item-label\"\n key={item.key}\n slot=\"anchor\"\n title={showTooltip ? item.title : \"\"}\n >\n {renderSpanCom(item)}\n </WrappedMenuItem>\n <div className=\"sub-menu-wrapper\">\n <ThreeLevelMenuPopoverContent\n menuItem={item}\n selectedKey={selectedKey}\n ></ThreeLevelMenuPopoverContent>\n </div>\n </WrappedPopover>\n ) : null;\n}\n\nfunction SitMapMenCom({\n index,\n hidden,\n item,\n selectedKey = [],\n showTooltip,\n placement = \"bottom-start\",\n anchorDisplay,\n topData,\n}: {\n index?: number;\n hidden?: boolean;\n item: SidebarMenuGroup;\n selectedKey?: string[];\n showTooltip?: boolean;\n placement?: Placement;\n anchorDisplay?: CSSProperties[\"display\"];\n topData?: boolean;\n}) {\n const [visible, setVisible] = useState<boolean>();\n\n const handleVisibleChange = (event: CustomEvent<boolean>): void => {\n setVisible(event.detail);\n handlePopupVisibleChange(event);\n };\n\n return item.items?.length > 0 ? (\n <WrappedPopover\n data-index={index}\n className={classnames(\"popover\", {\n \"overflow-menu-item\": hidden,\n })}\n trigger={\"hover\"}\n placement={placement}\n distance={0}\n key={item.key}\n strategy=\"fixed\"\n anchorDisplay={anchorDisplay}\n beforeVisibleChange={handleVisibleChange}\n >\n <WrappedMenuItem\n className=\"sub-menu-item-label\"\n key={item.key}\n slot=\"anchor\"\n title={showTooltip ? item.title : \"\"}\n >\n {renderSpanCom(item)}\n </WrappedMenuItem>\n <div\n className={classnames(\"sub-menu-sit-map-wrapper\", {\n \"in-group-site-map\": !topData,\n })}\n onClick={(e) => e.stopPropagation()}\n >\n <SiteMapItem\n menuGroup={item}\n selectedKey={selectedKey}\n visible={visible}\n />\n </div>\n </WrappedPopover>\n ) : null;\n}\n\n/**\n * 菜单构件\n * @author sailor\n * @category navigation\n */\n@defineElement(\"eo-nav-menu\", {\n styleTexts: [\n SiteMapStyleText,\n ItemTagStyleText,\n GroupItemStyleText,\n styleText,\n ],\n})\nclass NavMenu extends ReactNextElement {\n /**\n * 菜单项\n */\n @property({\n attribute: false,\n })\n accessor menu: SidebarMenu | undefined;\n\n /**\n * 是否显示 tooltip\n */\n @property({\n type: Boolean,\n })\n accessor showTooltip: boolean | undefined;\n\n render() {\n return <NavMenuComponent menu={this.menu} showTooltip={this.showTooltip} />;\n }\n}\n\nfunction NavMenuComponent(props: NavMenuProps) {\n const { menu, showTooltip } = props;\n\n const history = getHistory();\n const navMenuWrapperRef = useRef<HTMLDivElement>(null);\n const [location, setLocation] = useState(history.location);\n const [overflowIndex, setOverflowIndex] = useState<number>(\n Number.MAX_SAFE_INTEGER\n );\n const { pathname, search } = location;\n\n const [selectedKey, setSelectedKey] = useState<string[]>([]);\n\n const setSelected = async (): Promise<void> => {\n const { selectedKeys } = initMenuItemAndMatchCurrentPathKeys(\n menu?.menuItems ?? [],\n pathname,\n search,\n \"\"\n );\n setSelectedKey(selectedKeys);\n };\n\n useEffect(() => {\n const unListen: UnregisterCallback = history.listen((location) => {\n setLocation(location);\n });\n setSelected();\n return unListen;\n }, []);\n\n useEffect(() => {\n if (navMenuWrapperRef.current) {\n const resizeObserver = new ResizeObserver(() => {\n if (navMenuWrapperRef.current) {\n const { width } = navMenuWrapperRef.current.getClientRects()[0] ?? {};\n const childNodes = navMenuWrapperRef.current.childNodes;\n\n if (childNodes.length && width) {\n let wrapperWidth = width;\n let overflowIndex = childNodes.length;\n\n for (let i = 0; i < childNodes.length; i++) {\n const { width: childWidth, height: childHeight } = (\n childNodes[i] as HTMLElement\n ).getClientRects()[0];\n\n if (!childHeight && wrapperWidth - 40 < 0) {\n overflowIndex = i - 1;\n break;\n }\n\n wrapperWidth =\n wrapperWidth - childWidth - (i > 0 ? GAP_WIDTH : 0);\n if (wrapperWidth < 0) {\n overflowIndex = i;\n break;\n }\n }\n\n setOverflowIndex(overflowIndex < 0 ? 0 : overflowIndex);\n }\n }\n });\n resizeObserver.observe(navMenuWrapperRef.current);\n\n return () => {\n resizeObserver.disconnect();\n };\n }\n }, []);\n\n const overflowMenu = useMemo(\n (): SidebarMenuItem => ({\n type: \"subMenu\",\n title: \"···\",\n items: menu?.menuItems.slice(\n overflowIndex,\n menu.menuItems.length\n ) as SidebarMenuItem[],\n }),\n [menu?.menuItems, overflowIndex]\n );\n\n return (\n <div ref={navMenuWrapperRef} className=\"nav-menu-wrapper\">\n {menu?.menuItems.map((item, index) => {\n const isHidden = overflowIndex <= index;\n return (\n <React.Fragment key={item.key}>\n {isSubMenu(item as SidebarMenuGroup, true) &&\n (item as SidebarMenuGroup).childLayout === \"category\" &&\n (item as SidebarMenuGroup).items?.length ? (\n <ThreeLevelMenuCom\n index={index}\n hidden={isHidden}\n item={item as SidebarMenuGroup}\n showTooltip={showTooltip}\n selectedKey={selectedKey}\n />\n ) : (item as SidebarMenuGroup).type === \"group\" &&\n (item as SidebarMenuGroup).childLayout === \"siteMap\" ? (\n <SitMapMenCom\n index={index}\n hidden={isHidden}\n item={item as SidebarMenuGroup}\n showTooltip={showTooltip}\n selectedKey={selectedKey}\n topData={true}\n />\n ) : (\n <RenderMenuItemCom\n index={index}\n hidden={isHidden}\n item={item}\n showTooltip={showTooltip}\n selectedKey={selectedKey}\n topData={true}\n />\n )}\n </React.Fragment>\n );\n })}\n <RenderMenuItemCom\n hidden={overflowIndex > (menu?.menuItems?.length ?? 0)}\n item={overflowMenu}\n showTooltip={showTooltip}\n selectedKey={selectedKey}\n overflow={true}\n topData={true}\n />\n </div>\n );\n}\n\nexport { NavMenu };\n","import React from \"react\";\nimport { createDecorators } from \"@next-core/element\";\nimport { ReactNextElement } from \"@next-core/react-element\";\nimport { LaunchpadButton as LaunchpadButtonComponent } from \"./LaunchpadButton/LaunchpadButton.js\";\nimport { initializeReactI18n } from \"@next-core/i18n/react\";\nimport \"@next-core/theme\";\nimport { NS, locales } from \"./i18n.js\";\nimport styleText from \"./LaunchpadButton/LaunchpadButton.shadow.css\";\n\ninitializeReactI18n(NS, locales);\n\nconst { defineElement } = createDecorators();\n\n/**\n * Launchpad 按钮构件\n * @author sailor\n * @insider\n */\n@defineElement(\"eo-launchpad-button\", {\n styleTexts: [styleText],\n})\nclass LaunchpadButton extends ReactNextElement {\n render() {\n return <LaunchpadButtonComponent />;\n }\n}\n\nexport { LaunchpadButton };\n","import React, { useCallback, useEffect, useRef } 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 { SidebarMenuItemData } from \"./interfaces\";\n\nexport function Launchpad({ active }: { active?: boolean }) {\n const searchInputRef = useRef<HTMLInputElement>(null);\n const handleClickSearchBox = useCallback(() => {\n searchInputRef.current?.focus();\n }, []);\n\n const {\n loading,\n q,\n setQ,\n menuGroups,\n favorites,\n loadingFavorites,\n recentVisits,\n pushRecentVisit,\n toggleStar,\n isStarred,\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 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=\"quick-nav\">\n <div className=\"quick-nav-label\">快捷访问</div>\n {/* <Loading loading={loading || loadingFavorites} /> */}\n <ul className=\"sidebar-menu\">\n {favorites.map((item, index) => (\n <SidebarMenuItem\n key={index}\n item={item as SidebarMenuItemData}\n />\n ))}\n </ul>\n </div>\n </div>\n <div className={classNames(\"content\", { loading })}>\n <Loading loading={loading} />\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 <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 <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 </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","\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;\n\n options.insert = insertFn.bind(null, \"head\");\n \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 React, { useEffect, useState } from \"react\";\nimport { createDecorators } from \"@next-core/element\";\nimport { ReactNextElement } from \"@next-core/react-element\";\nimport { unwrapProvider } from \"@next-core/utils/general\";\nimport \"@next-core/theme\";\nimport { getHistory } from \"@next-core/runtime\";\nimport type { lockBodyScroll as _lockBodyScroll } from \"@next-bricks/basic/data-providers/lock-body-scroll/lock-body-scroll\";\n// import { useTranslation, initializeReactI18n } from \"@next-core/i18n/react\";\nimport hotkeys from \"hotkeys-js\";\nimport classNames from \"classnames\";\n// import { K, NS, locales } from \"./i18n.js\";\nimport LaunchpadSvg from \"../images/launchpad.svg\";\nimport styleText from \"./styles.shadow.css\";\nimport { Launchpad } from \"./Launchpad\";\nimport { deferredFavorites, deferredLaunchpadInfo } from \"./useLaunchpadInfo\";\nimport \"./host-context.css\";\n\n// initializeReactI18n(NS, locales);\n\nconst { defineElement } = createDecorators();\n\nconst lockBodyScroll = unwrapProvider<typeof _lockBodyScroll>(\n \"basic.lock-body-scroll\"\n);\n\n/**\n * 构件 `eo-launchpad-button-v2`\n * @insider\n */\nexport\n@defineElement(\"eo-launchpad-button-v2\", {\n styleTexts: [styleText],\n})\nclass EoLaunchpadButtonV2 extends ReactNextElement {\n disconnectedCallback(): void {\n super.disconnectedCallback();\n lockBodyScroll(this, false);\n }\n\n render() {\n return <EoLaunchpadButtonV2Component host={this} />;\n }\n}\n\nexport function EoLaunchpadButtonV2Component({ host }: { host: HTMLElement }) {\n const [initialized, setInitialized] = useState(false);\n const [active, setActive] = useState(false);\n const toggleLaunchpad = (): void => {\n setActive((previous) => !previous);\n };\n\n useEffect(() => {\n // 当切换页面时,关闭 Launchpad。\n const unlisten = getHistory().listen(() => {\n setActive(false);\n });\n return unlisten;\n }, []);\n\n useEffect(() => {\n // 打开一次 launchpad 后,保留 DOM。\n if (active && !initialized) {\n setInitialized(true);\n }\n }, [active, initialized]);\n\n // istanbul ignore next\n useEffect(() => {\n hotkeys.filter = function () {\n return true;\n };\n\n // 快捷打开/关闭 Launchpad\n hotkeys(\"alt+l\", (event) => {\n event.preventDefault();\n setActive((previous) => !previous);\n });\n\n // 按 Esc 关闭 Launchpad\n hotkeys(\"esc\", () => {\n setActive(false);\n });\n\n return () => {\n hotkeys.unbind(\"alt+l\");\n hotkeys.unbind(\"esc\");\n };\n }, []);\n\n useEffect(() => {\n lockBodyScroll(host, active);\n }, [active, host]);\n\n useEffect(() => {\n deferredLaunchpadInfo.schedulePrefetch();\n deferredFavorites.schedulePrefetch();\n }, []);\n\n return (\n <>\n <a\n role=\"button\"\n className={classNames(\"launchpad-button\", { active })}\n onClick={toggleLaunchpad}\n >\n <LaunchpadSvg />\n </a>\n <div\n className={classNames(\"mask\", { active })}\n onClick={toggleLaunchpad}\n ></div>\n {initialized && <Launchpad active={active} />}\n </>\n );\n}\n","import { wrapBrick } from \"@next-core/react-element\";\nimport { unwrapProvider } from \"@next-core/utils/general\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\nimport type { Link, LinkProps } from \"@next-bricks/basic/link\";\nimport type {\n EoDropdownActions,\n DropdownActionsProps,\n DropdownActionsEvents,\n DropdownActionsEventsMapping,\n} from \"@next-bricks/basic/dropdown-actions\";\nimport type { showDialog as _showDialog } from \"@next-bricks/basic/data-providers/show-dialog/show-dialog\";\n\nexport const WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\nexport const WrappedLink = wrapBrick<Link, LinkProps>(\"eo-link\");\nexport const WrappedDropdownActions = wrapBrick<\n EoDropdownActions,\n DropdownActionsProps,\n DropdownActionsEvents,\n DropdownActionsEventsMapping\n>(\"eo-dropdown-actions\", {\n onActionClick: \"action.click\",\n onVisibleChange: \"visible.change\",\n});\n\n// Use `unwrapProvider` to get the original function of a provider\nexport const showDialog =\n unwrapProvider<typeof _showDialog>(\"basic.show-dialog\");\n","import React, { useCallback, useMemo, useState } from \"react\";\nimport { pick } from \"lodash\";\nimport classNames from \"classnames\";\nimport { checkIfByTransform } from \"@next-core/runtime\";\nimport type { SimpleAction } from \"@next-bricks/basic/dropdown-actions\";\nimport {\n WrappedDropdownActions,\n WrappedIcon,\n WrappedLink,\n} from \"./wrapped-bricks\";\nimport type {\n ConfigMenuGroup,\n ConfigMenuItemDir,\n ConfigMenuItemNormal,\n MenuAction,\n MenuActionEventDetail,\n} from \"./interfaces\";\nimport { getAppLocaleName } from \"../shared/getLocaleName\";\n\nexport interface MenuGroupProps {\n data: ConfigMenuGroup;\n actions?: MenuAction[];\n onActionClick?: (detail: MenuActionEventDetail) => void;\n}\n\nexport function MenuGroup({ data, actions, onActionClick }: MenuGroupProps) {\n const { name, items } = data;\n const [dropdownActive, setDropdownActive] = useState(false);\n\n const filteredActions = useMemo(\n () =>\n actions?.filter((item) => checkIfByTransform(item, { type: \"group\" })),\n [actions]\n );\n\n const handleActionClick = useCallback(\n (event: CustomEvent<SimpleAction>) => {\n onActionClick?.({\n data,\n action: event.detail,\n });\n },\n [data, onActionClick]\n );\n\n return (\n <li className={classNames(\"menu-group\", { empty: items.length === 0 })}>\n <div className=\"menu-group-label-wrapper\">\n <span className=\"menu-group-label\">{name}</span>\n <WrappedDropdownActions\n actions={filteredActions}\n onVisibleChange={(event) => {\n setDropdownActive(event.detail);\n }}\n onActionClick={handleActionClick}\n >\n <WrappedIcon\n lib=\"fa\"\n icon=\"gear\"\n className={classNames(\"menu-config\", { active: dropdownActive })}\n />\n </WrappedDropdownActions>\n </div>\n <ul className=\"menu\">\n {items.map((item) =>\n item.type === \"dir\" ? (\n <MenuItemFolder\n key={item.instanceId}\n data={item}\n actions={actions}\n onActionClick={onActionClick}\n />\n ) : (\n <MenuItem\n key={`${item.type}-${item.id}`}\n data={item}\n actions={actions}\n onActionClick={onActionClick}\n />\n )\n )}\n </ul>\n </li>\n );\n}\n\nexport interface MenuItemProps {\n data: ConfigMenuItemNormal;\n actions?: MenuAction[];\n onActionClick?: (detail: MenuActionEventDetail) => void;\n}\n\nexport function MenuItem({ data, actions, onActionClick }: MenuItemProps) {\n const name = useMemo(\n () =>\n data.type === \"app\"\n ? getAppLocaleName(data.locales, data.name)\n : data.name,\n [data]\n );\n\n const [dropdownActive, setDropdownActive] = useState(false);\n\n const filteredActions = useMemo(\n () => actions?.filter((item) => checkIfByTransform(item, data)),\n [actions, data]\n );\n\n const handleActionClick = useCallback(\n (event: CustomEvent<SimpleAction>) => {\n onActionClick?.({\n data,\n action: event.detail,\n });\n },\n [data, onActionClick]\n );\n\n return (\n <li className=\"menu-item\">\n <WrappedLink>\n <WrappedIcon\n className={`menu-icon`}\n lib=\"easyops\"\n icon=\"micro-app-center\"\n {...(data.menuIcon?.lib && data.menuIcon.icon\n ? (pick(data.menuIcon, [\n \"lib\",\n \"icon\",\n \"theme\",\n \"category\",\n \"prefix\",\n ]) as any)\n : null)}\n />\n <span className=\"menu-item-label\">{name}</span>\n </WrappedLink>\n <WrappedDropdownActions\n actions={filteredActions}\n onVisibleChange={(event) => {\n setDropdownActive(event.detail);\n }}\n onActionClick={handleActionClick}\n >\n <WrappedIcon\n lib=\"fa\"\n icon=\"gear\"\n className={classNames(\"menu-config\", { active: dropdownActive })}\n />\n </WrappedDropdownActions>\n </li>\n );\n}\n\nexport interface MenuItemFolderProps {\n data: ConfigMenuItemDir;\n actions?: MenuAction[];\n onActionClick?: (detail: MenuActionEventDetail) => void;\n}\n\nfunction MenuItemFolder({ data, actions, onActionClick }: MenuItemFolderProps) {\n const { name, items } = data;\n const [dropdownActive, setDropdownActive] = useState(false);\n const [expanded, setExpanded] = useState(false);\n\n const filteredActions = useMemo(\n () => actions?.filter((item) => checkIfByTransform(item, { type: \"dir\" })),\n [actions]\n );\n\n const toggle = useCallback(() => {\n setExpanded((previous) => !previous);\n }, []);\n\n const handleActionClick = useCallback(\n (event: CustomEvent<SimpleAction>) => {\n onActionClick?.({\n data,\n action: event.detail,\n });\n },\n [data, onActionClick]\n );\n\n return (\n <li\n className={classNames(\"menu-item folder\", { empty: items.length === 0 })}\n >\n <div className=\"menu-folder-label-wrapper\">\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={expanded ? \"up\" : \"down\"}\n className=\"menu-item-toggle\"\n />\n </WrappedLink>\n <WrappedDropdownActions\n actions={filteredActions}\n onVisibleChange={(event) => {\n setDropdownActive(event.detail);\n }}\n onActionClick={handleActionClick}\n >\n <WrappedIcon\n lib=\"fa\"\n icon=\"gear\"\n className={classNames(\"menu-config\", { active: dropdownActive })}\n />\n </WrappedDropdownActions>\n </div>\n <ul className={classNames(\"sub-menu\", { expanded })}>\n {items.map((item) => (\n <MenuItem\n key={item.instanceId}\n data={item}\n actions={actions}\n onActionClick={onActionClick}\n />\n ))}\n </ul>\n </li>\n );\n}\n","import React from \"react\";\nimport { EventEmitter, createDecorators } from \"@next-core/element\";\nimport { ReactNextElement } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport type {\n ConfigMenuGroup,\n MenuAction,\n MenuActionEventDetail,\n} from \"./interfaces\";\nimport { MenuGroup } from \"./MenuGroup\";\nimport styleText from \"./styles.shadow.css\";\n\nconst { defineElement, property, event } = createDecorators();\n\n/**\n * 构件 `nav.launchpad-config`\n * @insider\n */\nexport\n@defineElement(\"nav.launchpad-config\", {\n styleTexts: [styleText],\n})\nclass LaunchpadConfig extends ReactNextElement implements LaunchpadConfigProps {\n @property({ attribute: false })\n accessor menuGroups: ConfigMenuGroup[] | undefined;\n\n @property({ attribute: false })\n accessor actions: MenuAction[] | undefined;\n\n @event({ type: \"action.click\" })\n accessor #actionClickEvent!: EventEmitter<MenuActionEventDetail>;\n\n #onActionClick = (detail: MenuActionEventDetail) => {\n this.#actionClickEvent.emit(detail);\n };\n\n render() {\n return (\n <LaunchpadConfigComponent\n menuGroups={this.menuGroups}\n actions={this.actions}\n onActionClick={this.#onActionClick}\n />\n );\n }\n}\n\nexport interface LaunchpadConfigProps {\n menuGroups?: ConfigMenuGroup[];\n actions?: MenuAction[];\n onActionClick?: (detail: MenuActionEventDetail) => void;\n}\n\nexport function LaunchpadConfigComponent({\n menuGroups,\n actions,\n onActionClick,\n}: LaunchpadConfigProps) {\n return (\n <ul className=\"menu-groups\">\n {menuGroups?.map((group) => (\n <MenuGroup\n key={group.instanceId}\n data={group}\n actions={actions}\n onActionClick={onActionClick}\n />\n ))}\n </ul>\n );\n}\n","import React, { useCallback, useEffect, useMemo, useState } from \"react\";\nimport { createDecorators } from \"@next-core/element\";\nimport { ReactNextElement, wrapBrick } from \"@next-core/react-element\";\nimport { getRuntime } from \"@next-core/runtime\";\nimport { useCurrentApp } from \"@next-core/react-runtime\";\nimport { auth } from \"@next-core/easyops-runtime\";\nimport \"@next-core/theme\";\nimport { JsonStorage } from \"@next-shared/general/JsonStorage\";\nimport moment from \"moment\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\nimport type { Link, LinkProps } from \"@next-bricks/basic/link\";\nimport styleText from \"./styles.shadow.css\";\n\nexport const WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\nexport const WrappedLink = wrapBrick<Link, LinkProps>(\"eo-link\");\n\nconst { defineElement } = createDecorators();\n\n/**\n * 构件 `nav.easyops-navbar-alerts`\n * @insider\n */\nexport\n@defineElement(\"nav.easyops-navbar-alerts\", {\n styleTexts: [styleText],\n})\nclass EasyopsNavbarAlerts extends ReactNextElement {\n render() {\n return <EasyopsNavbarAlertsComponent />;\n }\n}\n\ninterface SlowRenderInfo {\n renderTime: number;\n suggestTime: number;\n suggestUrl?: string;\n}\n\nconst storage = new JsonStorage(localStorage);\n\nexport function EasyopsNavbarAlertsComponent() {\n const [licenseDaysLeft, setLicenseDaysLeft] = useState<number | null>(null);\n const [slowRender, setSlowRender] = useState<SlowRenderInfo | null>(null);\n const currentApp = useCurrentApp();\n const licenseDismissedKey = useMemo(() => {\n const authInfo = auth.getAuth();\n return `license:${authInfo.org}`;\n }, []);\n\n useEffect(() => {\n const authInfo = auth.getAuth();\n const validDaysLeft = authInfo.license?.validDaysLeft;\n let dismissExpireAt: number;\n if (\n validDaysLeft &&\n validDaysLeft <= 15 &&\n authInfo.isAdmin &&\n ((dismissExpireAt = storage.getItem(licenseDismissedKey)),\n !dismissExpireAt || moment().unix() > dismissExpireAt)\n ) {\n setLicenseDaysLeft(validDaysLeft);\n }\n }, [licenseDismissedKey]);\n\n useEffect(() => {\n const handelRouteRender = (e: Event): void => {\n const renderTime = (e as CustomEvent<{ renderTime: number }>).detail\n .renderTime;\n const { loadTime, loadInfoPage } = getRuntime().getMiscSettings() as {\n loadTime: number;\n loadInfoPage?: string;\n };\n if (currentApp?.isBuildPush && loadTime > 0 && renderTime > loadTime) {\n setSlowRender({\n renderTime: millisecondToSecond(renderTime),\n suggestTime: millisecondToSecond(loadTime),\n suggestUrl: loadInfoPage,\n });\n }\n };\n window.addEventListener(\"route.render\", handelRouteRender);\n return () => {\n window.removeEventListener(\"route.render\", handelRouteRender);\n };\n }, [currentApp]);\n\n const handleLicenseAlertDismiss = useCallback(() => {\n // 一天内不再显示。\n storage.setItem(licenseDismissedKey, moment().unix() + 86400);\n setLicenseDaysLeft(null);\n }, [licenseDismissedKey]);\n\n return (\n <>\n {slowRender && (\n <Alert\n text={`您的页面存在性能问题, 当前页面渲染时间 ${slowRender.renderTime} 秒, 规定阈值为: ${slowRender.suggestTime} 秒, 您已超过。请您针对该页面进行性能优化!`}\n type=\"warning\"\n link={\n slowRender.suggestUrl\n ? {\n label: \"建议解决思路\",\n url: slowRender.suggestUrl,\n }\n : undefined\n }\n />\n )}\n {licenseDaysLeft !== null && (\n <Alert\n text={`离 License 过期还有 ${licenseDaysLeft} 天`}\n type=\"info\"\n closable\n onClose={handleLicenseAlertDismiss}\n />\n )}\n </>\n );\n}\n\ninterface AlertProps {\n text: string;\n type: \"info\" | \"warning\";\n closable?: boolean;\n link?: {\n label: string;\n url: string;\n };\n onClose?: () => void;\n}\n\nfunction Alert({ text, type, closable, link, onClose }: AlertProps) {\n return (\n <div className={`alert ${type}`}>\n <span className=\"text\">{text}</span>\n {link && (\n <WrappedLink className=\"link\" href={link.url} target=\"_blank\">\n {link.label}\n </WrappedLink>\n )}\n {closable && (\n <WrappedIcon\n lib=\"antd\"\n icon=\"close\"\n className=\"icon\"\n role=\"button\"\n onClick={onClose}\n />\n )}\n </div>\n );\n}\n\nfunction millisecondToSecond(millisecond: number) {\n return Math.floor(millisecond * 100) / 1e5;\n}\n","import React from \"react\";\nimport { createDecorators } from \"@next-core/element\";\nimport { ReactNextElement } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport styleText from \"./styles.shadow.css\";\nimport { useLaunchpadInfo } from \"../launchpad-button-v2/useLaunchpadInfo\";\nimport { LaunchpadsContext } from \"../launchpad-button-v2/LaunchpadContext\";\nimport { SidebarMenuItem } from \"../launchpad-button-v2/MenuGroup\";\nimport { SidebarMenuItemData } from \"../launchpad-button-v2/interfaces\";\n\nconst { defineElement } = createDecorators();\n\n/**\n * 快捷访问\n * @insider\n */\nexport\n@defineElement(\"eo-launchpad-quick-access\", {\n styleTexts: [styleText],\n})\nclass EoLaunchpadQuickAccess extends ReactNextElement {\n render() {\n return <EoLaunchpadQuickAccessComponent />;\n }\n}\n\nexport function EoLaunchpadQuickAccessComponent() {\n const {\n favorites,\n loadingFavorites,\n pushRecentVisit,\n toggleStar,\n isStarred,\n } = useLaunchpadInfo(true);\n\n return (\n <LaunchpadsContext.Provider\n value={{\n searching: false,\n loadingFavorites,\n pushRecentVisit,\n toggleStar,\n isStarred,\n }}\n >\n <ul className=\"quick-access-list\">\n {favorites.map((item, index) => (\n <SidebarMenuItem key={index} item={item as SidebarMenuItemData} />\n ))}\n </ul>\n </LaunchpadsContext.Provider>\n );\n}\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;\n\n options.insert = insertFn.bind(null, \"head\");\n \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 React, { useCallback, useRef, useState } from \"react\";\nimport { createDecorators } from \"@next-core/element\";\nimport { ReactNextElement, wrapBrick } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport styleText from \"./styles.shadow.css\";\nimport classNames from \"classnames\";\nimport { LaunchpadsContext } from \"../launchpad-button-v2/LaunchpadContext\";\nimport { useLaunchpadInfo } from \"../launchpad-button-v2/useLaunchpadInfo\";\nimport { MenuGroup } from \"../launchpad-button-v2/MenuGroup\";\nimport { GeneralIcon, GeneralIconProps } from \"@next-bricks/icons/general-icon\";\nimport \"./host-context.css\";\n\nexport const WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\n\nconst { defineElement } = createDecorators();\n\n/**\n * launchpad 搜索\n * @insider\n */\nexport\n@defineElement(\"eo-search-launchpad\", {\n styleTexts: [styleText],\n})\nclass EoSearchLaunchpad extends ReactNextElement {\n render() {\n return <EoSearchLaunchpadComponent />;\n }\n}\n\nexport function EoSearchLaunchpadComponent() {\n const searchInputRef = useRef<HTMLInputElement>(null);\n const handleClickSearchBox = useCallback(() => {\n searchInputRef.current?.focus();\n }, []);\n\n const [active, setActive] = useState(false);\n\n const {\n loading,\n q,\n setQ,\n menuGroups,\n loadingFavorites,\n pushRecentVisit,\n toggleStar,\n isStarred,\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 return (\n <LaunchpadsContext.Provider\n value={{\n searching,\n loadingFavorites,\n pushRecentVisit,\n toggleStar,\n isStarred,\n }}\n >\n <div className=\"container\">\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 onFocus={() => setActive(true)}\n onBlur={() => setActive(false)}\n />\n <WrappedIcon\n lib=\"antd\"\n theme=\"filled\"\n icon=\"close-circle\"\n className={classNames(\"search-clear\", { searching })}\n onClick={clearSearch}\n onMouseDown={(e) => e.preventDefault()}\n />\n </div>\n <div\n className={classNames(\"dropdown\", { \"dropdown-active\": active })}\n onMouseDown={(e) => e.preventDefault()}\n >\n <div className={classNames(\"dropdown-content\", { loading })}>\n <Loading loading={loading} />\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 </div>\n </div>\n </div>\n </LaunchpadsContext.Provider>\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 { createDecorators } from \"@next-core/element\";\nimport { ReactNextElement, wrapBrick } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport styleText from \"./styles.shadow.css\";\nimport { useLaunchpadInfo } from \"../launchpad-button-v2/useLaunchpadInfo\";\nimport type { Link, LinkProps } from \"@next-bricks/basic/link\";\n\nconst WrappedLink = wrapBrick<Link, LinkProps>(\"eo-link\");\n\nconst { defineElement } = createDecorators();\n\n/**\n * launchpad 最近访问\n * @insider\n */\nexport\n@defineElement(\"eo-launchpad-recent-visits\", {\n styleTexts: [styleText],\n})\nclass EoLaunchpadRecentVisits extends ReactNextElement {\n render() {\n return <EoLaunchpadRecentVisitsComponent />;\n }\n}\n\nexport function EoLaunchpadRecentVisitsComponent() {\n const { recentVisits, pushRecentVisit } = useLaunchpadInfo(true);\n\n return (\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 );\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, `:root{--eo-search-launchpad-menu-icon-color:#8c8c8c}html[data-theme=\"dark\"],\nhtml[data-theme=\"dark-v2\"]{--eo-search-launchpad-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, `:host{display:block}:host([hidden]){display:none}.alert{height:32px;padding:0 20px;display:flex;justify-content:center;align-items:center}.text{color:var(--antd-text-color);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.icon{margin-left:20px;cursor:pointer;color:#8c8c8c}.info{background-color:var(--color-info-bg)}.warning{background-color:var(--color-warning-bg)}`, \"\"]);\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\";\nimport ___CSS_LOADER_GET_URL_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/getUrl.js\";\nvar ___CSS_LOADER_URL_IMPORT_0___ = new URL(\"../images/launchpad-sidebar.png\", import.meta.url);\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___);\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) - 10px)}: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;-moz-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);max-height:var(--eo-launchpad-v2-max-height);min-height:50vh;min-height:min(500px,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;padding:20px 0 24px;display:flex;flex-direction:column;background:var(--color-fill-bg-base-3);min-width:0;background-image:url(${___CSS_LOADER_URL_REPLACEMENT_0___});background-size:205px 205px;background-repeat:no-repeat;background-position:left 52px bottom 27px}.quick-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{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)}.quick-nav{overflow-y:auto;flex:1}.quick-nav-label{color:var(--color-header-text);font-weight:500;margin-bottom:14px;padding:0 16px}.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;grid-gap:32px 8px;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;grid-gap:8px;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","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:block;--local-menu-icon-color:#8c8c8c}:host([hidden]){display:none;--local-menu-icon-color:rgba(255,255,255,0.45)}ul{list-style:none;margin:0;padding:0}.menu-groups{display:grid;grid-gap:32px 16px;gap:32px 16px;grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}.menu,\n.sub-menu{display:flex;flex-direction:column;gap:14px}.menu-folder-label-wrapper > eo-link,\n.menu-item > eo-link{display:block}.menu-folder-label-wrapper > eo-link::part(link),\n.menu-item > eo-link::part(link){height:20px;display:flex;align-items:center;gap:8px;color:var(--color-header-text)}.menu-group-label-wrapper,\n.menu-folder-label-wrapper,\n.menu-item:not(.folder){display:flex;gap:8px;align-items:center}.menu-group-label-wrapper{gap:3px}.menu-group:not(.empty) .menu-group-label-wrapper{margin-bottom:14px}.menu-group-label,\n.menu-item-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.menu-group-label{font-size:var(--card-title-font-size);font-weight:500;color:var(--color-header-text)}.menu-icon{color:var(--local-menu-icon-color)}.menu-folder-label-wrapper > eo-link,\n.menu-item > eo-link{max-width:100%;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;min-width:0}.sub-menu:not(.expanded){display:none}.sub-menu{margin-left:8px;border-left:1px solid var(--color-text-divider-line);padding-left:15px}.menu-item:not(.empty) .sub-menu{margin-top:14px}.menu-item-toggle{color:var(--color-secondary-text)}.menu-config{visibility:hidden;color:var(--color-brand);cursor:pointer;display:flex;justify-content:center;align-items:center;height:24px;width:0}.menu-config.active,\n.menu-group-label-wrapper:hover .menu-config,\n.menu-item:not(.folder):hover .menu-config,\n.menu-folder-label-wrapper:hover .menu-config{visibility:visible;width:24px}.menu-config:hover,\n.menu-item > eo-link:hover::part(link),\n.menu-item > eo-link:hover .menu-icon,\n.menu-folder-label-wrapper > eo-link:hover::part(link),\n.menu-folder-label-wrapper > eo-link:hover .menu-icon,\n.menu-folder-label-wrapper > eo-link:hover .menu-item-toggle{color:var(--color-brand-hover)}@supports not (inset: 0){.sub-menu,\n .menu,\n .menu-group-label-wrapper,\n .menu-folder-label-wrapper,\n .menu-item:not(.folder),\n .menu-item > eo-link::part(link){gap:0}.menu > :not(:first-child),\n .sub-menu > :not(:first-child){margin-top:14px}.menu-icon{margin-right:8px}eo-dropdown-actions,\n .menu-item-toggle{margin-left:8px}}`, \"\"]);\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:block}:host([hidden]){display:none}.quick-access-list{display:grid;grid-gap:14px;gap:14px;grid-template-columns:repeat(2,1fr);list-style:none;margin:0;padding:0}.sidebar-menu-item{display:flex;align-items:center;justify-content:space-between;overflow:hidden}.sidebar-menu-item > eo-link{display:block;min-width:0}.sidebar-menu-item > eo-link::part(link){display:flex;align-items:center;height:20px;gap:8px;color:var(--color-header-text)}.sidebar-menu-icon{color:var(--left-sidebar-item-collapsed-icon-color)}.menu-item-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.menu-item-remove{color:var(--color-secondary-text);cursor:pointer}.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)}.sidebar-menu-item > eo-link:hover::part(link),\n.sidebar-menu-item > eo-link:hover .sidebar-menu-icon{color:var(--color-brand-hover)}@supports not (inset: 0){.sidebar-menu-item,\n .sidebar-menu-item > eo-link::part(link){gap:0}.sidebar-menu-icon{margin-right:8px}}`, \"\"]);\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:block}:host([hidden]){display:none}.recent-visits{list-style:none;margin:0;padding:0;display:grid;grid-gap:8px;gap:8px;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));max-height:56px;overflow:hidden}.recent-visits span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.recent-visits eo-link{display:block;min-width:0}.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}.recent-visits eo-link:hover::part(link){color:var(--color-brand-hover)}`, \"\"]);\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:block}:host([hidden]){display:none}.container{position:relative}.dropdown{margin-top:5px;position:absolute;top:100%;left:0px;width:100%;z-index:1050;padding:20px 24px 24px;overflow:hidden;box-sizing:border-box;background-color:var(--antd-select-dropdown-bg);border-radius:4px;box-shadow:var(--antd-box-shadow-base);display:none}.dropdown-active{display:block}.search-box{border-bottom:1px solid var(--color-text-divider-line);display:flex;gap:8px;align-items:center;padding:10px 0;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)}.dropdown-content{min-width:0;display:flex;flex-direction:column;gap:24px;max-height:260px;overflow-y:auto}.spinner{display:flex;justify-content:center;align-items:center;color:var(--theme-doderblue-color);flex:1;font-size:30px}.loading > :not(.spinner){display:none}.menu-group-label,\n.menu-item-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.menu-groups,\n.menu,\n.sub-menu{list-style:none;margin:0;padding:0}.menu,\n.sub-menu{display:flex;flex-direction:column;gap:14px}.menu-item > eo-link{display:block;min-width:0}.menu-item > eo-link::part(link){height:20px;display:flex;align-items:center;gap:8px;color:var(--color-header-text)}.menu-groups{grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}.menu-groups{display:grid;grid-gap:32px 8px;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}.menu-item:not(.folder){display:flex;gap:8px;align-items:center}.menu-icon{color:var(--eo-search-launchpad-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-star{cursor:pointer}.menu-item-star,\n.menu-item-toggle{color:var(--color-secondary-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)}.menu-item > eo-link:hover::part(link),\n.menu-item > eo-link:hover .menu-icon,\n.menu-item > eo-link:hover .menu-item-toggle{color:var(--color-brand-hover)}@supports not (inset: 0){.search-box,\n .menu,\n .sub-menu,\n .menu-item:not(.folder),\n .menu-item > eo-link::part(link){gap:0}.dropdown-content{display:grid;grid-auto-flow:row}.dropdown-content:not(.loading){height:-webkit-min-content;height:-moz-min-content;height:min-content}.menu > :not(:first-child),\n .sub-menu > :not(:first-child){margin-top:14px}.search-icon,\n .menu-icon{margin-right:8px}.search-clear,\n .menu-item-star,\n .menu-item-toggle{margin-left:8px}}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","\"use strict\";\n\nmodule.exports = function (url, options) {\n if (!options) {\n options = {};\n }\n if (!url) {\n return url;\n }\n url = String(url.__esModule ? url.default : url);\n\n // If url is already wrapped in quotes, remove them\n if (/^['\"].*['\"]$/.test(url)) {\n url = url.slice(1, -1);\n }\n if (options.hash) {\n url += options.hash;\n }\n\n // Should url be wrapped?\n // See https://drafts.csswg.org/css-values-3/#urls\n if (/[\"'() \\t\\n]|(%20)/.test(url) || options.needQuotes) {\n return \"\\\"\".concat(url.replace(/\"/g, '\\\\\"').replace(/\\n/g, \"\\\\n\"), \"\\\"\");\n }\n return url;\n};","export default function _checkPrivateRedeclaration(obj, privateCollection) {\n if (privateCollection.has(obj)) {\n throw new TypeError(\"Cannot initialize the same private elements twice on an object\");\n }\n}","export default function _classExtractFieldDescriptor(receiver, privateMap, action) {\n if (!privateMap.has(receiver)) {\n throw new TypeError(\"attempted to \" + action + \" private field on non-instance\");\n }\n return privateMap.get(receiver);\n}","import classApplyDescriptorGet from \"./classApplyDescriptorGet.js\";\nimport classExtractFieldDescriptor from \"./classExtractFieldDescriptor.js\";\nexport default function _classPrivateFieldGet(receiver, privateMap) {\n var descriptor = classExtractFieldDescriptor(receiver, privateMap, \"get\");\n return classApplyDescriptorGet(receiver, descriptor);\n}","export default function _classApplyDescriptorGet(receiver, descriptor) {\n if (descriptor.get) {\n return descriptor.get.call(receiver);\n }\n return descriptor.value;\n}","import checkPrivateRedeclaration from \"./checkPrivateRedeclaration.js\";\nexport default function _classPrivateFieldInitSpec(obj, privateMap, value) {\n checkPrivateRedeclaration(obj, privateMap);\n privateMap.set(obj, value);\n}","import classApplyDescriptorSet from \"./classApplyDescriptorSet.js\";\nimport classExtractFieldDescriptor from \"./classExtractFieldDescriptor.js\";\nexport default function _classPrivateFieldSet(receiver, privateMap, value) {\n var descriptor = classExtractFieldDescriptor(receiver, privateMap, \"set\");\n classApplyDescriptorSet(receiver, descriptor, value);\n return value;\n}","export default function _classApplyDescriptorSet(receiver, descriptor, value) {\n if (descriptor.set) {\n descriptor.set.call(receiver, value);\n } else {\n if (!descriptor.writable) {\n throw new TypeError(\"attempted to set read only private field\");\n }\n descriptor.value = value;\n }\n}","import _asyncToGenerator from \"@babel/runtime/helpers/asyncToGenerator\";\nimport { http } from \"@next-core/http\";\n/**\n * @description 新增我的收藏V2\n * @endpoint POST /api/v2/launchpad/collection\n */\nexport var LaunchpadApi_createCollectionV2 = /*#__PURE__*/function () {\n var _ref = _asyncToGenerator(function* (data, options) {\n return (/**! @contract easyops.api.user_service.launchpad.CreateCollectionV2@1.0.0 */(yield http.post(\"api/gateway/user_service.launchpad.CreateCollectionV2/api/v2/launchpad/collection\", data, options)).data\n );\n });\n return function LaunchpadApi_createCollectionV2(_x, _x2) {\n return _ref.apply(this, arguments);\n };\n}();\n//# sourceMappingURL=createCollectionV2.js.map","import { http } from \"@next-core/http\";\n\n/**\n * @description 删除我的收藏V2\n * @endpoint DELETE /api/v2/launchpad/collection/:instanceId\n */\nexport var LaunchpadApi_deleteCollectionV2 = (instanceId, options) => /**! @contract easyops.api.user_service.launchpad.DeleteCollectionV2@1.0.0 */http.delete(\"api/gateway/user_service.launchpad.DeleteCollectionV2/api/v2/launchpad/collection/\".concat(instanceId), options);\n//# sourceMappingURL=deleteCollectionV2.js.map","import _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\nimport _asyncToGenerator from \"@babel/runtime/helpers/asyncToGenerator\";\nimport { http } from \"@next-core/http\";\n/**\n * @description 获取我的收藏列表V2\n * @endpoint LIST /api/v2/launchpad/collection\n */\nexport var LaunchpadApi_listCollectionV2 = /*#__PURE__*/function () {\n var _ref = _asyncToGenerator(function* (params, options) {\n return (/**! @contract easyops.api.user_service.launchpad.ListCollectionV2@1.0.0 */(yield http.get(\"api/gateway/user_service.launchpad.ListCollectionV2/api/v2/launchpad/collection\", _objectSpread(_objectSpread({}, options), {}, {\n params\n }))).data\n );\n });\n return function LaunchpadApi_listCollectionV2(_x, _x2) {\n return _ref.apply(this, arguments);\n };\n}();\n//# sourceMappingURL=listCollectionV2.js.map","import _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\nimport _asyncToGenerator from \"@babel/runtime/helpers/asyncToGenerator\";\nimport { http } from \"@next-core/http\";\n/**\n * @description 获取我的收藏列表\n * @endpoint GET /api/v1/user_service/my_collection/collections\n */\nexport var MyCollectionApi_listMyCollection = /*#__PURE__*/function () {\n var _ref = _asyncToGenerator(function* (params, options) {\n return (/**! @contract easyops.api.user_service.my_collection.ListMyCollection@1.0.0 */(yield http.get(\"api/gateway/user_service.my_collection.ListMyCollection/api/v1/user_service/my_collection/collections\", _objectSpread(_objectSpread({}, options), {}, {\n params\n }))).data\n );\n });\n return function MyCollectionApi_listMyCollection(_x, _x2) {\n return _ref.apply(this, arguments);\n };\n}();\n//# sourceMappingURL=listMyCollection.js.map","import { http } from \"@next-core/http\";\n/**\n * @description 更新/新增我的收藏,这个接口用于全量更新单实例\n * @endpoint POST /api/v1/user_service/my_collection/upsert_collections\n */\nexport var MyCollectionApi_upsertMyCollection = (data, options) => /**! @contract easyops.api.user_service.my_collection.UpsertMyCollection@1.0.0 */http.post(\"api/gateway/user_service.my_collection.UpsertMyCollection/api/v1/user_service/my_collection/upsert_collections\", data, options);\n//# sourceMappingURL=upsertMyCollection.js.map"],"names":["scrollWidth","defineElement","property","createDecorators","WrappedMenuItem","wrapBrick","WrappedPopover","onVisibleChange","beforeVisibleChange","RenderMenuItemCom","props","item","isSubMenu","topData","React","SubMenuItemCom","_extends","isGroup","GroupMenuItemCom","SimpleMenuItemCom","index","hidden","showTooltip","selectedKey","className","key","title","text","active","includes","renderLinkCom","width","_NavMenu","handlePopupVisibleChange","event","_scrollWidth","paddingRight","window","innerWidth","document","body","clientWidth","style","detail","overflow","touchAction","_ref","_item$items","items","length","classnames","subprime","trigger","placement","distance","anchorDisplay","strategy","slot","renderSpanCom","map","innerItem","_ref2","_item$items2","childLayout","ThreeLevelMenuCom","SitMapMenCom","_ref3","_item$items3","ThreeLevelMenuPopoverContent","menuItem","_ref4","_item$items4","visible","setVisible","useState","onClick","e","stopPropagation","SiteMapItem","menuGroup","_dec","styleTexts","SiteMapStyleText","ItemTagStyleText","GroupItemStyleText","styleText","_dec2","attribute","_dec3","type","Boolean","_A","WeakMap","_B","NavMenu","ReactNextElement","constructor","arguments","_classPrivateFieldInitSpec","writable","value","_initProto","_init_menu","_init_showTooltip","menu","_classPrivateFieldGet","v","_classPrivateFieldSet","render","NavMenuComponent","this","_menu$menuItems$lengt","_menu$menuItems2","history","getHistory","navMenuWrapperRef","useRef","location","setLocation","overflowIndex","setOverflowIndex","Number","MAX_SAFE_INTEGER","pathname","search","setSelectedKey","setSelected","_ref5","_asyncToGenerator","_menu$menuItems","selectedKeys","initMenuItemAndMatchCurrentPathKeys","menuItems","apply","useEffect","unListen","listen","current","resizeObserver","ResizeObserver","_navMenuWrapperRef$cu","getClientRects","childNodes","wrapperWidth","i","childWidth","height","childHeight","observe","disconnect","overflowMenu","useMemo","slice","ref","_items","isHidden","_class","c","_initClass","_applyDecs","initializeReactI18n","NS","locales","_LaunchpadButton","LaunchpadButton","LaunchpadButtonComponent","Launchpad","searchInputRef","handleClickSearchBox","useCallback","_searchInputRef$curre","focus","loading","q","setQ","menuGroups","favorites","loadingFavorites","recentVisits","pushRecentVisit","toggleStar","isStarred","useLaunchpadInfo","searching","handleSearch","target","clearSearch","_searchInputRef$curre2","classNames","LaunchpadsContext","Provider","SidebarMenuItem","Loading","WrappedIcon","lib","icon","placeholder","onChange","theme","empty","WrappedLink","url","href","name","group","MenuGroup","spinning","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","_EoLaunchpadButtonV","lockBodyScroll","unwrapProvider","EoLaunchpadButtonV2","disconnectedCallback","super","EoLaunchpadButtonV2Component","host","initialized","setInitialized","setActive","toggleLaunchpad","previous","hotkeys","filter","preventDefault","unbind","deferredLaunchpadInfo","schedulePrefetch","deferredFavorites","role","LaunchpadSvg","WrappedDropdownActions","onActionClick","data","actions","dropdownActive","setDropdownActive","filteredActions","checkIfByTransform","handleActionClick","action","MenuItemFolder","instanceId","MenuItem","concat","id","_data$menuIcon","getAppLocaleName","menuIcon","pick","expanded","setExpanded","toggle","prefix","_LaunchpadConfig","_dec4","_C","_actionClickEvent","_onActionClick","LaunchpadConfig","get","_get_actionClickEvent2","set","_set_actionClickEvent2","_init_menuGroups","_init_actions","_init_actionClickEvent","emit","LaunchpadConfigComponent","_set_actionClickEvent","_get_actionClickEvent","o","_","has","_checkInRHS","_EasyopsNavbarAlerts","EasyopsNavbarAlerts","EasyopsNavbarAlertsComponent","storage","JsonStorage","localStorage","licenseDaysLeft","setLicenseDaysLeft","slowRender","setSlowRender","currentApp","useCurrentApp","licenseDismissedKey","authInfo","auth","getAuth","org","_authInfo$license","dismissExpireAt","validDaysLeft","license","isAdmin","getItem","moment","unix","handelRouteRender","renderTime","loadTime","loadInfoPage","getRuntime","getMiscSettings","isBuildPush","millisecondToSecond","suggestTime","suggestUrl","addEventListener","removeEventListener","handleLicenseAlertDismiss","setItem","Alert","link","label","undefined","closable","onClose","millisecond","Math","floor","_EoLaunchpadQuickAcce","EoLaunchpadQuickAccess","EoLaunchpadQuickAccessComponent","_EoSearchLaunchpad","EoSearchLaunchpad","EoSearchLaunchpadComponent","onFocus","onBlur","onMouseDown","_EoLaunchpadRecentVis","EoLaunchpadRecentVisits","EoLaunchpadRecentVisitsComponent","___CSS_LOADER_EXPORT___","push","module","toString","___CSS_LOADER_URL_IMPORT_0___","URL","___CSS_LOADER_URL_REPLACEMENT_0___","exports","String","__esModule","default","test","hash","needQuotes","replace","_checkPrivateRedeclaration","obj","privateCollection","TypeError","_classExtractFieldDescriptor","receiver","privateMap","descriptor","call","classExtractFieldDescriptor","LaunchpadApi_createCollectionV2","http","post","_x","_x2","LaunchpadApi_deleteCollectionV2","delete","LaunchpadApi_listCollectionV2","params","MyCollectionApi_listMyCollection","MyCollectionApi_upsertMyCollection"],"sourceRoot":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"chunks/7632.b82bb027.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 { JsonStorage } from \"@next-shared/general/JsonStorage\";\nimport 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, isEmpty } 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\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 if (!isEmpty(this.getFavoritesById(id))) {\n return this.getFavoritesById(id);\n }\n\n const favorites = (\n await MyCollectionApi_listMyCollection({\n module: collectModule,\n collectionName: id,\n })\n ).payloads\n ?.map((item) => item.extInfo)\n .filter(Boolean) as SidebarMenuSimpleItem[];\n\n this.collectMap.set(id, favorites);\n\n return favorites;\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 forwardRef,\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\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 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 onClick={handleRemove}\n >\n <WrappedIcon lib=\"antd\" icon=\"close\" />\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): 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\">{item.text}</span>\n </WrappedLinkItem>\n );\n};\n\nexport const renderSpanCom = (\n item: SidebarMenuGroup,\n subMenu?: boolean\n): React.ReactElement => {\n return (\n <span key={item.key} className=\"menu-item-label\">\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;padding:2px 0px}.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:4px 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:6px 24px;box-sizing:border-box;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:5px 10px;color:var(--color-normal-text)}.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)}.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;grid-gap:20px;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 120px 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), .custom-group .item-link:hover::part(link){color:var(--color-brand-hover)}.group .item-link:hover::part(icon), .custom-group .item-link:hover::part(icon){color:var(--color-brand-hover)}.group .item-link.active::part(link),\n .custom-group .item-link.active::part(link),\n .group .item-link.active::part(icon),\n .custom-group .item-link.active::part(icon){color:var(--palette-blue-8)}.group .item-link::part(link), .custom-group .item-link::part(link){padding:8px 12px;display:flex;gap:4px;color:var(--color-header-text)}.group .item-link::part(icon), .custom-group .item-link::part(icon){color:var(--color-normal-text)}.group .title, .custom-group .title{padding:8px 16px;font-size:16px;font-weight:500;position:relative}.group .title::before, .custom-group .title::before{content:\"\";position:absolute;width:6px;height:6px;top:17px;left:1px;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:-webkit-sticky;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;font-weight:500;line-height:24px;position:relative}.site-map .visit-access .title::before, .site-map .search-panel .title::before{content:\"\";position:absolute;width:6px;height:6px;top:10px;left:1px;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{margin-bottom:8px}.site-map .visit-access.hasData{display:flex}.site-map .visit-access .tag-wrapper{flex:1;display:grid;grid-template-columns:repeat(auto-fit,200px);grid-gap:8px;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);grid-gap:8px;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;\n\n options.insert = insertFn.bind(null, \"head\");\n \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\";\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.forEach((item) => {\n // key的格式最终为0,1,2,0.1,0.2,0.1.1,0.1.2\n item.key = parentCursor === \"\" ? `${cursor}` : `${parentCursor}.${cursor}`;\n if (isGroup(item) || isSubMenu(item)) {\n const tmp = initMenuItemAndMatchCurrentPathKeys(\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 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 && Array.isArray(item.activeIncludes)) {\n for (const include of item.activeIncludes) {\n let parseInclude: Location | undefined;\n const hasSearch = include.includes(\"?\");\n\n if (hasSearch) {\n parseInclude = parsePath(include);\n }\n match = !!matchPath(pathname, {\n path: hasSearch ? parseInclude!.pathname : include,\n exact: true,\n });\n\n if (match && parseInclude?.search) {\n match = getMatchOfSearch(search, parseInclude.search);\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 match = !matchPath(pathname, {\n path: include,\n exact: true,\n });\n if (!match) {\n break;\n }\n }\n }\n\n if (match && (item as any).activeMatchSearch) {\n match = getMatchOfSearch(search, to.search);\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","concat","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","_this","_asyncToGenerator","_yield$MyCollectionAp","isEmpty","favorites","MyCollectionApi_listMyCollection","module","collectionName","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","handleRemove","useCallback","handleMouseDown","useEffect","handleClick","addEventListener","removeEventListener","suffixGroups","content","hoist","onMouseDown","StarIcon","_ref2","iconRef","_extends","RecommendItem","walkMenuItem","type","Array","isArray","walkMenuItems","push","itemColumnWidth","GroupView","groups","groupCategoryMap","categoryOrder","groupMenus","Set","forEach","_item$groupFrom","groupFrom","add","value","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","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","activeIncludes","include","_parseInclude","parseInclude","hasSearch","getMatchOfSearch","activeExcludes","_include","activeMatchSearch","matchMenuItem","String","keyPath","split","slice","join","currentSearch","toSearch","URLSearchParams"],"sourceRoot":""}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
(()=>{var e,t,r,n,a,o,l,i,c,f,u,s,d,h,m,p,b,v,x,g,y,P,k={8691:(e,t,r)=>{Promise.all([r.e(82),r.e(6074),r.e(8657),r.e(5178),r.e(9171),r.e(199),r.e(334),r.e(2462),r.e(4606),r.e(3352),r.e(9751),r.e(2213),r.e(3556),r.e(2484),r.e(2433),r.e(6482),r.e(7632),r.e(4243),r.e(7394)]).then(r.bind(r,7203))}},w={};function j(e){var t=w[e];if(void 0!==t)return t.exports;var r=w[e]={id:e,loaded:!1,exports:{}};return k[e].call(r.exports,r,r.exports,j),r.loaded=!0,r.exports}j.m=k,j.c=w,j.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return j.d(t,{a:t}),t},j.d=(e,t)=>{for(var r in t)j.o(t,r)&&!j.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},j.f={},j.e=e=>Promise.all(Object.keys(j.f).reduce(((t,r)=>(j.f[r](e,t),t)),[])),j.u=e=>"chunks/"+e+"."+{82:"fd3ce079",199:"3424a85e",334:"7e290b77",443:"9810e710",674:"cfd73597",1303:"f8781f1e",1555:"3e025491",1646:"83056aa0",1874:"b69e31f2",1972:"255bfffc",2024:"3653c941",2108:"7a0883a8",2213:"27a90225",2433:"4c2f7041",2462:"3a008fcb",2484:"b3514a0b",2784:"f1276a06",2881:"9494fa1d",3352:"f89c5f20",3458:"073732ce",3556:"124f67dd",4031:"a39f8b7d",4049:"000b19be",4187:"27f74302",4243:"640a2ad8",4275:"2769378a",4417:"743ff94f",4606:"178582d3",4991:"5de3024f",5151:"f82a0488",5178:"da183645",5326:"42956a9e",5381:"0e42999e",5628:"235df3e7",5636:"f8a78a72",5725:"6bd404ff",6074:"7755f47a",6205:"ef7db407",6473:"6b1a749f",6482:"43778fc8",6522:"6e6d5322",6635:"0db0281d",6653:"f362381f",6660:"c602b475",7067:"dd6597ad",7110:"ab1880c8",7164:"eadd694e",7394:"63355aa9",7632:"b82bb027",7672:"f24da6c1",7746:"176bda5c",7910:"91c6d3d0",7915:"4ed2483c",8008:"cfc9964b",8249:"fb7bc168",8316:"5124d566",8498:"a28abe48",8588:"fcedf663",8657:"a43ca9e0",8691:"e63ca3d2",8874:"04a8c54f",9102:"db2516db",9169:"4e206797",9171:"b6093843",9407:"835ea347",9431:"29d63767",9549:"53937b60",9751:"80694e92"}[e]+".js",j.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),j.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),e={},t="@next-bricks/nav:",j.l=(r,n,a,o)=>{if(e[r])e[r].push(n);else{var l,i;if(void 0!==a)for(var c=document.getElementsByTagName("script"),f=0;f<c.length;f++){var u=c[f];if(u.getAttribute("src")==r||u.getAttribute("data-webpack")==t+a){l=u;break}}l||(i=!0,(l=document.createElement("script")).charset="utf-8",l.timeout=120,j.nc&&l.setAttribute("nonce",j.nc),l.setAttribute("data-webpack",t+a),l.src=r),e[r]=[n];var s=(t,n)=>{l.onerror=l.onload=null,clearTimeout(d);var a=e[r];if(delete e[r],l.parentNode&&l.parentNode.removeChild(l),a&&a.forEach((e=>e(n))),t)return t(n)},d=setTimeout(s.bind(null,void 0,{type:"timeout",target:l}),12e4);l.onerror=s.bind(null,l.onerror),l.onload=s.bind(null,l.onload),i&&document.head.appendChild(l)}},j.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},j.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),(()=>{j.S={};var e={},t={};j.I=(r,n)=>{n||(n=[]);var a=t[r];if(a||(a=t[r]={}),!(n.indexOf(a)>=0)){if(n.push(a),e[r])return e[r];j.o(j.S,r)||(j.S[r]={});var o=j.S[r],l="@next-bricks/nav",i=(e,t,r,n)=>{var a=o[e]=o[e]||{},i=a[t];(!i||!i.loaded&&(!n!=!i.eager?n:l>i.from))&&(a[t]={get:r,from:l,eager:!!n})},c=[];return"default"===r&&(i("@babel/parser","7.23.5",(()=>j.e(1874).then((()=>()=>j(1874))))),i("@easyops-cn/brick-next-pipes","0.6.0",(()=>Promise.all([j.e(4031),j.e(5178),j.e(7910)]).then((()=>()=>j(4031))))),i("@next-core/cook","2.2.9",(()=>Promise.all([j.e(5151),j.e(2881)]).then((()=>()=>j(5151))))),i("@next-core/easyops-runtime","0.6.58",(()=>Promise.all([j.e(9102),j.e(5178),j.e(9171),j.e(199),j.e(334),j.e(3352),j.e(9751),j.e(1972),j.e(4187),j.e(1555),j.e(9169),j.e(6522)]).then((()=>()=>j(9102))))),i("@next-core/element","1.1.7",(()=>j.e(9549).then((()=>()=>j(9549))))),i("@next-core/http","1.1.6",(()=>j.e(7067).then((()=>()=>j(7067))))),i("@next-core/i18n/react","1.0.33",(()=>Promise.all([j.e(199),j.e(5636)]).then((()=>()=>j(5636))))),i("@next-core/i18n","1.0.33",(()=>Promise.all([j.e(9171),j.e(199),j.e(674),j.e(7164)]).then((()=>()=>j(7164))))),i("@next-core/inject","1.0.23",(()=>Promise.all([j.e(5178),j.e(1972),j.e(7672)]).then((()=>()=>j(7672))))),i("@next-core/loader","1.5.0",(()=>j.e(8498).then((()=>()=>j(6653))))),i("@next-core/pipes","2.0.13",(()=>j.e(4275).then((()=>()=>j(4275))))),i("@next-core/react-element","1.0.17",(()=>Promise.all([j.e(8657),j.e(2462),j.e(2484),j.e(1646)]).then((()=>()=>j(1646))))),i("@next-core/react-runtime","1.1.37",(()=>Promise.all([j.e(8657),j.e(334),j.e(6660)]).then((()=>()=>j(6660))))),i("@next-core/runtime","1.26.1",(()=>Promise.all([j.e(4417),j.e(5178),j.e(9171),j.e(199),j.e(4187),j.e(1555),j.e(8874),j.e(8249)]).then((()=>()=>j(4417))))),i("@next-core/supply","2.1.8",(()=>Promise.all([j.e(5178),j.e(1972),j.e(8874),j.e(4049)]).then((()=>()=>j(4049))))),i("@next-core/theme","1.4.4",(()=>Promise.all([j.e(2108),j.e(5628)]).then((()=>()=>j(2108))))),i("@next-core/utils/general","1.6.5",(()=>j.e(7110).then((()=>()=>j(7110))))),i("@next-core/utils/storyboard","1.6.5",(()=>Promise.all([j.e(9171),j.e(4187),j.e(3458)]).then((()=>()=>j(3458))))),i("history","4.10.1",(()=>j.e(5326).then((()=>()=>j(2024))))),i("i18next-browser-languagedetector","7.2.0",(()=>j.e(443).then((()=>()=>j(443))))),i("i18next","23.7.7",(()=>j.e(4991).then((()=>()=>j(4991))))),i("js-yaml","3.14.1",(()=>j.e(9431).then((()=>()=>j(9431))))),i("lodash","4.17.21",(()=>j.e(6635).then((()=>()=>j(6635))))),i("moment/locale/zh-cn.js","2.29.4",(()=>Promise.all([j.e(8008),j.e(7915)]).then((()=>()=>j(7414))))),i("moment","2.29.4",(()=>Promise.all([j.e(8008),j.e(7915)]).then((()=>()=>j(9034))))),i("react-dom","0.0.0-experimental-ee8509801-20230117",(()=>Promise.all([j.e(8316),j.e(8657)]).then((()=>()=>j(8316))))),i("react-i18next","13.5.0",(()=>Promise.all([j.e(8588),j.e(8657)]).then((()=>()=>j(8588))))),i("react","0.0.0-experimental-ee8509801-20230117",(()=>j.e(2784).then((()=>()=>j(2784)))))),e[r]=c.length?Promise.all(c).then((()=>e[r]=1)):1}}})(),(()=>{var e;j.g.importScripts&&(e=j.g.location+"");var t=j.g.document;if(!e&&t&&(t.currentScript&&(e=t.currentScript.src),!e)){var r=t.getElementsByTagName("script");if(r.length)for(var n=r.length-1;n>-1&&!e;)e=r[n--].src}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),j.p=e+"../"})(),r=e=>{var t=e=>e.split(".").map((e=>+e==e?+e:e)),r=/^([^-+]+)?(?:-([^+]+))?(?:\+(.+))?$/.exec(e),n=r[1]?t(r[1]):[];return r[2]&&(n.length++,n.push.apply(n,t(r[2]))),r[3]&&(n.push([]),n.push.apply(n,t(r[3]))),n},n=(e,t)=>{e=r(e),t=r(t);for(var n=0;;){if(n>=e.length)return n<t.length&&"u"!=(typeof t[n])[0];var a=e[n],o=(typeof a)[0];if(n>=t.length)return"u"==o;var l=t[n],i=(typeof l)[0];if(o!=i)return"o"==o&&"n"==i||"s"==i||"u"==o;if("o"!=o&&"u"!=o&&a!=l)return a<l;n++}},a=e=>{var t=e[0],r="";if(1===e.length)return"*";if(t+.5){r+=0==t?">=":-1==t?"<":1==t?"^":2==t?"~":t>0?"=":"!=";for(var n=1,o=1;o<e.length;o++)n--,r+="u"==(typeof(i=e[o]))[0]?"-":(n>0?".":"")+(n=2,i);return r}var l=[];for(o=1;o<e.length;o++){var i=e[o];l.push(0===i?"not("+c()+")":1===i?"("+c()+" || "+c()+")":2===i?l.pop()+" "+l.pop():a(i))}return c();function c(){return l.pop().replace(/^\((.+)\)$/,"$1")}},o=(e,t)=>{if(0 in e){t=r(t);var n=e[0],a=n<0;a&&(n=-n-1);for(var l=0,i=1,c=!0;;i++,l++){var f,u,s=i<e.length?(typeof e[i])[0]:"";if(l>=t.length||"o"==(u=(typeof(f=t[l]))[0]))return!c||("u"==s?i>n&&!a:""==s!=a);if("u"==u){if(!c||"u"!=s)return!1}else if(c)if(s==u)if(i<=n){if(f!=e[i])return!1}else{if(a?f>e[i]:f<e[i])return!1;f!=e[i]&&(c=!1)}else if("s"!=s&&"n"!=s){if(a||i<=n)return!1;c=!1,i--}else{if(i<=n||u<s!=a)return!1;c=!1}else"s"!=s&&"n"!=s&&(c=!1,i--)}}var d=[],h=d.pop.bind(d);for(l=1;l<e.length;l++){var m=e[l];d.push(1==m?h()|h():2==m?h()&h():m?o(m,t):!h())}return!!h()},l=(e,t)=>{var r=e[t];return(t=Object.keys(r).reduce(((e,t)=>!e||n(e,t)?t:e),0))&&r[t]},i=(e,t)=>{var r=e[t];return Object.keys(r).reduce(((e,t)=>!e||!r[e].loaded&&n(e,t)?t:e),0)},c=(e,t,r,n)=>"Unsatisfied version "+r+" from "+(r&&e[t][r].from)+" of shared singleton module "+t+" (required "+a(n)+")",f=(e,t,r,n)=>{var a=i(e,r);return h(e[r][a])},u=(e,t,r,n)=>{var a=i(e,r);return o(n,a)||d(c(e,r,a,n)),h(e[r][a])},s=(e,t,r)=>{var a=e[t];return(t=Object.keys(a).reduce(((e,t)=>!o(r,t)||e&&!n(e,t)?e:t),0))&&a[t]},d=e=>{"undefined"!=typeof console&&console.warn&&console.warn(e)},h=e=>(e.loaded=1,e.get()),p=(m=e=>function(t,r,n,a){var o=j.I(t);return o&&o.then?o.then(e.bind(e,t,j.S[t],r,n,a)):e(t,j.S[t],r,n,a)})(((e,t,r,n)=>t&&j.o(t,r)?h(l(t,r)):n())),b=m(((e,t,r,n)=>t&&j.o(t,r)?f(t,0,r):n())),v=m(((e,t,r,n,a)=>t&&j.o(t,r)?u(t,0,r,n):a())),x=m(((e,t,r,n,a)=>{var o=t&&j.o(t,r)&&s(t,r,n);return o?h(o):a()})),g={},y={8657:()=>x("default","react",[6,0,0,0,,"experimental-ee8509801-20230117"],(()=>j.e(2784).then((()=>()=>j(2784))))),5178:()=>v("default","lodash",[1,4,17,21],(()=>j.e(6635).then((()=>()=>j(6635))))),9171:()=>v("default","@next-core/utils/general",[1,1,6,5],(()=>j.e(7110).then((()=>()=>j(7110))))),199:()=>v("default","@next-core/i18n",[1,1,0,33],(()=>Promise.all([j.e(9171),j.e(674),j.e(6205)]).then((()=>()=>j(7164))))),334:()=>v("default","@next-core/runtime",[1,1,26,1],(()=>Promise.all([j.e(4417),j.e(5178),j.e(9171),j.e(199),j.e(4187),j.e(1555),j.e(8874),j.e(8249)]).then((()=>()=>j(4417))))),2462:()=>x("default","@next-core/element",[1,1,1,7],(()=>j.e(9549).then((()=>()=>j(9549))))),2354:()=>x("default","@next-core/react-element",[1,1,0,17],(()=>Promise.all([j.e(2484),j.e(7746)]).then((()=>()=>j(1646))))),6973:()=>v("default","@next-core/theme",[1,1,4,4],(()=>j.e(2108).then((()=>()=>j(2108))))),3352:()=>v("default","@next-core/http",[1,1,0,0],(()=>j.e(1303).then((()=>()=>j(7067))))),9751:()=>v("default","@next-core/http",[1,1,0,6],(()=>j.e(1303).then((()=>()=>j(7067))))),2213:()=>v("default","@next-core/easyops-runtime",[2,0,6,58],(()=>Promise.all([j.e(9102),j.e(5178),j.e(9171),j.e(199),j.e(3352),j.e(9751),j.e(1972),j.e(4187),j.e(1555),j.e(9169)]).then((()=>()=>j(9102))))),2484:()=>x("default","react-dom",[6,0,0,0,,"experimental-ee8509801-20230117"],(()=>j.e(8316).then((()=>()=>j(8316))))),2433:()=>v("default","@next-core/i18n/react",[1,1,0,33],(()=>Promise.all([j.e(199),j.e(5636)]).then((()=>()=>j(5636))))),8353:()=>v("default","history",[1,4,7,11],(()=>j.e(2024).then((()=>()=>j(2024))))),1150:()=>p("default","@next-core/react-runtime",(()=>j.e(5381).then((()=>()=>j(6660))))),5239:()=>b("default","moment",(()=>Promise.all([j.e(8008),j.e(7915)]).then((()=>()=>j(9034))))),5872:()=>v("default","moment",[1,2,27,0],(()=>Promise.all([j.e(8008),j.e(7915)]).then((()=>()=>j(9034))))),5899:()=>v("default","js-yaml",[1,3,14,0],(()=>j.e(9431).then((()=>()=>j(9431))))),2881:()=>v("default","@babel/parser",[1,7,23,4],(()=>j.e(1874).then((()=>()=>j(1874))))),1972:()=>v("default","@next-core/pipes",[1,2,0,13],(()=>j.e(4275).then((()=>()=>j(4275))))),4187:()=>v("default","@next-core/cook",[1,2,2,9],(()=>Promise.all([j.e(5151),j.e(2881)]).then((()=>()=>j(5151))))),663:()=>v("default","@next-core/http",[1,1,1,6],(()=>j.e(9407).then((()=>()=>j(7067))))),2079:()=>v("default","@next-core/utils/storyboard",[1,1,6,5],(()=>j.e(8691).then((()=>()=>j(3458))))),9169:()=>v("default","js-yaml",[1,3,14,1],(()=>j.e(9431).then((()=>()=>j(9431))))),2341:()=>v("default","react-i18next",[1,13,5,0],(()=>Promise.all([j.e(8588),j.e(8657)]).then((()=>()=>j(8588))))),7207:()=>v("default","i18next-browser-languagedetector",[1,7,2,0],(()=>j.e(443).then((()=>()=>j(443))))),9390:()=>v("default","i18next",[1,23,7,6],(()=>j.e(4991).then((()=>()=>j(4991))))),5454:()=>v("default","@easyops-cn/brick-next-pipes",[2,0,6,0],(()=>Promise.all([j.e(4031),j.e(5178),j.e(7910)]).then((()=>()=>j(4031))))),8874:()=>v("default","moment",[1,2,29,4],(()=>Promise.all([j.e(8008),j.e(7915)]).then((()=>()=>j(9034))))),4573:()=>v("default","@next-core/loader",[1,1,5,0],(()=>j.e(6653).then((()=>()=>j(6653))))),4788:()=>v("default","@next-core/supply",[1,2,1,8],(()=>Promise.all([j.e(1972),j.e(6473)]).then((()=>()=>j(4049))))),7017:()=>v("default","@next-core/inject",[1,1,0,23],(()=>Promise.all([j.e(1972),j.e(5725)]).then((()=>()=>j(7672))))),7857:()=>v("default","history",[1,4,10,1],(()=>j.e(5326).then((()=>()=>j(2024))))),8525:()=>v("default","moment/locale/zh-cn.js",[1,2,29,4],(()=>Promise.all([j.e(8008),j.e(7915)]).then((()=>()=>j(7414)))))},P={199:[199],334:[334],674:[7207,9390],1555:[663,2079],1972:[1972],2213:[2213],2433:[2433],2462:[2462],2484:[2484],2881:[2881],3352:[3352],4187:[4187],4243:[1150,5239],4275:[5454],4606:[2354,6973],5178:[5178],5636:[2341],7632:[8353],7910:[5872,5899],8249:[4573,4788,7017,7857,8525],8657:[8657],8874:[8874],9169:[9169],9171:[9171],9751:[9751]},j.f.consumes=(e,t)=>{j.o(P,e)&&P[e].forEach((e=>{if(j.o(g,e))return t.push(g[e]);var r=t=>{g[e]=0,j.m[e]=r=>{delete j.c[e],r.exports=t()}},n=t=>{delete g[e],j.m[e]=r=>{throw delete j.c[e],t}};try{var a=y[e]();a.then?t.push(g[e]=a.then(r).catch(n)):r(a)}catch(e){n(e)}}))},(()=>{j.b=document.baseURI||self.location.href;var e={179:0};j.f.j=(t,r)=>{var n=j.o(e,t)?e[t]:void 0;if(0!==n)if(n)r.push(n[2]);else if(/^(1(555|972|99)|2(4(33|62|84)|213|881)|33(4|52)|4(187|243|606)|8(249|657|874)|9(169|171|751)|5178|674|7910)$/.test(t))e[t]=0;else{var a=new Promise(((r,a)=>n=e[t]=[r,a]));r.push(n[2]=a);var o=j.p+j.u(t),l=new Error;j.l(o,(r=>{if(j.o(e,t)&&(0!==(n=e[t])&&(e[t]=void 0),n)){var a=r&&("load"===r.type?"missing":r.type),o=r&&r.target&&r.target.src;l.message="Loading chunk "+t+" failed.\n("+a+": "+o+")",l.name="ChunkLoadError",l.type=a,l.request=o,n[1](l)}}),"chunk-"+t,t)}};var t=(t,r)=>{var n,a,[o,l,i]=r,c=0;if(o.some((t=>0!==e[t]))){for(n in l)j.o(l,n)&&(j.m[n]=l[n]);i&&i(j)}for(t&&t(r);c<o.length;c++)a=o[c],j.o(e,a)&&e[a]&&e[a][0](),e[a]=0},r=self.webpackChunk_next_bricks_nav=self.webpackChunk_next_bricks_nav||[];r.forEach(t.bind(null,0)),r.push=t.bind(null,r.push.bind(r))})(),j.nc=void 0,j(8691)})();
|
|
2
|
-
//# sourceMappingURL=main.7d3dfcde.js.map
|