@next-bricks/nav 0.5.6 → 0.5.7
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/2108.f48fcbb9.js +2 -0
- package/dist/chunks/2108.f48fcbb9.js.map +1 -0
- package/dist/chunks/327.031cd968.js +3 -0
- package/dist/chunks/{327.f17de4ee.js.map → 327.031cd968.js.map} +1 -1
- package/dist/chunks/{3458.dd56c7ea.js → 3458.4b14e915.js} +2 -2
- package/dist/chunks/{3458.dd56c7ea.js.map → 3458.4b14e915.js.map} +1 -1
- package/dist/chunks/{5636.b601815d.js → 5636.f459177e.js} +2 -2
- package/dist/chunks/{5636.b601815d.js.map → 5636.f459177e.js.map} +1 -1
- package/dist/chunks/6051.f18558a3.js +2 -0
- package/dist/chunks/6051.f18558a3.js.map +1 -0
- package/dist/chunks/{6205.b0250234.js → 6205.51468edb.js} +2 -2
- package/dist/chunks/{6205.b0250234.js.map → 6205.51468edb.js.map} +1 -1
- package/dist/chunks/6482.f89e901b.js +2 -0
- package/dist/chunks/{6482.559d003d.js.map → 6482.f89e901b.js.map} +1 -1
- package/dist/chunks/7110.ab1880c8.js +2 -0
- package/dist/chunks/7110.ab1880c8.js.map +1 -0
- package/dist/chunks/{7164.f4a731b7.js → 7164.3580a05f.js} +2 -2
- package/dist/chunks/{7164.f4a731b7.js.map → 7164.3580a05f.js.map} +1 -1
- package/dist/chunks/8142.a92cf697.js +2 -0
- package/dist/chunks/{8142.ba46baeb.js.map → 8142.a92cf697.js.map} +1 -1
- package/dist/chunks/{8691.179e33b1.js → 8691.533db233.js} +2 -2
- package/dist/chunks/{8691.179e33b1.js.map → 8691.533db233.js.map} +1 -1
- package/dist/chunks/9102.b12adfa9.js +3 -0
- package/dist/chunks/{9102.9235ccd8.js.map → 9102.b12adfa9.js.map} +1 -1
- package/dist/chunks/9816.8cea5f76.js +3 -0
- package/dist/chunks/{9816.8b4236ff.js.map → 9816.8cea5f76.js.map} +1 -1
- package/dist/chunks/eo-launchpad-button-v2.5f256b20.js +2 -0
- package/dist/chunks/{eo-launchpad-button-v2.75648e36.js.map → eo-launchpad-button-v2.5f256b20.js.map} +1 -1
- package/dist/chunks/{eo-launchpad-button.5e4a1b39.js → eo-launchpad-button.8103d9bc.js} +2 -2
- package/dist/chunks/{eo-launchpad-button.5e4a1b39.js.map → eo-launchpad-button.8103d9bc.js.map} +1 -1
- package/dist/chunks/eo-nav-menu.b0de8f24.js +3 -0
- package/dist/chunks/{eo-nav-menu.ba307647.js.map → eo-nav-menu.b0de8f24.js.map} +1 -1
- package/dist/chunks/launchpad-config.d5fed70f.js +3 -0
- package/dist/chunks/{launchpad-config.f68804a5.js.map → launchpad-config.d5fed70f.js.map} +1 -1
- package/dist/chunks/main.ef0911c7.js +2 -0
- package/dist/chunks/{main.df455617.js.map → main.ef0911c7.js.map} +1 -1
- package/dist/index.3cfe8e65.js +2 -0
- package/dist/index.3cfe8e65.js.map +1 -0
- package/package.json +8 -3
- package/dist/chunks/2108.68cb4c94.js +0 -2
- package/dist/chunks/2108.68cb4c94.js.map +0 -1
- package/dist/chunks/327.f17de4ee.js +0 -3
- package/dist/chunks/6051.370b2d16.js +0 -2
- package/dist/chunks/6051.370b2d16.js.map +0 -1
- package/dist/chunks/6482.559d003d.js +0 -2
- package/dist/chunks/7110.fd016bb6.js +0 -2
- package/dist/chunks/7110.fd016bb6.js.map +0 -1
- package/dist/chunks/8142.ba46baeb.js +0 -2
- package/dist/chunks/9102.9235ccd8.js +0 -3
- package/dist/chunks/9816.8b4236ff.js +0 -3
- package/dist/chunks/eo-launchpad-button-v2.75648e36.js +0 -2
- package/dist/chunks/eo-nav-menu.ba307647.js +0 -3
- package/dist/chunks/launchpad-config.f68804a5.js +0 -3
- package/dist/chunks/main.df455617.js +0 -2
- package/dist/index.2e29ee6a.js +0 -2
- package/dist/index.2e29ee6a.js.map +0 -1
- /package/dist/chunks/{327.f17de4ee.js.LICENSE.txt → 327.031cd968.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{9102.9235ccd8.js.LICENSE.txt → 9102.b12adfa9.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{9816.8b4236ff.js.LICENSE.txt → 9816.8cea5f76.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{eo-nav-menu.ba307647.js.LICENSE.txt → eo-nav-menu.b0de8f24.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{launchpad-config.f68804a5.js.LICENSE.txt → launchpad-config.d5fed70f.js.LICENSE.txt} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chunks/9816.8b4236ff.js","mappings":"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","sources":["webpack:///./src/launchpad-button-v2/LaunchpadContext.ts","webpack:///./src/launchpad-button-v2/MenuGroup.tsx","webpack:///./src/launchpad-button-v2/Launchpad.tsx","webpack:///../../node_modules/@next-api-sdk/user-service-sdk/dist/esm/api/user_service/launchpad/listCollectionV2.js","webpack:///../../node_modules/@next-api-sdk/user-service-sdk/dist/esm/api/user_service/launchpad/createCollectionV2.js","webpack:///../../node_modules/@next-api-sdk/user-service-sdk/dist/esm/api/user_service/launchpad/deleteCollectionV2.js","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-button-v2/styles.shadow.css","webpack:///../../node_modules/css-loader/dist/runtime/getUrl.js"],"sourcesContent":["import React from \"react\";\nimport type { MenuItemDataLink, MenuItemDataNormal } from \"./interfaces\";\n\nexport interface LaunchpadContextData {\n searching: boolean;\n loadingFavorites: boolean;\n pushRecentVisit(item: MenuItemDataNormal): void;\n toggleStar(item: MenuItemDataNormal | MenuItemDataLink): void;\n isStarred(item: MenuItemDataNormal): boolean;\n}\n\nexport const LaunchpadsContext = React.createContext<LaunchpadContextData>(\n {} as LaunchpadContextData\n);\n\nexport const useLaunchpadContext = (): LaunchpadContextData =>\n React.useContext(LaunchpadsContext);\n","import React, { useCallback, useEffect, useMemo, useState } from \"react\";\nimport { pick } from \"lodash\";\nimport classNames from \"classnames\";\nimport { WrappedIcon, WrappedLink } from \"./wrapped-bricks\";\nimport { useLaunchpadContext } from \"./LaunchpadContext\";\nimport type {\n MenuItemData,\n MenuItemDataNormal,\n SidebarMenuItemData,\n} from \"./interfaces\";\n\nexport interface MenuGroupProps {\n name: string;\n items: MenuItemData[];\n}\n\nexport function MenuGroup({ name, items }: MenuGroupProps) {\n return (\n <li className=\"menu-group\">\n <div className=\"menu-group-label\">{name}</div>\n <ul className=\"menu\">\n {items.map((item) =>\n item.type === \"dir\" ? (\n <MenuItemFolder\n key={`${item.type}-${item.id}`}\n name={item.name}\n items={item.items}\n />\n ) : (\n <MenuItem key={`${item.type}-${item.id}`} item={item} />\n )\n )}\n </ul>\n </li>\n );\n}\n\nexport interface MenuItemProps {\n item: MenuItemDataNormal;\n}\n\nfunction MenuItem({ item }: MenuItemProps) {\n const { loadingFavorites, pushRecentVisit, toggleStar, isStarred } =\n useLaunchpadContext();\n\n const starred = useMemo(() => isStarred(item), [isStarred, item]);\n\n const handleStarClick = useCallback(() => {\n toggleStar(item);\n }, [item, toggleStar]);\n\n const handleClick = useCallback(() => {\n pushRecentVisit(item);\n }, [item, pushRecentVisit]);\n\n return (\n <li\n className={classNames(\"menu-item\", {\n starred,\n \"can-star\": !loadingFavorites,\n })}\n >\n <WrappedLink\n onClick={handleClick}\n {...(item.type === \"app\"\n ? {\n url: item.url,\n }\n : {\n href: item.url,\n target: \"_blank\",\n })}\n >\n <WrappedIcon\n className=\"menu-icon\"\n lib=\"easyops\"\n icon=\"micro-app-center\"\n {...(item.menuIcon?.lib && item.menuIcon.icon\n ? (pick(item.menuIcon, [\n \"lib\",\n \"icon\",\n \"theme\",\n \"category\",\n \"prefix\",\n ]) as any)\n : null)}\n />\n <span className=\"menu-item-label\">{item.name}</span>\n </WrappedLink>\n <WrappedIcon\n lib=\"fa\"\n prefix={starred ? \"fas\" : \"far\"}\n icon=\"star\"\n className=\"menu-item-star\"\n title={starred ? \"取消收藏\" : \"收藏\"}\n onClick={handleStarClick}\n />\n </li>\n );\n}\n\nexport interface SidebarMenuItemProps {\n item: SidebarMenuItemData;\n}\n\nexport function SidebarMenuItem({ item }: SidebarMenuItemProps) {\n const { pushRecentVisit, toggleStar } = useLaunchpadContext();\n\n const handleClick = useCallback(() => {\n if (item.type !== \"link\") {\n pushRecentVisit(item);\n }\n }, [item, pushRecentVisit]);\n\n const handleRemoveStar = useCallback(() => {\n toggleStar(item);\n }, [item, toggleStar]);\n\n return (\n <li className=\"sidebar-menu-item\">\n <WrappedLink\n onClick={handleClick}\n {...(item.type === \"app\"\n ? {\n url: item.url,\n }\n : {\n href: item.url,\n target: \"_blank\",\n })}\n >\n <WrappedIcon\n className={`sidebar-menu-icon`}\n lib=\"easyops\"\n icon=\"micro-app-center\"\n {...(item.menuIcon?.lib && item.menuIcon.icon\n ? (pick(item.menuIcon, [\n \"lib\",\n \"icon\",\n \"theme\",\n \"category\",\n \"prefix\",\n ]) as any)\n : null)}\n />\n <span className=\"menu-item-label\">{item.name}</span>\n </WrappedLink>\n <WrappedIcon\n lib=\"fa\"\n icon=\"xmark\"\n className=\"menu-item-remove\"\n onClick={handleRemoveStar}\n />\n </li>\n );\n}\n\nexport interface MenuItemFolderProps {\n name: string;\n items: MenuItemDataNormal[];\n}\n\nfunction MenuItemFolder({ name, items }: MenuItemFolderProps) {\n const { searching } = useLaunchpadContext();\n const [expanded, setExpanded] = useState(false);\n const [searchingExpanded, setSearchingExpanded] = useState(false);\n\n const toggle = useCallback(() => {\n // Use separated expanded states for searching and non-searching.\n if (searching) {\n setSearchingExpanded((previous) => !previous);\n } else {\n setExpanded((previous) => !previous);\n }\n }, [searching]);\n\n useEffect(() => {\n // Each time when start searching, set it as expanded.\n setSearchingExpanded(true);\n }, [searching]);\n\n const actualExpanded = searching ? searchingExpanded : expanded;\n\n return (\n <li className=\"menu-item folder\">\n <WrappedLink onClick={toggle}>\n <WrappedIcon\n lib=\"fa\"\n prefix=\"far\"\n icon=\"folder-open\"\n className=\"menu-icon\"\n />\n <span className=\"menu-item-label\">{name}</span>\n <WrappedIcon\n lib=\"antd\"\n icon={actualExpanded ? \"up\" : \"down\"}\n className=\"menu-item-toggle\"\n />\n </WrappedLink>\n <ul className={classNames(\"sub-menu\", { expanded: actualExpanded })}>\n {items.map((item) => (\n <MenuItem key={`${item.type}-${item.id}`} item={item} />\n ))}\n </ul>\n </li>\n );\n}\n","import React, { useCallback, useRef } from \"react\";\nimport classNames from \"classnames\";\nimport { WrappedIcon, WrappedLink } from \"./wrapped-bricks\";\nimport { useLaunchpadInfo } from \"./useLaunchpadInfo.js\";\nimport { MenuGroup, SidebarMenuItem } from \"./MenuGroup.js\";\nimport { LaunchpadsContext } from \"./LaunchpadContext.js\";\nimport { SidebarMenuItemData } from \"./interfaces\";\n\nexport function Launchpad({ active }: { active?: boolean }) {\n const searchInputRef = useRef<HTMLInputElement>(null);\n const handleClickSearchBox = useCallback(() => {\n searchInputRef.current?.focus();\n }, []);\n\n const {\n loading,\n q,\n setQ,\n menuGroups,\n favorites,\n loadingFavorites,\n recentVisits,\n pushRecentVisit,\n toggleStar,\n isStarred,\n } = useLaunchpadInfo(active);\n const searching = !!q;\n\n const handleSearch = useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n setQ(e.target.value);\n },\n [setQ]\n );\n\n const clearSearch = useCallback(() => {\n setQ(\"\");\n }, [setQ]);\n\n return (\n <div className={classNames(\"launchpad\", { active })}>\n <LaunchpadsContext.Provider\n value={{\n searching,\n loadingFavorites,\n pushRecentVisit,\n toggleStar,\n isStarred,\n }}\n >\n <div className=\"sidebar\">\n <div className=\"quick-nav\">\n <div className=\"quick-nav-label\">快捷访问</div>\n {/* <Loading loading={loading || loadingFavorites} /> */}\n <ul className=\"sidebar-menu\">\n {favorites.map((item, index) => (\n <SidebarMenuItem\n key={index}\n item={item as SidebarMenuItemData}\n />\n ))}\n </ul>\n </div>\n </div>\n <div className={classNames(\"content\", { loading })}>\n <Loading loading={loading} />\n <div className=\"search-box\" onClick={handleClickSearchBox}>\n <WrappedIcon\n lib=\"fa\"\n icon=\"magnifying-glass\"\n className=\"search-icon\"\n />\n <input\n ref={searchInputRef}\n placeholder=\"通过关键字搜索\"\n value={q}\n onChange={handleSearch}\n className=\"search-input\"\n />\n <WrappedIcon\n lib=\"antd\"\n theme=\"filled\"\n icon=\"close-circle\"\n className={classNames(\"search-clear\", { searching })}\n onClick={clearSearch}\n />\n </div>\n <div className={classNames({ empty: recentVisits.length === 0 })}>\n <div className=\"recent-visits-label\">最近访问</div>\n <ul className=\"recent-visits\">\n {recentVisits.map((item, index) => (\n <li key={index}>\n <WrappedLink\n onClick={() => pushRecentVisit(item)}\n {...(item.type === \"app\"\n ? {\n url: item.url,\n }\n : {\n href: item.url,\n target: \"_blank\",\n })}\n >\n <span>{item.name}</span>\n </WrappedLink>\n </li>\n ))}\n </ul>\n </div>\n <ul className=\"menu-groups\">\n {menuGroups.map((group) => (\n <MenuGroup\n key={group.name}\n name={group.name}\n items={group.items}\n />\n ))}\n </ul>\n </div>\n </LaunchpadsContext.Provider>\n </div>\n );\n}\n\nfunction Loading({ loading }: { loading: boolean }) {\n return (\n loading && (\n <div className=\"spinner\">\n <WrappedIcon lib=\"fa\" icon=\"spinner\" spinning />\n </div>\n )\n );\n}\n","import _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\nimport _asyncToGenerator from \"@babel/runtime/helpers/asyncToGenerator\";\nimport { http } from \"@next-core/http\";\n/**\n * @description 获取我的收藏列表V2\n * @endpoint LIST /api/v2/launchpad/collection\n */\nexport var LaunchpadApi_listCollectionV2 = /*#__PURE__*/function () {\n var _ref = _asyncToGenerator(function* (params, options) {\n return (/**! @contract easyops.api.user_service.launchpad.ListCollectionV2@1.0.0 */(yield http.get(\"api/gateway/user_service.launchpad.ListCollectionV2/api/v2/launchpad/collection\", _objectSpread(_objectSpread({}, options), {}, {\n params\n }))).data\n );\n });\n return function LaunchpadApi_listCollectionV2(_x, _x2) {\n return _ref.apply(this, arguments);\n };\n}();\n//# sourceMappingURL=listCollectionV2.js.map","import _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","export const FAVORITES_LIMIT = 10;\nexport const RECENT_VISITS_LIMIT = 10;\n","import type { I18nData, MicroApp, Storyboard } from \"@next-core/types\";\nimport { i18nText } from \"@next-core/i18n\";\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\";\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 initializeAppLocaleName(app);\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\nfunction initializeAppLocaleName(\n app: Pick<MicroApp, \"locales\" | \"name\" | \"localeName\">\n) {\n if (app.locales) {\n const i18nData = Object.fromEntries(\n Object.entries(app.locales)\n .filter(([lang, resources]) => resources.name)\n .map(([lang, resources]) => [lang, resources.name])\n ) as I18nData;\n app.localeName = i18nText(i18nData) ?? app.name;\n } else {\n app.localeName = app.name;\n }\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 initializeAppLocaleName(app);\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","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_GET_URL_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/getUrl.js\";\nvar ___CSS_LOADER_URL_IMPORT_0___ = new URL(\"../images/launchpad-sidebar.png\", import.meta.url);\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:inline-block;width:32px;height:32px;--local-sidebar-menu-item-active-bg:rgba(0,0,0,0.04);--local-background:#fff;--local-menu-icon-color:#8c8c8c;--local-max-height:calc(100vh - var(--app-bar-height) - 10px)}:host([hidden]){display:none}:host-context(html[data-theme=\"dark\"]),\n:host-context(html[data-theme=\"dark-v2\"]){--local-sidebar-menu-item-active-bg:rgba(255,255,255,0.04);--local-background:#26262a;--local-menu-icon-color:rgba(255,255,255,0.45)}.launchpad-button{width:100%;height:100%;display:flex;justify-content:center;align-items:center;color:#999;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;border-radius:3px}.launchpad-button:hover,\n.launchpad-button.active{background-color:var(--color-fill-bg-base-1)}.launchpad-button.active{color:var(--color-brand)}.mask{position:fixed;top:0;bottom:0;left:0;right:0;z-index:1;display:none}.mask.active{display:block}.launchpad{display:none;position:absolute;margin-top:4px;z-index:1;width:1110px;max-width:calc(100vw - 100px);max-height:var(--local-max-height);min-height:50vh;min-height:min(500px,var(--local-max-height));background-color:var(--local-background);border:1px solid var(--color-text-divider-line);border-radius:6px;box-shadow:var(--fullscreen-overlay-shadow)}.launchpad.active{display:flex}.sidebar{width:190px;padding:20px 0 24px;display:flex;flex-direction:column;background:var(--color-fill-bg-base-3);min-width:0;background-image:url(${___CSS_LOADER_URL_REPLACEMENT_0___});background-size:205px 205px;background-repeat:no-repeat;background-position:left 52px bottom 27px}.quick-nav-label,\n.menu-group-label,\n.menu-item-label,\n.recent-visits span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-menu,\n.menu-groups,\n.menu,\n.sub-menu,\n.recent-visits{list-style:none;margin:0;padding:0}.sidebar-menu,\n.menu,\n.sub-menu{display:flex;flex-direction:column;gap:14px}.sidebar-menu-item > eo-link,\n.menu-item > eo-link,\n.recent-visits eo-link{display:block;min-width:0}.sidebar-menu-item > eo-link::part(link),\n.menu-item > eo-link::part(link){height:20px;display:flex;align-items:center;gap:8px;color:var(--color-header-text)}.sidebar-menu-item{padding:0 12px 0 16px;justify-content:space-between}.sidebar-menu-icon{color:var(--left-sidebar-item-collapsed-icon-color)}.quick-nav{overflow-y:auto;flex:1}.quick-nav-label{color:var(--color-header-text);font-weight:500;margin-bottom:14px;padding:0 16px}.content{flex:1;padding:20px 24px 24px;min-width:0;overflow-y:auto;display:flex;flex-direction:column;gap:24px}.search-box{border-bottom:1px solid var(--color-text-divider-line);display:flex;gap:8px;align-items:center;padding:10px 0;margin-top:-10px;cursor:text}.search-icon{color:var(--color-auxiliary-text)}.search-input{padding:0;margin:0;border:none;outline:none;color:inherit;background-color:transparent;font-size:14px;line-height:22px;flex:1;min-width:0}.search-input::placeholder{color:var(--color-disabled-text);opacity:1}.search-clear{display:none;color:var(--color-secondary-text);cursor:pointer}.search-clear.searching{display:inline-block}.search-clear:hover{color:var(--color-auxiliary-text)}.menu-groups,\n.recent-visits{grid-template-columns:repeat(auto-fill,minmax(168px,1fr))}.menu-groups{display:grid;grid-gap:32px 8px;gap:32px 8px}.menu-group{padding-right:12px;color:var(--color-header-text)}.menu-group-label{font-size:var(--card-title-font-size);font-weight:500;color:var(--color-header-text);margin-bottom:14px}.sidebar-menu-item,\n.menu-item:not(.folder){display:flex;gap:8px;align-items:center}.menu-icon{color:var(--local-menu-icon-color)}.menu-item.active,\n.menu-item.active .menu-icon{color:var(--color-brand-active)}.sub-menu:not(.expanded){display:none}.sub-menu{margin-top:14px;margin-left:8px;border-left:1px solid var(--color-text-divider-line);padding-left:15px}.menu-item-remove,\n.menu-item-star{cursor:pointer}.menu-item-remove,\n.menu-item-star,\n.menu-item-toggle{color:var(--color-secondary-text)}.sidebar-menu-item:not(:hover) .menu-item-remove{display:none}.menu-item-remove:hover{color:var(--color-normal-text)}.menu-item-remove:active{color:var(--color-strong-text)}.menu-item-star{display:none}.can-star.starred > .menu-item-star,\n.can-star:hover > .menu-item-star{display:inline-block}.can-star:not(.starred) > .menu-item-star{color:var(--color-secondary-text)}.starred > .menu-item-star{color:var(--palette-yellow-6)}.recent-visits-label{margin-bottom:12px;font-size:var(--card-title-font-size);color:var(--color-header-text);font-weight:500}.recent-visits{display:grid;grid-gap:8px;gap:8px}.recent-visits eo-link::part(link){background-color:var(--color-fill-bg-base-1);border-radius:3px;color:var(--color-header-text);display:flex;align-items:center;height:24px;padding:0 8px}.sidebar-menu-item > eo-link:hover::part(link),\n.sidebar-menu-item > eo-link:hover .sidebar-menu-icon,\n.menu-item > eo-link:hover::part(link),\n.menu-item > eo-link:hover .menu-icon,\n.menu-item > eo-link:hover .menu-item-toggle,\n.recent-visits eo-link:hover::part(link){color:var(--color-brand-hover)}.spinner{display:flex;justify-content:center;align-items:center;color:var(--theme-doderblue-color);flex:1;font-size:30px}.empty,\n.loading > :not(.spinner){display:none}@supports not (inset: 0){.search-box,\n .sidebar-menu,\n .menu,\n .sub-menu,\n .sidebar-menu-item,\n .menu-item:not(.folder),\n .sidebar-menu-item > eo-link::part(link),\n .menu-item > eo-link::part(link){gap:0}.content{display:grid;grid-auto-flow:row}.content:not(.loading){height:-webkit-min-content;height:-moz-min-content;height:min-content}.sidebar-menu > :not(:first-child),\n .menu > :not(:first-child),\n .sub-menu > :not(:first-child){margin-top:14px}.search-icon,\n .sidebar-menu-icon,\n .menu-icon{margin-right:8px}.search-clear,\n .menu-item-star,\n .menu-item-toggle{margin-left:8px}}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","\"use strict\";\n\nmodule.exports = function (url, options) {\n if (!options) {\n options = {};\n }\n if (!url) {\n return url;\n }\n url = String(url.__esModule ? url.default : url);\n\n // If url is already wrapped in quotes, remove them\n if (/^['\"].*['\"]$/.test(url)) {\n url = url.slice(1, -1);\n }\n if (options.hash) {\n url += options.hash;\n }\n\n // Should url be wrapped?\n // See https://drafts.csswg.org/css-values-3/#urls\n if (/[\"'() \\t\\n]|(%20)/.test(url) || options.needQuotes) {\n return \"\\\"\".concat(url.replace(/\"/g, '\\\\\"').replace(/\\n/g, \"\\\\n\"), \"\\\"\");\n }\n return url;\n};"],"names":["LaunchpadsContext","React","useLaunchpadContext","MenuGroup","_ref","name","items","className","map","item","type","MenuItemFolder","key","concat","id","MenuItem","_ref2","_item$menuIcon","loadingFavorites","pushRecentVisit","toggleStar","isStarred","starred","useMemo","handleStarClick","useCallback","handleClick","classNames","WrappedLink","_extends","onClick","url","href","target","WrappedIcon","lib","icon","menuIcon","pick","prefix","title","SidebarMenuItem","_ref3","_item$menuIcon2","handleRemoveStar","_ref4","searching","expanded","setExpanded","useState","searchingExpanded","setSearchingExpanded","toggle","previous","useEffect","actualExpanded","Launchpad","active","searchInputRef","useRef","handleClickSearchBox","_searchInputRef$curre","current","focus","loading","q","setQ","menuGroups","favorites","recentVisits","useLaunchpadInfo","handleSearch","e","value","clearSearch","Provider","index","Loading","ref","placeholder","onChange","theme","empty","length","group","spinning","LaunchpadApi_listCollectionV2","params","options","http","get","_x","_x2","apply","this","arguments","LaunchpadApi_createCollectionV2","data","post","LaunchpadApi_deleteCollectionV2","instanceId","delete","FAVORITES_LIMIT","RECENT_VISITS_LIMIT","_fetchLaunchpadInfo","_asyncToGenerator","launchpadInfo","LaunchpadApi_getLaunchpadInfo","interceptorParams","ignoreLoadingBar","noAbortOnRouteChange","microAppsById","Map","storyboard","storyboards","app","initializeAppLocaleName","set","customLinksById","desktops","push","_objectSpread","localeName","homepage","subItems","subItem","locales","_i18nText","i18nData","Object","fromEntries","entries","filter","lang","resources","i18nText","fetchRawFavorites","_fetchRawFavorites","page","pageSize","list","_fetchFavorites","stored","fav","relatedApp","favoriteId","appId","customItem","relatedCustomItem","link","_favorite","relatedInstanceId","_undoFavorite","then","_list$find","foundId","find","_fav$relatedApp","_fav$relatedCustomIte","console","error","matchMenuItemApp","lowerQ","toLowerCase","includes","matchMenuItemCustom","storageKey","_auth$getAuth","auth","getAuth","org","storage","JsonStorage","localStorage","candidateDesktops","candidateMicroAppsById","candidateCustomLinksById","preLoaded","candidateFavorites","preLoadedFavorites","deferredLaunchpadInfo","DeferredService","fetchLaunchpadInfo","deferredFavorites","fetchFavorites","showErrorAsNotification","showNotification","message","httpErrorToString","setDesktops","setMicroAppsById","setCustomLinksById","setLoading","setLoadingFavorites","storedRecentVisits","setStoredRecentVisits","setRecentVisits","setFavorites","_storage$getItem","getItem","startFetchLaunchpadInfo","fetch","handleHttpError","startFetchFavorites","visits","Boolean","_ref5","_storage$getItem2","findIndex","visit","splice","unshift","pop","setItem","some","matchFavorite","newFavorites","removed","slice","undoFavorite","catch","showDialog","content","favorite","result","allMenuGroups","filteredSubItems","sub","search","wrapBrick","unwrapProvider","___CSS_LOADER_URL_IMPORT_0___","URL","___CSS_LOADER_EXPORT___","___CSS_LOADER_URL_REPLACEMENT_0___","module","toString","exports","String","__esModule","default","test","hash","needQuotes","replace"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"file":"chunks/9816.8cea5f76.js","mappings":"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","sources":["webpack:///./src/launchpad-button-v2/LaunchpadContext.ts","webpack:///./src/launchpad-button-v2/MenuGroup.tsx","webpack:///./src/launchpad-button-v2/Launchpad.tsx","webpack:///../../node_modules/@next-api-sdk/user-service-sdk/dist/esm/api/user_service/launchpad/listCollectionV2.js","webpack:///../../node_modules/@next-api-sdk/user-service-sdk/dist/esm/api/user_service/launchpad/createCollectionV2.js","webpack:///../../node_modules/@next-api-sdk/user-service-sdk/dist/esm/api/user_service/launchpad/deleteCollectionV2.js","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-button-v2/styles.shadow.css","webpack:///../../node_modules/css-loader/dist/runtime/getUrl.js"],"sourcesContent":["import React from \"react\";\nimport type { MenuItemDataLink, MenuItemDataNormal } from \"./interfaces\";\n\nexport interface LaunchpadContextData {\n searching: boolean;\n loadingFavorites: boolean;\n pushRecentVisit(item: MenuItemDataNormal): void;\n toggleStar(item: MenuItemDataNormal | MenuItemDataLink): void;\n isStarred(item: MenuItemDataNormal): boolean;\n}\n\nexport const LaunchpadsContext = React.createContext<LaunchpadContextData>(\n {} as LaunchpadContextData\n);\n\nexport const useLaunchpadContext = (): LaunchpadContextData =>\n React.useContext(LaunchpadsContext);\n","import React, { useCallback, useEffect, useMemo, useState } from \"react\";\nimport { pick } from \"lodash\";\nimport classNames from \"classnames\";\nimport { WrappedIcon, WrappedLink } from \"./wrapped-bricks\";\nimport { useLaunchpadContext } from \"./LaunchpadContext\";\nimport type {\n MenuItemData,\n MenuItemDataNormal,\n SidebarMenuItemData,\n} from \"./interfaces\";\n\nexport interface MenuGroupProps {\n name: string;\n items: MenuItemData[];\n}\n\nexport function MenuGroup({ name, items }: MenuGroupProps) {\n return (\n <li className=\"menu-group\">\n <div className=\"menu-group-label\">{name}</div>\n <ul className=\"menu\">\n {items.map((item) =>\n item.type === \"dir\" ? (\n <MenuItemFolder\n key={`${item.type}-${item.id}`}\n name={item.name}\n items={item.items}\n />\n ) : (\n <MenuItem key={`${item.type}-${item.id}`} item={item} />\n )\n )}\n </ul>\n </li>\n );\n}\n\nexport interface MenuItemProps {\n item: MenuItemDataNormal;\n}\n\nfunction MenuItem({ item }: MenuItemProps) {\n const { loadingFavorites, pushRecentVisit, toggleStar, isStarred } =\n useLaunchpadContext();\n\n const starred = useMemo(() => isStarred(item), [isStarred, item]);\n\n const handleStarClick = useCallback(() => {\n toggleStar(item);\n }, [item, toggleStar]);\n\n const handleClick = useCallback(() => {\n pushRecentVisit(item);\n }, [item, pushRecentVisit]);\n\n return (\n <li\n className={classNames(\"menu-item\", {\n starred,\n \"can-star\": !loadingFavorites,\n })}\n >\n <WrappedLink\n onClick={handleClick}\n {...(item.type === \"app\"\n ? {\n url: item.url,\n }\n : {\n href: item.url,\n target: \"_blank\",\n })}\n >\n <WrappedIcon\n className=\"menu-icon\"\n lib=\"easyops\"\n icon=\"micro-app-center\"\n {...(item.menuIcon?.lib && item.menuIcon.icon\n ? (pick(item.menuIcon, [\n \"lib\",\n \"icon\",\n \"theme\",\n \"category\",\n \"prefix\",\n ]) as any)\n : null)}\n />\n <span className=\"menu-item-label\">{item.name}</span>\n </WrappedLink>\n <WrappedIcon\n lib=\"fa\"\n prefix={starred ? \"fas\" : \"far\"}\n icon=\"star\"\n className=\"menu-item-star\"\n title={starred ? \"取消收藏\" : \"收藏\"}\n onClick={handleStarClick}\n />\n </li>\n );\n}\n\nexport interface SidebarMenuItemProps {\n item: SidebarMenuItemData;\n}\n\nexport function SidebarMenuItem({ item }: SidebarMenuItemProps) {\n const { pushRecentVisit, toggleStar } = useLaunchpadContext();\n\n const handleClick = useCallback(() => {\n if (item.type !== \"link\") {\n pushRecentVisit(item);\n }\n }, [item, pushRecentVisit]);\n\n const handleRemoveStar = useCallback(() => {\n toggleStar(item);\n }, [item, toggleStar]);\n\n return (\n <li className=\"sidebar-menu-item\">\n <WrappedLink\n onClick={handleClick}\n {...(item.type === \"app\"\n ? {\n url: item.url,\n }\n : {\n href: item.url,\n target: \"_blank\",\n })}\n >\n <WrappedIcon\n className={`sidebar-menu-icon`}\n lib=\"easyops\"\n icon=\"micro-app-center\"\n {...(item.menuIcon?.lib && item.menuIcon.icon\n ? (pick(item.menuIcon, [\n \"lib\",\n \"icon\",\n \"theme\",\n \"category\",\n \"prefix\",\n ]) as any)\n : null)}\n />\n <span className=\"menu-item-label\">{item.name}</span>\n </WrappedLink>\n <WrappedIcon\n lib=\"fa\"\n icon=\"xmark\"\n className=\"menu-item-remove\"\n onClick={handleRemoveStar}\n />\n </li>\n );\n}\n\nexport interface MenuItemFolderProps {\n name: string;\n items: MenuItemDataNormal[];\n}\n\nfunction MenuItemFolder({ name, items }: MenuItemFolderProps) {\n const { searching } = useLaunchpadContext();\n const [expanded, setExpanded] = useState(false);\n const [searchingExpanded, setSearchingExpanded] = useState(false);\n\n const toggle = useCallback(() => {\n // Use separated expanded states for searching and non-searching.\n if (searching) {\n setSearchingExpanded((previous) => !previous);\n } else {\n setExpanded((previous) => !previous);\n }\n }, [searching]);\n\n useEffect(() => {\n // Each time when start searching, set it as expanded.\n setSearchingExpanded(true);\n }, [searching]);\n\n const actualExpanded = searching ? searchingExpanded : expanded;\n\n return (\n <li className=\"menu-item folder\">\n <WrappedLink onClick={toggle}>\n <WrappedIcon\n lib=\"fa\"\n prefix=\"far\"\n icon=\"folder-open\"\n className=\"menu-icon\"\n />\n <span className=\"menu-item-label\">{name}</span>\n <WrappedIcon\n lib=\"antd\"\n icon={actualExpanded ? \"up\" : \"down\"}\n className=\"menu-item-toggle\"\n />\n </WrappedLink>\n <ul className={classNames(\"sub-menu\", { expanded: actualExpanded })}>\n {items.map((item) => (\n <MenuItem key={`${item.type}-${item.id}`} item={item} />\n ))}\n </ul>\n </li>\n );\n}\n","import React, { useCallback, useRef } from \"react\";\nimport classNames from \"classnames\";\nimport { WrappedIcon, WrappedLink } from \"./wrapped-bricks\";\nimport { useLaunchpadInfo } from \"./useLaunchpadInfo.js\";\nimport { MenuGroup, SidebarMenuItem } from \"./MenuGroup.js\";\nimport { LaunchpadsContext } from \"./LaunchpadContext.js\";\nimport { SidebarMenuItemData } from \"./interfaces\";\n\nexport function Launchpad({ active }: { active?: boolean }) {\n const searchInputRef = useRef<HTMLInputElement>(null);\n const handleClickSearchBox = useCallback(() => {\n searchInputRef.current?.focus();\n }, []);\n\n const {\n loading,\n q,\n setQ,\n menuGroups,\n favorites,\n loadingFavorites,\n recentVisits,\n pushRecentVisit,\n toggleStar,\n isStarred,\n } = useLaunchpadInfo(active);\n const searching = !!q;\n\n const handleSearch = useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n setQ(e.target.value);\n },\n [setQ]\n );\n\n const clearSearch = useCallback(() => {\n setQ(\"\");\n }, [setQ]);\n\n return (\n <div className={classNames(\"launchpad\", { active })}>\n <LaunchpadsContext.Provider\n value={{\n searching,\n loadingFavorites,\n pushRecentVisit,\n toggleStar,\n isStarred,\n }}\n >\n <div className=\"sidebar\">\n <div className=\"quick-nav\">\n <div className=\"quick-nav-label\">快捷访问</div>\n {/* <Loading loading={loading || loadingFavorites} /> */}\n <ul className=\"sidebar-menu\">\n {favorites.map((item, index) => (\n <SidebarMenuItem\n key={index}\n item={item as SidebarMenuItemData}\n />\n ))}\n </ul>\n </div>\n </div>\n <div className={classNames(\"content\", { loading })}>\n <Loading loading={loading} />\n <div className=\"search-box\" onClick={handleClickSearchBox}>\n <WrappedIcon\n lib=\"fa\"\n icon=\"magnifying-glass\"\n className=\"search-icon\"\n />\n <input\n ref={searchInputRef}\n placeholder=\"通过关键字搜索\"\n value={q}\n onChange={handleSearch}\n className=\"search-input\"\n />\n <WrappedIcon\n lib=\"antd\"\n theme=\"filled\"\n icon=\"close-circle\"\n className={classNames(\"search-clear\", { searching })}\n onClick={clearSearch}\n />\n </div>\n <div className={classNames({ empty: recentVisits.length === 0 })}>\n <div className=\"recent-visits-label\">最近访问</div>\n <ul className=\"recent-visits\">\n {recentVisits.map((item, index) => (\n <li key={index}>\n <WrappedLink\n onClick={() => pushRecentVisit(item)}\n {...(item.type === \"app\"\n ? {\n url: item.url,\n }\n : {\n href: item.url,\n target: \"_blank\",\n })}\n >\n <span>{item.name}</span>\n </WrappedLink>\n </li>\n ))}\n </ul>\n </div>\n <ul className=\"menu-groups\">\n {menuGroups.map((group) => (\n <MenuGroup\n key={group.name}\n name={group.name}\n items={group.items}\n />\n ))}\n </ul>\n </div>\n </LaunchpadsContext.Provider>\n </div>\n );\n}\n\nfunction Loading({ loading }: { loading: boolean }) {\n return (\n loading && (\n <div className=\"spinner\">\n <WrappedIcon lib=\"fa\" icon=\"spinner\" spinning />\n </div>\n )\n );\n}\n","import _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\nimport _asyncToGenerator from \"@babel/runtime/helpers/asyncToGenerator\";\nimport { http } from \"@next-core/http\";\n/**\n * @description 获取我的收藏列表V2\n * @endpoint LIST /api/v2/launchpad/collection\n */\nexport var LaunchpadApi_listCollectionV2 = /*#__PURE__*/function () {\n var _ref = _asyncToGenerator(function* (params, options) {\n return (/**! @contract easyops.api.user_service.launchpad.ListCollectionV2@1.0.0 */(yield http.get(\"api/gateway/user_service.launchpad.ListCollectionV2/api/v2/launchpad/collection\", _objectSpread(_objectSpread({}, options), {}, {\n params\n }))).data\n );\n });\n return function LaunchpadApi_listCollectionV2(_x, _x2) {\n return _ref.apply(this, arguments);\n };\n}();\n//# sourceMappingURL=listCollectionV2.js.map","import _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","export const FAVORITES_LIMIT = 10;\nexport const RECENT_VISITS_LIMIT = 10;\n","import type { I18nData, MicroApp, Storyboard } from \"@next-core/types\";\nimport { i18nText } from \"@next-core/i18n\";\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\";\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 initializeAppLocaleName(app);\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\nfunction initializeAppLocaleName(\n app: Pick<MicroApp, \"locales\" | \"name\" | \"localeName\">\n) {\n if (app.locales) {\n const i18nData = Object.fromEntries(\n Object.entries(app.locales)\n .filter(([lang, resources]) => resources.name)\n .map(([lang, resources]) => [lang, resources.name])\n ) as I18nData;\n app.localeName = i18nText(i18nData) ?? app.name;\n } else {\n app.localeName = app.name;\n }\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 initializeAppLocaleName(app);\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","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_GET_URL_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/getUrl.js\";\nvar ___CSS_LOADER_URL_IMPORT_0___ = new URL(\"../images/launchpad-sidebar.png\", import.meta.url);\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:inline-block;width:32px;height:32px;--local-sidebar-menu-item-active-bg:rgba(0,0,0,0.04);--local-background:#fff;--local-menu-icon-color:#8c8c8c;--local-max-height:calc(100vh - var(--app-bar-height) - 10px)}:host([hidden]){display:none}:host-context(html[data-theme=\"dark\"]),\n:host-context(html[data-theme=\"dark-v2\"]){--local-sidebar-menu-item-active-bg:rgba(255,255,255,0.04);--local-background:#26262a;--local-menu-icon-color:rgba(255,255,255,0.45)}.launchpad-button{width:100%;height:100%;display:flex;justify-content:center;align-items:center;color:#999;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;border-radius:3px}.launchpad-button:hover,\n.launchpad-button.active{background-color:var(--color-fill-bg-base-1)}.launchpad-button.active{color:var(--color-brand)}.mask{position:fixed;top:0;bottom:0;left:0;right:0;z-index:1;display:none}.mask.active{display:block}.launchpad{display:none;position:absolute;margin-top:4px;z-index:1;width:1110px;max-width:calc(100vw - 100px);max-height:var(--local-max-height);min-height:50vh;min-height:min(500px,var(--local-max-height));background-color:var(--local-background);border:1px solid var(--color-text-divider-line);border-radius:6px;box-shadow:var(--fullscreen-overlay-shadow)}.launchpad.active{display:flex}.sidebar{width:190px;padding:20px 0 24px;display:flex;flex-direction:column;background:var(--color-fill-bg-base-3);min-width:0;background-image:url(${___CSS_LOADER_URL_REPLACEMENT_0___});background-size:205px 205px;background-repeat:no-repeat;background-position:left 52px bottom 27px}.quick-nav-label,\n.menu-group-label,\n.menu-item-label,\n.recent-visits span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-menu,\n.menu-groups,\n.menu,\n.sub-menu,\n.recent-visits{list-style:none;margin:0;padding:0}.sidebar-menu,\n.menu,\n.sub-menu{display:flex;flex-direction:column;gap:14px}.sidebar-menu-item > eo-link,\n.menu-item > eo-link,\n.recent-visits eo-link{display:block;min-width:0}.sidebar-menu-item > eo-link::part(link),\n.menu-item > eo-link::part(link){height:20px;display:flex;align-items:center;gap:8px;color:var(--color-header-text)}.sidebar-menu-item{padding:0 12px 0 16px;justify-content:space-between}.sidebar-menu-icon{color:var(--left-sidebar-item-collapsed-icon-color)}.quick-nav{overflow-y:auto;flex:1}.quick-nav-label{color:var(--color-header-text);font-weight:500;margin-bottom:14px;padding:0 16px}.content{flex:1;padding:20px 24px 24px;min-width:0;overflow-y:auto;display:flex;flex-direction:column;gap:24px}.search-box{border-bottom:1px solid var(--color-text-divider-line);display:flex;gap:8px;align-items:center;padding:10px 0;margin-top:-10px;cursor:text}.search-icon{color:var(--color-auxiliary-text)}.search-input{padding:0;margin:0;border:none;outline:none;color:inherit;background-color:transparent;font-size:14px;line-height:22px;flex:1;min-width:0}.search-input::placeholder{color:var(--color-disabled-text);opacity:1}.search-clear{display:none;color:var(--color-secondary-text);cursor:pointer}.search-clear.searching{display:inline-block}.search-clear:hover{color:var(--color-auxiliary-text)}.menu-groups,\n.recent-visits{grid-template-columns:repeat(auto-fill,minmax(168px,1fr))}.menu-groups{display:grid;grid-gap:32px 8px;gap:32px 8px}.menu-group{padding-right:12px;color:var(--color-header-text)}.menu-group-label{font-size:var(--card-title-font-size);font-weight:500;color:var(--color-header-text);margin-bottom:14px}.sidebar-menu-item,\n.menu-item:not(.folder){display:flex;gap:8px;align-items:center}.menu-icon{color:var(--local-menu-icon-color)}.menu-item.active,\n.menu-item.active .menu-icon{color:var(--color-brand-active)}.sub-menu:not(.expanded){display:none}.sub-menu{margin-top:14px;margin-left:8px;border-left:1px solid var(--color-text-divider-line);padding-left:15px}.menu-item-remove,\n.menu-item-star{cursor:pointer}.menu-item-remove,\n.menu-item-star,\n.menu-item-toggle{color:var(--color-secondary-text)}.sidebar-menu-item:not(:hover) .menu-item-remove{display:none}.menu-item-remove:hover{color:var(--color-normal-text)}.menu-item-remove:active{color:var(--color-strong-text)}.menu-item-star{display:none}.can-star.starred > .menu-item-star,\n.can-star:hover > .menu-item-star{display:inline-block}.can-star:not(.starred) > .menu-item-star{color:var(--color-secondary-text)}.starred > .menu-item-star{color:var(--palette-yellow-6)}.recent-visits-label{margin-bottom:12px;font-size:var(--card-title-font-size);color:var(--color-header-text);font-weight:500}.recent-visits{display:grid;grid-gap:8px;gap:8px}.recent-visits eo-link::part(link){background-color:var(--color-fill-bg-base-1);border-radius:3px;color:var(--color-header-text);display:flex;align-items:center;height:24px;padding:0 8px}.sidebar-menu-item > eo-link:hover::part(link),\n.sidebar-menu-item > eo-link:hover .sidebar-menu-icon,\n.menu-item > eo-link:hover::part(link),\n.menu-item > eo-link:hover .menu-icon,\n.menu-item > eo-link:hover .menu-item-toggle,\n.recent-visits eo-link:hover::part(link){color:var(--color-brand-hover)}.spinner{display:flex;justify-content:center;align-items:center;color:var(--theme-doderblue-color);flex:1;font-size:30px}.empty,\n.loading > :not(.spinner){display:none}@supports not (inset: 0){.search-box,\n .sidebar-menu,\n .menu,\n .sub-menu,\n .sidebar-menu-item,\n .menu-item:not(.folder),\n .sidebar-menu-item > eo-link::part(link),\n .menu-item > eo-link::part(link){gap:0}.content{display:grid;grid-auto-flow:row}.content:not(.loading){height:-webkit-min-content;height:-moz-min-content;height:min-content}.sidebar-menu > :not(:first-child),\n .menu > :not(:first-child),\n .sub-menu > :not(:first-child){margin-top:14px}.search-icon,\n .sidebar-menu-icon,\n .menu-icon{margin-right:8px}.search-clear,\n .menu-item-star,\n .menu-item-toggle{margin-left:8px}}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","\"use strict\";\n\nmodule.exports = function (url, options) {\n if (!options) {\n options = {};\n }\n if (!url) {\n return url;\n }\n url = String(url.__esModule ? url.default : url);\n\n // If url is already wrapped in quotes, remove them\n if (/^['\"].*['\"]$/.test(url)) {\n url = url.slice(1, -1);\n }\n if (options.hash) {\n url += options.hash;\n }\n\n // Should url be wrapped?\n // See https://drafts.csswg.org/css-values-3/#urls\n if (/[\"'() \\t\\n]|(%20)/.test(url) || options.needQuotes) {\n return \"\\\"\".concat(url.replace(/\"/g, '\\\\\"').replace(/\\n/g, \"\\\\n\"), \"\\\"\");\n }\n return url;\n};"],"names":["LaunchpadsContext","React","useLaunchpadContext","MenuGroup","_ref","name","items","className","map","item","type","MenuItemFolder","key","concat","id","MenuItem","_ref2","_item$menuIcon","loadingFavorites","pushRecentVisit","toggleStar","isStarred","starred","useMemo","handleStarClick","useCallback","handleClick","classNames","WrappedLink","_extends","onClick","url","href","target","WrappedIcon","lib","icon","menuIcon","pick","prefix","title","SidebarMenuItem","_ref3","_item$menuIcon2","handleRemoveStar","_ref4","searching","expanded","setExpanded","useState","searchingExpanded","setSearchingExpanded","toggle","previous","useEffect","actualExpanded","Launchpad","active","searchInputRef","useRef","handleClickSearchBox","_searchInputRef$curre","current","focus","loading","q","setQ","menuGroups","favorites","recentVisits","useLaunchpadInfo","handleSearch","e","value","clearSearch","Provider","index","Loading","ref","placeholder","onChange","theme","empty","length","group","spinning","LaunchpadApi_listCollectionV2","params","options","http","get","_x","_x2","apply","this","arguments","LaunchpadApi_createCollectionV2","data","post","LaunchpadApi_deleteCollectionV2","instanceId","delete","FAVORITES_LIMIT","RECENT_VISITS_LIMIT","_fetchLaunchpadInfo","_asyncToGenerator","launchpadInfo","LaunchpadApi_getLaunchpadInfo","interceptorParams","ignoreLoadingBar","noAbortOnRouteChange","microAppsById","Map","storyboard","storyboards","app","initializeAppLocaleName","set","customLinksById","desktops","push","_objectSpread","localeName","homepage","subItems","subItem","locales","_i18nText","i18nData","Object","fromEntries","entries","filter","lang","resources","i18nText","fetchRawFavorites","_fetchRawFavorites","page","pageSize","list","_fetchFavorites","stored","fav","relatedApp","favoriteId","appId","customItem","relatedCustomItem","link","_favorite","relatedInstanceId","_undoFavorite","then","_list$find","foundId","find","_fav$relatedApp","_fav$relatedCustomIte","console","error","matchMenuItemApp","lowerQ","toLowerCase","includes","matchMenuItemCustom","storageKey","_auth$getAuth","auth","getAuth","org","storage","JsonStorage","localStorage","candidateDesktops","candidateMicroAppsById","candidateCustomLinksById","preLoaded","candidateFavorites","preLoadedFavorites","deferredLaunchpadInfo","DeferredService","fetchLaunchpadInfo","deferredFavorites","fetchFavorites","showErrorAsNotification","showNotification","message","httpErrorToString","setDesktops","setMicroAppsById","setCustomLinksById","setLoading","setLoadingFavorites","storedRecentVisits","setStoredRecentVisits","setRecentVisits","setFavorites","_storage$getItem","getItem","startFetchLaunchpadInfo","fetch","handleHttpError","startFetchFavorites","visits","Boolean","_ref5","_storage$getItem2","findIndex","visit","splice","unshift","pop","setItem","some","matchFavorite","newFavorites","removed","slice","undoFavorite","catch","showDialog","content","favorite","result","allMenuGroups","filteredSubItems","sub","search","wrapBrick","unwrapProvider","___CSS_LOADER_URL_IMPORT_0___","URL","___CSS_LOADER_EXPORT___","___CSS_LOADER_URL_REPLACEMENT_0___","module","toString","exports","String","__esModule","default","test","hash","needQuotes","replace"],"sourceRoot":""}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_next_bricks_nav=self.webpackChunk_next_bricks_nav||[]).push([[8207],{658:(e,t,s)=>{s.r(t),s.d(t,{EoLaunchpadButtonV2:()=>n,EoLaunchpadButtonV2Component:()=>w});var r,c,i,n,h=s(2604),l=s(8657),a=s.n(l),o=s(5366),u=s(4511),d=s(7004),f=(s(9234),s(7217)),v=s(7370),p=s(2779),m=s.n(p),F=s(4758),g=s(6976),k=s(7694),E=s(2085),{defineElement:b}=(0,o.createDecorators)(),I=(0,d.unwrapProvider)("basic.lock-body-scroll");c=b("eo-launchpad-button-v2",{styleTexts:[g.Z]});class Z extends u.ReactNextElement{disconnectedCallback(){super.disconnectedCallback(),I(this,!1)}render(){return a().createElement(w,{host:this})}}function w(e){var{host:t}=e,[s,r]=(0,l.useState)(!1),[c,i]=(0,l.useState)(!1),n=()=>{i((e=>!e))};return(0,l.useEffect)((()=>(0,f.getHistory)().listen((()=>{i(!1)}))),[]),(0,l.useEffect)((()=>{c&&!s&&r(!0)}),[c,s]),(0,l.useEffect)((()=>(v.Z.filter=function(){return!0},(0,v.Z)("alt+l",(e=>{e.preventDefault(),i((e=>!e))})),(0,v.Z)("esc",(()=>{i(!1)})),()=>{v.Z.unbind("alt+l"),v.Z.unbind("esc")})),[]),(0,l.useEffect)((()=>{I(t,c)}),[c,t]),(0,l.useEffect)((()=>{E.yp.schedulePrefetch(),E.sK.schedulePrefetch()}),[]),a().createElement(a().Fragment,null,a().createElement("a",{role:"button",className:m()("launchpad-button",{active:c}),onClick:n},a().createElement(F.Z,null)),a().createElement("div",{className:m()("mask",{active:c}),onClick:n}),s&&a().createElement(k.Z,{active:c}))}i=Z,[n,r]=(0,h.Z)(i,[],[c],0,void 0,u.ReactNextElement).c,r()},2301:(e,t,s)=>{s.d(t,{i:()=>i});var r=s(4795),c=s(6666);class i{constructor(e){(0,c.Z)(this,"preFetchId",null),(0,c.Z)(this,"preFetchScheduled",!1),(0,c.Z)(this,"firstFetchPromise",null),(0,c.Z)(this,"isFetching",!1),(0,c.Z)(this,"task",void 0),this.task=e}schedulePrefetch(){var e=this;if(!this.preFetchScheduled){this.preFetchScheduled=!0;var t=function(){var t=(0,r.Z)((function*(){e.preFetchId=null,e.fetch()}));return function(){return t.apply(this,arguments)}}();"function"==typeof window.requestIdleCallback?this.preFetchId=window.requestIdleCallback(t):this.preFetchId=setTimeout(t)}}fetch(e){var t;return this.preFetchId&&("function"==typeof window.cancelIdleCallback?cancelIdleCallback(this.preFetchId):clearTimeout(this.preFetchId),this.preFetchId=null),this.isFetching&&!e||(this.isFetching=!0,(t=this.task()).catch((e=>{console.error(e),this.firstFetchPromise=null})).finally((()=>{this.isFetching=!1})),this.firstFetchPromise||(this.firstFetchPromise=t),!e)?this.firstFetchPromise:t}}},4758:(e,t,s)=>{s.d(t,{Z:()=>i});var r=s(7896),c=s(8657);const i=e=>c.createElement("svg",(0,r.Z)({xmlns:"http://www.w3.org/2000/svg",width:16,height:16,viewBox:"0 0 16 16"},e),c.createElement("g",{fill:"currentColor",fillRule:"nonzero"},c.createElement("path",{d:"M0 0h4v4H0zM0 6h4v4H0zM6 0h4v4H6zM6 6h4v4H6zM12 0h4v4h-4zM12 6h4v4h-4zM0 12h4v4H0zM6 12h4v4H6zM12 12h4v4h-4z"})))},2890:(e,t,s)=>{s.d(t,{o:()=>r});class r{constructor(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"brick-next-";this.storage=e,this.prefix=t}setItem(e,t){this.storage.setItem(this.prefix+e,JSON.stringify(t))}getItem(e){return JSON.parse(this.storage.getItem(this.prefix+e))}removeItem(e){return this.storage.removeItem(this.prefix+e)}clear(){return this.storage.clear()}}}}]);
|
|
2
|
+
//# sourceMappingURL=eo-launchpad-button-v2.5f256b20.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chunks/eo-launchpad-button-v2.75648e36.js","mappings":"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","sources":["webpack:///./src/launchpad-button-v2/index.tsx","webpack:///./src/shared/DeferredService.ts","webpack:///./src/images/launchpad.svg","webpack:///../../src/JsonStorage.ts"],"sourcesContent":["import React, { useEffect, useState } from \"react\";\nimport { createDecorators } from \"@next-core/element\";\nimport { ReactNextElement } from \"@next-core/react-element\";\nimport { unwrapProvider } from \"@next-core/utils/general\";\nimport \"@next-core/theme\";\nimport { getHistory } from \"@next-core/runtime\";\nimport type { lockBodyScroll as _lockBodyScroll } from \"@next-bricks/basic/data-providers/lock-body-scroll/lock-body-scroll\";\n// import { useTranslation, initializeReactI18n } from \"@next-core/i18n/react\";\nimport hotkeys from \"hotkeys-js\";\nimport classNames from \"classnames\";\n// import { K, NS, locales } from \"./i18n.js\";\nimport LaunchpadSvg from \"../images/launchpad.svg\";\nimport styleText from \"./styles.shadow.css\";\nimport { Launchpad } from \"./Launchpad\";\nimport { deferredFavorites, deferredLaunchpadInfo } from \"./useLaunchpadInfo\";\n\n// initializeReactI18n(NS, locales);\n\nconst { defineElement } = createDecorators();\n\nconst lockBodyScroll = unwrapProvider<typeof _lockBodyScroll>(\n \"basic.lock-body-scroll\"\n);\n\n/**\n * 构件 `eo-launchpad-button-v2`\n */\nexport\n@defineElement(\"eo-launchpad-button-v2\", {\n styleTexts: [styleText],\n})\nclass EoLaunchpadButtonV2 extends ReactNextElement {\n disconnectedCallback(): void {\n super.disconnectedCallback();\n lockBodyScroll(this, false);\n }\n\n render() {\n return <EoLaunchpadButtonV2Component host={this} />;\n }\n}\n\nexport function EoLaunchpadButtonV2Component({ host }: { host: HTMLElement }) {\n const [initialized, setInitialized] = useState(false);\n const [active, setActive] = useState(false);\n const toggleLaunchpad = (): void => {\n setActive((previous) => !previous);\n };\n\n useEffect(() => {\n // 当切换页面时,关闭 Launchpad。\n const unlisten = getHistory().listen(() => {\n setActive(false);\n });\n return unlisten;\n }, []);\n\n useEffect(() => {\n // 打开一次 launchpad 后,保留 DOM。\n if (active && !initialized) {\n setInitialized(true);\n }\n }, [active, initialized]);\n\n // istanbul ignore next\n useEffect(() => {\n hotkeys.filter = function () {\n return true;\n };\n\n // 快捷打开/关闭 Launchpad\n hotkeys(\"alt+l\", (event) => {\n event.preventDefault();\n setActive((previous) => !previous);\n });\n\n // 按 Esc 关闭 Launchpad\n hotkeys(\"esc\", () => {\n setActive(false);\n });\n\n return () => {\n hotkeys.unbind(\"alt+l\");\n hotkeys.unbind(\"esc\");\n };\n }, []);\n\n useEffect(() => {\n lockBodyScroll(host, active);\n }, [active, host]);\n\n useEffect(() => {\n deferredLaunchpadInfo.schedulePrefetch();\n deferredFavorites.schedulePrefetch();\n }, []);\n\n return (\n <>\n <a\n role=\"button\"\n className={classNames(\"launchpad-button\", { active })}\n onClick={toggleLaunchpad}\n >\n <LaunchpadSvg />\n </a>\n <div\n className={classNames(\"mask\", { active })}\n onClick={toggleLaunchpad}\n ></div>\n {initialized && <Launchpad active={active} />}\n </>\n );\n}\n","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 * as React from \"react\";\nconst SvgLaunchpad = props => <svg xmlns=\"http://www.w3.org/2000/svg\" width={16} height={16} viewBox=\"0 0 16 16\" {...props}><g fill=\"currentColor\" fillRule=\"nonzero\"><path d=\"M0 0h4v4H0zM0 6h4v4H0zM6 0h4v4H6zM6 6h4v4H6zM12 0h4v4h-4zM12 6h4v4h-4zM0 12h4v4H0zM6 12h4v4H6zM12 12h4v4h-4z\" /></g></svg>;\nexport default SvgLaunchpad;","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":["_EoLaunchpadButtonV","defineElement","createDecorators","lockBodyScroll","unwrapProvider","_dec","styleTexts","styleText","EoLaunchpadButtonV2","ReactNextElement","disconnectedCallback","super","this","render","React","EoLaunchpadButtonV2Component","host","_ref","initialized","setInitialized","useState","active","setActive","toggleLaunchpad","previous","useEffect","getHistory","listen","hotkeys","filter","event","preventDefault","unbind","deferredLaunchpadInfo","schedulePrefetch","deferredFavorites","role","className","classNames","onClick","LaunchpadSvg","Launchpad","_class","_initClass","_applyDecs","c","DeferredService","constructor","task","_defineProperty","_this","preFetchScheduled","preFetchLaunchpadInfo","_asyncToGenerator","preFetchId","fetch","apply","arguments","window","requestIdleCallback","setTimeout","eager","promise","cancelIdleCallback","clearTimeout","isFetching","catch","error","console","firstFetchPromise","finally","props","_extends","xmlns","width","height","viewBox","fill","fillRule","d","JsonStorage","storage","prefix","length","undefined","setItem","name","value","JSON","stringify","getItem","parse","removeItem","clear"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"file":"chunks/eo-launchpad-button-v2.5f256b20.js","mappings":"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","sources":["webpack:///./src/launchpad-button-v2/index.tsx","webpack:///./src/shared/DeferredService.ts","webpack:///./src/images/launchpad.svg","webpack:///../../src/JsonStorage.ts"],"sourcesContent":["import React, { useEffect, useState } from \"react\";\nimport { createDecorators } from \"@next-core/element\";\nimport { ReactNextElement } from \"@next-core/react-element\";\nimport { unwrapProvider } from \"@next-core/utils/general\";\nimport \"@next-core/theme\";\nimport { getHistory } from \"@next-core/runtime\";\nimport type { lockBodyScroll as _lockBodyScroll } from \"@next-bricks/basic/data-providers/lock-body-scroll/lock-body-scroll\";\n// import { useTranslation, initializeReactI18n } from \"@next-core/i18n/react\";\nimport hotkeys from \"hotkeys-js\";\nimport classNames from \"classnames\";\n// import { K, NS, locales } from \"./i18n.js\";\nimport LaunchpadSvg from \"../images/launchpad.svg\";\nimport styleText from \"./styles.shadow.css\";\nimport { Launchpad } from \"./Launchpad\";\nimport { deferredFavorites, deferredLaunchpadInfo } from \"./useLaunchpadInfo\";\n\n// initializeReactI18n(NS, locales);\n\nconst { defineElement } = createDecorators();\n\nconst lockBodyScroll = unwrapProvider<typeof _lockBodyScroll>(\n \"basic.lock-body-scroll\"\n);\n\n/**\n * 构件 `eo-launchpad-button-v2`\n */\nexport\n@defineElement(\"eo-launchpad-button-v2\", {\n styleTexts: [styleText],\n})\nclass EoLaunchpadButtonV2 extends ReactNextElement {\n disconnectedCallback(): void {\n super.disconnectedCallback();\n lockBodyScroll(this, false);\n }\n\n render() {\n return <EoLaunchpadButtonV2Component host={this} />;\n }\n}\n\nexport function EoLaunchpadButtonV2Component({ host }: { host: HTMLElement }) {\n const [initialized, setInitialized] = useState(false);\n const [active, setActive] = useState(false);\n const toggleLaunchpad = (): void => {\n setActive((previous) => !previous);\n };\n\n useEffect(() => {\n // 当切换页面时,关闭 Launchpad。\n const unlisten = getHistory().listen(() => {\n setActive(false);\n });\n return unlisten;\n }, []);\n\n useEffect(() => {\n // 打开一次 launchpad 后,保留 DOM。\n if (active && !initialized) {\n setInitialized(true);\n }\n }, [active, initialized]);\n\n // istanbul ignore next\n useEffect(() => {\n hotkeys.filter = function () {\n return true;\n };\n\n // 快捷打开/关闭 Launchpad\n hotkeys(\"alt+l\", (event) => {\n event.preventDefault();\n setActive((previous) => !previous);\n });\n\n // 按 Esc 关闭 Launchpad\n hotkeys(\"esc\", () => {\n setActive(false);\n });\n\n return () => {\n hotkeys.unbind(\"alt+l\");\n hotkeys.unbind(\"esc\");\n };\n }, []);\n\n useEffect(() => {\n lockBodyScroll(host, active);\n }, [active, host]);\n\n useEffect(() => {\n deferredLaunchpadInfo.schedulePrefetch();\n deferredFavorites.schedulePrefetch();\n }, []);\n\n return (\n <>\n <a\n role=\"button\"\n className={classNames(\"launchpad-button\", { active })}\n onClick={toggleLaunchpad}\n >\n <LaunchpadSvg />\n </a>\n <div\n className={classNames(\"mask\", { active })}\n onClick={toggleLaunchpad}\n ></div>\n {initialized && <Launchpad active={active} />}\n </>\n );\n}\n","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 * as React from \"react\";\nconst SvgLaunchpad = props => <svg xmlns=\"http://www.w3.org/2000/svg\" width={16} height={16} viewBox=\"0 0 16 16\" {...props}><g fill=\"currentColor\" fillRule=\"nonzero\"><path d=\"M0 0h4v4H0zM0 6h4v4H0zM6 0h4v4H6zM6 6h4v4H6zM12 0h4v4h-4zM12 6h4v4h-4zM0 12h4v4H0zM6 12h4v4H6zM12 12h4v4h-4z\" /></g></svg>;\nexport default SvgLaunchpad;","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":["_EoLaunchpadButtonV","defineElement","createDecorators","lockBodyScroll","unwrapProvider","_dec","styleTexts","styleText","EoLaunchpadButtonV2","ReactNextElement","disconnectedCallback","super","this","render","React","EoLaunchpadButtonV2Component","host","_ref","initialized","setInitialized","useState","active","setActive","toggleLaunchpad","previous","useEffect","getHistory","listen","hotkeys","filter","event","preventDefault","unbind","deferredLaunchpadInfo","schedulePrefetch","deferredFavorites","role","className","classNames","onClick","LaunchpadSvg","Launchpad","_class","_initClass","_applyDecs","c","DeferredService","constructor","task","_defineProperty","_this","preFetchScheduled","preFetchLaunchpadInfo","_asyncToGenerator","preFetchId","fetch","apply","arguments","window","requestIdleCallback","setTimeout","eager","promise","cancelIdleCallback","clearTimeout","isFetching","catch","error","console","firstFetchPromise","finally","props","_extends","xmlns","width","height","viewBox","fill","fillRule","d","JsonStorage","storage","prefix","length","undefined","setItem","name","value","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([[2517],{6404:(e,t,n)=>{n.r(t),n.d(t,{LaunchpadButton:()=>b});var a,c,r,s=n(2604),l=n(8657),u=n.n(l),i=n(5366),d=n(4511),k=n(8470),o=n(
|
|
2
|
-
//# sourceMappingURL=eo-launchpad-button.
|
|
1
|
+
"use strict";(self.webpackChunk_next_bricks_nav=self.webpackChunk_next_bricks_nav||[]).push([[2517],{6404:(e,t,n)=>{n.r(t),n.d(t,{LaunchpadButton:()=>b});var a,c,r,s=n(2604),l=n(8657),u=n.n(l),i=n(5366),d=n(4511),k=n(8470),o=n(9701),x=(n(9234),n(4497)),_=n(2152);(0,o.initializeReactI18n)(x.NS,x.k);var b,{defineElement:h}=(0,i.createDecorators)();c=h("eo-launchpad-button",{styleTexts:[_.Z]});class p extends d.ReactNextElement{render(){return u().createElement(k.L,null)}}r=p,[b,a]=(0,s.Z)(r,[],[c],0,void 0,d.ReactNextElement).c,a()}}]);
|
|
2
|
+
//# sourceMappingURL=eo-launchpad-button.8103d9bc.js.map
|
package/dist/chunks/{eo-launchpad-button.5e4a1b39.js.map → eo-launchpad-button.8103d9bc.js.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chunks/eo-launchpad-button.
|
|
1
|
+
{"version":3,"file":"chunks/eo-launchpad-button.8103d9bc.js","mappings":"wQASAA,EAAAA,EAAAA,qBAAoBC,EAAAA,GAAIC,EAAAA,GAExB,IAEAC,GAFM,cAAEC,IAAkBC,EAAAA,EAAAA,oBAE1BC,EAICF,EAAc,sBAAuB,CACpCG,WAAY,CAACC,EAAAA,KADf,MAAAC,UAG8BC,EAAAA,iBAC5BC,SACE,OAAOC,IAAAA,cAACC,EAAAA,EAAwB,KAClC,EACDC,EAAAL,GAAAN,EAAAY,IAAAC,EAAAA,EAAAA,GAAAF,EAAA,IAAAR,GAAA,SAJ6BI,EAAAA,kBAAgBO,EAAAF,G","sources":["webpack:///./src/launchpad/index.tsx"],"sourcesContent":["import React from \"react\";\nimport { createDecorators } from \"@next-core/element\";\nimport { ReactNextElement } from \"@next-core/react-element\";\nimport { LaunchpadButton as LaunchpadButtonComponent } from \"./LaunchpadButton/LaunchpadButton.js\";\nimport { initializeReactI18n } from \"@next-core/i18n/react\";\nimport \"@next-core/theme\";\nimport { NS, locales } from \"./i18n.js\";\nimport styleText from \"./LaunchpadButton/LaunchpadButton.shadow.css\";\n\ninitializeReactI18n(NS, locales);\n\nconst { defineElement } = createDecorators();\n\n/**\n * Launchpad 按钮构件\n * @author sailor\n */\n@defineElement(\"eo-launchpad-button\", {\n styleTexts: [styleText],\n})\nclass LaunchpadButton extends ReactNextElement {\n render() {\n return <LaunchpadButtonComponent />;\n }\n}\n\nexport { LaunchpadButton };\n"],"names":["initializeReactI18n","NS","locales","_LaunchpadButton","defineElement","createDecorators","_dec","styleTexts","styleText","LaunchpadButton","ReactNextElement","render","React","LaunchpadButtonComponent","_class","_initClass","_applyDecs","c"],"sourceRoot":""}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
/*! For license information please see eo-nav-menu.b0de8f24.js.LICENSE.txt */
|
|
2
|
+
(self.webpackChunk_next_bricks_nav=self.webpackChunk_next_bricks_nav||[]).push([[1163,4443,6522,5628],{2041:(e,t,r)=>{"use strict";r.r(t),r.d(t,{NavMenu:()=>z});var n,i,o,a,s,c,l,u,p,m=r(4795),d=r(3395),f=r(381),h=r(687),v=r(2604),y=r(7896),g=r(8657),b=r.n(g),w=r(5366),E=r(7217),k=r(4511),x=r(9800),O=r(3808),Z=r(7993),T=(r(9234),r(2779)),j=r.n(T),S=r(1880),N=r(9705),D=r(2598),P=r(8462),I=r(8101),{defineElement:K,property:A}=(0,w.createDecorators)(),C=(0,k.wrapBrick)("eo-menu-item"),M=(0,k.wrapBrick)("eo-popover",{onVisibleChange:"visible.change",beforeVisibleChange:"before.visible.change"});function R(e){var{item:t}=e;return(0,O.cl)(t,e.topData)?b().createElement(L,(0,y.Z)({},e,{item:t})):(0,O.ty)(t)?b().createElement(V,(0,y.Z)({},e,{item:t})):b().createElement(_,(0,y.Z)({},e,{item:t}))}function _(e){var{item:t,index:r,hidden:n,showTooltip:i,selectedKey:o=[]}=e;return b().createElement(C,{"data-index":r,className:n?"overflow-menu-item":"",key:t.key,title:i?t.text:"",active:!!t.key&&o.includes(t.key)},(0,O.nC)(t,{width:"100%"}))}var z,F=e=>{var t,r=null!==(t=p)&&void 0!==t?t:p=window.innerWidth-document.body.clientWidth;document.body.style.paddingRight=e.detail?r+"px":"",document.body.style.overflow=e.detail?"hidden":"",document.body.style.touchAction=e.detail?"none":""};function L(e){var t,{index:r,hidden:n,item:i,topData:o,showTooltip:a,selectedKey:s=[],overflow:c}=e;return(null===(t=i.items)||void 0===t?void 0:t.length)>0?b().createElement(M,{"data-index":r,className:j()("popover",{subprime:!o,"overflow-menu-item":n}),trigger:"hover",placement:o?"bottom-start":"right-start",distance:0,anchorDisplay:"block",strategy:"fixed"},b().createElement(C,{className:"sub-menu-item-label",key:i.key,slot:"anchor",title:a?i.title:""},(0,O.cx)(i,!o)),b().createElement("div",{className:j()("sub-menu-wrapper",{"overflow-menu-wrapper":c})},i.items.map((e=>b().createElement(b().Fragment,{key:e.key},b().createElement(R,{item:e,selectedKey:s,showTooltip:a})))))):null}function V(e){var t,{item:r,showTooltip:n,selectedKey:i=[]}=e;return(null===(t=r.items)||void 0===t?void 0:t.length)>0?"category"===r.childLayout?b().createElement(W,{item:r,selectedKey:i,showTooltip:n,placement:"right-start",anchorDisplay:"block"}):"siteMap"===r.childLayout?b().createElement(B,{item:r,selectedKey:i,showTooltip:n,placement:"right-start",anchorDisplay:"block",topData:!1}):b().createElement(b().Fragment,null,b().createElement("div",{className:"group-label"},r.title),b().createElement("div",{className:"group-wrapper"},r.items.map((e=>b().createElement(b().Fragment,{key:e.key},b().createElement(R,{item:e,showTooltip:n,selectedKey:i})))))):null}function W(e){var t,{index:r,hidden:n,item:i,selectedKey:o=[],showTooltip:a,placement:s="bottom-start",anchorDisplay:c}=e;return(null===(t=i.items)||void 0===t?void 0:t.length)>0?b().createElement(M,{"data-index":r,className:j()("three-level-menu-popover","popover",{"overflow-menu-item":n}),trigger:"hover",placement:s,distance:0,key:i.key,strategy:"fixed",anchorDisplay:c,beforeVisibleChange:F},b().createElement(C,{className:"sub-menu-item-label",key:i.key,slot:"anchor",title:a?i.title:""},(0,O.cx)(i)),b().createElement("div",{className:"sub-menu-wrapper"},b().createElement(S.m,{menuItem:i,selectedKey:o}))):null}function B(e){var t,{index:r,hidden:n,item:i,selectedKey:o=[],showTooltip:a,placement:s="bottom-start",anchorDisplay:c,topData:l}=e,[u,p]=(0,g.useState)();return(null===(t=i.items)||void 0===t?void 0:t.length)>0?b().createElement(M,{"data-index":r,className:j()("popover",{"overflow-menu-item":n}),trigger:"hover",placement:s,distance:0,key:i.key,strategy:"fixed",anchorDisplay:c,beforeVisibleChange:e=>{p(e.detail),F(e)}},b().createElement(C,{className:"sub-menu-item-label",key:i.key,slot:"anchor",title:a?i.title:""},(0,O.cx)(i)),b().createElement("div",{className:j()("sub-menu-sit-map-wrapper",{"in-group-site-map":!l}),onClick:e=>e.stopPropagation()},b().createElement(N.hX,{menuGroup:i,selectedKey:o,visible:u}))):null}i=K("eo-nav-menu",{styleTexts:[D.Z,P.Z,I.Z,x.Z]}),o=A({attribute:!1}),s=A({type:Boolean});var G=new WeakMap,J=new WeakMap;class X extends k.ReactNextElement{constructor(){super(...arguments),(0,d.Z)(this,G,{writable:!0,value:(l(this),a(this))}),(0,d.Z)(this,J,{writable:!0,value:c(this)})}get menu(){return(0,h.Z)(this,G)}set menu(e){(0,f.Z)(this,G,e)}get showTooltip(){return(0,h.Z)(this,J)}set showTooltip(e){(0,f.Z)(this,J,e)}render(){return b().createElement(H,{menu:this.menu,showTooltip:this.showTooltip})}}function H(e){var t,r,{menu:n,showTooltip:i}=e,o=(0,E.getHistory)(),a=(0,g.useRef)(null),[s,c]=(0,g.useState)(o.location),[l,u]=(0,g.useState)(Number.MAX_SAFE_INTEGER),{pathname:p,search:d}=s,[f,h]=(0,g.useState)([]),v=function(){var e=(0,m.Z)((function*(){var e,{selectedKeys:t}=(0,Z.OZ)(null!==(e=null==n?void 0:n.menuItems)&&void 0!==e?e:[],p,d,"");h(t)}));return function(){return e.apply(this,arguments)}}();(0,g.useEffect)((()=>{var e=o.listen((e=>{c(e)}));return v(),e}),[]),(0,g.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:{},r=a.current.childNodes;if(r.length&&t){for(var n=t,i=r.length,o=0;o<r.length;o++){var{width:s,height:c}=r[o].getClientRects()[0];if(!c&&n-40<0){i=o-1;break}if((n=n-s-(o>0?8:0))<0){i=o;break}}u(i<0?0:i)}}}));return e.observe(a.current),()=>{e.disconnect()}}}),[]);var y=(0,g.useMemo)((()=>({type:"subMenu",title:"···",items:null==n?void 0:n.menuItems.slice(l,n.menuItems.length)})),[null==n?void 0:n.menuItems,l]);return b().createElement("div",{ref:a,className:"nav-menu-wrapper"},null==n?void 0:n.menuItems.map(((e,t)=>{var r,n=l<=t;return b().createElement(b().Fragment,{key:e.key},(0,O.cl)(e,!0)&&"category"===e.childLayout&&null!==(r=e.items)&&void 0!==r&&r.length?b().createElement(W,{index:t,hidden:n,item:e,showTooltip:i,selectedKey:f}):"group"===e.type&&"siteMap"===e.childLayout?b().createElement(B,{index:t,hidden:n,item:e,showTooltip:i,selectedKey:f,topData:!0}):b().createElement(R,{index:t,hidden:n,item:e,showTooltip:i,selectedKey:f,topData:!0}))})),b().createElement(R,{hidden:l>(null!==(t=null==n||null===(r=n.menuItems)||void 0===r?void 0:r.length)&&void 0!==t?t:0),item:y,showTooltip:i,selectedKey:f,overflow:!0,topData:!0}))}u=X,({e:[a,c,l],c:[z,n]}=(0,v.Z)(u,[[o,1,"menu"],[s,1,"showTooltip"]],[i],0,void 0,k.ReactNextElement)),n()},2779:(e,t)=>{var r;!function(){"use strict";var n={}.hasOwnProperty;function i(){for(var e=[],t=0;t<arguments.length;t++){var r=arguments[t];if(r){var o=typeof r;if("string"===o||"number"===o)e.push(r);else if(Array.isArray(r)){if(r.length){var a=i.apply(null,r);a&&e.push(a)}}else if("object"===o){if(r.toString!==Object.prototype.toString&&!r.toString.toString().includes("[native code]")){e.push(r.toString());continue}for(var s in r)n.call(r,s)&&r[s]&&e.push(s)}}}return e.join(" ")}e.exports?(i.default=i,e.exports=i):void 0===(r=function(){return i}.apply(t,[]))||(e.exports=r)}()},2609:e=>{"use strict";e.exports=function(e){var t=[];return t.toString=function(){return this.map((function(t){var r="",n=void 0!==t[5];return t[4]&&(r+="@supports (".concat(t[4],") {")),t[2]&&(r+="@media ".concat(t[2]," {")),n&&(r+="@layer".concat(t[5].length>0?" ".concat(t[5]):""," {")),r+=e(t),n&&(r+="}"),t[2]&&(r+="}"),t[4]&&(r+="}"),r})).join("")},t.i=function(e,r,n,i,o){"string"==typeof e&&(e=[[null,e,void 0]]);var a={};if(n)for(var s=0;s<this.length;s++){var c=this[s][0];null!=c&&(a[c]=!0)}for(var l=0;l<e.length;l++){var u=[].concat(e[l]);n&&a[u[0]]||(void 0!==o&&(void 0===u[5]||(u[1]="@layer".concat(u[5].length>0?" ".concat(u[5]):""," {").concat(u[1],"}")),u[5]=o),r&&(u[2]?(u[1]="@media ".concat(u[2]," {").concat(u[1],"}"),u[2]=r):u[2]=r),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,r)=>{"use strict";r.d(t,{Z:()=>h});var n=r(6522),i=r(1815);function o(e,t){return function(r){(function(e,t){if(e.v)throw new Error("attempted to call addInitializer after decoration was finished")})(t),c(r,"An initializer"),e.push(r)}}function a(e,t){if(!e(t))throw new TypeError("Attempted to access private element on non-instance")}function s(e,t,r,n,i,s,c,l,u,p){var m;switch(s){case 1:m="accessor";break;case 2:m="method";break;case 3:m="getter";break;case 4:m="setter";break;default:m="field"}var d,f,h={kind:m,name:l?"#"+r:r,static:c,private:l},v={v:!1};if(0!==s&&(h.addInitializer=o(i,v)),l||0!==s&&2!==s)if(2===s)d=function(e){return a(p,e),n.value};else{var y=0===s||1===s;(y||3===s)&&(d=l?function(e){return a(p,e),n.get.call(e)}:function(e){return n.get.call(e)}),(y||4===s)&&(f=l?function(e,t){a(p,e),n.set.call(e,t)}:function(e,t){n.set.call(e,t)})}else d=function(e){return e[r]},0===s&&(f=function(e,t){e[r]=t});var g=l?p.bind():function(e){return r in e};h.access=d&&f?{get:d,set:f,has:g}:d?{get:d,has:g}:{set:f,has:g};try{return e.call(t,u,h)}finally{v.v=!0}}function c(e,t){if("function"!=typeof e)throw new TypeError(t+" must be a function")}function l(e,t){var r=(0,n.Z)(t);if(1===e){if("object"!==r||null===t)throw new TypeError("accessor decorators must return an object with get, set, or init properties or void 0");void 0!==t.get&&c(t.get,"accessor.get"),void 0!==t.set&&c(t.set,"accessor.set"),void 0!==t.init&&c(t.init,"accessor.init")}else if("function"!==r)throw new TypeError((0===e?"field":5===e?"class":"method")+" decorators must return a function or void 0")}function u(e){return function(){return e(this)}}function p(e){return function(t){e(this,t)}}function m(e,t,r,n,i,o,a,c,m,d){var f,h,v,y,g,b,w=r[0];n||Array.isArray(w)||(w=[w]),c?f=0===o||1===o?{get:u(r[3]),set:p(r[4])}:3===o?{get:r[3]}:4===o?{set:r[3]}:{value:r[3]}:0!==o&&(f=Object.getOwnPropertyDescriptor(t,i)),1===o?v={get:f.get,set:f.set}:2===o?v=f.value:3===o?v=f.get:4===o&&(v=f.set);for(var E=n?2:1,k=w.length-1;k>=0;k-=E){var x;void 0!==(y=s(w[k],n?w[k-1]:void 0,i,f,m,o,a,c,v,d))&&(l(o,y),0===o?x=y:1===o?(x=y.init,g=y.get||v.get,b=y.set||v.set,v={get:g,set:b}):v=y,void 0!==x&&(void 0===h?h=x:"function"==typeof h?h=[h,x]:h.push(x)))}if(0===o||1===o){if(void 0===h)h=function(e,t){return t};else if("function"!=typeof h){var O=h;h=function(e,t){for(var r=t,n=O.length-1;n>=0;n--)r=O[n].call(e,r);return r}}else{var Z=h;h=function(e,t){return Z.call(e,t)}}e.push(h)}0!==o&&(1===o?(f.get=v.get,f.set=v.set):2===o?f.value=v:3===o?f.get=v:4===o&&(f.set=v),c?1===o?(e.push((function(e,t){return v.get.call(e,t)})),e.push((function(e,t){return v.set.call(e,t)}))):2===o?e.push(v):e.push((function(e,t){return v.call(e,t)})):Object.defineProperty(t,i,f))}function d(e,t,r){for(var n,o,a,s=[],c=new Map,l=new Map,u=0;u<t.length;u++){var p=t[u];if(Array.isArray(p)){var d,h,v=p[1],y=p[2],g=p.length>3,b=16&v,w=!!(8&v),E=r;if(v&=7,w?(d=e,0!==v&&(h=o=o||[]),g&&!a&&(a=function(t){return(0,i.Z)(t)===e}),E=a):(d=e.prototype,0!==v&&(h=n=n||[])),0!==v&&!g){var k=w?l:c,x=k.get(y)||0;if(!0===x||3===x&&4!==v||4===x&&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: "+y);k.set(y,!(!x&&v>2)||v)}m(s,d,p,b,y,v,w,g,h,E)}}return f(s,n),f(s,o),s}function f(e,t){t&&e.push((function(e){for(var r=0;r<t.length;r++)t[r].call(e);return e}))}function h(e,t,r,n,i){return{e:d(e,t,i),get c(){return function(e,t,r){if(t.length){for(var n=[],i=e,a=e.name,s=r?2:1,c=t.length-1;c>=0;c-=s){var u={v:!1};try{var p=t[c].call(r?t[c-1]:void 0,i,{kind:"class",name:a,addInitializer:o(n,u)})}finally{u.v=!0}void 0!==p&&(l(5,p),i=p)}return[i,function(){for(var e=0;e<n.length;e++)n[e].call(i)}]}}(e,r,n)}}}},4795:(e,t,r)=>{"use strict";function n(e,t,r,n,i,o,a){try{var s=e[o](a),c=s.value}catch(e){return void r(e)}s.done?t(c):Promise.resolve(c).then(n,i)}function i(e){return function(){var t=this,r=arguments;return new Promise((function(i,o){var a=e.apply(t,r);function s(e){n(a,i,o,s,c,"next",e)}function c(e){n(a,i,o,s,c,"throw",e)}s(void 0)}))}}r.d(t,{Z:()=>i})},1815:(e,t,r)=>{"use strict";r.d(t,{Z:()=>i});var n=r(6522);function i(e){if(Object(e)!==e)throw TypeError("right-hand side of 'in' should be an object, got "+(null!==e?(0,n.Z)(e):"null"));return e}},6666:(e,t,r)=>{"use strict";r.d(t,{Z:()=>i});var n=r(5850);function i(e,t,r){return(t=(0,n.Z)(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}},7896:(e,t,r)=>{"use strict";function n(){return n=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},n.apply(this,arguments)}r.d(t,{Z:()=>n})},3028:(e,t,r)=>{"use strict";r.d(t,{Z:()=>o});var n=r(6666);function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function o(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?i(Object(r),!0).forEach((function(t){(0,n.Z)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):i(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}},5850:(e,t,r)=>{"use strict";r.d(t,{Z:()=>i});var n=r(6522);function i(e){var t=function(e,t){if("object"!==(0,n.Z)(e)||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var i=r.call(e,"string");if("object"!==(0,n.Z)(i))return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"===(0,n.Z)(t)?t:String(t)}},6522:(e,t,r)=>{"use strict";function n(e){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},n(e)}r.d(t,{Z:()=>n})},2890:(e,t,r)=>{"use strict";r.d(t,{o:()=>n});class n{constructor(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"brick-next-";this.storage=e,this.prefix=t}setItem(e,t){this.storage.setItem(this.prefix+e,JSON.stringify(t))}getItem(e){return JSON.parse(this.storage.getItem(this.prefix+e))}removeItem(e){return this.storage.removeItem(this.prefix+e)}clear(){return this.storage.clear()}}}}]);
|
|
3
|
+
//# sourceMappingURL=eo-nav-menu.b0de8f24.js.map
|