@next-bricks/form-platform 0.4.21 → 0.4.22

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.
@@ -1,3 +1,3 @@
1
- /*! For license information please see 3214.f2dafd01.js.LICENSE.txt */
2
- "use strict";(globalThis.webpackChunk_next_bricks_form_platform=globalThis.webpackChunk_next_bricks_form_platform||[]).push([[3214],{3214:(e,t,n)=>{n.r(t),n.d(t,{analytics:()=>u,auth:()=>mt,checkInstalledApps:()=>r,checkPermissions:()=>ft,flowApi:()=>s,menu:()=>i,messageDispatcher:()=>ht});var o={};n.r(o),n.d(o,{authenticate:()=>m,getAuth:()=>g,isLoggedIn:()=>A,logout:()=>v});var r={};n.r(r),n.d(r,{getCheckedApp:()=>re,preCheckInstalledApps:()=>ne,waitForCheckingApps:()=>oe});var s={};n.r(s),n.d(s,{FLOW_API_PROVIDER:()=>ae,clearCollectWidgetContract:()=>we,clearDebugContract:()=>Se,collectContract:()=>ve,collectDebugContract:()=>ye,collectWidgetContract:()=>Ae,getArgsOfFlowApi:()=>Ee,isFlowApiProvider:()=>Ie,registerFlowApiProvider:()=>le});var i={};n.r(i),n.d(i,{fetchMenuById:()=>Ve,getMenuById:()=>Je});var a={};n.r(a),n.d(a,{onRequest:()=>ct,onResponse:()=>ut,onResponseError:()=>lt});var c={};n.r(c),n.d(c,{create:()=>dt});var u={};n.r(u),n.d(u,{http:()=>a,initialize:()=>it,pageView:()=>c});var l=n(9845),p=n(6330),d=n(6730),f=function(){var e=(0,p.A)((function*(e,t){return(yield d.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)}}();const h={};function m(e){Object.assign(h,{org:e.org,username:e.username,userInstanceId:e.userInstanceId,loginFrom:e.loginFrom,accessRule:e.accessRule,isAdmin:e.isAdmin,csrfToken:e.csrfToken,license:e.license,accessToken:e.accessToken,userShowValue:e.userShowValue})}function g(){return{...h}}function v(){for(const e of Object.keys(h))h[e]=void 0;w.clear(),y.length=0,S.clear()}function A(){return void 0!==h.username}const w=new Map,y=[],S=new Map;function b(e){if(A()&&!g().isAdmin)return I((0,l.scanPermissionActionsInAny)(e))}async function I(e){const t=e.filter((e=>!y.includes(e)));if(0===t.length)return;const n=[],o=[];for(const e of t){const t=w.get(e);t?n.push(t):o.push(e)}if(o.length>0){const e=(async()=>{try{const e=await f({actions:o},{noAbortOnRouteChange:!0});for(const t of e.actions)S.set(t.action,t.authorizationStatus),"undefined"===t.authorizationStatus&&console.error(`Undefined permission action: "${t.action}"`)}catch(e){console.error("Pre-check permissions failed",e)}finally{y.push(...o)}})();for(const t of o)w.set(t,e);n.push(e)}await Promise.all(n)}var E=n(4635),k=n(918),O=n(5536),P=n(2559),M=n(6121),C=n(829),_=n(4946),T=n(1030);const N=1e3,$=5;var R=new WeakMap,D=new WeakMap,j=new WeakMap,W=new WeakMap,L=new WeakMap,x=new WeakMap,U=new WeakMap,B=new WeakSet;class F{constructor(e){(0,E.A)(this,B),(0,k.A)(this,R,void 0),(0,k.A)(this,D,void 0),(0,k.A)(this,j,[]),(0,k.A)(this,W,new Set),(0,k.A)(this,L,new Set),(0,k.A)(this,x,0),(0,k.A)(this,U,!1),(0,M.A)(R,this,e)}send(e){(0,C.A)(D,this)||(0,M.A)(D,this,(0,P.A)(B,this,q).call(this));const t=JSON.stringify(e);(0,C.A)(D,this).readyState===WebSocket.OPEN?(0,C.A)(D,this).send(t):(0,C.A)(j,this).push(t)}onMessage(e){return(0,C.A)(W,this).add(e),()=>{(0,C.A)(W,this).delete(e)}}onClose(e){return(0,C.A)(L,this).add(e),()=>{(0,C.A)(L,this).delete(e)}}reset(){(0,C.A)(j,this).length=0,(0,C.A)(W,this).clear(),(0,C.A)(L,this).clear()}close(){var e;(0,M.A)(U,this,!0),(null===(e=(0,C.A)(D,this))||void 0===e?void 0:e.readyState)===WebSocket.OPEN&&(0,C.A)(D,this).close()}}function q(){console.log("WebSocket connecting ...");const e=new WebSocket((0,C.A)(R,this));let t;return e.addEventListener("open",(n=>{console.log("WebSocket open:",n),t=setTimeout((()=>{t=void 0,(0,M.A)(x,this,0)}),1e3);for(const t of(0,C.A)(j,this))e.send(t);(0,C.A)(j,this).length=0})),e.addEventListener("close",(e=>{(0,C.A)(U,this)||(void 0!==t&&clearTimeout(t),console.log("WebSocket close:",e),1e3!==e.code&&(0,P.A)(B,this,z).call(this))})),e.addEventListener("error",(e=>{console.error("WebSocket error:",e)})),e.addEventListener("message",(e=>{const t=JSON.parse(e.data);for(const e of(0,C.A)(W,this))e(t)})),e}function z(){if((0,C.A)(x,this)>=$){console.error("WebSocket connect retry limit exceeded");for(const e of(0,C.A)(L,this))e();return}const e=Math.pow(2,(0,C.A)(x,this))*N;console.log("WebSocket will reconnect after %d seconds",e/1e3),setTimeout((()=>{var e;(0,M.A)(x,this,(e=(0,C.A)(x,this),++e)),(0,M.A)(D,this,(0,P.A)(B,this,q).call(this))}),e)}var H=new WeakMap,G=new WeakMap,J=new WeakMap,V=new WeakSet;function Y(e){if(!(0,C.A)(H,e)){const t=`${"https:"===location.protocol?"wss:":"ws:"}//${window.location.host}${(0,_.getBasePath)()}api/websocket_service/v1/ws`;(0,M.A)(H,e,new F(t))}return(0,C.A)(H,e)}function K(e,t,n,o){const r=(0,C.A)(G,this)[e].get(o);if(r)return r;const s={event:"sub"===e?"TOPIC.SUB":"TOPIC.UNSUB",payload:n},i=new Promise(((t,o)=>{const r=Q(n),i=(0,O.A)(V,this,Y).onMessage((n=>{const s=n.event===("sub"===e?"TOPIC.SUB_SUCCESS":"TOPIC.UNSUB_SUCCESS"),c=n.event===("sub"===e?"TOPIC.SUB_FAILED":"TOPIC.UNSUB_FAILED");(s||c)&&r===Q(n.payload)&&((s?t:o)(n),i(),a())})),a=(0,O.A)(V,this,Y).onClose((()=>{o({retryCount:$}),i(),a()}));(0,O.A)(V,this,Y).send(s)}));return"sub"===e&&(0,C.A)(J,this).set(t,o),(0,C.A)(G,this)[e].set(o,i),i}function Q(e){const{system:t,topic:n}=e;return JSON.stringify({system:t,topic:n})}var X=n(3496),Z=function(){var e=(0,p.A)((function*(e,t){return(yield X.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)}}();const ee=new Map,te=new Map;function ne(e,t){if(window.STANDALONE_MICRO_APPS&&!window.NO_AUTH_GUARD){const n=function(e){var t;const n={usedArgs:new Set},{customTemplates:o,menus:r}=null!==(t=e.meta)&&void 0!==t?t:{};return(0,l.traverseStoryboardExpressions)([e.routes,o,r],((e,t)=>{(0,l.collectInstalledAppsHasUsage)(n,e,t)}),"INSTALLED_APPS"),[...n.usedArgs]}(e),o=[];for(const e of n)ee.has(e)||t(e)||o.push(e);if(0===o.length)return;const r=Z({query:{appId:{$in:o}},fields:["appId","currentVersion","installStatus"]}).catch((e=>{console.error("Get off site standalone micro-apps failed",e)}));for(const e of o)ee.set(e,r.then((t=>{var n;const o=null==t||null===(n=t.list)||void 0===n?void 0:n.find((t=>t.appId===e)),r=o?{...o,id:e}:void 0;return te.set(e,r),r})))}}async function oe(e){await Promise.all(e.map((e=>ee.get(e))))}function re(e){if(window.STANDALONE_MICRO_APPS)return te.get(e)}var se=n(6511),ie=n(108);const ae="core.provider-flow-api";function ce(e,t){return e.some((e=>e.source===t))}async function ue(e){let{url:t,originalUri:n,method:o="GET",responseWrapper:r=!0,ext_fields:s=[],request:i,isFileType:a,stream:c}=e;const u=["get","delete","head"].includes(o.toLowerCase()),l=a?{responseType:"blob"}:{};let p;for(var d=arguments.length,f=new Array(d>1?d-1:0),h=1;h<d;h++)f[h-1]=arguments[h];if(u){var m,g,v,A;let e,r;var w,y;if(n&&"object"===(null==i?void 0:i.type)&&(null!==(m=null===(g=n.match(/:([^/]+)/g))||void 0===g?void 0:g.length)&&void 0!==m?m:0)===(null!==(v=null===(A=i.fields)||void 0===A?void 0:A.length)&&void 0!==v?v:0)?[r]=f:[e,r]=f,c)return await(0,se.createSSEStream)(ie.http.getUrlWithParams(t,e),{...l,...r,method:o,headers:Object.fromEntries([...new Headers(null!==(w=null===(y=r)||void 0===y?void 0:y.headers)&&void 0!==w?w:{}).entries()])});p=await ie.http.simpleRequest(o,t,{params:e,...l,...r})}else{const e=function(e){if("object"!==(null==e?void 0:e.type))return!1;const t=e=>!(0,T.isEmpty)(e)&&e.some((e=>["file","file[]"].includes(e.type)||t(e.fields)));return t(e.fields)}(i),n=function(e){const t=ce(e,"query"),n=ce(e,"body");for(var o=arguments.length,r=new Array(o>1?o-1:0),s=1;s<o;s++)r[s-1]=arguments[s];if(t){if(n){const[e,t,n]=r;return{data:e,options:{params:t,...n}}}const[e,t]=r;return{data:{},options:{params:e,...t}}}const[i,a]=r;return{data:i,options:a}}(s,...f),r=e?function(e){if(e instanceof FormData)return e;const t=new FormData;for(const[n,o]of Object.entries(e))Array.isArray(o)?o.forEach((e=>{t.append(n,e)})):!(0,T.isObject)(o)||o instanceof Blob||o instanceof Date?t.append(n,o):Object.entries(o).forEach((e=>{let[o,r]=e;t.append(`${n}[${o}]`,r)}));return t}(n.data):n.data;if(c){var S;const{body:e,headers:s}=ie.http.getBodyAndHeaders(r,null===(S=n.options)||void 0===S?void 0:S.headers);return await(0,se.createSSEStream)(t,{...l,...n.options,method:o,headers:Object.fromEntries([...new Headers(null!=s?s:{}).entries()]),body:e})}p=await ie.http.requestWithBody(o,t,r,{...l,...n.options})}return!a&&r?p.data:p}function le(){customElements.define(ae,(0,se.createProviderClass)(ue))}var pe=n(8679),de=function(){var e=(0,p.A)((function*(e,t){return(yield d.http.post("api/contract/single_search",e,t)).data}));return function(t,n){return e.apply(this,arguments)}}();const fe=new Map,he=new Map,me=new Map,ge=(e,t)=>{null==e||e.forEach((e=>{t.set(`${e.namespaceId}.${e.name}`,e)}))};function ve(e){ge(e,fe)}function Ae(e){ge(e,he)}function we(){he.clear()}function ye(e){ge(e,me)}function Se(){me.clear()}const be=new Map;function Ie(e){return e.includes("@")}async function Ee(e,t,n,o){if(!e.includes(":"))throw new Error(`You're using legacy Custom API "${e}" which is dropped in v3, please use Flow API instead`);const r=await async function(e){const[t,n]=e.split("@"),[o,r]=n.split(":"),s=function(e){return fe.get(e)||he.get(e)||me.get(e)}(`${t}.${o}`);if(s)return{name:s.name,namespace:s.namespaceId,serviceName:s.serviceName,version:s.version,contract:{endpoint:s.endpoint,response:s.response,request:s.request}};let i=be.get(e);return i||(i=async function(e,t,n){var o;const{contractData:r}=await de({contractName:`${e}.${t}`,version:n});return r?{name:r.name,namespace:null===(o=r.namespace)||void 0===o||null===(o=o[0])||void 0===o?void 0:o.name,serviceName:r.serviceName,version:r.version,contract:{endpoint:r.endpoint,response:r.response,request:r.request}}:null}(t,o,r),be.set(e,i)),i}(e);if(!r)throw new ke(`Flow API not found: "${e}"`);const s=function(e,t){var n,o;const r="string"==typeof t.contract?pe.safeLoad(t.contract,{schema:pe.JSON_SCHEMA,json:!0}):t.contract,{uri:s,method:i="GET",ext_fields:a}=null!==(n=null==r?void 0:r.endpoint)&&void 0!==n?n:{},c=!(null==r||!r.response)&&!1!==r.response.wrapper;if(!s)throw new Error(`Missing endpoint.uri in contract of provider "${e}"`);return{uri:s,method:"list"===i.toLowerCase()?"get":i,ext_fields:a,name:t.name,namespace:t.namespace,serviceName:t.serviceName,version:t.version,isFileType:"file"===(null==r||null===(o=r.response)||void 0===o?void 0:o.type),responseWrapper:c,request:null==r?void 0:r.request}}(e,r);return function(e,t,n,o){let{uri:r,method:s,ext_fields:i,name:a,namespace:c,serviceName:u,responseWrapper:l,version:p,isFileType:d,request:f}=e;const h="saveAs"===n;let m;h&&(m=t.shift());const{url:g,args:v}=function(e,t,n,o,r,s){const i=s?"logic.api.gateway"===r||null!=r&&r.startsWith("logic.api.gateway.")?"":r?`api/gateway/${r}`:`api/gateway/${o}.${n}@${s}`:`api/gateway/api_service.${o}.${n}`,a=t.slice(),c=e.replace(/:([^/]+)/g,(()=>a.shift()));return{url:i?i+c:c.replace(/^\//,""),args:a}}(r,t,a,c,u,p);return[...h?[m]:[],{url:g,originalUri:r,method:s,ext_fields:i,responseWrapper:l,request:f,isFileType:d,stream:o},...v]}(s,t,n,o)}class ke extends Error{constructor(e){super(e),this.name="FlowApiNotFoundError",Error.captureStackTrace&&Error.captureStackTrace(this,ke)}}var Oe=n(3733),Pe=n(9740),Me=function(){var e=(0,p.A)((function*(e,t,n){return(yield d.http.get("api/gateway/micro_app.installed_micro_app.GetMenusInfo/api/v1/micro-app/menus/".concat(e),(0,Pe.A)((0,Pe.A)({},n),{},{params:t}))).data}));return function(t,n,o){return e.apply(this,arguments)}}(),Ce=n(3551);const _e=Symbol("appId"),Te=Symbol("menuI18nNamespace"),Ne=Symbol("overrideApp");async function $e(e,t,n){const o=e.find((e=>"inject"!==e.type));if(!o)return;const r=[],s=new Map,i=new WeakMap;for(const t of e)if(t.i18n){const e=`menu/${t.menuId}~${t.app[0].appId}+${t.instanceId}`;Object.entries(t.i18n).forEach((t=>{let[n,o]=t;Ce.i18n.addResourceBundle(n,e,o)})),i.set(t,e)}await Promise.all(e.map((e=>async function(e,t,n,o){if(e.dynamicItems&&e.itemsResolve){const s=e.app[0].appId,i={...t,pendingPermissionsPreCheck:[...t.pendingPermissionsPreCheck,b(e.itemsResolve)]};var r;s!==t.app.id&&(i.overrideApp=window.STANDALONE_MICRO_APPS?e.overrideApp:null===(r=o.getStoryboardByAppId(s))||void 0===r?void 0:r.app,i.appendI18nNamespace=n.get(e));const a=await o.resolveData({transform:"items",...e.itemsResolve},i);e.items=a.items}}(e,t,i,n))));for(const t of e){var a;if(null!==(a=t.items)&&void 0!==a&&a.length)if("inject"===t.type&&t.injectMenuGroupId){let e=s.get(t.injectMenuGroupId);e||(e=[],s.set(t.injectMenuGroupId,e)),e.push(t)}else r.push(t)}return{...o,items:r.flatMap((e=>Re(e.items,e,s,i))),[Te]:i.get(o),[Ne]:o.overrideApp}}function Re(e,t,n,o){return null==e?void 0:e.map((e=>{var r;const s=e.groupId&&n.get(e.groupId);return s&&n.delete(e.groupId),{...e,children:(null!==(r=Re(e.children,t,n,o))&&void 0!==r?r:[]).concat(s?s.flatMap((e=>Re(e.items,e,n,o))):[]),[_e]:t.app[0].appId,[Te]:o.get(t),[Ne]:t.overrideApp}}))}function De(e){e.items=je(e.items)}function je(e){return function(e){return(0,T.sortBy)(e,(e=>{var t;return null!==(t=e.sort)&&void 0!==t?t:-1/0}))}(e).map((e=>({...e,children:je(e.children)})))}var We=n(1744),Le=n(8395);function xe(e,t,n,o){if("titleDataSource"in e&&(0,se.isObject)(e.titleDataSource)&&Object.entries(e.titleDataSource).every((e=>{let[,t]=e;return null===t||""===t}))&&delete e.titleDataSource,"if"in e&&null===e.if&&delete e.if,"to"in e&&e.to&&!(0,Le.isEvaluable)(e.to)){const t=We.pipes.yaml(e.to);(0,se.isObject)(t)&&["pathname","search","hash"].some((e=>(0,se.hasOwnProperty)(t,e)))&&(e.to=t)}let r=n;if(t!==n.app.id){var s;const i=window.STANDALONE_MICRO_APPS?e[Ne]:null===(s=o.getStoryboardByAppId(t))||void 0===s?void 0:s.app;r={...n,overrideApp:i,appendI18nNamespace:e[Te]}}return o.asyncComputeRealValue(e,r,{ignoreSymbols:!0})}function Ue(e,t,n){return Promise.all(e.map((async e=>{let{children:o,...r}=e;const[s,i]=await Promise.all([xe(r,r[_e],t,n),o&&await Ue(o,t,n)]);return{...s,children:i}})))}var Be=function(){var e=(0,p.A)((function*(e,t,n,o){return(yield X.http.get("api/gateway/cmdb.instance.GetDetail/object/".concat(e,"/instance/").concat(t),(0,Pe.A)((0,Pe.A)({},o),{},{params:n}))).data}));return function(t,n,o,r){return e.apply(this,arguments)}}();const Fe=new Map;async function qe(e){if(e.title||(0,T.isEmpty)(e.titleDataSource))return e.title;const t=JSON.stringify(e.titleDataSource),n=Fe.get(t);if(void 0!==n)return n;const{objectId:o,instanceId:r,attributeId:s}=e.titleDataSource,i=null!=s?s:"name",a=await Be(o,r,{fields:i});let c;if("#showKey"===s&&Array.isArray(a[i])){const[e,...t]=a[i];c=t.length>0?`${e}(${t.join(",")})`:String(e)}else c=String(a[i]);return Fe.set(t,c),c}const ze=new Map,He=new Map;function Ge(e){return null==e?void 0:e.filter(_.checkIfOfComputed).map((e=>{const t=Ge(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,T.omit)(e,["type","items","children"])}))}function Je(e){return He.get(e)}function Ve(e,t,n){let o=ze.get(e);return o||(o=async function(e,t,n){const o=window.STANDALONE_MICRO_APPS?function(e,t,n){var o,r,s,i;const a=n.getStoryboardByAppId(t);return(null!==(o=null!==(r=null===(s=a.meta)||void 0===s?void 0:s.injectMenus)&&void 0!==r?r:null===(i=a.meta)||void 0===i?void 0:i.menus)&&void 0!==o?o:[]).filter((t=>t.menuId===e)).map((e=>{var n;return{...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"]?(await Me(e,{menuObjectId:"EASYOPS_STORYBOARD_MENU"})).menus:(await(0,Oe.n)("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,r=await $e(o,t,n);if(!r)throw new Error(`Menu not found: ${e}`);De(r);const{items:s,app:i,...a}=r,c={...t,pendingPermissionsPreCheck:[...t.pendingPermissionsPreCheck,b([s,a])]};delete c.tplStateStoreId,delete c.forEachItem,delete c.forEachIndex,delete c.forEachSize;const u=i[0].appId,[l,p]=await Promise.all([xe(a,u,c,n),Ue(s,c,n)]),d={title:await qe(l),...(0,T.pick)(l,["icon","link","defaultCollapsed","defaultCollapsedBreakpoint"]),menuItems:Ge(p)};He.set(e,d)}(e,t,n)),o}const Ye=[];let Ke=null;const Qe={maxWaitingTime:5e3,maxLoggedEvents:10};function Xe(){clearTimeout(Ke),Ye.length>Qe.maxLoggedEvents?Ze():Ke=setTimeout(Ze,Qe.maxWaitingTime)}function Ze(){if(0===Ye.length)return;const e={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:Ye.splice(0,Qe.maxLoggedEvents)};var t;!function(e,t){const n=new Blob([JSON.stringify(t)],{type:"application/json"});window.navigator.sendBeacon(e,n)}(Qe.api,e),Ye.length&&(t=Ze,(window.requestIdleCallback||window.requestAnimationFrame||(e=>setTimeout(e,17)))(t))}function et(){window.addEventListener("beforeunload",Ze,!1)}let tt,nt=!1,ot=null,rt=!0;const st=[];function it(e){nt||(nt=!0,tt||(tt=function(e,t){return Object.assign(Qe,{...t,api:e}),{sendOnExit:et,emit:Xe}}(e,arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}),tt.sendOnExit()))}const at=Symbol("HttpAnalytics");function ct(e){const t=Math.round(performance.now()),n=Date.now();return e[at]={st:n,time:Math.round(n/1e3),perfStartTime:t},e}function ut(e,t){return pt(!1,e,t)}function lt(e,t){return pt(!0,e,t)}function pt(e,t,n){const o=Math.round(performance.now()),r=Date.now(),{[at]:s,url:i}=n;if(s&&!(e&&t instanceof ie.HttpAbortError)){var a,c,u;delete n[at];const{st:p,time:d,perfStartTime:f}=s,{userInstanceId:h,username:m}=g();let v,A,w,y,S,b,I;if(e){const e=t instanceof ie.HttpResponseError;(e||t instanceof ie.HttpParseError)&&(({status:S,headers:b}=t.response),e&&(I=t.responseJson))}else({status:S,data:I,headers:b}=t);(0,se.isObject)(I)&&({code:v,message:A}=I),b instanceof Headers&&(w=b.get("x-b3-traceid"),y=b.get("content-length")),l={st:p,_ver:p,uid:h,username:m,time:d,et:r,page:location.href,duration:o-f,api:i,type:"api",code:null!==(a=v)&&void 0!==a?a:-1,msg:null!==(c=A)&&void 0!==c?c:"",status:S,traceId:null!==(u=w)&&void 0!==u?u:"",size:y?Number(y):-1},ot?Ye.push({...l,type:"apiRequest",...ot}):st.push(l)}var l;return e?Promise.reject(t):t}function dt(){const e=Math.round(performance.now()),t=Date.now();return st.length=0,ot=null,function(n){let{status:o,path:r,pageTitle:s}=n;if("ok"!==o)return Ye.push(...st),void(st.length=0);const i=Math.round(performance.now())-e,a=Date.now(),{username:c}=g();(function(e){const t=function(){const e=URL.createObjectURL(new Blob([]));let t=e.substring(e.lastIndexOf("/")+1);return URL.revokeObjectURL(e),rt&&(t="88-"+t,rt=!1),t}(),{lt:n,route:o}=e;ot={lt:n,route:o,pageId:t},Ye.push({...e,pageId:t,apiCount:st.length,maxApiTimeCost:Math.max(0,...st.map((e=>e.duration))),size:st.map((e=>e.size)).filter((e=>e>0)).reduce(((e,t)=>e+t),0)});for(const e of st)Ye.push({...e,...ot});st.length=0,tt.emit()})({type:"page",page:location.href,_ver:t,time:Math.round(t/1e3),st:t,et:a,lt:i,pageTitle:s,username:c,route:r}),window.dispatchEvent(new CustomEvent("route.render",{detail:{renderTime:i}}))}}const ft=Object.freeze({checkPermissions:function(){if(!A())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(const e of t)switch(S.get(e)){case"unauthorized":case"undefined":return!1;case void 0:return console.error(`Un-checked permission action: "${e}", please make sure the permission to check is defined in permissionsPreCheck.`),!1}return!0},preCheckPermissions:function(e){if(A()&&!g().isAdmin)return I((0,l.scanPermissionActionsInStoryboard)(e))},preCheckPermissionsForBrickOrRoute:async function(e,t){if(A()&&!g().isAdmin&&Array.isArray(e.permissionsPreCheck))return I(await t(e.permissionsPreCheck))}}),ht=new class{constructor(){(0,E.A)(this,V),(0,k.A)(this,H,void 0),(0,k.A)(this,G,{sub:new Map,unsub:new Map}),(0,k.A)(this,J,new Map)}subscribe(e,t){const n=JSON.stringify(t);return(0,P.A)(V,this,K).call(this,"sub",e,t,n)}unsubscribe(e){const t=(0,C.A)(J,this).get(e);if(!t){const t=`The message channel to unsubscribe "${e}" is not found`;return console.error(t),Promise.reject(new Error(t))}const n=JSON.parse(t),o=(0,P.A)(V,this,K).call(this,"unsub",e,n,t);return(0,C.A)(G,this).sub.delete(t),o.then((()=>{(0,C.A)(J,this).delete(e)})),o}onMessage(e,t){let n=(0,C.A)(J,this).get(e),o=!1;return(0,O.A)(V,this,Y).onMessage((r=>{n||(n=(0,C.A)(J,this).get(e)),n?"MESSAGE.PUSH"===r.event&&function(e,t){const n=JSON.parse(e);return n.system===t.system&&(n.topic===t.topic||"string"==typeof n.topic&&n.topic.includes("*")&&new RegExp(`^${n.topic.replace(/([^*]*)\*([^*]*)/g,((e,t,n)=>`${(0,T.escapeRegExp)(t)}[^/]*${(0,T.escapeRegExp)(n)}`))}$`).test(t.topic))}(n,r.payload)&&t(r.payload.message):o||(console.error(`Message channel: "${e}" not found`),o=!0)}))}onClose(e){return(0,O.A)(V,this,Y).onClose(e)}reset(){var e;(0,C.A)(G,this).sub.clear(),(0,C.A)(G,this).unsub.clear(),(0,C.A)(J,this).clear(),null===(e=(0,C.A)(H,this))||void 0===e||e.reset()}},mt=function(){const e=(0,_.getV2RuntimeFromDll)();if(e)return Object.freeze((0,T.pick)(e,["authenticate","getAuth","isLoggedIn","logout"]))}()||o}}]);
3
- //# sourceMappingURL=3214.f2dafd01.js.map
1
+ /*! For license information please see 3214.ffc7ec11.js.LICENSE.txt */
2
+ "use strict";(globalThis.webpackChunk_next_bricks_form_platform=globalThis.webpackChunk_next_bricks_form_platform||[]).push([[3214],{3214:(e,t,n)=>{n.r(t),n.d(t,{analytics:()=>u,auth:()=>mt,checkInstalledApps:()=>r,checkPermissions:()=>ft,flowApi:()=>s,menu:()=>i,messageDispatcher:()=>ht});var o={};n.r(o),n.d(o,{authenticate:()=>m,getAuth:()=>g,isLoggedIn:()=>A,logout:()=>v});var r={};n.r(r),n.d(r,{getCheckedApp:()=>re,preCheckInstalledApps:()=>ne,waitForCheckingApps:()=>oe});var s={};n.r(s),n.d(s,{FLOW_API_PROVIDER:()=>ae,clearCollectWidgetContract:()=>we,clearDebugContract:()=>Se,collectContract:()=>ve,collectDebugContract:()=>ye,collectWidgetContract:()=>Ae,getArgsOfFlowApi:()=>Ee,isFlowApiProvider:()=>Ie,registerFlowApiProvider:()=>le});var i={};n.r(i),n.d(i,{fetchMenuById:()=>Ve,getMenuById:()=>Je});var a={};n.r(a),n.d(a,{onRequest:()=>ct,onResponse:()=>ut,onResponseError:()=>lt});var c={};n.r(c),n.d(c,{create:()=>dt});var u={};n.r(u),n.d(u,{http:()=>a,initialize:()=>it,pageView:()=>c});var l=n(9845),p=n(6330),d=n(6730),f=function(){var e=(0,p.A)((function*(e,t){return(yield d.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)}}();const h={};function m(e){Object.assign(h,{org:e.org,username:e.username,userInstanceId:e.userInstanceId,loginFrom:e.loginFrom,accessRule:e.accessRule,isAdmin:e.isAdmin,csrfToken:e.csrfToken,license:e.license,accessToken:e.accessToken,userShowValue:e.userShowValue})}function g(){return{...h}}function v(){for(const e of Object.keys(h))h[e]=void 0;w.clear(),y.length=0,S.clear()}function A(){return void 0!==h.username}const w=new Map,y=[],S=new Map;function b(e){if(A()&&!g().isAdmin)return I((0,l.scanPermissionActionsInAny)(e))}async function I(e){const t=e.filter((e=>!y.includes(e)));if(0===t.length)return;const n=[],o=[];for(const e of t){const t=w.get(e);t?n.push(t):o.push(e)}if(o.length>0){const e=(async()=>{try{const e=await f({actions:o},{noAbortOnRouteChange:!0});for(const t of e.actions)S.set(t.action,t.authorizationStatus),"undefined"===t.authorizationStatus&&console.error(`Undefined permission action: "${t.action}"`)}catch(e){console.error("Pre-check permissions failed",e)}finally{y.push(...o)}})();for(const t of o)w.set(t,e);n.push(e)}await Promise.all(n)}var E=n(4635),k=n(918),O=n(5536),P=n(2559),M=n(6121),C=n(829),_=n(4899),T=n(1030);const N=1e3,$=5;var R=new WeakMap,D=new WeakMap,j=new WeakMap,W=new WeakMap,L=new WeakMap,x=new WeakMap,U=new WeakMap,B=new WeakSet;class F{constructor(e){(0,E.A)(this,B),(0,k.A)(this,R,void 0),(0,k.A)(this,D,void 0),(0,k.A)(this,j,[]),(0,k.A)(this,W,new Set),(0,k.A)(this,L,new Set),(0,k.A)(this,x,0),(0,k.A)(this,U,!1),(0,M.A)(R,this,e)}send(e){(0,C.A)(D,this)||(0,M.A)(D,this,(0,P.A)(B,this,q).call(this));const t=JSON.stringify(e);(0,C.A)(D,this).readyState===WebSocket.OPEN?(0,C.A)(D,this).send(t):(0,C.A)(j,this).push(t)}onMessage(e){return(0,C.A)(W,this).add(e),()=>{(0,C.A)(W,this).delete(e)}}onClose(e){return(0,C.A)(L,this).add(e),()=>{(0,C.A)(L,this).delete(e)}}reset(){(0,C.A)(j,this).length=0,(0,C.A)(W,this).clear(),(0,C.A)(L,this).clear()}close(){var e;(0,M.A)(U,this,!0),(null===(e=(0,C.A)(D,this))||void 0===e?void 0:e.readyState)===WebSocket.OPEN&&(0,C.A)(D,this).close()}}function q(){console.log("WebSocket connecting ...");const e=new WebSocket((0,C.A)(R,this));let t;return e.addEventListener("open",(n=>{console.log("WebSocket open:",n),t=setTimeout((()=>{t=void 0,(0,M.A)(x,this,0)}),1e3);for(const t of(0,C.A)(j,this))e.send(t);(0,C.A)(j,this).length=0})),e.addEventListener("close",(e=>{(0,C.A)(U,this)||(void 0!==t&&clearTimeout(t),console.log("WebSocket close:",e),1e3!==e.code&&(0,P.A)(B,this,z).call(this))})),e.addEventListener("error",(e=>{console.error("WebSocket error:",e)})),e.addEventListener("message",(e=>{const t=JSON.parse(e.data);for(const e of(0,C.A)(W,this))e(t)})),e}function z(){if((0,C.A)(x,this)>=$){console.error("WebSocket connect retry limit exceeded");for(const e of(0,C.A)(L,this))e();return}const e=Math.pow(2,(0,C.A)(x,this))*N;console.log("WebSocket will reconnect after %d seconds",e/1e3),setTimeout((()=>{var e;(0,M.A)(x,this,(e=(0,C.A)(x,this),++e)),(0,M.A)(D,this,(0,P.A)(B,this,q).call(this))}),e)}var H=new WeakMap,G=new WeakMap,J=new WeakMap,V=new WeakSet;function Y(e){if(!(0,C.A)(H,e)){const t=`${"https:"===location.protocol?"wss:":"ws:"}//${window.location.host}${(0,_.getBasePath)()}api/websocket_service/v1/ws`;(0,M.A)(H,e,new F(t))}return(0,C.A)(H,e)}function K(e,t,n,o){const r=(0,C.A)(G,this)[e].get(o);if(r)return r;const s={event:"sub"===e?"TOPIC.SUB":"TOPIC.UNSUB",payload:n},i=new Promise(((t,o)=>{const r=Q(n),i=(0,O.A)(V,this,Y).onMessage((n=>{const s=n.event===("sub"===e?"TOPIC.SUB_SUCCESS":"TOPIC.UNSUB_SUCCESS"),c=n.event===("sub"===e?"TOPIC.SUB_FAILED":"TOPIC.UNSUB_FAILED");(s||c)&&r===Q(n.payload)&&((s?t:o)(n),i(),a())})),a=(0,O.A)(V,this,Y).onClose((()=>{o({retryCount:$}),i(),a()}));(0,O.A)(V,this,Y).send(s)}));return"sub"===e&&(0,C.A)(J,this).set(t,o),(0,C.A)(G,this)[e].set(o,i),i}function Q(e){const{system:t,topic:n}=e;return JSON.stringify({system:t,topic:n})}var X=n(3496),Z=function(){var e=(0,p.A)((function*(e,t){return(yield X.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)}}();const ee=new Map,te=new Map;function ne(e,t){if(window.STANDALONE_MICRO_APPS&&!window.NO_AUTH_GUARD){const n=function(e){var t;const n={usedArgs:new Set},{customTemplates:o,menus:r}=null!==(t=e.meta)&&void 0!==t?t:{};return(0,l.traverseStoryboardExpressions)([e.routes,o,r],((e,t)=>{(0,l.collectInstalledAppsHasUsage)(n,e,t)}),"INSTALLED_APPS"),[...n.usedArgs]}(e),o=[];for(const e of n)ee.has(e)||t(e)||o.push(e);if(0===o.length)return;const r=Z({query:{appId:{$in:o}},fields:["appId","currentVersion","installStatus"]}).catch((e=>{console.error("Get off site standalone micro-apps failed",e)}));for(const e of o)ee.set(e,r.then((t=>{var n;const o=null==t||null===(n=t.list)||void 0===n?void 0:n.find((t=>t.appId===e)),r=o?{...o,id:e}:void 0;return te.set(e,r),r})))}}async function oe(e){await Promise.all(e.map((e=>ee.get(e))))}function re(e){if(window.STANDALONE_MICRO_APPS)return te.get(e)}var se=n(6511),ie=n(108);const ae="core.provider-flow-api";function ce(e,t){return e.some((e=>e.source===t))}async function ue(e){let{url:t,originalUri:n,method:o="GET",responseWrapper:r=!0,ext_fields:s=[],request:i,isFileType:a,stream:c}=e;const u=["get","delete","head"].includes(o.toLowerCase()),l=a?{responseType:"blob"}:{};let p;for(var d=arguments.length,f=new Array(d>1?d-1:0),h=1;h<d;h++)f[h-1]=arguments[h];if(u){var m,g,v,A;let e,r;var w,y;if(n&&"object"===(null==i?void 0:i.type)&&(null!==(m=null===(g=n.match(/:([^/]+)/g))||void 0===g?void 0:g.length)&&void 0!==m?m:0)===(null!==(v=null===(A=i.fields)||void 0===A?void 0:A.length)&&void 0!==v?v:0)?[r]=f:[e,r]=f,c)return await(0,se.createSSEStream)(ie.http.getUrlWithParams(t,e),{...l,...r,method:o,headers:Object.fromEntries([...new Headers(null!==(w=null===(y=r)||void 0===y?void 0:y.headers)&&void 0!==w?w:{}).entries()])});p=await ie.http.simpleRequest(o,t,{params:e,...l,...r})}else{const e=function(e){if("object"!==(null==e?void 0:e.type))return!1;const t=e=>!(0,T.isEmpty)(e)&&e.some((e=>["file","file[]"].includes(e.type)||t(e.fields)));return t(e.fields)}(i),n=function(e){const t=ce(e,"query"),n=ce(e,"body");for(var o=arguments.length,r=new Array(o>1?o-1:0),s=1;s<o;s++)r[s-1]=arguments[s];if(t){if(n){const[e,t,n]=r;return{data:e,options:{params:t,...n}}}const[e,t]=r;return{data:{},options:{params:e,...t}}}const[i,a]=r;return{data:i,options:a}}(s,...f),r=e?function(e){if(e instanceof FormData)return e;const t=new FormData;for(const[n,o]of Object.entries(e))Array.isArray(o)?o.forEach((e=>{t.append(n,e)})):!(0,T.isObject)(o)||o instanceof Blob||o instanceof Date?t.append(n,o):Object.entries(o).forEach((e=>{let[o,r]=e;t.append(`${n}[${o}]`,r)}));return t}(n.data):n.data;if(c){var S;const{body:e,headers:s}=ie.http.getBodyAndHeaders(r,null===(S=n.options)||void 0===S?void 0:S.headers);return await(0,se.createSSEStream)(t,{...l,...n.options,method:o,headers:Object.fromEntries([...new Headers(null!=s?s:{}).entries()]),body:e})}p=await ie.http.requestWithBody(o,t,r,{...l,...n.options})}return!a&&r?p.data:p}function le(){customElements.define(ae,(0,se.createProviderClass)(ue))}var pe=n(8679),de=function(){var e=(0,p.A)((function*(e,t){return(yield d.http.post("api/contract/single_search",e,t)).data}));return function(t,n){return e.apply(this,arguments)}}();const fe=new Map,he=new Map,me=new Map,ge=(e,t)=>{null==e||e.forEach((e=>{t.set(`${e.namespaceId}.${e.name}`,e)}))};function ve(e){ge(e,fe)}function Ae(e){ge(e,he)}function we(){he.clear()}function ye(e){ge(e,me)}function Se(){me.clear()}const be=new Map;function Ie(e){return e.includes("@")}async function Ee(e,t,n,o){if(!e.includes(":"))throw new Error(`You're using legacy Custom API "${e}" which is dropped in v3, please use Flow API instead`);const r=await async function(e){const[t,n]=e.split("@"),[o,r]=n.split(":"),s=function(e){return fe.get(e)||he.get(e)||me.get(e)}(`${t}.${o}`);if(s)return{name:s.name,namespace:s.namespaceId,serviceName:s.serviceName,version:s.version,contract:{endpoint:s.endpoint,response:s.response,request:s.request}};let i=be.get(e);return i||(i=async function(e,t,n){var o;const{contractData:r}=await de({contractName:`${e}.${t}`,version:n});return r?{name:r.name,namespace:null===(o=r.namespace)||void 0===o||null===(o=o[0])||void 0===o?void 0:o.name,serviceName:r.serviceName,version:r.version,contract:{endpoint:r.endpoint,response:r.response,request:r.request}}:null}(t,o,r),be.set(e,i)),i}(e);if(!r)throw new ke(`Flow API not found: "${e}"`);const s=function(e,t){var n,o;const r="string"==typeof t.contract?pe.safeLoad(t.contract,{schema:pe.JSON_SCHEMA,json:!0}):t.contract,{uri:s,method:i="GET",ext_fields:a}=null!==(n=null==r?void 0:r.endpoint)&&void 0!==n?n:{},c=!(null==r||!r.response)&&!1!==r.response.wrapper;if(!s)throw new Error(`Missing endpoint.uri in contract of provider "${e}"`);return{uri:s,method:"list"===i.toLowerCase()?"get":i,ext_fields:a,name:t.name,namespace:t.namespace,serviceName:t.serviceName,version:t.version,isFileType:"file"===(null==r||null===(o=r.response)||void 0===o?void 0:o.type),responseWrapper:c,request:null==r?void 0:r.request}}(e,r);return function(e,t,n,o){let{uri:r,method:s,ext_fields:i,name:a,namespace:c,serviceName:u,responseWrapper:l,version:p,isFileType:d,request:f}=e;const h="saveAs"===n;let m;h&&(m=t.shift());const{url:g,args:v}=function(e,t,n,o,r,s){const i=s?"logic.api.gateway"===r||null!=r&&r.startsWith("logic.api.gateway.")?"":r?`api/gateway/${r}`:`api/gateway/${o}.${n}@${s}`:`api/gateway/api_service.${o}.${n}`,a=t.slice(),c=e.replace(/:([^/]+)/g,(()=>a.shift()));return{url:i?i+c:c.replace(/^\//,""),args:a}}(r,t,a,c,u,p);return[...h?[m]:[],{url:g,originalUri:r,method:s,ext_fields:i,responseWrapper:l,request:f,isFileType:d,stream:o},...v]}(s,t,n,o)}class ke extends Error{constructor(e){super(e),this.name="FlowApiNotFoundError",Error.captureStackTrace&&Error.captureStackTrace(this,ke)}}var Oe=n(3733),Pe=n(9740),Me=function(){var e=(0,p.A)((function*(e,t,n){return(yield d.http.get("api/gateway/micro_app.installed_micro_app.GetMenusInfo/api/v1/micro-app/menus/".concat(e),(0,Pe.A)((0,Pe.A)({},n),{},{params:t}))).data}));return function(t,n,o){return e.apply(this,arguments)}}(),Ce=n(3551);const _e=Symbol("appId"),Te=Symbol("menuI18nNamespace"),Ne=Symbol("overrideApp");async function $e(e,t,n){const o=e.find((e=>"inject"!==e.type));if(!o)return;const r=[],s=new Map,i=new WeakMap;for(const t of e)if(t.i18n){const e=`menu/${t.menuId}~${t.app[0].appId}+${t.instanceId}`;Object.entries(t.i18n).forEach((t=>{let[n,o]=t;Ce.i18n.addResourceBundle(n,e,o)})),i.set(t,e)}await Promise.all(e.map((e=>async function(e,t,n,o){if(e.dynamicItems&&e.itemsResolve){const s=e.app[0].appId,i={...t,pendingPermissionsPreCheck:[...t.pendingPermissionsPreCheck,b(e.itemsResolve)]};var r;s!==t.app.id&&(i.overrideApp=window.STANDALONE_MICRO_APPS?e.overrideApp:null===(r=o.getStoryboardByAppId(s))||void 0===r?void 0:r.app,i.appendI18nNamespace=n.get(e));const a=await o.resolveData({transform:"items",...e.itemsResolve},i);e.items=a.items}}(e,t,i,n))));for(const t of e){var a;if(null!==(a=t.items)&&void 0!==a&&a.length)if("inject"===t.type&&t.injectMenuGroupId){let e=s.get(t.injectMenuGroupId);e||(e=[],s.set(t.injectMenuGroupId,e)),e.push(t)}else r.push(t)}return{...o,items:r.flatMap((e=>Re(e.items,e,s,i))),[Te]:i.get(o),[Ne]:o.overrideApp}}function Re(e,t,n,o){return null==e?void 0:e.map((e=>{var r;const s=e.groupId&&n.get(e.groupId);return s&&n.delete(e.groupId),{...e,children:(null!==(r=Re(e.children,t,n,o))&&void 0!==r?r:[]).concat(s?s.flatMap((e=>Re(e.items,e,n,o))):[]),[_e]:t.app[0].appId,[Te]:o.get(t),[Ne]:t.overrideApp}}))}function De(e){e.items=je(e.items)}function je(e){return function(e){return(0,T.sortBy)(e,(e=>{var t;return null!==(t=e.sort)&&void 0!==t?t:-1/0}))}(e).map((e=>({...e,children:je(e.children)})))}var We=n(1744),Le=n(8395);function xe(e,t,n,o){if("titleDataSource"in e&&(0,se.isObject)(e.titleDataSource)&&Object.entries(e.titleDataSource).every((e=>{let[,t]=e;return null===t||""===t}))&&delete e.titleDataSource,"if"in e&&null===e.if&&delete e.if,"to"in e&&e.to&&!(0,Le.isEvaluable)(e.to)){const t=We.pipes.yaml(e.to);(0,se.isObject)(t)&&["pathname","search","hash"].some((e=>(0,se.hasOwnProperty)(t,e)))&&(e.to=t)}let r=n;if(t!==n.app.id){var s;const i=window.STANDALONE_MICRO_APPS?e[Ne]:null===(s=o.getStoryboardByAppId(t))||void 0===s?void 0:s.app;r={...n,overrideApp:i,appendI18nNamespace:e[Te]}}return o.asyncComputeRealValue(e,r,{ignoreSymbols:!0})}function Ue(e,t,n){return Promise.all(e.map((async e=>{let{children:o,...r}=e;const[s,i]=await Promise.all([xe(r,r[_e],t,n),o&&await Ue(o,t,n)]);return{...s,children:i}})))}var Be=function(){var e=(0,p.A)((function*(e,t,n,o){return(yield X.http.get("api/gateway/cmdb.instance.GetDetail/object/".concat(e,"/instance/").concat(t),(0,Pe.A)((0,Pe.A)({},o),{},{params:n}))).data}));return function(t,n,o,r){return e.apply(this,arguments)}}();const Fe=new Map;async function qe(e){if(e.title||(0,T.isEmpty)(e.titleDataSource))return e.title;const t=JSON.stringify(e.titleDataSource),n=Fe.get(t);if(void 0!==n)return n;const{objectId:o,instanceId:r,attributeId:s}=e.titleDataSource,i=null!=s?s:"name",a=await Be(o,r,{fields:i});let c;if("#showKey"===s&&Array.isArray(a[i])){const[e,...t]=a[i];c=t.length>0?`${e}(${t.join(",")})`:String(e)}else c=String(a[i]);return Fe.set(t,c),c}const ze=new Map,He=new Map;function Ge(e){return null==e?void 0:e.filter(_.checkIfOfComputed).map((e=>{const t=Ge(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,T.omit)(e,["type","items","children"])}))}function Je(e){return He.get(e)}function Ve(e,t,n){let o=ze.get(e);return o||(o=async function(e,t,n){const o=window.STANDALONE_MICRO_APPS?function(e,t,n){var o,r,s,i;const a=n.getStoryboardByAppId(t);return(null!==(o=null!==(r=null===(s=a.meta)||void 0===s?void 0:s.injectMenus)&&void 0!==r?r:null===(i=a.meta)||void 0===i?void 0:i.menus)&&void 0!==o?o:[]).filter((t=>t.menuId===e)).map((e=>{var n;return{...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"]?(await Me(e,{menuObjectId:"EASYOPS_STORYBOARD_MENU"})).menus:(await(0,Oe.n)("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,r=await $e(o,t,n);if(!r)throw new Error(`Menu not found: ${e}`);De(r);const{items:s,app:i,...a}=r,c={...t,pendingPermissionsPreCheck:[...t.pendingPermissionsPreCheck,b([s,a])]};delete c.tplStateStoreId,delete c.forEachItem,delete c.forEachIndex,delete c.forEachSize;const u=i[0].appId,[l,p]=await Promise.all([xe(a,u,c,n),Ue(s,c,n)]),d={title:await qe(l),...(0,T.pick)(l,["icon","link","defaultCollapsed","defaultCollapsedBreakpoint"]),menuItems:Ge(p)};He.set(e,d)}(e,t,n)),o}const Ye=[];let Ke=null;const Qe={maxWaitingTime:5e3,maxLoggedEvents:10};function Xe(){clearTimeout(Ke),Ye.length>Qe.maxLoggedEvents?Ze():Ke=setTimeout(Ze,Qe.maxWaitingTime)}function Ze(){if(0===Ye.length)return;const e={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:Ye.splice(0,Qe.maxLoggedEvents)};var t;!function(e,t){const n=new Blob([JSON.stringify(t)],{type:"application/json"});window.navigator.sendBeacon(e,n)}(Qe.api,e),Ye.length&&(t=Ze,(window.requestIdleCallback||window.requestAnimationFrame||(e=>setTimeout(e,17)))(t))}function et(){window.addEventListener("beforeunload",Ze,!1)}let tt,nt=!1,ot=null,rt=!0;const st=[];function it(e){nt||(nt=!0,tt||(tt=function(e,t){return Object.assign(Qe,{...t,api:e}),{sendOnExit:et,emit:Xe}}(e,arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}),tt.sendOnExit()))}const at=Symbol("HttpAnalytics");function ct(e){const t=Math.round(performance.now()),n=Date.now();return e[at]={st:n,time:Math.round(n/1e3),perfStartTime:t},e}function ut(e,t){return pt(!1,e,t)}function lt(e,t){return pt(!0,e,t)}function pt(e,t,n){const o=Math.round(performance.now()),r=Date.now(),{[at]:s,url:i}=n;if(s&&!(e&&t instanceof ie.HttpAbortError)){var a,c,u;delete n[at];const{st:p,time:d,perfStartTime:f}=s,{userInstanceId:h,username:m}=g();let v,A,w,y,S,b,I;if(e){const e=t instanceof ie.HttpResponseError;(e||t instanceof ie.HttpParseError)&&(({status:S,headers:b}=t.response),e&&(I=t.responseJson))}else({status:S,data:I,headers:b}=t);(0,se.isObject)(I)&&({code:v,message:A}=I),b instanceof Headers&&(w=b.get("x-b3-traceid"),y=b.get("content-length")),l={st:p,_ver:p,uid:h,username:m,time:d,et:r,page:location.href,duration:o-f,api:i,type:"api",code:null!==(a=v)&&void 0!==a?a:-1,msg:null!==(c=A)&&void 0!==c?c:"",status:S,traceId:null!==(u=w)&&void 0!==u?u:"",size:y?Number(y):-1},ot?Ye.push({...l,type:"apiRequest",...ot}):st.push(l)}var l;return e?Promise.reject(t):t}function dt(){const e=Math.round(performance.now()),t=Date.now();return st.length=0,ot=null,function(n){let{status:o,path:r,pageTitle:s}=n;if("ok"!==o)return Ye.push(...st),void(st.length=0);const i=Math.round(performance.now())-e,a=Date.now(),{username:c}=g();(function(e){const t=function(){const e=URL.createObjectURL(new Blob([]));let t=e.substring(e.lastIndexOf("/")+1);return URL.revokeObjectURL(e),rt&&(t="88-"+t,rt=!1),t}(),{lt:n,route:o}=e;ot={lt:n,route:o,pageId:t},Ye.push({...e,pageId:t,apiCount:st.length,maxApiTimeCost:Math.max(0,...st.map((e=>e.duration))),size:st.map((e=>e.size)).filter((e=>e>0)).reduce(((e,t)=>e+t),0)});for(const e of st)Ye.push({...e,...ot});st.length=0,tt.emit()})({type:"page",page:location.href,_ver:t,time:Math.round(t/1e3),st:t,et:a,lt:i,pageTitle:s,username:c,route:r}),window.dispatchEvent(new CustomEvent("route.render",{detail:{renderTime:i}}))}}const ft=Object.freeze({checkPermissions:function(){if(!A())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(const e of t)switch(S.get(e)){case"unauthorized":case"undefined":return!1;case void 0:return console.error(`Un-checked permission action: "${e}", please make sure the permission to check is defined in permissionsPreCheck.`),!1}return!0},preCheckPermissions:function(e){if(A()&&!g().isAdmin)return I((0,l.scanPermissionActionsInStoryboard)(e))},preCheckPermissionsForBrickOrRoute:async function(e,t){if(A()&&!g().isAdmin&&Array.isArray(e.permissionsPreCheck))return I(await t(e.permissionsPreCheck))}}),ht=new class{constructor(){(0,E.A)(this,V),(0,k.A)(this,H,void 0),(0,k.A)(this,G,{sub:new Map,unsub:new Map}),(0,k.A)(this,J,new Map)}subscribe(e,t){const n=JSON.stringify(t);return(0,P.A)(V,this,K).call(this,"sub",e,t,n)}unsubscribe(e){const t=(0,C.A)(J,this).get(e);if(!t){const t=`The message channel to unsubscribe "${e}" is not found`;return console.error(t),Promise.reject(new Error(t))}const n=JSON.parse(t),o=(0,P.A)(V,this,K).call(this,"unsub",e,n,t);return(0,C.A)(G,this).sub.delete(t),o.then((()=>{(0,C.A)(J,this).delete(e)})),o}onMessage(e,t){let n=(0,C.A)(J,this).get(e),o=!1;return(0,O.A)(V,this,Y).onMessage((r=>{n||(n=(0,C.A)(J,this).get(e)),n?"MESSAGE.PUSH"===r.event&&function(e,t){const n=JSON.parse(e);return n.system===t.system&&(n.topic===t.topic||"string"==typeof n.topic&&n.topic.includes("*")&&new RegExp(`^${n.topic.replace(/([^*]*)\*([^*]*)/g,((e,t,n)=>`${(0,T.escapeRegExp)(t)}[^/]*${(0,T.escapeRegExp)(n)}`))}$`).test(t.topic))}(n,r.payload)&&t(r.payload.message):o||(console.error(`Message channel: "${e}" not found`),o=!0)}))}onClose(e){return(0,O.A)(V,this,Y).onClose(e)}reset(){var e;(0,C.A)(G,this).sub.clear(),(0,C.A)(G,this).unsub.clear(),(0,C.A)(J,this).clear(),null===(e=(0,C.A)(H,this))||void 0===e||e.reset()}},mt=function(){const e=(0,_.getV2RuntimeFromDll)();if(e)return Object.freeze((0,T.pick)(e,["authenticate","getAuth","isLoggedIn","logout"]))}()||o}}]);
3
+ //# sourceMappingURL=3214.ffc7ec11.js.map