@next-bricks/nav 1.24.9 → 1.24.10

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 (74) hide show
  1. package/dist/bricks.json +8 -8
  2. package/dist/chunks/{2133.c327a346.js → 2133.7a40ebb2.js} +2 -2
  3. package/dist/chunks/{2133.c327a346.js.map → 2133.7a40ebb2.js.map} +1 -1
  4. package/dist/chunks/{2241.54e34874.js → 2241.e6e34a55.js} +3 -3
  5. package/dist/chunks/{2241.54e34874.js.map → 2241.e6e34a55.js.map} +1 -1
  6. package/dist/chunks/{4433.35757105.js → 4433.a908e194.js} +2 -2
  7. package/dist/chunks/{4433.35757105.js.map → 4433.a908e194.js.map} +1 -1
  8. package/dist/chunks/{4727.5ba2550c.js → 4727.d9082275.js} +2 -2
  9. package/dist/chunks/{4727.5ba2550c.js.map → 4727.d9082275.js.map} +1 -1
  10. package/dist/chunks/{4837.4cb56ebe.js → 4837.b5ed600d.js} +2 -2
  11. package/dist/chunks/{7218.6057c0f1.js.map → 4837.b5ed600d.js.map} +1 -1
  12. package/dist/chunks/{6595.609a01a2.js → 6595.eae95c18.js} +2 -2
  13. package/dist/chunks/{6595.609a01a2.js.map → 6595.eae95c18.js.map} +1 -1
  14. package/dist/chunks/{7218.6057c0f1.js → 7218.6547d083.js} +2 -2
  15. package/dist/chunks/{4837.4cb56ebe.js.map → 7218.6547d083.js.map} +1 -1
  16. package/dist/chunks/{9118.3bfc255e.js → 9118.c70241ba.js} +3 -3
  17. package/dist/chunks/{9118.3bfc255e.js.map → 9118.c70241ba.js.map} +1 -1
  18. package/dist/chunks/{9149.f0c950df.js → 9149.6aa0810a.js} +2 -2
  19. package/dist/chunks/{9149.f0c950df.js.map → 9149.6aa0810a.js.map} +1 -1
  20. package/dist/chunks/{9363.42868c01.js → 9363.cb610e3e.js} +3 -3
  21. package/dist/chunks/{9363.42868c01.js.map → 9363.cb610e3e.js.map} +1 -1
  22. package/dist/chunks/948.8641bd00.js.map +1 -1
  23. package/dist/chunks/{easyops-navbar-alerts.4308b4bf.js → easyops-navbar-alerts.2aa70f37.js} +2 -2
  24. package/dist/chunks/{easyops-navbar-alerts.4308b4bf.js.map → easyops-navbar-alerts.2aa70f37.js.map} +1 -1
  25. package/dist/chunks/{eo-directory-tree.6d040540.js → eo-directory-tree.73e83674.js} +3 -3
  26. package/dist/chunks/{eo-directory-tree.6d040540.js.map → eo-directory-tree.73e83674.js.map} +1 -1
  27. package/dist/chunks/{eo-directory.9d3eea0c.js → eo-directory.a271465b.js} +3 -3
  28. package/dist/chunks/{eo-directory.9d3eea0c.js.map → eo-directory.a271465b.js.map} +1 -1
  29. package/dist/chunks/{eo-frame-breadcrumb.e92bb7b9.js → eo-frame-breadcrumb.88ef9279.js} +2 -2
  30. package/dist/chunks/{eo-frame-breadcrumb.e92bb7b9.js.map → eo-frame-breadcrumb.88ef9279.js.map} +1 -1
  31. package/dist/chunks/{eo-launchpad-button-v2.4ebe7586.js → eo-launchpad-button-v2.e035fd94.js} +3 -3
  32. package/dist/chunks/{eo-launchpad-button-v2.4ebe7586.js.map → eo-launchpad-button-v2.e035fd94.js.map} +1 -1
  33. package/dist/chunks/{eo-nav-menu.29780b25.js → eo-nav-menu.640648bb.js} +2 -2
  34. package/dist/chunks/{eo-nav-menu.29780b25.js.map → eo-nav-menu.640648bb.js.map} +1 -1
  35. package/dist/chunks/{eo-sidebar-menu-group.1a02072c.js → eo-sidebar-menu-group.66decf41.js} +3 -3
  36. package/dist/chunks/{eo-sidebar-menu-group.1a02072c.js.map → eo-sidebar-menu-group.66decf41.js.map} +1 -1
  37. package/dist/chunks/{eo-sidebar-menu-submenu.04db0329.js → eo-sidebar-menu-submenu.5308ee43.js} +3 -3
  38. package/dist/chunks/{eo-sidebar-menu-submenu.04db0329.js.map → eo-sidebar-menu-submenu.5308ee43.js.map} +1 -1
  39. package/dist/chunks/{eo-sidebar-menu.2b51dce7.js → eo-sidebar-menu.39722013.js} +2 -2
  40. package/dist/chunks/{eo-sidebar-menu.2b51dce7.js.map → eo-sidebar-menu.39722013.js.map} +1 -1
  41. package/dist/chunks/{eo-sidebar-sub-menu.f8ec8a0a.js → eo-sidebar-sub-menu.d8255f31.js} +3 -3
  42. package/dist/chunks/{eo-sidebar-sub-menu.f8ec8a0a.js.map → eo-sidebar-sub-menu.d8255f31.js.map} +1 -1
  43. package/dist/chunks/{eo-sidebar.23880625.js → eo-sidebar.ed2833ef.js} +3 -3
  44. package/dist/chunks/{eo-sidebar.23880625.js.map → eo-sidebar.ed2833ef.js.map} +1 -1
  45. package/dist/chunks/{launchpad-config.7a223e34.js → launchpad-config.1c537f55.js} +3 -3
  46. package/dist/chunks/{launchpad-config.7a223e34.js.map → launchpad-config.1c537f55.js.map} +1 -1
  47. package/dist/chunks/{main.78c37ae1.js → main.0a22c3de.js} +2 -2
  48. package/dist/chunks/{main.78c37ae1.js.map → main.0a22c3de.js.map} +1 -1
  49. package/dist/chunks/{nav-logo.60ba508b.js → nav-logo.8d4c94b9.js} +2 -2
  50. package/dist/chunks/{nav-logo.60ba508b.js.map → nav-logo.8d4c94b9.js.map} +1 -1
  51. package/dist/chunks/{poll-announce.3fbb9b39.js → poll-announce.e1c07541.js} +3 -3
  52. package/dist/chunks/{poll-announce.3fbb9b39.js.map → poll-announce.e1c07541.js.map} +1 -1
  53. package/dist/chunks/{query-search.78c431d8.js → query-search.1f1900d6.js} +3 -3
  54. package/dist/chunks/query-search.1f1900d6.js.map +1 -0
  55. package/dist/examples.json +6 -6
  56. package/dist/{index.8bc97879.js → index.4abc895c.js} +2 -2
  57. package/dist/{index.8bc97879.js.map → index.4abc895c.js.map} +1 -1
  58. package/dist/manifest.json +43 -43
  59. package/dist/types.json +66 -66
  60. package/package.json +2 -2
  61. package/dist/chunks/query-search.78c431d8.js.map +0 -1
  62. /package/dist/chunks/{2241.54e34874.js.LICENSE.txt → 2241.e6e34a55.js.LICENSE.txt} +0 -0
  63. /package/dist/chunks/{9118.3bfc255e.js.LICENSE.txt → 9118.c70241ba.js.LICENSE.txt} +0 -0
  64. /package/dist/chunks/{9363.42868c01.js.LICENSE.txt → 9363.cb610e3e.js.LICENSE.txt} +0 -0
  65. /package/dist/chunks/{eo-directory-tree.6d040540.js.LICENSE.txt → eo-directory-tree.73e83674.js.LICENSE.txt} +0 -0
  66. /package/dist/chunks/{eo-directory.9d3eea0c.js.LICENSE.txt → eo-directory.a271465b.js.LICENSE.txt} +0 -0
  67. /package/dist/chunks/{eo-launchpad-button-v2.4ebe7586.js.LICENSE.txt → eo-launchpad-button-v2.e035fd94.js.LICENSE.txt} +0 -0
  68. /package/dist/chunks/{eo-sidebar-menu-group.1a02072c.js.LICENSE.txt → eo-sidebar-menu-group.66decf41.js.LICENSE.txt} +0 -0
  69. /package/dist/chunks/{eo-sidebar-menu-submenu.04db0329.js.LICENSE.txt → eo-sidebar-menu-submenu.5308ee43.js.LICENSE.txt} +0 -0
  70. /package/dist/chunks/{eo-sidebar-sub-menu.f8ec8a0a.js.LICENSE.txt → eo-sidebar-sub-menu.d8255f31.js.LICENSE.txt} +0 -0
  71. /package/dist/chunks/{eo-sidebar.23880625.js.LICENSE.txt → eo-sidebar.ed2833ef.js.LICENSE.txt} +0 -0
  72. /package/dist/chunks/{launchpad-config.7a223e34.js.LICENSE.txt → launchpad-config.1c537f55.js.LICENSE.txt} +0 -0
  73. /package/dist/chunks/{poll-announce.3fbb9b39.js.LICENSE.txt → poll-announce.e1c07541.js.LICENSE.txt} +0 -0
  74. /package/dist/chunks/{query-search.78c431d8.js.LICENSE.txt → query-search.1f1900d6.js.LICENSE.txt} +0 -0
package/dist/bricks.json CHANGED
@@ -17,12 +17,12 @@
17
17
  "eo-launchpad-quick-access",
18
18
  "eo-search-launchpad",
19
19
  "eo-launchpad-recent-visits",
20
- "eo-app-bar-wrapper",
21
20
  "eo-frame-breadcrumb",
21
+ "eo-app-bar-wrapper",
22
22
  "eo-sidebar-menu-item",
23
23
  "eo-sidebar-menu-group",
24
- "eo-sidebar-menu",
25
24
  "eo-sidebar-menu-submenu",
25
+ "eo-sidebar-menu",
26
26
  "eo-sidebar",
27
27
  "eo-sidebar-sub-menu",
28
28
  "eo-directory",
@@ -95,17 +95,17 @@
95
95
  "eo-sidebar-menu-item",
96
96
  "eo-sidebar-menu-submenu"
97
97
  ],
98
- "eo-sidebar-menu": [
99
- "eo-sidebar-menu-item",
100
- "eo-sidebar-menu-group",
101
- "eo-sidebar-menu-submenu"
102
- ],
103
98
  "eo-sidebar-menu-submenu": [
104
99
  "eo-icon",
105
100
  "eo-sidebar-menu",
106
101
  "eo-sidebar-menu-item",
107
102
  "eo-sidebar-menu-group"
108
103
  ],
104
+ "eo-sidebar-menu": [
105
+ "eo-sidebar-menu-item",
106
+ "eo-sidebar-menu-group",
107
+ "eo-sidebar-menu-submenu"
108
+ ],
109
109
  "eo-sidebar": [
110
110
  "eo-tooltip",
111
111
  "eo-icon",
@@ -152,5 +152,5 @@
152
152
  "eo-tooltip"
153
153
  ]
154
154
  },
155
- "filePath": "bricks/nav/dist/index.8bc97879.js"
155
+ "filePath": "bricks/nav/dist/index.4abc895c.js"
156
156
  }
@@ -1,2 +1,2 @@
1
- "use strict";(globalThis.webpackChunk_next_bricks_nav=globalThis.webpackChunk_next_bricks_nav||[]).push([[2133],{403:(e,t,n)=>{n.d(t,{I:()=>i,K:()=>o,NS:()=>s,t:()=>r});var a=n(8443);let o=function(e){return e.ALL="ALL",e.QUICK_ACCESS="QUICK_ACCESS",e.PLATFORM_BASE="PLATFORM_BASE",e.SCENARIO_CENTER="SCENARIO_CENTER",e.SOLUTIONS="SOLUTIONS",e.OPEN_PLATFORM="OPEN_PLATFORM",e.SEARCH_PLACEHOLDER="SEARCH_PLACEHOLDER",e.RECENT_VISITS="RECENT_VISITS",e.FAVORITE="FAVORITE",e.UNFAVORITE="UNFAVORITE",e.FAVORITES_LIMIT_REACHED="FAVORITES_LIMIT_REACHED",e.FAVORITES_LIMIT_MESSAGE="FAVORITES_LIMIT_MESSAGE",e}({});const s="bricks/nav/launchpad-button-v2",i={en:{ALL:"All",QUICK_ACCESS:"Quick Access",PLATFORM_BASE:"Platform Base",SCENARIO_CENTER:"Scenario Center",SOLUTIONS:"Solutions",OPEN_PLATFORM:"Open Platform",SEARCH_PLACEHOLDER:"Search by keyword",RECENT_VISITS:"Recent Visits",FAVORITE:"Favorite",UNFAVORITE:"Unfavorite",FAVORITES_LIMIT_REACHED:"Favorites Limit Reached",FAVORITES_LIMIT_MESSAGE:"Current favorites count has reached the limit ({{count}} items). Please remove some favorites before adding new ones."},zh:{ALL:"全部",QUICK_ACCESS:"快捷访问",PLATFORM_BASE:"平台底座",SCENARIO_CENTER:"场景中心",SOLUTIONS:"解决方案",OPEN_PLATFORM:"开放平台",SEARCH_PLACEHOLDER:"通过关键字搜索",RECENT_VISITS:"最近访问",FAVORITE:"收藏",UNFAVORITE:"取消收藏",FAVORITES_LIMIT_REACHED:"收藏数量已达上限",FAVORITES_LIMIT_MESSAGE:"当前收藏链接数量已达上限({{count}}个),请删除部分收藏后再添加。"}},r=a.i18n.getFixedT(null,s)},2133:(e,t,n)=>{n.d(t,{fm:()=>M,ir:()=>N,pU:()=>b,sZ:()=>V});var a=n(8769),o=n(5256),s=n(1148),i=n(7137),r=n(8002),c=n(4864),l=n(9393),u=n(403),p=n(3346),d=n(7296),m=n(2824),I=n(2887),f=n(8406),h=n(1030);const E=10,A=10;var S,y=n(6659);async function v(){return(await(0,d.K)({page:1,pageSize:E},{interceptorParams:{ignoreLoadingBar:!0},noAbortOnRouteChange:!0})).list}function R(e,t){const{id:n,name:a,localeName:o,description:s}=e;return[n,a,o,s].some((e=>null==e?void 0:e.toLowerCase().includes(t)))?e:null}(0,r.initializeReactI18n)(u.NS,u.I),(0,r.initializeReactI18n)(u.NS,u.I);const T=`launchpad-recent-visits:${null===(S=s.auth.getAuth())||void 0===S?void 0:S.org}`,g=new i.G(localStorage);let C=[],_=new Map,O=new Map,F=!1,L=[],w=!1,k=[],P=!1;const N=new c.x((async()=>{({menuGroups:C,microAppsById:_,customLinksById:O}=await async function(){var e;const t=await(0,p.i)({},{interceptorParams:{ignoreLoadingBar:!0},noAbortOnRouteChange:!0}),n=new Map;for(const e of t.storyboards){var a;const t=e.app;t.localeName=(0,y.y)(t.locales,t.name),null!==(a=s.auth.isBlockedPath)&&void 0!==a&&a.call(s.auth,t.homepage)||n.set(t.id,t)}const o=[],i=new Map;for(const a of t.desktops){const t=[];for(const o of a.items)switch(o.localeName=(0,y.y)(o.locales,o.name),o.type){case"app":{const e=n.get(o.id);e&&t.push({...o,url:e.homepage});break}case"custom":null!==(e=s.auth.isBlockedHref)&&void 0!==e&&e.call(s.auth,o.url)||(t.push(o),i.set(o.id,o));break;case"dir":{const e=[];for(const t of o.items){var r;if(t.localeName=(0,y.y)(t.locales,t.name),"app"===t.type){const a=n.get(t.id);a&&e.push({...t,url:a.homepage})}else"custom"!==t.type||null!==(r=s.auth.isBlockedHref)&&void 0!==r&&r.call(s.auth,t.url)||(e.push(t),i.set(t.id,t))}e.length>0&&t.push({...o,items:e});break}}t.length>0&&(a.localeName=(0,y.y)(a.locales,a.name),o.push({...a,items:t}))}return{menuGroups:o,microAppsById:n,customLinksById:i}}()),F=!0})),M=new c.x((async()=>{L=await async function(){const e=await v(),t=[];for(const n of e)if("microApp"===n.type){const e=n.relatedApp,a=(0,y.y)(e.locales,e.name);t.push({favoriteId:n.instanceId,type:"app",name:a,id:e.appId,url:e.homepage,instanceId:e.instanceId,menuIcon:e.menuIcon})}else if("customItem"===n.type){const e=n.relatedCustomItem,a=(0,y.y)(e.locales,e.name);t.push({favoriteId:n.instanceId,type:"custom",name:a,id:e.id,url:e.url,menuIcon:e.menuIcon})}else"link"===n.type&&t.push({favoriteId:n.instanceId,type:"link",name:n.name,url:n.link,menuIcon:n.icon});return t}(),w=!0})),b=new c.x((async()=>{k=await async function(){const e=(await(0,f.y)("MICRO_APP_CATEGORY@EASYOPS",{fields:["id","type","name","locales","icon","order","platformApps.appId","platformApps.name","platformApps.locales","platformApps.homepage","platformApps.description","platformApps.menuIcon","platformApps._object_id","platformApps.@.order","platformItems.id","platformItems.name","platformItems.locales","platformItems.url","platformItems.description","platformItems.menuIcon","platformItems._object_id","platformItems.@.order"],page:1,page_size:300,query:{type:"platform"}})).list,t=null==e?void 0:e.map((e=>{const t=e.platformApps.map((e=>{var t,n;return null!==(t=s.auth.isBlockedPath)&&void 0!==t&&t.call(s.auth,e.homepage)?null:{type:"app",name:(0,y.y)(e.locales,e.name),id:e.appId,url:e.homepage,menuIcon:e.menuIcon,description:e.description,instanceId:e.instanceId,order:null===(n=e["@"])||void 0===n?void 0:n.order}})).filter(Boolean),n=e.platformItems.map((e=>{var t,n;return null!==(t=s.auth.isBlockedHref)&&void 0!==t&&t.call(s.auth,e.url)?null:{type:"custom",name:(0,y.y)(e.locales,e.name),id:e.id,url:e.url,menuIcon:e.menuIcon,description:e.description,instanceId:e.instanceId,order:null===(n=e["@"])||void 0===n?void 0:n.order}})).filter(Boolean),a=(0,h.sortBy)([...t,...n],"order");return{instanceId:e.instanceId,id:e.id,name:(0,y.y)(e.locales,e.name),icon:e.icon,order:e.order,items:a}}));return[{id:"#all",name:(0,u.t)(u.K.ALL),icon:{lib:"easyops",category:"second-menu",icon:"sprint-planning-second-menu"},items:[]},...(0,h.sortBy)(t,"order")]}(),P=!0})),B=e=>(0,l.Ds)({type:"error",message:(0,o.httpErrorToString)(e)});function V(e){const{t}=(0,r.useTranslation)(u.NS),[n,s]=(0,a.useState)(C),[i,c]=(0,a.useState)(_),[p,d]=(0,a.useState)(O),[f,h]=(0,a.useState)(""),[S,y]=(0,a.useState)(!F),[V,U]=(0,a.useState)(!w),[D,x]=(0,a.useState)(!P),[G,K]=(0,a.useState)([]),[Q,j]=(0,a.useState)([]),[z,q]=(0,a.useState)(L),[Y,Z]=(0,a.useState)(k);(0,a.useEffect)((()=>{e&&!S&&(s(C),c(_),d(O))}),[e,S]),(0,a.useEffect)((()=>{e&&!V&&q(L)}),[e,V]),(0,a.useEffect)((()=>{e&&!D&&Z(k)}),[e,D]),(0,a.useEffect)((()=>{var t;e&&K(null!==(t=g.getItem(T))&&void 0!==t?t:[])}),[e]),(0,a.useEffect)((()=>{e&&(async()=>{try{await N.fetch(),y(!1)}catch(e){(0,o.handleHttpError)(e)}})()}),[e]),(0,a.useEffect)((()=>{e&&(async()=>{try{await M.fetch(),U(!1)}catch(e){U(!1),B(e)}})()}),[e]),(0,a.useEffect)((()=>{var t;e&&null!==(t=(0,o.getRuntime)())&&void 0!==t&&t.getFeatureFlags()["launchpad-show-platform-category"]&&(async()=>{try{await b.fetch(),x(!1)}catch(e){x(!1),B(e)}})()}),[e]),(0,a.useEffect)((()=>{if(S)return;const e=G.map((e=>{if("app"===e.type){const t=i.get(e.id);return t?{type:"app",name:t.localeName,id:t.id,url:t.homepage,instanceId:t.instanceId,menuIcon:t.menuIcon}:null}const t=p.get(e.id);return t?{...t,name:t.localeName}:null})).filter(Boolean);j(e)}),[p,S,i,G]);const $=(0,a.useCallback)((e=>{var t;let{type:n,id:a}=e;const o=null!==(t=g.getItem(T))&&void 0!==t?t:[],s=o.findIndex((e=>e.type===n&&e.id===a));s>-1&&o.splice(s,1),o.unshift({type:n,id:a}),o.length>A&&o.pop(),g.setItem(T,o)}),[]),J=(0,a.useCallback)((e=>z.some((t=>H(e,t)))),[z]),W=(0,a.useCallback)((e=>{const n=z.findIndex((t=>"link"===e.type?t.favoriteId===e.favoriteId:H(e,t)));let a;if(n>-1){const e=z[n];a=z.slice(0,n).concat(z.slice(n+1)),async function(e){return e.favoriteId?(0,I.r)(e.favoriteId):v().then((t=>{var n;const 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,I.r)(a);console.error("Menu item to unstar not found:",e)}))}(e).catch(B)}else{if(z.length>=E)return void(0,l.ui)({type:"warn",title:t(u.K.FAVORITES_LIMIT_REACHED),content:t(u.K.FAVORITES_LIMIT_MESSAGE,{count:E})});const n={...e};a=z.concat(n),async function(e){return(0,m.k)({type:"app"===e.type?"microApp":"customItem",relatedInstanceId:e.instanceId},{interceptorParams:{ignoreLoadingBar:!0}})}(e).then((e=>{e&&(n.favoriteId=e.instanceId)}),B)}q(a),L=a}),[z]),X=(0,a.useMemo)((()=>function(e,t){if(!t)return e;const n=t.toLowerCase();return e.map((e=>({...e,items:e.items.map((e=>{switch(e.type){case"app":case"custom":return R(e,n);case"dir":{const t=e.items.map((e=>"app"===e.type||"custom"===e.type?R(e,n):null)).filter(Boolean);return t.length>0?{...e,items:t}:null}}})).filter(Boolean)}))).filter((e=>e.items.length>0))}(n,f)),[n,f]),ee=(0,a.useMemo)((()=>function(e,t){if(!t)return e;const n=t.toLowerCase();return e.map((e=>({...e,items:e.items.map((e=>{switch(e.type){case"app":case"custom":return R(e,n)}})).filter(Boolean)})))}(Y,f)),[Y,f]);return{loading:S,q:f,setQ:h,menuGroups:X,loadingFavorites:V,loadingPlatformCategories:D,favorites:z,recentVisits:Q,pushRecentVisit:$,isStarred:J,toggleStar:W,platformCategories:ee}}function H(e,t){return e.instanceId&&t.instanceId?t.instanceId===e.instanceId:t.type===e.type&&t.id===e.id}},4864:(e,t,n)=>{n.d(t,{x:()=>o});var a=n(4586);class o{constructor(e){(0,a.A)(this,"preFetchId",null),(0,a.A)(this,"preFetchScheduled",!1),(0,a.A)(this,"firstFetchPromise",null),(0,a.A)(this,"isFetching",!1),(0,a.A)(this,"task",void 0),this.task=e}schedulePrefetch(){if(!this.preFetchScheduled){this.preFetchScheduled=!0;const e=async()=>{this.preFetchId=null,this.fetch()};"function"==typeof window.requestIdleCallback?this.preFetchId=window.requestIdleCallback(e):this.preFetchId=setTimeout(e)}}fetch(e){let 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(),t.catch((e=>{console.error(e),this.firstFetchPromise=null})).finally((()=>{this.isFetching=!1})),this.firstFetchPromise||(this.firstFetchPromise=t),!e)?this.firstFetchPromise:t}}},6659:(e,t,n)=>{n.d(t,{y:()=>o});var a=n(8443);function o(e,t){var n;if(!e)return t;const o=Object.fromEntries(Object.entries(e).filter((e=>{let[t,n]=e;return n.name})).map((e=>{let[t,n]=e;return[t,n.name]})));return null!==(n=(0,a.i18nText)(o))&&void 0!==n?n:t}},9393:(e,t,n)=>{n.d(t,{Bj:()=>s,Ds:()=>c,EM:()=>i,ui:()=>r});var a=n(981),o=n(9936);const s=(0,a.wrapBrick)("eo-icon"),i=(0,a.wrapBrick)("eo-link"),r=(0,o.unwrapProvider)("basic.show-dialog"),c=(0,o.unwrapProvider)("basic.show-notification")}}]);
2
- //# sourceMappingURL=2133.c327a346.js.map
1
+ "use strict";(globalThis.webpackChunk_next_bricks_nav=globalThis.webpackChunk_next_bricks_nav||[]).push([[2133],{403:(e,t,n)=>{n.d(t,{I:()=>i,K:()=>o,NS:()=>s,t:()=>r});var a=n(8443);let o=function(e){return e.ALL="ALL",e.QUICK_ACCESS="QUICK_ACCESS",e.PLATFORM_BASE="PLATFORM_BASE",e.SCENARIO_CENTER="SCENARIO_CENTER",e.SOLUTIONS="SOLUTIONS",e.OPEN_PLATFORM="OPEN_PLATFORM",e.SEARCH_PLACEHOLDER="SEARCH_PLACEHOLDER",e.RECENT_VISITS="RECENT_VISITS",e.FAVORITE="FAVORITE",e.UNFAVORITE="UNFAVORITE",e.FAVORITES_LIMIT_REACHED="FAVORITES_LIMIT_REACHED",e.FAVORITES_LIMIT_MESSAGE="FAVORITES_LIMIT_MESSAGE",e}({});const s="bricks/nav/launchpad-button-v2",i={en:{ALL:"All",QUICK_ACCESS:"Quick Access",PLATFORM_BASE:"Platform Base",SCENARIO_CENTER:"Scenario Center",SOLUTIONS:"Solutions",OPEN_PLATFORM:"Open Platform",SEARCH_PLACEHOLDER:"Search by keyword",RECENT_VISITS:"Recent Visits",FAVORITE:"Favorite",UNFAVORITE:"Unfavorite",FAVORITES_LIMIT_REACHED:"Favorites Limit Reached",FAVORITES_LIMIT_MESSAGE:"Current favorites count has reached the limit ({{count}} items). Please remove some favorites before adding new ones."},zh:{ALL:"全部",QUICK_ACCESS:"快捷访问",PLATFORM_BASE:"平台底座",SCENARIO_CENTER:"场景中心",SOLUTIONS:"解决方案",OPEN_PLATFORM:"开放平台",SEARCH_PLACEHOLDER:"通过关键字搜索",RECENT_VISITS:"最近访问",FAVORITE:"收藏",UNFAVORITE:"取消收藏",FAVORITES_LIMIT_REACHED:"收藏数量已达上限",FAVORITES_LIMIT_MESSAGE:"当前收藏链接数量已达上限({{count}}个),请删除部分收藏后再添加。"}},r=a.i18n.getFixedT(null,s)},2133:(e,t,n)=>{n.d(t,{fm:()=>M,ir:()=>N,pU:()=>b,sZ:()=>V});var a=n(8769),o=n(1921),s=n(5507),i=n(7137),r=n(8002),c=n(4864),l=n(9393),u=n(403),p=n(3346),d=n(7296),m=n(2824),I=n(2887),f=n(8406),h=n(1030);const E=10,A=10;var S,y=n(6659);async function v(){return(await(0,d.K)({page:1,pageSize:E},{interceptorParams:{ignoreLoadingBar:!0},noAbortOnRouteChange:!0})).list}function R(e,t){const{id:n,name:a,localeName:o,description:s}=e;return[n,a,o,s].some((e=>null==e?void 0:e.toLowerCase().includes(t)))?e:null}(0,r.initializeReactI18n)(u.NS,u.I),(0,r.initializeReactI18n)(u.NS,u.I);const T=`launchpad-recent-visits:${null===(S=s.auth.getAuth())||void 0===S?void 0:S.org}`,g=new i.G(localStorage);let C=[],_=new Map,O=new Map,F=!1,L=[],w=!1,k=[],P=!1;const N=new c.x((async()=>{({menuGroups:C,microAppsById:_,customLinksById:O}=await async function(){var e;const t=await(0,p.i)({},{interceptorParams:{ignoreLoadingBar:!0},noAbortOnRouteChange:!0}),n=new Map;for(const e of t.storyboards){var a;const t=e.app;t.localeName=(0,y.y)(t.locales,t.name),null!==(a=s.auth.isBlockedPath)&&void 0!==a&&a.call(s.auth,t.homepage)||n.set(t.id,t)}const o=[],i=new Map;for(const a of t.desktops){const t=[];for(const o of a.items)switch(o.localeName=(0,y.y)(o.locales,o.name),o.type){case"app":{const e=n.get(o.id);e&&t.push({...o,url:e.homepage});break}case"custom":null!==(e=s.auth.isBlockedHref)&&void 0!==e&&e.call(s.auth,o.url)||(t.push(o),i.set(o.id,o));break;case"dir":{const e=[];for(const t of o.items){var r;if(t.localeName=(0,y.y)(t.locales,t.name),"app"===t.type){const a=n.get(t.id);a&&e.push({...t,url:a.homepage})}else"custom"!==t.type||null!==(r=s.auth.isBlockedHref)&&void 0!==r&&r.call(s.auth,t.url)||(e.push(t),i.set(t.id,t))}e.length>0&&t.push({...o,items:e});break}}t.length>0&&(a.localeName=(0,y.y)(a.locales,a.name),o.push({...a,items:t}))}return{menuGroups:o,microAppsById:n,customLinksById:i}}()),F=!0})),M=new c.x((async()=>{L=await async function(){const e=await v(),t=[];for(const n of e)if("microApp"===n.type){const e=n.relatedApp,a=(0,y.y)(e.locales,e.name);t.push({favoriteId:n.instanceId,type:"app",name:a,id:e.appId,url:e.homepage,instanceId:e.instanceId,menuIcon:e.menuIcon})}else if("customItem"===n.type){const e=n.relatedCustomItem,a=(0,y.y)(e.locales,e.name);t.push({favoriteId:n.instanceId,type:"custom",name:a,id:e.id,url:e.url,menuIcon:e.menuIcon})}else"link"===n.type&&t.push({favoriteId:n.instanceId,type:"link",name:n.name,url:n.link,menuIcon:n.icon});return t}(),w=!0})),b=new c.x((async()=>{k=await async function(){const e=(await(0,f.y)("MICRO_APP_CATEGORY@EASYOPS",{fields:["id","type","name","locales","icon","order","platformApps.appId","platformApps.name","platformApps.locales","platformApps.homepage","platformApps.description","platformApps.menuIcon","platformApps._object_id","platformApps.@.order","platformItems.id","platformItems.name","platformItems.locales","platformItems.url","platformItems.description","platformItems.menuIcon","platformItems._object_id","platformItems.@.order"],page:1,page_size:300,query:{type:"platform"}})).list,t=null==e?void 0:e.map((e=>{const t=e.platformApps.map((e=>{var t,n;return null!==(t=s.auth.isBlockedPath)&&void 0!==t&&t.call(s.auth,e.homepage)?null:{type:"app",name:(0,y.y)(e.locales,e.name),id:e.appId,url:e.homepage,menuIcon:e.menuIcon,description:e.description,instanceId:e.instanceId,order:null===(n=e["@"])||void 0===n?void 0:n.order}})).filter(Boolean),n=e.platformItems.map((e=>{var t,n;return null!==(t=s.auth.isBlockedHref)&&void 0!==t&&t.call(s.auth,e.url)?null:{type:"custom",name:(0,y.y)(e.locales,e.name),id:e.id,url:e.url,menuIcon:e.menuIcon,description:e.description,instanceId:e.instanceId,order:null===(n=e["@"])||void 0===n?void 0:n.order}})).filter(Boolean),a=(0,h.sortBy)([...t,...n],"order");return{instanceId:e.instanceId,id:e.id,name:(0,y.y)(e.locales,e.name),icon:e.icon,order:e.order,items:a}}));return[{id:"#all",name:(0,u.t)(u.K.ALL),icon:{lib:"easyops",category:"second-menu",icon:"sprint-planning-second-menu"},items:[]},...(0,h.sortBy)(t,"order")]}(),P=!0})),B=e=>(0,l.Ds)({type:"error",message:(0,o.httpErrorToString)(e)});function V(e){const{t}=(0,r.useTranslation)(u.NS),[n,s]=(0,a.useState)(C),[i,c]=(0,a.useState)(_),[p,d]=(0,a.useState)(O),[f,h]=(0,a.useState)(""),[S,y]=(0,a.useState)(!F),[V,U]=(0,a.useState)(!w),[D,x]=(0,a.useState)(!P),[G,K]=(0,a.useState)([]),[Q,j]=(0,a.useState)([]),[z,q]=(0,a.useState)(L),[Y,Z]=(0,a.useState)(k);(0,a.useEffect)((()=>{e&&!S&&(s(C),c(_),d(O))}),[e,S]),(0,a.useEffect)((()=>{e&&!V&&q(L)}),[e,V]),(0,a.useEffect)((()=>{e&&!D&&Z(k)}),[e,D]),(0,a.useEffect)((()=>{var t;e&&K(null!==(t=g.getItem(T))&&void 0!==t?t:[])}),[e]),(0,a.useEffect)((()=>{e&&(async()=>{try{await N.fetch(),y(!1)}catch(e){(0,o.handleHttpError)(e)}})()}),[e]),(0,a.useEffect)((()=>{e&&(async()=>{try{await M.fetch(),U(!1)}catch(e){U(!1),B(e)}})()}),[e]),(0,a.useEffect)((()=>{var t;e&&null!==(t=(0,o.getRuntime)())&&void 0!==t&&t.getFeatureFlags()["launchpad-show-platform-category"]&&(async()=>{try{await b.fetch(),x(!1)}catch(e){x(!1),B(e)}})()}),[e]),(0,a.useEffect)((()=>{if(S)return;const e=G.map((e=>{if("app"===e.type){const t=i.get(e.id);return t?{type:"app",name:t.localeName,id:t.id,url:t.homepage,instanceId:t.instanceId,menuIcon:t.menuIcon}:null}const t=p.get(e.id);return t?{...t,name:t.localeName}:null})).filter(Boolean);j(e)}),[p,S,i,G]);const $=(0,a.useCallback)((e=>{var t;let{type:n,id:a}=e;const o=null!==(t=g.getItem(T))&&void 0!==t?t:[],s=o.findIndex((e=>e.type===n&&e.id===a));s>-1&&o.splice(s,1),o.unshift({type:n,id:a}),o.length>A&&o.pop(),g.setItem(T,o)}),[]),J=(0,a.useCallback)((e=>z.some((t=>H(e,t)))),[z]),W=(0,a.useCallback)((e=>{const n=z.findIndex((t=>"link"===e.type?t.favoriteId===e.favoriteId:H(e,t)));let a;if(n>-1){const e=z[n];a=z.slice(0,n).concat(z.slice(n+1)),async function(e){return e.favoriteId?(0,I.r)(e.favoriteId):v().then((t=>{var n;const 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,I.r)(a);console.error("Menu item to unstar not found:",e)}))}(e).catch(B)}else{if(z.length>=E)return void(0,l.ui)({type:"warn",title:t(u.K.FAVORITES_LIMIT_REACHED),content:t(u.K.FAVORITES_LIMIT_MESSAGE,{count:E})});const n={...e};a=z.concat(n),async function(e){return(0,m.k)({type:"app"===e.type?"microApp":"customItem",relatedInstanceId:e.instanceId},{interceptorParams:{ignoreLoadingBar:!0}})}(e).then((e=>{e&&(n.favoriteId=e.instanceId)}),B)}q(a),L=a}),[z]),X=(0,a.useMemo)((()=>function(e,t){if(!t)return e;const n=t.toLowerCase();return e.map((e=>({...e,items:e.items.map((e=>{switch(e.type){case"app":case"custom":return R(e,n);case"dir":{const t=e.items.map((e=>"app"===e.type||"custom"===e.type?R(e,n):null)).filter(Boolean);return t.length>0?{...e,items:t}:null}}})).filter(Boolean)}))).filter((e=>e.items.length>0))}(n,f)),[n,f]),ee=(0,a.useMemo)((()=>function(e,t){if(!t)return e;const n=t.toLowerCase();return e.map((e=>({...e,items:e.items.map((e=>{switch(e.type){case"app":case"custom":return R(e,n)}})).filter(Boolean)})))}(Y,f)),[Y,f]);return{loading:S,q:f,setQ:h,menuGroups:X,loadingFavorites:V,loadingPlatformCategories:D,favorites:z,recentVisits:Q,pushRecentVisit:$,isStarred:J,toggleStar:W,platformCategories:ee}}function H(e,t){return e.instanceId&&t.instanceId?t.instanceId===e.instanceId:t.type===e.type&&t.id===e.id}},4864:(e,t,n)=>{n.d(t,{x:()=>o});var a=n(4586);class o{constructor(e){(0,a.A)(this,"preFetchId",null),(0,a.A)(this,"preFetchScheduled",!1),(0,a.A)(this,"firstFetchPromise",null),(0,a.A)(this,"isFetching",!1),(0,a.A)(this,"task",void 0),this.task=e}schedulePrefetch(){if(!this.preFetchScheduled){this.preFetchScheduled=!0;const e=async()=>{this.preFetchId=null,this.fetch()};"function"==typeof window.requestIdleCallback?this.preFetchId=window.requestIdleCallback(e):this.preFetchId=setTimeout(e)}}fetch(e){let 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(),t.catch((e=>{console.error(e),this.firstFetchPromise=null})).finally((()=>{this.isFetching=!1})),this.firstFetchPromise||(this.firstFetchPromise=t),!e)?this.firstFetchPromise:t}}},6659:(e,t,n)=>{n.d(t,{y:()=>o});var a=n(8443);function o(e,t){var n;if(!e)return t;const o=Object.fromEntries(Object.entries(e).filter((e=>{let[t,n]=e;return n.name})).map((e=>{let[t,n]=e;return[t,n.name]})));return null!==(n=(0,a.i18nText)(o))&&void 0!==n?n:t}},9393:(e,t,n)=>{n.d(t,{Bj:()=>s,Ds:()=>c,EM:()=>i,ui:()=>r});var a=n(981),o=n(9936);const s=(0,a.wrapBrick)("eo-icon"),i=(0,a.wrapBrick)("eo-link"),r=(0,o.unwrapProvider)("basic.show-dialog"),c=(0,o.unwrapProvider)("basic.show-notification")}}]);
2
+ //# sourceMappingURL=2133.7a40ebb2.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"chunks/2133.c327a346.js","mappings":"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","sources":["webpack:///./src/launchpad-button-v2/i18n.ts","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/shared/DeferredService.ts","webpack:///./src/shared/getLocaleName.ts","webpack:///./src/launchpad-button-v2/wrapped-bricks.ts"],"sourcesContent":["import { i18n } from \"@next-core/i18n\";\n\nexport enum K {\n ALL = \"ALL\",\n QUICK_ACCESS = \"QUICK_ACCESS\",\n PLATFORM_BASE = \"PLATFORM_BASE\",\n SCENARIO_CENTER = \"SCENARIO_CENTER\",\n SOLUTIONS = \"SOLUTIONS\",\n OPEN_PLATFORM = \"OPEN_PLATFORM\",\n SEARCH_PLACEHOLDER = \"SEARCH_PLACEHOLDER\",\n RECENT_VISITS = \"RECENT_VISITS\",\n FAVORITE = \"FAVORITE\",\n UNFAVORITE = \"UNFAVORITE\",\n FAVORITES_LIMIT_REACHED = \"FAVORITES_LIMIT_REACHED\",\n FAVORITES_LIMIT_MESSAGE = \"FAVORITES_LIMIT_MESSAGE\",\n}\n\nconst en: Locale = {\n ALL: \"All\",\n QUICK_ACCESS: \"Quick Access\",\n PLATFORM_BASE: \"Platform Base\",\n SCENARIO_CENTER: \"Scenario Center\",\n SOLUTIONS: \"Solutions\",\n OPEN_PLATFORM: \"Open Platform\",\n SEARCH_PLACEHOLDER: \"Search by keyword\",\n RECENT_VISITS: \"Recent Visits\",\n FAVORITE: \"Favorite\",\n UNFAVORITE: \"Unfavorite\",\n FAVORITES_LIMIT_REACHED: \"Favorites Limit Reached\",\n FAVORITES_LIMIT_MESSAGE:\n \"Current favorites count has reached the limit ({{count}} items). Please remove some favorites before adding new ones.\",\n};\n\nconst zh: Locale = {\n ALL: \"全部\",\n QUICK_ACCESS: \"快捷访问\",\n PLATFORM_BASE: \"平台底座\",\n SCENARIO_CENTER: \"场景中心\",\n SOLUTIONS: \"解决方案\",\n OPEN_PLATFORM: \"开放平台\",\n SEARCH_PLACEHOLDER: \"通过关键字搜索\",\n RECENT_VISITS: \"最近访问\",\n FAVORITE: \"收藏\",\n UNFAVORITE: \"取消收藏\",\n FAVORITES_LIMIT_REACHED: \"收藏数量已达上限\",\n FAVORITES_LIMIT_MESSAGE:\n \"当前收藏链接数量已达上限({{count}}个),请删除部分收藏后再添加。\",\n};\n\nexport const NS = \"bricks/nav/launchpad-button-v2\";\n\nexport const locales = { en, zh };\n\nexport const t = i18n.getFixedT(null, NS);\n\ntype Locale = { [k in K]: string } & {\n [k in K as `${k}_plural`]?: string;\n};\n","export const FAVORITES_LIMIT = 10;\nexport const RECENT_VISITS_LIMIT = 10;\n","import type { AppLocales, 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 UserServiceModels,\n} from \"@next-api-sdk/user-service-sdk\";\nimport { InstanceApi_postSearchV3 } from \"@next-api-sdk/cmdb-sdk\";\nimport { sortBy } from \"lodash\";\nimport { auth } from \"@next-core/easyops-runtime\";\nimport { initializeReactI18n } from \"@next-core/i18n/react\";\nimport type {\n FavMenuItem,\n MenuGroupData,\n MenuItemData,\n MenuItemDataApp,\n MenuItemDataCustom,\n MenuItemDataDir,\n MenuItemDataNormal,\n MicroAppWithInstanceId,\n PlatformCategoryItem,\n} from \"./interfaces\";\nimport { FAVORITES_LIMIT } from \"./constants\";\nimport { getLocaleName } from \"../shared/getLocaleName\";\nimport { K, NS, t, locales } from \"./i18n\";\n\ninitializeReactI18n(NS, locales);\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 = getLocaleName(app.locales, app.name);\n if (!auth.isBlockedPath?.(app.homepage)) {\n microAppsById.set(app.id, app);\n }\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 item.localeName = getLocaleName(item.locales, item.name);\n switch (item.type) {\n case \"app\": {\n const app = microAppsById.get(item.id);\n if (app) {\n items.push({\n ...item,\n url: app.homepage,\n } as MenuItemDataApp);\n }\n break;\n }\n case \"custom\":\n if (!auth.isBlockedHref?.(item.url)) {\n items.push(item);\n customLinksById.set(item.id, item);\n }\n break;\n case \"dir\": {\n const subItems: MenuItemDataNormal[] = [];\n for (const subItem of item.items) {\n subItem.localeName = getLocaleName(subItem.locales, subItem.name);\n if (subItem.type === \"app\") {\n const app = microAppsById.get(subItem.id);\n if (app) {\n subItems.push({\n ...subItem,\n url: app.homepage,\n } as MenuItemDataApp);\n }\n } else if (\n subItem.type === \"custom\" &&\n !auth.isBlockedHref?.(subItem.url)\n ) {\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 group.localeName = getLocaleName(group.locales, group.name);\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 // 不屏蔽收藏夹中的任何项,否则无法取消收藏\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 const localeName = getLocaleName(app.locales, app.name);\n stored.push({\n favoriteId: fav.instanceId,\n type: \"app\",\n name: 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 const localeName = getLocaleName(\n (\n customItem as UserServiceModels.ModelLaunchpadCollectionV2_relatedCustomItem & {\n locales?: AppLocales;\n }\n ).locales,\n customItem.name\n );\n stored.push({\n favoriteId: fav.instanceId,\n type: \"custom\",\n name: localeName,\n id: customItem.id,\n url: customItem.url,\n menuIcon: customItem.menuIcon,\n } as FavMenuItem);\n } else if (fav.type === \"link\") {\n stored.push({\n favoriteId: fav.instanceId,\n type: \"link\",\n name: fav.name,\n // id: fav.id,\n url: fav.link,\n menuIcon: fav.icon,\n } as FavMenuItem);\n }\n }\n return stored;\n}\n\nexport async function favorite(\n item: MenuItemDataNormal\n): Promise<{ instanceId?: string }> {\n return LaunchpadApi_createCollectionV2(\n {\n type: item.type === \"app\" ? \"microApp\" : \"customItem\",\n relatedInstanceId: item.instanceId,\n },\n {\n interceptorParams: { ignoreLoadingBar: true },\n }\n );\n}\n\nexport async function undoFavorite(item: FavMenuItem) {\n if (item.favoriteId) {\n return LaunchpadApi_deleteCollectionV2(item.favoriteId);\n }\n\n return fetchRawFavorites().then((list) => {\n const foundId = list.find((fav) =>\n item.type === \"app\"\n ? fav.type === \"microApp\" && fav.relatedApp?.appId === item.id\n : item.type === \"custom\" && fav.relatedCustomItem?.id === item.id\n )?.instanceId;\n\n if (foundId) {\n return LaunchpadApi_deleteCollectionV2(foundId);\n }\n // eslint-disable-next-line no-console\n console.error(\"Menu item to unstar not found:\", item);\n });\n}\n\nexport async function fetchPlatformCategories(): Promise<\n PlatformCategoryItem[]\n> {\n const categories = (\n await InstanceApi_postSearchV3(\"MICRO_APP_CATEGORY@EASYOPS\", {\n fields: [\n \"id\",\n \"type\",\n \"name\",\n \"locales\",\n \"icon\",\n \"order\",\n \"platformApps.appId\",\n \"platformApps.name\",\n \"platformApps.locales\",\n \"platformApps.homepage\",\n \"platformApps.description\",\n \"platformApps.menuIcon\",\n \"platformApps._object_id\",\n \"platformApps.@.order\",\n \"platformItems.id\",\n \"platformItems.name\",\n \"platformItems.locales\",\n \"platformItems.url\",\n \"platformItems.description\",\n \"platformItems.menuIcon\",\n \"platformItems._object_id\",\n \"platformItems.@.order\",\n ],\n page: 1,\n page_size: 300,\n query: {\n type: \"platform\",\n },\n })\n ).list;\n\n const _categories = categories?.map((category) => {\n const apps = category.platformApps\n .map((app: Record<string, any>) => {\n if (auth.isBlockedPath?.(app.homepage)) {\n return null;\n }\n return {\n type: \"app\",\n name: getLocaleName(app.locales, app.name),\n id: app.appId,\n url: app.homepage,\n menuIcon: app.menuIcon,\n description: app.description,\n instanceId: app.instanceId,\n order: app[\"@\"]?.order,\n };\n })\n .filter(Boolean) as MenuItemDataApp[];\n const customItems = category.platformItems\n .map((item: Record<string, any>) => {\n if (auth.isBlockedHref?.(item.url)) {\n return null;\n }\n return {\n type: \"custom\",\n name: getLocaleName(item.locales, item.name),\n id: item.id,\n url: item.url,\n menuIcon: item.menuIcon,\n description: item.description,\n instanceId: item.instanceId,\n order: item[\"@\"]?.order,\n };\n })\n .filter(Boolean) as MenuItemDataCustom[];\n\n const items = sortBy([...apps, ...customItems], \"order\");\n return {\n instanceId: category.instanceId,\n id: category.id,\n name: getLocaleName(category.locales, category.name),\n icon: category.icon,\n order: category.order,\n items,\n } as PlatformCategoryItem;\n });\n\n return [\n {\n id: \"#all\",\n name: t(K.ALL),\n icon: {\n lib: \"easyops\",\n category: \"second-menu\",\n icon: \"sprint-planning-second-menu\",\n },\n items: [],\n },\n ...sortBy(_categories, \"order\"),\n ];\n}\n","import type {\n MenuGroupData,\n MenuItemData,\n MenuItemDataApp,\n MenuItemDataCustom,\n MenuItemDataNormal,\n PlatformCategoryItem,\n} from \"./interfaces\";\n\nexport function search(\n allMenuGroups: MenuGroupData[],\n q: string\n): MenuGroupData[] {\n if (!q) {\n return allMenuGroups;\n }\n const lowerQ = q.toLowerCase();\n const groups: MenuGroupData[] = allMenuGroups\n .map((group) => ({\n ...group,\n items: group.items\n .map((item) => {\n switch (item.type) {\n case \"app\":\n return matchMenuItem<MenuItemDataApp>(item, lowerQ);\n case \"custom\":\n return matchMenuItem<MenuItemDataCustom>(item, lowerQ);\n case \"dir\": {\n const filteredSubItems = item.items\n .map((sub) =>\n sub.type === \"app\"\n ? matchMenuItem<MenuItemDataApp>(sub, lowerQ)\n : sub.type === \"custom\"\n ? matchMenuItem<MenuItemDataCustom>(sub, lowerQ)\n : null\n )\n .filter(Boolean) as MenuItemData[];\n return filteredSubItems.length > 0\n ? {\n ...item,\n items: filteredSubItems,\n }\n : null;\n }\n }\n })\n // Ignore not matched items\n .filter(Boolean) as MenuItemData[],\n }))\n // ignore empty desktops\n .filter((group) => group.items.length > 0);\n return groups;\n}\n\nexport function searchCategories(\n categories: PlatformCategoryItem[],\n q: string\n): PlatformCategoryItem[] {\n if (!q) {\n return categories;\n }\n\n const lowerQ = q.toLowerCase();\n const _categories = categories.map((category) => ({\n ...category,\n items: category.items\n .map((item) => {\n switch (item.type) {\n case \"app\":\n return matchMenuItem<MenuItemDataApp>(item, lowerQ);\n case \"custom\":\n return matchMenuItem<MenuItemDataCustom>(item, lowerQ);\n }\n })\n // Ignore not matched items\n .filter(Boolean) as MenuItemDataNormal[],\n }));\n return _categories;\n}\n\ntype MenuItemBase = {\n id: string;\n name: string;\n localeName?: string;\n description?: string;\n};\n\nfunction matchMenuItem<T extends MenuItemBase>(\n item: T,\n lowerQ: string\n): T | null {\n const { id, name, localeName, description } = item;\n return [id, name, localeName, description].some((field) =>\n field?.toLowerCase().includes(lowerQ)\n )\n ? item\n : null;\n}\n","import { useCallback, useEffect, useMemo, useState } from \"react\";\nimport {\n getRuntime,\n handleHttpError,\n httpErrorToString,\n} from \"@next-core/runtime\";\nimport { auth } from \"@next-core/easyops-runtime\";\nimport { JsonStorage } from \"@next-shared/general/JsonStorage\";\nimport { initializeReactI18n, useTranslation } from \"@next-core/i18n/react\";\nimport { DeferredService } from \"../shared/DeferredService\";\nimport { showDialog, showNotification } from \"./wrapped-bricks\";\nimport { K, NS, locales } from \"./i18n\";\nimport type {\n FavMenuItem,\n MenuGroupData,\n MenuItemDataCustom,\n MenuItemDataLink,\n MenuItemDataNormal,\n MicroAppWithInstanceId,\n PlatformCategoryItem,\n StoredMenuItem,\n} from \"./interfaces\";\nimport {\n favorite,\n fetchFavorites,\n fetchLaunchpadInfo,\n fetchPlatformCategories,\n undoFavorite,\n} from \"./api\";\nimport { search, searchCategories } from \"./search\";\nimport { FAVORITES_LIMIT, RECENT_VISITS_LIMIT } from \"./constants\";\n\ninitializeReactI18n(NS, locales);\n\nconst storageKey = `launchpad-recent-visits:${\n (auth.getAuth() as Record<string, string>)?.org\n}`;\nconst storage = new JsonStorage(localStorage);\n\nlet candidateDesktops: MenuGroupData[] = [];\nlet candidateMicroAppsById = new Map<string, MicroAppWithInstanceId>();\nlet candidateCustomLinksById = new Map<string, MenuItemDataCustom>();\nlet preLoaded = false;\n\nlet candidateFavorites: FavMenuItem[] = [];\nlet preLoadedFavorites = false;\n\nlet candidatePlatformCategories: PlatformCategoryItem[] = [];\nlet preLoadedPlatformCategories = false;\n\nexport const deferredLaunchpadInfo = new DeferredService(async () => {\n ({\n menuGroups: candidateDesktops,\n microAppsById: candidateMicroAppsById,\n customLinksById: candidateCustomLinksById,\n } = await fetchLaunchpadInfo());\n preLoaded = true;\n});\n\nexport const deferredFavorites = new DeferredService(async () => {\n candidateFavorites = await fetchFavorites();\n preLoadedFavorites = true;\n});\n\nexport const deferredPlatformCategories = new DeferredService(async () => {\n candidatePlatformCategories = await fetchPlatformCategories();\n preLoadedPlatformCategories = true;\n});\n\nconst showErrorAsNotification = (error: unknown) =>\n showNotification({\n type: \"error\",\n message: httpErrorToString(error),\n });\n\n/**\n * - 页面初始化时预加载 launchpad 信息。\n * - 每次打开 launchpad 都发起请求,但该请求的数据只在下次打开 launchpad 时使用。\n * 即每次打开 launchpad 使用的都是上一次获取的数据,以便达到两个效果:\n * - 每次打开 launchpad 都能立即显示菜单列表;\n * - 同时当用户在 launchpad 上操作时,不会出现数据突然更新(新数据请求完成)。\n */\nexport function useLaunchpadInfo(active?: boolean) {\n const { t } = useTranslation(NS);\n const [desktops, setDesktops] = useState(candidateDesktops);\n const [microAppsById, setMicroAppsById] = useState(candidateMicroAppsById);\n const [customLinksById, setCustomLinksById] = useState(\n candidateCustomLinksById\n );\n\n const [q, setQ] = useState(\"\");\n\n const [loading, setLoading] = useState(!preLoaded);\n const [loadingFavorites, setLoadingFavorites] = useState(!preLoadedFavorites);\n const [loadingPlatformCategories, setLoadingPlatformCategories] = useState(\n !preLoadedPlatformCategories\n );\n\n const [storedRecentVisits, setStoredRecentVisits] = useState<\n StoredMenuItem[]\n >([]);\n\n const [recentVisits, setRecentVisits] = useState<MenuItemDataNormal[]>([]);\n\n const [favorites, setFavorites] = useState<FavMenuItem[]>(candidateFavorites);\n const [platformCategories, setPlatformCategories] = useState<\n PlatformCategoryItem[]\n >(candidatePlatformCategories);\n\n useEffect(() => {\n // 仅当首次加载完成或重新打开 launchpad 时更新一次数据。\n if (active && !loading) {\n setDesktops(candidateDesktops);\n setMicroAppsById(candidateMicroAppsById);\n setCustomLinksById(candidateCustomLinksById);\n }\n }, [active, loading]);\n\n useEffect(() => {\n if (active && !loadingFavorites) {\n setFavorites(candidateFavorites);\n }\n }, [active, loadingFavorites]);\n\n useEffect(() => {\n if (active && !loadingPlatformCategories) {\n setPlatformCategories(candidatePlatformCategories);\n }\n }, [active, loadingPlatformCategories]);\n\n useEffect(() => {\n if (active) {\n setStoredRecentVisits(storage.getItem(storageKey) ?? []);\n }\n }, [active]);\n\n useEffect(() => {\n if (active) {\n const startFetchLaunchpadInfo = async (): Promise<void> => {\n try {\n await deferredLaunchpadInfo.fetch();\n setLoading(false);\n } catch (error) {\n handleHttpError(error);\n }\n };\n startFetchLaunchpadInfo();\n }\n }, [active]);\n\n useEffect(() => {\n if (active) {\n const startFetchFavorites = async (): Promise<void> => {\n try {\n await deferredFavorites.fetch();\n setLoadingFavorites(false);\n } catch (error) {\n setLoadingFavorites(false);\n showErrorAsNotification(error);\n }\n };\n startFetchFavorites();\n }\n }, [active]);\n\n useEffect(() => {\n if (\n active &&\n getRuntime()?.getFeatureFlags()[\"launchpad-show-platform-category\"]\n ) {\n const startFetchPlatformCategories = async (): Promise<void> => {\n try {\n await deferredPlatformCategories.fetch();\n setLoadingPlatformCategories(false);\n } catch (error) {\n setLoadingPlatformCategories(false);\n showErrorAsNotification(error);\n }\n };\n startFetchPlatformCategories();\n }\n }, [active]);\n\n useEffect(() => {\n if (loading) {\n return;\n }\n const visits = storedRecentVisits\n .map((item) => {\n // Remembered recent visits maybe no longer existed in launchpad\n if (item.type === \"app\") {\n const app = microAppsById.get(item.id);\n return app\n ? {\n type: \"app\",\n name: app.localeName,\n id: app.id,\n url: app.homepage,\n instanceId: app.instanceId,\n menuIcon: app.menuIcon,\n }\n : null;\n }\n\n const link = customLinksById.get(item.id);\n return link\n ? {\n ...link,\n name: link.localeName,\n }\n : null;\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: t(K.FAVORITES_LIMIT_REACHED) as string,\n content: t(K.FAVORITES_LIMIT_MESSAGE, { count: FAVORITES_LIMIT }),\n });\n return;\n }\n // Assert: no link item\n const fav: FavMenuItem = { ...(item as MenuItemDataNormal) };\n newFavorites = favorites.concat(fav);\n favorite(item as MenuItemDataNormal).then((result) => {\n if (result) {\n fav.favoriteId = result.instanceId;\n }\n }, showErrorAsNotification);\n }\n setFavorites(newFavorites);\n candidateFavorites = newFavorites;\n },\n [favorites]\n );\n\n const menuGroups: MenuGroupData[] = useMemo(\n () => search(desktops, q),\n [desktops, q]\n );\n\n const filteredPlatformCategories: PlatformCategoryItem[] = useMemo(\n () => searchCategories(platformCategories, q),\n [platformCategories, q]\n );\n\n return {\n loading,\n q,\n setQ,\n menuGroups,\n loadingFavorites,\n loadingPlatformCategories,\n favorites,\n recentVisits,\n pushRecentVisit,\n isStarred,\n toggleStar,\n platformCategories: filteredPlatformCategories,\n };\n}\n\nexport function matchFavorite(item: MenuItemDataNormal, fav: FavMenuItem) {\n return item.instanceId && fav.instanceId\n ? fav.instanceId === item.instanceId\n : fav.type === item.type && fav.id === item.id;\n}\n","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 getLocaleName(locales?: AppLocales | undefined, name?: string) {\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","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"],"names":["K","NS","locales","en","ALL","QUICK_ACCESS","PLATFORM_BASE","SCENARIO_CENTER","SOLUTIONS","OPEN_PLATFORM","SEARCH_PLACEHOLDER","RECENT_VISITS","FAVORITE","UNFAVORITE","FAVORITES_LIMIT_REACHED","FAVORITES_LIMIT_MESSAGE","zh","t","i18n","getFixedT","FAVORITES_LIMIT","RECENT_VISITS_LIMIT","async","fetchRawFavorites","LaunchpadApi_listCollectionV2","page","pageSize","interceptorParams","ignoreLoadingBar","noAbortOnRouteChange","list","matchMenuItem","item","lowerQ","id","name","localeName","description","some","field","toLowerCase","includes","initializeReactI18n","storageKey","_auth$getAuth","auth","getAuth","org","storage","JsonStorage","localStorage","candidateDesktops","candidateMicroAppsById","Map","candidateCustomLinksById","preLoaded","candidateFavorites","preLoadedFavorites","candidatePlatformCategories","preLoadedPlatformCategories","deferredLaunchpadInfo","DeferredService","menuGroups","microAppsById","customLinksById","_auth$isBlockedHref","launchpadInfo","LaunchpadApi_getLaunchpadInfo","storyboard","storyboards","_auth$isBlockedPath","app","getLocaleName","isBlockedPath","call","homepage","set","group","desktops","items","type","get","push","url","isBlockedHref","subItems","subItem","_auth$isBlockedHref2","length","fetchLaunchpadInfo","deferredFavorites","stored","fav","relatedApp","favoriteId","instanceId","appId","menuIcon","customItem","relatedCustomItem","link","icon","fetchFavorites","deferredPlatformCategories","categories","InstanceApi_postSearchV3","fields","page_size","query","_categories","map","category","apps","platformApps","_auth$isBlockedPath2","_app$","order","filter","Boolean","customItems","platformItems","_auth$isBlockedHref3","_item$","sortBy","lib","fetchPlatformCategories","showErrorAsNotification","error","showNotification","message","httpErrorToString","useLaunchpadInfo","active","useTranslation","setDesktops","useState","setMicroAppsById","setCustomLinksById","q","setQ","loading","setLoading","loadingFavorites","setLoadingFavorites","loadingPlatformCategories","setLoadingPlatformCategories","storedRecentVisits","setStoredRecentVisits","recentVisits","setRecentVisits","favorites","setFavorites","platformCategories","setPlatformCategories","useEffect","_storage$getItem","getItem","fetch","handleHttpError","startFetchLaunchpadInfo","startFetchFavorites","_getRuntime","getRuntime","getFeatureFlags","startFetchPlatformCategories","visits","pushRecentVisit","useCallback","_ref","_storage$getItem2","index","findIndex","visit","splice","unshift","pop","setItem","isStarred","matchFavorite","toggleStar","newFavorites","removed","slice","concat","LaunchpadApi_deleteCollectionV2","then","_list$find","foundId","find","_fav$relatedApp","_fav$relatedCustomIte","console","undoFavorite","catch","showDialog","title","content","count","LaunchpadApi_createCollectionV2","relatedInstanceId","favorite","result","useMemo","allMenuGroups","filteredSubItems","sub","search","filteredPlatformCategories","searchCategories","constructor","task","_defineProperty","this","schedulePrefetch","preFetchScheduled","preFetchLaunchpadInfo","preFetchId","window","requestIdleCallback","setTimeout","eager","promise","cancelIdleCallback","clearTimeout","isFetching","firstFetchPromise","finally","_i18nText","i18nData","Object","fromEntries","entries","_lang","resources","_ref2","lang","i18nText","WrappedIcon","wrapBrick","WrappedLink","unwrapProvider"],"sourceRoot":""}
1
+ {"version":3,"file":"chunks/2133.7a40ebb2.js","mappings":"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","sources":["webpack:///./src/launchpad-button-v2/i18n.ts","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/shared/DeferredService.ts","webpack:///./src/shared/getLocaleName.ts","webpack:///./src/launchpad-button-v2/wrapped-bricks.ts"],"sourcesContent":["import { i18n } from \"@next-core/i18n\";\n\nexport enum K {\n ALL = \"ALL\",\n QUICK_ACCESS = \"QUICK_ACCESS\",\n PLATFORM_BASE = \"PLATFORM_BASE\",\n SCENARIO_CENTER = \"SCENARIO_CENTER\",\n SOLUTIONS = \"SOLUTIONS\",\n OPEN_PLATFORM = \"OPEN_PLATFORM\",\n SEARCH_PLACEHOLDER = \"SEARCH_PLACEHOLDER\",\n RECENT_VISITS = \"RECENT_VISITS\",\n FAVORITE = \"FAVORITE\",\n UNFAVORITE = \"UNFAVORITE\",\n FAVORITES_LIMIT_REACHED = \"FAVORITES_LIMIT_REACHED\",\n FAVORITES_LIMIT_MESSAGE = \"FAVORITES_LIMIT_MESSAGE\",\n}\n\nconst en: Locale = {\n ALL: \"All\",\n QUICK_ACCESS: \"Quick Access\",\n PLATFORM_BASE: \"Platform Base\",\n SCENARIO_CENTER: \"Scenario Center\",\n SOLUTIONS: \"Solutions\",\n OPEN_PLATFORM: \"Open Platform\",\n SEARCH_PLACEHOLDER: \"Search by keyword\",\n RECENT_VISITS: \"Recent Visits\",\n FAVORITE: \"Favorite\",\n UNFAVORITE: \"Unfavorite\",\n FAVORITES_LIMIT_REACHED: \"Favorites Limit Reached\",\n FAVORITES_LIMIT_MESSAGE:\n \"Current favorites count has reached the limit ({{count}} items). Please remove some favorites before adding new ones.\",\n};\n\nconst zh: Locale = {\n ALL: \"全部\",\n QUICK_ACCESS: \"快捷访问\",\n PLATFORM_BASE: \"平台底座\",\n SCENARIO_CENTER: \"场景中心\",\n SOLUTIONS: \"解决方案\",\n OPEN_PLATFORM: \"开放平台\",\n SEARCH_PLACEHOLDER: \"通过关键字搜索\",\n RECENT_VISITS: \"最近访问\",\n FAVORITE: \"收藏\",\n UNFAVORITE: \"取消收藏\",\n FAVORITES_LIMIT_REACHED: \"收藏数量已达上限\",\n FAVORITES_LIMIT_MESSAGE:\n \"当前收藏链接数量已达上限({{count}}个),请删除部分收藏后再添加。\",\n};\n\nexport const NS = \"bricks/nav/launchpad-button-v2\";\n\nexport const locales = { en, zh };\n\nexport const t = i18n.getFixedT(null, NS);\n\ntype Locale = { [k in K]: string } & {\n [k in K as `${k}_plural`]?: string;\n};\n","export const FAVORITES_LIMIT = 10;\nexport const RECENT_VISITS_LIMIT = 10;\n","import type { AppLocales, 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 UserServiceModels,\n} from \"@next-api-sdk/user-service-sdk\";\nimport { InstanceApi_postSearchV3 } from \"@next-api-sdk/cmdb-sdk\";\nimport { sortBy } from \"lodash\";\nimport { auth } from \"@next-core/easyops-runtime\";\nimport { initializeReactI18n } from \"@next-core/i18n/react\";\nimport type {\n FavMenuItem,\n MenuGroupData,\n MenuItemData,\n MenuItemDataApp,\n MenuItemDataCustom,\n MenuItemDataDir,\n MenuItemDataNormal,\n MicroAppWithInstanceId,\n PlatformCategoryItem,\n} from \"./interfaces\";\nimport { FAVORITES_LIMIT } from \"./constants\";\nimport { getLocaleName } from \"../shared/getLocaleName\";\nimport { K, NS, t, locales } from \"./i18n\";\n\ninitializeReactI18n(NS, locales);\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 = getLocaleName(app.locales, app.name);\n if (!auth.isBlockedPath?.(app.homepage)) {\n microAppsById.set(app.id, app);\n }\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 item.localeName = getLocaleName(item.locales, item.name);\n switch (item.type) {\n case \"app\": {\n const app = microAppsById.get(item.id);\n if (app) {\n items.push({\n ...item,\n url: app.homepage,\n } as MenuItemDataApp);\n }\n break;\n }\n case \"custom\":\n if (!auth.isBlockedHref?.(item.url)) {\n items.push(item);\n customLinksById.set(item.id, item);\n }\n break;\n case \"dir\": {\n const subItems: MenuItemDataNormal[] = [];\n for (const subItem of item.items) {\n subItem.localeName = getLocaleName(subItem.locales, subItem.name);\n if (subItem.type === \"app\") {\n const app = microAppsById.get(subItem.id);\n if (app) {\n subItems.push({\n ...subItem,\n url: app.homepage,\n } as MenuItemDataApp);\n }\n } else if (\n subItem.type === \"custom\" &&\n !auth.isBlockedHref?.(subItem.url)\n ) {\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 group.localeName = getLocaleName(group.locales, group.name);\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 // 不屏蔽收藏夹中的任何项,否则无法取消收藏\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 const localeName = getLocaleName(app.locales, app.name);\n stored.push({\n favoriteId: fav.instanceId,\n type: \"app\",\n name: 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 const localeName = getLocaleName(\n (\n customItem as UserServiceModels.ModelLaunchpadCollectionV2_relatedCustomItem & {\n locales?: AppLocales;\n }\n ).locales,\n customItem.name\n );\n stored.push({\n favoriteId: fav.instanceId,\n type: \"custom\",\n name: localeName,\n id: customItem.id,\n url: customItem.url,\n menuIcon: customItem.menuIcon,\n } as FavMenuItem);\n } else if (fav.type === \"link\") {\n stored.push({\n favoriteId: fav.instanceId,\n type: \"link\",\n name: fav.name,\n // id: fav.id,\n url: fav.link,\n menuIcon: fav.icon,\n } as FavMenuItem);\n }\n }\n return stored;\n}\n\nexport async function favorite(\n item: MenuItemDataNormal\n): Promise<{ instanceId?: string }> {\n return LaunchpadApi_createCollectionV2(\n {\n type: item.type === \"app\" ? \"microApp\" : \"customItem\",\n relatedInstanceId: item.instanceId,\n },\n {\n interceptorParams: { ignoreLoadingBar: true },\n }\n );\n}\n\nexport async function undoFavorite(item: FavMenuItem) {\n if (item.favoriteId) {\n return LaunchpadApi_deleteCollectionV2(item.favoriteId);\n }\n\n return fetchRawFavorites().then((list) => {\n const foundId = list.find((fav) =>\n item.type === \"app\"\n ? fav.type === \"microApp\" && fav.relatedApp?.appId === item.id\n : item.type === \"custom\" && fav.relatedCustomItem?.id === item.id\n )?.instanceId;\n\n if (foundId) {\n return LaunchpadApi_deleteCollectionV2(foundId);\n }\n // eslint-disable-next-line no-console\n console.error(\"Menu item to unstar not found:\", item);\n });\n}\n\nexport async function fetchPlatformCategories(): Promise<\n PlatformCategoryItem[]\n> {\n const categories = (\n await InstanceApi_postSearchV3(\"MICRO_APP_CATEGORY@EASYOPS\", {\n fields: [\n \"id\",\n \"type\",\n \"name\",\n \"locales\",\n \"icon\",\n \"order\",\n \"platformApps.appId\",\n \"platformApps.name\",\n \"platformApps.locales\",\n \"platformApps.homepage\",\n \"platformApps.description\",\n \"platformApps.menuIcon\",\n \"platformApps._object_id\",\n \"platformApps.@.order\",\n \"platformItems.id\",\n \"platformItems.name\",\n \"platformItems.locales\",\n \"platformItems.url\",\n \"platformItems.description\",\n \"platformItems.menuIcon\",\n \"platformItems._object_id\",\n \"platformItems.@.order\",\n ],\n page: 1,\n page_size: 300,\n query: {\n type: \"platform\",\n },\n })\n ).list;\n\n const _categories = categories?.map((category) => {\n const apps = category.platformApps\n .map((app: Record<string, any>) => {\n if (auth.isBlockedPath?.(app.homepage)) {\n return null;\n }\n return {\n type: \"app\",\n name: getLocaleName(app.locales, app.name),\n id: app.appId,\n url: app.homepage,\n menuIcon: app.menuIcon,\n description: app.description,\n instanceId: app.instanceId,\n order: app[\"@\"]?.order,\n };\n })\n .filter(Boolean) as MenuItemDataApp[];\n const customItems = category.platformItems\n .map((item: Record<string, any>) => {\n if (auth.isBlockedHref?.(item.url)) {\n return null;\n }\n return {\n type: \"custom\",\n name: getLocaleName(item.locales, item.name),\n id: item.id,\n url: item.url,\n menuIcon: item.menuIcon,\n description: item.description,\n instanceId: item.instanceId,\n order: item[\"@\"]?.order,\n };\n })\n .filter(Boolean) as MenuItemDataCustom[];\n\n const items = sortBy([...apps, ...customItems], \"order\");\n return {\n instanceId: category.instanceId,\n id: category.id,\n name: getLocaleName(category.locales, category.name),\n icon: category.icon,\n order: category.order,\n items,\n } as PlatformCategoryItem;\n });\n\n return [\n {\n id: \"#all\",\n name: t(K.ALL),\n icon: {\n lib: \"easyops\",\n category: \"second-menu\",\n icon: \"sprint-planning-second-menu\",\n },\n items: [],\n },\n ...sortBy(_categories, \"order\"),\n ];\n}\n","import type {\n MenuGroupData,\n MenuItemData,\n MenuItemDataApp,\n MenuItemDataCustom,\n MenuItemDataNormal,\n PlatformCategoryItem,\n} from \"./interfaces\";\n\nexport function search(\n allMenuGroups: MenuGroupData[],\n q: string\n): MenuGroupData[] {\n if (!q) {\n return allMenuGroups;\n }\n const lowerQ = q.toLowerCase();\n const groups: MenuGroupData[] = allMenuGroups\n .map((group) => ({\n ...group,\n items: group.items\n .map((item) => {\n switch (item.type) {\n case \"app\":\n return matchMenuItem<MenuItemDataApp>(item, lowerQ);\n case \"custom\":\n return matchMenuItem<MenuItemDataCustom>(item, lowerQ);\n case \"dir\": {\n const filteredSubItems = item.items\n .map((sub) =>\n sub.type === \"app\"\n ? matchMenuItem<MenuItemDataApp>(sub, lowerQ)\n : sub.type === \"custom\"\n ? matchMenuItem<MenuItemDataCustom>(sub, lowerQ)\n : null\n )\n .filter(Boolean) as MenuItemData[];\n return filteredSubItems.length > 0\n ? {\n ...item,\n items: filteredSubItems,\n }\n : null;\n }\n }\n })\n // Ignore not matched items\n .filter(Boolean) as MenuItemData[],\n }))\n // ignore empty desktops\n .filter((group) => group.items.length > 0);\n return groups;\n}\n\nexport function searchCategories(\n categories: PlatformCategoryItem[],\n q: string\n): PlatformCategoryItem[] {\n if (!q) {\n return categories;\n }\n\n const lowerQ = q.toLowerCase();\n const _categories = categories.map((category) => ({\n ...category,\n items: category.items\n .map((item) => {\n switch (item.type) {\n case \"app\":\n return matchMenuItem<MenuItemDataApp>(item, lowerQ);\n case \"custom\":\n return matchMenuItem<MenuItemDataCustom>(item, lowerQ);\n }\n })\n // Ignore not matched items\n .filter(Boolean) as MenuItemDataNormal[],\n }));\n return _categories;\n}\n\ntype MenuItemBase = {\n id: string;\n name: string;\n localeName?: string;\n description?: string;\n};\n\nfunction matchMenuItem<T extends MenuItemBase>(\n item: T,\n lowerQ: string\n): T | null {\n const { id, name, localeName, description } = item;\n return [id, name, localeName, description].some((field) =>\n field?.toLowerCase().includes(lowerQ)\n )\n ? item\n : null;\n}\n","import { useCallback, useEffect, useMemo, useState } from \"react\";\nimport {\n getRuntime,\n handleHttpError,\n httpErrorToString,\n} from \"@next-core/runtime\";\nimport { auth } from \"@next-core/easyops-runtime\";\nimport { JsonStorage } from \"@next-shared/general/JsonStorage\";\nimport { initializeReactI18n, useTranslation } from \"@next-core/i18n/react\";\nimport { DeferredService } from \"../shared/DeferredService\";\nimport { showDialog, showNotification } from \"./wrapped-bricks\";\nimport { K, NS, locales } from \"./i18n\";\nimport type {\n FavMenuItem,\n MenuGroupData,\n MenuItemDataCustom,\n MenuItemDataLink,\n MenuItemDataNormal,\n MicroAppWithInstanceId,\n PlatformCategoryItem,\n StoredMenuItem,\n} from \"./interfaces\";\nimport {\n favorite,\n fetchFavorites,\n fetchLaunchpadInfo,\n fetchPlatformCategories,\n undoFavorite,\n} from \"./api\";\nimport { search, searchCategories } from \"./search\";\nimport { FAVORITES_LIMIT, RECENT_VISITS_LIMIT } from \"./constants\";\n\ninitializeReactI18n(NS, locales);\n\nconst storageKey = `launchpad-recent-visits:${\n (auth.getAuth() as Record<string, string>)?.org\n}`;\nconst storage = new JsonStorage(localStorage);\n\nlet candidateDesktops: MenuGroupData[] = [];\nlet candidateMicroAppsById = new Map<string, MicroAppWithInstanceId>();\nlet candidateCustomLinksById = new Map<string, MenuItemDataCustom>();\nlet preLoaded = false;\n\nlet candidateFavorites: FavMenuItem[] = [];\nlet preLoadedFavorites = false;\n\nlet candidatePlatformCategories: PlatformCategoryItem[] = [];\nlet preLoadedPlatformCategories = false;\n\nexport const deferredLaunchpadInfo = new DeferredService(async () => {\n ({\n menuGroups: candidateDesktops,\n microAppsById: candidateMicroAppsById,\n customLinksById: candidateCustomLinksById,\n } = await fetchLaunchpadInfo());\n preLoaded = true;\n});\n\nexport const deferredFavorites = new DeferredService(async () => {\n candidateFavorites = await fetchFavorites();\n preLoadedFavorites = true;\n});\n\nexport const deferredPlatformCategories = new DeferredService(async () => {\n candidatePlatformCategories = await fetchPlatformCategories();\n preLoadedPlatformCategories = true;\n});\n\nconst showErrorAsNotification = (error: unknown) =>\n showNotification({\n type: \"error\",\n message: httpErrorToString(error),\n });\n\n/**\n * - 页面初始化时预加载 launchpad 信息。\n * - 每次打开 launchpad 都发起请求,但该请求的数据只在下次打开 launchpad 时使用。\n * 即每次打开 launchpad 使用的都是上一次获取的数据,以便达到两个效果:\n * - 每次打开 launchpad 都能立即显示菜单列表;\n * - 同时当用户在 launchpad 上操作时,不会出现数据突然更新(新数据请求完成)。\n */\nexport function useLaunchpadInfo(active?: boolean) {\n const { t } = useTranslation(NS);\n const [desktops, setDesktops] = useState(candidateDesktops);\n const [microAppsById, setMicroAppsById] = useState(candidateMicroAppsById);\n const [customLinksById, setCustomLinksById] = useState(\n candidateCustomLinksById\n );\n\n const [q, setQ] = useState(\"\");\n\n const [loading, setLoading] = useState(!preLoaded);\n const [loadingFavorites, setLoadingFavorites] = useState(!preLoadedFavorites);\n const [loadingPlatformCategories, setLoadingPlatformCategories] = useState(\n !preLoadedPlatformCategories\n );\n\n const [storedRecentVisits, setStoredRecentVisits] = useState<\n StoredMenuItem[]\n >([]);\n\n const [recentVisits, setRecentVisits] = useState<MenuItemDataNormal[]>([]);\n\n const [favorites, setFavorites] = useState<FavMenuItem[]>(candidateFavorites);\n const [platformCategories, setPlatformCategories] = useState<\n PlatformCategoryItem[]\n >(candidatePlatformCategories);\n\n useEffect(() => {\n // 仅当首次加载完成或重新打开 launchpad 时更新一次数据。\n if (active && !loading) {\n setDesktops(candidateDesktops);\n setMicroAppsById(candidateMicroAppsById);\n setCustomLinksById(candidateCustomLinksById);\n }\n }, [active, loading]);\n\n useEffect(() => {\n if (active && !loadingFavorites) {\n setFavorites(candidateFavorites);\n }\n }, [active, loadingFavorites]);\n\n useEffect(() => {\n if (active && !loadingPlatformCategories) {\n setPlatformCategories(candidatePlatformCategories);\n }\n }, [active, loadingPlatformCategories]);\n\n useEffect(() => {\n if (active) {\n setStoredRecentVisits(storage.getItem(storageKey) ?? []);\n }\n }, [active]);\n\n useEffect(() => {\n if (active) {\n const startFetchLaunchpadInfo = async (): Promise<void> => {\n try {\n await deferredLaunchpadInfo.fetch();\n setLoading(false);\n } catch (error) {\n handleHttpError(error);\n }\n };\n startFetchLaunchpadInfo();\n }\n }, [active]);\n\n useEffect(() => {\n if (active) {\n const startFetchFavorites = async (): Promise<void> => {\n try {\n await deferredFavorites.fetch();\n setLoadingFavorites(false);\n } catch (error) {\n setLoadingFavorites(false);\n showErrorAsNotification(error);\n }\n };\n startFetchFavorites();\n }\n }, [active]);\n\n useEffect(() => {\n if (\n active &&\n getRuntime()?.getFeatureFlags()[\"launchpad-show-platform-category\"]\n ) {\n const startFetchPlatformCategories = async (): Promise<void> => {\n try {\n await deferredPlatformCategories.fetch();\n setLoadingPlatformCategories(false);\n } catch (error) {\n setLoadingPlatformCategories(false);\n showErrorAsNotification(error);\n }\n };\n startFetchPlatformCategories();\n }\n }, [active]);\n\n useEffect(() => {\n if (loading) {\n return;\n }\n const visits = storedRecentVisits\n .map((item) => {\n // Remembered recent visits maybe no longer existed in launchpad\n if (item.type === \"app\") {\n const app = microAppsById.get(item.id);\n return app\n ? {\n type: \"app\",\n name: app.localeName,\n id: app.id,\n url: app.homepage,\n instanceId: app.instanceId,\n menuIcon: app.menuIcon,\n }\n : null;\n }\n\n const link = customLinksById.get(item.id);\n return link\n ? {\n ...link,\n name: link.localeName,\n }\n : null;\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: t(K.FAVORITES_LIMIT_REACHED) as string,\n content: t(K.FAVORITES_LIMIT_MESSAGE, { count: FAVORITES_LIMIT }),\n });\n return;\n }\n // Assert: no link item\n const fav: FavMenuItem = { ...(item as MenuItemDataNormal) };\n newFavorites = favorites.concat(fav);\n favorite(item as MenuItemDataNormal).then((result) => {\n if (result) {\n fav.favoriteId = result.instanceId;\n }\n }, showErrorAsNotification);\n }\n setFavorites(newFavorites);\n candidateFavorites = newFavorites;\n },\n [favorites]\n );\n\n const menuGroups: MenuGroupData[] = useMemo(\n () => search(desktops, q),\n [desktops, q]\n );\n\n const filteredPlatformCategories: PlatformCategoryItem[] = useMemo(\n () => searchCategories(platformCategories, q),\n [platformCategories, q]\n );\n\n return {\n loading,\n q,\n setQ,\n menuGroups,\n loadingFavorites,\n loadingPlatformCategories,\n favorites,\n recentVisits,\n pushRecentVisit,\n isStarred,\n toggleStar,\n platformCategories: filteredPlatformCategories,\n };\n}\n\nexport function matchFavorite(item: MenuItemDataNormal, fav: FavMenuItem) {\n return item.instanceId && fav.instanceId\n ? fav.instanceId === item.instanceId\n : fav.type === item.type && fav.id === item.id;\n}\n","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 getLocaleName(locales?: AppLocales | undefined, name?: string) {\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","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"],"names":["K","NS","locales","en","ALL","QUICK_ACCESS","PLATFORM_BASE","SCENARIO_CENTER","SOLUTIONS","OPEN_PLATFORM","SEARCH_PLACEHOLDER","RECENT_VISITS","FAVORITE","UNFAVORITE","FAVORITES_LIMIT_REACHED","FAVORITES_LIMIT_MESSAGE","zh","t","i18n","getFixedT","FAVORITES_LIMIT","RECENT_VISITS_LIMIT","async","fetchRawFavorites","LaunchpadApi_listCollectionV2","page","pageSize","interceptorParams","ignoreLoadingBar","noAbortOnRouteChange","list","matchMenuItem","item","lowerQ","id","name","localeName","description","some","field","toLowerCase","includes","initializeReactI18n","storageKey","_auth$getAuth","auth","getAuth","org","storage","JsonStorage","localStorage","candidateDesktops","candidateMicroAppsById","Map","candidateCustomLinksById","preLoaded","candidateFavorites","preLoadedFavorites","candidatePlatformCategories","preLoadedPlatformCategories","deferredLaunchpadInfo","DeferredService","menuGroups","microAppsById","customLinksById","_auth$isBlockedHref","launchpadInfo","LaunchpadApi_getLaunchpadInfo","storyboard","storyboards","_auth$isBlockedPath","app","getLocaleName","isBlockedPath","call","homepage","set","group","desktops","items","type","get","push","url","isBlockedHref","subItems","subItem","_auth$isBlockedHref2","length","fetchLaunchpadInfo","deferredFavorites","stored","fav","relatedApp","favoriteId","instanceId","appId","menuIcon","customItem","relatedCustomItem","link","icon","fetchFavorites","deferredPlatformCategories","categories","InstanceApi_postSearchV3","fields","page_size","query","_categories","map","category","apps","platformApps","_auth$isBlockedPath2","_app$","order","filter","Boolean","customItems","platformItems","_auth$isBlockedHref3","_item$","sortBy","lib","fetchPlatformCategories","showErrorAsNotification","error","showNotification","message","httpErrorToString","useLaunchpadInfo","active","useTranslation","setDesktops","useState","setMicroAppsById","setCustomLinksById","q","setQ","loading","setLoading","loadingFavorites","setLoadingFavorites","loadingPlatformCategories","setLoadingPlatformCategories","storedRecentVisits","setStoredRecentVisits","recentVisits","setRecentVisits","favorites","setFavorites","platformCategories","setPlatformCategories","useEffect","_storage$getItem","getItem","fetch","handleHttpError","startFetchLaunchpadInfo","startFetchFavorites","_getRuntime","getRuntime","getFeatureFlags","startFetchPlatformCategories","visits","pushRecentVisit","useCallback","_ref","_storage$getItem2","index","findIndex","visit","splice","unshift","pop","setItem","isStarred","matchFavorite","toggleStar","newFavorites","removed","slice","concat","LaunchpadApi_deleteCollectionV2","then","_list$find","foundId","find","_fav$relatedApp","_fav$relatedCustomIte","console","undoFavorite","catch","showDialog","title","content","count","LaunchpadApi_createCollectionV2","relatedInstanceId","favorite","result","useMemo","allMenuGroups","filteredSubItems","sub","search","filteredPlatformCategories","searchCategories","constructor","task","_defineProperty","this","schedulePrefetch","preFetchScheduled","preFetchLaunchpadInfo","preFetchId","window","requestIdleCallback","setTimeout","eager","promise","cancelIdleCallback","clearTimeout","isFetching","firstFetchPromise","finally","_i18nText","i18nData","Object","fromEntries","entries","_lang","resources","_ref2","lang","i18nText","WrappedIcon","wrapBrick","WrappedLink","unwrapProvider"],"sourceRoot":""}
@@ -1,3 +1,3 @@
1
- /*! For license information please see 2241.54e34874.js.LICENSE.txt */
2
- (globalThis.webpackChunk_next_bricks_nav=globalThis.webpackChunk_next_bricks_nav||[]).push([[1369,2052,2241],{63:(t,e,r)=>{"use strict";r.d(e,{IZ:()=>a,LP:()=>c,Wf:()=>s});var n=r(1732),o=r(5256),i=r(1030);function a(t){return"group"===t.type}function s(t,e){return Boolean("subMenu"===t.type||e&&"group"===t.type)}function c(t,e,r,f){const l=[],p=[],d=[];let h=0;return t&&t.forEach((t=>{if(t.key=""===f?`${h}`:`${f}.${h}`,a(t)||s(t)){const n=c(t.items,e,r,t.key);l.push(...n.selectedKeys),(n.selectedKeys.length||t.defaultExpanded)&&p.push(t.key),p.push(...n.openedKeys),d.push(...n.matchedKeys)}else if(function(t,e,r){if(!t.to)return!1;const a="object"==typeof t.to?t.to:(0,n.parsePath)(t.to),s=a.pathname.replace(/([.+*?=^!:${}()[\]|/\\])/g,"\\$1");let c=!!(0,o.matchPath)(e,{path:s,exact:t.exact});if(c&&t.activeMatchSearch&&(c=u(r,a.search)),!c&&Array.isArray(t.activeIncludes))for(const a of t.activeIncludes){let t,s=!0;(0,i.isObject)(a)?(t=Array.isArray(a.path)?a.path:[a.path],s=a.exact):t=[a];for(const i of t){var f;let t;const a=i.includes("?");if(a&&(t=(0,n.parsePath)(i)),c=!!(0,o.matchPath)(e,{path:a?t.pathname:i,exact:s}),c&&null!==(f=t)&&void 0!==f&&f.search&&(c=u(r,t.search)),c)break}if(c)break}if(c&&Array.isArray(t.activeExcludes))for(const a of t.activeExcludes){let t,s=!0;(0,i.isObject)(a)?(t=Array.isArray(a.path)?a.path:[a.path],s=a.exact):t=[a];for(const i of t){let t;if(i.includes("?")&&(t=(0,n.parsePath)(i)),c=!((0,o.matchPath)(e,{path:t?t.pathname:i,exact:s})&&(!t||u(r,t.search))),!c)break}if(!c)break}return c}(t,e,r)){l.push(String(t.key));const e=t.key.split(".");for(let t=0;t<e.length;t++)d.push(e.slice(0,t+1).join("."))}h+=1})),l.length&&""!==f&&p.push(f),{selectedKeys:l,openedKeys:p,matchedKeys:d}}function u(t,e){const r=new URLSearchParams(t),n=new URLSearchParams(e);for(const[t,e]of n.entries()){var o;if((null!==(o=r.get(t))&&void 0!==o?o:"")!==e)return!1}return!0}},829:(t,e,r)=>{"use strict";r.d(e,{A:()=>o});var n=r(2559);function o(t,e){return t.get((0,n.A)(t,e))}},855:(t,e,r)=>{"use strict";t.exports=function(t){var e=r.nc;e&&t.setAttribute("nonce",e)}},918:(t,e,r)=>{"use strict";r.d(e,{A:()=>o});var n=r(2016);function o(t,e,r){(0,n.A)(t,e),e.set(t,r)}},935:t=>{"use strict";t.exports=function(t){var e=[];return e.toString=function(){return this.map((function(e){var r="",n=void 0!==e[5];return e[4]&&(r+="@supports (".concat(e[4],") {")),e[2]&&(r+="@media ".concat(e[2]," {")),n&&(r+="@layer".concat(e[5].length>0?" ".concat(e[5]):""," {")),r+=t(e),n&&(r+="}"),e[2]&&(r+="}"),e[4]&&(r+="}"),r})).join("")},e.i=function(t,r,n,o,i){"string"==typeof t&&(t=[[null,t,void 0]]);var a={};if(n)for(var s=0;s<this.length;s++){var c=this[s][0];null!=c&&(a[c]=!0)}for(var u=0;u<t.length;u++){var f=[].concat(t[u]);n&&a[f[0]]||(void 0!==i&&(void 0===f[5]||(f[1]="@layer".concat(f[5].length>0?" ".concat(f[5]):""," {").concat(f[1],"}")),f[5]=i),r&&(f[2]?(f[1]="@media ".concat(f[2]," {").concat(f[1],"}"),f[2]=r):f[2]=r),o&&(f[4]?(f[1]="@supports (".concat(f[4],") {").concat(f[1],"}"),f[4]=o):f[4]="".concat(o)),e.push(f))}},e}},1369:(t,e,r)=>{"use strict";r.d(e,{A:()=>o});var n=r(7545);function o(t){var e=function(t){if("object"!=(0,n.A)(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var r=e.call(t,"string");if("object"!=(0,n.A)(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==(0,n.A)(e)?e:e+""}},1740:t=>{"use strict";t.exports=function(t){if("undefined"==typeof document)return{update:function(){},remove:function(){}};var e=t.insertStyleElement(t);return{update:function(r){!function(t,e,r){var n="";r.supports&&(n+="@supports (".concat(r.supports,") {")),r.media&&(n+="@media ".concat(r.media," {"));var o=void 0!==r.layer;o&&(n+="@layer".concat(r.layer.length>0?" ".concat(r.layer):""," {")),n+=r.css,o&&(n+="}"),r.media&&(n+="}"),r.supports&&(n+="}");var i=r.sourceMap;i&&"undefined"!=typeof btoa&&(n+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(i))))," */")),e.styleTagTransform(n,t,e.options)}(e,t,r)},remove:function(){!function(t){if(null===t.parentNode)return!1;t.parentNode.removeChild(t)}(e)}}}},2016:(t,e,r)=>{"use strict";function n(t,e){if(e.has(t))throw new TypeError("Cannot initialize the same private elements twice on an object")}r.d(e,{A:()=>n})},2559:(t,e,r)=>{"use strict";function n(t,e,r){if("function"==typeof t?t===e:t.has(e))return arguments.length<3?e:r;throw new TypeError("Private element is not present on this object")}r.d(e,{A:()=>n})},2591:t=>{"use strict";var e=[];function r(t){for(var r=-1,n=0;n<e.length;n++)if(e[n].identifier===t){r=n;break}return r}function n(t,n){for(var i={},a=[],s=0;s<t.length;s++){var c=t[s],u=n.base?c[0]+n.base:c[0],f=i[u]||0,l="".concat(u," ").concat(f);i[u]=f+1;var p=r(l),d={css:c[1],media:c[2],sourceMap:c[3],supports:c[4],layer:c[5]};if(-1!==p)e[p].references++,e[p].updater(d);else{var h=o(d,n);n.byIndex=s,e.splice(s,0,{identifier:l,updater:h,references:1})}a.push(l)}return a}function o(t,e){var r=e.domAPI(e);return r.update(t),function(e){if(e){if(e.css===t.css&&e.media===t.media&&e.sourceMap===t.sourceMap&&e.supports===t.supports&&e.layer===t.layer)return;r.update(t=e)}else r.remove()}}t.exports=function(t,o){var i=n(t=t||[],o=o||{});return function(t){t=t||[];for(var a=0;a<i.length;a++){var s=r(i[a]);e[s].references--}for(var c=n(t,o),u=0;u<i.length;u++){var f=r(i[u]);0===e[f].references&&(e[f].updater(),e.splice(f,1))}i=c}}},2740:(t,e,r)=>{"use strict";r.d(e,{A:()=>s});var n=r(7545),o=r(6902);function i(t,e,r){"symbol"==(0,n.A)(e)&&(e=(e=e.description)?"["+e+"]":"");try{Object.defineProperty(t,"name",{configurable:!0,value:r?r+" "+e:e})}catch(t){}return t}var a=r(1369);function s(t,e,r,s,c,u){var f,l,p,d,h,v,y,m=Symbol.metadata||Symbol.for("Symbol.metadata"),g=Object.defineProperty,b=Object.create,A=[b(null),b(null)],w=e.length;function x(e,r,n){return function(o,i){r&&(i=o,o=t);for(var a=0;a<e.length;a++)i=e[a].apply(o,n?[i]:[]);return n?i:o}}function S(t,e,r,n){if("function"!=typeof t&&(n||void 0!==t))throw new TypeError(e+" must "+(r||"be")+" a function"+(n?"":" or undefined"));return t}function j(t,e,r,o,a,s,c,u,p,d,h){function v(t){if(!h(t))throw new TypeError("Attempted to access private element on non-instance")}var y=[].concat(e[0]),m=e[3],b=!c,w=1===a,j=3===a,P=4===a,k=2===a;function E(e,r,n){return function(o,i){return r&&(i=o,o=t),n&&n(o),O[e].call(o,i)}}if(!b){var O={},I=[],T=j?"get":P||w?"set":"value";if(p?(d||w?O={get:i((function(){return m(this)}),o,"get"),set:function(t){e[4](this,t)}}:O[T]=m,d||i(O[T],o,k?"":T)):d||(O=Object.getOwnPropertyDescriptor(t,o)),!d&&!p){if((l=A[+u][o])&&7!=(l^a))throw Error("Decorating two elements with the same name ("+O[T].name+") is not supported yet");A[+u][o]=a<3?1:a}}for(var _=t,C=y.length-1;C>=0;C-=r?2:1){var M=S(y[C],"A decorator","be",!0),K=r?y[C-1]:void 0,L={},N={kind:["field","accessor","method","getter","setter","class"][a],name:o,metadata:f,addInitializer:function(t,e){if(t.v)throw Error("attempted to call addInitializer after decoration was finished");S(e,"An initializer","be",!0),s.push(e)}.bind(null,L)};if(b)l=M.call(K,_,N),L.v=1,S(l,"class decorators","return")&&(_=l);else if(N.static=u,N.private=p,l=N.access={has:p?h.bind():function(t){return o in t}},P||(l.get=p?k?function(t){return v(t),O.value}:E("get",0,v):function(t){return t[o]}),k||j||(l.set=p?E("set",0,v):function(t,e){t[o]=e}),_=M.call(K,w?{get:O.get,set:O.set}:O[T],N),L.v=1,w){if("object"==(0,n.A)(_)&&_)(l=S(_.get,"accessor.get"))&&(O.get=l),(l=S(_.set,"accessor.set"))&&(O.set=l),(l=S(_.init,"accessor.init"))&&I.unshift(l);else if(void 0!==_)throw new TypeError("accessor decorators must return an object with get, set, or init properties or undefined")}else S(_,(d?"field":"method")+" decorators","return")&&(d?I.unshift(_):O[T]=_)}return a<2&&c.push(x(I,u,1),x(s,u,0)),d||b||(p?w?c.splice(-1,0,E("get",u),E("set",u)):c.push(k?O[T]:S.call.bind(O[T])):g(t,o,O)),_}function P(t){return g(t,m,{configurable:!0,enumerable:!0,value:f})}return void 0!==u&&(f=u[m]),f=b(null==f?null:f),h=[],v=function(t){t&&h.push(x(t))},y=function(e,n){for(var i=0;i<r.length;i++){var s=r[i],u=s[1],f=7&u;if((8&u)==e&&!f==n){var l=s[2],v=!!s[3],y=16&u;j(e?t:t.prototype,s,y,v?"#"+l:(0,a.A)(l),f,f<2?[]:e?d=d||[]:p=p||[],h,!!e,v,n,e&&v?function(e){return(0,o.A)(e)===t}:c)}}},y(8,0),y(0,0),y(8,1),y(0,1),v(p),v(d),l=h,w||P(t),{e:l,get c(){var r=[];return w&&[P(t=j(t,[e],s,t.name,5,r)),x(r,1)]}}}},3051:t=>{"use strict";t.exports=function(t){var e=document.createElement("style");return t.setAttributes(e,t.attributes),t.insert(e,t.options),e}},3373:(t,e)=>{var r;!function(){"use strict";var n={}.hasOwnProperty;function o(){for(var t="",e=0;e<arguments.length;e++){var r=arguments[e];r&&(t=a(t,i(r)))}return t}function i(t){if("string"==typeof t||"number"==typeof t)return t;if("object"!=typeof t)return"";if(Array.isArray(t))return o.apply(null,t);if(t.toString!==Object.prototype.toString&&!t.toString.toString().includes("[native code]"))return t.toString();var e="";for(var r in t)n.call(t,r)&&t[r]&&(e=a(e,r));return e}function a(t,e){return e?t?t+" "+e:t+e:t}t.exports?(o.default=o,t.exports=o):void 0===(r=function(){return o}.apply(e,[]))||(t.exports=r)}()},3656:t=>{"use strict";t.exports=function(t,e){if(e.styleSheet)e.styleSheet.cssText=t;else{for(;e.firstChild;)e.removeChild(e.firstChild);e.appendChild(document.createTextNode(t))}}},4156:(t,e,r)=>{"use strict";r.d(e,{B:()=>o});var n=r(1361);const o=(t,e)=>n.http.post("api/gateway/logic.user_service/api/v1/user_service/my_collection/upsert_collections",t,e)},4586:(t,e,r)=>{"use strict";r.d(e,{A:()=>o});var n=r(1369);function o(t,e,r){return(e=(0,n.A)(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}},5343:(t,e,r)=>{"use strict";r.d(e,{Q:()=>o});var n=r(1361);const o=async(t,e)=>(await n.http.get("api/gateway/logic.user_service/api/v1/user_service/my_collection/collections",{...e,params:t})).data},6121:(t,e,r)=>{"use strict";r.d(e,{A:()=>o});var n=r(2559);function o(t,e,r){return t.set((0,n.A)(t,e),r),r}},6758:t=>{"use strict";t.exports=function(t){return t[1]}},6902:(t,e,r)=>{"use strict";r.d(e,{A:()=>o});var n=r(7545);function o(t){if(Object(t)!==t)throw TypeError("right-hand side of 'in' should be an object, got "+(null!==t?(0,n.A)(t):"null"));return t}},7137:(t,e,r)=>{"use strict";r.d(e,{G:()=>n});class n{constructor(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"brick-next-";this.storage=t,this.prefix=e}setItem(t,e){this.storage.setItem(this.prefix+t,JSON.stringify(e))}getItem(t){return JSON.parse(this.storage.getItem(this.prefix+t))}removeItem(t){return this.storage.removeItem(this.prefix+t)}clear(){return this.storage.clear()}}},7545:(t,e,r)=>{"use strict";function n(t){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},n(t)}r.d(e,{A:()=>n})},8128:t=>{"use strict";var e={};t.exports=function(t,r){var n=function(t){if(void 0===e[t]){var r=document.querySelector(t);if(window.HTMLIFrameElement&&r instanceof window.HTMLIFrameElement)try{r=r.contentDocument.head}catch(t){r=null}e[t]=r}return e[t]}(t);if(!n)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");n.appendChild(r)}},9575:(t,e,r)=>{"use strict";function n(){return n=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(t[n]=r[n])}return t},n.apply(this,arguments)}r.d(e,{A:()=>n})}}]);
3
- //# sourceMappingURL=2241.54e34874.js.map
1
+ /*! For license information please see 2241.e6e34a55.js.LICENSE.txt */
2
+ (globalThis.webpackChunk_next_bricks_nav=globalThis.webpackChunk_next_bricks_nav||[]).push([[1369,2052,2241],{63:(t,e,r)=>{"use strict";r.d(e,{IZ:()=>a,LP:()=>c,Wf:()=>s});var n=r(1732),o=r(1921),i=r(1030);function a(t){return"group"===t.type}function s(t,e){return Boolean("subMenu"===t.type||e&&"group"===t.type)}function c(t,e,r,f){const l=[],p=[],d=[];let h=0;return t&&t.forEach((t=>{if(t.key=""===f?`${h}`:`${f}.${h}`,a(t)||s(t)){const n=c(t.items,e,r,t.key);l.push(...n.selectedKeys),(n.selectedKeys.length||t.defaultExpanded)&&p.push(t.key),p.push(...n.openedKeys),d.push(...n.matchedKeys)}else if(function(t,e,r){if(!t.to)return!1;const a="object"==typeof t.to?t.to:(0,n.parsePath)(t.to),s=a.pathname.replace(/([.+*?=^!:${}()[\]|/\\])/g,"\\$1");let c=!!(0,o.matchPath)(e,{path:s,exact:t.exact});if(c&&t.activeMatchSearch&&(c=u(r,a.search)),!c&&Array.isArray(t.activeIncludes))for(const a of t.activeIncludes){let t,s=!0;(0,i.isObject)(a)?(t=Array.isArray(a.path)?a.path:[a.path],s=a.exact):t=[a];for(const i of t){var f;let t;const a=i.includes("?");if(a&&(t=(0,n.parsePath)(i)),c=!!(0,o.matchPath)(e,{path:a?t.pathname:i,exact:s}),c&&null!==(f=t)&&void 0!==f&&f.search&&(c=u(r,t.search)),c)break}if(c)break}if(c&&Array.isArray(t.activeExcludes))for(const a of t.activeExcludes){let t,s=!0;(0,i.isObject)(a)?(t=Array.isArray(a.path)?a.path:[a.path],s=a.exact):t=[a];for(const i of t){let t;if(i.includes("?")&&(t=(0,n.parsePath)(i)),c=!((0,o.matchPath)(e,{path:t?t.pathname:i,exact:s})&&(!t||u(r,t.search))),!c)break}if(!c)break}return c}(t,e,r)){l.push(String(t.key));const e=t.key.split(".");for(let t=0;t<e.length;t++)d.push(e.slice(0,t+1).join("."))}h+=1})),l.length&&""!==f&&p.push(f),{selectedKeys:l,openedKeys:p,matchedKeys:d}}function u(t,e){const r=new URLSearchParams(t),n=new URLSearchParams(e);for(const[t,e]of n.entries()){var o;if((null!==(o=r.get(t))&&void 0!==o?o:"")!==e)return!1}return!0}},829:(t,e,r)=>{"use strict";r.d(e,{A:()=>o});var n=r(2559);function o(t,e){return t.get((0,n.A)(t,e))}},855:(t,e,r)=>{"use strict";t.exports=function(t){var e=r.nc;e&&t.setAttribute("nonce",e)}},918:(t,e,r)=>{"use strict";r.d(e,{A:()=>o});var n=r(2016);function o(t,e,r){(0,n.A)(t,e),e.set(t,r)}},935:t=>{"use strict";t.exports=function(t){var e=[];return e.toString=function(){return this.map((function(e){var r="",n=void 0!==e[5];return e[4]&&(r+="@supports (".concat(e[4],") {")),e[2]&&(r+="@media ".concat(e[2]," {")),n&&(r+="@layer".concat(e[5].length>0?" ".concat(e[5]):""," {")),r+=t(e),n&&(r+="}"),e[2]&&(r+="}"),e[4]&&(r+="}"),r})).join("")},e.i=function(t,r,n,o,i){"string"==typeof t&&(t=[[null,t,void 0]]);var a={};if(n)for(var s=0;s<this.length;s++){var c=this[s][0];null!=c&&(a[c]=!0)}for(var u=0;u<t.length;u++){var f=[].concat(t[u]);n&&a[f[0]]||(void 0!==i&&(void 0===f[5]||(f[1]="@layer".concat(f[5].length>0?" ".concat(f[5]):""," {").concat(f[1],"}")),f[5]=i),r&&(f[2]?(f[1]="@media ".concat(f[2]," {").concat(f[1],"}"),f[2]=r):f[2]=r),o&&(f[4]?(f[1]="@supports (".concat(f[4],") {").concat(f[1],"}"),f[4]=o):f[4]="".concat(o)),e.push(f))}},e}},1369:(t,e,r)=>{"use strict";r.d(e,{A:()=>o});var n=r(7545);function o(t){var e=function(t){if("object"!=(0,n.A)(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var r=e.call(t,"string");if("object"!=(0,n.A)(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==(0,n.A)(e)?e:e+""}},1740:t=>{"use strict";t.exports=function(t){if("undefined"==typeof document)return{update:function(){},remove:function(){}};var e=t.insertStyleElement(t);return{update:function(r){!function(t,e,r){var n="";r.supports&&(n+="@supports (".concat(r.supports,") {")),r.media&&(n+="@media ".concat(r.media," {"));var o=void 0!==r.layer;o&&(n+="@layer".concat(r.layer.length>0?" ".concat(r.layer):""," {")),n+=r.css,o&&(n+="}"),r.media&&(n+="}"),r.supports&&(n+="}");var i=r.sourceMap;i&&"undefined"!=typeof btoa&&(n+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(i))))," */")),e.styleTagTransform(n,t,e.options)}(e,t,r)},remove:function(){!function(t){if(null===t.parentNode)return!1;t.parentNode.removeChild(t)}(e)}}}},2016:(t,e,r)=>{"use strict";function n(t,e){if(e.has(t))throw new TypeError("Cannot initialize the same private elements twice on an object")}r.d(e,{A:()=>n})},2559:(t,e,r)=>{"use strict";function n(t,e,r){if("function"==typeof t?t===e:t.has(e))return arguments.length<3?e:r;throw new TypeError("Private element is not present on this object")}r.d(e,{A:()=>n})},2591:t=>{"use strict";var e=[];function r(t){for(var r=-1,n=0;n<e.length;n++)if(e[n].identifier===t){r=n;break}return r}function n(t,n){for(var i={},a=[],s=0;s<t.length;s++){var c=t[s],u=n.base?c[0]+n.base:c[0],f=i[u]||0,l="".concat(u," ").concat(f);i[u]=f+1;var p=r(l),d={css:c[1],media:c[2],sourceMap:c[3],supports:c[4],layer:c[5]};if(-1!==p)e[p].references++,e[p].updater(d);else{var h=o(d,n);n.byIndex=s,e.splice(s,0,{identifier:l,updater:h,references:1})}a.push(l)}return a}function o(t,e){var r=e.domAPI(e);return r.update(t),function(e){if(e){if(e.css===t.css&&e.media===t.media&&e.sourceMap===t.sourceMap&&e.supports===t.supports&&e.layer===t.layer)return;r.update(t=e)}else r.remove()}}t.exports=function(t,o){var i=n(t=t||[],o=o||{});return function(t){t=t||[];for(var a=0;a<i.length;a++){var s=r(i[a]);e[s].references--}for(var c=n(t,o),u=0;u<i.length;u++){var f=r(i[u]);0===e[f].references&&(e[f].updater(),e.splice(f,1))}i=c}}},2740:(t,e,r)=>{"use strict";r.d(e,{A:()=>s});var n=r(7545),o=r(6902);function i(t,e,r){"symbol"==(0,n.A)(e)&&(e=(e=e.description)?"["+e+"]":"");try{Object.defineProperty(t,"name",{configurable:!0,value:r?r+" "+e:e})}catch(t){}return t}var a=r(1369);function s(t,e,r,s,c,u){var f,l,p,d,h,v,y,m=Symbol.metadata||Symbol.for("Symbol.metadata"),g=Object.defineProperty,b=Object.create,A=[b(null),b(null)],w=e.length;function x(e,r,n){return function(o,i){r&&(i=o,o=t);for(var a=0;a<e.length;a++)i=e[a].apply(o,n?[i]:[]);return n?i:o}}function S(t,e,r,n){if("function"!=typeof t&&(n||void 0!==t))throw new TypeError(e+" must "+(r||"be")+" a function"+(n?"":" or undefined"));return t}function j(t,e,r,o,a,s,c,u,p,d,h){function v(t){if(!h(t))throw new TypeError("Attempted to access private element on non-instance")}var y=[].concat(e[0]),m=e[3],b=!c,w=1===a,j=3===a,P=4===a,k=2===a;function E(e,r,n){return function(o,i){return r&&(i=o,o=t),n&&n(o),O[e].call(o,i)}}if(!b){var O={},I=[],T=j?"get":P||w?"set":"value";if(p?(d||w?O={get:i((function(){return m(this)}),o,"get"),set:function(t){e[4](this,t)}}:O[T]=m,d||i(O[T],o,k?"":T)):d||(O=Object.getOwnPropertyDescriptor(t,o)),!d&&!p){if((l=A[+u][o])&&7!=(l^a))throw Error("Decorating two elements with the same name ("+O[T].name+") is not supported yet");A[+u][o]=a<3?1:a}}for(var _=t,C=y.length-1;C>=0;C-=r?2:1){var M=S(y[C],"A decorator","be",!0),K=r?y[C-1]:void 0,L={},N={kind:["field","accessor","method","getter","setter","class"][a],name:o,metadata:f,addInitializer:function(t,e){if(t.v)throw Error("attempted to call addInitializer after decoration was finished");S(e,"An initializer","be",!0),s.push(e)}.bind(null,L)};if(b)l=M.call(K,_,N),L.v=1,S(l,"class decorators","return")&&(_=l);else if(N.static=u,N.private=p,l=N.access={has:p?h.bind():function(t){return o in t}},P||(l.get=p?k?function(t){return v(t),O.value}:E("get",0,v):function(t){return t[o]}),k||j||(l.set=p?E("set",0,v):function(t,e){t[o]=e}),_=M.call(K,w?{get:O.get,set:O.set}:O[T],N),L.v=1,w){if("object"==(0,n.A)(_)&&_)(l=S(_.get,"accessor.get"))&&(O.get=l),(l=S(_.set,"accessor.set"))&&(O.set=l),(l=S(_.init,"accessor.init"))&&I.unshift(l);else if(void 0!==_)throw new TypeError("accessor decorators must return an object with get, set, or init properties or undefined")}else S(_,(d?"field":"method")+" decorators","return")&&(d?I.unshift(_):O[T]=_)}return a<2&&c.push(x(I,u,1),x(s,u,0)),d||b||(p?w?c.splice(-1,0,E("get",u),E("set",u)):c.push(k?O[T]:S.call.bind(O[T])):g(t,o,O)),_}function P(t){return g(t,m,{configurable:!0,enumerable:!0,value:f})}return void 0!==u&&(f=u[m]),f=b(null==f?null:f),h=[],v=function(t){t&&h.push(x(t))},y=function(e,n){for(var i=0;i<r.length;i++){var s=r[i],u=s[1],f=7&u;if((8&u)==e&&!f==n){var l=s[2],v=!!s[3],y=16&u;j(e?t:t.prototype,s,y,v?"#"+l:(0,a.A)(l),f,f<2?[]:e?d=d||[]:p=p||[],h,!!e,v,n,e&&v?function(e){return(0,o.A)(e)===t}:c)}}},y(8,0),y(0,0),y(8,1),y(0,1),v(p),v(d),l=h,w||P(t),{e:l,get c(){var r=[];return w&&[P(t=j(t,[e],s,t.name,5,r)),x(r,1)]}}}},3051:t=>{"use strict";t.exports=function(t){var e=document.createElement("style");return t.setAttributes(e,t.attributes),t.insert(e,t.options),e}},3373:(t,e)=>{var r;!function(){"use strict";var n={}.hasOwnProperty;function o(){for(var t="",e=0;e<arguments.length;e++){var r=arguments[e];r&&(t=a(t,i(r)))}return t}function i(t){if("string"==typeof t||"number"==typeof t)return t;if("object"!=typeof t)return"";if(Array.isArray(t))return o.apply(null,t);if(t.toString!==Object.prototype.toString&&!t.toString.toString().includes("[native code]"))return t.toString();var e="";for(var r in t)n.call(t,r)&&t[r]&&(e=a(e,r));return e}function a(t,e){return e?t?t+" "+e:t+e:t}t.exports?(o.default=o,t.exports=o):void 0===(r=function(){return o}.apply(e,[]))||(t.exports=r)}()},3656:t=>{"use strict";t.exports=function(t,e){if(e.styleSheet)e.styleSheet.cssText=t;else{for(;e.firstChild;)e.removeChild(e.firstChild);e.appendChild(document.createTextNode(t))}}},4156:(t,e,r)=>{"use strict";r.d(e,{B:()=>o});var n=r(1361);const o=(t,e)=>n.http.post("api/gateway/logic.user_service/api/v1/user_service/my_collection/upsert_collections",t,e)},4586:(t,e,r)=>{"use strict";r.d(e,{A:()=>o});var n=r(1369);function o(t,e,r){return(e=(0,n.A)(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}},5343:(t,e,r)=>{"use strict";r.d(e,{Q:()=>o});var n=r(1361);const o=async(t,e)=>(await n.http.get("api/gateway/logic.user_service/api/v1/user_service/my_collection/collections",{...e,params:t})).data},6121:(t,e,r)=>{"use strict";r.d(e,{A:()=>o});var n=r(2559);function o(t,e,r){return t.set((0,n.A)(t,e),r),r}},6758:t=>{"use strict";t.exports=function(t){return t[1]}},6902:(t,e,r)=>{"use strict";r.d(e,{A:()=>o});var n=r(7545);function o(t){if(Object(t)!==t)throw TypeError("right-hand side of 'in' should be an object, got "+(null!==t?(0,n.A)(t):"null"));return t}},7137:(t,e,r)=>{"use strict";r.d(e,{G:()=>n});class n{constructor(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"brick-next-";this.storage=t,this.prefix=e}setItem(t,e){this.storage.setItem(this.prefix+t,JSON.stringify(e))}getItem(t){return JSON.parse(this.storage.getItem(this.prefix+t))}removeItem(t){return this.storage.removeItem(this.prefix+t)}clear(){return this.storage.clear()}}},7545:(t,e,r)=>{"use strict";function n(t){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},n(t)}r.d(e,{A:()=>n})},8128:t=>{"use strict";var e={};t.exports=function(t,r){var n=function(t){if(void 0===e[t]){var r=document.querySelector(t);if(window.HTMLIFrameElement&&r instanceof window.HTMLIFrameElement)try{r=r.contentDocument.head}catch(t){r=null}e[t]=r}return e[t]}(t);if(!n)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");n.appendChild(r)}},9575:(t,e,r)=>{"use strict";function n(){return n=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(t[n]=r[n])}return t},n.apply(this,arguments)}r.d(e,{A:()=>n})}}]);
3
+ //# sourceMappingURL=2241.e6e34a55.js.map