@next-bricks/nav 1.2.0 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chunks/622.79ed3f99.js","mappings":"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","sources":["webpack:///./src/nav-menu/index.tsx","webpack:///./src/launchpad/index.tsx","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/app-bar-wrapper/index.tsx","webpack:///./src/frame-breadcrumb/index.tsx","webpack:///./src/sidebar/sidebar-menu-item/index.tsx","webpack:///./src/sidebar/utils.tsx","webpack:///./src/sidebar/sidebar-menu-group/index.tsx","webpack:///./src/sidebar/sidebar-menu-submenu/index.tsx","webpack:///./src/sidebar/sidebar-menu/index.tsx","webpack:///./src/images/fixed.svg","webpack:///./src/images/toFixed.svg","webpack:///./src/sidebar/i18n.ts","webpack:///./src/sidebar/index.tsx","webpack:///../../src/debounceByAnimationFrame.ts","webpack:///./src/sidebar-sub-menu/index.tsx","webpack:///./src/directory/index.tsx","webpack:///./src/search-launchpad/host-context.css","webpack:///./src/app-bar-wrapper/styles.shadow.css","webpack:///./src/directory/styles.shadow.css","webpack:///./src/easyops-navbar-alerts/styles.shadow.css","webpack:///./src/frame-breadcrumb/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:///./src/sidebar-sub-menu/styles.shadow.css","webpack:///./src/sidebar/sidebar-menu-group/styles.shadow.css","webpack:///./src/sidebar/sidebar-menu-item/styles.shadow.css","webpack:///./src/sidebar/sidebar-menu-submenu/styles.shadow.css","webpack:///./src/sidebar/sidebar-menu/styles.shadow.css","webpack:///./src/sidebar/styles.shadow.css","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/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 arrow={false}\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 arrow={false}\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 arrow={false}\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, { 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, getRuntime } 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 platformCategoryStyleText from \"./PlatformCategory.shadow.css\";\nimport { Launchpad } from \"./Launchpad\";\nimport {\n deferredFavorites,\n deferredLaunchpadInfo,\n deferredPlatformCategories,\n} 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, platformCategoryStyleText],\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 getRuntime()?.getFeatureFlags()[\"launchpad-show-platform-category\"] &&\n deferredPlatformCategories.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/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, property } = createDecorators();\n\n/**\n * 快捷访问\n * @insider\n */\nexport\n@defineElement(\"eo-launchpad-quick-access\", {\n styleTexts: [styleText],\n})\nclass EoLaunchpadQuickAccess extends ReactNextElement {\n @property({\n type: Boolean,\n })\n accessor readonly: boolean | undefined;\n\n render() {\n return <EoLaunchpadQuickAccessComponent readonly={this.readonly} />;\n }\n}\n\ninterface EoLaunchpadQuickAccessComponentProps {\n readonly?: boolean;\n}\n\nexport function EoLaunchpadQuickAccessComponent({\n readonly,\n}: EoLaunchpadQuickAccessComponentProps) {\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 readonly,\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, property } = createDecorators();\n\n/**\n * launchpad 搜索\n * @insider\n */\nexport\n@defineElement(\"eo-search-launchpad\", {\n styleTexts: [styleText],\n})\nclass EoSearchLaunchpad extends ReactNextElement {\n /**\n * 简约模式\n */\n @property({\n type: Boolean,\n })\n accessor readonly: boolean | undefined;\n\n render() {\n return <EoSearchLaunchpadComponent readonly={this.readonly} />;\n }\n}\n\ninterface EoSearchLaunchpadComponentProps {\n readonly?: boolean;\n}\n\nexport function EoSearchLaunchpadComponent({\n readonly,\n}: EoSearchLaunchpadComponentProps) {\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 readonly,\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","import React from \"react\";\nimport { createDecorators } from \"@next-core/element\";\nimport { ReactNextElement } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport classNames from \"classnames\";\nimport styleText from \"./styles.shadow.css\";\n\nconst { defineElement, property } = createDecorators();\n\nexport interface AppBarWrapperProps {\n isFixed?: boolean;\n position?: \"static\" | \"fixed\";\n displayCenter?: boolean;\n extraAppBarContentStyle?: React.CSSProperties;\n}\n\n/**\n * 应用顶部容器\n * @slot left - 左侧内容区\n * @slot right - 右侧内容区\n */\nexport\n@defineElement(\"eo-app-bar-wrapper\", {\n styleTexts: [styleText],\n alias: [\"basic.app-bar-wrapper\"],\n})\nclass EoAppBarWrapper extends ReactNextElement implements AppBarWrapperProps {\n /**\n * 是否固定定位。\n *\n * @default true\n * @deprecated 使用 `position` 属性代替\n */\n @property({\n type: Boolean,\n })\n accessor isFixed: boolean | undefined;\n\n /**\n * 设置定位方式:静态定位或固定定位。\n *\n * 设置时优先级高于 `isFixed`。\n *\n * @default \"fixed\"\n */\n @property()\n accessor position: \"static\" | \"fixed\" | undefined;\n\n /**\n * 居中显示\n * @default false\n */\n @property({\n type: Boolean,\n })\n accessor displayCenter: boolean | undefined;\n\n /** 自定义样式 */\n @property({\n attribute: false,\n })\n accessor extraAppBarContentStyle: React.CSSProperties | undefined;\n\n render() {\n return (\n <EoAppBarWrapperComponent\n displayCenter={this.displayCenter}\n isFixed={this.isFixed}\n position={this.position}\n extraAppBarContentStyle={this.extraAppBarContentStyle}\n />\n );\n }\n}\n\nexport function EoAppBarWrapperComponent({\n isFixed = true,\n position,\n displayCenter = false,\n extraAppBarContentStyle = {},\n}: AppBarWrapperProps) {\n React.useEffect(() => {\n const mainElement = document.getElementById(\"main-mount-point\");\n const iframeMainElement = document.getElementById(\n \"legacy-iframe-mount-point\"\n );\n mainElement && (mainElement.style.marginTop = \"\");\n iframeMainElement && (iframeMainElement.style.marginTop = \"\");\n }, []);\n\n return (\n <div className=\"app-bar-container\">\n <div\n className={classNames(\n \"app-bar\",\n position === \"static\"\n ? \"static\"\n : position === \"fixed\" || isFixed\n ? \"fixed\"\n : \"absolute\"\n )}\n >\n {/* TODO: need AppBarTips */}\n <div\n className=\"app-bar-content\"\n style={{\n justifyContent: displayCenter ? \"space-around\" : \"space-between\",\n ...extraAppBarContentStyle,\n }}\n >\n <div className=\"left\">\n <slot name=\"left\" />\n </div>\n <div className=\"right\">\n <slot name=\"right\" />\n </div>\n </div>\n </div>\n </div>\n );\n}\n","import React 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 { BreadcrumbItemConf } from \"@next-core/types\";\nimport \"@next-core/theme\";\nimport styleText from \"./styles.shadow.css\";\nimport type { EoBreadcrumb } from \"@next-bricks/basic/breadcrumb\";\nimport type {\n EoBreadcrumbItem,\n BreadcrumbItemProps,\n} from \"@next-bricks/basic/breadcrumb-item\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\nimport type { ExtendedLocationDescriptor } from \"@next-bricks/basic/link\";\n\nconst { defineElement, property } = createDecorators();\n\nconst WrappedBreadcrumb = wrapBrick<EoBreadcrumb, unknown>(\"eo-breadcrumb\");\nconst WrappedBreadcrumbItem = wrapBrick<EoBreadcrumbItem, BreadcrumbItemProps>(\n \"eo-breadcrumb-item\"\n);\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\n\nexport interface Menu {\n title: string;\n icon?: GeneralIconProps;\n link?: ExtendedLocationDescriptor;\n}\n\nexport interface EoFrameBreadcrumbProps {\n breadcrumb?: BreadcrumbItemConf[];\n noCurrentApp?: boolean;\n menu?: Menu;\n}\n\n/**\n * 面包屑\n */\nexport\n@defineElement(\"eo-frame-breadcrumb\", {\n styleTexts: [styleText],\n})\nclass EoFrameBreadcrumb\n extends ReactNextElement\n implements EoFrameBreadcrumbProps\n{\n /**\n * 面包屑配置\n */\n @property({\n attribute: false,\n })\n accessor breadcrumb: BreadcrumbItemConf[] | undefined;\n\n /**\n * 是否隐藏当前应用名称\n */\n @property({ type: Boolean })\n accessor noCurrentApp: boolean | undefined;\n\n /**\n * 菜单配置\n */\n @property({\n attribute: false,\n })\n accessor menu: Menu | undefined;\n\n render() {\n return (\n <EoFrameBreadcrumbComponent\n breadcrumb={this.breadcrumb}\n noCurrentApp={this.noCurrentApp}\n menu={this.menu}\n />\n );\n }\n}\n\nexport function EoFrameBreadcrumbComponent(props: EoFrameBreadcrumbProps) {\n const { menu } = props;\n\n const navConfig = getRuntime().getNavConfig();\n const currentApp = useCurrentApp();\n const curAppBreadcrumb = currentApp?.breadcrumb;\n\n const currentAppBreadcrumbItems = curAppBreadcrumb?.items as Array<\n BreadcrumbItemConf & { icon: GeneralIconProps }\n >;\n const breadcrumbItems = props.breadcrumb?.length\n ? props.breadcrumb\n : navConfig?.breadcrumb;\n\n const noCurrentApp = props.noCurrentApp ?? curAppBreadcrumb?.noCurrentApp;\n const useCurrentMenuTitle = curAppBreadcrumb?.useCurrentMenuTitle;\n\n return (\n <WrappedBreadcrumb>\n <span slot=\"separator\">/</span>\n {currentAppBreadcrumbItems?.map((item, index) => {\n return (\n <WrappedBreadcrumbItem key={index} url={item.to}>\n {item.icon ? (\n <WrappedIcon\n className=\"breadcrumb-item-prefix-icon\"\n slot=\"prefix\"\n {...item.icon}\n />\n ) : (\n index === 0 && (\n <WrappedIcon\n className=\"breadcrumb-item-prefix-icon\"\n slot=\"prefix\"\n lib=\"antd\"\n icon=\"home\"\n theme=\"outlined\"\n />\n )\n )}\n {item.text}\n </WrappedBreadcrumbItem>\n );\n })}\n {currentApp && !noCurrentApp ? (\n <WrappedBreadcrumbItem\n url={\n breadcrumbItems?.length &&\n currentApp.homepage &&\n !currentApp.internal\n ? currentApp.homepage\n : undefined\n }\n >\n {!currentAppBreadcrumbItems?.length && (\n <WrappedIcon\n {...currentApp.menuIcon}\n slot=\"prefix\"\n className=\"breadcrumb-item-prefix-icon\"\n />\n )}\n {currentApp.localeName}\n </WrappedBreadcrumbItem>\n ) : null}\n {useCurrentMenuTitle && menu ? (\n <WrappedBreadcrumbItem url={menu.link}>\n {menu.icon && (\n <WrappedIcon\n {...menu.icon}\n className=\"breadcrumb-item-prefix-icon\"\n slot=\"prefix\"\n />\n )}\n {menu.title}\n </WrappedBreadcrumbItem>\n ) : null}\n {breadcrumbItems?.map((item, index) => (\n <WrappedBreadcrumbItem key={index} url={item.to}>\n {item.text}\n </WrappedBreadcrumbItem>\n ))}\n </WrappedBreadcrumb>\n );\n}\n","import React from \"react\";\nimport { createDecorators } from \"@next-core/element\";\nimport { ReactNextElement, wrapBrick } from \"@next-core/react-element\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\nimport type { Link, LinkProps } from \"@next-bricks/basic/link\";\nimport \"@next-core/theme\";\nimport styleText from \"./styles.shadow.css\";\n\nconst { defineElement, property } = createDecorators();\n\nconst WrappedLink = wrapBrick<Link, LinkProps>(\"eo-link\");\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\n\nexport interface EoSidebarMenuItemProps {\n url?: LinkProps[\"url\"];\n href?: LinkProps[\"href\"];\n icon?: GeneralIconProps;\n target?: LinkProps[\"target\"];\n selected?: boolean;\n inSubmenu?: boolean;\n menuCollapsed?: boolean;\n}\n\n/**\n * 侧栏菜单项\n * @category navigation\n */\nexport\n@defineElement(\"eo-sidebar-menu-item\", {\n styleTexts: [styleText],\n})\nclass EoSidebarMenuItem\n extends ReactNextElement\n implements EoSidebarMenuItemProps\n{\n /**\n * 菜单项对应的系统内地址\n */\n @property({ attribute: false })\n accessor url: LinkProps[\"url\"] | undefined;\n\n /**\n * 菜单项对应的外部链接地址\n */\n @property()\n accessor href: LinkProps[\"href\"] | undefined;\n\n /**\n * 菜单项链接打开的目标\n */\n @property()\n accessor target: LinkProps[\"target\"] | undefined;\n\n /**\n * 菜单项的图标\n */\n @property({ attribute: false })\n accessor icon: GeneralIconProps | undefined;\n\n /**\n * 是否选中\n */\n @property({ type: Boolean })\n accessor selected: boolean | undefined;\n\n /**\n * 是否在二级菜单中\n */\n @property({ type: Boolean })\n accessor inSubmenu: boolean | undefined;\n\n /**\n * 菜单整体是否收起状态\n */\n @property({ type: Boolean })\n accessor menuCollapsed: boolean | undefined;\n\n render() {\n return (\n <EoSidebarMenuItemComponent\n url={this.url}\n href={this.href}\n target={this.target}\n icon={this.icon}\n selected={this.selected}\n />\n );\n }\n}\n\nexport function EoSidebarMenuItemComponent(props: EoSidebarMenuItemProps) {\n const { url, href, target, icon, selected } = props;\n\n return (\n <WrappedLink type=\"plain\" url={url} href={href} target={target}>\n <div className={\"menu-item\"}>\n <span className=\"menu-item-icon-container\">\n <WrappedIcon\n {...icon}\n className=\"menu-item-icon\"\n {...(icon && \"imgSrc\" in icon\n ? { imgStyle: { filter: selected ? \"brightness(7)\" : undefined } }\n : {})}\n />\n </span>\n <span className=\"menu-item-text\">\n <slot />\n </span>\n </div>\n </WrappedLink>\n );\n}\n","import React, {\n createContext,\n useCallback,\n useContext,\n useEffect,\n useRef,\n} from \"react\";\nimport { getCssPropertyValue } from \"@next-core/runtime\";\nimport { wrapBrick } from \"@next-core/react-element\";\nimport type {\n SidebarMenu as SidebarMenuType,\n SidebarMenuGroup,\n SidebarMenuItem,\n SidebarMenuSimpleItem,\n} from \"@next-shared/general/types\";\nimport type {\n EoSidebarMenu,\n EoSidebarMenuProps,\n} from \"./sidebar-menu/index.js\";\nimport type {\n EoSidebarMenuItem,\n EoSidebarMenuItemProps,\n} from \"./sidebar-menu-item/index.js\";\nimport type {\n EoSidebarMenuGroup,\n EoSidebarMenuGroupProps,\n} from \"./sidebar-menu-group/index.js\";\nimport type {\n EoSidebarMenuSubmenu,\n EoSidebarMenuSubmenuProps,\n} from \"./sidebar-menu-submenu/index.js\";\n\nconst sidebarMenuItemTagNameSet = new Set([\n \"EO-SIDEBAR-MENU-ITEM\",\n \"EO-SIDEBAR-MENU-GROUP\",\n \"EO-SIDEBAR-MENU-SUBMENU\",\n]);\n\nconst isSidebarMenuItem = (element: Element) =>\n sidebarMenuItemTagNameSet.has(element.tagName);\n\nexport function useUpdateMenuCollapsedState(menuCollapsed?: boolean) {\n const slotRef = useRef<HTMLSlotElement>(null);\n\n const updateChildrenMenuCollapsedState = useCallback(() => {\n slotRef.current?.assignedElements().forEach((ele) => {\n if (isSidebarMenuItem(ele)) {\n (ele as any).menuCollapsed = menuCollapsed;\n }\n });\n }, [menuCollapsed]);\n\n useEffect(() => {\n updateChildrenMenuCollapsedState();\n }, [menuCollapsed, updateChildrenMenuCollapsedState]);\n\n useEffect(() => {\n const slotElem = slotRef.current;\n const handleSlotchange = () => {\n updateChildrenMenuCollapsedState();\n };\n slotElem?.addEventListener(\"slotchange\", handleSlotchange);\n\n return () => {\n slotElem?.removeEventListener(\"slotchange\", handleSlotchange);\n };\n }, [updateChildrenMenuCollapsedState]);\n\n return [slotRef];\n}\n\nexport const SIDE_BAR_HAS_BEEN_USED = \"side-bar-has-been-used\";\nexport const SIDE_BAR_EXPAND_STATE = \"side-bar-expand-state\";\nexport const SIDE_BAR_RESIZE_WIDTH = \"side-bar-resize-width\";\n\nexport enum ExpandedState {\n Collapsed = \"collapsed\",\n Hovered = \"hovered\",\n Expanded = \"expanded\",\n}\n\nexport const sideBarWidth =\n parseInt(getCssPropertyValue(\"--side-bar-width\", document.body), 10) || 220;\nexport const sideBarCollapsedWidth =\n parseInt(\n getCssPropertyValue(\"--side-bar-collapsed-width\", document.body),\n 10\n ) || 60;\n\ninterface ContextOfSidebarMenu {\n selectedKeys: string[];\n openedKeys: string[];\n matchedKeys: string[];\n}\n\nconst SidebarMenuContext = createContext<ContextOfSidebarMenu>({\n selectedKeys: [],\n openedKeys: [],\n matchedKeys: [],\n});\n\nconst WrappedSidebarMenu = wrapBrick<EoSidebarMenu, EoSidebarMenuProps>(\n \"eo-sidebar-menu\"\n);\nconst WrappedSidebarMenuItem = wrapBrick<\n EoSidebarMenuItem,\n EoSidebarMenuItemProps\n>(\"eo-sidebar-menu-item\");\nconst WrappedSidebarMenuGroup = wrapBrick<\n EoSidebarMenuGroup,\n EoSidebarMenuGroupProps\n>(\"eo-sidebar-menu-group\");\nconst WrappedSidebarMenuSubmenu = wrapBrick<\n EoSidebarMenuSubmenu,\n EoSidebarMenuSubmenuProps\n>(\"eo-sidebar-menu-submenu\");\n\nfunction MenuSimpleItem(\n props: SidebarMenuSimpleItem & { id?: string; inSubmenu?: boolean }\n) {\n const { to, href, target, icon, text, id, inSubmenu } = props;\n const { selectedKeys } = useContext(SidebarMenuContext);\n\n return (\n <WrappedSidebarMenuItem\n url={to as any}\n href={href}\n target={target as any}\n icon={icon}\n inSubmenu={inSubmenu}\n selected={selectedKeys.includes(id!)}\n >\n {text}\n </WrappedSidebarMenuItem>\n );\n}\n\nfunction MenuGroup(\n props: SidebarMenuGroup & { id?: string; top?: boolean; inSubmenu?: boolean }\n) {\n const { title, items, id, top, inSubmenu } = props;\n const { matchedKeys } = useContext(SidebarMenuContext);\n const isSelected = id && matchedKeys.includes(id);\n\n if (items?.length > 0) {\n return (\n <WrappedSidebarMenuGroup selected={!!isSelected} collapsable={!top}>\n <span slot=\"title\">{title}</span>\n {props.items.map((item) => {\n return (\n <MenuItem\n key={item.key}\n {...item}\n id={item.key}\n top={false}\n inSubmenu={inSubmenu}\n />\n );\n })}\n </WrappedSidebarMenuGroup>\n );\n }\n return null;\n}\n\nfunction MenuSubmenu(props: SidebarMenuGroup & { id?: string }) {\n const { title, icon, items, id } = props;\n const { openedKeys, matchedKeys } = useContext(SidebarMenuContext);\n const isSelected = id && matchedKeys.includes(id);\n\n if (items?.length > 0) {\n return (\n <WrappedSidebarMenuSubmenu\n icon={icon}\n collapsed={!openedKeys.includes(id!)}\n selected={!!isSelected}\n >\n <span slot=\"title\">{title}</span>\n {props.items.map((item) => {\n return (\n <MenuItem\n key={item.key}\n {...item}\n id={item.key}\n top={false}\n inSubmenu={true}\n />\n );\n })}\n </WrappedSidebarMenuSubmenu>\n );\n }\n return null;\n}\n\nfunction MenuItem(\n props: SidebarMenuItem & { id?: string; top?: boolean; inSubmenu?: boolean }\n) {\n if (props.type === \"subMenu\") {\n return <MenuSubmenu {...props} />;\n } else if (props.type === \"group\") {\n return <MenuGroup {...props} />;\n } else {\n return <MenuSimpleItem {...(props as SidebarMenuSimpleItem)} />;\n }\n}\n\nexport function SidebarMenu(props: {\n menu?: SidebarMenuType;\n expandedState: ExpandedState;\n selectedKeys?: string[];\n openedKeys?: string[];\n matchedKeys?: string[];\n}) {\n const { menu, expandedState, selectedKeys, openedKeys, matchedKeys } = props;\n\n return (\n <SidebarMenuContext.Provider\n value={{\n selectedKeys: selectedKeys || [],\n openedKeys: openedKeys || [],\n matchedKeys: matchedKeys || [],\n }}\n >\n <WrappedSidebarMenu\n menuCollapsed={expandedState === ExpandedState.Collapsed}\n >\n {menu?.menuItems?.map((item) => {\n return <MenuItem key={item.key} {...item} id={item.key} top={true} />;\n })}\n </WrappedSidebarMenu>\n </SidebarMenuContext.Provider>\n );\n}\n","import React, { useCallback, useEffect, useRef } 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 { useUpdateMenuCollapsedState } from \"../utils.js\";\nimport classNames from \"classnames\";\n\nconst { defineElement, property } = createDecorators();\n\nexport interface EoSidebarMenuGroupProps {\n selected?: boolean;\n collapsable?: boolean;\n collapsed?: boolean;\n menuCollapsed?: boolean;\n}\n\n/**\n * 侧栏菜单分组\n * @slot title - 分组标题\n * @category navigation\n */\nexport\n@defineElement(\"eo-sidebar-menu-group\", {\n styleTexts: [styleText],\n})\nclass EoSidebarMenuGroup\n extends ReactNextElement\n implements EoSidebarMenuGroupProps\n{\n /**\n * 是否允许折叠\n */\n @property({ type: Boolean })\n accessor collapsable: boolean | undefined;\n\n /**\n * 是否折叠\n */\n @property({ type: Boolean })\n accessor collapsed: boolean | undefined;\n\n /**\n * 是否选中\n * */\n @property({ type: Boolean })\n accessor selected: boolean | undefined;\n\n /**\n * 菜单整体是否收起状态\n */\n @property({ type: Boolean })\n accessor menuCollapsed: boolean | undefined;\n\n #handleCollapseChang = (collapsed: boolean) => {\n this.collapsed = collapsed;\n };\n\n render() {\n return (\n <EoSidebarMenuGroupComponent\n collapsable={this.collapsable}\n selected={this.selected}\n collapsed={this.collapsed}\n menuCollapsed={this.menuCollapsed}\n onCollapseChange={this.#handleCollapseChang}\n />\n );\n }\n}\n\ninterface EoSidebarMenuGroupComponentProps extends EoSidebarMenuGroupProps {\n onCollapseChange?: (collapsed: boolean) => void;\n}\n\nexport function EoSidebarMenuGroupComponent(\n props: EoSidebarMenuGroupComponentProps\n) {\n const {\n collapsable = false,\n collapsed,\n menuCollapsed,\n onCollapseChange,\n } = props;\n\n const [slotRef] = useUpdateMenuCollapsedState(menuCollapsed);\n\n const titleRef = useRef<HTMLDivElement>(null);\n\n const handleClick = useCallback(() => {\n !menuCollapsed && onCollapseChange?.(!collapsed);\n }, [menuCollapsed, onCollapseChange, collapsed]);\n\n useEffect(() => {\n const titleElem = titleRef.current;\n titleElem?.addEventListener(\"click\", handleClick);\n\n return () => {\n titleElem?.removeEventListener(\"click\", handleClick);\n };\n }, [handleClick]);\n\n return (\n <div\n className={classNames(\"menu-group\", {\n \"menu-group-collapsed\": menuCollapsed ? true : collapsed,\n })}\n >\n <div className=\"menu-group-title\" ref={titleRef}>\n <span className=\"menu-group-title-icon-container\">\n <span className=\"menu-group-title-icon\"></span>\n </span>\n <div className=\"menu-group-title-text\">\n <slot name=\"title\" />\n </div>\n {collapsable && <span className=\"menu-group-arrow\" />}\n </div>\n <div className=\"menu-group-list\">\n <div className=\"menu-group-list-inner\">\n <slot ref={slotRef} />\n </div>\n </div>\n </div>\n );\n}\n","import React, { useCallback, useEffect, useRef } from \"react\";\nimport { createDecorators } from \"@next-core/element\";\nimport { ReactNextElement, wrapBrick } from \"@next-core/react-element\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\nimport \"@next-core/theme\";\nimport styleText from \"./styles.shadow.css\";\nimport classNames from \"classnames\";\nimport { useUpdateMenuCollapsedState } from \"../utils.js\";\n\nconst { defineElement, property } = createDecorators();\n\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\n\nexport interface EoSidebarMenuSubmenuProps {\n icon?: GeneralIconProps;\n selected?: boolean;\n collapsed?: boolean;\n menuCollapsed?: boolean;\n}\n\n/**\n * 侧栏菜单子菜单\n * @slot title - 子菜单标题\n * @category navigation\n */\nexport\n@defineElement(\"eo-sidebar-menu-submenu\", {\n styleTexts: [styleText],\n})\nclass EoSidebarMenuSubmenu\n extends ReactNextElement\n implements EoSidebarMenuSubmenuProps\n{\n /**\n * 菜单的图标\n */\n @property({ attribute: false })\n accessor icon: GeneralIconProps | undefined;\n\n /**\n * 是否选中\n * */\n @property({ type: Boolean })\n accessor selected: boolean | undefined;\n\n /**\n * 是否折叠\n */\n @property({ type: Boolean })\n accessor collapsed: boolean | undefined;\n\n /**\n * 菜单整体是否收起状态\n */\n @property({ type: Boolean })\n accessor menuCollapsed: boolean | undefined;\n\n #handleCollapseChang = (collapsed: boolean) => {\n this.collapsed = collapsed;\n };\n\n render() {\n return (\n <EoSidebarMenuSubmenuComponent\n icon={this.icon}\n selected={this.selected}\n collapsed={this.collapsed}\n menuCollapsed={this.menuCollapsed}\n onCollapseChange={this.#handleCollapseChang}\n />\n );\n }\n}\n\ninterface EoSidebarMenuSubmenuComponentProps extends EoSidebarMenuSubmenuProps {\n onCollapseChange?: (collapsed: boolean) => void;\n}\n\nexport function EoSidebarMenuSubmenuComponent(\n props: EoSidebarMenuSubmenuComponentProps\n) {\n const { icon, collapsed, menuCollapsed, onCollapseChange } = props;\n\n const [slotRef] = useUpdateMenuCollapsedState(menuCollapsed);\n\n const titleRef = useRef<HTMLDivElement>(null);\n\n const handleClick = useCallback(() => {\n !menuCollapsed && onCollapseChange?.(!collapsed);\n }, [menuCollapsed, onCollapseChange, collapsed]);\n\n useEffect(() => {\n const titleElem = titleRef.current;\n titleElem?.addEventListener(\"click\", handleClick);\n\n return () => {\n titleElem?.removeEventListener(\"click\", handleClick);\n };\n }, [handleClick]);\n\n return (\n <div\n className={classNames(\"menu-submenu\", {\n \"menu-submenu-collapsed\": menuCollapsed ? true : collapsed,\n })}\n >\n <div className=\"menu-submenu-title\" ref={titleRef}>\n <span className=\"menu-submenu-title-icon-container\">\n <WrappedIcon {...icon!} className=\"menu-submenu-title-icon\" />\n </span>\n <span className=\"menu-submenu-title-text\">\n <slot name=\"title\" />\n </span>\n <span className=\"menu-submenu-arrow\" />\n </div>\n <div className=\"menu-sub\">\n <div className=\"menu-sub-inner\">\n <slot ref={slotRef} />\n </div>\n </div>\n </div>\n );\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 { useUpdateMenuCollapsedState } from \"../utils.js\";\n\nconst { defineElement, property } = createDecorators();\n\nexport interface EoSidebarMenuProps {\n menuCollapsed?: boolean;\n}\n\n/**\n * 侧栏菜单\n *\n * @category navigation\n */\nexport\n@defineElement(\"eo-sidebar-menu\", {\n styleTexts: [styleText],\n})\nclass EoSidebarMenu extends ReactNextElement implements EoSidebarMenuProps {\n /**\n * 菜单整体是否收起状态\n */\n @property({ type: Boolean })\n accessor menuCollapsed: boolean | undefined;\n\n render() {\n return <EoSidebarMenuComponent menuCollapsed={this.menuCollapsed} />;\n }\n}\n\nexport function EoSidebarMenuComponent(props: EoSidebarMenuProps) {\n const { menuCollapsed } = props;\n\n const [slotRef] = useUpdateMenuCollapsedState(menuCollapsed);\n\n return (\n <div className=\"sidebar-menu\">\n <div className=\"sidebar-menu-item-list\">\n <slot ref={slotRef} />\n </div>\n </div>\n );\n}\n","import * as React from \"react\";\nconst SvgFixed = props => <svg xmlns=\"http://www.w3.org/2000/svg\" width={20} height={20} viewBox=\"0 0 20 20\" {...props}><g fill=\"none\" fillRule=\"evenodd\"><path d=\"M0 0h20v20H0z\" /><path fill=\"#595959\" fillRule=\"nonzero\" d=\"m14.599 11.59-1.685-1.606-.348-4.876.93-1.044s.617-.93-.62-1.045L7.323 3s-.85.657-.097 1.296l.754.755-.385 4.76-1.49 1.683s-.388.774.328 1.065l2.961-.02.668 3.887H6.388V17h7.832v-.574h-3.743l.6-3.946 3.154.097s.812-.464.368-.986\" /></g></svg>;\nexport default SvgFixed;","import * as React from \"react\";\nconst SvgToFixed = props => <svg xmlns=\"http://www.w3.org/2000/svg\" width={20} height={20} viewBox=\"0 0 20 20\" {...props}><g fill=\"none\" fillRule=\"evenodd\"><path d=\"M0 0h20v20H0z\" /><path fill=\"#595959\" fillRule=\"nonzero\" d=\"m13.06 3.765 3.22 3.08c.42.28.42.84.14 1.26-.42.42-.98.42-1.26.14l-.14-.14-.28-.28-3.22 4.62.98.98c.28.42.28.98-.14 1.26-.28.28-.7.28-1.12 0l-5.88-6.02c-.28-.42-.28-.84 0-1.26.28-.28.84-.28 1.12 0l.98.98 4.62-3.22-.14-.14c-.42-.42-.42-.84-.14-1.26.28-.28.84-.42 1.26 0m-4.76 9.1-1.12-1.12c-.98 1.12-2.52 2.8-2.8 3.22-.42.42-.7.98-.98 1.54.7-.14 1.26-.42 1.68-.84.42-.28 2.1-1.82 3.22-2.8\" /></g></svg>;\nexport default SvgToFixed;","export enum K {\n CLICK_TO_FIX_NAVIGATION = \"CLICK_TO_FIX_NAVIGATION\",\n UNPIN_NAVIGATION = \"UNPIN_NAVIGATION\",\n FIXED_NAVIGATION = \"FIXED_NAVIGATION\",\n}\n\nconst en: Locale = {\n UNPIN_NAVIGATION: \"Unpin navigation\",\n FIXED_NAVIGATION: \"Fixed navigation\",\n CLICK_TO_FIX_NAVIGATION: \"Click to {{action}}\",\n};\n\nconst zh: Locale = {\n UNPIN_NAVIGATION: \"取消固定\",\n FIXED_NAVIGATION: \"固定导航\",\n CLICK_TO_FIX_NAVIGATION: \"点击{{action}}\",\n};\n\nexport const NS = \"bricks/nav/eo-sidebar\";\n\nexport const locales = { en, zh };\n\ntype Locale = { [key in K]: string };\n","import React, {\n MouseEventHandler,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { EventEmitter, createDecorators } from \"@next-core/element\";\nimport { ReactNextElement, wrapBrick } from \"@next-core/react-element\";\nimport type { EoTooltip, ToolTipProps } from \"@next-bricks/basic/tooltip\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\nimport type { SidebarMenu as SidebarMenuType } from \"@next-shared/general/types\";\nimport \"@next-core/theme\";\nimport styleText from \"./styles.shadow.css\";\nimport FixedSvg from \"../images/fixed.svg\";\nimport ToFixedSvg from \"../images/toFixed.svg\";\nimport { debounceByAnimationFrame } from \"@next-shared/general/debounceByAnimationFrame\";\nimport { JsonStorage } from \"@next-shared/general/JsonStorage\";\nimport {\n ExpandedState,\n SIDE_BAR_EXPAND_STATE,\n SIDE_BAR_HAS_BEEN_USED,\n SIDE_BAR_RESIZE_WIDTH,\n SidebarMenu,\n sideBarCollapsedWidth,\n sideBarWidth,\n} from \"./utils.js\";\nimport { useTranslation, initializeReactI18n } from \"@next-core/i18n/react\";\nimport { K, NS, locales } from \"./i18n.js\";\nimport classNames from \"classnames\";\nimport { initMenuItemAndMatchCurrentPathKeys } from \"@next-shared/general/menu\";\nimport { UnregisterCallback } from \"history\";\nimport { getHistory, getRuntime } from \"@next-core/runtime\";\nimport { useCurrentApp } from \"@next-core/react-runtime\";\n\ninitializeReactI18n(NS, locales);\n\nconst { defineElement, property, event } = createDecorators();\n\nconst WrappedTooltip = wrapBrick<EoTooltip, ToolTipProps>(\"eo-tooltip\");\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\n\nexport interface EoSidebarProps {\n menu: SidebarMenuType;\n expandedState?: ExpandedState;\n hiddenFixedIcon?: boolean;\n position?: \"static\" | \"fixed\";\n}\n\nexport interface EoSidebarEvents {\n \"actual.width.change\": CustomEvent<number>;\n \"expanded.state.change\": CustomEvent<ExpandedState>;\n}\n\nexport interface EoSidebarEventsMapping {\n onActualWidthChange: \"actual.width.change\";\n onExpandedStateChange: \"expanded.state.change\";\n}\n\n/**\n * 侧边栏\n *\n * @category navigation\n */\nexport\n@defineElement(\"eo-sidebar\", {\n styleTexts: [styleText],\n})\nclass EoSidebar extends ReactNextElement implements EoSidebarProps {\n /**\n * 菜单数据\n */\n @property({ attribute: false })\n accessor menu!: SidebarMenuType;\n\n /**\n * 是否隐藏固定按钮\n */\n @property({ type: Boolean })\n accessor hiddenFixedIcon: boolean | undefined;\n\n /**\n * 侧栏状态\n */\n @property()\n accessor expandedState: ExpandedState | undefined;\n\n /**\n * 设置定位方式:静态定位或固定定位。\n *\n * @default \"fixed\"\n */\n @property()\n accessor position: \"static\" | \"fixed\" | undefined;\n\n /**\n * 宽度变化时触发\n * @detail 当前宽度\n */\n @event({ type: \"actual.width.change\" })\n accessor #actualWidthChangeEvent!: EventEmitter<number>;\n #handleActualWidthChange = (actualWidth: number): void => {\n this.#actualWidthChangeEvent.emit(actualWidth);\n };\n\n /**\n * 侧栏状态变化时触发\n * @detail 侧栏状态\n */\n @event({ type: \"expanded.state.change\" })\n accessor #expandedStateChangeEvent!: EventEmitter<ExpandedState>;\n #handleExpandedStateChange = (state: ExpandedState): void => {\n this.expandedState = state;\n this.#expandedStateChangeEvent.emit(state);\n };\n\n render() {\n return (\n <EoSidebarComponent\n menu={this.menu}\n expandedState={this.expandedState}\n hiddenFixedIcon={this.hiddenFixedIcon}\n position={this.position}\n onActualWidthChange={this.#handleActualWidthChange}\n onExpandedStateChange={this.#handleExpandedStateChange}\n />\n );\n }\n}\n\ninterface EoSidebarComponentProps extends EoSidebarProps {\n onActualWidthChange?: (actualWidth: number) => void;\n onExpandedStateChange?: (state: ExpandedState) => void;\n}\n\nexport function EoSidebarComponent(props: EoSidebarComponentProps) {\n const { t } = useTranslation(NS);\n const {\n hiddenFixedIcon,\n position,\n onActualWidthChange,\n onExpandedStateChange,\n } = props;\n\n const showUserDefinedIcon = React.useMemo(\n () => getRuntime()?.getFeatureFlags()[\"sidebar-show-user-defined-icon\"],\n []\n );\n\n const storage = useMemo(() => new JsonStorage(localStorage), []);\n const history = getHistory();\n const currentApp = useCurrentApp();\n const [location, setLocation] = useState(history.location);\n const { pathname, search } = location;\n\n const [isFirstUsedTooltip, setIsFirstUsedTooltip] = useState<boolean>(\n !storage.getItem(SIDE_BAR_HAS_BEEN_USED)\n );\n const [showContentShadow, setShowContentShadow] = useState<boolean>();\n const [dragging, setDragging] = useState<boolean>();\n const [expandedState, setExpandedState] = useState<ExpandedState>(\n props.expandedState ||\n storage.getItem(SIDE_BAR_EXPAND_STATE) ||\n ExpandedState.Collapsed\n );\n const [menu, setMenu] = useState<SidebarMenuType>();\n const [selectedKeys, setSelectedKeys] = useState<string[]>([]);\n const [openedKeys, setOpenedKeys] = useState<string[]>([]);\n const [matchedKeys, setmatchedKeys] = useState<string[]>([]);\n\n const titleIcon = showUserDefinedIcon ? menu?.icon : currentApp?.menuIcon;\n\n useEffect(() => {\n const { selectedKeys, openedKeys, matchedKeys } =\n initMenuItemAndMatchCurrentPathKeys(\n props.menu?.menuItems ?? [],\n pathname,\n search,\n \"\"\n );\n setMenu(props.menu);\n setSelectedKeys(selectedKeys);\n setOpenedKeys(openedKeys);\n setmatchedKeys(matchedKeys);\n }, [props.menu, pathname, search]);\n\n useEffect(() => {\n const unListen: UnregisterCallback = history.listen((location) => {\n setLocation(location);\n });\n return unListen;\n }, [history]);\n\n const contentBottomPlaceholderRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n if (contentBottomPlaceholderRef.current) {\n const observer = new IntersectionObserver(\n (entries) => {\n entries.forEach((entry) => {\n if (entry.target === contentBottomPlaceholderRef.current) {\n setShowContentShadow(!entry.isIntersecting);\n }\n });\n },\n { threshold: 1 }\n );\n\n observer.observe(contentBottomPlaceholderRef.current);\n\n return () => {\n observer.disconnect();\n };\n }\n }, []);\n\n useEffect(() => {\n setExpandedState(\n props.expandedState ||\n storage.getItem(SIDE_BAR_EXPAND_STATE) ||\n ExpandedState.Collapsed\n );\n }, [props.expandedState]);\n\n useEffect(() => {\n storage.setItem(\n SIDE_BAR_EXPAND_STATE,\n expandedState === ExpandedState.Expanded\n ? ExpandedState.Expanded\n : ExpandedState.Collapsed\n );\n }, [expandedState]);\n\n const handleFixedIconClick = (): void => {\n setIsFirstUsedTooltip(false);\n storage.setItem(SIDE_BAR_HAS_BEEN_USED, true);\n\n setExpandedState((state) => {\n const newState =\n state === ExpandedState.Expanded\n ? ExpandedState.Collapsed\n : ExpandedState.Expanded;\n\n newState !== state && onExpandedStateChange?.(newState);\n return newState;\n });\n };\n\n const [expandedWidth, setExpandedWidth] = useState<number>(() => {\n // Use parseInt to compatible non-number types\n let memorizedWidth = parseInt(storage.getItem(SIDE_BAR_RESIZE_WIDTH), 10);\n if (memorizedWidth < sideBarWidth || Number.isNaN(memorizedWidth)) {\n memorizedWidth = sideBarWidth;\n }\n return memorizedWidth;\n });\n\n useEffect(() => {\n storage.setItem(SIDE_BAR_RESIZE_WIDTH, expandedWidth);\n }, [expandedWidth]);\n\n const containerRef = useRef<HTMLDivElement>(null);\n\n const handleResizeDown: MouseEventHandler = (e) => {\n setDragging(true);\n\n // Prevent text selection when dragging\n if (e.cancelable) {\n e.preventDefault();\n }\n\n const offsetX = containerRef.current?.getBoundingClientRect().left ?? 0;\n\n const drag = debounceByAnimationFrame((e: MouseEvent) => {\n const x = e.clientX - offsetX;\n const width = x >= sideBarWidth ? x : sideBarWidth;\n\n setExpandedWidth(width);\n });\n const dragEnd = (e: MouseEvent) => {\n setDragging(false);\n e.preventDefault();\n\n window.removeEventListener(\"mousemove\", drag);\n window.removeEventListener(\"mouseup\", dragEnd);\n };\n\n window.addEventListener(\"mousemove\", drag, { passive: true });\n window.addEventListener(\"mouseup\", dragEnd);\n };\n\n const handleMouseEnter = (): void => {\n setExpandedState((state) => {\n const newState =\n state === ExpandedState.Expanded\n ? ExpandedState.Expanded\n : ExpandedState.Hovered;\n\n newState !== state && onExpandedStateChange?.(newState);\n return newState;\n });\n };\n\n const handleMouseLeave = (): void => {\n setExpandedState((state) => {\n const newState =\n state === ExpandedState.Expanded\n ? ExpandedState.Expanded\n : ExpandedState.Collapsed;\n\n newState !== state && onExpandedStateChange?.(newState);\n return newState;\n });\n };\n\n const sidebarActualWidth = useMemo(() => {\n return expandedState === ExpandedState.Expanded\n ? expandedWidth\n : sideBarCollapsedWidth;\n }, [expandedState, expandedWidth]);\n\n useEffect(() => {\n onActualWidthChange?.(sidebarActualWidth);\n }, [onActualWidthChange, sidebarActualWidth]);\n\n const getContainerWidth = (inner?: boolean) => {\n // With static position, when not expanded, the outer container will keep\n // collapsed even if hovered, while only the inner container will expand.\n if (position === \"static\") {\n return expandedState === ExpandedState.Expanded ||\n (inner && expandedState === ExpandedState.Hovered)\n ? expandedWidth\n : sideBarCollapsedWidth;\n }\n return expandedState === ExpandedState.Collapsed\n ? sideBarCollapsedWidth\n : expandedWidth;\n };\n\n useEffect(() => {\n const container = containerRef.current;\n container?.addEventListener(\"mouseenter\", handleMouseEnter);\n container?.addEventListener(\"mouseleave\", handleMouseLeave);\n\n return () => {\n container?.removeEventListener(\"mouseenter\", handleMouseEnter);\n container?.removeEventListener(\"mouseleave\", handleMouseLeave);\n };\n }, []);\n\n return (\n <div\n className={classNames(\"sidebar-container\", `state-${expandedState}`, {\n dragging,\n })}\n style={{ width: getContainerWidth() }}\n ref={containerRef}\n data-testid=\"side-bar\"\n >\n <div className=\"inner\" style={{ width: getContainerWidth(true) }}>\n <div className=\"header\">\n <div className=\"menu-title\">\n <div className={classNames(\"menu-title-icon-container\")}>\n {titleIcon ? (\n <WrappedIcon\n {...(titleIcon as GeneralIconProps)}\n className=\"menu-title-icon\"\n />\n ) : (\n <span className=\"menu-title-point\" />\n )}\n </div>\n <div className=\"menu-title-text\" title={menu?.title}>\n {menu?.title}\n </div>\n </div>\n </div>\n\n <div\n className={classNames(\"content\", {\n \"show-shadow\": showContentShadow,\n })}\n >\n <SidebarMenu\n selectedKeys={selectedKeys}\n openedKeys={openedKeys}\n matchedKeys={matchedKeys}\n menu={menu}\n expandedState={expandedState}\n />\n <div ref={contentBottomPlaceholderRef} />\n </div>\n\n <div className=\"footer\">\n {!hiddenFixedIcon && (\n <WrappedTooltip\n content={\n (expandedState === ExpandedState.Expanded\n ? isFirstUsedTooltip\n ? t(K.CLICK_TO_FIX_NAVIGATION, {\n action: t(K.UNPIN_NAVIGATION),\n })\n : t(K.UNPIN_NAVIGATION)\n : isFirstUsedTooltip\n ? t(K.CLICK_TO_FIX_NAVIGATION, {\n action: t(K.FIXED_NAVIGATION),\n })\n : t(K.FIXED_NAVIGATION)) as string\n }\n >\n <i className=\"fixed-icon\" onClick={handleFixedIconClick}>\n <FixedSvg\n style={{\n display:\n expandedState === ExpandedState.Expanded\n ? undefined\n : \"none\",\n }}\n />\n <ToFixedSvg\n style={{\n display:\n expandedState === ExpandedState.Expanded\n ? \"none\"\n : undefined,\n }}\n />\n </i>\n </WrappedTooltip>\n )}\n </div>\n {expandedState === ExpandedState.Expanded && (\n <span className=\"resize-line\" onMouseDown={handleResizeDown} />\n )}\n </div>\n </div>\n );\n}\n","export type SimpleFunction<P extends unknown[] = unknown[], R = unknown> = (\n ...args: P\n) => R;\n\n// The debounce function receives our function as a parameter\nexport function debounceByAnimationFrame<P extends unknown[]>(\n fn: SimpleFunction<P, void>\n): SimpleFunction<P, void> & { cancel: () => void } {\n // This holds the requestAnimationFrame reference, so we can cancel it if we wish\n let frame: number;\n\n const cancel = () => cancelAnimationFrame(frame);\n\n // The debounce function returns a new function that can receive a variable number of arguments\n const func = (...params: P) => {\n // If the frame variable has been defined, clear it now, and queue for next frame\n if (frame) {\n cancel();\n }\n\n // Queue our function call for the next frame\n frame = requestAnimationFrame(() => {\n // Call our function and pass any params we received\n fn(...params);\n });\n };\n\n func.cancel = cancel;\n\n return func;\n}\n","import React, { useState, useEffect, useCallback } from \"react\";\nimport { createDecorators } from \"@next-core/element\";\nimport { ReactNextElement, wrapBrick } from \"@next-core/react-element\";\nimport { getHistory } from \"@next-core/runtime\";\nimport { UnregisterCallback } from \"history\";\nimport \"@next-core/theme\";\nimport {\n SidebarMenuSimpleItem,\n SidebarMenuGroup,\n SidebarMenuItem,\n} from \"@next-shared/general/types\";\nimport {\n initMenuItemAndMatchCurrentPathKeys,\n isGroup,\n isSubMenu,\n} from \"@next-shared/general/menu\";\nimport { Menu as MenuComponent, SidebarMenu } from \"@next-bricks/basic/menu\";\nimport { Link, LinkProps, Target } from \"@next-bricks/basic/link\";\nimport {\n EoMenuItemSubMenu,\n EoMenuSubMenuProps,\n} from \"@next-bricks/basic/menu-item-sub-menu\";\nimport { EoMenuGroup } from \"@next-bricks/basic/menu-group\";\nimport { MenuComponentProps, MenuItem } from \"@next-bricks/basic/menu-item\";\nimport styleText from \"./styles.shadow.css\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\nimport classNames from \"classnames\";\n\n// --- NOTE: uncomment these lines below to enable i18n for your brick ---\n// import { useTranslation, initializeReactI18n } from \"@next-core/i18n/react\";\n// import { K, NS, locales } from \"./i18n.js\";\n// initializeReactI18n(NS, locales);\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\n\nconst WrappedMenu = wrapBrick<MenuComponent, any>(\"eo-menu\");\n\nconst WrappedMenuGroup = wrapBrick<EoMenuGroup, any>(\"eo-menu-group\");\n\nconst WrapperMenuItemSubMenu = wrapBrick<EoMenuItemSubMenu, EoMenuSubMenuProps>(\n \"eo-menu-item-sub-menu\"\n);\n\nconst WrappedMenuItem = wrapBrick<MenuItem, MenuComponentProps>(\"eo-menu-item\");\n\nconst WrappedLinkItem = wrapBrick<Link, LinkProps>(\"eo-link\");\n\ninterface SidebarSubMenuProps {\n menu?: SidebarMenu;\n showTooltip?: boolean;\n}\n\nconst { defineElement, property } = createDecorators();\n\n/**\n * 构件 `eo-sidebar-sub-menu`\n * @category navigation\n */\nexport\n@defineElement(\"eo-sidebar-sub-menu\", {\n styleTexts: [styleText],\n})\nclass EoSidebarSubMenu extends ReactNextElement {\n /**\n * 菜单项\n */\n @property({\n attribute: false,\n })\n accessor menu: SidebarMenu | undefined;\n\n render() {\n return <EoSidebarSubMenuComponent menu={this.menu} />;\n }\n}\n\nexport function EoSidebarSubMenuComponent(props: SidebarSubMenuProps) {\n // const { t } = useTranslation(NS);\n // const hello = t(K.HELLO);\n const { menu } = props;\n\n const history = getHistory();\n const [location, setLocation] = useState(history.location);\n const { pathname, search } = location;\n\n const [selectedKey, setSelectedKey] = useState<string[]>([]);\n const [openedKeys, setOpenedKeys] = useState<string[]>([]);\n\n const setSelected = useCallback((): void => {\n const { selectedKeys, openedKeys } = initMenuItemAndMatchCurrentPathKeys(\n menu?.menuItems ?? [],\n pathname,\n search,\n \"\"\n );\n setSelectedKey(selectedKeys);\n setOpenedKeys(openedKeys);\n }, [menu?.menuItems, pathname, search]);\n\n useEffect(() => {\n const unListen: UnregisterCallback = history.listen((location) => {\n setLocation(location);\n });\n setSelected();\n return unListen;\n }, [history, setSelected]);\n\n const getMenuItemIndent = useCallback((item: SidebarMenuItem): number => {\n return ((item.key?.split(\".\")?.length as number) - 1) * 16;\n }, []);\n\n const renderSimpleMenuItem = (\n item: SidebarMenuSimpleItem,\n options?: {\n inSubmenu?: boolean;\n }\n ) => {\n return (\n <WrappedMenuItem\n className={classNames(\"menu-item\", {\n \"in-submenu\": options?.inSubmenu,\n })}\n style={{ paddingLeft: getMenuItemIndent(item) || 16 }}\n icon={item.icon}\n active={item.key ? selectedKey.includes(item.key) : false}\n >\n <WrappedLinkItem\n className=\"menu-item-link\"\n type=\"plain\"\n url={item.to as string}\n href={item.href}\n title={item.text}\n target={item.target as Target}\n >\n <span\n className={classNames(\"menu-item-text\", {\n \"item-has-icon\": item.icon,\n })}\n >\n {item.text}\n </span>\n </WrappedLinkItem>\n </WrappedMenuItem>\n );\n };\n\n const renderSubMenuItem = (item: SidebarMenuGroup) => {\n // istanbul ignore else\n if (item.items?.length > 0) {\n return (\n <WrapperMenuItemSubMenu\n className=\"menu-sub-item\"\n icon={item.icon}\n titleStyle={{ paddingLeft: getMenuItemIndent(item) }}\n bodyStyle={{ paddingLeft: getMenuItemIndent(item) / 2 }}\n collapsed={!openedKeys.includes(item.key!)}\n >\n <span slot=\"title\">{item.title}</span>\n {item.items.map((innerItem) => (\n <React.Fragment key={innerItem.key}>\n {renderMenuItem(innerItem, {\n inSubmenu: true,\n })}\n </React.Fragment>\n ))}\n </WrapperMenuItemSubMenu>\n );\n }\n };\n\n const renderGroupMenuItem = (item: SidebarMenuGroup) => {\n // istanbul ignore else\n if (item.items?.length > 0) {\n return (\n <WrappedMenuGroup>\n <span slot=\"title\">{item.title}</span>\n\n {item.items.map((innerItem) => {\n return (\n <React.Fragment key={innerItem.key}>\n {renderMenuItem(innerItem)}\n </React.Fragment>\n );\n })}\n </WrappedMenuGroup>\n );\n }\n };\n\n function renderMenuItem(\n item: SidebarMenuItem,\n options?:\n | {\n inSubmenu?: boolean;\n }\n | undefined\n ) {\n return isSubMenu(item as SidebarMenuGroup)\n ? renderSubMenuItem(item as SidebarMenuGroup)\n : isGroup(item)\n ? renderGroupMenuItem(item)\n : renderSimpleMenuItem(item, options);\n }\n\n return (\n <WrappedMenu className=\"menu-container\" mode=\"vertical\">\n {menu?.title && (\n <div className=\"header\">\n {menu?.icon && <WrappedIcon {...(menu?.icon as GeneralIconProps)} />}\n <span className=\"title\">{menu?.title}</span>\n </div>\n )}\n <div className=\"content\">\n {menu?.menuItems.map((item) => {\n return (\n <React.Fragment key={item.key}>\n {renderMenuItem(item)}\n </React.Fragment>\n );\n })}\n </div>\n </WrappedMenu>\n );\n}\n","import React from \"react\";\nimport { createDecorators, EventEmitter } from \"@next-core/element\";\nimport { ReactNextElement, wrapBrick } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport styleText from \"./styles.shadow.css\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\nimport classNames from \"classnames\";\nimport type { EoTooltip, ToolTipProps } from \"@next-bricks/basic/tooltip\";\n\nconst { defineElement, property, event } = createDecorators();\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\nconst WrappedTooltip = wrapBrick<EoTooltip, ToolTipProps>(\"eo-tooltip\");\n\n/**\n * 目录\n */\nexport\n@defineElement(\"eo-directory\", {\n styleTexts: [styleText],\n})\nclass EoDirectory extends ReactNextElement implements EoDirectoryProps {\n /**\n * 目录标题\n */\n @property()\n accessor directoryTitle: string | undefined;\n\n /**\n * 菜单数据\n * @default []\n * @required\n */\n @property({ attribute: false })\n accessor menuItems: MenuItem[] = [];\n\n /**\n * 默认选中高亮的菜单项\n */\n @property({ attribute: false })\n accessor defaultSelectedKeys: string[] | undefined;\n /**\n * 菜单点击,groupKey 表示对应分组的key,data 表示对应菜单项\n * @detail { groupKey: string, data: MenuChildrenItem }\n */\n @event({ type: \"menu.item.click\" })\n accessor #menuItemClickEvent!: EventEmitter<MenuItemClickEventDetail>;\n /**\n * 点击icon,detail为 对应菜单项或者是分组的key\n * @detail { key: string }\n */\n @event({ type: \"suffix.icon.click\" })\n accessor #suffixIconClickEvent!: EventEmitter<{ key: string }>;\n\n #menuItemClick = (data: MenuItemClickEventDetail) => {\n this.#menuItemClickEvent.emit(data);\n };\n #suffixIconClick = (key: string) => {\n this.#suffixIconClickEvent.emit({ key });\n };\n\n render() {\n return (\n <EoDirectoryComponent\n menuItems={this.menuItems}\n directoryTitle={this.directoryTitle}\n suffixIconClick={this.#suffixIconClick}\n menuItemClick={this.#menuItemClick}\n defaultSelectedKeys={this.defaultSelectedKeys}\n />\n );\n }\n}\nexport interface EoDirectoryProps {\n directoryTitle: string | undefined;\n menuItems: MenuItem[];\n menuItemClick?: (data: MenuItemClickEventDetail) => void;\n suffixIconClick?: (key: string) => void;\n defaultSelectedKeys?: string[] | undefined;\n}\ninterface MenuChildrenItem {\n title: string;\n key: string;\n [key: string]: any;\n}\ninterface MenuItem {\n title: string;\n key: string;\n type: \"group\" | \"item\";\n children?: MenuChildrenItem[];\n suffixIcon?: GeneralIconProps;\n suffixIconTooltip?: string;\n suffixIconDisabled?: boolean;\n}\ninterface MenuItemClickEventDetail {\n data: MenuChildrenItem;\n groupKey?: string;\n}\n\nexport function EoDirectoryComponent(props: EoDirectoryProps) {\n const {\n menuItems,\n directoryTitle,\n menuItemClick,\n suffixIconClick,\n defaultSelectedKeys,\n } = props;\n\n return (\n <div className=\"directory-container\">\n <div className=\"directory-title\" title={directoryTitle}>\n {directoryTitle}\n </div>\n <div className=\"directory-menu-list\">\n {menuItems.map((item, index) => {\n return (\n <div\n className={classNames(\"menu-item\", `menu-item-${item.type}`)}\n key={`${item.key}-${index}`}\n >\n <div\n className={classNames(`menu-item-title-${item.type}`)}\n onClick={() =>\n item.type === \"item\" && menuItemClick?.({ data: item })\n }\n >\n <span\n className={classNames(\"menu-title-text\", {\n \"menu-title-text-active\": defaultSelectedKeys?.includes(\n item.key\n ),\n })}\n >\n {item.title}\n </span>\n {item.suffixIcon && (\n <WrappedTooltip\n content={item.suffixIconTooltip}\n placement=\"top\"\n >\n <WrappedIcon\n {...(item.suffixIcon as GeneralIconProps)}\n className={classNames(\"menu-item-title-suffix-icon\", {\n \"menu-item-title-suffix-icon-disabled\":\n item.suffixIconDisabled,\n })}\n onClick={(e) => {\n e.stopPropagation();\n if (item.suffixIconDisabled) {\n e.preventDefault();\n } else {\n suffixIconClick?.(item.key);\n }\n }}\n />\n </WrappedTooltip>\n )}\n </div>\n {item.type === \"group\" &&\n !!item.children?.length &&\n item.children.map((child, i) => {\n return (\n <div\n className=\"menu-item-title-item\"\n onClick={() =>\n menuItemClick?.({ data: child, groupKey: item.key })\n }\n key={`${child.key}-${i}`}\n >\n <span\n className={classNames(\"menu-title-text\", {\n \"menu-title-text-active\":\n defaultSelectedKeys?.includes(child.key),\n })}\n >\n {child.title}\n </span>\n </div>\n );\n })}\n </div>\n );\n })}\n </div>\n </div>\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-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}.app-bar-container{height:var(--app-bar-height)}.app-bar{position:relative;z-index:1000;box-shadow:var(--top-nav-shadow)}.app-bar.fixed,\n.app-bar.absolute{right:0;left:0;top:0}.app-bar.fixed{position:fixed}.app-bar.absolute{position:absolute}.app-bar-content{display:flex;justify-content:space-between;align-items:center;height:var(--app-bar-height);background-color:var(--top-navigation-bg);padding:0 16px;transition:var(--launchpad-backdrop-transition)}.left{display:flex;flex:1}.right{display:flex;justify-content:end}`, \"\"]);\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}.directory-container{padding:20px 8px 24px 24px;background:var(--color-fill-global-bg-2);border-right:1px solid var(--color-text-divider-line);height:calc(100vh - var(--app-bar-height) - 44px);overflow-y:auto;scrollbar-width:none}.directory-title{font-size:var(--sub-menu-title-font-size);margin-bottom:24px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.directory-menu-list > .menu-item-group{padding-top:14px}.directory-menu-list > .menu-item-group:first-child{padding-top:0}.directory-menu-list .menu-item-title-group,\n.directory-menu-list .menu-item-title-item{display:flex;align-items:center;justify-content:space-between}.directory-menu-list .menu-item-title-group{color:#8c8c8c;font-size:12px;margin-bottom:2px}.directory-menu-list .menu-item-title-item{font-size:14px;cursor:pointer;line-height:24px;padding:3px 0}.directory-menu-list .menu-item-title-suffix-icon{width:24px;height:24px;display:flex;justify-content:center;align-items:center;font-size:14px;border-radius:var(--small-border-radius);cursor:pointer}.directory-menu-list\n .menu-item-title-suffix-icon:not(\n .menu-item-title-suffix-icon-disabled\n ):hover{background:var(--color-info-icon-bg);color:var(--color-brand-hover)}.directory-menu-list .menu-item-title-item > .menu-title-text:hover{color:var(--color-brand-hover)}.directory-menu-list .menu-item-title-item > .menu-title-text-active{color:var(--color-brand)}.directory-menu-list .menu-item-title-suffix-icon-disabled{color:var(--color-disabled-text);cursor:not-allowed}.directory-menu-list .menu-title-text{flex:1;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}`, \"\"]);\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}.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(--palette-blue-1)}.warning{background-color:var(--palette-amber-1)}`, \"\"]);\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:flex;height:22px;align-items:center}:host([hidden]){display:none}.breadcrumb-item-prefix-icon{font-size:14px}`, \"\"]);\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","// 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}.menu-container{box-sizing:border-box;background:var(--third-menu-default-bg);border:1px solid var(--stroke-color-default);border-width:0 1px 0 0;border-radius:0px;padding:20px 0px;height:100%}.menu-container .header{display:flex;gap:10px;align-items:center;font-size:var(--title-font-size);padding:0 20px 16px 20px;line-height:26px;color:var(--color-header-text)}.menu-container .header .title{overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;word-wrap:break-word}.menu-container .content{padding:0 12px}.menu-container .menu-item,\n .menu-container .menu-sub-item::part(sub-menu-item-title){margin:0;padding-right:16px;height:40px;line-height:40px;border-radius:4px;margin-bottom:4px}.menu-container .menu-item::part(menu-item-icon),\n .menu-container .menu-sub-item::part(menu-item-icon){color:var(--color-secondary-text)}.menu-container .menu-item-link{width:100%;color:var(--color-secondary-text)}.menu-container .menu-item-text,\n .menu-container .menu-group-text,\n .menu-container .menu-item-link{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.menu-container .menu-item-text{display:block;box-sizing:border-box;color:var(--antd-text-color)}.menu-container .menu-item:hover{background:var(--third-menu-item-hover-bg);color:var(--color-header-text)}.menu-container .menu-item:hover .menu-item-text{color:var(--color-header-text);font-weight:var(--font-weight-400)}.menu-container .in-submenu .menu-item-text{color:var(--color-normal-text)}.menu-container .menu-sub-item::part(sub-menu-item-title):hover{color:var(--color-header-text)}.menu-container .menu-item-text.item-has-icon{margin-left:6px}.menu-container .menu-item[active]{color:var(--color-brand);background-color:var(--third-menu-item-selected-bg)}.menu-container .menu-item[active] .menu-item-text{color:var(--color-brand);font-weight:var(--font-weight-500)}`, \"\"]);\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;--menu-item-icon-size:20px}:host([hidden]){display:none}*,\n*::before,\n*::after{box-sizing:border-box}.menu-group-title{position:relative;display:flex;align-items:center;min-height:36px;padding:8px 12px;line-height:20px;color:var(--left-secondary-text-color);border-radius:var(--larger-border-radius);transition:all var(--side-bar-collapse-transition-duration) var(--side-bar-collapse-transition-timing-function)}.menu-group-title-icon-container{flex-shrink:0;margin-right:14px;display:flex;align-items:center;justify-content:center;width:var(--menu-item-icon-size);height:var(--menu-item-icon-size);color:var(--left-sidebar-item-collapsed-icon-color);font-size:var(--menu-item-icon-size);transition:all var(--side-bar-collapse-transition-duration) var(--side-bar-collapse-transition-timing-function)}.menu-group-title-icon{width:1em;height:1em;border-bottom:2px solid var(--left-sidebar-group-border-color)}.menu-group-title-text{flex:1;font-size:12px;overflow:hidden;white-space:nowrap;margin-right:12px}.menu-group-list slot::slotted(*){margin-top:2px}.menu-group-arrow{position:absolute;top:50%;right:12px;width:10px;transform:translateY(-2px);transition:all 0.3s cubic-bezier(0.645,0.045,0.355,1)}.menu-group-arrow::before,\n.menu-group-arrow::after{content:\"\";position:absolute;width:6px;height:1.5px;background-color:currentColor;border-radius:2px;transition:all 0.3s cubic-bezier(0.645,0.045,0.355,1)}.menu-group-arrow::before{transform:rotate(45deg) translateX(2.5px)}.menu-group-arrow::after{transform:rotate(-45deg) translateX(-2.5px)}.menu-group-collapsed .menu-group-arrow{transform:translateY(-50%)}.menu-group-collapsed .menu-group-arrow::before{transform:rotate(-45deg) translateX(2.5px)}.menu-group-collapsed .menu-group-arrow::after{transform:rotate(45deg) translateX(-2.5px)}.menu-group-list{display:grid;grid-template-rows:1fr;transition:all var(--side-bar-collapse-transition-duration) var(--side-bar-collapse-transition-timing-function)}.menu-group-list-inner{overflow:hidden}:host([menu-collapsed]) .menu-group-title{padding:0px calc(50% - var(--menu-item-icon-size) / 2)}:host(:not([menu-collapsed])) .menu-group-title-icon-container{width:0;margin-right:0;opacity:0}:host([menu-collapsed]) .menu-group-title-text{opacity:0}:host([menu-collapsed]) .menu-group-arrow{opacity:0}:host(:not([menu-collapsed])) .menu-group-title-text{white-space:pre-wrap;display:-webkit-inline-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;text-overflow:ellipsis;color:#7f8ba6}:host([collapsable]) .menu-group-collapsed .menu-group-list{grid-template-rows:0fr;opacity: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, `:host{display:block;--menu-item-icon-size:20px}:host([hidden]){display:none}*,\n*::before,\n*::after{box-sizing:border-box}eo-link{display:block}.menu-item{position:relative;display:flex;align-items:center;min-height:36px;padding:8px 12px;line-height:20px;color:var(--left-sidebar-item-normal-color);border-radius:var(--medius-border-radius);cursor:pointer;transition:all var(--side-bar-collapse-transition-duration) var(--side-bar-collapse-transition-timing-function)}.menu-item-icon-container{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:var(--menu-item-icon-size);height:var(--menu-item-icon-size);font-size:var(--menu-item-icon-size);color:var(--left-sidebar-item-collapsed-icon-color)}:host([in-submenu]):host(:not([selected])) .menu-item{color:var(--left-sidebar-item-collapsed-color)}.menu-item-text{flex:1;margin-left:14px;margin-right:12px;font-size:14px;overflow:hidden;white-space:nowrap;transition:all var(--side-bar-collapse-transition-duration) var(--side-bar-collapse-transition-timing-function)}.menu-item:hover{background:var(--left-sidebar-item-hover-bg)}:host([selected]) .menu-item{color:var(--left-sidebar-item-selected-color);background:var(--left-sidebar-item-selected-bg);box-shadow:0px 2px 12px 0px rgba(26,122,255,0.30196)}:host([selected]) .menu-item-icon-container{color:var(--left-sidebar-item-selected-color)}:host([selected]) .menu-item:hover{background-color:var(--left-sidebar-item-selected-hover-bg)}:host([menu-collapsed]) .menu-item{padding:0px calc(50% - var(--menu-item-icon-size) / 2)}:host([menu-collapsed]) .menu-item-text{opacity:0}:host(:not([menu-collapsed])) .menu-item-text{white-space:pre-wrap;display:-webkit-inline-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;text-overflow:ellipsis}`, \"\"]);\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;--menu-item-icon-size:20px}:host([hidden]){display:none}*,\n*::before,\n*::after{box-sizing:border-box}.menu-submenu-title{position:relative;display:flex;align-items:center;min-height:36px;padding:8px 12px;line-height:20px;color:var(--left-sidebar-item-normal-color);border-radius:var(--larger-border-radius);cursor:pointer;transition:all var(--side-bar-collapse-transition-duration) var(--side-bar-collapse-transition-timing-function)}.menu-submenu-title-icon-container{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:var(--menu-item-icon-size);height:var(--menu-item-icon-size);font-size:var(--menu-item-icon-size);color:var(--left-sidebar-item-collapsed-icon-color)}.menu-submenu-title-text{flex:1;margin-left:14px;margin-right:12px;font-size:14px;overflow:hidden;white-space:nowrap}.menu-submenu-arrow{position:absolute;top:50%;right:12px;width:10px;color:var(--left-sidebar-item-arrow-color);transform:translateY(-2px);transition:all 0.3s cubic-bezier(0.645,0.045,0.355,1)}.menu-submenu-arrow::before,\n.menu-submenu-arrow::after{content:\"\";position:absolute;width:6px;height:1.5px;background-color:currentColor;border-radius:2px;transition:all 0.3s cubic-bezier(0.645,0.045,0.355,1)}.menu-submenu-arrow::before{transform:rotate(45deg) translateX(2.5px)}.menu-submenu-arrow::after{transform:rotate(-45deg) translateX(-2.5px)}.menu-submenu-collapsed .menu-submenu-arrow{transform:translateY(-50%)}.menu-submenu-collapsed .menu-submenu-arrow::before{transform:rotate(-45deg) translateX(2.5px)}.menu-submenu-collapsed .menu-submenu-arrow::after{transform:rotate(45deg) translateX(-2.5px)}.menu-submenu-title:hover{background:var(--left-sidebar-item-hover-bg)}.menu-sub{display:grid;grid-template-rows:1fr;transition:all var(--side-bar-collapse-transition-duration) var(--side-bar-collapse-transition-timing-function)}.menu-submenu-collapsed .menu-sub{grid-template-rows:0fr;opacity:0}.menu-sub-inner{overflow:hidden}.menu-sub-inner slot::slotted(*){margin-top:2px}:host([menu-collapsed]) .menu-submenu-title{padding:0px calc(50% - var(--menu-item-icon-size) / 2)}:host([menu-collapsed]) .menu-submenu-title-text{opacity:0}:host([menu-collapsed]) .menu-submenu-arrow{opacity:0}:host(:not([menu-collapsed])) .menu-submenu-title-text{white-space:pre-wrap;display:-webkit-inline-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;text-overflow:ellipsis}:host([selected]):host([menu-collapsed]) .menu-submenu-title, :host([selected]):host([collapsed]) .menu-submenu-title{background:var(--left-sidebar-item-selected-bg);color:var(--left-sidebar-item-selected-color)}:host([selected]):host([menu-collapsed]) .menu-submenu-title-icon-container,\n :host([selected]):host([collapsed]) .menu-submenu-title-icon-container,\n :host([selected]):host([menu-collapsed]) .menu-submenu-arrow,\n :host([selected]):host([collapsed]) .menu-submenu-arrow{color:var(--left-sidebar-item-selected-color)}:host([selected]) .menu-submenu-title-text{font-weight:var(--font-weight-500)}`, \"\"]);\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;transition:width var(--side-bar-collapse-transition-duration) var(--side-bar-collapse-transition-timing-function)}:host([hidden]){display:none}*,\n*::before,\n*::after{box-sizing:border-box}.sidebar-menu-item-list slot::slotted(*){margin-top:6px}`, \"\"]);\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}:host([position=\"static\"]){height:100%}*,\n*::before,\n*::after{box-sizing:border-box}.sidebar-container{position:relative;z-index:999;height:100%}.sidebar-container,\n.inner{transition:all var(--side-bar-collapse-transition-duration) var(--side-bar-collapse-transition-timing-function)}:host(:not([position=\"static\"])) .sidebar-container{position:fixed;left:0;top:var(--app-bar-height);height:calc(100vh - var(--app-bar-height))}.inner{position:absolute;left:0;height:100%;display:flex;flex-direction:column;background-color:var(--left-menu-bg);border-right:1px solid var(--left-sidebar-border-right)}.inner:hover{background-color:var(--left-menu-hover-bg)}.inner::before{content:\"\";position:absolute;left:0;right:0;top:0;bottom:0;z-index:-1;background:var(--sidebar-bg)}.header{padding:0 12px;margin-top:14px;height:52px;flex-shrink:0}.menu-title{height:100%;display:flex;align-items:center;color:var(--left-sidebar-large-title-color)}.menu-title-icon-container{flex-shrink:0;display:flex;justify-content:center;align-items:center;width:20px;height:20px;font-size:20px;line-height:0;transition:all var(--side-bar-collapse-transition-duration) var(--side-bar-collapse-transition-timing-function)}.menu-title-icon{color:var(--left-sidebar-item-collapsed-icon-color)}.menu-title-point{width:4px;height:4px;background:var(--antd-text-color);border-radius:50%}.menu-title-text{font-size:16px;font-weight:var(--font-weight-500);color:var(--left-sidebar-large-title-color);overflow:hidden;white-space:nowrap;text-overflow:ellipsis;transition:all var(--side-bar-collapse-transition-duration) var(--side-bar-collapse-transition-timing-function)}.state-collapsed .menu-title{padding:0 calc(50% - 10px)}.state-hovered .menu-title,\n.state-expanded .menu-title{padding:0 12px}.state-collapsed .menu-title-icon-container{margin-right:12px}.state-hovered .menu-title-icon-container,\n.state-expanded .menu-title-icon-container{margin-right:0;width:0;opacity:0}.content{padding:0 12px;flex:1;overflow-y:auto;scrollbar-width:none}.content::-webkit-scrollbar{width:0;background:transparent}.content.show-shadow{box-shadow:0 -17px 10px -16px rgb(0 0 0/8%) inset}.footer{height:60px;flex-shrink:0;display:flex;align-items:center;justify-content:flex-end}.fixed-icon{display:flex;justify-content:center;align-items:center;width:20px;height:20px;margin-right:8px;transition:all var(--side-bar-collapse-transition-duration) var(--side-bar-collapse-transition-timing-function)}.fixed-icon > svg{width:100%;height:100%}.fixed-icon:hover > svg path[fill]{fill:var(--color-brand)}.state-collapsed .fixed-icon{visibility:hidden;opacity:0}.state-hovered .fixed-icon,\n.state-expanded .fixed-icon{visibility:visible;opacity:1}.state-hovered .inner{box-shadow:var(--left-sidebar-shadow)}.resize-line{position:absolute;right:-2px;height:100%;width:2px;cursor:col-resize}.resize-line:hover,\n.resize-line:active{background-color:rgba(26,122,255,1)}.dragging,\n.dragging .inner{transition:none}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","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 _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","arrow","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","_EoLaunchpadButtonV","lockBodyScroll","unwrapProvider","platformCategoryStyleText","EoLaunchpadButtonV2","disconnectedCallback","super","EoLaunchpadButtonV2Component","host","initialized","setInitialized","setActive","toggleLaunchpad","previous","hotkeys","filter","preventDefault","unbind","_getRuntime","deferredLaunchpadInfo","schedulePrefetch","deferredFavorites","getRuntime","getFeatureFlags","deferredPlatformCategories","role","classNames","LaunchpadSvg","Launchpad","WrappedIcon","WrappedLink","WrappedDropdownActions","onActionClick","MenuGroup","data","actions","name","dropdownActive","setDropdownActive","filteredActions","checkIfByTransform","handleActionClick","useCallback","action","empty","lib","icon","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","menuGroups","LaunchpadConfigComponent","_set_actionClickEvent","_get_actionClickEvent","group","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","getMiscSettings","isBuildPush","millisecondToSecond","suggestTime","suggestUrl","addEventListener","removeEventListener","handleLicenseAlertDismiss","setItem","Alert","link","label","url","undefined","closable","onClose","href","target","millisecond","Math","floor","_EoLaunchpadQuickAcce","EoLaunchpadQuickAccess","_init_readonly","readonly","EoLaunchpadQuickAccessComponent","favorites","loadingFavorites","pushRecentVisit","toggleStar","isStarred","useLaunchpadInfo","LaunchpadsContext","Provider","searching","SidebarMenuItem","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","_EoSearchLaunchpad","EoSearchLaunchpad","EoSearchLaunchpadComponent","searchInputRef","handleClickSearchBox","_searchInputRef$curre","focus","loading","q","setQ","handleSearch","clearSearch","placeholder","onChange","onFocus","onBlur","theme","onMouseDown","Loading","spinning","_EoLaunchpadRecentVis","EoLaunchpadRecentVisits","EoLaunchpadRecentVisitsComponent","recentVisits","_EoAppBarWrapper","alias","_dec5","_D","EoAppBarWrapper","_init_isFixed","_init_position","_init_displayCenter","_init_extraAppBarContentStyle","isFixed","position","displayCenter","extraAppBarContentStyle","EoAppBarWrapperComponent","mainElement","getElementById","iframeMainElement","marginTop","_objectSpread","justifyContent","_EoFrameBreadcrumb","WrappedBreadcrumb","WrappedBreadcrumbItem","EoFrameBreadcrumb","_init_breadcrumb","_init_noCurrentApp","breadcrumb","noCurrentApp","EoFrameBreadcrumbComponent","_props$breadcrumb","_props$noCurrentApp","navConfig","getNavConfig","curAppBreadcrumb","currentAppBreadcrumbItems","breadcrumbItems","useCurrentMenuTitle","to","homepage","internal","localeName","_EoSidebarMenuItem","_dec6","_dec7","_dec8","_E","_F","_G","EoSidebarMenuItem","_init_url","_init_href","_init_target","_init_icon","_init_selected","_init_inSubmenu","_init_menuCollapsed","selected","inSubmenu","menuCollapsed","EoSidebarMenuItemComponent","imgStyle","sidebarMenuItemTagNameSet","Set","isSidebarMenuItem","element","tagName","useUpdateMenuCollapsedState","slotRef","updateChildrenMenuCollapsedState","_slotRef$current","assignedElements","forEach","ele","slotElem","handleSlotchange","SIDE_BAR_HAS_BEEN_USED","SIDE_BAR_EXPAND_STATE","SIDE_BAR_RESIZE_WIDTH","ExpandedState","sideBarWidth","parseInt","getCssPropertyValue","sideBarCollapsedWidth","SidebarMenuContext","createContext","openedKeys","matchedKeys","WrappedSidebarMenu","WrappedSidebarMenuItem","WrappedSidebarMenuGroup","WrappedSidebarMenuSubmenu","MenuSimpleItem","useContext","top","isSelected","collapsable","MenuSubmenu","collapsed","SidebarMenu","expandedState","Collapsed","_EoSidebarMenuGroup","_handleCollapseChang","EoSidebarMenuGroup","_init_collapsable","_init_collapsed","EoSidebarMenuGroupComponent","onCollapseChange","titleRef","handleClick","titleElem","_EoSidebarMenuSubmenu","EoSidebarMenuSubmenu","EoSidebarMenuSubmenuComponent","_EoSidebarMenu","EoSidebarMenu","EoSidebarMenuComponent","xmlns","viewBox","fill","fillRule","d","K","en","UNPIN_NAVIGATION","FIXED_NAVIGATION","CLICK_TO_FIX_NAVIGATION","zh","_EoSidebar","WrappedTooltip","_actualWidthChangeEvent","_handleActualWidthChange","_expandedStateChangeEvent","_handleExpandedStateChange","EoSidebar","_get_expandedStateChangeEvent2","_set_expandedStateChangeEvent2","_get_actualWidthChangeEvent2","_set_actualWidthChangeEvent2","_init_hiddenFixedIcon","_init_expandedState","_init_actualWidthChangeEvent","actualWidth","_init_expandedStateChangeEvent","state","hiddenFixedIcon","EoSidebarComponent","onActualWidthChange","onExpandedStateChange","_set_actualWidthChangeEvent","_get_actualWidthChangeEvent","_set_expandedStateChangeEvent","_get_expandedStateChangeEvent","useTranslation","showUserDefinedIcon","isFirstUsedTooltip","setIsFirstUsedTooltip","showContentShadow","setShowContentShadow","dragging","setDragging","setExpandedState","setMenu","setSelectedKeys","setOpenedKeys","setmatchedKeys","titleIcon","_props$menu$menuItems","_props$menu","contentBottomPlaceholderRef","observer","IntersectionObserver","entries","entry","isIntersecting","threshold","Expanded","expandedWidth","setExpandedWidth","memorizedWidth","isNaN","containerRef","handleMouseEnter","newState","Hovered","handleMouseLeave","sidebarActualWidth","getContainerWidth","inner","container","content","t","handleFixedIconClick","FixedSvg","display","ToFixedSvg","_containerRef$current","_containerRef$current2","cancelable","fn","frame","cancel","func","offsetX","getBoundingClientRect","left","drag","x","clientX","_len","params","Array","_key","requestAnimationFrame","cancelAnimationFrame","dragEnd","passive","_EoSidebarSubMenu","WrappedMenu","WrappedMenuGroup","WrapperMenuItemSubMenu","WrappedLinkItem","EoSidebarSubMenu","EoSidebarSubMenuComponent","getMenuItemIndent","_item$key","split","renderMenuItem","titleStyle","paddingLeft","bodyStyle","renderSubMenuItem","renderGroupMenuItem","renderSimpleMenuItem","mode","_EoDirectory","_menuItemClickEvent","_suffixIconClickEvent","_menuItemClick","_suffixIconClick","EoDirectory","_get_suffixIconClickEvent2","_set_suffixIconClickEvent2","_get_menuItemClickEvent2","_set_menuItemClickEvent2","_init_directoryTitle","_init_menuItems","_init_defaultSelectedKeys","_init_menuItemClickEvent","_init_suffixIconClickEvent","directoryTitle","defaultSelectedKeys","EoDirectoryComponent","suffixIconClick","menuItemClick","_set_menuItemClickEvent","_get_menuItemClickEvent","_set_suffixIconClickEvent","_get_suffixIconClickEvent","_item$children","suffixIcon","suffixIconTooltip","suffixIconDisabled","children","child","groupKey","___CSS_LOADER_EXPORT___","push","module","toString","_checkPrivateRedeclaration","obj","privateCollection","TypeError","_classExtractFieldDescriptor","receiver","privateMap","descriptor","call","classExtractFieldDescriptor","MyCollectionApi_listMyCollection","http","_x","_x2","MyCollectionApi_upsertMyCollection","post"],"sourceRoot":""}