@next-bricks/nav 1.11.2 → 1.11.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bricks.json +11 -11
- package/dist/chunks/{2133.5e1c5099.js → 2133.a64e4e04.js} +2 -2
- package/dist/chunks/{2133.5e1c5099.js.map → 2133.a64e4e04.js.map} +1 -1
- package/dist/chunks/{2252.51fbe26a.js → 2252.b1622599.js} +3 -3
- package/dist/chunks/{2252.51fbe26a.js.map → 2252.b1622599.js.map} +1 -1
- package/dist/chunks/{7115.245c67ba.js → 7115.dd23febc.js} +2 -2
- package/dist/chunks/{7115.245c67ba.js.map → 7115.dd23febc.js.map} +1 -1
- package/dist/chunks/{8171.38a07996.js → 8171.5de827b7.js} +3 -3
- package/dist/chunks/{8171.38a07996.js.map → 8171.5de827b7.js.map} +1 -1
- package/dist/chunks/{8518.4133212d.js → 8518.58bbc0ca.js} +2 -2
- package/dist/chunks/{8518.4133212d.js.map → 8518.58bbc0ca.js.map} +1 -1
- package/dist/chunks/{875.3c07f6e3.js → 875.a6683009.js} +2 -2
- package/dist/chunks/875.a6683009.js.map +1 -0
- package/dist/chunks/9043.04a63e90.js +3 -0
- package/dist/chunks/{9043.31254360.js.map → 9043.04a63e90.js.map} +1 -1
- package/dist/chunks/{9155.0557e167.js → 9155.d6917af3.js} +3 -3
- package/dist/chunks/{9155.0557e167.js.map → 9155.d6917af3.js.map} +1 -1
- package/dist/chunks/{9496.9fce4116.js → 9496.a0587869.js} +2 -2
- package/dist/chunks/{9496.9fce4116.js.map → 9496.a0587869.js.map} +1 -1
- package/dist/chunks/{9515.2f5b19b4.js → 9515.5ca91c5e.js} +2 -2
- package/dist/chunks/{9515.2f5b19b4.js.map → 9515.5ca91c5e.js.map} +1 -1
- package/dist/chunks/easyops-navbar-alerts.b5dc2be0.js +2 -0
- package/dist/chunks/{easyops-navbar-alerts.7fcadebf.js.map → easyops-navbar-alerts.b5dc2be0.js.map} +1 -1
- package/dist/chunks/eo-directory-tree.9d252e02.js +2 -0
- package/dist/chunks/{eo-directory-tree.e152ac8f.js.map → eo-directory-tree.9d252e02.js.map} +1 -1
- package/dist/chunks/eo-directory.cb58f265.js +3 -0
- package/dist/chunks/{eo-directory.801c2fa9.js.map → eo-directory.cb58f265.js.map} +1 -1
- package/dist/chunks/eo-frame-breadcrumb.09f2f36e.js +2 -0
- package/dist/chunks/{eo-frame-breadcrumb.18e5cad5.js.map → eo-frame-breadcrumb.09f2f36e.js.map} +1 -1
- package/dist/chunks/{eo-launchpad-button-v2.0b565e27.js → eo-launchpad-button-v2.a8bad4ff.js} +2 -2
- package/dist/chunks/{eo-launchpad-button-v2.0b565e27.js.map → eo-launchpad-button-v2.a8bad4ff.js.map} +1 -1
- package/dist/chunks/{eo-nav-menu.719d9efc.js → eo-nav-menu.300cf917.js} +2 -2
- package/dist/chunks/{eo-nav-menu.719d9efc.js.map → eo-nav-menu.300cf917.js.map} +1 -1
- package/dist/chunks/{eo-sidebar-menu-group.d1ec325a.js → eo-sidebar-menu-group.58ade901.js} +3 -3
- package/dist/chunks/{eo-sidebar-menu-group.d1ec325a.js.map → eo-sidebar-menu-group.58ade901.js.map} +1 -1
- package/dist/chunks/{eo-sidebar-menu-submenu.050a54c9.js → eo-sidebar-menu-submenu.e278a8f1.js} +3 -3
- package/dist/chunks/{eo-sidebar-menu-submenu.050a54c9.js.map → eo-sidebar-menu-submenu.e278a8f1.js.map} +1 -1
- package/dist/chunks/{eo-sidebar-menu.4b38248a.js → eo-sidebar-menu.0101873d.js} +2 -2
- package/dist/chunks/{eo-sidebar-menu.4b38248a.js.map → eo-sidebar-menu.0101873d.js.map} +1 -1
- package/dist/chunks/{eo-sidebar-sub-menu.5b23c6bc.js → eo-sidebar-sub-menu.b9957457.js} +3 -3
- package/dist/chunks/{eo-sidebar-sub-menu.5b23c6bc.js.map → eo-sidebar-sub-menu.b9957457.js.map} +1 -1
- package/dist/chunks/eo-sidebar.365fe1d0.js +3 -0
- package/dist/chunks/{eo-sidebar.310ff53d.js.map → eo-sidebar.365fe1d0.js.map} +1 -1
- package/dist/chunks/{launchpad-config.640ac0e4.js → launchpad-config.c645b767.js} +3 -3
- package/dist/chunks/{launchpad-config.640ac0e4.js.map → launchpad-config.c645b767.js.map} +1 -1
- package/dist/chunks/main.510782a8.js +2 -0
- package/dist/chunks/{main.e9f16aab.js.map → main.510782a8.js.map} +1 -1
- package/dist/chunks/{nav-logo.a5839bc9.js → nav-logo.08276528.js} +2 -2
- package/dist/chunks/{nav-logo.a5839bc9.js.map → nav-logo.08276528.js.map} +1 -1
- package/dist/index.aec387b2.js +2 -0
- package/dist/{index.ada3566f.js.map → index.aec387b2.js.map} +1 -1
- package/dist/manifest.json +22 -22
- package/package.json +2 -2
- package/dist/chunks/875.3c07f6e3.js.map +0 -1
- package/dist/chunks/9043.31254360.js +0 -3
- package/dist/chunks/easyops-navbar-alerts.7fcadebf.js +0 -2
- package/dist/chunks/eo-directory-tree.e152ac8f.js +0 -2
- package/dist/chunks/eo-directory.801c2fa9.js +0 -3
- package/dist/chunks/eo-frame-breadcrumb.18e5cad5.js +0 -2
- package/dist/chunks/eo-sidebar.310ff53d.js +0 -3
- package/dist/chunks/main.e9f16aab.js +0 -2
- package/dist/index.ada3566f.js +0 -2
- /package/dist/chunks/{2252.51fbe26a.js.LICENSE.txt → 2252.b1622599.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{8171.38a07996.js.LICENSE.txt → 8171.5de827b7.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{9043.31254360.js.LICENSE.txt → 9043.04a63e90.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{9155.0557e167.js.LICENSE.txt → 9155.d6917af3.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{eo-directory.801c2fa9.js.LICENSE.txt → eo-directory.cb58f265.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{eo-sidebar-menu-group.d1ec325a.js.LICENSE.txt → eo-sidebar-menu-group.58ade901.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{eo-sidebar-menu-submenu.050a54c9.js.LICENSE.txt → eo-sidebar-menu-submenu.e278a8f1.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{eo-sidebar-sub-menu.5b23c6bc.js.LICENSE.txt → eo-sidebar-sub-menu.b9957457.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{eo-sidebar.310ff53d.js.LICENSE.txt → eo-sidebar.365fe1d0.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{launchpad-config.640ac0e4.js.LICENSE.txt → launchpad-config.c645b767.js.LICENSE.txt} +0 -0
package/dist/bricks.json
CHANGED
|
@@ -8,9 +8,9 @@
|
|
|
8
8
|
],
|
|
9
9
|
"elements": [
|
|
10
10
|
"eo-nav-menu",
|
|
11
|
+
"eo-launchpad-button",
|
|
11
12
|
"eo-launchpad-button-v2",
|
|
12
13
|
"eo-launchpad-quick-access",
|
|
13
|
-
"eo-launchpad-button",
|
|
14
14
|
"eo-search-launchpad",
|
|
15
15
|
"eo-launchpad-recent-visits",
|
|
16
16
|
"eo-app-bar-wrapper",
|
|
@@ -37,11 +37,9 @@
|
|
|
37
37
|
"eo-input",
|
|
38
38
|
"eo-tooltip"
|
|
39
39
|
],
|
|
40
|
-
"
|
|
40
|
+
"eo-launchpad-button": [
|
|
41
41
|
"eo-icon",
|
|
42
|
-
"eo-link"
|
|
43
|
-
"eo-dropdown-actions",
|
|
44
|
-
"basic.show-dialog"
|
|
42
|
+
"eo-link"
|
|
45
43
|
],
|
|
46
44
|
"eo-launchpad-button-v2": [
|
|
47
45
|
"basic.lock-body-scroll",
|
|
@@ -50,19 +48,21 @@
|
|
|
50
48
|
"basic.show-dialog",
|
|
51
49
|
"basic.show-notification"
|
|
52
50
|
],
|
|
53
|
-
"
|
|
51
|
+
"nav.launchpad-config": [
|
|
54
52
|
"eo-icon",
|
|
55
53
|
"eo-link",
|
|
56
|
-
"
|
|
57
|
-
"basic.show-
|
|
54
|
+
"eo-dropdown-actions",
|
|
55
|
+
"basic.show-dialog"
|
|
58
56
|
],
|
|
59
57
|
"nav.easyops-navbar-alerts": [
|
|
60
58
|
"eo-icon",
|
|
61
59
|
"eo-link"
|
|
62
60
|
],
|
|
63
|
-
"eo-launchpad-
|
|
61
|
+
"eo-launchpad-quick-access": [
|
|
64
62
|
"eo-icon",
|
|
65
|
-
"eo-link"
|
|
63
|
+
"eo-link",
|
|
64
|
+
"basic.show-dialog",
|
|
65
|
+
"basic.show-notification"
|
|
66
66
|
],
|
|
67
67
|
"eo-search-launchpad": [
|
|
68
68
|
"eo-icon",
|
|
@@ -131,5 +131,5 @@
|
|
|
131
131
|
"eo-link"
|
|
132
132
|
]
|
|
133
133
|
},
|
|
134
|
-
"filePath": "bricks/nav/dist/index.
|
|
134
|
+
"filePath": "bricks/nav/dist/index.aec387b2.js"
|
|
135
135
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_next_bricks_nav=self.webpackChunk_next_bricks_nav||[]).push([[2133],{2133:(e,t,n)=>{n.d(t,{fm:()=>z,ir:()=>q,pU:()=>D,sZ:()=>V});var r,i=n(9740),a=n(6330),o=n(8769),s=n(
|
|
2
|
-
//# sourceMappingURL=2133.
|
|
1
|
+
"use strict";(self.webpackChunk_next_bricks_nav=self.webpackChunk_next_bricks_nav||[]).push([[2133],{2133:(e,t,n)=>{n.d(t,{fm:()=>z,ir:()=>q,pU:()=>D,sZ:()=>V});var r,i=n(9740),a=n(6330),o=n(8769),s=n(4328),c=n(4038),u=n(4612),p=n(4864),l=n(9393),d=n(3346),m=n(7296),f=n(2824),h=n(2887),v=n(8406),I=10,y=10,g=n(6659),A=n(1030);function w(){return(w=(0,a.A)((function*(){var e=yield(0,d.i)({},{interceptorParams:{ignoreLoadingBar:!0},noAbortOnRouteChange:!0}),t=new Map;for(var n of e.storyboards){var r=n.app;r.localeName=(0,g.F)(r.locales,r.name),t.set(r.id,r)}var a=[],o=new Map;for(var s of e.desktops){var c=[];for(var u of s.items)switch(u.type){case"app":var p=t.get(u.id);p&&c.push((0,i.A)((0,i.A)({},u),{},{name:p.localeName,url:p.homepage,menuIcon:p.menuIcon}));break;case"custom":c.push(u),o.set(u.id,u);break;case"dir":var l=[];for(var m of u.items)if("app"===m.type){var f=t.get(m.id);f&&l.push((0,i.A)((0,i.A)({},m),{},{name:f.localeName,url:f.homepage,menuIcon:f.menuIcon}))}else"custom"===m.type&&(l.push(m),o.set(m.id,m));l.length>0&&c.push((0,i.A)((0,i.A)({},u),{},{items:l}))}c.length>0&&a.push((0,i.A)((0,i.A)({},s),{},{items:c}))}return{menuGroups:a,microAppsById:t,customLinksById:o}}))).apply(this,arguments)}function k(){return F.apply(this,arguments)}function F(){return(F=(0,a.A)((function*(){return(yield(0,m.K)({page:1,pageSize:I},{interceptorParams:{ignoreLoadingBar:!0},noAbortOnRouteChange:!0})).list}))).apply(this,arguments)}function C(){return(C=(0,a.A)((function*(){var e=yield k(),t=[];for(var n of e)if("microApp"===n.type){var r=n.relatedApp;r.localeName=(0,g.F)(r.locales,r.name),t.push({favoriteId:n.instanceId,type:"app",name:r.localeName,id:r.appId,url:r.homepage,instanceId:r.instanceId,menuIcon:r.menuIcon})}else if("customItem"===n.type){var i=n.relatedCustomItem;t.push({favoriteId:n.instanceId,type:"custom",name:i.name,id:i.id,url:i.url,menuIcon:i.menuIcon})}else"link"===n.type&&t.push({favoriteId:n.instanceId,type:"link",name:n.name,url:n.link,menuIcon:n.icon});return t}))).apply(this,arguments)}function b(){return(b=(0,a.A)((function*(e){return(0,f.k)({type:"app"===e.type?"microApp":"customItem",relatedInstanceId:e.instanceId},{interceptorParams:{ignoreLoadingBar:!0}})}))).apply(this,arguments)}function S(){return(S=(0,a.A)((function*(e){return e.favoriteId?(0,h.r)(e.favoriteId):k().then((t=>{var n,r=null===(n=t.find((t=>{var n,r;return"app"===e.type?"microApp"===t.type&&(null===(n=t.relatedApp)||void 0===n?void 0:n.appId)===e.id:"custom"===e.type&&(null===(r=t.relatedCustomItem)||void 0===r?void 0:r.id)===e.id})))||void 0===n?void 0:n.instanceId;if(r)return(0,h.r)(r);console.error("Menu item to unstar not found:",e)}))}))).apply(this,arguments)}function B(){return(B=(0,a.A)((function*(){var e=(yield(0,v.y)("MICRO_APP_CATEGORY@EASYOPS",{fields:["id","type","name","icon","order","platformApps.appId","platformApps.name","platformApps.homepage","platformApps.description","platformApps.menuIcon","platformApps.locales","platformApps._object_id","platformApps.@.order","platformItems.id","platformItems.name","platformItems.url","platformItems.description","platformItems.menuIcon","platformItems._object_id","platformItems.@.order"],page:1,page_size:300,query:{type:"platform"}})).list,t=null==e?void 0:e.map((e=>{var t=e.platformApps.map((e=>{var t;return{type:"app",name:(0,g.F)(e.locales,e.name),id:e.appId,url:e.homepage,menuIcon:e.menuIcon,description:e.description,instanceId:e.instanceId,order:null===(t=e["@"])||void 0===t?void 0:t.order}})),n=e.platformItems.map((e=>{var t;return{type:"custom",name:e.name,id:e.id,url:e.url,menuIcon:e.menuIcon,description:e.description,instanceId:e.instanceId,order:null===(t=e["@"])||void 0===t?void 0:t.order}})),r=(0,A.sortBy)([...t,...n],"order");return{instanceId:e.instanceId,id:e.id,name:e.name,icon:e.icon,order:e.order,items:r}}));return[{id:"#all",name:"全部",icon:{lib:"easyops",category:"second-menu",icon:"sprint-planning-second-menu"},items:[]},...(0,A.sortBy)(t,"order")]}))).apply(this,arguments)}function P(e,t){return e.id.toLowerCase().includes(t)||e.name.toLowerCase().includes(t)||e.description&&e.description.toLowerCase().includes(t)?e:null}function x(e,t){return e.id.toLowerCase().includes(t)||e.name.toLowerCase().includes(t)||e.description&&e.description.toLowerCase().includes(t)?e:null}var E="launchpad-recent-visits:".concat(null===(r=c.auth.getAuth())||void 0===r?void 0:r.org),L=new u.G(localStorage),_=[],M=new Map,O=new Map,N=!1,G=[],R=!1,j=[],T=!1,q=new p.x((0,a.A)((function*(){({menuGroups:_,microAppsById:M,customLinksById:O}=yield function(){return w.apply(this,arguments)}()),N=!0}))),z=new p.x((0,a.A)((function*(){G=yield function(){return C.apply(this,arguments)}(),R=!0}))),D=new p.x((0,a.A)((function*(){j=yield function(){return B.apply(this,arguments)}(),T=!0}))),J=e=>(0,l.Ds)({type:"error",message:(0,s.httpErrorToString)(e)});function V(e){var[t,n]=(0,o.useState)(_),[r,c]=(0,o.useState)(M),[u,p]=(0,o.useState)(O),[d,m]=(0,o.useState)(""),[f,h]=(0,o.useState)(!N),[v,g]=(0,o.useState)(!R),[A,w]=(0,o.useState)(!T),[k,F]=(0,o.useState)([]),[C,B]=(0,o.useState)([]),[V,H]=(0,o.useState)(G),[K,Q]=(0,o.useState)(j);(0,o.useEffect)((()=>{e&&!f&&(n(_),c(M),p(O))}),[e,f]),(0,o.useEffect)((()=>{e&&!v&&H(G)}),[e,v]),(0,o.useEffect)((()=>{e&&!A&&Q(j)}),[e,A]),(0,o.useEffect)((()=>{var t;e&&F(null!==(t=L.getItem(E))&&void 0!==t?t:[])}),[e]),(0,o.useEffect)((()=>{if(e){var t=function(){var e=(0,a.A)((function*(){try{yield q.fetch(),h(!1)}catch(e){(0,s.handleHttpError)(e)}}));return function(){return e.apply(this,arguments)}}();t()}}),[e]),(0,o.useEffect)((()=>{if(e){var t=function(){var e=(0,a.A)((function*(){try{yield z.fetch(),g(!1)}catch(e){g(!1),J(e)}}));return function(){return e.apply(this,arguments)}}();t()}}),[e]),(0,o.useEffect)((()=>{var t;if(e&&null!==(t=(0,s.getRuntime)())&&void 0!==t&&t.getFeatureFlags()["launchpad-show-platform-category"]){var n=function(){var e=(0,a.A)((function*(){try{yield D.fetch(),w(!1)}catch(e){w(!1),J(e)}}));return function(){return e.apply(this,arguments)}}();n()}}),[e]),(0,o.useEffect)((()=>{if(!f){var e=k.map((e=>{if("app"===e.type){var t=r.get(e.id);return t?{type:"app",name:t.localeName,id:t.id,url:t.homepage,instanceId:t.instanceId,menuIcon:t.menuIcon}:null}return u.get(e.id)})).filter(Boolean);B(e)}}),[u,f,r,k]);var U=(0,o.useCallback)((e=>{var t,{type:n,id:r}=e,i=null!==(t=L.getItem(E))&&void 0!==t?t:[],a=i.findIndex((e=>e.type===n&&e.id===r));a>-1&&i.splice(a,1),i.unshift({type:n,id:r}),i.length>y&&i.pop(),L.setItem(E,i)}),[]),Z=(0,o.useCallback)((e=>V.some((t=>Y(e,t)))),[V]),W=(0,o.useCallback)((e=>{var t,n=V.findIndex((t=>"link"===e.type?t.favoriteId===e.favoriteId:Y(e,t)));if(n>-1){var r=V[n];t=V.slice(0,n).concat(V.slice(n+1)),function(e){return S.apply(this,arguments)}(r).catch(J)}else{if(V.length>=I)return void(0,l.ui)({type:"warn",title:"收藏数量已达上限",content:"当前收藏链接数量已达上限(".concat(I,"个),请删除部分收藏后再添加。")});var a=(0,i.A)({},e);t=V.concat(a),function(e){return b.apply(this,arguments)}(e).then((e=>{e&&(a.favoriteId=e.instanceId)}),J)}H(t),G=t}),[V]),X=(0,o.useMemo)((()=>function(e,t){if(!t)return e;var n=t.toLowerCase();return e.map((e=>(0,i.A)((0,i.A)({},e),{},{items:e.items.map((e=>{switch(e.type){case"app":return P(e,n);case"custom":return x(e,n);case"dir":var t=e.items.map((e=>"app"===e.type?P(e,n):"custom"===e.type?x(e,n):null)).filter(Boolean);return t.length>0?(0,i.A)((0,i.A)({},e),{},{items:t}):null}})).filter(Boolean)}))).filter((e=>e.items.length>0))}(t,d)),[t,d]),$=(0,o.useMemo)((()=>function(e,t){if(!t)return e;var n=t.toLowerCase();return e.map((e=>(0,i.A)((0,i.A)({},e),{},{items:e.items.map((e=>{switch(e.type){case"app":return P(e,n);case"custom":return x(e,n)}})).filter(Boolean)})))}(K,d)),[K,d]);return{loading:f,q:d,setQ:m,menuGroups:X,loadingFavorites:v,loadingPlatformCategories:A,favorites:V,recentVisits:C,pushRecentVisit:U,isStarred:Z,toggleStar:W,platformCategories:$}}function Y(e,t){return e.instanceId&&t.instanceId?t.instanceId===e.instanceId:t.type===e.type&&t.id===e.id}},9393:(e,t,n)=>{n.d(t,{Bj:()=>a,Ds:()=>c,EM:()=>o,ui:()=>s});var r=n(2621),i=n(4376),a=(0,r.wrapBrick)("eo-icon"),o=(0,r.wrapBrick)("eo-link"),s=(0,i.unwrapProvider)("basic.show-dialog"),c=(0,i.unwrapProvider)("basic.show-notification")},4864:(e,t,n)=>{n.d(t,{x:()=>a});var r=n(6330),i=n(4586);class a{constructor(e){(0,i.A)(this,"preFetchId",null),(0,i.A)(this,"preFetchScheduled",!1),(0,i.A)(this,"firstFetchPromise",null),(0,i.A)(this,"isFetching",!1),(0,i.A)(this,"task",void 0),this.task=e}schedulePrefetch(){var e=this;if(!this.preFetchScheduled){this.preFetchScheduled=!0;var t=function(){var t=(0,r.A)((function*(){e.preFetchId=null,e.fetch()}));return function(){return t.apply(this,arguments)}}();"function"==typeof window.requestIdleCallback?this.preFetchId=window.requestIdleCallback(t):this.preFetchId=setTimeout(t)}}fetch(e){var t;return this.preFetchId&&("function"==typeof window.cancelIdleCallback?cancelIdleCallback(this.preFetchId):clearTimeout(this.preFetchId),this.preFetchId=null),this.isFetching&&!e||(this.isFetching=!0,(t=this.task()).catch((e=>{console.error(e),this.firstFetchPromise=null})).finally((()=>{this.isFetching=!1})),this.firstFetchPromise||(this.firstFetchPromise=t),!e)?this.firstFetchPromise:t}}},6659:(e,t,n)=>{n.d(t,{F:()=>i});var r=n(2659);function i(e,t){var n;if(!e)return t;var i=Object.fromEntries(Object.entries(e).filter((e=>{var[t,n]=e;return n.name})).map((e=>{var[t,n]=e;return[t,n.name]})));return null!==(n=(0,r.i18nText)(i))&&void 0!==n?n:t}},4612:(e,t,n)=>{n.d(t,{G:()=>r});class r{constructor(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"brick-next-";this.storage=e,this.prefix=t}setItem(e,t){this.storage.setItem(this.prefix+e,JSON.stringify(t))}getItem(e){return JSON.parse(this.storage.getItem(this.prefix+e))}removeItem(e){return this.storage.removeItem(this.prefix+e)}clear(){return this.storage.clear()}}}}]);
|
|
2
|
+
//# sourceMappingURL=2133.a64e4e04.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chunks/2133.5e1c5099.js","mappings":"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","sources":["webpack:///./src/launchpad-button-v2/constants.ts","webpack:///./src/launchpad-button-v2/api.ts","webpack:///./src/launchpad-button-v2/search.ts","webpack:///./src/launchpad-button-v2/useLaunchpadInfo.ts","webpack:///./src/launchpad-button-v2/wrapped-bricks.ts","webpack:///./src/shared/DeferredService.ts","webpack:///./src/shared/getLocaleName.ts","webpack:///../../src/JsonStorage.ts"],"sourcesContent":["export const FAVORITES_LIMIT = 10;\nexport const RECENT_VISITS_LIMIT = 10;\n","import type { Storyboard } from \"@next-core/types\";\nimport { LaunchpadApi_getLaunchpadInfo } from \"@next-api-sdk/micro-app-standalone-sdk\";\nimport {\n LaunchpadApi_createCollectionV2,\n LaunchpadApi_deleteCollectionV2,\n LaunchpadApi_listCollectionV2,\n} from \"@next-api-sdk/user-service-sdk\";\nimport { InstanceApi_postSearchV3 } from \"@next-api-sdk/cmdb-sdk\";\nimport type {\n FavMenuItem,\n MenuGroupData,\n MenuItemData,\n MenuItemDataApp,\n MenuItemDataCustom,\n MenuItemDataDir,\n MenuItemDataNormal,\n MicroAppWithInstanceId,\n PlatformCategoryItem,\n} from \"./interfaces\";\nimport { FAVORITES_LIMIT } from \"./constants\";\nimport { getAppLocaleName } from \"../shared/getLocaleName\";\nimport { sortBy } from \"lodash\";\n\nexport async function fetchLaunchpadInfo() {\n const launchpadInfo = await LaunchpadApi_getLaunchpadInfo(\n {},\n {\n interceptorParams: { ignoreLoadingBar: true },\n noAbortOnRouteChange: true,\n }\n );\n\n const microAppsById = new Map<string, MicroAppWithInstanceId>();\n for (const storyboard of launchpadInfo.storyboards as Storyboard[]) {\n const app = storyboard.app as unknown as MicroAppWithInstanceId;\n app.localeName = getAppLocaleName(app.locales, app.name);\n microAppsById.set(app.id, app);\n }\n\n const menuGroups: MenuGroupData[] = [];\n const customLinksById = new Map<string, MenuItemDataCustom>();\n\n for (const group of launchpadInfo.desktops as unknown as MenuGroupData[]) {\n const items: MenuItemData[] = [];\n for (const item of group.items) {\n switch (item.type) {\n case \"app\": {\n const app = microAppsById.get(item.id);\n if (app) {\n items.push({\n ...item,\n name: app.localeName,\n url: app.homepage,\n menuIcon: app.menuIcon,\n } as MenuItemDataApp);\n }\n break;\n }\n case \"custom\":\n items.push(item);\n customLinksById.set(item.id, item);\n break;\n case \"dir\": {\n const subItems: MenuItemDataNormal[] = [];\n for (const subItem of item.items) {\n if (subItem.type === \"app\") {\n const app = microAppsById.get(subItem.id);\n if (app) {\n subItems.push({\n ...subItem,\n name: app.localeName,\n url: app.homepage,\n menuIcon: app.menuIcon,\n } as MenuItemDataApp);\n }\n } else if (subItem.type === \"custom\") {\n subItems.push(subItem as MenuItemDataCustom);\n customLinksById.set(subItem.id, subItem);\n }\n }\n if (subItems.length > 0) {\n items.push({\n ...item,\n items: subItems,\n } as MenuItemDataDir);\n }\n break;\n }\n }\n }\n if (items.length > 0) {\n menuGroups.push({ ...group, items });\n }\n }\n\n return { menuGroups, microAppsById, customLinksById };\n}\n\nasync function fetchRawFavorites() {\n return (\n await LaunchpadApi_listCollectionV2(\n { page: 1, pageSize: FAVORITES_LIMIT },\n {\n interceptorParams: { ignoreLoadingBar: true },\n noAbortOnRouteChange: true,\n }\n )\n ).list;\n}\n\nexport async function fetchFavorites() {\n const list = await fetchRawFavorites();\n const stored: FavMenuItem[] = [];\n for (const fav of list) {\n if (fav.type === \"microApp\") {\n const app = fav.relatedApp as Omit<MicroAppWithInstanceId, \"id\"> & {\n appId: string;\n };\n app.localeName = getAppLocaleName(app.locales, app.name);\n stored.push({\n favoriteId: fav.instanceId,\n type: \"app\",\n name: app.localeName,\n id: app.appId,\n url: app.homepage,\n instanceId: app.instanceId,\n menuIcon: app.menuIcon,\n } as FavMenuItem);\n } else if (fav.type === \"customItem\") {\n const customItem = fav.relatedCustomItem!;\n stored.push({\n favoriteId: fav.instanceId,\n type: \"custom\",\n name: customItem.name,\n id: customItem.id,\n url: customItem.url,\n menuIcon: customItem.menuIcon,\n } as FavMenuItem);\n } else if (fav.type === \"link\") {\n stored.push({\n favoriteId: fav.instanceId,\n type: \"link\",\n name: fav.name,\n // id: fav.id,\n url: fav.link,\n menuIcon: fav.icon,\n } as FavMenuItem);\n }\n }\n return stored;\n}\n\nexport async function favorite(\n item: MenuItemDataNormal\n): Promise<{ instanceId?: string }> {\n return LaunchpadApi_createCollectionV2(\n {\n type: item.type === \"app\" ? \"microApp\" : \"customItem\",\n relatedInstanceId: item.instanceId,\n },\n {\n interceptorParams: { ignoreLoadingBar: true },\n }\n );\n}\n\nexport async function undoFavorite(item: FavMenuItem) {\n if (item.favoriteId) {\n return LaunchpadApi_deleteCollectionV2(item.favoriteId);\n }\n\n return fetchRawFavorites().then((list) => {\n const foundId = list.find((fav) =>\n item.type === \"app\"\n ? fav.type === \"microApp\" && fav.relatedApp?.appId === item.id\n : item.type === \"custom\" && fav.relatedCustomItem?.id === item.id\n )?.instanceId;\n\n if (foundId) {\n return LaunchpadApi_deleteCollectionV2(foundId);\n }\n // eslint-disable-next-line no-console\n console.error(\"Menu item to unstar not found:\", item);\n });\n}\n\nexport async function fetchPlatformCategories(): Promise<\n PlatformCategoryItem[]\n> {\n const categories = (\n await InstanceApi_postSearchV3(\"MICRO_APP_CATEGORY@EASYOPS\", {\n fields: [\n \"id\",\n \"type\",\n \"name\",\n \"icon\",\n \"order\",\n \"platformApps.appId\",\n \"platformApps.name\",\n \"platformApps.homepage\",\n \"platformApps.description\",\n \"platformApps.menuIcon\",\n \"platformApps.locales\",\n \"platformApps._object_id\",\n \"platformApps.@.order\",\n \"platformItems.id\",\n \"platformItems.name\",\n \"platformItems.url\",\n \"platformItems.description\",\n \"platformItems.menuIcon\",\n \"platformItems._object_id\",\n \"platformItems.@.order\",\n ],\n page: 1,\n page_size: 300,\n query: {\n type: \"platform\",\n },\n })\n ).list;\n\n const _categories = categories?.map((category) => {\n const apps = category.platformApps.map((app: Record<string, any>) => {\n return {\n type: \"app\",\n name: getAppLocaleName(app.locales, app.name),\n id: app.appId,\n url: app.homepage,\n menuIcon: app.menuIcon,\n description: app.description,\n instanceId: app.instanceId,\n order: app[\"@\"]?.order,\n };\n }) as MenuItemDataApp[];\n const customItems = category.platformItems.map(\n (item: Record<string, any>) => {\n return {\n type: \"custom\",\n name: item.name,\n id: item.id,\n url: item.url,\n menuIcon: item.menuIcon,\n description: item.description,\n instanceId: item.instanceId,\n order: item[\"@\"]?.order,\n };\n }\n ) as MenuItemDataCustom[];\n\n const items = sortBy([...apps, ...customItems], \"order\");\n return {\n instanceId: category.instanceId,\n id: category.id,\n name: category.name,\n icon: category.icon,\n order: category.order,\n items,\n } as PlatformCategoryItem;\n });\n\n return [\n {\n id: \"#all\",\n name: \"全部\",\n icon: {\n lib: \"easyops\",\n category: \"second-menu\",\n icon: \"sprint-planning-second-menu\",\n },\n items: [],\n },\n ...sortBy(_categories, \"order\"),\n ];\n}\n","import type {\n MenuGroupData,\n MenuItemData,\n MenuItemDataApp,\n MenuItemDataCustom,\n MenuItemDataNormal,\n PlatformCategoryItem,\n} from \"./interfaces\";\n\nexport function search(\n allMenuGroups: MenuGroupData[],\n q: string\n): MenuGroupData[] {\n if (!q) {\n return allMenuGroups;\n }\n const lowerQ = q.toLowerCase();\n const groups: MenuGroupData[] = allMenuGroups\n .map((group) => ({\n ...group,\n items: group.items\n .map((item) => {\n switch (item.type) {\n case \"app\":\n return matchMenuItemApp(item, lowerQ);\n case \"custom\":\n return matchMenuItemCustom(item, lowerQ);\n case \"dir\": {\n const filteredSubItems = item.items\n .map((sub) =>\n sub.type === \"app\"\n ? matchMenuItemApp(sub, lowerQ)\n : sub.type === \"custom\"\n ? matchMenuItemCustom(sub, lowerQ)\n : null\n )\n .filter(Boolean) as MenuItemData[];\n return filteredSubItems.length > 0\n ? {\n ...item,\n items: filteredSubItems,\n }\n : null;\n }\n }\n })\n // Ignore not matched items\n .filter(Boolean) as MenuItemData[],\n }))\n // ignore empty desktops\n .filter((group) => group.items.length > 0);\n return groups;\n}\n\nexport function searchCategories(\n categories: PlatformCategoryItem[],\n q: string\n): PlatformCategoryItem[] {\n if (!q) {\n return categories;\n }\n\n const lowerQ = q.toLowerCase();\n const _categories = categories.map((category) => ({\n ...category,\n items: category.items\n .map((item) => {\n switch (item.type) {\n case \"app\":\n return matchMenuItemApp(item, lowerQ);\n case \"custom\":\n return matchMenuItemCustom(item, lowerQ);\n }\n })\n // Ignore not matched items\n .filter(Boolean) as MenuItemDataNormal[],\n }));\n return _categories;\n}\n\nfunction matchMenuItemApp(item: MenuItemDataApp, lowerQ: string) {\n return item.id.toLowerCase().includes(lowerQ) ||\n item.name.toLowerCase().includes(lowerQ) ||\n (item.description && item.description.toLowerCase().includes(lowerQ))\n ? item\n : null;\n}\n\nfunction matchMenuItemCustom(item: MenuItemDataCustom, lowerQ: string) {\n return item.id.toLowerCase().includes(lowerQ) ||\n item.name.toLowerCase().includes(lowerQ) ||\n (item.description && item.description.toLowerCase().includes(lowerQ))\n ? item\n : null;\n}\n","import { useCallback, useEffect, useMemo, useState } from \"react\";\nimport {\n getRuntime,\n handleHttpError,\n httpErrorToString,\n} from \"@next-core/runtime\";\nimport { auth } from \"@next-core/easyops-runtime\";\nimport { JsonStorage } from \"@next-shared/general/JsonStorage\";\nimport { DeferredService } from \"../shared/DeferredService\";\nimport { showDialog, showNotification } from \"./wrapped-bricks\";\nimport type {\n FavMenuItem,\n MenuGroupData,\n MenuItemDataCustom,\n MenuItemDataLink,\n MenuItemDataNormal,\n MicroAppWithInstanceId,\n PlatformCategoryItem,\n StoredMenuItem,\n} from \"./interfaces\";\nimport {\n favorite,\n fetchFavorites,\n fetchLaunchpadInfo,\n fetchPlatformCategories,\n undoFavorite,\n} from \"./api\";\nimport { search, searchCategories } from \"./search\";\nimport { FAVORITES_LIMIT, RECENT_VISITS_LIMIT } from \"./constants\";\n\nconst storageKey = `launchpad-recent-visits:${(\n auth.getAuth() as Record<string, string>\n)?.org}`;\nconst storage = new JsonStorage(localStorage);\n\nlet candidateDesktops: MenuGroupData[] = [];\nlet candidateMicroAppsById = new Map<string, MicroAppWithInstanceId>();\nlet candidateCustomLinksById = new Map<string, MenuItemDataCustom>();\nlet preLoaded = false;\n\nlet candidateFavorites: FavMenuItem[] = [];\nlet preLoadedFavorites = false;\n\nlet candidatePlatformCategories: PlatformCategoryItem[] = [];\nlet preLoadedPlatformCategories = false;\n\nexport const deferredLaunchpadInfo = new DeferredService(async () => {\n ({\n menuGroups: candidateDesktops,\n microAppsById: candidateMicroAppsById,\n customLinksById: candidateCustomLinksById,\n } = await fetchLaunchpadInfo());\n preLoaded = true;\n});\n\nexport const deferredFavorites = new DeferredService(async () => {\n candidateFavorites = await fetchFavorites();\n preLoadedFavorites = true;\n});\n\nexport const deferredPlatformCategories = new DeferredService(async () => {\n candidatePlatformCategories = await fetchPlatformCategories();\n preLoadedPlatformCategories = true;\n});\n\nconst showErrorAsNotification = (error: unknown) =>\n showNotification({\n type: \"error\",\n message: httpErrorToString(error),\n });\n\n/**\n * - 页面初始化时预加载 launchpad 信息。\n * - 每次打开 launchpad 都发起请求,但该请求的数据只在下次打开 launchpad 时使用。\n * 即每次打开 launchpad 使用的都是上一次获取的数据,以便达到两个效果:\n * - 每次打开 launchpad 都能立即显示菜单列表;\n * - 同时当用户在 launchpad 上操作时,不会出现数据突然更新(新数据请求完成)。\n */\nexport function useLaunchpadInfo(active?: boolean) {\n const [desktops, setDesktops] = useState(candidateDesktops);\n const [microAppsById, setMicroAppsById] = useState(candidateMicroAppsById);\n const [customLinksById, setCustomLinksById] = useState(\n candidateCustomLinksById\n );\n\n const [q, setQ] = useState(\"\");\n\n const [loading, setLoading] = useState(!preLoaded);\n const [loadingFavorites, setLoadingFavorites] = useState(!preLoadedFavorites);\n const [loadingPlatformCategories, setLoadingPlatformCategories] = useState(\n !preLoadedPlatformCategories\n );\n\n const [storedRecentVisits, setStoredRecentVisits] = useState<\n StoredMenuItem[]\n >([]);\n\n const [recentVisits, setRecentVisits] = useState<MenuItemDataNormal[]>([]);\n\n const [favorites, setFavorites] = useState<FavMenuItem[]>(candidateFavorites);\n const [platformCategories, setPlatformCategories] = useState<\n PlatformCategoryItem[]\n >(candidatePlatformCategories);\n\n useEffect(() => {\n // 仅当首次加载完成或重新打开 launchpad 时更新一次数据。\n if (active && !loading) {\n setDesktops(candidateDesktops);\n setMicroAppsById(candidateMicroAppsById);\n setCustomLinksById(candidateCustomLinksById);\n }\n }, [active, loading]);\n\n useEffect(() => {\n if (active && !loadingFavorites) {\n setFavorites(candidateFavorites);\n }\n }, [active, loadingFavorites]);\n\n useEffect(() => {\n if (active && !loadingPlatformCategories) {\n setPlatformCategories(candidatePlatformCategories);\n }\n }, [active, loadingPlatformCategories]);\n\n useEffect(() => {\n if (active) {\n setStoredRecentVisits(storage.getItem(storageKey) ?? []);\n }\n }, [active]);\n\n useEffect(() => {\n if (active) {\n const startFetchLaunchpadInfo = async (): Promise<void> => {\n try {\n await deferredLaunchpadInfo.fetch();\n setLoading(false);\n } catch (error) {\n handleHttpError(error);\n }\n };\n startFetchLaunchpadInfo();\n }\n }, [active]);\n\n useEffect(() => {\n if (active) {\n const startFetchFavorites = async (): Promise<void> => {\n try {\n await deferredFavorites.fetch();\n setLoadingFavorites(false);\n } catch (error) {\n setLoadingFavorites(false);\n showErrorAsNotification(error);\n }\n };\n startFetchFavorites();\n }\n }, [active]);\n\n useEffect(() => {\n if (\n active &&\n getRuntime()?.getFeatureFlags()[\"launchpad-show-platform-category\"]\n ) {\n const startFetchPlatformCategories = async (): Promise<void> => {\n try {\n await deferredPlatformCategories.fetch();\n setLoadingPlatformCategories(false);\n } catch (error) {\n setLoadingPlatformCategories(false);\n showErrorAsNotification(error);\n }\n };\n startFetchPlatformCategories();\n }\n }, [active]);\n\n useEffect(() => {\n if (loading) {\n return;\n }\n const visits = storedRecentVisits\n .map((item) => {\n // Remembered recent visits maybe no longer existed in launchpad\n if (item.type === \"app\") {\n const app = microAppsById.get(item.id);\n return app\n ? {\n type: \"app\",\n name: app.localeName,\n id: app.id,\n url: app.homepage,\n instanceId: app.instanceId,\n menuIcon: app.menuIcon,\n }\n : null;\n }\n return customLinksById.get(item.id);\n })\n .filter(Boolean) as MenuItemDataNormal[];\n setRecentVisits(visits);\n }, [customLinksById, loading, microAppsById, storedRecentVisits]);\n\n const pushRecentVisit = useCallback(({ type, id }: StoredMenuItem) => {\n const visits: StoredMenuItem[] = storage.getItem(storageKey) ?? [];\n const index = visits.findIndex(\n (visit) => visit.type === type && visit.id === id\n );\n if (index > -1) {\n visits.splice(index, 1);\n }\n visits.unshift({ type, id });\n if (visits.length > RECENT_VISITS_LIMIT) {\n visits.pop();\n }\n // setStoredRecentVisits(visits);\n storage.setItem(storageKey, visits);\n }, []);\n\n const isStarred = useCallback(\n (item: MenuItemDataNormal) =>\n favorites.some((fav) => matchFavorite(item, fav)),\n [favorites]\n );\n\n const toggleStar = useCallback(\n (item: MenuItemDataNormal | MenuItemDataLink) => {\n const index = favorites.findIndex((fav) =>\n item.type === \"link\"\n ? fav.favoriteId === item.favoriteId\n : matchFavorite(item, fav)\n );\n let newFavorites: FavMenuItem[];\n if (index > -1) {\n const removed = favorites[index];\n newFavorites = favorites\n .slice(0, index)\n .concat(favorites.slice(index + 1));\n undoFavorite(removed).catch(showErrorAsNotification);\n } else {\n if (favorites.length >= FAVORITES_LIMIT) {\n showDialog({\n type: \"warn\",\n title: \"收藏数量已达上限\",\n content: `当前收藏链接数量已达上限(${FAVORITES_LIMIT}个),请删除部分收藏后再添加。`,\n });\n return;\n }\n // Assert: no link item\n const fav: FavMenuItem = { ...(item as MenuItemDataNormal) };\n newFavorites = favorites.concat(fav);\n favorite(item as MenuItemDataNormal).then((result) => {\n if (result) {\n fav.favoriteId = result.instanceId;\n }\n }, showErrorAsNotification);\n }\n setFavorites(newFavorites);\n candidateFavorites = newFavorites;\n },\n [favorites]\n );\n\n const menuGroups: MenuGroupData[] = useMemo(\n () => search(desktops, q),\n [desktops, q]\n );\n\n const filteredPlatformCategories: PlatformCategoryItem[] = useMemo(\n () => searchCategories(platformCategories, q),\n [platformCategories, q]\n );\n\n return {\n loading,\n q,\n setQ,\n menuGroups,\n loadingFavorites,\n loadingPlatformCategories,\n favorites,\n recentVisits,\n pushRecentVisit,\n isStarred,\n toggleStar,\n platformCategories: filteredPlatformCategories,\n };\n}\n\nexport function matchFavorite(item: MenuItemDataNormal, fav: FavMenuItem) {\n return item.instanceId && fav.instanceId\n ? fav.instanceId === item.instanceId\n : fav.type === item.type && fav.id === item.id;\n}\n","import { wrapBrick } from \"@next-core/react-element\";\nimport { unwrapProvider } from \"@next-core/utils/general\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\nimport type { Link, LinkProps } from \"@next-bricks/basic/link\";\nimport type { showDialog as _showDialog } from \"@next-bricks/basic/data-providers/show-dialog/show-dialog\";\nimport type { showNotification as _showNotification } from \"@next-bricks/basic/data-providers/show-notification/show-notification\";\n\nexport const WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\nexport const WrappedLink = wrapBrick<Link, LinkProps>(\"eo-link\");\n\n// Use `unwrapProvider` to get the original function of a provider\nexport const showDialog =\n unwrapProvider<typeof _showDialog>(\"basic.show-dialog\");\n\nexport const showNotification = unwrapProvider<typeof _showNotification>(\n \"basic.show-notification\"\n);\n","export class DeferredService {\n private preFetchId: number | null = null;\n private preFetchScheduled = false;\n private firstFetchPromise: Promise<unknown> | null = null;\n private isFetching = false;\n private readonly task: () => Promise<unknown>;\n\n constructor(task: () => Promise<unknown>) {\n this.task = task;\n }\n\n schedulePrefetch(): void {\n if (!this.preFetchScheduled) {\n this.preFetchScheduled = true;\n const preFetchLaunchpadInfo = async (): Promise<void> => {\n this.preFetchId = null;\n this.fetch();\n };\n // istanbul ignore if\n if (typeof window.requestIdleCallback === \"function\") {\n this.preFetchId = window.requestIdleCallback(preFetchLaunchpadInfo);\n } else {\n this.preFetchId = setTimeout(\n preFetchLaunchpadInfo\n ) as unknown as number;\n }\n }\n }\n\n fetch(eager?: boolean): Promise<unknown> {\n if (this.preFetchId) {\n // istanbul ignore if\n if (typeof window.cancelIdleCallback === \"function\") {\n cancelIdleCallback(this.preFetchId);\n } else {\n clearTimeout(this.preFetchId);\n }\n this.preFetchId = null;\n }\n\n let promise: Promise<unknown>;\n if (!this.isFetching || eager) {\n this.isFetching = true;\n promise = this.task();\n promise\n .catch((error) => {\n // eslint-disable-next-line no-console\n console.error(error);\n this.firstFetchPromise = null;\n })\n .finally(() => {\n this.isFetching = false;\n });\n if (!this.firstFetchPromise) {\n this.firstFetchPromise = promise;\n }\n if (eager) {\n return promise;\n }\n }\n return this.firstFetchPromise!;\n }\n}\n","import { i18nText } from \"@next-core/i18n\";\nimport type { AppLocales, I18nData } from \"@next-core/types\";\n\nexport function getAppLocaleName(\n locales: AppLocales | undefined,\n name: string\n) {\n if (!locales) {\n return name;\n }\n const i18nData = Object.fromEntries(\n Object.entries(locales)\n .filter(([lang, resources]) => resources.name)\n .map(([lang, resources]) => [lang, resources.name])\n ) as I18nData;\n return i18nText(i18nData) ?? name;\n}\n","export class JsonStorage {\n constructor(\n private storage: Storage,\n private prefix: string = \"brick-next-\"\n ) {}\n\n setItem<T = any>(name: string, value: T): void {\n this.storage.setItem(this.prefix + name, JSON.stringify(value));\n }\n\n getItem<T = any>(name: string): T {\n return JSON.parse(this.storage.getItem(this.prefix + name) as string) as T;\n }\n\n removeItem(name: string): void {\n return this.storage.removeItem(this.prefix + name);\n }\n\n clear(): void {\n return this.storage.clear();\n }\n}\n"],"names":["FAVORITES_LIMIT","RECENT_VISITS_LIMIT","_fetchLaunchpadInfo","_asyncToGenerator","launchpadInfo","LaunchpadApi_getLaunchpadInfo","interceptorParams","ignoreLoadingBar","noAbortOnRouteChange","microAppsById","Map","storyboard","storyboards","app","localeName","getAppLocaleName","locales","name","set","id","menuGroups","customLinksById","group","desktops","items","item","type","get","push","_objectSpread","url","homepage","menuIcon","subItems","subItem","length","apply","arguments","fetchRawFavorites","_fetchRawFavorites","LaunchpadApi_listCollectionV2","page","pageSize","list","_fetchFavorites","stored","fav","relatedApp","favoriteId","instanceId","appId","customItem","relatedCustomItem","link","icon","_favorite","LaunchpadApi_createCollectionV2","relatedInstanceId","_undoFavorite","LaunchpadApi_deleteCollectionV2","then","_list$find","foundId","find","_fav$relatedApp","_fav$relatedCustomIte","console","error","_fetchPlatformCategories","categories","InstanceApi_postSearchV3","fields","page_size","query","_categories","map","category","apps","platformApps","_app$","description","order","customItems","platformItems","_item$","sortBy","lib","matchMenuItemApp","lowerQ","toLowerCase","includes","matchMenuItemCustom","storageKey","concat","_auth$getAuth","auth","getAuth","org","storage","JsonStorage","localStorage","candidateDesktops","candidateMicroAppsById","candidateCustomLinksById","preLoaded","candidateFavorites","preLoadedFavorites","candidatePlatformCategories","preLoadedPlatformCategories","deferredLaunchpadInfo","DeferredService","fetchLaunchpadInfo","deferredFavorites","fetchFavorites","deferredPlatformCategories","fetchPlatformCategories","showErrorAsNotification","showNotification","message","httpErrorToString","useLaunchpadInfo","active","setDesktops","useState","setMicroAppsById","setCustomLinksById","q","setQ","loading","setLoading","loadingFavorites","setLoadingFavorites","loadingPlatformCategories","setLoadingPlatformCategories","storedRecentVisits","setStoredRecentVisits","recentVisits","setRecentVisits","favorites","setFavorites","platformCategories","setPlatformCategories","useEffect","_storage$getItem","getItem","startFetchLaunchpadInfo","_ref4","fetch","handleHttpError","startFetchFavorites","_ref5","_getRuntime","getRuntime","getFeatureFlags","startFetchPlatformCategories","_ref6","visits","filter","Boolean","pushRecentVisit","useCallback","_ref7","_storage$getItem2","index","findIndex","visit","splice","unshift","pop","setItem","isStarred","some","matchFavorite","toggleStar","newFavorites","removed","slice","_x2","undoFavorite","catch","showDialog","title","content","_x","favorite","result","useMemo","allMenuGroups","filteredSubItems","sub","search","filteredPlatformCategories","searchCategories","WrappedIcon","wrapBrick","WrappedLink","unwrapProvider","constructor","task","_defineProperty","this","schedulePrefetch","_this","preFetchScheduled","preFetchLaunchpadInfo","_ref","preFetchId","window","requestIdleCallback","setTimeout","eager","promise","cancelIdleCallback","clearTimeout","isFetching","firstFetchPromise","finally","_i18nText","i18nData","Object","fromEntries","entries","lang","resources","_ref2","i18nText","prefix","undefined","value","JSON","stringify","parse","removeItem","clear"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"file":"chunks/2133.a64e4e04.js","mappings":"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","sources":["webpack:///./src/launchpad-button-v2/constants.ts","webpack:///./src/launchpad-button-v2/api.ts","webpack:///./src/launchpad-button-v2/search.ts","webpack:///./src/launchpad-button-v2/useLaunchpadInfo.ts","webpack:///./src/launchpad-button-v2/wrapped-bricks.ts","webpack:///./src/shared/DeferredService.ts","webpack:///./src/shared/getLocaleName.ts","webpack:///../../src/JsonStorage.ts"],"sourcesContent":["export const FAVORITES_LIMIT = 10;\nexport const RECENT_VISITS_LIMIT = 10;\n","import type { Storyboard } from \"@next-core/types\";\nimport { LaunchpadApi_getLaunchpadInfo } from \"@next-api-sdk/micro-app-standalone-sdk\";\nimport {\n LaunchpadApi_createCollectionV2,\n LaunchpadApi_deleteCollectionV2,\n LaunchpadApi_listCollectionV2,\n} from \"@next-api-sdk/user-service-sdk\";\nimport { InstanceApi_postSearchV3 } from \"@next-api-sdk/cmdb-sdk\";\nimport type {\n FavMenuItem,\n MenuGroupData,\n MenuItemData,\n MenuItemDataApp,\n MenuItemDataCustom,\n MenuItemDataDir,\n MenuItemDataNormal,\n MicroAppWithInstanceId,\n PlatformCategoryItem,\n} from \"./interfaces\";\nimport { FAVORITES_LIMIT } from \"./constants\";\nimport { getAppLocaleName } from \"../shared/getLocaleName\";\nimport { sortBy } from \"lodash\";\n\nexport async function fetchLaunchpadInfo() {\n const launchpadInfo = await LaunchpadApi_getLaunchpadInfo(\n {},\n {\n interceptorParams: { ignoreLoadingBar: true },\n noAbortOnRouteChange: true,\n }\n );\n\n const microAppsById = new Map<string, MicroAppWithInstanceId>();\n for (const storyboard of launchpadInfo.storyboards as Storyboard[]) {\n const app = storyboard.app as unknown as MicroAppWithInstanceId;\n app.localeName = getAppLocaleName(app.locales, app.name);\n microAppsById.set(app.id, app);\n }\n\n const menuGroups: MenuGroupData[] = [];\n const customLinksById = new Map<string, MenuItemDataCustom>();\n\n for (const group of launchpadInfo.desktops as unknown as MenuGroupData[]) {\n const items: MenuItemData[] = [];\n for (const item of group.items) {\n switch (item.type) {\n case \"app\": {\n const app = microAppsById.get(item.id);\n if (app) {\n items.push({\n ...item,\n name: app.localeName,\n url: app.homepage,\n menuIcon: app.menuIcon,\n } as MenuItemDataApp);\n }\n break;\n }\n case \"custom\":\n items.push(item);\n customLinksById.set(item.id, item);\n break;\n case \"dir\": {\n const subItems: MenuItemDataNormal[] = [];\n for (const subItem of item.items) {\n if (subItem.type === \"app\") {\n const app = microAppsById.get(subItem.id);\n if (app) {\n subItems.push({\n ...subItem,\n name: app.localeName,\n url: app.homepage,\n menuIcon: app.menuIcon,\n } as MenuItemDataApp);\n }\n } else if (subItem.type === \"custom\") {\n subItems.push(subItem as MenuItemDataCustom);\n customLinksById.set(subItem.id, subItem);\n }\n }\n if (subItems.length > 0) {\n items.push({\n ...item,\n items: subItems,\n } as MenuItemDataDir);\n }\n break;\n }\n }\n }\n if (items.length > 0) {\n menuGroups.push({ ...group, items });\n }\n }\n\n return { menuGroups, microAppsById, customLinksById };\n}\n\nasync function fetchRawFavorites() {\n return (\n await LaunchpadApi_listCollectionV2(\n { page: 1, pageSize: FAVORITES_LIMIT },\n {\n interceptorParams: { ignoreLoadingBar: true },\n noAbortOnRouteChange: true,\n }\n )\n ).list;\n}\n\nexport async function fetchFavorites() {\n const list = await fetchRawFavorites();\n const stored: FavMenuItem[] = [];\n for (const fav of list) {\n if (fav.type === \"microApp\") {\n const app = fav.relatedApp as Omit<MicroAppWithInstanceId, \"id\"> & {\n appId: string;\n };\n app.localeName = getAppLocaleName(app.locales, app.name);\n stored.push({\n favoriteId: fav.instanceId,\n type: \"app\",\n name: app.localeName,\n id: app.appId,\n url: app.homepage,\n instanceId: app.instanceId,\n menuIcon: app.menuIcon,\n } as FavMenuItem);\n } else if (fav.type === \"customItem\") {\n const customItem = fav.relatedCustomItem!;\n stored.push({\n favoriteId: fav.instanceId,\n type: \"custom\",\n name: customItem.name,\n id: customItem.id,\n url: customItem.url,\n menuIcon: customItem.menuIcon,\n } as FavMenuItem);\n } else if (fav.type === \"link\") {\n stored.push({\n favoriteId: fav.instanceId,\n type: \"link\",\n name: fav.name,\n // id: fav.id,\n url: fav.link,\n menuIcon: fav.icon,\n } as FavMenuItem);\n }\n }\n return stored;\n}\n\nexport async function favorite(\n item: MenuItemDataNormal\n): Promise<{ instanceId?: string }> {\n return LaunchpadApi_createCollectionV2(\n {\n type: item.type === \"app\" ? \"microApp\" : \"customItem\",\n relatedInstanceId: item.instanceId,\n },\n {\n interceptorParams: { ignoreLoadingBar: true },\n }\n );\n}\n\nexport async function undoFavorite(item: FavMenuItem) {\n if (item.favoriteId) {\n return LaunchpadApi_deleteCollectionV2(item.favoriteId);\n }\n\n return fetchRawFavorites().then((list) => {\n const foundId = list.find((fav) =>\n item.type === \"app\"\n ? fav.type === \"microApp\" && fav.relatedApp?.appId === item.id\n : item.type === \"custom\" && fav.relatedCustomItem?.id === item.id\n )?.instanceId;\n\n if (foundId) {\n return LaunchpadApi_deleteCollectionV2(foundId);\n }\n // eslint-disable-next-line no-console\n console.error(\"Menu item to unstar not found:\", item);\n });\n}\n\nexport async function fetchPlatformCategories(): Promise<\n PlatformCategoryItem[]\n> {\n const categories = (\n await InstanceApi_postSearchV3(\"MICRO_APP_CATEGORY@EASYOPS\", {\n fields: [\n \"id\",\n \"type\",\n \"name\",\n \"icon\",\n \"order\",\n \"platformApps.appId\",\n \"platformApps.name\",\n \"platformApps.homepage\",\n \"platformApps.description\",\n \"platformApps.menuIcon\",\n \"platformApps.locales\",\n \"platformApps._object_id\",\n \"platformApps.@.order\",\n \"platformItems.id\",\n \"platformItems.name\",\n \"platformItems.url\",\n \"platformItems.description\",\n \"platformItems.menuIcon\",\n \"platformItems._object_id\",\n \"platformItems.@.order\",\n ],\n page: 1,\n page_size: 300,\n query: {\n type: \"platform\",\n },\n })\n ).list;\n\n const _categories = categories?.map((category) => {\n const apps = category.platformApps.map((app: Record<string, any>) => {\n return {\n type: \"app\",\n name: getAppLocaleName(app.locales, app.name),\n id: app.appId,\n url: app.homepage,\n menuIcon: app.menuIcon,\n description: app.description,\n instanceId: app.instanceId,\n order: app[\"@\"]?.order,\n };\n }) as MenuItemDataApp[];\n const customItems = category.platformItems.map(\n (item: Record<string, any>) => {\n return {\n type: \"custom\",\n name: item.name,\n id: item.id,\n url: item.url,\n menuIcon: item.menuIcon,\n description: item.description,\n instanceId: item.instanceId,\n order: item[\"@\"]?.order,\n };\n }\n ) as MenuItemDataCustom[];\n\n const items = sortBy([...apps, ...customItems], \"order\");\n return {\n instanceId: category.instanceId,\n id: category.id,\n name: category.name,\n icon: category.icon,\n order: category.order,\n items,\n } as PlatformCategoryItem;\n });\n\n return [\n {\n id: \"#all\",\n name: \"全部\",\n icon: {\n lib: \"easyops\",\n category: \"second-menu\",\n icon: \"sprint-planning-second-menu\",\n },\n items: [],\n },\n ...sortBy(_categories, \"order\"),\n ];\n}\n","import type {\n MenuGroupData,\n MenuItemData,\n MenuItemDataApp,\n MenuItemDataCustom,\n MenuItemDataNormal,\n PlatformCategoryItem,\n} from \"./interfaces\";\n\nexport function search(\n allMenuGroups: MenuGroupData[],\n q: string\n): MenuGroupData[] {\n if (!q) {\n return allMenuGroups;\n }\n const lowerQ = q.toLowerCase();\n const groups: MenuGroupData[] = allMenuGroups\n .map((group) => ({\n ...group,\n items: group.items\n .map((item) => {\n switch (item.type) {\n case \"app\":\n return matchMenuItemApp(item, lowerQ);\n case \"custom\":\n return matchMenuItemCustom(item, lowerQ);\n case \"dir\": {\n const filteredSubItems = item.items\n .map((sub) =>\n sub.type === \"app\"\n ? matchMenuItemApp(sub, lowerQ)\n : sub.type === \"custom\"\n ? matchMenuItemCustom(sub, lowerQ)\n : null\n )\n .filter(Boolean) as MenuItemData[];\n return filteredSubItems.length > 0\n ? {\n ...item,\n items: filteredSubItems,\n }\n : null;\n }\n }\n })\n // Ignore not matched items\n .filter(Boolean) as MenuItemData[],\n }))\n // ignore empty desktops\n .filter((group) => group.items.length > 0);\n return groups;\n}\n\nexport function searchCategories(\n categories: PlatformCategoryItem[],\n q: string\n): PlatformCategoryItem[] {\n if (!q) {\n return categories;\n }\n\n const lowerQ = q.toLowerCase();\n const _categories = categories.map((category) => ({\n ...category,\n items: category.items\n .map((item) => {\n switch (item.type) {\n case \"app\":\n return matchMenuItemApp(item, lowerQ);\n case \"custom\":\n return matchMenuItemCustom(item, lowerQ);\n }\n })\n // Ignore not matched items\n .filter(Boolean) as MenuItemDataNormal[],\n }));\n return _categories;\n}\n\nfunction matchMenuItemApp(item: MenuItemDataApp, lowerQ: string) {\n return item.id.toLowerCase().includes(lowerQ) ||\n item.name.toLowerCase().includes(lowerQ) ||\n (item.description && item.description.toLowerCase().includes(lowerQ))\n ? item\n : null;\n}\n\nfunction matchMenuItemCustom(item: MenuItemDataCustom, lowerQ: string) {\n return item.id.toLowerCase().includes(lowerQ) ||\n item.name.toLowerCase().includes(lowerQ) ||\n (item.description && item.description.toLowerCase().includes(lowerQ))\n ? item\n : null;\n}\n","import { useCallback, useEffect, useMemo, useState } from \"react\";\nimport {\n getRuntime,\n handleHttpError,\n httpErrorToString,\n} from \"@next-core/runtime\";\nimport { auth } from \"@next-core/easyops-runtime\";\nimport { JsonStorage } from \"@next-shared/general/JsonStorage\";\nimport { DeferredService } from \"../shared/DeferredService\";\nimport { showDialog, showNotification } from \"./wrapped-bricks\";\nimport type {\n FavMenuItem,\n MenuGroupData,\n MenuItemDataCustom,\n MenuItemDataLink,\n MenuItemDataNormal,\n MicroAppWithInstanceId,\n PlatformCategoryItem,\n StoredMenuItem,\n} from \"./interfaces\";\nimport {\n favorite,\n fetchFavorites,\n fetchLaunchpadInfo,\n fetchPlatformCategories,\n undoFavorite,\n} from \"./api\";\nimport { search, searchCategories } from \"./search\";\nimport { FAVORITES_LIMIT, RECENT_VISITS_LIMIT } from \"./constants\";\n\nconst storageKey = `launchpad-recent-visits:${(\n auth.getAuth() as Record<string, string>\n)?.org}`;\nconst storage = new JsonStorage(localStorage);\n\nlet candidateDesktops: MenuGroupData[] = [];\nlet candidateMicroAppsById = new Map<string, MicroAppWithInstanceId>();\nlet candidateCustomLinksById = new Map<string, MenuItemDataCustom>();\nlet preLoaded = false;\n\nlet candidateFavorites: FavMenuItem[] = [];\nlet preLoadedFavorites = false;\n\nlet candidatePlatformCategories: PlatformCategoryItem[] = [];\nlet preLoadedPlatformCategories = false;\n\nexport const deferredLaunchpadInfo = new DeferredService(async () => {\n ({\n menuGroups: candidateDesktops,\n microAppsById: candidateMicroAppsById,\n customLinksById: candidateCustomLinksById,\n } = await fetchLaunchpadInfo());\n preLoaded = true;\n});\n\nexport const deferredFavorites = new DeferredService(async () => {\n candidateFavorites = await fetchFavorites();\n preLoadedFavorites = true;\n});\n\nexport const deferredPlatformCategories = new DeferredService(async () => {\n candidatePlatformCategories = await fetchPlatformCategories();\n preLoadedPlatformCategories = true;\n});\n\nconst showErrorAsNotification = (error: unknown) =>\n showNotification({\n type: \"error\",\n message: httpErrorToString(error),\n });\n\n/**\n * - 页面初始化时预加载 launchpad 信息。\n * - 每次打开 launchpad 都发起请求,但该请求的数据只在下次打开 launchpad 时使用。\n * 即每次打开 launchpad 使用的都是上一次获取的数据,以便达到两个效果:\n * - 每次打开 launchpad 都能立即显示菜单列表;\n * - 同时当用户在 launchpad 上操作时,不会出现数据突然更新(新数据请求完成)。\n */\nexport function useLaunchpadInfo(active?: boolean) {\n const [desktops, setDesktops] = useState(candidateDesktops);\n const [microAppsById, setMicroAppsById] = useState(candidateMicroAppsById);\n const [customLinksById, setCustomLinksById] = useState(\n candidateCustomLinksById\n );\n\n const [q, setQ] = useState(\"\");\n\n const [loading, setLoading] = useState(!preLoaded);\n const [loadingFavorites, setLoadingFavorites] = useState(!preLoadedFavorites);\n const [loadingPlatformCategories, setLoadingPlatformCategories] = useState(\n !preLoadedPlatformCategories\n );\n\n const [storedRecentVisits, setStoredRecentVisits] = useState<\n StoredMenuItem[]\n >([]);\n\n const [recentVisits, setRecentVisits] = useState<MenuItemDataNormal[]>([]);\n\n const [favorites, setFavorites] = useState<FavMenuItem[]>(candidateFavorites);\n const [platformCategories, setPlatformCategories] = useState<\n PlatformCategoryItem[]\n >(candidatePlatformCategories);\n\n useEffect(() => {\n // 仅当首次加载完成或重新打开 launchpad 时更新一次数据。\n if (active && !loading) {\n setDesktops(candidateDesktops);\n setMicroAppsById(candidateMicroAppsById);\n setCustomLinksById(candidateCustomLinksById);\n }\n }, [active, loading]);\n\n useEffect(() => {\n if (active && !loadingFavorites) {\n setFavorites(candidateFavorites);\n }\n }, [active, loadingFavorites]);\n\n useEffect(() => {\n if (active && !loadingPlatformCategories) {\n setPlatformCategories(candidatePlatformCategories);\n }\n }, [active, loadingPlatformCategories]);\n\n useEffect(() => {\n if (active) {\n setStoredRecentVisits(storage.getItem(storageKey) ?? []);\n }\n }, [active]);\n\n useEffect(() => {\n if (active) {\n const startFetchLaunchpadInfo = async (): Promise<void> => {\n try {\n await deferredLaunchpadInfo.fetch();\n setLoading(false);\n } catch (error) {\n handleHttpError(error);\n }\n };\n startFetchLaunchpadInfo();\n }\n }, [active]);\n\n useEffect(() => {\n if (active) {\n const startFetchFavorites = async (): Promise<void> => {\n try {\n await deferredFavorites.fetch();\n setLoadingFavorites(false);\n } catch (error) {\n setLoadingFavorites(false);\n showErrorAsNotification(error);\n }\n };\n startFetchFavorites();\n }\n }, [active]);\n\n useEffect(() => {\n if (\n active &&\n getRuntime()?.getFeatureFlags()[\"launchpad-show-platform-category\"]\n ) {\n const startFetchPlatformCategories = async (): Promise<void> => {\n try {\n await deferredPlatformCategories.fetch();\n setLoadingPlatformCategories(false);\n } catch (error) {\n setLoadingPlatformCategories(false);\n showErrorAsNotification(error);\n }\n };\n startFetchPlatformCategories();\n }\n }, [active]);\n\n useEffect(() => {\n if (loading) {\n return;\n }\n const visits = storedRecentVisits\n .map((item) => {\n // Remembered recent visits maybe no longer existed in launchpad\n if (item.type === \"app\") {\n const app = microAppsById.get(item.id);\n return app\n ? {\n type: \"app\",\n name: app.localeName,\n id: app.id,\n url: app.homepage,\n instanceId: app.instanceId,\n menuIcon: app.menuIcon,\n }\n : null;\n }\n return customLinksById.get(item.id);\n })\n .filter(Boolean) as MenuItemDataNormal[];\n setRecentVisits(visits);\n }, [customLinksById, loading, microAppsById, storedRecentVisits]);\n\n const pushRecentVisit = useCallback(({ type, id }: StoredMenuItem) => {\n const visits: StoredMenuItem[] = storage.getItem(storageKey) ?? [];\n const index = visits.findIndex(\n (visit) => visit.type === type && visit.id === id\n );\n if (index > -1) {\n visits.splice(index, 1);\n }\n visits.unshift({ type, id });\n if (visits.length > RECENT_VISITS_LIMIT) {\n visits.pop();\n }\n // setStoredRecentVisits(visits);\n storage.setItem(storageKey, visits);\n }, []);\n\n const isStarred = useCallback(\n (item: MenuItemDataNormal) =>\n favorites.some((fav) => matchFavorite(item, fav)),\n [favorites]\n );\n\n const toggleStar = useCallback(\n (item: MenuItemDataNormal | MenuItemDataLink) => {\n const index = favorites.findIndex((fav) =>\n item.type === \"link\"\n ? fav.favoriteId === item.favoriteId\n : matchFavorite(item, fav)\n );\n let newFavorites: FavMenuItem[];\n if (index > -1) {\n const removed = favorites[index];\n newFavorites = favorites\n .slice(0, index)\n .concat(favorites.slice(index + 1));\n undoFavorite(removed).catch(showErrorAsNotification);\n } else {\n if (favorites.length >= FAVORITES_LIMIT) {\n showDialog({\n type: \"warn\",\n title: \"收藏数量已达上限\",\n content: `当前收藏链接数量已达上限(${FAVORITES_LIMIT}个),请删除部分收藏后再添加。`,\n });\n return;\n }\n // Assert: no link item\n const fav: FavMenuItem = { ...(item as MenuItemDataNormal) };\n newFavorites = favorites.concat(fav);\n favorite(item as MenuItemDataNormal).then((result) => {\n if (result) {\n fav.favoriteId = result.instanceId;\n }\n }, showErrorAsNotification);\n }\n setFavorites(newFavorites);\n candidateFavorites = newFavorites;\n },\n [favorites]\n );\n\n const menuGroups: MenuGroupData[] = useMemo(\n () => search(desktops, q),\n [desktops, q]\n );\n\n const filteredPlatformCategories: PlatformCategoryItem[] = useMemo(\n () => searchCategories(platformCategories, q),\n [platformCategories, q]\n );\n\n return {\n loading,\n q,\n setQ,\n menuGroups,\n loadingFavorites,\n loadingPlatformCategories,\n favorites,\n recentVisits,\n pushRecentVisit,\n isStarred,\n toggleStar,\n platformCategories: filteredPlatformCategories,\n };\n}\n\nexport function matchFavorite(item: MenuItemDataNormal, fav: FavMenuItem) {\n return item.instanceId && fav.instanceId\n ? fav.instanceId === item.instanceId\n : fav.type === item.type && fav.id === item.id;\n}\n","import { wrapBrick } from \"@next-core/react-element\";\nimport { unwrapProvider } from \"@next-core/utils/general\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\nimport type { Link, LinkProps } from \"@next-bricks/basic/link\";\nimport type { showDialog as _showDialog } from \"@next-bricks/basic/data-providers/show-dialog/show-dialog\";\nimport type { showNotification as _showNotification } from \"@next-bricks/basic/data-providers/show-notification/show-notification\";\n\nexport const WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\nexport const WrappedLink = wrapBrick<Link, LinkProps>(\"eo-link\");\n\n// Use `unwrapProvider` to get the original function of a provider\nexport const showDialog =\n unwrapProvider<typeof _showDialog>(\"basic.show-dialog\");\n\nexport const showNotification = unwrapProvider<typeof _showNotification>(\n \"basic.show-notification\"\n);\n","export class DeferredService {\n private preFetchId: number | null = null;\n private preFetchScheduled = false;\n private firstFetchPromise: Promise<unknown> | null = null;\n private isFetching = false;\n private readonly task: () => Promise<unknown>;\n\n constructor(task: () => Promise<unknown>) {\n this.task = task;\n }\n\n schedulePrefetch(): void {\n if (!this.preFetchScheduled) {\n this.preFetchScheduled = true;\n const preFetchLaunchpadInfo = async (): Promise<void> => {\n this.preFetchId = null;\n this.fetch();\n };\n // istanbul ignore if\n if (typeof window.requestIdleCallback === \"function\") {\n this.preFetchId = window.requestIdleCallback(preFetchLaunchpadInfo);\n } else {\n this.preFetchId = setTimeout(\n preFetchLaunchpadInfo\n ) as unknown as number;\n }\n }\n }\n\n fetch(eager?: boolean): Promise<unknown> {\n if (this.preFetchId) {\n // istanbul ignore if\n if (typeof window.cancelIdleCallback === \"function\") {\n cancelIdleCallback(this.preFetchId);\n } else {\n clearTimeout(this.preFetchId);\n }\n this.preFetchId = null;\n }\n\n let promise: Promise<unknown>;\n if (!this.isFetching || eager) {\n this.isFetching = true;\n promise = this.task();\n promise\n .catch((error) => {\n // eslint-disable-next-line no-console\n console.error(error);\n this.firstFetchPromise = null;\n })\n .finally(() => {\n this.isFetching = false;\n });\n if (!this.firstFetchPromise) {\n this.firstFetchPromise = promise;\n }\n if (eager) {\n return promise;\n }\n }\n return this.firstFetchPromise!;\n }\n}\n","import { i18nText } from \"@next-core/i18n\";\nimport type { AppLocales, I18nData } from \"@next-core/types\";\n\nexport function getAppLocaleName(\n locales: AppLocales | undefined,\n name: string\n) {\n if (!locales) {\n return name;\n }\n const i18nData = Object.fromEntries(\n Object.entries(locales)\n .filter(([lang, resources]) => resources.name)\n .map(([lang, resources]) => [lang, resources.name])\n ) as I18nData;\n return i18nText(i18nData) ?? name;\n}\n","export class JsonStorage {\n constructor(\n private storage: Storage,\n private prefix: string = \"brick-next-\"\n ) {}\n\n setItem<T = any>(name: string, value: T): void {\n this.storage.setItem(this.prefix + name, JSON.stringify(value));\n }\n\n getItem<T = any>(name: string): T {\n return JSON.parse(this.storage.getItem(this.prefix + name) as string) as T;\n }\n\n removeItem(name: string): void {\n return this.storage.removeItem(this.prefix + name);\n }\n\n clear(): void {\n return this.storage.clear();\n }\n}\n"],"names":["FAVORITES_LIMIT","RECENT_VISITS_LIMIT","_fetchLaunchpadInfo","_asyncToGenerator","launchpadInfo","LaunchpadApi_getLaunchpadInfo","interceptorParams","ignoreLoadingBar","noAbortOnRouteChange","microAppsById","Map","storyboard","storyboards","app","localeName","getAppLocaleName","locales","name","set","id","menuGroups","customLinksById","group","desktops","items","item","type","get","push","_objectSpread","url","homepage","menuIcon","subItems","subItem","length","apply","arguments","fetchRawFavorites","_fetchRawFavorites","LaunchpadApi_listCollectionV2","page","pageSize","list","_fetchFavorites","stored","fav","relatedApp","favoriteId","instanceId","appId","customItem","relatedCustomItem","link","icon","_favorite","LaunchpadApi_createCollectionV2","relatedInstanceId","_undoFavorite","LaunchpadApi_deleteCollectionV2","then","_list$find","foundId","find","_fav$relatedApp","_fav$relatedCustomIte","console","error","_fetchPlatformCategories","categories","InstanceApi_postSearchV3","fields","page_size","query","_categories","map","category","apps","platformApps","_app$","description","order","customItems","platformItems","_item$","sortBy","lib","matchMenuItemApp","lowerQ","toLowerCase","includes","matchMenuItemCustom","storageKey","concat","_auth$getAuth","auth","getAuth","org","storage","JsonStorage","localStorage","candidateDesktops","candidateMicroAppsById","candidateCustomLinksById","preLoaded","candidateFavorites","preLoadedFavorites","candidatePlatformCategories","preLoadedPlatformCategories","deferredLaunchpadInfo","DeferredService","fetchLaunchpadInfo","deferredFavorites","fetchFavorites","deferredPlatformCategories","fetchPlatformCategories","showErrorAsNotification","showNotification","message","httpErrorToString","useLaunchpadInfo","active","setDesktops","useState","setMicroAppsById","setCustomLinksById","q","setQ","loading","setLoading","loadingFavorites","setLoadingFavorites","loadingPlatformCategories","setLoadingPlatformCategories","storedRecentVisits","setStoredRecentVisits","recentVisits","setRecentVisits","favorites","setFavorites","platformCategories","setPlatformCategories","useEffect","_storage$getItem","getItem","startFetchLaunchpadInfo","_ref4","fetch","handleHttpError","startFetchFavorites","_ref5","_getRuntime","getRuntime","getFeatureFlags","startFetchPlatformCategories","_ref6","visits","filter","Boolean","pushRecentVisit","useCallback","_ref7","_storage$getItem2","index","findIndex","visit","splice","unshift","pop","setItem","isStarred","some","matchFavorite","toggleStar","newFavorites","removed","slice","_x2","undoFavorite","catch","showDialog","title","content","_x","favorite","result","useMemo","allMenuGroups","filteredSubItems","sub","search","filteredPlatformCategories","searchCategories","WrappedIcon","wrapBrick","WrappedLink","unwrapProvider","constructor","task","_defineProperty","this","schedulePrefetch","_this","preFetchScheduled","preFetchLaunchpadInfo","_ref","preFetchId","window","requestIdleCallback","setTimeout","eager","promise","cancelIdleCallback","clearTimeout","isFetching","firstFetchPromise","finally","_i18nText","i18nData","Object","fromEntries","entries","lang","resources","_ref2","i18nText","prefix","undefined","value","JSON","stringify","parse","removeItem","clear"],"sourceRoot":""}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
/*! For license information please see 2252.
|
|
2
|
-
"use strict";(self.webpackChunk_next_bricks_nav=self.webpackChunk_next_bricks_nav||[]).push([[2252],{2559:(e,t,n)=>{function r(e,t,n){if("function"==typeof e?e===t:e.has(t))return arguments.length<3?t:n;throw new TypeError("Private element is not present on this object")}n.d(t,{A:()=>r})},6330:(e,t,n)=>{function r(e,t,n,r,i,a,o){try{var s=e[a](o),c=s.value}catch(e){return void n(e)}s.done?t(c):Promise.resolve(c).then(r,i)}function i(e){return function(){var t=this,n=arguments;return new Promise((function(i,a){var o=e.apply(t,n);function s(e){r(o,i,a,s,c,"next",e)}function c(e){r(o,i,a,s,c,"throw",e)}s(void 0)}))}}n.d(t,{A:()=>i})},2016:(e,t,n)=>{function r(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}n.d(t,{A:()=>r})},829:(e,t,n)=>{n.d(t,{A:()=>i});var r=n(2559);function i(e,t){return e.get((0,r.A)(e,t))}},918:(e,t,n)=>{n.d(t,{A:()=>i});var r=n(2016);function i(e,t,n){(0,r.A)(e,t),t.set(e,n)}},6121:(e,t,n)=>{n.d(t,{A:()=>i});var r=n(2559);function i(e,t,n){return e.set((0,r.A)(e,t),n),n}},5536:(e,t,n)=>{n.d(t,{A:()=>i});var r=n(2559);function i(e,t,n){return n((0,r.A)(e,t))}},4635:(e,t,n)=>{n.d(t,{A:()=>i});var r=n(2016);function i(e,t){(0,r.A)(e,t),t.add(e)}},4586:(e,t,n)=>{n.d(t,{A:()=>i});var r=n(1369);function i(e,t,n){return(t=(0,r.A)(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}},9740:(e,t,n)=>{n.d(t,{A:()=>a});var r=n(4586);function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function a(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?i(Object(n),!0).forEach((function(t){(0,r.A)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):i(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}},9850:(e,t,n)=>{n.d(t,{A:()=>i});var r=n(7502);function i(e,t){if(null==e)return{};var n,i,a=(0,r.A)(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(i=0;i<o.length;i++)n=o[i],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}},7502:(e,t,n)=>{function r(e,t){if(null==e)return{};var n,r,i={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(i[n]=e[n]);return i}n.d(t,{A:()=>r})},2252:(e,t,n)=>{n.r(t),n.d(t,{analytics:()=>u,auth:()=>Ot,checkInstalledApps:()=>i,checkPermissions:()=>St,flowApi:()=>a,menu:()=>o,messageDispatcher:()=>It});var r={};n.r(r),n.d(r,{authenticate:()=>A,getAuth:()=>g,isLoggedIn:()=>w,logout:()=>y});var i={};n.r(i),n.d(i,{getCheckedApp:()=>se,preCheckInstalledApps:()=>ie,waitForCheckingApps:()=>ae});var a={};n.r(a),n.d(a,{FLOW_API_PROVIDER:()=>pe,clearCollectWidgetContract:()=>Se,collectContract:()=>we,collectWidgetContract:()=>be,getArgsOfFlowApi:()=>Pe,isFlowApiProvider:()=>Oe,registerFlowApiProvider:()=>ve});var o={};n.r(o),n.d(o,{fetchMenuById:()=>nt,getMenuById:()=>tt});var s={};n.r(s),n.d(s,{onRequest:()=>At,onResponse:()=>gt,onResponseError:()=>yt});var c={};n.r(c),n.d(c,{create:()=>bt});var u={};n.r(u),n.d(u,{http:()=>s,initialize:()=>ht,pageView:()=>c});var p=n(6330),l=n(1030),d=n(3880),f=n(6730),v=function(){var e=(0,p.A)((function*(e,t){return(yield f.http.post("api/gateway/micro_app.permission.ValidatePermissions/api/micro_app/v1/permission/validate",e,t)).data}));return function(t,n){return e.apply(this,arguments)}}(),h=n(9740),m={};function A(e){Object.assign(m,{org:e.org,username:e.username,userInstanceId:e.userInstanceId,loginFrom:e.loginFrom,accessRule:e.accessRule,isAdmin:e.isAdmin,csrfToken:e.csrfToken,license:e.license,userShowValue:e.userShowValue})}function g(){return(0,h.A)({},m)}function y(){for(var e of Object.keys(m))m[e]=void 0;b.length=0,S.clear()}function w(){return void 0!==m.username}var b=[],S=new Map;function I(){return(I=(0,p.A)((function*(e,t){if(w()&&!g().isAdmin&&Array.isArray(e.permissionsPreCheck))return P(yield t(e.permissionsPreCheck))}))).apply(this,arguments)}function O(e){if(w()&&!g().isAdmin)return P((0,d.scanPermissionActionsInAny)(e))}function P(e){return E.apply(this,arguments)}function E(){return(E=(0,p.A)((function*(e){var t=(0,l.difference)(e,[...b]);if(0!==t.length){b.push(...t);try{var n=yield v({actions:t});for(var r of n.actions)S.set(r.action,r.authorizationStatus),"undefined"===r.authorizationStatus&&console.error('Undefined permission action: "'.concat(r.action,'"'))}catch(e){console.error("Pre-check permissions failed",e)}}}))).apply(this,arguments)}var k=n(4635),M=n(918),C=n(5536),_=n(2559),j=n(6121),T=n(829),N=n(3854),D=1e3,R=6,x=new WeakMap,W=new WeakMap,L=new WeakMap,F=new WeakMap,U=new WeakMap,B=new WeakMap,q=new WeakMap,z=new WeakSet;class G{constructor(e){(0,k.A)(this,z),(0,M.A)(this,x,void 0),(0,M.A)(this,W,void 0),(0,M.A)(this,L,[]),(0,M.A)(this,F,new Set),(0,M.A)(this,U,new Set),(0,M.A)(this,B,0),(0,M.A)(this,q,!1),(0,j.A)(x,this,e)}send(e){(0,T.A)(W,this)||(0,j.A)(W,this,(0,_.A)(z,this,J).call(this));var t=JSON.stringify(e);(0,T.A)(W,this).readyState===WebSocket.OPEN?(0,T.A)(W,this).send(t):(0,T.A)(L,this).push(t)}onMessage(e){(0,T.A)(F,this).add(e)}onClose(e){(0,T.A)(U,this).add(e)}reset(){(0,T.A)(L,this).length=0,(0,T.A)(F,this).clear(),(0,T.A)(U,this).clear()}close(){var e;(0,j.A)(q,this,!0),(null===(e=(0,T.A)(W,this))||void 0===e?void 0:e.readyState)===WebSocket.OPEN&&(0,T.A)(W,this).close()}}function J(){console.log("WebSocket connecting ...");var e=new WebSocket((0,T.A)(x,this));return e.addEventListener("open",(t=>{for(var n of(console.log("WebSocket open:",t),(0,j.A)(B,this,0),(0,T.A)(L,this)))e.send(n);(0,T.A)(L,this).length=0})),e.addEventListener("close",(e=>{if(!(0,T.A)(q,this)){for(var t of(console.log("WebSocket close:",e),(0,T.A)(U,this)))t();1e3!==e.code&&(0,_.A)(z,this,H).call(this)}})),e.addEventListener("error",(e=>{console.error("WebSocket error:",e)})),e.addEventListener("message",(e=>{var t=JSON.parse(e.data);for(var n of(0,T.A)(F,this))n(t)})),e}function H(){if((0,T.A)(B,this)>=R)console.error("WebSocket connect retry limit exceeded");else{var e=Math.pow(2,(0,T.A)(B,this))*D;console.log("WebSocket will reconnect after %d seconds",e/1e3),setTimeout((()=>{var e;(0,j.A)(B,this,(e=(0,T.A)(B,this),++e)),(0,j.A)(W,this,(0,_.A)(z,this,J).call(this))}),e)}}var V=new WeakMap,Y=new WeakMap,$=new WeakMap,K=new WeakSet;function Q(e){if(!(0,T.A)(V,e)){var t="https:"===location.protocol?"wss:":"ws:",n="".concat(t,"//").concat(window.location.host).concat((0,N.getBasePath)(),"api/websocket_service/v1/ws");(0,j.A)(V,e,new G(n))}return(0,T.A)(V,e)}function X(e,t,n,r){var i=(0,T.A)(Y,this)[e].get(r);if(i)return i;var a={event:"sub"===e?"TOPIC.SUB":"TOPIC.UNSUB",payload:n},o=new Promise(((t,r)=>{var i=Z(n);(0,C.A)(K,this,Q).onMessage((n=>{var a=n.event===("sub"===e?"TOPIC.SUB_SUCCESS":"TOPIC.UNSUB_SUCCESS"),o=n.event===("sub"===e?"TOPIC.SUB_FAILED":"TOPIC.UNSUB_FAILED");(a||o)&&i===Z(n.payload)&&(a?t:r)(n)})),(0,C.A)(K,this,Q).send(a)}));return"sub"===e&&(0,T.A)($,this).set(t,r),(0,T.A)(Y,this)[e].set(r,o),o}function Z(e){var{system:t,topic:n}=e;return JSON.stringify({system:t,topic:n})}var ee=n(3496),te=function(){var e=(0,p.A)((function*(e,t){return(yield ee.http.post("api/gateway/micro_app_standalone.runtime.SearchMicroAppStandalone/api/v1/micro_app_standalone/search",e,t)).data}));return function(t,n){return e.apply(this,arguments)}}(),ne=new Map,re=new Map;function ie(e,t){if(window.STANDALONE_MICRO_APPS&&!window.NO_AUTH_GUARD){var n=function(e){var t,n={usedArgs:new Set},{customTemplates:r,menus:i}=null!==(t=e.meta)&&void 0!==t?t:{};return(0,d.traverseStoryboardExpressions)([e.routes,r,i],((e,t)=>{(0,d.collectInstalledAppsHasUsage)(n,e,t)}),"INSTALLED_APPS"),[...n.usedArgs]}(e),r=[];for(var i of n)ne.has(i)||t(i)||r.push(i);if(0===r.length)return;var a=te({query:{appId:{$in:r}},fields:["appId","currentVersion","installStatus"]}).catch((e=>{console.error("Get off site standalone micro-apps failed",e)})),o=function(e){ne.set(e,a.then((t=>{var n,r=null==t||null===(n=t.list)||void 0===n?void 0:n.find((t=>t.appId===e)),i=r?(0,h.A)((0,h.A)({},r),{},{id:e}):void 0;return re.set(e,i),i})))};for(var s of r)o(s)}}function ae(e){return oe.apply(this,arguments)}function oe(){return(oe=(0,p.A)((function*(e){yield Promise.all(e.map((e=>ne.get(e))))}))).apply(this,arguments)}function se(e){if(window.STANDALONE_MICRO_APPS)return re.get(e)}var ce=n(4376),ue=n(2843),pe="core.provider-flow-api";function le(e,t){return e.some((e=>e.source===t))}function de(e){return fe.apply(this,arguments)}function fe(){return fe=(0,p.A)((function*(e){for(var t,{url:n,originalUri:r,method:i="GET",responseWrapper:a=!0,ext_fields:o=[],request:s,isFileType:c}=e,u=["get","delete","head"].includes(i.toLowerCase()),p=c?{responseType:"blob"}:{},d=arguments.length,f=new Array(d>1?d-1:0),v=1;v<d;v++)f[v-1]=arguments[v];if(u){var m,A,g,y,w,b;r&&"object"===(null==s?void 0:s.type)&&(null!==(m=null===(A=r.match(/:([^/]+)/g))||void 0===A?void 0:A.length)&&void 0!==m?m:0)===(null!==(g=null===(y=s.fields)||void 0===y?void 0:y.length)&&void 0!==g?g:0)?[b]=f:[w,b]=f,t=yield ue.http.simpleRequest(i,n,(0,h.A)((0,h.A)({params:w},p),b))}else{var S=function(e){if(!e||"object"!==e.type)return!1;var t=e=>!(0,l.isEmpty)(e)&&e.some((e=>["file","file[]"].includes(e.type)||t(e.fields)));return t(e.fields)}(s),I=function(e){for(var t=le(e,"query"),n=le(e,"body"),r=arguments.length,i=new Array(r>1?r-1:0),a=1;a<r;a++)i[a-1]=arguments[a];if(t){if(n){var[o,s,c]=i;return{data:o,options:(0,h.A)({params:s},c)}}var[u,p]=i;return{data:{},options:(0,h.A)({params:u},p)}}var[l,d]=i;return{data:l,options:d}}(o,...f);t=yield ue.http.requestWithBody(i,n,S?function(e){if(e instanceof FormData)return e;var t=new FormData,n=function(e){Array.isArray(i)?i.forEach((n=>{t.append(e,n)})):!(0,l.isObject)(i)||i instanceof Blob||i instanceof Date?t.append(e,i):Object.entries(i).forEach((n=>{var[r,i]=n;t.append("".concat(e,"[").concat(r,"]"),i)}))};for(var[r,i]of Object.entries(e))n(r);return t}(I.data):I.data,(0,h.A)((0,h.A)({},p),I.options))}return!c&&a?t.data:t})),fe.apply(this,arguments)}function ve(){customElements.define(pe,(0,ce.createProviderClass)(de))}var he=n(8679),me=function(){var e=(0,p.A)((function*(e,t){return(yield f.http.post("api/contract/single_search",e,t)).data}));return function(t,n){return e.apply(this,arguments)}}(),Ae=new Map,ge=new Map,ye=(e,t)=>{null==e||e.forEach((e=>{t.set("".concat(e.namespaceId,".").concat(e.name),e)}))};function we(e){ye(e,Ae)}function be(e){ye(e,ge)}function Se(){ge.clear()}var Ie=new Map;function Oe(e){return e.includes("@")}function Pe(e,t,n){return Ee.apply(this,arguments)}function Ee(){return Ee=(0,p.A)((function*(e,t,n){if(!e.includes(":"))throw new Error("You're using legacy Custom API \"".concat(e,'" which is dropped in v3, please use Flow API instead'));var r=yield function(e){return ke.apply(this,arguments)}(e);if(!r)throw new Ce('Flow API not found: "'.concat(e,'"'));var i=function(e,t){var n,r,i="string"==typeof t.contract?he.safeLoad(t.contract,{schema:he.JSON_SCHEMA,json:!0}):t.contract,{uri:a,method:o="GET",ext_fields:s}=null!==(n=null==i?void 0:i.endpoint)&&void 0!==n?n:{},c=!(null==i||!i.response)&&!1!==i.response.wrapper;if(!a)throw new Error('Missing endpoint.uri in contract of provider "'.concat(e,'"'));return{uri:a,method:"list"===o.toLowerCase()?"get":o,ext_fields:s,name:t.name,namespace:t.namespace,serviceName:t.serviceName,version:t.version,isFileType:"file"===(null==i||null===(r=i.response)||void 0===r?void 0:r.type),responseWrapper:c,request:null==i?void 0:i.request}}(e,r);return function(e,t,n){var r,{uri:i,method:a,ext_fields:o,name:s,namespace:c,serviceName:u,responseWrapper:p,version:l,isFileType:d,request:f}=e,v="saveAs"===n;v&&(r=t.shift());var{url:h,args:m}=function(e,t,n,r,i,a){var o=a?i?"api/gateway/".concat(i):"api/gateway/".concat(r,".").concat(n,"@").concat(a):"api/gateway/api_service.".concat(r,".").concat(n),s=t.slice();return{url:o+e.replace(/:([^/]+)/g,(()=>s.shift())),args:s}}(i,t,s,c,u,l);return[...v?[r]:[],{url:h,originalUri:i,method:a,ext_fields:o,responseWrapper:p,request:f,isFileType:d},...m]}(i,t,n)})),Ee.apply(this,arguments)}function ke(){return ke=(0,p.A)((function*(e){var[t,n]=e.split("@"),[r,i]=n.split(":"),a=function(e){return Ae.get(e)||ge.get(e)}("".concat(t,".").concat(r));if(a)return{name:a.name,namespace:a.namespaceId,serviceName:a.serviceName,version:a.version,contract:{endpoint:a.endpoint,response:a.response,request:a.request}};var o=Ie.get(e);return o||(o=function(e,t,n){return Me.apply(this,arguments)}(t,r,i),Ie.set(e,o)),o})),ke.apply(this,arguments)}function Me(){return(Me=(0,p.A)((function*(e,t,n){var r,{contractData:i}=yield me({contractName:"".concat(e,".").concat(t),version:n});return i?{name:i.name,namespace:null===(r=i.namespace)||void 0===r||null===(r=r[0])||void 0===r?void 0:r.name,serviceName:i.serviceName,version:i.version,contract:{endpoint:i.endpoint,response:i.response,request:i.request}}:null}))).apply(this,arguments)}class Ce extends Error{constructor(e){super(e),this.name="FlowApiNotFoundError",Error.captureStackTrace&&Error.captureStackTrace(this,Ce)}}var _e=n(9850),je=function(){var e=(0,p.A)((function*(e,t,n){return(yield ee.http.post("api/gateway/cmdb.instance.PostSearch/object/".concat(e,"/instance/_search"),t,n)).data}));return function(t,n,r){return e.apply(this,arguments)}}(),Te=function(){var e=(0,p.A)((function*(e,t,n){return(yield f.http.get("api/gateway/micro_app.installed_micro_app.GetMenusInfo/api/v1/micro-app/menus/".concat(e),(0,h.A)((0,h.A)({},n),{},{params:t}))).data}));return function(t,n,r){return e.apply(this,arguments)}}(),Ne=n(2659),De=Symbol("appId"),Re=Symbol("menuI18nNamespace"),xe=Symbol("overrideApp");function We(){return(We=(0,p.A)((function*(e,t,n,r){if(e.dynamicItems&&e.itemsResolve){var i,a=e.app[0].appId,o=(0,h.A)((0,h.A)({},t),{},{pendingPermissionsPreCheck:[...t.pendingPermissionsPreCheck,O(e.itemsResolve)]});a!==t.app.id&&(o.overrideApp=window.STANDALONE_MICRO_APPS?e.overrideApp:null===(i=r.getStoryboardByAppId(a))||void 0===i?void 0:i.app,o.appendI18nNamespace=n.get(e));var s=yield r.resolveData((0,h.A)({transform:"items"},e.itemsResolve),o);e.items=s.items}}))).apply(this,arguments)}function Le(){return Le=(0,p.A)((function*(e,t,n){var r=e.find((e=>"inject"!==e.type));if(r){var i=[],a=new Map,o=new WeakMap,s=function*(){if(c.i18n){var e="menu/".concat(c.menuId,"~").concat(c.app[0].appId,"+").concat(c.instanceId);Object.entries(c.i18n).forEach((t=>{var[n,r]=t;Ne.i18n.addResourceBundle(n,e,r)})),o.set(c,e)}};for(var c of e)yield*s();for(var u of(yield Promise.all(e.map((e=>function(e,t,n,r){return We.apply(this,arguments)}(e,t,o,n)))),e)){var p;if(null!==(p=u.items)&&void 0!==p&&p.length)if("inject"===u.type&&u.injectMenuGroupId){var l=a.get(u.injectMenuGroupId);l||(l=[],a.set(u.injectMenuGroupId,l)),l.push(u)}else i.push(u)}return(0,h.A)((0,h.A)({},r),{},{items:i.flatMap((e=>Fe(e.items,e,a,o))),[Re]:o.get(r),[xe]:r.overrideApp})}})),Le.apply(this,arguments)}function Fe(e,t,n,r){return null==e?void 0:e.map((e=>{var i,a=e.groupId&&n.get(e.groupId);return a&&n.delete(e.groupId),(0,h.A)((0,h.A)({},e),{},{children:(null!==(i=Fe(e.children,t,n,r))&&void 0!==i?i:[]).concat(a?a.flatMap((e=>Fe(e.items,e,n,r))):[]),[De]:t.app[0].appId,[Re]:r.get(t),[xe]:t.overrideApp})}))}function Ue(e){e.items=Be(e.items)}function Be(e){return function(e){return(0,l.sortBy)(e,(e=>{var t;return null!==(t=e.sort)&&void 0!==t?t:-1/0}))}(e).map((e=>(0,h.A)((0,h.A)({},e),{},{children:Be(e.children)})))}var qe=n(8422),ze=n(5058),Ge=["children"];function Je(e,t,n,r){if("titleDataSource"in e&&(0,ce.isObject)(e.titleDataSource)&&Object.entries(e.titleDataSource).every((e=>{var[,t]=e;return null===t||""===t}))&&delete e.titleDataSource,"if"in e&&null===e.if&&delete e.if,"to"in e&&e.to&&!(0,ze.isEvaluable)(e.to)){var i=qe.pipes.yaml(e.to);(0,ce.isObject)(i)&&["pathname","search","hash"].some((e=>(0,ce.hasOwnProperty)(i,e)))&&(e.to=i)}var a=n;if(t!==n.app.id){var o,s=window.STANDALONE_MICRO_APPS?e[xe]:null===(o=r.getStoryboardByAppId(t))||void 0===o?void 0:o.app;a=(0,h.A)((0,h.A)({},n),{},{overrideApp:s,appendI18nNamespace:e[Re]})}return r.asyncComputeRealValue(e,a,{ignoreSymbols:!0})}function He(e,t,n){return Promise.all(e.map(function(){var e=(0,p.A)((function*(e){var{children:r}=e,i=(0,_e.A)(e,Ge),[a,o]=yield Promise.all([Je(i,i[De],t,n),r&&(yield He(r,t,n))]);return(0,h.A)((0,h.A)({},a),{},{children:o})}));return function(t){return e.apply(this,arguments)}}()))}var Ve=function(){var e=(0,p.A)((function*(e,t,n,r){return(yield ee.http.get("api/gateway/cmdb.instance.GetDetail/object/".concat(e,"/instance/").concat(t),(0,h.A)((0,h.A)({},r),{},{params:n}))).data}));return function(t,n,r,i){return e.apply(this,arguments)}}(),Ye=new Map;function $e(e){return Ke.apply(this,arguments)}function Ke(){return(Ke=(0,p.A)((function*(e){if(e.title||(0,l.isEmpty)(e.titleDataSource))return e.title;var t=JSON.stringify(e.titleDataSource),n=Ye.get(t);if(void 0!==n)return n;var r,{objectId:i,instanceId:a,attributeId:o}=e.titleDataSource,s=null!=o?o:"name",c=yield Ve(i,a,{fields:s});if("#showKey"===o&&Array.isArray(c[s])){var[u,...p]=c[s];r=p.length>0?"".concat(u,"(").concat(p.join(","),")"):String(u)}else r=String(c[s]);return Ye.set(t,r),r}))).apply(this,arguments)}var Qe=["items","app"],Xe=new Map,Ze=new Map;function et(e){return null==e?void 0:e.filter(N.checkIfOfComputed).map((e=>{var t=et(e.children);return"group"===e.type?{type:"group",title:e.text,childLayout:e.childLayout,items:t,groupId:e.groupId,groupFrom:e.groupFrom}:null!=t&&t.length?{type:"subMenu",childLayout:e.childLayout,title:e.text,icon:e.icon,items:t,defaultExpanded:e.defaultExpanded}:(0,l.omit)(e,["type","items","children"])}))}function tt(e){return Ze.get(e)}function nt(e,t,n){var r=Xe.get(e);return r||(r=function(e,t,n){return rt.apply(this,arguments)}(e,t,n)),r}function rt(){return rt=(0,p.A)((function*(e,t,n){var r=window.STANDALONE_MICRO_APPS?function(e,t,n){var r,i,a,o,s=n.getStoryboardByAppId(t);return(null!==(r=null!==(i=null===(a=s.meta)||void 0===a?void 0:a.injectMenus)&&void 0!==i?i:null===(o=s.meta)||void 0===o?void 0:o.menus)&&void 0!==r?r:[]).filter((t=>t.menuId===e)).map((e=>{var n;return(0,h.A)((0,h.A)({},e),null!==(n=e.app)&&void 0!==n&&null!==(n=n[0])&&void 0!==n&&n.appId?{}:{app:[{appId:t}]})}))}(e,t.app.id,n):t.flags["three-level-menu-layout"]?(yield Te(e,{menuObjectId:"EASYOPS_STORYBOARD_MENU"})).menus:(yield je("EASYOPS_STORYBOARD_MENU",{page:1,page_size:200,fields:{menuId:!0,title:!0,icon:!0,link:!0,titleDataSource:!0,defaultCollapsed:!0,defaultCollapsedBreakpoint:!0,type:!0,injectMenuGroupId:!0,dynamicItems:!0,itemsResolve:!0,items:!0,i18n:!0,"items.children":!0,"app.appId":!0},query:{menuId:{$eq:e},app:{$size:{$gt:0}}}})).list,i=yield function(e,t,n){return Le.apply(this,arguments)}(r,t,n);if(!i)throw new Error("Menu not found: ".concat(e));Ue(i);var{items:a,app:o}=i,s=(0,_e.A)(i,Qe),c=(0,h.A)((0,h.A)({},t),{},{pendingPermissionsPreCheck:[...t.pendingPermissionsPreCheck,O([a,s])]});delete c.tplStateStoreId,delete c.forEachItem,delete c.forEachIndex;var u=o[0].appId,[p,d]=yield Promise.all([Je(s,u,c,n),He(a,c,n)]),f=(0,h.A)((0,h.A)({title:yield $e(p)},(0,l.pick)(p,["icon","link","defaultCollapsed","defaultCollapsedBreakpoint"])),{},{menuItems:et(d)});Ze.set(e,f)})),rt.apply(this,arguments)}var it=[],at=null,ot={maxWaitingTime:5e3,maxLoggedEvents:10};function st(){clearTimeout(at),it.length>ot.maxLoggedEvents?ct():at=setTimeout(ct,ot.maxWaitingTime)}function ct(){if(0!==it.length){var e,t={model:"easyops.FRONTEND_STAT",columns:["_ver","st","et","lt","size","time","traceId","code","duration","page","uid","username","api","type","msg","status","pageId","route","apiCount","maxApiTimeCost","apiSizeCost","pageTitle"],data:it.splice(0,ot.maxLoggedEvents)};n=ot.api,r=t,i=new Blob([JSON.stringify(r)],{type:"application/json"}),window.navigator.sendBeacon(n,i),it.length&&(e=ct,(window.requestIdleCallback||window.requestAnimationFrame||(e=>setTimeout(e,17)))(e))}var n,r,i}function ut(){window.addEventListener("beforeunload",ct,!1)}var pt,lt=!1,dt=null,ft=!0,vt=[];function ht(e){lt||(lt=!0,pt||(pt=function(e,t){return Object.assign(ot,(0,h.A)((0,h.A)({},t),{},{api:e})),{sendOnExit:ut,emit:st}}(e,arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}),pt.sendOnExit()))}var mt=Symbol("HttpAnalytics");function At(e){var t=Math.round(performance.now()),n=Date.now();return e[mt]={st:n,time:Math.round(n/1e3),perfStartTime:t},e}function gt(e,t){return wt(!1,e,t)}function yt(e,t){return wt(!0,e,t)}function wt(e,t,n){var r,i=Math.round(performance.now()),a=Date.now(),{[mt]:o,url:s}=n;if(o&&!(e&&t instanceof ue.HttpAbortError)){var c,u,p;delete n[mt];var l,d,f,v,m,A,y,{st:w,time:b,perfStartTime:S}=o,{userInstanceId:I,username:O}=g();if(e){var P=t instanceof ue.HttpResponseError;(P||t instanceof ue.HttpParseError)&&(({status:m,headers:A}=t.response),P&&(y=t.responseJson))}else({status:m,data:y,headers:A}=t);(0,ce.isObject)(y)&&({code:l,message:d}=y),A instanceof Headers&&(f=A.get("x-b3-traceid"),v=A.get("content-length")),r={st:w,_ver:w,uid:I,username:O,time:b,et:a,page:location.href,duration:i-S,api:s,type:"api",code:null!==(c=l)&&void 0!==c?c:-1,msg:null!==(u=d)&&void 0!==u?u:"",status:m,traceId:null!==(p=f)&&void 0!==p?p:"",size:v?Number(v):-1},dt?it.push((0,h.A)((0,h.A)({},r),{},{type:"apiRequest"},dt)):vt.push(r)}return e?Promise.reject(t):t}function bt(){var e=Math.round(performance.now()),t=Date.now();return vt.length=0,dt=null,function(n){var{status:r,path:i,pageTitle:a}=n;if("ok"!==r)return it.push(...vt),void(vt.length=0);var o=Math.round(performance.now())-e,s=Date.now(),{username:c}=g();(function(e){var t,n,r=(t=URL.createObjectURL(new Blob([])),n=t.substring(t.lastIndexOf("/")+1),URL.revokeObjectURL(t),ft&&(n="88-"+n,ft=!1),n),{lt:i,route:a}=e;for(var o of(dt={lt:i,route:a,pageId:r},it.push((0,h.A)((0,h.A)({},e),{},{pageId:r,apiCount:vt.length,maxApiTimeCost:Math.max(0,...vt.map((e=>e.duration))),size:vt.map((e=>e.size)).filter((e=>e>0)).reduce(((e,t)=>e+t),0)})),vt))it.push((0,h.A)((0,h.A)({},o),dt));vt.length=0,pt.emit()})({type:"page",page:location.href,_ver:t,time:Math.round(t/1e3),st:t,et:s,lt:o,pageTitle:a,username:c,route:i}),window.dispatchEvent(new CustomEvent("route.render",{detail:{renderTime:o}}))}}var St=Object.freeze({checkPermissions:function(){if(!w())return!1;if(g().isAdmin)return!0;for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];for(var r of t)switch(S.get(r)){case"unauthorized":case"undefined":return!1;case void 0:return console.error('Un-checked permission action: "'.concat(r,'", please make sure the permission to check is defined in permissionsPreCheck.')),!1}return!0},preCheckPermissions:function(e){if(w()&&!g().isAdmin)return P((0,d.scanPermissionActionsInStoryboard)(e))},preCheckPermissionsForBrickOrRoute:function(e,t){return I.apply(this,arguments)}}),It=new class{constructor(){(0,k.A)(this,K),(0,M.A)(this,V,void 0),(0,M.A)(this,Y,{sub:new Map,unsub:new Map}),(0,M.A)(this,$,new Map)}subscribe(e,t){var n=JSON.stringify(t);return(0,_.A)(K,this,X).call(this,"sub",e,t,n)}unsubscribe(e){var t=(0,T.A)($,this).get(e);if(!t){var n='The message channel to unsubscribe "'.concat(e,'" is not found');return console.error(n),Promise.reject(new Error(n))}var r=JSON.parse(t),i=(0,_.A)(K,this,X).call(this,"unsub",e,r,t);return(0,T.A)(Y,this).sub.delete(t),i.then((()=>{(0,T.A)($,this).delete(e)})),i}onMessage(e,t){var n=(0,T.A)($,this).get(e),r=!1;(0,C.A)(K,this,Q).onMessage((i=>{n||(n=(0,T.A)($,this).get(e)),n?"MESSAGE.PUSH"===i.event&&function(e,t){var n=JSON.parse(e);return n.system===t.system&&(n.topic===t.topic||"string"==typeof n.topic&&n.topic.includes("*")&&new RegExp("^".concat(n.topic.replace(/([^*]*)\*([^*]*)/g,((e,t,n)=>"".concat((0,l.escapeRegExp)(t),"[^/]*").concat((0,l.escapeRegExp)(n)))),"$")).test(t.topic))}(n,i.payload)&&t(i.payload.message):r||(console.error('Message channel: "'.concat(e,'" not found')),r=!0)}))}onClose(e){(0,C.A)(K,this,Q).onClose(e)}reset(){var e;(0,T.A)(Y,this).sub.clear(),(0,T.A)(Y,this).unsub.clear(),(0,T.A)($,this).clear(),null===(e=(0,T.A)(V,this))||void 0===e||e.reset()}},Ot=function(){var e=(0,N.getV2RuntimeFromDll)();if(e)return Object.freeze((0,l.pick)(e,["authenticate","getAuth","isLoggedIn","logout"]))}()||r}}]);
|
|
3
|
-
//# sourceMappingURL=2252.
|
|
1
|
+
/*! For license information please see 2252.b1622599.js.LICENSE.txt */
|
|
2
|
+
"use strict";(self.webpackChunk_next_bricks_nav=self.webpackChunk_next_bricks_nav||[]).push([[2252],{2559:(e,t,n)=>{function r(e,t,n){if("function"==typeof e?e===t:e.has(t))return arguments.length<3?t:n;throw new TypeError("Private element is not present on this object")}n.d(t,{A:()=>r})},6330:(e,t,n)=>{function r(e,t,n,r,i,a,o){try{var s=e[a](o),c=s.value}catch(e){return void n(e)}s.done?t(c):Promise.resolve(c).then(r,i)}function i(e){return function(){var t=this,n=arguments;return new Promise((function(i,a){var o=e.apply(t,n);function s(e){r(o,i,a,s,c,"next",e)}function c(e){r(o,i,a,s,c,"throw",e)}s(void 0)}))}}n.d(t,{A:()=>i})},2016:(e,t,n)=>{function r(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}n.d(t,{A:()=>r})},829:(e,t,n)=>{n.d(t,{A:()=>i});var r=n(2559);function i(e,t){return e.get((0,r.A)(e,t))}},918:(e,t,n)=>{n.d(t,{A:()=>i});var r=n(2016);function i(e,t,n){(0,r.A)(e,t),t.set(e,n)}},6121:(e,t,n)=>{n.d(t,{A:()=>i});var r=n(2559);function i(e,t,n){return e.set((0,r.A)(e,t),n),n}},5536:(e,t,n)=>{n.d(t,{A:()=>i});var r=n(2559);function i(e,t,n){return n((0,r.A)(e,t))}},4635:(e,t,n)=>{n.d(t,{A:()=>i});var r=n(2016);function i(e,t){(0,r.A)(e,t),t.add(e)}},4586:(e,t,n)=>{n.d(t,{A:()=>i});var r=n(1369);function i(e,t,n){return(t=(0,r.A)(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}},9740:(e,t,n)=>{n.d(t,{A:()=>a});var r=n(4586);function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function a(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?i(Object(n),!0).forEach((function(t){(0,r.A)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):i(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}},9850:(e,t,n)=>{n.d(t,{A:()=>i});var r=n(7502);function i(e,t){if(null==e)return{};var n,i,a=(0,r.A)(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(i=0;i<o.length;i++)n=o[i],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}},7502:(e,t,n)=>{function r(e,t){if(null==e)return{};var n,r,i={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(i[n]=e[n]);return i}n.d(t,{A:()=>r})},2252:(e,t,n)=>{n.r(t),n.d(t,{analytics:()=>u,auth:()=>Ot,checkInstalledApps:()=>i,checkPermissions:()=>St,flowApi:()=>a,menu:()=>o,messageDispatcher:()=>It});var r={};n.r(r),n.d(r,{authenticate:()=>A,getAuth:()=>g,isLoggedIn:()=>w,logout:()=>y});var i={};n.r(i),n.d(i,{getCheckedApp:()=>se,preCheckInstalledApps:()=>ie,waitForCheckingApps:()=>ae});var a={};n.r(a),n.d(a,{FLOW_API_PROVIDER:()=>pe,clearCollectWidgetContract:()=>Se,collectContract:()=>we,collectWidgetContract:()=>be,getArgsOfFlowApi:()=>Pe,isFlowApiProvider:()=>Oe,registerFlowApiProvider:()=>ve});var o={};n.r(o),n.d(o,{fetchMenuById:()=>nt,getMenuById:()=>tt});var s={};n.r(s),n.d(s,{onRequest:()=>At,onResponse:()=>gt,onResponseError:()=>yt});var c={};n.r(c),n.d(c,{create:()=>bt});var u={};n.r(u),n.d(u,{http:()=>s,initialize:()=>ht,pageView:()=>c});var p=n(6330),l=n(1030),d=n(3880),f=n(6730),v=function(){var e=(0,p.A)((function*(e,t){return(yield f.http.post("api/gateway/micro_app.permission.ValidatePermissions/api/micro_app/v1/permission/validate",e,t)).data}));return function(t,n){return e.apply(this,arguments)}}(),h=n(9740),m={};function A(e){Object.assign(m,{org:e.org,username:e.username,userInstanceId:e.userInstanceId,loginFrom:e.loginFrom,accessRule:e.accessRule,isAdmin:e.isAdmin,csrfToken:e.csrfToken,license:e.license,userShowValue:e.userShowValue})}function g(){return(0,h.A)({},m)}function y(){for(var e of Object.keys(m))m[e]=void 0;b.length=0,S.clear()}function w(){return void 0!==m.username}var b=[],S=new Map;function I(){return(I=(0,p.A)((function*(e,t){if(w()&&!g().isAdmin&&Array.isArray(e.permissionsPreCheck))return P(yield t(e.permissionsPreCheck))}))).apply(this,arguments)}function O(e){if(w()&&!g().isAdmin)return P((0,d.scanPermissionActionsInAny)(e))}function P(e){return E.apply(this,arguments)}function E(){return(E=(0,p.A)((function*(e){var t=(0,l.difference)(e,[...b]);if(0!==t.length){b.push(...t);try{var n=yield v({actions:t});for(var r of n.actions)S.set(r.action,r.authorizationStatus),"undefined"===r.authorizationStatus&&console.error('Undefined permission action: "'.concat(r.action,'"'))}catch(e){console.error("Pre-check permissions failed",e)}}}))).apply(this,arguments)}var k=n(4635),M=n(918),C=n(5536),_=n(2559),j=n(6121),T=n(829),N=n(4328),D=1e3,R=6,x=new WeakMap,W=new WeakMap,L=new WeakMap,F=new WeakMap,U=new WeakMap,B=new WeakMap,q=new WeakMap,z=new WeakSet;class G{constructor(e){(0,k.A)(this,z),(0,M.A)(this,x,void 0),(0,M.A)(this,W,void 0),(0,M.A)(this,L,[]),(0,M.A)(this,F,new Set),(0,M.A)(this,U,new Set),(0,M.A)(this,B,0),(0,M.A)(this,q,!1),(0,j.A)(x,this,e)}send(e){(0,T.A)(W,this)||(0,j.A)(W,this,(0,_.A)(z,this,J).call(this));var t=JSON.stringify(e);(0,T.A)(W,this).readyState===WebSocket.OPEN?(0,T.A)(W,this).send(t):(0,T.A)(L,this).push(t)}onMessage(e){(0,T.A)(F,this).add(e)}onClose(e){(0,T.A)(U,this).add(e)}reset(){(0,T.A)(L,this).length=0,(0,T.A)(F,this).clear(),(0,T.A)(U,this).clear()}close(){var e;(0,j.A)(q,this,!0),(null===(e=(0,T.A)(W,this))||void 0===e?void 0:e.readyState)===WebSocket.OPEN&&(0,T.A)(W,this).close()}}function J(){console.log("WebSocket connecting ...");var e=new WebSocket((0,T.A)(x,this));return e.addEventListener("open",(t=>{for(var n of(console.log("WebSocket open:",t),(0,j.A)(B,this,0),(0,T.A)(L,this)))e.send(n);(0,T.A)(L,this).length=0})),e.addEventListener("close",(e=>{if(!(0,T.A)(q,this)){for(var t of(console.log("WebSocket close:",e),(0,T.A)(U,this)))t();1e3!==e.code&&(0,_.A)(z,this,H).call(this)}})),e.addEventListener("error",(e=>{console.error("WebSocket error:",e)})),e.addEventListener("message",(e=>{var t=JSON.parse(e.data);for(var n of(0,T.A)(F,this))n(t)})),e}function H(){if((0,T.A)(B,this)>=R)console.error("WebSocket connect retry limit exceeded");else{var e=Math.pow(2,(0,T.A)(B,this))*D;console.log("WebSocket will reconnect after %d seconds",e/1e3),setTimeout((()=>{var e;(0,j.A)(B,this,(e=(0,T.A)(B,this),++e)),(0,j.A)(W,this,(0,_.A)(z,this,J).call(this))}),e)}}var V=new WeakMap,Y=new WeakMap,$=new WeakMap,K=new WeakSet;function Q(e){if(!(0,T.A)(V,e)){var t="https:"===location.protocol?"wss:":"ws:",n="".concat(t,"//").concat(window.location.host).concat((0,N.getBasePath)(),"api/websocket_service/v1/ws");(0,j.A)(V,e,new G(n))}return(0,T.A)(V,e)}function X(e,t,n,r){var i=(0,T.A)(Y,this)[e].get(r);if(i)return i;var a={event:"sub"===e?"TOPIC.SUB":"TOPIC.UNSUB",payload:n},o=new Promise(((t,r)=>{var i=Z(n);(0,C.A)(K,this,Q).onMessage((n=>{var a=n.event===("sub"===e?"TOPIC.SUB_SUCCESS":"TOPIC.UNSUB_SUCCESS"),o=n.event===("sub"===e?"TOPIC.SUB_FAILED":"TOPIC.UNSUB_FAILED");(a||o)&&i===Z(n.payload)&&(a?t:r)(n)})),(0,C.A)(K,this,Q).send(a)}));return"sub"===e&&(0,T.A)($,this).set(t,r),(0,T.A)(Y,this)[e].set(r,o),o}function Z(e){var{system:t,topic:n}=e;return JSON.stringify({system:t,topic:n})}var ee=n(3496),te=function(){var e=(0,p.A)((function*(e,t){return(yield ee.http.post("api/gateway/micro_app_standalone.runtime.SearchMicroAppStandalone/api/v1/micro_app_standalone/search",e,t)).data}));return function(t,n){return e.apply(this,arguments)}}(),ne=new Map,re=new Map;function ie(e,t){if(window.STANDALONE_MICRO_APPS&&!window.NO_AUTH_GUARD){var n=function(e){var t,n={usedArgs:new Set},{customTemplates:r,menus:i}=null!==(t=e.meta)&&void 0!==t?t:{};return(0,d.traverseStoryboardExpressions)([e.routes,r,i],((e,t)=>{(0,d.collectInstalledAppsHasUsage)(n,e,t)}),"INSTALLED_APPS"),[...n.usedArgs]}(e),r=[];for(var i of n)ne.has(i)||t(i)||r.push(i);if(0===r.length)return;var a=te({query:{appId:{$in:r}},fields:["appId","currentVersion","installStatus"]}).catch((e=>{console.error("Get off site standalone micro-apps failed",e)})),o=function(e){ne.set(e,a.then((t=>{var n,r=null==t||null===(n=t.list)||void 0===n?void 0:n.find((t=>t.appId===e)),i=r?(0,h.A)((0,h.A)({},r),{},{id:e}):void 0;return re.set(e,i),i})))};for(var s of r)o(s)}}function ae(e){return oe.apply(this,arguments)}function oe(){return(oe=(0,p.A)((function*(e){yield Promise.all(e.map((e=>ne.get(e))))}))).apply(this,arguments)}function se(e){if(window.STANDALONE_MICRO_APPS)return re.get(e)}var ce=n(4376),ue=n(2843),pe="core.provider-flow-api";function le(e,t){return e.some((e=>e.source===t))}function de(e){return fe.apply(this,arguments)}function fe(){return fe=(0,p.A)((function*(e){for(var t,{url:n,originalUri:r,method:i="GET",responseWrapper:a=!0,ext_fields:o=[],request:s,isFileType:c}=e,u=["get","delete","head"].includes(i.toLowerCase()),p=c?{responseType:"blob"}:{},d=arguments.length,f=new Array(d>1?d-1:0),v=1;v<d;v++)f[v-1]=arguments[v];if(u){var m,A,g,y,w,b;r&&"object"===(null==s?void 0:s.type)&&(null!==(m=null===(A=r.match(/:([^/]+)/g))||void 0===A?void 0:A.length)&&void 0!==m?m:0)===(null!==(g=null===(y=s.fields)||void 0===y?void 0:y.length)&&void 0!==g?g:0)?[b]=f:[w,b]=f,t=yield ue.http.simpleRequest(i,n,(0,h.A)((0,h.A)({params:w},p),b))}else{var S=function(e){if(!e||"object"!==e.type)return!1;var t=e=>!(0,l.isEmpty)(e)&&e.some((e=>["file","file[]"].includes(e.type)||t(e.fields)));return t(e.fields)}(s),I=function(e){for(var t=le(e,"query"),n=le(e,"body"),r=arguments.length,i=new Array(r>1?r-1:0),a=1;a<r;a++)i[a-1]=arguments[a];if(t){if(n){var[o,s,c]=i;return{data:o,options:(0,h.A)({params:s},c)}}var[u,p]=i;return{data:{},options:(0,h.A)({params:u},p)}}var[l,d]=i;return{data:l,options:d}}(o,...f);t=yield ue.http.requestWithBody(i,n,S?function(e){if(e instanceof FormData)return e;var t=new FormData,n=function(e){Array.isArray(i)?i.forEach((n=>{t.append(e,n)})):!(0,l.isObject)(i)||i instanceof Blob||i instanceof Date?t.append(e,i):Object.entries(i).forEach((n=>{var[r,i]=n;t.append("".concat(e,"[").concat(r,"]"),i)}))};for(var[r,i]of Object.entries(e))n(r);return t}(I.data):I.data,(0,h.A)((0,h.A)({},p),I.options))}return!c&&a?t.data:t})),fe.apply(this,arguments)}function ve(){customElements.define(pe,(0,ce.createProviderClass)(de))}var he=n(8679),me=function(){var e=(0,p.A)((function*(e,t){return(yield f.http.post("api/contract/single_search",e,t)).data}));return function(t,n){return e.apply(this,arguments)}}(),Ae=new Map,ge=new Map,ye=(e,t)=>{null==e||e.forEach((e=>{t.set("".concat(e.namespaceId,".").concat(e.name),e)}))};function we(e){ye(e,Ae)}function be(e){ye(e,ge)}function Se(){ge.clear()}var Ie=new Map;function Oe(e){return e.includes("@")}function Pe(e,t,n){return Ee.apply(this,arguments)}function Ee(){return Ee=(0,p.A)((function*(e,t,n){if(!e.includes(":"))throw new Error("You're using legacy Custom API \"".concat(e,'" which is dropped in v3, please use Flow API instead'));var r=yield function(e){return ke.apply(this,arguments)}(e);if(!r)throw new Ce('Flow API not found: "'.concat(e,'"'));var i=function(e,t){var n,r,i="string"==typeof t.contract?he.safeLoad(t.contract,{schema:he.JSON_SCHEMA,json:!0}):t.contract,{uri:a,method:o="GET",ext_fields:s}=null!==(n=null==i?void 0:i.endpoint)&&void 0!==n?n:{},c=!(null==i||!i.response)&&!1!==i.response.wrapper;if(!a)throw new Error('Missing endpoint.uri in contract of provider "'.concat(e,'"'));return{uri:a,method:"list"===o.toLowerCase()?"get":o,ext_fields:s,name:t.name,namespace:t.namespace,serviceName:t.serviceName,version:t.version,isFileType:"file"===(null==i||null===(r=i.response)||void 0===r?void 0:r.type),responseWrapper:c,request:null==i?void 0:i.request}}(e,r);return function(e,t,n){var r,{uri:i,method:a,ext_fields:o,name:s,namespace:c,serviceName:u,responseWrapper:p,version:l,isFileType:d,request:f}=e,v="saveAs"===n;v&&(r=t.shift());var{url:h,args:m}=function(e,t,n,r,i,a){var o=a?i?"api/gateway/".concat(i):"api/gateway/".concat(r,".").concat(n,"@").concat(a):"api/gateway/api_service.".concat(r,".").concat(n),s=t.slice();return{url:o+e.replace(/:([^/]+)/g,(()=>s.shift())),args:s}}(i,t,s,c,u,l);return[...v?[r]:[],{url:h,originalUri:i,method:a,ext_fields:o,responseWrapper:p,request:f,isFileType:d},...m]}(i,t,n)})),Ee.apply(this,arguments)}function ke(){return ke=(0,p.A)((function*(e){var[t,n]=e.split("@"),[r,i]=n.split(":"),a=function(e){return Ae.get(e)||ge.get(e)}("".concat(t,".").concat(r));if(a)return{name:a.name,namespace:a.namespaceId,serviceName:a.serviceName,version:a.version,contract:{endpoint:a.endpoint,response:a.response,request:a.request}};var o=Ie.get(e);return o||(o=function(e,t,n){return Me.apply(this,arguments)}(t,r,i),Ie.set(e,o)),o})),ke.apply(this,arguments)}function Me(){return(Me=(0,p.A)((function*(e,t,n){var r,{contractData:i}=yield me({contractName:"".concat(e,".").concat(t),version:n});return i?{name:i.name,namespace:null===(r=i.namespace)||void 0===r||null===(r=r[0])||void 0===r?void 0:r.name,serviceName:i.serviceName,version:i.version,contract:{endpoint:i.endpoint,response:i.response,request:i.request}}:null}))).apply(this,arguments)}class Ce extends Error{constructor(e){super(e),this.name="FlowApiNotFoundError",Error.captureStackTrace&&Error.captureStackTrace(this,Ce)}}var _e=n(9850),je=function(){var e=(0,p.A)((function*(e,t,n){return(yield ee.http.post("api/gateway/cmdb.instance.PostSearch/object/".concat(e,"/instance/_search"),t,n)).data}));return function(t,n,r){return e.apply(this,arguments)}}(),Te=function(){var e=(0,p.A)((function*(e,t,n){return(yield f.http.get("api/gateway/micro_app.installed_micro_app.GetMenusInfo/api/v1/micro-app/menus/".concat(e),(0,h.A)((0,h.A)({},n),{},{params:t}))).data}));return function(t,n,r){return e.apply(this,arguments)}}(),Ne=n(2659),De=Symbol("appId"),Re=Symbol("menuI18nNamespace"),xe=Symbol("overrideApp");function We(){return(We=(0,p.A)((function*(e,t,n,r){if(e.dynamicItems&&e.itemsResolve){var i,a=e.app[0].appId,o=(0,h.A)((0,h.A)({},t),{},{pendingPermissionsPreCheck:[...t.pendingPermissionsPreCheck,O(e.itemsResolve)]});a!==t.app.id&&(o.overrideApp=window.STANDALONE_MICRO_APPS?e.overrideApp:null===(i=r.getStoryboardByAppId(a))||void 0===i?void 0:i.app,o.appendI18nNamespace=n.get(e));var s=yield r.resolveData((0,h.A)({transform:"items"},e.itemsResolve),o);e.items=s.items}}))).apply(this,arguments)}function Le(){return Le=(0,p.A)((function*(e,t,n){var r=e.find((e=>"inject"!==e.type));if(r){var i=[],a=new Map,o=new WeakMap,s=function*(){if(c.i18n){var e="menu/".concat(c.menuId,"~").concat(c.app[0].appId,"+").concat(c.instanceId);Object.entries(c.i18n).forEach((t=>{var[n,r]=t;Ne.i18n.addResourceBundle(n,e,r)})),o.set(c,e)}};for(var c of e)yield*s();for(var u of(yield Promise.all(e.map((e=>function(e,t,n,r){return We.apply(this,arguments)}(e,t,o,n)))),e)){var p;if(null!==(p=u.items)&&void 0!==p&&p.length)if("inject"===u.type&&u.injectMenuGroupId){var l=a.get(u.injectMenuGroupId);l||(l=[],a.set(u.injectMenuGroupId,l)),l.push(u)}else i.push(u)}return(0,h.A)((0,h.A)({},r),{},{items:i.flatMap((e=>Fe(e.items,e,a,o))),[Re]:o.get(r),[xe]:r.overrideApp})}})),Le.apply(this,arguments)}function Fe(e,t,n,r){return null==e?void 0:e.map((e=>{var i,a=e.groupId&&n.get(e.groupId);return a&&n.delete(e.groupId),(0,h.A)((0,h.A)({},e),{},{children:(null!==(i=Fe(e.children,t,n,r))&&void 0!==i?i:[]).concat(a?a.flatMap((e=>Fe(e.items,e,n,r))):[]),[De]:t.app[0].appId,[Re]:r.get(t),[xe]:t.overrideApp})}))}function Ue(e){e.items=Be(e.items)}function Be(e){return function(e){return(0,l.sortBy)(e,(e=>{var t;return null!==(t=e.sort)&&void 0!==t?t:-1/0}))}(e).map((e=>(0,h.A)((0,h.A)({},e),{},{children:Be(e.children)})))}var qe=n(8422),ze=n(5058),Ge=["children"];function Je(e,t,n,r){if("titleDataSource"in e&&(0,ce.isObject)(e.titleDataSource)&&Object.entries(e.titleDataSource).every((e=>{var[,t]=e;return null===t||""===t}))&&delete e.titleDataSource,"if"in e&&null===e.if&&delete e.if,"to"in e&&e.to&&!(0,ze.isEvaluable)(e.to)){var i=qe.pipes.yaml(e.to);(0,ce.isObject)(i)&&["pathname","search","hash"].some((e=>(0,ce.hasOwnProperty)(i,e)))&&(e.to=i)}var a=n;if(t!==n.app.id){var o,s=window.STANDALONE_MICRO_APPS?e[xe]:null===(o=r.getStoryboardByAppId(t))||void 0===o?void 0:o.app;a=(0,h.A)((0,h.A)({},n),{},{overrideApp:s,appendI18nNamespace:e[Re]})}return r.asyncComputeRealValue(e,a,{ignoreSymbols:!0})}function He(e,t,n){return Promise.all(e.map(function(){var e=(0,p.A)((function*(e){var{children:r}=e,i=(0,_e.A)(e,Ge),[a,o]=yield Promise.all([Je(i,i[De],t,n),r&&(yield He(r,t,n))]);return(0,h.A)((0,h.A)({},a),{},{children:o})}));return function(t){return e.apply(this,arguments)}}()))}var Ve=function(){var e=(0,p.A)((function*(e,t,n,r){return(yield ee.http.get("api/gateway/cmdb.instance.GetDetail/object/".concat(e,"/instance/").concat(t),(0,h.A)((0,h.A)({},r),{},{params:n}))).data}));return function(t,n,r,i){return e.apply(this,arguments)}}(),Ye=new Map;function $e(e){return Ke.apply(this,arguments)}function Ke(){return(Ke=(0,p.A)((function*(e){if(e.title||(0,l.isEmpty)(e.titleDataSource))return e.title;var t=JSON.stringify(e.titleDataSource),n=Ye.get(t);if(void 0!==n)return n;var r,{objectId:i,instanceId:a,attributeId:o}=e.titleDataSource,s=null!=o?o:"name",c=yield Ve(i,a,{fields:s});if("#showKey"===o&&Array.isArray(c[s])){var[u,...p]=c[s];r=p.length>0?"".concat(u,"(").concat(p.join(","),")"):String(u)}else r=String(c[s]);return Ye.set(t,r),r}))).apply(this,arguments)}var Qe=["items","app"],Xe=new Map,Ze=new Map;function et(e){return null==e?void 0:e.filter(N.checkIfOfComputed).map((e=>{var t=et(e.children);return"group"===e.type?{type:"group",title:e.text,childLayout:e.childLayout,items:t,groupId:e.groupId,groupFrom:e.groupFrom}:null!=t&&t.length?{type:"subMenu",childLayout:e.childLayout,title:e.text,icon:e.icon,items:t,defaultExpanded:e.defaultExpanded}:(0,l.omit)(e,["type","items","children"])}))}function tt(e){return Ze.get(e)}function nt(e,t,n){var r=Xe.get(e);return r||(r=function(e,t,n){return rt.apply(this,arguments)}(e,t,n)),r}function rt(){return rt=(0,p.A)((function*(e,t,n){var r=window.STANDALONE_MICRO_APPS?function(e,t,n){var r,i,a,o,s=n.getStoryboardByAppId(t);return(null!==(r=null!==(i=null===(a=s.meta)||void 0===a?void 0:a.injectMenus)&&void 0!==i?i:null===(o=s.meta)||void 0===o?void 0:o.menus)&&void 0!==r?r:[]).filter((t=>t.menuId===e)).map((e=>{var n;return(0,h.A)((0,h.A)({},e),null!==(n=e.app)&&void 0!==n&&null!==(n=n[0])&&void 0!==n&&n.appId?{}:{app:[{appId:t}]})}))}(e,t.app.id,n):t.flags["three-level-menu-layout"]?(yield Te(e,{menuObjectId:"EASYOPS_STORYBOARD_MENU"})).menus:(yield je("EASYOPS_STORYBOARD_MENU",{page:1,page_size:200,fields:{menuId:!0,title:!0,icon:!0,link:!0,titleDataSource:!0,defaultCollapsed:!0,defaultCollapsedBreakpoint:!0,type:!0,injectMenuGroupId:!0,dynamicItems:!0,itemsResolve:!0,items:!0,i18n:!0,"items.children":!0,"app.appId":!0},query:{menuId:{$eq:e},app:{$size:{$gt:0}}}})).list,i=yield function(e,t,n){return Le.apply(this,arguments)}(r,t,n);if(!i)throw new Error("Menu not found: ".concat(e));Ue(i);var{items:a,app:o}=i,s=(0,_e.A)(i,Qe),c=(0,h.A)((0,h.A)({},t),{},{pendingPermissionsPreCheck:[...t.pendingPermissionsPreCheck,O([a,s])]});delete c.tplStateStoreId,delete c.forEachItem,delete c.forEachIndex;var u=o[0].appId,[p,d]=yield Promise.all([Je(s,u,c,n),He(a,c,n)]),f=(0,h.A)((0,h.A)({title:yield $e(p)},(0,l.pick)(p,["icon","link","defaultCollapsed","defaultCollapsedBreakpoint"])),{},{menuItems:et(d)});Ze.set(e,f)})),rt.apply(this,arguments)}var it=[],at=null,ot={maxWaitingTime:5e3,maxLoggedEvents:10};function st(){clearTimeout(at),it.length>ot.maxLoggedEvents?ct():at=setTimeout(ct,ot.maxWaitingTime)}function ct(){if(0!==it.length){var e,t={model:"easyops.FRONTEND_STAT",columns:["_ver","st","et","lt","size","time","traceId","code","duration","page","uid","username","api","type","msg","status","pageId","route","apiCount","maxApiTimeCost","apiSizeCost","pageTitle"],data:it.splice(0,ot.maxLoggedEvents)};n=ot.api,r=t,i=new Blob([JSON.stringify(r)],{type:"application/json"}),window.navigator.sendBeacon(n,i),it.length&&(e=ct,(window.requestIdleCallback||window.requestAnimationFrame||(e=>setTimeout(e,17)))(e))}var n,r,i}function ut(){window.addEventListener("beforeunload",ct,!1)}var pt,lt=!1,dt=null,ft=!0,vt=[];function ht(e){lt||(lt=!0,pt||(pt=function(e,t){return Object.assign(ot,(0,h.A)((0,h.A)({},t),{},{api:e})),{sendOnExit:ut,emit:st}}(e,arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}),pt.sendOnExit()))}var mt=Symbol("HttpAnalytics");function At(e){var t=Math.round(performance.now()),n=Date.now();return e[mt]={st:n,time:Math.round(n/1e3),perfStartTime:t},e}function gt(e,t){return wt(!1,e,t)}function yt(e,t){return wt(!0,e,t)}function wt(e,t,n){var r,i=Math.round(performance.now()),a=Date.now(),{[mt]:o,url:s}=n;if(o&&!(e&&t instanceof ue.HttpAbortError)){var c,u,p;delete n[mt];var l,d,f,v,m,A,y,{st:w,time:b,perfStartTime:S}=o,{userInstanceId:I,username:O}=g();if(e){var P=t instanceof ue.HttpResponseError;(P||t instanceof ue.HttpParseError)&&(({status:m,headers:A}=t.response),P&&(y=t.responseJson))}else({status:m,data:y,headers:A}=t);(0,ce.isObject)(y)&&({code:l,message:d}=y),A instanceof Headers&&(f=A.get("x-b3-traceid"),v=A.get("content-length")),r={st:w,_ver:w,uid:I,username:O,time:b,et:a,page:location.href,duration:i-S,api:s,type:"api",code:null!==(c=l)&&void 0!==c?c:-1,msg:null!==(u=d)&&void 0!==u?u:"",status:m,traceId:null!==(p=f)&&void 0!==p?p:"",size:v?Number(v):-1},dt?it.push((0,h.A)((0,h.A)({},r),{},{type:"apiRequest"},dt)):vt.push(r)}return e?Promise.reject(t):t}function bt(){var e=Math.round(performance.now()),t=Date.now();return vt.length=0,dt=null,function(n){var{status:r,path:i,pageTitle:a}=n;if("ok"!==r)return it.push(...vt),void(vt.length=0);var o=Math.round(performance.now())-e,s=Date.now(),{username:c}=g();(function(e){var t,n,r=(t=URL.createObjectURL(new Blob([])),n=t.substring(t.lastIndexOf("/")+1),URL.revokeObjectURL(t),ft&&(n="88-"+n,ft=!1),n),{lt:i,route:a}=e;for(var o of(dt={lt:i,route:a,pageId:r},it.push((0,h.A)((0,h.A)({},e),{},{pageId:r,apiCount:vt.length,maxApiTimeCost:Math.max(0,...vt.map((e=>e.duration))),size:vt.map((e=>e.size)).filter((e=>e>0)).reduce(((e,t)=>e+t),0)})),vt))it.push((0,h.A)((0,h.A)({},o),dt));vt.length=0,pt.emit()})({type:"page",page:location.href,_ver:t,time:Math.round(t/1e3),st:t,et:s,lt:o,pageTitle:a,username:c,route:i}),window.dispatchEvent(new CustomEvent("route.render",{detail:{renderTime:o}}))}}var St=Object.freeze({checkPermissions:function(){if(!w())return!1;if(g().isAdmin)return!0;for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];for(var r of t)switch(S.get(r)){case"unauthorized":case"undefined":return!1;case void 0:return console.error('Un-checked permission action: "'.concat(r,'", please make sure the permission to check is defined in permissionsPreCheck.')),!1}return!0},preCheckPermissions:function(e){if(w()&&!g().isAdmin)return P((0,d.scanPermissionActionsInStoryboard)(e))},preCheckPermissionsForBrickOrRoute:function(e,t){return I.apply(this,arguments)}}),It=new class{constructor(){(0,k.A)(this,K),(0,M.A)(this,V,void 0),(0,M.A)(this,Y,{sub:new Map,unsub:new Map}),(0,M.A)(this,$,new Map)}subscribe(e,t){var n=JSON.stringify(t);return(0,_.A)(K,this,X).call(this,"sub",e,t,n)}unsubscribe(e){var t=(0,T.A)($,this).get(e);if(!t){var n='The message channel to unsubscribe "'.concat(e,'" is not found');return console.error(n),Promise.reject(new Error(n))}var r=JSON.parse(t),i=(0,_.A)(K,this,X).call(this,"unsub",e,r,t);return(0,T.A)(Y,this).sub.delete(t),i.then((()=>{(0,T.A)($,this).delete(e)})),i}onMessage(e,t){var n=(0,T.A)($,this).get(e),r=!1;(0,C.A)(K,this,Q).onMessage((i=>{n||(n=(0,T.A)($,this).get(e)),n?"MESSAGE.PUSH"===i.event&&function(e,t){var n=JSON.parse(e);return n.system===t.system&&(n.topic===t.topic||"string"==typeof n.topic&&n.topic.includes("*")&&new RegExp("^".concat(n.topic.replace(/([^*]*)\*([^*]*)/g,((e,t,n)=>"".concat((0,l.escapeRegExp)(t),"[^/]*").concat((0,l.escapeRegExp)(n)))),"$")).test(t.topic))}(n,i.payload)&&t(i.payload.message):r||(console.error('Message channel: "'.concat(e,'" not found')),r=!0)}))}onClose(e){(0,C.A)(K,this,Q).onClose(e)}reset(){var e;(0,T.A)(Y,this).sub.clear(),(0,T.A)(Y,this).unsub.clear(),(0,T.A)($,this).clear(),null===(e=(0,T.A)(V,this))||void 0===e||e.reset()}},Ot=function(){var e=(0,N.getV2RuntimeFromDll)();if(e)return Object.freeze((0,l.pick)(e,["authenticate","getAuth","isLoggedIn","logout"]))}()||r}}]);
|
|
3
|
+
//# sourceMappingURL=2252.b1622599.js.map
|