@next-bricks/nav 0.10.2 → 0.10.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (68) hide show
  1. package/dist/bricks.json +1 -1
  2. package/dist/chunks/2108.0cce54f8.js +2 -0
  3. package/dist/chunks/2108.0cce54f8.js.map +1 -0
  4. package/dist/chunks/{2754.25078924.js → 2754.e97c99b6.js} +2 -2
  5. package/dist/chunks/{2754.25078924.js.map → 2754.e97c99b6.js.map} +1 -1
  6. package/dist/chunks/3981.8f71ff52.js +3 -0
  7. package/dist/chunks/3981.8f71ff52.js.map +1 -0
  8. package/dist/chunks/4752.ee488116.js +3 -0
  9. package/dist/chunks/4752.ee488116.js.map +1 -0
  10. package/dist/chunks/{6176.84035683.js → 6176.1b27c498.js} +2 -2
  11. package/dist/chunks/{6176.84035683.js.map → 6176.1b27c498.js.map} +1 -1
  12. package/dist/chunks/{easyops-navbar-alerts.f1a00fad.js → easyops-navbar-alerts.9ea93872.js} +2 -2
  13. package/dist/chunks/{easyops-navbar-alerts.f1a00fad.js.map → easyops-navbar-alerts.9ea93872.js.map} +1 -1
  14. package/dist/chunks/{eo-app-bar-wrapper.491e7672.js → eo-app-bar-wrapper.1b939974.js} +3 -3
  15. package/dist/chunks/{eo-app-bar-wrapper.491e7672.js.map → eo-app-bar-wrapper.1b939974.js.map} +1 -1
  16. package/dist/chunks/{eo-frame-breadcrumb.b3f735da.js → eo-frame-breadcrumb.71faa917.js} +2 -2
  17. package/dist/chunks/{eo-frame-breadcrumb.b3f735da.js.map → eo-frame-breadcrumb.71faa917.js.map} +1 -1
  18. package/dist/chunks/eo-launchpad-button-v2.22cf8aed.js +2 -0
  19. package/dist/chunks/{eo-launchpad-button-v2.05d32154.js.map → eo-launchpad-button-v2.22cf8aed.js.map} +1 -1
  20. package/dist/chunks/{eo-launchpad-button.a17d0b88.js → eo-launchpad-button.bd939038.js} +2 -2
  21. package/dist/chunks/{eo-launchpad-button.a17d0b88.js.map → eo-launchpad-button.bd939038.js.map} +1 -1
  22. package/dist/chunks/{eo-launchpad-quick-access.87b933e6.js → eo-launchpad-quick-access.cbce109c.js} +3 -3
  23. package/dist/chunks/{eo-launchpad-quick-access.87b933e6.js.map → eo-launchpad-quick-access.cbce109c.js.map} +1 -1
  24. package/dist/chunks/{eo-launchpad-recent-visits.3f61f536.js → eo-launchpad-recent-visits.54974d26.js} +3 -3
  25. package/dist/chunks/{eo-launchpad-recent-visits.3f61f536.js.map → eo-launchpad-recent-visits.54974d26.js.map} +1 -1
  26. package/dist/chunks/{eo-nav-menu.1c3bb26a.js → eo-nav-menu.5599c5bf.js} +2 -2
  27. package/dist/chunks/{eo-nav-menu.1c3bb26a.js.map → eo-nav-menu.5599c5bf.js.map} +1 -1
  28. package/dist/chunks/{eo-search-launchpad.f874300e.js → eo-search-launchpad.f9bbeec0.js} +2 -2
  29. package/dist/chunks/{eo-search-launchpad.f874300e.js.map → eo-search-launchpad.f9bbeec0.js.map} +1 -1
  30. package/dist/chunks/{eo-sidebar-menu-group.24afa6f5.js → eo-sidebar-menu-group.39cae815.js} +3 -3
  31. package/dist/chunks/{eo-sidebar-menu-group.24afa6f5.js.map → eo-sidebar-menu-group.39cae815.js.map} +1 -1
  32. package/dist/chunks/{eo-sidebar-menu-item.66bb6398.js → eo-sidebar-menu-item.310b94f2.js} +2 -2
  33. package/dist/chunks/{eo-sidebar-menu-item.66bb6398.js.map → eo-sidebar-menu-item.310b94f2.js.map} +1 -1
  34. package/dist/chunks/{eo-sidebar-menu-submenu.3682a9f1.js → eo-sidebar-menu-submenu.6495af5f.js} +3 -3
  35. package/dist/chunks/{eo-sidebar-menu-submenu.3682a9f1.js.map → eo-sidebar-menu-submenu.6495af5f.js.map} +1 -1
  36. package/dist/chunks/{eo-sidebar-menu.31369206.js → eo-sidebar-menu.e945b3c3.js} +2 -2
  37. package/dist/chunks/{eo-sidebar-menu.31369206.js.map → eo-sidebar-menu.e945b3c3.js.map} +1 -1
  38. package/dist/chunks/{eo-sidebar-sub-menu.da7266b8.js → eo-sidebar-sub-menu.692184b2.js} +3 -3
  39. package/dist/chunks/{eo-sidebar-sub-menu.da7266b8.js.map → eo-sidebar-sub-menu.692184b2.js.map} +1 -1
  40. package/dist/chunks/{eo-sidebar.8203be4e.js → eo-sidebar.17b65d13.js} +3 -3
  41. package/dist/chunks/{eo-sidebar.8203be4e.js.map → eo-sidebar.17b65d13.js.map} +1 -1
  42. package/dist/chunks/{launchpad-config.57584cd8.js → launchpad-config.275af331.js} +3 -3
  43. package/dist/chunks/{launchpad-config.57584cd8.js.map → launchpad-config.275af331.js.map} +1 -1
  44. package/dist/chunks/{main.93bc17cc.js → main.1e913769.js} +2 -2
  45. package/dist/chunks/main.1e913769.js.map +1 -0
  46. package/dist/{index.dee2ec41.js → index.a633ef43.js} +2 -2
  47. package/dist/index.a633ef43.js.map +1 -0
  48. package/package.json +2 -2
  49. package/dist/chunks/2108.3818751c.js +0 -2
  50. package/dist/chunks/2108.3818751c.js.map +0 -1
  51. package/dist/chunks/3981.09bc7b5f.js +0 -3
  52. package/dist/chunks/3981.09bc7b5f.js.map +0 -1
  53. package/dist/chunks/4752.4d881d13.js +0 -3
  54. package/dist/chunks/4752.4d881d13.js.map +0 -1
  55. package/dist/chunks/eo-launchpad-button-v2.05d32154.js +0 -2
  56. package/dist/chunks/main.93bc17cc.js.map +0 -1
  57. package/dist/images/9879d37a.png +0 -0
  58. package/dist/index.dee2ec41.js.map +0 -1
  59. /package/dist/chunks/{3981.09bc7b5f.js.LICENSE.txt → 3981.8f71ff52.js.LICENSE.txt} +0 -0
  60. /package/dist/chunks/{4752.4d881d13.js.LICENSE.txt → 4752.ee488116.js.LICENSE.txt} +0 -0
  61. /package/dist/chunks/{eo-app-bar-wrapper.491e7672.js.LICENSE.txt → eo-app-bar-wrapper.1b939974.js.LICENSE.txt} +0 -0
  62. /package/dist/chunks/{eo-launchpad-quick-access.87b933e6.js.LICENSE.txt → eo-launchpad-quick-access.cbce109c.js.LICENSE.txt} +0 -0
  63. /package/dist/chunks/{eo-launchpad-recent-visits.3f61f536.js.LICENSE.txt → eo-launchpad-recent-visits.54974d26.js.LICENSE.txt} +0 -0
  64. /package/dist/chunks/{eo-sidebar-menu-group.24afa6f5.js.LICENSE.txt → eo-sidebar-menu-group.39cae815.js.LICENSE.txt} +0 -0
  65. /package/dist/chunks/{eo-sidebar-menu-submenu.3682a9f1.js.LICENSE.txt → eo-sidebar-menu-submenu.6495af5f.js.LICENSE.txt} +0 -0
  66. /package/dist/chunks/{eo-sidebar-sub-menu.da7266b8.js.LICENSE.txt → eo-sidebar-sub-menu.692184b2.js.LICENSE.txt} +0 -0
  67. /package/dist/chunks/{eo-sidebar.8203be4e.js.LICENSE.txt → eo-sidebar.17b65d13.js.LICENSE.txt} +0 -0
  68. /package/dist/chunks/{launchpad-config.57584cd8.js.LICENSE.txt → launchpad-config.275af331.js.LICENSE.txt} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chunks/4752.ee488116.js","mappings":"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","sources":["webpack:///./src/launchpad-button-v2/PlatformCategory.tsx","webpack:///./src/launchpad-button-v2/Launchpad.tsx","webpack:///./src/launchpad-button-v2/LaunchpadContext.ts","webpack:///./src/launchpad-button-v2/MenuGroup.tsx","webpack:///./src/launchpad-button-v2/host-context.css","webpack:///./src/launchpad-button-v2/PlatformCategory.shadow.css","webpack:///./src/launchpad-button-v2/styles.shadow.css","webpack:///./src/launchpad-button-v2/host-context.css?59a8","webpack:///../../node_modules/@next-api-sdk/cmdb-sdk/dist/esm/api/cmdb/instance/postSearchV3.js","webpack:///../../node_modules/@next-api-sdk/user-service-sdk/dist/esm/api/user_service/launchpad/createCollectionV2.js","webpack:///../../node_modules/@next-api-sdk/user-service-sdk/dist/esm/api/user_service/launchpad/deleteCollectionV2.js","webpack:///../../node_modules/@next-api-sdk/user-service-sdk/dist/esm/api/user_service/launchpad/listCollectionV2.js"],"sourcesContent":["import React from \"react\";\nimport { WrappedLink, WrappedIcon } from \"./wrapped-bricks\";\nimport { MenuItemDataNormal, PlatformCategoryItem } from \"./interfaces\";\nimport { pick } from \"lodash\";\nimport classNames from \"classnames\";\n\nexport interface PlatformCategorySidebarMenuItemProps {\n item: PlatformCategoryItem;\n active?: boolean;\n onClick?: (item: PlatformCategoryItem) => void;\n}\n\nexport function PlatformCategorySidebarMenuItem({\n item,\n active,\n onClick,\n}: PlatformCategorySidebarMenuItemProps) {\n return (\n <li className=\"platform-category-sidebar-menu-item\">\n <WrappedLink\n type=\"plain\"\n className={classNames({ active })}\n onClick={() => onClick?.(item)}\n >\n <WrappedIcon\n className={\"platform-category-sidebar-menu-icon\"}\n lib=\"easyops\"\n category=\"second-menu\"\n icon=\"serve-second-menu\"\n {...(item.icon?.lib && item.icon.icon\n ? (pick(item.icon, [\n \"lib\",\n \"icon\",\n \"theme\",\n \"category\",\n \"prefix\",\n ]) as any)\n : null)}\n />\n <span className=\"platform-category-sidebar-menu-item-label\">\n {item.name}\n </span>\n </WrappedLink>\n </li>\n );\n}\n\nexport interface PlatformItemProps {\n item: MenuItemDataNormal;\n}\n\nexport function PlatformItem({ item }: PlatformItemProps) {\n return (\n <li>\n <WrappedLink\n type=\"plain\"\n {...(item.type === \"app\"\n ? {\n url: item.url,\n }\n : {\n href: item.url,\n target: \"_blank\",\n })}\n >\n <div className=\"platform-item\">\n <div className=\"platform-item-title\">\n <WrappedIcon\n className=\"platform-item-icon\"\n lib=\"easyops\"\n category=\"third-menu\"\n icon=\"deploy-orchestration-tasks-third-menu\"\n {...(item.menuIcon?.lib && item.menuIcon.icon\n ? (pick(item.menuIcon, [\n \"lib\",\n \"icon\",\n \"theme\",\n \"category\",\n \"prefix\",\n ]) as any)\n : null)}\n />\n <div className=\"platform-item-name\">{item.name}</div>\n </div>\n <div className=\"platform-item-description\">{item.description}</div>\n </div>\n </WrappedLink>\n </li>\n );\n}\n","import React, {\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport classNames from \"classnames\";\nimport { WrappedIcon, WrappedLink } from \"./wrapped-bricks\";\nimport { useLaunchpadInfo } from \"./useLaunchpadInfo.js\";\nimport { MenuGroup, SidebarMenuItem } from \"./MenuGroup.js\";\nimport { LaunchpadsContext } from \"./LaunchpadContext.js\";\nimport { PlatformCategoryItem, SidebarMenuItemData } from \"./interfaces\";\nimport {\n PlatformItem,\n PlatformCategorySidebarMenuItem,\n} from \"./PlatformCategory\";\nimport { getRuntime } from \"@next-core/runtime\";\n\nexport function Launchpad({ active }: { active?: boolean }) {\n const searchInputRef = useRef<HTMLInputElement>(null);\n const handleClickSearchBox = useCallback(() => {\n searchInputRef.current?.focus();\n }, []);\n const [platform, setPlatform] = useState(\"#all\");\n\n const showPlatformCategory = React.useMemo(\n () => getRuntime()?.getFeatureFlags()[\"launchpad-show-platform-category\"],\n []\n );\n\n const showScenarioCenter = React.useMemo(\n () => getRuntime()?.getFeatureFlags()[\"launchpad-show-scenario-center\"],\n []\n );\n\n const showSolutionCenter = React.useMemo(\n () => getRuntime()?.getFeatureFlags()[\"launchpad-show-solution-center\"],\n []\n );\n\n const {\n loading,\n q,\n setQ,\n menuGroups,\n favorites,\n loadingFavorites,\n recentVisits,\n pushRecentVisit,\n toggleStar,\n isStarred,\n platformCategories,\n } = useLaunchpadInfo(active);\n const searching = !!q;\n\n const handleSearch = useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n setQ(e.target.value);\n },\n [setQ]\n );\n\n const clearSearch = useCallback(() => {\n setQ(\"\");\n }, [setQ]);\n\n useEffect(() => {\n if (active) {\n searchInputRef.current?.focus();\n }\n }, [active]);\n\n const handlePlatformCategoryClick = useCallback(\n (item: PlatformCategoryItem) => {\n setPlatform(item.id);\n },\n []\n );\n\n const curCategory = useMemo(() => {\n return platformCategories.find((v) => v.id === platform);\n }, [platform, platformCategories]);\n\n return (\n <div className={classNames(\"launchpad\", { active })}>\n <LaunchpadsContext.Provider\n value={{\n searching,\n loadingFavorites,\n pushRecentVisit,\n toggleStar,\n isStarred,\n }}\n >\n <div className=\"sidebar\">\n <div className=\"union\">\n <div className=\"quick-nav\">\n <div className=\"quick-nav-label\">快捷访问</div>\n {/* <Loading loading={loading || loadingFavorites} /> */}\n <ul className=\"sidebar-menu quick-nav-menu\">\n {favorites.map((item, index) => (\n <SidebarMenuItem\n key={index}\n item={item as SidebarMenuItemData}\n />\n ))}\n </ul>\n </div>\n\n {showPlatformCategory && (\n <div className=\"platform-nav\">\n <div className=\"platform-nav-label\">平台</div>\n <ul className=\"sidebar-menu platform-nav-menu\">\n {platformCategories.map((item, index) => (\n <PlatformCategorySidebarMenuItem\n key={index}\n onClick={handlePlatformCategoryClick}\n item={item}\n active={platform === item.id}\n />\n ))}\n </ul>\n </div>\n )}\n </div>\n {showScenarioCenter && (\n <div className=\"scenario-nav\">\n <WrappedLink type=\"plain\" url={\"/portal/scenario\"}>\n <div className=\"scenario-nav-label\">场景中心</div>\n <WrappedIcon lib=\"antd\" icon=\"right\" theme=\"outlined\" />\n </WrappedLink>\n </div>\n )}\n\n {showSolutionCenter && (\n <div className=\"solution-nav\">\n <WrappedLink type=\"plain\" url={\"/portal/solution\"}>\n <div className=\"solution-nav-label\">解决方案</div>\n <WrappedIcon lib=\"antd\" icon=\"right\" theme=\"outlined\" />\n </WrappedLink>\n </div>\n )}\n </div>\n <div className={classNames(\"content\", { loading })}>\n <Loading loading={loading} />\n {platform !== \"#all\" && (\n <div className=\"platform-category-name\">{curCategory?.name}</div>\n )}\n <div className=\"search-box\" onClick={handleClickSearchBox}>\n <WrappedIcon\n lib=\"fa\"\n icon=\"magnifying-glass\"\n className=\"search-icon\"\n />\n <input\n ref={searchInputRef}\n placeholder=\"通过关键字搜索\"\n value={q}\n onChange={handleSearch}\n className=\"search-input\"\n />\n <WrappedIcon\n lib=\"antd\"\n theme=\"filled\"\n icon=\"close-circle\"\n className={classNames(\"search-clear\", { searching })}\n onClick={clearSearch}\n />\n </div>\n {platform === \"#all\" && (\n <div className={classNames({ empty: recentVisits.length === 0 })}>\n <div className=\"recent-visits-label\">最近访问</div>\n <ul className=\"recent-visits\">\n {recentVisits.map((item, index) => (\n <li key={index}>\n <WrappedLink\n onClick={() => pushRecentVisit(item)}\n {...(item.type === \"app\"\n ? {\n url: item.url,\n }\n : {\n href: item.url,\n target: \"_blank\",\n })}\n >\n <span>{item.name}</span>\n </WrappedLink>\n </li>\n ))}\n </ul>\n </div>\n )}\n {platform === \"#all\" && (\n <ul className=\"menu-groups\">\n {menuGroups.map((group) => (\n <MenuGroup\n key={group.name}\n name={group.name}\n items={group.items}\n />\n ))}\n </ul>\n )}\n {platform !== \"#all\" && (\n <ul\n className={classNames(\"platform-items\", {\n empty: curCategory?.items.length === 0,\n })}\n >\n {curCategory?.items.map((item, index) => (\n <PlatformItem item={item} key={index} />\n ))}\n </ul>\n )}\n </div>\n </LaunchpadsContext.Provider>\n </div>\n );\n}\n\nfunction Loading({ loading }: { loading: boolean }) {\n return (\n loading && (\n <div className=\"spinner\">\n <WrappedIcon lib=\"fa\" icon=\"spinner\" spinning />\n </div>\n )\n );\n}\n","import React from \"react\";\nimport type { MenuItemDataLink, MenuItemDataNormal } from \"./interfaces\";\n\nexport interface LaunchpadContextData {\n searching: boolean;\n loadingFavorites: boolean;\n pushRecentVisit(item: MenuItemDataNormal): void;\n toggleStar(item: MenuItemDataNormal | MenuItemDataLink): void;\n isStarred(item: MenuItemDataNormal): boolean;\n}\n\nexport const LaunchpadsContext = React.createContext<LaunchpadContextData>(\n {} as LaunchpadContextData\n);\n\nexport const useLaunchpadContext = (): LaunchpadContextData =>\n React.useContext(LaunchpadsContext);\n","import React, { useCallback, useEffect, useMemo, useState } from \"react\";\nimport { pick } from \"lodash\";\nimport classNames from \"classnames\";\nimport { WrappedIcon, WrappedLink } from \"./wrapped-bricks\";\nimport { useLaunchpadContext } from \"./LaunchpadContext\";\nimport type {\n MenuItemData,\n MenuItemDataNormal,\n SidebarMenuItemData,\n} from \"./interfaces\";\n\nexport interface MenuGroupProps {\n name: string;\n items: MenuItemData[];\n}\n\nexport function MenuGroup({ name, items }: MenuGroupProps) {\n return (\n <li className=\"menu-group\">\n <div className=\"menu-group-label\">{name}</div>\n <ul className=\"menu\">\n {items.map((item) =>\n item.type === \"dir\" ? (\n <MenuItemFolder\n key={`${item.type}-${item.id}`}\n name={item.name}\n items={item.items}\n />\n ) : (\n <MenuItem key={`${item.type}-${item.id}`} item={item} />\n )\n )}\n </ul>\n </li>\n );\n}\n\nexport interface MenuItemProps {\n item: MenuItemDataNormal;\n}\n\nfunction MenuItem({ item }: MenuItemProps) {\n const { loadingFavorites, pushRecentVisit, toggleStar, isStarred } =\n useLaunchpadContext();\n\n const starred = useMemo(() => isStarred(item), [isStarred, item]);\n\n const handleStarClick = useCallback(() => {\n toggleStar(item);\n }, [item, toggleStar]);\n\n const handleClick = useCallback(() => {\n pushRecentVisit(item);\n }, [item, pushRecentVisit]);\n\n return (\n <li\n className={classNames(\"menu-item\", {\n starred,\n \"can-star\": !loadingFavorites,\n })}\n >\n <WrappedLink\n onClick={handleClick}\n {...(item.type === \"app\"\n ? {\n url: item.url,\n }\n : {\n href: item.url,\n target: \"_blank\",\n })}\n >\n <WrappedIcon\n className=\"menu-icon\"\n lib=\"easyops\"\n icon=\"micro-app-center\"\n {...(item.menuIcon?.lib && item.menuIcon.icon\n ? (pick(item.menuIcon, [\n \"lib\",\n \"icon\",\n \"theme\",\n \"category\",\n \"prefix\",\n ]) as any)\n : null)}\n />\n <span className=\"menu-item-label\">{item.name}</span>\n </WrappedLink>\n <WrappedIcon\n lib=\"fa\"\n prefix={starred ? \"fas\" : \"far\"}\n icon=\"star\"\n className=\"menu-item-star\"\n title={starred ? \"取消收藏\" : \"收藏\"}\n onClick={handleStarClick}\n />\n </li>\n );\n}\n\nexport interface SidebarMenuItemProps {\n item: SidebarMenuItemData;\n}\n\nexport function SidebarMenuItem({ item }: SidebarMenuItemProps) {\n const { pushRecentVisit, toggleStar } = useLaunchpadContext();\n\n const handleClick = useCallback(() => {\n if (item.type !== \"link\") {\n pushRecentVisit(item);\n }\n }, [item, pushRecentVisit]);\n\n const handleRemoveStar = useCallback(() => {\n toggleStar(item);\n }, [item, toggleStar]);\n\n return (\n <li className=\"sidebar-menu-item\">\n <WrappedLink\n onClick={handleClick}\n {...(item.type === \"app\"\n ? {\n url: item.url,\n }\n : {\n href: item.url,\n target: \"_blank\",\n })}\n >\n <WrappedIcon\n className={`sidebar-menu-icon`}\n lib=\"easyops\"\n icon=\"micro-app-center\"\n {...(item.menuIcon?.lib && item.menuIcon.icon\n ? (pick(item.menuIcon, [\n \"lib\",\n \"icon\",\n \"theme\",\n \"category\",\n \"prefix\",\n ]) as any)\n : null)}\n />\n <span className=\"menu-item-label\">{item.name}</span>\n </WrappedLink>\n <WrappedIcon\n lib=\"fa\"\n icon=\"xmark\"\n className=\"menu-item-remove\"\n onClick={handleRemoveStar}\n />\n </li>\n );\n}\n\nexport interface MenuItemFolderProps {\n name: string;\n items: MenuItemDataNormal[];\n}\n\nfunction MenuItemFolder({ name, items }: MenuItemFolderProps) {\n const { searching } = useLaunchpadContext();\n const [expanded, setExpanded] = useState(false);\n const [searchingExpanded, setSearchingExpanded] = useState(false);\n\n const toggle = useCallback(() => {\n // Use separated expanded states for searching and non-searching.\n if (searching) {\n setSearchingExpanded((previous) => !previous);\n } else {\n setExpanded((previous) => !previous);\n }\n }, [searching]);\n\n useEffect(() => {\n // Each time when start searching, set it as expanded.\n setSearchingExpanded(true);\n }, [searching]);\n\n const actualExpanded = searching ? searchingExpanded : expanded;\n\n return (\n <li className=\"menu-item folder\">\n <WrappedLink onClick={toggle}>\n <WrappedIcon\n lib=\"fa\"\n prefix=\"far\"\n icon=\"folder-open\"\n className=\"menu-icon\"\n />\n <span className=\"menu-item-label\">{name}</span>\n <WrappedIcon\n lib=\"antd\"\n icon={actualExpanded ? \"up\" : \"down\"}\n className=\"menu-item-toggle\"\n />\n </WrappedLink>\n <ul className={classNames(\"sub-menu\", { expanded: actualExpanded })}>\n {items.map((item) => (\n <MenuItem key={`${item.type}-${item.id}`} item={item} />\n ))}\n </ul>\n </li>\n );\n}\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:root{--eo-launchpad-v2-background:#fff;--eo-launchpad-v2-menu-icon-color:#8c8c8c}html[data-theme=\"dark\"],\nhtml[data-theme=\"dark-v2\"]{--eo-launchpad-v2-background:#26262a;--eo-launchpad-v2-menu-icon-color:rgba(255,255,255,0.45)}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.platform-category-name,\n.platform-category-sidebar-menu-item-label,\n.platform-item-name,\n.platform-item-description{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.platform-category-sidebar-menu-item{display:flex;gap:8px;align-items:center;padding:0px 12px 0px 16px}.platform-category-sidebar-menu-item > eo-link{display:block;min-width:0px;color:var(--color-header-text);cursor:pointer}.platform-category-sidebar-menu-item > eo-link:hover,\n.platform-category-sidebar-menu-item\n > eo-link:hover\n .platform-category-sidebar-menu-icon{color:var(--color-brand-hover)}.platform-category-sidebar-menu-item > eo-link.active,\n.platform-category-sidebar-menu-item\n > eo-link.active\n .platform-category-sidebar-menu-icon{color:var(--color-brand-active)}.platform-category-sidebar-menu-item > eo-link::part(link){height:20px;display:flex;align-items:center;gap:8px}.platform-category-sidebar-menu-icon{color:var(--left-sidebar-item-collapsed-icon-color)}.platform-category-name{font-size:18px;font-weight:500;color:var(--text-color-secondary);flex-shrink:0}.platform-items{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:0 54px;gap:0 54px}.platform-items > li{min-width:0}.platform-items > li > eo-link{width:100%;cursor:pointer}.platform-item{padding:12px 0;display:flex;flex-direction:column}.platform-item:hover .platform-item-icon,\n.platform-item:hover .platform-item-name{color:var(--color-brand-hover)}.platform-item-title{display:flex;align-items:center;margin-bottom:4px}.platform-item-icon{margin-right:8px;font-size:14px;color:var(--text-color-secondary);flex-shrink:0}.platform-item-name{font-weight:500;color:var(--text-color-title);line-height:18px}.platform-item-description{margin-left:22px;color:var(--text-color-secondary);line-height:18px}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:inline-block;width:32px;height:32px;--eo-launchpad-v2-max-height:calc(100vh - var(--app-bar-height) - 36px)}:host([hidden]){display:none}.launchpad-button{width:100%;height:100%;display:flex;justify-content:center;align-items:center;color:#999;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;border-radius:3px}.launchpad-button:hover,\n.launchpad-button.active{background-color:var(--color-fill-bg-base-1)}.launchpad-button.active{color:var(--color-brand)}.mask{position:fixed;top:0;bottom:0;left:0;right:0;z-index:1;display:none}.mask.active{display:block}.launchpad{display:none;position:absolute;margin-top:4px;z-index:1;width:1110px;max-width:calc(100vw - 100px);height:var(--eo-launchpad-v2-max-height);background-color:var(--eo-launchpad-v2-background);border:1px solid var(--color-text-divider-line);border-radius:6px;box-shadow:var(--fullscreen-overlay-shadow)}.launchpad.active{display:flex}.sidebar{width:190px;display:flex;flex-direction:column;background:var(--color-fill-bg-base-3);min-width:0;background-size:205px 205px;background-repeat:no-repeat;background-position:left 52px bottom 27px}.sidebar > *:not(:last-child){border-bottom:1px solid var(--stroke-color-default)}.quick-nav-label,\n.platform-nav-label,\n.solution-nav-label,\n.scenario-nav-label,\n.menu-group-label,\n.menu-item-label,\n.recent-visits span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-menu,\n.menu-groups,\n.menu,\n.sub-menu,\n.recent-visits,\n.platform-items{list-style:none;margin:0;padding:0}.sidebar-menu,\n.menu,\n.sub-menu{display:flex;flex-direction:column;gap:14px}.sidebar-menu-item > eo-link,\n.menu-item > eo-link,\n.recent-visits eo-link{display:block;min-width:0}.sidebar-menu-item > eo-link::part(link),\n.menu-item > eo-link::part(link){height:20px;display:flex;align-items:center;gap:8px;color:var(--color-header-text)}.sidebar-menu-item{padding:0 12px 0 16px;justify-content:space-between}.sidebar-menu-icon{color:var(--left-sidebar-item-collapsed-icon-color)}.union{flex:1;display:flex;flex-direction:column;overflow-y:auto}.quick-nav,\n.platform-nav{display:flex;flex-direction:column;padding:20px 0 24px}.platform-nav{padding:0 0 24px}.quick-nav-label,\n.platform-nav-label{color:var(--color-header-text);font-weight:500;margin-bottom:14px;padding:0 16px}.quick-nav-menu,\n.platform-nav-menu{flex:1}.scenario-nav > eo-link,\n.solution-nav > eo-link{display:block;cursor:pointer}.scenario-nav > eo-link::part(link),\n.solution-nav > eo-link::part(link){padding:10px 16px;display:flex;justify-content:space-between;align-items:center}.solution-nav-label,\n.scenario-nav-label{flex:1;color:var(--color-header-text);font-weight:500}.solution-nav > eo-icon,\n.scenario-nav > eo-icon{font-size:14px;color:var(--text-color-default)}.content{flex:1;padding:20px 24px 24px;min-width:0;overflow-y:auto;display:flex;flex-direction:column;gap:24px}.search-box{border-bottom:1px solid var(--color-text-divider-line);display:flex;gap:8px;align-items:center;padding:10px 0;margin-top:-10px;cursor:text}.search-icon{color:var(--color-auxiliary-text)}.search-input{padding:0;margin:0;border:none;outline:none;color:inherit;background-color:transparent;font-size:14px;line-height:22px;flex:1;min-width:0}.search-input::placeholder{color:var(--color-disabled-text);opacity:1}.search-clear{display:none;color:var(--color-secondary-text);cursor:pointer}.search-clear.searching{display:inline-block}.search-clear:hover{color:var(--color-auxiliary-text)}.menu-groups,\n.recent-visits{grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}.menu-groups{display:grid;grid-gap:32px 8px;gap:32px 8px}.menu-group{padding-right:12px;color:var(--color-header-text)}.menu-group-label{font-size:var(--card-title-font-size);font-weight:500;color:var(--color-header-text);margin-bottom:14px}.sidebar-menu-item,\n.menu-item:not(.folder){display:flex;gap:8px;align-items:center}.menu-icon{color:var(--eo-launchpad-v2-menu-icon-color)}.menu-item.active,\n.menu-item.active .menu-icon{color:var(--color-brand-active)}.sub-menu:not(.expanded){display:none}.sub-menu{margin-top:14px;margin-left:8px;border-left:1px solid var(--color-text-divider-line);padding-left:15px}.menu-item-remove,\n.menu-item-star{cursor:pointer}.menu-item-remove,\n.menu-item-star,\n.menu-item-toggle{color:var(--color-secondary-text)}.sidebar-menu-item:not(:hover) .menu-item-remove{display:none}.menu-item-remove:hover{color:var(--color-normal-text)}.menu-item-remove:active{color:var(--color-strong-text)}.menu-item-star{display:none}.can-star.starred > .menu-item-star,\n.can-star:hover > .menu-item-star{display:inline-block}.can-star:not(.starred) > .menu-item-star{color:var(--color-secondary-text)}.starred > .menu-item-star{color:var(--palette-yellow-6)}.recent-visits-label{margin-bottom:12px;font-size:var(--card-title-font-size);color:var(--color-header-text);font-weight:500}.recent-visits{display:grid;grid-gap:8px;gap:8px}.recent-visits eo-link::part(link){background-color:var(--color-fill-bg-base-1);border-radius:3px;color:var(--color-header-text);display:flex;align-items:center;height:24px;padding:0 8px}.sidebar-menu-item > eo-link:hover::part(link),\n.sidebar-menu-item > eo-link:hover .sidebar-menu-icon,\n.menu-item > eo-link:hover::part(link),\n.menu-item > eo-link:hover .menu-icon,\n.menu-item > eo-link:hover .menu-item-toggle,\n.recent-visits eo-link:hover::part(link){color:var(--color-brand-hover)}.spinner{display:flex;justify-content:center;align-items:center;color:var(--theme-doderblue-color);flex:1;font-size:30px}.empty,\n.loading > :not(.spinner){display:none}@supports not (inset: 0){.content,\n .search-box,\n .sidebar-menu,\n .menu,\n .sub-menu,\n .sidebar-menu-item,\n .menu-item:not(.folder),\n .sidebar-menu-item > eo-link::part(link),\n .menu-item > eo-link::part(link){gap:0}.sidebar-menu > :not(:first-child),\n .menu > :not(:first-child),\n .sub-menu > :not(:first-child){margin-top:14px}.search-icon,\n .sidebar-menu-icon,\n .menu-icon{margin-right:8px}.search-clear,\n .menu-item-star,\n .menu-item-toggle{margin-left:8px}.content > :not(:last-child){margin-bottom:24px}}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","\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 _asyncToGenerator from \"@babel/runtime/helpers/asyncToGenerator\";\nimport { http } from \"@next-core/http\";\n/**\n * @description 搜索实例V3 (支持多属性排序)\n * @endpoint POST /v3/object/:objectId/instance/_search\n */\nexport var InstanceApi_postSearchV3 = /*#__PURE__*/function () {\n var _ref = _asyncToGenerator(function* (objectId, data, options) {\n return (/**! @contract easyops.api.cmdb.instance.PostSearchV3@1.1.0 */(yield http.post(\"api/gateway/cmdb.instance.PostSearchV3/v3/object/\".concat(objectId, \"/instance/_search\"), data, options)).data\n );\n });\n return function InstanceApi_postSearchV3(_x, _x2, _x3) {\n return _ref.apply(this, arguments);\n };\n}();\n//# sourceMappingURL=postSearchV3.js.map","import _asyncToGenerator from \"@babel/runtime/helpers/asyncToGenerator\";\nimport { http } from \"@next-core/http\";\n/**\n * @description 新增我的收藏V2\n * @endpoint POST /api/v2/launchpad/collection\n */\nexport var LaunchpadApi_createCollectionV2 = /*#__PURE__*/function () {\n var _ref = _asyncToGenerator(function* (data, options) {\n return (/**! @contract easyops.api.user_service.launchpad.CreateCollectionV2@1.0.0 */(yield http.post(\"api/gateway/user_service.launchpad.CreateCollectionV2/api/v2/launchpad/collection\", data, options)).data\n );\n });\n return function LaunchpadApi_createCollectionV2(_x, _x2) {\n return _ref.apply(this, arguments);\n };\n}();\n//# sourceMappingURL=createCollectionV2.js.map","import { http } from \"@next-core/http\";\n\n/**\n * @description 删除我的收藏V2\n * @endpoint DELETE /api/v2/launchpad/collection/:instanceId\n */\nexport var LaunchpadApi_deleteCollectionV2 = (instanceId, options) => /**! @contract easyops.api.user_service.launchpad.DeleteCollectionV2@1.0.0 */http.delete(\"api/gateway/user_service.launchpad.DeleteCollectionV2/api/v2/launchpad/collection/\".concat(instanceId), options);\n//# sourceMappingURL=deleteCollectionV2.js.map","import _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\nimport _asyncToGenerator from \"@babel/runtime/helpers/asyncToGenerator\";\nimport { http } from \"@next-core/http\";\n/**\n * @description 获取我的收藏列表V2\n * @endpoint LIST /api/v2/launchpad/collection\n */\nexport var LaunchpadApi_listCollectionV2 = /*#__PURE__*/function () {\n var _ref = _asyncToGenerator(function* (params, options) {\n return (/**! @contract easyops.api.user_service.launchpad.ListCollectionV2@1.0.0 */(yield http.get(\"api/gateway/user_service.launchpad.ListCollectionV2/api/v2/launchpad/collection\", _objectSpread(_objectSpread({}, options), {}, {\n params\n }))).data\n );\n });\n return function LaunchpadApi_listCollectionV2(_x, _x2) {\n return _ref.apply(this, arguments);\n };\n}();\n//# sourceMappingURL=listCollectionV2.js.map"],"names":["PlatformCategorySidebarMenuItem","_ref","_item$icon","item","active","onClick","React","className","WrappedLink","type","classNames","WrappedIcon","_extends","lib","category","icon","pick","name","PlatformItem","_ref2","_item$menuIcon","url","href","target","menuIcon","description","Launchpad","searchInputRef","useRef","handleClickSearchBox","useCallback","_searchInputRef$curre","current","focus","platform","setPlatform","useState","showPlatformCategory","_getRuntime","getRuntime","getFeatureFlags","showScenarioCenter","_getRuntime2","showSolutionCenter","_getRuntime3","loading","q","setQ","menuGroups","favorites","loadingFavorites","recentVisits","pushRecentVisit","toggleStar","isStarred","platformCategories","useLaunchpadInfo","searching","handleSearch","e","value","clearSearch","useEffect","_searchInputRef$curre2","handlePlatformCategoryClick","id","curCategory","useMemo","find","v","LaunchpadsContext","Provider","map","index","SidebarMenuItem","key","theme","Loading","ref","placeholder","onChange","empty","length","group","MenuGroup","items","spinning","useLaunchpadContext","MenuItemFolder","concat","MenuItem","starred","handleStarClick","handleClick","prefix","title","_ref3","_item$menuIcon2","handleRemoveStar","_ref4","expanded","setExpanded","searchingExpanded","setSearchingExpanded","toggle","previous","actualExpanded","___CSS_LOADER_EXPORT___","push","module","toString","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","InstanceApi_postSearchV3","objectId","data","http","post","_x","_x2","_x3","apply","this","arguments","LaunchpadApi_createCollectionV2","LaunchpadApi_deleteCollectionV2","instanceId","delete","LaunchpadApi_listCollectionV2","params","get"],"sourceRoot":""}
@@ -1,2 +1,2 @@
1
- "use strict";(self.webpackChunk_next_bricks_nav=self.webpackChunk_next_bricks_nav||[]).push([[6176],{6176:(e,t,n)=>{n.d(t,{sK:()=>G,yp:()=>q,sC:()=>V,m1:()=>J});var r,i=n(3028),a=n(4795),o=n(8657),s=n(6594),c=n(738),u=n(2890),p=n(2301),l=n(2892),d=n(2106),m=n(4008),f=n(8685),h=n(5003),v=n(1719),I=10,y=10,g=n(107),w=n(5178);function Z(){return(Z=(0,a.Z)((function*(){var e=yield(0,d.u)({},{interceptorParams:{ignoreLoadingBar:!0},noAbortOnRouteChange:!0}),t=new Map;for(var n of e.storyboards){var r=n.app;r.localeName=(0,g.d)(r.locales,r.name),t.set(r.id,r)}var a=[],o=new Map;for(var s of e.desktops){var c=[];for(var u of s.items)switch(u.type){case"app":var p=t.get(u.id);p&&c.push((0,i.Z)((0,i.Z)({},u),{},{name:p.localeName,url:p.homepage,menuIcon:p.menuIcon}));break;case"custom":c.push(u),o.set(u.id,u);break;case"dir":var l=[];for(var m of u.items)if("app"===m.type){var f=t.get(m.id);f&&l.push((0,i.Z)((0,i.Z)({},m),{},{name:f.localeName,url:f.homepage,menuIcon:f.menuIcon}))}else"custom"===m.type&&(l.push(m),o.set(m.id,m));l.length>0&&c.push((0,i.Z)((0,i.Z)({},u),{},{items:l}))}c.length>0&&a.push((0,i.Z)((0,i.Z)({},s),{},{items:c}))}return{menuGroups:a,microAppsById:t,customLinksById:o}}))).apply(this,arguments)}function k(){return C.apply(this,arguments)}function C(){return(C=(0,a.Z)((function*(){return(yield(0,m.$)({page:1,pageSize:I},{interceptorParams:{ignoreLoadingBar:!0},noAbortOnRouteChange:!0})).list}))).apply(this,arguments)}function b(){return(b=(0,a.Z)((function*(){var e=yield k(),t=[];for(var n of e)if("microApp"===n.type){var r=n.relatedApp;r.localeName=(0,g.d)(r.locales,r.name),t.push({favoriteId:n.instanceId,type:"app",name:r.localeName,id:r.appId,url:r.homepage,instanceId:r.instanceId,menuIcon:r.menuIcon})}else if("customItem"===n.type){var i=n.relatedCustomItem;t.push({favoriteId:n.instanceId,type:"custom",name:i.name,id:i.id,url:i.url,menuIcon:i.menuIcon})}else"link"===n.type&&t.push({favoriteId:n.instanceId,type:"link",name:n.name,url:n.link,menuIcon:n.icon});return t}))).apply(this,arguments)}function F(){return(F=(0,a.Z)((function*(e){return(0,f.i)({type:"app"===e.type?"microApp":"customItem",relatedInstanceId:e.instanceId},{interceptorParams:{ignoreLoadingBar:!0}})}))).apply(this,arguments)}function S(){return(S=(0,a.Z)((function*(e){return e.favoriteId?(0,h.I)(e.favoriteId):k().then((t=>{var n,r=null===(n=t.find((t=>{var n,r;return"app"===e.type?"microApp"===t.type&&(null===(n=t.relatedApp)||void 0===n?void 0:n.appId)===e.id:"custom"===e.type&&(null===(r=t.relatedCustomItem)||void 0===r?void 0:r.id)===e.id})))||void 0===n?void 0:n.instanceId;if(r)return(0,h.I)(r);console.error("Menu item to unstar not found:",e)}))}))).apply(this,arguments)}function A(){return(A=(0,a.Z)((function*(){var e=(yield(0,v.W)("MICRO_APP_CATEGORY@EASYOPS",{fields:["id","type","name","icon","order","platformApps.appId","platformApps.name","platformApps.homepage","platformApps.description","platformApps.menuIcon","platformApps.locales","platformApps._object_id","platformApps.@.order","platformItems.id","platformItems.name","platformItems.url","platformItems.description","platformItems.menuIcon","platformItems._object_id","platformItems.@.order"],page:1,page_size:300,query:{type:"platform"}})).list,t=null==e?void 0:e.map((e=>{var t=e.platformApps.map((e=>{var t;return{type:"app",name:(0,g.d)(e.locales,e.name),id:e.appId,url:e.homepage,menuIcon:e.menuIcon,description:e.description,instanceId:e.instanceId,order:null===(t=e["@"])||void 0===t?void 0:t.order}})),n=e.platformItems.map((e=>{var t;return{type:"custom",name:e.name,id:e.id,url:e.url,menuIcon:e.menuIcon,description:e.description,instanceId:e.instanceId,order:null===(t=e["@"])||void 0===t?void 0:t.order}})),r=(0,w.sortBy)([...t,...n],"order");return{instanceId:e.instanceId,id:e.id,name:e.name,icon:e.icon,order:e.order,items:r}}));return[{id:"#all",name:"全部",icon:{lib:"easyops",category:"second-menu",icon:"sprint-planning-second-menu"},items:[]},...(0,w.sortBy)(t,"order")]}))).apply(this,arguments)}function B(e,t){return e.id.toLowerCase().includes(t)||e.name.toLowerCase().includes(t)||e.description&&e.description.toLowerCase().includes(t)?e:null}function P(e,t){return e.id.toLowerCase().includes(t)||e.name.toLowerCase().includes(t)||e.description&&e.description.toLowerCase().includes(t)?e:null}var E="launchpad-recent-visits:".concat(null===(r=c.auth.getAuth())||void 0===r?void 0:r.org),L=new u.o(localStorage),_=[],x=new Map,O=new Map,M=!1,N=[],R=!1,T=[],j=!1,q=new p.i((0,a.Z)((function*(){({menuGroups:_,microAppsById:x,customLinksById:O}=yield function(){return Z.apply(this,arguments)}()),M=!0}))),G=new p.i((0,a.Z)((function*(){N=yield function(){return b.apply(this,arguments)}(),R=!0}))),V=new p.i((0,a.Z)((function*(){T=yield function(){return A.apply(this,arguments)}(),j=!0}))),z=e=>(0,l.c0)({type:"error",message:(0,s.httpErrorToString)(e)});function J(e){var[t,n]=(0,o.useState)(_),[r,c]=(0,o.useState)(x),[u,p]=(0,o.useState)(O),[d,m]=(0,o.useState)(""),[f,h]=(0,o.useState)(!M),[v,g]=(0,o.useState)(!R),[w,Z]=(0,o.useState)(!j),[k,C]=(0,o.useState)([]),[b,A]=(0,o.useState)([]),[J,H]=(0,o.useState)(N),[K,Q]=(0,o.useState)(T);(0,o.useEffect)((()=>{e&&!f&&(n(_),c(x),p(O))}),[e,f]),(0,o.useEffect)((()=>{e&&!v&&H(N)}),[e,v]),(0,o.useEffect)((()=>{e&&!w&&Q(T)}),[e,w]),(0,o.useEffect)((()=>{var t;e&&C(null!==(t=L.getItem(E))&&void 0!==t?t:[])}),[e]),(0,o.useEffect)((()=>{if(e){var t=function(){var e=(0,a.Z)((function*(){try{yield q.fetch(),h(!1)}catch(e){(0,s.handleHttpError)(e)}}));return function(){return e.apply(this,arguments)}}();t()}}),[e]),(0,o.useEffect)((()=>{if(e){var t=function(){var e=(0,a.Z)((function*(){try{yield G.fetch(),g(!1)}catch(e){g(!1),z(e)}}));return function(){return e.apply(this,arguments)}}();t()}}),[e]),(0,o.useEffect)((()=>{var t;if(e&&null!==(t=(0,s.getRuntime)())&&void 0!==t&&t.getFeatureFlags()["launchpad-show-app-category"]){var n=function(){var e=(0,a.Z)((function*(){try{yield V.fetch(),Z(!1)}catch(e){Z(!1),z(e)}}));return function(){return e.apply(this,arguments)}}();n()}}),[e]),(0,o.useEffect)((()=>{if(!f){var e=k.map((e=>{if("app"===e.type){var t=r.get(e.id);return t?{type:"app",name:t.localeName,id:t.id,url:t.homepage,instanceId:t.instanceId,menuIcon:t.menuIcon}:null}return u.get(e.id)})).filter(Boolean);A(e)}}),[u,f,r,k]);var W=(0,o.useCallback)((e=>{var t,{type:n,id:r}=e,i=null!==(t=L.getItem(E))&&void 0!==t?t:[],a=i.findIndex((e=>e.type===n&&e.id===r));a>-1&&i.splice(a,1),i.unshift({type:n,id:r}),i.length>y&&i.pop(),L.setItem(E,i)}),[]),$=(0,o.useCallback)((e=>J.some((t=>Y(e,t)))),[J]),D=(0,o.useCallback)((e=>{var t,n=J.findIndex((t=>"link"===e.type?t.favoriteId===e.favoriteId:Y(e,t)));if(n>-1){var r=J[n];t=J.slice(0,n).concat(J.slice(n+1)),function(e){return S.apply(this,arguments)}(r).catch(z)}else{if(J.length>=I)return void(0,l.vC)({type:"warn",title:"收藏数量已达上限",content:"当前收藏链接数量已达上限(".concat(I,"个),请删除部分收藏后再添加。")});var a=(0,i.Z)({},e);t=J.concat(a),function(e){return F.apply(this,arguments)}(e).then((e=>{e&&(a.favoriteId=e.instanceId)}),z)}H(t),N=t}),[J]),U=(0,o.useMemo)((()=>function(e,t){if(!t)return e;var n=t.toLowerCase();return e.map((e=>(0,i.Z)((0,i.Z)({},e),{},{items:e.items.map((e=>{switch(e.type){case"app":return B(e,n);case"custom":return P(e,n);case"dir":var t=e.items.map((e=>"app"===e.type?B(e,n):"custom"===e.type?P(e,n):null)).filter(Boolean);return t.length>0?(0,i.Z)((0,i.Z)({},e),{},{items:t}):null}})).filter(Boolean)}))).filter((e=>e.items.length>0))}(t,d)),[t,d]),X=(0,o.useMemo)((()=>function(e,t){if(!t)return e;var n=t.toLowerCase();return e.map((e=>(0,i.Z)((0,i.Z)({},e),{},{items:e.items.map((e=>{switch(e.type){case"app":return B(e,n);case"custom":return P(e,n)}})).filter(Boolean)})))}(K,d)),[K,d]);return{loading:f,q:d,setQ:m,menuGroups:U,loadingFavorites:v,loadingPlatformCategories:w,favorites:J,recentVisits:b,pushRecentVisit:W,isStarred:$,toggleStar:D,platformCategories:X}}function Y(e,t){return e.instanceId&&t.instanceId?t.instanceId===e.instanceId:t.type===e.type&&t.id===e.id}},2892:(e,t,n)=>{n.d(t,{V3:()=>a,c0:()=>c,kk:()=>o,vC:()=>s});var r=n(8835),i=n(394),a=(0,r.wrapBrick)("eo-icon"),o=(0,r.wrapBrick)("eo-link"),s=(0,i.unwrapProvider)("basic.show-dialog"),c=(0,i.unwrapProvider)("basic.show-notification")},2301:(e,t,n)=>{n.d(t,{i:()=>a});var r=n(4795),i=n(6666);class a{constructor(e){(0,i.Z)(this,"preFetchId",null),(0,i.Z)(this,"preFetchScheduled",!1),(0,i.Z)(this,"firstFetchPromise",null),(0,i.Z)(this,"isFetching",!1),(0,i.Z)(this,"task",void 0),this.task=e}schedulePrefetch(){var e=this;if(!this.preFetchScheduled){this.preFetchScheduled=!0;var t=function(){var t=(0,r.Z)((function*(){e.preFetchId=null,e.fetch()}));return function(){return t.apply(this,arguments)}}();"function"==typeof window.requestIdleCallback?this.preFetchId=window.requestIdleCallback(t):this.preFetchId=setTimeout(t)}}fetch(e){var t;return this.preFetchId&&("function"==typeof window.cancelIdleCallback?cancelIdleCallback(this.preFetchId):clearTimeout(this.preFetchId),this.preFetchId=null),this.isFetching&&!e||(this.isFetching=!0,(t=this.task()).catch((e=>{console.error(e),this.firstFetchPromise=null})).finally((()=>{this.isFetching=!1})),this.firstFetchPromise||(this.firstFetchPromise=t),!e)?this.firstFetchPromise:t}}},107:(e,t,n)=>{n.d(t,{d:()=>i});var r=n(3484);function i(e,t){var n;if(!e)return t;var i=Object.fromEntries(Object.entries(e).filter((e=>{var[t,n]=e;return n.name})).map((e=>{var[t,n]=e;return[t,n.name]})));return null!==(n=(0,r.i18nText)(i))&&void 0!==n?n:t}},2890:(e,t,n)=>{n.d(t,{o:()=>r});class r{constructor(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"brick-next-";this.storage=e,this.prefix=t}setItem(e,t){this.storage.setItem(this.prefix+e,JSON.stringify(t))}getItem(e){return JSON.parse(this.storage.getItem(this.prefix+e))}removeItem(e){return this.storage.removeItem(this.prefix+e)}clear(){return this.storage.clear()}}}}]);
2
- //# sourceMappingURL=6176.84035683.js.map
1
+ "use strict";(self.webpackChunk_next_bricks_nav=self.webpackChunk_next_bricks_nav||[]).push([[6176],{6176:(e,t,n)=>{n.d(t,{sK:()=>G,yp:()=>q,sC:()=>V,m1:()=>J});var r,i=n(3028),a=n(4795),o=n(8657),s=n(6594),c=n(738),u=n(2890),p=n(2301),l=n(2892),d=n(2106),m=n(4008),f=n(8685),h=n(5003),v=n(1719),I=10,y=10,g=n(107),w=n(5178);function Z(){return(Z=(0,a.Z)((function*(){var e=yield(0,d.u)({},{interceptorParams:{ignoreLoadingBar:!0},noAbortOnRouteChange:!0}),t=new Map;for(var n of e.storyboards){var r=n.app;r.localeName=(0,g.d)(r.locales,r.name),t.set(r.id,r)}var a=[],o=new Map;for(var s of e.desktops){var c=[];for(var u of s.items)switch(u.type){case"app":var p=t.get(u.id);p&&c.push((0,i.Z)((0,i.Z)({},u),{},{name:p.localeName,url:p.homepage,menuIcon:p.menuIcon}));break;case"custom":c.push(u),o.set(u.id,u);break;case"dir":var l=[];for(var m of u.items)if("app"===m.type){var f=t.get(m.id);f&&l.push((0,i.Z)((0,i.Z)({},m),{},{name:f.localeName,url:f.homepage,menuIcon:f.menuIcon}))}else"custom"===m.type&&(l.push(m),o.set(m.id,m));l.length>0&&c.push((0,i.Z)((0,i.Z)({},u),{},{items:l}))}c.length>0&&a.push((0,i.Z)((0,i.Z)({},s),{},{items:c}))}return{menuGroups:a,microAppsById:t,customLinksById:o}}))).apply(this,arguments)}function k(){return C.apply(this,arguments)}function C(){return(C=(0,a.Z)((function*(){return(yield(0,m.$)({page:1,pageSize:I},{interceptorParams:{ignoreLoadingBar:!0},noAbortOnRouteChange:!0})).list}))).apply(this,arguments)}function b(){return(b=(0,a.Z)((function*(){var e=yield k(),t=[];for(var n of e)if("microApp"===n.type){var r=n.relatedApp;r.localeName=(0,g.d)(r.locales,r.name),t.push({favoriteId:n.instanceId,type:"app",name:r.localeName,id:r.appId,url:r.homepage,instanceId:r.instanceId,menuIcon:r.menuIcon})}else if("customItem"===n.type){var i=n.relatedCustomItem;t.push({favoriteId:n.instanceId,type:"custom",name:i.name,id:i.id,url:i.url,menuIcon:i.menuIcon})}else"link"===n.type&&t.push({favoriteId:n.instanceId,type:"link",name:n.name,url:n.link,menuIcon:n.icon});return t}))).apply(this,arguments)}function F(){return(F=(0,a.Z)((function*(e){return(0,f.i)({type:"app"===e.type?"microApp":"customItem",relatedInstanceId:e.instanceId},{interceptorParams:{ignoreLoadingBar:!0}})}))).apply(this,arguments)}function S(){return(S=(0,a.Z)((function*(e){return e.favoriteId?(0,h.I)(e.favoriteId):k().then((t=>{var n,r=null===(n=t.find((t=>{var n,r;return"app"===e.type?"microApp"===t.type&&(null===(n=t.relatedApp)||void 0===n?void 0:n.appId)===e.id:"custom"===e.type&&(null===(r=t.relatedCustomItem)||void 0===r?void 0:r.id)===e.id})))||void 0===n?void 0:n.instanceId;if(r)return(0,h.I)(r);console.error("Menu item to unstar not found:",e)}))}))).apply(this,arguments)}function A(){return(A=(0,a.Z)((function*(){var e=(yield(0,v.W)("MICRO_APP_CATEGORY@EASYOPS",{fields:["id","type","name","icon","order","platformApps.appId","platformApps.name","platformApps.homepage","platformApps.description","platformApps.menuIcon","platformApps.locales","platformApps._object_id","platformApps.@.order","platformItems.id","platformItems.name","platformItems.url","platformItems.description","platformItems.menuIcon","platformItems._object_id","platformItems.@.order"],page:1,page_size:300,query:{type:"platform"}})).list,t=null==e?void 0:e.map((e=>{var t=e.platformApps.map((e=>{var t;return{type:"app",name:(0,g.d)(e.locales,e.name),id:e.appId,url:e.homepage,menuIcon:e.menuIcon,description:e.description,instanceId:e.instanceId,order:null===(t=e["@"])||void 0===t?void 0:t.order}})),n=e.platformItems.map((e=>{var t;return{type:"custom",name:e.name,id:e.id,url:e.url,menuIcon:e.menuIcon,description:e.description,instanceId:e.instanceId,order:null===(t=e["@"])||void 0===t?void 0:t.order}})),r=(0,w.sortBy)([...t,...n],"order");return{instanceId:e.instanceId,id:e.id,name:e.name,icon:e.icon,order:e.order,items:r}}));return[{id:"#all",name:"全部",icon:{lib:"easyops",category:"second-menu",icon:"sprint-planning-second-menu"},items:[]},...(0,w.sortBy)(t,"order")]}))).apply(this,arguments)}function B(e,t){return e.id.toLowerCase().includes(t)||e.name.toLowerCase().includes(t)||e.description&&e.description.toLowerCase().includes(t)?e:null}function P(e,t){return e.id.toLowerCase().includes(t)||e.name.toLowerCase().includes(t)||e.description&&e.description.toLowerCase().includes(t)?e:null}var E="launchpad-recent-visits:".concat(null===(r=c.auth.getAuth())||void 0===r?void 0:r.org),L=new u.o(localStorage),_=[],x=new Map,O=new Map,M=!1,N=[],R=!1,T=[],j=!1,q=new p.i((0,a.Z)((function*(){({menuGroups:_,microAppsById:x,customLinksById:O}=yield function(){return Z.apply(this,arguments)}()),M=!0}))),G=new p.i((0,a.Z)((function*(){N=yield function(){return b.apply(this,arguments)}(),R=!0}))),V=new p.i((0,a.Z)((function*(){T=yield function(){return A.apply(this,arguments)}(),j=!0}))),z=e=>(0,l.c0)({type:"error",message:(0,s.httpErrorToString)(e)});function J(e){var[t,n]=(0,o.useState)(_),[r,c]=(0,o.useState)(x),[u,p]=(0,o.useState)(O),[d,m]=(0,o.useState)(""),[f,h]=(0,o.useState)(!M),[v,g]=(0,o.useState)(!R),[w,Z]=(0,o.useState)(!j),[k,C]=(0,o.useState)([]),[b,A]=(0,o.useState)([]),[J,H]=(0,o.useState)(N),[K,Q]=(0,o.useState)(T);(0,o.useEffect)((()=>{e&&!f&&(n(_),c(x),p(O))}),[e,f]),(0,o.useEffect)((()=>{e&&!v&&H(N)}),[e,v]),(0,o.useEffect)((()=>{e&&!w&&Q(T)}),[e,w]),(0,o.useEffect)((()=>{var t;e&&C(null!==(t=L.getItem(E))&&void 0!==t?t:[])}),[e]),(0,o.useEffect)((()=>{if(e){var t=function(){var e=(0,a.Z)((function*(){try{yield q.fetch(),h(!1)}catch(e){(0,s.handleHttpError)(e)}}));return function(){return e.apply(this,arguments)}}();t()}}),[e]),(0,o.useEffect)((()=>{if(e){var t=function(){var e=(0,a.Z)((function*(){try{yield G.fetch(),g(!1)}catch(e){g(!1),z(e)}}));return function(){return e.apply(this,arguments)}}();t()}}),[e]),(0,o.useEffect)((()=>{var t;if(e&&null!==(t=(0,s.getRuntime)())&&void 0!==t&&t.getFeatureFlags()["launchpad-show-platform-category"]){var n=function(){var e=(0,a.Z)((function*(){try{yield V.fetch(),Z(!1)}catch(e){Z(!1),z(e)}}));return function(){return e.apply(this,arguments)}}();n()}}),[e]),(0,o.useEffect)((()=>{if(!f){var e=k.map((e=>{if("app"===e.type){var t=r.get(e.id);return t?{type:"app",name:t.localeName,id:t.id,url:t.homepage,instanceId:t.instanceId,menuIcon:t.menuIcon}:null}return u.get(e.id)})).filter(Boolean);A(e)}}),[u,f,r,k]);var W=(0,o.useCallback)((e=>{var t,{type:n,id:r}=e,i=null!==(t=L.getItem(E))&&void 0!==t?t:[],a=i.findIndex((e=>e.type===n&&e.id===r));a>-1&&i.splice(a,1),i.unshift({type:n,id:r}),i.length>y&&i.pop(),L.setItem(E,i)}),[]),$=(0,o.useCallback)((e=>J.some((t=>Y(e,t)))),[J]),D=(0,o.useCallback)((e=>{var t,n=J.findIndex((t=>"link"===e.type?t.favoriteId===e.favoriteId:Y(e,t)));if(n>-1){var r=J[n];t=J.slice(0,n).concat(J.slice(n+1)),function(e){return S.apply(this,arguments)}(r).catch(z)}else{if(J.length>=I)return void(0,l.vC)({type:"warn",title:"收藏数量已达上限",content:"当前收藏链接数量已达上限(".concat(I,"个),请删除部分收藏后再添加。")});var a=(0,i.Z)({},e);t=J.concat(a),function(e){return F.apply(this,arguments)}(e).then((e=>{e&&(a.favoriteId=e.instanceId)}),z)}H(t),N=t}),[J]),U=(0,o.useMemo)((()=>function(e,t){if(!t)return e;var n=t.toLowerCase();return e.map((e=>(0,i.Z)((0,i.Z)({},e),{},{items:e.items.map((e=>{switch(e.type){case"app":return B(e,n);case"custom":return P(e,n);case"dir":var t=e.items.map((e=>"app"===e.type?B(e,n):"custom"===e.type?P(e,n):null)).filter(Boolean);return t.length>0?(0,i.Z)((0,i.Z)({},e),{},{items:t}):null}})).filter(Boolean)}))).filter((e=>e.items.length>0))}(t,d)),[t,d]),X=(0,o.useMemo)((()=>function(e,t){if(!t)return e;var n=t.toLowerCase();return e.map((e=>(0,i.Z)((0,i.Z)({},e),{},{items:e.items.map((e=>{switch(e.type){case"app":return B(e,n);case"custom":return P(e,n)}})).filter(Boolean)})))}(K,d)),[K,d]);return{loading:f,q:d,setQ:m,menuGroups:U,loadingFavorites:v,loadingPlatformCategories:w,favorites:J,recentVisits:b,pushRecentVisit:W,isStarred:$,toggleStar:D,platformCategories:X}}function Y(e,t){return e.instanceId&&t.instanceId?t.instanceId===e.instanceId:t.type===e.type&&t.id===e.id}},2892:(e,t,n)=>{n.d(t,{V3:()=>a,c0:()=>c,kk:()=>o,vC:()=>s});var r=n(8835),i=n(394),a=(0,r.wrapBrick)("eo-icon"),o=(0,r.wrapBrick)("eo-link"),s=(0,i.unwrapProvider)("basic.show-dialog"),c=(0,i.unwrapProvider)("basic.show-notification")},2301:(e,t,n)=>{n.d(t,{i:()=>a});var r=n(4795),i=n(6666);class a{constructor(e){(0,i.Z)(this,"preFetchId",null),(0,i.Z)(this,"preFetchScheduled",!1),(0,i.Z)(this,"firstFetchPromise",null),(0,i.Z)(this,"isFetching",!1),(0,i.Z)(this,"task",void 0),this.task=e}schedulePrefetch(){var e=this;if(!this.preFetchScheduled){this.preFetchScheduled=!0;var t=function(){var t=(0,r.Z)((function*(){e.preFetchId=null,e.fetch()}));return function(){return t.apply(this,arguments)}}();"function"==typeof window.requestIdleCallback?this.preFetchId=window.requestIdleCallback(t):this.preFetchId=setTimeout(t)}}fetch(e){var t;return this.preFetchId&&("function"==typeof window.cancelIdleCallback?cancelIdleCallback(this.preFetchId):clearTimeout(this.preFetchId),this.preFetchId=null),this.isFetching&&!e||(this.isFetching=!0,(t=this.task()).catch((e=>{console.error(e),this.firstFetchPromise=null})).finally((()=>{this.isFetching=!1})),this.firstFetchPromise||(this.firstFetchPromise=t),!e)?this.firstFetchPromise:t}}},107:(e,t,n)=>{n.d(t,{d:()=>i});var r=n(3484);function i(e,t){var n;if(!e)return t;var i=Object.fromEntries(Object.entries(e).filter((e=>{var[t,n]=e;return n.name})).map((e=>{var[t,n]=e;return[t,n.name]})));return null!==(n=(0,r.i18nText)(i))&&void 0!==n?n:t}},2890:(e,t,n)=>{n.d(t,{o:()=>r});class r{constructor(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"brick-next-";this.storage=e,this.prefix=t}setItem(e,t){this.storage.setItem(this.prefix+e,JSON.stringify(t))}getItem(e){return JSON.parse(this.storage.getItem(this.prefix+e))}removeItem(e){return this.storage.removeItem(this.prefix+e)}clear(){return this.storage.clear()}}}}]);
2
+ //# sourceMappingURL=6176.1b27c498.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"chunks/6176.84035683.js","mappings":"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","sources":["webpack:///./src/launchpad-button-v2/constants.ts","webpack:///./src/launchpad-button-v2/api.ts","webpack:///./src/launchpad-button-v2/search.ts","webpack:///./src/launchpad-button-v2/useLaunchpadInfo.ts","webpack:///./src/launchpad-button-v2/wrapped-bricks.ts","webpack:///./src/shared/DeferredService.ts","webpack:///./src/shared/getLocaleName.ts","webpack:///../../src/JsonStorage.ts"],"sourcesContent":["export const FAVORITES_LIMIT = 10;\nexport const RECENT_VISITS_LIMIT = 10;\n","import type { Storyboard } from \"@next-core/types\";\nimport { LaunchpadApi_getLaunchpadInfo } from \"@next-api-sdk/micro-app-standalone-sdk\";\nimport {\n LaunchpadApi_createCollectionV2,\n LaunchpadApi_deleteCollectionV2,\n LaunchpadApi_listCollectionV2,\n} from \"@next-api-sdk/user-service-sdk\";\nimport { InstanceApi_postSearchV3 } from \"@next-api-sdk/cmdb-sdk\";\nimport type {\n FavMenuItem,\n MenuGroupData,\n MenuItemData,\n MenuItemDataApp,\n MenuItemDataCustom,\n MenuItemDataDir,\n MenuItemDataNormal,\n MicroAppWithInstanceId,\n PlatformCategoryItem,\n} from \"./interfaces\";\nimport { FAVORITES_LIMIT } from \"./constants\";\nimport { getAppLocaleName } from \"../shared/getLocaleName\";\nimport { sortBy } from \"lodash\";\n\nexport async function fetchLaunchpadInfo() {\n const launchpadInfo = await LaunchpadApi_getLaunchpadInfo(\n {},\n {\n interceptorParams: { ignoreLoadingBar: true },\n noAbortOnRouteChange: true,\n }\n );\n\n const microAppsById = new Map<string, MicroAppWithInstanceId>();\n for (const storyboard of launchpadInfo.storyboards as Storyboard[]) {\n const app = storyboard.app as unknown as MicroAppWithInstanceId;\n app.localeName = getAppLocaleName(app.locales, app.name);\n microAppsById.set(app.id, app);\n }\n\n const menuGroups: MenuGroupData[] = [];\n const customLinksById = new Map<string, MenuItemDataCustom>();\n\n for (const group of launchpadInfo.desktops as unknown as MenuGroupData[]) {\n const items: MenuItemData[] = [];\n for (const item of group.items) {\n switch (item.type) {\n case \"app\": {\n const app = microAppsById.get(item.id);\n if (app) {\n items.push({\n ...item,\n name: app.localeName,\n url: app.homepage,\n menuIcon: app.menuIcon,\n } as MenuItemDataApp);\n }\n break;\n }\n case \"custom\":\n items.push(item);\n customLinksById.set(item.id, item);\n break;\n case \"dir\": {\n const subItems: MenuItemDataNormal[] = [];\n for (const subItem of item.items) {\n if (subItem.type === \"app\") {\n const app = microAppsById.get(subItem.id);\n if (app) {\n subItems.push({\n ...subItem,\n name: app.localeName,\n url: app.homepage,\n menuIcon: app.menuIcon,\n } as MenuItemDataApp);\n }\n } else if (subItem.type === \"custom\") {\n subItems.push(subItem as MenuItemDataCustom);\n customLinksById.set(subItem.id, subItem);\n }\n }\n if (subItems.length > 0) {\n items.push({\n ...item,\n items: subItems,\n } as MenuItemDataDir);\n }\n break;\n }\n }\n }\n if (items.length > 0) {\n menuGroups.push({ ...group, items });\n }\n }\n\n return { menuGroups, microAppsById, customLinksById };\n}\n\nasync function fetchRawFavorites() {\n return (\n await LaunchpadApi_listCollectionV2(\n { page: 1, pageSize: FAVORITES_LIMIT },\n {\n interceptorParams: { ignoreLoadingBar: true },\n noAbortOnRouteChange: true,\n }\n )\n ).list;\n}\n\nexport async function fetchFavorites() {\n const list = await fetchRawFavorites();\n const stored: FavMenuItem[] = [];\n for (const fav of list) {\n if (fav.type === \"microApp\") {\n const app = fav.relatedApp as Omit<MicroAppWithInstanceId, \"id\"> & {\n appId: string;\n };\n app.localeName = getAppLocaleName(app.locales, app.name);\n stored.push({\n favoriteId: fav.instanceId,\n type: \"app\",\n name: app.localeName,\n id: app.appId,\n url: app.homepage,\n instanceId: app.instanceId,\n menuIcon: app.menuIcon,\n } as FavMenuItem);\n } else if (fav.type === \"customItem\") {\n const customItem = fav.relatedCustomItem!;\n stored.push({\n favoriteId: fav.instanceId,\n type: \"custom\",\n name: customItem.name,\n id: customItem.id,\n url: customItem.url,\n menuIcon: customItem.menuIcon,\n } as FavMenuItem);\n } else if (fav.type === \"link\") {\n stored.push({\n favoriteId: fav.instanceId,\n type: \"link\",\n name: fav.name,\n // id: fav.id,\n url: fav.link,\n menuIcon: fav.icon,\n } as FavMenuItem);\n }\n }\n return stored;\n}\n\nexport async function favorite(\n item: MenuItemDataNormal\n): Promise<{ instanceId?: string }> {\n return LaunchpadApi_createCollectionV2(\n {\n type: item.type === \"app\" ? \"microApp\" : \"customItem\",\n relatedInstanceId: item.instanceId,\n },\n {\n interceptorParams: { ignoreLoadingBar: true },\n }\n );\n}\n\nexport async function undoFavorite(item: FavMenuItem) {\n if (item.favoriteId) {\n return LaunchpadApi_deleteCollectionV2(item.favoriteId);\n }\n\n return fetchRawFavorites().then((list) => {\n const foundId = list.find((fav) =>\n item.type === \"app\"\n ? fav.type === \"microApp\" && fav.relatedApp?.appId === item.id\n : item.type === \"custom\" && fav.relatedCustomItem?.id === item.id\n )?.instanceId;\n\n if (foundId) {\n return LaunchpadApi_deleteCollectionV2(foundId);\n }\n // eslint-disable-next-line no-console\n console.error(\"Menu item to unstar not found:\", item);\n });\n}\n\nexport async function fetchPlatformCategories(): Promise<\n PlatformCategoryItem[]\n> {\n const categories = (\n await InstanceApi_postSearchV3(\"MICRO_APP_CATEGORY@EASYOPS\", {\n fields: [\n \"id\",\n \"type\",\n \"name\",\n \"icon\",\n \"order\",\n \"platformApps.appId\",\n \"platformApps.name\",\n \"platformApps.homepage\",\n \"platformApps.description\",\n \"platformApps.menuIcon\",\n \"platformApps.locales\",\n \"platformApps._object_id\",\n \"platformApps.@.order\",\n \"platformItems.id\",\n \"platformItems.name\",\n \"platformItems.url\",\n \"platformItems.description\",\n \"platformItems.menuIcon\",\n \"platformItems._object_id\",\n \"platformItems.@.order\",\n ],\n page: 1,\n page_size: 300,\n query: {\n type: \"platform\",\n },\n })\n ).list;\n\n const _categories = categories?.map((category) => {\n const apps = category.platformApps.map((app: Record<string, any>) => {\n return {\n type: \"app\",\n name: getAppLocaleName(app.locales, app.name),\n id: app.appId,\n url: app.homepage,\n menuIcon: app.menuIcon,\n description: app.description,\n instanceId: app.instanceId,\n order: app[\"@\"]?.order,\n };\n }) as MenuItemDataApp[];\n const customItems = category.platformItems.map(\n (item: Record<string, any>) => {\n return {\n type: \"custom\",\n name: item.name,\n id: item.id,\n url: item.url,\n menuIcon: item.menuIcon,\n description: item.description,\n instanceId: item.instanceId,\n order: item[\"@\"]?.order,\n };\n }\n ) as MenuItemDataCustom[];\n\n const items = sortBy([...apps, ...customItems], \"order\");\n return {\n instanceId: category.instanceId,\n id: category.id,\n name: category.name,\n icon: category.icon,\n order: category.order,\n items,\n } as PlatformCategoryItem;\n });\n\n return [\n {\n id: \"#all\",\n name: \"全部\",\n icon: {\n lib: \"easyops\",\n category: \"second-menu\",\n icon: \"sprint-planning-second-menu\",\n },\n items: [],\n },\n ...sortBy(_categories, \"order\"),\n ];\n}\n","import type {\n MenuGroupData,\n MenuItemData,\n MenuItemDataApp,\n MenuItemDataCustom,\n MenuItemDataNormal,\n PlatformCategoryItem,\n} from \"./interfaces\";\n\nexport function search(\n allMenuGroups: MenuGroupData[],\n q: string\n): MenuGroupData[] {\n if (!q) {\n return allMenuGroups;\n }\n const lowerQ = q.toLowerCase();\n const groups: MenuGroupData[] = allMenuGroups\n .map((group) => ({\n ...group,\n items: group.items\n .map((item) => {\n switch (item.type) {\n case \"app\":\n return matchMenuItemApp(item, lowerQ);\n case \"custom\":\n return matchMenuItemCustom(item, lowerQ);\n case \"dir\": {\n const filteredSubItems = item.items\n .map((sub) =>\n sub.type === \"app\"\n ? matchMenuItemApp(sub, lowerQ)\n : sub.type === \"custom\"\n ? matchMenuItemCustom(sub, lowerQ)\n : null\n )\n .filter(Boolean) as MenuItemData[];\n return filteredSubItems.length > 0\n ? {\n ...item,\n items: filteredSubItems,\n }\n : null;\n }\n }\n })\n // Ignore not matched items\n .filter(Boolean) as MenuItemData[],\n }))\n // ignore empty desktops\n .filter((group) => group.items.length > 0);\n return groups;\n}\n\nexport function searchCategories(\n categories: PlatformCategoryItem[],\n q: string\n): PlatformCategoryItem[] {\n if (!q) {\n return categories;\n }\n\n const lowerQ = q.toLowerCase();\n const _categories = categories.map((category) => ({\n ...category,\n items: category.items\n .map((item) => {\n switch (item.type) {\n case \"app\":\n return matchMenuItemApp(item, lowerQ);\n case \"custom\":\n return matchMenuItemCustom(item, lowerQ);\n }\n })\n // Ignore not matched items\n .filter(Boolean) as MenuItemDataNormal[],\n }));\n return _categories;\n}\n\nfunction matchMenuItemApp(item: MenuItemDataApp, lowerQ: string) {\n return item.id.toLowerCase().includes(lowerQ) ||\n item.name.toLowerCase().includes(lowerQ) ||\n (item.description && item.description.toLowerCase().includes(lowerQ))\n ? item\n : null;\n}\n\nfunction matchMenuItemCustom(item: MenuItemDataCustom, lowerQ: string) {\n return item.id.toLowerCase().includes(lowerQ) ||\n item.name.toLowerCase().includes(lowerQ) ||\n (item.description && item.description.toLowerCase().includes(lowerQ))\n ? item\n : null;\n}\n","import { useCallback, useEffect, useMemo, useState } from \"react\";\nimport {\n getRuntime,\n handleHttpError,\n httpErrorToString,\n} from \"@next-core/runtime\";\nimport { auth } from \"@next-core/easyops-runtime\";\nimport { JsonStorage } from \"@next-shared/general/JsonStorage\";\nimport { DeferredService } from \"../shared/DeferredService\";\nimport { showDialog, showNotification } from \"./wrapped-bricks\";\nimport type {\n FavMenuItem,\n MenuGroupData,\n MenuItemDataCustom,\n MenuItemDataLink,\n MenuItemDataNormal,\n MicroAppWithInstanceId,\n PlatformCategoryItem,\n StoredMenuItem,\n} from \"./interfaces\";\nimport {\n favorite,\n fetchFavorites,\n fetchLaunchpadInfo,\n fetchPlatformCategories,\n undoFavorite,\n} from \"./api\";\nimport { search, searchCategories } from \"./search\";\nimport { FAVORITES_LIMIT, RECENT_VISITS_LIMIT } from \"./constants\";\n\nconst storageKey = `launchpad-recent-visits:${(\n auth.getAuth() as Record<string, string>\n)?.org}`;\nconst storage = new JsonStorage(localStorage);\n\nlet candidateDesktops: MenuGroupData[] = [];\nlet candidateMicroAppsById = new Map<string, MicroAppWithInstanceId>();\nlet candidateCustomLinksById = new Map<string, MenuItemDataCustom>();\nlet preLoaded = false;\n\nlet candidateFavorites: FavMenuItem[] = [];\nlet preLoadedFavorites = false;\n\nlet candidatePlatformCategories: PlatformCategoryItem[] = [];\nlet preLoadedPlatformCategories = false;\n\nexport const deferredLaunchpadInfo = new DeferredService(async () => {\n ({\n menuGroups: candidateDesktops,\n microAppsById: candidateMicroAppsById,\n customLinksById: candidateCustomLinksById,\n } = await fetchLaunchpadInfo());\n preLoaded = true;\n});\n\nexport const deferredFavorites = new DeferredService(async () => {\n candidateFavorites = await fetchFavorites();\n preLoadedFavorites = true;\n});\n\nexport const deferredPlatformCategories = new DeferredService(async () => {\n candidatePlatformCategories = await fetchPlatformCategories();\n preLoadedPlatformCategories = true;\n});\n\nconst showErrorAsNotification = (error: unknown) =>\n showNotification({\n type: \"error\",\n message: httpErrorToString(error),\n });\n\n/**\n * - 页面初始化时预加载 launchpad 信息。\n * - 每次打开 launchpad 都发起请求,但该请求的数据只在下次打开 launchpad 时使用。\n * 即每次打开 launchpad 使用的都是上一次获取的数据,以便达到两个效果:\n * - 每次打开 launchpad 都能立即显示菜单列表;\n * - 同时当用户在 launchpad 上操作时,不会出现数据突然更新(新数据请求完成)。\n */\nexport function useLaunchpadInfo(active?: boolean) {\n const [desktops, setDesktops] = useState(candidateDesktops);\n const [microAppsById, setMicroAppsById] = useState(candidateMicroAppsById);\n const [customLinksById, setCustomLinksById] = useState(\n candidateCustomLinksById\n );\n\n const [q, setQ] = useState(\"\");\n\n const [loading, setLoading] = useState(!preLoaded);\n const [loadingFavorites, setLoadingFavorites] = useState(!preLoadedFavorites);\n const [loadingPlatformCategories, setLoadingPlatformCategories] = useState(\n !preLoadedPlatformCategories\n );\n\n const [storedRecentVisits, setStoredRecentVisits] = useState<\n StoredMenuItem[]\n >([]);\n\n const [recentVisits, setRecentVisits] = useState<MenuItemDataNormal[]>([]);\n\n const [favorites, setFavorites] = useState<FavMenuItem[]>(candidateFavorites);\n const [platformCategories, setPlatformCategories] = useState<\n PlatformCategoryItem[]\n >(candidatePlatformCategories);\n\n useEffect(() => {\n // 仅当首次加载完成或重新打开 launchpad 时更新一次数据。\n if (active && !loading) {\n setDesktops(candidateDesktops);\n setMicroAppsById(candidateMicroAppsById);\n setCustomLinksById(candidateCustomLinksById);\n }\n }, [active, loading]);\n\n useEffect(() => {\n if (active && !loadingFavorites) {\n setFavorites(candidateFavorites);\n }\n }, [active, loadingFavorites]);\n\n useEffect(() => {\n if (active && !loadingPlatformCategories) {\n setPlatformCategories(candidatePlatformCategories);\n }\n }, [active, loadingPlatformCategories]);\n\n useEffect(() => {\n if (active) {\n setStoredRecentVisits(storage.getItem(storageKey) ?? []);\n }\n }, [active]);\n\n useEffect(() => {\n if (active) {\n const startFetchLaunchpadInfo = async (): Promise<void> => {\n try {\n await deferredLaunchpadInfo.fetch();\n setLoading(false);\n } catch (error) {\n handleHttpError(error);\n }\n };\n startFetchLaunchpadInfo();\n }\n }, [active]);\n\n useEffect(() => {\n if (active) {\n const startFetchFavorites = async (): Promise<void> => {\n try {\n await deferredFavorites.fetch();\n setLoadingFavorites(false);\n } catch (error) {\n setLoadingFavorites(false);\n showErrorAsNotification(error);\n }\n };\n startFetchFavorites();\n }\n }, [active]);\n\n useEffect(() => {\n if (\n active &&\n getRuntime()?.getFeatureFlags()[\"launchpad-show-app-category\"]\n ) {\n const startFetchPlatformCategories = async (): Promise<void> => {\n try {\n await deferredPlatformCategories.fetch();\n setLoadingPlatformCategories(false);\n } catch (error) {\n setLoadingPlatformCategories(false);\n showErrorAsNotification(error);\n }\n };\n startFetchPlatformCategories();\n }\n }, [active]);\n\n useEffect(() => {\n if (loading) {\n return;\n }\n const visits = storedRecentVisits\n .map((item) => {\n // Remembered recent visits maybe no longer existed in launchpad\n if (item.type === \"app\") {\n const app = microAppsById.get(item.id);\n return app\n ? {\n type: \"app\",\n name: app.localeName,\n id: app.id,\n url: app.homepage,\n instanceId: app.instanceId,\n menuIcon: app.menuIcon,\n }\n : null;\n }\n return customLinksById.get(item.id);\n })\n .filter(Boolean) as MenuItemDataNormal[];\n setRecentVisits(visits);\n }, [customLinksById, loading, microAppsById, storedRecentVisits]);\n\n const pushRecentVisit = useCallback(({ type, id }: StoredMenuItem) => {\n const visits: StoredMenuItem[] = storage.getItem(storageKey) ?? [];\n const index = visits.findIndex(\n (visit) => visit.type === type && visit.id === id\n );\n if (index > -1) {\n visits.splice(index, 1);\n }\n visits.unshift({ type, id });\n if (visits.length > RECENT_VISITS_LIMIT) {\n visits.pop();\n }\n // setStoredRecentVisits(visits);\n storage.setItem(storageKey, visits);\n }, []);\n\n const isStarred = useCallback(\n (item: MenuItemDataNormal) =>\n favorites.some((fav) => matchFavorite(item, fav)),\n [favorites]\n );\n\n const toggleStar = useCallback(\n (item: MenuItemDataNormal | MenuItemDataLink) => {\n const index = favorites.findIndex((fav) =>\n item.type === \"link\"\n ? fav.favoriteId === item.favoriteId\n : matchFavorite(item, fav)\n );\n let newFavorites: FavMenuItem[];\n if (index > -1) {\n const removed = favorites[index];\n newFavorites = favorites\n .slice(0, index)\n .concat(favorites.slice(index + 1));\n undoFavorite(removed).catch(showErrorAsNotification);\n } else {\n if (favorites.length >= FAVORITES_LIMIT) {\n showDialog({\n type: \"warn\",\n title: \"收藏数量已达上限\",\n content: `当前收藏链接数量已达上限(${FAVORITES_LIMIT}个),请删除部分收藏后再添加。`,\n });\n return;\n }\n // Assert: no link item\n const fav: FavMenuItem = { ...(item as MenuItemDataNormal) };\n newFavorites = favorites.concat(fav);\n favorite(item as MenuItemDataNormal).then((result) => {\n if (result) {\n fav.favoriteId = result.instanceId;\n }\n }, showErrorAsNotification);\n }\n setFavorites(newFavorites);\n candidateFavorites = newFavorites;\n },\n [favorites]\n );\n\n const menuGroups: MenuGroupData[] = useMemo(\n () => search(desktops, q),\n [desktops, q]\n );\n\n const filteredPlatformCategories: PlatformCategoryItem[] = useMemo(\n () => searchCategories(platformCategories, q),\n [platformCategories, q]\n );\n\n return {\n loading,\n q,\n setQ,\n menuGroups,\n loadingFavorites,\n loadingPlatformCategories,\n favorites,\n recentVisits,\n pushRecentVisit,\n isStarred,\n toggleStar,\n platformCategories: filteredPlatformCategories,\n };\n}\n\nexport function matchFavorite(item: MenuItemDataNormal, fav: FavMenuItem) {\n return item.instanceId && fav.instanceId\n ? fav.instanceId === item.instanceId\n : fav.type === item.type && fav.id === item.id;\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 { showDialog as _showDialog } from \"@next-bricks/basic/data-providers/show-dialog/show-dialog\";\nimport type { showNotification as _showNotification } from \"@next-bricks/basic/data-providers/show-notification/show-notification\";\n\nexport const WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\nexport const WrappedLink = wrapBrick<Link, LinkProps>(\"eo-link\");\n\n// Use `unwrapProvider` to get the original function of a provider\nexport const showDialog =\n unwrapProvider<typeof _showDialog>(\"basic.show-dialog\");\n\nexport const showNotification = unwrapProvider<typeof _showNotification>(\n \"basic.show-notification\"\n);\n","export class DeferredService {\n private preFetchId: number | null = null;\n private preFetchScheduled = false;\n private firstFetchPromise: Promise<unknown> | null = null;\n private isFetching = false;\n private readonly task: () => Promise<unknown>;\n\n constructor(task: () => Promise<unknown>) {\n this.task = task;\n }\n\n schedulePrefetch(): void {\n if (!this.preFetchScheduled) {\n this.preFetchScheduled = true;\n const preFetchLaunchpadInfo = async (): Promise<void> => {\n this.preFetchId = null;\n this.fetch();\n };\n // istanbul ignore if\n if (typeof window.requestIdleCallback === \"function\") {\n this.preFetchId = window.requestIdleCallback(preFetchLaunchpadInfo);\n } else {\n this.preFetchId = setTimeout(\n preFetchLaunchpadInfo\n ) as unknown as number;\n }\n }\n }\n\n fetch(eager?: boolean): Promise<unknown> {\n if (this.preFetchId) {\n // istanbul ignore if\n if (typeof window.cancelIdleCallback === \"function\") {\n cancelIdleCallback(this.preFetchId);\n } else {\n clearTimeout(this.preFetchId);\n }\n this.preFetchId = null;\n }\n\n let promise: Promise<unknown>;\n if (!this.isFetching || eager) {\n this.isFetching = true;\n promise = this.task();\n promise\n .catch((error) => {\n // eslint-disable-next-line no-console\n console.error(error);\n this.firstFetchPromise = null;\n })\n .finally(() => {\n this.isFetching = false;\n });\n if (!this.firstFetchPromise) {\n this.firstFetchPromise = promise;\n }\n if (eager) {\n return promise;\n }\n }\n return this.firstFetchPromise!;\n }\n}\n","import { i18nText } from \"@next-core/i18n\";\nimport type { AppLocales, I18nData } from \"@next-core/types\";\n\nexport function getAppLocaleName(\n locales: AppLocales | undefined,\n name: string\n) {\n if (!locales) {\n return name;\n }\n const i18nData = Object.fromEntries(\n Object.entries(locales)\n .filter(([lang, resources]) => resources.name)\n .map(([lang, resources]) => [lang, resources.name])\n ) as I18nData;\n return i18nText(i18nData) ?? name;\n}\n","export class JsonStorage {\n constructor(\n private storage: Storage,\n private prefix: string = \"brick-next-\"\n ) {}\n\n setItem<T = any>(name: string, value: T): void {\n this.storage.setItem(this.prefix + name, JSON.stringify(value));\n }\n\n getItem<T = any>(name: string): T {\n return JSON.parse(this.storage.getItem(this.prefix + name) as string) as T;\n }\n\n removeItem(name: string): void {\n return this.storage.removeItem(this.prefix + name);\n }\n\n clear(): void {\n return this.storage.clear();\n }\n}\n"],"names":["FAVORITES_LIMIT","RECENT_VISITS_LIMIT","_fetchLaunchpadInfo","_asyncToGenerator","launchpadInfo","LaunchpadApi_getLaunchpadInfo","interceptorParams","ignoreLoadingBar","noAbortOnRouteChange","microAppsById","Map","storyboard","storyboards","app","localeName","getAppLocaleName","locales","name","set","id","menuGroups","customLinksById","group","desktops","items","item","type","get","push","_objectSpread","url","homepage","menuIcon","subItems","subItem","length","apply","arguments","fetchRawFavorites","_fetchRawFavorites","LaunchpadApi_listCollectionV2","page","pageSize","list","_fetchFavorites","stored","fav","relatedApp","favoriteId","instanceId","appId","customItem","relatedCustomItem","link","icon","_favorite","LaunchpadApi_createCollectionV2","relatedInstanceId","_undoFavorite","LaunchpadApi_deleteCollectionV2","then","_list$find","foundId","find","_fav$relatedApp","_fav$relatedCustomIte","console","error","_fetchPlatformCategories","categories","InstanceApi_postSearchV3","fields","page_size","query","_categories","map","category","apps","platformApps","_app$","description","order","customItems","platformItems","_item$","sortBy","lib","matchMenuItemApp","lowerQ","toLowerCase","includes","matchMenuItemCustom","storageKey","concat","_auth$getAuth","auth","getAuth","org","storage","JsonStorage","localStorage","candidateDesktops","candidateMicroAppsById","candidateCustomLinksById","preLoaded","candidateFavorites","preLoadedFavorites","candidatePlatformCategories","preLoadedPlatformCategories","deferredLaunchpadInfo","DeferredService","fetchLaunchpadInfo","deferredFavorites","fetchFavorites","deferredPlatformCategories","fetchPlatformCategories","showErrorAsNotification","showNotification","message","httpErrorToString","useLaunchpadInfo","active","setDesktops","useState","setMicroAppsById","setCustomLinksById","q","setQ","loading","setLoading","loadingFavorites","setLoadingFavorites","loadingPlatformCategories","setLoadingPlatformCategories","storedRecentVisits","setStoredRecentVisits","recentVisits","setRecentVisits","favorites","setFavorites","platformCategories","setPlatformCategories","useEffect","_storage$getItem","getItem","startFetchLaunchpadInfo","_ref4","fetch","handleHttpError","startFetchFavorites","_ref5","_getRuntime","getRuntime","getFeatureFlags","startFetchPlatformCategories","_ref6","visits","filter","Boolean","pushRecentVisit","useCallback","_ref7","_storage$getItem2","index","findIndex","visit","splice","unshift","pop","setItem","isStarred","some","matchFavorite","toggleStar","newFavorites","removed","slice","_x2","undoFavorite","catch","showDialog","title","content","_x","favorite","result","useMemo","allMenuGroups","filteredSubItems","sub","search","filteredPlatformCategories","searchCategories","WrappedIcon","wrapBrick","WrappedLink","unwrapProvider","constructor","task","_defineProperty","this","schedulePrefetch","_this","preFetchScheduled","preFetchLaunchpadInfo","_ref","preFetchId","window","requestIdleCallback","setTimeout","eager","promise","cancelIdleCallback","clearTimeout","isFetching","firstFetchPromise","finally","_i18nText","i18nData","Object","fromEntries","entries","lang","resources","_ref2","i18nText","prefix","undefined","value","JSON","stringify","parse","removeItem","clear"],"sourceRoot":""}
1
+ {"version":3,"file":"chunks/6176.1b27c498.js","mappings":"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","sources":["webpack:///./src/launchpad-button-v2/constants.ts","webpack:///./src/launchpad-button-v2/api.ts","webpack:///./src/launchpad-button-v2/search.ts","webpack:///./src/launchpad-button-v2/useLaunchpadInfo.ts","webpack:///./src/launchpad-button-v2/wrapped-bricks.ts","webpack:///./src/shared/DeferredService.ts","webpack:///./src/shared/getLocaleName.ts","webpack:///../../src/JsonStorage.ts"],"sourcesContent":["export const FAVORITES_LIMIT = 10;\nexport const RECENT_VISITS_LIMIT = 10;\n","import type { Storyboard } from \"@next-core/types\";\nimport { LaunchpadApi_getLaunchpadInfo } from \"@next-api-sdk/micro-app-standalone-sdk\";\nimport {\n LaunchpadApi_createCollectionV2,\n LaunchpadApi_deleteCollectionV2,\n LaunchpadApi_listCollectionV2,\n} from \"@next-api-sdk/user-service-sdk\";\nimport { InstanceApi_postSearchV3 } from \"@next-api-sdk/cmdb-sdk\";\nimport type {\n FavMenuItem,\n MenuGroupData,\n MenuItemData,\n MenuItemDataApp,\n MenuItemDataCustom,\n MenuItemDataDir,\n MenuItemDataNormal,\n MicroAppWithInstanceId,\n PlatformCategoryItem,\n} from \"./interfaces\";\nimport { FAVORITES_LIMIT } from \"./constants\";\nimport { getAppLocaleName } from \"../shared/getLocaleName\";\nimport { sortBy } from \"lodash\";\n\nexport async function fetchLaunchpadInfo() {\n const launchpadInfo = await LaunchpadApi_getLaunchpadInfo(\n {},\n {\n interceptorParams: { ignoreLoadingBar: true },\n noAbortOnRouteChange: true,\n }\n );\n\n const microAppsById = new Map<string, MicroAppWithInstanceId>();\n for (const storyboard of launchpadInfo.storyboards as Storyboard[]) {\n const app = storyboard.app as unknown as MicroAppWithInstanceId;\n app.localeName = getAppLocaleName(app.locales, app.name);\n microAppsById.set(app.id, app);\n }\n\n const menuGroups: MenuGroupData[] = [];\n const customLinksById = new Map<string, MenuItemDataCustom>();\n\n for (const group of launchpadInfo.desktops as unknown as MenuGroupData[]) {\n const items: MenuItemData[] = [];\n for (const item of group.items) {\n switch (item.type) {\n case \"app\": {\n const app = microAppsById.get(item.id);\n if (app) {\n items.push({\n ...item,\n name: app.localeName,\n url: app.homepage,\n menuIcon: app.menuIcon,\n } as MenuItemDataApp);\n }\n break;\n }\n case \"custom\":\n items.push(item);\n customLinksById.set(item.id, item);\n break;\n case \"dir\": {\n const subItems: MenuItemDataNormal[] = [];\n for (const subItem of item.items) {\n if (subItem.type === \"app\") {\n const app = microAppsById.get(subItem.id);\n if (app) {\n subItems.push({\n ...subItem,\n name: app.localeName,\n url: app.homepage,\n menuIcon: app.menuIcon,\n } as MenuItemDataApp);\n }\n } else if (subItem.type === \"custom\") {\n subItems.push(subItem as MenuItemDataCustom);\n customLinksById.set(subItem.id, subItem);\n }\n }\n if (subItems.length > 0) {\n items.push({\n ...item,\n items: subItems,\n } as MenuItemDataDir);\n }\n break;\n }\n }\n }\n if (items.length > 0) {\n menuGroups.push({ ...group, items });\n }\n }\n\n return { menuGroups, microAppsById, customLinksById };\n}\n\nasync function fetchRawFavorites() {\n return (\n await LaunchpadApi_listCollectionV2(\n { page: 1, pageSize: FAVORITES_LIMIT },\n {\n interceptorParams: { ignoreLoadingBar: true },\n noAbortOnRouteChange: true,\n }\n )\n ).list;\n}\n\nexport async function fetchFavorites() {\n const list = await fetchRawFavorites();\n const stored: FavMenuItem[] = [];\n for (const fav of list) {\n if (fav.type === \"microApp\") {\n const app = fav.relatedApp as Omit<MicroAppWithInstanceId, \"id\"> & {\n appId: string;\n };\n app.localeName = getAppLocaleName(app.locales, app.name);\n stored.push({\n favoriteId: fav.instanceId,\n type: \"app\",\n name: app.localeName,\n id: app.appId,\n url: app.homepage,\n instanceId: app.instanceId,\n menuIcon: app.menuIcon,\n } as FavMenuItem);\n } else if (fav.type === \"customItem\") {\n const customItem = fav.relatedCustomItem!;\n stored.push({\n favoriteId: fav.instanceId,\n type: \"custom\",\n name: customItem.name,\n id: customItem.id,\n url: customItem.url,\n menuIcon: customItem.menuIcon,\n } as FavMenuItem);\n } else if (fav.type === \"link\") {\n stored.push({\n favoriteId: fav.instanceId,\n type: \"link\",\n name: fav.name,\n // id: fav.id,\n url: fav.link,\n menuIcon: fav.icon,\n } as FavMenuItem);\n }\n }\n return stored;\n}\n\nexport async function favorite(\n item: MenuItemDataNormal\n): Promise<{ instanceId?: string }> {\n return LaunchpadApi_createCollectionV2(\n {\n type: item.type === \"app\" ? \"microApp\" : \"customItem\",\n relatedInstanceId: item.instanceId,\n },\n {\n interceptorParams: { ignoreLoadingBar: true },\n }\n );\n}\n\nexport async function undoFavorite(item: FavMenuItem) {\n if (item.favoriteId) {\n return LaunchpadApi_deleteCollectionV2(item.favoriteId);\n }\n\n return fetchRawFavorites().then((list) => {\n const foundId = list.find((fav) =>\n item.type === \"app\"\n ? fav.type === \"microApp\" && fav.relatedApp?.appId === item.id\n : item.type === \"custom\" && fav.relatedCustomItem?.id === item.id\n )?.instanceId;\n\n if (foundId) {\n return LaunchpadApi_deleteCollectionV2(foundId);\n }\n // eslint-disable-next-line no-console\n console.error(\"Menu item to unstar not found:\", item);\n });\n}\n\nexport async function fetchPlatformCategories(): Promise<\n PlatformCategoryItem[]\n> {\n const categories = (\n await InstanceApi_postSearchV3(\"MICRO_APP_CATEGORY@EASYOPS\", {\n fields: [\n \"id\",\n \"type\",\n \"name\",\n \"icon\",\n \"order\",\n \"platformApps.appId\",\n \"platformApps.name\",\n \"platformApps.homepage\",\n \"platformApps.description\",\n \"platformApps.menuIcon\",\n \"platformApps.locales\",\n \"platformApps._object_id\",\n \"platformApps.@.order\",\n \"platformItems.id\",\n \"platformItems.name\",\n \"platformItems.url\",\n \"platformItems.description\",\n \"platformItems.menuIcon\",\n \"platformItems._object_id\",\n \"platformItems.@.order\",\n ],\n page: 1,\n page_size: 300,\n query: {\n type: \"platform\",\n },\n })\n ).list;\n\n const _categories = categories?.map((category) => {\n const apps = category.platformApps.map((app: Record<string, any>) => {\n return {\n type: \"app\",\n name: getAppLocaleName(app.locales, app.name),\n id: app.appId,\n url: app.homepage,\n menuIcon: app.menuIcon,\n description: app.description,\n instanceId: app.instanceId,\n order: app[\"@\"]?.order,\n };\n }) as MenuItemDataApp[];\n const customItems = category.platformItems.map(\n (item: Record<string, any>) => {\n return {\n type: \"custom\",\n name: item.name,\n id: item.id,\n url: item.url,\n menuIcon: item.menuIcon,\n description: item.description,\n instanceId: item.instanceId,\n order: item[\"@\"]?.order,\n };\n }\n ) as MenuItemDataCustom[];\n\n const items = sortBy([...apps, ...customItems], \"order\");\n return {\n instanceId: category.instanceId,\n id: category.id,\n name: category.name,\n icon: category.icon,\n order: category.order,\n items,\n } as PlatformCategoryItem;\n });\n\n return [\n {\n id: \"#all\",\n name: \"全部\",\n icon: {\n lib: \"easyops\",\n category: \"second-menu\",\n icon: \"sprint-planning-second-menu\",\n },\n items: [],\n },\n ...sortBy(_categories, \"order\"),\n ];\n}\n","import type {\n MenuGroupData,\n MenuItemData,\n MenuItemDataApp,\n MenuItemDataCustom,\n MenuItemDataNormal,\n PlatformCategoryItem,\n} from \"./interfaces\";\n\nexport function search(\n allMenuGroups: MenuGroupData[],\n q: string\n): MenuGroupData[] {\n if (!q) {\n return allMenuGroups;\n }\n const lowerQ = q.toLowerCase();\n const groups: MenuGroupData[] = allMenuGroups\n .map((group) => ({\n ...group,\n items: group.items\n .map((item) => {\n switch (item.type) {\n case \"app\":\n return matchMenuItemApp(item, lowerQ);\n case \"custom\":\n return matchMenuItemCustom(item, lowerQ);\n case \"dir\": {\n const filteredSubItems = item.items\n .map((sub) =>\n sub.type === \"app\"\n ? matchMenuItemApp(sub, lowerQ)\n : sub.type === \"custom\"\n ? matchMenuItemCustom(sub, lowerQ)\n : null\n )\n .filter(Boolean) as MenuItemData[];\n return filteredSubItems.length > 0\n ? {\n ...item,\n items: filteredSubItems,\n }\n : null;\n }\n }\n })\n // Ignore not matched items\n .filter(Boolean) as MenuItemData[],\n }))\n // ignore empty desktops\n .filter((group) => group.items.length > 0);\n return groups;\n}\n\nexport function searchCategories(\n categories: PlatformCategoryItem[],\n q: string\n): PlatformCategoryItem[] {\n if (!q) {\n return categories;\n }\n\n const lowerQ = q.toLowerCase();\n const _categories = categories.map((category) => ({\n ...category,\n items: category.items\n .map((item) => {\n switch (item.type) {\n case \"app\":\n return matchMenuItemApp(item, lowerQ);\n case \"custom\":\n return matchMenuItemCustom(item, lowerQ);\n }\n })\n // Ignore not matched items\n .filter(Boolean) as MenuItemDataNormal[],\n }));\n return _categories;\n}\n\nfunction matchMenuItemApp(item: MenuItemDataApp, lowerQ: string) {\n return item.id.toLowerCase().includes(lowerQ) ||\n item.name.toLowerCase().includes(lowerQ) ||\n (item.description && item.description.toLowerCase().includes(lowerQ))\n ? item\n : null;\n}\n\nfunction matchMenuItemCustom(item: MenuItemDataCustom, lowerQ: string) {\n return item.id.toLowerCase().includes(lowerQ) ||\n item.name.toLowerCase().includes(lowerQ) ||\n (item.description && item.description.toLowerCase().includes(lowerQ))\n ? item\n : null;\n}\n","import { useCallback, useEffect, useMemo, useState } from \"react\";\nimport {\n getRuntime,\n handleHttpError,\n httpErrorToString,\n} from \"@next-core/runtime\";\nimport { auth } from \"@next-core/easyops-runtime\";\nimport { JsonStorage } from \"@next-shared/general/JsonStorage\";\nimport { DeferredService } from \"../shared/DeferredService\";\nimport { showDialog, showNotification } from \"./wrapped-bricks\";\nimport type {\n FavMenuItem,\n MenuGroupData,\n MenuItemDataCustom,\n MenuItemDataLink,\n MenuItemDataNormal,\n MicroAppWithInstanceId,\n PlatformCategoryItem,\n StoredMenuItem,\n} from \"./interfaces\";\nimport {\n favorite,\n fetchFavorites,\n fetchLaunchpadInfo,\n fetchPlatformCategories,\n undoFavorite,\n} from \"./api\";\nimport { search, searchCategories } from \"./search\";\nimport { FAVORITES_LIMIT, RECENT_VISITS_LIMIT } from \"./constants\";\n\nconst storageKey = `launchpad-recent-visits:${(\n auth.getAuth() as Record<string, string>\n)?.org}`;\nconst storage = new JsonStorage(localStorage);\n\nlet candidateDesktops: MenuGroupData[] = [];\nlet candidateMicroAppsById = new Map<string, MicroAppWithInstanceId>();\nlet candidateCustomLinksById = new Map<string, MenuItemDataCustom>();\nlet preLoaded = false;\n\nlet candidateFavorites: FavMenuItem[] = [];\nlet preLoadedFavorites = false;\n\nlet candidatePlatformCategories: PlatformCategoryItem[] = [];\nlet preLoadedPlatformCategories = false;\n\nexport const deferredLaunchpadInfo = new DeferredService(async () => {\n ({\n menuGroups: candidateDesktops,\n microAppsById: candidateMicroAppsById,\n customLinksById: candidateCustomLinksById,\n } = await fetchLaunchpadInfo());\n preLoaded = true;\n});\n\nexport const deferredFavorites = new DeferredService(async () => {\n candidateFavorites = await fetchFavorites();\n preLoadedFavorites = true;\n});\n\nexport const deferredPlatformCategories = new DeferredService(async () => {\n candidatePlatformCategories = await fetchPlatformCategories();\n preLoadedPlatformCategories = true;\n});\n\nconst showErrorAsNotification = (error: unknown) =>\n showNotification({\n type: \"error\",\n message: httpErrorToString(error),\n });\n\n/**\n * - 页面初始化时预加载 launchpad 信息。\n * - 每次打开 launchpad 都发起请求,但该请求的数据只在下次打开 launchpad 时使用。\n * 即每次打开 launchpad 使用的都是上一次获取的数据,以便达到两个效果:\n * - 每次打开 launchpad 都能立即显示菜单列表;\n * - 同时当用户在 launchpad 上操作时,不会出现数据突然更新(新数据请求完成)。\n */\nexport function useLaunchpadInfo(active?: boolean) {\n const [desktops, setDesktops] = useState(candidateDesktops);\n const [microAppsById, setMicroAppsById] = useState(candidateMicroAppsById);\n const [customLinksById, setCustomLinksById] = useState(\n candidateCustomLinksById\n );\n\n const [q, setQ] = useState(\"\");\n\n const [loading, setLoading] = useState(!preLoaded);\n const [loadingFavorites, setLoadingFavorites] = useState(!preLoadedFavorites);\n const [loadingPlatformCategories, setLoadingPlatformCategories] = useState(\n !preLoadedPlatformCategories\n );\n\n const [storedRecentVisits, setStoredRecentVisits] = useState<\n StoredMenuItem[]\n >([]);\n\n const [recentVisits, setRecentVisits] = useState<MenuItemDataNormal[]>([]);\n\n const [favorites, setFavorites] = useState<FavMenuItem[]>(candidateFavorites);\n const [platformCategories, setPlatformCategories] = useState<\n PlatformCategoryItem[]\n >(candidatePlatformCategories);\n\n useEffect(() => {\n // 仅当首次加载完成或重新打开 launchpad 时更新一次数据。\n if (active && !loading) {\n setDesktops(candidateDesktops);\n setMicroAppsById(candidateMicroAppsById);\n setCustomLinksById(candidateCustomLinksById);\n }\n }, [active, loading]);\n\n useEffect(() => {\n if (active && !loadingFavorites) {\n setFavorites(candidateFavorites);\n }\n }, [active, loadingFavorites]);\n\n useEffect(() => {\n if (active && !loadingPlatformCategories) {\n setPlatformCategories(candidatePlatformCategories);\n }\n }, [active, loadingPlatformCategories]);\n\n useEffect(() => {\n if (active) {\n setStoredRecentVisits(storage.getItem(storageKey) ?? []);\n }\n }, [active]);\n\n useEffect(() => {\n if (active) {\n const startFetchLaunchpadInfo = async (): Promise<void> => {\n try {\n await deferredLaunchpadInfo.fetch();\n setLoading(false);\n } catch (error) {\n handleHttpError(error);\n }\n };\n startFetchLaunchpadInfo();\n }\n }, [active]);\n\n useEffect(() => {\n if (active) {\n const startFetchFavorites = async (): Promise<void> => {\n try {\n await deferredFavorites.fetch();\n setLoadingFavorites(false);\n } catch (error) {\n setLoadingFavorites(false);\n showErrorAsNotification(error);\n }\n };\n startFetchFavorites();\n }\n }, [active]);\n\n useEffect(() => {\n if (\n active &&\n getRuntime()?.getFeatureFlags()[\"launchpad-show-platform-category\"]\n ) {\n const startFetchPlatformCategories = async (): Promise<void> => {\n try {\n await deferredPlatformCategories.fetch();\n setLoadingPlatformCategories(false);\n } catch (error) {\n setLoadingPlatformCategories(false);\n showErrorAsNotification(error);\n }\n };\n startFetchPlatformCategories();\n }\n }, [active]);\n\n useEffect(() => {\n if (loading) {\n return;\n }\n const visits = storedRecentVisits\n .map((item) => {\n // Remembered recent visits maybe no longer existed in launchpad\n if (item.type === \"app\") {\n const app = microAppsById.get(item.id);\n return app\n ? {\n type: \"app\",\n name: app.localeName,\n id: app.id,\n url: app.homepage,\n instanceId: app.instanceId,\n menuIcon: app.menuIcon,\n }\n : null;\n }\n return customLinksById.get(item.id);\n })\n .filter(Boolean) as MenuItemDataNormal[];\n setRecentVisits(visits);\n }, [customLinksById, loading, microAppsById, storedRecentVisits]);\n\n const pushRecentVisit = useCallback(({ type, id }: StoredMenuItem) => {\n const visits: StoredMenuItem[] = storage.getItem(storageKey) ?? [];\n const index = visits.findIndex(\n (visit) => visit.type === type && visit.id === id\n );\n if (index > -1) {\n visits.splice(index, 1);\n }\n visits.unshift({ type, id });\n if (visits.length > RECENT_VISITS_LIMIT) {\n visits.pop();\n }\n // setStoredRecentVisits(visits);\n storage.setItem(storageKey, visits);\n }, []);\n\n const isStarred = useCallback(\n (item: MenuItemDataNormal) =>\n favorites.some((fav) => matchFavorite(item, fav)),\n [favorites]\n );\n\n const toggleStar = useCallback(\n (item: MenuItemDataNormal | MenuItemDataLink) => {\n const index = favorites.findIndex((fav) =>\n item.type === \"link\"\n ? fav.favoriteId === item.favoriteId\n : matchFavorite(item, fav)\n );\n let newFavorites: FavMenuItem[];\n if (index > -1) {\n const removed = favorites[index];\n newFavorites = favorites\n .slice(0, index)\n .concat(favorites.slice(index + 1));\n undoFavorite(removed).catch(showErrorAsNotification);\n } else {\n if (favorites.length >= FAVORITES_LIMIT) {\n showDialog({\n type: \"warn\",\n title: \"收藏数量已达上限\",\n content: `当前收藏链接数量已达上限(${FAVORITES_LIMIT}个),请删除部分收藏后再添加。`,\n });\n return;\n }\n // Assert: no link item\n const fav: FavMenuItem = { ...(item as MenuItemDataNormal) };\n newFavorites = favorites.concat(fav);\n favorite(item as MenuItemDataNormal).then((result) => {\n if (result) {\n fav.favoriteId = result.instanceId;\n }\n }, showErrorAsNotification);\n }\n setFavorites(newFavorites);\n candidateFavorites = newFavorites;\n },\n [favorites]\n );\n\n const menuGroups: MenuGroupData[] = useMemo(\n () => search(desktops, q),\n [desktops, q]\n );\n\n const filteredPlatformCategories: PlatformCategoryItem[] = useMemo(\n () => searchCategories(platformCategories, q),\n [platformCategories, q]\n );\n\n return {\n loading,\n q,\n setQ,\n menuGroups,\n loadingFavorites,\n loadingPlatformCategories,\n favorites,\n recentVisits,\n pushRecentVisit,\n isStarred,\n toggleStar,\n platformCategories: filteredPlatformCategories,\n };\n}\n\nexport function matchFavorite(item: MenuItemDataNormal, fav: FavMenuItem) {\n return item.instanceId && fav.instanceId\n ? fav.instanceId === item.instanceId\n : fav.type === item.type && fav.id === item.id;\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 { showDialog as _showDialog } from \"@next-bricks/basic/data-providers/show-dialog/show-dialog\";\nimport type { showNotification as _showNotification } from \"@next-bricks/basic/data-providers/show-notification/show-notification\";\n\nexport const WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\nexport const WrappedLink = wrapBrick<Link, LinkProps>(\"eo-link\");\n\n// Use `unwrapProvider` to get the original function of a provider\nexport const showDialog =\n unwrapProvider<typeof _showDialog>(\"basic.show-dialog\");\n\nexport const showNotification = unwrapProvider<typeof _showNotification>(\n \"basic.show-notification\"\n);\n","export class DeferredService {\n private preFetchId: number | null = null;\n private preFetchScheduled = false;\n private firstFetchPromise: Promise<unknown> | null = null;\n private isFetching = false;\n private readonly task: () => Promise<unknown>;\n\n constructor(task: () => Promise<unknown>) {\n this.task = task;\n }\n\n schedulePrefetch(): void {\n if (!this.preFetchScheduled) {\n this.preFetchScheduled = true;\n const preFetchLaunchpadInfo = async (): Promise<void> => {\n this.preFetchId = null;\n this.fetch();\n };\n // istanbul ignore if\n if (typeof window.requestIdleCallback === \"function\") {\n this.preFetchId = window.requestIdleCallback(preFetchLaunchpadInfo);\n } else {\n this.preFetchId = setTimeout(\n preFetchLaunchpadInfo\n ) as unknown as number;\n }\n }\n }\n\n fetch(eager?: boolean): Promise<unknown> {\n if (this.preFetchId) {\n // istanbul ignore if\n if (typeof window.cancelIdleCallback === \"function\") {\n cancelIdleCallback(this.preFetchId);\n } else {\n clearTimeout(this.preFetchId);\n }\n this.preFetchId = null;\n }\n\n let promise: Promise<unknown>;\n if (!this.isFetching || eager) {\n this.isFetching = true;\n promise = this.task();\n promise\n .catch((error) => {\n // eslint-disable-next-line no-console\n console.error(error);\n this.firstFetchPromise = null;\n })\n .finally(() => {\n this.isFetching = false;\n });\n if (!this.firstFetchPromise) {\n this.firstFetchPromise = promise;\n }\n if (eager) {\n return promise;\n }\n }\n return this.firstFetchPromise!;\n }\n}\n","import { i18nText } from \"@next-core/i18n\";\nimport type { AppLocales, I18nData } from \"@next-core/types\";\n\nexport function getAppLocaleName(\n locales: AppLocales | undefined,\n name: string\n) {\n if (!locales) {\n return name;\n }\n const i18nData = Object.fromEntries(\n Object.entries(locales)\n .filter(([lang, resources]) => resources.name)\n .map(([lang, resources]) => [lang, resources.name])\n ) as I18nData;\n return i18nText(i18nData) ?? name;\n}\n","export class JsonStorage {\n constructor(\n private storage: Storage,\n private prefix: string = \"brick-next-\"\n ) {}\n\n setItem<T = any>(name: string, value: T): void {\n this.storage.setItem(this.prefix + name, JSON.stringify(value));\n }\n\n getItem<T = any>(name: string): T {\n return JSON.parse(this.storage.getItem(this.prefix + name) as string) as T;\n }\n\n removeItem(name: string): void {\n return this.storage.removeItem(this.prefix + name);\n }\n\n clear(): void {\n return this.storage.clear();\n }\n}\n"],"names":["FAVORITES_LIMIT","RECENT_VISITS_LIMIT","_fetchLaunchpadInfo","_asyncToGenerator","launchpadInfo","LaunchpadApi_getLaunchpadInfo","interceptorParams","ignoreLoadingBar","noAbortOnRouteChange","microAppsById","Map","storyboard","storyboards","app","localeName","getAppLocaleName","locales","name","set","id","menuGroups","customLinksById","group","desktops","items","item","type","get","push","_objectSpread","url","homepage","menuIcon","subItems","subItem","length","apply","arguments","fetchRawFavorites","_fetchRawFavorites","LaunchpadApi_listCollectionV2","page","pageSize","list","_fetchFavorites","stored","fav","relatedApp","favoriteId","instanceId","appId","customItem","relatedCustomItem","link","icon","_favorite","LaunchpadApi_createCollectionV2","relatedInstanceId","_undoFavorite","LaunchpadApi_deleteCollectionV2","then","_list$find","foundId","find","_fav$relatedApp","_fav$relatedCustomIte","console","error","_fetchPlatformCategories","categories","InstanceApi_postSearchV3","fields","page_size","query","_categories","map","category","apps","platformApps","_app$","description","order","customItems","platformItems","_item$","sortBy","lib","matchMenuItemApp","lowerQ","toLowerCase","includes","matchMenuItemCustom","storageKey","concat","_auth$getAuth","auth","getAuth","org","storage","JsonStorage","localStorage","candidateDesktops","candidateMicroAppsById","candidateCustomLinksById","preLoaded","candidateFavorites","preLoadedFavorites","candidatePlatformCategories","preLoadedPlatformCategories","deferredLaunchpadInfo","DeferredService","fetchLaunchpadInfo","deferredFavorites","fetchFavorites","deferredPlatformCategories","fetchPlatformCategories","showErrorAsNotification","showNotification","message","httpErrorToString","useLaunchpadInfo","active","setDesktops","useState","setMicroAppsById","setCustomLinksById","q","setQ","loading","setLoading","loadingFavorites","setLoadingFavorites","loadingPlatformCategories","setLoadingPlatformCategories","storedRecentVisits","setStoredRecentVisits","recentVisits","setRecentVisits","favorites","setFavorites","platformCategories","setPlatformCategories","useEffect","_storage$getItem","getItem","startFetchLaunchpadInfo","_ref4","fetch","handleHttpError","startFetchFavorites","_ref5","_getRuntime","getRuntime","getFeatureFlags","startFetchPlatformCategories","_ref6","visits","filter","Boolean","pushRecentVisit","useCallback","_ref7","_storage$getItem2","index","findIndex","visit","splice","unshift","pop","setItem","isStarred","some","matchFavorite","toggleStar","newFavorites","removed","slice","_x2","undoFavorite","catch","showDialog","title","content","_x","favorite","result","useMemo","allMenuGroups","filteredSubItems","sub","search","filteredPlatformCategories","searchCategories","WrappedIcon","wrapBrick","WrappedLink","unwrapProvider","constructor","task","_defineProperty","this","schedulePrefetch","_this","preFetchScheduled","preFetchLaunchpadInfo","_ref","preFetchId","window","requestIdleCallback","setTimeout","eager","promise","cancelIdleCallback","clearTimeout","isFetching","firstFetchPromise","finally","_i18nText","i18nData","Object","fromEntries","entries","lang","resources","_ref2","i18nText","prefix","undefined","value","JSON","stringify","parse","removeItem","clear"],"sourceRoot":""}
@@ -1,2 +1,2 @@
1
- "use strict";(self.webpackChunk_next_bricks_nav=self.webpackChunk_next_bricks_nav||[]).push([[6681,5850,5628],{5074:(e,t,r)=>{r.r(t),r.d(t,{EasyopsNavbarAlerts:()=>i,EasyopsNavbarAlertsComponent:()=>k,WrappedIcon:()=>y,WrappedLink:()=>w});var n,o,a,i,c=r(5066),l=r(8657),s=r.n(l),u=r(7844),f=r(8835),d=r(6594),p=r(1150),v=r(738),m=(r(4629),r(2890)),g=r(5239),h=r.n(g),b=r(7128),y=(0,f.wrapBrick)("eo-icon"),w=(0,f.wrapBrick)("eo-link"),{defineElement:x}=(0,u.createDecorators)();o=x("nav.easyops-navbar-alerts",{styleTexts:[b.Z]});class E extends f.ReactNextElement{render(){return s().createElement(k,null)}}a=E,[i,n]=(0,c.Z)(a,[],[o],0,void 0,f.ReactNextElement).c,n();var S=new m.o(localStorage);function k(){var[e,t]=(0,l.useState)(null),[r,n]=(0,l.useState)(null),o=(0,p.useCurrentApp)(),a=(0,l.useMemo)((()=>{var e=v.auth.getAuth();return"license:".concat(e.org)}),[]);(0,l.useEffect)((()=>{var e,r,n=v.auth.getAuth(),o=null===(e=n.license)||void 0===e?void 0:e.validDaysLeft;o&&o<=15&&n.isAdmin&&(!(r=S.getItem(a))||h()().unix()>r)&&t(o)}),[a]),(0,l.useEffect)((()=>{var e=e=>{var t=e.detail.renderTime,{loadTime:r,loadInfoPage:a}=(0,d.getRuntime)().getMiscSettings();null!=o&&o.isBuildPush&&r>0&&t>r&&n({renderTime:j(t),suggestTime:j(r),suggestUrl:a})};return window.addEventListener("route.render",e),()=>{window.removeEventListener("route.render",e)}}),[o]);var i=(0,l.useCallback)((()=>{S.setItem(a,h()().unix()+86400),t(null)}),[a]);return s().createElement(s().Fragment,null,r&&s().createElement(Z,{text:"您的页面存在性能问题, 当前页面渲染时间 ".concat(r.renderTime," 秒, 规定阈值为: ").concat(r.suggestTime," 秒, 您已超过。请您针对该页面进行性能优化!"),type:"warning",link:r.suggestUrl?{label:"建议解决思路",url:r.suggestUrl}:void 0}),null!==e&&s().createElement(Z,{text:"离 License 过期还有 ".concat(e," 天"),type:"info",closable:!0,onClose:i}))}function Z(e){var{text:t,type:r,closable:n,link:o,onClose:a}=e;return s().createElement("div",{className:"alert ".concat(r)},s().createElement("span",{className:"text"},t),o&&s().createElement(w,{className:"link",href:o.url,target:"_blank"},o.label),n&&s().createElement(y,{lib:"antd",icon:"close",className:"icon",role:"button",onClick:a}))}function j(e){return Math.floor(100*e)/1e5}},7128:(e,t,r)=>{r.d(t,{Z:()=>c});var n=r(9601),o=r.n(n),a=r(2609),i=r.n(a)()(o());i.push([e.id,":host{display:block}:host([hidden]){display:none}.alert{height:32px;padding:0 20px;display:flex;justify-content:center;align-items:center}.text{color:var(--antd-text-color);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.icon{margin-left:20px;cursor:pointer;color:#8c8c8c}.info{background-color:var(--color-info-bg)}.warning{background-color:var(--color-warning-bg)}",""]);const c=i.toString()},2609:e=>{e.exports=function(e){var t=[];return t.toString=function(){return this.map((function(t){var r="",n=void 0!==t[5];return t[4]&&(r+="@supports (".concat(t[4],") {")),t[2]&&(r+="@media ".concat(t[2]," {")),n&&(r+="@layer".concat(t[5].length>0?" ".concat(t[5]):""," {")),r+=e(t),n&&(r+="}"),t[2]&&(r+="}"),t[4]&&(r+="}"),r})).join("")},t.i=function(e,r,n,o,a){"string"==typeof e&&(e=[[null,e,void 0]]);var i={};if(n)for(var c=0;c<this.length;c++){var l=this[c][0];null!=l&&(i[l]=!0)}for(var s=0;s<e.length;s++){var u=[].concat(e[s]);n&&i[u[0]]||(void 0!==a&&(void 0===u[5]||(u[1]="@layer".concat(u[5].length>0?" ".concat(u[5]):""," {").concat(u[1],"}")),u[5]=a),r&&(u[2]?(u[1]="@media ".concat(u[2]," {").concat(u[1],"}"),u[2]=r):u[2]=r),o&&(u[4]?(u[1]="@supports (".concat(u[4],") {").concat(u[1],"}"),u[4]=o):u[4]="".concat(o)),t.push(u))}},t}},9601:e=>{e.exports=function(e){return e[1]}},5066:(e,t,r)=>{r.d(t,{Z:()=>c});var n=r(6522),o=r(1815);function a(e,t,r){"symbol"==(0,n.Z)(t)&&(t=(t=t.description)?"["+t+"]":"");try{Object.defineProperty(e,"name",{configurable:!0,value:r?r+" "+t:t})}catch(e){}return e}var i=r(5850);function c(e,t,r,c,l,s){function u(e,t,r){return function(n,o){return r&&r(n),e[t].call(n,o)}}function f(e,t){for(var r=0;r<e.length;r++)e[r].call(t);return t}function d(e,t,r,n){if("function"!=typeof e&&(n||void 0!==e))throw new TypeError(t+" must "+(r||"be")+" a function"+(n?"":" or undefined"));return e}function p(e,t,r,o,i,c,l,s,f,p,v,m,g){function h(e){if(!g(e))throw new TypeError("Attempted to access private element on non-instance")}var b,y,w=t[0],x=t[3],E=!s;if(!E){r||Array.isArray(w)||(w=[w]);var S={},k=[],Z=3===i?"get":4===i||m?"set":"value";p?(v||m?S={get:a((function(){return x(this)}),o,"get"),set:function(e){t[4](this,e)}}:S[Z]=x,v||a(S[Z],o,2===i?"":Z)):v||(S=Object.getOwnPropertyDescriptor(e,o))}for(var j=w.length-1;j>=0;j-=r?2:1){var A=w[j],T=r?w[j-1]:void 0,I={},N={kind:["field","accessor","method","getter","setter","field","class"][i],name:o,metadata:c,addInitializer:function(e,t){if(e.v)throw new Error("attempted to call addInitializer after decoration was finished");d(t,"An initializer","be",!0),l.push(t)}.bind(null,I)};try{if(E)y=A.call(T,e,N);else{var O,P;N.static=f,N.private=p,p||!v&&2!==i?2===i?O=function(e){return h(e),S.value}:((i<2||3===i)&&(O=u(S,"get",p&&h)),(i<2||4===i)&&(P=u(S,"set",p&&h))):(O=function(e){return e[o]},v&&(P=function(e,t){e[o]=t}));var C=N.access={has:p?g.bind():function(e){return o in e}};if(O&&(C.get=O),P&&(C.set=P),y=A.call(T,m?{get:S.get,set:S.set}:S[Z],N),m){if("object"==(0,n.Z)(y)&&y)(b=d(y.get,"accessor.get"))&&(S.get=b),(b=d(y.set,"accessor.set"))&&(S.set=b),(b=d(y.init,"accessor.init"))&&k.push(b);else if(void 0!==y)throw new TypeError("accessor decorators must return an object with get, set, or init properties or void 0")}else d(y,(v?"field":"method")+" decorators","return")&&(v?k.push(y):S[Z]=y)}}finally{I.v=!0}}return(v||m)&&s.push((function(e,t){for(var r=k.length-1;r>=0;r--)t=k[r].call(e,t);return t})),v||E||(p?m?s.push(u(S,"get"),u(S,"set")):s.push(2===i?S[Z]:u.call.bind(S[Z])):Object.defineProperty(e,o,S)),y}function v(e,t){return Object.defineProperty(e,Symbol.metadata||Symbol.for("Symbol.metadata"),{configurable:!0,enumerable:!0,value:t})}if(arguments.length>=6)var m=s[Symbol.metadata||Symbol.for("Symbol.metadata")];var g=Object.create(null==m?null:m),h=function(e,t,r,n){var a,c,l=[],s=function(t){return(0,o.Z)(t)===e},u=new Map;function d(e){e&&l.push(f.bind(null,e))}for(var v=0;v<t.length;v++){var m=t[v];if(Array.isArray(m)){var g=m[1],h=m[2],b=m.length>3,y=16&g,w=!!(8&g),x=0==(g&=7),E=h+"/"+w;if(!x&&!b){var S=u.get(E);if(!0===S||3===S&&4!==g||4===S&&3!==g)throw new Error("Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: "+h);u.set(E,!(g>2)||g)}p(w?e:e.prototype,m,y,b?"#"+h:(0,i.Z)(h),g,n,w?c=c||[]:a=a||[],l,w,b,x,1===g,w&&b?s:r)}}return d(a),d(c),l}(e,t,l,g);return r.length||v(e,g),{e:h,get c(){var t=[];return r.length&&[v(d(p(e,[r],c,e.name,5,g,t),"class decorators","return")||e,g),f.bind(null,t,e)]}}}},1815:(e,t,r)=>{r.d(t,{Z:()=>o});var n=r(6522);function o(e){if(Object(e)!==e)throw TypeError("right-hand side of 'in' should be an object, got "+(null!==e?(0,n.Z)(e):"null"));return e}},5850:(e,t,r)=>{r.d(t,{Z:()=>o});var n=r(6522);function o(e){var t=function(e,t){if("object"!=(0,n.Z)(e)||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var o=r.call(e,"string");if("object"!=(0,n.Z)(o))return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==(0,n.Z)(t)?t:String(t)}},6522:(e,t,r)=>{function n(e){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},n(e)}r.d(t,{Z:()=>n})},2890:(e,t,r)=>{r.d(t,{o:()=>n});class n{constructor(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"brick-next-";this.storage=e,this.prefix=t}setItem(e,t){this.storage.setItem(this.prefix+e,JSON.stringify(t))}getItem(e){return JSON.parse(this.storage.getItem(this.prefix+e))}removeItem(e){return this.storage.removeItem(this.prefix+e)}clear(){return this.storage.clear()}}}}]);
2
- //# sourceMappingURL=easyops-navbar-alerts.f1a00fad.js.map
1
+ "use strict";(self.webpackChunk_next_bricks_nav=self.webpackChunk_next_bricks_nav||[]).push([[6681,5850,5628],{5074:(e,t,r)=>{r.r(t),r.d(t,{EasyopsNavbarAlerts:()=>i,EasyopsNavbarAlertsComponent:()=>k,WrappedIcon:()=>y,WrappedLink:()=>w});var n,o,a,i,c=r(5066),l=r(8657),s=r.n(l),u=r(7844),f=r(8835),d=r(6594),p=r(1150),v=r(738),m=(r(2006),r(2890)),g=r(5239),h=r.n(g),b=r(7128),y=(0,f.wrapBrick)("eo-icon"),w=(0,f.wrapBrick)("eo-link"),{defineElement:x}=(0,u.createDecorators)();o=x("nav.easyops-navbar-alerts",{styleTexts:[b.Z]});class E extends f.ReactNextElement{render(){return s().createElement(k,null)}}a=E,[i,n]=(0,c.Z)(a,[],[o],0,void 0,f.ReactNextElement).c,n();var S=new m.o(localStorage);function k(){var[e,t]=(0,l.useState)(null),[r,n]=(0,l.useState)(null),o=(0,p.useCurrentApp)(),a=(0,l.useMemo)((()=>{var e=v.auth.getAuth();return"license:".concat(e.org)}),[]);(0,l.useEffect)((()=>{var e,r,n=v.auth.getAuth(),o=null===(e=n.license)||void 0===e?void 0:e.validDaysLeft;o&&o<=15&&n.isAdmin&&(!(r=S.getItem(a))||h()().unix()>r)&&t(o)}),[a]),(0,l.useEffect)((()=>{var e=e=>{var t=e.detail.renderTime,{loadTime:r,loadInfoPage:a}=(0,d.getRuntime)().getMiscSettings();null!=o&&o.isBuildPush&&r>0&&t>r&&n({renderTime:j(t),suggestTime:j(r),suggestUrl:a})};return window.addEventListener("route.render",e),()=>{window.removeEventListener("route.render",e)}}),[o]);var i=(0,l.useCallback)((()=>{S.setItem(a,h()().unix()+86400),t(null)}),[a]);return s().createElement(s().Fragment,null,r&&s().createElement(Z,{text:"您的页面存在性能问题, 当前页面渲染时间 ".concat(r.renderTime," 秒, 规定阈值为: ").concat(r.suggestTime," 秒, 您已超过。请您针对该页面进行性能优化!"),type:"warning",link:r.suggestUrl?{label:"建议解决思路",url:r.suggestUrl}:void 0}),null!==e&&s().createElement(Z,{text:"离 License 过期还有 ".concat(e," 天"),type:"info",closable:!0,onClose:i}))}function Z(e){var{text:t,type:r,closable:n,link:o,onClose:a}=e;return s().createElement("div",{className:"alert ".concat(r)},s().createElement("span",{className:"text"},t),o&&s().createElement(w,{className:"link",href:o.url,target:"_blank"},o.label),n&&s().createElement(y,{lib:"antd",icon:"close",className:"icon",role:"button",onClick:a}))}function j(e){return Math.floor(100*e)/1e5}},7128:(e,t,r)=>{r.d(t,{Z:()=>c});var n=r(9601),o=r.n(n),a=r(2609),i=r.n(a)()(o());i.push([e.id,":host{display:block}:host([hidden]){display:none}.alert{height:32px;padding:0 20px;display:flex;justify-content:center;align-items:center}.text{color:var(--antd-text-color);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.icon{margin-left:20px;cursor:pointer;color:#8c8c8c}.info{background-color:var(--color-info-bg)}.warning{background-color:var(--color-warning-bg)}",""]);const c=i.toString()},2609:e=>{e.exports=function(e){var t=[];return t.toString=function(){return this.map((function(t){var r="",n=void 0!==t[5];return t[4]&&(r+="@supports (".concat(t[4],") {")),t[2]&&(r+="@media ".concat(t[2]," {")),n&&(r+="@layer".concat(t[5].length>0?" ".concat(t[5]):""," {")),r+=e(t),n&&(r+="}"),t[2]&&(r+="}"),t[4]&&(r+="}"),r})).join("")},t.i=function(e,r,n,o,a){"string"==typeof e&&(e=[[null,e,void 0]]);var i={};if(n)for(var c=0;c<this.length;c++){var l=this[c][0];null!=l&&(i[l]=!0)}for(var s=0;s<e.length;s++){var u=[].concat(e[s]);n&&i[u[0]]||(void 0!==a&&(void 0===u[5]||(u[1]="@layer".concat(u[5].length>0?" ".concat(u[5]):""," {").concat(u[1],"}")),u[5]=a),r&&(u[2]?(u[1]="@media ".concat(u[2]," {").concat(u[1],"}"),u[2]=r):u[2]=r),o&&(u[4]?(u[1]="@supports (".concat(u[4],") {").concat(u[1],"}"),u[4]=o):u[4]="".concat(o)),t.push(u))}},t}},9601:e=>{e.exports=function(e){return e[1]}},5066:(e,t,r)=>{r.d(t,{Z:()=>c});var n=r(6522),o=r(1815);function a(e,t,r){"symbol"==(0,n.Z)(t)&&(t=(t=t.description)?"["+t+"]":"");try{Object.defineProperty(e,"name",{configurable:!0,value:r?r+" "+t:t})}catch(e){}return e}var i=r(5850);function c(e,t,r,c,l,s){function u(e,t,r){return function(n,o){return r&&r(n),e[t].call(n,o)}}function f(e,t){for(var r=0;r<e.length;r++)e[r].call(t);return t}function d(e,t,r,n){if("function"!=typeof e&&(n||void 0!==e))throw new TypeError(t+" must "+(r||"be")+" a function"+(n?"":" or undefined"));return e}function p(e,t,r,o,i,c,l,s,f,p,v,m,g){function h(e){if(!g(e))throw new TypeError("Attempted to access private element on non-instance")}var b,y,w=t[0],x=t[3],E=!s;if(!E){r||Array.isArray(w)||(w=[w]);var S={},k=[],Z=3===i?"get":4===i||m?"set":"value";p?(v||m?S={get:a((function(){return x(this)}),o,"get"),set:function(e){t[4](this,e)}}:S[Z]=x,v||a(S[Z],o,2===i?"":Z)):v||(S=Object.getOwnPropertyDescriptor(e,o))}for(var j=w.length-1;j>=0;j-=r?2:1){var A=w[j],T=r?w[j-1]:void 0,I={},N={kind:["field","accessor","method","getter","setter","field","class"][i],name:o,metadata:c,addInitializer:function(e,t){if(e.v)throw new Error("attempted to call addInitializer after decoration was finished");d(t,"An initializer","be",!0),l.push(t)}.bind(null,I)};try{if(E)y=A.call(T,e,N);else{var O,P;N.static=f,N.private=p,p||!v&&2!==i?2===i?O=function(e){return h(e),S.value}:((i<2||3===i)&&(O=u(S,"get",p&&h)),(i<2||4===i)&&(P=u(S,"set",p&&h))):(O=function(e){return e[o]},v&&(P=function(e,t){e[o]=t}));var C=N.access={has:p?g.bind():function(e){return o in e}};if(O&&(C.get=O),P&&(C.set=P),y=A.call(T,m?{get:S.get,set:S.set}:S[Z],N),m){if("object"==(0,n.Z)(y)&&y)(b=d(y.get,"accessor.get"))&&(S.get=b),(b=d(y.set,"accessor.set"))&&(S.set=b),(b=d(y.init,"accessor.init"))&&k.push(b);else if(void 0!==y)throw new TypeError("accessor decorators must return an object with get, set, or init properties or void 0")}else d(y,(v?"field":"method")+" decorators","return")&&(v?k.push(y):S[Z]=y)}}finally{I.v=!0}}return(v||m)&&s.push((function(e,t){for(var r=k.length-1;r>=0;r--)t=k[r].call(e,t);return t})),v||E||(p?m?s.push(u(S,"get"),u(S,"set")):s.push(2===i?S[Z]:u.call.bind(S[Z])):Object.defineProperty(e,o,S)),y}function v(e,t){return Object.defineProperty(e,Symbol.metadata||Symbol.for("Symbol.metadata"),{configurable:!0,enumerable:!0,value:t})}if(arguments.length>=6)var m=s[Symbol.metadata||Symbol.for("Symbol.metadata")];var g=Object.create(null==m?null:m),h=function(e,t,r,n){var a,c,l=[],s=function(t){return(0,o.Z)(t)===e},u=new Map;function d(e){e&&l.push(f.bind(null,e))}for(var v=0;v<t.length;v++){var m=t[v];if(Array.isArray(m)){var g=m[1],h=m[2],b=m.length>3,y=16&g,w=!!(8&g),x=0==(g&=7),E=h+"/"+w;if(!x&&!b){var S=u.get(E);if(!0===S||3===S&&4!==g||4===S&&3!==g)throw new Error("Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: "+h);u.set(E,!(g>2)||g)}p(w?e:e.prototype,m,y,b?"#"+h:(0,i.Z)(h),g,n,w?c=c||[]:a=a||[],l,w,b,x,1===g,w&&b?s:r)}}return d(a),d(c),l}(e,t,l,g);return r.length||v(e,g),{e:h,get c(){var t=[];return r.length&&[v(d(p(e,[r],c,e.name,5,g,t),"class decorators","return")||e,g),f.bind(null,t,e)]}}}},1815:(e,t,r)=>{r.d(t,{Z:()=>o});var n=r(6522);function o(e){if(Object(e)!==e)throw TypeError("right-hand side of 'in' should be an object, got "+(null!==e?(0,n.Z)(e):"null"));return e}},5850:(e,t,r)=>{r.d(t,{Z:()=>o});var n=r(6522);function o(e){var t=function(e,t){if("object"!=(0,n.Z)(e)||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var o=r.call(e,"string");if("object"!=(0,n.Z)(o))return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==(0,n.Z)(t)?t:String(t)}},6522:(e,t,r)=>{function n(e){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},n(e)}r.d(t,{Z:()=>n})},2890:(e,t,r)=>{r.d(t,{o:()=>n});class n{constructor(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"brick-next-";this.storage=e,this.prefix=t}setItem(e,t){this.storage.setItem(this.prefix+e,JSON.stringify(t))}getItem(e){return JSON.parse(this.storage.getItem(this.prefix+e))}removeItem(e){return this.storage.removeItem(this.prefix+e)}clear(){return this.storage.clear()}}}}]);
2
+ //# sourceMappingURL=easyops-navbar-alerts.9ea93872.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"chunks/easyops-navbar-alerts.f1a00fad.js","mappings":"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","sources":["webpack:///./src/easyops-navbar-alerts/index.tsx","webpack:///./src/easyops-navbar-alerts/styles.shadow.css","webpack:///../../node_modules/css-loader/dist/runtime/api.js","webpack:///../../node_modules/css-loader/dist/runtime/noSourceMaps.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/setFunctionName.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/applyDecs2305.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/checkInRHS.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/toPrimitive.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/typeof.js","webpack:///../../src/JsonStorage.ts"],"sourcesContent":["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","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:block}:host([hidden]){display:none}.alert{height:32px;padding:0 20px;display:flex;justify-content:center;align-items:center}.text{color:var(--antd-text-color);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.icon{margin-left:20px;cursor:pointer;color:#8c8c8c}.info{background-color:var(--color-info-bg)}.warning{background-color:var(--color-warning-bg)}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","\"use strict\";\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\nmodule.exports = function (cssWithMappingToString) {\n var list = [];\n\n // return the list of modules as css string\n list.toString = function toString() {\n return this.map(function (item) {\n var content = \"\";\n var needLayer = typeof item[5] !== \"undefined\";\n if (item[4]) {\n content += \"@supports (\".concat(item[4], \") {\");\n }\n if (item[2]) {\n content += \"@media \".concat(item[2], \" {\");\n }\n if (needLayer) {\n content += \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\");\n }\n content += cssWithMappingToString(item);\n if (needLayer) {\n content += \"}\";\n }\n if (item[2]) {\n content += \"}\";\n }\n if (item[4]) {\n content += \"}\";\n }\n return content;\n }).join(\"\");\n };\n\n // import a list of modules into the list\n list.i = function i(modules, media, dedupe, supports, layer) {\n if (typeof modules === \"string\") {\n modules = [[null, modules, undefined]];\n }\n var alreadyImportedModules = {};\n if (dedupe) {\n for (var k = 0; k < this.length; k++) {\n var id = this[k][0];\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n for (var _k = 0; _k < modules.length; _k++) {\n var item = [].concat(modules[_k]);\n if (dedupe && alreadyImportedModules[item[0]]) {\n continue;\n }\n if (typeof layer !== \"undefined\") {\n if (typeof item[5] === \"undefined\") {\n item[5] = layer;\n } else {\n item[1] = \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\").concat(item[1], \"}\");\n item[5] = layer;\n }\n }\n if (media) {\n if (!item[2]) {\n item[2] = media;\n } else {\n item[1] = \"@media \".concat(item[2], \" {\").concat(item[1], \"}\");\n item[2] = media;\n }\n }\n if (supports) {\n if (!item[4]) {\n item[4] = \"\".concat(supports);\n } else {\n item[1] = \"@supports (\".concat(item[4], \") {\").concat(item[1], \"}\");\n item[4] = supports;\n }\n }\n list.push(item);\n }\n };\n return list;\n};","\"use strict\";\n\nmodule.exports = function (i) {\n return i[1];\n};","import _typeof from \"./typeof.js\";\nexport default function setFunctionName(e, t, n) {\n \"symbol\" == _typeof(t) && (t = (t = t.description) ? \"[\" + t + \"]\" : \"\");\n try {\n Object.defineProperty(e, \"name\", {\n configurable: !0,\n value: n ? n + \" \" + t : t\n });\n } catch (e) {}\n return e;\n}","import _typeof from \"./typeof.js\";\nimport checkInRHS from \"./checkInRHS.js\";\nimport setFunctionName from \"./setFunctionName.js\";\nimport toPropertyKey from \"./toPropertyKey.js\";\nexport default function applyDecs2305(e, t, r, n, o, a) {\n function i(e, t, r) {\n return function (n, o) {\n return r && r(n), e[t].call(n, o);\n };\n }\n function c(e, t) {\n for (var r = 0; r < e.length; r++) e[r].call(t);\n return t;\n }\n function s(e, t, r, n) {\n if (\"function\" != typeof e && (n || void 0 !== e)) throw new TypeError(t + \" must \" + (r || \"be\") + \" a function\" + (n ? \"\" : \" or undefined\"));\n return e;\n }\n function applyDec(e, t, r, n, o, a, c, u, l, f, p, d, h) {\n function m(e) {\n if (!h(e)) throw new TypeError(\"Attempted to access private element on non-instance\");\n }\n var y,\n v,\n g = t[0],\n b = t[3],\n w = !u;\n if (!w) {\n r || Array.isArray(g) || (g = [g]);\n var S = {},\n A = [],\n P = 3 === o ? \"get\" : 4 === o || d ? \"set\" : \"value\";\n f ? (p || d ? S = {\n get: setFunctionName(function () {\n return b(this);\n }, n, \"get\"),\n set: function set(e) {\n t[4](this, e);\n }\n } : S[P] = b, p || setFunctionName(S[P], n, 2 === o ? \"\" : P)) : p || (S = Object.getOwnPropertyDescriptor(e, n));\n }\n for (var j = g.length - 1; j >= 0; j -= r ? 2 : 1) {\n var D = g[j],\n E = r ? g[j - 1] : void 0,\n I = {},\n O = {\n kind: [\"field\", \"accessor\", \"method\", \"getter\", \"setter\", \"field\", \"class\"][o],\n name: n,\n metadata: a,\n addInitializer: function (e, t) {\n if (e.v) throw new Error(\"attempted to call addInitializer after decoration was finished\");\n s(t, \"An initializer\", \"be\", !0), c.push(t);\n }.bind(null, I)\n };\n try {\n if (w) v = D.call(E, e, O);else {\n var k, F;\n O[\"static\"] = l, O[\"private\"] = f, f || !p && 2 !== o ? 2 === o ? k = function k(e) {\n return m(e), S.value;\n } : ((o < 2 || 3 === o) && (k = i(S, \"get\", f && m)), (o < 2 || 4 === o) && (F = i(S, \"set\", f && m))) : (k = function k(e) {\n return e[n];\n }, p && (F = function F(e, t) {\n e[n] = t;\n }));\n var N = O.access = {\n has: f ? h.bind() : function (e) {\n return n in e;\n }\n };\n if (k && (N.get = k), F && (N.set = F), v = D.call(E, d ? {\n get: S.get,\n set: S.set\n } : S[P], O), d) {\n if (\"object\" == _typeof(v) && v) (y = s(v.get, \"accessor.get\")) && (S.get = y), (y = s(v.set, \"accessor.set\")) && (S.set = y), (y = s(v.init, \"accessor.init\")) && A.push(y);else if (void 0 !== v) throw new TypeError(\"accessor decorators must return an object with get, set, or init properties or void 0\");\n } else s(v, (p ? \"field\" : \"method\") + \" decorators\", \"return\") && (p ? A.push(v) : S[P] = v);\n }\n } finally {\n I.v = !0;\n }\n }\n return (p || d) && u.push(function (e, t) {\n for (var r = A.length - 1; r >= 0; r--) t = A[r].call(e, t);\n return t;\n }), p || w || (f ? d ? u.push(i(S, \"get\"), i(S, \"set\")) : u.push(2 === o ? S[P] : i.call.bind(S[P])) : Object.defineProperty(e, n, S)), v;\n }\n function u(e, t) {\n return Object.defineProperty(e, Symbol.metadata || Symbol[\"for\"](\"Symbol.metadata\"), {\n configurable: !0,\n enumerable: !0,\n value: t\n });\n }\n if (arguments.length >= 6) var l = a[Symbol.metadata || Symbol[\"for\"](\"Symbol.metadata\")];\n var f = Object.create(null == l ? null : l),\n p = function (e, t, r, n) {\n var o,\n a,\n i = [],\n s = function s(t) {\n return checkInRHS(t) === e;\n },\n u = new Map();\n function l(e) {\n e && i.push(c.bind(null, e));\n }\n for (var f = 0; f < t.length; f++) {\n var p = t[f];\n if (Array.isArray(p)) {\n var d = p[1],\n h = p[2],\n m = p.length > 3,\n y = 16 & d,\n v = !!(8 & d),\n g = 0 == (d &= 7),\n b = h + \"/\" + v;\n if (!g && !m) {\n var w = u.get(b);\n if (!0 === w || 3 === w && 4 !== d || 4 === w && 3 !== d) throw new Error(\"Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: \" + h);\n u.set(b, !(d > 2) || d);\n }\n applyDec(v ? e : e.prototype, p, y, m ? \"#\" + h : toPropertyKey(h), d, n, v ? a = a || [] : o = o || [], i, v, m, g, 1 === d, v && m ? s : r);\n }\n }\n return l(o), l(a), i;\n }(e, t, o, f);\n return r.length || u(e, f), {\n e: p,\n get c() {\n var t = [];\n return r.length && [u(s(applyDec(e, [r], n, e.name, 5, f, t), \"class decorators\", \"return\") || e, f), c.bind(null, t, e)];\n }\n };\n}","import _typeof from \"./typeof.js\";\nexport default function _checkInRHS(e) {\n if (Object(e) !== e) throw TypeError(\"right-hand side of 'in' should be an object, got \" + (null !== e ? _typeof(e) : \"null\"));\n return e;\n}","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nexport default function toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : String(i);\n}","import _typeof from \"./typeof.js\";\nexport default function toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}","export default function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}","export class JsonStorage {\n constructor(\n private storage: Storage,\n private prefix: string = \"brick-next-\"\n ) {}\n\n setItem<T = any>(name: string, value: T): void {\n this.storage.setItem(this.prefix + name, JSON.stringify(value));\n }\n\n getItem<T = any>(name: string): T {\n return JSON.parse(this.storage.getItem(this.prefix + name) as string) as T;\n }\n\n removeItem(name: string): void {\n return this.storage.removeItem(this.prefix + name);\n }\n\n clear(): void {\n return this.storage.clear();\n }\n}\n"],"names":["_EasyopsNavbarAlerts","WrappedIcon","wrapBrick","WrappedLink","defineElement","createDecorators","_dec","styleTexts","styleText","EasyopsNavbarAlerts","ReactNextElement","render","React","EasyopsNavbarAlertsComponent","_class","_initClass","_applyDecs","c","storage","JsonStorage","localStorage","licenseDaysLeft","setLicenseDaysLeft","useState","slowRender","setSlowRender","currentApp","useCurrentApp","licenseDismissedKey","useMemo","authInfo","auth","getAuth","concat","org","useEffect","_authInfo$license","dismissExpireAt","validDaysLeft","license","isAdmin","getItem","moment","unix","handelRouteRender","e","renderTime","detail","loadTime","loadInfoPage","getRuntime","getMiscSettings","isBuildPush","millisecondToSecond","suggestTime","suggestUrl","window","addEventListener","removeEventListener","handleLicenseAlertDismiss","useCallback","setItem","Alert","text","type","link","label","url","undefined","closable","onClose","_ref","className","href","target","lib","icon","role","onClick","millisecond","Math","floor","___CSS_LOADER_EXPORT___","push","module","id","toString","exports","cssWithMappingToString","list","this","map","item","content","needLayer","length","join","i","modules","media","dedupe","supports","layer","alreadyImportedModules","k","_k","setFunctionName","t","n","description","Object","defineProperty","configurable","value","applyDecs2305","r","o","a","call","s","TypeError","applyDec","u","l","f","p","d","h","m","y","v","g","b","w","Array","isArray","S","A","P","get","set","getOwnPropertyDescriptor","j","D","E","I","O","kind","name","metadata","addInitializer","Error","bind","F","N","access","has","init","Symbol","enumerable","arguments","create","checkInRHS","Map","prototype","toPropertyKey","_checkInRHS","toPrimitive","String","_typeof","iterator","constructor","prefix","JSON","stringify","parse","removeItem","clear"],"sourceRoot":""}
1
+ {"version":3,"file":"chunks/easyops-navbar-alerts.9ea93872.js","mappings":"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","sources":["webpack:///./src/easyops-navbar-alerts/index.tsx","webpack:///./src/easyops-navbar-alerts/styles.shadow.css","webpack:///../../node_modules/css-loader/dist/runtime/api.js","webpack:///../../node_modules/css-loader/dist/runtime/noSourceMaps.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/setFunctionName.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/applyDecs2305.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/checkInRHS.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/toPrimitive.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/typeof.js","webpack:///../../src/JsonStorage.ts"],"sourcesContent":["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","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:block}:host([hidden]){display:none}.alert{height:32px;padding:0 20px;display:flex;justify-content:center;align-items:center}.text{color:var(--antd-text-color);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.icon{margin-left:20px;cursor:pointer;color:#8c8c8c}.info{background-color:var(--color-info-bg)}.warning{background-color:var(--color-warning-bg)}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","\"use strict\";\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\nmodule.exports = function (cssWithMappingToString) {\n var list = [];\n\n // return the list of modules as css string\n list.toString = function toString() {\n return this.map(function (item) {\n var content = \"\";\n var needLayer = typeof item[5] !== \"undefined\";\n if (item[4]) {\n content += \"@supports (\".concat(item[4], \") {\");\n }\n if (item[2]) {\n content += \"@media \".concat(item[2], \" {\");\n }\n if (needLayer) {\n content += \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\");\n }\n content += cssWithMappingToString(item);\n if (needLayer) {\n content += \"}\";\n }\n if (item[2]) {\n content += \"}\";\n }\n if (item[4]) {\n content += \"}\";\n }\n return content;\n }).join(\"\");\n };\n\n // import a list of modules into the list\n list.i = function i(modules, media, dedupe, supports, layer) {\n if (typeof modules === \"string\") {\n modules = [[null, modules, undefined]];\n }\n var alreadyImportedModules = {};\n if (dedupe) {\n for (var k = 0; k < this.length; k++) {\n var id = this[k][0];\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n for (var _k = 0; _k < modules.length; _k++) {\n var item = [].concat(modules[_k]);\n if (dedupe && alreadyImportedModules[item[0]]) {\n continue;\n }\n if (typeof layer !== \"undefined\") {\n if (typeof item[5] === \"undefined\") {\n item[5] = layer;\n } else {\n item[1] = \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\").concat(item[1], \"}\");\n item[5] = layer;\n }\n }\n if (media) {\n if (!item[2]) {\n item[2] = media;\n } else {\n item[1] = \"@media \".concat(item[2], \" {\").concat(item[1], \"}\");\n item[2] = media;\n }\n }\n if (supports) {\n if (!item[4]) {\n item[4] = \"\".concat(supports);\n } else {\n item[1] = \"@supports (\".concat(item[4], \") {\").concat(item[1], \"}\");\n item[4] = supports;\n }\n }\n list.push(item);\n }\n };\n return list;\n};","\"use strict\";\n\nmodule.exports = function (i) {\n return i[1];\n};","import _typeof from \"./typeof.js\";\nexport default function setFunctionName(e, t, n) {\n \"symbol\" == _typeof(t) && (t = (t = t.description) ? \"[\" + t + \"]\" : \"\");\n try {\n Object.defineProperty(e, \"name\", {\n configurable: !0,\n value: n ? n + \" \" + t : t\n });\n } catch (e) {}\n return e;\n}","import _typeof from \"./typeof.js\";\nimport checkInRHS from \"./checkInRHS.js\";\nimport setFunctionName from \"./setFunctionName.js\";\nimport toPropertyKey from \"./toPropertyKey.js\";\nexport default function applyDecs2305(e, t, r, n, o, a) {\n function i(e, t, r) {\n return function (n, o) {\n return r && r(n), e[t].call(n, o);\n };\n }\n function c(e, t) {\n for (var r = 0; r < e.length; r++) e[r].call(t);\n return t;\n }\n function s(e, t, r, n) {\n if (\"function\" != typeof e && (n || void 0 !== e)) throw new TypeError(t + \" must \" + (r || \"be\") + \" a function\" + (n ? \"\" : \" or undefined\"));\n return e;\n }\n function applyDec(e, t, r, n, o, a, c, u, l, f, p, d, h) {\n function m(e) {\n if (!h(e)) throw new TypeError(\"Attempted to access private element on non-instance\");\n }\n var y,\n v,\n g = t[0],\n b = t[3],\n w = !u;\n if (!w) {\n r || Array.isArray(g) || (g = [g]);\n var S = {},\n A = [],\n P = 3 === o ? \"get\" : 4 === o || d ? \"set\" : \"value\";\n f ? (p || d ? S = {\n get: setFunctionName(function () {\n return b(this);\n }, n, \"get\"),\n set: function set(e) {\n t[4](this, e);\n }\n } : S[P] = b, p || setFunctionName(S[P], n, 2 === o ? \"\" : P)) : p || (S = Object.getOwnPropertyDescriptor(e, n));\n }\n for (var j = g.length - 1; j >= 0; j -= r ? 2 : 1) {\n var D = g[j],\n E = r ? g[j - 1] : void 0,\n I = {},\n O = {\n kind: [\"field\", \"accessor\", \"method\", \"getter\", \"setter\", \"field\", \"class\"][o],\n name: n,\n metadata: a,\n addInitializer: function (e, t) {\n if (e.v) throw new Error(\"attempted to call addInitializer after decoration was finished\");\n s(t, \"An initializer\", \"be\", !0), c.push(t);\n }.bind(null, I)\n };\n try {\n if (w) v = D.call(E, e, O);else {\n var k, F;\n O[\"static\"] = l, O[\"private\"] = f, f || !p && 2 !== o ? 2 === o ? k = function k(e) {\n return m(e), S.value;\n } : ((o < 2 || 3 === o) && (k = i(S, \"get\", f && m)), (o < 2 || 4 === o) && (F = i(S, \"set\", f && m))) : (k = function k(e) {\n return e[n];\n }, p && (F = function F(e, t) {\n e[n] = t;\n }));\n var N = O.access = {\n has: f ? h.bind() : function (e) {\n return n in e;\n }\n };\n if (k && (N.get = k), F && (N.set = F), v = D.call(E, d ? {\n get: S.get,\n set: S.set\n } : S[P], O), d) {\n if (\"object\" == _typeof(v) && v) (y = s(v.get, \"accessor.get\")) && (S.get = y), (y = s(v.set, \"accessor.set\")) && (S.set = y), (y = s(v.init, \"accessor.init\")) && A.push(y);else if (void 0 !== v) throw new TypeError(\"accessor decorators must return an object with get, set, or init properties or void 0\");\n } else s(v, (p ? \"field\" : \"method\") + \" decorators\", \"return\") && (p ? A.push(v) : S[P] = v);\n }\n } finally {\n I.v = !0;\n }\n }\n return (p || d) && u.push(function (e, t) {\n for (var r = A.length - 1; r >= 0; r--) t = A[r].call(e, t);\n return t;\n }), p || w || (f ? d ? u.push(i(S, \"get\"), i(S, \"set\")) : u.push(2 === o ? S[P] : i.call.bind(S[P])) : Object.defineProperty(e, n, S)), v;\n }\n function u(e, t) {\n return Object.defineProperty(e, Symbol.metadata || Symbol[\"for\"](\"Symbol.metadata\"), {\n configurable: !0,\n enumerable: !0,\n value: t\n });\n }\n if (arguments.length >= 6) var l = a[Symbol.metadata || Symbol[\"for\"](\"Symbol.metadata\")];\n var f = Object.create(null == l ? null : l),\n p = function (e, t, r, n) {\n var o,\n a,\n i = [],\n s = function s(t) {\n return checkInRHS(t) === e;\n },\n u = new Map();\n function l(e) {\n e && i.push(c.bind(null, e));\n }\n for (var f = 0; f < t.length; f++) {\n var p = t[f];\n if (Array.isArray(p)) {\n var d = p[1],\n h = p[2],\n m = p.length > 3,\n y = 16 & d,\n v = !!(8 & d),\n g = 0 == (d &= 7),\n b = h + \"/\" + v;\n if (!g && !m) {\n var w = u.get(b);\n if (!0 === w || 3 === w && 4 !== d || 4 === w && 3 !== d) throw new Error(\"Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: \" + h);\n u.set(b, !(d > 2) || d);\n }\n applyDec(v ? e : e.prototype, p, y, m ? \"#\" + h : toPropertyKey(h), d, n, v ? a = a || [] : o = o || [], i, v, m, g, 1 === d, v && m ? s : r);\n }\n }\n return l(o), l(a), i;\n }(e, t, o, f);\n return r.length || u(e, f), {\n e: p,\n get c() {\n var t = [];\n return r.length && [u(s(applyDec(e, [r], n, e.name, 5, f, t), \"class decorators\", \"return\") || e, f), c.bind(null, t, e)];\n }\n };\n}","import _typeof from \"./typeof.js\";\nexport default function _checkInRHS(e) {\n if (Object(e) !== e) throw TypeError(\"right-hand side of 'in' should be an object, got \" + (null !== e ? _typeof(e) : \"null\"));\n return e;\n}","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nexport default function toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : String(i);\n}","import _typeof from \"./typeof.js\";\nexport default function toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}","export default function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}","export class JsonStorage {\n constructor(\n private storage: Storage,\n private prefix: string = \"brick-next-\"\n ) {}\n\n setItem<T = any>(name: string, value: T): void {\n this.storage.setItem(this.prefix + name, JSON.stringify(value));\n }\n\n getItem<T = any>(name: string): T {\n return JSON.parse(this.storage.getItem(this.prefix + name) as string) as T;\n }\n\n removeItem(name: string): void {\n return this.storage.removeItem(this.prefix + name);\n }\n\n clear(): void {\n return this.storage.clear();\n }\n}\n"],"names":["_EasyopsNavbarAlerts","WrappedIcon","wrapBrick","WrappedLink","defineElement","createDecorators","_dec","styleTexts","styleText","EasyopsNavbarAlerts","ReactNextElement","render","React","EasyopsNavbarAlertsComponent","_class","_initClass","_applyDecs","c","storage","JsonStorage","localStorage","licenseDaysLeft","setLicenseDaysLeft","useState","slowRender","setSlowRender","currentApp","useCurrentApp","licenseDismissedKey","useMemo","authInfo","auth","getAuth","concat","org","useEffect","_authInfo$license","dismissExpireAt","validDaysLeft","license","isAdmin","getItem","moment","unix","handelRouteRender","e","renderTime","detail","loadTime","loadInfoPage","getRuntime","getMiscSettings","isBuildPush","millisecondToSecond","suggestTime","suggestUrl","window","addEventListener","removeEventListener","handleLicenseAlertDismiss","useCallback","setItem","Alert","text","type","link","label","url","undefined","closable","onClose","_ref","className","href","target","lib","icon","role","onClick","millisecond","Math","floor","___CSS_LOADER_EXPORT___","push","module","id","toString","exports","cssWithMappingToString","list","this","map","item","content","needLayer","length","join","i","modules","media","dedupe","supports","layer","alreadyImportedModules","k","_k","setFunctionName","t","n","description","Object","defineProperty","configurable","value","applyDecs2305","r","o","a","call","s","TypeError","applyDec","u","l","f","p","d","h","m","y","v","g","b","w","Array","isArray","S","A","P","get","set","getOwnPropertyDescriptor","j","D","E","I","O","kind","name","metadata","addInitializer","Error","bind","F","N","access","has","init","Symbol","enumerable","arguments","create","checkInRHS","Map","prototype","toPropertyKey","_checkInRHS","toPrimitive","String","_typeof","iterator","constructor","prefix","JSON","stringify","parse","removeItem","clear"],"sourceRoot":""}