@next-bricks/nav 0.8.3 → 0.8.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.
- package/dist/bricks.json +1 -1
- package/dist/chunks/{1646.7c501d74.js → 1646.83056aa0.js} +2 -2
- package/dist/chunks/{7746.6dc70441.js.map → 1646.83056aa0.js.map} +1 -1
- package/dist/chunks/1874.b69e31f2.js.map +1 -1
- package/dist/chunks/2094.f8392421.js +3 -0
- package/dist/chunks/2094.f8392421.js.map +1 -0
- package/dist/chunks/{3458.4b14e915.js → 3458.073732ce.js} +2 -2
- package/dist/chunks/{3458.4b14e915.js.map → 3458.073732ce.js.map} +1 -1
- package/dist/chunks/{3556.4200b3b3.js → 3556.63900714.js} +2 -2
- package/dist/chunks/{3556.4200b3b3.js.map → 3556.63900714.js.map} +1 -1
- package/dist/chunks/{4031.a902777f.js → 4031.a39f8b7d.js} +2 -2
- package/dist/chunks/4031.a39f8b7d.js.map +1 -0
- package/dist/chunks/{4049.4c9aff4f.js → 4049.000b19be.js} +2 -2
- package/dist/chunks/{4049.4c9aff4f.js.map → 4049.000b19be.js.map} +1 -1
- package/dist/chunks/{4275.1fd8ecf3.js → 4275.2769378a.js} +2 -2
- package/dist/chunks/{4275.1fd8ecf3.js.map → 4275.2769378a.js.map} +1 -1
- package/dist/chunks/443.9810e710.js.map +1 -1
- package/dist/chunks/4991.5de3024f.js +2 -0
- package/dist/chunks/4991.5de3024f.js.map +1 -0
- package/dist/chunks/{5151.45d065f2.js → 5151.f82a0488.js} +2 -2
- package/dist/chunks/{5151.45d065f2.js.map → 5151.f82a0488.js.map} +1 -1
- package/dist/chunks/{5381.0a41a7b8.js → 5381.8af87646.js} +2 -2
- package/dist/chunks/{5381.0a41a7b8.js.map → 5381.8af87646.js.map} +1 -1
- package/dist/chunks/{5636.f459177e.js → 5636.f8a78a72.js} +2 -2
- package/dist/chunks/{5636.f459177e.js.map → 5636.f8a78a72.js.map} +1 -1
- package/dist/chunks/{5725.8725fd32.js → 5725.6bd404ff.js} +2 -2
- package/dist/chunks/{7672.eca8f2b6.js.map → 5725.6bd404ff.js.map} +1 -1
- package/dist/chunks/6051.203bd482.js +2 -0
- package/dist/chunks/6051.203bd482.js.map +1 -0
- package/dist/chunks/6205.ef7db407.js +2 -0
- package/dist/chunks/{6205.51468edb.js.map → 6205.ef7db407.js.map} +1 -1
- package/dist/chunks/{6473.7d38bacb.js → 6473.6b1a749f.js} +2 -2
- package/dist/chunks/{6473.7d38bacb.js.map → 6473.6b1a749f.js.map} +1 -1
- package/dist/chunks/6482.c5d88285.js +2 -0
- package/dist/chunks/{6482.6f246a7f.js.map → 6482.c5d88285.js.map} +1 -1
- package/dist/chunks/{6653.fad842d4.js → 6653.730f6fa8.js} +2 -2
- package/dist/chunks/{6653.fad842d4.js.map → 6653.730f6fa8.js.map} +1 -1
- package/dist/chunks/{6660.294b8fc3.js → 6660.3f8c442f.js} +2 -2
- package/dist/chunks/{6660.294b8fc3.js.map → 6660.3f8c442f.js.map} +1 -1
- package/dist/chunks/7164.eadd694e.js +2 -0
- package/dist/chunks/{7164.3580a05f.js.map → 7164.eadd694e.js.map} +1 -1
- package/dist/chunks/7394.c1b022fd.js +3 -0
- package/dist/chunks/7394.c1b022fd.js.map +1 -0
- package/dist/chunks/7451.9cf0955a.js +3 -0
- package/dist/chunks/7451.9cf0955a.js.map +1 -0
- package/dist/chunks/{7632.0690e541.js → 7632.e16d0bce.js} +2 -2
- package/dist/chunks/{7632.0690e541.js.map → 7632.e16d0bce.js.map} +1 -1
- package/dist/chunks/{7672.eca8f2b6.js → 7672.f24da6c1.js} +2 -2
- package/dist/chunks/{5725.8725fd32.js.map → 7672.f24da6c1.js.map} +1 -1
- package/dist/chunks/{7746.6dc70441.js → 7746.176bda5c.js} +2 -2
- package/dist/chunks/{1646.7c501d74.js.map → 7746.176bda5c.js.map} +1 -1
- package/dist/chunks/{82.ed4f557d.js → 82.fd3ce079.js} +3 -3
- package/dist/chunks/82.fd3ce079.js.map +1 -0
- package/dist/chunks/{8498.5cb1636e.js → 8498.2f9cda09.js} +2 -2
- package/dist/chunks/{8498.5cb1636e.js.map → 8498.2f9cda09.js.map} +1 -1
- package/dist/chunks/8588.fcedf663.js +2 -0
- package/dist/chunks/8588.fcedf663.js.map +1 -0
- package/dist/chunks/{8691.533db233.js → 8691.e63ca3d2.js} +2 -2
- package/dist/chunks/{8691.533db233.js.map → 8691.e63ca3d2.js.map} +1 -1
- package/dist/chunks/9102.a5c7a7bb.js +3 -0
- package/dist/chunks/{9102.e9d4952e.js.map → 9102.a5c7a7bb.js.map} +1 -1
- package/dist/chunks/easyops-navbar-alerts.43c332df.js +2 -0
- package/dist/chunks/easyops-navbar-alerts.43c332df.js.map +1 -0
- package/dist/chunks/{eo-launchpad-button-v2.c13326d1.js → eo-launchpad-button-v2.18076475.js} +3 -3
- package/dist/chunks/{eo-launchpad-button-v2.c13326d1.js.map → eo-launchpad-button-v2.18076475.js.map} +1 -1
- package/dist/chunks/{eo-launchpad-button.eeced6ea.js → eo-launchpad-button.df111053.js} +2 -2
- package/dist/chunks/{eo-launchpad-button.eeced6ea.js.map → eo-launchpad-button.df111053.js.map} +1 -1
- package/dist/chunks/eo-launchpad-quick-access.88d845a7.js +3 -0
- package/dist/chunks/eo-launchpad-quick-access.88d845a7.js.map +1 -0
- package/dist/chunks/eo-launchpad-recent-visits.db8365bb.js +3 -0
- package/dist/chunks/eo-launchpad-recent-visits.db8365bb.js.map +1 -0
- package/dist/chunks/{eo-nav-menu.f5d4ad45.js → eo-nav-menu.f06d9b26.js} +2 -2
- package/dist/chunks/{eo-nav-menu.f5d4ad45.js.map → eo-nav-menu.f06d9b26.js.map} +1 -1
- package/dist/chunks/{eo-search-launchpad.2442a18b.js → eo-search-launchpad.5a6a04aa.js} +2 -2
- package/dist/chunks/{eo-search-launchpad.2442a18b.js.map → eo-search-launchpad.5a6a04aa.js.map} +1 -1
- package/dist/chunks/launchpad-config.4fc7e8e2.js +3 -0
- package/dist/chunks/launchpad-config.4fc7e8e2.js.map +1 -0
- package/dist/chunks/main.5b029cd3.js +2 -0
- package/dist/chunks/main.5b029cd3.js.map +1 -0
- package/dist/index.e478e7af.js +2 -0
- package/dist/index.e478e7af.js.map +1 -0
- package/dist/types.json +1 -1
- package/dist-types/launchpad-config/MenuGroup.d.ts +3 -1
- package/dist-types/launchpad-config/interfaces.d.ts +1 -1
- package/package.json +4 -4
- package/dist/chunks/2094.97a6595c.js +0 -3
- package/dist/chunks/2094.97a6595c.js.map +0 -1
- package/dist/chunks/4031.a902777f.js.map +0 -1
- package/dist/chunks/4991.f8554fea.js +0 -2
- package/dist/chunks/4991.f8554fea.js.map +0 -1
- package/dist/chunks/6051.2ad62d04.js +0 -2
- package/dist/chunks/6051.2ad62d04.js.map +0 -1
- package/dist/chunks/6205.51468edb.js +0 -2
- package/dist/chunks/6482.6f246a7f.js +0 -2
- package/dist/chunks/7164.3580a05f.js +0 -2
- package/dist/chunks/7394.44b14fef.js +0 -3
- package/dist/chunks/7394.44b14fef.js.map +0 -1
- package/dist/chunks/7451.3bdf891c.js +0 -3
- package/dist/chunks/7451.3bdf891c.js.map +0 -1
- package/dist/chunks/82.ed4f557d.js.map +0 -1
- package/dist/chunks/8588.e57d8469.js +0 -2
- package/dist/chunks/8588.e57d8469.js.map +0 -1
- package/dist/chunks/9102.e9d4952e.js +0 -3
- package/dist/chunks/easyops-navbar-alerts.c0bec48c.js +0 -2
- package/dist/chunks/easyops-navbar-alerts.c0bec48c.js.map +0 -1
- package/dist/chunks/eo-launchpad-quick-access.6f9213a8.js +0 -3
- package/dist/chunks/eo-launchpad-quick-access.6f9213a8.js.map +0 -1
- package/dist/chunks/eo-launchpad-recent-visits.2198f765.js +0 -3
- package/dist/chunks/eo-launchpad-recent-visits.2198f765.js.map +0 -1
- package/dist/chunks/launchpad-config.9d06789b.js +0 -3
- package/dist/chunks/launchpad-config.9d06789b.js.map +0 -1
- package/dist/chunks/main.41b29e17.js +0 -2
- package/dist/chunks/main.41b29e17.js.map +0 -1
- package/dist/index.5c6a93a9.js +0 -2
- package/dist/index.5c6a93a9.js.map +0 -1
- /package/dist/chunks/{2094.97a6595c.js.LICENSE.txt → 2094.f8392421.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{7394.44b14fef.js.LICENSE.txt → 7394.c1b022fd.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{7451.3bdf891c.js.LICENSE.txt → 7451.9cf0955a.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{82.ed4f557d.js.LICENSE.txt → 82.fd3ce079.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{9102.e9d4952e.js.LICENSE.txt → 9102.a5c7a7bb.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{eo-launchpad-button-v2.c13326d1.js.LICENSE.txt → eo-launchpad-button-v2.18076475.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{eo-launchpad-quick-access.6f9213a8.js.LICENSE.txt → eo-launchpad-quick-access.88d845a7.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{eo-launchpad-recent-visits.2198f765.js.LICENSE.txt → eo-launchpad-recent-visits.db8365bb.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{launchpad-config.9d06789b.js.LICENSE.txt → launchpad-config.4fc7e8e2.js.LICENSE.txt} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chunks/eo-launchpad-recent-visits.db8365bb.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/launchpad-recent-visits/index.tsx","webpack:///./src/shared/DeferredService.ts","webpack:///./src/shared/getLocaleName.ts","webpack:///./src/launchpad-recent-visits/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/applyDecs2305.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/checkInRHS.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/extends.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/objectSpread2.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/toPrimitive.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/typeof.js","webpack:///../../node_modules/@next-api-sdk/micro-app-standalone-sdk/dist/esm/api/micro_app_standalone/launchpad/getLaunchpadInfo.js","webpack:///../../node_modules/@next-api-sdk/user-service-sdk/dist/esm/api/user_service/launchpad/createCollectionV2.js","webpack:///../../node_modules/@next-api-sdk/user-service-sdk/dist/esm/api/user_service/launchpad/deleteCollectionV2.js","webpack:///../../node_modules/@next-api-sdk/user-service-sdk/dist/esm/api/user_service/launchpad/listCollectionV2.js","webpack:///../../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 type {\n FavMenuItem,\n MenuGroupData,\n MenuItemData,\n MenuItemDataApp,\n MenuItemDataCustom,\n MenuItemDataDir,\n MenuItemDataNormal,\n MicroAppWithInstanceId,\n} from \"./interfaces\";\nimport { FAVORITES_LIMIT } from \"./constants\";\nimport { getAppLocaleName } from \"../shared/getLocaleName\";\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","import type {\n MenuGroupData,\n MenuItemData,\n MenuItemDataApp,\n MenuItemDataCustom,\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\nfunction matchMenuItemApp(item: MenuItemDataApp, lowerQ: string) {\n return item.id.toLowerCase().includes(lowerQ) ||\n item.name.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\n : null;\n}\n","import { useCallback, useEffect, useMemo, useState } from \"react\";\nimport { handleHttpError, httpErrorToString } 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 StoredMenuItem,\n} from \"./interfaces\";\nimport {\n favorite,\n fetchFavorites,\n fetchLaunchpadInfo,\n undoFavorite,\n} from \"./api\";\nimport { search } 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\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\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\n const [storedRecentVisits, setStoredRecentVisits] = useState<\n StoredMenuItem[]\n >([]);\n\n const [recentVisits, setRecentVisits] = useState<MenuItemDataNormal[]>([]);\n\n const [favorites, setFavorites] = useState<FavMenuItem[]>(candidateFavorites);\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) {\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 (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 return {\n loading,\n q,\n setQ,\n menuGroups,\n loadingFavorites,\n favorites,\n recentVisits,\n pushRecentVisit,\n isStarred,\n toggleStar,\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","import React from \"react\";\nimport { createDecorators } from \"@next-core/element\";\nimport { ReactNextElement, wrapBrick } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport styleText from \"./styles.shadow.css\";\nimport { useLaunchpadInfo } from \"../launchpad-button-v2/useLaunchpadInfo\";\nimport type { Link, LinkProps } from \"@next-bricks/basic/link\";\n\nconst WrappedLink = wrapBrick<Link, LinkProps>(\"eo-link\");\n\nconst { defineElement, property } = createDecorators();\n\n/**\n * launchpad 最近访问\n */\nexport\n@defineElement(\"eo-launchpad-recent-visits\", {\n styleTexts: [styleText],\n})\nclass EoLaunchpadRecentVisits extends ReactNextElement {\n render() {\n return <EoLaunchpadRecentVisitsComponent />;\n }\n}\n\nexport function EoLaunchpadRecentVisitsComponent() {\n const { recentVisits, pushRecentVisit } = useLaunchpadInfo(true);\n\n return (\n <ul className=\"recent-visits\">\n {recentVisits.map((item, index) => (\n <li key={index}>\n <WrappedLink\n onClick={() => pushRecentVisit(item)}\n {...(item.type === \"app\"\n ? {\n url: item.url,\n }\n : {\n href: item.url,\n target: \"_blank\",\n })}\n >\n <span>{item.name}</span>\n </WrappedLink>\n </li>\n ))}\n </ul>\n );\n}\n","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","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:block}:host([hidden]){display:none}.recent-visits{list-style:none;margin:0;padding:0;display:grid;grid-gap:8px;gap:8px;grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}.recent-visits span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.recent-visits eo-link{display:block;min-width:0}.recent-visits eo-link::part(link){background-color:var(--color-fill-bg-base-1);border-radius:3px;color:var(--color-header-text);display:flex;align-items:center;height:24px;padding:0 8px}.recent-visits eo-link:hover::part(link){color:var(--color-brand-hover)}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","\"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\";\nimport checkInRHS from \"./checkInRHS.js\";\nfunction _bindPropCall(e, t) {\n return function (r, a) {\n return e[t].call(r, a);\n };\n}\nfunction createAddInitializerMethod(e, t) {\n return function (r) {\n if (t.v) throw new Error(\"attempted to call addInitializer after decoration was finished\");\n assertCallable(r, \"An initializer\", !0), e.push(r);\n };\n}\nfunction memberDec(e, t, r, a, n, i, o, s, l, c, u) {\n function assertInstanceIfPrivate(e) {\n return function (t, r) {\n if (!c(t)) throw new TypeError(\"Attempted to access private element on non-instance\");\n return e(t, r);\n };\n }\n var f,\n d,\n p = {\n v: !1\n },\n v = {\n kind: [\"field\", \"accessor\", \"method\", \"getter\", \"setter\", \"field\"][i],\n name: s ? \"#\" + r : r,\n \"static\": o,\n \"private\": s,\n metadata: u,\n addInitializer: createAddInitializerMethod(n, p)\n };\n if (s || 0 !== i && 2 !== i) {\n if (2 === i) f = assertInstanceIfPrivate(function () {\n return a.value;\n });else {\n var h = 0 === i || 1 === i;\n (h || 3 === i) && (f = _bindPropCall(a, \"get\"), s && (f = assertInstanceIfPrivate(f))), (h || 4 === i) && (d = _bindPropCall(a, \"set\"), s && (d = assertInstanceIfPrivate(d)));\n }\n } else f = function f(e) {\n return e[r];\n }, 0 === i && (d = function d(e, t) {\n e[r] = t;\n });\n var m = s ? c.bind() : function (e) {\n return r in e;\n },\n b = v.access = {\n has: m\n };\n f && (b.get = f), d && (b.set = d);\n try {\n return e.call(t, l, v);\n } finally {\n p.v = !0;\n }\n}\nfunction assertCallable(e, t, r) {\n if (\"function\" != typeof e && (r || void 0 !== e)) throw new TypeError(t + \" must be a function\");\n}\nfunction assertValidReturnValue(e, t) {\n var r = _typeof(t);\n if (1 === e) {\n if (\"object\" !== r || !t) throw new TypeError(\"accessor decorators must return an object with get, set, or init properties or void 0\");\n assertCallable(t.get, \"accessor.get\"), assertCallable(t.set, \"accessor.set\"), assertCallable(t.init, \"accessor.init\");\n } else if (\"function\" !== r) throw new TypeError((0 === e ? \"field\" : 5 === e ? \"class\" : \"method\") + \" decorators must return a function or void 0\");\n}\nfunction applyMemberDec(e, t, r, a, n, i, o, s, l, c, u) {\n var f,\n d,\n p,\n v,\n h = r[0],\n m = r[3];\n a || Array.isArray(h) || (h = [h]), s ? f = 0 === i || 1 === i ? {\n get: function get() {\n return m(this);\n },\n set: function set(e) {\n r[4](this, e);\n }\n } : 3 === i ? {\n get: m\n } : 4 === i ? {\n set: m\n } : {\n value: m\n } : 0 !== i && (f = Object.getOwnPropertyDescriptor(t, n)), 1 === i ? p = {\n get: f.get,\n set: f.set\n } : 2 === i ? p = f.value : 3 === i ? p = f.get : 4 === i && (p = f.set);\n for (var b = a ? 2 : 1, y = h.length - 1; y >= 0; y -= b) {\n var g;\n if (void 0 !== (v = memberDec(h[y], a ? h[y - 1] : void 0, n, f, l, i, o, s, p, c, u))) assertValidReturnValue(i, v), 0 === i ? g = v : 1 === i ? (g = v.init, p = {\n get: v.get || p.get,\n set: v.set || p.set\n }) : p = v, void 0 !== g && (void 0 === d ? d = g : \"function\" == typeof d ? d = [d, g] : d.push(g));\n }\n if (0 === i || 1 === i) {\n if (void 0 === d) d = function d(e, t) {\n return t;\n };else if (\"function\" != typeof d) {\n var I = d;\n d = function d(e, t) {\n for (var r = t, a = I.length - 1; a >= 0; a--) r = I[a].call(e, r);\n return r;\n };\n } else {\n var w = d;\n d = d.call.bind(w);\n }\n e.push(d);\n }\n 0 !== i && (1 === i ? (f.get = p.get, f.set = p.set) : 2 === i ? f.value = p : 3 === i ? f.get = p : 4 === i && (f.set = p), s ? 1 === i ? e.push(_bindPropCall(f, \"get\"), _bindPropCall(f, \"set\")) : e.push(2 === i ? p : Function.call.bind(p)) : Object.defineProperty(t, n, f));\n}\nfunction applyMemberDecs(e, t, r, a) {\n var n,\n i,\n o,\n s = [],\n l = new Map(),\n c = new Map();\n function pushInitializers(e) {\n e && s.push(function (t) {\n for (var r = 0; r < e.length; r++) e[r].call(t);\n return t;\n });\n }\n for (var u = 0; u < t.length; u++) {\n var f = t[u];\n if (Array.isArray(f)) {\n var d,\n p,\n v = f[1],\n h = f[2],\n m = f.length > 3,\n b = 16 & v,\n y = !!(8 & v),\n g = r;\n if (v &= 7, y ? (d = e, p = i = i || [], m && !o && (o = function o(t) {\n return checkInRHS(t) === e;\n }), g = o) : (d = e.prototype, p = n = n || []), 0 !== v && !m) {\n var I = y ? c : l,\n w = I.get(h) || 0;\n if (!0 === w || 3 === w && 4 !== v || 4 === w && 3 !== v) 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 I.set(h, !(!w && v > 2) || v);\n }\n applyMemberDec(s, d, f, b, h, v, y, m, p, g, a);\n }\n }\n return pushInitializers(n), pushInitializers(i), s;\n}\nfunction applyClassDecs(e, t, r, a) {\n if (t.length) {\n for (var n = [], i = e, o = e.name, s = r ? 2 : 1, l = t.length - 1; l >= 0; l -= s) {\n var c = {\n v: !1\n };\n try {\n var u = t[l].call(r ? t[l - 1] : void 0, i, {\n kind: \"class\",\n name: o,\n addInitializer: createAddInitializerMethod(n, c),\n metadata: a\n });\n } finally {\n c.v = !0;\n }\n void 0 !== u && (assertValidReturnValue(5, u), i = u);\n }\n return [defineMetadata(i, a), function () {\n for (var e = 0; e < n.length; e++) n[e].call(i);\n }];\n }\n}\nfunction defineMetadata(e, t) {\n return Object.defineProperty(e, Symbol.metadata || Symbol[\"for\"](\"Symbol.metadata\"), {\n configurable: !0,\n enumerable: !0,\n value: t\n });\n}\nexport default function applyDecs2305(e, t, r, a, n, i) {\n if (arguments.length >= 6) var o = i[Symbol.metadata || Symbol[\"for\"](\"Symbol.metadata\")];\n var s = Object.create(void 0 === o ? null : o),\n l = applyMemberDecs(e, t, n, s);\n return r.length || defineMetadata(e, s), {\n e: l,\n get c() {\n return applyClassDecs(e, r, a, s);\n }\n };\n}","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n _next(undefined);\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 toPropertyKey from \"./toPropertyKey.js\";\nexport default function _defineProperty(obj, key, value) {\n key = toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}","export default function _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}","import defineProperty from \"./defineProperty.js\";\nfunction ownKeys(e, r) {\n var t = Object.keys(e);\n if (Object.getOwnPropertySymbols) {\n var o = Object.getOwnPropertySymbols(e);\n r && (o = o.filter(function (r) {\n return Object.getOwnPropertyDescriptor(e, r).enumerable;\n })), t.push.apply(t, o);\n }\n return t;\n}\nexport default function _objectSpread2(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = null != arguments[r] ? arguments[r] : {};\n r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {\n defineProperty(e, r, t[r]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {\n Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n });\n }\n return e;\n}","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nexport default function _toPropertyKey(arg) {\n var key = toPrimitive(arg, \"string\");\n return _typeof(key) === \"symbol\" ? key : String(key);\n}","import _typeof from \"./typeof.js\";\nexport default function _toPrimitive(input, hint) {\n if (_typeof(input) !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (_typeof(res) !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\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}","import _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\nimport _asyncToGenerator from \"@babel/runtime/helpers/asyncToGenerator\";\nimport { http } from \"@next-core/http\";\n/**\n * @description Launchpad信息\n * @endpoint GET /api/v1/micro_app_standalone/launchpad_info\n */\nexport var LaunchpadApi_getLaunchpadInfo = /*#__PURE__*/function () {\n var _ref = _asyncToGenerator(function* (params, options) {\n return (/**! @contract easyops.api.micro_app_standalone.launchpad.GetLaunchpadInfo@1.1.0 */(yield http.get(\"api/gateway/micro_app_standalone.launchpad.GetLaunchpadInfo/api/v1/micro_app_standalone/launchpad_info\", _objectSpread(_objectSpread({}, options), {}, {\n params\n }))).data\n );\n });\n return function LaunchpadApi_getLaunchpadInfo(_x, _x2) {\n return _ref.apply(this, arguments);\n };\n}();\n//# sourceMappingURL=getLaunchpadInfo.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","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","matchMenuItemApp","lowerQ","toLowerCase","includes","matchMenuItemCustom","storageKey","concat","_auth$getAuth","auth","getAuth","org","storage","JsonStorage","localStorage","candidateDesktops","candidateMicroAppsById","candidateCustomLinksById","preLoaded","candidateFavorites","preLoadedFavorites","deferredLaunchpadInfo","DeferredService","fetchLaunchpadInfo","deferredFavorites","fetchFavorites","showErrorAsNotification","showNotification","message","httpErrorToString","useLaunchpadInfo","active","setDesktops","useState","setMicroAppsById","setCustomLinksById","q","setQ","loading","setLoading","loadingFavorites","setLoadingFavorites","storedRecentVisits","setStoredRecentVisits","recentVisits","setRecentVisits","favorites","setFavorites","useEffect","_storage$getItem","getItem","startFetchLaunchpadInfo","_ref3","fetch","handleHttpError","startFetchFavorites","_ref4","visits","map","filter","Boolean","pushRecentVisit","useCallback","_ref5","_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","WrappedIcon","wrapBrick","WrappedLink","unwrapProvider","_EoLaunchpadRecentVis","defineElement","property","createDecorators","_dec","styleTexts","styleText","EoLaunchpadRecentVisits","ReactNextElement","render","React","EoLaunchpadRecentVisitsComponent","className","key","_extends","onClick","href","target","_class","_initClass","_applyDecs","c","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","___CSS_LOADER_EXPORT___","module","toString","exports","cssWithMappingToString","needLayer","join","i","modules","media","dedupe","supports","layer","undefined","alreadyImportedModules","k","_k","_bindPropCall","e","t","r","a","call","createAddInitializerMethod","v","Error","assertCallable","memberDec","n","o","s","l","u","assertInstanceIfPrivate","TypeError","f","d","p","kind","metadata","addInitializer","value","h","m","bind","b","access","has","assertValidReturnValue","init","applyMemberDec","Array","isArray","getOwnPropertyDescriptor","y","g","I","w","Function","defineProperty","defineMetadata","Symbol","configurable","enumerable","applyDecs2305","create","pushInitializers","prototype","applyMemberDecs","applyClassDecs","asyncGeneratorStep","gen","resolve","reject","_next","_throw","arg","info","done","Promise","fn","self","args","err","_checkInRHS","obj","writable","assign","source","hasOwnProperty","ownKeys","keys","getOwnPropertySymbols","_objectSpread2","forEach","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","input","hint","prim","toPrimitive","res","String","_typeof","iterator","params","options","http","data","post","delete","prefix","JSON","stringify","parse","removeItem","clear"],"sourceRoot":""}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_next_bricks_nav=self.webpackChunk_next_bricks_nav||[]).push([[1163],{2041:(e,t,n)=>{n.r(t),n.d(t,{NavMenu:()=>W});var i,l,r,a,o,s,c,m,u,d=n(4795),h=n(3395),p=n(381),v=n(687),y=n(2604),g=n(7896),w=n(8657),b=n.n(w),f=n(
|
|
2
|
-
//# sourceMappingURL=eo-nav-menu.
|
|
1
|
+
"use strict";(self.webpackChunk_next_bricks_nav=self.webpackChunk_next_bricks_nav||[]).push([[1163],{2041:(e,t,n)=>{n.r(t),n.d(t,{NavMenu:()=>W});var i,l,r,a,o,s,c,m,u,d=n(4795),h=n(3395),p=n(381),v=n(687),y=n(2604),g=n(7896),w=n(8657),b=n.n(w),f=n(2462),E=n(9181),k=n(2354),x=n(9800),N=n(3808),T=n(7993),K=(n(9234),n(2779)),Z=n.n(K),D=n(1880),I=n(641),C=n(2598),M=n(8462),R=n(8101),{defineElement:_,property:S}=(n(441),(0,f.createDecorators)()),F=(0,k.wrapBrick)("eo-menu-item"),L=(0,k.wrapBrick)("eo-popover",{onVisibleChange:"visible.change",beforeVisibleChange:"before.visible.change"});function O(e){var{item:t}=e;return(0,N.cl)(t,e.topData)?b().createElement(B,(0,g.Z)({},e,{item:t})):(0,N.ty)(t)?b().createElement(G,(0,g.Z)({},e,{item:t})):b().createElement(V,(0,g.Z)({},e,{item:t}))}function V(e){var{item:t,index:n,hidden:i,showTooltip:l,selectedKey:r=[]}=e;return b().createElement(F,{"data-index":n,className:i?"overflow-menu-item":"",key:t.key,title:l?t.text:"",active:!!t.key&&r.includes(t.key)},(0,N.nC)(t,{width:"100%"}))}var W,A=e=>{var t,n=null!==(t=u)&&void 0!==t?t:u=window.innerWidth-document.body.clientWidth;document.body.style.paddingRight=e.detail?n+"px":"",document.body.style.overflow=e.detail?"hidden":"",document.body.style.touchAction=e.detail?"none":""};function B(e){var t,{index:n,hidden:i,item:l,topData:r,showTooltip:a,selectedKey:o=[],overflow:s}=e;return(null===(t=l.items)||void 0===t?void 0:t.length)>0?b().createElement(L,{"data-index":n,className:Z()("popover",{subprime:!r,"overflow-menu-item":i}),trigger:"hover",placement:r?"bottom-start":"right-start",distance:0,anchorDisplay:"block",strategy:"fixed"},b().createElement(F,{className:"sub-menu-item-label",key:l.key,slot:"anchor",title:a?l.title:""},(0,N.cx)(l,!r)),b().createElement("div",{className:Z()("sub-menu-wrapper",{"overflow-menu-wrapper":s})},l.items.map((e=>b().createElement(b().Fragment,{key:e.key},b().createElement(O,{item:e,selectedKey:o,showTooltip:a})))))):null}function G(e){var t,{item:n,showTooltip:i,selectedKey:l=[]}=e;return(null===(t=n.items)||void 0===t?void 0:t.length)>0?"category"===n.childLayout?b().createElement(J,{item:n,selectedKey:l,showTooltip:i,placement:"right-start",anchorDisplay:"block"}):"siteMap"===n.childLayout?b().createElement(X,{item:n,selectedKey:l,showTooltip:i,placement:"right-start",anchorDisplay:"block",topData:!1}):b().createElement(b().Fragment,null,b().createElement("div",{className:"group-label"},n.title),b().createElement("div",{className:"group-wrapper"},n.items.map((e=>b().createElement(b().Fragment,{key:e.key},b().createElement(O,{item:e,showTooltip:i,selectedKey:l})))))):null}function J(e){var t,{index:n,hidden:i,item:l,selectedKey:r=[],showTooltip:a,placement:o="bottom-start",anchorDisplay:s}=e;return(null===(t=l.items)||void 0===t?void 0:t.length)>0?b().createElement(L,{"data-index":n,className:Z()("three-level-menu-popover","popover",{"overflow-menu-item":i}),trigger:"hover",placement:o,distance:0,key:l.key,strategy:"fixed",anchorDisplay:s,beforeVisibleChange:A},b().createElement(F,{className:"sub-menu-item-label",key:l.key,slot:"anchor",title:a?l.title:""},(0,N.cx)(l)),b().createElement("div",{className:"sub-menu-wrapper"},b().createElement(D.m,{menuItem:l,selectedKey:r}))):null}function X(e){var t,{index:n,hidden:i,item:l,selectedKey:r=[],showTooltip:a,placement:o="bottom-start",anchorDisplay:s,topData:c}=e,[m,u]=(0,w.useState)();return(null===(t=l.items)||void 0===t?void 0:t.length)>0?b().createElement(L,{"data-index":n,className:Z()("popover",{"overflow-menu-item":i}),trigger:"hover",placement:o,distance:0,key:l.key,strategy:"fixed",anchorDisplay:s,beforeVisibleChange:e=>{u(e.detail),A(e)}},b().createElement(F,{className:"sub-menu-item-label",key:l.key,slot:"anchor",title:a?l.title:""},(0,N.cx)(l)),b().createElement("div",{className:Z()("sub-menu-sit-map-wrapper",{"in-group-site-map":!c}),onClick:e=>e.stopPropagation()},b().createElement(I.hX,{menuGroup:l,selectedKey:r,visible:m}))):null}l=_("eo-nav-menu",{styleTexts:[C.Z,M.Z,R.Z,x.Z]}),r=S({attribute:!1}),o=S({type:Boolean});var z=new WeakMap,H=new WeakMap;class P extends k.ReactNextElement{constructor(){super(...arguments),(0,h.Z)(this,z,{writable:!0,value:(c(this),a(this))}),(0,h.Z)(this,H,{writable:!0,value:s(this)})}get menu(){return(0,v.Z)(this,z)}set menu(e){(0,p.Z)(this,z,e)}get showTooltip(){return(0,v.Z)(this,H)}set showTooltip(e){(0,p.Z)(this,H,e)}render(){return b().createElement(j,{menu:this.menu,showTooltip:this.showTooltip})}}function j(e){var t,n,{menu:i,showTooltip:l}=e,r=(0,E.getHistory)(),a=(0,w.useRef)(null),[o,s]=(0,w.useState)(r.location),[c,m]=(0,w.useState)(Number.MAX_SAFE_INTEGER),{pathname:u,search:h}=o,[p,v]=(0,w.useState)([]),y=function(){var e=(0,d.Z)((function*(){var e,{selectedKeys:t}=(0,T.OZ)(null!==(e=null==i?void 0:i.menuItems)&&void 0!==e?e:[],u,h,"");v(t)}));return function(){return e.apply(this,arguments)}}();(0,w.useEffect)((()=>{var e=r.listen((e=>{s(e)}));return y(),e}),[]),(0,w.useEffect)((()=>{if(a.current){var e=new ResizeObserver((()=>{if(a.current){var e,{width:t}=null!==(e=a.current.getClientRects()[0])&&void 0!==e?e:{},n=a.current.childNodes;if(n.length&&t){for(var i=t,l=n.length,r=0;r<n.length;r++){var{width:o,height:s}=n[r].getClientRects()[0];if(!s&&i-40<0){l=r-1;break}if((i=i-o-(r>0?8:0))<0){l=r;break}}m(l<0?0:l)}}}));return e.observe(a.current),()=>{e.disconnect()}}}),[]);var g=(0,w.useMemo)((()=>({type:"subMenu",title:"···",items:null==i?void 0:i.menuItems.slice(c,i.menuItems.length)})),[null==i?void 0:i.menuItems,c]);return b().createElement("div",{ref:a,className:"nav-menu-wrapper"},null==i?void 0:i.menuItems.map(((e,t)=>{var n,i=c<=t;return b().createElement(b().Fragment,{key:e.key},(0,N.cl)(e,!0)&&"category"===e.childLayout&&null!==(n=e.items)&&void 0!==n&&n.length?b().createElement(J,{index:t,hidden:i,item:e,showTooltip:l,selectedKey:p}):"group"===e.type&&"siteMap"===e.childLayout?b().createElement(X,{index:t,hidden:i,item:e,showTooltip:l,selectedKey:p,topData:!0}):b().createElement(O,{index:t,hidden:i,item:e,showTooltip:l,selectedKey:p,topData:!0}))})),b().createElement(O,{hidden:c>(null!==(t=null==i||null===(n=i.menuItems)||void 0===n?void 0:n.length)&&void 0!==t?t:0),item:g,showTooltip:l,selectedKey:p,overflow:!0,topData:!0}))}m=P,({e:[a,s,c],c:[W,i]}=(0,y.Z)(m,[[r,1,"menu"],[o,1,"showTooltip"]],[l],0,void 0,k.ReactNextElement)),i()},2890:(e,t,n)=>{n.d(t,{o:()=>i});class i{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=eo-nav-menu.f06d9b26.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chunks/eo-nav-menu.f5d4ad45.js","mappings":"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","sources":["webpack:///./src/nav-menu/index.tsx","webpack:///../../src/JsonStorage.ts"],"sourcesContent":["import React, {\n CSSProperties,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { createDecorators } from \"@next-core/element\";\nimport { getHistory } from \"@next-core/runtime\";\nimport { ReactNextElement, wrapBrick } from \"@next-core/react-element\";\nimport styleText from \"./nav-menu.shadow.css\";\nimport { UnregisterCallback } from \"history\";\nimport type { SidebarMenu } from \"@next-bricks/basic/menu\";\nimport type {\n MenuItem as MenuItemComponent,\n MenuComponentProps,\n} from \"@next-bricks/basic/menu-item\";\nimport { isSubMenu, isGroup, renderLinkCom, renderSpanCom } from \"./utils.js\";\nimport { initMenuItemAndMatchCurrentPathKeys } from \"@next-shared/general/menu\";\nimport type {\n SidebarMenuGroup,\n SidebarMenuItem,\n SidebarMenuSimpleItem,\n} from \"@next-shared/general/types\";\nimport type {\n Popover,\n PopoverProps,\n PopoverEvents,\n PopoverEventsMapping,\n Placement,\n} from \"@next-bricks/basic/popover\";\nimport \"@next-core/theme\";\nimport classnames from \"classnames\";\nimport { ThreeLevelMenuPopoverContent } from \"./ThreeLevelMenuPopoverContent.js\";\nimport { SiteMapItem } from \"./site-map/SiteMapItem.js\";\nimport SiteMapStyleText from \"../nav-menu/site-map/SiteMapItem.shadow.css\";\nimport ItemTagStyleText from \"../nav-menu/site-map/ItemTag.shadow.css\";\nimport GroupItemStyleText from \"../nav-menu/site-map/GroupItem.shadow.css\";\nimport \"./host-context.css\";\n\nconst { defineElement, property } = createDecorators();\n\nconst WrappedMenuItem = wrapBrick<MenuItemComponent, MenuComponentProps>(\n \"eo-menu-item\"\n);\nconst WrappedPopover = wrapBrick<\n Popover,\n PopoverProps,\n PopoverEvents,\n PopoverEventsMapping\n>(\"eo-popover\", {\n onVisibleChange: \"visible.change\",\n beforeVisibleChange: \"before.visible.change\",\n});\n\nconst GAP_WIDTH = 8;\n\ninterface NavMenuProps {\n menu?: SidebarMenu;\n showTooltip?: boolean;\n}\n\ninterface MenuItemComProps {\n index?: number;\n hidden?: boolean;\n item: SidebarMenuItem;\n topData?: boolean;\n selectedKey?: string[];\n showTooltip?: boolean;\n overflow?: boolean;\n}\ninterface SimpleMenuItemComProps extends MenuItemComProps {\n item: SidebarMenuSimpleItem;\n}\ninterface MenuGroupComProps extends MenuItemComProps {\n item: SidebarMenuGroup;\n}\nfunction RenderMenuItemCom(props: MenuItemComProps) {\n const { item } = props;\n return isSubMenu(item as SidebarMenuGroup, props.topData) ? (\n <SubMenuItemCom {...props} item={item as SidebarMenuGroup}></SubMenuItemCom>\n ) : isGroup(item) ? (\n <GroupMenuItemCom {...props} item={item as SidebarMenuGroup} />\n ) : (\n <SimpleMenuItemCom\n {...props}\n item={item as SidebarMenuSimpleItem}\n ></SimpleMenuItemCom>\n );\n}\nfunction SimpleMenuItemCom(props: SimpleMenuItemComProps) {\n const { item, index, hidden, showTooltip, selectedKey = [] } = props;\n return (\n <WrappedMenuItem\n data-index={index}\n className={hidden ? \"overflow-menu-item\" : \"\"}\n key={item.key}\n title={showTooltip ? item.text : \"\"}\n active={item.key ? selectedKey.includes(item.key) : false}\n >\n {renderLinkCom(item, { width: \"100%\" })}\n </WrappedMenuItem>\n );\n}\n\nlet scrollWidth: number;\n// istanbul ignore next;\nconst handlePopupVisibleChange = (event: CustomEvent<boolean>) => {\n // 当用户设置滚动条一直显示时,来回切换 overflow: hidden 会导致滚动条显示或隐藏\n // 造成页面宽度变化而导致的抖动的问题\n const paddingRight =\n scrollWidth ??\n (scrollWidth = window.innerWidth - document.body.clientWidth);\n\n document.body.style.paddingRight = event.detail ? paddingRight + \"px\" : \"\";\n document.body.style.overflow = event.detail ? \"hidden\" : \"\";\n document.body.style.touchAction = event.detail ? \"none\" : \"\";\n};\n\nfunction SubMenuItemCom({\n index,\n hidden,\n item,\n topData,\n showTooltip,\n selectedKey = [],\n overflow,\n}: MenuGroupComProps) {\n return item.items?.length > 0 ? (\n <WrappedPopover\n data-index={index}\n className={classnames(\"popover\", {\n subprime: !topData,\n \"overflow-menu-item\": hidden,\n })}\n trigger=\"hover\"\n placement={topData ? \"bottom-start\" : \"right-start\"}\n distance={0}\n anchorDisplay=\"block\"\n strategy=\"fixed\"\n >\n <WrappedMenuItem\n className=\"sub-menu-item-label\"\n key={item.key}\n slot=\"anchor\"\n title={showTooltip ? item.title : \"\"}\n >\n {renderSpanCom(item, !topData)}\n </WrappedMenuItem>\n <div\n className={classnames(\"sub-menu-wrapper\", {\n \"overflow-menu-wrapper\": overflow,\n })}\n >\n {item.items.map((innerItem) => (\n <React.Fragment key={innerItem.key}>\n <RenderMenuItemCom\n item={innerItem}\n selectedKey={selectedKey}\n showTooltip={showTooltip}\n />\n </React.Fragment>\n ))}\n </div>\n </WrappedPopover>\n ) : null;\n}\n\nfunction GroupMenuItemCom({\n item,\n showTooltip,\n selectedKey = [],\n}: MenuGroupComProps) {\n return item.items?.length > 0 ? (\n item.childLayout === \"category\" ? (\n <ThreeLevelMenuCom\n item={item}\n selectedKey={selectedKey}\n showTooltip={showTooltip}\n placement=\"right-start\"\n anchorDisplay=\"block\"\n />\n ) : (item as SidebarMenuGroup).childLayout === \"siteMap\" ? (\n <SitMapMenCom\n item={item}\n selectedKey={selectedKey}\n showTooltip={showTooltip}\n placement=\"right-start\"\n anchorDisplay=\"block\"\n topData={false}\n />\n ) : (\n <>\n <div className=\"group-label\">{item.title}</div>\n <div className=\"group-wrapper\">\n {item.items.map((innerItem) => {\n return (\n <React.Fragment key={innerItem.key}>\n <RenderMenuItemCom\n item={innerItem}\n showTooltip={showTooltip}\n selectedKey={selectedKey}\n />\n </React.Fragment>\n );\n })}\n </div>\n </>\n )\n ) : null;\n}\n\nfunction ThreeLevelMenuCom({\n index,\n hidden,\n item,\n selectedKey = [],\n showTooltip,\n placement = \"bottom-start\",\n anchorDisplay,\n}: {\n index?: number;\n hidden?: boolean;\n item: SidebarMenuGroup;\n selectedKey?: string[];\n showTooltip?: boolean;\n placement?: Placement;\n anchorDisplay?: CSSProperties[\"display\"];\n}) {\n return item.items?.length > 0 ? (\n <WrappedPopover\n data-index={index}\n className={classnames(\"three-level-menu-popover\", \"popover\", {\n \"overflow-menu-item\": hidden,\n })}\n trigger={\"hover\"}\n placement={placement}\n distance={0}\n key={item.key}\n strategy=\"fixed\"\n anchorDisplay={anchorDisplay}\n beforeVisibleChange={handlePopupVisibleChange}\n >\n <WrappedMenuItem\n className=\"sub-menu-item-label\"\n key={item.key}\n slot=\"anchor\"\n title={showTooltip ? item.title : \"\"}\n >\n {renderSpanCom(item)}\n </WrappedMenuItem>\n <div className=\"sub-menu-wrapper\">\n <ThreeLevelMenuPopoverContent\n menuItem={item}\n selectedKey={selectedKey}\n ></ThreeLevelMenuPopoverContent>\n </div>\n </WrappedPopover>\n ) : null;\n}\n\nfunction SitMapMenCom({\n index,\n hidden,\n item,\n selectedKey = [],\n showTooltip,\n placement = \"bottom-start\",\n anchorDisplay,\n topData,\n}: {\n index?: number;\n hidden?: boolean;\n item: SidebarMenuGroup;\n selectedKey?: string[];\n showTooltip?: boolean;\n placement?: Placement;\n anchorDisplay?: CSSProperties[\"display\"];\n topData?: boolean;\n}) {\n const [visible, setVisible] = useState<boolean>();\n\n const handleVisibleChange = (event: CustomEvent<boolean>): void => {\n setVisible(event.detail);\n handlePopupVisibleChange(event);\n };\n\n return item.items?.length > 0 ? (\n <WrappedPopover\n data-index={index}\n className={classnames(\"popover\", {\n \"overflow-menu-item\": hidden,\n })}\n trigger={\"hover\"}\n placement={placement}\n distance={0}\n key={item.key}\n strategy=\"fixed\"\n anchorDisplay={anchorDisplay}\n beforeVisibleChange={handleVisibleChange}\n >\n <WrappedMenuItem\n className=\"sub-menu-item-label\"\n key={item.key}\n slot=\"anchor\"\n title={showTooltip ? item.title : \"\"}\n >\n {renderSpanCom(item)}\n </WrappedMenuItem>\n <div\n className={classnames(\"sub-menu-sit-map-wrapper\", {\n \"in-group-site-map\": !topData,\n })}\n onClick={(e) => e.stopPropagation()}\n >\n <SiteMapItem\n menuGroup={item}\n selectedKey={selectedKey}\n visible={visible}\n />\n </div>\n </WrappedPopover>\n ) : null;\n}\n\n/**\n * 菜单构件\n * @author sailor\n * @category navigation\n */\n@defineElement(\"eo-nav-menu\", {\n styleTexts: [\n SiteMapStyleText,\n ItemTagStyleText,\n GroupItemStyleText,\n styleText,\n ],\n})\nclass NavMenu extends ReactNextElement {\n /**\n * 菜单项\n */\n @property({\n attribute: false,\n })\n accessor menu: SidebarMenu | undefined;\n\n /**\n * 是否显示 tooltip\n */\n @property({\n type: Boolean,\n })\n accessor showTooltip: boolean | undefined;\n\n render() {\n return <NavMenuComponent menu={this.menu} showTooltip={this.showTooltip} />;\n }\n}\n\nfunction NavMenuComponent(props: NavMenuProps) {\n const { menu, showTooltip } = props;\n\n const history = getHistory();\n const navMenuWrapperRef = useRef<HTMLDivElement>(null);\n const [location, setLocation] = useState(history.location);\n const [overflowIndex, setOverflowIndex] = useState<number>(\n Number.MAX_SAFE_INTEGER\n );\n const { pathname, search } = location;\n\n const [selectedKey, setSelectedKey] = useState<string[]>([]);\n\n const setSelected = async (): Promise<void> => {\n const { selectedKeys } = initMenuItemAndMatchCurrentPathKeys(\n menu?.menuItems ?? [],\n pathname,\n search,\n \"\"\n );\n setSelectedKey(selectedKeys);\n };\n\n useEffect(() => {\n const unListen: UnregisterCallback = history.listen((location) => {\n setLocation(location);\n });\n setSelected();\n return unListen;\n }, []);\n\n useEffect(() => {\n if (navMenuWrapperRef.current) {\n const resizeObserver = new ResizeObserver(() => {\n if (navMenuWrapperRef.current) {\n const { width } = navMenuWrapperRef.current.getClientRects()[0] ?? {};\n const childNodes = navMenuWrapperRef.current.childNodes;\n\n if (childNodes.length && width) {\n let wrapperWidth = width;\n let overflowIndex = childNodes.length;\n\n for (let i = 0; i < childNodes.length; i++) {\n const { width: childWidth, height: childHeight } = (\n childNodes[i] as HTMLElement\n ).getClientRects()[0];\n\n if (!childHeight && wrapperWidth - 40 < 0) {\n overflowIndex = i - 1;\n break;\n }\n\n wrapperWidth =\n wrapperWidth - childWidth - (i > 0 ? GAP_WIDTH : 0);\n if (wrapperWidth < 0) {\n overflowIndex = i;\n break;\n }\n }\n\n setOverflowIndex(overflowIndex < 0 ? 0 : overflowIndex);\n }\n }\n });\n resizeObserver.observe(navMenuWrapperRef.current);\n\n return () => {\n resizeObserver.disconnect();\n };\n }\n }, []);\n\n const overflowMenu = useMemo(\n (): SidebarMenuItem => ({\n type: \"subMenu\",\n title: \"···\",\n items: menu?.menuItems.slice(\n overflowIndex,\n menu.menuItems.length\n ) as SidebarMenuItem[],\n }),\n [menu?.menuItems, overflowIndex]\n );\n\n return (\n <div ref={navMenuWrapperRef} className=\"nav-menu-wrapper\">\n {menu?.menuItems.map((item, index) => {\n const isHidden = overflowIndex <= index;\n return (\n <React.Fragment key={item.key}>\n {isSubMenu(item as SidebarMenuGroup, true) &&\n (item as SidebarMenuGroup).childLayout === \"category\" &&\n (item as SidebarMenuGroup).items?.length ? (\n <ThreeLevelMenuCom\n index={index}\n hidden={isHidden}\n item={item as SidebarMenuGroup}\n showTooltip={showTooltip}\n selectedKey={selectedKey}\n />\n ) : (item as SidebarMenuGroup).type === \"group\" &&\n (item as SidebarMenuGroup).childLayout === \"siteMap\" ? (\n <SitMapMenCom\n index={index}\n hidden={isHidden}\n item={item as SidebarMenuGroup}\n showTooltip={showTooltip}\n selectedKey={selectedKey}\n topData={true}\n />\n ) : (\n <RenderMenuItemCom\n index={index}\n hidden={isHidden}\n item={item}\n showTooltip={showTooltip}\n selectedKey={selectedKey}\n topData={true}\n />\n )}\n </React.Fragment>\n );\n })}\n <RenderMenuItemCom\n hidden={overflowIndex > (menu?.menuItems?.length ?? 0)}\n item={overflowMenu}\n showTooltip={showTooltip}\n selectedKey={selectedKey}\n overflow={true}\n topData={true}\n />\n </div>\n );\n}\n\nexport { NavMenu };\n","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":["scrollWidth","defineElement","property","createDecorators","WrappedMenuItem","wrapBrick","WrappedPopover","onVisibleChange","beforeVisibleChange","RenderMenuItemCom","props","item","isSubMenu","topData","React","SubMenuItemCom","_extends","isGroup","GroupMenuItemCom","SimpleMenuItemCom","index","hidden","showTooltip","selectedKey","className","key","title","text","active","includes","renderLinkCom","width","_NavMenu","handlePopupVisibleChange","event","_scrollWidth","paddingRight","window","innerWidth","document","body","clientWidth","style","detail","overflow","touchAction","_ref","_item$items","items","length","classnames","subprime","trigger","placement","distance","anchorDisplay","strategy","slot","renderSpanCom","map","innerItem","_ref2","_item$items2","childLayout","ThreeLevelMenuCom","SitMapMenCom","_ref3","_item$items3","ThreeLevelMenuPopoverContent","menuItem","_ref4","_item$items4","visible","setVisible","useState","onClick","e","stopPropagation","SiteMapItem","menuGroup","_dec","styleTexts","SiteMapStyleText","ItemTagStyleText","GroupItemStyleText","styleText","_dec2","attribute","_dec3","type","Boolean","_A","WeakMap","_B","NavMenu","ReactNextElement","constructor","arguments","_classPrivateFieldInitSpec","writable","value","_initProto","_init_menu","_init_showTooltip","menu","_classPrivateFieldGet","v","_classPrivateFieldSet","render","NavMenuComponent","this","_menu$menuItems$lengt","_menu$menuItems2","history","getHistory","navMenuWrapperRef","useRef","location","setLocation","overflowIndex","setOverflowIndex","Number","MAX_SAFE_INTEGER","pathname","search","setSelectedKey","setSelected","_ref5","_asyncToGenerator","_menu$menuItems","selectedKeys","initMenuItemAndMatchCurrentPathKeys","menuItems","apply","useEffect","unListen","listen","current","resizeObserver","ResizeObserver","_navMenuWrapperRef$cu","getClientRects","childNodes","wrapperWidth","i","childWidth","height","childHeight","observe","disconnect","overflowMenu","useMemo","slice","ref","_items","isHidden","_class","c","_initClass","_applyDecs","JsonStorage","storage","prefix","undefined","setItem","name","JSON","stringify","getItem","parse","removeItem","clear"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"file":"chunks/eo-nav-menu.f06d9b26.js","mappings":"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","sources":["webpack:///./src/nav-menu/index.tsx","webpack:///../../src/JsonStorage.ts"],"sourcesContent":["import React, {\n CSSProperties,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { createDecorators } from \"@next-core/element\";\nimport { getHistory } from \"@next-core/runtime\";\nimport { ReactNextElement, wrapBrick } from \"@next-core/react-element\";\nimport styleText from \"./nav-menu.shadow.css\";\nimport { UnregisterCallback } from \"history\";\nimport type { SidebarMenu } from \"@next-bricks/basic/menu\";\nimport type {\n MenuItem as MenuItemComponent,\n MenuComponentProps,\n} from \"@next-bricks/basic/menu-item\";\nimport { isSubMenu, isGroup, renderLinkCom, renderSpanCom } from \"./utils.js\";\nimport { initMenuItemAndMatchCurrentPathKeys } from \"@next-shared/general/menu\";\nimport type {\n SidebarMenuGroup,\n SidebarMenuItem,\n SidebarMenuSimpleItem,\n} from \"@next-shared/general/types\";\nimport type {\n Popover,\n PopoverProps,\n PopoverEvents,\n PopoverEventsMapping,\n Placement,\n} from \"@next-bricks/basic/popover\";\nimport \"@next-core/theme\";\nimport classnames from \"classnames\";\nimport { ThreeLevelMenuPopoverContent } from \"./ThreeLevelMenuPopoverContent.js\";\nimport { SiteMapItem } from \"./site-map/SiteMapItem.js\";\nimport SiteMapStyleText from \"../nav-menu/site-map/SiteMapItem.shadow.css\";\nimport ItemTagStyleText from \"../nav-menu/site-map/ItemTag.shadow.css\";\nimport GroupItemStyleText from \"../nav-menu/site-map/GroupItem.shadow.css\";\nimport \"./host-context.css\";\n\nconst { defineElement, property } = createDecorators();\n\nconst WrappedMenuItem = wrapBrick<MenuItemComponent, MenuComponentProps>(\n \"eo-menu-item\"\n);\nconst WrappedPopover = wrapBrick<\n Popover,\n PopoverProps,\n PopoverEvents,\n PopoverEventsMapping\n>(\"eo-popover\", {\n onVisibleChange: \"visible.change\",\n beforeVisibleChange: \"before.visible.change\",\n});\n\nconst GAP_WIDTH = 8;\n\ninterface NavMenuProps {\n menu?: SidebarMenu;\n showTooltip?: boolean;\n}\n\ninterface MenuItemComProps {\n index?: number;\n hidden?: boolean;\n item: SidebarMenuItem;\n topData?: boolean;\n selectedKey?: string[];\n showTooltip?: boolean;\n overflow?: boolean;\n}\ninterface SimpleMenuItemComProps extends MenuItemComProps {\n item: SidebarMenuSimpleItem;\n}\ninterface MenuGroupComProps extends MenuItemComProps {\n item: SidebarMenuGroup;\n}\nfunction RenderMenuItemCom(props: MenuItemComProps) {\n const { item } = props;\n return isSubMenu(item as SidebarMenuGroup, props.topData) ? (\n <SubMenuItemCom {...props} item={item as SidebarMenuGroup}></SubMenuItemCom>\n ) : isGroup(item) ? (\n <GroupMenuItemCom {...props} item={item as SidebarMenuGroup} />\n ) : (\n <SimpleMenuItemCom\n {...props}\n item={item as SidebarMenuSimpleItem}\n ></SimpleMenuItemCom>\n );\n}\nfunction SimpleMenuItemCom(props: SimpleMenuItemComProps) {\n const { item, index, hidden, showTooltip, selectedKey = [] } = props;\n return (\n <WrappedMenuItem\n data-index={index}\n className={hidden ? \"overflow-menu-item\" : \"\"}\n key={item.key}\n title={showTooltip ? item.text : \"\"}\n active={item.key ? selectedKey.includes(item.key) : false}\n >\n {renderLinkCom(item, { width: \"100%\" })}\n </WrappedMenuItem>\n );\n}\n\nlet scrollWidth: number;\n// istanbul ignore next;\nconst handlePopupVisibleChange = (event: CustomEvent<boolean>) => {\n // 当用户设置滚动条一直显示时,来回切换 overflow: hidden 会导致滚动条显示或隐藏\n // 造成页面宽度变化而导致的抖动的问题\n const paddingRight =\n scrollWidth ??\n (scrollWidth = window.innerWidth - document.body.clientWidth);\n\n document.body.style.paddingRight = event.detail ? paddingRight + \"px\" : \"\";\n document.body.style.overflow = event.detail ? \"hidden\" : \"\";\n document.body.style.touchAction = event.detail ? \"none\" : \"\";\n};\n\nfunction SubMenuItemCom({\n index,\n hidden,\n item,\n topData,\n showTooltip,\n selectedKey = [],\n overflow,\n}: MenuGroupComProps) {\n return item.items?.length > 0 ? (\n <WrappedPopover\n data-index={index}\n className={classnames(\"popover\", {\n subprime: !topData,\n \"overflow-menu-item\": hidden,\n })}\n trigger=\"hover\"\n placement={topData ? \"bottom-start\" : \"right-start\"}\n distance={0}\n anchorDisplay=\"block\"\n strategy=\"fixed\"\n >\n <WrappedMenuItem\n className=\"sub-menu-item-label\"\n key={item.key}\n slot=\"anchor\"\n title={showTooltip ? item.title : \"\"}\n >\n {renderSpanCom(item, !topData)}\n </WrappedMenuItem>\n <div\n className={classnames(\"sub-menu-wrapper\", {\n \"overflow-menu-wrapper\": overflow,\n })}\n >\n {item.items.map((innerItem) => (\n <React.Fragment key={innerItem.key}>\n <RenderMenuItemCom\n item={innerItem}\n selectedKey={selectedKey}\n showTooltip={showTooltip}\n />\n </React.Fragment>\n ))}\n </div>\n </WrappedPopover>\n ) : null;\n}\n\nfunction GroupMenuItemCom({\n item,\n showTooltip,\n selectedKey = [],\n}: MenuGroupComProps) {\n return item.items?.length > 0 ? (\n item.childLayout === \"category\" ? (\n <ThreeLevelMenuCom\n item={item}\n selectedKey={selectedKey}\n showTooltip={showTooltip}\n placement=\"right-start\"\n anchorDisplay=\"block\"\n />\n ) : (item as SidebarMenuGroup).childLayout === \"siteMap\" ? (\n <SitMapMenCom\n item={item}\n selectedKey={selectedKey}\n showTooltip={showTooltip}\n placement=\"right-start\"\n anchorDisplay=\"block\"\n topData={false}\n />\n ) : (\n <>\n <div className=\"group-label\">{item.title}</div>\n <div className=\"group-wrapper\">\n {item.items.map((innerItem) => {\n return (\n <React.Fragment key={innerItem.key}>\n <RenderMenuItemCom\n item={innerItem}\n showTooltip={showTooltip}\n selectedKey={selectedKey}\n />\n </React.Fragment>\n );\n })}\n </div>\n </>\n )\n ) : null;\n}\n\nfunction ThreeLevelMenuCom({\n index,\n hidden,\n item,\n selectedKey = [],\n showTooltip,\n placement = \"bottom-start\",\n anchorDisplay,\n}: {\n index?: number;\n hidden?: boolean;\n item: SidebarMenuGroup;\n selectedKey?: string[];\n showTooltip?: boolean;\n placement?: Placement;\n anchorDisplay?: CSSProperties[\"display\"];\n}) {\n return item.items?.length > 0 ? (\n <WrappedPopover\n data-index={index}\n className={classnames(\"three-level-menu-popover\", \"popover\", {\n \"overflow-menu-item\": hidden,\n })}\n trigger={\"hover\"}\n placement={placement}\n distance={0}\n key={item.key}\n strategy=\"fixed\"\n anchorDisplay={anchorDisplay}\n beforeVisibleChange={handlePopupVisibleChange}\n >\n <WrappedMenuItem\n className=\"sub-menu-item-label\"\n key={item.key}\n slot=\"anchor\"\n title={showTooltip ? item.title : \"\"}\n >\n {renderSpanCom(item)}\n </WrappedMenuItem>\n <div className=\"sub-menu-wrapper\">\n <ThreeLevelMenuPopoverContent\n menuItem={item}\n selectedKey={selectedKey}\n ></ThreeLevelMenuPopoverContent>\n </div>\n </WrappedPopover>\n ) : null;\n}\n\nfunction SitMapMenCom({\n index,\n hidden,\n item,\n selectedKey = [],\n showTooltip,\n placement = \"bottom-start\",\n anchorDisplay,\n topData,\n}: {\n index?: number;\n hidden?: boolean;\n item: SidebarMenuGroup;\n selectedKey?: string[];\n showTooltip?: boolean;\n placement?: Placement;\n anchorDisplay?: CSSProperties[\"display\"];\n topData?: boolean;\n}) {\n const [visible, setVisible] = useState<boolean>();\n\n const handleVisibleChange = (event: CustomEvent<boolean>): void => {\n setVisible(event.detail);\n handlePopupVisibleChange(event);\n };\n\n return item.items?.length > 0 ? (\n <WrappedPopover\n data-index={index}\n className={classnames(\"popover\", {\n \"overflow-menu-item\": hidden,\n })}\n trigger={\"hover\"}\n placement={placement}\n distance={0}\n key={item.key}\n strategy=\"fixed\"\n anchorDisplay={anchorDisplay}\n beforeVisibleChange={handleVisibleChange}\n >\n <WrappedMenuItem\n className=\"sub-menu-item-label\"\n key={item.key}\n slot=\"anchor\"\n title={showTooltip ? item.title : \"\"}\n >\n {renderSpanCom(item)}\n </WrappedMenuItem>\n <div\n className={classnames(\"sub-menu-sit-map-wrapper\", {\n \"in-group-site-map\": !topData,\n })}\n onClick={(e) => e.stopPropagation()}\n >\n <SiteMapItem\n menuGroup={item}\n selectedKey={selectedKey}\n visible={visible}\n />\n </div>\n </WrappedPopover>\n ) : null;\n}\n\n/**\n * 菜单构件\n * @author sailor\n * @category navigation\n */\n@defineElement(\"eo-nav-menu\", {\n styleTexts: [\n SiteMapStyleText,\n ItemTagStyleText,\n GroupItemStyleText,\n styleText,\n ],\n})\nclass NavMenu extends ReactNextElement {\n /**\n * 菜单项\n */\n @property({\n attribute: false,\n })\n accessor menu: SidebarMenu | undefined;\n\n /**\n * 是否显示 tooltip\n */\n @property({\n type: Boolean,\n })\n accessor showTooltip: boolean | undefined;\n\n render() {\n return <NavMenuComponent menu={this.menu} showTooltip={this.showTooltip} />;\n }\n}\n\nfunction NavMenuComponent(props: NavMenuProps) {\n const { menu, showTooltip } = props;\n\n const history = getHistory();\n const navMenuWrapperRef = useRef<HTMLDivElement>(null);\n const [location, setLocation] = useState(history.location);\n const [overflowIndex, setOverflowIndex] = useState<number>(\n Number.MAX_SAFE_INTEGER\n );\n const { pathname, search } = location;\n\n const [selectedKey, setSelectedKey] = useState<string[]>([]);\n\n const setSelected = async (): Promise<void> => {\n const { selectedKeys } = initMenuItemAndMatchCurrentPathKeys(\n menu?.menuItems ?? [],\n pathname,\n search,\n \"\"\n );\n setSelectedKey(selectedKeys);\n };\n\n useEffect(() => {\n const unListen: UnregisterCallback = history.listen((location) => {\n setLocation(location);\n });\n setSelected();\n return unListen;\n }, []);\n\n useEffect(() => {\n if (navMenuWrapperRef.current) {\n const resizeObserver = new ResizeObserver(() => {\n if (navMenuWrapperRef.current) {\n const { width } = navMenuWrapperRef.current.getClientRects()[0] ?? {};\n const childNodes = navMenuWrapperRef.current.childNodes;\n\n if (childNodes.length && width) {\n let wrapperWidth = width;\n let overflowIndex = childNodes.length;\n\n for (let i = 0; i < childNodes.length; i++) {\n const { width: childWidth, height: childHeight } = (\n childNodes[i] as HTMLElement\n ).getClientRects()[0];\n\n if (!childHeight && wrapperWidth - 40 < 0) {\n overflowIndex = i - 1;\n break;\n }\n\n wrapperWidth =\n wrapperWidth - childWidth - (i > 0 ? GAP_WIDTH : 0);\n if (wrapperWidth < 0) {\n overflowIndex = i;\n break;\n }\n }\n\n setOverflowIndex(overflowIndex < 0 ? 0 : overflowIndex);\n }\n }\n });\n resizeObserver.observe(navMenuWrapperRef.current);\n\n return () => {\n resizeObserver.disconnect();\n };\n }\n }, []);\n\n const overflowMenu = useMemo(\n (): SidebarMenuItem => ({\n type: \"subMenu\",\n title: \"···\",\n items: menu?.menuItems.slice(\n overflowIndex,\n menu.menuItems.length\n ) as SidebarMenuItem[],\n }),\n [menu?.menuItems, overflowIndex]\n );\n\n return (\n <div ref={navMenuWrapperRef} className=\"nav-menu-wrapper\">\n {menu?.menuItems.map((item, index) => {\n const isHidden = overflowIndex <= index;\n return (\n <React.Fragment key={item.key}>\n {isSubMenu(item as SidebarMenuGroup, true) &&\n (item as SidebarMenuGroup).childLayout === \"category\" &&\n (item as SidebarMenuGroup).items?.length ? (\n <ThreeLevelMenuCom\n index={index}\n hidden={isHidden}\n item={item as SidebarMenuGroup}\n showTooltip={showTooltip}\n selectedKey={selectedKey}\n />\n ) : (item as SidebarMenuGroup).type === \"group\" &&\n (item as SidebarMenuGroup).childLayout === \"siteMap\" ? (\n <SitMapMenCom\n index={index}\n hidden={isHidden}\n item={item as SidebarMenuGroup}\n showTooltip={showTooltip}\n selectedKey={selectedKey}\n topData={true}\n />\n ) : (\n <RenderMenuItemCom\n index={index}\n hidden={isHidden}\n item={item}\n showTooltip={showTooltip}\n selectedKey={selectedKey}\n topData={true}\n />\n )}\n </React.Fragment>\n );\n })}\n <RenderMenuItemCom\n hidden={overflowIndex > (menu?.menuItems?.length ?? 0)}\n item={overflowMenu}\n showTooltip={showTooltip}\n selectedKey={selectedKey}\n overflow={true}\n topData={true}\n />\n </div>\n );\n}\n\nexport { NavMenu };\n","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":["scrollWidth","defineElement","property","createDecorators","WrappedMenuItem","wrapBrick","WrappedPopover","onVisibleChange","beforeVisibleChange","RenderMenuItemCom","props","item","isSubMenu","topData","React","SubMenuItemCom","_extends","isGroup","GroupMenuItemCom","SimpleMenuItemCom","index","hidden","showTooltip","selectedKey","className","key","title","text","active","includes","renderLinkCom","width","_NavMenu","handlePopupVisibleChange","event","_scrollWidth","paddingRight","window","innerWidth","document","body","clientWidth","style","detail","overflow","touchAction","_ref","_item$items","items","length","classnames","subprime","trigger","placement","distance","anchorDisplay","strategy","slot","renderSpanCom","map","innerItem","_ref2","_item$items2","childLayout","ThreeLevelMenuCom","SitMapMenCom","_ref3","_item$items3","ThreeLevelMenuPopoverContent","menuItem","_ref4","_item$items4","visible","setVisible","useState","onClick","e","stopPropagation","SiteMapItem","menuGroup","_dec","styleTexts","SiteMapStyleText","ItemTagStyleText","GroupItemStyleText","styleText","_dec2","attribute","_dec3","type","Boolean","_A","WeakMap","_B","NavMenu","ReactNextElement","constructor","arguments","_classPrivateFieldInitSpec","writable","value","_initProto","_init_menu","_init_showTooltip","menu","_classPrivateFieldGet","v","_classPrivateFieldSet","render","NavMenuComponent","this","_menu$menuItems$lengt","_menu$menuItems2","history","getHistory","navMenuWrapperRef","useRef","location","setLocation","overflowIndex","setOverflowIndex","Number","MAX_SAFE_INTEGER","pathname","search","setSelectedKey","setSelected","_ref5","_asyncToGenerator","_menu$menuItems","selectedKeys","initMenuItemAndMatchCurrentPathKeys","menuItems","apply","useEffect","unListen","listen","current","resizeObserver","ResizeObserver","_navMenuWrapperRef$cu","getClientRects","childNodes","wrapperWidth","i","childWidth","height","childHeight","observe","disconnect","overflowMenu","useMemo","slice","ref","_items","isHidden","_class","c","_initClass","_applyDecs","JsonStorage","storage","prefix","undefined","setItem","name","JSON","stringify","getItem","parse","removeItem","clear"],"sourceRoot":""}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_next_bricks_nav=self.webpackChunk_next_bricks_nav||[]).push([[979],{2969:(e,n,o)=>{o.r(n),o.d(n,{EoSearchLaunchpad:()=>i,EoSearchLaunchpadComponent:()=>w,WrappedIcon:()=>b});var t,r,a,i,l=o(2604),c=o(8657),s=o.n(c),d=o(
|
|
2
|
-
//# sourceMappingURL=eo-search-launchpad.
|
|
1
|
+
"use strict";(self.webpackChunk_next_bricks_nav=self.webpackChunk_next_bricks_nav||[]).push([[979],{2969:(e,n,o)=>{o.r(n),o.d(n,{EoSearchLaunchpad:()=>i,EoSearchLaunchpadComponent:()=>w,WrappedIcon:()=>b});var t,r,a,i,l=o(2604),c=o(8657),s=o.n(c),d=o(2462),m=o(2354),p=(o(9234),o(2222)),u=o(2779),h=o.n(u),g=o(3132),x=o(6176),v=o(3697),b=(o(6527),(0,m.wrapBrick)("eo-icon")),{defineElement:f,property:y}=(0,d.createDecorators)();r=f("eo-search-launchpad",{styleTexts:[p.Z]});class k extends m.ReactNextElement{render(){return s().createElement(w,null)}}function w(){var e=(0,c.useRef)(null),n=(0,c.useCallback)((()=>{var n;null===(n=e.current)||void 0===n||n.focus()}),[]),[o,t]=(0,c.useState)(!1),{loading:r,q:a,setQ:i,menuGroups:l,loadingFavorites:d,pushRecentVisit:m,toggleStar:p,isStarred:u}=(0,x.m1)(o),f=!!a,y=(0,c.useCallback)((e=>{i(e.target.value)}),[i]),k=(0,c.useCallback)((()=>{i("")}),[i]);return s().createElement(g.Z.Provider,{value:{searching:f,loadingFavorites:d,pushRecentVisit:m,toggleStar:p,isStarred:u}},s().createElement("div",{className:"container"},s().createElement("div",{className:"search-box",onClick:n},s().createElement(b,{lib:"fa",icon:"magnifying-glass",className:"search-icon"}),s().createElement("input",{ref:e,placeholder:"搜索产品/微应用",value:a,onChange:y,className:"search-input",onFocus:()=>t(!0),onBlur:()=>t(!1)}),s().createElement(b,{lib:"antd",theme:"filled",icon:"close-circle",className:h()("search-clear",{searching:f}),onClick:k,onMouseDown:e=>e.preventDefault()})),s().createElement("div",{className:h()("dropdown",{"dropdown-active":o}),onMouseDown:e=>e.preventDefault()},s().createElement("div",{className:h()("dropdown-content",{loading:r})},s().createElement(E,{loading:r}),s().createElement("ul",{className:"menu-groups"},l.map((e=>s().createElement(v.k,{key:e.name,name:e.name,items:e.items}))))))))}function E(e){var{loading:n}=e;return n&&s().createElement("div",{className:"spinner"},s().createElement(b,{lib:"fa",icon:"spinner",spinning:!0}))}a=k,[i,t]=(0,l.Z)(a,[],[r],0,void 0,m.ReactNextElement).c,t()},1943:(e,n,o)=>{o.d(n,{Z:()=>l});var t=o(9601),r=o.n(t),a=o(2609),i=o.n(a)()(r());i.push([e.id,':root{--eo-search-launchpad-menu-icon-color:#8c8c8c}html[data-theme="dark"],\nhtml[data-theme="dark-v2"]{--eo-search-launchpad-menu-icon-color:rgba(255,255,255,0.45)}',""]);const l=i},2222:(e,n,o)=>{o.d(n,{Z:()=>l});var t=o(9601),r=o.n(t),a=o(2609),i=o.n(a)()(r());i.push([e.id,":host{display:block}:host([hidden]){display:none}.container{position:relative}.dropdown{margin-top:5px;position:absolute;top:100%;left:0px;width:100%;z-index:1050;padding:20px 24px 24px;overflow:hidden;box-sizing:border-box;background-color:var(--antd-select-dropdown-bg);border-radius:4px;box-shadow:var(--antd-box-shadow-base);display:none}.dropdown-active{display:block}.search-box{border-bottom:1px solid var(--color-text-divider-line);display:flex;gap:8px;align-items:center;padding:10px 0;cursor:text}.search-icon{color:var(--color-auxiliary-text)}.search-input{padding:0;margin:0;border:none;outline:none;color:inherit;background-color:transparent;font-size:14px;line-height:22px;flex:1;min-width:0}.search-input::placeholder{color:var(--color-disabled-text);opacity:1}.search-clear{display:none;color:var(--color-secondary-text);cursor:pointer}.search-clear.searching{display:inline-block}.search-clear:hover{color:var(--color-auxiliary-text)}.dropdown-content{min-width:0;display:flex;flex-direction:column;gap:24px;max-height:260px;overflow-y:auto}.spinner{display:flex;justify-content:center;align-items:center;color:var(--theme-doderblue-color);flex:1;font-size:30px}.loading > :not(.spinner){display:none}.menu-group-label,\n.menu-item-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.menu-groups,\n.menu,\n.sub-menu{list-style:none;margin:0;padding:0}.menu,\n.sub-menu{display:flex;flex-direction:column;gap:14px}.menu-item > eo-link{display:block;min-width:0}.menu-item > eo-link::part(link){height:20px;display:flex;align-items:center;gap:8px;color:var(--color-header-text)}.menu-groups{grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}.menu-groups{display:grid;grid-gap:32px 8px;gap:32px 8px}.menu-group{padding-right:12px;color:var(--color-header-text)}.menu-group-label{font-size:var(--card-title-font-size);font-weight:500;color:var(--color-header-text);margin-bottom:14px}.menu-item:not(.folder){display:flex;gap:8px;align-items:center}.menu-icon{color:var(--eo-search-launchpad-menu-icon-color)}.menu-item.active,\n.menu-item.active .menu-icon{color:var(--color-brand-active)}.sub-menu:not(.expanded){display:none}.sub-menu{margin-top:14px;margin-left:8px;border-left:1px solid var(--color-text-divider-line);padding-left:15px}.menu-item-star{cursor:pointer}.menu-item-star,\n.menu-item-toggle{color:var(--color-secondary-text)}.menu-item-star{display:none}.can-star.starred > .menu-item-star,\n.can-star:hover > .menu-item-star{display:inline-block}.can-star:not(.starred) > .menu-item-star{color:var(--color-secondary-text)}.starred > .menu-item-star{color:var(--palette-yellow-6)}.menu-item > eo-link:hover::part(link),\n.menu-item > eo-link:hover .menu-icon,\n.menu-item > eo-link:hover .menu-item-toggle{color:var(--color-brand-hover)}@supports not (inset: 0){.search-box,\n .menu,\n .sub-menu,\n .menu-item:not(.folder),\n .menu-item > eo-link::part(link){gap:0}.dropdown-content{display:grid;grid-auto-flow:row}.dropdown-content:not(.loading){height:-webkit-min-content;height:-moz-min-content;height:min-content}.menu > :not(:first-child),\n .sub-menu > :not(:first-child){margin-top:14px}.search-icon,\n .menu-icon{margin-right:8px}.search-clear,\n .menu-item-star,\n .menu-item-toggle{margin-left:8px}}",""]);const l=i.toString()},6527:(e,n,o)=>{var t=o(6062),r=o.n(t),a=o(4036),i=o.n(a),l=o(6793),c=o.n(l),s=o(7892),d=o.n(s),m=o(1173),p=o.n(m),u=o(2464),h=o.n(u),g=o(1943),x={};x.styleTagTransform=h(),x.setAttributes=d(),x.insert=c().bind(null,"head"),x.domAPI=i(),x.insertStyleElement=p(),r()(g.Z,x),g.Z&&g.Z.locals&&g.Z.locals}}]);
|
|
2
|
+
//# sourceMappingURL=eo-search-launchpad.5a6a04aa.js.map
|
package/dist/chunks/{eo-search-launchpad.2442a18b.js.map → eo-search-launchpad.5a6a04aa.js.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chunks/eo-search-launchpad.2442a18b.js","mappings":"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","sources":["webpack:///./src/search-launchpad/index.tsx","webpack:///./src/search-launchpad/host-context.css","webpack:///./src/search-launchpad/styles.shadow.css","webpack:///./src/search-launchpad/host-context.css?4d0b"],"sourcesContent":["import React, { useCallback, useRef, useState } from \"react\";\nimport { createDecorators } from \"@next-core/element\";\nimport { ReactNextElement, wrapBrick } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport styleText from \"./styles.shadow.css\";\nimport classNames from \"classnames\";\nimport { LaunchpadsContext } from \"../launchpad-button-v2/LaunchpadContext\";\nimport { useLaunchpadInfo } from \"../launchpad-button-v2/useLaunchpadInfo\";\nimport { MenuGroup } from \"../launchpad-button-v2/MenuGroup\";\nimport { GeneralIcon, GeneralIconProps } from \"@next-bricks/icons/general-icon\";\nimport \"./host-context.css\";\n\nexport const WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\n\nconst { defineElement, property } = createDecorators();\n\n/**\n * launchpad 搜索\n */\nexport\n@defineElement(\"eo-search-launchpad\", {\n styleTexts: [styleText],\n})\nclass EoSearchLaunchpad extends ReactNextElement {\n render() {\n return <EoSearchLaunchpadComponent />;\n }\n}\n\nexport function EoSearchLaunchpadComponent() {\n const searchInputRef = useRef<HTMLInputElement>(null);\n const handleClickSearchBox = useCallback(() => {\n searchInputRef.current?.focus();\n }, []);\n\n const [active, setActive] = useState(false);\n\n const {\n loading,\n q,\n setQ,\n menuGroups,\n loadingFavorites,\n pushRecentVisit,\n toggleStar,\n isStarred,\n } = useLaunchpadInfo(active);\n const searching = !!q;\n\n const handleSearch = useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n setQ(e.target.value);\n },\n [setQ]\n );\n\n const clearSearch = useCallback(() => {\n setQ(\"\");\n }, [setQ]);\n\n return (\n <LaunchpadsContext.Provider\n value={{\n searching,\n loadingFavorites,\n pushRecentVisit,\n toggleStar,\n isStarred,\n }}\n >\n <div className=\"container\">\n <div className=\"search-box\" onClick={handleClickSearchBox}>\n <WrappedIcon\n lib=\"fa\"\n icon=\"magnifying-glass\"\n className=\"search-icon\"\n />\n <input\n ref={searchInputRef}\n placeholder=\"搜索产品/微应用\"\n value={q}\n onChange={handleSearch}\n className=\"search-input\"\n onFocus={() => setActive(true)}\n onBlur={() => setActive(false)}\n />\n <WrappedIcon\n lib=\"antd\"\n theme=\"filled\"\n icon=\"close-circle\"\n className={classNames(\"search-clear\", { searching })}\n onClick={clearSearch}\n onMouseDown={(e) => e.preventDefault()}\n />\n </div>\n <div\n className={classNames(\"dropdown\", { \"dropdown-active\": active })}\n onMouseDown={(e) => e.preventDefault()}\n >\n <div className={classNames(\"dropdown-content\", { loading })}>\n <Loading loading={loading} />\n <ul className=\"menu-groups\">\n {menuGroups.map((group) => (\n <MenuGroup\n key={group.name}\n name={group.name}\n items={group.items}\n />\n ))}\n </ul>\n </div>\n </div>\n </div>\n </LaunchpadsContext.Provider>\n );\n}\n\nfunction Loading({ loading }: { loading: boolean }) {\n return (\n loading && (\n <div className=\"spinner\">\n <WrappedIcon lib=\"fa\" icon=\"spinner\" spinning />\n </div>\n )\n );\n}\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:root{--eo-search-launchpad-menu-icon-color:#8c8c8c}html[data-theme=\"dark\"],\nhtml[data-theme=\"dark-v2\"]{--eo-search-launchpad-menu-icon-color:rgba(255,255,255,0.45)}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:block}:host([hidden]){display:none}.container{position:relative}.dropdown{margin-top:5px;position:absolute;top:100%;left:0px;width:100%;z-index:1050;padding:20px 24px 24px;overflow:hidden;box-sizing:border-box;background-color:var(--antd-select-dropdown-bg);border-radius:4px;box-shadow:var(--antd-box-shadow-base);display:none}.dropdown-active{display:block}.search-box{border-bottom:1px solid var(--color-text-divider-line);display:flex;gap:8px;align-items:center;padding:10px 0;cursor:text}.search-icon{color:var(--color-auxiliary-text)}.search-input{padding:0;margin:0;border:none;outline:none;color:inherit;background-color:transparent;font-size:14px;line-height:22px;flex:1;min-width:0}.search-input::placeholder{color:var(--color-disabled-text);opacity:1}.search-clear{display:none;color:var(--color-secondary-text);cursor:pointer}.search-clear.searching{display:inline-block}.search-clear:hover{color:var(--color-auxiliary-text)}.dropdown-content{min-width:0;display:flex;flex-direction:column;gap:24px;max-height:260px;overflow-y:auto}.spinner{display:flex;justify-content:center;align-items:center;color:var(--theme-doderblue-color);flex:1;font-size:30px}.loading > :not(.spinner){display:none}.menu-group-label,\n.menu-item-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.menu-groups,\n.menu,\n.sub-menu{list-style:none;margin:0;padding:0}.menu,\n.sub-menu{display:flex;flex-direction:column;gap:14px}.menu-item > eo-link{display:block;min-width:0}.menu-item > eo-link::part(link){height:20px;display:flex;align-items:center;gap:8px;color:var(--color-header-text)}.menu-groups{grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}.menu-groups{display:grid;grid-gap:32px 8px;gap:32px 8px}.menu-group{padding-right:12px;color:var(--color-header-text)}.menu-group-label{font-size:var(--card-title-font-size);font-weight:500;color:var(--color-header-text);margin-bottom:14px}.menu-item:not(.folder){display:flex;gap:8px;align-items:center}.menu-icon{color:var(--eo-search-launchpad-menu-icon-color)}.menu-item.active,\n.menu-item.active .menu-icon{color:var(--color-brand-active)}.sub-menu:not(.expanded){display:none}.sub-menu{margin-top:14px;margin-left:8px;border-left:1px solid var(--color-text-divider-line);padding-left:15px}.menu-item-star{cursor:pointer}.menu-item-star,\n.menu-item-toggle{color:var(--color-secondary-text)}.menu-item-star{display:none}.can-star.starred > .menu-item-star,\n.can-star:hover > .menu-item-star{display:inline-block}.can-star:not(.starred) > .menu-item-star{color:var(--color-secondary-text)}.starred > .menu-item-star{color:var(--palette-yellow-6)}.menu-item > eo-link:hover::part(link),\n.menu-item > eo-link:hover .menu-icon,\n.menu-item > eo-link:hover .menu-item-toggle{color:var(--color-brand-hover)}@supports not (inset: 0){.search-box,\n .menu,\n .sub-menu,\n .menu-item:not(.folder),\n .menu-item > eo-link::part(link){gap:0}.dropdown-content{display:grid;grid-auto-flow:row}.dropdown-content:not(.loading){height:-webkit-min-content;height:-moz-min-content;height:min-content}.menu > :not(:first-child),\n .sub-menu > :not(:first-child){margin-top:14px}.search-icon,\n .menu-icon{margin-right:8px}.search-clear,\n .menu-item-star,\n .menu-item-toggle{margin-left:8px}}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","\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"],"names":["_EoSearchLaunchpad","WrappedIcon","wrapBrick","defineElement","property","createDecorators","_dec","styleTexts","styleText","EoSearchLaunchpad","ReactNextElement","render","React","EoSearchLaunchpadComponent","searchInputRef","useRef","handleClickSearchBox","useCallback","_searchInputRef$curre","current","focus","active","setActive","useState","loading","q","setQ","menuGroups","loadingFavorites","pushRecentVisit","toggleStar","isStarred","useLaunchpadInfo","searching","handleSearch","e","target","value","clearSearch","LaunchpadsContext","Provider","className","onClick","lib","icon","ref","placeholder","onChange","onFocus","onBlur","theme","classNames","onMouseDown","preventDefault","Loading","map","group","MenuGroup","key","name","items","_ref","spinning","_class","_initClass","_applyDecs","c","___CSS_LOADER_EXPORT___","push","module","id","toString","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"file":"chunks/eo-search-launchpad.5a6a04aa.js","mappings":"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","sources":["webpack:///./src/search-launchpad/index.tsx","webpack:///./src/search-launchpad/host-context.css","webpack:///./src/search-launchpad/styles.shadow.css","webpack:///./src/search-launchpad/host-context.css?4d0b"],"sourcesContent":["import React, { useCallback, useRef, useState } from \"react\";\nimport { createDecorators } from \"@next-core/element\";\nimport { ReactNextElement, wrapBrick } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport styleText from \"./styles.shadow.css\";\nimport classNames from \"classnames\";\nimport { LaunchpadsContext } from \"../launchpad-button-v2/LaunchpadContext\";\nimport { useLaunchpadInfo } from \"../launchpad-button-v2/useLaunchpadInfo\";\nimport { MenuGroup } from \"../launchpad-button-v2/MenuGroup\";\nimport { GeneralIcon, GeneralIconProps } from \"@next-bricks/icons/general-icon\";\nimport \"./host-context.css\";\n\nexport const WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\n\nconst { defineElement, property } = createDecorators();\n\n/**\n * launchpad 搜索\n */\nexport\n@defineElement(\"eo-search-launchpad\", {\n styleTexts: [styleText],\n})\nclass EoSearchLaunchpad extends ReactNextElement {\n render() {\n return <EoSearchLaunchpadComponent />;\n }\n}\n\nexport function EoSearchLaunchpadComponent() {\n const searchInputRef = useRef<HTMLInputElement>(null);\n const handleClickSearchBox = useCallback(() => {\n searchInputRef.current?.focus();\n }, []);\n\n const [active, setActive] = useState(false);\n\n const {\n loading,\n q,\n setQ,\n menuGroups,\n loadingFavorites,\n pushRecentVisit,\n toggleStar,\n isStarred,\n } = useLaunchpadInfo(active);\n const searching = !!q;\n\n const handleSearch = useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n setQ(e.target.value);\n },\n [setQ]\n );\n\n const clearSearch = useCallback(() => {\n setQ(\"\");\n }, [setQ]);\n\n return (\n <LaunchpadsContext.Provider\n value={{\n searching,\n loadingFavorites,\n pushRecentVisit,\n toggleStar,\n isStarred,\n }}\n >\n <div className=\"container\">\n <div className=\"search-box\" onClick={handleClickSearchBox}>\n <WrappedIcon\n lib=\"fa\"\n icon=\"magnifying-glass\"\n className=\"search-icon\"\n />\n <input\n ref={searchInputRef}\n placeholder=\"搜索产品/微应用\"\n value={q}\n onChange={handleSearch}\n className=\"search-input\"\n onFocus={() => setActive(true)}\n onBlur={() => setActive(false)}\n />\n <WrappedIcon\n lib=\"antd\"\n theme=\"filled\"\n icon=\"close-circle\"\n className={classNames(\"search-clear\", { searching })}\n onClick={clearSearch}\n onMouseDown={(e) => e.preventDefault()}\n />\n </div>\n <div\n className={classNames(\"dropdown\", { \"dropdown-active\": active })}\n onMouseDown={(e) => e.preventDefault()}\n >\n <div className={classNames(\"dropdown-content\", { loading })}>\n <Loading loading={loading} />\n <ul className=\"menu-groups\">\n {menuGroups.map((group) => (\n <MenuGroup\n key={group.name}\n name={group.name}\n items={group.items}\n />\n ))}\n </ul>\n </div>\n </div>\n </div>\n </LaunchpadsContext.Provider>\n );\n}\n\nfunction Loading({ loading }: { loading: boolean }) {\n return (\n loading && (\n <div className=\"spinner\">\n <WrappedIcon lib=\"fa\" icon=\"spinner\" spinning />\n </div>\n )\n );\n}\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:root{--eo-search-launchpad-menu-icon-color:#8c8c8c}html[data-theme=\"dark\"],\nhtml[data-theme=\"dark-v2\"]{--eo-search-launchpad-menu-icon-color:rgba(255,255,255,0.45)}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:block}:host([hidden]){display:none}.container{position:relative}.dropdown{margin-top:5px;position:absolute;top:100%;left:0px;width:100%;z-index:1050;padding:20px 24px 24px;overflow:hidden;box-sizing:border-box;background-color:var(--antd-select-dropdown-bg);border-radius:4px;box-shadow:var(--antd-box-shadow-base);display:none}.dropdown-active{display:block}.search-box{border-bottom:1px solid var(--color-text-divider-line);display:flex;gap:8px;align-items:center;padding:10px 0;cursor:text}.search-icon{color:var(--color-auxiliary-text)}.search-input{padding:0;margin:0;border:none;outline:none;color:inherit;background-color:transparent;font-size:14px;line-height:22px;flex:1;min-width:0}.search-input::placeholder{color:var(--color-disabled-text);opacity:1}.search-clear{display:none;color:var(--color-secondary-text);cursor:pointer}.search-clear.searching{display:inline-block}.search-clear:hover{color:var(--color-auxiliary-text)}.dropdown-content{min-width:0;display:flex;flex-direction:column;gap:24px;max-height:260px;overflow-y:auto}.spinner{display:flex;justify-content:center;align-items:center;color:var(--theme-doderblue-color);flex:1;font-size:30px}.loading > :not(.spinner){display:none}.menu-group-label,\n.menu-item-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.menu-groups,\n.menu,\n.sub-menu{list-style:none;margin:0;padding:0}.menu,\n.sub-menu{display:flex;flex-direction:column;gap:14px}.menu-item > eo-link{display:block;min-width:0}.menu-item > eo-link::part(link){height:20px;display:flex;align-items:center;gap:8px;color:var(--color-header-text)}.menu-groups{grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}.menu-groups{display:grid;grid-gap:32px 8px;gap:32px 8px}.menu-group{padding-right:12px;color:var(--color-header-text)}.menu-group-label{font-size:var(--card-title-font-size);font-weight:500;color:var(--color-header-text);margin-bottom:14px}.menu-item:not(.folder){display:flex;gap:8px;align-items:center}.menu-icon{color:var(--eo-search-launchpad-menu-icon-color)}.menu-item.active,\n.menu-item.active .menu-icon{color:var(--color-brand-active)}.sub-menu:not(.expanded){display:none}.sub-menu{margin-top:14px;margin-left:8px;border-left:1px solid var(--color-text-divider-line);padding-left:15px}.menu-item-star{cursor:pointer}.menu-item-star,\n.menu-item-toggle{color:var(--color-secondary-text)}.menu-item-star{display:none}.can-star.starred > .menu-item-star,\n.can-star:hover > .menu-item-star{display:inline-block}.can-star:not(.starred) > .menu-item-star{color:var(--color-secondary-text)}.starred > .menu-item-star{color:var(--palette-yellow-6)}.menu-item > eo-link:hover::part(link),\n.menu-item > eo-link:hover .menu-icon,\n.menu-item > eo-link:hover .menu-item-toggle{color:var(--color-brand-hover)}@supports not (inset: 0){.search-box,\n .menu,\n .sub-menu,\n .menu-item:not(.folder),\n .menu-item > eo-link::part(link){gap:0}.dropdown-content{display:grid;grid-auto-flow:row}.dropdown-content:not(.loading){height:-webkit-min-content;height:-moz-min-content;height:min-content}.menu > :not(:first-child),\n .sub-menu > :not(:first-child){margin-top:14px}.search-icon,\n .menu-icon{margin-right:8px}.search-clear,\n .menu-item-star,\n .menu-item-toggle{margin-left:8px}}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","\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"],"names":["_EoSearchLaunchpad","WrappedIcon","wrapBrick","defineElement","property","createDecorators","_dec","styleTexts","styleText","EoSearchLaunchpad","ReactNextElement","render","React","EoSearchLaunchpadComponent","searchInputRef","useRef","handleClickSearchBox","useCallback","_searchInputRef$curre","current","focus","active","setActive","useState","loading","q","setQ","menuGroups","loadingFavorites","pushRecentVisit","toggleStar","isStarred","useLaunchpadInfo","searching","handleSearch","e","target","value","clearSearch","LaunchpadsContext","Provider","className","onClick","lib","icon","ref","placeholder","onChange","onFocus","onBlur","theme","classNames","onMouseDown","preventDefault","Loading","map","group","MenuGroup","key","name","items","_ref","spinning","_class","_initClass","_applyDecs","c","___CSS_LOADER_EXPORT___","push","module","id","toString","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals"],"sourceRoot":""}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
/*! For license information please see launchpad-config.4fc7e8e2.js.LICENSE.txt */
|
|
2
|
+
(self.webpackChunk_next_bricks_nav=self.webpackChunk_next_bricks_nav||[]).push([[1522,6522,5628],{4999:(e,t,n)=>{"use strict";n.d(t,{k:()=>p});var r=n(7896),i=n(8657),a=n.n(i),o=n(5178),l=n(2779),c=n.n(l),s=n(9181),u=n(3483),m=n(107);function p(e){var{data:t,actions:n,onActionClick:r}=e,{name:o,items:l}=t,[m,p]=(0,i.useState)(!1),v=(0,i.useMemo)((()=>null==n?void 0:n.filter((e=>(0,s.checkIfByTransform)(e,{type:"group"})))),[n]),h=(0,i.useCallback)((e=>{null==r||r({data:t,action:e.detail})}),[t,r]);return a().createElement("li",{className:c()("menu-group",{empty:0===l.length})},a().createElement("div",{className:"menu-group-label-wrapper"},a().createElement("span",{className:"menu-group-label"},o),a().createElement(u.rO,{actions:v,onVisibleChange:e=>{p(e.detail)},onActionClick:h},a().createElement(u.V3,{lib:"fa",icon:"gear",className:c()("menu-config",{active:m})}))),a().createElement("ul",{className:"menu"},l.map((e=>"dir"===e.type?a().createElement(d,{key:e.instanceId,data:e,actions:n,onActionClick:r}):a().createElement(f,{key:"".concat(e.type,"-").concat(e.id),data:e,actions:n,onActionClick:r})))))}function f(e){var t,{data:n,actions:l,onActionClick:p}=e,f=(0,i.useMemo)((()=>"app"===n.type?(0,m.d)(n.locales,n.name):n.name),[n]),[d,v]=(0,i.useState)(!1),h=(0,i.useMemo)((()=>null==l?void 0:l.filter((e=>(0,s.checkIfByTransform)(e,n)))),[l,n]),g=(0,i.useCallback)((e=>{null==p||p({data:n,action:e.detail})}),[n,p]);return a().createElement("li",{className:"menu-item"},a().createElement(u.kk,null,a().createElement(u.V3,(0,r.Z)({className:"menu-icon",lib:"easyops",icon:"micro-app-center"},null!==(t=n.menuIcon)&&void 0!==t&&t.lib&&n.menuIcon.icon?(0,o.pick)(n.menuIcon,["lib","icon","theme","category","prefix"]):null)),a().createElement("span",{className:"menu-item-label"},f)),a().createElement(u.rO,{actions:h,onVisibleChange:e=>{v(e.detail)},onActionClick:g},a().createElement(u.V3,{lib:"fa",icon:"gear",className:c()("menu-config",{active:d})})))}function d(e){var{data:t,actions:n,onActionClick:r}=e,{name:o,items:l}=t,[m,p]=(0,i.useState)(!1),[d,v]=(0,i.useState)(!1),h=(0,i.useMemo)((()=>null==n?void 0:n.filter((e=>(0,s.checkIfByTransform)(e,{type:"dir"})))),[n]),g=(0,i.useCallback)((()=>{v((e=>!e))}),[]),b=(0,i.useCallback)((e=>{null==r||r({data:t,action:e.detail})}),[t,r]);return a().createElement("li",{className:c()("menu-item folder",{empty:0===l.length})},a().createElement("div",{className:"menu-folder-label-wrapper"},a().createElement(u.kk,{onClick:g},a().createElement(u.V3,{lib:"fa",prefix:"far",icon:"folder-open",className:"menu-icon"}),a().createElement("span",{className:"menu-item-label"},o),a().createElement(u.V3,{lib:"antd",icon:d?"up":"down",className:"menu-item-toggle"})),a().createElement(u.rO,{actions:h,onVisibleChange:e=>{p(e.detail)},onActionClick:b},a().createElement(u.V3,{lib:"fa",icon:"gear",className:c()("menu-config",{active:m})}))),a().createElement("ul",{className:c()("sub-menu",{expanded:d})},l.map((e=>a().createElement(f,{key:e.instanceId,data:e,actions:n,onActionClick:r})))))}},6204:(e,t,n)=>{"use strict";n.r(t),n.d(t,{LaunchpadConfig:()=>v,LaunchpadConfigComponent:()=>G});var r,i,a,o,l,c,s,u,m,p,f,d,v,h=n(3395),g=n(1815),b=n(381),y=n(687),w=n(2604),k=n(8657),x=n.n(k),E=n(2462),Z=n(2354),C=(n(9234),n(4999)),A=n(9534),{defineElement:S,property:j,event:N}=(0,E.createDecorators)();i=S("nav.launchpad-config",{styleTexts:[A.Z]}),a=j({attribute:!1}),l=j({attribute:!1}),s=N({type:"action.click"});var O=new WeakMap,T=new WeakMap,I=new WeakMap,M=new WeakMap,V=new WeakMap;class z extends Z.ReactNextElement{constructor(){super(...arguments),(0,h.Z)(this,M,{get:B,set:P}),(0,h.Z)(this,O,{writable:!0,value:(f(this),o(this))}),(0,h.Z)(this,T,{writable:!0,value:c(this)}),(0,h.Z)(this,I,{writable:!0,value:u(this)}),(0,h.Z)(this,V,{writable:!0,value:e=>{(0,y.Z)(this,M).emit(e)}})}get menuGroups(){return(0,y.Z)(this,O)}set menuGroups(e){(0,b.Z)(this,O,e)}get actions(){return(0,y.Z)(this,T)}set actions(e){(0,b.Z)(this,T,e)}render(){return x().createElement(G,{menuGroups:this.menuGroups,actions:this.actions,onActionClick:(0,y.Z)(this,V)})}}function P(e){p(this,e)}function B(){return m(this)}function G(e){var{menuGroups:t,actions:n,onActionClick:r}=e;return x().createElement("ul",{className:"menu-groups"},null==t?void 0:t.map((e=>x().createElement(C.k,{key:e.instanceId,data:e,actions:n,onActionClick:r}))))}d=z,({e:[o,c,u,m,p,f],c:[v,r]}=(0,w.Z)(d,[[a,1,"menuGroups"],[l,1,"actions"],[s,1,"actionClickEvent",e=>(0,y.Z)(e,I),(e,t)=>(0,b.Z)(e,I,t)]],[i],0,(e=>V.has((0,g.Z)(e))),Z.ReactNextElement)),r()},3483:(e,t,n)=>{"use strict";n.d(t,{V3:()=>a,kk:()=>o,rO:()=>l});var r=n(2354),i=n(9171),a=(0,r.wrapBrick)("eo-icon"),o=(0,r.wrapBrick)("eo-link"),l=(0,r.wrapBrick)("eo-dropdown-actions",{onActionClick:"action.click",onVisibleChange:"visible.change"});(0,i.unwrapProvider)("basic.show-dialog")},107:(e,t,n)=>{"use strict";n.d(t,{d:()=>i});var r=n(199);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}},2779:(e,t)=>{var n;!function(){"use strict";var r={}.hasOwnProperty;function i(){for(var e=[],t=0;t<arguments.length;t++){var n=arguments[t];if(n){var a=typeof n;if("string"===a||"number"===a)e.push(n);else if(Array.isArray(n)){if(n.length){var o=i.apply(null,n);o&&e.push(o)}}else if("object"===a){if(n.toString!==Object.prototype.toString&&!n.toString.toString().includes("[native code]")){e.push(n.toString());continue}for(var l in n)r.call(n,l)&&n[l]&&e.push(l)}}}return e.join(" ")}e.exports?(i.default=i,e.exports=i):void 0===(n=function(){return i}.apply(t,[]))||(e.exports=n)}()},9534:(e,t,n)=>{"use strict";n.d(t,{Z:()=>l});var r=n(9601),i=n.n(r),a=n(2609),o=n.n(a)()(i());o.push([e.id,":host{display:block;--local-menu-icon-color:#8c8c8c}:host([hidden]){display:none;--local-menu-icon-color:rgba(255,255,255,0.45)}ul{list-style:none;margin:0;padding:0}.menu-groups{display:grid;grid-gap:32px 16px;gap:32px 16px;grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}.sidebar-menu,\n.menu,\n.sub-menu{display:flex;flex-direction:column;gap:14px}.menu-folder-label-wrapper > eo-link,\n.menu-item > eo-link{display:block}.menu-folder-label-wrapper > eo-link::part(link),\n.menu-item > eo-link::part(link){height:20px;display:flex;align-items:center;gap:8px;color:var(--color-header-text)}.menu-group-label-wrapper,\n.menu-folder-label-wrapper,\n.menu-item:not(.folder){display:flex;gap:8px;align-items:center}.menu-group-label-wrapper{gap:3px}.menu-group:not(.empty) .menu-group-label-wrapper{margin-bottom:14px}.menu-group-label,\n.menu-item-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.menu-group-label{font-size:var(--card-title-font-size);font-weight:500;color:var(--color-header-text)}.menu-icon{color:var(--local-menu-icon-color)}.menu-folder-label-wrapper > eo-link,\n.menu-item > eo-link{max-width:100%;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;min-width:0}.sub-menu:not(.expanded){display:none}.sub-menu{margin-left:8px;border-left:1px solid var(--color-text-divider-line);padding-left:15px}.menu-item:not(.empty) .sub-menu{margin-top:14px}.menu-item-toggle{color:var(--color-secondary-text)}.menu-config{visibility:hidden;color:var(--color-brand);cursor:pointer;display:flex;justify-content:center;align-items:center;height:24px;width:0}.menu-config.active,\n.menu-group-label-wrapper:hover .menu-config,\n.menu-item:not(.folder):hover .menu-config,\n.menu-folder-label-wrapper:hover .menu-config{visibility:visible;width:24px}.menu-item > eo-dropdown-actions,\n.menu-folder-label-wrapper > eo-dropdown-actions{margin:-3px 0}.menu-config:hover,\n.menu-item > eo-link:hover::part(link),\n.menu-item > eo-link:hover .menu-icon,\n.menu-folder-label-wrapper > eo-link:hover::part(link),\n.menu-folder-label-wrapper > eo-link:hover .menu-icon,\n.menu-folder-label-wrapper > eo-link:hover .menu-item-toggle{color:var(--color-brand-hover)}",""]);const l=o.toString()},2609:e=>{"use strict";e.exports=function(e){var t=[];return t.toString=function(){return this.map((function(t){var n="",r=void 0!==t[5];return t[4]&&(n+="@supports (".concat(t[4],") {")),t[2]&&(n+="@media ".concat(t[2]," {")),r&&(n+="@layer".concat(t[5].length>0?" ".concat(t[5]):""," {")),n+=e(t),r&&(n+="}"),t[2]&&(n+="}"),t[4]&&(n+="}"),n})).join("")},t.i=function(e,n,r,i,a){"string"==typeof e&&(e=[[null,e,void 0]]);var o={};if(r)for(var l=0;l<this.length;l++){var c=this[l][0];null!=c&&(o[c]=!0)}for(var s=0;s<e.length;s++){var u=[].concat(e[s]);r&&o[u[0]]||(void 0!==a&&(void 0===u[5]||(u[1]="@layer".concat(u[5].length>0?" ".concat(u[5]):""," {").concat(u[1],"}")),u[5]=a),n&&(u[2]?(u[1]="@media ".concat(u[2]," {").concat(u[1],"}"),u[2]=n):u[2]=n),i&&(u[4]?(u[1]="@supports (".concat(u[4],") {").concat(u[1],"}"),u[4]=i):u[4]="".concat(i)),t.push(u))}},t}},9601:e=>{"use strict";e.exports=function(e){return e[1]}},2604:(e,t,n)=>{"use strict";n.d(t,{Z:()=>p});var r=n(6522),i=n(1815);function a(e,t){return function(n,r){return e[t].call(n,r)}}function o(e,t){return function(n){if(t.v)throw new Error("attempted to call addInitializer after decoration was finished");c(n,"An initializer",!0),e.push(n)}}function l(e,t,n,r,i,l,c,s,u,m,p){function f(e){return function(t,n){if(!m(t))throw new TypeError("Attempted to access private element on non-instance");return e(t,n)}}var d,v,h={v:!1},g={kind:["field","accessor","method","getter","setter","field"][l],name:s?"#"+n:n,static:c,private:s,metadata:p,addInitializer:o(i,h)};if(s||0!==l&&2!==l)if(2===l)d=f((function(){return r.value}));else{var b=0===l||1===l;(b||3===l)&&(d=a(r,"get"),s&&(d=f(d))),(b||4===l)&&(v=a(r,"set"),s&&(v=f(v)))}else d=function(e){return e[n]},0===l&&(v=function(e,t){e[n]=t});var y=s?m.bind():function(e){return n in e},w=g.access={has:y};d&&(w.get=d),v&&(w.set=v);try{return e.call(t,u,g)}finally{h.v=!0}}function c(e,t,n){if("function"!=typeof e&&(n||void 0!==e))throw new TypeError(t+" must be a function")}function s(e,t){var n=(0,r.Z)(t);if(1===e){if("object"!==n||!t)throw new TypeError("accessor decorators must return an object with get, set, or init properties or void 0");c(t.get,"accessor.get"),c(t.set,"accessor.set"),c(t.init,"accessor.init")}else if("function"!==n)throw new TypeError((0===e?"field":5===e?"class":"method")+" decorators must return a function or void 0")}function u(e,t,n,r,i,o,c,u,m,p,f){var d,v,h,g,b=n[0],y=n[3];r||Array.isArray(b)||(b=[b]),u?d=0===o||1===o?{get:function(){return y(this)},set:function(e){n[4](this,e)}}:3===o?{get:y}:4===o?{set:y}:{value:y}:0!==o&&(d=Object.getOwnPropertyDescriptor(t,i)),1===o?h={get:d.get,set:d.set}:2===o?h=d.value:3===o?h=d.get:4===o&&(h=d.set);for(var w=r?2:1,k=b.length-1;k>=0;k-=w){var x;void 0!==(g=l(b[k],r?b[k-1]:void 0,i,d,m,o,c,u,h,p,f))&&(s(o,g),0===o?x=g:1===o?(x=g.init,h={get:g.get||h.get,set:g.set||h.set}):h=g,void 0!==x&&(void 0===v?v=x:"function"==typeof v?v=[v,x]:v.push(x)))}if(0===o||1===o){if(void 0===v)v=function(e,t){return t};else if("function"!=typeof v){var E=v;v=function(e,t){for(var n=t,r=E.length-1;r>=0;r--)n=E[r].call(e,n);return n}}else{var Z=v;v=v.call.bind(Z)}e.push(v)}0!==o&&(1===o?(d.get=h.get,d.set=h.set):2===o?d.value=h:3===o?d.get=h:4===o&&(d.set=h),u?1===o?e.push(a(d,"get"),a(d,"set")):e.push(2===o?h:Function.call.bind(h)):Object.defineProperty(t,i,d))}function m(e,t){return Object.defineProperty(e,Symbol.metadata||Symbol.for("Symbol.metadata"),{configurable:!0,enumerable:!0,value:t})}function p(e,t,n,r,a,l){if(arguments.length>=6)var c=l[Symbol.metadata||Symbol.for("Symbol.metadata")];var p=Object.create(void 0===c?null:c),f=function(e,t,n,r){var a,o,l,c=[],s=new Map,m=new Map;function p(e){e&&c.push((function(t){for(var n=0;n<e.length;n++)e[n].call(t);return t}))}for(var f=0;f<t.length;f++){var d=t[f];if(Array.isArray(d)){var v,h,g=d[1],b=d[2],y=d.length>3,w=16&g,k=!!(8&g),x=n;if(g&=7,k?(v=e,h=o=o||[],y&&!l&&(l=function(t){return(0,i.Z)(t)===e}),x=l):(v=e.prototype,h=a=a||[]),0!==g&&!y){var E=k?m:s,Z=E.get(b)||0;if(!0===Z||3===Z&&4!==g||4===Z&&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: "+b);E.set(b,!(!Z&&g>2)||g)}u(c,v,d,w,b,g,k,y,h,x,r)}}return p(a),p(o),c}(e,t,a,p);return n.length||m(e,p),{e:f,get c(){return function(e,t,n,r){if(t.length){for(var i=[],a=e,l=e.name,c=n?2:1,u=t.length-1;u>=0;u-=c){var p={v:!1};try{var f=t[u].call(n?t[u-1]:void 0,a,{kind:"class",name:l,addInitializer:o(i,p),metadata:r})}finally{p.v=!0}void 0!==f&&(s(5,f),a=f)}return[m(a,r),function(){for(var e=0;e<i.length;e++)i[e].call(a)}]}}(e,n,r,p)}}}},1815:(e,t,n)=>{"use strict";n.d(t,{Z:()=>i});var r=n(6522);function i(e){if(Object(e)!==e)throw TypeError("right-hand side of 'in' should be an object, got "+(null!==e?(0,r.Z)(e):"null"));return e}},5863:(e,t,n)=>{"use strict";function r(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}n.d(t,{Z:()=>r})},175:(e,t,n)=>{"use strict";function r(e,t,n){if(!t.has(e))throw new TypeError("attempted to "+n+" private field on non-instance");return t.get(e)}n.d(t,{Z:()=>r})},687:(e,t,n)=>{"use strict";n.d(t,{Z:()=>i});var r=n(175);function i(e,t){return function(e,t){return t.get?t.get.call(e):t.value}(e,(0,r.Z)(e,t,"get"))}},3395:(e,t,n)=>{"use strict";n.d(t,{Z:()=>i});var r=n(5863);function i(e,t,n){(0,r.Z)(e,t),t.set(e,n)}},381:(e,t,n)=>{"use strict";n.d(t,{Z:()=>i});var r=n(175);function i(e,t,n){return function(e,t,n){if(t.set)t.set.call(e,n);else{if(!t.writable)throw new TypeError("attempted to set read only private field");t.value=n}}(e,(0,r.Z)(e,t,"set"),n),n}},7896:(e,t,n)=>{"use strict";function r(){return r=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},r.apply(this,arguments)}n.d(t,{Z:()=>r})},6522:(e,t,n)=>{"use strict";function r(e){return r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r(e)}n.d(t,{Z:()=>r})}}]);
|
|
3
|
+
//# sourceMappingURL=launchpad-config.4fc7e8e2.js.map
|