@next-bricks/nav 0.9.7 → 0.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. package/dist/bricks.json +7 -7
  2. package/dist/chunks/3981.c420dc94.js +3 -0
  3. package/dist/chunks/3981.c420dc94.js.LICENSE.txt +3 -0
  4. package/dist/chunks/3981.c420dc94.js.map +1 -0
  5. package/dist/chunks/4752.118dc45e.js +3 -0
  6. package/dist/chunks/{eo-launchpad-button-v2.a9c5a09c.js.LICENSE.txt → 4752.118dc45e.js.LICENSE.txt} +2 -0
  7. package/dist/chunks/4752.118dc45e.js.map +1 -0
  8. package/dist/chunks/6176.0592a316.js +2 -0
  9. package/dist/chunks/6176.0592a316.js.map +1 -0
  10. package/dist/chunks/{7451.9cf0955a.js → 9009.b2a19c41.js} +3 -3
  11. package/dist/chunks/{7451.9cf0955a.js.LICENSE.txt → 9009.b2a19c41.js.LICENSE.txt} +2 -0
  12. package/dist/chunks/9009.b2a19c41.js.map +1 -0
  13. package/dist/chunks/eo-launchpad-button-v2.aa45c006.js +2 -0
  14. package/dist/chunks/eo-launchpad-button-v2.aa45c006.js.map +1 -0
  15. package/dist/chunks/eo-launchpad-quick-access.468651f5.js +3 -0
  16. package/dist/chunks/{eo-launchpad-quick-access.dd62321c.js.LICENSE.txt → eo-launchpad-quick-access.468651f5.js.LICENSE.txt} +2 -0
  17. package/dist/chunks/eo-launchpad-quick-access.468651f5.js.map +1 -0
  18. package/dist/chunks/eo-launchpad-recent-visits.2b3621f5.js +3 -0
  19. package/dist/chunks/{eo-launchpad-recent-visits.d9b94328.js.LICENSE.txt → eo-launchpad-recent-visits.2b3621f5.js.LICENSE.txt} +2 -0
  20. package/dist/chunks/eo-launchpad-recent-visits.2b3621f5.js.map +1 -0
  21. package/dist/chunks/eo-search-launchpad.f5d87886.js +2 -0
  22. package/dist/chunks/eo-search-launchpad.f5d87886.js.map +1 -0
  23. package/dist/chunks/main.8c4eba35.js +2 -0
  24. package/dist/chunks/main.8c4eba35.js.map +1 -0
  25. package/dist/examples.json +3 -3
  26. package/dist/index.1e32f967.js +2 -0
  27. package/dist/{index.ccf3d5e6.js.map → index.1e32f967.js.map} +1 -1
  28. package/dist/manifest.json +31 -31
  29. package/dist/types.json +76 -76
  30. package/dist-types/launchpad-button-v2/PlatformCategory.d.ts +12 -0
  31. package/dist-types/launchpad-button-v2/PlatformCategory.spec.d.ts +1 -0
  32. package/dist-types/launchpad-button-v2/api.d.ts +2 -1
  33. package/dist-types/launchpad-button-v2/interfaces.d.ts +9 -0
  34. package/dist-types/launchpad-button-v2/search.d.ts +2 -1
  35. package/dist-types/launchpad-button-v2/useLaunchpadInfo.d.ts +4 -1
  36. package/package.json +3 -2
  37. package/dist/chunks/3556.4d471160.js +0 -2
  38. package/dist/chunks/3556.4d471160.js.map +0 -1
  39. package/dist/chunks/5951.a9b5d4f4.js +0 -3
  40. package/dist/chunks/5951.a9b5d4f4.js.LICENSE.txt +0 -9
  41. package/dist/chunks/5951.a9b5d4f4.js.map +0 -1
  42. package/dist/chunks/7451.9cf0955a.js.map +0 -1
  43. package/dist/chunks/eo-launchpad-button-v2.a9c5a09c.js +0 -3
  44. package/dist/chunks/eo-launchpad-button-v2.a9c5a09c.js.map +0 -1
  45. package/dist/chunks/eo-launchpad-quick-access.dd62321c.js +0 -3
  46. package/dist/chunks/eo-launchpad-quick-access.dd62321c.js.map +0 -1
  47. package/dist/chunks/eo-launchpad-recent-visits.d9b94328.js +0 -3
  48. package/dist/chunks/eo-launchpad-recent-visits.d9b94328.js.map +0 -1
  49. package/dist/chunks/eo-search-launchpad.d3ff5389.js +0 -2
  50. package/dist/chunks/eo-search-launchpad.d3ff5389.js.map +0 -1
  51. package/dist/chunks/main.42938b1c.js +0 -2
  52. package/dist/chunks/main.42938b1c.js.map +0 -1
  53. package/dist/index.ccf3d5e6.js +0 -2
package/dist/types.json CHANGED
@@ -4,6 +4,59 @@
4
4
  "events": [],
5
5
  "methods": []
6
6
  },
7
+ "eo-app-bar-wrapper": {
8
+ "properties": [
9
+ {
10
+ "name": "isFixed",
11
+ "annotation": {
12
+ "type": "keyword",
13
+ "value": "boolean"
14
+ }
15
+ },
16
+ {
17
+ "name": "position",
18
+ "annotation": {
19
+ "type": "union",
20
+ "types": [
21
+ {
22
+ "type": "jsLiteral",
23
+ "value": "static"
24
+ },
25
+ {
26
+ "type": "jsLiteral",
27
+ "value": "fixed"
28
+ }
29
+ ]
30
+ }
31
+ },
32
+ {
33
+ "name": "displayCenter",
34
+ "annotation": {
35
+ "type": "keyword",
36
+ "value": "boolean"
37
+ }
38
+ },
39
+ {
40
+ "name": "extraAppBarContentStyle",
41
+ "annotation": {
42
+ "type": "reference",
43
+ "typeName": {
44
+ "type": "qualifiedName",
45
+ "left": {
46
+ "type": "identifier",
47
+ "name": "React"
48
+ },
49
+ "right": {
50
+ "type": "identifier",
51
+ "name": "CSSProperties"
52
+ }
53
+ }
54
+ }
55
+ }
56
+ ],
57
+ "events": [],
58
+ "methods": []
59
+ },
7
60
  "eo-frame-breadcrumb": {
8
61
  "properties": [
9
62
  {
@@ -92,59 +145,6 @@
92
145
  }
93
146
  ]
94
147
  },
95
- "eo-app-bar-wrapper": {
96
- "properties": [
97
- {
98
- "name": "isFixed",
99
- "annotation": {
100
- "type": "keyword",
101
- "value": "boolean"
102
- }
103
- },
104
- {
105
- "name": "position",
106
- "annotation": {
107
- "type": "union",
108
- "types": [
109
- {
110
- "type": "jsLiteral",
111
- "value": "static"
112
- },
113
- {
114
- "type": "jsLiteral",
115
- "value": "fixed"
116
- }
117
- ]
118
- }
119
- },
120
- {
121
- "name": "displayCenter",
122
- "annotation": {
123
- "type": "keyword",
124
- "value": "boolean"
125
- }
126
- },
127
- {
128
- "name": "extraAppBarContentStyle",
129
- "annotation": {
130
- "type": "reference",
131
- "typeName": {
132
- "type": "qualifiedName",
133
- "left": {
134
- "type": "identifier",
135
- "name": "React"
136
- },
137
- "right": {
138
- "type": "identifier",
139
- "name": "CSSProperties"
140
- }
141
- }
142
- }
143
- }
144
- ],
145
- "events": [],
146
- "methods": []
147
- },
148
148
  "eo-sidebar-menu-item": {
149
149
  "properties": [
150
150
  {
@@ -453,6 +453,29 @@
453
453
  "events": [],
454
454
  "methods": []
455
455
  },
456
+ "eo-nav-menu": {
457
+ "properties": [
458
+ {
459
+ "name": "menu",
460
+ "annotation": {
461
+ "type": "reference",
462
+ "typeName": {
463
+ "type": "identifier",
464
+ "name": "SidebarMenu"
465
+ }
466
+ }
467
+ },
468
+ {
469
+ "name": "showTooltip",
470
+ "annotation": {
471
+ "type": "keyword",
472
+ "value": "boolean"
473
+ }
474
+ }
475
+ ],
476
+ "events": [],
477
+ "methods": []
478
+ },
456
479
  "nav.launchpad-config": {
457
480
  "properties": [
458
481
  {
@@ -890,29 +913,6 @@
890
913
  }
891
914
  ]
892
915
  },
893
- "eo-nav-menu": {
894
- "properties": [
895
- {
896
- "name": "menu",
897
- "annotation": {
898
- "type": "reference",
899
- "typeName": {
900
- "type": "identifier",
901
- "name": "SidebarMenu"
902
- }
903
- }
904
- },
905
- {
906
- "name": "showTooltip",
907
- "annotation": {
908
- "type": "keyword",
909
- "value": "boolean"
910
- }
911
- }
912
- ],
913
- "events": [],
914
- "methods": []
915
- },
916
916
  "eo-launchpad-button-v2": {
917
917
  "properties": [],
918
918
  "events": [],
@@ -0,0 +1,12 @@
1
+ import React from "react";
2
+ import { MenuItemDataNormal, PlatformCategoryItem } from "./interfaces";
3
+ export interface PlatformCategorySidebarMenuItemProps {
4
+ item: PlatformCategoryItem;
5
+ active?: boolean;
6
+ onClick?: (item: PlatformCategoryItem) => void;
7
+ }
8
+ export declare function PlatformCategorySidebarMenuItem({ item, active, onClick, }: PlatformCategorySidebarMenuItemProps): React.JSX.Element;
9
+ export interface PlatformItemProps {
10
+ item: MenuItemDataNormal;
11
+ }
12
+ export declare function PlatformItem({ item }: PlatformItemProps): React.JSX.Element;
@@ -1,4 +1,4 @@
1
- import type { FavMenuItem, MenuGroupData, MenuItemDataCustom, MenuItemDataNormal, MicroAppWithInstanceId } from "./interfaces";
1
+ import type { FavMenuItem, MenuGroupData, MenuItemDataCustom, MenuItemDataNormal, MicroAppWithInstanceId, PlatformCategoryItem } from "./interfaces";
2
2
  export declare function fetchLaunchpadInfo(): Promise<{
3
3
  menuGroups: MenuGroupData[];
4
4
  microAppsById: Map<string, MicroAppWithInstanceId>;
@@ -9,3 +9,4 @@ export declare function favorite(item: MenuItemDataNormal): Promise<{
9
9
  instanceId?: string;
10
10
  }>;
11
11
  export declare function undoFavorite(item: FavMenuItem): Promise<void>;
12
+ export declare function fetchPlatformCategories(): Promise<PlatformCategoryItem[]>;
@@ -17,6 +17,7 @@ export interface MenuItemDataApp {
17
17
  id: string;
18
18
  instanceId: string;
19
19
  url: string;
20
+ description?: string;
20
21
  menuIcon?: Exclude<MenuIcon, LegacyAntdIcon>;
21
22
  }
22
23
  export interface MenuItemDataCustom {
@@ -25,6 +26,7 @@ export interface MenuItemDataCustom {
25
26
  id: string;
26
27
  instanceId: string;
27
28
  url: string;
29
+ description?: string;
28
30
  menuIcon?: Exclude<MenuIcon, LegacyAntdIcon>;
29
31
  }
30
32
  export interface MenuItemDataDir {
@@ -53,3 +55,10 @@ export interface FavMenuItem {
53
55
  url: string;
54
56
  menuIcon?: MenuIcon;
55
57
  }
58
+ export interface PlatformCategoryItem {
59
+ instanceId?: string;
60
+ id: string;
61
+ name: string;
62
+ icon: Exclude<MenuIcon, LegacyAntdIcon>;
63
+ items: MenuItemDataNormal[];
64
+ }
@@ -1,2 +1,3 @@
1
- import type { MenuGroupData } from "./interfaces";
1
+ import type { MenuGroupData, PlatformCategoryItem } from "./interfaces";
2
2
  export declare function search(allMenuGroups: MenuGroupData[], q: string): MenuGroupData[];
3
+ export declare function searchCategories(categories: PlatformCategoryItem[], q: string): PlatformCategoryItem[];
@@ -1,8 +1,9 @@
1
1
  /// <reference types="react" />
2
2
  import { DeferredService } from "../shared/DeferredService";
3
- import type { FavMenuItem, MenuGroupData, MenuItemDataLink, MenuItemDataNormal, StoredMenuItem } from "./interfaces";
3
+ import type { FavMenuItem, MenuGroupData, MenuItemDataLink, MenuItemDataNormal, PlatformCategoryItem, StoredMenuItem } from "./interfaces";
4
4
  export declare const deferredLaunchpadInfo: DeferredService;
5
5
  export declare const deferredFavorites: DeferredService;
6
+ export declare const deferredPlatformCategories: DeferredService;
6
7
  /**
7
8
  * - 页面初始化时预加载 launchpad 信息。
8
9
  * - 每次打开 launchpad 都发起请求,但该请求的数据只在下次打开 launchpad 时使用。
@@ -16,10 +17,12 @@ export declare function useLaunchpadInfo(active?: boolean): {
16
17
  setQ: import("react").Dispatch<import("react").SetStateAction<string>>;
17
18
  menuGroups: MenuGroupData[];
18
19
  loadingFavorites: boolean;
20
+ loadingPlatformCategories: boolean;
19
21
  favorites: FavMenuItem[];
20
22
  recentVisits: MenuItemDataNormal[];
21
23
  pushRecentVisit: ({ type, id }: StoredMenuItem) => void;
22
24
  isStarred: (item: MenuItemDataNormal) => boolean;
23
25
  toggleStar: (item: MenuItemDataNormal | MenuItemDataLink) => void;
26
+ platformCategories: PlatformCategoryItem[];
24
27
  };
25
28
  export declare function matchFavorite(item: MenuItemDataNormal, fav: FavMenuItem): boolean;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@next-bricks/nav",
3
- "version": "0.9.7",
3
+ "version": "0.10.0",
4
4
  "homepage": "https://github.com/easyops-cn/next-bricks/tree/master/bricks/nav",
5
5
  "repository": {
6
6
  "type": "git",
@@ -34,6 +34,7 @@
34
34
  "postpublish": "mv package.json.bak package.json"
35
35
  },
36
36
  "devDependencies": {
37
+ "@next-api-sdk/cmdb-sdk": "^1.1.0",
37
38
  "@next-core/build-next-bricks": "^1.19.0",
38
39
  "@next-core/test-next": "^1.0.12"
39
40
  },
@@ -42,5 +43,5 @@
42
43
  "@next-bricks/form": "*",
43
44
  "@next-bricks/icons": "*"
44
45
  },
45
- "gitHead": "ac190767d7e064fc545c66feac53908041ceb91d"
46
+ "gitHead": "ab6c0826ea2515bfa4c5f111ceeb8c53c2a97c70"
46
47
  }
@@ -1,2 +0,0 @@
1
- "use strict";(self.webpackChunk_next_bricks_nav=self.webpackChunk_next_bricks_nav||[]).push([[3556],{3132:(e,t,n)=>{n.d(t,{L:()=>c,Z:()=>i});var a=n(8657),r=n.n(a),i=r().createContext({}),c=()=>r().useContext(i)},3697:(e,t,n)=>{n.d(t,{L:()=>d,k:()=>m});var a=n(7896),r=n(8657),i=n.n(r),c=n(5178),s=n(2779),o=n.n(s),l=n(2892),u=n(3132);function m(e){var{name:t,items:n}=e;return i().createElement("li",{className:"menu-group"},i().createElement("div",{className:"menu-group-label"},t),i().createElement("ul",{className:"menu"},n.map((e=>"dir"===e.type?i().createElement(f,{key:"".concat(e.type,"-").concat(e.id),name:e.name,items:e.items}):i().createElement(p,{key:"".concat(e.type,"-").concat(e.id),item:e})))))}function p(e){var t,{item:n}=e,{loadingFavorites:s,pushRecentVisit:m,toggleStar:p,isStarred:d}=(0,u.L)(),f=(0,r.useMemo)((()=>d(n)),[d,n]),h=(0,r.useCallback)((()=>{p(n)}),[n,p]),v=(0,r.useCallback)((()=>{m(n)}),[n,m]);return i().createElement("li",{className:o()("menu-item",{starred:f,"can-star":!s})},i().createElement(l.kk,(0,a.Z)({onClick:v},"app"===n.type?{url:n.url}:{href:n.url,target:"_blank"}),i().createElement(l.V3,(0,a.Z)({className:"menu-icon",lib:"easyops",icon:"micro-app-center"},null!==(t=n.menuIcon)&&void 0!==t&&t.lib&&n.menuIcon.icon?(0,c.pick)(n.menuIcon,["lib","icon","theme","category","prefix"]):null)),i().createElement("span",{className:"menu-item-label"},n.name)),i().createElement(l.V3,{lib:"fa",prefix:f?"fas":"far",icon:"star",className:"menu-item-star",title:f?"取消收藏":"收藏",onClick:h}))}function d(e){var t,{item:n}=e,{pushRecentVisit:s,toggleStar:o}=(0,u.L)(),m=(0,r.useCallback)((()=>{"link"!==n.type&&s(n)}),[n,s]),p=(0,r.useCallback)((()=>{o(n)}),[n,o]);return i().createElement("li",{className:"sidebar-menu-item"},i().createElement(l.kk,(0,a.Z)({onClick:m},"app"===n.type?{url:n.url}:{href:n.url,target:"_blank"}),i().createElement(l.V3,(0,a.Z)({className:"sidebar-menu-icon",lib:"easyops",icon:"micro-app-center"},null!==(t=n.menuIcon)&&void 0!==t&&t.lib&&n.menuIcon.icon?(0,c.pick)(n.menuIcon,["lib","icon","theme","category","prefix"]):null)),i().createElement("span",{className:"menu-item-label"},n.name)),i().createElement(l.V3,{lib:"fa",icon:"xmark",className:"menu-item-remove",onClick:p}))}function f(e){var{name:t,items:n}=e,{searching:a}=(0,u.L)(),[c,s]=(0,r.useState)(!1),[m,d]=(0,r.useState)(!1),f=(0,r.useCallback)((()=>{a?d((e=>!e)):s((e=>!e))}),[a]);(0,r.useEffect)((()=>{d(!0)}),[a]);var h=a?m:c;return i().createElement("li",{className:"menu-item folder"},i().createElement(l.kk,{onClick:f},i().createElement(l.V3,{lib:"fa",prefix:"far",icon:"folder-open",className:"menu-icon"}),i().createElement("span",{className:"menu-item-label"},t),i().createElement(l.V3,{lib:"antd",icon:h?"up":"down",className:"menu-item-toggle"})),i().createElement("ul",{className:o()("sub-menu",{expanded:h})},n.map((e=>i().createElement(p,{key:"".concat(e.type,"-").concat(e.id),item:e})))))}},6176:(e,t,n)=>{n.d(t,{sK:()=>M,yp:()=>_,m1:()=>R});var a,r=n(3028),i=n(4795),c=n(8657),s=n(1343),o=n(27),l=n(2890),u=n(2301),m=n(2892),p=n(2106),d=n(4008),f=n(8685),h=n(5003),v=10,I=10,y=n(107);function g(){return(g=(0,i.Z)((function*(){var e=yield(0,p.u)({},{interceptorParams:{ignoreLoadingBar:!0},noAbortOnRouteChange:!0}),t=new Map;for(var n of e.storyboards){var a=n.app;a.localeName=(0,y.d)(a.locales,a.name),t.set(a.id,a)}var i=[],c=new Map;for(var s of e.desktops){var o=[];for(var l of s.items)switch(l.type){case"app":var u=t.get(l.id);u&&o.push((0,r.Z)((0,r.Z)({},l),{},{name:u.localeName,url:u.homepage,menuIcon:u.menuIcon}));break;case"custom":o.push(l),c.set(l.id,l);break;case"dir":var m=[];for(var d of l.items)if("app"===d.type){var f=t.get(d.id);f&&m.push((0,r.Z)((0,r.Z)({},d),{},{name:f.localeName,url:f.homepage,menuIcon:f.menuIcon}))}else"custom"===d.type&&(m.push(d),c.set(d.id,d));m.length>0&&o.push((0,r.Z)((0,r.Z)({},l),{},{items:m}))}o.length>0&&i.push((0,r.Z)((0,r.Z)({},s),{},{items:o}))}return{menuGroups:i,microAppsById:t,customLinksById:c}}))).apply(this,arguments)}function k(){return b.apply(this,arguments)}function b(){return(b=(0,i.Z)((function*(){return(yield(0,d.$)({page:1,pageSize:v},{interceptorParams:{ignoreLoadingBar:!0},noAbortOnRouteChange:!0})).list}))).apply(this,arguments)}function Z(){return(Z=(0,i.Z)((function*(){var e=yield k(),t=[];for(var n of e)if("microApp"===n.type){var a=n.relatedApp;a.localeName=(0,y.d)(a.locales,a.name),t.push({favoriteId:n.instanceId,type:"app",name:a.localeName,id:a.appId,url:a.homepage,instanceId:a.instanceId,menuIcon:a.menuIcon})}else if("customItem"===n.type){var r=n.relatedCustomItem;t.push({favoriteId:n.instanceId,type:"custom",name:r.name,id:r.id,url:r.url,menuIcon:r.menuIcon})}else"link"===n.type&&t.push({favoriteId:n.instanceId,type:"link",name:n.name,url:n.link,menuIcon:n.icon});return t}))).apply(this,arguments)}function C(){return(C=(0,i.Z)((function*(e){return(0,f.i)({type:"app"===e.type?"microApp":"customItem",relatedInstanceId:e.instanceId},{interceptorParams:{ignoreLoadingBar:!0}})}))).apply(this,arguments)}function E(){return(E=(0,i.Z)((function*(e){return e.favoriteId?(0,h.I)(e.favoriteId):k().then((t=>{var n,a=null===(n=t.find((t=>{var n,a;return"app"===e.type?"microApp"===t.type&&(null===(n=t.relatedApp)||void 0===n?void 0:n.appId)===e.id:"custom"===e.type&&(null===(a=t.relatedCustomItem)||void 0===a?void 0:a.id)===e.id})))||void 0===n?void 0:n.instanceId;if(a)return(0,h.I)(a);console.error("Menu item to unstar not found:",e)}))}))).apply(this,arguments)}function w(e,t){return e.id.toLowerCase().includes(t)||e.name.toLowerCase().includes(t)?e:null}function N(e,t){return e.id.toLowerCase().includes(t)||e.name.toLowerCase().includes(t)?e:null}var S="launchpad-recent-visits:".concat(null===(a=o.auth.getAuth())||void 0===a?void 0:a.org),F=new l.o(localStorage),x=[],L=new Map,B=new Map,P=!1,V=[],A=!1,_=new u.i((0,i.Z)((function*(){({menuGroups:x,microAppsById:L,customLinksById:B}=yield function(){return g.apply(this,arguments)}()),P=!0}))),M=new u.i((0,i.Z)((function*(){V=yield function(){return Z.apply(this,arguments)}(),A=!0}))),O=e=>(0,m.c0)({type:"error",message:(0,s.httpErrorToString)(e)});function R(e){var[t,n]=(0,c.useState)(x),[a,o]=(0,c.useState)(L),[l,u]=(0,c.useState)(B),[p,d]=(0,c.useState)(""),[f,h]=(0,c.useState)(!P),[y,g]=(0,c.useState)(!A),[k,b]=(0,c.useState)([]),[Z,R]=(0,c.useState)([]),[q,G]=(0,c.useState)(V);(0,c.useEffect)((()=>{e&&!f&&(n(x),o(L),u(B))}),[e,f]),(0,c.useEffect)((()=>{e&&!y&&G(V)}),[e,y]),(0,c.useEffect)((()=>{var t;e&&b(null!==(t=F.getItem(S))&&void 0!==t?t:[])}),[e]),(0,c.useEffect)((()=>{if(e){var t=function(){var e=(0,i.Z)((function*(){try{yield _.fetch(),h(!1)}catch(e){(0,s.handleHttpError)(e)}}));return function(){return e.apply(this,arguments)}}();t()}}),[e]),(0,c.useEffect)((()=>{if(e){var t=function(){var e=(0,i.Z)((function*(){try{yield M.fetch(),g(!1)}catch(e){g(!1),O(e)}}));return function(){return e.apply(this,arguments)}}();t()}}),[e]),(0,c.useEffect)((()=>{if(!f){var e=k.map((e=>{if("app"===e.type){var t=a.get(e.id);return t?{type:"app",name:t.localeName,id:t.id,url:t.homepage,instanceId:t.instanceId,menuIcon:t.menuIcon}:null}return l.get(e.id)})).filter(Boolean);R(e)}}),[l,f,a,k]);var j=(0,c.useCallback)((e=>{var t,{type:n,id:a}=e,r=null!==(t=F.getItem(S))&&void 0!==t?t:[],i=r.findIndex((e=>e.type===n&&e.id===a));i>-1&&r.splice(i,1),r.unshift({type:n,id:a}),r.length>I&&r.pop(),F.setItem(S,r)}),[]),J=(0,c.useCallback)((e=>q.some((t=>T(e,t)))),[q]),z=(0,c.useCallback)((e=>{var t,n=q.findIndex((t=>"link"===e.type?t.favoriteId===e.favoriteId:T(e,t)));if(n>-1){var a=q[n];t=q.slice(0,n).concat(q.slice(n+1)),function(e){return E.apply(this,arguments)}(a).catch(O)}else{if(q.length>=v)return void(0,m.vC)({type:"warn",title:"收藏数量已达上限",content:"当前收藏链接数量已达上限(".concat(v,"个),请删除部分收藏后再添加。")});var i=(0,r.Z)({},e);t=q.concat(i),function(e){return C.apply(this,arguments)}(e).then((e=>{e&&(i.favoriteId=e.instanceId)}),O)}G(t),V=t}),[q]),H=(0,c.useMemo)((()=>function(e,t){if(!t)return e;var n=t.toLowerCase();return e.map((e=>(0,r.Z)((0,r.Z)({},e),{},{items:e.items.map((e=>{switch(e.type){case"app":return w(e,n);case"custom":return N(e,n);case"dir":var t=e.items.map((e=>"app"===e.type?w(e,n):"custom"===e.type?N(e,n):null)).filter(Boolean);return t.length>0?(0,r.Z)((0,r.Z)({},e),{},{items:t}):null}})).filter(Boolean)}))).filter((e=>e.items.length>0))}(t,p)),[t,p]);return{loading:f,q:p,setQ:d,menuGroups:H,loadingFavorites:y,favorites:q,recentVisits:Z,pushRecentVisit:j,isStarred:J,toggleStar:z}}function T(e,t){return e.instanceId&&t.instanceId?t.instanceId===e.instanceId:t.type===e.type&&t.id===e.id}},2892:(e,t,n)=>{n.d(t,{V3:()=>i,c0:()=>o,kk:()=>c,vC:()=>s});var a=n(2354),r=n(2071),i=(0,a.wrapBrick)("eo-icon"),c=(0,a.wrapBrick)("eo-link"),s=(0,r.unwrapProvider)("basic.show-dialog"),o=(0,r.unwrapProvider)("basic.show-notification")},2301:(e,t,n)=>{n.d(t,{i:()=>i});var a=n(4795),r=n(6666);class i{constructor(e){(0,r.Z)(this,"preFetchId",null),(0,r.Z)(this,"preFetchScheduled",!1),(0,r.Z)(this,"firstFetchPromise",null),(0,r.Z)(this,"isFetching",!1),(0,r.Z)(this,"task",void 0),this.task=e}schedulePrefetch(){var e=this;if(!this.preFetchScheduled){this.preFetchScheduled=!0;var t=function(){var t=(0,a.Z)((function*(){e.preFetchId=null,e.fetch()}));return function(){return t.apply(this,arguments)}}();"function"==typeof window.requestIdleCallback?this.preFetchId=window.requestIdleCallback(t):this.preFetchId=setTimeout(t)}}fetch(e){var t;return this.preFetchId&&("function"==typeof window.cancelIdleCallback?cancelIdleCallback(this.preFetchId):clearTimeout(this.preFetchId),this.preFetchId=null),this.isFetching&&!e||(this.isFetching=!0,(t=this.task()).catch((e=>{console.error(e),this.firstFetchPromise=null})).finally((()=>{this.isFetching=!1})),this.firstFetchPromise||(this.firstFetchPromise=t),!e)?this.firstFetchPromise:t}}},107:(e,t,n)=>{n.d(t,{d:()=>r});var a=n(1965);function r(e,t){var n;if(!e)return t;var r=Object.fromEntries(Object.entries(e).filter((e=>{var[t,n]=e;return n.name})).map((e=>{var[t,n]=e;return[t,n.name]})));return null!==(n=(0,a.i18nText)(r))&&void 0!==n?n:t}},2890:(e,t,n)=>{n.d(t,{o:()=>a});class a{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=3556.4d471160.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"chunks/3556.4d471160.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/constants.ts","webpack:///./src/launchpad-button-v2/api.ts","webpack:///./src/launchpad-button-v2/search.ts","webpack:///./src/launchpad-button-v2/useLaunchpadInfo.ts","webpack:///./src/launchpad-button-v2/wrapped-bricks.ts","webpack:///./src/shared/DeferredService.ts","webpack:///./src/shared/getLocaleName.ts","webpack:///../../src/JsonStorage.ts"],"sourcesContent":["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","export const FAVORITES_LIMIT = 10;\nexport const RECENT_VISITS_LIMIT = 10;\n","import type { Storyboard } from \"@next-core/types\";\nimport { LaunchpadApi_getLaunchpadInfo } from \"@next-api-sdk/micro-app-standalone-sdk\";\nimport {\n LaunchpadApi_createCollectionV2,\n LaunchpadApi_deleteCollectionV2,\n LaunchpadApi_listCollectionV2,\n} from \"@next-api-sdk/user-service-sdk\";\nimport type {\n FavMenuItem,\n MenuGroupData,\n MenuItemData,\n MenuItemDataApp,\n MenuItemDataCustom,\n MenuItemDataDir,\n MenuItemDataNormal,\n MicroAppWithInstanceId,\n} from \"./interfaces\";\nimport { FAVORITES_LIMIT } from \"./constants\";\nimport { getAppLocaleName } from \"../shared/getLocaleName\";\n\nexport async function fetchLaunchpadInfo() {\n const launchpadInfo = await LaunchpadApi_getLaunchpadInfo(\n {},\n {\n interceptorParams: { ignoreLoadingBar: true },\n noAbortOnRouteChange: true,\n }\n );\n\n const microAppsById = new Map<string, MicroAppWithInstanceId>();\n for (const storyboard of launchpadInfo.storyboards as Storyboard[]) {\n const app = storyboard.app as unknown as MicroAppWithInstanceId;\n app.localeName = getAppLocaleName(app.locales, app.name);\n microAppsById.set(app.id, app);\n }\n\n const menuGroups: MenuGroupData[] = [];\n const customLinksById = new Map<string, MenuItemDataCustom>();\n\n for (const group of launchpadInfo.desktops as unknown as MenuGroupData[]) {\n const items: MenuItemData[] = [];\n for (const item of group.items) {\n switch (item.type) {\n case \"app\": {\n const app = microAppsById.get(item.id);\n if (app) {\n items.push({\n ...item,\n name: app.localeName,\n url: app.homepage,\n menuIcon: app.menuIcon,\n } as MenuItemDataApp);\n }\n break;\n }\n case \"custom\":\n items.push(item);\n customLinksById.set(item.id, item);\n break;\n case \"dir\": {\n const subItems: MenuItemDataNormal[] = [];\n for (const subItem of item.items) {\n if (subItem.type === \"app\") {\n const app = microAppsById.get(subItem.id);\n if (app) {\n subItems.push({\n ...subItem,\n name: app.localeName,\n url: app.homepage,\n menuIcon: app.menuIcon,\n } as MenuItemDataApp);\n }\n } else if (subItem.type === \"custom\") {\n subItems.push(subItem as MenuItemDataCustom);\n customLinksById.set(subItem.id, subItem);\n }\n }\n if (subItems.length > 0) {\n items.push({\n ...item,\n items: subItems,\n } as MenuItemDataDir);\n }\n break;\n }\n }\n }\n if (items.length > 0) {\n menuGroups.push({ ...group, items });\n }\n }\n\n return { menuGroups, microAppsById, customLinksById };\n}\n\nasync function fetchRawFavorites() {\n return (\n await LaunchpadApi_listCollectionV2(\n { page: 1, pageSize: FAVORITES_LIMIT },\n {\n interceptorParams: { ignoreLoadingBar: true },\n noAbortOnRouteChange: true,\n }\n )\n ).list;\n}\n\nexport async function fetchFavorites() {\n const list = await fetchRawFavorites();\n const stored: FavMenuItem[] = [];\n for (const fav of list) {\n if (fav.type === \"microApp\") {\n const app = fav.relatedApp as Omit<MicroAppWithInstanceId, \"id\"> & {\n appId: string;\n };\n app.localeName = getAppLocaleName(app.locales, app.name);\n stored.push({\n favoriteId: fav.instanceId,\n type: \"app\",\n name: app.localeName,\n id: app.appId,\n url: app.homepage,\n instanceId: app.instanceId,\n menuIcon: app.menuIcon,\n } as FavMenuItem);\n } else if (fav.type === \"customItem\") {\n const customItem = fav.relatedCustomItem!;\n stored.push({\n favoriteId: fav.instanceId,\n type: \"custom\",\n name: customItem.name,\n id: customItem.id,\n url: customItem.url,\n menuIcon: customItem.menuIcon,\n } as FavMenuItem);\n } else if (fav.type === \"link\") {\n stored.push({\n favoriteId: fav.instanceId,\n type: \"link\",\n name: fav.name,\n // id: fav.id,\n url: fav.link,\n menuIcon: fav.icon,\n } as FavMenuItem);\n }\n }\n return stored;\n}\n\nexport async function favorite(\n item: MenuItemDataNormal\n): Promise<{ instanceId?: string }> {\n return LaunchpadApi_createCollectionV2(\n {\n type: item.type === \"app\" ? \"microApp\" : \"customItem\",\n relatedInstanceId: item.instanceId,\n },\n {\n interceptorParams: { ignoreLoadingBar: true },\n }\n );\n}\n\nexport async function undoFavorite(item: FavMenuItem) {\n if (item.favoriteId) {\n return LaunchpadApi_deleteCollectionV2(item.favoriteId);\n }\n\n return fetchRawFavorites().then((list) => {\n const foundId = list.find((fav) =>\n item.type === \"app\"\n ? fav.type === \"microApp\" && fav.relatedApp?.appId === item.id\n : item.type === \"custom\" && fav.relatedCustomItem?.id === item.id\n )?.instanceId;\n\n if (foundId) {\n return LaunchpadApi_deleteCollectionV2(foundId);\n }\n // eslint-disable-next-line no-console\n console.error(\"Menu item to unstar not found:\", item);\n });\n}\n","import type {\n MenuGroupData,\n MenuItemData,\n MenuItemDataApp,\n MenuItemDataCustom,\n} from \"./interfaces\";\n\nexport function search(\n allMenuGroups: MenuGroupData[],\n q: string\n): MenuGroupData[] {\n if (!q) {\n return allMenuGroups;\n }\n const lowerQ = q.toLowerCase();\n const groups: MenuGroupData[] = allMenuGroups\n .map((group) => ({\n ...group,\n items: group.items\n .map((item) => {\n switch (item.type) {\n case \"app\":\n return matchMenuItemApp(item, lowerQ);\n case \"custom\":\n return matchMenuItemCustom(item, lowerQ);\n case \"dir\": {\n const filteredSubItems = item.items\n .map((sub) =>\n sub.type === \"app\"\n ? matchMenuItemApp(sub, lowerQ)\n : sub.type === \"custom\"\n ? matchMenuItemCustom(sub, lowerQ)\n : null\n )\n .filter(Boolean) as MenuItemData[];\n return filteredSubItems.length > 0\n ? {\n ...item,\n items: filteredSubItems,\n }\n : null;\n }\n }\n })\n // Ignore not matched items\n .filter(Boolean) as MenuItemData[],\n }))\n // ignore empty desktops\n .filter((group) => group.items.length > 0);\n return groups;\n}\n\nfunction matchMenuItemApp(item: MenuItemDataApp, lowerQ: string) {\n return item.id.toLowerCase().includes(lowerQ) ||\n item.name.toLowerCase().includes(lowerQ)\n ? item\n : null;\n}\n\nfunction matchMenuItemCustom(item: MenuItemDataCustom, lowerQ: string) {\n return item.id.toLowerCase().includes(lowerQ) ||\n item.name.toLowerCase().includes(lowerQ)\n ? item\n : null;\n}\n","import { useCallback, useEffect, useMemo, useState } from \"react\";\nimport { handleHttpError, httpErrorToString } from \"@next-core/runtime\";\nimport { auth } from \"@next-core/easyops-runtime\";\nimport { JsonStorage } from \"@next-shared/general/JsonStorage\";\nimport { DeferredService } from \"../shared/DeferredService\";\nimport { showDialog, showNotification } from \"./wrapped-bricks\";\nimport type {\n FavMenuItem,\n MenuGroupData,\n MenuItemDataCustom,\n MenuItemDataLink,\n MenuItemDataNormal,\n MicroAppWithInstanceId,\n StoredMenuItem,\n} from \"./interfaces\";\nimport {\n favorite,\n fetchFavorites,\n fetchLaunchpadInfo,\n undoFavorite,\n} from \"./api\";\nimport { search } from \"./search\";\nimport { FAVORITES_LIMIT, RECENT_VISITS_LIMIT } from \"./constants\";\n\nconst storageKey = `launchpad-recent-visits:${(\n auth.getAuth() as Record<string, string>\n)?.org}`;\nconst storage = new JsonStorage(localStorage);\n\nlet candidateDesktops: MenuGroupData[] = [];\nlet candidateMicroAppsById = new Map<string, MicroAppWithInstanceId>();\nlet candidateCustomLinksById = new Map<string, MenuItemDataCustom>();\nlet preLoaded = false;\n\nlet candidateFavorites: FavMenuItem[] = [];\nlet preLoadedFavorites = false;\n\nexport const deferredLaunchpadInfo = new DeferredService(async () => {\n ({\n menuGroups: candidateDesktops,\n microAppsById: candidateMicroAppsById,\n customLinksById: candidateCustomLinksById,\n } = await fetchLaunchpadInfo());\n preLoaded = true;\n});\n\nexport const deferredFavorites = new DeferredService(async () => {\n candidateFavorites = await fetchFavorites();\n preLoadedFavorites = true;\n});\n\nconst showErrorAsNotification = (error: unknown) =>\n showNotification({\n type: \"error\",\n message: httpErrorToString(error),\n });\n\n/**\n * - 页面初始化时预加载 launchpad 信息。\n * - 每次打开 launchpad 都发起请求,但该请求的数据只在下次打开 launchpad 时使用。\n * 即每次打开 launchpad 使用的都是上一次获取的数据,以便达到两个效果:\n * - 每次打开 launchpad 都能立即显示菜单列表;\n * - 同时当用户在 launchpad 上操作时,不会出现数据突然更新(新数据请求完成)。\n */\nexport function useLaunchpadInfo(active?: boolean) {\n const [desktops, setDesktops] = useState(candidateDesktops);\n const [microAppsById, setMicroAppsById] = useState(candidateMicroAppsById);\n const [customLinksById, setCustomLinksById] = useState(\n candidateCustomLinksById\n );\n\n const [q, setQ] = useState(\"\");\n\n const [loading, setLoading] = useState(!preLoaded);\n const [loadingFavorites, setLoadingFavorites] = useState(!preLoadedFavorites);\n\n const [storedRecentVisits, setStoredRecentVisits] = useState<\n StoredMenuItem[]\n >([]);\n\n const [recentVisits, setRecentVisits] = useState<MenuItemDataNormal[]>([]);\n\n const [favorites, setFavorites] = useState<FavMenuItem[]>(candidateFavorites);\n\n useEffect(() => {\n // 仅当首次加载完成或重新打开 launchpad 时更新一次数据。\n if (active && !loading) {\n setDesktops(candidateDesktops);\n setMicroAppsById(candidateMicroAppsById);\n setCustomLinksById(candidateCustomLinksById);\n }\n }, [active, loading]);\n\n useEffect(() => {\n if (active && !loadingFavorites) {\n setFavorites(candidateFavorites);\n }\n }, [active, loadingFavorites]);\n\n useEffect(() => {\n if (active) {\n setStoredRecentVisits(storage.getItem(storageKey) ?? []);\n }\n }, [active]);\n\n useEffect(() => {\n if (active) {\n const startFetchLaunchpadInfo = async (): Promise<void> => {\n try {\n await deferredLaunchpadInfo.fetch();\n setLoading(false);\n } catch (error) {\n handleHttpError(error);\n }\n };\n startFetchLaunchpadInfo();\n }\n }, [active]);\n\n useEffect(() => {\n if (active) {\n const startFetchFavorites = async (): Promise<void> => {\n try {\n await deferredFavorites.fetch();\n setLoadingFavorites(false);\n } catch (error) {\n setLoadingFavorites(false);\n showErrorAsNotification(error);\n }\n };\n startFetchFavorites();\n }\n }, [active]);\n\n useEffect(() => {\n if (loading) {\n return;\n }\n const visits = storedRecentVisits\n .map((item) => {\n // Remembered recent visits maybe no longer existed in launchpad\n if (item.type === \"app\") {\n const app = microAppsById.get(item.id);\n return app\n ? {\n type: \"app\",\n name: app.localeName,\n id: app.id,\n url: app.homepage,\n instanceId: app.instanceId,\n menuIcon: app.menuIcon,\n }\n : null;\n }\n return customLinksById.get(item.id);\n })\n .filter(Boolean) as MenuItemDataNormal[];\n setRecentVisits(visits);\n }, [customLinksById, loading, microAppsById, storedRecentVisits]);\n\n const pushRecentVisit = useCallback(({ type, id }: StoredMenuItem) => {\n const visits: StoredMenuItem[] = storage.getItem(storageKey) ?? [];\n const index = visits.findIndex(\n (visit) => visit.type === type && visit.id === id\n );\n if (index > -1) {\n visits.splice(index, 1);\n }\n visits.unshift({ type, id });\n if (visits.length > RECENT_VISITS_LIMIT) {\n visits.pop();\n }\n // setStoredRecentVisits(visits);\n storage.setItem(storageKey, visits);\n }, []);\n\n const isStarred = useCallback(\n (item: MenuItemDataNormal) =>\n favorites.some((fav) => matchFavorite(item, fav)),\n [favorites]\n );\n\n const toggleStar = useCallback(\n (item: MenuItemDataNormal | MenuItemDataLink) => {\n const index = favorites.findIndex((fav) =>\n item.type === \"link\"\n ? fav.favoriteId === item.favoriteId\n : matchFavorite(item, fav)\n );\n let newFavorites: FavMenuItem[];\n if (index > -1) {\n const removed = favorites[index];\n newFavorites = favorites\n .slice(0, index)\n .concat(favorites.slice(index + 1));\n undoFavorite(removed).catch(showErrorAsNotification);\n } else {\n if (favorites.length >= FAVORITES_LIMIT) {\n showDialog({\n type: \"warn\",\n title: \"收藏数量已达上限\",\n content: `当前收藏链接数量已达上限(${FAVORITES_LIMIT}个),请删除部分收藏后再添加。`,\n });\n return;\n }\n // Assert: no link item\n const fav: FavMenuItem = { ...(item as MenuItemDataNormal) };\n newFavorites = favorites.concat(fav);\n favorite(item as MenuItemDataNormal).then((result) => {\n if (result) {\n fav.favoriteId = result.instanceId;\n }\n }, showErrorAsNotification);\n }\n setFavorites(newFavorites);\n candidateFavorites = newFavorites;\n },\n [favorites]\n );\n\n const menuGroups: MenuGroupData[] = useMemo(\n () => search(desktops, q),\n [desktops, q]\n );\n\n return {\n loading,\n q,\n setQ,\n menuGroups,\n loadingFavorites,\n favorites,\n recentVisits,\n pushRecentVisit,\n isStarred,\n toggleStar,\n };\n}\n\nexport function matchFavorite(item: MenuItemDataNormal, fav: FavMenuItem) {\n return item.instanceId && fav.instanceId\n ? fav.instanceId === item.instanceId\n : fav.type === item.type && fav.id === item.id;\n}\n","import { wrapBrick } from \"@next-core/react-element\";\nimport { unwrapProvider } from \"@next-core/utils/general\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\nimport type { Link, LinkProps } from \"@next-bricks/basic/link\";\nimport type { showDialog as _showDialog } from \"@next-bricks/basic/data-providers/show-dialog/show-dialog\";\nimport type { showNotification as _showNotification } from \"@next-bricks/basic/data-providers/show-notification/show-notification\";\n\nexport const WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\nexport const WrappedLink = wrapBrick<Link, LinkProps>(\"eo-link\");\n\n// Use `unwrapProvider` to get the original function of a provider\nexport const showDialog =\n unwrapProvider<typeof _showDialog>(\"basic.show-dialog\");\n\nexport const showNotification = unwrapProvider<typeof _showNotification>(\n \"basic.show-notification\"\n);\n","export class DeferredService {\n private preFetchId: number | null = null;\n private preFetchScheduled = false;\n private firstFetchPromise: Promise<unknown> | null = null;\n private isFetching = false;\n private readonly task: () => Promise<unknown>;\n\n constructor(task: () => Promise<unknown>) {\n this.task = task;\n }\n\n schedulePrefetch(): void {\n if (!this.preFetchScheduled) {\n this.preFetchScheduled = true;\n const preFetchLaunchpadInfo = async (): Promise<void> => {\n this.preFetchId = null;\n this.fetch();\n };\n // istanbul ignore if\n if (typeof window.requestIdleCallback === \"function\") {\n this.preFetchId = window.requestIdleCallback(preFetchLaunchpadInfo);\n } else {\n this.preFetchId = setTimeout(\n preFetchLaunchpadInfo\n ) as unknown as number;\n }\n }\n }\n\n fetch(eager?: boolean): Promise<unknown> {\n if (this.preFetchId) {\n // istanbul ignore if\n if (typeof window.cancelIdleCallback === \"function\") {\n cancelIdleCallback(this.preFetchId);\n } else {\n clearTimeout(this.preFetchId);\n }\n this.preFetchId = null;\n }\n\n let promise: Promise<unknown>;\n if (!this.isFetching || eager) {\n this.isFetching = true;\n promise = this.task();\n promise\n .catch((error) => {\n // eslint-disable-next-line no-console\n console.error(error);\n this.firstFetchPromise = null;\n })\n .finally(() => {\n this.isFetching = false;\n });\n if (!this.firstFetchPromise) {\n this.firstFetchPromise = promise;\n }\n if (eager) {\n return promise;\n }\n }\n return this.firstFetchPromise!;\n }\n}\n","import { i18nText } from \"@next-core/i18n\";\nimport type { AppLocales, I18nData } from \"@next-core/types\";\n\nexport function getAppLocaleName(\n locales: AppLocales | undefined,\n name: string\n) {\n if (!locales) {\n return name;\n }\n const i18nData = Object.fromEntries(\n Object.entries(locales)\n .filter(([lang, resources]) => resources.name)\n .map(([lang, resources]) => [lang, resources.name])\n ) as I18nData;\n return i18nText(i18nData) ?? name;\n}\n","export class JsonStorage {\n constructor(\n private storage: Storage,\n private prefix: string = \"brick-next-\"\n ) {}\n\n setItem<T = any>(name: string, value: T): void {\n this.storage.setItem(this.prefix + name, JSON.stringify(value));\n }\n\n getItem<T = any>(name: string): T {\n return JSON.parse(this.storage.getItem(this.prefix + name) as string) as T;\n }\n\n removeItem(name: string): void {\n return this.storage.removeItem(this.prefix + name);\n }\n\n clear(): void {\n return this.storage.clear();\n }\n}\n"],"names":["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","FAVORITES_LIMIT","RECENT_VISITS_LIMIT","_fetchLaunchpadInfo","_asyncToGenerator","launchpadInfo","LaunchpadApi_getLaunchpadInfo","interceptorParams","ignoreLoadingBar","noAbortOnRouteChange","microAppsById","Map","storyboard","storyboards","app","localeName","getAppLocaleName","locales","set","menuGroups","customLinksById","group","desktops","get","push","_objectSpread","homepage","subItems","subItem","length","apply","arguments","fetchRawFavorites","_fetchRawFavorites","LaunchpadApi_listCollectionV2","page","pageSize","list","_fetchFavorites","stored","fav","relatedApp","favoriteId","instanceId","appId","customItem","relatedCustomItem","link","_favorite","LaunchpadApi_createCollectionV2","relatedInstanceId","_undoFavorite","LaunchpadApi_deleteCollectionV2","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","useLaunchpadInfo","active","setDesktops","setMicroAppsById","setCustomLinksById","q","setQ","loading","setLoading","setLoadingFavorites","storedRecentVisits","setStoredRecentVisits","recentVisits","setRecentVisits","favorites","setFavorites","_storage$getItem","getItem","startFetchLaunchpadInfo","fetch","handleHttpError","startFetchFavorites","visits","filter","Boolean","_ref5","_storage$getItem2","index","findIndex","visit","splice","unshift","pop","setItem","some","matchFavorite","newFavorites","removed","slice","_x2","undoFavorite","catch","showDialog","content","_x","favorite","result","allMenuGroups","filteredSubItems","sub","search","wrapBrick","unwrapProvider","constructor","task","_defineProperty","this","schedulePrefetch","_this","preFetchScheduled","preFetchLaunchpadInfo","preFetchId","window","requestIdleCallback","setTimeout","eager","promise","cancelIdleCallback","clearTimeout","isFetching","firstFetchPromise","finally","_i18nText","i18nData","Object","fromEntries","entries","lang","resources","i18nText","undefined","value","JSON","stringify","parse","removeItem","clear"],"sourceRoot":""}
@@ -1,3 +0,0 @@
1
- /*! For license information please see 5951.a9b5d4f4.js.LICENSE.txt */
2
- "use strict";(self.webpackChunk_next_bricks_nav=self.webpackChunk_next_bricks_nav||[]).push([[5951],{7617:(e,t,n)=>{n.r(t);var a,i,r,l,o,s,c,u,m,d=n(4795),p=n(3395),h=n(381),v=n(687),g=n(2604),b=n(7896),x=n(8657),f=n.n(x),w=n(2462),y=n(1343),k=n(2354),E=n(9800),Z=n(3808),N=n(7993),C=(n(3318),n(2779)),I=n.n(C),S=n(1880),A=n(641),T=n(2598),z=n(8462),M=n(8101),{defineElement:R,property:B}=(n(441),(0,w.createDecorators)()),_=(0,k.wrapBrick)("eo-menu-item"),D=(0,k.wrapBrick)("eo-popover",{onVisibleChange:"visible.change",beforeVisibleChange:"before.visible.change"});function W(e){var{item:t}=e;return(0,Z.cl)(t,e.topData)?f().createElement(L,(0,b.Z)({},e,{item:t})):(0,Z.ty)(t)?f().createElement(O,(0,b.Z)({},e,{item:t})):f().createElement(F,(0,b.Z)({},e,{item:t}))}function F(e){var{item:t,index:n,hidden:a,showTooltip:i,selectedKey:r=[]}=e;return f().createElement(_,{"data-index":n,className:a?"overflow-menu-item":"",key:t.key,title:i?t.text:"",active:!!t.key&&r.includes(t.key)},(0,Z.nC)(t,{width:"100%"}))}var K,V=e=>{var t,n=null!==(t=m)&&void 0!==t?t:m=window.innerWidth-document.body.clientWidth;document.body.style.paddingRight=e.detail?n+"px":"",document.body.style.overflow=e.detail?"hidden":"",document.body.style.touchAction=e.detail?"none":""};function L(e){var t,{index:n,hidden:a,item:i,topData:r,showTooltip:l,selectedKey:o=[],overflow:s}=e;return(null===(t=i.items)||void 0===t?void 0:t.length)>0?f().createElement(D,{"data-index":n,className:I()("popover",{subprime:!r,"overflow-menu-item":a}),trigger:"hover",placement:r?"bottom-start":"right-start",distance:0,anchorDisplay:"block",strategy:"fixed"},f().createElement(_,{className:"sub-menu-item-label",key:i.key,slot:"anchor",title:l?i.title:""},(0,Z.cx)(i,!r)),f().createElement("div",{className:I()("sub-menu-wrapper",{"overflow-menu-wrapper":s})},i.items.map((e=>f().createElement(f().Fragment,{key:e.key},f().createElement(W,{item:e,selectedKey:o,showTooltip:l})))))):null}function O(e){var t,{item:n,showTooltip:a,selectedKey:i=[]}=e;return(null===(t=n.items)||void 0===t?void 0:t.length)>0?"category"===n.childLayout?f().createElement(G,{item:n,selectedKey:i,showTooltip:a,placement:"right-start",anchorDisplay:"block"}):"siteMap"===n.childLayout?f().createElement(X,{item:n,selectedKey:i,showTooltip:a,placement:"right-start",anchorDisplay:"block",topData:!1}):f().createElement(f().Fragment,null,f().createElement("div",{className:"group-label"},n.title),f().createElement("div",{className:"group-wrapper"},n.items.map((e=>f().createElement(f().Fragment,{key:e.key},f().createElement(W,{item:e,showTooltip:a,selectedKey:i})))))):null}function G(e){var t,{index:n,hidden:a,item:i,selectedKey:r=[],showTooltip:l,placement:o="bottom-start",anchorDisplay:s}=e;return(null===(t=i.items)||void 0===t?void 0:t.length)>0?f().createElement(D,{"data-index":n,className:I()("three-level-menu-popover","popover",{"overflow-menu-item":a}),trigger:"hover",placement:o,distance:0,key:i.key,strategy:"fixed",anchorDisplay:s,beforeVisibleChange:V},f().createElement(_,{className:"sub-menu-item-label",key:i.key,slot:"anchor",title:l?i.title:""},(0,Z.cx)(i)),f().createElement("div",{className:"sub-menu-wrapper"},f().createElement(S.m,{menuItem:i,selectedKey:r}))):null}function X(e){var t,{index:n,hidden:a,item:i,selectedKey:r=[],showTooltip:l,placement:o="bottom-start",anchorDisplay:s,topData:c}=e,[u,m]=(0,x.useState)();return(null===(t=i.items)||void 0===t?void 0:t.length)>0?f().createElement(D,{"data-index":n,className:I()("popover",{"overflow-menu-item":a}),trigger:"hover",placement:o,distance:0,key:i.key,strategy:"fixed",anchorDisplay:s,beforeVisibleChange:e=>{m(e.detail),V(e)}},f().createElement(_,{className:"sub-menu-item-label",key:i.key,slot:"anchor",title:l?i.title:""},(0,Z.cx)(i)),f().createElement("div",{className:I()("sub-menu-sit-map-wrapper",{"in-group-site-map":!c}),onClick:e=>e.stopPropagation()},f().createElement(A.hX,{menuGroup:i,selectedKey:r,visible:u}))):null}i=R("eo-nav-menu",{styleTexts:[T.Z,z.Z,M.Z,E.Z]}),r=B({attribute:!1}),o=B({type:Boolean});var P=new WeakMap,U=new WeakMap;class j extends k.ReactNextElement{constructor(){super(...arguments),(0,p.Z)(this,P,{writable:!0,value:(c(this),l(this))}),(0,p.Z)(this,U,{writable:!0,value:s(this)})}get menu(){return(0,v.Z)(this,P)}set menu(e){(0,h.Z)(this,P,e)}get showTooltip(){return(0,v.Z)(this,U)}set showTooltip(e){(0,h.Z)(this,U,e)}render(){return f().createElement(q,{menu:this.menu,showTooltip:this.showTooltip})}}function q(e){var t,n,{menu:a,showTooltip:i}=e,r=(0,y.getHistory)(),l=(0,x.useRef)(null),[o,s]=(0,x.useState)(r.location),[c,u]=(0,x.useState)(Number.MAX_SAFE_INTEGER),{pathname:m,search:p}=o,[h,v]=(0,x.useState)([]),g=function(){var e=(0,d.Z)((function*(){var e,{selectedKeys:t}=(0,N.OZ)(null!==(e=null==a?void 0:a.menuItems)&&void 0!==e?e:[],m,p,"");v(t)}));return function(){return e.apply(this,arguments)}}();(0,x.useEffect)((()=>{var e=r.listen((e=>{s(e)}));return g(),e}),[]),(0,x.useEffect)((()=>{if(l.current){var e=new ResizeObserver((()=>{if(l.current){var e,{width:t}=null!==(e=l.current.getClientRects()[0])&&void 0!==e?e:{},n=l.current.childNodes;if(n.length&&t){for(var a=t,i=n.length,r=0;r<n.length;r++){var{width:o,height:s}=n[r].getClientRects()[0];if(!s&&a-40<0){i=r-1;break}if((a=a-o-(r>0?8:0))<0){i=r;break}}u(i<0?0:i)}}}));return e.observe(l.current),()=>{e.disconnect()}}}),[]);var b=(0,x.useMemo)((()=>({type:"subMenu",title:"···",items:null==a?void 0:a.menuItems.slice(c,a.menuItems.length)})),[null==a?void 0:a.menuItems,c]);return f().createElement("div",{ref:l,className:"nav-menu-wrapper"},null==a?void 0:a.menuItems.map(((e,t)=>{var n,a=c<=t;return f().createElement(f().Fragment,{key:e.key},(0,Z.cl)(e,!0)&&"category"===e.childLayout&&null!==(n=e.items)&&void 0!==n&&n.length?f().createElement(G,{index:t,hidden:a,item:e,showTooltip:i,selectedKey:h}):"group"===e.type&&"siteMap"===e.childLayout?f().createElement(X,{index:t,hidden:a,item:e,showTooltip:i,selectedKey:h,topData:!0}):f().createElement(W,{index:t,hidden:a,item:e,showTooltip:i,selectedKey:h,topData:!0}))})),f().createElement(W,{hidden:c>(null!==(t=null==a||null===(n=a.menuItems)||void 0===n?void 0:n.length)&&void 0!==t?t:0),item:b,showTooltip:i,selectedKey:h,overflow:!0,topData:!0}))}u=j,({e:[l,s,c],c:[K,a]}=(0,g.Z)(u,[[r,1,"menu"],[o,1,"showTooltip"]],[i],0,void 0,k.ReactNextElement)),a();var H,Y,Q,$=n(8470),J=n(5487),ee=n(4497),te=n(2152);(0,J.initializeReactI18n)(ee.NS,ee.k);var ne,{defineElement:ae}=(0,w.createDecorators)();Y=ae("eo-launchpad-button",{styleTexts:[te.Z]});class ie extends k.ReactNextElement{render(){return f().createElement($.L,null)}}Q=ie,[ne,H]=(0,g.Z)(Q,[],[Y],0,void 0,k.ReactNextElement).c,H();var re=n(2071),le=n(7370),oe=n(5366),se=n(6976),ce=n(2892),ue=n(6176),me=n(3697),de=n(3132);function pe(e){var{active:t}=e,n=(0,x.useRef)(null),a=(0,x.useCallback)((()=>{var e;null===(e=n.current)||void 0===e||e.focus()}),[]),{loading:i,q:r,setQ:l,menuGroups:o,favorites:s,loadingFavorites:c,recentVisits:u,pushRecentVisit:m,toggleStar:d,isStarred:p}=(0,ue.m1)(t),h=!!r,v=(0,x.useCallback)((e=>{l(e.target.value)}),[l]),g=(0,x.useCallback)((()=>{l("")}),[l]);return(0,x.useEffect)((()=>{var e;t&&(null===(e=n.current)||void 0===e||e.focus())}),[t]),f().createElement("div",{className:I()("launchpad",{active:t})},f().createElement(de.Z.Provider,{value:{searching:h,loadingFavorites:c,pushRecentVisit:m,toggleStar:d,isStarred:p}},f().createElement("div",{className:"sidebar"},f().createElement("div",{className:"quick-nav"},f().createElement("div",{className:"quick-nav-label"},"快捷访问"),f().createElement("ul",{className:"sidebar-menu"},s.map(((e,t)=>f().createElement(me.L,{key:t,item:e})))))),f().createElement("div",{className:I()("content",{loading:i})},f().createElement(he,{loading:i}),f().createElement("div",{className:"search-box",onClick:a},f().createElement(ce.V3,{lib:"fa",icon:"magnifying-glass",className:"search-icon"}),f().createElement("input",{ref:n,placeholder:"通过关键字搜索",value:r,onChange:v,className:"search-input"}),f().createElement(ce.V3,{lib:"antd",theme:"filled",icon:"close-circle",className:I()("search-clear",{searching:h}),onClick:g})),f().createElement("div",{className:I()({empty:0===u.length})},f().createElement("div",{className:"recent-visits-label"},"最近访问"),f().createElement("ul",{className:"recent-visits"},u.map(((e,t)=>f().createElement("li",{key:t},f().createElement(ce.kk,(0,b.Z)({onClick:()=>m(e)},"app"===e.type?{url:e.url}:{href:e.url,target:"_blank"}),f().createElement("span",null,e.name))))))),f().createElement("ul",{className:"menu-groups"},o.map((e=>f().createElement(me.k,{key:e.name,name:e.name,items:e.items})))))))}function he(e){var{loading:t}=e;return t&&f().createElement("div",{className:"spinner"},f().createElement(ce.V3,{lib:"fa",icon:"spinner",spinning:!0}))}var ve=n(6062),ge=n.n(ve),be=n(4036),xe=n.n(be),fe=n(6793),we=n.n(fe),ye=n(7892),ke=n.n(ye),Ee=n(1173),Ze=n.n(Ee),Ne=n(2464),Ce=n.n(Ne),Ie=n(7756),Se={};Se.styleTagTransform=Ce(),Se.setAttributes=ke(),Se.insert=we().bind(null,"head"),Se.domAPI=xe(),Se.insertStyleElement=Ze(),ge()(Ie.Z,Se),Ie.Z&&Ie.Z.locals&&Ie.Z.locals;var Ae,Te,ze,Me,{defineElement:Re}=(0,w.createDecorators)(),Be=(0,re.unwrapProvider)("basic.lock-body-scroll");Te=Re("eo-launchpad-button-v2",{styleTexts:[se.Z]});class _e extends k.ReactNextElement{disconnectedCallback(){super.disconnectedCallback(),Be(this,!1)}render(){return f().createElement(De,{host:this})}}function De(e){var{host:t}=e,[n,a]=(0,x.useState)(!1),[i,r]=(0,x.useState)(!1),l=()=>{r((e=>!e))};return(0,x.useEffect)((()=>(0,y.getHistory)().listen((()=>{r(!1)}))),[]),(0,x.useEffect)((()=>{i&&!n&&a(!0)}),[i,n]),(0,x.useEffect)((()=>(le.Z.filter=function(){return!0},(0,le.Z)("alt+l",(e=>{e.preventDefault(),r((e=>!e))})),(0,le.Z)("esc",(()=>{r(!1)})),()=>{le.Z.unbind("alt+l"),le.Z.unbind("esc")})),[]),(0,x.useEffect)((()=>{Be(t,i)}),[i,t]),(0,x.useEffect)((()=>{ue.yp.schedulePrefetch(),ue.sK.schedulePrefetch()}),[]),f().createElement(f().Fragment,null,f().createElement("a",{role:"button",className:I()("launchpad-button",{active:i}),onClick:l},f().createElement(oe.Z,null)),f().createElement("div",{className:I()("mask",{active:i}),onClick:l}),n&&f().createElement(pe,{active:i}))}ze=_e,[Me,Ae]=(0,g.Z)(ze,[],[Te],0,void 0,k.ReactNextElement).c,Ae();var We=n(1815),Fe=n(5178),Ke=(0,k.wrapBrick)("eo-icon"),Ve=(0,k.wrapBrick)("eo-link"),Le=(0,k.wrapBrick)("eo-dropdown-actions",{onActionClick:"action.click",onVisibleChange:"visible.change"}),Oe=((0,re.unwrapProvider)("basic.show-dialog"),n(107));function Ge(e){var{data:t,actions:n,onActionClick:a}=e,{name:i,items:r}=t,[l,o]=(0,x.useState)(!1),s=(0,x.useMemo)((()=>null==n?void 0:n.filter((e=>(0,y.checkIfByTransform)(e,{type:"group"})))),[n]),c=(0,x.useCallback)((e=>{null==a||a({data:t,action:e.detail})}),[t,a]);return f().createElement("li",{className:I()("menu-group",{empty:0===r.length})},f().createElement("div",{className:"menu-group-label-wrapper"},f().createElement("span",{className:"menu-group-label"},i),f().createElement(Le,{actions:s,onVisibleChange:e=>{o(e.detail)},onActionClick:c},f().createElement(Ke,{lib:"fa",icon:"gear",className:I()("menu-config",{active:l})}))),f().createElement("ul",{className:"menu"},r.map((e=>"dir"===e.type?f().createElement(Pe,{key:e.instanceId,data:e,actions:n,onActionClick:a}):f().createElement(Xe,{key:"".concat(e.type,"-").concat(e.id),data:e,actions:n,onActionClick:a})))))}function Xe(e){var t,{data:n,actions:a,onActionClick:i}=e,r=(0,x.useMemo)((()=>"app"===n.type?(0,Oe.d)(n.locales,n.name):n.name),[n]),[l,o]=(0,x.useState)(!1),s=(0,x.useMemo)((()=>null==a?void 0:a.filter((e=>(0,y.checkIfByTransform)(e,n)))),[a,n]),c=(0,x.useCallback)((e=>{null==i||i({data:n,action:e.detail})}),[n,i]);return f().createElement("li",{className:"menu-item"},f().createElement(Ve,null,f().createElement(Ke,(0,b.Z)({className:"menu-icon",lib:"easyops",icon:"micro-app-center"},null!==(t=n.menuIcon)&&void 0!==t&&t.lib&&n.menuIcon.icon?(0,Fe.pick)(n.menuIcon,["lib","icon","theme","category","prefix"]):null)),f().createElement("span",{className:"menu-item-label"},r)),f().createElement(Le,{actions:s,onVisibleChange:e=>{o(e.detail)},onActionClick:c},f().createElement(Ke,{lib:"fa",icon:"gear",className:I()("menu-config",{active:l})})))}function Pe(e){var{data:t,actions:n,onActionClick:a}=e,{name:i,items:r}=t,[l,o]=(0,x.useState)(!1),[s,c]=(0,x.useState)(!1),u=(0,x.useMemo)((()=>null==n?void 0:n.filter((e=>(0,y.checkIfByTransform)(e,{type:"dir"})))),[n]),m=(0,x.useCallback)((()=>{c((e=>!e))}),[]),d=(0,x.useCallback)((e=>{null==a||a({data:t,action:e.detail})}),[t,a]);return f().createElement("li",{className:I()("menu-item folder",{empty:0===r.length})},f().createElement("div",{className:"menu-folder-label-wrapper"},f().createElement(Ve,{onClick:m},f().createElement(Ke,{lib:"fa",prefix:"far",icon:"folder-open",className:"menu-icon"}),f().createElement("span",{className:"menu-item-label"},i),f().createElement(Ke,{lib:"antd",icon:s?"up":"down",className:"menu-item-toggle"})),f().createElement(Le,{actions:u,onVisibleChange:e=>{o(e.detail)},onActionClick:d},f().createElement(Ke,{lib:"fa",icon:"gear",className:I()("menu-config",{active:l})}))),f().createElement("ul",{className:I()("sub-menu",{expanded:s})},r.map((e=>f().createElement(Xe,{key:e.instanceId,data:e,actions:n,onActionClick:a})))))}var Ue,je,qe,He,Ye,Qe,$e,Je,et,tt,nt,at,it,rt=n(9534),{defineElement:lt,property:ot,event:st}=(0,w.createDecorators)();je=lt("nav.launchpad-config",{styleTexts:[rt.Z]}),qe=ot({attribute:!1}),Ye=ot({attribute:!1}),$e=st({type:"action.click"});var ct=new WeakMap,ut=new WeakMap,mt=new WeakMap,dt=new WeakMap,pt=new WeakMap;class ht extends k.ReactNextElement{constructor(){super(...arguments),(0,p.Z)(this,dt,{get:gt,set:vt}),(0,p.Z)(this,ct,{writable:!0,value:(nt(this),He(this))}),(0,p.Z)(this,ut,{writable:!0,value:Qe(this)}),(0,p.Z)(this,mt,{writable:!0,value:Je(this)}),(0,p.Z)(this,pt,{writable:!0,value:e=>{(0,v.Z)(this,dt).emit(e)}})}get menuGroups(){return(0,v.Z)(this,ct)}set menuGroups(e){(0,h.Z)(this,ct,e)}get actions(){return(0,v.Z)(this,ut)}set actions(e){(0,h.Z)(this,ut,e)}render(){return f().createElement(bt,{menuGroups:this.menuGroups,actions:this.actions,onActionClick:(0,v.Z)(this,pt)})}}function vt(e){tt(this,e)}function gt(){return et(this)}function bt(e){var{menuGroups:t,actions:n,onActionClick:a}=e;return f().createElement("ul",{className:"menu-groups"},null==t?void 0:t.map((e=>f().createElement(Ge,{key:e.instanceId,data:e,actions:n,onActionClick:a}))))}at=ht,({e:[He,Qe,Je,et,tt,nt],c:[it,Ue]}=(0,g.Z)(at,[[qe,1,"menuGroups"],[Ye,1,"actions"],[$e,1,"actionClickEvent",e=>(0,v.Z)(e,mt),(e,t)=>(0,h.Z)(e,mt,t)]],[je],0,(e=>pt.has((0,We.Z)(e))),k.ReactNextElement)),Ue();var xt,ft,wt,yt,kt=n(1150),Et=n(27),Zt=n(2890),Nt=n(5239),Ct=n.n(Nt),It=n(7128),St=(0,k.wrapBrick)("eo-icon"),At=(0,k.wrapBrick)("eo-link"),{defineElement:Tt}=(0,w.createDecorators)();ft=Tt("nav.easyops-navbar-alerts",{styleTexts:[It.Z]});class zt extends k.ReactNextElement{render(){return f().createElement(Rt,null)}}wt=zt,[yt,xt]=(0,g.Z)(wt,[],[ft],0,void 0,k.ReactNextElement).c,xt();var Mt=new Zt.o(localStorage);function Rt(){var[e,t]=(0,x.useState)(null),[n,a]=(0,x.useState)(null),i=(0,kt.useCurrentApp)(),r=(0,x.useMemo)((()=>{var e=Et.auth.getAuth();return"license:".concat(e.org)}),[]);(0,x.useEffect)((()=>{var e,n,a=Et.auth.getAuth(),i=null===(e=a.license)||void 0===e?void 0:e.validDaysLeft;i&&i<=15&&a.isAdmin&&(!(n=Mt.getItem(r))||Ct()().unix()>n)&&t(i)}),[r]),(0,x.useEffect)((()=>{var e=e=>{var t=e.detail.renderTime,{loadTime:n,loadInfoPage:r}=(0,y.getRuntime)().getMiscSettings();null!=i&&i.isBuildPush&&n>0&&t>n&&a({renderTime:_t(t),suggestTime:_t(n),suggestUrl:r})};return window.addEventListener("route.render",e),()=>{window.removeEventListener("route.render",e)}}),[i]);var l=(0,x.useCallback)((()=>{Mt.setItem(r,Ct()().unix()+86400),t(null)}),[r]);return f().createElement(f().Fragment,null,n&&f().createElement(Bt,{text:"您的页面存在性能问题, 当前页面渲染时间 ".concat(n.renderTime," 秒, 规定阈值为: ").concat(n.suggestTime," 秒, 您已超过。请您针对该页面进行性能优化!"),type:"warning",link:n.suggestUrl?{label:"建议解决思路",url:n.suggestUrl}:void 0}),null!==e&&f().createElement(Bt,{text:"离 License 过期还有 ".concat(e," 天"),type:"info",closable:!0,onClose:l}))}function Bt(e){var{text:t,type:n,closable:a,link:i,onClose:r}=e;return f().createElement("div",{className:"alert ".concat(n)},f().createElement("span",{className:"text"},t),i&&f().createElement(At,{className:"link",href:i.url,target:"_blank"},i.label),a&&f().createElement(St,{lib:"antd",icon:"close",className:"icon",role:"button",onClick:r}))}function _t(e){return Math.floor(100*e)/1e5}var Dt,Wt,Ft,Kt,Vt=n(2252),{defineElement:Lt}=(0,w.createDecorators)();Wt=Lt("eo-launchpad-quick-access",{styleTexts:[Vt.Z]});class Ot extends k.ReactNextElement{render(){return f().createElement(Gt,null)}}function Gt(){var{favorites:e,loadingFavorites:t,pushRecentVisit:n,toggleStar:a,isStarred:i}=(0,ue.m1)(!0);return f().createElement(de.Z.Provider,{value:{searching:!1,loadingFavorites:t,pushRecentVisit:n,toggleStar:a,isStarred:i}},f().createElement("ul",{className:"quick-access-list"},e.map(((e,t)=>f().createElement(me.L,{key:t,item:e})))))}Ft=Ot,[Kt,Dt]=(0,g.Z)(Ft,[],[Wt],0,void 0,k.ReactNextElement).c,Dt();var Xt=n(2222),Pt=n(1943),Ut={};Ut.styleTagTransform=Ce(),Ut.setAttributes=ke(),Ut.insert=we().bind(null,"head"),Ut.domAPI=xe(),Ut.insertStyleElement=Ze(),ge()(Pt.Z,Ut),Pt.Z&&Pt.Z.locals&&Pt.Z.locals;var jt,qt,Ht,Yt,Qt=(0,k.wrapBrick)("eo-icon"),{defineElement:$t}=(0,w.createDecorators)();qt=$t("eo-search-launchpad",{styleTexts:[Xt.Z]});class Jt extends k.ReactNextElement{render(){return f().createElement(en,null)}}function en(){var e=(0,x.useRef)(null),t=(0,x.useCallback)((()=>{var t;null===(t=e.current)||void 0===t||t.focus()}),[]),[n,a]=(0,x.useState)(!1),{loading:i,q:r,setQ:l,menuGroups:o,loadingFavorites:s,pushRecentVisit:c,toggleStar:u,isStarred:m}=(0,ue.m1)(n),d=!!r,p=(0,x.useCallback)((e=>{l(e.target.value)}),[l]),h=(0,x.useCallback)((()=>{l("")}),[l]);return f().createElement(de.Z.Provider,{value:{searching:d,loadingFavorites:s,pushRecentVisit:c,toggleStar:u,isStarred:m}},f().createElement("div",{className:"container"},f().createElement("div",{className:"search-box",onClick:t},f().createElement(Qt,{lib:"fa",icon:"magnifying-glass",className:"search-icon"}),f().createElement("input",{ref:e,placeholder:"搜索产品/微应用",value:r,onChange:p,className:"search-input",onFocus:()=>a(!0),onBlur:()=>a(!1)}),f().createElement(Qt,{lib:"antd",theme:"filled",icon:"close-circle",className:I()("search-clear",{searching:d}),onClick:h,onMouseDown:e=>e.preventDefault()})),f().createElement("div",{className:I()("dropdown",{"dropdown-active":n}),onMouseDown:e=>e.preventDefault()},f().createElement("div",{className:I()("dropdown-content",{loading:i})},f().createElement(tn,{loading:i}),f().createElement("ul",{className:"menu-groups"},o.map((e=>f().createElement(me.k,{key:e.name,name:e.name,items:e.items}))))))))}function tn(e){var{loading:t}=e;return t&&f().createElement("div",{className:"spinner"},f().createElement(Qt,{lib:"fa",icon:"spinner",spinning:!0}))}Ht=Jt,[Yt,jt]=(0,g.Z)(Ht,[],[qt],0,void 0,k.ReactNextElement).c,jt();var nn,an,rn,ln,on=n(4506),sn=(0,k.wrapBrick)("eo-link"),{defineElement:cn}=(0,w.createDecorators)();an=cn("eo-launchpad-recent-visits",{styleTexts:[on.Z]});class un extends k.ReactNextElement{render(){return f().createElement(mn,null)}}function mn(){var{recentVisits:e,pushRecentVisit:t}=(0,ue.m1)(!0);return f().createElement("ul",{className:"recent-visits"},e.map(((e,n)=>f().createElement("li",{key:n},f().createElement(sn,(0,b.Z)({onClick:()=>t(e)},"app"===e.type?{url:e.url}:{href:e.url,target:"_blank"}),f().createElement("span",null,e.name))))))}rn=un,[ln,nn]=(0,g.Z)(rn,[],[an],0,void 0,k.ReactNextElement).c,nn();var dn,pn,hn,vn,gn,bn,xn,fn,wn,yn,kn,En,Zn,Nn=n(3028),Cn=n(3228),{defineElement:In,property:Sn}=(0,w.createDecorators)();pn=In("eo-app-bar-wrapper",{styleTexts:[Cn.Z],alias:["basic.app-bar-wrapper"]}),hn=Sn({type:Boolean}),gn=Sn(),xn=Sn({type:Boolean}),wn=Sn({attribute:!1});var An=new WeakMap,Tn=new WeakMap,zn=new WeakMap,Mn=new WeakMap;class Rn extends k.ReactNextElement{constructor(){super(...arguments),(0,p.Z)(this,An,{writable:!0,value:(kn(this),vn(this))}),(0,p.Z)(this,Tn,{writable:!0,value:bn(this)}),(0,p.Z)(this,zn,{writable:!0,value:fn(this)}),(0,p.Z)(this,Mn,{writable:!0,value:yn(this)})}get isFixed(){return(0,v.Z)(this,An)}set isFixed(e){(0,h.Z)(this,An,e)}get position(){return(0,v.Z)(this,Tn)}set position(e){(0,h.Z)(this,Tn,e)}get displayCenter(){return(0,v.Z)(this,zn)}set displayCenter(e){(0,h.Z)(this,zn,e)}get extraAppBarContentStyle(){return(0,v.Z)(this,Mn)}set extraAppBarContentStyle(e){(0,h.Z)(this,Mn,e)}render(){return f().createElement(Bn,{displayCenter:this.displayCenter,isFixed:this.isFixed,position:this.position,extraAppBarContentStyle:this.extraAppBarContentStyle})}}function Bn(e){var{isFixed:t=!0,position:n,displayCenter:a=!1,extraAppBarContentStyle:i={}}=e;return f().useEffect((()=>{var e=document.getElementById("main-mount-point"),t=document.getElementById("legacy-iframe-mount-point");e&&(e.style.marginTop=""),t&&(t.style.marginTop="")}),[]),f().createElement("div",{className:"app-bar-container"},f().createElement("div",{className:I()("app-bar","static"===n?"static":"fixed"===n||t?"fixed":"absolute")},f().createElement("div",{className:"app-bar-content",style:(0,Nn.Z)({justifyContent:a?"space-around":"space-between"},i)},f().createElement("div",{className:"left"},f().createElement("slot",{name:"left"})),f().createElement("div",{className:"right"},f().createElement("slot",{name:"right"})))))}En=Rn,({e:[vn,bn,fn,yn,kn],c:[Zn,dn]}=(0,g.Z)(En,[[hn,1,"isFixed"],[gn,1,"position"],[xn,1,"displayCenter"],[wn,1,"extraAppBarContentStyle"]],[pn],0,void 0,k.ReactNextElement)),dn();var _n,Dn,Wn,Fn,Kn,Vn,Ln,On,Gn,Xn,Pn,Un=n(9014),{defineElement:jn,property:qn}=(0,w.createDecorators)(),Hn=(0,k.wrapBrick)("eo-breadcrumb"),Yn=(0,k.wrapBrick)("eo-breadcrumb-item"),Qn=(0,k.wrapBrick)("eo-icon");Dn=jn("eo-frame-breadcrumb",{styleTexts:[Un.Z]}),Wn=qn({attribute:!1}),Kn=qn({type:Boolean}),Ln=qn({attribute:!1});var $n=new WeakMap,Jn=new WeakMap,ea=new WeakMap;class ta extends k.ReactNextElement{constructor(){super(...arguments),(0,p.Z)(this,$n,{writable:!0,value:(Gn(this),Fn(this))}),(0,p.Z)(this,Jn,{writable:!0,value:Vn(this)}),(0,p.Z)(this,ea,{writable:!0,value:On(this)})}get breadcrumb(){return(0,v.Z)(this,$n)}set breadcrumb(e){(0,h.Z)(this,$n,e)}get noCurrentApp(){return(0,v.Z)(this,Jn)}set noCurrentApp(e){(0,h.Z)(this,Jn,e)}get menu(){return(0,v.Z)(this,ea)}set menu(e){(0,h.Z)(this,ea,e)}render(){return f().createElement(na,{breadcrumb:this.breadcrumb,noCurrentApp:this.noCurrentApp,menu:this.menu})}}function na(e){var t,n,{menu:a}=e,i=(0,y.getRuntime)().getNavConfig(),r=(0,kt.useCurrentApp)(),l=null==r?void 0:r.breadcrumb,o=null==l?void 0:l.items,s=null!==(t=e.breadcrumb)&&void 0!==t&&t.length?e.breadcrumb:null==i?void 0:i.breadcrumb,c=null!==(n=e.noCurrentApp)&&void 0!==n?n:null==l?void 0:l.noCurrentApp,u=null==l?void 0:l.useCurrentMenuTitle;return f().createElement(Hn,null,f().createElement("span",{slot:"separator"},"/"),null==o?void 0:o.map(((e,t)=>f().createElement(Yn,{key:t,url:e.to},0===t&&f().createElement(Qn,{className:"breadcrumb-item-prefix-icon",slot:"prefix",lib:"antd",icon:"home",theme:"outlined"}),e.text))),r&&!c?f().createElement(Yn,{url:null!=s&&s.length&&r.homepage&&!r.internal?r.homepage:void 0},!(null!=o&&o.length)&&f().createElement(Qn,(0,b.Z)({},r.menuIcon,{slot:"prefix",className:"breadcrumb-item-prefix-icon"})),r.localeName):null,u&&a?f().createElement(Yn,{url:a.link},a.icon&&f().createElement(Qn,(0,b.Z)({},a.icon,{className:"breadcrumb-item-prefix-icon",slot:"prefix"})),a.title):null,null==s?void 0:s.map(((e,t)=>f().createElement(Yn,{key:t,url:e.to},e.text))))}Xn=ta,({e:[Fn,Vn,On,Gn],c:[Pn,_n]}=(0,g.Z)(Xn,[[Wn,1,"breadcrumb"],[Kn,1,"noCurrentApp"],[Ln,1,"menu"]],[Dn],0,void 0,k.ReactNextElement)),_n();var aa,ia,ra,la,oa,sa,ca,ua,ma,da,pa,ha,va,ga,ba,xa,fa,wa=n(2049),{defineElement:ya,property:ka}=(0,w.createDecorators)(),Ea=(0,k.wrapBrick)("eo-link"),Za=(0,k.wrapBrick)("eo-icon");ia=ya("eo-sidebar-menu-item",{styleTexts:[wa.Z]}),ra=ka({attribute:!1}),oa=ka(),ca=ka(),ma=ka({attribute:!1}),pa=ka({type:Boolean}),va=ka({type:Boolean});var Na=new WeakMap,Ca=new WeakMap,Ia=new WeakMap,Sa=new WeakMap,Aa=new WeakMap,Ta=new WeakMap;class za extends k.ReactNextElement{constructor(){super(...arguments),(0,p.Z)(this,Na,{writable:!0,value:(ba(this),la(this))}),(0,p.Z)(this,Ca,{writable:!0,value:sa(this)}),(0,p.Z)(this,Ia,{writable:!0,value:ua(this)}),(0,p.Z)(this,Sa,{writable:!0,value:da(this)}),(0,p.Z)(this,Aa,{writable:!0,value:ha(this)}),(0,p.Z)(this,Ta,{writable:!0,value:ga(this)})}get url(){return(0,v.Z)(this,Na)}set url(e){(0,h.Z)(this,Na,e)}get href(){return(0,v.Z)(this,Ca)}set href(e){(0,h.Z)(this,Ca,e)}get target(){return(0,v.Z)(this,Ia)}set target(e){(0,h.Z)(this,Ia,e)}get icon(){return(0,v.Z)(this,Sa)}set icon(e){(0,h.Z)(this,Sa,e)}get selected(){return(0,v.Z)(this,Aa)}set selected(e){(0,h.Z)(this,Aa,e)}get menuCollapsed(){return(0,v.Z)(this,Ta)}set menuCollapsed(e){(0,h.Z)(this,Ta,e)}render(){return f().createElement(Ma,{url:this.url,href:this.href,target:this.target,icon:this.icon,selected:this.selected})}}function Ma(e){var{url:t,href:n,target:a,icon:i,selected:r}=e;return f().createElement(Ea,{type:"plain",url:t,href:n,target:a},f().createElement("div",{className:"menu-item"},f().createElement("span",{className:"menu-item-icon-container"},f().createElement(Za,(0,b.Z)({},i,{className:"menu-item-icon"},i&&"imgSrc"in i?{imgStyle:{filter:r?"brightness(7)":void 0}}:{}))),f().createElement("span",{className:"menu-item-text"},f().createElement("slot",null))))}xa=za,({e:[la,sa,ua,da,ha,ga,ba],c:[fa,aa]}=(0,g.Z)(xa,[[ra,1,"url"],[oa,1,"href"],[ca,1,"target"],[ma,1,"icon"],[pa,1,"selected"],[va,1,"menuCollapsed"]],[ia],0,void 0,k.ReactNextElement)),aa();var Ra=n(4781),Ba=new Set(["EO-SIDEBAR-MENU-ITEM","EO-SIDEBAR-MENU-GROUP","EO-SIDEBAR-MENU-SUBMENU"]),_a=e=>Ba.has(e.tagName);function Da(e){var t=(0,x.useRef)(null),n=(0,x.useCallback)((()=>{var n;null===(n=t.current)||void 0===n||n.assignedElements().forEach((t=>{_a(t)&&(t.menuCollapsed=e)}))}),[e]);return(0,x.useEffect)((()=>{n()}),[e,n]),(0,x.useEffect)((()=>{var e=t.current,a=()=>{n()};return null==e||e.addEventListener("slotchange",a),()=>{null==e||e.removeEventListener("slotchange",a)}}),[n]),[t]}var Wa,Fa,Ka,Va,La,Oa,Ga,Xa,Pa,Ua,ja,qa,Ha="side-bar-has-been-used",Ya="side-bar-expand-state",Qa="side-bar-resize-width",$a=function(e){return e.Collapsed="collapsed",e.Hovered="hovered",e.Expanded="expanded",e}({}),Ja=parseInt((0,y.getCssPropertyValue)("--side-bar-width",document.body),10)||220,ei=parseInt((0,y.getCssPropertyValue)("--side-bar-collapsed-width",document.body),10)||60,ti=(0,x.createContext)({selectedKeys:[],openedKeys:[],matchedKeys:[]}),ni=(0,k.wrapBrick)("eo-sidebar-menu"),ai=(0,k.wrapBrick)("eo-sidebar-menu-item"),ii=(0,k.wrapBrick)("eo-sidebar-menu-group"),ri=(0,k.wrapBrick)("eo-sidebar-menu-submenu");function li(e){var{to:t,href:n,target:a,icon:i,text:r,id:l}=e,{selectedKeys:o}=(0,x.useContext)(ti);return f().createElement(ai,{url:t,href:n,target:a,icon:i,selected:o.includes(l)},r)}function oi(e){var{title:t,items:n,id:a,top:i}=e,{matchedKeys:r}=(0,x.useContext)(ti),l=a&&r.includes(a);return(null==n?void 0:n.length)>0?f().createElement(ii,{selected:!!l,collapsable:!i},f().createElement("span",{slot:"title"},t),e.items.map((e=>f().createElement(ci,(0,b.Z)({key:e.key},e,{id:e.key,top:!1}))))):null}function si(e){var{title:t,icon:n,items:a,id:i}=e,{openedKeys:r,matchedKeys:l}=(0,x.useContext)(ti),o=i&&l.includes(i);return(null==a?void 0:a.length)>0?f().createElement(ri,{icon:n,collapsed:!r.includes(i),selected:!!o},f().createElement("span",{slot:"title"},t),e.items.map((e=>f().createElement(ci,(0,b.Z)({key:e.key},e,{id:e.key,top:!1}))))):null}function ci(e){return"subMenu"===e.type?f().createElement(si,e):"group"===e.type?f().createElement(oi,e):f().createElement(li,e)}function ui(e){var t,{menu:n,expandedState:a,selectedKeys:i,openedKeys:r,matchedKeys:l}=e;return f().createElement(ti.Provider,{value:{selectedKeys:i||[],openedKeys:r||[],matchedKeys:l||[]}},f().createElement(ni,{menuCollapsed:a===$a.Collapsed},null==n||null===(t=n.menuItems)||void 0===t?void 0:t.map((e=>f().createElement(ci,(0,b.Z)({key:e.key},e,{id:e.key,top:!0}))))))}var mi,{defineElement:di,property:pi}=(0,w.createDecorators)();Fa=di("eo-sidebar-menu-group",{styleTexts:[Ra.Z]}),Ka=pi({type:Boolean}),La=pi({type:Boolean}),Ga=pi({type:Boolean}),Pa=pi({type:Boolean});var hi=new WeakMap,vi=new WeakMap,gi=new WeakMap,bi=new WeakMap,xi=new WeakMap;class fi extends k.ReactNextElement{constructor(){super(...arguments),(0,p.Z)(this,hi,{writable:!0,value:(ja(this),Va(this,!0))}),(0,p.Z)(this,vi,{writable:!0,value:Oa(this)}),(0,p.Z)(this,gi,{writable:!0,value:Xa(this)}),(0,p.Z)(this,bi,{writable:!0,value:Ua(this)}),(0,p.Z)(this,xi,{writable:!0,value:e=>{this.collapsed=e}})}get collapsable(){return(0,v.Z)(this,hi)}set collapsable(e){(0,h.Z)(this,hi,e)}get collapsed(){return(0,v.Z)(this,vi)}set collapsed(e){(0,h.Z)(this,vi,e)}get selected(){return(0,v.Z)(this,gi)}set selected(e){(0,h.Z)(this,gi,e)}get menuCollapsed(){return(0,v.Z)(this,bi)}set menuCollapsed(e){(0,h.Z)(this,bi,e)}render(){return f().createElement(wi,{collapsable:this.collapsable,selected:this.selected,collapsed:this.collapsed,menuCollapsed:this.menuCollapsed,onCollapseChange:(0,v.Z)(this,xi)})}}function wi(e){var{collapsable:t,collapsed:n,menuCollapsed:a,onCollapseChange:i}=e,[r]=Da(a),l=(0,x.useRef)(null),o=(0,x.useCallback)((()=>{!a&&(null==i||i(!n))}),[a,i,n]);return(0,x.useEffect)((()=>{var e=l.current;return null==e||e.addEventListener("click",o),()=>{null==e||e.removeEventListener("click",o)}}),[o]),f().createElement("div",{className:I()("menu-group",{"menu-group-collapsed":!!a||n})},f().createElement("div",{className:"menu-group-title",ref:l},f().createElement("span",{className:"menu-group-title-icon-container"},f().createElement("span",{className:"menu-group-title-icon"})),f().createElement("div",{className:"menu-group-title-text"},f().createElement("slot",{name:"title"})),t&&f().createElement("span",{className:"menu-group-arrow"})),f().createElement("div",{className:"menu-group-list"},f().createElement("div",{className:"menu-group-list-inner"},f().createElement("slot",{ref:r}))))}qa=fi,({e:[Va,Oa,Xa,Ua,ja],c:[mi,Wa]}=(0,g.Z)(qa,[[Ka,1,"collapsable"],[La,1,"collapsed"],[Ga,1,"selected"],[Pa,1,"menuCollapsed"]],[Fa],0,void 0,k.ReactNextElement)),Wa();var yi,ki,Ei,Zi,Ni,Ci,Ii,Si,Ai,Ti,zi,Mi,Ri,Bi=n(1985),{defineElement:_i,property:Di}=(0,w.createDecorators)(),Wi=(0,k.wrapBrick)("eo-icon");ki=_i("eo-sidebar-menu-submenu",{styleTexts:[Bi.Z]}),Ei=Di({attribute:!1}),Ni=Di({type:Boolean}),Ii=Di({type:Boolean}),Ai=Di({type:Boolean});var Fi=new WeakMap,Ki=new WeakMap,Vi=new WeakMap,Li=new WeakMap,Oi=new WeakMap;class Gi extends k.ReactNextElement{constructor(){super(...arguments),(0,p.Z)(this,Fi,{writable:!0,value:(zi(this),Zi(this))}),(0,p.Z)(this,Ki,{writable:!0,value:Ci(this)}),(0,p.Z)(this,Vi,{writable:!0,value:Si(this)}),(0,p.Z)(this,Li,{writable:!0,value:Ti(this)}),(0,p.Z)(this,Oi,{writable:!0,value:e=>{this.collapsed=e}})}get icon(){return(0,v.Z)(this,Fi)}set icon(e){(0,h.Z)(this,Fi,e)}get selected(){return(0,v.Z)(this,Ki)}set selected(e){(0,h.Z)(this,Ki,e)}get collapsed(){return(0,v.Z)(this,Vi)}set collapsed(e){(0,h.Z)(this,Vi,e)}get menuCollapsed(){return(0,v.Z)(this,Li)}set menuCollapsed(e){(0,h.Z)(this,Li,e)}render(){return f().createElement(Xi,{icon:this.icon,selected:this.selected,collapsed:this.collapsed,menuCollapsed:this.menuCollapsed,onCollapseChange:(0,v.Z)(this,Oi)})}}function Xi(e){var{icon:t,collapsed:n,menuCollapsed:a,onCollapseChange:i}=e,[r]=Da(a),l=(0,x.useRef)(null),o=(0,x.useCallback)((()=>{!a&&(null==i||i(!n))}),[a,i,n]);return(0,x.useEffect)((()=>{var e=l.current;return null==e||e.addEventListener("click",o),()=>{null==e||e.removeEventListener("click",o)}}),[o]),f().createElement("div",{className:I()("menu-submenu",{"menu-submenu-collapsed":!!a||n})},f().createElement("div",{className:"menu-submenu-title",ref:l},f().createElement("span",{className:"menu-submenu-title-icon-container"},f().createElement(Wi,(0,b.Z)({},t,{className:"menu-submenu-title-icon"}))),f().createElement("span",{className:"menu-submenu-title-text"},f().createElement("slot",{name:"title"})),f().createElement("span",{className:"menu-submenu-arrow"})),f().createElement("div",{className:"menu-sub"},f().createElement("div",{className:"menu-sub-inner"},f().createElement("slot",{ref:r}))))}Mi=Gi,({e:[Zi,Ci,Si,Ti,zi],c:[Ri,yi]}=(0,g.Z)(Mi,[[Ei,1,"icon"],[Ni,1,"selected"],[Ii,1,"collapsed"],[Ai,1,"menuCollapsed"]],[ki],0,void 0,k.ReactNextElement)),yi();var Pi,Ui,ji,qi,Hi,Yi,Qi,$i=n(24),{defineElement:Ji,property:er}=(0,w.createDecorators)();Ui=Ji("eo-sidebar-menu",{styleTexts:[$i.Z]}),ji=er({type:Boolean});var tr=new WeakMap;class nr extends k.ReactNextElement{constructor(){super(...arguments),(0,p.Z)(this,tr,{writable:!0,value:(Hi(this),qi(this))})}get menuCollapsed(){return(0,v.Z)(this,tr)}set menuCollapsed(e){(0,h.Z)(this,tr,e)}render(){return f().createElement(ar,{menuCollapsed:this.menuCollapsed})}}function ar(e){var{menuCollapsed:t}=e,[n]=Da(t);return f().createElement("div",{className:"sidebar-menu"},f().createElement("div",{className:"sidebar-menu-item-list"},f().createElement("slot",{ref:n})))}Yi=nr,({e:[qi,Hi],c:[Qi,Pi]}=(0,g.Z)(Yi,[[ji,1,"menuCollapsed"]],[Ui],0,void 0,k.ReactNextElement)),Pi();var ir=n(4487);const rr=e=>x.createElement("svg",(0,b.Z)({xmlns:"http://www.w3.org/2000/svg",width:20,height:20,viewBox:"0 0 20 20"},e),x.createElement("g",{fill:"none",fillRule:"evenodd"},x.createElement("path",{d:"M0 0h20v20H0z"}),x.createElement("path",{fill:"#595959",fillRule:"nonzero",d:"m14.599 11.59-1.685-1.606-.348-4.876.93-1.044s.617-.93-.62-1.045L7.323 3s-.85.657-.097 1.296l.754.755-.385 4.76-1.49 1.683s-.388.774.328 1.065l2.961-.02.668 3.887H6.388V17h7.832v-.574h-3.743l.6-3.946 3.154.097s.812-.464.368-.986Z"}))),lr=e=>x.createElement("svg",(0,b.Z)({xmlns:"http://www.w3.org/2000/svg",width:20,height:20,viewBox:"0 0 20 20"},e),x.createElement("g",{fill:"none",fillRule:"evenodd"},x.createElement("path",{d:"M0 0h20v20H0z"}),x.createElement("path",{fill:"#595959",fillRule:"nonzero",d:"m13.06 3.765 3.22 3.08c.42.28.42.84.14 1.26-.42.42-.98.42-1.26.14l-.14-.14-.28-.28-3.22 4.62.98.98c.28.42.28.98-.14 1.26-.28.28-.7.28-1.12 0l-5.88-6.02c-.28-.42-.28-.84 0-1.26.28-.28.84-.28 1.12 0l.98.98 4.62-3.22-.14-.14c-.42-.42-.42-.84-.14-1.26.28-.28.84-.42 1.26 0Zm-4.76 9.1-1.12-1.12c-.98 1.12-2.52 2.8-2.8 3.22-.42.42-.7.98-.98 1.54.7-.14 1.26-.42 1.68-.84.42-.28 2.1-1.82 3.22-2.8Z"})));var or,sr,cr,ur,mr,dr,pr,hr,vr,gr,br,xr,fr,wr,yr,kr,Er,Zr,Nr,Cr,Ir=function(e){return e.CLICK_TO_FIX_NAVIGATION="CLICK_TO_FIX_NAVIGATION",e.UNPIN_NAVIGATION="UNPIN_NAVIGATION",e.FIXED_NAVIGATION="FIXED_NAVIGATION",e}({}),Sr="bricks/nav/eo-sidebar";(0,J.initializeReactI18n)(Sr,{en:{UNPIN_NAVIGATION:"Unpin navigation",FIXED_NAVIGATION:"Fixed navigation",CLICK_TO_FIX_NAVIGATION:"Click to {{action}}"},zh:{UNPIN_NAVIGATION:"取消固定",FIXED_NAVIGATION:"固定导航",CLICK_TO_FIX_NAVIGATION:"点击{{action}}"}});var Ar,{defineElement:Tr,property:zr,event:Mr}=(0,w.createDecorators)(),Rr=(0,k.wrapBrick)("eo-tooltip"),Br=(0,k.wrapBrick)("eo-icon");sr=Tr("eo-sidebar",{styleTexts:[ir.Z]}),cr=zr({attribute:!1}),mr=zr({type:Boolean}),pr=zr(),vr=zr(),br=Mr({type:"actual.width.change"}),yr=Mr({type:"expanded.state.change"});var _r=new WeakMap,Dr=new WeakMap,Wr=new WeakMap,Fr=new WeakMap,Kr=new WeakMap,Vr=new WeakMap,Lr=new WeakMap,Or=new WeakMap,Gr=new WeakMap,Xr=new WeakMap;class Pr extends k.ReactNextElement{constructor(){super(...arguments),(0,p.Z)(this,Gr,{get:Hr,set:qr}),(0,p.Z)(this,Vr,{get:jr,set:Ur}),(0,p.Z)(this,_r,{writable:!0,value:(Nr(this),ur(this))}),(0,p.Z)(this,Dr,{writable:!0,value:dr(this)}),(0,p.Z)(this,Wr,{writable:!0,value:hr(this)}),(0,p.Z)(this,Fr,{writable:!0,value:gr(this)}),(0,p.Z)(this,Kr,{writable:!0,value:xr(this)}),(0,p.Z)(this,Lr,{writable:!0,value:e=>{(0,v.Z)(this,Vr).emit(e)}}),(0,p.Z)(this,Or,{writable:!0,value:kr(this)}),(0,p.Z)(this,Xr,{writable:!0,value:e=>{this.expandedState=e,(0,v.Z)(this,Gr).emit(e)}})}get menu(){return(0,v.Z)(this,_r)}set menu(e){(0,h.Z)(this,_r,e)}get hiddenFixedIcon(){return(0,v.Z)(this,Dr)}set hiddenFixedIcon(e){(0,h.Z)(this,Dr,e)}get expandedState(){return(0,v.Z)(this,Wr)}set expandedState(e){(0,h.Z)(this,Wr,e)}get position(){return(0,v.Z)(this,Fr)}set position(e){(0,h.Z)(this,Fr,e)}render(){return f().createElement(Yr,{menu:this.menu,expandedState:this.expandedState,hiddenFixedIcon:this.hiddenFixedIcon,position:this.position,onActualWidthChange:(0,v.Z)(this,Lr),onExpandedStateChange:(0,v.Z)(this,Xr)})}}function Ur(e){wr(this,e)}function jr(){return fr(this)}function qr(e){Zr(this,e)}function Hr(){return Er(this)}function Yr(e){var{t}=(0,J.useTranslation)(Sr),{hiddenFixedIcon:n,position:a,onActualWidthChange:i,onExpandedStateChange:r}=e,l=f().useMemo((()=>{var e;return null===(e=(0,y.getRuntime)())||void 0===e?void 0:e.getFeatureFlags()["sidebar-show-user-defined-icon"]}),[]),o=(0,x.useMemo)((()=>new Zt.o(localStorage)),[]),s=(0,y.getHistory)(),c=(0,kt.useCurrentApp)(),[u,m]=(0,x.useState)(s.location),{pathname:d,search:p}=u,[h,v]=(0,x.useState)(!o.getItem(Ha)),[g,w]=(0,x.useState)(),[k,E]=(0,x.useState)(),[Z,C]=(0,x.useState)(e.expandedState||o.getItem(Ya)||$a.Collapsed),[S,A]=(0,x.useState)(),[T,z]=(0,x.useState)([]),[M,R]=(0,x.useState)([]),[B,_]=(0,x.useState)([]),D=l?null==S?void 0:S.icon:null==c?void 0:c.menuIcon;(0,x.useEffect)((()=>{var t,n,{selectedKeys:a,openedKeys:i,matchedKeys:r}=(0,N.OZ)(null!==(t=null===(n=e.menu)||void 0===n?void 0:n.menuItems)&&void 0!==t?t:[],d,p,"");A(e.menu),z(a),R(i),_(r)}),[e.menu,d,p]),(0,x.useEffect)((()=>{var e=s.listen((e=>{m(e)}));return e}),[s]);var W=(0,x.useRef)(null);(0,x.useEffect)((()=>{if(W.current){var e=new IntersectionObserver((e=>{e.forEach((e=>{e.target===W.current&&w(!e.isIntersecting)}))}),{threshold:1});return e.observe(W.current),()=>{e.disconnect()}}}),[]),(0,x.useEffect)((()=>{C(e.expandedState||o.getItem(Ya)||$a.Collapsed)}),[e.expandedState]),(0,x.useEffect)((()=>{o.setItem(Ya,Z===$a.Expanded?$a.Expanded:$a.Collapsed)}),[Z]);var[F,K]=(0,x.useState)((()=>{var e=parseInt(o.getItem(Qa),10);return(e<Ja||Number.isNaN(e))&&(e=Ja),e}));(0,x.useEffect)((()=>{o.setItem(Qa,F)}),[F]);var V=(0,x.useRef)(null),L=()=>{C((e=>{var t=e===$a.Expanded?$a.Expanded:$a.Hovered;return t!==e&&(null==r||r(t)),t}))},O=()=>{C((e=>{var t=e===$a.Expanded?$a.Expanded:$a.Collapsed;return t!==e&&(null==r||r(t)),t}))},G=(0,x.useMemo)((()=>Z===$a.Expanded?F:ei),[Z,F]);(0,x.useEffect)((()=>{null==i||i(G)}),[i,G]);var X=e=>"static"===a?Z===$a.Expanded||e&&Z===$a.Hovered?F:ei:Z===$a.Collapsed?ei:F;return(0,x.useEffect)((()=>{var e=V.current;return null==e||e.addEventListener("mouseenter",L),null==e||e.addEventListener("mouseleave",O),()=>{null==e||e.removeEventListener("mouseenter",L),null==e||e.removeEventListener("mouseleave",O)}}),[]),f().createElement("div",{className:I()("sidebar-container","state-".concat(Z),{dragging:k}),style:{width:X()},ref:V,"data-testid":"side-bar"},f().createElement("div",{className:"inner",style:{width:X(!0)}},f().createElement("div",{className:"header"},f().createElement("div",{className:"menu-title"},f().createElement("div",{className:I()("menu-title-icon-container")},D?f().createElement(Br,(0,b.Z)({},D,{className:"menu-title-icon"})):f().createElement("span",{className:"menu-title-point"})),f().createElement("div",{className:"menu-title-text",title:null==S?void 0:S.title},null==S?void 0:S.title))),f().createElement("div",{className:I()("content",{"show-shadow":g})},f().createElement(ui,{selectedKeys:T,openedKeys:M,matchedKeys:B,menu:S,expandedState:Z}),f().createElement("div",{ref:W})),f().createElement("div",{className:"footer"},!n&&f().createElement(Rr,{content:Z===$a.Expanded?h?t(Ir.CLICK_TO_FIX_NAVIGATION,{action:t(Ir.UNPIN_NAVIGATION)}):t(Ir.UNPIN_NAVIGATION):h?t(Ir.CLICK_TO_FIX_NAVIGATION,{action:t(Ir.FIXED_NAVIGATION)}):t(Ir.FIXED_NAVIGATION)},f().createElement("i",{className:"fixed-icon",onClick:()=>{v(!1),o.setItem(Ha,!0),C((e=>{var t=e===$a.Expanded?$a.Collapsed:$a.Expanded;return t!==e&&(null==r||r(t)),t}))}},f().createElement(rr,{style:{display:Z===$a.Expanded?void 0:"none"}}),f().createElement(lr,{style:{display:Z===$a.Expanded?"none":void 0}})))),Z===$a.Expanded&&f().createElement("span",{className:"resize-line",onMouseDown:e=>{var t,n;E(!0),e.cancelable&&e.preventDefault();var a,i,r,l,o=null!==(t=null===(n=V.current)||void 0===n?void 0:n.getBoundingClientRect().left)&&void 0!==t?t:0,s=(a=e=>{var t=e.clientX-o;K(t>=Ja?t:Ja)},l=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];i&&r(),i=requestAnimationFrame((()=>{a(...t)}))},l.cancel=r=()=>cancelAnimationFrame(i),l),c=e=>{E(!1),e.preventDefault(),window.removeEventListener("mousemove",s),window.removeEventListener("mouseup",c)};window.addEventListener("mousemove",s,{passive:!0}),window.addEventListener("mouseup",c)}})))}Cr=Pr,({e:[ur,dr,hr,gr,xr,fr,wr,kr,Er,Zr,Nr],c:[Ar,or]}=(0,g.Z)(Cr,[[cr,1,"menu"],[mr,1,"hiddenFixedIcon"],[pr,1,"expandedState"],[vr,1,"position"],[br,1,"actualWidthChangeEvent",e=>(0,v.Z)(e,Kr),(e,t)=>(0,h.Z)(e,Kr,t)],[yr,1,"expandedStateChangeEvent",e=>(0,v.Z)(e,Or),(e,t)=>(0,h.Z)(e,Or,t)]],[sr],0,(e=>Xr.has((0,We.Z)(e))),k.ReactNextElement)),or();var Qr,$r,Jr,el,tl,nl,al,il=n(7432),rl=(0,k.wrapBrick)("eo-icon"),ll=(0,k.wrapBrick)("eo-menu"),ol=(0,k.wrapBrick)("eo-menu-group"),sl=(0,k.wrapBrick)("eo-menu-item-sub-menu"),cl=(0,k.wrapBrick)("eo-menu-item"),ul=(0,k.wrapBrick)("eo-link"),{defineElement:ml,property:dl}=(0,w.createDecorators)();$r=ml("eo-sidebar-sub-menu",{styleTexts:[il.Z]}),Jr=dl({attribute:!1});var pl=new WeakMap;class hl extends k.ReactNextElement{constructor(){super(...arguments),(0,p.Z)(this,pl,{writable:!0,value:(tl(this),el(this))})}get menu(){return(0,v.Z)(this,pl)}set menu(e){(0,h.Z)(this,pl,e)}render(){return f().createElement(vl,{menu:this.menu})}}function vl(e){var{menu:t}=e,n=(0,y.getHistory)(),[a,i]=(0,x.useState)(n.location),{pathname:r,search:l}=a,[o,s]=(0,x.useState)([]),[c,u]=(0,x.useState)([]),m=(0,x.useCallback)((()=>{var e,{selectedKeys:n,openedKeys:a}=(0,N.OZ)(null!==(e=null==t?void 0:t.menuItems)&&void 0!==e?e:[],r,l,"");s(n),u(a)}),[null==t?void 0:t.menuItems,r,l]);(0,x.useEffect)((()=>{var e=n.listen((e=>{i(e)}));return m(),e}),[n,m]);var d=(0,x.useCallback)((e=>{var t;return 16*((null===(t=e.key)||void 0===t||null===(t=t.split("."))||void 0===t?void 0:t.length)-1)}),[]);function p(e){return(0,N.cl)(e)?(e=>{var t;if((null===(t=e.items)||void 0===t?void 0:t.length)>0)return f().createElement(sl,{className:"menu-sub-item",icon:e.icon,titleStyle:{paddingLeft:d(e)},collapsed:!c.includes(e.key)},f().createElement("span",{slot:"title"},e.title),e.items.map((e=>f().createElement(f().Fragment,{key:e.key},p(e)))))})(e):(0,N.ty)(e)?(e=>{var t;if((null===(t=e.items)||void 0===t?void 0:t.length)>0)return f().createElement(ol,null,f().createElement("span",{slot:"title"},e.title),e.items.map((e=>f().createElement(f().Fragment,{key:e.key},p(e)))))})(e):(e=>f().createElement(cl,{className:"menu-item",style:{paddingLeft:d(e)||16},icon:e.icon,active:!!e.key&&o.includes(e.key)},f().createElement(ul,{className:"menu-item-link",type:"plain",url:e.to,href:e.href,title:e.text,target:e.target},f().createElement("span",{className:I()("menu-item-text",{"item-has-icon":e.icon})},e.text))))(e)}return f().createElement(ll,{className:"menu-container",mode:"vertical"},(null==t?void 0:t.title)&&f().createElement("div",{className:"header"},(null==t?void 0:t.icon)&&f().createElement(rl,null==t?void 0:t.icon),f().createElement("span",{className:"title"},null==t?void 0:t.title)),f().createElement("div",{className:"content"},null==t?void 0:t.menuItems.map((e=>f().createElement(f().Fragment,{key:e.key},p(e))))))}nl=hl,({e:[el,tl],c:[al,Qr]}=(0,g.Z)(nl,[[Jr,1,"menu"]],[$r],0,void 0,k.ReactNextElement)),Qr()},7756:(e,t,n)=>{n.d(t,{Z:()=>o});var a=n(9601),i=n.n(a),r=n(2609),l=n.n(r)()(i());l.push([e.id,':root{--eo-launchpad-v2-background:#fff;--eo-launchpad-v2-menu-icon-color:#8c8c8c}html[data-theme="dark"],\nhtml[data-theme="dark-v2"]{--eo-launchpad-v2-background:#26262a;--eo-launchpad-v2-menu-icon-color:rgba(255,255,255,0.45)}',""]);const o=l},1943:(e,t,n)=>{n.d(t,{Z:()=>o});var a=n(9601),i=n.n(a),r=n(2609),l=n.n(r)()(i());l.push([e.id,':root{--eo-search-launchpad-menu-icon-color:#8c8c8c}html[data-theme="dark"],\nhtml[data-theme="dark-v2"]{--eo-search-launchpad-menu-icon-color:rgba(255,255,255,0.45)}',""]);const o=l},3228:(e,t,n)=>{n.d(t,{Z:()=>o});var a=n(9601),i=n.n(a),r=n(2609),l=n.n(r)()(i());l.push([e.id,":host{display:block}:host([hidden]){display:none}.app-bar-container{height:var(--app-bar-height)}.app-bar{position:relative;z-index:1000;box-shadow:var(--top-nav-shadow)}.app-bar.fixed,\n.app-bar.absolute{right:0;left:0;top:0}.app-bar.fixed{position:fixed}.app-bar.absolute{position:absolute}.app-bar-content{display:flex;justify-content:space-between;align-items:center;height:var(--app-bar-height);background-color:var(--top-navigation-bg);padding:0 16px;transition:var(--launchpad-backdrop-transition)}.left{display:flex;flex:1}.right{display:flex;justify-content:end}",""]);const o=l.toString()},7128:(e,t,n)=>{n.d(t,{Z:()=>o});var a=n(9601),i=n.n(a),r=n(2609),l=n.n(r)()(i());l.push([e.id,":host{display:block}:host([hidden]){display:none}.alert{height:32px;padding:0 20px;display:flex;justify-content:center;align-items:center}.text{color:var(--antd-text-color);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.icon{margin-left:20px;cursor:pointer;color:#8c8c8c}.info{background-color:var(--color-info-bg)}.warning{background-color:var(--color-warning-bg)}",""]);const o=l.toString()},9014:(e,t,n)=>{n.d(t,{Z:()=>o});var a=n(9601),i=n.n(a),r=n(2609),l=n.n(r)()(i());l.push([e.id,":host{display:flex;height:22px;align-items:center}:host([hidden]){display:none}.breadcrumb-item-prefix-icon{font-size:14px}",""]);const o=l.toString()},6976:(e,t,n)=>{n.d(t,{Z:()=>d});var a=n(9601),i=n.n(a),r=n(2609),l=n.n(r),o=n(8991),s=n.n(o),c=new URL(n(2754),n.b),u=l()(i()),m=s()(c);u.push([e.id,`:host{display:inline-block;width:32px;height:32px;--eo-launchpad-v2-max-height:calc(100vh - var(--app-bar-height) - 10px)}:host([hidden]){display:none}.launchpad-button{width:100%;height:100%;display:flex;justify-content:center;align-items:center;color:#999;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;border-radius:3px}.launchpad-button:hover,\n.launchpad-button.active{background-color:var(--color-fill-bg-base-1)}.launchpad-button.active{color:var(--color-brand)}.mask{position:fixed;top:0;bottom:0;left:0;right:0;z-index:1;display:none}.mask.active{display:block}.launchpad{display:none;position:absolute;margin-top:4px;z-index:1;width:1110px;max-width:calc(100vw - 100px);max-height:var(--eo-launchpad-v2-max-height);min-height:50vh;min-height:min(500px,var(--eo-launchpad-v2-max-height));background-color:var(--eo-launchpad-v2-background);border:1px solid var(--color-text-divider-line);border-radius:6px;box-shadow:var(--fullscreen-overlay-shadow)}.launchpad.active{display:flex}.sidebar{width:190px;padding:20px 0 24px;display:flex;flex-direction:column;background:var(--color-fill-bg-base-3);min-width:0;background-image:url(${m});background-size:205px 205px;background-repeat:no-repeat;background-position:left 52px bottom 27px}.quick-nav-label,\n.menu-group-label,\n.menu-item-label,\n.recent-visits span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-menu,\n.menu-groups,\n.menu,\n.sub-menu,\n.recent-visits{list-style:none;margin:0;padding:0}.sidebar-menu,\n.menu,\n.sub-menu{display:flex;flex-direction:column;gap:14px}.sidebar-menu-item > eo-link,\n.menu-item > eo-link,\n.recent-visits eo-link{display:block;min-width:0}.sidebar-menu-item > eo-link::part(link),\n.menu-item > eo-link::part(link){height:20px;display:flex;align-items:center;gap:8px;color:var(--color-header-text)}.sidebar-menu-item{padding:0 12px 0 16px;justify-content:space-between}.sidebar-menu-icon{color:var(--left-sidebar-item-collapsed-icon-color)}.quick-nav{overflow-y:auto;flex:1}.quick-nav-label{color:var(--color-header-text);font-weight:500;margin-bottom:14px;padding:0 16px}.content{flex:1;padding:20px 24px 24px;min-width:0;overflow-y:auto;display:flex;flex-direction:column;gap:24px}.search-box{border-bottom:1px solid var(--color-text-divider-line);display:flex;gap:8px;align-items:center;padding:10px 0;margin-top:-10px;cursor:text}.search-icon{color:var(--color-auxiliary-text)}.search-input{padding:0;margin:0;border:none;outline:none;color:inherit;background-color:transparent;font-size:14px;line-height:22px;flex:1;min-width:0}.search-input::placeholder{color:var(--color-disabled-text);opacity:1}.search-clear{display:none;color:var(--color-secondary-text);cursor:pointer}.search-clear.searching{display:inline-block}.search-clear:hover{color:var(--color-auxiliary-text)}.menu-groups,\n.recent-visits{grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}.menu-groups{display:grid;grid-gap:32px 8px;gap:32px 8px}.menu-group{padding-right:12px;color:var(--color-header-text)}.menu-group-label{font-size:var(--card-title-font-size);font-weight:500;color:var(--color-header-text);margin-bottom:14px}.sidebar-menu-item,\n.menu-item:not(.folder){display:flex;gap:8px;align-items:center}.menu-icon{color:var(--eo-launchpad-v2-menu-icon-color)}.menu-item.active,\n.menu-item.active .menu-icon{color:var(--color-brand-active)}.sub-menu:not(.expanded){display:none}.sub-menu{margin-top:14px;margin-left:8px;border-left:1px solid var(--color-text-divider-line);padding-left:15px}.menu-item-remove,\n.menu-item-star{cursor:pointer}.menu-item-remove,\n.menu-item-star,\n.menu-item-toggle{color:var(--color-secondary-text)}.sidebar-menu-item:not(:hover) .menu-item-remove{display:none}.menu-item-remove:hover{color:var(--color-normal-text)}.menu-item-remove:active{color:var(--color-strong-text)}.menu-item-star{display:none}.can-star.starred > .menu-item-star,\n.can-star:hover > .menu-item-star{display:inline-block}.can-star:not(.starred) > .menu-item-star{color:var(--color-secondary-text)}.starred > .menu-item-star{color:var(--palette-yellow-6)}.recent-visits-label{margin-bottom:12px;font-size:var(--card-title-font-size);color:var(--color-header-text);font-weight:500}.recent-visits{display:grid;grid-gap:8px;gap:8px}.recent-visits eo-link::part(link){background-color:var(--color-fill-bg-base-1);border-radius:3px;color:var(--color-header-text);display:flex;align-items:center;height:24px;padding:0 8px}.sidebar-menu-item > eo-link:hover::part(link),\n.sidebar-menu-item > eo-link:hover .sidebar-menu-icon,\n.menu-item > eo-link:hover::part(link),\n.menu-item > eo-link:hover .menu-icon,\n.menu-item > eo-link:hover .menu-item-toggle,\n.recent-visits eo-link:hover::part(link){color:var(--color-brand-hover)}.spinner{display:flex;justify-content:center;align-items:center;color:var(--theme-doderblue-color);flex:1;font-size:30px}.empty,\n.loading > :not(.spinner){display:none}@supports not (inset: 0){.content,\n .search-box,\n .sidebar-menu,\n .menu,\n .sub-menu,\n .sidebar-menu-item,\n .menu-item:not(.folder),\n .sidebar-menu-item > eo-link::part(link),\n .menu-item > eo-link::part(link){gap:0}.sidebar-menu > :not(:first-child),\n .menu > :not(:first-child),\n .sub-menu > :not(:first-child){margin-top:14px}.search-icon,\n .sidebar-menu-icon,\n .menu-icon{margin-right:8px}.search-clear,\n .menu-item-star,\n .menu-item-toggle{margin-left:8px}.content > :not(:last-child){margin-bottom:24px}}`,""]);const d=u.toString()},9534:(e,t,n)=>{n.d(t,{Z:()=>o});var a=n(9601),i=n.n(a),r=n(2609),l=n.n(r)()(i());l.push([e.id,":host{display:block;--local-menu-icon-color:#8c8c8c}:host([hidden]){display:none;--local-menu-icon-color:rgba(255,255,255,0.45)}ul{list-style:none;margin:0;padding:0}.menu-groups{display:grid;grid-gap:32px 16px;gap:32px 16px;grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}.menu,\n.sub-menu{display:flex;flex-direction:column;gap:14px}.menu-folder-label-wrapper > eo-link,\n.menu-item > eo-link{display:block}.menu-folder-label-wrapper > eo-link::part(link),\n.menu-item > eo-link::part(link){height:20px;display:flex;align-items:center;gap:8px;color:var(--color-header-text)}.menu-group-label-wrapper,\n.menu-folder-label-wrapper,\n.menu-item:not(.folder){display:flex;gap:8px;align-items:center}.menu-group-label-wrapper{gap:3px}.menu-group:not(.empty) .menu-group-label-wrapper{margin-bottom:14px}.menu-group-label,\n.menu-item-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.menu-group-label{font-size:var(--card-title-font-size);font-weight:500;color:var(--color-header-text)}.menu-icon{color:var(--local-menu-icon-color)}.menu-folder-label-wrapper > eo-link,\n.menu-item > eo-link{max-width:100%;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;min-width:0}.sub-menu:not(.expanded){display:none}.sub-menu{margin-left:8px;border-left:1px solid var(--color-text-divider-line);padding-left:15px}.menu-item:not(.empty) .sub-menu{margin-top:14px}.menu-item-toggle{color:var(--color-secondary-text)}.menu-config{visibility:hidden;color:var(--color-brand);cursor:pointer;display:flex;justify-content:center;align-items:center;height:24px;width:0}.menu-config.active,\n.menu-group-label-wrapper:hover .menu-config,\n.menu-item:not(.folder):hover .menu-config,\n.menu-folder-label-wrapper:hover .menu-config{visibility:visible;width:24px}.menu-config:hover,\n.menu-item > eo-link:hover::part(link),\n.menu-item > eo-link:hover .menu-icon,\n.menu-folder-label-wrapper > eo-link:hover::part(link),\n.menu-folder-label-wrapper > eo-link:hover .menu-icon,\n.menu-folder-label-wrapper > eo-link:hover .menu-item-toggle{color:var(--color-brand-hover)}@supports not (inset: 0){.sub-menu,\n .menu,\n .menu-group-label-wrapper,\n .menu-folder-label-wrapper,\n .menu-item:not(.folder),\n .menu-item > eo-link::part(link){gap:0}.menu > :not(:first-child),\n .sub-menu > :not(:first-child){margin-top:14px}.menu-icon{margin-right:8px}eo-dropdown-actions,\n .menu-item-toggle{margin-left:8px}}",""]);const o=l.toString()},2252:(e,t,n)=>{n.d(t,{Z:()=>o});var a=n(9601),i=n.n(a),r=n(2609),l=n.n(r)()(i());l.push([e.id,":host{display:block}:host([hidden]){display:none}.quick-access-list{display:grid;grid-gap:14px;gap:14px;grid-template-columns:repeat(2,1fr);list-style:none;margin:0;padding:0}.sidebar-menu-item{display:flex;align-items:center;justify-content:space-between;overflow:hidden}.sidebar-menu-item > eo-link{display:block;min-width:0}.sidebar-menu-item > eo-link::part(link){display:flex;align-items:center;height:20px;gap:8px;color:var(--color-header-text)}.sidebar-menu-icon{color:var(--left-sidebar-item-collapsed-icon-color)}.menu-item-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.menu-item-remove{color:var(--color-secondary-text);cursor:pointer}.sidebar-menu-item:not(:hover) .menu-item-remove{display:none}.menu-item-remove:hover{color:var(--color-normal-text)}.menu-item-remove:active{color:var(--color-strong-text)}.sidebar-menu-item > eo-link:hover::part(link),\n.sidebar-menu-item > eo-link:hover .sidebar-menu-icon{color:var(--color-brand-hover)}@supports not (inset: 0){.sidebar-menu-item,\n .sidebar-menu-item > eo-link::part(link){gap:0}.sidebar-menu-icon{margin-right:8px}}",""]);const o=l.toString()},4506:(e,t,n)=>{n.d(t,{Z:()=>o});var a=n(9601),i=n.n(a),r=n(2609),l=n.n(r)()(i());l.push([e.id,":host{display:block}:host([hidden]){display:none}.recent-visits{list-style:none;margin:0;padding:0;display:grid;grid-gap:8px;gap:8px;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));max-height:56px;overflow:hidden}.recent-visits span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.recent-visits eo-link{display:block;min-width:0}.recent-visits eo-link::part(link){background-color:var(--color-fill-bg-base-1);border-radius:3px;color:var(--color-header-text);display:flex;align-items:center;height:24px;padding:0 8px}.recent-visits eo-link:hover::part(link){color:var(--color-brand-hover)}",""]);const o=l.toString()},2222:(e,t,n)=>{n.d(t,{Z:()=>o});var a=n(9601),i=n.n(a),r=n(2609),l=n.n(r)()(i());l.push([e.id,":host{display:block}:host([hidden]){display:none}.container{position:relative}.dropdown{margin-top:5px;position:absolute;top:100%;left:0px;width:100%;z-index:1050;padding:20px 24px 24px;overflow:hidden;box-sizing:border-box;background-color:var(--antd-select-dropdown-bg);border-radius:4px;box-shadow:var(--antd-box-shadow-base);display:none}.dropdown-active{display:block}.search-box{border-bottom:1px solid var(--color-text-divider-line);display:flex;gap:8px;align-items:center;padding:10px 0;cursor:text}.search-icon{color:var(--color-auxiliary-text)}.search-input{padding:0;margin:0;border:none;outline:none;color:inherit;background-color:transparent;font-size:14px;line-height:22px;flex:1;min-width:0}.search-input::placeholder{color:var(--color-disabled-text);opacity:1}.search-clear{display:none;color:var(--color-secondary-text);cursor:pointer}.search-clear.searching{display:inline-block}.search-clear:hover{color:var(--color-auxiliary-text)}.dropdown-content{min-width:0;display:flex;flex-direction:column;gap:24px;max-height:260px;overflow-y:auto}.spinner{display:flex;justify-content:center;align-items:center;color:var(--theme-doderblue-color);flex:1;font-size:30px}.loading > :not(.spinner){display:none}.menu-group-label,\n.menu-item-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.menu-groups,\n.menu,\n.sub-menu{list-style:none;margin:0;padding:0}.menu,\n.sub-menu{display:flex;flex-direction:column;gap:14px}.menu-item > eo-link{display:block;min-width:0}.menu-item > eo-link::part(link){height:20px;display:flex;align-items:center;gap:8px;color:var(--color-header-text)}.menu-groups{grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}.menu-groups{display:grid;grid-gap:32px 8px;gap:32px 8px}.menu-group{padding-right:12px;color:var(--color-header-text)}.menu-group-label{font-size:var(--card-title-font-size);font-weight:500;color:var(--color-header-text);margin-bottom:14px}.menu-item:not(.folder){display:flex;gap:8px;align-items:center}.menu-icon{color:var(--eo-search-launchpad-menu-icon-color)}.menu-item.active,\n.menu-item.active .menu-icon{color:var(--color-brand-active)}.sub-menu:not(.expanded){display:none}.sub-menu{margin-top:14px;margin-left:8px;border-left:1px solid var(--color-text-divider-line);padding-left:15px}.menu-item-star{cursor:pointer}.menu-item-star,\n.menu-item-toggle{color:var(--color-secondary-text)}.menu-item-star{display:none}.can-star.starred > .menu-item-star,\n.can-star:hover > .menu-item-star{display:inline-block}.can-star:not(.starred) > .menu-item-star{color:var(--color-secondary-text)}.starred > .menu-item-star{color:var(--palette-yellow-6)}.menu-item > eo-link:hover::part(link),\n.menu-item > eo-link:hover .menu-icon,\n.menu-item > eo-link:hover .menu-item-toggle{color:var(--color-brand-hover)}@supports not (inset: 0){.search-box,\n .menu,\n .sub-menu,\n .menu-item:not(.folder),\n .menu-item > eo-link::part(link){gap:0}.dropdown-content{display:grid;grid-auto-flow:row}.dropdown-content:not(.loading){height:-webkit-min-content;height:-moz-min-content;height:min-content}.menu > :not(:first-child),\n .sub-menu > :not(:first-child){margin-top:14px}.search-icon,\n .menu-icon{margin-right:8px}.search-clear,\n .menu-item-star,\n .menu-item-toggle{margin-left:8px}}",""]);const o=l.toString()},7432:(e,t,n)=>{n.d(t,{Z:()=>o});var a=n(9601),i=n.n(a),r=n(2609),l=n.n(r)()(i());l.push([e.id,":host{display:block}:host([hidden]){display:none}.menu-container{box-sizing:border-box;background:var(--third-menu-default-bg);border:1px solid var(--stroke-color-default);border-width:0 1px 0 0;border-radius:0px;padding:20px 0px;height:100%}.menu-container .header{display:flex;gap:10px;align-items:center;font-size:var(--title-font-size);padding:0 24px 16px 24px;line-height:26px;color:var(--color-header-text)}.menu-container .header .title{overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;word-wrap:break-word}.menu-container .content{padding:0 12px}.menu-container .menu-item,\n .menu-container .menu-sub-item::part(sub-menu-item-title){margin:0;padding-right:16px;height:40px;line-height:40px;border-radius:4px;margin-bottom:4px}.menu-container .menu-item-link{width:100%;color:var(--color-secondary-text)}.menu-container .menu-item-text,\n .menu-container .menu-group-text,\n .menu-container .menu-item-link{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.menu-container .menu-item-text{display:block;box-sizing:border-box;color:var(--antd-text-color)}.menu-container .menu-item:hover{background:var(--sub-menu-brick-item-hover-bg);color:var(--color-header-text)}.menu-container .menu-item:hover .menu-item-text{color:var(--color-header-text);font-weight:var(--font-weight-400)}.menu-container .menu-sub-item::part(sub-menu-item-title):hover{color:var(--color-header-text)}.menu-container .menu-item-text.item-has-icon{margin-left:10px}.menu-container .menu-item[active]{color:var(--color-brand);background-color:var(--third-menu-item-selected-bg)}.menu-container .menu-item[active] .menu-item-text{color:var(--color-brand);font-weight:var(--font-weight-500)}",""]);const o=l.toString()},4781:(e,t,n)=>{n.d(t,{Z:()=>o});var a=n(9601),i=n.n(a),r=n(2609),l=n.n(r)()(i());l.push([e.id,':host{display:block;--menu-item-icon-size:20px}:host([hidden]){display:none}*,\n*::before,\n*::after{box-sizing:border-box}.menu-group-title{position:relative;display:flex;align-items:center;min-height:36px;padding:8px 12px;line-height:20px;color:var(--left-secondary-text-color);border-radius:var(--larger-border-radius);transition:all var(--side-bar-collapse-transition-duration) var(--side-bar-collapse-transition-timing-function)}.menu-group-title-icon-container{flex-shrink:0;margin-right:14px;display:flex;align-items:center;justify-content:center;width:var(--menu-item-icon-size);height:var(--menu-item-icon-size);font-size:var(--menu-item-icon-size);transition:all var(--side-bar-collapse-transition-duration) var(--side-bar-collapse-transition-timing-function)}.menu-group-title-icon{width:1em;height:1em;border-bottom:2px solid var(--left-sidebar-group-border-color)}.menu-group-title-text{flex:1;font-size:12px;overflow:hidden;white-space:nowrap;margin-right:12px}.menu-group-list slot::slotted(*){margin-top:2px}.menu-group-arrow{position:absolute;top:50%;right:12px;width:10px;color:var(--left-sidebar-item-arrow-color);transform:translateY(-2px);transition:all 0.3s cubic-bezier(0.645,0.045,0.355,1)}.menu-group-arrow::before,\n.menu-group-arrow::after{content:"";position:absolute;width:6px;height:1.5px;background-color:currentColor;border-radius:2px;transition:all 0.3s cubic-bezier(0.645,0.045,0.355,1)}.menu-group-arrow::before{transform:rotate(45deg) translateX(2.5px)}.menu-group-arrow::after{transform:rotate(-45deg) translateX(-2.5px)}.menu-group-collapsed .menu-group-arrow{transform:translateY(-50%)}.menu-group-collapsed .menu-group-arrow::before{transform:rotate(-45deg) translateX(2.5px)}.menu-group-collapsed .menu-group-arrow::after{transform:rotate(45deg) translateX(-2.5px)}.menu-group-list{display:grid;grid-template-rows:1fr;transition:all var(--side-bar-collapse-transition-duration) var(--side-bar-collapse-transition-timing-function)}.menu-group-list-inner{overflow:hidden}:host([menu-collapsed]) .menu-group-title{padding:10px calc(50% - var(--menu-item-icon-size) / 2)}:host(:not([menu-collapsed])) .menu-group-title-icon-container{width:0;margin-right:0;opacity:0}:host([menu-collapsed]) .menu-group-title-text{opacity:0}:host([menu-collapsed]) .menu-group-arrow{opacity:0}:host(:not([menu-collapsed])) .menu-group-title-text{white-space:pre-wrap;display:-webkit-inline-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;text-overflow:ellipsis;color:#7f8ba6}:host([collapsable]) .menu-group-collapsed .menu-group-list{grid-template-rows:0fr;opacity:0}',""]);const o=l.toString()},2049:(e,t,n)=>{n.d(t,{Z:()=>o});var a=n(9601),i=n.n(a),r=n(2609),l=n.n(r)()(i());l.push([e.id,":host{display:block;--menu-item-icon-size:20px}:host([hidden]){display:none}*,\n*::before,\n*::after{box-sizing:border-box}eo-link{display:block}.menu-item{position:relative;display:flex;align-items:center;min-height:36px;padding:8px 12px;line-height:20px;color:var(--left-sidebar-item-normal-color);border-radius:var(--larger-border-radius);cursor:pointer;transition:all var(--side-bar-collapse-transition-duration) var(--side-bar-collapse-transition-timing-function)}.menu-item-icon-container{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:var(--menu-item-icon-size);height:var(--menu-item-icon-size);font-size:var(--menu-item-icon-size);color:rgb(87,104,156)}.menu-item-text{flex:1;margin-left:14px;margin-right:12px;font-size:14px;overflow:hidden;white-space:nowrap;transition:all var(--side-bar-collapse-transition-duration) var(--side-bar-collapse-transition-timing-function)}.menu-item:hover{background:var(--left-sidebar-item-hover-bg)}:host([selected]) .menu-item{color:var(--left-sidebar-item-selected-color);background:var(--left-sidebar-item-selected-bg);box-shadow:0px 2px 12px 0px rgba(26,122,255,0.30196)}:host([selected]) .menu-item-icon-container{color:var(--left-sidebar-item-selected-color)}:host([selected]) .menu-item:hover{background-color:var(--left-sidebar-item-selected-hover-bg)}:host([menu-collapsed]) .menu-item{padding:10px calc(50% - var(--menu-item-icon-size) / 2)}:host([menu-collapsed]) .menu-item-text{opacity:0}:host(:not([menu-collapsed])) .menu-item-text{white-space:pre-wrap;display:-webkit-inline-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;text-overflow:ellipsis}",""]);const o=l.toString()},1985:(e,t,n)=>{n.d(t,{Z:()=>o});var a=n(9601),i=n.n(a),r=n(2609),l=n.n(r)()(i());l.push([e.id,':host{display:block;--menu-item-icon-size:20px}:host([hidden]){display:none}*,\n*::before,\n*::after{box-sizing:border-box}.menu-submenu-title{position:relative;display:flex;align-items:center;min-height:36px;padding:8px 12px;line-height:20px;color:var(--left-sidebar-item-normal-color);border-radius:var(--larger-border-radius);cursor:pointer;transition:all var(--side-bar-collapse-transition-duration) var(--side-bar-collapse-transition-timing-function)}.menu-submenu-title-icon-container{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:var(--menu-item-icon-size);height:var(--menu-item-icon-size);font-size:var(--menu-item-icon-size);color:var(--left-sidebar-item-collapsed-icon-color)}.menu-submenu-title-text{flex:1;margin-left:14px;margin-right:12px;font-size:14px;overflow:hidden;white-space:nowrap}.menu-submenu-arrow{position:absolute;top:50%;right:12px;width:10px;color:var(--left-sidebar-item-arrow-color);transform:translateY(-2px);transition:all 0.3s cubic-bezier(0.645,0.045,0.355,1)}.menu-submenu-arrow::before,\n.menu-submenu-arrow::after{content:"";position:absolute;width:6px;height:1.5px;background-color:currentColor;border-radius:2px;transition:all 0.3s cubic-bezier(0.645,0.045,0.355,1)}.menu-submenu-arrow::before{transform:rotate(45deg) translateX(2.5px)}.menu-submenu-arrow::after{transform:rotate(-45deg) translateX(-2.5px)}.menu-submenu-collapsed .menu-submenu-arrow{transform:translateY(-50%)}.menu-submenu-collapsed .menu-submenu-arrow::before{transform:rotate(-45deg) translateX(2.5px)}.menu-submenu-collapsed .menu-submenu-arrow::after{transform:rotate(45deg) translateX(-2.5px)}.menu-submenu-title:hover{background:var(--palette-gray-4)}.menu-sub{display:grid;grid-template-rows:1fr;transition:all var(--side-bar-collapse-transition-duration) var(--side-bar-collapse-transition-timing-function)}.menu-submenu-collapsed .menu-sub{grid-template-rows:0fr;opacity:0}.menu-sub-inner{overflow:hidden}.menu-sub-inner slot::slotted(*){margin-top:2px}:host([menu-collapsed]) .menu-submenu-title{padding:10px calc(50% - var(--menu-item-icon-size) / 2)}:host([menu-collapsed]) .menu-submenu-title-text{opacity:0}:host([menu-collapsed]) .menu-submenu-arrow{opacity:0}:host(:not([menu-collapsed])) .menu-submenu-title-text{white-space:pre-wrap;display:-webkit-inline-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;text-overflow:ellipsis}:host([selected]):host([menu-collapsed]) .menu-submenu-title, :host([selected]):host([collapsed]) .menu-submenu-title{background:var(--left-sidebar-item-selected-bg);color:var(--left-sidebar-item-selected-color)}:host([selected]):host([menu-collapsed]) .menu-submenu-title-icon-container,\n :host([selected]):host([collapsed]) .menu-submenu-title-icon-container,\n :host([selected]):host([menu-collapsed]) .menu-submenu-arrow,\n :host([selected]):host([collapsed]) .menu-submenu-arrow{color:var(--left-sidebar-item-selected-color)}:host([selected]) .menu-submenu-title-text{font-weight:var(--font-weight-500)}',""]);const o=l.toString()},24:(e,t,n)=>{n.d(t,{Z:()=>o});var a=n(9601),i=n.n(a),r=n(2609),l=n.n(r)()(i());l.push([e.id,":host{display:block;transition:width var(--side-bar-collapse-transition-duration) var(--side-bar-collapse-transition-timing-function)}:host([hidden]){display:none}*,\n*::before,\n*::after{box-sizing:border-box}.sidebar-menu-item-list slot::slotted(*){margin-top:6px}",""]);const o=l.toString()},4487:(e,t,n)=>{n.d(t,{Z:()=>o});var a=n(9601),i=n.n(a),r=n(2609),l=n.n(r)()(i());l.push([e.id,':host{display:block}:host([hidden]){display:none}:host([position="static"]){height:100%}*,\n*::before,\n*::after{box-sizing:border-box}.sidebar-container{position:relative;z-index:999;height:100%}.sidebar-container,\n.inner{transition:all var(--side-bar-collapse-transition-duration) var(--side-bar-collapse-transition-timing-function)}:host(:not([position="static"])) .sidebar-container{position:fixed;left:0;top:var(--app-bar-height);height:calc(100vh - var(--app-bar-height))}.inner{position:absolute;left:0;height:100%;display:flex;flex-direction:column;background-color:var(--left-menu-bg);border-right:1px solid var(--left-sidebar-border-right)}.inner:hover{background-color:var(--left-menu-hover-bg)}.inner::before{content:"";position:absolute;left:0;right:0;top:0;bottom:0;z-index:-1;background:var(--sidebar-bg)}.header{padding:0 12px;margin-top:14px;height:52px;flex-shrink:0}.menu-title{height:100%;display:flex;align-items:center;color:var(--left-sidebar-large-title-color)}.menu-title-icon-container{flex-shrink:0;display:flex;justify-content:center;align-items:center;width:20px;height:20px;font-size:20px;line-height:0;transition:all var(--side-bar-collapse-transition-duration) var(--side-bar-collapse-transition-timing-function)}.menu-title-icon{color:rgb(87,104,156,1)}.menu-title-point{width:4px;height:4px;background:var(--antd-text-color);border-radius:50%}.menu-title-text{font-size:16px;font-weight:var(--font-weight-500);color:var(--left-sidebar-large-title-color);overflow:hidden;white-space:nowrap;text-overflow:ellipsis;transition:all var(--side-bar-collapse-transition-duration) var(--side-bar-collapse-transition-timing-function)}.state-collapsed .menu-title{padding:0 calc(50% - 10px)}.state-hovered .menu-title,\n.state-expanded .menu-title{padding:0 12px}.state-collapsed .menu-title-icon-container{margin-right:12px}.state-hovered .menu-title-icon-container,\n.state-expanded .menu-title-icon-container{margin-right:0;width:0;opacity:0}.content{padding:0 12px;flex:1;overflow-y:auto;scrollbar-width:none}.content::-webkit-scrollbar{width:0;background:transparent}.content.show-shadow{box-shadow:0 -17px 10px -16px rgb(0 0 0/8%) inset}.footer{height:60px;flex-shrink:0;display:flex;align-items:center;justify-content:flex-end}.fixed-icon{display:flex;justify-content:center;align-items:center;width:20px;height:20px;margin-right:8px;transition:all var(--side-bar-collapse-transition-duration) var(--side-bar-collapse-transition-timing-function)}.fixed-icon > svg{width:100%;height:100%}.fixed-icon:hover > svg path[fill]{fill:var(--color-brand)}.state-collapsed .fixed-icon{visibility:hidden;opacity:0}.state-hovered .fixed-icon,\n.state-expanded .fixed-icon{visibility:visible;opacity:1}.state-hovered .inner{box-shadow:var(--left-sidebar-shadow)}.resize-line{position:absolute;right:-2px;height:100%;width:2px;cursor:col-resize}.resize-line:hover,\n.resize-line:active{background-color:rgba(26,122,255,1)}.dragging,\n.dragging .inner{transition:none}',""]);const o=l.toString()},8991:e=>{e.exports=function(e,t){return t||(t={}),e?(e=String(e.__esModule?e.default:e),/^['"].*['"]$/.test(e)&&(e=e.slice(1,-1)),t.hash&&(e+=t.hash),/["'() \t\n]|(%20)/.test(e)||t.needQuotes?'"'.concat(e.replace(/"/g,'\\"').replace(/\n/g,"\\n"),'"'):e):e}},2754:(e,t,n)=>{e.exports=n.p+"images/9879d37a.png"},5863:(e,t,n)=>{function a(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}n.d(t,{Z:()=>a})},175:(e,t,n)=>{function a(e,t,n){if(!t.has(e))throw new TypeError("attempted to "+n+" private field on non-instance");return t.get(e)}n.d(t,{Z:()=>a})},687:(e,t,n)=>{n.d(t,{Z:()=>i});var a=n(175);function i(e,t){return function(e,t){return t.get?t.get.call(e):t.value}(e,(0,a.Z)(e,t,"get"))}},3395:(e,t,n)=>{n.d(t,{Z:()=>i});var a=n(5863);function i(e,t,n){(0,a.Z)(e,t),t.set(e,n)}},381:(e,t,n)=>{n.d(t,{Z:()=>i});var a=n(175);function i(e,t,n){return function(e,t,n){if(t.set)t.set.call(e,n);else{if(!t.writable)throw new TypeError("attempted to set read only private field");t.value=n}}(e,(0,a.Z)(e,t,"set"),n),n}},8685:(e,t,n)=>{n.d(t,{i:()=>r});var a=n(4795),i=n(3352),r=function(){var e=(0,a.Z)((function*(e,t){return(yield i.http.post("api/gateway/user_service.launchpad.CreateCollectionV2/api/v2/launchpad/collection",e,t)).data}));return function(t,n){return e.apply(this,arguments)}}()},5003:(e,t,n)=>{n.d(t,{I:()=>i});var a=n(3352),i=(e,t)=>a.http.delete("api/gateway/user_service.launchpad.DeleteCollectionV2/api/v2/launchpad/collection/".concat(e),t)},4008:(e,t,n)=>{n.d(t,{$:()=>l});var a=n(3028),i=n(4795),r=n(3352),l=function(){var e=(0,i.Z)((function*(e,t){return(yield r.http.get("api/gateway/user_service.launchpad.ListCollectionV2/api/v2/launchpad/collection",(0,a.Z)((0,a.Z)({},t),{},{params:e}))).data}));return function(t,n){return e.apply(this,arguments)}}()},3821:(e,t,n)=>{n.d(t,{i:()=>l});var a=n(3028),i=n(4795),r=n(3352),l=function(){var e=(0,i.Z)((function*(e,t){return(yield r.http.get("api/gateway/user_service.my_collection.ListMyCollection/api/v1/user_service/my_collection/collections",(0,a.Z)((0,a.Z)({},t),{},{params:e}))).data}));return function(t,n){return e.apply(this,arguments)}}()},648:(e,t,n)=>{n.d(t,{B:()=>i});var a=n(3352),i=(e,t)=>a.http.post("api/gateway/user_service.my_collection.UpsertMyCollection/api/v1/user_service/my_collection/upsert_collections",e,t)}}]);
3
- //# sourceMappingURL=5951.a9b5d4f4.js.map
@@ -1,9 +0,0 @@
1
- /**! @contract easyops.api.user_service.launchpad.CreateCollectionV2@1.0.0 */
2
-
3
- /**! @contract easyops.api.user_service.launchpad.DeleteCollectionV2@1.0.0 */
4
-
5
- /**! @contract easyops.api.user_service.launchpad.ListCollectionV2@1.0.0 */
6
-
7
- /**! @contract easyops.api.user_service.my_collection.ListMyCollection@1.0.0 */
8
-
9
- /**! @contract easyops.api.user_service.my_collection.UpsertMyCollection@1.0.0 */