@nocobase/app 2.1.0-alpha.11 → 2.1.0-alpha.13
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/client/3717.c6ace11f.async.js +9 -0
- package/dist/client/8026.0d7059a7.async.js +5 -0
- package/dist/client/index.html +1 -1
- package/dist/client/index.html.tpl +1 -1
- package/dist/client/{p__index.482f66b1.async.js → p__index.9a79178f.async.js} +334 -334
- package/dist/client/{umi.96c93a47.js → umi.7b5a079f.js} +1 -1
- package/dist/client/v2/assets/7492-083c97e5.js +5 -0
- package/dist/client/v2/assets/9827-290aaa5c.js +9 -0
- package/dist/client/v2/assets/{index-a2c43823.js → index-ec960e25.js} +15 -15
- package/dist/client/v2/assets/runtime-b419babc.js +1 -0
- package/dist/client/v2/index.html +1 -1
- package/package.json +6 -6
- package/dist/client/v2/assets/runtime-d6e0ee3d.js +0 -1
- /package/dist/client/v2/assets/{index-a2c43823.js.LICENSE.txt → index-ec960e25.js.LICENSE.txt} +0 -0
|
@@ -1,20 +1,20 @@
|
|
|
1
|
-
/*! For license information please see index-
|
|
2
|
-
export const __rspack_esm_id="8410";export const __rspack_esm_ids=["8410"];export const __webpack_modules__={35358(e,t,r){var n={"./af":"25177","./af.js":"25177","./ar":"61509","./ar-dz":"41488","./ar-dz.js":"41488","./ar-kw":"58676","./ar-kw.js":"58676","./ar-ly":"42353","./ar-ly.js":"42353","./ar-ma":"24496","./ar-ma.js":"24496","./ar-sa":"82682","./ar-sa.js":"82682","./ar-tn":"89756","./ar-tn.js":"89756","./ar.js":"61509","./az":"95533","./az.js":"95533","./be":"28959","./be.js":"28959","./bg":"47777","./bg.js":"47777","./bm":"54903","./bm.js":"54903","./bn":"61290","./bn-bd":"17357","./bn-bd.js":"17357","./bn.js":"61290","./bo":"31545","./bo.js":"31545","./br":"11470","./br.js":"11470","./bs":"44429","./bs.js":"44429","./ca":"7306","./ca.js":"7306","./cs":"56464","./cs.js":"56464","./cv":"73635","./cv.js":"73635","./cy":"64226","./cy.js":"64226","./da":"93601","./da.js":"93601","./de":"77853","./de-at":"26111","./de-at.js":"26111","./de-ch":"54697","./de-ch.js":"54697","./de.js":"77853","./dv":"60708","./dv.js":"60708","./el":"54691","./el.js":"54691","./en-au":"53872","./en-au.js":"53872","./en-ca":"28298","./en-ca.js":"28298","./en-gb":"56195","./en-gb.js":"56195","./en-ie":"66584","./en-ie.js":"66584","./en-il":"65543","./en-il.js":"65543","./en-in":"9033","./en-in.js":"9033","./en-nz":"79402","./en-nz.js":"79402","./en-sg":"43004","./en-sg.js":"43004","./eo":"32934","./eo.js":"32934","./es":"97650","./es-do":"20838","./es-do.js":"20838","./es-mx":"17730","./es-mx.js":"17730","./es-us":"56575","./es-us.js":"56575","./es.js":"97650","./et":"3035","./et.js":"3035","./eu":"3508","./eu.js":"3508","./fa":"119","./fa.js":"119","./fi":"90527","./fi.js":"90527","./fil":"95995","./fil.js":"95995","./fo":"52477","./fo.js":"52477","./fr":"85498","./fr-ca":"26435","./fr-ca.js":"26435","./fr-ch":"37892","./fr-ch.js":"37892","./fr.js":"85498","./fy":"37071","./fy.js":"37071","./ga":"41734","./ga.js":"41734","./gd":"70217","./gd.js":"70217","./gl":"77329","./gl.js":"77329","./gom-deva":"32124","./gom-deva.js":"32124","./gom-latn":"93383","./gom-latn.js":"93383","./gu":"95050","./gu.js":"95050","./he":"11713","./he.js":"11713","./hi":"43861","./hi.js":"43861","./hr":"26308","./hr.js":"26308","./hu":"90609","./hu.js":"90609","./hy-am":"17160","./hy-am.js":"17160","./id":"74063","./id.js":"74063","./is":"89374","./is.js":"89374","./it":"88383","./it-ch":"21827","./it-ch.js":"21827","./it.js":"88383","./ja":"23827","./ja.js":"23827","./jv":"89722","./jv.js":"89722","./ka":"41794","./ka.js":"41794","./kk":"27088","./kk.js":"27088","./km":"96870","./km.js":"96870","./kn":"84451","./kn.js":"84451","./ko":"63164","./ko.js":"63164","./ku":"98174","./ku.js":"98174","./ky":"78474","./ky.js":"78474","./lb":"79680","./lb.js":"79680","./lo":"15867","./lo.js":"15867","./lt":"45766","./lt.js":"45766","./lv":"69532","./lv.js":"69532","./me":"58076","./me.js":"58076","./mi":"41848","./mi.js":"41848","./mk":"30306","./mk.js":"30306","./ml":"73739","./ml.js":"73739","./mn":"99053","./mn.js":"99053","./mr":"86169","./mr.js":"86169","./ms":"73386","./ms-my":"92297","./ms-my.js":"92297","./ms.js":"73386","./mt":"77075","./mt.js":"77075","./my":"72264","./my.js":"72264","./nb":"22274","./nb.js":"22274","./ne":"8235","./ne.js":"8235","./nl":"92572","./nl-be":"43784","./nl-be.js":"43784","./nl.js":"92572","./nn":"54566","./nn.js":"54566","./oc-lnc":"69330","./oc-lnc.js":"69330","./pa-in":"29849","./pa-in.js":"29849","./pl":"94418","./pl.js":"94418","./pt":"79834","./pt-br":"48303","./pt-br.js":"48303","./pt.js":"79834","./ro":"24457","./ro.js":"24457","./ru":"82271","./ru.js":"82271","./sd":"1221","./sd.js":"1221","./se":"33478","./se.js":"33478","./si":"17538","./si.js":"17538","./sk":"5784","./sk.js":"5784","./sl":"46637","./sl.js":"46637","./sq":"86794","./sq.js":"86794","./sr":"45719","./sr-cyrl":"3322","./sr-cyrl.js":"3322","./sr.js":"45719","./ss":"56000","./ss.js":"56000","./sv":"41011","./sv.js":"41011","./sw":"40748","./sw.js":"40748","./ta":"11025","./ta.js":"11025","./te":"11885","./te.js":"11885","./tet":"28861","./tet.js":"28861","./tg":"86571","./tg.js":"86571","./th":"55802","./th.js":"55802","./tk":"59527","./tk.js":"59527","./tl-ph":"29231","./tl-ph.js":"29231","./tlh":"31052","./tlh.js":"31052","./tr":"85096","./tr.js":"85096","./tzl":"79846","./tzl.js":"79846","./tzm":"81765","./tzm-latn":"97711","./tzm-latn.js":"97711","./tzm.js":"81765","./ug-cn":"48414","./ug-cn.js":"48414","./uk":"16618","./uk.js":"16618","./ur":"57777","./ur.js":"57777","./uz":"57609","./uz-latn":"72475","./uz-latn.js":"72475","./uz.js":"57609","./vi":"21135","./vi.js":"21135","./x-pseudo":"64051","./x-pseudo.js":"64051","./yo":"82218","./yo.js":"82218","./zh-cn":"52648","./zh-cn.js":"52648","./zh-hk":"1632","./zh-hk.js":"1632","./zh-mo":"31541","./zh-mo.js":"31541","./zh-tw":"50304","./zh-tw.js":"50304"};function i(e){return r(o(e))}function o(e){if(!r.o(n,e)){var t=Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return n[e]}i.keys=function(){return Object.keys(n)},i.resolve=o,e.exports=i,i.id=35358},96101(e,t,r){var n={};r.r(n),r.d(n,{Application:()=>es,ApplicationContext:()=>ed,BlankComponent:()=>z,Plugin:()=>ey,RouterContextCleaner:()=>V,WebSocketClient:()=>J,createMockClient:()=>eg});var i=r(58587),o=r(18150),l=r(68238),s=r(50467),a=r(74848),c=r(95243),u=r(90492),d=r(88909),h=r(55373),p=r.n(h);class f{get storagePrefix(){return this.api.storagePrefix}get locale(){return this.getLocale()}set locale(e){this.setLocale(e)}get role(){return this.getRole()}set role(e){this.setRole(e)}get token(){return this.getToken()}set token(e){this.setToken(e)}get authenticator(){return this.getAuthenticator()}set authenticator(e){this.setAuthenticator(e)}getOption(e){return this.api.storage.getItem(e)}setOption(e,t){return this.options[e]=t,this.api.storage.setItem(e,t||"")}getLocale(){return this.getOption("locale")}setLocale(e){this.setOption("locale",e)}getRole(){return this.getOption("role")}setRole(e){this.setOption("role",e)}getToken(){return this.getOption("token")}setToken(e){this.setOption("token",e),this.api.app&&this.api.app.eventBus.dispatchEvent(new CustomEvent("auth:tokenChanged",{detail:{token:e,authenticator:this.authenticator}}))}getAuthenticator(){return this.getOption("auth")}setAuthenticator(e){this.setOption("auth",e)}middleware(e){return this.locale&&(e.headers["X-Locale"]=this.locale),this.role&&(e.headers["X-Role"]=this.role),this.authenticator&&!e.headers["X-Authenticator"]&&(e.headers["X-Authenticator"]=this.authenticator),this.token&&(e.headers.Authorization=`Bearer ${this.token}`),e}async signIn(e,t){var r;let n=await this.api.request({method:"post",url:"auth:signIn",data:e,headers:{"X-Authenticator":t}}),i=null==n||null==(r=n.data)?void 0:r.data;return this.setAuthenticator(t),this.setToken(null==i?void 0:i.token),n}async signUp(e,t){return await this.api.request({method:"post",url:"auth:signUp",data:e,headers:{"X-Authenticator":t}})}async signOut(){let e=await this.api.request({method:"post",url:"auth:signOut"});return this.setToken(null),this.setRole(null),this.setAuthenticator(null),e}async lostPassword(e){let t=Object.fromEntries(new URLSearchParams(window.location.search).entries());return await this.api.request({method:"post",url:"auth:lostPassword",data:{...e,baseURL:window.location.href.split("/forgot-password")[0]},headers:{"X-Authenticator":t.name}})}async resetPassword(e){return await this.api.request({method:"post",url:"auth:resetPassword",data:e})}async checkResetToken(e){return await this.api.request({method:"post",url:"auth:checkResetToken",data:e})}constructor(e){(0,s._)(this,"api",void 0),(0,s._)(this,"options",{locale:null,role:null,authenticator:null,token:null}),this.api=e,this.api.axios.interceptors.request.use(this.middleware.bind(this))}}class m{toUpperCase(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";for(var t=arguments.length,r=Array(t>1?t-1:0),n=1;n<t;n++)r[n-1]=arguments[n];return e.toUpperCase()+r.map(e=>e.toUpperCase()).join("_")}constructor(){(0,s._)(this,"storagePrefix",void 0)}}class g extends m{clear(){this.items.clear()}getItem(e){return this.items.get(e)}setItem(e,t){return this.items.set(e,t)}removeItem(e){return this.items.delete(e)}constructor(...e){super(...e),(0,s._)(this,"items",new Map)}}class y extends m{clear(){return this.items.clear()}getItem(e){return this.shareToken&&"token"===e&&this.baseStoragePrefix?this.items.getItem(this.toUpperCase(this.baseStoragePrefix,e)):this.items.getItem(this.toUpperCase(this.storagePrefix,e))}setItem(e,t){return this.shareToken&&"token"===e&&this.baseStoragePrefix?this.items.setItem(this.toUpperCase(this.baseStoragePrefix,e),t):this.items.setItem(this.toUpperCase(this.storagePrefix,e),t)}removeItem(e){return this.shareToken&&"token"===e&&this.baseStoragePrefix?this.items.removeItem(this.toUpperCase(this.baseStoragePrefix,e)):this.items.removeItem(this.toUpperCase(this.storagePrefix,e))}constructor(e,t="",r=!1){super(),(0,s._)(this,"storagePrefix",void 0),(0,s._)(this,"baseStoragePrefix",void 0),(0,s._)(this,"shareToken",void 0),(0,s._)(this,"items",void 0),this.storagePrefix=e,this.baseStoragePrefix=t,this.shareToken=r,this.items=window.localStorage}}class v extends y{constructor(e,t="",r=!1){super(e,t,r),(0,s._)(this,"storagePrefix",void 0),(0,s._)(this,"baseStoragePrefix",void 0),(0,s._)(this,"shareToken",void 0),this.storagePrefix=e,this.baseStoragePrefix=t,this.shareToken=r,this.items=window.sessionStorage}}class w{toErrMessages(e){var t,r,n,i,o,l,s,a,c,u,d;if("u">typeof document&&"string"==typeof(null==e||null==(t=e.response)?void 0:t.data)){let t=document.createElement("div");t.innerHTML=null==e||null==(c=e.response)?void 0:c.data;let r=t.textContent||t.innerText;return r.includes("Error occurred while trying")||r.includes("502 Bad Gateway")?[{code:"APP_WARNING",message:r="The application may be starting up. Please try again later."}]:[{message:r}]}return(null==e||null==(n=e.response)||null==(r=n.data)?void 0:r.error)?[null==e||null==(d=e.response)||null==(u=d.data)?void 0:u.error]:(null==e||null==(o=e.response)||null==(i=o.data)?void 0:i.errors)||(null==e||null==(s=e.response)||null==(l=s.data)?void 0:l.messages)||(null==e||null==(a=e.response)?void 0:a.error)||[{message:e.message||"Server error"}]}getHeaders(){let e={};return this.auth.locale&&(e["X-Locale"]=this.auth.locale),this.auth.role&&(e["X-Role"]=this.auth.role),this.auth.authenticator&&(e["X-Authenticator"]=this.auth.authenticator),this.auth.token&&(e.Authorization=`Bearer ${this.auth.token}`),e}createStorage(e){return"localStorage"===e&&"u">typeof localStorage?new y(this.storagePrefix,this.baseStoragePrefix,this.shareToken):"sessionStorage"===e&&"u">typeof sessionStorage?new v(this.storagePrefix,this.baseStoragePrefix,this.shareToken):new g}initStorage(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"localStorage";if(e){this.storage=new e(this);return}this.storage=this.createStorage(t)}interceptors(){this.axios.interceptors.request.use(e=>(e.paramsSerializer=e=>p().stringify(e,{strictNullHandling:!0,arrayFormat:"brackets"}),e))}request(e){let{resource:t,resourceOf:r,action:n,params:i,headers:o}=e;return t?this.resource(t,r,o)[n](i):this.axios.request(e)}resource(e,t,r,n){return new Proxy({},{get:(i,o)=>{if(n)return;let l=e.split(".").join(`/${encodeURIComponent(t)||"_"}/`),s={url:l+=`:${o.toString()}`};return["get","list"].includes(o)?s.method="get":s.method="post",async(e,t)=>{let{values:n,filter:i,...o}=e||{};return s.params=o,i&&("string"==typeof i?s.params.filter=i:(i["*"]&&delete i["*"],s.params.filter=JSON.stringify(i))),"get"!==s.method&&(s.data=n||{}),await this.request({...s,...t,headers:r})}}})}constructor(e){if((0,s._)(this,"options",void 0),(0,s._)(this,"axios",void 0),(0,s._)(this,"auth",void 0),(0,s._)(this,"storage",void 0),(0,s._)(this,"storagePrefix","NOCOBASE_"),(0,s._)(this,"baseStoragePrefix","NOCOBASE_"),(0,s._)(this,"shareToken",!1),this.options=e,"function"==typeof e)this.axios=e;else{let{appName:t,authClass:r,storageType:n,storageClass:i,storagePrefix:o="NOCOBASE_",shareToken:l=!1,...s}=e||{};this.shareToken=l,this.baseStoragePrefix=o,this.storagePrefix=t?`${o}${t.toUpperCase()}_`:o,this.axios=d.A.create(s),this.initStorage(i,n),r&&(this.auth=new r(this))}this.storage||this.initStorage(),this.auth||(this.auth=new f(this)),this.interceptors()}}let b=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"/";if("u"<typeof window||!window.location.pathname)return;let t=`${e}apps/`;if(window.location.pathname.startsWith(t))return window.location.pathname.substring(t.length).split("/",1)[0]||""};var x=r(72635),S=r(74586),A=r(19020),M=r(52718),_=r(96540),k=r(5338),P=r(52230),C=r(84976),j=r(47767);function R(e){Object.entries(e).forEach(e=>{let[t,r]=e;window.define(`${t}/client-v2`,()=>r)})}function E(e){window.define(`${e}/client-v2`,["exports",e],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.keys(t).forEach(function(r){"__esModule"===r||r in e&&e[r]===t[r]||Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[r]}})})})}function F(e,t){e.requirejs.config({waitSeconds:120,paths:t.reduce((e,t)=>(e[t.packageName]=t.url,e),{})})}function T(e,t){return function(){for(var r=arguments.length,n=Array(r),i=0;i<r;i++)n[i]=arguments[i];t(n.map((t,r)=>[e[r].name,(null==t?void 0:t.default)||t]).filter(e=>e[1]));let o=n.map((e,t)=>e?null:t).filter(e=>null!==e).map(t=>e[t].packageName);o.length>0&&console.error("[nocobase load plugin error]: These plugins do not have an `export.default` exported content or there is an error in the plugins. error plugins: \r\n%s",o.join(", \r\n"))}}function O(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];F(e,t);let r=t.map(e=>e.packageName);return r.forEach(e=>{E(e)}),new Promise((n,i)=>{e.requirejs(r,T(t,n),i)})}async function I(e){let{requirejs:t,pluginData:r,devDynamicImport:n}=e;if(0===r.length)return[];let i=[],o={};if(n){for await(let e of r){let t=await n(e.packageName);t&&(i.push([e.name,t.default]),o[e.packageName]=t.default)}R(o)}let l=r.filter(e=>!o[e.packageName]);if(0===l.length)return i;if(0===i.length){let e=await O(t,l);i.push(...e)}return i}class ${async init(e){await this.initStaticPlugins(e),this.loadRemotePlugins&&await this.initRemotePlugins()}async initStaticPlugins(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];for await(let t of e){let e=Array.isArray(t)?t[0]:t,r=Array.isArray(t)?t[1]:void 0;await this.add(e,r)}}async initRemotePlugins(){var e;let t=await this.app.apiClient.request({url:"pm:listEnabledV2"}),r=(null==t||null==(e=t.data)?void 0:e.data)||[];for await(let[e,t]of(await I({requirejs:this.app.requirejs,pluginData:r,devDynamicImport:this.app.devDynamicImport}))){let n=r.find(t=>t.name===e);await this.add(t,n)}}async add(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=this.getInstance(e,t);this.pluginInstances.set(e,r),t.name&&(this.pluginsAliases[t.name]=r),t.packageName&&(this.pluginsAliases[t.packageName]=r),await r.afterAdd()}get(e){return"string"==typeof e?this.pluginsAliases[e]:this.pluginInstances.get(e.default||e)}getInstance(e,t){return new e(t,this.app)}async load(){for(let e of(await this.initPlugins,this.pluginInstances.values()))await e.beforeLoad();for(let e of this.pluginInstances.values())await e.load(),this.app.eventBus.dispatchEvent(new CustomEvent(`plugin:${e.options.name}:loaded`,{detail:e}))}constructor(e,t,r){(0,s._)(this,"_plugins",void 0),(0,s._)(this,"loadRemotePlugins",void 0),(0,s._)(this,"app",void 0),(0,s._)(this,"pluginInstances",void 0),(0,s._)(this,"pluginsAliases",void 0),(0,s._)(this,"initPlugins",void 0),this._plugins=e,this.loadRemotePlugins=t,this.app=r,this.pluginInstances=new Map,this.pluginsAliases={},this.app=r,this.initPlugins=this.init(e)}}var D=r(2543);let N="admin.settings.",B="/admin/settings/",L="pm.";class q{clearCache(){this.cachedList={}}setAclSnippets(e){this.aclSnippets=e}getAclSnippet(e){let t=this.settings[e];return(null==t?void 0:t.skipAclConfigure)?null:(null==t?void 0:t.aclSnippet)?t.aclSnippet:`${L}${e}`}getRouteName(e){return`${N}${e}`}getRoutePath(e){return`${B}${e.replaceAll(".","/")}`}add(e,t){let r=e.split("."),n=r[0];this.settings[e]={...this.settings[e],Component:j.Outlet,...t,name:e,topLevelName:t.topLevelName||n},r.length>1&&(0,D.set)(this.settings,r.join(".children."),this.settings[e]),this.app.router.add(this.getRouteName(e),{path:this.getRoutePath(e),Component:this.settings[e].Component,componentLoader:this.settings[e].componentLoader})}remove(e){Object.keys(this.settings).forEach(t=>{t.startsWith(e)&&(delete this.settings[t],this.app.router.remove(`${N}${t}`))})}hasAuth(e){return!this.aclSnippets.includes(`!${this.getAclSnippet("*")}`)&&!1===this.aclSnippets.includes(`!${this.getAclSnippet(e)}`)}getSetting(e){return this.settings[e]}has(e){return!!this.hasAuth(e)&&!!this.getSetting(e)}get(e){var t,r;let n=!(arguments.length>1)||void 0===arguments[1]||arguments[1],i=this.hasAuth(e),o=this.getSetting(e);if(n&&!i||!o)return null;let l=Object.keys(o.children||{}).sort((e,t)=>e.localeCompare(t)).map(e=>this.get(o.children[e].name,n)).filter(Boolean).sort((e,t)=>(e.sort||0)-(t.sort||0)),{title:s,icon:a,aclSnippet:c,...u}=o;return{isTopLevel:e===o.topLevelName,...u,aclSnippet:this.getAclSnippet(e),title:s,isAllow:i,label:s,icon:null==(t=(r=this.app.flowEngine.context).renderIon)?void 0:t.call(r,a),path:this.getRoutePath(e),key:e,children:l.length?l:void 0}}getList(){let e=!(arguments.length>0)||void 0===arguments[0]||arguments[0],t=JSON.stringify(e);return this.cachedList[t]?this.cachedList[t]:this.cachedList[t]=Array.from(new Set(Object.values(this.settings).map(e=>e.topLevelName))).sort((e,t)=>e.localeCompare(t)).map(t=>this.get(t,e)).filter(Boolean).sort((e,t)=>(e.sort||0)-(t.sort||0))}getAclSnippets(){return Object.keys(this.settings).map(e=>this.getAclSnippet(e)).filter(Boolean)}constructor(e,t){(0,s._)(this,"settings",{}),(0,s._)(this,"aclSnippets",[]),(0,s._)(this,"app",void 0),(0,s._)(this,"cachedList",{}),this.app=t,Object.entries(e||{}).forEach(e=>{let[t,r]=e;this.add(t,r)})}}var U=r(45588);let z=e=>{let{children:t}=e;return(0,a.jsx)(a.Fragment,{children:t})},V=_.memo(e=>(0,a.jsx)(j.UNSAFE_RouteContext.Provider,{value:{outlet:null,matches:[],isDataRoute:!1},children:(0,a.jsx)(j.UNSAFE_LocationContext.Provider,{value:null,children:e.children})}));function W(e){let t=(0,j.useParams)(),r=(0,j.useLocation)(),n=(0,j.useMatches)(),i=e.flowEngine;(0,_.useEffect)(()=>{var e;let r=n[n.length-1];r&&(i.context._observableCache.route={name:r.id,pathname:r.pathname,path:(null==(e=r.handle)?void 0:e.path)||null,params:t})},[i.context,t,n]),(0,_.useEffect)(()=>{i.context._observableCache.location=r},[i.context,r])}function H(e){let{app:t}=e;return W(t),null}V.displayName="RouterContextCleaner";class K{get basename(){return this.router.basename}get state(){return this.router.state}get navigate(){return this.router.navigate}resolveLoadedComponent(e){if(e)return"function"==typeof e||"string"==typeof e?e:e.default||e.Component}createRouteLazyComponent(e){let t=_.lazy(()=>e().then(e=>{let t=this.resolveLoadedComponent(e);if(!t)throw Error("componentLoader must resolve to a React component or component module.");return"string"==typeof t?{default:e=>this.app.renderComponent(t,e)}:{default:t}}));return function(e){return(0,a.jsx)(_.Suspense,{fallback:null,children:(0,a.jsx)(t,{...e})})}}getRoutesTree(){let e={};for(let[t,r]of Object.entries(this.routes))(0,D.set)(e,t.split(".").join(".children."),{...(0,D.get)(e,t.split(".").join(".children.")),...r});let t=e=>Object.values(e).reduce((e,r)=>{if(1===Object.keys(r).length&&r.children)e.push(...t(r.children));else{let{Component:n,componentLoader:i,element:o,children:l,...s}=r,a=o;i?a=_.createElement(this.createRouteLazyComponent(i)):n&&(a="string"==typeof n?this.app.renderComponent(n):_.createElement(n));let c={...s,element:a,children:l?t(l):void 0};e.push(c)}return e},[]);return t(e)}getRoutes(){return this.routes}setType(e){this.options.type=e}getBasename(){return this.options.basename}setBasename(e){this.options.basename=e}matchRoutes(e){let t=Object.values(this.routes);return(0,U.ue)(t,e,this.basename)}isSkippedAuthCheckRoute(e){return this.matchRoutes(e).some(e=>{var t;return(null==e||null==(t=e.route)?void 0:t.skipAuthCheck)===!0})}getRouterComponent(e){let{type:t="browser",...r}=this.options,n={hash:C.createHashRouter,browser:C.createBrowserRouter,memory:j.createMemoryRouter},i=this.getRoutesTree(),o=(0,_.createContext)(null),l=()=>{let t=(0,_.useContext)(o);return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(H,{app:this.app}),(0,a.jsxs)(t,{children:[(0,a.jsx)(j.Outlet,{}),e]})]})},s=()=>{throw(0,j.useRouteError)()};return this.router=n[t]([{element:(0,a.jsx)(l,{}),errorElement:(0,a.jsx)(s,{}),children:i}],r),e=>{let{BaseLayout:t=z}=e;return(0,a.jsx)(o.Provider,{value:t,children:(0,a.jsx)(V,{children:(0,a.jsx)(C.RouterProvider,{future:{v7_startTransition:!0},router:this.router})})})}}add(e,t){this.routes[e]={id:e,...t,handle:{path:t.path}}}get(e){return this.routes[e]}has(e){return!!this.get(e)}remove(e){delete this.routes[e]}constructor(e={},t){(0,s._)(this,"routes",{}),(0,s._)(this,"options",void 0),(0,s._)(this,"app",void 0),(0,s._)(this,"router",void 0),this.options=e,this.app=t,this.routes=e.routes||{}}}class J{getURL(){if(!this.app)return;let e=this.app.getApiUrl();if(!e)return;let t="";if(this.getSubAppName(this.app))t=`?_app=${this.getSubAppName(this.app)}`;else{let e=b(this.app.getPublicPath());t=e?`?__appName=${e}`:""}let r=this.options.basename||"/ws";if(this.options.url){let e=new URL(this.options.url);if("localhost"===e.hostname){let n="https:"===location.protocol?"wss":"ws";return`${n}://${location.hostname}:${e.port}${r}${t}`}return`${this.options.url}${t}`}try{let n=new URL(e);return`${"https:"===n.protocol?"wss":"ws"}://${n.host}${r}${t}`}catch(e){return`${"https:"===location.protocol?"wss":"ws"}://${location.host}${r}${t}`}}get reconnectAttempts(){var e;return(null==(e=this.options)?void 0:e.reconnectAttempts)||30}get reconnectInterval(){var e;return(null==(e=this.options)?void 0:e.reconnectInterval)||1e3}get pingInterval(){var e;return(null==(e=this.options)?void 0:e.pingInterval)||3e4}get readyState(){return this._ws?this._ws.readyState:-1}createWebSocket(){return new WebSocket(this.getURL(),this.options.protocols)}connect(){let e;if(!this.enabled||(0===this._reconnectTimes&&console.log("[nocobase-ws]: connecting..."),this._reconnectTimes>=this.reconnectAttempts||this.readyState===WebSocket.OPEN))return;this._reconnectTimes++;let t=this.createWebSocket();t.onopen=()=>{for(let{type:e,listener:r,options:n}of(console.log("[nocobase-ws]: connected."),this.serverDown=!1,this._ws&&this.removeAllListeners(),this._reconnectTimes=0,this._ws=t,this.events))this._ws.addEventListener(e,r,n);e=setInterval(()=>this.send("ping"),this.pingInterval),this.connected=!0,this.emit("open",{})},t.onerror=async()=>{console.log("onerror",this.readyState,this._reconnectTimes)},t.onclose=async t=>{setTimeout(()=>this.connect(),this.reconnectInterval),console.log("onclose",this.readyState,this._reconnectTimes,this.serverDown),this.connected=!1,clearInterval(e)}}reconnect(){this._reconnectTimes=0,this.connect()}close(){if(this._ws)return this._reconnectTimes=this.reconnectAttempts,this._ws.close()}send(e){if(this._ws)return this._ws.send(e)}on(e,t,r){this.events.push({type:e,listener:t,options:r}),this._ws&&this._ws.addEventListener(e,t,r)}emit(e,t){for(let r of this.events)r.type===e&&r.listener(t)}off(e,t,r){let n=0;for(let r of this.events){if(r.type===e&&r.listener===t){this.events.splice(n,1);break}n++}this._ws&&this._ws.removeEventListener(e,t,r)}removeAllListeners(){if(this._ws)for(let{type:e,listener:t,options:r}of this.events)this._ws.removeEventListener(e,t,r)}constructor(e){if((0,s._)(this,"_ws",void 0),(0,s._)(this,"_reconnectTimes",0),(0,s._)(this,"events",[]),(0,s._)(this,"options",void 0),(0,s._)(this,"app",void 0),(0,s._)(this,"enabled",void 0),(0,s._)(this,"connected",!1),(0,s._)(this,"serverDown",!1),(0,s._)(this,"lastMessage",{}),(0,s._)(this,"getSubAppName",e=>{let t=e.getPublicPath(),r=`^${t}_app/([^/]*)/`,n=location.pathname.match(new RegExp(r));return n?n[1]:null}),!e){this.enabled=!1;return}this.options=!0===e?{}:e,this.enabled=!0,(0,c.define)(this,{serverDown:c.observable.ref,connected:c.observable.ref,lastMessage:c.observable.ref})}}function Y(e){if(!e)return console.warn("Failed to mount app: mount target should not be null or undefined."),null;if("string"==typeof e){let t=document.querySelector(e);return t||console.warn(`Failed to mount app: mount target selector "${e}" returned null.`),t}return window.ShadowRoot&&e instanceof window.ShadowRoot&&"closed"===e.mode&&console.warn('mounting on a ShadowRoot with `{mode: "closed"}` may lead to unpredictable bugs'),e}let G=function(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];let n=t.reduce((e,t)=>{let[r,n]=t,i=t=>{let{children:i}=t;return(0,a.jsx)(e,{children:(0,a.jsx)(r,{...n,children:i})})};return i.displayName=`compose(${r.displayName||r.name})`,i},z);return e=>t=>(0,a.jsx)(n,{children:e&&(0,a.jsx)(e,{...t})})};var Z=r(42524),X=r(77037),Q=r(60645),ee=r(18220),et=r(27253),er=r(37015),en=r(40961),ei=r(68984);function eo(e){e.define("react",()=>_),e.define("react-dom",()=>en),e.define("react/jsx-runtime",()=>a),e.define("react-router",()=>j),e.define("react-router-dom",()=>C),e.define("antd",()=>er),e.define("@ant-design/icons",()=>X),e.define("@ant-design/cssinjs",()=>Z),e.define("i18next",()=>x),e.define("react-i18next",()=>ei),e.define("@formily/core",()=>Q),e.define("@formily/react",()=>ee),e.define("@formily/reactive",()=>c),e.define("@formily/shared",()=>et),e.define("@nocobase/client-v2",()=>n),e.define("@nocobase/client-v2/client-v2",()=>n),e.define("@nocobase/flow-engine",()=>u)}var el=r(40407);class es{get pm(){return this.pluginManager}get disableAcl(){return this.options.disableAcl}get isWsAuthorized(){return this.wsAuthorized}updateFavicon(e){let t=document.querySelector('link[rel="shortcut icon"]');e&&(this.favicon=e),t?t.href=this.favicon||"/favicon/favicon.ico":((t=document.createElement("link")).rel="shortcut icon",t.href=this.favicon||"/favicon/favicon.ico",document.head.appendChild(t))}setWsAuthorized(e){this.wsAuthorized=e}initListeners(){this.eventBus.addEventListener("auth:tokenChanged",e=>{this.setTokenInWebSocket(e.detail)}),this.eventBus.addEventListener("maintaining:end",()=>{this.apiClient.auth.token&&this.setTokenInWebSocket({token:this.apiClient.auth.token,authenticator:this.apiClient.auth.getAuthenticator()})})}setTokenInWebSocket(e){let{token:t,authenticator:r}=e;this.maintaining||this.ws.send(JSON.stringify({type:"auth:token",payload:{token:t,authenticator:r}}))}setMaintaining(e){this.maintaining!==e&&(this.maintaining=e,e||this.eventBus.dispatchEvent(new Event("maintaining:end")))}initRequireJs(){if("u">typeof window){if(window.requirejs){this.requirejs=window.requirejs;return}window.requirejs=this.requirejs=(0,el.b)(),eo(this.requirejs),window.define=this.requirejs.define}}addDefaultProviders(){this.use(P.x,{i18n:this.i18n}),this.flowEngine.context.defineProperty("app",{value:this}),this.flowEngine.context.defineProperty("api",{value:this.apiClient}),this.flowEngine.context.defineProperty("i18n",{value:this.i18n}),this.flowEngine.context.defineProperty("router",{get:()=>this.router.router,cache:!1}),this.flowEngine.context.defineProperty("documentTitle",{get:()=>document.title}),this.flowEngine.context.defineProperty("route",{get:()=>{},observable:!0}),this.flowEngine.context.defineProperty("location",{get:()=>location,observable:!0}),this.use(u.FlowEngineProvider,{engine:this.flowEngine}),this.use(u.FlowEngineGlobalsContextProvider)}addReactRouterComponents(){this.addComponents({Link:C.Link,Navigate:j.Navigate,NavLink:C.NavLink})}addRoutes(){this.router.add("not-found",{path:"*",Component:this.components.AppNotFound})}getOptions(){return this.options}getName(){return b(this.getPublicPath())||null}getPublicPath(){let e=this.options.publicPath||"/";return e.endsWith("/")||(e+="/"),e}getApiUrl(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=this.apiClient.axios.defaults.baseURL;if(!t.startsWith("http://")&&!t.startsWith("https://")){let{protocol:e,host:r}=window.location;t=`${e}//${r}${t}`}return t.replace(/\/$/g,"")+"/"+e.replace(/^\//g,"")}getRouteUrl(e){return this.getPublicPath()+e.replace(/^\//g,"")}getHref(e){let t=this.name;return t&&"main"!==t?this.getPublicPath()+"apps/"+t+"/"+e.replace(/^\//g,""):this.getPublicPath()+e.replace(/^\//g,"")}getComposeProviders(){let e=G(...this.providers)(z);return e.displayName="Providers",e}use(e,t){return this.addProvider(e,t)}addProvider(e,t){return this.providers.push([e,t])}addProviders(e){e.forEach(e=>{Array.isArray(e)?this.addProvider(e[0],e[1]):this.addProvider(e)})}async load(){await this.loadWebSocket(),await this.pm.load(),await this.flowEngine.flowSettings.load(),this.updateFavicon()}async loadWebSocket(){this.eventBus.addEventListener("ws:message:authorized",()=>{this.setWsAuthorized(!0)}),this.ws.on("message",e=>{var t,r,n;if(!e.data)return;let i=JSON.parse(e.data);if(null==i||null==(t=i.payload)?void 0:t.refresh)return void window.location.reload();if("notification"===i.type)return void this.context.notification[(null==(r=i.payload)?void 0:r.type)||"info"]({message:null==(n=i.payload)?void 0:n.message});if(this.error&&"APP_RUNNING"===i.payload.code){this.maintained=!0,this.setMaintaining(!1),this.error=null,window.location.reload();return}let o="maintaining"===i.type&&"APP_RUNNING"!==i.payload.code;if(console.log("ws:message",{maintaining:o,data:i}),o)this.setMaintaining(!0),this.error=i.payload;else{this.setMaintaining(!1),this.maintained=!0,this.error=null;let e=i.type;if(!e)return;let t=`ws:message:${e}`;this.eventBus.dispatchEvent(new CustomEvent(t,{detail:i.payload}))}}),this.ws.on("serverDown",()=>{this.maintaining=!0,this.maintained=!1}),this.ws.on("open",()=>{let e=this.apiClient.auth.token;e&&this.setTokenInWebSocket({token:e,authenticator:this.apiClient.auth.getAuthenticator()})}),this.ws.connect()}getComponent(e){let t=!(arguments.length>1)||void 0===arguments[1]||arguments[1],r=e=>t&&console.error(e);if(!e)return void r(`getComponent called with ${e}`);if("function"==typeof e)return e;if("string"==typeof e){let t=(0,S.A)(this.components,e);return t||void r(`Component ${e} not found`)}r(`Component ${e} should be a string or a React component`)}renderComponent(e,t,r){return _.createElement(this.getComponent(e),t,r)}addComponent(e,t){let r=t||e.displayName||e.name;r?(0,A.A)(this.components,r,e):console.error("Component must have a displayName or pass name as second argument")}addComponents(e){Object.keys(e).forEach(t=>{this.addComponent(e[t],t)})}getRootComponent(){return()=>(0,a.jsx)(u.FlowEngineProvider,{engine:this.flowEngine,children:(0,a.jsx)(u.FlowModelRenderer,{fallback:this.renderComponent("AppSpin"),model:this.model})})}mount(e){let t=Y(e);if(!t)return;let r=this.getRootComponent(),n=(0,k.createRoot)(t);return n.render((0,a.jsx)(r,{})),n}constructor(e={}){var t;if((0,s._)(this,"options",void 0),(0,s._)(this,"eventBus",void 0),(0,s._)(this,"providers",void 0),(0,s._)(this,"router",void 0),(0,s._)(this,"scopes",void 0),(0,s._)(this,"i18n",void 0),(0,s._)(this,"ws",void 0),(0,s._)(this,"apiClient",void 0),(0,s._)(this,"components",void 0),(0,s._)(this,"pluginManager",void 0),(0,s._)(this,"pluginSettingsManager",void 0),(0,s._)(this,"devDynamicImport",void 0),(0,s._)(this,"requirejs",void 0),(0,s._)(this,"name",void 0),(0,s._)(this,"favicon",void 0),(0,s._)(this,"flowEngine",void 0),(0,s._)(this,"context",void 0),(0,s._)(this,"maintained",void 0),(0,s._)(this,"maintaining",void 0),(0,s._)(this,"error",void 0),(0,s._)(this,"model",void 0),(0,s._)(this,"wsAuthorized",void 0),(0,s._)(this,"apps",void 0),this.options=e,this.eventBus=new EventTarget,this.providers=[],this.scopes={},this.components={AppNotFound:()=>(0,a.jsx)("div",{children:"Not Found"}),AppError:()=>{var e;return(0,a.jsx)("div",{children:null==(e=this.error)?void 0:e.message})},AppSpin:()=>(0,a.jsx)("div",{children:"Loading"}),AppMaintaining:()=>(0,a.jsx)("div",{children:"Maintaining"}),AppMaintainingDialog:()=>(0,a.jsx)("div",{children:"Maintaining Dialog"})},this.maintained=!1,this.maintaining=!1,this.error=null,this.wsAuthorized=!1,this.apps={Component:null},this.initRequireJs(),(0,c.define)(this,{maintained:c.observable.ref,maintaining:c.observable.ref,error:c.observable.ref}),this.devDynamicImport=e.devDynamicImport,this.components=(0,M.A)(this.components,e.components),this.apiClient=new w(e.apiClient),this.i18n=e.i18n||(0,x.createInstance)(),this.router=new K(e.router,this),void 0===(null==(t=e.router)?void 0:t.basename)){let e=this.getPublicPath(),t="/"===e?void 0:e.replace(/\/$/,"");t&&this.router.setBasename(t)}this.pluginManager=new $(e.plugins,e.loadRemotePlugins,this),this.flowEngine=new u.FlowEngine,this.flowEngine.registerModels({ApplicationModel:eu}),this.model=this.flowEngine.createModel({use:"ApplicationModel",uid:"__app_model__"}),this.context=this.flowEngine.context,this.context.defineProperty("pluginManager",{get:()=>this.pluginManager}),this.context.defineProperty("pluginSettingsRouter",{get:()=>this.pluginSettingsManager}),this.addDefaultProviders(),this.addReactRouterComponents(),this.addProviders(e.providers||[]),this.ws=new J(e.ws),this.ws.app=this,this.pluginSettingsManager=new q(e.pluginSettings,this),this.addRoutes(),this.name=this.options.name||b(e.publicPath)||"main",this.i18n.on("languageChanged",e=>{this.apiClient.auth.locale=e}),this.initListeners()}}var ea=new WeakMap,ec=new WeakMap;class eu extends u.FlowModel{get app(){return this.context.app}getProviders(){return(0,l._)(this,ea,this.app.getComposeProviders()),(0,i._)(this,ea)}getRouter(){return(0,l._)(this,ec,this.app.router.getRouterComponent()),(0,i._)(this,ec)}render(){return(console.log("render",{maintaining:this.app.maintaining,maintained:this.app.maintained,error:this.app.error}),this.app.maintaining)?this.renderMaintaining():this.app.error?this.renderError():this.renderContent()}renderMaintaining(){return this.app.maintained?this.app.renderComponent("AppMaintainingDialog"):this.app.renderComponent("AppMaintaining")}renderError(){return this.app.renderComponent("AppError")}renderContent(){let e=this.getRouter(),t=this.getProviders();return(0,a.jsx)(e,{BaseLayout:t})}constructor(...e){super(...e),(0,o._)(this,ea,{writable:!0,value:void 0}),(0,o._)(this,ec,{writable:!0,value:void 0})}}eu.registerFlow({key:"appFlow",steps:{init:{async handler(e,t){try{await e.app.load()}catch(t){e.model.app.error=t,console.error(t)}}}}});let ed=(0,_.createContext)(null);ed.displayName="ApplicationContext";var eh=r(36093),ep=r.n(eh);class ef extends es{constructor(e={}){super({router:{type:"memory",initialEntries:["/"]},...e}),(0,s._)(this,"apiMock",void 0),this.apiMock=new(ep())(this.apiClient.axios),this.ws=new em(e.ws||{})}}class em extends J{connect(){}close(){}send(){}on(e,t,r){this.eventBus.addEventListener(e,e=>t({data:JSON.stringify(e.detail)}),r)}emit(e,t){this.eventBus.dispatchEvent(new CustomEvent(e,{detail:t}))}off(e,t,r){this.eventBus.removeEventListener(e,t,r)}removeAllListeners(){}constructor(e){super(e),(0,s._)(this,"eventBus",new EventTarget)}}function eg(e){return new ef(e)}class ey{get pluginManager(){return this.app.pluginManager}get context(){return this.app.context}get flowEngine(){return this.app.flowEngine}get engine(){return this.app.flowEngine}get pm(){return this.app.pm}get router(){return this.app.router}get pluginSettingsManager(){return this.app.pluginSettingsManager}get pluginSettingsRouter(){return this.app.pluginSettingsManager}get schemaInitializerManager(){return this.app.schemaInitializerManager}get schemaSettingsManager(){return this.app.schemaSettingsManager}get dataSourceManager(){return this.app.dataSourceManager}async afterAdd(){}async beforeLoad(){}async load(){}t(e){var t;let r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.app.i18n.t(e,{ns:null==(t=this.options)?void 0:t.packageName,...r})}constructor(e,t){(0,s._)(this,"options",void 0),(0,s._)(this,"app",void 0),this.options=e,this.app=t,this.options=e,this.app=t}}function ev(e){return Promise.resolve(null)}function ew(e,t){if(!e)return t;let r=e.trim();return r.startsWith("/")||(r=`/${r}`),r.endsWith("/")||(r=`${r}/`),r}function eb(){let e="/v2/",t=window.location.pathname,r=t.indexOf(e);return r>=0?ew(t.slice(0,r),"/"):"/"}function ex(){let e=window.__nocobase_public_path__;if(e)return ew(e.replace(/\/v2\/$/,"/"),"/");let t="/v2/";return t?ew(t.replace(/\/v2\/$/,"/"),"/"):eb()}function eS(){return ew(`${ex().replace(/\/$/,"")}/v2/`,"/v2/")}function eA(e){return"boolean"==typeof e?e:"true"===String(e||"").toLowerCase()}function eM(e){return"sessionStorage"===e||"memory"===e||"localStorage"===e?e:"localStorage"}ex();let e_=new es({publicPath:eS(),apiClient:{shareToken:eA(window.__nocobase_api_client_share_token__||"false"),storageType:eM(window.__nocobase_api_client_storage_type__||"localStorage"),storagePrefix:window.__nocobase_api_client_storage_prefix__||"NOCOBASE_",baseURL:window.__nocobase_api_base_url__||"/api/"},ws:{url:window.__nocobase_ws_url__||"",basename:window.__nocobase_ws_path__||"/ws"},loadRemotePlugins:!0,devDynamicImport:ev});window.__nocobase_v2_app__=e_,e_.mount("#root")},40407(__unused_rspack_module,__webpack_exports__,__webpack_require__){__webpack_require__.d(__webpack_exports__,{b:()=>getRequireJs});function getRequireJs(){var requirejs,require,define,req,s,head,baseElement,dataMain,src,interactiveScript,currentlyAddingScript,mainScript,subPath,version="2.3.6",commentRegExp=/\/\*[\s\S]*?\*\/|([^:"'=]|^)\/\/.*$/mg,cjsRequireRegExp=/[^.]\s*require\s*\(\s*["']([^'"\s]+)["']\s*\)/g,jsSuffixRegExp=/\.js$/,currDirRegExp=/^\.\//,op=Object.prototype,ostring=op.toString,hasOwn=op.hasOwnProperty,isBrowser=!!("u">typeof window&&"u">typeof navigator&&window.document),isWebWorker=!isBrowser&&"u">typeof importScripts,readyRegExp=isBrowser&&"PLAYSTATION 3"===navigator.platform?/^complete$/:/^(complete|loaded)$/,defContextName="_",isOpera="u">typeof opera&&"[object Opera]"===opera.toString(),contexts={},cfg={},globalDefQueue=[],useInteractive=!1;function commentReplace(e,t){return t||""}function isFunction(e){return"[object Function]"===ostring.call(e)}function isArray(e){return"[object Array]"===ostring.call(e)}function each(e,t){if(e){var r;for(r=0;r<e.length&&!(e[r]&&t(e[r],r,e));r+=1);}}function eachReverse(e,t){if(e){var r;for(r=e.length-1;r>-1&&!(e[r]&&t(e[r],r,e));r-=1);}}function hasProp(e,t){return hasOwn.call(e,t)}function getOwn(e,t){return hasProp(e,t)&&e[t]}function eachProp(e,t){var r;for(r in e)if(hasProp(e,r)&&t(e[r],r))break}function mixin(e,t,r,n){return t&&eachProp(t,function(t,i){(r||!hasProp(e,i))&&(!n||"object"!=typeof t||!t||isArray(t)||isFunction(t)||t instanceof RegExp?e[i]=t:(e[i]||(e[i]={}),mixin(e[i],t,r,n)))}),e}function bind(e,t){return function(){return t.apply(e,arguments)}}function scripts(){return document.getElementsByTagName("script")}function defaultOnError(e){throw e}function getGlobal(e){if(!e)return e;var t=__webpack_require__.g;return each(e.split("."),function(e){t=t[e]}),t}function makeError(e,t,r,n){var i=Error(t+"\nhttps://requirejs.org/docs/errors.html#"+e);return i.requireType=e,i.requireModules=n,r&&(i.originalError=r),i}if(void 0===define){if(void 0!==requirejs){if(isFunction(requirejs))return;cfg=requirejs,requirejs=void 0}return void 0===require||isFunction(require)||(cfg=require,require=void 0),req=requirejs=function(e,t,r,n){var i,o,l=defContextName;return isArray(e)||"string"==typeof e||(o=e,isArray(t)?(e=t,t=r,r=n):e=[]),o&&o.context&&(l=o.context),(i=getOwn(contexts,l))||(i=contexts[l]=req.s.newContext(l)),o&&i.configure(o),i.require(e,t,r)},req.config=function(e){return req(e)},req.nextTick="u">typeof setTimeout?function(e){setTimeout(e,4)}:function(e){e()},require||(require=req),req.version=version,req.jsExtRegExp=/^\/|:|\?|\.js$/,req.isBrowser=isBrowser,s=req.s={contexts:contexts,newContext:newContext},req({}),each(["toUrl","undef","defined","specified"],function(e){req[e]=function(){var t=contexts[defContextName];return t.require[e].apply(t,arguments)}}),isBrowser&&(head=s.head=document.getElementsByTagName("head")[0],(baseElement=document.getElementsByTagName("base")[0])&&(head=s.head=baseElement.parentNode)),req.onError=defaultOnError,req.createNode=function(e,t,r){var n=e.xhtml?document.createElementNS("http://www.w3.org/1999/xhtml","html:script"):document.createElement("script");return n.type=e.scriptType||"text/javascript",n.charset="utf-8",n.async=!0,n},req.load=function(e,t,r){var n,i=e&&e.config||{};if(isBrowser)return(n=req.createNode(i,t,r)).setAttribute("data-requirecontext",e.contextName),n.setAttribute("data-requiremodule",t),!n.attachEvent||n.attachEvent.toString&&0>n.attachEvent.toString().indexOf("[native code")||isOpera?(n.addEventListener("load",e.onScriptLoad,!1),n.addEventListener("error",e.onScriptError,!1)):(useInteractive=!0,n.attachEvent("onreadystatechange",e.onScriptLoad)),n.src=r,i.onNodeCreated&&i.onNodeCreated(n,i,t,r),currentlyAddingScript=n,baseElement?head.insertBefore(n,baseElement):head.appendChild(n),currentlyAddingScript=null,n;if(isWebWorker)try{setTimeout(function(){},0),importScripts(r),e.completeLoad(t)}catch(n){e.onError(makeError("importscripts","importScripts failed for "+t+" at "+r,n,[t]))}},isBrowser&&!cfg.skipDataMain&&eachReverse(scripts(),function(e){if(head||(head=e.parentNode),dataMain=e.getAttribute("data-main"))return mainScript=dataMain,cfg.baseUrl||-1!==mainScript.indexOf("!")||(mainScript=(src=mainScript.split("/")).pop(),subPath=src.length?src.join("/")+"/":"./",cfg.baseUrl=subPath),mainScript=mainScript.replace(jsSuffixRegExp,""),req.jsExtRegExp.test(mainScript)&&(mainScript=dataMain),cfg.deps=cfg.deps?cfg.deps.concat(mainScript):[mainScript],!0}),define=function(e,t,r){var n,i;"string"!=typeof e&&(r=t,t=e,e=null),isArray(t)||(r=t,t=null),!t&&isFunction(r)&&(t=[],r.length&&(r.toString().replace(commentRegExp,commentReplace).replace(cjsRequireRegExp,function(e,r){t.push(r)}),t=(1===r.length?["require"]:["require","exports","module"]).concat(t))),useInteractive&&(n=currentlyAddingScript||getInteractiveScript())&&(e||(e=n.getAttribute("data-requiremodule")),i=contexts[n.getAttribute("data-requirecontext")]),i?(i.defQueue.push([e,t,r]),i.defQueueMap[e]=!0):globalDefQueue.push([e,t,r])},define.amd={jQuery:!0},req.exec=function(text){return eval(text)},req(cfg),{requirejs,require,define}}function newContext(e){var t,r,n,i,o,l={waitSeconds:7,baseUrl:"./",paths:{},bundles:{},pkgs:{},shim:{},config:{}},s={},a={},c={},u=[],d={},h={},p={},f=1,m=1;function g(e){var t,r;for(t=0;t<e.length;t++)if("."===(r=e[t]))e.splice(t,1),t-=1;else if(".."===r)if(0===t||1===t&&".."===e[2]||".."===e[t-1])continue;else t>0&&(e.splice(t-1,2),t-=2)}function y(e,t,r){var n,i,o,s,a,c,u,d,h,p,f,m=t&&t.split("/"),y=l.map,v=y&&y["*"];if(e&&(u=(e=e.split("/")).length-1,l.nodeIdCompat&&jsSuffixRegExp.test(e[u])&&(e[u]=e[u].replace(jsSuffixRegExp,"")),"."===e[0].charAt(0)&&m&&(e=m.slice(0,m.length-1).concat(e)),g(e),e=e.join("/")),r&&y&&(m||v)){o=e.split("/");e:for(s=o.length;s>0;s-=1){if(c=o.slice(0,s).join("/"),m){for(a=m.length;a>0;a-=1)if((i=getOwn(y,m.slice(0,a).join("/")))&&(i=getOwn(i,c))){d=i,h=s;break e}}!p&&v&&getOwn(v,c)&&(p=getOwn(v,c),f=s)}!d&&p&&(d=p,h=f),d&&(o.splice(0,h,d),e=o.join("/"))}return(n=getOwn(l.pkgs,e))||e}function v(e){isBrowser&&each(scripts(),function(t){if(t.getAttribute("data-requiremodule")===e&&t.getAttribute("data-requirecontext")===n.contextName)return t.parentNode.removeChild(t),!0})}function w(e){var t=getOwn(l.paths,e);if(t&&isArray(t)&&t.length>1)return t.shift(),n.require.undef(e),n.makeRequire(null,{skipMap:!0})([e]),!0}function b(e){var t,r=e?e.indexOf("!"):-1;return r>-1&&(t=e.substring(0,r),e=e.substring(r+1,e.length)),[t,e]}function x(e,t,r,i){var o,l,s,a,c=null,u=t?t.name:null,h=e,p=!0,g="";return e||(p=!1,e="_@r"+(f+=1)),c=(a=b(e))[0],e=a[1],c&&(l=getOwn(d,c=y(c,u,i))),e&&(c?g=r?e:l&&l.normalize?l.normalize(e,function(e){return y(e,u,i)}):-1===e.indexOf("!")?y(e,u,i):e:(c=(a=b(g=y(e,u,i)))[0],g=a[1],r=!0,o=n.nameToUrl(g))),s=!c||l||r?"":"_unnormalized"+(m+=1),{prefix:c,name:g,parentMap:t,unnormalized:!!s,url:o,originalName:h,isDefine:p,id:(c?c+"!"+g:g)+s}}function S(e){var t=e.id,r=getOwn(s,t);return r||(r=s[t]=new n.Module(e)),r}function A(e,t,r){var n=e.id,i=getOwn(s,n);hasProp(d,n)&&(!i||i.defineEmitComplete)?"defined"===t&&r(d[n]):(i=S(e)).error&&"error"===t?r(i.error):i.on(t,r)}function M(e,t){var r=e.requireModules,n=!1;t?t(e):(each(r,function(t){var r=getOwn(s,t);r&&(r.error=e,r.events.error&&(n=!0,r.emit("error",e)))}),n||req.onError(e))}function _(){globalDefQueue.length&&(each(globalDefQueue,function(e){var t=e[0];"string"==typeof t&&(n.defQueueMap[t]=!0),u.push(e)}),globalDefQueue=[])}function k(e){delete s[e],delete a[e]}function P(e,t,r){var n=e.map.id;e.error?e.emit("error",e.error):(t[n]=!0,each(e.depMaps,function(n,i){var o=n.id,l=getOwn(s,o);!l||e.depMatched[i]||r[o]||(getOwn(t,o)?(e.defineDep(i,d[o]),e.check()):P(l,t,r))}),r[n]=!0)}function C(){var e,r,i=1e3*l.waitSeconds,s=i&&n.startTime+i<new Date().getTime(),c=[],u=[],d=!1,h=!0;if(!t){if(t=!0,eachProp(a,function(e){var t=e.map,n=t.id;if(e.enabled&&(t.isDefine||u.push(e),!e.error)){if(!e.inited&&s)w(n)?(r=!0,d=!0):(c.push(n),v(n));else if(!e.inited&&e.fetched&&t.isDefine&&(d=!0,!t.prefix))return h=!1}}),s&&c.length)return(e=makeError("timeout","Load timeout for modules: "+c,null,c)).contextName=n.contextName,M(e);h&&each(u,function(e){P(e,{},{})}),(!s||r)&&d&&(isBrowser||isWebWorker)&&!o&&(o=setTimeout(function(){o=0,C()},50)),t=!1}}function j(e){hasProp(d,e[0])||S(x(e[0],null,!0)).init(e[1],e[2])}function R(e,t,r,n){e.detachEvent&&!isOpera?n&&e.detachEvent(n,t):e.removeEventListener(r,t,!1)}function E(e){var t=e.currentTarget||e.srcElement;return R(t,n.onScriptLoad,"load","onreadystatechange"),R(t,n.onScriptError,"error"),{node:t,id:t&&t.getAttribute("data-requiremodule")}}function F(){var e;for(_();u.length;){if(null===(e=u.shift())[0])return M(makeError("mismatch","Mismatched anonymous define() module: "+e[e.length-1]));j(e)}n.defQueueMap={}}return i={require:function(e){return e.require?e.require:e.require=n.makeRequire(e.map)},exports:function(e){if(e.usingExports=!0,e.map.isDefine)if(e.exports)return d[e.map.id]=e.exports;else return e.exports=d[e.map.id]={}},module:function(e){return e.module?e.module:e.module={id:e.map.id,uri:e.map.url,config:function(){return getOwn(l.config,e.map.id)||{}},exports:e.exports||(e.exports={})}}},(r=function(e){this.events=getOwn(c,e.id)||{},this.map=e,this.shim=getOwn(l.shim,e.id),this.depExports=[],this.depMaps=[],this.depMatched=[],this.pluginMaps={},this.depCount=0}).prototype={init:function(e,t,r,n){n=n||{},this.inited||(this.factory=t,r?this.on("error",r):this.events.error&&(r=bind(this,function(e){this.emit("error",e)})),this.depMaps=e&&e.slice(0),this.errback=r,this.inited=!0,this.ignore=n.ignore,n.enabled||this.enabled?this.enable():this.check())},defineDep:function(e,t){this.depMatched[e]||(this.depMatched[e]=!0,this.depCount-=1,this.depExports[e]=t)},fetch:function(){if(!this.fetched){this.fetched=!0,n.startTime=new Date().getTime();var e=this.map;if(!this.shim)return e.prefix?this.callPlugin():this.load();n.makeRequire(this.map,{enableBuildCallback:!0})(this.shim.deps||[],bind(this,function(){return e.prefix?this.callPlugin():this.load()}))}},load:function(){var e=this.map.url;h[e]||(h[e]=!0,n.load(this.map.id,e))},check:function(){if(this.enabled&&!this.enabling){var e,t,r=this.map.id,i=this.depExports,o=this.exports,l=this.factory;if(this.inited){if(this.error)this.emit("error",this.error);else if(!this.defining){if(this.defining=!0,this.depCount<1&&!this.defined){if(isFunction(l)){if(this.events.error&&this.map.isDefine||req.onError!==defaultOnError)try{o=n.execCb(r,l,i,o)}catch(t){e=t}else o=n.execCb(r,l,i,o);if(this.map.isDefine&&void 0===o&&((t=this.module)?o=t.exports:this.usingExports&&(o=this.exports)),e)return e.requireMap=this.map,e.requireModules=this.map.isDefine?[this.map.id]:null,e.requireType=this.map.isDefine?"define":"require",M(this.error=e)}else o=l;if(this.exports=o,this.map.isDefine&&!this.ignore&&(d[r]=o,req.onResourceLoad)){var s=[];each(this.depMaps,function(e){s.push(e.normalizedMap||e)}),req.onResourceLoad(n,this.map,s)}k(r),this.defined=!0}this.defining=!1,this.defined&&!this.defineEmitted&&(this.defineEmitted=!0,this.emit("defined",this.exports),this.defineEmitComplete=!0)}}else hasProp(n.defQueueMap,r)||this.fetch()}},callPlugin:function(){var e=this.map,t=e.id,r=x(e.prefix);this.depMaps.push(r),A(r,"defined",bind(this,function(r){var i,o,a,c=getOwn(p,this.map.id),u=this.map.name,d=this.map.parentMap?this.map.parentMap.name:null,h=n.makeRequire(e.parentMap,{enableBuildCallback:!0});if(this.map.unnormalized){r.normalize&&(u=r.normalize(u,function(e){return y(e,d,!0)})||""),A(o=x(e.prefix+"!"+u,this.map.parentMap,!0),"defined",bind(this,function(e){this.map.normalizedMap=o,this.init([],function(){return e},null,{enabled:!0,ignore:!0})})),(a=getOwn(s,o.id))&&(this.depMaps.push(o),this.events.error&&a.on("error",bind(this,function(e){this.emit("error",e)})),a.enable());return}if(c){this.map.url=n.nameToUrl(c),this.load();return}(i=bind(this,function(e){this.init([],function(){return e},null,{enabled:!0})})).error=bind(this,function(e){this.inited=!0,this.error=e,e.requireModules=[t],eachProp(s,function(e){0===e.map.id.indexOf(t+"_unnormalized")&&k(e.map.id)}),M(e)}),i.fromText=bind(this,function(r,o){var s=e.name,a=x(s),c=useInteractive;o&&(r=o),c&&(useInteractive=!1),S(a),hasProp(l.config,t)&&(l.config[s]=l.config[t]);try{req.exec(r)}catch(e){return M(makeError("fromtexteval","fromText eval for "+t+" failed: "+e,e,[t]))}c&&(useInteractive=!0),this.depMaps.push(a),n.completeLoad(s),h([s],i)}),r.load(e.name,h,i,l)})),n.enable(r,this),this.pluginMaps[r.id]=r},enable:function(){a[this.map.id]=this,this.enabled=!0,this.enabling=!0,each(this.depMaps,bind(this,function(e,t){var r,o,l;if("string"==typeof e){if(e=x(e,this.map.isDefine?this.map:this.map.parentMap,!1,!this.skipMap),this.depMaps[t]=e,l=getOwn(i,e.id)){this.depExports[t]=l(this);return}this.depCount+=1,A(e,"defined",bind(this,function(e){this.undefed||(this.defineDep(t,e),this.check())})),this.errback?A(e,"error",bind(this,this.errback)):this.events.error&&A(e,"error",bind(this,function(e){this.emit("error",e)}))}o=s[r=e.id],hasProp(i,r)||!o||o.enabled||n.enable(e,this)})),eachProp(this.pluginMaps,bind(this,function(e){var t=getOwn(s,e.id);t&&!t.enabled&&n.enable(e,this)})),this.enabling=!1,this.check()},on:function(e,t){var r=this.events[e];r||(r=this.events[e]=[]),r.push(t)},emit:function(e,t){each(this.events[e],function(e){e(t)}),"error"===e&&delete this.events[e]}},(n={config:l,contextName:e,registry:s,defined:d,urlFetched:h,defQueue:u,defQueueMap:{},Module:r,makeModuleMap:x,nextTick:req.nextTick,onError:M,configure:function(e){if(e.baseUrl&&"/"!==e.baseUrl.charAt(e.baseUrl.length-1)&&(e.baseUrl+="/"),"string"==typeof e.urlArgs){var t=e.urlArgs;e.urlArgs=function(e,r){return(-1===r.indexOf("?")?"?":"&")+t}}var r=l.shim,i={paths:!0,bundles:!0,config:!0,map:!0};eachProp(e,function(e,t){i[t]?(l[t]||(l[t]={}),mixin(l[t],e,!0,!0)):l[t]=e}),e.bundles&&eachProp(e.bundles,function(e,t){each(e,function(e){e!==t&&(p[e]=t)})}),e.shim&&(eachProp(e.shim,function(e,t){isArray(e)&&(e={deps:e}),(e.exports||e.init)&&!e.exportsFn&&(e.exportsFn=n.makeShimExports(e)),r[t]=e}),l.shim=r),e.packages&&each(e.packages,function(e){var t;t=(e="string"==typeof e?{name:e}:e).name,e.location&&(l.paths[t]=e.location),l.pkgs[t]=e.name+"/"+(e.main||"main").replace(currDirRegExp,"").replace(jsSuffixRegExp,"")}),eachProp(s,function(e,t){e.inited||e.map.unnormalized||(e.map=x(t,null,!0))}),(e.deps||e.callback)&&n.require(e.deps||[],e.callback)},makeShimExports:function(e){return function(){var t;return e.init&&(t=e.init.apply(__webpack_require__.g,arguments)),t||e.exports&&getGlobal(e.exports)}},makeRequire:function(t,r){function o(l,a,c){var u,h;return(r.enableBuildCallback&&a&&isFunction(a)&&(a.__requireJsBuild=!0),"string"==typeof l)?isFunction(a)?M(makeError("requireargs","Invalid require call"),c):t&&hasProp(i,l)?i[l](s[t.id]):req.get?req.get(n,l,t,o):hasProp(d,u=x(l,t,!1,!0).id)?d[u]:M(makeError("notloaded",'Module name "'+u+'" has not been loaded yet for context: '+e+(t?"":". Use require([])"))):(F(),n.nextTick(function(){F(),(h=S(x(null,t))).skipMap=r.skipMap,h.init(l,a,c,{enabled:!0}),C()}),o)}return r=r||{},mixin(o,{isBrowser:isBrowser,toUrl:function(e){var r,i=e.lastIndexOf("."),o=e.split("/")[0],l="."===o||".."===o;return -1!==i&&(!l||i>1)&&(r=e.substring(i,e.length),e=e.substring(0,i)),n.nameToUrl(y(e,t&&t.id,!0),r,!0)},defined:function(e){return hasProp(d,x(e,t,!1,!0).id)},specified:function(e){return hasProp(d,e=x(e,t,!1,!0).id)||hasProp(s,e)}}),t||(o.undef=function(e){_();var r=x(e,t,!0),i=getOwn(s,e);i.undefed=!0,v(e),delete d[e],delete h[r.url],delete c[e],eachReverse(u,function(t,r){t[0]===e&&u.splice(r,1)}),delete n.defQueueMap[e],i&&(i.events.defined&&(c[e]=i.events),k(e))}),o},enable:function(e){getOwn(s,e.id)&&S(e).enable()},completeLoad:function(e){var t,r,i,o=getOwn(l.shim,e)||{},a=o.exports;for(_();u.length;){if(null===(r=u.shift())[0]){if(r[0]=e,t)break;t=!0}else r[0]===e&&(t=!0);j(r)}if(n.defQueueMap={},i=getOwn(s,e),!t&&!hasProp(d,e)&&i&&!i.inited)if(!l.enforceDefine||a&&getGlobal(a))j([e,o.deps||[],o.exportsFn]);else if(w(e))return;else return M(makeError("nodefine","No define call for "+e,null,[e]));C()},nameToUrl:function(e,t,r){var i,o,s,a,c,u,d=getOwn(l.pkgs,e);if(d&&(e=d),u=getOwn(p,e))return n.nameToUrl(u,t,r);if(req.jsExtRegExp.test(e))a=e+(t||"");else{for(i=l.paths,s=(o=e.split("/")).length;s>0;s-=1)if(c=getOwn(i,o.slice(0,s).join("/"))){isArray(c)&&(c=c[0]),o.splice(0,s,c);break}a=o.join("/"),a+=t||(/^data\:|^blob\:|\?/.test(a)||r?"":".js"),a=("/"===a.charAt(0)||a.match(/^[\w\+\.\-]+:/)?"":l.baseUrl)+a}return l.urlArgs&&!/^blob\:/.test(a)?a+l.urlArgs(e,a):a},load:function(e,t){req.load(n,e,t)},execCb:function(e,t,r,n){return t.apply(n,r)},onScriptLoad:function(e){if("load"===e.type||readyRegExp.test((e.currentTarget||e.srcElement).readyState)){interactiveScript=null;var t=E(e);n.completeLoad(t.id)}},onScriptError:function(e){var t=E(e);if(!w(t.id)){var r=[];return eachProp(s,function(e,n){0!==n.indexOf("_@r")&&each(e.depMaps,function(e){if(e.id===t.id)return r.push(n),!0})}),M(makeError("scripterror",'Script error for "'+t.id+(r.length?'", needed by: '+r.join(", "):'"'),e,[t.id]))}}}).require=n.makeRequire(),n}function getInteractiveScript(){return interactiveScript&&"interactive"===interactiveScript.readyState||eachReverse(scripts(),function(e){if("interactive"===e.readyState)return interactiveScript=e}),interactiveScript}}},63128(e,t,r){r.d(t,{x:()=>o});var n=r(50467),i=r(99418);class o{get innerHTML(){return this.__el.innerHTML}set innerHTML(e){this.__el.innerHTML=i.A.sanitize(e)}get outerHTML(){return this.__el.outerHTML}set outerHTML(e){this.__el.outerHTML=i.A.sanitize(e)}appendChild(e){(e instanceof HTMLElement||"string"==typeof e)&&this.__el.appendChild("string"==typeof e?document.createTextNode(e):e)}constructor(e){return(0,n._)(this,"__el",void 0),this.__el=e,new Proxy(this,{get:(e,t,r)=>{if(t in e){let n=Reflect.get(e,t,r);return"function"==typeof n?n.bind(r):n}let n=e.__el[t];return"function"==typeof n?n.bind(e.__el):n},set:(e,t,r,n)=>{let i=Object.getOwnPropertyDescriptor(o.prototype,t);return i&&"function"==typeof i.set?i.set.call(n,r):e.__el[t]=r,!0}})}}},52568(e,t,r){r.d(t,{$K:()=>c,Dv:()=>s,PC:()=>l,Vy:()=>d,Ww:()=>u,YQ:()=>a,bc:()=>o});var n=r(74848),i=r(96540);let o=(0,i.createContext)(null),l=(0,i.createContext)(null);function s(e){return(0,n.jsx)(o.Provider,{value:e.context,children:e.children})}let a=i.memo(e=>(0,n.jsx)(l.Provider,{value:e.context,children:(0,n.jsx)(o.Provider,{value:e.context,children:e.children})}));function c(){return(0,i.useContext)(o)}function u(){return(0,i.useContext)(l)}function d(){return c().view}a.displayName="FlowViewContextProvider"},68161(e,t,r){r.d(t,{G:()=>s,z:()=>a});var n=r(50467),i=r(95243),o=r(2543),l=r.n(o);class s{get key(){return this.options.key}get title(){return this.options.title}set title(e){this.options.title=e}get sort(){return this.options.sort}get on(){return this.options.on}set on(e){this.options.on=e}get defaultParams(){return this.options.defaultParams}get manual(){return this.options.manual}set manual(e){this.options.manual=e}get steps(){let e={};for(let[t,r]of this.getSortedSteps())e[t]=r.serialize();return e}getSortedSteps(){return[...this._steps.entries()].sort((e,t)=>{let[,r]=e,[,n]=t;return(r.serialize().sort??0)-(n.serialize().sort??0)})}setOptions(e){Object.assign(this.options,e)}getSteps(){return this._steps}mapSteps(e){return this.getSortedSteps().map(t=>{let[,r]=t;return e(r)})}getStep(e){return this._steps.get(e)}addStep(e,t){let r=this._steps.get(e);if(r)return r.setOptions(t),r;{if(void 0===t.sort){let e=Math.max(0,...Array.from(this._steps.values()).map(e=>e.serialize().sort??0));t={...t,sort:e+1}}let r=new a({...t,key:e},this);return this._steps.set(e,r),r}}setStep(e,t){return this.addStep(e,t)}hasStep(e){return this._steps.has(e)}moveStep(e,t){if(!this._steps.has(e))throw Error(`Source step '${e}' not found`);if(!this._steps.has(t))throw Error(`Target step '${t}' not found`);if(e===t)return;let r=this.getSortedSteps(),n=[],i=r.filter(t=>{let[r]=t;return r!==e}),o=this._steps.get(e);for(let[r,l]of i)r===t&&n.push([e,o]),n.push([r,l]);n.forEach((e,t)=>{let[r,n]=e;n.setOptions({sort:t+1})})}removeStep(e){this._steps.delete(e)}async saveStep(e){await this.flowRegistry.saveFlow(this)}async destroyStep(e){this.removeStep(e),await this.flowRegistry.saveFlow(this)}async save(){await this.flowRegistry.saveFlow(this)}async destroy(){await this.flowRegistry.destroyFlow(this.key)}remove(){return this.flowRegistry.removeFlow(this.key)}toData(){return this.serialize()}serialize(){let e={...this.options};for(let[t,r]of this.getSortedSteps())e.steps=e.steps||{},e.steps[t]={...r.serialize()};return e}constructor(e,t){for(let[r,o]of((0,n._)(this,"flowRegistry",void 0),(0,n._)(this,"_steps",void 0),(0,n._)(this,"options",void 0),this.flowRegistry=t,this._steps=i.observable.shallow(new Map),this.options=i.observable.shallow(l().omit(e,["steps"])),Object.entries(e.steps||{})))this.addStep(r,o)}}class a{setOptions(e){Object.assign(this.options,e)}get key(){return this.options.key}get flowKey(){return this.flowDef.key}get title(){return this.options.title}set title(e){this.options.title=e}get uiSchema(){return this.options.uiSchema}get defaultParams(){return this.options.defaultParams||{}}set defaultParams(e){this.options.defaultParams=e}get use(){return this.options.use}async save(){return this.flowDef.save()}async remove(){return this.flowDef.removeStep(this.key)}async destroy(){return this.flowDef.destroyStep(this.key)}serialize(){return{...this.options,flowKey:this.flowDef.key}}constructor(e,t){(0,n._)(this,"flowDef",void 0),(0,n._)(this,"options",void 0),this.flowDef=t,this.options=i.observable.shallow(e)}}},91013(e,t,r){r.d(t,{I:()=>u,R:()=>o});var n=r(50467);r(67980);var i=r(31108);function o(e){return"boolean"==typeof(null==e?void 0:e.preprocessTemplates)?e.preprocessTemplates:(null==e?void 0:e.version)!=="v2"}let l=/(^|[=(:,[\s)])(\{\{\s*(ctx(?:\.|\[|\?\.)[^}]*)\s*\}\})/m;function s(e){let t=String(e||"").match(l);if(!t)return null;let r=String(t[2]||"").trim(),n=String(t[3]||"").trim();return r&&n?{placeholder:r,expression:n}:null}function a(e,t){if(!(e instanceof SyntaxError||"SyntaxError"===String((null==e?void 0:e.name)||""))||!t)return!1;let r=String((null==e?void 0:e.message)||e||"");return/unexpected token/i.test(r)}function c(e,t){let r=SyntaxError(`"${t.placeholder}" has been deprecated and cannot be used as executable RunJS syntax. Use await ctx.getVar("${t.expression}") instead, or keep "${t.placeholder}" as a plain string.`);try{r.cause=e}catch(e){}try{r.__runjsHideLocation=!0,r.stack=`${r.name}: ${r.message}`}catch(e){}return r}class u{register(e,t){this.globals[e]=t}async run(e){let t="u">typeof location?location.search:void 0;if("string"==typeof t&&t.includes("skipRunJs=true"))return{success:!0,value:null};let r=`(async () => {
|
|
1
|
+
/*! For license information please see index-ec960e25.js.LICENSE.txt */
|
|
2
|
+
export const __rspack_esm_id="8410";export const __rspack_esm_ids=["8410"];export const __webpack_modules__={35358(e,t,r){var n={"./af":"25177","./af.js":"25177","./ar":"61509","./ar-dz":"41488","./ar-dz.js":"41488","./ar-kw":"58676","./ar-kw.js":"58676","./ar-ly":"42353","./ar-ly.js":"42353","./ar-ma":"24496","./ar-ma.js":"24496","./ar-sa":"82682","./ar-sa.js":"82682","./ar-tn":"89756","./ar-tn.js":"89756","./ar.js":"61509","./az":"95533","./az.js":"95533","./be":"28959","./be.js":"28959","./bg":"47777","./bg.js":"47777","./bm":"54903","./bm.js":"54903","./bn":"61290","./bn-bd":"17357","./bn-bd.js":"17357","./bn.js":"61290","./bo":"31545","./bo.js":"31545","./br":"11470","./br.js":"11470","./bs":"44429","./bs.js":"44429","./ca":"7306","./ca.js":"7306","./cs":"56464","./cs.js":"56464","./cv":"73635","./cv.js":"73635","./cy":"64226","./cy.js":"64226","./da":"93601","./da.js":"93601","./de":"77853","./de-at":"26111","./de-at.js":"26111","./de-ch":"54697","./de-ch.js":"54697","./de.js":"77853","./dv":"60708","./dv.js":"60708","./el":"54691","./el.js":"54691","./en-au":"53872","./en-au.js":"53872","./en-ca":"28298","./en-ca.js":"28298","./en-gb":"56195","./en-gb.js":"56195","./en-ie":"66584","./en-ie.js":"66584","./en-il":"65543","./en-il.js":"65543","./en-in":"9033","./en-in.js":"9033","./en-nz":"79402","./en-nz.js":"79402","./en-sg":"43004","./en-sg.js":"43004","./eo":"32934","./eo.js":"32934","./es":"97650","./es-do":"20838","./es-do.js":"20838","./es-mx":"17730","./es-mx.js":"17730","./es-us":"56575","./es-us.js":"56575","./es.js":"97650","./et":"3035","./et.js":"3035","./eu":"3508","./eu.js":"3508","./fa":"119","./fa.js":"119","./fi":"90527","./fi.js":"90527","./fil":"95995","./fil.js":"95995","./fo":"52477","./fo.js":"52477","./fr":"85498","./fr-ca":"26435","./fr-ca.js":"26435","./fr-ch":"37892","./fr-ch.js":"37892","./fr.js":"85498","./fy":"37071","./fy.js":"37071","./ga":"41734","./ga.js":"41734","./gd":"70217","./gd.js":"70217","./gl":"77329","./gl.js":"77329","./gom-deva":"32124","./gom-deva.js":"32124","./gom-latn":"93383","./gom-latn.js":"93383","./gu":"95050","./gu.js":"95050","./he":"11713","./he.js":"11713","./hi":"43861","./hi.js":"43861","./hr":"26308","./hr.js":"26308","./hu":"90609","./hu.js":"90609","./hy-am":"17160","./hy-am.js":"17160","./id":"74063","./id.js":"74063","./is":"89374","./is.js":"89374","./it":"88383","./it-ch":"21827","./it-ch.js":"21827","./it.js":"88383","./ja":"23827","./ja.js":"23827","./jv":"89722","./jv.js":"89722","./ka":"41794","./ka.js":"41794","./kk":"27088","./kk.js":"27088","./km":"96870","./km.js":"96870","./kn":"84451","./kn.js":"84451","./ko":"63164","./ko.js":"63164","./ku":"98174","./ku.js":"98174","./ky":"78474","./ky.js":"78474","./lb":"79680","./lb.js":"79680","./lo":"15867","./lo.js":"15867","./lt":"45766","./lt.js":"45766","./lv":"69532","./lv.js":"69532","./me":"58076","./me.js":"58076","./mi":"41848","./mi.js":"41848","./mk":"30306","./mk.js":"30306","./ml":"73739","./ml.js":"73739","./mn":"99053","./mn.js":"99053","./mr":"86169","./mr.js":"86169","./ms":"73386","./ms-my":"92297","./ms-my.js":"92297","./ms.js":"73386","./mt":"77075","./mt.js":"77075","./my":"72264","./my.js":"72264","./nb":"22274","./nb.js":"22274","./ne":"8235","./ne.js":"8235","./nl":"92572","./nl-be":"43784","./nl-be.js":"43784","./nl.js":"92572","./nn":"54566","./nn.js":"54566","./oc-lnc":"69330","./oc-lnc.js":"69330","./pa-in":"29849","./pa-in.js":"29849","./pl":"94418","./pl.js":"94418","./pt":"79834","./pt-br":"48303","./pt-br.js":"48303","./pt.js":"79834","./ro":"24457","./ro.js":"24457","./ru":"82271","./ru.js":"82271","./sd":"1221","./sd.js":"1221","./se":"33478","./se.js":"33478","./si":"17538","./si.js":"17538","./sk":"5784","./sk.js":"5784","./sl":"46637","./sl.js":"46637","./sq":"86794","./sq.js":"86794","./sr":"45719","./sr-cyrl":"3322","./sr-cyrl.js":"3322","./sr.js":"45719","./ss":"56000","./ss.js":"56000","./sv":"41011","./sv.js":"41011","./sw":"40748","./sw.js":"40748","./ta":"11025","./ta.js":"11025","./te":"11885","./te.js":"11885","./tet":"28861","./tet.js":"28861","./tg":"86571","./tg.js":"86571","./th":"55802","./th.js":"55802","./tk":"59527","./tk.js":"59527","./tl-ph":"29231","./tl-ph.js":"29231","./tlh":"31052","./tlh.js":"31052","./tr":"85096","./tr.js":"85096","./tzl":"79846","./tzl.js":"79846","./tzm":"81765","./tzm-latn":"97711","./tzm-latn.js":"97711","./tzm.js":"81765","./ug-cn":"48414","./ug-cn.js":"48414","./uk":"16618","./uk.js":"16618","./ur":"57777","./ur.js":"57777","./uz":"57609","./uz-latn":"72475","./uz-latn.js":"72475","./uz.js":"57609","./vi":"21135","./vi.js":"21135","./x-pseudo":"64051","./x-pseudo.js":"64051","./yo":"82218","./yo.js":"82218","./zh-cn":"52648","./zh-cn.js":"52648","./zh-hk":"1632","./zh-hk.js":"1632","./zh-mo":"31541","./zh-mo.js":"31541","./zh-tw":"50304","./zh-tw.js":"50304"};function i(e){return r(o(e))}function o(e){if(!r.o(n,e)){var t=Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return n[e]}i.keys=function(){return Object.keys(n)},i.resolve=o,e.exports=i,i.id=35358},96101(e,t,r){var n={};r.r(n),r.d(n,{Application:()=>es,ApplicationContext:()=>ed,BlankComponent:()=>W,Plugin:()=>ey,RouterContextCleaner:()=>V,WebSocketClient:()=>J,createMockClient:()=>em});var i=r(58587),o=r(18150),l=r(68238),s=r(50467),a=r(74848),u=r(95243),c=r(19098),d=r(88909),h=r(55373),p=r.n(h);class f{get storagePrefix(){return this.api.storagePrefix}get locale(){return this.getLocale()}set locale(e){this.setLocale(e)}get role(){return this.getRole()}set role(e){this.setRole(e)}get token(){return this.getToken()}set token(e){this.setToken(e)}get authenticator(){return this.getAuthenticator()}set authenticator(e){this.setAuthenticator(e)}getOption(e){return this.api.storage.getItem(e)}setOption(e,t){return this.options[e]=t,this.api.storage.setItem(e,t||"")}getLocale(){return this.getOption("locale")}setLocale(e){this.setOption("locale",e)}getRole(){return this.getOption("role")}setRole(e){this.setOption("role",e)}getToken(){return this.getOption("token")}setToken(e){this.setOption("token",e),this.api.app&&this.api.app.eventBus.dispatchEvent(new CustomEvent("auth:tokenChanged",{detail:{token:e,authenticator:this.authenticator}}))}getAuthenticator(){return this.getOption("auth")}setAuthenticator(e){this.setOption("auth",e)}middleware(e){return this.locale&&(e.headers["X-Locale"]=this.locale),this.role&&(e.headers["X-Role"]=this.role),this.authenticator&&!e.headers["X-Authenticator"]&&(e.headers["X-Authenticator"]=this.authenticator),this.token&&(e.headers.Authorization=`Bearer ${this.token}`),e}async signIn(e,t){var r;let n=await this.api.request({method:"post",url:"auth:signIn",data:e,headers:{"X-Authenticator":t}}),i=null==n||null==(r=n.data)?void 0:r.data;return this.setAuthenticator(t),this.setToken(null==i?void 0:i.token),n}async signUp(e,t){return await this.api.request({method:"post",url:"auth:signUp",data:e,headers:{"X-Authenticator":t}})}async signOut(){let e=await this.api.request({method:"post",url:"auth:signOut"});return this.setToken(null),this.setRole(null),this.setAuthenticator(null),e}async lostPassword(e){let t=Object.fromEntries(new URLSearchParams(window.location.search).entries());return await this.api.request({method:"post",url:"auth:lostPassword",data:{...e,baseURL:window.location.href.split("/forgot-password")[0]},headers:{"X-Authenticator":t.name}})}async resetPassword(e){return await this.api.request({method:"post",url:"auth:resetPassword",data:e})}async checkResetToken(e){return await this.api.request({method:"post",url:"auth:checkResetToken",data:e})}constructor(e){(0,s._)(this,"api",void 0),(0,s._)(this,"options",{locale:null,role:null,authenticator:null,token:null}),this.api=e,this.api.axios.interceptors.request.use(this.middleware.bind(this))}}class g{toUpperCase(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";for(var t=arguments.length,r=Array(t>1?t-1:0),n=1;n<t;n++)r[n-1]=arguments[n];return e.toUpperCase()+r.map(e=>e.toUpperCase()).join("_")}constructor(){(0,s._)(this,"storagePrefix",void 0)}}class m extends g{clear(){this.items.clear()}getItem(e){return this.items.get(e)}setItem(e,t){return this.items.set(e,t)}removeItem(e){return this.items.delete(e)}constructor(...e){super(...e),(0,s._)(this,"items",new Map)}}class y extends g{clear(){return this.items.clear()}getItem(e){return this.shareToken&&"token"===e&&this.baseStoragePrefix?this.items.getItem(this.toUpperCase(this.baseStoragePrefix,e)):this.items.getItem(this.toUpperCase(this.storagePrefix,e))}setItem(e,t){return this.shareToken&&"token"===e&&this.baseStoragePrefix?this.items.setItem(this.toUpperCase(this.baseStoragePrefix,e),t):this.items.setItem(this.toUpperCase(this.storagePrefix,e),t)}removeItem(e){return this.shareToken&&"token"===e&&this.baseStoragePrefix?this.items.removeItem(this.toUpperCase(this.baseStoragePrefix,e)):this.items.removeItem(this.toUpperCase(this.storagePrefix,e))}constructor(e,t="",r=!1){super(),(0,s._)(this,"storagePrefix",void 0),(0,s._)(this,"baseStoragePrefix",void 0),(0,s._)(this,"shareToken",void 0),(0,s._)(this,"items",void 0),this.storagePrefix=e,this.baseStoragePrefix=t,this.shareToken=r,this.items=window.localStorage}}class v extends y{constructor(e,t="",r=!1){super(e,t,r),(0,s._)(this,"storagePrefix",void 0),(0,s._)(this,"baseStoragePrefix",void 0),(0,s._)(this,"shareToken",void 0),this.storagePrefix=e,this.baseStoragePrefix=t,this.shareToken=r,this.items=window.sessionStorage}}class w{toErrMessages(e){var t,r,n,i,o,l,s,a,u,c,d;if("u">typeof document&&"string"==typeof(null==e||null==(t=e.response)?void 0:t.data)){let t=document.createElement("div");t.innerHTML=null==e||null==(u=e.response)?void 0:u.data;let r=t.textContent||t.innerText;return r.includes("Error occurred while trying")||r.includes("502 Bad Gateway")?[{code:"APP_WARNING",message:r="The application may be starting up. Please try again later."}]:[{message:r}]}return(null==e||null==(n=e.response)||null==(r=n.data)?void 0:r.error)?[null==e||null==(d=e.response)||null==(c=d.data)?void 0:c.error]:(null==e||null==(o=e.response)||null==(i=o.data)?void 0:i.errors)||(null==e||null==(s=e.response)||null==(l=s.data)?void 0:l.messages)||(null==e||null==(a=e.response)?void 0:a.error)||[{message:e.message||"Server error"}]}getHeaders(){let e={};return this.auth.locale&&(e["X-Locale"]=this.auth.locale),this.auth.role&&(e["X-Role"]=this.auth.role),this.auth.authenticator&&(e["X-Authenticator"]=this.auth.authenticator),this.auth.token&&(e.Authorization=`Bearer ${this.auth.token}`),e}createStorage(e){return"localStorage"===e&&"u">typeof localStorage?new y(this.storagePrefix,this.baseStoragePrefix,this.shareToken):"sessionStorage"===e&&"u">typeof sessionStorage?new v(this.storagePrefix,this.baseStoragePrefix,this.shareToken):new m}initStorage(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"localStorage";if(e){this.storage=new e(this);return}this.storage=this.createStorage(t)}interceptors(){this.axios.interceptors.request.use(e=>(e.paramsSerializer=e=>p().stringify(e,{strictNullHandling:!0,arrayFormat:"brackets"}),e))}request(e){let{resource:t,resourceOf:r,action:n,params:i,headers:o}=e;return t?this.resource(t,r,o)[n](i):this.axios.request(e)}resource(e,t,r,n){return new Proxy({},{get:(i,o)=>{if(n)return;let l=e.split(".").join(`/${encodeURIComponent(t)||"_"}/`),s={url:l+=`:${o.toString()}`};return["get","list"].includes(o)?s.method="get":s.method="post",async(e,t)=>{let{values:n,filter:i,...o}=e||{};return s.params=o,i&&("string"==typeof i?s.params.filter=i:(i["*"]&&delete i["*"],s.params.filter=JSON.stringify(i))),"get"!==s.method&&(s.data=n||{}),await this.request({...s,...t,headers:r})}}})}constructor(e){if((0,s._)(this,"options",void 0),(0,s._)(this,"axios",void 0),(0,s._)(this,"auth",void 0),(0,s._)(this,"storage",void 0),(0,s._)(this,"storagePrefix","NOCOBASE_"),(0,s._)(this,"baseStoragePrefix","NOCOBASE_"),(0,s._)(this,"shareToken",!1),this.options=e,"function"==typeof e)this.axios=e;else{let{appName:t,authClass:r,storageType:n,storageClass:i,storagePrefix:o="NOCOBASE_",shareToken:l=!1,...s}=e||{};this.shareToken=l,this.baseStoragePrefix=o,this.storagePrefix=t?`${o}${t.toUpperCase()}_`:o,this.axios=d.A.create(s),this.initStorage(i,n),r&&(this.auth=new r(this))}this.storage||this.initStorage(),this.auth||(this.auth=new f(this)),this.interceptors()}}let b=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"/";if("u"<typeof window||!window.location.pathname)return;let t=`${e}apps/`;if(window.location.pathname.startsWith(t))return window.location.pathname.substring(t.length).split("/",1)[0]||""};var x=r(72635),S=r(74586),_=r(19020),A=r(52718),k=r(96540),M=r(5338),E=r(52230),j=r(84976),R=r(47767);function P(e){Object.entries(e).forEach(e=>{let[t,r]=e;window.define(`${t}/client-v2`,()=>r)})}function C(e){window.define(`${e}/client-v2`,["exports",e],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.keys(t).forEach(function(r){"__esModule"===r||r in e&&e[r]===t[r]||Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[r]}})})})}function F(e,t){e.requirejs.config({waitSeconds:120,paths:t.reduce((e,t)=>(e[t.packageName]=t.url,e),{})})}function T(e,t){return function(){for(var r=arguments.length,n=Array(r),i=0;i<r;i++)n[i]=arguments[i];t(n.map((t,r)=>[e[r].name,(null==t?void 0:t.default)||t]).filter(e=>e[1]));let o=n.map((e,t)=>e?null:t).filter(e=>null!==e).map(t=>e[t].packageName);o.length>0&&console.error("[nocobase load plugin error]: These plugins do not have an `export.default` exported content or there is an error in the plugins. error plugins: \r\n%s",o.join(", \r\n"))}}function I(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];F(e,t);let r=t.map(e=>e.packageName);return r.forEach(e=>{C(e)}),new Promise((n,i)=>{e.requirejs(r,T(t,n),i)})}async function $(e){let{requirejs:t,pluginData:r,devDynamicImport:n}=e;if(0===r.length)return[];let i=[],o={};if(n){for await(let e of r){let t=await n(e.packageName);t&&(i.push([e.name,t.default]),o[e.packageName]=t.default)}P(o)}let l=r.filter(e=>!o[e.packageName]);if(0===l.length)return i;if(0===i.length){let e=await I(t,l);i.push(...e)}return i}class O{async init(e){await this.initStaticPlugins(e),this.loadRemotePlugins&&await this.initRemotePlugins()}async initStaticPlugins(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];for await(let t of e){let e=Array.isArray(t)?t[0]:t,r=Array.isArray(t)?t[1]:void 0;await this.add(e,r)}}async initRemotePlugins(){var e;let t=await this.app.apiClient.request({url:"pm:listEnabledV2"}),r=(null==t||null==(e=t.data)?void 0:e.data)||[];for await(let[e,t]of(await $({requirejs:this.app.requirejs,pluginData:r,devDynamicImport:this.app.devDynamicImport}))){let n=r.find(t=>t.name===e);await this.add(t,n)}}async add(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=this.getInstance(e,t);this.pluginInstances.set(e,r),t.name&&(this.pluginsAliases[t.name]=r),t.packageName&&(this.pluginsAliases[t.packageName]=r),await r.afterAdd()}get(e){return"string"==typeof e?this.pluginsAliases[e]:this.pluginInstances.get(e.default||e)}getInstance(e,t){return new e(t,this.app)}async load(){for(let e of(await this.initPlugins,this.pluginInstances.values()))await e.beforeLoad();for(let e of this.pluginInstances.values())await e.load(),this.app.eventBus.dispatchEvent(new CustomEvent(`plugin:${e.options.name}:loaded`,{detail:e}))}constructor(e,t,r){(0,s._)(this,"_plugins",void 0),(0,s._)(this,"loadRemotePlugins",void 0),(0,s._)(this,"app",void 0),(0,s._)(this,"pluginInstances",void 0),(0,s._)(this,"pluginsAliases",void 0),(0,s._)(this,"initPlugins",void 0),this._plugins=e,this.loadRemotePlugins=t,this.app=r,this.pluginInstances=new Map,this.pluginsAliases={},this.app=r,this.initPlugins=this.init(e)}}var D=r(2543);let N="admin.settings.",B="/admin/settings/",L="pm.";class z{clearCache(){this.cachedList={}}setAclSnippets(e){this.aclSnippets=e}getAclSnippet(e){let t=this.settings[e];return(null==t?void 0:t.skipAclConfigure)?null:(null==t?void 0:t.aclSnippet)?t.aclSnippet:`${L}${e}`}getRouteName(e){return`${N}${e}`}getRoutePath(e){return`${B}${e.replaceAll(".","/")}`}add(e,t){let r=e.split("."),n=r[0];this.settings[e]={...this.settings[e],Component:R.Outlet,...t,name:e,topLevelName:t.topLevelName||n},r.length>1&&(0,D.set)(this.settings,r.join(".children."),this.settings[e]),this.app.router.add(this.getRouteName(e),{path:this.getRoutePath(e),Component:this.settings[e].Component,componentLoader:this.settings[e].componentLoader})}remove(e){Object.keys(this.settings).forEach(t=>{t.startsWith(e)&&(delete this.settings[t],this.app.router.remove(`${N}${t}`))})}hasAuth(e){return!this.aclSnippets.includes(`!${this.getAclSnippet("*")}`)&&!1===this.aclSnippets.includes(`!${this.getAclSnippet(e)}`)}getSetting(e){return this.settings[e]}has(e){return!!this.hasAuth(e)&&!!this.getSetting(e)}get(e){var t,r;let n=!(arguments.length>1)||void 0===arguments[1]||arguments[1],i=this.hasAuth(e),o=this.getSetting(e);if(n&&!i||!o)return null;let l=Object.keys(o.children||{}).sort((e,t)=>e.localeCompare(t)).map(e=>this.get(o.children[e].name,n)).filter(Boolean).sort((e,t)=>(e.sort||0)-(t.sort||0)),{title:s,icon:a,aclSnippet:u,...c}=o;return{isTopLevel:e===o.topLevelName,...c,aclSnippet:this.getAclSnippet(e),title:s,isAllow:i,label:s,icon:null==(t=(r=this.app.flowEngine.context).renderIon)?void 0:t.call(r,a),path:this.getRoutePath(e),key:e,children:l.length?l:void 0}}getList(){let e=!(arguments.length>0)||void 0===arguments[0]||arguments[0],t=JSON.stringify(e);return this.cachedList[t]?this.cachedList[t]:this.cachedList[t]=Array.from(new Set(Object.values(this.settings).map(e=>e.topLevelName))).sort((e,t)=>e.localeCompare(t)).map(t=>this.get(t,e)).filter(Boolean).sort((e,t)=>(e.sort||0)-(t.sort||0))}getAclSnippets(){return Object.keys(this.settings).map(e=>this.getAclSnippet(e)).filter(Boolean)}constructor(e,t){(0,s._)(this,"settings",{}),(0,s._)(this,"aclSnippets",[]),(0,s._)(this,"app",void 0),(0,s._)(this,"cachedList",{}),this.app=t,Object.entries(e||{}).forEach(e=>{let[t,r]=e;this.add(t,r)})}}var q=r(45588);let W=e=>{let{children:t}=e;return(0,a.jsx)(a.Fragment,{children:t})},V=k.memo(e=>(0,a.jsx)(R.UNSAFE_RouteContext.Provider,{value:{outlet:null,matches:[],isDataRoute:!1},children:(0,a.jsx)(R.UNSAFE_LocationContext.Provider,{value:null,children:e.children})}));function U(e){let t=(0,R.useParams)(),r=(0,R.useLocation)(),n=(0,R.useMatches)(),i=e.flowEngine;(0,k.useEffect)(()=>{var e;let r=n[n.length-1];r&&(i.context._observableCache.route={name:r.id,pathname:r.pathname,path:(null==(e=r.handle)?void 0:e.path)||null,params:t})},[i.context,t,n]),(0,k.useEffect)(()=>{i.context._observableCache.location=r},[i.context,r])}function K(e){let{app:t}=e;return U(t),null}V.displayName="RouterContextCleaner";class H{get basename(){return this.router.basename}get state(){return this.router.state}get navigate(){return this.router.navigate}resolveLoadedComponent(e){if(e)return"function"==typeof e||"string"==typeof e?e:e.default||e.Component}createRouteLazyComponent(e){let t=k.lazy(()=>e().then(e=>{let t=this.resolveLoadedComponent(e);if(!t)throw Error("componentLoader must resolve to a React component or component module.");return"string"==typeof t?{default:e=>this.app.renderComponent(t,e)}:{default:t}}));return function(e){return(0,a.jsx)(k.Suspense,{fallback:null,children:(0,a.jsx)(t,{...e})})}}getRoutesTree(){let e={};for(let[t,r]of Object.entries(this.routes))(0,D.set)(e,t.split(".").join(".children."),{...(0,D.get)(e,t.split(".").join(".children.")),...r});let t=e=>Object.values(e).reduce((e,r)=>{if(1===Object.keys(r).length&&r.children)e.push(...t(r.children));else{let{Component:n,componentLoader:i,element:o,children:l,...s}=r,a=o;i?a=k.createElement(this.createRouteLazyComponent(i)):n&&(a="string"==typeof n?this.app.renderComponent(n):k.createElement(n));let u={...s,element:a,children:l?t(l):void 0};e.push(u)}return e},[]);return t(e)}getRoutes(){return this.routes}setType(e){this.options.type=e}getBasename(){return this.options.basename}setBasename(e){this.options.basename=e}matchRoutes(e){let t=Object.values(this.routes);return(0,q.ue)(t,e,this.basename)}isSkippedAuthCheckRoute(e){return this.matchRoutes(e).some(e=>{var t;return(null==e||null==(t=e.route)?void 0:t.skipAuthCheck)===!0})}getRouterComponent(e){let{type:t="browser",...r}=this.options,n={hash:j.createHashRouter,browser:j.createBrowserRouter,memory:R.createMemoryRouter},i=this.getRoutesTree(),o=(0,k.createContext)(null),l=()=>{let t=(0,k.useContext)(o);return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(K,{app:this.app}),(0,a.jsxs)(t,{children:[(0,a.jsx)(R.Outlet,{}),e]})]})},s=()=>{throw(0,R.useRouteError)()};return this.router=n[t]([{element:(0,a.jsx)(l,{}),errorElement:(0,a.jsx)(s,{}),children:i}],r),e=>{let{BaseLayout:t=W}=e;return(0,a.jsx)(o.Provider,{value:t,children:(0,a.jsx)(V,{children:(0,a.jsx)(j.RouterProvider,{future:{v7_startTransition:!0},router:this.router})})})}}add(e,t){this.routes[e]={id:e,...t,handle:{path:t.path}}}get(e){return this.routes[e]}has(e){return!!this.get(e)}remove(e){delete this.routes[e]}constructor(e={},t){(0,s._)(this,"routes",{}),(0,s._)(this,"options",void 0),(0,s._)(this,"app",void 0),(0,s._)(this,"router",void 0),this.options=e,this.app=t,this.routes=e.routes||{}}}class J{getURL(){if(!this.app)return;let e=this.app.getApiUrl();if(!e)return;let t="";if(this.getSubAppName(this.app))t=`?_app=${this.getSubAppName(this.app)}`;else{let e=b(this.app.getPublicPath());t=e?`?__appName=${e}`:""}let r=this.options.basename||"/ws";if(this.options.url){let e=new URL(this.options.url);if("localhost"===e.hostname){let n="https:"===location.protocol?"wss":"ws";return`${n}://${location.hostname}:${e.port}${r}${t}`}return`${this.options.url}${t}`}try{let n=new URL(e);return`${"https:"===n.protocol?"wss":"ws"}://${n.host}${r}${t}`}catch(e){return`${"https:"===location.protocol?"wss":"ws"}://${location.host}${r}${t}`}}get reconnectAttempts(){var e;return(null==(e=this.options)?void 0:e.reconnectAttempts)||30}get reconnectInterval(){var e;return(null==(e=this.options)?void 0:e.reconnectInterval)||1e3}get pingInterval(){var e;return(null==(e=this.options)?void 0:e.pingInterval)||3e4}get readyState(){return this._ws?this._ws.readyState:-1}createWebSocket(){return new WebSocket(this.getURL(),this.options.protocols)}connect(){let e;if(!this.enabled||(0===this._reconnectTimes&&console.log("[nocobase-ws]: connecting..."),this._reconnectTimes>=this.reconnectAttempts||this.readyState===WebSocket.OPEN))return;this._reconnectTimes++;let t=this.createWebSocket();t.onopen=()=>{for(let{type:e,listener:r,options:n}of(console.log("[nocobase-ws]: connected."),this.serverDown=!1,this._ws&&this.removeAllListeners(),this._reconnectTimes=0,this._ws=t,this.events))this._ws.addEventListener(e,r,n);e=setInterval(()=>this.send("ping"),this.pingInterval),this.connected=!0,this.emit("open",{})},t.onerror=async()=>{console.log("onerror",this.readyState,this._reconnectTimes)},t.onclose=async t=>{setTimeout(()=>this.connect(),this.reconnectInterval),console.log("onclose",this.readyState,this._reconnectTimes,this.serverDown),this.connected=!1,clearInterval(e)}}reconnect(){this._reconnectTimes=0,this.connect()}close(){if(this._ws)return this._reconnectTimes=this.reconnectAttempts,this._ws.close()}send(e){if(this._ws)return this._ws.send(e)}on(e,t,r){this.events.push({type:e,listener:t,options:r}),this._ws&&this._ws.addEventListener(e,t,r)}emit(e,t){for(let r of this.events)r.type===e&&r.listener(t)}off(e,t,r){let n=0;for(let r of this.events){if(r.type===e&&r.listener===t){this.events.splice(n,1);break}n++}this._ws&&this._ws.removeEventListener(e,t,r)}removeAllListeners(){if(this._ws)for(let{type:e,listener:t,options:r}of this.events)this._ws.removeEventListener(e,t,r)}constructor(e){if((0,s._)(this,"_ws",void 0),(0,s._)(this,"_reconnectTimes",0),(0,s._)(this,"events",[]),(0,s._)(this,"options",void 0),(0,s._)(this,"app",void 0),(0,s._)(this,"enabled",void 0),(0,s._)(this,"connected",!1),(0,s._)(this,"serverDown",!1),(0,s._)(this,"lastMessage",{}),(0,s._)(this,"getSubAppName",e=>{let t=e.getPublicPath(),r=`^${t}_app/([^/]*)/`,n=location.pathname.match(new RegExp(r));return n?n[1]:null}),!e){this.enabled=!1;return}this.options=!0===e?{}:e,this.enabled=!0,(0,u.define)(this,{serverDown:u.observable.ref,connected:u.observable.ref,lastMessage:u.observable.ref})}}function Y(e){if(!e)return console.warn("Failed to mount app: mount target should not be null or undefined."),null;if("string"==typeof e){let t=document.querySelector(e);return t||console.warn(`Failed to mount app: mount target selector "${e}" returned null.`),t}return window.ShadowRoot&&e instanceof window.ShadowRoot&&"closed"===e.mode&&console.warn('mounting on a ShadowRoot with `{mode: "closed"}` may lead to unpredictable bugs'),e}let G=function(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];let n=t.reduce((e,t)=>{let[r,n]=t,i=t=>{let{children:i}=t;return(0,a.jsx)(e,{children:(0,a.jsx)(r,{...n,children:i})})};return i.displayName=`compose(${r.displayName||r.name})`,i},W);return e=>t=>(0,a.jsx)(n,{children:e&&(0,a.jsx)(e,{...t})})};var Z=r(42524),X=r(77037),Q=r(60645),ee=r(18220),et=r(27253),er=r(37015),en=r(40961),ei=r(68984);function eo(e){e.define("react",()=>k),e.define("react-dom",()=>en),e.define("react/jsx-runtime",()=>a),e.define("react-router",()=>R),e.define("react-router-dom",()=>j),e.define("antd",()=>er),e.define("@ant-design/icons",()=>X),e.define("@ant-design/cssinjs",()=>Z),e.define("i18next",()=>x),e.define("react-i18next",()=>ei),e.define("@formily/core",()=>Q),e.define("@formily/react",()=>ee),e.define("@formily/reactive",()=>u),e.define("@formily/shared",()=>et),e.define("@nocobase/client-v2",()=>n),e.define("@nocobase/client-v2/client-v2",()=>n),e.define("@nocobase/flow-engine",()=>c)}var el=r(40407);class es{get pm(){return this.pluginManager}get disableAcl(){return this.options.disableAcl}get isWsAuthorized(){return this.wsAuthorized}updateFavicon(e){let t=document.querySelector('link[rel="shortcut icon"]');e&&(this.favicon=e),t?t.href=this.favicon||"/favicon/favicon.ico":((t=document.createElement("link")).rel="shortcut icon",t.href=this.favicon||"/favicon/favicon.ico",document.head.appendChild(t))}setWsAuthorized(e){this.wsAuthorized=e}initListeners(){this.eventBus.addEventListener("auth:tokenChanged",e=>{this.setTokenInWebSocket(e.detail)}),this.eventBus.addEventListener("maintaining:end",()=>{this.apiClient.auth.token&&this.setTokenInWebSocket({token:this.apiClient.auth.token,authenticator:this.apiClient.auth.getAuthenticator()})})}setTokenInWebSocket(e){let{token:t,authenticator:r}=e;this.maintaining||this.ws.send(JSON.stringify({type:"auth:token",payload:{token:t,authenticator:r}}))}setMaintaining(e){this.maintaining!==e&&(this.maintaining=e,e||this.eventBus.dispatchEvent(new Event("maintaining:end")))}initRequireJs(){if("u">typeof window){if(window.requirejs){this.requirejs=window.requirejs;return}window.requirejs=this.requirejs=(0,el.b)(),eo(this.requirejs),window.define=this.requirejs.define}}addDefaultProviders(){this.use(E.x,{i18n:this.i18n}),this.flowEngine.context.defineProperty("app",{value:this}),this.flowEngine.context.defineProperty("api",{value:this.apiClient}),this.flowEngine.context.defineProperty("i18n",{value:this.i18n}),this.flowEngine.context.defineProperty("router",{get:()=>this.router.router,cache:!1}),this.flowEngine.context.defineProperty("documentTitle",{get:()=>document.title}),this.flowEngine.context.defineProperty("route",{get:()=>{},observable:!0}),this.flowEngine.context.defineProperty("location",{get:()=>location,observable:!0}),this.use(c.FlowEngineProvider,{engine:this.flowEngine}),this.use(c.FlowEngineGlobalsContextProvider)}addReactRouterComponents(){this.addComponents({Link:j.Link,Navigate:R.Navigate,NavLink:j.NavLink})}addRoutes(){this.router.add("not-found",{path:"*",Component:this.components.AppNotFound})}getOptions(){return this.options}getName(){return b(this.getPublicPath())||null}getPublicPath(){let e=this.options.publicPath||"/";return e.endsWith("/")||(e+="/"),e}getApiUrl(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=this.apiClient.axios.defaults.baseURL;if(!t.startsWith("http://")&&!t.startsWith("https://")){let{protocol:e,host:r}=window.location;t=`${e}//${r}${t}`}return t.replace(/\/$/g,"")+"/"+e.replace(/^\//g,"")}getRouteUrl(e){return this.getPublicPath()+e.replace(/^\//g,"")}getHref(e){let t=this.name;return t&&"main"!==t?this.getPublicPath()+"apps/"+t+"/"+e.replace(/^\//g,""):this.getPublicPath()+e.replace(/^\//g,"")}getComposeProviders(){let e=G(...this.providers)(W);return e.displayName="Providers",e}use(e,t){return this.addProvider(e,t)}addProvider(e,t){return this.providers.push([e,t])}addProviders(e){e.forEach(e=>{Array.isArray(e)?this.addProvider(e[0],e[1]):this.addProvider(e)})}async load(){await this.loadWebSocket(),await this.pm.load(),await this.flowEngine.flowSettings.load(),this.updateFavicon()}async loadWebSocket(){this.eventBus.addEventListener("ws:message:authorized",()=>{this.setWsAuthorized(!0)}),this.ws.on("message",e=>{var t,r,n;if(!e.data)return;let i=JSON.parse(e.data);if(null==i||null==(t=i.payload)?void 0:t.refresh)return void window.location.reload();if("notification"===i.type)return void this.context.notification[(null==(r=i.payload)?void 0:r.type)||"info"]({message:null==(n=i.payload)?void 0:n.message});if(this.error&&"APP_RUNNING"===i.payload.code){this.maintained=!0,this.setMaintaining(!1),this.error=null,window.location.reload();return}let o="maintaining"===i.type&&"APP_RUNNING"!==i.payload.code;if(console.log("ws:message",{maintaining:o,data:i}),o)this.setMaintaining(!0),this.error=i.payload;else{this.setMaintaining(!1),this.maintained=!0,this.error=null;let e=i.type;if(!e)return;let t=`ws:message:${e}`;this.eventBus.dispatchEvent(new CustomEvent(t,{detail:i.payload}))}}),this.ws.on("serverDown",()=>{this.maintaining=!0,this.maintained=!1}),this.ws.on("open",()=>{let e=this.apiClient.auth.token;e&&this.setTokenInWebSocket({token:e,authenticator:this.apiClient.auth.getAuthenticator()})}),this.ws.connect()}getComponent(e){let t=!(arguments.length>1)||void 0===arguments[1]||arguments[1],r=e=>t&&console.error(e);if(!e)return void r(`getComponent called with ${e}`);if("function"==typeof e)return e;if("string"==typeof e){let t=(0,S.A)(this.components,e);return t||void r(`Component ${e} not found`)}r(`Component ${e} should be a string or a React component`)}renderComponent(e,t,r){return k.createElement(this.getComponent(e),t,r)}addComponent(e,t){let r=t||e.displayName||e.name;r?(0,_.A)(this.components,r,e):console.error("Component must have a displayName or pass name as second argument")}addComponents(e){Object.keys(e).forEach(t=>{this.addComponent(e[t],t)})}getRootComponent(){return()=>(0,a.jsx)(c.FlowEngineProvider,{engine:this.flowEngine,children:(0,a.jsx)(c.FlowModelRenderer,{fallback:this.renderComponent("AppSpin"),model:this.model})})}mount(e){let t=Y(e);if(!t)return;let r=this.getRootComponent(),n=(0,M.createRoot)(t);return n.render((0,a.jsx)(r,{})),n}constructor(e={}){var t;if((0,s._)(this,"options",void 0),(0,s._)(this,"eventBus",void 0),(0,s._)(this,"providers",void 0),(0,s._)(this,"router",void 0),(0,s._)(this,"scopes",void 0),(0,s._)(this,"i18n",void 0),(0,s._)(this,"ws",void 0),(0,s._)(this,"apiClient",void 0),(0,s._)(this,"components",void 0),(0,s._)(this,"pluginManager",void 0),(0,s._)(this,"pluginSettingsManager",void 0),(0,s._)(this,"devDynamicImport",void 0),(0,s._)(this,"requirejs",void 0),(0,s._)(this,"name",void 0),(0,s._)(this,"favicon",void 0),(0,s._)(this,"flowEngine",void 0),(0,s._)(this,"context",void 0),(0,s._)(this,"maintained",void 0),(0,s._)(this,"maintaining",void 0),(0,s._)(this,"error",void 0),(0,s._)(this,"model",void 0),(0,s._)(this,"wsAuthorized",void 0),(0,s._)(this,"apps",void 0),this.options=e,this.eventBus=new EventTarget,this.providers=[],this.scopes={},this.components={AppNotFound:()=>(0,a.jsx)("div",{children:"Not Found"}),AppError:()=>{var e;return(0,a.jsx)("div",{children:null==(e=this.error)?void 0:e.message})},AppSpin:()=>(0,a.jsx)("div",{children:"Loading"}),AppMaintaining:()=>(0,a.jsx)("div",{children:"Maintaining"}),AppMaintainingDialog:()=>(0,a.jsx)("div",{children:"Maintaining Dialog"})},this.maintained=!1,this.maintaining=!1,this.error=null,this.wsAuthorized=!1,this.apps={Component:null},this.initRequireJs(),(0,u.define)(this,{maintained:u.observable.ref,maintaining:u.observable.ref,error:u.observable.ref}),this.devDynamicImport=e.devDynamicImport,this.components=(0,A.A)(this.components,e.components),this.apiClient=new w(e.apiClient),this.i18n=e.i18n||(0,x.createInstance)(),this.router=new H(e.router,this),void 0===(null==(t=e.router)?void 0:t.basename)){let e=this.getPublicPath(),t="/"===e?void 0:e.replace(/\/$/,"");t&&this.router.setBasename(t)}this.pluginManager=new O(e.plugins,e.loadRemotePlugins,this),this.flowEngine=new c.FlowEngine,this.flowEngine.registerModels({ApplicationModel:ec}),this.model=this.flowEngine.createModel({use:"ApplicationModel",uid:"__app_model__"}),this.context=this.flowEngine.context,this.context.defineProperty("pluginManager",{get:()=>this.pluginManager}),this.context.defineProperty("pluginSettingsRouter",{get:()=>this.pluginSettingsManager}),this.addDefaultProviders(),this.addReactRouterComponents(),this.addProviders(e.providers||[]),this.ws=new J(e.ws),this.ws.app=this,this.pluginSettingsManager=new z(e.pluginSettings,this),this.addRoutes(),this.name=this.options.name||b(e.publicPath)||"main",this.i18n.on("languageChanged",e=>{this.apiClient.auth.locale=e}),this.initListeners()}}var ea=new WeakMap,eu=new WeakMap;class ec extends c.FlowModel{get app(){return this.context.app}getProviders(){return(0,l._)(this,ea,this.app.getComposeProviders()),(0,i._)(this,ea)}getRouter(){return(0,l._)(this,eu,this.app.router.getRouterComponent()),(0,i._)(this,eu)}render(){return(console.log("render",{maintaining:this.app.maintaining,maintained:this.app.maintained,error:this.app.error}),this.app.maintaining)?this.renderMaintaining():this.app.error?this.renderError():this.renderContent()}renderMaintaining(){return this.app.maintained?this.app.renderComponent("AppMaintainingDialog"):this.app.renderComponent("AppMaintaining")}renderError(){return this.app.renderComponent("AppError")}renderContent(){let e=this.getRouter(),t=this.getProviders();return(0,a.jsx)(e,{BaseLayout:t})}constructor(...e){super(...e),(0,o._)(this,ea,{writable:!0,value:void 0}),(0,o._)(this,eu,{writable:!0,value:void 0})}}ec.registerFlow({key:"appFlow",steps:{init:{async handler(e,t){try{await e.app.load()}catch(t){e.model.app.error=t,console.error(t)}}}}});let ed=(0,k.createContext)(null);ed.displayName="ApplicationContext";var eh=r(36093),ep=r.n(eh);class ef extends es{constructor(e={}){super({router:{type:"memory",initialEntries:["/"]},...e}),(0,s._)(this,"apiMock",void 0),this.apiMock=new(ep())(this.apiClient.axios),this.ws=new eg(e.ws||{})}}class eg extends J{connect(){}close(){}send(){}on(e,t,r){this.eventBus.addEventListener(e,e=>t({data:JSON.stringify(e.detail)}),r)}emit(e,t){this.eventBus.dispatchEvent(new CustomEvent(e,{detail:t}))}off(e,t,r){this.eventBus.removeEventListener(e,t,r)}removeAllListeners(){}constructor(e){super(e),(0,s._)(this,"eventBus",new EventTarget)}}function em(e){return new ef(e)}class ey{get pluginManager(){return this.app.pluginManager}get context(){return this.app.context}get flowEngine(){return this.app.flowEngine}get engine(){return this.app.flowEngine}get pm(){return this.app.pm}get router(){return this.app.router}get pluginSettingsManager(){return this.app.pluginSettingsManager}get pluginSettingsRouter(){return this.app.pluginSettingsManager}get schemaInitializerManager(){return this.app.schemaInitializerManager}get schemaSettingsManager(){return this.app.schemaSettingsManager}get dataSourceManager(){return this.app.dataSourceManager}async afterAdd(){}async beforeLoad(){}async load(){}t(e){var t;let r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.app.i18n.t(e,{ns:null==(t=this.options)?void 0:t.packageName,...r})}constructor(e,t){(0,s._)(this,"options",void 0),(0,s._)(this,"app",void 0),this.options=e,this.app=t,this.options=e,this.app=t}}function ev(e){return Promise.resolve(null)}function ew(e,t){if(!e)return t;let r=e.trim();return r.startsWith("/")||(r=`/${r}`),r.endsWith("/")||(r=`${r}/`),r}function eb(){let e="/v2/",t=window.location.pathname,r=t.indexOf(e);return r>=0?ew(t.slice(0,r),"/"):"/"}function ex(){let e=window.__nocobase_public_path__;if(e)return ew(e.replace(/\/v2\/$/,"/"),"/");let t="/v2/";return t?ew(t.replace(/\/v2\/$/,"/"),"/"):eb()}function eS(){return ew(`${ex().replace(/\/$/,"")}/v2/`,"/v2/")}function e_(e){return"boolean"==typeof e?e:"true"===String(e||"").toLowerCase()}function eA(e){return"sessionStorage"===e||"memory"===e||"localStorage"===e?e:"localStorage"}ex();let ek=new es({publicPath:eS(),apiClient:{shareToken:e_(window.__nocobase_api_client_share_token__||"false"),storageType:eA(window.__nocobase_api_client_storage_type__||"localStorage"),storagePrefix:window.__nocobase_api_client_storage_prefix__||"NOCOBASE_",baseURL:window.__nocobase_api_base_url__||"/api/"},ws:{url:window.__nocobase_ws_url__||"",basename:window.__nocobase_ws_path__||"/ws"},loadRemotePlugins:!0,devDynamicImport:ev});window.__nocobase_v2_app__=ek,ek.mount("#root")},40407(__unused_rspack_module,__webpack_exports__,__webpack_require__){__webpack_require__.d(__webpack_exports__,{b:()=>getRequireJs});function getRequireJs(){var requirejs,require,define,req,s,head,baseElement,dataMain,src,interactiveScript,currentlyAddingScript,mainScript,subPath,version="2.3.6",commentRegExp=/\/\*[\s\S]*?\*\/|([^:"'=]|^)\/\/.*$/mg,cjsRequireRegExp=/[^.]\s*require\s*\(\s*["']([^'"\s]+)["']\s*\)/g,jsSuffixRegExp=/\.js$/,currDirRegExp=/^\.\//,op=Object.prototype,ostring=op.toString,hasOwn=op.hasOwnProperty,isBrowser=!!("u">typeof window&&"u">typeof navigator&&window.document),isWebWorker=!isBrowser&&"u">typeof importScripts,readyRegExp=isBrowser&&"PLAYSTATION 3"===navigator.platform?/^complete$/:/^(complete|loaded)$/,defContextName="_",isOpera="u">typeof opera&&"[object Opera]"===opera.toString(),contexts={},cfg={},globalDefQueue=[],useInteractive=!1;function commentReplace(e,t){return t||""}function isFunction(e){return"[object Function]"===ostring.call(e)}function isArray(e){return"[object Array]"===ostring.call(e)}function each(e,t){if(e){var r;for(r=0;r<e.length&&!(e[r]&&t(e[r],r,e));r+=1);}}function eachReverse(e,t){if(e){var r;for(r=e.length-1;r>-1&&!(e[r]&&t(e[r],r,e));r-=1);}}function hasProp(e,t){return hasOwn.call(e,t)}function getOwn(e,t){return hasProp(e,t)&&e[t]}function eachProp(e,t){var r;for(r in e)if(hasProp(e,r)&&t(e[r],r))break}function mixin(e,t,r,n){return t&&eachProp(t,function(t,i){(r||!hasProp(e,i))&&(!n||"object"!=typeof t||!t||isArray(t)||isFunction(t)||t instanceof RegExp?e[i]=t:(e[i]||(e[i]={}),mixin(e[i],t,r,n)))}),e}function bind(e,t){return function(){return t.apply(e,arguments)}}function scripts(){return document.getElementsByTagName("script")}function defaultOnError(e){throw e}function getGlobal(e){if(!e)return e;var t=__webpack_require__.g;return each(e.split("."),function(e){t=t[e]}),t}function makeError(e,t,r,n){var i=Error(t+"\nhttps://requirejs.org/docs/errors.html#"+e);return i.requireType=e,i.requireModules=n,r&&(i.originalError=r),i}if(void 0===define){if(void 0!==requirejs){if(isFunction(requirejs))return;cfg=requirejs,requirejs=void 0}return void 0===require||isFunction(require)||(cfg=require,require=void 0),req=requirejs=function(e,t,r,n){var i,o,l=defContextName;return isArray(e)||"string"==typeof e||(o=e,isArray(t)?(e=t,t=r,r=n):e=[]),o&&o.context&&(l=o.context),(i=getOwn(contexts,l))||(i=contexts[l]=req.s.newContext(l)),o&&i.configure(o),i.require(e,t,r)},req.config=function(e){return req(e)},req.nextTick="u">typeof setTimeout?function(e){setTimeout(e,4)}:function(e){e()},require||(require=req),req.version=version,req.jsExtRegExp=/^\/|:|\?|\.js$/,req.isBrowser=isBrowser,s=req.s={contexts:contexts,newContext:newContext},req({}),each(["toUrl","undef","defined","specified"],function(e){req[e]=function(){var t=contexts[defContextName];return t.require[e].apply(t,arguments)}}),isBrowser&&(head=s.head=document.getElementsByTagName("head")[0],(baseElement=document.getElementsByTagName("base")[0])&&(head=s.head=baseElement.parentNode)),req.onError=defaultOnError,req.createNode=function(e,t,r){var n=e.xhtml?document.createElementNS("http://www.w3.org/1999/xhtml","html:script"):document.createElement("script");return n.type=e.scriptType||"text/javascript",n.charset="utf-8",n.async=!0,n},req.load=function(e,t,r){var n,i=e&&e.config||{};if(isBrowser)return(n=req.createNode(i,t,r)).setAttribute("data-requirecontext",e.contextName),n.setAttribute("data-requiremodule",t),!n.attachEvent||n.attachEvent.toString&&0>n.attachEvent.toString().indexOf("[native code")||isOpera?(n.addEventListener("load",e.onScriptLoad,!1),n.addEventListener("error",e.onScriptError,!1)):(useInteractive=!0,n.attachEvent("onreadystatechange",e.onScriptLoad)),n.src=r,i.onNodeCreated&&i.onNodeCreated(n,i,t,r),currentlyAddingScript=n,baseElement?head.insertBefore(n,baseElement):head.appendChild(n),currentlyAddingScript=null,n;if(isWebWorker)try{setTimeout(function(){},0),importScripts(r),e.completeLoad(t)}catch(n){e.onError(makeError("importscripts","importScripts failed for "+t+" at "+r,n,[t]))}},isBrowser&&!cfg.skipDataMain&&eachReverse(scripts(),function(e){if(head||(head=e.parentNode),dataMain=e.getAttribute("data-main"))return mainScript=dataMain,cfg.baseUrl||-1!==mainScript.indexOf("!")||(mainScript=(src=mainScript.split("/")).pop(),subPath=src.length?src.join("/")+"/":"./",cfg.baseUrl=subPath),mainScript=mainScript.replace(jsSuffixRegExp,""),req.jsExtRegExp.test(mainScript)&&(mainScript=dataMain),cfg.deps=cfg.deps?cfg.deps.concat(mainScript):[mainScript],!0}),define=function(e,t,r){var n,i;"string"!=typeof e&&(r=t,t=e,e=null),isArray(t)||(r=t,t=null),!t&&isFunction(r)&&(t=[],r.length&&(r.toString().replace(commentRegExp,commentReplace).replace(cjsRequireRegExp,function(e,r){t.push(r)}),t=(1===r.length?["require"]:["require","exports","module"]).concat(t))),useInteractive&&(n=currentlyAddingScript||getInteractiveScript())&&(e||(e=n.getAttribute("data-requiremodule")),i=contexts[n.getAttribute("data-requirecontext")]),i?(i.defQueue.push([e,t,r]),i.defQueueMap[e]=!0):globalDefQueue.push([e,t,r])},define.amd={jQuery:!0},req.exec=function(text){return eval(text)},req(cfg),{requirejs,require,define}}function newContext(e){var t,r,n,i,o,l={waitSeconds:7,baseUrl:"./",paths:{},bundles:{},pkgs:{},shim:{},config:{}},s={},a={},u={},c=[],d={},h={},p={},f=1,g=1;function m(e){var t,r;for(t=0;t<e.length;t++)if("."===(r=e[t]))e.splice(t,1),t-=1;else if(".."===r)if(0===t||1===t&&".."===e[2]||".."===e[t-1])continue;else t>0&&(e.splice(t-1,2),t-=2)}function y(e,t,r){var n,i,o,s,a,u,c,d,h,p,f,g=t&&t.split("/"),y=l.map,v=y&&y["*"];if(e&&(c=(e=e.split("/")).length-1,l.nodeIdCompat&&jsSuffixRegExp.test(e[c])&&(e[c]=e[c].replace(jsSuffixRegExp,"")),"."===e[0].charAt(0)&&g&&(e=g.slice(0,g.length-1).concat(e)),m(e),e=e.join("/")),r&&y&&(g||v)){o=e.split("/");e:for(s=o.length;s>0;s-=1){if(u=o.slice(0,s).join("/"),g){for(a=g.length;a>0;a-=1)if((i=getOwn(y,g.slice(0,a).join("/")))&&(i=getOwn(i,u))){d=i,h=s;break e}}!p&&v&&getOwn(v,u)&&(p=getOwn(v,u),f=s)}!d&&p&&(d=p,h=f),d&&(o.splice(0,h,d),e=o.join("/"))}return(n=getOwn(l.pkgs,e))||e}function v(e){isBrowser&&each(scripts(),function(t){if(t.getAttribute("data-requiremodule")===e&&t.getAttribute("data-requirecontext")===n.contextName)return t.parentNode.removeChild(t),!0})}function w(e){var t=getOwn(l.paths,e);if(t&&isArray(t)&&t.length>1)return t.shift(),n.require.undef(e),n.makeRequire(null,{skipMap:!0})([e]),!0}function b(e){var t,r=e?e.indexOf("!"):-1;return r>-1&&(t=e.substring(0,r),e=e.substring(r+1,e.length)),[t,e]}function x(e,t,r,i){var o,l,s,a,u=null,c=t?t.name:null,h=e,p=!0,m="";return e||(p=!1,e="_@r"+(f+=1)),u=(a=b(e))[0],e=a[1],u&&(l=getOwn(d,u=y(u,c,i))),e&&(u?m=r?e:l&&l.normalize?l.normalize(e,function(e){return y(e,c,i)}):-1===e.indexOf("!")?y(e,c,i):e:(u=(a=b(m=y(e,c,i)))[0],m=a[1],r=!0,o=n.nameToUrl(m))),s=!u||l||r?"":"_unnormalized"+(g+=1),{prefix:u,name:m,parentMap:t,unnormalized:!!s,url:o,originalName:h,isDefine:p,id:(u?u+"!"+m:m)+s}}function S(e){var t=e.id,r=getOwn(s,t);return r||(r=s[t]=new n.Module(e)),r}function _(e,t,r){var n=e.id,i=getOwn(s,n);hasProp(d,n)&&(!i||i.defineEmitComplete)?"defined"===t&&r(d[n]):(i=S(e)).error&&"error"===t?r(i.error):i.on(t,r)}function A(e,t){var r=e.requireModules,n=!1;t?t(e):(each(r,function(t){var r=getOwn(s,t);r&&(r.error=e,r.events.error&&(n=!0,r.emit("error",e)))}),n||req.onError(e))}function k(){globalDefQueue.length&&(each(globalDefQueue,function(e){var t=e[0];"string"==typeof t&&(n.defQueueMap[t]=!0),c.push(e)}),globalDefQueue=[])}function M(e){delete s[e],delete a[e]}function E(e,t,r){var n=e.map.id;e.error?e.emit("error",e.error):(t[n]=!0,each(e.depMaps,function(n,i){var o=n.id,l=getOwn(s,o);!l||e.depMatched[i]||r[o]||(getOwn(t,o)?(e.defineDep(i,d[o]),e.check()):E(l,t,r))}),r[n]=!0)}function j(){var e,r,i=1e3*l.waitSeconds,s=i&&n.startTime+i<new Date().getTime(),u=[],c=[],d=!1,h=!0;if(!t){if(t=!0,eachProp(a,function(e){var t=e.map,n=t.id;if(e.enabled&&(t.isDefine||c.push(e),!e.error)){if(!e.inited&&s)w(n)?(r=!0,d=!0):(u.push(n),v(n));else if(!e.inited&&e.fetched&&t.isDefine&&(d=!0,!t.prefix))return h=!1}}),s&&u.length)return(e=makeError("timeout","Load timeout for modules: "+u,null,u)).contextName=n.contextName,A(e);h&&each(c,function(e){E(e,{},{})}),(!s||r)&&d&&(isBrowser||isWebWorker)&&!o&&(o=setTimeout(function(){o=0,j()},50)),t=!1}}function R(e){hasProp(d,e[0])||S(x(e[0],null,!0)).init(e[1],e[2])}function P(e,t,r,n){e.detachEvent&&!isOpera?n&&e.detachEvent(n,t):e.removeEventListener(r,t,!1)}function C(e){var t=e.currentTarget||e.srcElement;return P(t,n.onScriptLoad,"load","onreadystatechange"),P(t,n.onScriptError,"error"),{node:t,id:t&&t.getAttribute("data-requiremodule")}}function F(){var e;for(k();c.length;){if(null===(e=c.shift())[0])return A(makeError("mismatch","Mismatched anonymous define() module: "+e[e.length-1]));R(e)}n.defQueueMap={}}return i={require:function(e){return e.require?e.require:e.require=n.makeRequire(e.map)},exports:function(e){if(e.usingExports=!0,e.map.isDefine)if(e.exports)return d[e.map.id]=e.exports;else return e.exports=d[e.map.id]={}},module:function(e){return e.module?e.module:e.module={id:e.map.id,uri:e.map.url,config:function(){return getOwn(l.config,e.map.id)||{}},exports:e.exports||(e.exports={})}}},(r=function(e){this.events=getOwn(u,e.id)||{},this.map=e,this.shim=getOwn(l.shim,e.id),this.depExports=[],this.depMaps=[],this.depMatched=[],this.pluginMaps={},this.depCount=0}).prototype={init:function(e,t,r,n){n=n||{},this.inited||(this.factory=t,r?this.on("error",r):this.events.error&&(r=bind(this,function(e){this.emit("error",e)})),this.depMaps=e&&e.slice(0),this.errback=r,this.inited=!0,this.ignore=n.ignore,n.enabled||this.enabled?this.enable():this.check())},defineDep:function(e,t){this.depMatched[e]||(this.depMatched[e]=!0,this.depCount-=1,this.depExports[e]=t)},fetch:function(){if(!this.fetched){this.fetched=!0,n.startTime=new Date().getTime();var e=this.map;if(!this.shim)return e.prefix?this.callPlugin():this.load();n.makeRequire(this.map,{enableBuildCallback:!0})(this.shim.deps||[],bind(this,function(){return e.prefix?this.callPlugin():this.load()}))}},load:function(){var e=this.map.url;h[e]||(h[e]=!0,n.load(this.map.id,e))},check:function(){if(this.enabled&&!this.enabling){var e,t,r=this.map.id,i=this.depExports,o=this.exports,l=this.factory;if(this.inited){if(this.error)this.emit("error",this.error);else if(!this.defining){if(this.defining=!0,this.depCount<1&&!this.defined){if(isFunction(l)){if(this.events.error&&this.map.isDefine||req.onError!==defaultOnError)try{o=n.execCb(r,l,i,o)}catch(t){e=t}else o=n.execCb(r,l,i,o);if(this.map.isDefine&&void 0===o&&((t=this.module)?o=t.exports:this.usingExports&&(o=this.exports)),e)return e.requireMap=this.map,e.requireModules=this.map.isDefine?[this.map.id]:null,e.requireType=this.map.isDefine?"define":"require",A(this.error=e)}else o=l;if(this.exports=o,this.map.isDefine&&!this.ignore&&(d[r]=o,req.onResourceLoad)){var s=[];each(this.depMaps,function(e){s.push(e.normalizedMap||e)}),req.onResourceLoad(n,this.map,s)}M(r),this.defined=!0}this.defining=!1,this.defined&&!this.defineEmitted&&(this.defineEmitted=!0,this.emit("defined",this.exports),this.defineEmitComplete=!0)}}else hasProp(n.defQueueMap,r)||this.fetch()}},callPlugin:function(){var e=this.map,t=e.id,r=x(e.prefix);this.depMaps.push(r),_(r,"defined",bind(this,function(r){var i,o,a,u=getOwn(p,this.map.id),c=this.map.name,d=this.map.parentMap?this.map.parentMap.name:null,h=n.makeRequire(e.parentMap,{enableBuildCallback:!0});if(this.map.unnormalized){r.normalize&&(c=r.normalize(c,function(e){return y(e,d,!0)})||""),_(o=x(e.prefix+"!"+c,this.map.parentMap,!0),"defined",bind(this,function(e){this.map.normalizedMap=o,this.init([],function(){return e},null,{enabled:!0,ignore:!0})})),(a=getOwn(s,o.id))&&(this.depMaps.push(o),this.events.error&&a.on("error",bind(this,function(e){this.emit("error",e)})),a.enable());return}if(u){this.map.url=n.nameToUrl(u),this.load();return}(i=bind(this,function(e){this.init([],function(){return e},null,{enabled:!0})})).error=bind(this,function(e){this.inited=!0,this.error=e,e.requireModules=[t],eachProp(s,function(e){0===e.map.id.indexOf(t+"_unnormalized")&&M(e.map.id)}),A(e)}),i.fromText=bind(this,function(r,o){var s=e.name,a=x(s),u=useInteractive;o&&(r=o),u&&(useInteractive=!1),S(a),hasProp(l.config,t)&&(l.config[s]=l.config[t]);try{req.exec(r)}catch(e){return A(makeError("fromtexteval","fromText eval for "+t+" failed: "+e,e,[t]))}u&&(useInteractive=!0),this.depMaps.push(a),n.completeLoad(s),h([s],i)}),r.load(e.name,h,i,l)})),n.enable(r,this),this.pluginMaps[r.id]=r},enable:function(){a[this.map.id]=this,this.enabled=!0,this.enabling=!0,each(this.depMaps,bind(this,function(e,t){var r,o,l;if("string"==typeof e){if(e=x(e,this.map.isDefine?this.map:this.map.parentMap,!1,!this.skipMap),this.depMaps[t]=e,l=getOwn(i,e.id)){this.depExports[t]=l(this);return}this.depCount+=1,_(e,"defined",bind(this,function(e){this.undefed||(this.defineDep(t,e),this.check())})),this.errback?_(e,"error",bind(this,this.errback)):this.events.error&&_(e,"error",bind(this,function(e){this.emit("error",e)}))}o=s[r=e.id],hasProp(i,r)||!o||o.enabled||n.enable(e,this)})),eachProp(this.pluginMaps,bind(this,function(e){var t=getOwn(s,e.id);t&&!t.enabled&&n.enable(e,this)})),this.enabling=!1,this.check()},on:function(e,t){var r=this.events[e];r||(r=this.events[e]=[]),r.push(t)},emit:function(e,t){each(this.events[e],function(e){e(t)}),"error"===e&&delete this.events[e]}},(n={config:l,contextName:e,registry:s,defined:d,urlFetched:h,defQueue:c,defQueueMap:{},Module:r,makeModuleMap:x,nextTick:req.nextTick,onError:A,configure:function(e){if(e.baseUrl&&"/"!==e.baseUrl.charAt(e.baseUrl.length-1)&&(e.baseUrl+="/"),"string"==typeof e.urlArgs){var t=e.urlArgs;e.urlArgs=function(e,r){return(-1===r.indexOf("?")?"?":"&")+t}}var r=l.shim,i={paths:!0,bundles:!0,config:!0,map:!0};eachProp(e,function(e,t){i[t]?(l[t]||(l[t]={}),mixin(l[t],e,!0,!0)):l[t]=e}),e.bundles&&eachProp(e.bundles,function(e,t){each(e,function(e){e!==t&&(p[e]=t)})}),e.shim&&(eachProp(e.shim,function(e,t){isArray(e)&&(e={deps:e}),(e.exports||e.init)&&!e.exportsFn&&(e.exportsFn=n.makeShimExports(e)),r[t]=e}),l.shim=r),e.packages&&each(e.packages,function(e){var t;t=(e="string"==typeof e?{name:e}:e).name,e.location&&(l.paths[t]=e.location),l.pkgs[t]=e.name+"/"+(e.main||"main").replace(currDirRegExp,"").replace(jsSuffixRegExp,"")}),eachProp(s,function(e,t){e.inited||e.map.unnormalized||(e.map=x(t,null,!0))}),(e.deps||e.callback)&&n.require(e.deps||[],e.callback)},makeShimExports:function(e){return function(){var t;return e.init&&(t=e.init.apply(__webpack_require__.g,arguments)),t||e.exports&&getGlobal(e.exports)}},makeRequire:function(t,r){function o(l,a,u){var c,h;return(r.enableBuildCallback&&a&&isFunction(a)&&(a.__requireJsBuild=!0),"string"==typeof l)?isFunction(a)?A(makeError("requireargs","Invalid require call"),u):t&&hasProp(i,l)?i[l](s[t.id]):req.get?req.get(n,l,t,o):hasProp(d,c=x(l,t,!1,!0).id)?d[c]:A(makeError("notloaded",'Module name "'+c+'" has not been loaded yet for context: '+e+(t?"":". Use require([])"))):(F(),n.nextTick(function(){F(),(h=S(x(null,t))).skipMap=r.skipMap,h.init(l,a,u,{enabled:!0}),j()}),o)}return r=r||{},mixin(o,{isBrowser:isBrowser,toUrl:function(e){var r,i=e.lastIndexOf("."),o=e.split("/")[0],l="."===o||".."===o;return -1!==i&&(!l||i>1)&&(r=e.substring(i,e.length),e=e.substring(0,i)),n.nameToUrl(y(e,t&&t.id,!0),r,!0)},defined:function(e){return hasProp(d,x(e,t,!1,!0).id)},specified:function(e){return hasProp(d,e=x(e,t,!1,!0).id)||hasProp(s,e)}}),t||(o.undef=function(e){k();var r=x(e,t,!0),i=getOwn(s,e);i.undefed=!0,v(e),delete d[e],delete h[r.url],delete u[e],eachReverse(c,function(t,r){t[0]===e&&c.splice(r,1)}),delete n.defQueueMap[e],i&&(i.events.defined&&(u[e]=i.events),M(e))}),o},enable:function(e){getOwn(s,e.id)&&S(e).enable()},completeLoad:function(e){var t,r,i,o=getOwn(l.shim,e)||{},a=o.exports;for(k();c.length;){if(null===(r=c.shift())[0]){if(r[0]=e,t)break;t=!0}else r[0]===e&&(t=!0);R(r)}if(n.defQueueMap={},i=getOwn(s,e),!t&&!hasProp(d,e)&&i&&!i.inited)if(!l.enforceDefine||a&&getGlobal(a))R([e,o.deps||[],o.exportsFn]);else if(w(e))return;else return A(makeError("nodefine","No define call for "+e,null,[e]));j()},nameToUrl:function(e,t,r){var i,o,s,a,u,c,d=getOwn(l.pkgs,e);if(d&&(e=d),c=getOwn(p,e))return n.nameToUrl(c,t,r);if(req.jsExtRegExp.test(e))a=e+(t||"");else{for(i=l.paths,s=(o=e.split("/")).length;s>0;s-=1)if(u=getOwn(i,o.slice(0,s).join("/"))){isArray(u)&&(u=u[0]),o.splice(0,s,u);break}a=o.join("/"),a+=t||(/^data\:|^blob\:|\?/.test(a)||r?"":".js"),a=("/"===a.charAt(0)||a.match(/^[\w\+\.\-]+:/)?"":l.baseUrl)+a}return l.urlArgs&&!/^blob\:/.test(a)?a+l.urlArgs(e,a):a},load:function(e,t){req.load(n,e,t)},execCb:function(e,t,r,n){return t.apply(n,r)},onScriptLoad:function(e){if("load"===e.type||readyRegExp.test((e.currentTarget||e.srcElement).readyState)){interactiveScript=null;var t=C(e);n.completeLoad(t.id)}},onScriptError:function(e){var t=C(e);if(!w(t.id)){var r=[];return eachProp(s,function(e,n){0!==n.indexOf("_@r")&&each(e.depMaps,function(e){if(e.id===t.id)return r.push(n),!0})}),A(makeError("scripterror",'Script error for "'+t.id+(r.length?'", needed by: '+r.join(", "):'"'),e,[t.id]))}}}).require=n.makeRequire(),n}function getInteractiveScript(){return interactiveScript&&"interactive"===interactiveScript.readyState||eachReverse(scripts(),function(e){if("interactive"===e.readyState)return interactiveScript=e}),interactiveScript}}},63128(e,t,r){r.d(t,{x:()=>o});var n=r(50467),i=r(99418);class o{get innerHTML(){return this.__el.innerHTML}set innerHTML(e){this.__el.innerHTML=i.A.sanitize(e)}get outerHTML(){return this.__el.outerHTML}set outerHTML(e){this.__el.outerHTML=i.A.sanitize(e)}appendChild(e){(e instanceof HTMLElement||"string"==typeof e)&&this.__el.appendChild("string"==typeof e?document.createTextNode(e):e)}constructor(e){return(0,n._)(this,"__el",void 0),this.__el=e,new Proxy(this,{get:(e,t,r)=>{if(t in e){let n=Reflect.get(e,t,r);return"function"==typeof n?n.bind(r):n}let n=e.__el[t];return"function"==typeof n?n.bind(e.__el):n},set:(e,t,r,n)=>{let i=Object.getOwnPropertyDescriptor(o.prototype,t);return i&&"function"==typeof i.set?i.set.call(n,r):e.__el[t]=r,!0}})}}},52568(e,t,r){r.d(t,{$K:()=>u,Dv:()=>s,PC:()=>l,Vy:()=>d,Ww:()=>c,YQ:()=>a,bc:()=>o});var n=r(74848),i=r(96540);let o=(0,i.createContext)(null),l=(0,i.createContext)(null);function s(e){return(0,n.jsx)(o.Provider,{value:e.context,children:e.children})}let a=i.memo(e=>(0,n.jsx)(l.Provider,{value:e.context,children:(0,n.jsx)(o.Provider,{value:e.context,children:e.children})}));function u(){return(0,i.useContext)(o)}function c(){return(0,i.useContext)(l)}function d(){return u().view}a.displayName="FlowViewContextProvider"},68161(e,t,r){r.d(t,{G:()=>s,z:()=>a});var n=r(50467),i=r(95243),o=r(2543),l=r.n(o);class s{get key(){return this.options.key}get title(){return this.options.title}set title(e){this.options.title=e}get sort(){return this.options.sort}get on(){return this.options.on}set on(e){this.options.on=e}get defaultParams(){return this.options.defaultParams}get manual(){return this.options.manual}set manual(e){this.options.manual=e}get steps(){let e={};for(let[t,r]of this.getSortedSteps())e[t]=r.serialize();return e}getSortedSteps(){return[...this._steps.entries()].sort((e,t)=>{let[,r]=e,[,n]=t;return(r.serialize().sort??0)-(n.serialize().sort??0)})}setOptions(e){Object.assign(this.options,e)}getSteps(){return this._steps}mapSteps(e){return this.getSortedSteps().map(t=>{let[,r]=t;return e(r)})}getStep(e){return this._steps.get(e)}addStep(e,t){let r=this._steps.get(e);if(r)return r.setOptions(t),r;{if(void 0===t.sort){let e=Math.max(0,...Array.from(this._steps.values()).map(e=>e.serialize().sort??0));t={...t,sort:e+1}}let r=new a({...t,key:e},this);return this._steps.set(e,r),r}}setStep(e,t){return this.addStep(e,t)}hasStep(e){return this._steps.has(e)}moveStep(e,t){if(!this._steps.has(e))throw Error(`Source step '${e}' not found`);if(!this._steps.has(t))throw Error(`Target step '${t}' not found`);if(e===t)return;let r=this.getSortedSteps(),n=[],i=r.filter(t=>{let[r]=t;return r!==e}),o=this._steps.get(e);for(let[r,l]of i)r===t&&n.push([e,o]),n.push([r,l]);n.forEach((e,t)=>{let[r,n]=e;n.setOptions({sort:t+1})})}removeStep(e){this._steps.delete(e)}async saveStep(e){await this.flowRegistry.saveFlow(this)}async destroyStep(e){this.removeStep(e),await this.flowRegistry.saveFlow(this)}async save(){await this.flowRegistry.saveFlow(this)}async destroy(){await this.flowRegistry.destroyFlow(this.key)}remove(){return this.flowRegistry.removeFlow(this.key)}toData(){return this.serialize()}serialize(){let e={...this.options};for(let[t,r]of this.getSortedSteps())e.steps=e.steps||{},e.steps[t]={...r.serialize()};return e}constructor(e,t){for(let[r,o]of((0,n._)(this,"flowRegistry",void 0),(0,n._)(this,"_steps",void 0),(0,n._)(this,"options",void 0),this.flowRegistry=t,this._steps=i.observable.shallow(new Map),this.options=i.observable.shallow(l().omit(e,["steps"])),Object.entries(e.steps||{})))this.addStep(r,o)}}class a{setOptions(e){Object.assign(this.options,e)}get key(){return this.options.key}get flowKey(){return this.flowDef.key}get title(){return this.options.title}set title(e){this.options.title=e}get uiSchema(){return this.options.uiSchema}get defaultParams(){return this.options.defaultParams||{}}set defaultParams(e){this.options.defaultParams=e}get use(){return this.options.use}async save(){return this.flowDef.save()}async remove(){return this.flowDef.removeStep(this.key)}async destroy(){return this.flowDef.destroyStep(this.key)}serialize(){return{...this.options,flowKey:this.flowDef.key}}constructor(e,t){(0,n._)(this,"flowDef",void 0),(0,n._)(this,"options",void 0),this.flowDef=t,this.options=i.observable.shallow(e)}}},91013(e,t,r){r.d(t,{I:()=>c,R:()=>o});var n=r(50467);r(67980);var i=r(31108);function o(e){return"boolean"==typeof(null==e?void 0:e.preprocessTemplates)?e.preprocessTemplates:(null==e?void 0:e.version)!=="v2"}let l=/(^|[=(:,[\s)])(\{\{\s*(ctx(?:\.|\[|\?\.)[^}]*)\s*\}\})/m;function s(e){let t=String(e||"").match(l);if(!t)return null;let r=String(t[2]||"").trim(),n=String(t[3]||"").trim();return r&&n?{placeholder:r,expression:n}:null}function a(e,t){if(!(e instanceof SyntaxError||"SyntaxError"===String((null==e?void 0:e.name)||""))||!t)return!1;let r=String((null==e?void 0:e.message)||e||"");return/unexpected token/i.test(r)}function u(e,t){let r=SyntaxError(`"${t.placeholder}" has been deprecated and cannot be used as executable RunJS syntax. Use await ctx.getVar("${t.expression}") instead, or keep "${t.placeholder}" as a plain string.`);try{r.cause=e}catch(e){}try{r.__runjsHideLocation=!0,r.stack=`${r.name}: ${r.message}`}catch(e){}return r}class c{register(e,t){this.globals[e]=t}async run(e){let t="u">typeof location?location.search:void 0;if("string"==typeof t&&t.includes("skipRunJs=true"))return{success:!0,value:null};let r=`(async () => {
|
|
3
3
|
try {
|
|
4
4
|
${e};
|
|
5
5
|
} catch (e) {
|
|
6
6
|
throw e;
|
|
7
7
|
}
|
|
8
|
-
})()`,n=new Compartment(this.globals);try{let e=n.evaluate(r),t=new Promise((e,t)=>setTimeout(()=>t(Error("Execution timed out")),this.timeoutMs)),i=await Promise.race([e,t]);return{success:!0,value:i}}catch(n){if(n instanceof i.sy||n instanceof i.zz)throw n;let t=s(e),r=a(n,t)&&t?c(n,t):n;return console.error(r),{success:!1,error:r,timeout:(null==r?void 0:r.message)==="Execution timed out"}}}constructor(e={}){var t,r;(0,n._)(this,"globals",void 0),(0,n._)(this,"timeoutMs",void 0);let i=e=>{if("u">typeof window&&"function"==typeof window[e])return window[e].bind(window);let t=globalThis[e];return"function"==typeof t?t.bind(globalThis):t},o=e.globals||{},l={};if(!Object.prototype.hasOwnProperty.call(o,"Blob"))try{let e=null==(t=o.window)?void 0:t.Blob;void 0!==e&&(l.Blob=e)}catch{}if(!Object.prototype.hasOwnProperty.call(o,"URL"))try{let e=null==(r=o.window)?void 0:r.URL;void 0!==e&&(l.URL=e)}catch{}this.globals={console,setTimeout:i("setTimeout"),clearTimeout:i("clearTimeout"),setInterval:i("setInterval"),clearInterval:i("clearInterval"),...l,...o},this.timeoutMs=e.timeoutMs??5e3}}},47451(e,t,r){r.d(t,{_:()=>o});var n=r(81440),i=r(16639);function o(e){let t=new n.$;Object.defineProperty(t,i.i6,{value:"view",configurable:!0}),e.modelRepository&&t.setModelRepository(e.modelRepository),t.context.addDelegate(e.context);let r=t.unlinkFromStack.bind(t);t.unlinkFromStack=function(){var e;return null==(e=t.disposeScheduler)||e.call(t),r()};let o=new Set(["_modelInstances","_applyFlowCache","executor","context",i.i6,"previousEngine","nextEngine","emitter","_modelOperationScheduler","getScheduler","scheduleModelOperation","disposeScheduler","unlinkFromStack","linkAfter","_previousEngine","_nextEngine","getModel","_destroyView","setDestroyView","destroyView"]),l={get(t,r,n){if(o.has(r))return Reflect.get(t,r,n);let i=Reflect.get(e,r,n);return"registerModels"===r&&"function"==typeof i?i.bind(e):i},set:(t,r,n)=>o.has(r)?Reflect.set(t,r,n):Reflect.set(e,r,n),has:(t,r)=>r in t||r in e};return t.linkAfter(e),new Proxy(t,l)}},64171(e,t,r){r.d(t,{Z:()=>i});var n=r(50467);class i{onActionRegistered(){}registerActions(e){for(let[,t]of Object.entries(e||{}))this.registerAction(t)}registerAction(e){if(!(null==e?void 0:e.name))throw Error("Action must have a name.");this.actions.has(e.name)&&console.warn(`Action '${e.name}' is already registered. It will be overwritten.`),this.actions.set(e.name,e),this.onActionRegistered()}constructor(){(0,n._)(this,"actions",new Map)}}},31102(e,t,r){r.d(t,{e:()=>a});var n=r(74848),i=r(96540),o=r(42443),l=r(89013);let s=["colon","dependencies","extra","getValueFromEvent","getValueProps","hasFeedback","help","htmlFor","initialValue","label","labelAlign","labelCol","messageVariables","name","normalize","noStyle","preserve","rules","tooltip","trigger","validateStatus","validateTrigger","valuePropName","wrapperCol","labelWidth","labelWrap","layout","required","showLabel"],a=e=>{let{children:t,showLabel:r=!0,labelWidth:a,...c}=e,u=Object.fromEntries(Object.entries(c).filter(e=>{let[t]=e;return!s.includes(t)})),d="function"==typeof t?t:i.Children.map(t,e=>i.isValidElement(e)?i.cloneElement(e,{...u}):e),{label:h,labelWrap:p,colon:f=!0,layout:m}=c,g=!m||"vertical"===m||p,y=()=>r?g?(0,n.jsxs)("div",{style:{width:"100%",whiteSpace:"normal",wordBreak:"break-word",display:"flex",alignItems:"center",justifyContent:"flex-start",fontWeight:600},children:[(0,n.jsx)("span",{style:{flex:1},children:h}),f&&(0,n.jsx)("span",{style:{marginLeft:4,flexShrink:0},children:":"})]}):(0,n.jsx)(o.A,{title:h,children:(0,n.jsxs)("div",{style:{display:"inline-flex",alignItems:"center",maxWidth:("number"==typeof a?a:120)-20,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",verticalAlign:"middle",fontWeight:600},children:[(0,n.jsx)("span",{style:{flexShrink:1,overflow:"hidden",textOverflow:"ellipsis"},children:h}),f&&(0,n.jsx)("span",{style:{marginLeft:4,flexShrink:0},children:":"})]})}):null;return(0,n.jsx)(l.A.Item,{...c,labelCol:{style:{width:a}},layout:m,label:y(),colon:!1,extra:c.extra&&(0,n.jsx)("span",{style:{whiteSpace:"pre-wrap"},children:c.extra}),tooltip:c.tooltip&&{title:c.tooltip,overlayInnerStyle:{whiteSpace:"pre-line"}},children:d})}},61793(e,t,r){let n,i;r.d(t,{D:()=>x});var o=r(74848),l=r(4888),s=r(96540),a=r(42524),c=r(27253),u=r(35710);let d=(e,t)=>{let{getPrefixCls:r}=(0,s.useContext)(l.Ay.ConfigContext)||{};if("ConfigContext"in l.Ay)return(null==r?void 0:r(e,null==t?void 0:t.prefixCls))||"";{let r=(null==t?void 0:t.prefixCls)??"ant-";return`${r}${e??""}`}},{ConfigContext:h}=l.Ay,p=()=>(0,s.useContext)(h),f=u.A.useToken,m=(e,t)=>{let{fontFamily:r,fontSize:n}=e,i=`[class^="${t}"], [class*=" ${t}"]`;return{[i]:{fontFamily:r,fontSize:n,boxSizing:"border-box","&::before, &::after":{boxSizing:"border-box"},[i]:{boxSizing:"border-box","&::before, &::after":{boxSizing:"border-box"}}}}},g=(n="nb-mobile-action-drawer",i=e=>{let{componentCls:t}=e;return{[t]:{".nb-mobile-action-drawer-header":{height:"var(--nb-mobile-page-header-height)",display:"flex",alignItems:"center",justifyContent:"space-between",borderBottom:`1px solid ${e.colorSplit}`,position:"sticky",top:0,backgroundColor:"white",zIndex:1e3,"& + .nb-grid-container > .nb-grid > .nb-grid-warp > .ant-btn":{margin:12}},".nb-mobile-action-drawer-placeholder":{display:"inline-block",padding:12,visibility:"hidden"},".nb-mobile-action-drawer-close-icon":{display:"inline-block",padding:12,cursor:"pointer"},".nb-mobile-action-drawer-body":{borderTopLeftRadius:8,borderTopRightRadius:8,maxHeight:"calc(100% - var(--nb-mobile-page-header-height))",overflowY:"auto",overflowX:"hidden",backgroundColor:e.colorBgLayout,"& > .nb-grid-container":{padding:`${e.paddingPageVertical}px ${e.paddingPageHorizontal}px`},".ant-tabs-nav":{marginBottom:"0px !important",padding:`0 ${e.paddingPageHorizontal+e.borderRadiusBlock/2}px`,backgroundColor:e.colorBgContainer},"& > .nb-grid-container > .nb-grid > .nb-grid-warp > .nb-grid-row:nth-last-child(2) .noco-card-item":{marginBottom:0,"& > .ant-card":{marginBottom:"0 !important"}}},".nb-mobile-action-drawer-footer":{padding:"8px var(--nb-mobile-page-tabs-content-padding)",display:"flex",alignItems:"center",justifyContent:"flex-end",position:"sticky",bottom:0,left:0,right:0,zIndex:1e3,borderTop:`1px solid ${e.colorSplit}`,backgroundColor:e.colorBgLayout,".ant-btn":{marginLeft:8}}}}},e=>{let{theme:t,token:r,hashId:o}=f(),{getPrefixCls:l,iconPrefixCls:u}=p(),h=d(n),g=l(),y=(0,a.useStyleRegister)({theme:t,token:r,hashId:o,path:["formily-antd",n,h,u]},()=>{let t=`.${h}`,n=i((0,c.merge)(r,{componentCls:t,prefixCls:h,iconCls:`.${u}`,antCls:`.${g}`}),e,{hashId:o,prefixCls:h,rootPrefixCls:g,iconPrefixCls:u});return[m(r,h),n]});return{wrapSSR:(0,s.useMemo)(()=>y,[t,r,o,h,u,g,e]),hashId:o,componentCls:h,rootPrefixCls:g}});var y=r(18492),v=r(22505);let{Popup:w}=(0,v.R)(()=>Promise.all([r.e("9817"),r.e("2131"),r.e("1222")]).then(r.bind(r,6433)),"Popup"),{CloseOutline:b}=(0,v.R)(()=>Promise.all([r.e("2131"),r.e("3279")]).then(r.bind(r,38370)),"CloseOutline"),x=e=>{let{title:t,visible:r,onClose:n,children:i,minHeight:a,className:c,footer:u}=e,{t:d}=(0,y.B)(),{componentCls:h,hashId:p}=g(),f=(0,s.useMemo)(()=>({minHeight:a}),[a]),m=(0,s.useMemo)(()=>({token:{paddingPageHorizontal:8,paddingPageVertical:8,marginBlock:12,borderRadiusBlock:8,fontSize:14}}),[]);return(0,o.jsx)(l.Ay,{theme:m,children:(0,o.jsxs)(w,{className:`${h} ${p} ${c||""}`,visible:r,onClose:n,onMaskClick:n,bodyClassName:"nb-mobile-action-drawer-body",bodyStyle:{padding:0},maskStyle:f,style:f,destroyOnClose:!0,children:[(0,o.jsxs)("div",{className:"nb-mobile-action-drawer-header",children:[(0,o.jsx)("span",{className:"nb-mobile-action-drawer-placeholder",children:(0,o.jsx)(b,{})}),(0,o.jsx)("span",{children:t}),(0,o.jsx)("span",{className:"nb-mobile-action-drawer-close-icon",onClick:n,role:"button",tabIndex:0,"aria-label":d("Close"),children:(0,o.jsx)(b,{})})]}),i,u&&(0,o.jsx)("div",{className:"nb-mobile-action-drawer-footer",children:u})]})})}},96332(e,t,r){r.d(t,{openRequiredParamsStepFormDialog:()=>f});var n=r(74848),i=r(18220),o=r(95243),l=r(87959),s=r(71021),a=r(96540),c=r(29007),u=r(16296),d=r(48555);let h=(0,i.createSchemaField)(),p=e=>{let{model:t,requiredSteps:r,formStep:i,children:o}=e,l=r[(null==i?void 0:i.current)??0],s=a.useMemo(()=>{let{flowKey:e,step:r}=l,n=t.getFlow(e),i=new c.W5(t,e,"settings");return(0,d.wx)(i,(null==n?void 0:n.steps)||{},t,e),i.defineProperty("currentStep",{value:r}),i},[t,l]);return(0,n.jsx)(u.u,{value:s,children:o})},f=async e=>{let{model:t,dialogWidth:a=800,dialogTitle:f}=e,m=(0,d.lW)(t);if(f||m("Step parameter configuration"),!t)throw l.Ay.error(m("Invalid model provided")),Error(m("Invalid model provided"));return new Promise((e,l)=>{(async()=>{try{var g,y,v;let l=t.getFlows(),w=[];for(let[e,r]of l)for(let n in r.steps){let i=r.steps[n];if(i.paramsRequired||i.preset){let o=await (0,d.o7)(t,r,i);if(o){t.getStepParams(e,n);let l=!1;console.log(`Flow: ${e}, Step: ${n}, hasAllRequiredParams:`,l),l||w.push({flowKey:e,stepKey:n,step:i,uiSchema:o,title:i.title||n,flowTitle:r.title||e})}}}if(console.log("Required steps:",w),0===w.length)return void e({});let b={};for(let{flowKey:e,stepKey:r,step:n}of w){let i=t.getStepParams(e,r)||{},l={};n.use&&(l=(null==(v=t.flowEngine)||null==(y=v.getAction)?void 0:y.call(v,n.use)).defaultParams||{});let s=new c.W5(t,e,"settings"),a=t.getFlow(e);a&&(0,d.wx)(s,a.steps,t,e),s.defineProperty("currentStep",{value:n});let u=await (0,d.gG)(l,s),h=await (0,d.gG)(n.defaultParams,s),p={...(0,o.toJS)(u),...(0,o.toJS)(h),...(0,o.toJS)(i)};Object.keys(p).length>0&&(b[e]||(b[e]={}),b[e][r]=p)}let x={};w.forEach(e=>{let{flowKey:t,stepKey:r,uiSchema:n,title:i,flowTitle:o}=e;x[`${t}_${r}`]={type:"void","x-component":"FormStep.StepPane","x-component-props":{title:`${i}`,description:`Flow: ${o}`},properties:{layout:{type:"void","x-component":"FormLayout","x-component-props":{layout:"vertical"},properties:{[t]:{type:"object",properties:{[r]:{type:"object",properties:n}}}}}}}});let S=1===w.length?{type:"object",properties:{...Object.values(x)[0].properties}}:{type:"object",properties:{step:{type:"void","x-component":"FormStep","x-component-props":{formStep:"{{formStep}}"},properties:x}}},{FormDialog:A,FormStep:M}=await r.e("1331").then(r.bind(r,54766)),_=w.length>1?M.createFormStep(0):null,k=t.flowEngine,P={formStep:_,totalSteps:w.length,requiredSteps:w,useFlowSettingsContext:u.s,...null==(g=k.flowSettings)?void 0:g.scopes},C=A({title:f||m("Step parameter configuration"),width:a,footer:null,destroyOnClose:!0},r=>{var o;let l=async()=>{try{await r.submit();let n=r.values;w.forEach(e=>{var r;let{flowKey:i,stepKey:o}=e,l=null==(r=n[i])?void 0:r[o];l&&t.setStepParams(i,o,l)}),await t.saveStepParams(),e(n),C.close()}catch(e){console.error(m("Error submitting form"),":",e)}},a=()=>{C.close(),e({})},c={...P,closeDialog:a,handleNext:()=>{r.validate().then(()=>{_&&_.next()}).catch(e=>{console.log(m("Form validation failed"),":",e)})}},u=(0,d.ln)(c,S);return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(p,{model:t,requiredSteps:w,formStep:_,children:(0,n.jsx)(h,{schema:u,components:{FormStep:M,...null==(o=k.flowSettings)?void 0:o.components},scope:c})}),(0,n.jsx)(i.FormConsumer,{children:()=>(0,n.jsx)("div",{style:{display:"flex",justifyContent:"flex-end",gap:8,marginTop:24,paddingTop:16,borderTop:"1px solid #f0f0f0"},children:1===w.length?(0,n.jsx)(s.Ay,{type:"primary",onClick:l,children:m("Complete configuration")}):(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(s.Ay,{disabled:!(null==_?void 0:_.allowBack),onClick:()=>{_&&_.back()},children:m("Previous step")}),(0,n.jsx)(s.Ay,{disabled:!(null==_?void 0:_.allowNext),type:"primary",onClick:()=>{r.validate().then(()=>{_&&_.next()}).catch(e=>{console.log(m("Form validation failed"),":",e)})},style:{display:((null==_?void 0:_.current)??0)<w.length-1?"inline-block":"none"},children:m("Next step")}),(0,n.jsx)(s.Ay,{disabled:null==_?void 0:_.allowNext,type:"primary",onClick:l,style:{display:((null==_?void 0:_.current)??0)>=w.length-1?"inline-block":"none"},children:m("Complete configuration")})]})})})]})});C.open({initialValues:(0,d.ln)(P,b)})}catch(e){l(Error(`${m("Failed to import FormDialog or FormStep")}: ${e.message}`))}})()}).catch(e=>{console.error(e)})}},23183(e,t,r){r.d(t,{openStepSettingsDialog:()=>m});var n=r(74848),i=r(60645),o=r(18220),l=r(95243),s=r(84626),a=r(71021),c=r(96540),u=r(16296),d=r(48555),h=r(31108),p=r(52847);let f=(0,o.createSchemaField)(),m=async e=>{var t,r,m,g,y,v,w,b;let{model:x,flowKey:S,stepKey:A,dialogWidth:M=600,dialogTitle:_,mode:k="dialog",ctx:P,uiModeProps:C,cleanup:j}=e,R=(0,d.lW)(x),E=x.context.message;if(!x)throw E.error(R("Invalid model provided")),Error(R("Invalid model provided"));let F=x.getFlow(S),T=null==F||null==(t=F.steps)?void 0:t[A];if(!F)throw E.error(R("Flow with key {{flowKey}} not found",{flowKey:S})),Error(R("Flow with key {{flowKey}} not found",{flowKey:S}));if(!T)throw E.error(R("Step with key {{stepKey}} not found",{stepKey:A})),Error(R("Step with key {{stepKey}} not found",{stepKey:A}));let O=T.title,I=T.beforeParamsSave,$=T.afterParamsSave,D={};if(T.use){let e=null==(b=x.flowEngine)||null==(w=b.getAction)?void 0:w.call(b,T.use);e&&(D=e.defaultParams||{},O=O||e.title,I=I||e.beforeParamsSave,$=$||e.afterParamsSave)}let N=x.getFlow(S),B=await (0,d.o7)(x,N,T);if(!B)return E.info(R("This step has no configurable parameters")),{};let L=P;L.currentStep&&L.currentStep===T||L.defineProperty("currentStep",{value:T});let q=x.flowEngine,U={useFlowSettingsContext:u.s,...null==(r=q.flowSettings)?void 0:r.scopes},z=x.getStepParams(S,A)||{},V=await (0,d.gG)(T.defaultParams,L),W=await (0,d.gG)(D,L),H={...(0,l.toJS)(W),...(0,l.toJS)(V),...(0,l.toJS)(z)},K={...(0,l.toJS)(z)},J={type:"object",properties:{layout:{type:"void","x-component":"FormLayout","x-component-props":{layout:"vertical"},properties:B}}},Y=x.context.viewer[k].bind(x.context.viewer),{zIndex:G,...Z}=(0,l.toJS)(C)||{},X=e=>{var t,r;return Math.max("function"==typeof(null==(t=x.context.viewer)?void 0:t.getNextZIndex)?x.context.viewer.getNextZIndex():((null==(r=x.context.themeToken)?void 0:r.zIndexPopupBase)||1e3)+1,Number(e)||0)},Q=X(G),ee=(0,i.createForm)({initialValues:(0,d.ln)(U,H)}),et=(null==(m=x.context.view)?void 0:m.inputArgs)||{},er=(null==P||null==(g=P.view)?void 0:g.navigation)??(null==(y=x.context.view)?void 0:y.navigation),en={...et,...er?{navigation:er}:{},...(null==(v=(0,l.toJS)(C))?void 0:v.inputArgs)||{},__isSettingsPopup:!0};Y({title:_||R(O),width:M,destroyOnClose:!0,...Z,zIndex:Q,inputArgs:en,onClose:()=>{j&&j()},content:e=>{let t=(0,p.PA)(()=>{var t;(0,c.useEffect)(()=>(0,l.autorun)(()=>{let{zIndex:t,...r}=(0,l.toJS)(C)||{};e.update({...r,zIndex:X(t)})}),[]);let r=(0,d.ln)(U,J);return(0,n.jsx)(o.FormProvider,{form:ee,children:(0,n.jsxs)(u.u,{value:L,children:[(0,n.jsx)(f,{schema:r,components:{...null==(t=q.flowSettings)?void 0:t.components},scope:U}),(0,n.jsx)(e.Footer,{children:(0,n.jsxs)(s.A,{align:"end",children:[(0,n.jsx)(a.Ay,{type:"default",onClick:()=>{e.close()},children:R("Cancel")}),(0,n.jsx)(a.Ay,{type:"primary",onClick:async()=>{try{await ee.submit();let t=ee.values;x.setStepParams(S,A,t),I&&await I(L,t,K),e.close(),await x.saveStepParams(),E.success(R("Configuration saved")),$&&await $(L,t,K)}catch(t){if(t instanceof d.VD)return;if(t instanceof d.sy||t instanceof h.zz)return void e.close();console.error(R("Error saving configuration"),":",t),E.error(R("Error saving configuration, please check console"))}},children:R("OK")})]})})]})})});return(0,n.jsx)(t,{})}})}},41594(e,t,r){r.d(t,{Ls:()=>s,Qp:()=>d,jx:()=>h,yG:()=>u,z5:()=>c});var n=r(2543),i=r.n(n),o=r(48555);async function l(e,t){return"function"==typeof e?await e(t):e}async function s(e,t){let r=arguments.length>2&&void 0!==arguments[2]&&arguments[2],n=e.meta??{};if(await l(n.hide,t)&&!r)return;let i={key:e.name,label:n.label||e.name,searchable:!!n.searchable,searchPlaceholder:n.searchPlaceholder,toggleable:n.toggleable,useModel:e.name,sort:n.sort||1e3,children:a(e,t)};return i.createModelOptions=n.createModelOptions||{use:e.name},i}function a(e,t){let r,n=e.meta??{};if(!1===n.children)return!1;if(n.children&&(r=n.children),e.defineChildren&&(r=e.defineChildren.bind(e)),"function"==typeof r){let e=r;r=async()=>{let r=await e(t),l=e=>null==e?void 0:e.map(e=>{let r={...e};if(r.children)r.children=Array.isArray(r.children)?l(r.children):r.children;else if(r.createModelOptions){let e=r.createModelOptions;r.createModelOptions=async function(){for(var r=arguments.length,l=Array(r),s=0;s<r;s++)l[s]=arguments[s];let a=l&&l.length>0?l[l.length-1]:void 0,c=await (0,o.mv)(null==n?void 0:n.createModelOptions,t,a),u=await (0,o.mv)(e,t,a);return i().merge({},i().cloneDeep(c),u)}}return r});return l(r)}}return r}function c(e){return async t=>{let r=await d([e])(t);if(0===r.length)return[];let n=r.shift().children;return"function"==typeof n?n(t):n}}function u(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return async r=>{var n,i;let a=r.engine.getSubclassesOf(e),c=[];for(let e of Array.from(a.values()))await l(null==(n=e.meta)?void 0:n.hide,r)||c.push(e);if(0===(c=c.filter(e=>{for(let r of t)if("string"==typeof r){if(e.name===r)return!1}else if(e===r||(0,o.FA)(e,r))return!1;return!0}).sort((e,t)=>{var r,n;return((null==(r=e.meta)?void 0:r.sort)??1e3)-((null==(n=t.meta)?void 0:n.sort)??1e3)})).length){let t="string"==typeof e?r.engine.getModelClass(e):e;t&&!await l(null==(i=t.meta)?void 0:i.hide,r)&&(c=[t])}let u=[];for(let e of c){let t=await s(e,r);t&&u.push(t)}return u}}function d(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return async t=>{let r=[],n=[];for(let s of e){var i,o,l;let e="string"==typeof s?t.engine.getModelClass(s):s;if(!e)continue;let c=a(e,t);c||(c=await u(s,n)(t)),n.push(e);let d=!1;if("function"==typeof c)try{let e=await c(t);d=Array.isArray(e)?e.length>0:!!e}catch(e){d=!1}else d=Array.isArray(c)?c.length>0:!!c;if(!d)continue;let h=(null==e||null==(i=e.meta)?void 0:i.label)||("string"==typeof s?s:e.name),p="string"==typeof s?s:e.name,f=(null==e||null==(o=e.meta)?void 0:o.menuType)||"group",m=(null==e||null==(l=e.meta)?void 0:l.sort)??1e3;"submenu"===f?r.push({key:p,label:h,sort:m,children:c}):r.push({key:p,type:"group",label:h,sort:m,children:c})}return r.sort((e,t)=>((null==e?void 0:e.sort)??1e3)-((null==t?void 0:t.sort)??1e3))}}function h(e,t){let{useModel:r,fieldUseModel:n,associationPathName:i,refreshTargets:o}=t,l=t.collection||e.model.collection||e.collection,s=l.getFields(),a=[];for(let e of s){var c;if(!(null==e||null==(c=e.options)?void 0:c.interface))continue;let t=i?`${i}.${e.name}`:e.name,s="function"==typeof n?n(e):n??"FieldModel";if(s){let n={dataSourceKey:l.dataSourceKey,collectionName:l.name,fieldPath:e.name,associationPathName:i};a.push({key:t,label:e.title,toggleable:e=>{let{associationPathName:r,fieldPath:n}=e.getStepParams("fieldSettings","init")||{};return(r?`${r}.${n}`:n)===t},useModel:r,refreshTargets:o,createModelOptions:()=>({use:r,stepParams:{fieldSettings:{init:n}},subModels:{field:{use:s,stepParams:{fieldSettings:{init:n}}}}})})}}return[{key:`addField_${l.name}`,label:"",type:"group",searchable:!0,searchPlaceholder:e.t("Search fields"),children:a.filter(Boolean)}]}},76546(e,t,r){r.d(t,{pM:()=>f,qG:()=>p,qS:()=>h,JL:()=>m,Ns:()=>c,zA:()=>d,Xk:()=>g});var n=r(50467),i=r(95243),o=r(2543),l=r.n(o),s=r(16075),a=r.n(s);function c(e){var t;let r;switch(e.type){case"string":r=a().string();break;case"number":r=a().number();break;case"array":r=a().array();break;case"boolean":r=a().boolean();break;default:r=a().any()}let n=(e,t)=>{if(!t||0===Object.keys(t).length)return[];if(Array.isArray(t))return t;if("email"===e){var r;let e={...t};return(null==(r=e.tlds)?void 0:r.allow)===!0?e.tlds.allow=!1:e.tlds||(e.tlds={allow:!1}),[e]}if(["length","min","max"].includes(e))return[t.limit];if("pattern"===e){let e=null==t?void 0:t.regex;return e instanceof RegExp?[e]:[new RegExp(e)]}let n=Object.values(t);return n.length?n:[]},i=!1;return null==(t=e.rules)||t.forEach(e=>{let{name:t,args:o}=e;if("required"===t&&(i=!0),"function"==typeof r[t])try{r=r[t](...n(t,o))}catch(e){console.warn(`调用 Joi 方法 ${t} 失败:`,e)}else console.warn(`Joi schema 上不存在方法: ${t}`)}),i||(r=(r=r.optional().allow("")).optional().allow(null)),r}function u(e){let t=[],r=new Set,n=new Set,i=new Map;e.forEach(e=>{i.set(e.name,e)});let o=e=>{if(n.has(e.name))throw Error(`Circular dependency detected: ${e.name} inherits from itself through a chain`);if(!r.has(e.name)){for(let t of(n.add(e.name),e.inherits||[])){let r=i.get(t);if(!r){console.warn(`Warning: Collection ${t}, inherited by ${e.name}, not found.`);continue}o(r)}n.delete(e.name),r.add(e.name),t.push(e)}};for(let t of e)o(t);return t}class d{setFlowEngine(e){this.flowEngine=e}addDataSource(e){if(this.dataSources.has(e.key))throw Error(`DataSource with name ${e.key} already exists`);e instanceof h||(e=new(e.use||h)(e)),this.dataSources.set(e.key,e),e.setDataSourceManager(this)}upsertDataSource(e){if(this.dataSources.has(e.key)){var t;null==(t=this.dataSources.get(e.key))||t.setOptions(e)}else this.addDataSource(e)}removeDataSource(e){this.dataSources.delete(e)}clearDataSources(){this.dataSources.clear()}getDataSources(){return Array.from(this.dataSources.values())}getDataSource(e){return this.dataSources.get(e)}getCollection(e,t){let r=this.getDataSource(e);if(r)return r.collectionManager.getCollection(t)}getCollectionField(e){let[t,...r]=e.split("."),n=this.getDataSource(t);if(n)return n.getCollectionField(r.join("."))}constructor(){(0,n._)(this,"dataSources",void 0),(0,n._)(this,"flowEngine",void 0),this.dataSources=i.observable.shallow(new Map)}}class h{get flowEngine(){return this.dataSourceManager.flowEngine}get displayName(){return this.flowEngine.translate(this.options.displayName,{ns:"lm-collections"})||this.key}get key(){return this.options.key}get name(){return this.options.key}setDataSourceManager(e){this.dataSourceManager=e}getCollections(){return this.collectionManager.getCollections()}getCollection(e){return this.collectionManager.getCollection(e)}getAssocation(e){return this.getAssociation(e)}getAssociation(e){return this.collectionManager.getAssociation(e)}addCollection(e){return this.collectionManager.addCollection(e)}updateCollection(e){return this.collectionManager.updateCollection(e)}upsertCollection(e){return this.collectionManager.upsertCollection(e)}upsertCollections(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.collectionManager.upsertCollections(e,t)}removeCollection(e){return this.collectionManager.removeCollection(e)}clearCollections(){this.collectionManager.clearCollections()}setOptions(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};Object.keys(this.options).forEach(e=>delete this.options[e]),Object.assign(this.options,e)}getCollectionField(e){let[t,...r]=e.split("."),n=r.join("."),i=this.getCollection(t);if(!i)return;let o=i.getFieldByPath(n);if(o)return o}constructor(e={}){(0,n._)(this,"dataSourceManager",void 0),(0,n._)(this,"collectionManager",void 0),(0,n._)(this,"options",void 0),this.options=(0,i.observable)({...e}),this.collectionManager=new p(this)}}class p{get flowEngine(){return this.dataSource.flowEngine}addCollection(e){let t;(t=e instanceof f?e:new f(e)).setDataSource(this.dataSource),t.initInherits(),this.collections.set(t.name,t)}removeCollection(e){this.collections.delete(e)}updateCollection(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=this.getCollection(e.name);if(!r)throw Error(`Collection ${e.name} not found`);r.setOptions(e,t)}upsertCollection(e){return this.collections.has(e.name)?this.updateCollection(e):this.addCollection(e),this.getCollection(e.name)}upsertCollections(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};for(let r of u(e))this.collections.has(r.name)?this.updateCollection(r,t):this.addCollection(r)}sortCollectionsByInherits(e){let t=new Map;for(let r of e)t.set(r.name,r);let r={},n={};for(let t of e)r[t.name]=new Set,n[t.name]=0;for(let t of e)for(let e of t.inherits||[])r[e]||(r[e]=new Set),r[e].add(t.name),n[t.name]=(n[t.name]||0)+1;let i=[];for(let e in n)0===n[e]&&i.push(e);let o=[];for(;i.length;){let e=i.shift();for(let l of(t.has(e)&&o.push(t.get(e)),r[e]||[]))n[l]--,0===n[l]&&i.push(l)}if(o.length!==e.length)throw Error("Collection inherits has circular dependency!");return o}getCollection(e){if(e.includes(".")){let[t,r]=e.split("."),n=this.getCollection(t);if(!n)throw Error(`Collection ${t} not found in data source ${this.dataSource.key}`);let i=n.getField(r);if(!i)throw Error(`Field ${r} not found in collection ${t}`);return i.targetCollection}return this.collections.get(e)}getCollections(){return l().sortBy(Array.from(this.collections.values()).filter(e=>!e.hidden),"sort")}clearCollections(){this.collections.clear()}getAssociation(e){let[t,r]=e.split("."),n=this.getCollection(t);if(!n)throw Error(`Collection ${t} not found in data source ${this.dataSource.key}`);return n.getField(r)}getChildrenCollections(e){let t=[],r=Array.from(this.collections.values()),n=e=>(r.filter(t=>{var r;return null==(r=t.options.inherits)?void 0:r.includes(e)}).forEach(e=>{let r=e.name;return t.push(e),n(r)}),t);return n(e)}getChildrenCollectionsName(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],r=t?"supportView":"notSupportView";if(this.childrenCollectionsName[r])return this.childrenCollectionsName[r].slice();let n=[],i=[...this.getCollections()],o=e=>(i.filter(t=>{var r;return r=[...t.inherits],r.includes(e)}).forEach(e=>{let t=e.name;return n.push(t),o(t)}),t&&i.filter(t=>{var r;return r=[...t.sources],r.length===1&&(null==t?void 0:t.sources[0])===e}).forEach(e=>{let t=e.name;return n.push(e.name),o(t)}),l().uniq(n));return this.childrenCollectionsName[r]=o(e),this.childrenCollectionsName[r]}getAllCollectionsInheritChain(e){if(this.allCollectionsInheritChain)return this.allCollectionsInheritChain.slice();let t=[e],r=e=>{let n=this.getCollection(e);if(n){let{inherits:i}=n,o=this.getChildrenCollectionsName(e);if(i)for(let e=0;e<i.length;e++){let n=i[e];t.includes(n)||(t.push(n),r(n))}if(o)for(let e=0;e<o.length;e++){let n=this.getCollection(o[e]).name;t.includes(n)||(t.push(n),r(n))}}return t};return this.allCollectionsInheritChain=r(e),this.allCollectionsInheritChain||[]}constructor(e){(0,n._)(this,"dataSource",void 0),(0,n._)(this,"collections",void 0),(0,n._)(this,"allCollectionsInheritChain",void 0),(0,n._)(this,"childrenCollectionsName",void 0),this.dataSource=e,this.childrenCollectionsName={},this.collections=i.observable.shallow(new Map)}}class f{clone(){let e=new f(l().cloneDeep(this.options));return e.setDataSource(this.dataSource),e}getFilterByTK(e){if(!e)throw Error("Record is required to get filterByTk");if(Array.isArray(e))return e.map(e=>this.getFilterByTK(e));if(!this.filterTargetKey)throw Error(`filterTargetKey is not defined for collection ${this.name}`);return"string"==typeof this.filterTargetKey?e[this.filterTargetKey]:Array.isArray(this.filterTargetKey)&&1===this.filterTargetKey.length?e[this.filterTargetKey[0]]:l().pick(e,this.filterTargetKey)}get titleableFields(){return this.getFields().filter(e=>e.titleable)}get hidden(){return this.options.hidden||!1}get flowEngine(){return this.dataSource.flowEngine}get collectionManager(){return this.dataSource.collectionManager}get sort(){return this.options.sort||0}get filterTargetKey(){return this.options.filterTargetKey}get dataSourceKey(){return this.dataSource.key}get name(){return this.options.name}get template(){return this.options.template}get storage(){return this.options.storage||"local"}get title(){return this.flowEngine.translate(this.options.title,{ns:"lm-collections"})||this.name}get titleCollectionField(){let e=this.options.titleField||this.filterTargetKey;return this.getField(e)}initInherits(){for(let e of(this.inherits.clear(),this.options.inherits||[])){let t=this.collectionManager.getCollection(e);if(!t){console.warn(`Warning: Collection ${e} not found for collection ${this.name}`);continue}this.inherits.set(e,t)}}setDataSource(e){this.dataSource=e}setOptions(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};Object.keys(this.options).forEach(e=>delete this.options[e]),Object.assign(this.options,e),this.initInherits(),t.clearFields&&this.clearFields(),this.upsertFields(this.options.fields||[])}getFields(){let e=new Map;for(let t of this.inherits.values())if(t&&"function"==typeof t.getFields)for(let r of t.getFields())e.set(r.name,r);for(let[t,r]of this.fields.entries())e.set(t,r);return Array.from(e.values())}getToOneAssociationFields(){return this.getAssociationFields(["one"])}getAssociationFields(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return e.includes("new")?this.getFields().filter(e=>["hasMany","belongsToMany","belongsToArray"].includes(e.type)):e.includes("many")&&e.includes("one")?this.getFields().filter(e=>e.isAssociationField()):e.includes("many")?this.getFields().filter(e=>["hasMany","belongsToMany","belongsToArray"].includes(e.type)):e.includes("one")?this.getFields().filter(e=>["hasOne","belongsTo"].includes(e.type)):this.getFields().filter(e=>e.isAssociationField())}mapFields(e){return this.getFields().map(e)}setFields(e){for(let t of(this.fields.clear(),e))this.addField(t)}upsertFields(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];for(let t of e)this.fields.has(t.name)?this.fields.get(t.name).setOptions(t):this.addField(t)}getFieldByPath(e){let[t,...r]=e.split("."),n=this.getField(t);return 0===r.length?n:(null==n?void 0:n.targetCollection)?n.targetCollection.getFieldByPath(r.join(".")):null}getField(e){return this.fields.get(e)}getFullFieldPath(e){return this.dataSource.key+"."+this.name+"."+e}addField(e){if(e.name&&this.fields.has(e.name))throw Error(`Field with name ${e.name} already exists in collection ${this.name}`);if(e instanceof m)e.setCollection(this),this.fields.set(e.name,e);else{let t=new m(e);t.setCollection(this),this.fields.set(t.name,t)}}removeField(e){return this.fields.delete(e)}clearFields(){return this.fields.clear()}refresh(){}getRelationshipFields(){let e=["o2o","oho","obo","m2o","createdBy","updatedBy","o2m","m2m","linkTo","chinaRegion","mbm"];return this.getFields().filter(t=>e.includes(t.interface))}getRelatedCollections(){let e=this.getRelationshipFields(),t=[],r=new Set;for(let n of e)if(n.target&&!r.has(n.target)){let e=this.collectionManager.getCollection(n.target);e&&e.name!==this.name&&(t.push(e),r.add(n.target))}return t}hasRelationshipFields(){return this.getRelationshipFields().length>0}constructor(e={}){(0,n._)(this,"fields",void 0),(0,n._)(this,"options",void 0),(0,n._)(this,"inherits",void 0),(0,n._)(this,"dataSource",void 0),this.options=(0,i.observable)({...e}),this.fields=i.observable.shallow(new Map),this.inherits=i.observable.shallow(new Map),this.setFields(e.fields||[])}}class m{setOptions(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};Object.keys(this.options).forEach(e=>delete this.options[e]),Object.assign(this.options,e)}setCollection(e){this.collection=e}get targetCollectionTitleFieldName(){var e,t;return null==(t=this.targetCollection)||null==(e=t.titleCollectionField)?void 0:e.name}get targetCollectionTitleField(){var e;return null==(e=this.targetCollection)?void 0:e.titleCollectionField}get flowEngine(){return this.collection.flowEngine}get dataSourceKey(){var e;return null==(e=this.collection)?void 0:e.dataSourceKey}get resourceName(){return`${this.collection.name}.${this.name}`}get collectionName(){var e;return(null==(e=this.collection)?void 0:e.name)||this.options.collectionName}get readonly(){var e;return this.options.readonly||(null==(e=this.options.uiSchema)?void 0:e["x-read-pretty"])||!1}get titleable(){return!!(this.options.titleable??this.options.titleUsable)}get fullpath(){return this.collection.dataSource.key+"."+this.collection.name+"."+this.name}get name(){return this.options.name}get type(){return this.options.type}get dataType(){return this.options.dataType}get foreignKey(){return this.options.foreignKey}get targetKey(){return this.options.targetKey||this.targetCollection.filterTargetKey}get sourceKey(){return this.options.sourceKey}get target(){return this.options.target}get title(){var e,t,r;let n=(null==(t=this.options)||null==(e=t.uiSchema)?void 0:e.title)||(null==(r=this.options)?void 0:r.title);return this.flowEngine.translate(n,{ns:"lm-collections"})||this.options.name}set title(e){this.options.title=e}get enum(){var e;let t=(null==(e=this.options.uiSchema)?void 0:e.enum)||[];return"integer"===this.type?t.map(e=>"object"!=typeof e||null===e.value||void 0===e.value?e:{...e,label:e.label?this.flowEngine.translate(e.label,{ns:"lm-collections"}):e.label,value:Number(e.value)}):t.map(e=>({...e,label:this.flowEngine.translate(e.label,{ns:"lm-collections"})}))}get defaultValue(){return null==this.options.defaultValue?void 0:this.options.defaultValue}get interface(){return this.options.interface}get filterable(){var e;return this.options.filterable||(null==(e=this.getInterfaceOptions())?void 0:e.filterable)}get inputable(){return this.options.inputable}get uiSchema(){return this.options.uiSchema||{}}get targetCollection(){var e;return this.options.target&&(null==(e=this.collection)?void 0:e.collectionManager.getCollection(this.options.target))}get validation(){return this.options.validation}getComponentProps(){var e,t;let{type:r,target:n}=this.options,i=l().omitBy({...l().omit((null==(e=this.options.uiSchema)?void 0:e["x-component-props"])||{},"fieldNames"),options:this.enum.length?this.enum:void 0,mode:"array"===this.type?"multiple":void 0,multiple:n?["belongsToMany","hasMany","belongsToArray"].includes(r):void 0,maxCount:n&&!["belongsToMany","hasMany","belongsToArray"].includes(r)?1:void 0,target:n,template:null==(t=this.targetCollection)?void 0:t.template},l().isUndefined);if(this.validation){let e=[],t=c(this.validation),r=this.title;e.push({validator:(e,n)=>{let{error:i}=t.validate(n,{context:{label:r},abortEarly:!1});return i?Promise.reject(i.details.map(e=>e.message.replace(/"value"/g,`"${r}"`)).join(", ")):Promise.resolve()}}),i.rules=e}return i}getFields(){if(!this.options.target)return[];if(!this.targetCollection)throw Error(`Target collection ${this.options.target} not found for field ${this.name}`);return this.targetCollection.getFields()}getInterfaceOptions(){return this.flowEngine.context.app.dataSourceManager.collectionFieldInterfaceManager.getFieldInterface(this.interface)}getFilterOperators(){var e;let t=this.getInterfaceOptions();return(null==t||null==(e=t.filterable)?void 0:e.operators)||[]}getSubclassesOf(e){return this.flowEngine.getSubclassesOf(e,(e,t)=>g(e.supportedFieldInterfaces,this.interface))}getFirstSubclassNameOf(e){for(let[t,r]of this.getSubclassesOf(e))if("*"!==r.supportedFieldInterfaces)return t}isAssociationField(){return["belongsToMany","belongsTo","hasMany","hasOne","belongsToArray"].includes(this.type)}isRelationshipField(){return["o2o","oho","obo","m2o","createdBy","updatedBy","o2m","m2m","linkTo","chinaRegion","mbm"].includes(this.interface)}constructor(e){(0,n._)(this,"options",void 0),(0,n._)(this,"collection",void 0),this.options=(0,i.observable)({...e})}}function g(e,t){return!!e&&("*"===e||("string"==typeof e?e===t:!!Array.isArray(e)&&(e.includes("*")||e.includes(t))))}},48036(e,t,r){r.d(t,{v:()=>i});var n=r(50467);class i{setPaused(e){this.paused=e}on(e,t){var r,n;((r=this.events)[n=e]||(r[n]=[])).push(t)}off(e,t){this.events[e]=(this.events[e]||[]).filter(e=>e!==t)}emit(e){for(var t=arguments.length,r=Array(t>1?t-1:0),n=1;n<t;n++)r[n-1]=arguments[n];this.paused||(this.events[e]||[]).forEach(e=>e(...r))}async emitAsync(e){for(var t=arguments.length,r=Array(t>1?t-1:0),n=1;n<t;n++)r[n-1]=arguments[n];if(!this.paused)for(let t of(this.events[e]||[]).slice())await t(...r)}constructor(){(0,n._)(this,"events",{}),(0,n._)(this,"paused",!1)}}},26955(e,t,r){r.d(t,{L:()=>i});var n=r(50467);class i{onEventRegistered(){}registerEvents(e){for(let[,t]of Object.entries(e||{}))this.registerEvent(t)}registerEvent(e){if(!(null==e?void 0:e.name))throw Error("Event must have a name.");this.events.has(e.name)&&console.warn(`Event '${e.name}' is already registered. It will be overwritten.`),this.events.set(e.name,e),this.onEventRegistered()}constructor(){(0,n._)(this,"events",new Map)}}},29007(e,t,r){r.d(t,{W5:()=>ek,uk:()=>ez,Hl:()=>e_,o0:()=>eA,d6:()=>eM,cB:()=>ep,Bt:()=>eN});var n=r(58587),i=r(18150),o=r(68238),l=r(88243),s=r(16213),a=r(50467),c=r(95243),u=r(37015),d=r(2543),h=r.n(d),p=r(55373),f=r.n(p),m=r(96540),g=r(5338),y=r.t(g,2),v=r(63128);class w{setData(e){this.data=h().cloneDeep(e)}setMeta(e){this.meta=h().cloneDeep(e)}async load(){var e,t,r,n;let i=(null==(n=this.flowEngine)||null==(r=n.context)||null==(t=r.api)||null==(e=t.auth)?void 0:e.token)||"";this.loaded&&this.lastToken!==i&&(this.loaded=!1,this.loadingPromise=null,this.data={},this.meta={});let{data:o}=await this.flowEngine.context.api.request({url:"roles:check"});this.data=(null==o?void 0:o.data)||{},this.meta=(null==o?void 0:o.meta)||{},this.loaded=!0,this.lastToken=i,await this.loadingPromise}getActionAlias(e){var t;return(null==(t=this.data.actionAlias)?void 0:t[e])||e}inResources(e,t){var r,n,i;let{dataSources:o}=(null==(r=this)?void 0:r.meta)||{};return null==(i=({...this.data,...(0,d.omit)(null==o?void 0:o[t],"snippets")}).resources)||null==(n=i.includes)?void 0:n.call(i,e)}getResourceActionParams(e,t,r){var n,i,o;let l=this.getActionAlias(t),{dataSources:s}=(null==(n=this)?void 0:n.meta)||{},a={...this.data,...(0,d.omit)(null==s?void 0:s[r],"snippets")};return(null==(i=a.actions)?void 0:i[`${e}:${l}`])||(null==(o=a.actions)?void 0:o[t])}getStrategyActionParams(e,t){var r,n,i;let o=this.getActionAlias(e),{dataSources:l}=(null==(r=this)?void 0:r.meta)||{},s={...this.data,...(0,d.omit)(null==l?void 0:l[t],"snippets")};return(null==s||null==(i=s.strategy)||null==(n=i.actions)?void 0:n.find(e=>{let[t]=e.split(":");return t===o}))?{}:null}parseAction(e){var t;let{resourceName:r,actionName:n,dataSourceKey:i="main",recordPkValue:o,allowedActions:l}=e,s=(null==r?void 0:r.includes("."))&&(null==(t=this.flowEngine.context.dataSourceManager.getDataSource(i).collectionManager.getAssociation(r))?void 0:t.target);return this.getIgnoreScope(e)||this.verifyScope(n,o,l)?this.inResources(s,i)?this.getResourceActionParams(s,n,i):this.inResources(r,i)?this.getResourceActionParams(r,n,i):this.getStrategyActionParams(n,i):null}parseField(e){let{fields:t}=e,r=this.parseAction(e),n=[].concat((null==r?void 0:r.whitelist)||[]).concat((null==r?void 0:r.fields)||[]).concat((null==r?void 0:r.appends)||[]);return!!r&&!Object.keys(r).length||n.includes(t[0])}async aclCheck(e){let{allowAll:t}=this.data;return!!t||(e.fields?this.parseField(e):this.parseAction(e))}constructor(e){(0,a._)(this,"flowEngine",void 0),(0,a._)(this,"data",void 0),(0,a._)(this,"meta",void 0),(0,a._)(this,"loaded",void 0),(0,a._)(this,"loadingPromise",void 0),(0,a._)(this,"lastToken",void 0),(0,a._)(this,"getIgnoreScope",void 0),(0,a._)(this,"verifyScope",void 0),this.flowEngine=e,this.data={},this.meta={},this.loaded=!1,this.loadingPromise=null,this.lastToken=null,this.getIgnoreScope=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},{recordPkValue:t,allowedActions:r,actionName:n}=e,i=!1;return e.ignoreScope&&(i=!0),"create"===n&&(i=!0),t&&r||(i=!0),i},this.verifyScope=(e,t,r)=>{let n=this.getActionAlias(e),i=null==r?void 0:r[n];return Array.isArray(i)?i.map(e=>String(e)).includes(String(t)):null}}}let b=Symbol.toPrimitive;class x{toString(){return`{{${this.path.join(".")}}}`}valueOf(){return this.toString()}[b](){return this.toString()}static create(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:["ctx"];return new Proxy(new x(e),{get(t,r,n){if("symbol"==typeof r)return;if(r in t){let e=t[r];return"function"==typeof e?e.bind(t):e}let i=[...e,r.toString()];return x.create(i)}})}constructor(e){(0,a._)(this,"path",void 0),this.path=e}}var S=r(76546),A=r(81440);class M{translate(e,t){return!e||"string"!=typeof e||(null==t?void 0:t.compareWith)&&e===t.compareWith?e:this.isTemplate(e)?this.compileTemplate(e):this.translateKey(e,t)}translateKey(e,t){var r,n;return(null==(n=this.context)||null==(r=n.i18n)?void 0:r.t)?this.context.i18n.t(e,t):e}isTemplate(e){return/\{\{\s*t\s*\(\s*["'`].*?["'`]\s*(?:,\s*.*?)?\s*\)\s*\}\}/g.test(e)}compileTemplate(e){return e.replace(/\{\{\s*t\s*\(\s*["'`](.*?)["'`]\s*(?:,\s*((?:[^{}]|\{[^}]*\})*?))?\s*\)\s*\}\}/g,(e,t,r)=>{try{let n={};if(r&&(r=r.trim()).startsWith("{")&&r.endsWith("}"))try{n=Function("$root",`with($root) { return (${r}); }`)({})}catch(t){return e}return this.translateKey(t,n)}catch(t){return console.warn(`FlowEngine: Failed to compile template "${e}":`,t),e}})}constructor(e){(0,a._)(this,"context",void 0),this.context=e}}var _=r(91013),k=r(99784),P=r(48555),C=r(31108),j=r(35339),R=r(22928),E=r(73398),F=r(37966),T=r(62572),O=r(74353),I=r.n(O),$=r(98192),D=r(47684),N=r(51143);function B(e){try{if(!e||"object"!=typeof e&&"function"!=typeof e)return[];return Object.getOwnPropertyNames(e)}catch(e){return[]}}function L(e,t){if(!e.length)return[];if(!t.length)return[...e];let r=new Set(t),n=[];for(let t of e)r.has(t)||n.push(t);return n}async function q(e){let t,r=globalThis;r.__nocobaseRunjsModuleLoadLock=(r.__nocobaseRunjsModuleLoadLock||Promise.resolve()).catch(()=>{});let n=r.__nocobaseRunjsModuleLoadLock,i=new Promise(e=>{t=e});r.__nocobaseRunjsModuleLoadLock=n.then(()=>i),await n;try{return await e()}finally{null==t||t()}}function U(){let e=globalThis,t=null==e?void 0:e.define,r=null==t?void 0:t.amd;if(!t||!r)return()=>{};let n=Object.getOwnPropertyDescriptor(t,"amd"),i=!!n,o=r;try{(null==n?void 0:n.writable)?t.amd=void 0:(null==n?void 0:n.configurable)?delete t.amd:t.amd=void 0}catch(e){}return()=>{try{if(i&&n)return void Object.defineProperty(t,"amd",n);t.amd=o}catch(e){}}}function z(){var e,t;let r=globalThis,n=null==r||null==(e=r.requirejs)?void 0:e.requirejs,i=null==n||null==(t=n.s)?void 0:t.contexts;if(!i||"object"!=typeof i)return!1;for(let e of Object.keys(i)){let t=i[e],r=null==t?void 0:t.registry;if(r&&"object"==typeof r)for(let e of Object.keys(r)){let t=r[e];if(!t||"object"!=typeof t||!t.enabled||t.error)continue;let n=t.map;if(n&&"object"==typeof n&&!t.inited&&t.fetched&&n.isDefine)return!0}}return!1}async function V(e){let t=Math.max(0,(null==e?void 0:e.timeoutMs)??1500),r=Math.max(10,(null==e?void 0:e.pollMs)??30);if(0===t)return;let n=Date.now();for(;z();){if(Date.now()-n>=t)return;await new Promise(e=>setTimeout(e,r))}}async function W(e,t){let r="string"==typeof e?e.trim():"";if(!r)return;let n=globalThis;n.__nocobaseImportAsyncPrefetchCache=n.__nocobaseImportAsyncPrefetchCache||new Map;let i=n.__nocobaseImportAsyncPrefetchCache;if(i.has(r))return await i.get(r);let o=Math.max(0,(null==t?void 0:t.timeoutMs)??5e3),l=(async()=>{try{var e,t,n;if("u">typeof document&&(null==(e=document)?void 0:e.createElement)){let e=new URL(r,(null==(n=globalThis)||null==(t=n.location)?void 0:t.href)||void 0).toString(),i=document.head||document.getElementsByTagName("head")[0];if(i){let t=`link[rel="modulepreload"][href="${e}"]`;if(!document.querySelector(t)){let t=document.createElement("link");return t.rel="modulepreload",t.href=e,t.crossOrigin="anonymous",await new Promise(e=>{let r=!1,n=()=>{r||(r=!0,t.onload=null,t.onerror=null,e())},l=o>0?setTimeout(()=>{n()},o):void 0;t.onload=()=>{l&&clearTimeout(l),n()},t.onerror=()=>{l&&clearTimeout(l),n()},i.appendChild(t)})}}}}catch(e){}try{if("function"!=typeof fetch)return;let e="function"==typeof AbortController?new AbortController:void 0,t=e&&o>0?setTimeout(()=>{try{e.abort()}catch(e){}},o):void 0,n=await fetch(r,{method:"GET",mode:"cors",credentials:"omit",cache:"force-cache",signal:null==e?void 0:e.signal});if(t&&clearTimeout(t),n&&n.ok&&"function"==typeof n.arrayBuffer)try{await n.arrayBuffer()}catch(e){}}catch(e){}})().catch(()=>{});return i.set(r,l),await l}async function H(e,t){return await q(async()=>{let r,n,i="u">typeof window?B(window):[],o="u">typeof document?B(document):[];try{r=await new Promise((r,n)=>{e?e([t],function(){for(var e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n];r(t[0])},n):n(Error("requirejs is not available"))})}catch(e){n=e}finally{let e="u">typeof window?B(window):[],t="u">typeof document?B(document):[],r=L(e,i),n=L(t,o);(0,N.Vm)(r),(0,N.yz)(n)}if(n)throw n;return r})}async function K(e){var t,r;if(!e||"string"!=typeof e)throw Error("invalid url");let n=e.trim(),i=!!(null==(r=globalThis)||null==(t=r.define)?void 0:t.amd);return i&&await W(n),await q(async()=>{await V();let e=i?U():()=>{};try{let e=()=>import(n),t=()=>(0,eval)("u => import(u)")(n);try{return await e()}catch(e){try{return await t()}catch(t){throw t||e}}}finally{e()}})}function J(e){let t=e.indexOf("?"),r=e.indexOf("#"),n=t>=0&&r>=0?Math.min(t,r):t>=0?t:r;return n>=0?e.slice(0,n):e}function Y(e){if(!e||"string"!=typeof e)return null;let t=J(e).trim();if(!t||t.startsWith("http://")||t.startsWith("https://"))return null;let r=t.replace(/^\//,"");if(!r)return null;if(r.startsWith("@")){let e=r.match(/^(@[^/]+\/[^/]+?)(?:@([^/]+))?(?:\/(.*))?$/);return e?{name:e[1],version:e[2],subpath:e[3]}:null}let n=r.match(/^([^/]+?)(?:@([^/]+))?(?:\/(.*))?$/);return n?{name:n[1],version:n[2],subpath:n[3]}:null}function G(e,t){if(!e||"string"!=typeof e)return e;let r=e.trim(),n=r.indexOf("#"),i=n>=0?r.slice(0,n):r,o=n>=0?r.slice(n):"",l=i.indexOf("?"),s=l>=0?i.slice(0,l):i,a=new URLSearchParams(l>=0?i.slice(l+1):"");for(let[e,r]of Object.entries(t))e&&(a.has(e)||a.set(e,r));let c=a.toString();return c?`${s}?${c}${o}`:`${s}${o}`}function Z(){let e=globalThis;if("string"==typeof(null==e?void 0:e.__esm_cdn_base_url__))return e.__esm_cdn_base_url__;let t="u">typeof window?window:null==e?void 0:e.window;return"string"==typeof(null==t?void 0:t.__esm_cdn_base_url__)?t.__esm_cdn_base_url__:"https://esm.sh"}function X(e){if(e&&"object"==typeof e&&"default"in e){let t=Object.keys(e);if(1===t.length&&"default"===t[0])return e.default}return e}async function Q(e,t,r){if(!t||"string"!=typeof t)throw Error("invalid url");let n=t,i=Y(t);if((null==i?void 0:i.name)==="antd"&&!i.subpath&&"string"==typeof Z()){let t={bundle:"1"},r=null==e?void 0:e.__runjsExternalReact,i=null==r?void 0:r.version;i&&"string"==typeof i&&(t.deps=`react@${i},react-dom@${i}`),n=G(n,t)}let o=(0,D.i)(n,{addSuffix:(null==r?void 0:r.addSuffix)??!0}),l=(null==r?void 0:r.importer)||K,s=globalThis;s.__nocobaseImportAsyncCache=s.__nocobaseImportAsyncCache||new Map;let a=s.__nocobaseImportAsyncCache,c=a.get(o)||(async()=>X(await l(o)))();a.set(o,c);let u=await c,d=null==e?void 0:e.libs;if(!d||"object"!=typeof d)return u;let h=Y(n);if(!h)return u;let p=h.subpath||"";if("react"!==h.name||p)"react-dom"===h.name&&("client"===p||p.startsWith("client/"))?((0,$.qf)(e,"ReactDOM",u),e.__runjsExternalReactDOM={specifier:t,version:h.version,url:o}):"antd"!==h.name||p?"@ant-design/icons"!==h.name||p||((0,$.qf)(e,"antdIcons",u,{topLevelKey:!1}),e.__runjsExternalAntdIcons={specifier:t,version:h.version,url:o}):((0,$.qf)(e,"antd",u),e.__runjsExternalAntd={specifier:t,version:h.version,url:o});else{(0,$.qf)(e,"React",u),e.__runjsExternalReact={specifier:t,version:h.version,url:o};let r=h.version?`react-dom@${h.version}/client`:"react-dom/client";try{await e.importAsync(r)}catch(n){let e=Error(`External React has been loaded via ctx.importAsync("${t}"), but auto-loading "${r}" failed.
|
|
9
|
-
Please run: await ctx.importAsync("${r}") to ensure ctx.render uses a matching ReactDOM.`);throw e.cause=n,e}}return u}function ee(e){return!!(e&&"object"==typeof e&&"collection"in e&&"filterByTk"in e)}function et(e,t){if(t&&0!==t.length){if(ee(e))return e;if(e&&"object"==typeof e&&!Array.isArray(e)){let r={};for(let[n,i]of Object.entries(e))t.some(e=>e===n||e.startsWith(`${n}.`)||e.startsWith(`${n}[`))&&(r[n]=i);return r}}}function er(e){if(!e)return;let t=String(e).match(/^([^.[]+)/);return null==t?void 0:t[1]}function en(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];if(!Array.isArray(e)||0===e.length)return{generatedAppends:void 0,generatedFields:void 0};let t=new Set,r=new Set,n=e=>{if(!e)return"";let t=String(e);return(t=(t=(t=t.replace(/\[(?:\d+)\]/g,"")).replace(/\[(?:"((?:[^"\\]|\\.)*)"|'((?:[^'\\]|\\.)*)')\]/g,(e,t,r)=>`.${t||r}`)).replace(/\.\.+/g,".")).replace(/^\./,"").replace(/\.$/,"")};for(let i of e){if(!i)continue;for(;/^\[(\d+)\](\.|$)/.test(i);)i=i.replace(/^\[(\d+)\]\.?/,"");let e=n(i);if(!e)continue;let o=e.split(".").filter(Boolean);if(0!==o.length){if(1===o.length){r.add(o[0]);continue}for(let e=0;e<o.length-1;e++)t.add(o.slice(0,e+1).join("."));r.add(o.join("."))}}return{generatedAppends:t.size?Array.from(t):void 0,generatedFields:r.size?Array.from(r):void 0}}var ei=new WeakMap,eo=new WeakSet,el=new WeakSet,es=new WeakSet,ea=new WeakSet,ec=new WeakSet,eu=new WeakSet,ed=new WeakSet,eh=new WeakSet;class ep{createProxy(){return(0,n._)(this,ei)||(0,o._)(this,ei,new Proxy(this,{get:(e,t,r)=>{if("string"==typeof t){if(Reflect.has(e,t)){let n=Reflect.get(e,t,r);return"function"==typeof n?n.bind(e):n}if(Object.prototype.hasOwnProperty.call(e._props,t))return e._getOwnProperty(t,this.createProxy());if(Object.prototype.hasOwnProperty.call(e._methods,t))return e._getOwnMethod(t,this.createProxy());let n=this._findInDelegates(e._delegates,t);return void 0!==n?n.result:void 0}return Reflect.get(e,t,r)},has:(e,t)=>!!("string"==typeof t&&(Reflect.has(e,t)||Object.prototype.hasOwnProperty.call(e._props,t)||Object.prototype.hasOwnProperty.call(e._methods,t)||this._hasInDelegates(e._delegates,t)))||Reflect.has(e,t)})),(0,n._)(this,ei)}defineProperty(e,t){var r;if(this._props[e]&&(null==(r=this._props[e])?void 0:r.once))return;let n=this._props[e];(null==n?void 0:n.meta)&&this._clearMetaNodeCacheFor(n.meta),this._props[e]=t,delete this._observableCache[e],delete this._cache[e],Object.defineProperty(this,e,{configurable:!0,enumerable:!0,get:()=>this._getOwnProperty(e,this.createProxy())})}defineMethod(e,t,r){this._methods[e]=t,"string"==typeof r?this._methodInfos[e]={description:r}:r&&"object"==typeof r?this._methodInfos[e]=r:delete this._methodInfos[e],Object.defineProperty(this,e,{configurable:!0,enumerable:!1,writable:!1,value:t.bind(this.createProxy())})}removeCache(e){if(e in this._observableCache)return delete this._observableCache[e],!0;if(e in this._cache)return delete this._cache[e],!0;if(e in this._pending)return delete this._pending[e],!0;for(let t of this._delegates)if(t.removeCache(e))return!0}delegate(e){if(!(e instanceof ep))throw Error("Delegate must be an instance of FlowContext");this._delegates.includes(e)?console.warn(`[FlowContext] delegate - skip duplicate delegate: ${this._delegates.length}`):this._delegates.unshift(e)}addDelegate(e){if(!(e instanceof ep))throw Error("Delegate must be an instance of FlowContext");this._delegates.includes(e)||this._delegates.unshift(e)}clearDelegates(){this._delegates=[],this._metaNodeCache=new WeakMap}removeDelegate(e){if(!(e instanceof ep))throw Error("Delegate must be an instance of FlowContext");let t=this._delegates.indexOf(e);-1!==t&&this._delegates.splice(t,1)}_clearMetaNodeCacheFor(e){this._metaNodeCache.delete(e)}has(e){return!!this._props[e]}getPropertyMetaTree(e,t){let r=this._getPropertiesMeta();if(e){let r=(0,P.YB)(e);if(r&&r.length>0){let e=async(e,t,r)=>{try{let r="function"==typeof e?await e():e;if(!(null==r?void 0:r.properties))return[];let n=r.properties;if("function"==typeof n){let e=await n();r.properties=e,n=e}let i=(0,l._)(this,eo,ef).call(this,n,t,[],r);return Array.isArray(i)?i:await i()}catch(e){return console.warn(`Failed to load meta for ${r}:`,e),[]}},n=(0,l._)(this,el,em).call(this,r);if(n){let[i,o,s]=n;if(1===r.length){if("function"==typeof o)return()=>e(o,s,i);if(o.properties){if("function"==typeof o.properties)return()=>e(o,s,i);let t=(0,l._)(this,eo,ef).call(this,o.properties,s,[],o);return Array.isArray(t)?t:[]}return[]}if("function"==typeof o){if(null==t?void 0:t.flatten)return()=>e(o,s,i);let r=(0,l._)(this,ed,ew).call(this,s);return[(0,l._)(this,eh,eb).call(this,i,o,s,r)]}if(o.properties){let e=[...(0,l._)(this,ed,ew).call(this,s),o.title],t=(0,l._)(this,eo,ef).call(this,o.properties,s,e,o);return Array.isArray(t)?t:[]}}return[]}if(null===r)return console.warn(`[FlowContext] getPropertyMetaTree - unsupported value format: "${e}". Only "{{ ctx.propertyName }}" format is supported. Returning empty meta tree.`),[]}return Object.entries(r).sort((e,t)=>{let[,r]=e,[,n]=t,i=("function"==typeof r?r.sort:null==r?void 0:r.sort)??0;return(("function"==typeof n?n.sort:null==n?void 0:n.sort)??0)-i}).map(e=>{let[t,r]=e;return(0,l._)(this,eh,eb).call(this,t,r,[t],[])})}async getApiInfos(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.version||"v1",r=this.createProxy(),n=e=>"string"==typeof e&&e.startsWith("_"),i=e=>"record"===e||"formValues"===e||"popup"===e,o=e=>!!e&&("object"==typeof e||"function"==typeof e)&&"function"==typeof e.then,l=(()=>{var e,r,n,i,o,l,s,a;let c=(0,F.B)(this),u=F.F.resolve(t,c)||F.F.resolve(t,"*");if(!u)return{};let d=(null==(n=this)||null==(r=n.api)||null==(e=r.auth)?void 0:e.locale)||(null==(o=this)||null==(i=o.i18n)?void 0:i.language)||(null==(l=this)?void 0:l.locale);try{if(null==u||null==(s=u.getDoc)?void 0:s.length)return u.getDoc(d)||{};return(null==u||null==(a=u.getDoc)?void 0:a.call(u))||{}}catch(e){return{}}})(),s=eE(null==l?void 0:l.methods)?l.methods:{},a=eE(null==l?void 0:l.properties)?l.properties:{},c=e=>"string"==typeof e?{description:e}:eE(e)?e:void 0,u=(e,t)=>{let r="string"==typeof t?t:eE(t)&&"string"==typeof t.description?String(t.description):void 0;return r&&r.includes(`ctx.libs.${e}`)?`libs.${e}`:e},d=e=>{let t=c(e);if(!t)return{};let r={};for(let e of["description","examples","ref","params","returns"]){let n=t[e];void 0!==n&&(r[e]=n)}return Array.isArray(r.examples)&&(r.examples=r.examples.filter(e=>"string"==typeof e&&e.trim())),r},h=e=>{let t=c(e);if(!t)return{};let r={};for(let e of["title","type","interface","description","examples","ref","params","returns"]){let n=t[e];void 0!==n&&(r[e]=n)}return Array.isArray(r.examples)&&(r.examples=r.examples.filter(e=>"string"==typeof e&&e.trim())),r},p=e=>{let t=new WeakSet,r=n=>{if(!n||"object"!=typeof n||t.has(n))return;if(t.add(n),Object.prototype.hasOwnProperty.call(n._methodInfos||{},e)){var i;return null==(i=n._methodInfos)?void 0:i[e]}let o=n._delegates;if(Array.isArray(o))for(let e of o){let t=r(e);if(t)return t}};return r(this)},f=async e=>{let t=this.getPropertyOptions(e);if(null==t?void 0:t.info)try{let e="function"==typeof t.info?t.info.call(r,r):t.info;return(o(e)?await e:e)??void 0}catch(e){return}},m=new Set,g=new Set;for(let e of Object.keys(a))m.add(e);for(let e of Object.keys(s))g.add(e);let y=(e,t)=>{if(e&&"object"==typeof e&&!t.has(e)){t.add(e);try{let t=e._props;if(t&&"object"==typeof t)for(let[e,r]of Object.entries(t))(null==r?void 0:r.info)&&m.add(e)}catch(e){}try{let t=e._methodInfos;if(t&&"object"==typeof t)for(let e of Object.keys(t))g.add(e)}catch(e){}try{let r=e._delegates;if(Array.isArray(r))for(let e of r)y(e,t)}catch(e){}}};y(this,new WeakSet);let v={};for(let e of m){if(n(e)||i(e))continue;let t=a[e],r=await f(e);if(void 0===t&&void 0===r)continue;let o=c(t),l=c(r),s={};if(s={...s={...s,...h(o)},...h(l)},delete s.properties,delete s.completion,!Object.keys(s).length)continue;let d=u(e,t);v[d]=v[d]?{...v[d]||{},...s||{}}:s}for(let e of g){if(n(e))continue;let t=s[e],r=p(e);if(void 0===t&&void 0===r)continue;let i=c(t),o={};o={...o={...o,...d(i)},...d(r)},delete o.properties,delete o.completion,Object.keys(o).length&&(o.type="function",v[e]?v[e]={...v[e]||{},...o||{}}:v[e]=o)}let w=c(a.libs),b=eE(null==w?void 0:w.properties)?w.properties:void 0;if(b)for(let[e,t]of Object.entries(b)){if(n(e))continue;let r=`libs.${e}`;if(v[r])continue;let i=c(t),o={};o={...o,...h(i)},delete o.properties,delete o.completion,o.description&&String(o.description).trim()&&(v[r]=o)}return v}async getEnvInfos(){var e,t,r;let n=this.createProxy(),i=e=>!!e&&("object"==typeof e||"function"==typeof e)&&"function"==typeof e.then,o={},l=e=>{try{return e()}catch(e){return}},s=e=>null!=e&&("string"==typeof e?e.trim().length>0:!Array.isArray(e)||e.length>0),a=e=>{var t,r,n,i,o;let l={};if(!e)return l;let a=e;for(let e of["dataSourceKey","collectionName","associationName","filterByTk","sourceId"]){let t=null==a?void 0:a[e];s(t)&&(l[e]=t)}if(!("dataSourceKey"in l)){let e=null==(t=a.getDataSourceKey)?void 0:t.call(a);s(e)&&(l.dataSourceKey=e)}if(!("filterByTk"in l)){let e=null==(r=a.getFilterByTk)?void 0:r.call(a);s(e)&&(l.filterByTk=e)}if(!("filterByTk"in l)){let e=null==(n=a.getMeta)?void 0:n.call(a,"currentFilterByTk");s(e)&&(l.filterByTk=e)}if(!("sourceId"in l)){let e=null==(i=a.getSourceId)?void 0:i.call(a);s(e)&&(l.sourceId=e)}if(!("collectionName"in l)||!("associationName"in l)){let e=null==(o=a.getResourceName)?void 0:o.call(a),t="string"==typeof e?e.trim():"";if(t){let e=t.split(".").map(e=>e.trim()).filter(Boolean);1===e.length?"collectionName"in l||(l.collectionName=e[0]):e.length>=2&&("collectionName"in l||(l.collectionName=e[0]),"associationName"in l||(l.associationName=e.slice(1).join(".")))}}return l},c=await (async()=>{try{let e=n.popup;return i(e)?await e:e}catch(e){return}})(),u=l(()=>n.model),d=l(()=>n.blockModel),h=l(()=>{var e;return null==(e=n.view)?void 0:e.inputArgs}),p=l(()=>n.resource),f=a(null==c?void 0:c.resource),m=d,g=d?"ctx.blockModel":void 0,y=g?`${g}.resource`:void 0,v=a(null==m?void 0:m.resource),w=a(h),b=a(p),x=e=>{for(let t of e)if(s(t.value))return{value:t.value,getVar:t.getVar}},S=e=>s(e.collectionName)||s(e.dataSourceKey)||s(e.associationName),A=S(f)?"ctx.popup.resource":S(v)?y:S(w)?"ctx.view.inputArgs":S(b)?"ctx.resource":void 0,M=x([{value:null==f?void 0:f.collectionName,getVar:"ctx.popup.resource.collectionName"},{value:null==v?void 0:v.collectionName,getVar:`${y}.collectionName`},{value:null==w?void 0:w.collectionName,getVar:"ctx.view.inputArgs.collectionName"},{value:null==b?void 0:b.collectionName,getVar:"ctx.resource.collectionName"}]),_=x([{value:null==f?void 0:f.dataSourceKey,getVar:"ctx.popup.resource.dataSourceKey"},{value:null==v?void 0:v.dataSourceKey,getVar:`${y}.dataSourceKey`},{value:null==w?void 0:w.dataSourceKey,getVar:"ctx.view.inputArgs.dataSourceKey"},{value:null==b?void 0:b.dataSourceKey,getVar:"ctx.resource.dataSourceKey"}]),k=x([{value:null==f?void 0:f.associationName,getVar:"ctx.popup.resource.associationName"},{value:null==v?void 0:v.associationName,getVar:`${y}.associationName`},{value:null==w?void 0:w.associationName,getVar:"ctx.view.inputArgs.associationName"},{value:null==b?void 0:b.associationName,getVar:"ctx.resource.associationName"}]),P=x([{value:null==f?void 0:f.filterByTk,getVar:"ctx.popup.resource.filterByTk"},{value:null==v?void 0:v.filterByTk,getVar:`${y}.filterByTk`},{value:null==w?void 0:w.filterByTk,getVar:"ctx.view.inputArgs.filterByTk"},{value:null==b?void 0:b.filterByTk,getVar:"ctx.resource.filterByTk"}]),C=x([{value:null==f?void 0:f.sourceId,getVar:"ctx.popup.resource.sourceId"},{value:null==v?void 0:v.sourceId,getVar:`${y}.sourceId`},{value:null==w?void 0:w.sourceId,getVar:"ctx.view.inputArgs.sourceId"},{value:null==b?void 0:b.sourceId,getVar:"ctx.resource.sourceId"}]),j={},R=!1,E=null==M?void 0:M.value;s(E)&&(j.collectionName={description:"Collection name",getVar:(null==M?void 0:M.getVar)||(A?`${A}.collectionName`:void 0),value:E},R=!0);let F=null==_?void 0:_.value;s(F)&&(j.dataSourceKey={description:"Data source key",getVar:(null==_?void 0:_.getVar)||(A?`${A}.dataSourceKey`:void 0),value:F},R=!0);let T=null==k?void 0:k.value;s(T)&&(j.associationName={description:"Association name",getVar:(null==k?void 0:k.getVar)||(A?`${A}.associationName`:void 0),value:T},R=!0),R&&(s(null==P?void 0:P.value)&&(j.filterByTk={description:"Record filterByTk",getVar:(null==P?void 0:P.getVar)||(A?`${A}.filterByTk`:void 0)}),s(null==C?void 0:C.value)&&(j.sourceId={description:"Source record ID (sourceId)",getVar:(null==C?void 0:C.getVar)||(A?`${A}.sourceId`:void 0)}),o.resource={description:"Resource information",getVar:A,properties:j}),s(null==P?void 0:P.value)&&(o.record={description:"Current record",getVar:"ctx.record"});let O=e=>{try{let t=null==e?void 0:e.title;if("string"==typeof t&&t.trim())return t}catch(e){}try{var t,r;let n=null==e||null==(r=e.constructor)||null==(t=r.meta)?void 0:t.label;if("string"==typeof n&&n.trim())return n}catch(e){}};if(u){let t=O(u),r=u.uid,n=null==(e=u.constructor)?void 0:e.name,i=a(u.resource),l={},c=!1,d=i.collectionName;s(d)&&(l.collectionName={description:"Collection name",getVar:"ctx.model.resource.collectionName",value:d},c=!0);let h=i.dataSourceKey;s(h)&&(l.dataSourceKey={description:"Data source key",getVar:"ctx.model.resource.dataSourceKey",value:h},c=!0);let p=i.associationName;s(p)&&(l.associationName={description:"Association name",getVar:"ctx.model.resource.associationName",value:p},c=!0),o.flowModel={description:"Current FlowModel information",getVar:"ctx.model",properties:{...s(t)?{label:{description:"Flow model label",value:t}}:{},...s(n)?{modelClass:{description:"Flow model class name",value:n}}:{},...s(r)?{uid:{description:"Flow model uid",getVar:"ctx.model.uid",value:r}}:{},...c?{resource:{description:"Flow model resource",getVar:"ctx.model.resource",properties:l}}:{}}}}if((null==c?void 0:c.uid)&&(o.popup={description:"Current popup information",getVar:"ctx.popup",properties:{uid:{description:"Popup uid",getVar:"ctx.popup.uid",value:c.uid},...(null==c?void 0:c.record)?{record:{description:"Popup record",getVar:"ctx.popup.record"}}:{},...(null==c?void 0:c.sourceRecord)?{sourceRecord:{description:"Popup source record",getVar:"ctx.popup.sourceRecord"}}:{}}}),m){let e=O(m),r=m.uid,n=null==(t=m.constructor)?void 0:t.name,i={},l=!1,a=v.collectionName;s(a)&&(i.collectionName={description:"Collection name",getVar:`${y}.collectionName`,value:a},l=!0);let c=v.dataSourceKey;s(c)&&(i.dataSourceKey={description:"Data source key",getVar:`${y}.dataSourceKey`,value:c},l=!0);let u=v.associationName;s(u)&&(i.associationName={description:"Association name",getVar:`${y}.associationName`,value:u},l=!0),o.block={description:"Current block information",getVar:g,properties:{...s(e)?{label:{description:"Block label",value:e}}:{},...s(n)?{modelClass:{description:"Block model class name",value:n}}:{},...s(r)?{uid:{description:"Block uid",getVar:`${g}.uid`,value:r}}:{},...l?{resource:{description:"Block resource",getVar:y,properties:i}}:{}}}}let I=(()=>{let e=null==c?void 0:c.uid;if(s(e))return String(e).trim();let t=null==h?void 0:h.viewUid;if(s(t))return String(t).trim()})(),$=l(()=>n.engine),D=I?null==$?void 0:$.getModel(I,!0):void 0,N=e=>{var t;return(null==(t=e.context)?void 0:t.blockModel)===e};if(D){let e=[D],t=[];for(let n=0;n<e.length;n++){let i=e[n];if(N(i)){let e=(null==(r=i.constructor)?void 0:r.name)||i.uid,n=O(i)||e||i.uid,o=a(i.resource),l={};s(o.dataSourceKey)&&(l.dataSourceKey=o.dataSourceKey),s(o.collectionName)&&(l.collectionName=o.collectionName),s(o.associationName)&&(l.associationName=o.associationName);let c={uid:i.uid,label:n,modelClass:e,...Object.keys(l).length>0?{resource:l}:{}};t.push(c)}let o=i.subModels;if(o&&"object"==typeof o)for(let t of Object.values(o))t&&(Array.isArray(t)?e.push(...t):e.push(t))}t.length&&(o.currentViewBlocks={description:"Current view blocks",value:t})}return o}async getVarInfos(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.maxDepth??3,r=Number.isFinite(t)?Math.max(1,Math.floor(t)):3,n="v1",i=this.createProxy(),o=e=>"string"==typeof e&&e.startsWith("_"),l=e=>!!e&&("object"==typeof e||"function"==typeof e)&&"function"==typeof e.then,s=new WeakMap,a=async e=>{if(!e)return;if("function"!=typeof e)return e;let t=s.get(e);return t||(t=(async()=>{let t=e.call(i,i);return(l(t)?await t:t)||null})(),s.set(e,t)),await t||void 0},c=e=>{if("string"!=typeof e)return;let t=e.trim();if(!t)return;let r=(0,P.YB)(t);return Array.isArray(r)&&r.length>0?r.join("."):"ctx"===t?"":t.startsWith("ctx.")?t.slice(4).trim():t},u=(()=>{let t=e.path;return("string"==typeof t?[t]:Array.isArray(t)?t:[]).map(e=>c(String(e))).filter(e=>"string"==typeof e&&e.length>0)})(),d=(()=>{let t=e.path;return"string"==typeof t?""===c(t):!!Array.isArray(t)&&t.some(e=>""===c(String(e)))})(),h=(()=>{var e,t,r,i,o,l,s,a;let c=(0,F.B)(this),u=F.F.resolve(n,c)||F.F.resolve(n,"*");if(!u)return{};let d=(null==(r=this)||null==(t=r.api)||null==(e=t.auth)?void 0:e.locale)||(null==(o=this)||null==(i=o.i18n)?void 0:i.language)||(null==(l=this)?void 0:l.locale);try{if(null==u||null==(s=u.getDoc)?void 0:s.length)return u.getDoc(d)||{};return(null==u||null==(a=u.getDoc)?void 0:a.call(u))||{}}catch(e){return{}}})();eE(null==h?void 0:h.methods)&&h.methods,eE(null==h?void 0:h.properties)&&h.properties;let p=e=>"string"==typeof e?{description:e}:eE(e)?e:void 0,f=async(e,t)=>{if(void 0!==e){if("boolean"==typeof e)return e;if("function"==typeof e)try{let r=t(e);return l(r)?!!await r:!!r}catch(e){return!1}return!!e}},m=async(e,t)=>{if(null!=e){if("string"==typeof e)return e;if("function"==typeof e)try{let r=t(e),n=l(r)?await r:r;if("string"==typeof n)return n;return null==n?void 0:String(n)}catch(e){return}return String(e)}},g=async e=>{let t=!1,r=[];try{if("boolean"==typeof e)t=e;else if(Array.isArray(e))r=e;else if("function"==typeof e){let n=e(i),o=l(n)?await n:n;"boolean"==typeof o?t=o:Array.isArray(o)&&(r=o)}}catch(e){t=!1,r=[]}let n=[];if(Array.isArray(r))for(let e of r){if("string"!=typeof e)continue;let t=e.trim();!(!t||"ctx"===t||t.startsWith("ctx."))&&(/\s/.test(t)||n.push(t))}return{hideSelf:!!t,hideSubpaths:n}},y=(e,t)=>{if(!e)return!1;let r=e.split(".").filter(Boolean);for(;r.length;){if(t.has(r.join(".")))return!0;r.pop()}return!1},v=e=>{let t=p(e);if(!t)return{};let r={};for(let e of["title","type","interface","description","examples","completion","ref","params","returns"]){let n=t[e];void 0!==n&&(r[e]=n)}return Array.isArray(r.examples)&&(r.examples=r.examples.filter(e=>"string"==typeof e&&e.trim())),r},w=async e=>{let t,n,{docNode:l,metaNode:s,infoNode:c,depth:u,pathFromRoot:d,hiddenPrefixes:h}=e,b=d.join(".");if(y(b,h))return;let x=p(l),S=p(c),A=await g(null==x?void 0:x.hidden);if(A.hideSelf)return;let M=await g(null==S?void 0:S.hidden);if(M.hideSelf)return;let _=await a(s);if(await f(null==_?void 0:_.hidden,e=>e.call(_,i)))return;let k=new Set(h);for(let e of[...A.hideSubpaths,...M.hideSubpaths]){let t=e.trim();if(!t)continue;let r="ctx"===t?"":t.startsWith("ctx.")?t.slice(4):t;if(!r)continue;let n=b?`${b}.${r}`:r;k.add(n)}let P=await f(null==x?void 0:x.disabled,e=>e(i)),C=await m(null==x?void 0:x.disabledReason,e=>e(i)),j=await f(null==_?void 0:_.disabled,e=>e.call(_,i)),R=await m(null==_?void 0:_.disabledReason,e=>e.call(_,i)),E=await f(null==S?void 0:S.disabled,e=>e(i)),F=await m(null==S?void 0:S.disabledReason,e=>e(i)),T=void 0!==E?E:void 0!==j?j:P,O=void 0!==F?F:void 0!==R?R:C,I={};if(I={...I={...I={...I,...v(x)},...v(_)},...v(S)},void 0!==T&&(I.disabled=!!T),void 0!==O&&(I.disabledReason=O),u>=r)return Object.keys(I).length?I:void 0;let $=eE(null==x?void 0:x.properties)?x.properties:void 0;if(null==_?void 0:_.properties)try{let e=_.properties;if("function"==typeof e){let r=await e.call(_,i);_.properties=r,t=r}else eE(e)&&(t=e)}catch(e){t=void 0}if(eE(S)&&(null==S?void 0:S.properties))try{let e=S.properties;if("function"==typeof e){let t=await e.call(S,i);S.properties=t,n=t}else eE(e)&&(n=e)}catch(e){n=void 0}let D=new Set;if($)for(let e of Object.keys($))D.add(e);if(t)for(let e of Object.keys(t))D.add(e);if(n)for(let e of Object.keys(n))D.add(e);if(!D.size)return Object.keys(I).length?I:void 0;let N={};for(let e of D){if(o(e))continue;let r=await w({docNode:null==$?void 0:$[e],metaNode:null==t?void 0:t[e],infoNode:null==n?void 0:n[e],depth:u+1,pathFromRoot:[...d,e],hiddenPrefixes:k});r&&(N[e]=r)}if(Object.keys(N).length&&(I.properties=N),Object.keys(I).length)return I},b=async e=>{if(!e.length)return;let[t,...r]=e,n=this.getPropertyOptions(t);if(null==n?void 0:n.meta)try{if(!r.length)return n.meta;let e=await a(n.meta);if(!e)return;for(let t=0;t<r.length;t++){let n=r[t],o=null==e?void 0:e.properties;if(!o)break;if("function"==typeof o){let t=await o.call(e,i);e.properties=t,o=t}if(!o||"object"!=typeof o)break;let l=null==o?void 0:o[n];if(!l)break;if(t===r.length-1)return l;let s=await a(l);if(!s)break;e=s}return}catch(e){return}};if(!d&&u.length){let e={};for(let t of u){let r=t.split(".").map(e=>e.trim()).filter(Boolean);if(r.some(e=>o(e))||!r.length)continue;let n=await b(r),i=await w({docNode:void 0,metaNode:n,infoNode:void 0,depth:1,pathFromRoot:[],hiddenPrefixes:new Set});i&&(e[t]=i)}return e}let x=this._getPropertiesMeta(),S={};for(let[e,t]of Object.entries(x)){if(o(e))continue;let r=await w({docNode:void 0,metaNode:t,infoNode:void 0,depth:1,pathFromRoot:[e],hiddenPrefixes:new Set});r&&(S[e]=r)}return S}_getPropertiesMeta(){let e={};for(let t of this._delegates)Object.assign(e,t._getPropertiesMeta());for(let[t,r]of Object.entries(this._props))r.meta&&(e[t]=(r.meta,r.meta));return e}_getOwnProperty(e,t){let r=this._props[e];if(r){if("value"in r)return r.value;if(r.get){if(!1===r.cache)return r.get(t);let n=r.observable?"_observableCache":"_cache";if(e in this[n])return this[n][e];if(this._pending[e])return this._pending[e];let i=r.get(this.createProxy());return"object"==typeof i&&null!==i&&"function"==typeof i.then||"function"==typeof i&&"function"==typeof i.then?(this._pending[e]=i.then(t=>(this[n][e]=t,delete this._pending[e],t),t=>{throw delete this._pending[e],t}),this._pending[e]):(this[n][e]=i,i)}}}_getOwnMethod(e,t){let r=this._methods[e];return"function"==typeof r?r.bind(t):r}_findPropertyInDelegates(e,t){for(let r of e){if(Object.prototype.hasOwnProperty.call(r._props,t))return r._props[t];let e=this._findPropertyInDelegates(r._delegates,t);if(void 0!==e)return e}}_findInDelegates(e,t){for(let r of e){if(Object.prototype.hasOwnProperty.call(r._props,t))return{result:r._getOwnProperty(t,this.createProxy())};if(Object.prototype.hasOwnProperty.call(r._methods,t))return{result:r._getOwnMethod(t,this.createProxy())};let e=this._findInDelegates(r._delegates,t);if(void 0!==e)return e}}_hasInDelegates(e,t){for(let r of e)if(Object.prototype.hasOwnProperty.call(r._props,t)||Object.prototype.hasOwnProperty.call(r._methods,t)||this._hasInDelegates(r._delegates,t))return!0;return!1}getPropertyOptions(e){return Object.prototype.hasOwnProperty.call(this._props,e)?this._props[e]:this._findPropertyInDelegates(this._delegates,e)}constructor(){return(0,s._)(this,eo),(0,s._)(this,el),(0,s._)(this,es),(0,s._)(this,ea),(0,s._)(this,ec),(0,s._)(this,eu),(0,s._)(this,ed),(0,s._)(this,eh),(0,a._)(this,"_props",{}),(0,a._)(this,"_methods",{}),(0,a._)(this,"_methodInfos",{}),(0,a._)(this,"_cache",{}),(0,a._)(this,"_observableCache",c.observable.shallow({})),(0,a._)(this,"_delegates",[]),(0,a._)(this,"_pending",{}),(0,i._)(this,ei,{writable:!0,value:null}),(0,a._)(this,"_metaNodeCache",new WeakMap),this.createProxy()}}function ef(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],n=arguments.length>3?arguments[3]:void 0;return"function"==typeof e?async()=>{let i=await e();n&&(n.properties=i);let o=Object.entries(i);return o.sort((e,t)=>{let[,r]=e,[,n]=t;return((null==n?void 0:n.sort)??0)-((null==r?void 0:r.sort)??0)}),o.map(e=>{let[n,i]=e;return(0,l._)(this,eh,eb).call(this,n,i,[...t,n],r)})}:Object.entries(e).sort((e,t)=>{let[,r]=e,[,n]=t;return((null==n?void 0:n.sort)??0)-((null==r?void 0:r.sort)??0)}).map(e=>{let[n,i]=e;return(0,l._)(this,eh,eb).call(this,n,i,[...t,n],r)})}function em(e){if(0===e.length)return null;let[t,...r]=e,n=this._props[t];if(null==n?void 0:n.meta)return(0,l._)(this,ea,ey).call(this,t,n.meta,r,[t]);let i=(0,l._)(this,es,eg).call(this,this._delegates,t);return i?(0,l._)(this,ea,ey).call(this,t,i,r,[t]):null}function eg(e,t){for(let r of e){let e=r._props[t];if(null==e?void 0:e.meta)return e.meta;let n=(0,l._)(this,es,eg).call(this,r._delegates,t);if(n)return n}return null}function ey(e,t,r,n){if(0===r.length)return[e,t,n];if("function"==typeof t)return[r[r.length-1],async()=>{let e=await t();return await (0,l._)(this,eu,ev).call(this,e,r)},[...n,...r]];if(t.properties){let[e,...i]=r,o=[...n,e];if("function"==typeof t.properties)return[r[r.length-1],async()=>{let r=t.properties,n=await r();t.properties=n;let o=n[e];if(!o)throw Error(`Property ${e} not found in resolved properties`);return await (0,l._)(this,eu,ev).call(this,o,i)},[...n,...r]];let s=t.properties[e];if(s)return(0,l._)(this,ea,ey).call(this,e,s,i,o)}return null}async function ev(e,t){if(0===t.length)return e;let r=e;for(let e of t){let n=h().get(r,"properties");if(!n)throw Error(`Property path not found: ${t.join(".")}`);if("function"==typeof n){let e=await n();r.properties=e,n=e}let i=n[e];if(!i)throw Error(`Property ${e} not found while resolving path: ${t.join(".")}`);r=i}return r}function ew(e){let t=!(arguments.length>1)||void 0===arguments[1]||arguments[1];if(0===e.length)return[];let r=t?e.slice(0,-1):e;if(0===r.length)return[];let n=[],i=this._getPropertiesMeta();for(let e=0;e<r.length;e++){let t=r[e],o=i[t];if(!o||"function"==typeof o){n.push(t);break}if(n.push(o.title||t),e<r.length-1&&o.properties&&"function"!=typeof o.properties)i=o.properties;else if(e<r.length-1){for(let t=e+1;t<r.length;t++)n.push(r[t]);break}}return n}function eb(e,t){let r,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[e],i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:[],o=this._metaNodeCache.get(t);if(o)return o.paths=n,o.parentTitles=i.length>0?i:void 0,o;let s=e=>{if(!e)return{disabled:!1,hidden:!1};let t="function"==typeof e.disabled?e.disabled():e.disabled,r="function"==typeof e.disabledReason?e.disabledReason():e.disabledReason,n="function"==typeof e.hidden?e.hidden():e.hidden;return{disabled:!(t&&"function"==typeof t.then)&&!!t,reason:r&&"function"==typeof r.then?void 0:r,hidden:!(n&&"function"==typeof n.then)&&!!n}};if("function"==typeof t){let o=e,a=t.hasChildren;r={name:e,title:t.title||o,type:"object",interface:void 0,options:void 0,uiSchema:void 0,paths:n,parentTitles:i.length>0?i:void 0,disabled:()=>{let e=t();return(!e||"function"!=typeof e.then)&&s(e).disabled},disabledReason:()=>{let e=t();if(!e||"function"!=typeof e.then)return s(e).reason},hidden:()=>{let e=t();return(!e||"function"!=typeof e.then)&&s(e).hidden},children:!1===a?void 0:async()=>{try{let o=await t(),s=(null==o?void 0:o.title)||e;if(r.title=s,r.type=null==o?void 0:o.type,r.interface=null==o?void 0:o.interface,r.options=null==o?void 0:o.options,r.uiSchema=null==o?void 0:o.uiSchema,!(null==o?void 0:o.properties))return[];let a=(0,l._)(this,eo,ef).call(this,o.properties,n,[...i,s],o),c=Array.isArray(a)?a:await a();return r.children=c,c}catch(t){return console.warn(`Failed to load meta for ${e}:`,t),[]}}}}else{let o=t.title,{disabled:a,reason:c,hidden:u}=s(t);r={name:e,title:o,type:t.type,interface:t.interface,options:t.options,uiSchema:t.uiSchema,paths:n,parentTitles:i.length>0?i:void 0,disabled:a,disabledReason:c,hidden:u,children:t.properties?(0,l._)(this,eo,ef).call(this,t.properties,n,[...i,o],t):void 0}}return this._metaNodeCache.set(t,r),r}class ex extends ep{constructor(){super(),this.defineMethod("getModel",(e,t)=>this.engine.getModel(e,t)),this.defineMethod("request",e=>this.api.request(e)),this.defineMethod("runjs",async function(e,t,r){let{preprocessTemplates:n,...i}=r||{},o={...(null==i?void 0:i.globals)||{},...t||{}},l=await this.createJSRunner({...i||{},globals:o}),s=(0,_.R)({version:null==i?void 0:i.version,preprocessTemplates:n}),a=await (0,P.ji)(String(e??""),{preprocessTemplates:s});return l.run(a)})}}class eS extends ex{}class eA extends ex{constructor(e){if(!(e instanceof A.$))throw Error("Invalid FlowEngine instance");super(),(0,a._)(this,"engine",void 0),this.engine=e,this.engine=e;let t=new S.zA;t.setFlowEngine(this.engine);let n=new S.qS({key:"main",displayName:"Main"});t.addDataSource(n),this.defineProperty("engine",{value:this.engine,info:{description:"FlowEngine instance.",detail:"FlowEngine"}}),this.defineProperty("sql",{get:e=>new k.tP(e),cache:!1,info:{description:"SQL helper (FlowSQLRepository).",detail:"FlowSQLRepository"}}),this.defineProperty("dataSourceManager",{value:t,info:{description:"DataSourceManager instance.",detail:"DataSourceManager"}});let i=new M(this);this.defineMethod("t",(e,t)=>i.translate(e,t)),this.defineMethod("renderJson",function(e){return this.resolveJsonTemplate(e)}),this.defineMethod("resolveJsonTemplate",async function(e){let t=(0,P.nN)(e),r=Object.keys(t||{});if(!r.length)return(0,P.M)(e,this);let n={};for(let e of r){let r=t[e]||[],i=this.getPropertyOptions(e),o=null==i?void 0:i.resolveOnServer;if(!0===o)n[e]=r;else if("function"==typeof o){let t=r.filter(e=>{try{return!!o(e)}catch(e){return!1}});t.length&&(n[e]=t)}}let i=Object.keys(n).length>0,o=e;if(i){let t=e=>{let t=(0,E.XU)(e);if(t)return t;try{var r,n,i,o,l,s,a,c,u,d,h,p,f;let t=null==e||null==(n=e.resource)||null==(r=n.getMeta)?void 0:r.call(n,"currentFilterByTk");if(null==t)return;let m=(null==e||null==(i=e.collection)?void 0:i.name)||(null==e||null==(d=e.resource)||null==(u=d.getResourceName)||null==(c=u.call(d))||null==(a=c.split)||null==(s=a.call(c,"."))||null==(l=s.slice)||null==(o=l.call(s,-1))?void 0:o[0]);if(!m)return;let g=(null==e||null==(h=e.collection)?void 0:h.dataSourceKey)||(null==e||null==(f=e.resource)||null==(p=f.getDataSourceKey)?void 0:p.call(f));return{collection:m,dataSourceKey:g,filterByTk:t}}catch(e){return}},r=async()=>{let e={};try{var t,r;let i=null==(t=(r=this)._getPropertiesMeta)?void 0:t.call(r);if(!i||"object"!=typeof i)return e;for(let[t,r]of Object.entries(i))if(n[t])try{let i;if("function"==typeof r){let e=r;i=await e()}else i=r;if(!i||"object"!=typeof i)continue;let o=i.buildVariablesParams;if("function"!=typeof o)continue;let l=await o(this);if(!l)continue;let s=n[t]||[],a=et(l,s);a&&("object"!=typeof a||Object.keys(a).length)&&(e[t]=a)}catch(e){}}catch(e){}return e},i=await r(),a={...i};try{let e="formValues",r=n[e]||[];if(r.length){let n=new Set;for(let e of r){let t=er(e);t&&n.add(t)}let o=null==i?void 0:i[e],l=new Set;if(!o||"object"!=typeof o||Array.isArray(o)||ee(o)||Object.keys(o).forEach(e=>l.add(e)),[...n].filter(e=>!l.has(e)).length){let n=t(this);if(n){let{generatedFields:t,generatedAppends:i}=en(r),o={...n,fields:t,appends:i},l=a[e];if(l&&"object"==typeof l&&!Array.isArray(l)&&!ee(l)){for(let[t,r]of Object.entries(l))a[`${e}.${t}`]=r;delete a[e]}a[e]=o}}}}catch(e){}let c=Object.keys(a).length?(0,R.d)(this,a):void 0;if(!c){let t=Object.keys(n);if(t.length>0&&t.every(e=>{var t;return null==(t=this.getPropertyOptions(e))?void 0:t.serverOnlyWhenContextParams}))return(0,P.M)(e,this)}if(this.api)try{o=await (0,j.o4)(this,{template:e,contextParams:c||{}})}catch(t){var l,s;null==(s=this.logger)||null==(l=s.warn)||l.call(s,{err:t},"variables:resolve failed, fallback to client-only"),o=e}}return(0,P.M)(o,this)}),this.defineMethod("getVar",async function(e){let t=("string"==typeof e?e:String(e??"")).trim();if(t){if("ctx"!==t&&!t.startsWith("ctx."))throw Error(`ctx.getVar(path) expects an expression starting with "ctx.", got: "${t}"`);return this.resolveJsonTemplate(`{{ ${t} }}`)}},'Resolve a ctx expression value by path (expression starts with "ctx.").'),this.defineProperty("requirejs",{get:()=>{var e,t;return null==(t=this.app)||null==(e=t.requirejs)?void 0:e.requirejs}}),this.defineProperty("token",{get:()=>{var e,t;return null==(t=this.api)||null==(e=t.auth)?void 0:e.token},cache:!1,meta:Object.assign(()=>({type:"string",title:this.t("API Token"),sort:980}),{title:"API Token",sort:980,hasChildren:!1})}),this.defineProperty("role",{get:()=>{var e,t;return null==(t=this.api)||null==(e=t.auth)?void 0:e.role},cache:!1,meta:Object.assign(()=>({type:"string",title:this.t("Current role"),sort:990}),{title:(0,P.MI)("Current role"),sort:990,hasChildren:!1})}),this.defineProperty("urlSearchParams",{cache:!1,get:()=>{var e;let t=(null==(e=this.location)?void 0:e.search)||"",r=t.startsWith("?")?t.slice(1):t;return f().parse(r)||{}},meta:Object.assign(()=>({type:"object",title:this.t("URL search params"),sort:970,disabled:()=>{var e;let t=(null==(e=this.location)?void 0:e.search)||"",r=t.startsWith("?")?t.slice(1):t;return 0===Object.keys(f().parse(r)||{}).length},disabledReason:()=>this.t("The value of this variable is derived from the query string of the page URL. This variable can only be used normally when the page has a query string."),properties:async()=>{var e;let t=(null==(e=this.location)?void 0:e.search)||"",r=t.startsWith("?")?t.slice(1):t,n=f().parse(r)||{},i={};for(let e of Object.keys(n))i[e]={type:"string",title:e};return i}}),{title:(0,P.MI)("URL search params"),sort:970,hasChildren:!0})}),this.defineProperty("logger",{get:()=>this.engine.logger.child({module:"flow-engine"})}),this.defineProperty("auth",{get:()=>({roleName:this.api.auth.role,locale:this.api.auth.locale,token:this.api.auth.token,user:this.user})}),this.defineProperty("date",{get:()=>{let e=t=>new Proxy({},{get:(r,n)=>{if("string"!=typeof n)return;let i=[...t,n];if(!(0,P.JE)(i))return;let o=(0,P.Vv)(i);return void 0!==o?o:e(i)}});return e(["date"])},cache:!1}),this.defineMethod("loadCSS",async e=>{let t=(0,P.i)(e);return new Promise((e,r)=>{if(document.querySelector(`link[href="${t}"]`))return void e(null);let n=document.createElement("link");n.rel="stylesheet",n.href=t,n.onload=()=>e(null),n.onerror=()=>r(Error(`Failed to load CSS: ${t}`)),document.head.appendChild(n)})},{description:"Load a CSS file by URL (browser only).",params:[{name:"href",type:"string",description:"CSS URL."}],returns:{type:"Promise<void>"},completion:{insertText:"await ctx.loadCSS('https://example.com/style.css')"},examples:["await ctx.loadCSS('https://example.com/style.css');"]}),this.defineMethod("requireAsync",async e=>{if((0,P.yp)(e))return this.loadCSS(e);let t=(0,P.i)(e,{raw:!0});return await H(this.requirejs,t)}),this.defineMethod("importAsync",async function(e){return(0,P.yp)(e)?this.loadCSS(e):await Q(this,e,{importer:K})}),this.defineMethod("createJSRunner",async function(e){try{let e=await Promise.resolve().then(r.bind(r,88828));"function"==typeof(null==e?void 0:e.setupRunJSContexts)&&await e.setupRunJSContexts()}catch(e){}let t=(null==e?void 0:e.version)||"v1",n=(0,F.B)(this),i=F.F.resolve(t,n)||ez,o=new i(this);o.defineMethod("t",(e,t)=>this.t(e,{ns:"runjs",...t}));let l={};try{var s,a,c,u,d,h,p,f;let e=(null==(c=this)||null==(a=c.api)||null==(s=a.auth)?void 0:s.locale)||(null==(d=this)||null==(u=d.i18n)?void 0:u.language)||(null==(h=this)?void 0:h.locale);l=(null==i||null==(p=i.getDoc)?void 0:p.length)?i.getDoc(e)||{}:(null==i||null==(f=i.getDoc)?void 0:f.call(i))||{}}catch(e){l={}}let m={ctx:eN(o,{doc:l}),...(null==e?void 0:e.globals)||{}},{timeoutMs:g}=e||{};return new _.I({globals:m,timeoutMs:g})}),this.defineMethod("buildServerContextParams",function(e){return(0,R.d)(this,e)}),this.defineMethod("getAction",function(e){return this.engine.getAction(e)}),this.defineMethod("getActions",function(){return this.engine.getActions()}),this.defineMethod("getEvents",function(){return this.engine.getEvents()}),this.defineMethod("runAction",async function(e,t){let r=this.engine.getAction(e),n=await (0,T.v)(this,r);if(!r)throw Error(`Action '${e}' not found.`);let i={...await (0,P.gG)(r.defaultParams,n)||{},...t||{}},o=r.useRawParams;if("function"==typeof o&&(o=await o(n)),o||(i=await n.resolveJsonTemplate(i)),!r.handler)throw Error(`Action '${e}' has no handler.`);return r.handler(n,i)}),this.defineProperty("acl",{get:()=>new w(this.engine)}),this.defineMethod("aclCheck",function(e){return this.acl.aclCheck(e)}),this.defineMethod("createResource",function(e){return this.engine.createResource(e,{context:this.createProxy()})}),this.defineMethod("makeResource",function(e){return this.engine.createResource(e,{context:this.createProxy()})}),this.defineMethod("initResource",function(e){return this.has("resource")||this.defineProperty("resource",{get:()=>this.createResource(e)}),this.resource}),this.defineMethod("useResource",function(e){return this.initResource(e)})}}class eM extends eS{constructor(e){if(!e||"object"!=typeof e)throw Error("Invalid FlowModel instance");super(),this.addDelegate(e.flowEngine.context),this.defineMethod("onRefReady",(e,t,r)=>{this.engine.reactView.onRefReady(e,t,r)}),this.defineProperty("model",{value:e,info:{description:"Current FlowModel instance.",detail:"FlowModel"}});let t=(0,m.createRef)();this.defineProperty("ref",{get:()=>(this.model._refCreated=!0,t),info:{description:"Stable React ref for the view container.",detail:"React.RefObject<HTMLDivElement>"}}),this.defineMethod("openView",async function(e,t){var r,n,i,o,l;let s={...t};(s.defineProperties||s.defineMethods)&&(s.navigation=!1);let a=null;if(!(a=await this.engine.loadModel({uid:e}))){let t=(e,t)=>{let r={};for(let n of t)void 0!==(null==e?void 0:e[n])&&(r[n]=e[n]);return r};a=this.engine.createModel({uid:e,use:"PopupActionModel",parentId:this.model.uid,subType:"object",subKey:e,stepParams:{popupSettings:{openView:{...t(s,["dataSourceKey","collectionName","associationName","mode","size"])}}}}),await a.save()}a.setParent(this.model);let c=(null==s?void 0:s.routeViewUid)??(null==s?void 0:s.viewUid)??((null==(n=a.stepParams)||null==(r=n.popupSettings)?void 0:r.openView)?a.uid:this.model.uid),u=this.view,d=(null==s?void 0:s.isMobileLayout)?"embed":(null==s?void 0:s.mode)||"drawer",h={...s,viewUid:c,navigation:s.navigation};h.filterByTk=h.filterByTk||(null==(i=this.inputArgs)?void 0:i.filterByTk),h.sourceId=h.sourceId||(null==(o=this.inputArgs)?void 0:o.sourceId);let p={type:d,inputArgs:h,navigation:null==u?void 0:u.navigation,preventClose:!!(null==s?void 0:s.preventClose),engineCtx:this.engine.context};a.context.defineProperty("view",{value:p});let f=null==(l=a.getFlow)?void 0:l.call(a,"popupSettings"),m=null==f?void 0:f.on,g="click";"string"==typeof m&&m?g=m:m&&"object"==typeof m&&"string"==typeof m.eventName&&m.eventName&&(g=m.eventName),await a.dispatchEvent(g,{...s},{debounce:!0})}),this.defineMethod("getEvents",function(){return this.model.getEvents()}),this.defineMethod("getAction",function(e){return this.model.getAction(e)}),this.defineMethod("getActions",function(){return this.model.getActions()}),this.defineMethod("runAction",async function(e,t){let r=this.model.getAction(e),n=await (0,T.v)(this,r);if(!r)throw Error(`Action '${e}' not found.`);let i={...await (0,P.gG)(r.defaultParams,n)||{},...t||{}},o=r.useRawParams;if("function"==typeof o&&(o=await o(n)),o||(i=await n.resolveJsonTemplate(i)),!r.handler)throw Error(`Action '${e}' has no handler.`);return r.handler(n,i)})}}class e_ extends eS{constructor(e,t){if(!e||"object"!=typeof e)throw Error("Invalid FlowModel instance");super(),(0,a._)(this,"master",void 0),(0,a._)(this,"fork",void 0),this.master=e,this.fork=t,this.addDelegate(this.master.context),this.defineMethod("onRefReady",(e,t,r)=>{this.engine.reactView.onRefReady(e,t,r)}),this.defineProperty("model",{get:()=>this.fork,info:{description:"Current ForkFlowModel instance (as model).",detail:"ForkFlowModel"}});let r=(0,m.createRef)();this.defineProperty("ref",{get:()=>(this.fork._refCreated=!0,r),info:{description:"Stable React ref for the view container.",detail:"React.RefObject<HTMLDivElement>"}})}}class ek extends eS{_getOwnProperty(e){if("runtime"===this.mode)return super._getOwnProperty(e,this.createProxy());let t=this._props[e];if(t){if("value"in t)return x.create()[e];if(t.get){if(!1===t.cache)return x.create()[e];let r=t.observable?"_observableCache":"_cache";return e in this[r]||(this[r][e]=x.create()[e]),this[r][e]}}}exit(){throw new C.zz(this.flowKey,this.model.uid)}exitAll(){throw new C.zz(this.flowKey,this.model.uid)}get mode(){return this._mode}constructor(e,t,r="runtime"){super(),(0,a._)(this,"model",void 0),(0,a._)(this,"flowKey",void 0),(0,a._)(this,"_mode",void 0),(0,a._)(this,"stepResults",void 0),this.model=e,this.flowKey=t,this._mode=r,this.stepResults={},this.addDelegate(this.model.context),this.defineMethod("getStepParams",r=>e.getStepParams(t,r)||{}),this.defineMethod("setStepParams",(r,n)=>e.setStepParams(t,r,n)),this.defineMethod("getStepResults",e=>h().get(this.steps,[e,"result"])),this.defineMethod("initResource",t=>{e.context.has("resource")?console.log(`[FlowRuntimeContext] useResource - resource already defined in context: ${t}`):(e.context.defineProperty("resource",{get:()=>this.makeResource(t)}),e.resource||(e.resource=e.context.resource))}),this.defineMethod("useResource",e=>this.initResource(e)),this.defineProperty("resource",{get:()=>e.resource||e.context.resource,cache:!1}),this.defineMethod("onRefReady",(e,t,r)=>{this.engine.reactView.onRefReady(e,t,r)})}}let eP=new WeakMap,eC=new WeakMap,ej=new WeakMap;function eR(e,t){if(null===t)return;if(Array.isArray(e)||Array.isArray(t)||"object"!=typeof e||"object"!=typeof t)return t??e;let r={...e};for(let n of Object.keys(t)){let i=eR(null==e?void 0:e[n],t[n]);void 0===i?delete r[n]:r[n]=i}return r}function eE(e){return!!e&&"object"==typeof e&&!Array.isArray(e)}function eF(e){return!!e&&("object"==typeof e||"function"==typeof e)&&"function"==typeof e.then}function eT(e){return!0===e||(e&&eE(e)?e:void 0)}function eO(e,t,r){if(!Array.isArray(t)||!t.length)return;let n=e;for(let e of t){if(!e)return;n.children=n.children||{},n.children[e]=n.children[e]||{},n=n.children[e]}n.deprecated=r}function eI(e,t){void 0!==t.deprecated&&(e.deprecated=t.deprecated);let r=t.children||{},n=Object.keys(r);if(n.length)for(let t of(e.children=e.children||{},n))e.children[t]=e.children[t]||{},eI(e.children[t],r[t])}function e$(e){let t={};if(!e)return t;let r=(e,n)=>{if(eE(e))for(let[i,o]of Object.entries(e)){if(!i||!o||"object"!=typeof o||Array.isArray(o))continue;let e=o,l=eT(e.deprecated);l&&eO(t,[...n,i],l),eE(e.properties)&&r(e.properties,[...n,i])}},n=e=>{if(eE(e))for(let[r,n]of Object.entries(e)){if(!r||!n||"object"!=typeof n||Array.isArray(n))continue;let e=eT(n.deprecated);e&&eO(t,[r],e)}};return r(e.properties,[]),n(e.methods),t}function eD(e){let t={},r=new WeakSet,n=(e,r)=>{if(eE(r))for(let[i,o]of Object.entries(r)){if(!i||"string"==typeof o||!o||"object"!=typeof o||Array.isArray(o))continue;let r=o,l=eT(r.deprecated);l&&eO(t,[...e,i],l),eE(r.properties)&&n([...e,i],r.properties)}},i=e=>{if(!e||"object"!=typeof e&&"function"!=typeof e||r.has(e))return;r.add(e);let o=e._methodInfos;if(eE(o))for(let[e,r]of Object.entries(o)){if(!e||!r||"object"!=typeof r||Array.isArray(r))continue;let n=eT(r.deprecated);n&&eO(t,[e],n)}let l=e._props;if(eE(l))for(let[e,r]of Object.entries(l)){if(!e)continue;let i=null==r?void 0:r.info;if(!i||"object"!=typeof i||Array.isArray(i))continue;let o=eT(i.deprecated);o&&eO(t,[e],o),eE(i.properties)&&n([e],i.properties)}let s=e._delegates;if(Array.isArray(s))for(let e of s)i(e)};return i(e),t}function eN(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=e$(t.doc);eI(r,eD(e));let n=new Set,i=new WeakMap,o=new WeakMap,l=new WeakMap,s=e=>{if(!e||"string"!=typeof e)return{};let t=2;for(let r of e.split("\n")){if(!r)continue;let e=r.match(/<anonymous>:(\d+):(\d+)/);if(!e)continue;let n=Number(e[1]),i=Number(e[2]);return{line:Number.isFinite(n)&&n>t?n-t:n,column:Number.isFinite(i)?i:void 0,rawLine:n,rawColumn:i}}return{}},a=(e,t)=>{if(eE(t))for(let[n,i]of Object.entries(t)){if(!n||"string"==typeof i||!i||"object"!=typeof i||Array.isArray(i))continue;let t=i,o=eT(t.deprecated);o&&eO(r,[...e,n],o),eE(t.properties)&&a([...e,n],t.properties)}},c=(e,t)=>{if(!e)return;let n=null==t?void 0:t.info;if(!n||"object"!=typeof n||Array.isArray(n))return;let i=eT(n.deprecated);i&&eO(r,[e],i),eE(n.properties)&&a([e],n.properties)},u=(e,t)=>{if(!e||!t||"object"!=typeof t||Array.isArray(t))return;let n=eT(t.deprecated);n&&eO(r,[e],n)},d=e=>{let t=e;for(;t&&("object"==typeof t||"function"==typeof t);){let e=i.get(t);if(!e)break;t=e}return t},h=e=>{if(e){if("string"==typeof e)return e.trim()||void 0;if(Array.isArray(e)){let t=e.map(e=>"string"==typeof e?e.trim():"").filter(Boolean);return t.length?t.join(", "):void 0}}},p=(t,r,i)=>{if(!t||n.has(t))return;n.add(t);let o=null==e?void 0:e.logger,l="function"==typeof(null==e?void 0:e.t)?(t,r)=>e.t(t,{ns:[P.u4,"client"],nsMode:"fallback",...r}):(e,t)=>{let r=(null==t?void 0:t.defaultValue)??e;return"string"==typeof r&&t?r.replace(/\{\{\s*([a-zA-Z0-9_]+)\s*\}\}/g,(e,r)=>{let n=null==t?void 0:t[r];return"string"==typeof n||"number"==typeof n?String(n):""}):r},a="object"==typeof r&&r?r:{},c=h(a.replacedBy),u="string"==typeof a.since?String(a.since):void 0,d="string"==typeof a.removedIn?String(a.removedIn):void 0,p="string"==typeof a.message?String(a.message):"",f=s(i),m=f.line?`(line ${f.line}${f.column?`:${f.column}`:""})`:"",g=p.trim(),y=g?l("RunJS deprecated warning with message",{defaultValue:"[RunJS][Deprecated] {{api}} {{message}}{{location}}",api:t,message:g,location:m}):l("RunJS deprecated warning",{defaultValue:"[RunJS][Deprecated] {{api}} is deprecated{{location}}",api:t,location:m}),v=l("RunJS deprecated separator",{defaultValue:"; "}),w=[y];c&&w.push(l("RunJS deprecated replacedBy",{defaultValue:"Use {{replacedBy}} instead",replacedBy:c})),u&&w.push(l("RunJS deprecated since",{defaultValue:"since {{since}}",since:u})),d&&w.push(l("RunJS deprecated removedIn",{defaultValue:"will be removed in {{removedIn}}",removedIn:d}));let b=w.filter(Boolean).join(v);try{o&&"function"==typeof o.warn?o.warn(b):console.warn(b)}catch(e){}},f=(e,t,r)=>{let i=t.deprecated;if(!i)return e;let o=l.get(e)||new Map;if(l.set(e,o),o.has(r))return o.get(r);let s=new Proxy(e,{apply(e,t,o){let l=n.has(r)?void 0:Error().stack;return p(r,i,l),Reflect.apply(e,d(t),o)},get:(e,t,r)=>Reflect.get(e,t,r)});return o.set(r,s),s},m=(e,t,r)=>{if(!e||"object"!=typeof e&&"function"!=typeof e||eF(e)||!(t.children&&Object.keys(t.children).length>0)&&"ctx"!==r)return e;let l=o.get(e)||new Map;if(o.set(e,l),l.has(r))return l.get(r);let s=new Proxy(e,{get(e,i,o){var l;if("symbol"==typeof i)return Reflect.get(e,i,d(o));let s=String(i),a=Reflect.get(e,i,d(o));if("ctx"===r&&"defineProperty"===s&&"function"==typeof a)return function(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];let n=a(...t);try{c(String((null==t?void 0:t[0])??""),null==t?void 0:t[1])}catch(e){}return n};if("ctx"===r&&"defineMethod"===s&&"function"==typeof a)return function(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];let n=a(...t);try{u(String((null==t?void 0:t[0])??""),null==t?void 0:t[2])}catch(e){}return n};let h=null==(l=t.children)?void 0:l[s];if(!h)return a;let g=`${r}.${s}`;if("function"==typeof a&&h.deprecated)return f(a,h,g);if(h.deprecated){let e=n.has(g)?void 0:Error().stack;p(g,h.deprecated,e)}return a&&("object"==typeof a||"function"==typeof a)&&h.children?m(a,h,g):a},has:(e,t)=>Reflect.has(e,t)});return i.set(s,e),l.set(r,s),s};return m(e,r,"ctx")}function eB(e,t,r){if(!eE(t))return e;if(!eE(e))return t;let n={...e};for(let i of Object.keys(t)){let o=t[i];if(null===o){delete n[i];continue}let l=r(eE(e)?e[i]:void 0,o);void 0===l?delete n[i]:n[i]=l}return n}function eL(e,t){if(null===t)return;let r=eE(e),n=eE(t),i="string"==typeof e;if("string"==typeof t)return r?eL(e,{description:t}):t;if(n){let n=r?e:i?{description:e}:void 0,o={...n||{}};for(let e of Object.keys(t)){if("properties"===e){let e=t.properties;if(null===e){delete o.properties;continue}let r=eB(null==n?void 0:n.properties,e,eL);void 0===r?delete o.properties:o.properties=r;continue}let r=eR(null==n?void 0:n[e],t[e]);void 0===r?delete o[e]:o[e]=r}return o}return t??e}function eq(e,t){if(null===t)return;let r=eE(e),n=eE(t),i="string"==typeof e;if("string"==typeof t)return r?eq(e,{description:t}):t;if(n){let n=r?e:i?{description:e}:void 0,o={...n||{}};for(let e of Object.keys(t)){let r=eR(null==n?void 0:n[e],t[e]);void 0===r?delete o[e]:o[e]=r}return o}return t??e}function eU(e,t){let r=eE(e)?e:{},n=eE(t)?t:{},i={...r};for(let e of Object.keys(n)){if("properties"===e){let e=eB(r.properties,n.properties,eL);void 0===e?delete i.properties:i.properties=e;continue}if("methods"===e){let e=eB(r.methods,n.methods,eq);void 0===e?delete i.methods:i.methods=e;continue}let t=eR(r[e],n[e]);void 0===t?delete i[e]:i[e]=t}return i}class ez extends ep{exit(){var e;throw new C.zz(this.flowKey,(null==(e=this.model)?void 0:e.uid)||"runjs")}exitAll(){var e;throw new C.zz(this.flowKey,(null==(e=this.model)?void 0:e.uid)||"runjs")}static define(e,t){let r=null==t?void 0:t.locale;if(r){let t=eC.get(this)||new Map,n=t.get(r)||{};t.set(r,eU(n,e)),eC.set(this,t)}else{let t=eP.get(this)||{};eP.set(this,eU(t,e))}ej.delete(this)}static getDoc(e){let t=this,r=ej.get(t),n=String(e||"default");if(r&&r.has(n))return r.get(n);let i=[],o=t;for(;o&&o.prototype;)i.unshift(o),o=Object.getPrototypeOf(o);let l={};for(let e of i)l=eU(l,eP.get(e)||{});if(e)for(let t of i){let r=eC.get(t);r&&r.has(e)&&(l=eU(l,r.get(e)))}return r||(r=new Map,ej.set(t,r)),r.set(n,l),l}constructor(e){super(),this.addDelegate(e),this.defineProperty("React",{value:m}),this.defineProperty("antd",{value:u}),this.defineProperty("dayjs",{value:I()});let t={...y,createRoot:(e,t)=>{let r=(null==e?void 0:e.__el)||e;return this.engine.reactView.createRoot(r,t)}};t.__nbRunjsInternalShim=!0,this.defineProperty("ReactDOM",{value:t}),(0,$.oJ)(this),this.defineMethod("render",function(e,t){let r=t||this.element;if(!r)throw Error("ctx.render: container not provided and ctx.element is not available");let n=(null==r?void 0:r.__el)||r,i=globalThis;i.__nbRunjsRoots=i.__nbRunjsRoots||new WeakMap;let o=i.__nbRunjsRoots,l=e=>{if(!e)return;if(e.disposeTheme&&"function"==typeof e.disposeTheme){try{e.disposeTheme()}catch(e){}e.disposeTheme=void 0}let t=e.root||e;if(t&&"function"==typeof t.unmount)try{t.unmount()}catch(e){}},s=()=>{let e=o.get(n);e&&(l(e),o.delete(n))};if("string"==typeof e)return s(),new v.x(n).innerHTML=String(e??""),null;if(e&&e.nodeType&&(1===e.nodeType||3===e.nodeType||11===e.nodeType)){for(s();n.firstChild;)n.removeChild(n.firstChild);return n.appendChild(e),null}let a=this.ReactDOM,c=this,d=o.get(n);return d&&d.rendererKey===a&&d.ownerKey===c||(d&&(l(d),o.delete(n)),d={rendererKey:a,ownerKey:c,root:this.ReactDOM.createRoot(n),disposeTheme:void 0,lastVnode:void 0},o.set(n,d)),(0,$.$B)({ctx:this,entry:d,vnode:e,containerEl:n,rootMap:o,unmountContainerRoot:s,internalReact:m,internalAntd:u})})}}},81440(e,t,r){r.d(t,{$:()=>eb});var n=r(88243),i=r(16213),o=r(50467),l=r(95243),s=r(2543),a=r.n(s),c=r(81318),u=r.n(c),d=r(64171);class h extends d.Z{getAction(e){return this.actions.get(e)}getActions(){return new Map(this.actions)}}var p=r(26955);class f extends p.L{getEvent(e){return this.events.get(e)}getEvents(){return new Map(this.events)}}var m=r(29007),g=r(48555),y=r(31108),v=r(88439),w=r(62572);class b{async emitModelEventIf(e,t,r){e&&await this.engine.emitter.emitAsync(`model:event:${e}:${t}`,r)}async withApplyFlowCache(e,t){if(!e||!this.engine)return await t();let r=this.engine.applyFlowCache.get(e);if(r){if("resolved"===r.status)return r.data;if("rejected"===r.status)throw r.error;if("pending"===r.status)return await r.promise}let n=t().then(t=>(this.engine.applyFlowCache.set(e,{status:"resolved",data:t,promise:Promise.resolve(t)}),t)).catch(t=>{throw this.engine.applyFlowCache.set(e,{status:"rejected",error:t,promise:Promise.reject(t)}),t});return this.engine.applyFlowCache.set(e,{status:"pending",promise:n}),await n}async runFlow(e,t,r,n,i){var o;let l,s=e.getFlow(t);if(!s)return e.context.logger.error(`BaseModel.applyFlow: Flow with key '${t}' not found.`),Promise.reject(Error(`Flow '${t}' not found.`));let c=new m.W5(e,t);c.defineProperty("reactView",{value:e.reactView}),c.defineProperty("inputArgs",{value:{...r}}),c.defineProperty("runId",{value:n||`run-${Date.now()}`});let u=c.stepResults,d=e.getEvent("string"==typeof s.on?s.on:null==(o=s.on)?void 0:o.eventName);d&&((d={...d}).defaultParams={...a().get(s,"on.defaultParams",{}),...d.defaultParams});let h=d?{eventStep:d,...s.steps}:s.steps;(0,v.w)(c,h,e,t);let p=c.steps,f={uid:e.uid,model:e,runId:c.runId,inputArgs:r,flowKey:t};for(let[r,n]of(await this.emitModelEventIf(i,`flow:${t}:start`,f),Object.entries(h))){let o,s,a={},d=n.useRawParams;if(n.use){let i=e.getAction(n.use);if(!i){c.logger.error(`BaseModel.applyFlow: Action '${n.use}' not found for step '${r}' in flow '${t}'. Skipping.`);continue}s=await (0,w.v)(c,{...i,...n}),o=n.handler||i.handler,d=d??i.useRawParams;let l=await (0,g.gG)(i.defaultParams,s),u=await (0,g.gG)(n.defaultParams,s);a={...l,...u}}else if(n.handler)s=await (0,w.v)(c,n),o=n.handler,a={...await (0,g.gG)(n.defaultParams,s)};else{c.logger.error(`BaseModel.applyFlow: Step '${r}' in flow '${t}' has neither 'use' nor 'handler'. Skipping.`);continue}let h=e.getStepParams(t,r);void 0!==h&&(a={...a,...h}),"function"==typeof d&&(d=await d(s)),d||(a=await s.resolveJsonTemplate(a));try{if(!o){c.logger.error(`BaseModel.applyFlow: No handler available for step '${r}' in flow '${t}'. Skipping.`);continue}await this.emitModelEventIf(i,`flow:${t}:step:${r}:start`,{...f,stepKey:r});let e=o(s,a);l=!1!==n.isAwait?await e:e,u[r]=l,p[r].result=u[r],await this.emitModelEventIf(i,`flow:${t}:step:${r}:end`,{...f,result:l,stepKey:r})}catch(e){if(e instanceof g.sy||e instanceof y.zz||await this.emitModelEventIf(i,`flow:${t}:step:${r}:error`,{...f,error:e,stepKey:r}),e instanceof g.sy)return c.logger.info(`[FlowEngine] ${e.message}`),await this.emitModelEventIf(i,`flow:${t}:step:${r}:end`,{...f,stepKey:r}),await this.emitModelEventIf(i,`flow:${t}:end`,{...f,result:u}),Promise.resolve(u);if(e instanceof y.zz)return c.logger.info(`[FlowEngine] ${e.message}`),await this.emitModelEventIf(i,`flow:${t}:step:${r}:end`,{...f,stepKey:r,aborted:!0}),await this.emitModelEventIf(i,`flow:${t}:end`,{...f,result:e,aborted:!0}),Promise.resolve(e);return await this.emitModelEventIf(i,`flow:${t}:error`,{...f,error:e}),c.logger.error({err:e},`BaseModel.applyFlow: Error executing step '${r}' in flow '${t}':`),Promise.reject(e)}}return await this.emitModelEventIf(i,`flow:${t}:end`,{...f,result:u}),Promise.resolve(u)}async dispatchEvent(e,t,r,n){var i,o,l,s;let a="beforeRender"===t,c=!!(null==n?void 0:n.sequential),u=!!(null==n?void 0:n.useCache),d=a,h=`${e.uid}-${t}-${Date.now()}`,p=e.context.logger,f={uid:e.uid,model:e,runId:h,inputArgs:r};try{await this.emitModelEventIf(t,"start",f),await (null==(i=e.onDispatchEventStart)?void 0:i.call(e,t,n,r))}catch(i){if(a&&i instanceof g.sy)return p.debug(`[FlowModel.dispatchEvent] ${i.message}`),[];try{await (null==(o=e.onDispatchEventError)?void 0:o.call(e,t,n,r,i))}finally{p.error({err:i},`BaseModel.dispatchEvent: Start hook error for event '${t}'`)}if(d)throw i;return}let m=a?e.getEventFlows("beforeRender"):Array.from(e.getFlows().values()).filter(e=>{let r=e.on;return!!r&&("string"==typeof r?r===t:"object"==typeof r&&r.eventName===t)}),v="click"===t&&(null==r?void 0:r.triggerByRouter)===!0?m.filter(e=>{var t;let r=e.flowRegistry;return"instance"!==(null==r||null==(t=r.constructor)?void 0:t._type)}):m,w=[],b=async()=>{let n=!1;if(c){let i=v.map((e,t)=>({f:e,i:t})).slice().sort((e,t)=>{var r,n;let i=e.f.flowRegistry,o=t.f.flowRegistry,l=null==i||null==(r=i.constructor)?void 0:r._type,s=null==o||null==(n=o.constructor)?void 0:n._type,a=+("instance"!==l),c=+("instance"!==s);if(a!==c)return a-c;let u=e.f.sort??0,d=t.f.sort??0;return u!==d?u-d:e.i-t.i}).map(e=>e.f),o=[],l=new Map(i.filter(e=>{var t;let r=e.flowRegistry;return"instance"!==(null==r||null==(t=r.constructor)?void 0:t._type)}).map(e=>[e.key,e])),s=new Set,a=new Map;for(let[n,c]of(i.forEach((e,r)=>{let n=e.on,i="object"==typeof n?n:void 0;if(!i)return;let o=i.phase,c=i.flowKey,u=i.stepKey;if(!o||"beforeAllFlows"===o)return;let d=null;if("afterAllFlows"===o)d=`event:${t}:end`;else if("beforeFlow"===o||"afterFlow"===o)if(c)if(l.get(String(c))){let e="beforeFlow"===o?"start":"end";d=`event:${t}:flow:${String(c)}:${e}`}else d=`event:${t}:end`;else d=`event:${t}:end`;else if("beforeStep"!==o&&"afterStep"!==o)return;else if(c&&u){var h;let e=l.get(String(c)),r=!!(null==e||null==(h=e.hasStep)?void 0:h.call(e,String(u)));if(e&&r){let e="beforeStep"===o?"start":"end";d=`event:${t}:flow:${String(c)}:step:${String(u)}:${e}`}else d=`event:${t}:end`}else d=`event:${t}:end`;if(!d)return;let p=d===`event:${t}:end`||"afterFlow"===o||"afterStep"===o;s.add(e.key);let f=a.get(d)||[];f.push({flow:e,order:r,shouldSkipOnAborted:p}),a.set(d,f)}),a.entries()))for(let i of c.slice().sort((e,t)=>{let r=e.flow.sort??0,n=t.flow.sort??0;return r!==n?r-n:e.order-t.order})){let l=i.shouldSkipOnAborted?Object.assign(e=>e.type===n&&!0!==e.aborted,{__eventType:n}):n,s=e.scheduleModelOperation(e.uid,async e=>{let n=await this.runFlow(e,i.flow.key,r,h,t);if(n instanceof y.zz)throw n;o.push(n)},{when:l});w.push(s)}for(let l of i)if(!s.has(l.key))try{p.debug(`BaseModel '${e.uid}' dispatching event '${t}' to flow '${l.key}' (sequential).`);let i=await this.runFlow(e,l.key,r,h,t);if(i instanceof y.zz){p.debug(`[FlowEngine.dispatchEvent] ${i.message}`),n=!0;break}o.push(i)}catch(e){if(e instanceof y.zz){p.debug(`[FlowEngine.dispatchEvent] ${e.message}`),n=!0;break}throw p.error({err:e},`BaseModel.dispatchEvent: Error executing event-triggered flow '${l.key}' for event '${t}' (sequential):`),e}return{result:o,abortedByExitAll:n}}let i=(await Promise.all(v.map(async n=>{p.debug(`BaseModel '${e.uid}' dispatching event '${t}' to flow '${n.key}'.`);try{return await this.runFlow(e,n.key,r,h,t)}catch(e){if(p.error({err:e},`BaseModel.dispatchEvent: Error executing event-triggered flow '${n.key}' for event '${t}':`),d)throw e;return}}))).filter(e=>void 0!==e);return i.some(e=>e instanceof y.zz)&&(n=!0),{result:i,abortedByExitAll:n}},x=u?JSON.stringify(r??{}):"",S=u?eb.generateApplyFlowCacheKey(`event:${e.getFlowCacheScope(t)}:${x}`,t,e.uid):null;try{let{result:i,abortedByExitAll:o}=await this.withApplyFlowCache(S,b);try{await (null==(l=e.onDispatchEventEnd)?void 0:l.call(e,t,n,r,i))}catch(e){p.error({err:e},`BaseModel.dispatchEvent: End hook error for event '${t}'`)}return await this.emitModelEventIf(t,"end",{...f,result:i,...o?{aborted:!0}:{}}),i&&"object"==typeof i&&Object.defineProperty(i,"__abortedByExitAll",{value:o,configurable:!0}),i}catch(i){try{await (null==(s=e.onDispatchEventError)?void 0:s.call(e,t,n,r,i))}catch(e){}if(e.context.logger.error({err:i},`BaseModel.dispatchEvent: Error executing event '${t}' for model '${e.uid}':`),await this.emitModelEventIf(t,"error",{...f,error:i}),d)throw i}finally{for(let e of w)e()}}constructor(e){(0,o._)(this,"engine",void 0),this.engine=e}}var x=r(58587),S=r(18150),A=r(68238),M=r(60645),_=r(18220),k=r(47674),P=r(21637),C=r(71021),j=r(84626),R=r(96540),E=r(74848),F=r(53619),T=r(92034),O=r(98393),I=r(42443),$=r(88040),D=r(35710),N=r(18182),B=r(76511),L=r(1314),q=r(57084),U=r(94313),z=r(20616),V=r(52847);let W={marginLeft:32},H=(0,V.PA)(e=>{let{title:t,onChange:r,getDefaultValue:n,disabled:i,itemKey:o,...l}=e,[s,a]=(0,R.useState)(!1),c=(0,z.Db)();(0,R.useEffect)(()=>{let e=!1;return(async()=>{if(n)try{let t=await n();if(e||!t)return;let r=Object.entries(t);if(!r.length)return;let[i,o]=r[0];a(!!o)}catch(e){console.error(e)}})(),()=>{e=!0}},[n]);let u=e=>{a(e),null==r||r({[o]:e})},d=e=>{e.stopPropagation(),i||u(!s)};return(0,E.jsxs)("div",{style:{alignItems:"center",display:"flex",justifyContent:"space-between",cursor:i?"not-allowed":"pointer"},onClick:d,children:[t,(0,E.jsx)(U.A,{size:"small",...l,checkedChildren:l.checkedChildren?c.t(l.checkedChildren):void 0,unCheckedChildren:l.unCheckedChildren?c.t(l.unCheckedChildren):void 0,checked:s,style:W,disabled:i})]})});var K=r(36492);let J=(e,t,r)=>{let n=t.maxDepth,i="number"==typeof t.arrayLimit?t.arrayLimit:1/0,o=t.mode??"stack",l=new Set,s=new Set,a=(e,t,c)=>{if(!e||t>n)return;let u=()=>{r(e,{depth:t,modelKey:c}),t>=n||Object.entries(e.subModels||{}).forEach(e=>{let[r,n]=e;if(Array.isArray(n)){let e=Number.isFinite(i)?Math.min(n.length,i):n.length;for(let i=0;i<e;i++){let e=n[i];e instanceof L.WD&&a(e,t+1,`${r}[${i}]`)}return}n instanceof L.WD&&a(n,t+1,r)})};if("visited"===o){if(l.has(e))return;l.add(e),u();return}let d=e.uid||`temp-${Date.now()}`;if(!s.has(d)){s.add(d);try{u()}finally{s.delete(d)}}};a(e,1)},Y=(e,t)=>{var r;if(!e||!t||"string"!=typeof t)return console.warn("Invalid input parameters"),null;let n=t.match(/^([a-zA-Z_$][a-zA-Z0-9_$]*)(?:\[(\d+)\])?$/);if(!n)return console.warn(`Invalid subModelKey format: ${t}`),null;let[,i,o]=n,l=null==(r=e.subModels)?void 0:r[i];if(!l)return console.warn(`SubModel '${i}' not found`),null;if(void 0!==o){let e=parseInt(o,10);return Array.isArray(l)?e<0||e>=l.length?(console.warn(`Array index ${e} out of bounds for '${i}'`),null):l[e]instanceof L.WD?l[e]:null:(console.warn(`Expected array for '${i}', got ${typeof l}`),null)}return Array.isArray(l)?(console.warn(`Expected object for '${i}', got array`),null):l instanceof L.WD?l:null},G={switch:H,select:function(e){let{title:t,getDefaultValue:r,onChange:n,options:i,fieldNames:o,itemKey:l,...s}=e,[a,c]=(0,R.useState)(!1),[u,d]=(0,R.useState)(""),h=(0,z.Db)();(0,R.useEffect)(()=>{let e=!1;return(async()=>{if(r)try{let t=await r();if(e||!t)return;let n=Object.entries(t);if(!n.length)return;let[i,o]=n[0];d(o)}catch(e){console.error(e)}})(),()=>{e=!0}},[r]);let p=(0,R.useRef)(null),f=e=>{d(e),null==n||n({[l]:e})};return(0,E.jsxs)("div",{style:{alignItems:"center",display:"flex",justifyContent:"space-between"},onClick:e=>{e.stopPropagation(),c(e=>!e)},onMouseLeave:()=>{p.current=setTimeout(()=>{c(!1)},200)},children:[(0,E.jsx)("span",{style:{whiteSpace:"nowrap",flexShrink:0},children:t}),(0,E.jsx)(K.A,{...s,open:a,popupMatchSelectWidth:!1,bordered:!1,value:u,onChange:f,popupClassName:`select-popup-${t.replaceAll(" ","-")}`,fieldNames:o,options:i,labelRender:e=>h.t(e.label),optionRender:e=>h.t(e.label),style:{textAlign:"right",minWidth:100},onMouseEnter:()=>{clearTimeout(p.current)},dropdownRender:e=>s.dropdownRender?s.dropdownRender(e,c,f):e})]})}},Z=e=>{let{title:t,uiMode:r,itemProps:n}=e,i=(null==r?void 0:r.type)||r,o=i?G[i]:null,l=!!(null==n?void 0:n.disabled),s=null==n?void 0:n.disabledReason,a=null==n?void 0:n.disabledIconColor,c=o?(0,E.jsx)(o,{title:t,...n}):(0,E.jsx)(E.Fragment,{children:t});return l?(0,E.jsxs)("span",{style:{display:"inline-flex",alignItems:"center",gap:6},children:[c,(0,E.jsx)(I.A,{title:s,placement:"right",destroyTooltipOnHide:!0,children:(0,E.jsx)(F.A,{style:{color:a}})})]}):c},X=e=>{let{model:t,showDeleteButton:r=!0,showCopyUidButton:n=!0,menuLevels:i=1,flattenSubMenus:o=!0}=e,{message:l}=$.A.useApp(),s=(0,R.useMemo)(()=>(0,g.lW)(t),[t]),{token:a}=D.A.useToken(),c=(null==a?void 0:a.colorTextTertiary)||(null==a?void 0:a.colorTextDescription)||(null==a?void 0:a.colorTextSecondary),[u,d]=(0,R.useState)(!1),[h,p]=(0,R.useState)(0),[f,m]=(0,R.useState)([]),[y,v]=(0,R.useState)([]),[w,b]=(0,R.useState)(!0),x=(0,R.useCallback)(()=>{d(!1)},[]),S=(0,R.useCallback)((e,t)=>{("trigger"===t.source||e)&&(0,R.startTransition)(()=>{d(e)})},[]),A=(0,q.t_)([u]);(0,R.useEffect)(()=>{let e=!0,r=async()=>{let r=[],n=[];for(let{model:e,modelKey:l}of(J(t,{maxDepth:i,arrayLimit:50,mode:"stack"},(e,t)=>{let{modelKey:r}=t;n.push({model:e,modelKey:r})}),n)){var o;let t=e.constructor,n=await (null==(o=t.getExtraMenuItems)?void 0:o.call(t,e,s));(null==n?void 0:n.length)&&r.push(...n.map(e=>({...e,key:l?`${l}:${e.key}`:e.key})))}if(e){let e=new Set;m(r.filter(t=>!e.has(`${t.key}`)&&(e.add(`${t.key}`),!0)))}};return u&&r(),()=>{e=!1}},[t,i,s,h,u]);let M=(0,R.useCallback)(async e=>{try{await navigator.clipboard.writeText(e),l.success(s("UID copied to clipboard"))}catch(r){var t;if(console.error(s("Copy failed"),":",r),!("u">typeof window&&(null==(t=window.location)?void 0:t.protocol)==="https:"))return void l.error(s("Copy failed under HTTP. Clipboard API is unavailable on non-HTTPS pages. Please copy [{{uid}}] manually.",{uid:e}));l.error(s("Copy failed, please copy [{{uid}}] manually.",{uid:e}))}},[l,s]),_=(0,R.useCallback)(async()=>{M(t.uid)},[t.uid,M]),k=(0,R.useCallback)(e=>{try{let r=e.replace(/^copy-pop-uid:/,"").split(":"),n=t;if(3===r.length){let[e]=r;n=Y(t,e)||t}else if(2!==r.length)return void console.error("Invalid copy-pop-uid key format:",e);M(n.uid)}catch(e){console.error("handleCopyPopupUid error:",e)}},[t,M]),P=(0,R.useCallback)(()=>{x(),N.A.confirm({title:s("Confirm delete"),icon:(0,E.jsx)(T.A,{}),content:s("Are you sure you want to delete this item? This action cannot be undone."),okText:s("Confirm"),okType:"primary",cancelText:s("Cancel"),zIndex:999999,async onOk(){try{await t.destroy()}catch(e){console.error(s("Delete operation failed"),":",e),N.A.error({title:s("Delete failed"),content:s("Delete operation failed, please check the console for details.")})}}})},[x,t,s]),C=(0,R.useCallback)(e=>{let r,n,i=e.split(":");if(i.length<2||i.length>3)return void console.error("Invalid configuration key format:",e);let o=t;if(3===i.length){let[e,l,s]=i;r=l,n=s;let a=Y(t,e);if(!a)return void console.error(`Sub-model '${e}' not found`);o=a}else[r,n]=i;try{x(),o.openFlowSettings({flowKey:r,stepKey:n})}catch(e){console.log(s("Configuration popup cancelled or error"),":",e)}},[x,t,s]),j=(0,R.useCallback)(e=>{let t,r,n,i=(e.includes("-")&&/^(.+)-\d+$/.test(e)?e.replace(/-\d+$/,""):e).split(":");if(3===i.length)[t,r,n]=i;else{if(2!==i.length)return!1;[r,n]=i}return y.some(e=>{let{flow:i,steps:o,modelKey:l}=e;return(l||void 0)===t&&i.key===r&&o.some(e=>e.stepKey===n&&!!e.disabled)})},[y]),L=(0,R.useCallback)(e=>{let{key:t}=e,r=t,n=t.includes("-")&&/^(.+)-\d+$/.test(t)?t.replace(/-\d+$/,""):t;if(n.startsWith("copy-pop-uid:")){x(),k(n);return}let i=f.find(e=>(null==e?void 0:e.key)===r||(null==e?void 0:e.key)===n);if(null==i?void 0:i.onClick){x(),i.onClick();return}if(!j(n))switch(n){case"copy-uid":x(),_();break;case"delete":P();break;default:C(n)}},[x,_,P,C,k,f,j]),U=(0,R.useCallback)(async(e,t)=>{try{let r=new Map(e.constructor.globalFlowRegistry.getFlows()),n=Array.from(r.values());return await Promise.all(n.map(async r=>{let n=await Promise.all(Object.entries(r.steps).map(async n=>{let[i,o]=n,l=o,a=l;if(await (0,g._3)(e,r,l))return null;let c=await (0,g.XM)(e,r,l),u=await (0,g.ME)(l.uiMode,e.context),d=null!=l.uiSchema,h=!1,p=l.title;if(l.use)try{var f;let t=null==(f=e.getAction)?void 0:f.call(e,l.use);a={...t||{},...l},u=await (0,g.ME)((null==t?void 0:t.uiMode)||u,e.context),h=t&&null!=t.uiSchema,p=p||(null==t?void 0:t.title)}catch(e){console.warn(s("Failed to get action {{action}}",{action:l.use}),":",e)}let m=["select","switch"].includes((null==u?void 0:u.type)||u);if(!m&&!d&&!h)return null;let y={};try{let t=await (0,g.o7)(e,r,l);if(!t&&!m)return null;y=t}catch(e){return console.warn(s("Failed to resolve uiSchema for step {{stepKey}}",{stepKey:i}),":",e),null}return{stepKey:i,step:a,uiSchema:y,title:s(p)||i,modelKey:t,uiMode:u,disabled:c.disabled,disabledReason:c.reason}})).then(e=>e.filter(Boolean));return n.length>0?{flow:r,steps:n,modelKey:t}:null})).then(e=>e.filter(Boolean))}catch(t){return console.error(s("Failed to get configurable flows for model {{model}}",{model:(null==e?void 0:e.uid)||"unknown"}),":",t),[]}},[]),z=(0,R.useCallback)(async()=>{let e=[],r=[];for(let{model:n,modelKey:o}of(J(t,{maxDepth:i,arrayLimit:50,mode:"stack"},(e,t)=>{let{modelKey:n}=t;r.push({model:e,modelKey:n})}),r)){let t=await U(n,o);e.push(...t)}return e},[t,i,U]);(0,R.useEffect)(()=>{let e=()=>{p(e=>e+1)},r=[];return J(t,{maxDepth:i,mode:"visited"},(t,n)=>{let{depth:i}=n,o=["onStepParamsChanged"];1===i&&o.push("onSubModelAdded","onSubModelRemoved","onSubModelReplaced"),o.forEach(n=>{var i;null==(i=t.emitter)||i.on(n,e),r.push(()=>{var r;return null==(r=t.emitter)?void 0:r.off(n,e)})})}),()=>{r.forEach(e=>e())}},[t,i,h]),(0,R.useEffect)(()=>{(async()=>{b(!0);try{let e=await z();v(e)}catch(e){console.error("Failed to load configurable flows and steps:",e),v([])}finally{b(!1)}})()},[z,h]);let V=(0,R.useMemo)(()=>{let e=[],r=new Map,n=e=>{let t=r.get(e)||0;return r.set(e,t+1),0===t?e:`${e}-${t}`};if(y.length>0)if(o)y.forEach(r=>{let{flow:i,steps:o,modelKey:a}=r,u=n(`flow-group-${a?`${a}-`:""}${i.key}`);"top"===i.options.divider&&e.push({type:"divider"}),i.options.enableTitle&&e.push({key:u,label:s(i.title)||i.key,type:"group"}),o.forEach(r=>{let o=n(a?`${a}:${i.key}:${r.stepKey}`:`${i.key}:${r.stepKey}`),u=r.uiMode,d=(r.modelKey?Y(t,r.modelKey):null)||t,h=d.getStepParams(i.key,r.stepKey)||{},p={getDefaultValue:async()=>{let e=await (0,g.gG)(r.step.defaultParams,d.context);if(r.step.use){var t;let n=null==(t=d.getAction)?void 0:t.call(d,r.step.use);e=await (0,g.gG)(n.defaultParams,d.context)}return{...e,...h}},onChange:async e=>{var t;d.setStepParams(i.key,r.stepKey,e),"function"==typeof r.step.beforeParamsSave&&await r.step.beforeParamsSave(d.context,e,h),await d.saveStepParams(),null==l||null==(t=l.success)||t.call(l,s("Configuration saved")),"function"==typeof r.step.afterParamsSave&&await r.step.afterParamsSave(d.context,e,h)},...(null==u?void 0:u.props)||{},itemKey:null==u?void 0:u.key,disabled:!!r.disabled,disabledReason:r.disabledReason,disabledIconColor:c};e.push({key:o,label:(0,E.jsx)(Z,{title:r.title,uiMode:u,itemProps:p}),disabled:!!r.disabled})}),"bottom"===i.options.divider&&e.push({type:"divider"})});else{let t=new Map;y.forEach(e=>{let r=e.modelKey||"current";t.has(r)||t.set(r,[]);let n=t.get(r);n&&n.push(e)}),t.forEach((t,r)=>{if("current"===r)t.forEach(t=>{let{flow:r,steps:i}=t,o=n(`flow-group-${r.key}`);e.push({key:o,label:s(r.title)||r.key,type:"group"}),i.forEach(t=>{let i=n(`${r.key}:${t.stepKey}`);e.push({key:i,label:t.disabled?(0,E.jsxs)("span",{style:{display:"inline-flex",alignItems:"center",gap:6},children:[t.title,(0,E.jsx)(I.A,{title:t.disabledReason,placement:"right",destroyTooltipOnHide:!0,children:(0,E.jsx)(F.A,{style:{color:c}})})]}):t.title,disabled:!!t.disabled})})});else{let i=n(`sub-menu-${r}`),o=[];t.forEach(e=>{let{flow:t,steps:i}=e;i.forEach(e=>{let i=n(`${r}:${t.key}:${e.stepKey}`);o.push({key:i,label:e.disabled?(0,E.jsxs)("span",{style:{display:"inline-flex",alignItems:"center",gap:6},children:[e.title,(0,E.jsx)(I.A,{title:e.disabledReason,placement:"right",destroyTooltipOnHide:!0,children:(0,E.jsx)(F.A,{style:{color:c}})})]}):e.title,disabled:!!e.disabled})})}),e.push({key:i,label:r,children:o})}})}return e},[y,c,o,s]),W=(0,R.useMemo)(()=>{let e=[...V],i=f.filter(e=>"common-actions"===e.group).sort((e,t)=>(e.sort??0)-(t.sort??0));return(n||r||i.length>0)&&(e.push({type:"divider"}),i.length>0&&e.push(...i),n&&t.uid&&e.push({key:"copy-uid",label:s("Copy UID")}),r&&"function"==typeof t.destroy&&e.push({key:"delete",label:s("Delete")})),e},[V,n,r,t.uid,t.destroy,s,f]),H=f.some(e=>"common-actions"===e.group);return!w&&(0!==y.length||r||n||H)?t&&t.uid?(0,E.jsx)(B.A,{onOpenChange:S,open:u,menu:{items:W,onClick:L,style:{maxHeight:A,overflowY:"auto"}},trigger:["hover"],placement:"bottomRight",children:(0,E.jsx)(O.A,{role:"button","aria-label":"flows-settings",style:{cursor:"pointer",fontSize:12}})}):(console.warn(s("Invalid model provided")),null):null};var Q=r(23183),ee=r(48036),et=r(90492),er=r(16296),en=r(23200),ei=r(52249),eo=r(22505);let el=k.A.Panel;var es=new WeakMap,ea=new WeakMap;class ec{on(e,t){(0,x._)(this,ea).on(e,t)}off(e,t){(0,x._)(this,ea).off(e,t)}addDefaultToolbarItems(){this.toolbarItems.push({key:"settings-menu",component:X,sort:0})}async load(){if(this.antdComponentsLoaded)return void console.log("FlowSettings: Antd components already loaded, skipping...");try{let{ArrayBase:e,ArrayCards:t,ArrayCollapse:n,ArrayItems:i,ArrayTable:o,ArrayTabs:l,Cascader:s,Checkbox:a,DatePicker:c,Editable:u,Form:d,FormDialog:h,FormDrawer:p,FormButtonGroup:f,FormCollapse:m,FormGrid:g,FormItem:y,FormLayout:v,FormStep:w,FormTab:b,Input:x,NumberPicker:S,Password:A,PreviewText:M,Radio:_,Reset:k,Select:P,SelectTable:C,Space:j,Submit:R,Switch:E,TimePicker:F,Transfer:T,TreeSelect:O,Upload:I}=await r.e("1331").then(r.bind(r,54766)),{Button:$,Alert:D}=await Promise.resolve().then(r.bind(r,37015));this.components.Form=d,this.components.FormDialog=h,this.components.FormDrawer=p,this.components.FormItem=y,this.components.FormLayout=v,this.components.FormGrid=g,this.components.FormStep=w,this.components.FormTab=b,this.components.FormCollapse=m,this.components.FormButtonGroup=f,this.components.Input=x,this.components.NumberPicker=S,this.components.Password=A,this.components.Select=P,this.components.SelectTable=C,this.components.Cascader=s,this.components.TreeSelect=O,this.components.Transfer=T,this.components.DatePicker=c,this.components.TimePicker=F,this.components.Checkbox=a,this.components.Radio=_,this.components.Switch=E,this.components.ArrayBase=e,this.components.ArrayCards=t,this.components.ArrayCollapse=n,this.components.ArrayItems=i,this.components.ArrayTable=o,this.components.ArrayTabs=l,this.components.Upload=I,this.components.Space=j,this.components.Editable=u,this.components.PreviewText=M,this.components.Alert=D,this.components.Button=$,this.components.Submit=R,this.components.Reset=k,this.antdComponentsLoaded=!0,console.log("FlowSettings: Antd components loaded successfully")}catch(e){throw console.error("FlowSettings: Failed to load Antd components:",e),e}}registerComponents(e){Object.keys(e).forEach(t=>{this.components[t]&&console.warn(`FlowSettings: Component with name '${t}' is already registered and will be overwritten.`),this.components[t]=e[t]})}registerComponentLoaders(e){Object.entries(e).forEach(e=>{let[t,r]=e;this.components[t]&&console.warn(`FlowSettings: Component with name '${t}' is already registered and will be overwritten.`),this.components[t]=(0,eo.R)(async()=>{let e=await r();if("function"==typeof e)return{default:e};if((null==e?void 0:e.default)&&"function"==typeof e.default)return{default:e.default};let n=null==e?void 0:e[t];if("function"==typeof n)return{default:n};throw Error(`FlowSettings: component loader for '${t}' must resolve to a React component or a module exporting it.`)})})}registerScopes(e){Object.keys(e).forEach(t=>{this.scopes[t]&&console.warn(`FlowSettings: Scope with name '${t}' is already registered and will be overwritten.`),this.scopes[t]=e[t]})}async enable(){await this.engine.preloadModelLoaders(),this.enabled=!0}async forceEnable(){await this.engine.preloadModelLoaders(),(0,A._)(this,es,!0),this.enabled=!0}async disable(){(0,x._)(this,es)||(this.enabled=!1)}async forceDisable(){(0,A._)(this,es,!1),this.enabled=!1}addToolbarItem(e){let t=this.toolbarItems.findIndex(t=>t.key===e.key);-1!==t?(console.warn(`FlowSettings: Toolbar item with key '${e.key}' already exists and will be replaced.`),this.toolbarItems[t]=e):this.toolbarItems.push(e),this.toolbarItems.sort((e,t)=>(t.sort||0)-(e.sort||0))}addToolbarItems(e){e.forEach(e=>this.addToolbarItem(e))}removeToolbarItem(e){let t=this.toolbarItems.findIndex(t=>t.key===e);-1!==t&&this.toolbarItems.splice(t,1)}getToolbarItems(){return[...this.toolbarItems]}clearToolbarItems(){this.toolbarItems=[]}async openStepSettingsDialog(e){return await (0,Q.openStepSettingsDialog)(e)}renderStepForm(e){var t,r;let{uiSchema:n,initialValues:i,flowEngine:o,form:l,onFormValuesChange:s,key:a}=e,c={useFlowSettingsContext:er.s,...(null==o||null==(t=o.flowSettings)?void 0:t.scopes)||{}},u={type:"object",properties:{layout:{type:"void","x-component":"FormLayout","x-component-props":{layout:"vertical"},properties:n}}},d=(0,g.ln)(c,u),h=(0,_.createSchemaField)();return R.createElement(eu,{form:l,initialValues:i,onFormValuesChange:s,key:a},R.createElement(h,{schema:d,components:(null==o||null==(r=o.flowSettings)?void 0:r.components)||{},scope:c}))}async open(e){var t,r,n,i,o,s,c;(0,x._)(this,ea).emit("beforeOpen",e);let{model:u,flowKey:d,flowKeys:h,stepKey:p,uiMode:f="dialog",preset:v,onCancel:w,onSaved:b}=e;if(!u)throw Error("FlowSettings.open: model is required");let S=(0,g.lW)(u),A=null==(t=u.context)?void 0:t.message,_=u.getFlows(),E=d?[d]:Array.isArray(h)&&h.length?h:Array.from(_.keys()),F=[];for(let e of(await this.load(),E)){let t=u.getFlow(e);if(!t){console.warn(`FlowSettings.open: Flow with key '${e}' not found`);continue}for(let r of Object.keys(t.steps||{})){if(p&&r!==p)continue;let n=t.steps[r];if(!v&&(!n||await (0,g._3)(u,t,n))||v&&!n.preset)continue;let i=await (0,g.o7)(u,t,n),l=n.title,s=n.beforeParamsSave,a=n.afterParamsSave,c={},d=n.uiMode;if(n.use){let e=null==(o=u.getAction)?void 0:o.call(u,n.use);e&&(c=e.defaultParams||{},l=l||e.title,s=s||e.beforeParamsSave,a=a||e.afterParamsSave,d=e.uiMode)}let h=new m.W5(u,e,"settings");(0,g.wx)(h,t.steps,u,e),h.defineProperty("currentStep",{value:n}),h.defineMethod("getStepFormValues",(e,t)=>{var r;return null==(r=q.get(U({flowKey:e,stepKey:t})))?void 0:r.values});let f=u.getStepParams(e,r)||{},y=await (0,g.gG)(n.defaultParams,h),w={...await (0,g.gG)(c,h)||{},...y||{},...f};(i&&0!==Object.keys(i).length||["select","switch"].includes((null==d?void 0:d.type)||d))&&F.push({flowKey:e,flowTitle:S(t.title)||e,stepKey:r,stepTitle:S(l)||r,initialValues:w,previousParams:{...f||{}},mergedUiSchema:i,beforeParamsSave:s,afterParamsSave:a,ctx:h,uiMode:n.uiMode||d})}}if(0===F.length)return v||null==A||null==(s=A.info)||s.call(A,S("This model has no configurable flow settings")),!1;let T=u.context.viewer,O=1===F.length?await (0,g.ME)(F[0].uiMode||f,F[0].ctx):f,I="string"==typeof O?O:O.type||"dialog";if(["select","switch"].includes(I))return;let $=T[I||"dialog"].bind(T),D=u.flowEngine,N={useFlowSettingsContext:er.s,...(null==D||null==(r=D.flowSettings)?void 0:r.scopes)||{}},B="object"==typeof O&&O&&O.props||{};if("embed"===I){let e=document.querySelector(`#${ei.mW}`),t=B.onOpen,r=B.onClose;B={target:e,styles:{body:{padding:null==(c=D.context.themeToken)?void 0:c.padding}},...B,onOpen(){e&&(e.style.width=B.width||"33.3%",e.style.maxWidth=B.maxWidth||"800px",e.style.minWidth=B.minWidth||"0px"),null==t||t()},onClose(){e&&"1"!==e.dataset[ei.xB]&&(e.style.width="auto",e.style.maxWidth="none",e.style.minWidth="auto"),null==r||r()}}}let L={};F.forEach(e=>{L[e.flowKey]||(L[e.flowKey]={title:e.flowTitle,steps:[]}),L[e.flowKey].steps.push(e)});let q=new Map,U=e=>`${e.flowKey}::${e.stepKey}`;F.forEach(e=>{let t=(0,M.createForm)({initialValues:(0,g.ln)(N,e.initialValues)});q.set(U(e),t)});let z=Object.keys(L),V=z.length>1,W=()=>d&&p&&1===F.length||!V&&F.length>0?F[0].stepTitle:"",H={value:()=>{}},K=(e,t)=>{H.value=(0,l.reaction)(()=>(0,g.ME)(e.uiMode||f,e.ctx),e=>{e.then(e=>{a().isPlainObject(null==e?void 0:e.props)&&t.update(e.props)}).catch(e=>{console.warn("Error resolving uiMode:",e)})})},J=(null==(n=u.context.view)?void 0:n.inputArgs)||{},Y=null==(i=u.context.view)?void 0:i.navigation,G={...J,...Y?{navigation:Y}:{},...(null==B?void 0:B.inputArgs)||{}};return $({title:B.title||W(),width:B.width??600,destroyOnClose:!0,onClose:()=>H.value(),zIndex:5e3,...B,inputArgs:G,content:(e,t)=>{let r;null==t||t.defineMethod("getStepFormValues",(e,t)=>{var r;return null==(r=q.get(U({flowKey:e,stepKey:t})))?void 0:r.values});let n=t=>{let r=q.get(U(t));return r?(t.ctx.view=e,R.createElement(er.u,{value:t.ctx},R.createElement(en.k.Provider,{value:{params:(0,et.untracked)(()=>({...t.initialValues,...r.values})),path:`${u.uid}_${t.flowKey}_${t.stepKey}`}},this.renderStepForm({uiSchema:t.mergedUiSchema,initialValues:t.initialValues,flowEngine:D,form:r})))):null},i=e=>e.map(e=>R.createElement(el,{header:e.stepTitle,key:U(e)},n(e))),o=e=>{let t=L[e];return{key:e,label:S(t.title)||e,children:t.steps.length>1?R.createElement(k.A,{defaultActiveKey:t.steps.map(e=>U(e))},...i(t.steps)):n(t.steps[0])}},l=()=>{if(d&&p&&1===F.length){let t=F[0];return K(t,e),n(t)}if(!V)return K(F[0],e),n(F[0]);let t=z.map(e=>o(e)),r=d&&L[d]?d:z[0];return R.createElement(P.A,{items:t,defaultActiveKey:r})},s=async()=>{var t,r;try{for(let e of F){let t=q.get(U(e));if(!t)continue;await t.submit();let r=t.values;u.setStepParams(e.flowKey,e.stepKey,r),"function"==typeof e.beforeParamsSave&&await e.beforeParamsSave(e.ctx,r,e.previousParams)}for(let e of(await u.saveStepParams(),null==A||null==(t=A.success)||t.call(A,S("Configuration saved")),F)){let t=q.get(U(e));if(!t)continue;let r=t.values;"function"==typeof e.afterParamsSave&&await e.afterParamsSave(e.ctx,r,e.previousParams)}e.close(),u.invalidateFlowCache("beforeRender",!0),await u.rerender();try{await (null==b?void 0:b())}catch(e){console.error("FlowSettings.open: onSaved callback error",e)}}catch(t){if(t instanceof g.VD)return;if(t instanceof g.sy||t instanceof y.zz)return void e.close();console.error("FlowSettings.open: save error",t),null==A||null==(r=A.error)||r.call(A,S("Error saving configuration, please check console"))}};e.submit=s;let c=l(),h=t=>R.createElement(C.Ay,{onClick:async()=>{e.close();try{await (null==w?void 0:w())}catch(e){console.error("FlowSettings.open: onCancel callback error",e)}}},t.title||S("Cancel")),f=e=>R.createElement(C.Ay,{type:"primary",onClick:s},e.title||S("Save")),m=R.createElement(j.A,{align:"end"},R.createElement(h),R.createElement(f));return B.footer&&(m=a().isFunction(B.footer)?B.footer(m,{OkBtn:f,CancelBtn:h}):B.footer),null===B.footer&&(m=null),e.Footer&&(r=R.createElement(e.Footer,null,m)),R.createElement(R.Fragment,null,c,r)}}),!0}constructor(e){(0,o._)(this,"components",{}),(0,o._)(this,"scopes",{}),(0,o._)(this,"antdComponentsLoaded",!1),(0,o._)(this,"enabled",void 0),(0,o._)(this,"engine",void 0),(0,S._)(this,es,{writable:!0,value:!1}),(0,o._)(this,"toolbarItems",[]),(0,S._)(this,ea,{writable:!0,value:new ee.v}),this.engine=e,this.enabled=!1,e.context.defineProperty("flowSettingsEnabled",{get:()=>this.enabled,cache:!1}),this.addDefaultToolbarItems(),(0,l.define)(this,{enabled:l.observable})}}function eu(e){let{children:t,form:r,initialValues:n,onFormValuesChange:i}=e,o=R.useRef(r);return o.current||(o.current=(0,M.createForm)({initialValues:n,effects(){(0,M.onFormValuesChange)(i)}})),R.createElement(_.FormProvider,{form:o.current},t)}var ed=r(4888),eh=r(5338);function ep(e){let{config:t,engine:r,children:n}=e;return(0,E.jsx)(z.I6,{engine:r,children:(0,E.jsx)(ed.Ay,{...t,children:(0,E.jsx)($.A,{children:n})})})}class ef{createRoot(e){let t,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=(0,eh.createRoot)(e,r),i=()=>{n.render((0,E.jsx)(ep,{engine:this.flowEngine,config:this.flowEngine.context.antdConfig,children:t}))};return{render:e=>{t=e,this.refreshCallback=i,i()},unmount:()=>{this.refreshCallback=null,t=null,n.unmount()}}}refresh(){this.refreshCallback&&this.refreshCallback()}render(e){let t,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=document.createElement("span"),{onRendered:i}=r,o=t=>{let r="function"==typeof e?e(t):e;return(0,E.jsx)(ep,{engine:this.flowEngine,config:this.flowEngine.context.antdConfig,children:r})};return i?i(()=>{(t=(0,eh.createRoot)(n)).render(o(t))}):(t=(0,eh.createRoot)(n)).render(o(t)),n._reactRoot=t,n}onRefReady(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1e4,n=Date.now();function i(){if(e.current)return t(e.current);Date.now()-n>r||setTimeout(i,30)}i()}constructor(e){(0,o._)(this,"flowEngine",void 0),(0,o._)(this,"refreshCallback",void 0),this.flowEngine=e,this.refreshCallback=null}}var em=r(99784),eg=r(38950);class ey{schedule(e,t,r,n){let i="string"==typeof e?e:null==e?void 0:e.uid;if(!i)throw Error("scheduleModelOperation: invalid from model or uid");if(!t||"string"!=typeof t)throw Error("scheduleModelOperation: invalid target uid");let o={id:(0,eg.L)(),fromUid:i,toUid:t,fn:r,options:{when:(null==n?void 0:n.when)??"created"}},l=this.itemsByTargetUid.get(t);l||(l=new Map,this.itemsByTargetUid.set(t,l)),l.set(o.id,o);let s=this.itemIdsByFromUid.get(i);s||(s=new Set,this.itemIdsByFromUid.set(i,s)),s.add(o.id),this.itemsById.set(o.id,o),this.ensureEventSubscriptionIfNeeded(o.options.when);let a=this.engine.getModel(t);return a&&"created"===o.options.when&&this.tryExecuteOnce(o.id,{type:"created",uid:t,model:a}),()=>this.internalCancel(o.id)}cancel(e){let{fromUid:t,toUid:r}=e||{};if(r&&this.itemsByTargetUid.has(r)){let e=this.itemsByTargetUid.get(r);if(e)for(let r of e.values())t&&r.fromUid!==t||this.internalCancel(r.id);return}if(t&&this.itemIdsByFromUid.has(t)){let e=this.itemIdsByFromUid.get(t);if(e)for(let t of Array.from(e)){let e=this.itemsById.get(t);e&&(r&&e.toUid!==r||this.internalCancel(t))}}}dispose(){try{for(let e of this.unbindHandlers)try{e()}catch(e){}}finally{this.unbindHandlers=[]}for(let e of this.itemsByTargetUid.values())for(let t of e.values())this.internalCancel(t.id);this.itemsByTargetUid.clear(),this.itemIdsByFromUid.clear()}bindEngineLifecycle(){let e=this.engine.emitter;if(!e||"function"!=typeof e.on)return;let t=async e=>{await this.processLifecycleEvent(e.uid,{...e,type:"created"})};e.on("model:created",t),this.unbindHandlers.push(()=>e.off("model:created",t));let r=async e=>{await this.processLifecycleEvent(e.uid,{...e,type:"mounted"})};e.on("model:mounted",r),this.unbindHandlers.push(()=>e.off("model:mounted",r));let n=async e=>{await this.processLifecycleEvent(e.uid,{...e,type:"event:beforeRender:start"})};e.on("model:event:beforeRender:start",n),this.unbindHandlers.push(()=>e.off("model:event:beforeRender:start",n));let i=async e=>{await this.processLifecycleEvent(e.uid,{...e,type:"event:beforeRender:end"})};e.on("model:event:beforeRender:end",i),this.unbindHandlers.push(()=>e.off("model:event:beforeRender:end",i));let o=async e=>{await this.processLifecycleEvent(e.uid,{...e,type:"unmounted"})};e.on("model:unmounted",o),this.unbindHandlers.push(()=>e.off("model:unmounted",o));let l=async e=>{let t=this.itemsByTargetUid.get(e.uid),r={...e,type:"destroyed"};if(t&&t.size)for(let e of Array.from(t.keys())){let t=this.itemsById.get(e);t&&(this.shouldTrigger(t.options.when,r)?await this.tryExecuteOnce(e,r):this.internalCancel(e))}};e.on("model:destroyed",l),this.unbindHandlers.push(()=>e.off("model:destroyed",l))}ensureEventSubscriptionIfNeeded(e){let t="string"==typeof e?e:"function"==typeof e?e.__eventType:void 0;if(!t)return;let r=this.parseEventWhen(t);if(!r)return;let{name:n}=r;if(this.subscribedEventNames.has(n))return;this.subscribedEventNames.add(n);let i=this.engine.emitter,o=async e=>{await this.processLifecycleEvent(e.uid,{...e,type:`event:${n}:start`})},l=async e=>{await this.processLifecycleEvent(e.uid,{...e,type:`event:${n}:end`})},s=async e=>{await this.processLifecycleEvent(e.uid,{...e,type:`event:${n}:error`})};i.on(`model:event:${n}:start`,o),i.on(`model:event:${n}:end`,l),i.on(`model:event:${n}:error`,s),this.unbindHandlers.push(()=>i.off(`model:event:${n}:start`,o)),this.unbindHandlers.push(()=>i.off(`model:event:${n}:end`,l)),this.unbindHandlers.push(()=>i.off(`model:event:${n}:error`,s))}parseEventWhen(e){if(!e||"string"!=typeof e)return null;let t=/^event:(.+):(start|end|error)$/.exec(e);return t?{name:t[1],phase:t[2]}:null}async processLifecycleEvent(e,t){let r=this.itemsByTargetUid.get(e);if(r&&0!==r.size)for(let e of Array.from(r.keys())){let r=this.itemsById.get(e);r&&this.shouldTrigger(r.options.when,t)&&await this.tryExecuteOnce(e,t)}}shouldTrigger(e,t){return!!e&&("function"==typeof e?!!e(t):e===t.type)}async tryExecuteOnce(e,t){let r=this.takeItem(e);if(r)try{let e=t.model||this.engine.getModel(r.toUid);if(!e)return;await Promise.resolve(r.fn(e))}catch(t){var n,i;if(t instanceof y.zz)throw t;null==(i=this.engine.logger)||null==(n=i.error)||n.call(i,{err:t,id:e,fromUid:r.fromUid,toUid:r.toUid,when:r.options.when},"ModelOperationScheduler: operation execution failed")}}internalCancel(e){return!!this.takeItem(e)}takeItem(e){let t=this.itemsById.get(e);if(!t)return;let{toUid:r,fromUid:n}=t,i=this.itemsByTargetUid.get(r);i&&(i.delete(e),0===i.size&&this.itemsByTargetUid.delete(r));let o=this.itemIdsByFromUid.get(n);return o&&(o.delete(e),0===o.size&&this.itemIdsByFromUid.delete(n)),this.itemsById.delete(e),t}constructor(e){(0,o._)(this,"engine",void 0),(0,o._)(this,"itemsByTargetUid",void 0),(0,o._)(this,"itemIdsByFromUid",void 0),(0,o._)(this,"itemsById",void 0),(0,o._)(this,"unbindHandlers",void 0),(0,o._)(this,"subscribedEventNames",void 0),this.engine=e,this.itemsByTargetUid=new Map,this.itemIdsByFromUid=new Map,this.itemsById=new Map,this.unbindHandlers=[],this.subscribedEventNames=new Set,this.bindEngineLifecycle()}}let ev=ey;var ew=new WeakSet;class eb{getScheduler(){return this._modelOperationScheduler||(this._modelOperationScheduler=new ev(this)),this._modelOperationScheduler}disposeScheduler(){if(this._modelOperationScheduler)try{this._modelOperationScheduler.dispose()}finally{this._modelOperationScheduler=void 0}}markDataSourceDirty(e,t){let r=String(e||"main"),n=String(t||"");if(!n)return this.getDataSourceDirtyVersion(r,n);let i=this._dataSourceDirtyVersions.get(r)||new Map;this._dataSourceDirtyVersions.has(r)||this._dataSourceDirtyVersions.set(r,i);let o=(i.get(n)||0)+1;return i.set(n,o),o}getDataSourceDirtyVersion(e,t){var r;let n=String(e||"main"),i=String(t||"");return i&&(null==(r=this._dataSourceDirtyVersions.get(n))?void 0:r.get(i))||0}scheduleModelOperation(e,t,r,n){return this.getScheduler().schedule(e,t,r,n)}get previousEngine(){return this._previousEngine}get nextEngine(){return this._nextEngine}linkAfter(e){let t=e;for(;t._nextEngine;)t=t._nextEngine;this._previousEngine=t,t&&(t._nextEngine=this)}unlinkFromStack(){let e=this._previousEngine;this._nextEngine,e&&(e._nextEngine=void 0)}setDestroyView(e){this._destroyView=e}destroyView(){return!!this._destroyView&&(this._destroyView(),!0)}get context(){return this._flowContext||(this._flowContext=new m.o0(this)),this._flowContext}get dataSourceManager(){return this.context.dataSourceManager}get applyFlowCache(){return this._applyFlowCache}setModelRepository(e){this._modelRepository&&console.warn("FlowEngine: Model repository is already set and will be overwritten."),this._modelRepository=e}get modelRepository(){return this._modelRepository}translate(e,t){return this.context.t(e,t)}registerActions(e){this._actionRegistry.registerActions(e)}getAction(e){return this._actionRegistry.getAction(e)}getActions(){return this._actionRegistry.getActions()}registerEvents(e){this._eventRegistry.registerEvents(e)}getEvent(e){return this._eventRegistry.getEvent(e)}getEvents(){return this._eventRegistry.getEvents()}_registerModel(e,t){this._modelClasses.has(e)&&console.warn(`FlowEngine: Model class with name '${e}' is already registered and will be overwritten.`),Object.defineProperty(t,"name",{value:e}),this._modelClasses.set(e,t)}registerModels(e){for(let[t,r]of Object.entries(e))(0,n._)(this,ew,ex).call(this,t,r)}registerModelLoaders(e){let t=!1;for(let[r,n]of Object.entries(e))this._modelLoaders.has(r)&&console.warn(`FlowEngine: Model loader with name '${r}' is already registered and will be overwritten.`),this._modelLoaders.set(r,n),t=!0;t&&(this._modelLoadersPreloaded=!1,this._modelLoadersPreloadPromise=void 0)}async getModelClassAsync(e){return await this.ensureModel(e),this.getModelClass(e)}async getModelClassesAsync(){return await this.ensureModels(Array.from(this._modelLoaders.keys())),this.getModelClasses()}async createModelAsync(e,t){return await this.resolveModelTree(e),this.createModel(e,t)}normalizeModelLoaderResult(e,t){if("function"==typeof t)return t;if(t&&"object"==typeof t){let r=t.default;if("function"==typeof r)return r;let n=t[e];if("function"==typeof n)return n}return console.warn(`FlowEngine: model loader for '${e}' did not resolve to a valid model constructor.`),null}collectModelNamesFromTree(e,t){if(!e||"object"!=typeof e)return;if(Array.isArray(e))return void e.forEach(e=>this.collectModelNamesFromTree(e,t));let r=e;"string"==typeof r.use&&t.add(r.use);let n=r.subModels;n&&"object"==typeof n&&Object.values(n).forEach(e=>{this.collectModelNamesFromTree(e,t)})}collectModelNamesFromMetaDefaults(e,t){var r;let n=null==(r=e.meta)?void 0:r.createModelOptions;n&&"object"==typeof n&&this.collectModelNamesFromTree(n,t)}async ensureModel(e){let t=this._modelClasses.get(e);if(t)return t;let r=this._loadingModelPromises.get(e);if(r)return r;let n=this._modelLoaders.get(e);if(!n)return console.warn(`FlowEngine: Model entry '${e}' not found. Falling back to ErrorFlowModel when needed.`),null;let i=(async()=>{try{let t=await n.loader(),r=this.normalizeModelLoaderResult(e,t);if(!r)return null;return this._registerModel(e,r),r}catch(t){return console.warn(`FlowEngine: Failed to load model '${e}'. Falling back to ErrorFlowModel when needed.`,t),null}finally{this._loadingModelPromises.delete(e)}})();return this._loadingModelPromises.set(e,i),i}async ensureModels(e){let t=Array.from(new Set(e.filter(e=>!!e))),r=[],n=[];return(await Promise.all(t.map(async e=>{let t=await this.ensureModel(e);return{name:e,modelClass:t}}))).forEach(e=>{let{name:t,modelClass:i}=e;i?r.push(t):n.push({name:t})}),{requested:t,loaded:r,failed:n}}async resolveModelTree(e){let t=new Set,r=new Set,n=new Map,i=new Set,o=new Set;for(this.collectModelNamesFromTree(e,o);o.size>0;){let e=Array.from(o).filter(e=>!i.has(e));if(o.clear(),0===e.length)break;e.forEach(e=>t.add(e));let l=await this.ensureModels(e);l.loaded.forEach(e=>{i.add(e),r.add(e);let t=this.getModelClass(e);if(t){let e=new Set;this.collectModelNamesFromMetaDefaults(t,e),e.forEach(e=>{i.has(e)||o.add(e)})}}),l.failed.forEach(e=>{i.add(e.name),n.set(e.name,e)})}return{requested:Array.from(t),loaded:Array.from(r),failed:Array.from(n.values())}}async preloadModelLoaders(){let e=Array.from(this._modelLoaders.keys()).filter(e=>!this._modelClasses.has(e));return 0===e.length?(this._modelLoadersPreloaded=!0,{requested:[],loaded:[],failed:[]}):(this._modelLoadersPreloadPromise||(this._modelLoadersPreloadPromise=(async()=>{let t=await this.ensureModels(e);return this._modelLoadersPreloaded=0===t.failed.length,this._modelLoadersPreloadPromise=void 0,t})()),this._modelLoadersPreloadPromise)}registerResources(e){for(let[t,r]of Object.entries(e))this._resources.set(t,r)}createResource(e,t){if("string"==typeof e){let r=this._resources.get(e);if(!r)throw Error(`Resource class '${e}' not found. Please register it first.`);return new r((null==t?void 0:t.context)||this.context)}return new e((null==t?void 0:t.context)||this.context)}getModelClasses(){return this._modelClasses}getModelClass(e){return this._modelClasses.get(e)}findModelClass(e){for(let[t,r]of this._modelClasses)if(e(t,r))return[t,r]}getSubclassesOf(e,t){let r="string"==typeof e?this.getModelClass(e):e,n=new Map;if(!r)return n;for(let[e,i]of this._modelClasses)(0,g.FA)(i,r)&&(!t||t(i,e))&&n.set(e,i);return n}createModel(e,t){var r;let n,{parentId:i,uid:o,use:l,subModels:s}=e,a=i?this.getModel(i)||(null==(r=this.previousEngine)?void 0:r.getModel(i)):void 0,c=this._resolveModelClass("string"==typeof l?this.getModelClass(l):l,e,a);return o&&this._modelInstances.has(o)?this._modelInstances.get(o):(c?n=new c({...e,flowEngine:this}):(n=new L._f({...e,flowEngine:this})).setErrorMessage(`Model class '${l}' not found. Please register it first.`),(null==t?void 0:t.delegate)&&n.context.addDelegate(t.delegate),a&&(n.setParent(a),(null==t?void 0:t.delegateToParent)===!1&&n.removeParentDelegate()),this._modelInstances.set(n.uid,n),n.onInit(e),this.emitter.emitAsync("model:created",{uid:n.uid,model:n}),this._applyFlowDefinitionDefaultParams(n).catch(e=>{console.warn("FlowEngine: apply flow defaultParams failed:",e)}),n._createSubModels(e.subModels),n)}_resolveModelClass(e,t,r){let n=e=>e?"object"==typeof e&&"use"in e?{target:e.use,stop:!!e.stop}:{target:e,stop:!1}:{},i=e,o=new Set;for(;i;){let e;if(o.has(i)){console.warn(`FlowEngine: resolveUse circular reference detected on '${i.name}'.`);break}o.add(i);let l=null==i?void 0:i.resolveUse;if("function"!=typeof l)break;let{target:s,stop:a}=n(l(t,this,r));if(!s||s===i)break;if("string"==typeof s){if(!(e=this.getModelClass(s)))return void console.warn(`FlowEngine: resolveUse returned '${s}' but no model is registered under that name.`)}else e=s;if(i=e,a)break}return i}async _applyFlowDefinitionDefaultParams(e){try{let r=e.getFlows();if(!r||0===r.size)return;let n=e.context;for(let[i,o]of r.entries()){var t;let r,l=o.defaultParams;if(!l)continue;try{r="function"==typeof l?await l(n):l}catch(e){console.warn(`FlowEngine: resolve defaultParams of flow '${i}' failed:`,e);continue}if(!r||"object"!=typeof r)continue;let s=null==(t=o.getSteps)?void 0:t.call(o),a=s?Array.from(s.keys()):Object.keys(o.steps||{}),c=Object.entries(r).filter(e=>{let[t]=e;return a.includes(t)});if(0!==c.length)for(let[t,r]of c){let n=e.getStepParams(i,t);void 0===n&&r&&"object"==typeof r&&e.setStepParams(i,t,r)}}}catch(e){console.warn("FlowEngine: apply flow defaultParams error:",e)}}getModel(e,t){if(!t)return this._modelInstances.get(e);let r=this;for(;r.nextEngine;)r=r.nextEngine;let n=r;for(;n;){let t=n._modelInstances.get(e);if(t)return t;n=n.previousEngine}}forEachModel(e){this._modelInstances.forEach(e)}removeModel(e){var t,r,n;if(!this._modelInstances.has(e))return console.warn(`FlowEngine: Model with UID '${e}' does not exist.`),!1;let i=this._modelInstances.get(e);if(i.invalidateFlowCache(void 0,!0),i.clearForks(),null==(t=i.parent)?void 0:t.subModels)for(let e in i.parent.subModels){let t=i.parent.subModels[e];if(Array.isArray(t)){let e=t.findIndex(e=>e==i);if(-1!==e){t.splice(e,1),i.parent.emitter.emit("onSubModelRemoved",i),null==(r=this.emitter)||r.emit("model:subModel:removed",{parentUid:i.parent.uid,parent:i.parent,model:i});break}}else if(t&&t===i){delete i.parent.subModels[e],i.parent.emitter.emit("onSubModelRemoved",i),null==(n=this.emitter)||n.emit("model:subModel:removed",{parentUid:i.parent.uid,parent:i.parent,model:i});break}}return this._modelInstances.delete(e),this.emitter.emitAsync("model:destroyed",{uid:e,model:i}),!0}removeModelWithSubModels(e){let t=this.getModel(e);if(!t)return!1;let r=(e,t)=>{if(e.subModels)for(let n in e.subModels){let i=e.subModels[n];Array.isArray(i)?[...i].forEach(e=>r(e,t)):i&&r(i,t)}t.push(e)},n=[];r(t,n);let i=!0;for(let e of n)this.removeModel(e.uid)||(i=!1);return i}ensureModelRepository(){return!!this._modelRepository}findModelInPreviousEngines(e){let t=this.previousEngine;for(;t;){let r=t.getModel(e);if(r)return r;t=t.previousEngine}}findSubModelInPreviousEngines(e,t){let r=this.previousEngine;for(;r;){let i=r.getModel(e);if(i){var n;let e=null==(n=i.subModels)?void 0:n[t];if(e){let t=Array.isArray(e)?e[0]:e;if(t)return{parent:i,model:t}}}r=r.previousEngine}}async hydrateModelFromPreviousEngines(e,t){let r=null==e?void 0:e.uid,n=null==e?void 0:e.parentId,i=null==e?void 0:e.subKey;if(r&&!this._modelInstances.has(r)){let e=this.findModelInPreviousEngines(r);if(null==e?void 0:e.context.flowSettingsEnabled)return null;if(e){let r=e.serialize();return this.createModelAsync(r,t)}}if(n&&i){var o;let e=this.findSubModelInPreviousEngines(n,i);if(!e||e.parent.context.flowSettingsEnabled)return null;let{parent:r,model:l}=e,s=this.getModel(n);if(!s){let e=r.serialize();delete e.subModels,s=await this.createModelAsync(e,t)}let a=l.serialize(),c=await this.createModelAsync(a,t),u=null==(o=s.subModels)?void 0:o[i];return Array.isArray(u)?u.some(e=>(null==e?void 0:e.uid)===(null==c?void 0:c.uid))||s.addSubModel(i,c):u instanceof L.WD?u.uid!==(null==c?void 0:c.uid)&&s.setSubModel(i,c):(null==c?void 0:c.subType)==="array"?s.addSubModel(i,c):s.setSubModel(i,c),c}return null}async loadModel(e){if(!this.ensureModelRepository())return;let t=!!(null==e?void 0:e.refresh);if(!t){let t=this.findModelByParentId(e.parentId,e.subKey);if(t)return t;let r=await this.hydrateModelFromPreviousEngines(e);if(r)return r}let r=await this._modelRepository.findOne(e);if(!(null==r?void 0:r.uid))return null;if(await this.resolveModelTree(r),t){let e=this.getModel(r.uid);e&&this.removeModelWithSubModels(e.uid)}return this.createModelAsync(r)}findModelByParentId(e,t){if(e&&this._modelInstances.has(e)){let r=this._modelInstances.get(e);if(r&&r.subModels[t]){let e=r.subModels[t];return Array.isArray(e)?e[0]:e}}}async loadOrCreateModel(e,t){if(!this.ensureModelRepository())return;let{uid:r,parentId:n,subKey:i}=e;if(r&&this._modelInstances.has(r))return this._modelInstances.get(r);let o=this.findModelByParentId(n,i);if(o)return o;let l=await this.hydrateModelFromPreviousEngines(e,t);if(l)return l;let s=(null==t?void 0:t.skipSave)||r||!n||!i||(null==e?void 0:e.subType)!=="object"?await this._modelRepository.findOne(e):await this._modelRepository.ensure(e,{includeAsyncNode:!!((null==e?void 0:e.includeAsyncNode)||(null==e?void 0:e.async))})??await this._modelRepository.findOne(e),a=null;if((null==s?void 0:s.uid)?a=await this.createModelAsync(s,t):(a=await this.createModelAsync(e,t),(null==t?void 0:t.skipSave)||await a.save()),a.parent){if(a.parent.findSubModel(a.subKey,e=>e.uid===a.uid))return a;"array"===a.subType?a.parent.addSubModel(a.subKey,a):a.parent.setSubModel(a.subKey,a)}return a}async saveModel(e,t){if(!this.ensureModelRepository())return;let r=e.uid;if(this._savingModels.has(r))return this.logger.debug(`Model ${r} is already being saved, waiting for existing save operation`),await this._savingModels.get(r);let n=this._performModelSave(e,t);this._savingModels.set(r,n);try{return await n}finally{this._savingModels.delete(r)}}async _performModelSave(e,t){this.logger.debug(`Starting save operation for model ${e.uid}`);try{let r=await this._modelRepository.save(e,t);return this.logger.debug(`Successfully saved model ${e.uid}`),r}catch(t){throw this.logger.error(`Failed to save model ${e.uid}:`,t),t}}async destroyModel(e){this.ensureModelRepository()&&await this._modelRepository.destroy(e);let t=this._modelInstances.get(e),r=null==t?void 0:t.parent,n=this.removeModel(e);return r&&r.emitter.emit("onSubModelDestroyed",t),n}async duplicateModel(e){return this.ensureModelRepository()?this._modelRepository.duplicate(e):null}async replaceModel(e,t){let r,n=this.getModel(e);if(!n)return console.warn(`FlowEngine: Cannot replace model. Model with UID '${e}' not found.`),null;let i=n.parent,o=n.subKey,l=n.subType,s=n.serialize();r="function"==typeof t?t(n):t||{};let c={...a().omit(s,["subModels"]),...r};i&&i.emitter.setPaused(!0),await n.destroy();let u=this.createModel(c);if(i&&o&&("array"===l?i.addSubModel(o,u):i.setSubModel(o,u)),i){var d,h;i.emitter.setPaused(!1),i.parent.invalidateFlowCache("beforeRender",!0),null==(d=i.parent)||d.rerender(),i.emitter.emit("onSubModelReplaced",{oldModel:n,newModel:u}),null==(h=this.emitter)||h.emit("model:subModel:replaced",{parentUid:i.uid,parent:i,oldModel:n,newModel:u})}return await u.save(),u}async moveModel(e,t,r){var n,i;let o=this.getModel(e),l=this.getModel(t);if(!o||!l)return void console.warn("FlowEngine: Cannot move model. Source or target model not found.");if(((e,t)=>{if(!e.parent||!t.parent||e.parent!==t.parent)return console.error("FlowModel.moveTo: Both models must have the same parent to perform move operation.");let r=e.parent.subModels[e.subKey];if(!r||!Array.isArray(r))return console.error("FlowModel.moveTo: Parent subModels must be an array to perform move operation.");let n=[...r],i=e=>n.findIndex(t=>t.uid===e.uid),o=i(e),l=i(t);if(-1===o||-1===l)return console.error("FlowModel.moveTo: Current or target model not found in parent subModels.");if(o===l)return console.warn("FlowModel.moveTo: Current model is already at the target position. No action taken.");let[s]=n.splice(o,1);return n.splice(l,0,s),n.forEach((e,t)=>{e.sortIndex=t}),r.splice(0,r.length,...n)})(o,l),(null==r?void 0:r.persist)!==!1&&this.ensureModelRepository()){let r=o.sortIndex-l.sortIndex>0?"after":"before";await this._modelRepository.move(e,t,r)}o.parent.emitter.emit("onSubModelMoved",{source:o,target:l}),null==(i=this.emitter)||i.emit("model:subModel:moved",{parentUid:null==(n=o.parent)?void 0:n.uid,parent:o.parent,source:o,target:l})}filterModelClassByParent(e){let t="string"==typeof e?this.getModelClass(e):e;if(!t)return new Map;let r=new Map;for(let[e,n]of this._modelClasses)(0,g.FA)(n,t)&&r.set(e,n);return r}static generateApplyFlowCacheKey(e,t,r){return`${e}:${t}:${r}`}constructor(){(0,i._)(this,ew),(0,o._)(this,"_actionRegistry",new h),(0,o._)(this,"_eventRegistry",new f),(0,o._)(this,"_modelClasses",l.observable.shallow(new Map)),(0,o._)(this,"_modelLoaders",new Map),(0,o._)(this,"_loadingModelPromises",new Map),(0,o._)(this,"_modelLoadersPreloaded",!1),(0,o._)(this,"_modelLoadersPreloadPromise",void 0),(0,o._)(this,"_modelInstances",new Map),(0,o._)(this,"_modelRepository",null),(0,o._)(this,"_applyFlowCache",new Map),(0,o._)(this,"_savingModels",new Map),(0,o._)(this,"_flowContext",void 0),(0,o._)(this,"_previousEngine",void 0),(0,o._)(this,"_nextEngine",void 0),(0,o._)(this,"_destroyView",void 0),(0,o._)(this,"_resources",new Map),(0,o._)(this,"_dataSourceDirtyVersions",new Map),(0,o._)(this,"emitter",new ee.v),(0,o._)(this,"_modelOperationScheduler",void 0),(0,o._)(this,"logger",void 0),(0,o._)(this,"flowSettings",void 0),(0,o._)(this,"reactView",void 0),(0,o._)(this,"executor",void 0),this.reactView=new ef(this),this.flowSettings=new ec(this),this.flowSettings.registerScopes({t:this.translate.bind(this)}),this.registerModels({FlowModel:L.WD}),this.registerResources({FlowResource:em.l2,SQLResource:em.BH,APIResource:em.hR,SingleRecordResource:em.sB,MultiRecordResource:em.Rn}),this.logger=u()({level:"trace",browser:{write:{fatal:e=>console.trace(e),error:e=>console.error(e),warn:e=>console.warn(e),info:e=>console.info(e),debug:e=>console.debug(e),trace:e=>console.trace(e)}}}),this.executor=new b(this)}}function ex(e,t){return this._registerModel(e,t)}},57084(e,t,r){r.d(t,{Ps:()=>l.Ps,PZ:()=>l.PZ,m2:()=>l.m2,sz:()=>c.s,uF:()=>c.u,ke:()=>d.k,GC:()=>a,fh:()=>o,eP:()=>d.e,t_:()=>u});var n=r(96540),i=r(20616);function o(e,t,r){let o=(0,i.uf)();return(0,n.useMemo)(()=>{let n=o.getModel(e);return!n&&t&&(n=o.createModel({uid:e,use:t,stepParams:r})),n},[o,t,e,r])}var l=r(97019),s=r(7259);function a(e,t,r){let o=(0,i.uf)(),l=(0,n.useMemo)(()=>"string"==typeof e?o.getModel(e):e,[e,o]);null==l||l.useHooksBeforeRender();let{loading:a,error:c}=(0,s.A)(async()=>{l&&await l.dispatchEvent("beforeRender",t,{useCache:null==r?void 0:r.useCache})},{refreshDeps:[l,t,null==r?void 0:r.useCache]});if((null==r?void 0:r.throwOnError)!==!1&&c)throw c;return{loading:a,error:c}}var c=r(16296);let u=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=(0,n.useRef)(0);return(0,n.useEffect)(()=>{let e=e=>{let{clientY:r}=e;t.current=Math.max(r,window.innerHeight-r)};return window.addEventListener("mousemove",e),()=>{window.removeEventListener("mousemove",e)}},[]),(0,n.useMemo)(()=>t.current-40,e)};var d=r(23200)},97019(e,t,r){r.d(t,{PZ:()=>a,Ps:()=>s,m2:()=>c});var n=r(74848),i=r(96540),o=r(52568);let l=(0,i.createContext)(null),s=e=>{let{model:t,children:r}=e;if(!t)throw Error("FlowModelProvider must be supplied with a model.");return(0,n.jsx)(l.Provider,{value:t,children:(0,n.jsx)(o.Dv,{context:t.context,children:r})})};function a(){let e=(0,i.useContext)(l);if(!e)throw Error("useFlowModel must be used within a FlowModelProvider");return e}function c(){return a().context}},16296(e,t,r){r.d(t,{s:()=>a,u:()=>s});var n=r(74848),i=r(96540),o=r(52568);let l=(0,i.createContext)(null),s=e=>{let{value:t,children:r}=e;return(0,n.jsx)(o.Dv,{context:t,children:(0,n.jsx)(l.Provider,{value:t,children:r})})},a=()=>{let e=(0,i.useContext)(l);if(!e)throw Error("useFlowSettingsContext must be used within a FlowSettingsContextProvider");return e}},23200(e,t,r){r.d(t,{e:()=>o,k:()=>i});var n=r(96540);let i=n.createContext({path:"",params:{}}),o=()=>(0,n.useContext)(i)},90492(e,t,r){r.r(t),r.d(t,{action:()=>h.XI,batch:()=>h.vA,loadMetaTreeChildren:()=>ey,FlowSettingsButton:()=>v,FlowRunJSContext:()=>eK.uk,compileUiSchema:()=>i.ln,resolveModuleUrl:()=>i.i,FlowsContextMenu:()=>eG,encodeBase64Url:()=>i.DX,setDataNode:()=>h.Jv,collectContextParamsForTemplate:()=>i.ju,simulateLayoutForSlot:()=>et,CollectionField:()=>rw.JL,isVariableValue:()=>eS,runjsWithSafeGlobals:()=>i._,createRecordMetaFactory:()=>i.pc,FlowRuntimeContext:()=>eK.W5,markRaw:()=>h.IG,useFlowModelById:()=>c.fh,contains:()=>h.gR,FlowViewContextProvider:()=>g.YQ,isCompleteCtxDatePath:()=>i.M5,useDialog:()=>rB.sp,DisplayItemModel:()=>u.jG,createEphemeralContext:()=>i.vq,isSupportObservable:()=>h.Rq,isFieldInterfaceMatch:()=>rw.Xk,FlowEngineGlobalsContextProvider:()=>d.f7,FlowExitException:()=>i.sy,inferRecordRef:()=>i.XU,preprocessRunJsTemplates:()=>i.mH,FlowForkModelContext:()=>eK.Hl,FlowCancelSaveException:()=>i.VD,jioToJoiSchema:()=>rw.Ns,getSlotKey:()=>W,EMPTY_COLUMN_UID:()=>er,markObservable:()=>h.po,FlowStep:()=>rq.z,FlowEngineContext:()=>eK.o0,transformItems:()=>t8,COLUMN_EDGE_MIN_WIDTH:()=>j,openStepSettingsDrawer:()=>tR,observe:()=>h.lB,untracked:()=>h.O8,useFlowEngineContext:()=>d.Db,getPageActive:()=>h.SL,FlowExitAllException:()=>i.zz,createCurrentRecordMetaFactory:()=>i.UX,ModelRenderMode:()=>u.NK,createViewScopedEngine:()=>nu._,SingleRecordResource:()=>s.sB,openStepSettingsDialog:()=>eJ.openStepSettingsDialog,DragHandler:()=>en,useApplyAutoFlows:()=>c.GC,FieldDeletePlaceholder:()=>u.xI,ErrorFlowModel:()=>u._f,Collection:()=>rw.pM,MENU_KEYS:()=>i.Fv,hasCollected:()=>h.KP,createSafeWindow:()=>i.ey,resolveStepUiSchema:()=>i.o7,createSafeDocument:()=>i.Xh,VariableTag:()=>rr,resolveRunJSObjectValues:()=>i.mP,DndProvider:()=>eo,FlowsFloatContextMenu:()=>e8,Tracker:()=>h.JD,FlowContextSelector:()=>eE,observer:()=>h.PA,isObservable:()=>h.AT,FlowStepContext:()=>c.ke,normalizeRunJSValue:()=>i.J3,parseValueToPath:()=>em,getT:()=>i.lW,extractUsedVariablePaths:()=>i.nN,registerRunJSContextContribution:()=>rR.JF,ForkFlowModel:()=>u.yN,BLOCK_GROUP_CONFIGS:()=>i.WJ,BLOCK_TYPES:()=>i.kl,VIEW_ACTIVATED_VERSION:()=>rL.tb,FlowErrorFallbackModal:()=>eB,escapeT:()=>i.MI,prepareRunJsCode:()=>i.ji,useNiceDropdownMaxHeight:()=>c.t_,FlowModelRenderer:()=>tn,extractPropertyPath:()=>i.YB,createCollectionContextMeta:()=>i.H9,useFlowModel:()=>c.PZ,getRunJSDocFor:()=>r_,useDrawer:()=>rB.bt,parsePathnameToViewParams:()=>i.KB,buildWrapperFieldChildren:()=>tJ.jx,largeField:()=>rb,isInheritedFrom:()=>i.FA,buildSubModelGroups:()=>tJ.Qp,FieldModelRenderer:()=>es,observable:()=>h.sH,registerRunJSSnippet:()=>rF,AddSubModelButton:()=>t9,FlowViewContext:()=>g.PC,FlowDefinition:()=>rq.G,serializeCtxDateValue:()=>i.hz,setupRunJSContexts:()=>rj.setupRunJSContexts,DataNode:()=>h.dw,buildRecordMeta:()=>i.$S,VIEW_ENGINE_SCOPE:()=>"view",FilterItem:()=>s.qi,buildDataTree:()=>h.H_,autorun:()=>h.fm,ENGINE_SCOPE_KEY:()=>rL.i6,buildItems:()=>tJ.z5,clearAutoFlowError:()=>i.Z8,EMBED_REPLACING_DATA_KEY:()=>rB.xB,MobilePopup:()=>rv.D,defineFlow:()=>u.oY,DATA_SOURCE_DIRTY_EVENT:()=>rL.HK,isCtxDateExpression:()=>i.y4,usePage:()=>rB.N5,createDefaultConverters:()=>eA,raw:()=>h.lS,FieldPlaceholder:()=>u.WE,tExpr:()=>i.MZ,VariableInput:()=>ra,BaseRecordResource:()=>s.vB,isAnnotation:()=>h.Ir,buildContextSelectorItems:()=>eb,MAX_SLOT_THICKNESS:()=>C,MemoFlowModelRenderer:()=>ti,CollectionFieldModel:()=>u.yW,createRecordResolveOnServerWithLocal:()=>i.xI,isVariableExpression:()=>i.n2,FlowContext:()=>eK.cB,GLOBAL_EMBED_CONTAINER_ID:()=>rB.mW,createFinalConverters:()=>eM,useFlowViewContext:()=>g.Ww,createAssociationSubpathResolver:()=>i.Hi,SQLResource:()=>s.BH,FlowModelProvider:()=>c.Ps,FormItem:()=>to.e,COLUMN_EDGE_MAX_WIDTH:()=>R,DataSourceManager:()=>rw.zA,getAutoFlowError:()=>i.yz,SlateVariableEditor:()=>rg,useFlowSettingsContext:()=>c.sz,ActionScene:()=>n,getEmitterViewActivatedVersion:()=>rL.FH,ViewNavigation:()=>rB.U,resolveDefaultParams:()=>i.gG,MIN_SLOT_THICKNESS:()=>P,FlowSchemaRegistry:()=>nc,resolveCreateModelOptions:()=>i.mv,model:()=>h.ge,DataChange:()=>h.r5,Droppable:()=>ei,FlowsDropdownButton:()=>ta,resolveStepDisabledInSettings:()=>i.XM,buildSubModelItem:()=>tJ.Ls,useFlowContext:()=>g.$K,useFlowView:()=>g.Vy,resolveExpressions:()=>i.M,preloadContextSelectorPath:()=>ex,mergeSubModelItems:()=>t0,defineAction:()=>i.QP,FlowSQLRepository:()=>s.tP,decodeBase64Url:()=>i.$X,shouldPreprocessRunJSTemplates:()=>rS.R,COLUMN_EDGE_WIDTH_RATIO:()=>E,FlowResource:()=>s.l2,FlowEngine:()=>a.$,DataSource:()=>rw.qS,FLOW_ENGINE_NAMESPACE:()=>i.u4,parseCtxDateExpression:()=>i.X4,registerRunJSLib:()=>l.T1,DEFAULT_GRID_COLUMNS:()=>k,resolveCtxDatePath:()=>i.Vv,resolveDropIntent:()=>J,shouldHideEventInSettings:()=>i.qI,shouldHideStepInSettings:()=>i._3,MultiRecordResource:()=>s.Rn,usePopover:()=>rB.fP,ElementProxy:()=>rx.x,FlowModel:()=>u.WD,isCtxDatePathPrefix:()=>i.JE,openRequiredParamsStepFormDialog:()=>tO.openRequiredParamsStepFormDialog,FlowSettingsContextProvider:()=>c.uF,extractUsedVariableNames:()=>i.vP,InlineVariableTag:()=>rp,isBeforeRenderFlow:()=>i.EI,EditableItemModel:()=>u.B3,FlowSettings:()=>ty,getDataNode:()=>h.D,CollectionManager:()=>rw.qG,createRunJSDeprecationProxy:()=>eK.Bt,JSRunner:()=>rS.I,searchInLoadedNodes:()=>ev,useResolvedMetaTree:()=>e_,FlowErrorFallback:()=>eN,FlowEngineProvider:()=>d.I6,ResourceError:()=>s.BS,formatPathToVariable:()=>i.AP,createBlockScopedEngine:()=>nd,isCssFile:()=>i.yp,extractUsedVariablePathsFromRunJS:()=>i.$n,formatPathToValue:()=>eg,resolveUiMode:()=>i.ME,getRunJSScenesForModel:()=>rP,FlowsSettings:()=>tP,pruneFilter:()=>i.pM,setupRuntimeContextSteps:()=>i.wx,buildSubModelItems:()=>tJ.yG,createJSRunnerWithVersion:()=>rk,findModelUidPosition:()=>S,define:()=>h.E8,buildLayoutSnapshot:()=>V,FlowModelContext:()=>eK.d6,getModelClassName:()=>rA.B,APIResource:()=>s.hR,FilterGroup:()=>s.I8,RunJSContextRegistry:()=>rA.F,useFlowEngine:()=>d.uf,VIEW_ACTIVATED_EVENT:()=>rL.B9,createAssociationAwareObjectMetaFactory:()=>i.af,createSafeRunJSGlobals:()=>i.I2,setAutoFlowError:()=>i.GZ,FilterableItemModel:()=>u.bt,compileRunJs:()=>o.W,filterLoadedContextSelectorItems:()=>ew,getRunJSScenesForContext:()=>rC,getSnippetBody:()=>rD,useFlowModelContext:()=>c.m2,reaction:()=>h.mJ,FlowContextProvider:()=>g.Dv,isRunJSValue:()=>i.E2,useFlowStep:()=>c.eP,openStepSettings:()=>tT,FlowReactContext:()=>g.bc,createSafeNavigator:()=>i.D1,toJS:()=>h.HO,listSnippetsForContext:()=>rN});var n=function(e){return e[e.BLOCK_LINKAGE_RULES=1]="BLOCK_LINKAGE_RULES",e[e.FIELD_LINKAGE_RULES=2]="FIELD_LINKAGE_RULES",e[e.SUB_FORM_FIELD_LINKAGE_RULES=3]="SUB_FORM_FIELD_LINKAGE_RULES",e[e.DETAILS_FIELD_LINKAGE_RULES=4]="DETAILS_FIELD_LINKAGE_RULES",e[e.ACTION_LINKAGE_RULES=5]="ACTION_LINKAGE_RULES",e[e.DYNAMIC_EVENT_FLOW=6]="DYNAMIC_EVENT_FLOW",e}({}),i=r(48555),o=r(49773),l=r(98192),s=r(99784),a=r(81440),c=r(57084),u=r(1314),d=r(20616),h=r(52847),p=r(74848),f=r(71021),m=r(96540),g=r(52568);function y(e){let t=(0,h.PA)(t=>(0,g.$K)().flowSettingsEnabled?(0,p.jsx)(e,{...t}):null);return t.displayName=`withFlowDesignMode(${e.displayName||e.name||"Component"})`,t}let v=y(e=>(0,p.jsx)(f.Ay,{...e,type:"dashed",style:{...e.style,borderColor:"var(--colorSettings)",color:"var(--colorSettings)",alignSelf:"flex-start"}}));v.displayName="FlowSettingsButton";var w=r(2805),b=r(98668),x=r(40961);let S=(e,t)=>{let r=null;for(let[n,i]of Object.entries(t))for(let t=0;t<i.length;t++){let o=i[t];for(let i=0;i<o.length;i++)o[i]===e&&(r={rowId:n,columnIndex:t,itemIndex:i})}return r};var A=r(27253),M=r(2543),_=r.n(M);let k=24,P=16,C=48,j=12,R=28,E=.2,F=.5,T=.33,O=(e,t)=>{let r=[],n=new Set;return(t||Object.keys(e)).forEach(t=>{e[t]&&!n.has(t)&&(r.push(t),n.add(t))}),Object.keys(e).forEach(e=>{n.has(e)||(r.push(e),n.add(e))}),r},I=(e,t)=>{let r={};return t.forEach(t=>{e[t]&&(r[t]=e[t])}),Object.keys(e).forEach(t=>{r[t]||(r[t]=e[t])}),r},$=e=>{let t=O(e.rows,e.rowOrder);return e.rowOrder=t,e.rows=I(e.rows,t),t},D=e=>({top:e.top,left:e.left,width:e.width,height:e.height}),N=e=>Math.max(P,Math.min(C,e)),B=e=>{let{top:t,left:r,width:n,height:i}=e;return{top:t,left:r,width:n,height:i}},L=(e,t,r)=>{let n=N(e.height*T);if("above"===t){let t=N(Math.max(n,e.top-r.top));return B({top:e.top-t,left:r.left,width:r.width,height:t})}let i=N(Math.max(n,r.top+r.height-(e.top+e.height)));return B({top:e.top+e.height,left:r.left,width:r.width,height:i})},q=(e,t)=>{let r=Math.min(Math.max(j,e.width*E),R);return B({top:e.top,left:"left"===t?e.left:e.left+e.width-r,width:r,height:e.height})},U=(e,t)=>{let r=N(e.height*F);return"before"===t?B({top:e.top,left:e.left,width:e.width,height:r}):B({top:e.top+e.height-r,left:e.left,width:e.width,height:r})},z=e=>({top:e.top,left:e.left,width:e.width,height:Math.max(e.height,P)}),V=e=>{let{container:t}=e;if(!t)return{slots:[],containerRect:{top:0,left:0,width:0,height:0}};let r=D(t.getBoundingClientRect()),n=[],i=Array.from(t.querySelectorAll("[data-grid-row-id]")).filter(e=>{let r=e.parentElement;for(;r&&r!==t;){if(r.hasAttribute("data-grid-row-id"))return!1;r=r.parentElement}return!0});return 0===i.length?n.push({type:"empty-row",rect:B({top:r.top,left:r.left,width:r.width,height:Math.max(r.height,P)})}):i.forEach((e,i)=>{let o=e.dataset.gridRowId;if(!o)return;let l=D(e.getBoundingClientRect());0===i&&n.push({type:"row-gap",targetRowId:o,position:"above",rect:L(l,"above",r)}),Array.from(t.querySelectorAll(`[data-grid-column-row-id="${o}"][data-grid-column-index]`)).filter(t=>t.closest("[data-grid-row-id]")===e).sort((e,t)=>Number(e.dataset.gridColumnIndex||0)-Number(t.dataset.gridColumnIndex||0)).forEach(e=>{let t=Number(e.dataset.gridColumnIndex||0),r=D(e.getBoundingClientRect());n.push({type:"column-edge",rowId:o,columnIndex:t,direction:"left",rect:q(r,"left")}),n.push({type:"column-edge",rowId:o,columnIndex:t,direction:"right",rect:q(r,"right")});let i=Array.from(e.querySelectorAll(`[data-grid-item-row-id="${o}"][data-grid-column-index="${t}"]`)).filter(t=>t.closest("[data-grid-column-row-id][data-grid-column-index]")===e).sort((e,t)=>Number(e.dataset.gridItemIndex||0)-Number(t.dataset.gridItemIndex||0));if(0===i.length)return void n.push({type:"empty-column",rowId:o,columnIndex:t,rect:z(r)});let l=D(i[0].getBoundingClientRect());n.push({type:"column",rowId:o,columnIndex:t,insertIndex:0,position:"before",rect:U(l,"before")}),i.forEach((e,r)=>{let i=D(e.getBoundingClientRect());n.push({type:"column",rowId:o,columnIndex:t,insertIndex:r+1,position:"after",rect:U(i,"after")})})}),n.push({type:"row-gap",targetRowId:o,position:"below",rect:L(l,"below",r)})}),{slots:n,containerRect:r}},W=e=>{switch(e.type){case"column":return`${e.type}:${e.rowId}:${e.columnIndex}:${e.insertIndex}:${e.position}`;case"column-edge":return`${e.type}:${e.rowId}:${e.columnIndex}:${e.direction}`;case"row-gap":return`${e.type}:${e.targetRowId}:${e.position}`;case"empty-row":return`${e.type}`;case"empty-column":return`${e.type}:${e.rowId}:${e.columnIndex}`}},H=(e,t)=>e.x>=t.left&&e.x<=t.left+t.width&&e.y>=t.top&&e.y<=t.top+t.height,K=(e,t)=>{let r=Math.max(t.left-e.x,0,e.x-(t.left+t.width)),n=Math.max(t.top-e.y,0,e.y-(t.top+t.height));return Math.sqrt(r*r+n*n)},J=(e,t)=>{if(!t.length)return null;let r=t.find(t=>H(e,t.rect));if(r)return r;let n=null,i=1/0;return t.forEach(t=>{let r=K(e,t.rect);r<i&&(i=r,n=t)}),n},Y=(e,t)=>{for(let[r,n]of Object.entries(e))for(let e=0;e<n.length;e+=1){let i=n[e].indexOf(t);if(-1!==i)return{rowId:r,columnIndex:e,itemIndex:i}}return null},G=(e,t)=>{let r=Y(e.rows,t);if(!r)return;let{rowId:n,columnIndex:i,itemIndex:o}=r,l=e.rows[n],s=null==l?void 0:l[i];if(s){if(s.splice(o,1),0===s.length&&(l.splice(i,1),e.sizes[n]&&e.sizes[n].splice(i,1)),0===l.length){delete e.rows[n],delete e.sizes[n],$(e);return}X(n,e),$(e)}},Z=(e,t)=>{if(0===t)return[];let r=e.map(e=>Number.isFinite(e)&&e>0?e:1),n=r.reduce((e,t)=>e+t,0)||t,i=r.map(e=>e/n).map(e=>e*k),o=i.map(e=>Math.max(1,Math.floor(e))),l=k-o.reduce((e,t)=>e+t,0);if(l>0){let e=i.map((e,t)=>({index:t,decimal:e-Math.floor(e)})).sort((e,t)=>t.decimal-e.decimal),t=0;for(;l>0&&e.length;){let r=e[t%e.length].index;o[r]+=1,l-=1,t+=1}}else if(l<0){let e=i.map((e,t)=>({index:t,decimal:e-Math.floor(e)})).sort((e,t)=>e.decimal-t.decimal),t=0;for(;l<0&&e.length;){let r=e[t%e.length].index;o[r]>1&&(o[r]-=1,l+=1),t+=1}}let s=k-o.reduce((e,t)=>e+t,0);return 0!==s&&o.length&&(o[o.length-1]+=s),o},X=(e,t)=>{let r=t.rows[e];if(!r||0===r.length)return void delete t.sizes[e];let n=t.sizes[e]||Array(r.length).fill(k/r.length),i=n.length===r.length?n:Array(r.length).fill(k/r.length);t.sizes[e]=Z(i,r.length)},Q=(e,t,r,n,i)=>{let o=Object.entries(e),l={},s=!1;return o.forEach(e=>{let[o,a]=e;s||"before"!==n||o!==t||(l[r]=i,s=!0),l[o]=a,s||"after"!==n||o!==t||(l[r]=i,s=!0)}),s||(l[r]=i),l},ee=(e,t,r)=>{if(!e||0===e.length)return Z(Array(r).fill(1),r);let n=e.map(e=>Number.isFinite(e)&&e>0?e:1),i=Math.max(0,Math.min(t,n.length-1)),o=n[i]??1,l=[...n];return l.splice(t,0,o),Z(l,r)},et=e=>{let{slot:t,sourceUid:r,layout:n,generateRowId:i}=e,o={rows:_().cloneDeep(n.rows),sizes:_().cloneDeep(n.sizes),rowOrder:n.rowOrder?[...n.rowOrder]:void 0};$(o),G(o,r);let l=i??A.uid;switch(t.type){case"column":{let e=o.rows[t.rowId]||[];o.rows[t.rowId]||(o.rows[t.rowId]=e),e[t.columnIndex]||(e[t.columnIndex]=[]),e[t.columnIndex].splice(t.insertIndex,0,r),X(t.rowId,o);break}case"empty-column":{let e=o.rows[t.rowId]||[];o.rows[t.rowId]||(o.rows[t.rowId]=e),e[t.columnIndex]||(e[t.columnIndex]=[]),e[t.columnIndex]=[r],X(t.rowId,o);break}case"column-edge":{let e=o.rows[t.rowId]||[];o.rows[t.rowId]||(o.rows[t.rowId]=e);let n="left"===t.direction?t.columnIndex:t.columnIndex+1;e.splice(n,0,[r]),o.sizes[t.rowId]=ee(o.sizes[t.rowId],n,e.length),X(t.rowId,o);break}case"row-gap":{let e=l(),n="above"===t.position?"before":"after",i=O(o.rows,o.rowOrder);o.rows=Q(o.rows,t.targetRowId,e,n,[[r]]),o.sizes[e]=[k];let s=i.indexOf(t.targetRowId),a=-1===s?i.length:"before"===n?s:s+1,c=[...i];c.splice(a,0,e),o.rowOrder=c,o.rows=I(o.rows,c);break}case"empty-row":{let e=l();o.rows={...o.rows,[e]:[[r]]},o.sizes[e]=[k];let t=O(o.rows,o.rowOrder);o.rowOrder=[...t.filter(t=>t!==e),e],o.rows=I(o.rows,o.rowOrder)}}return $(o),o},er="EMPTY_COLUMN",en=e=>{let{model:t,children:r=(0,p.jsx)(w.A,{})}=e,{attributes:n,listeners:i,setNodeRef:o}=(0,b.PM)({id:t.uid});return(0,p.jsx)("span",{ref:o,...i,...n,style:{cursor:"grab"},children:r})},ei=e=>{let{model:t,children:r}=e,{setNodeRef:n,isOver:i,active:o}=(0,b.zM)({id:t.uid}),l=(null==o?void 0:o.id)===t.uid;return(0,p.jsxs)("div",{ref:n,style:{position:"relative",opacity:l?.3:1,outline:l?"2px solid var(--colorBorderSettingsHover)":"none",borderRadius:l?t.context.themeToken.borderRadiusLG:"none"},children:[r,(0,p.jsx)("div",{style:{position:"absolute",top:0,left:0,right:0,bottom:0,backgroundColor:i?"var(--colorBgSettingsHover)":"transparent",pointerEvents:"none"}})]})},eo=e=>{let{persist:t=!0,children:r,onDragEnd:n,...i}=e,[o,l]=(0,m.useState)(null),s=(0,d.uf)();return(0,p.jsxs)(b.Mp,{onDragStart:e=>{var t;l(e.active.id),null==(t=i.onDragStart)||t.call(i,e)},onDragEnd:e=>{l(null),n?n(e):e.over&&s.moveModel(e.active.id,e.over.id,{persist:t})},...i,children:[r,(0,x.createPortal)((0,p.jsx)(b.Hd,{dropAnimation:null,zIndex:2e3,children:o&&(0,p.jsx)("span",{style:{display:"inline-flex",alignItems:"center",whiteSpace:"nowrap",background:"#fff",border:"1px solid #1890ff",borderRadius:4,padding:"4px 12px",color:"#1890ff",boxShadow:"0 2px 8px rgba(0,0,0,0.15)"},children:s.translate("Dragging")})}),document.body)]})},el=["model","uid","fallback","key","showFlowSettings","flowSettingsVariant","hideRemoveInSettings","showTitle","inputArgs","showErrorFallback","settingsMenuLevel","extraToolbarItems"];function es(e){let{model:t,...r}=e,n=(0,m.useRef)(!1),i=r=>{let i;if(i=r&&r.target&&void 0!==r.target.value?r.target.value:"string"!=typeof r&&"number"!=typeof r&&"boolean"!=typeof r&&("object"!=typeof r||r instanceof Event)?null:r,t.setProps({value:i}),!n.current){var o;null==(o=e.onChange)||o.call(e,i)}},o={onCompositionStart:()=>{n.current=!0},onCompositionEnd:function(t){let r=!(arguments.length>1)||void 0===arguments[1]||arguments[1];n.current=!1,r&&e.onChange(t)},..._().omit(r,el),onChange:i};return(0,m.useEffect)(()=>{t&&t.setProps(o)},[o]),(0,p.jsx)(tn,{model:t,...r})}var ea=r(35710),ec=r(42443),eu=r(95725),ed=r(60209),eh=r(53619),ep=r(85876);let ef=e=>{var t;return"string"==typeof e.label?e.label:"string"==typeof(null==(t=e.meta)?void 0:t.title)?e.meta.title:e.value},em=e=>{if("string"!=typeof e)return;let t=e.trim(),r=/^\{\{\s*ctx(?:\.(.+?))?\s*\}\}$/,n=t.match(r);if(!n)return;let i=n[1];return i?i.split("."):[]},eg=e=>{let t=(null==e?void 0:e.paths)||[];return 0===t.length?"{{ ctx }}":`{{ ctx.${t.join(".")} }}`},ey=async e=>{if(!(null==e?void 0:e.children))return[];if("function"==typeof e.children)try{return await e.children()}catch(t){return console.warn(`Failed to load children for ${e.name}:`,t),[]}return e.children},ev=function(e,t){if(arguments.length>2&&void 0!==arguments[2]&&arguments[2],!t||!t.trim())return[];let r=t.toLowerCase().trim(),n=[],i=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];for(let o of e){let e=[...t,o.value];ef(o).toLowerCase().includes(r)&&n.push(o),o.children&&Array.isArray(o.children)&&i(o.children,e)}};return i(e,[]),n},ew=(e,t)=>{if(!Array.isArray(e)||0===e.length)return[];let r=t.trim().toLowerCase();if(!r)return e;let n=e=>{if(ef(e).toLowerCase().includes(r))return e;if(!Array.isArray(e.children)||0===e.children.length)return null;let t=e.children.map(e=>n(e)).filter(e=>null!==e);return 0===t.length?null:t.length===e.children.length&&t.every((t,r)=>t===e.children[r])?e:{...e,children:t}};return e.map(e=>n(e)).filter(e=>null!==e)},eb=e=>{if(!e||!Array.isArray(e))return console.warn("buildContextSelectorItems received invalid metaTree:",e),[];let t=e=>{if("function"==typeof e.hidden?e.hidden():e.hidden)return null;let r=!!(e.children&&("function"==typeof e.children||Array.isArray(e.children)&&e.children.length>0)),n=!!("function"==typeof e.disabled?e.disabled():e.disabled),i={label:e.title||e.name,value:e.name,isLeaf:!r,meta:e,paths:e.paths,disabled:n};return Array.isArray(e.children)&&e.children.length>0&&(i.children=e.children.map(e=>t(e)).filter(e=>null!==e)),i};return e.map(e=>t(e)).filter(e=>null!==e)},ex=async(e,t,r)=>{if(!e||!Array.isArray(e)||!t||0===t.length)return;let n=e;for(let e=0;e<t.length&&n;e++){let i=String(t[e]),o=n.find(e=>String(e.value)===i);if(!o)break;let l=o.meta,s=!!o.children&&Array.isArray(o.children);if(e<t.length-1&&!s&&l&&"function"==typeof l.children){o.loading=!0;try{let e=await ey(l);l.children=e;let t=eb(e);o.children=t,o.isLeaf=!t||0===t.length,Promise.resolve().then(()=>null==r?void 0:r()).catch(()=>{})}finally{o.loading=!1}}n=Array.isArray(o.children)?o.children:void 0}},eS=e=>(0,i.n2)(e),eA=()=>({resolvePathFromValue:e=>em(e),resolveValueFromPath:e=>eg(e)}),eM=e=>{let t=eA(),r=e?{...t,...e}:t;if(null==e?void 0:e.resolveValueFromPath){let t=e.resolveValueFromPath;return{...r,resolveValueFromPath:e=>{let r=t(e);return void 0===r?eg(e):r}}}return r},e_=e=>{let[t,r]=m.useState(),[n,i]=m.useState(!1),[o,l]=m.useState(null);return m.useEffect(()=>{(async()=>{if(!e){r(void 0),i(!1),l(null);return}if(Array.isArray(e)){r(e),i(!1),l(null);return}if("function"==typeof e){i(!0),l(null);try{let t=await e();"function"==typeof t&&(t=await t()),r(t)}catch(e){console.warn("Failed to resolve metaTree function:",e),l(e instanceof Error?e:Error(String(e))),r(void 0)}finally{i(!1)}}})()},[e]),{resolvedMetaTree:t,loading:n,error:o}},ek={fontStyle:"italic",fontFamily:"New York, Times New Roman, Times, serif"},eP=(0,ep.AH)`
|
|
8
|
+
})()`,n=new Compartment(this.globals);try{let e=n.evaluate(r),t=new Promise((e,t)=>setTimeout(()=>t(Error("Execution timed out")),this.timeoutMs)),i=await Promise.race([e,t]);return{success:!0,value:i}}catch(n){if(n instanceof i.sy||n instanceof i.zz)throw n;let t=s(e),r=a(n,t)&&t?u(n,t):n;return console.error(r),{success:!1,error:r,timeout:(null==r?void 0:r.message)==="Execution timed out"}}}constructor(e={}){var t,r;(0,n._)(this,"globals",void 0),(0,n._)(this,"timeoutMs",void 0);let i=e=>{if("u">typeof window&&"function"==typeof window[e])return window[e].bind(window);let t=globalThis[e];return"function"==typeof t?t.bind(globalThis):t},o=e.globals||{},l={};if(!Object.prototype.hasOwnProperty.call(o,"Blob"))try{let e=null==(t=o.window)?void 0:t.Blob;void 0!==e&&(l.Blob=e)}catch{}if(!Object.prototype.hasOwnProperty.call(o,"URL"))try{let e=null==(r=o.window)?void 0:r.URL;void 0!==e&&(l.URL=e)}catch{}this.globals={console,setTimeout:i("setTimeout"),clearTimeout:i("clearTimeout"),setInterval:i("setInterval"),clearInterval:i("clearInterval"),...l,...o},this.timeoutMs=e.timeoutMs??5e3}}},47451(e,t,r){r.d(t,{_:()=>o});var n=r(81440),i=r(16639);function o(e){let t=new n.$;Object.defineProperty(t,i.i6,{value:"view",configurable:!0}),e.modelRepository&&t.setModelRepository(e.modelRepository),t.context.addDelegate(e.context);let r=t.unlinkFromStack.bind(t);t.unlinkFromStack=function(){var e;return null==(e=t.disposeScheduler)||e.call(t),r()};let o=new Set(["_modelInstances","_applyFlowCache","executor","context",i.i6,"previousEngine","nextEngine","emitter","_modelOperationScheduler","getScheduler","scheduleModelOperation","disposeScheduler","unlinkFromStack","linkAfter","_previousEngine","_nextEngine","getModel","_destroyView","setDestroyView","destroyView"]),l={get(t,r,n){if(o.has(r))return Reflect.get(t,r,n);let i=Reflect.get(e,r,n);return"registerModels"===r&&"function"==typeof i?i.bind(e):i},set:(t,r,n)=>o.has(r)?Reflect.set(t,r,n):Reflect.set(e,r,n),has:(t,r)=>r in t||r in e};return t.linkAfter(e),new Proxy(t,l)}},64171(e,t,r){r.d(t,{Z:()=>i});var n=r(50467);class i{onActionRegistered(){}registerActions(e){for(let[,t]of Object.entries(e||{}))this.registerAction(t)}registerAction(e){if(!(null==e?void 0:e.name))throw Error("Action must have a name.");this.actions.has(e.name)&&console.warn(`Action '${e.name}' is already registered. It will be overwritten.`),this.actions.set(e.name,e),this.onActionRegistered()}constructor(){(0,n._)(this,"actions",new Map)}}},31102(e,t,r){r.d(t,{e:()=>a});var n=r(74848),i=r(96540),o=r(42443),l=r(89013);let s=["colon","dependencies","extra","getValueFromEvent","getValueProps","hasFeedback","help","htmlFor","initialValue","label","labelAlign","labelCol","messageVariables","name","normalize","noStyle","preserve","rules","tooltip","trigger","validateStatus","validateTrigger","valuePropName","wrapperCol","labelWidth","labelWrap","layout","required","showLabel"],a=e=>{let{children:t,showLabel:r=!0,labelWidth:a,...u}=e,c=Object.fromEntries(Object.entries(u).filter(e=>{let[t]=e;return!s.includes(t)})),d="function"==typeof t?t:i.Children.map(t,e=>i.isValidElement(e)?i.cloneElement(e,{...c}):e),{label:h,labelWrap:p,colon:f=!0,layout:g}=u,m=!g||"vertical"===g||p,y=()=>r?m?(0,n.jsxs)("div",{style:{width:"100%",whiteSpace:"normal",wordBreak:"break-word",display:"flex",alignItems:"center",justifyContent:"flex-start",fontWeight:600},children:[(0,n.jsx)("span",{style:{flex:1},children:h}),f&&(0,n.jsx)("span",{style:{marginLeft:4,flexShrink:0},children:":"})]}):(0,n.jsx)(o.A,{title:h,children:(0,n.jsxs)("div",{style:{display:"inline-flex",alignItems:"center",maxWidth:("number"==typeof a?a:120)-20,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",verticalAlign:"middle",fontWeight:600},children:[(0,n.jsx)("span",{style:{flexShrink:1,overflow:"hidden",textOverflow:"ellipsis"},children:h}),f&&(0,n.jsx)("span",{style:{marginLeft:4,flexShrink:0},children:":"})]})}):null;return(0,n.jsx)(l.A.Item,{...u,labelCol:{style:{width:a}},layout:g,label:y(),colon:!1,extra:u.extra&&(0,n.jsx)("span",{style:{whiteSpace:"pre-wrap"},children:u.extra}),tooltip:u.tooltip&&{title:u.tooltip,overlayInnerStyle:{whiteSpace:"pre-line"}},children:d})}},61793(e,t,r){let n,i;r.d(t,{D:()=>x});var o=r(74848),l=r(4888),s=r(96540),a=r(42524),u=r(27253),c=r(35710);let d=(e,t)=>{let{getPrefixCls:r}=(0,s.useContext)(l.Ay.ConfigContext)||{};if("ConfigContext"in l.Ay)return(null==r?void 0:r(e,null==t?void 0:t.prefixCls))||"";{let r=(null==t?void 0:t.prefixCls)??"ant-";return`${r}${e??""}`}},{ConfigContext:h}=l.Ay,p=()=>(0,s.useContext)(h),f=c.A.useToken,g=(e,t)=>{let{fontFamily:r,fontSize:n}=e,i=`[class^="${t}"], [class*=" ${t}"]`;return{[i]:{fontFamily:r,fontSize:n,boxSizing:"border-box","&::before, &::after":{boxSizing:"border-box"},[i]:{boxSizing:"border-box","&::before, &::after":{boxSizing:"border-box"}}}}},m=(n="nb-mobile-action-drawer",i=e=>{let{componentCls:t}=e;return{[t]:{".nb-mobile-action-drawer-header":{height:"var(--nb-mobile-page-header-height)",display:"flex",alignItems:"center",justifyContent:"space-between",borderBottom:`1px solid ${e.colorSplit}`,position:"sticky",top:0,backgroundColor:"white",zIndex:1e3,"& + .nb-grid-container > .nb-grid > .nb-grid-warp > .ant-btn":{margin:12}},".nb-mobile-action-drawer-placeholder":{display:"inline-block",padding:12,visibility:"hidden"},".nb-mobile-action-drawer-close-icon":{display:"inline-block",padding:12,cursor:"pointer"},".nb-mobile-action-drawer-body":{borderTopLeftRadius:8,borderTopRightRadius:8,maxHeight:"calc(100% - var(--nb-mobile-page-header-height))",overflowY:"auto",overflowX:"hidden",backgroundColor:e.colorBgLayout,"& > .nb-grid-container":{padding:`${e.paddingPageVertical}px ${e.paddingPageHorizontal}px`},".ant-tabs-nav":{marginBottom:"0px !important",padding:`0 ${e.paddingPageHorizontal+e.borderRadiusBlock/2}px`,backgroundColor:e.colorBgContainer},"& > .nb-grid-container > .nb-grid > .nb-grid-warp > .nb-grid-row:nth-last-child(2) .noco-card-item":{marginBottom:0,"& > .ant-card":{marginBottom:"0 !important"}}},".nb-mobile-action-drawer-footer":{padding:"8px var(--nb-mobile-page-tabs-content-padding)",display:"flex",alignItems:"center",justifyContent:"flex-end",position:"sticky",bottom:0,left:0,right:0,zIndex:1e3,borderTop:`1px solid ${e.colorSplit}`,backgroundColor:e.colorBgLayout,".ant-btn":{marginLeft:8}}}}},e=>{let{theme:t,token:r,hashId:o}=f(),{getPrefixCls:l,iconPrefixCls:c}=p(),h=d(n),m=l(),y=(0,a.useStyleRegister)({theme:t,token:r,hashId:o,path:["formily-antd",n,h,c]},()=>{let t=`.${h}`,n=i((0,u.merge)(r,{componentCls:t,prefixCls:h,iconCls:`.${c}`,antCls:`.${m}`}),e,{hashId:o,prefixCls:h,rootPrefixCls:m,iconPrefixCls:c});return[g(r,h),n]});return{wrapSSR:(0,s.useMemo)(()=>y,[t,r,o,h,c,m,e]),hashId:o,componentCls:h,rootPrefixCls:m}});var y=r(18492),v=r(22505);let{Popup:w}=(0,v.R)(()=>Promise.all([r.e("9817"),r.e("2131"),r.e("1222")]).then(r.bind(r,6433)),"Popup"),{CloseOutline:b}=(0,v.R)(()=>Promise.all([r.e("2131"),r.e("3279")]).then(r.bind(r,38370)),"CloseOutline"),x=e=>{let{title:t,visible:r,onClose:n,children:i,minHeight:a,className:u,footer:c}=e,{t:d}=(0,y.B)(),{componentCls:h,hashId:p}=m(),f=(0,s.useMemo)(()=>({minHeight:a}),[a]),g=(0,s.useMemo)(()=>({token:{paddingPageHorizontal:8,paddingPageVertical:8,marginBlock:12,borderRadiusBlock:8,fontSize:14}}),[]);return(0,o.jsx)(l.Ay,{theme:g,children:(0,o.jsxs)(w,{className:`${h} ${p} ${u||""}`,visible:r,onClose:n,onMaskClick:n,bodyClassName:"nb-mobile-action-drawer-body",bodyStyle:{padding:0},maskStyle:f,style:f,destroyOnClose:!0,children:[(0,o.jsxs)("div",{className:"nb-mobile-action-drawer-header",children:[(0,o.jsx)("span",{className:"nb-mobile-action-drawer-placeholder",children:(0,o.jsx)(b,{})}),(0,o.jsx)("span",{children:t}),(0,o.jsx)("span",{className:"nb-mobile-action-drawer-close-icon",onClick:n,role:"button",tabIndex:0,"aria-label":d("Close"),children:(0,o.jsx)(b,{})})]}),i,c&&(0,o.jsx)("div",{className:"nb-mobile-action-drawer-footer",children:c})]})})}},96332(e,t,r){r.d(t,{openRequiredParamsStepFormDialog:()=>f});var n=r(74848),i=r(18220),o=r(95243),l=r(87959),s=r(71021),a=r(96540),u=r(29007),c=r(16296),d=r(48555);let h=(0,i.createSchemaField)(),p=e=>{let{model:t,requiredSteps:r,formStep:i,children:o}=e,l=r[(null==i?void 0:i.current)??0],s=a.useMemo(()=>{let{flowKey:e,step:r}=l,n=t.getFlow(e),i=new u.W5(t,e,"settings");return(0,d.wx)(i,(null==n?void 0:n.steps)||{},t,e),i.defineProperty("currentStep",{value:r}),i},[t,l]);return(0,n.jsx)(c.u,{value:s,children:o})},f=async e=>{let{model:t,dialogWidth:a=800,dialogTitle:f}=e,g=(0,d.lW)(t);if(f||g("Step parameter configuration"),!t)throw l.Ay.error(g("Invalid model provided")),Error(g("Invalid model provided"));return new Promise((e,l)=>{(async()=>{try{var m,y,v;let l=t.getFlows(),w=[];for(let[e,r]of l)for(let n in r.steps){let i=r.steps[n];if(i.paramsRequired||i.preset){let o=await (0,d.o7)(t,r,i);if(o){t.getStepParams(e,n);let l=!1;console.log(`Flow: ${e}, Step: ${n}, hasAllRequiredParams:`,l),l||w.push({flowKey:e,stepKey:n,step:i,uiSchema:o,title:i.title||n,flowTitle:r.title||e})}}}if(console.log("Required steps:",w),0===w.length)return void e({});let b={};for(let{flowKey:e,stepKey:r,step:n}of w){let i=t.getStepParams(e,r)||{},l={};n.use&&(l=(null==(v=t.flowEngine)||null==(y=v.getAction)?void 0:y.call(v,n.use)).defaultParams||{});let s=new u.W5(t,e,"settings"),a=t.getFlow(e);a&&(0,d.wx)(s,a.steps,t,e),s.defineProperty("currentStep",{value:n});let c=await (0,d.gG)(l,s),h=await (0,d.gG)(n.defaultParams,s),p={...(0,o.toJS)(c),...(0,o.toJS)(h),...(0,o.toJS)(i)};Object.keys(p).length>0&&(b[e]||(b[e]={}),b[e][r]=p)}let x={};w.forEach(e=>{let{flowKey:t,stepKey:r,uiSchema:n,title:i,flowTitle:o}=e;x[`${t}_${r}`]={type:"void","x-component":"FormStep.StepPane","x-component-props":{title:`${i}`,description:`Flow: ${o}`},properties:{layout:{type:"void","x-component":"FormLayout","x-component-props":{layout:"vertical"},properties:{[t]:{type:"object",properties:{[r]:{type:"object",properties:n}}}}}}}});let S=1===w.length?{type:"object",properties:{...Object.values(x)[0].properties}}:{type:"object",properties:{step:{type:"void","x-component":"FormStep","x-component-props":{formStep:"{{formStep}}"},properties:x}}},{FormDialog:_,FormStep:A}=await r.e("1331").then(r.bind(r,54766)),k=w.length>1?A.createFormStep(0):null,M=t.flowEngine,E={formStep:k,totalSteps:w.length,requiredSteps:w,useFlowSettingsContext:c.s,...null==(m=M.flowSettings)?void 0:m.scopes},j=_({title:f||g("Step parameter configuration"),width:a,footer:null,destroyOnClose:!0},r=>{var o;let l=async()=>{try{await r.submit();let n=r.values;w.forEach(e=>{var r;let{flowKey:i,stepKey:o}=e,l=null==(r=n[i])?void 0:r[o];l&&t.setStepParams(i,o,l)}),await t.saveStepParams(),e(n),j.close()}catch(e){console.error(g("Error submitting form"),":",e)}},a=()=>{j.close(),e({})},u={...E,closeDialog:a,handleNext:()=>{r.validate().then(()=>{k&&k.next()}).catch(e=>{console.log(g("Form validation failed"),":",e)})}},c=(0,d.ln)(u,S);return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(p,{model:t,requiredSteps:w,formStep:k,children:(0,n.jsx)(h,{schema:c,components:{FormStep:A,...null==(o=M.flowSettings)?void 0:o.components},scope:u})}),(0,n.jsx)(i.FormConsumer,{children:()=>(0,n.jsx)("div",{style:{display:"flex",justifyContent:"flex-end",gap:8,marginTop:24,paddingTop:16,borderTop:"1px solid #f0f0f0"},children:1===w.length?(0,n.jsx)(s.Ay,{type:"primary",onClick:l,children:g("Complete configuration")}):(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(s.Ay,{disabled:!(null==k?void 0:k.allowBack),onClick:()=>{k&&k.back()},children:g("Previous step")}),(0,n.jsx)(s.Ay,{disabled:!(null==k?void 0:k.allowNext),type:"primary",onClick:()=>{r.validate().then(()=>{k&&k.next()}).catch(e=>{console.log(g("Form validation failed"),":",e)})},style:{display:((null==k?void 0:k.current)??0)<w.length-1?"inline-block":"none"},children:g("Next step")}),(0,n.jsx)(s.Ay,{disabled:null==k?void 0:k.allowNext,type:"primary",onClick:l,style:{display:((null==k?void 0:k.current)??0)>=w.length-1?"inline-block":"none"},children:g("Complete configuration")})]})})})]})});j.open({initialValues:(0,d.ln)(E,b)})}catch(e){l(Error(`${g("Failed to import FormDialog or FormStep")}: ${e.message}`))}})()}).catch(e=>{console.error(e)})}},23183(e,t,r){r.d(t,{openStepSettingsDialog:()=>g});var n=r(74848),i=r(60645),o=r(18220),l=r(95243),s=r(84626),a=r(71021),u=r(96540),c=r(16296),d=r(48555),h=r(31108),p=r(52847);let f=(0,o.createSchemaField)(),g=async e=>{var t,r,g,m,y,v,w,b;let{model:x,flowKey:S,stepKey:_,dialogWidth:A=600,dialogTitle:k,mode:M="dialog",ctx:E,uiModeProps:j,cleanup:R}=e,P=(0,d.lW)(x),C=x.context.message;if(!x)throw C.error(P("Invalid model provided")),Error(P("Invalid model provided"));let F=x.getFlow(S),T=null==F||null==(t=F.steps)?void 0:t[_];if(!F)throw C.error(P("Flow with key {{flowKey}} not found",{flowKey:S})),Error(P("Flow with key {{flowKey}} not found",{flowKey:S}));if(!T)throw C.error(P("Step with key {{stepKey}} not found",{stepKey:_})),Error(P("Step with key {{stepKey}} not found",{stepKey:_}));let I=T.title,$=T.beforeParamsSave,O=T.afterParamsSave,D={};if(T.use){let e=null==(b=x.flowEngine)||null==(w=b.getAction)?void 0:w.call(b,T.use);e&&(D=e.defaultParams||{},I=I||e.title,$=$||e.beforeParamsSave,O=O||e.afterParamsSave)}let N=x.getFlow(S),B=await (0,d.o7)(x,N,T);if(!B)return C.info(P("This step has no configurable parameters")),{};let L=E;L.currentStep&&L.currentStep===T||L.defineProperty("currentStep",{value:T});let z=x.flowEngine,q={useFlowSettingsContext:c.s,...null==(r=z.flowSettings)?void 0:r.scopes},W=x.getStepParams(S,_)||{},V=await (0,d.gG)(T.defaultParams,L),U=await (0,d.gG)(D,L),K={...(0,l.toJS)(U),...(0,l.toJS)(V),...(0,l.toJS)(W)},H={...(0,l.toJS)(W)},J={type:"object",properties:{layout:{type:"void","x-component":"FormLayout","x-component-props":{layout:"vertical"},properties:B}}},Y=x.context.viewer[M].bind(x.context.viewer),{zIndex:G,...Z}=(0,l.toJS)(j)||{},X=e=>{var t,r;return Math.max("function"==typeof(null==(t=x.context.viewer)?void 0:t.getNextZIndex)?x.context.viewer.getNextZIndex():((null==(r=x.context.themeToken)?void 0:r.zIndexPopupBase)||1e3)+1,Number(e)||0)},Q=X(G),ee=(0,i.createForm)({initialValues:(0,d.ln)(q,K)}),et=(null==(g=x.context.view)?void 0:g.inputArgs)||{},er=(null==E||null==(m=E.view)?void 0:m.navigation)??(null==(y=x.context.view)?void 0:y.navigation),en={...et,...er?{navigation:er}:{},...(null==(v=(0,l.toJS)(j))?void 0:v.inputArgs)||{},__isSettingsPopup:!0};Y({title:k||P(I),width:A,destroyOnClose:!0,...Z,zIndex:Q,inputArgs:en,onClose:()=>{R&&R()},content:e=>{let t=(0,p.PA)(()=>{var t;(0,u.useEffect)(()=>(0,l.autorun)(()=>{let{zIndex:t,...r}=(0,l.toJS)(j)||{};e.update({...r,zIndex:X(t)})}),[]);let r=(0,d.ln)(q,J);return(0,n.jsx)(o.FormProvider,{form:ee,children:(0,n.jsxs)(c.u,{value:L,children:[(0,n.jsx)(f,{schema:r,components:{...null==(t=z.flowSettings)?void 0:t.components},scope:q}),(0,n.jsx)(e.Footer,{children:(0,n.jsxs)(s.A,{align:"end",children:[(0,n.jsx)(a.Ay,{type:"default",onClick:()=>{e.close()},children:P("Cancel")}),(0,n.jsx)(a.Ay,{type:"primary",onClick:async()=>{try{await ee.submit();let t=ee.values;x.setStepParams(S,_,t),$&&await $(L,t,H),e.close(),await x.saveStepParams(),C.success(P("Configuration saved")),O&&await O(L,t,H)}catch(t){if(t instanceof d.VD)return;if(t instanceof d.sy||t instanceof h.zz)return void e.close();console.error(P("Error saving configuration"),":",t),C.error(P("Error saving configuration, please check console"))}},children:P("OK")})]})})]})})});return(0,n.jsx)(t,{})}})}},41594(e,t,r){r.d(t,{Ls:()=>s,Qp:()=>d,jx:()=>h,yG:()=>c,z5:()=>u});var n=r(2543),i=r.n(n),o=r(48555);async function l(e,t){return"function"==typeof e?await e(t):e}async function s(e,t){let r=arguments.length>2&&void 0!==arguments[2]&&arguments[2],n=e.meta??{};if(await l(n.hide,t)&&!r)return;let i={key:e.name,label:n.label||e.name,searchable:!!n.searchable,searchPlaceholder:n.searchPlaceholder,toggleable:n.toggleable,useModel:e.name,sort:n.sort||1e3,children:a(e,t)};return i.createModelOptions=n.createModelOptions||{use:e.name},i}function a(e,t){let r,n=e.meta??{};if(!1===n.children)return!1;if(n.children&&(r=n.children),e.defineChildren&&(r=e.defineChildren.bind(e)),"function"==typeof r){let e=r;r=async()=>{let r=await e(t),l=e=>null==e?void 0:e.map(e=>{let r={...e};if(r.children)r.children=Array.isArray(r.children)?l(r.children):r.children;else if(r.createModelOptions){let e=r.createModelOptions;r.createModelOptions=async function(){for(var r=arguments.length,l=Array(r),s=0;s<r;s++)l[s]=arguments[s];let a=l&&l.length>0?l[l.length-1]:void 0,u=await (0,o.mv)(null==n?void 0:n.createModelOptions,t,a),c=await (0,o.mv)(e,t,a);return i().merge({},i().cloneDeep(u),c)}}return r});return l(r)}}return r}function u(e){return async t=>{let r=await d([e])(t);if(0===r.length)return[];let n=r.shift().children;return"function"==typeof n?n(t):n}}function c(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return async r=>{var n,i;let a=r.engine.getSubclassesOf(e),u=[];for(let e of Array.from(a.values()))await l(null==(n=e.meta)?void 0:n.hide,r)||u.push(e);if(0===(u=u.filter(e=>{for(let r of t)if("string"==typeof r){if(e.name===r)return!1}else if(e===r||(0,o.FA)(e,r))return!1;return!0}).sort((e,t)=>{var r,n;return((null==(r=e.meta)?void 0:r.sort)??1e3)-((null==(n=t.meta)?void 0:n.sort)??1e3)})).length){let t="string"==typeof e?r.engine.getModelClass(e):e;t&&!await l(null==(i=t.meta)?void 0:i.hide,r)&&(u=[t])}let c=[];for(let e of u){let t=await s(e,r);t&&c.push(t)}return c}}function d(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return async t=>{let r=[],n=[];for(let s of e){var i,o,l;let e="string"==typeof s?t.engine.getModelClass(s):s;if(!e)continue;let u=a(e,t);u||(u=await c(s,n)(t)),n.push(e);let d=!1;if("function"==typeof u)try{let e=await u(t);d=Array.isArray(e)?e.length>0:!!e}catch(e){d=!1}else d=Array.isArray(u)?u.length>0:!!u;if(!d)continue;let h=(null==e||null==(i=e.meta)?void 0:i.label)||("string"==typeof s?s:e.name),p="string"==typeof s?s:e.name,f=(null==e||null==(o=e.meta)?void 0:o.menuType)||"group",g=(null==e||null==(l=e.meta)?void 0:l.sort)??1e3;"submenu"===f?r.push({key:p,label:h,sort:g,children:u}):r.push({key:p,type:"group",label:h,sort:g,children:u})}return r.sort((e,t)=>((null==e?void 0:e.sort)??1e3)-((null==t?void 0:t.sort)??1e3))}}function h(e,t){let{useModel:r,fieldUseModel:n,associationPathName:i,refreshTargets:o}=t,l=t.collection||e.model.collection||e.collection,s=l.getFields(),a=[];for(let e of s){var u;if(!(null==e||null==(u=e.options)?void 0:u.interface))continue;let t=i?`${i}.${e.name}`:e.name,s="function"==typeof n?n(e):n??"FieldModel";if(s){let n={dataSourceKey:l.dataSourceKey,collectionName:l.name,fieldPath:e.name,associationPathName:i};a.push({key:t,label:e.title,toggleable:e=>{let{associationPathName:r,fieldPath:n}=e.getStepParams("fieldSettings","init")||{};return(r?`${r}.${n}`:n)===t},useModel:r,refreshTargets:o,createModelOptions:()=>({use:r,stepParams:{fieldSettings:{init:n}},subModels:{field:{use:s,stepParams:{fieldSettings:{init:n}}}}})})}}return[{key:`addField_${l.name}`,label:"",type:"group",searchable:!0,searchPlaceholder:e.t("Search fields"),children:a.filter(Boolean)}]}},76546(e,t,r){r.d(t,{pM:()=>f,qG:()=>p,qS:()=>h,JL:()=>g,Ns:()=>u,zA:()=>d,Xk:()=>m});var n=r(50467),i=r(95243),o=r(2543),l=r.n(o),s=r(16075),a=r.n(s);function u(e){var t;let r;switch(e.type){case"string":r=a().string();break;case"number":r=a().number();break;case"array":r=a().array();break;case"boolean":r=a().boolean();break;default:r=a().any()}let n=(e,t)=>{if(!t||0===Object.keys(t).length)return[];if(Array.isArray(t))return t;if("email"===e){var r;let e={...t};return(null==(r=e.tlds)?void 0:r.allow)===!0?e.tlds.allow=!1:e.tlds||(e.tlds={allow:!1}),[e]}if(["length","min","max"].includes(e))return[t.limit];if("pattern"===e){let e=null==t?void 0:t.regex;return e instanceof RegExp?[e]:[new RegExp(e)]}let n=Object.values(t);return n.length?n:[]},i=!1;return null==(t=e.rules)||t.forEach(e=>{let{name:t,args:o}=e;if("required"===t&&(i=!0),"function"==typeof r[t])try{r=r[t](...n(t,o))}catch(e){console.warn(`调用 Joi 方法 ${t} 失败:`,e)}else console.warn(`Joi schema 上不存在方法: ${t}`)}),i||(r=(r=r.optional().allow("")).optional().allow(null)),r}function c(e){let t=[],r=new Set,n=new Set,i=new Map;e.forEach(e=>{i.set(e.name,e)});let o=e=>{if(n.has(e.name))throw Error(`Circular dependency detected: ${e.name} inherits from itself through a chain`);if(!r.has(e.name)){for(let t of(n.add(e.name),e.inherits||[])){let r=i.get(t);if(!r){console.warn(`Warning: Collection ${t}, inherited by ${e.name}, not found.`);continue}o(r)}n.delete(e.name),r.add(e.name),t.push(e)}};for(let t of e)o(t);return t}class d{setFlowEngine(e){this.flowEngine=e}addDataSource(e){if(this.dataSources.has(e.key))throw Error(`DataSource with name ${e.key} already exists`);e instanceof h||(e=new(e.use||h)(e)),this.dataSources.set(e.key,e),e.setDataSourceManager(this)}upsertDataSource(e){if(this.dataSources.has(e.key)){var t;null==(t=this.dataSources.get(e.key))||t.setOptions(e)}else this.addDataSource(e)}removeDataSource(e){this.dataSources.delete(e)}clearDataSources(){this.dataSources.clear()}getDataSources(){return Array.from(this.dataSources.values())}getDataSource(e){return this.dataSources.get(e)}getCollection(e,t){let r=this.getDataSource(e);if(r)return r.collectionManager.getCollection(t)}getCollectionField(e){let[t,...r]=e.split("."),n=this.getDataSource(t);if(n)return n.getCollectionField(r.join("."))}constructor(){(0,n._)(this,"dataSources",void 0),(0,n._)(this,"flowEngine",void 0),this.dataSources=i.observable.shallow(new Map)}}class h{get flowEngine(){return this.dataSourceManager.flowEngine}get displayName(){return this.flowEngine.translate(this.options.displayName,{ns:"lm-collections"})||this.key}get key(){return this.options.key}get name(){return this.options.key}setDataSourceManager(e){this.dataSourceManager=e}getCollections(){return this.collectionManager.getCollections()}getCollection(e){return this.collectionManager.getCollection(e)}getAssocation(e){return this.getAssociation(e)}getAssociation(e){return this.collectionManager.getAssociation(e)}addCollection(e){return this.collectionManager.addCollection(e)}updateCollection(e){return this.collectionManager.updateCollection(e)}upsertCollection(e){return this.collectionManager.upsertCollection(e)}upsertCollections(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.collectionManager.upsertCollections(e,t)}removeCollection(e){return this.collectionManager.removeCollection(e)}clearCollections(){this.collectionManager.clearCollections()}setOptions(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};Object.keys(this.options).forEach(e=>delete this.options[e]),Object.assign(this.options,e)}getCollectionField(e){let[t,...r]=e.split("."),n=r.join("."),i=this.getCollection(t);if(!i)return;let o=i.getFieldByPath(n);if(o)return o}constructor(e={}){(0,n._)(this,"dataSourceManager",void 0),(0,n._)(this,"collectionManager",void 0),(0,n._)(this,"options",void 0),this.options=(0,i.observable)({...e}),this.collectionManager=new p(this)}}class p{get flowEngine(){return this.dataSource.flowEngine}addCollection(e){let t;(t=e instanceof f?e:new f(e)).setDataSource(this.dataSource),t.initInherits(),this.collections.set(t.name,t)}removeCollection(e){this.collections.delete(e)}updateCollection(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=this.getCollection(e.name);if(!r)throw Error(`Collection ${e.name} not found`);r.setOptions(e,t)}upsertCollection(e){return this.collections.has(e.name)?this.updateCollection(e):this.addCollection(e),this.getCollection(e.name)}upsertCollections(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};for(let r of c(e))this.collections.has(r.name)?this.updateCollection(r,t):this.addCollection(r)}sortCollectionsByInherits(e){let t=new Map;for(let r of e)t.set(r.name,r);let r={},n={};for(let t of e)r[t.name]=new Set,n[t.name]=0;for(let t of e)for(let e of t.inherits||[])r[e]||(r[e]=new Set),r[e].add(t.name),n[t.name]=(n[t.name]||0)+1;let i=[];for(let e in n)0===n[e]&&i.push(e);let o=[];for(;i.length;){let e=i.shift();for(let l of(t.has(e)&&o.push(t.get(e)),r[e]||[]))n[l]--,0===n[l]&&i.push(l)}if(o.length!==e.length)throw Error("Collection inherits has circular dependency!");return o}getCollection(e){if(e.includes(".")){let[t,r]=e.split("."),n=this.getCollection(t);if(!n)throw Error(`Collection ${t} not found in data source ${this.dataSource.key}`);let i=n.getField(r);if(!i)throw Error(`Field ${r} not found in collection ${t}`);return i.targetCollection}return this.collections.get(e)}getCollections(){return l().sortBy(Array.from(this.collections.values()).filter(e=>!e.hidden),"sort")}clearCollections(){this.collections.clear()}getAssociation(e){let[t,r]=e.split("."),n=this.getCollection(t);if(!n)throw Error(`Collection ${t} not found in data source ${this.dataSource.key}`);return n.getField(r)}getChildrenCollections(e){let t=[],r=Array.from(this.collections.values()),n=e=>(r.filter(t=>{var r;return null==(r=t.options.inherits)?void 0:r.includes(e)}).forEach(e=>{let r=e.name;return t.push(e),n(r)}),t);return n(e)}getChildrenCollectionsName(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],r=t?"supportView":"notSupportView";if(this.childrenCollectionsName[r])return this.childrenCollectionsName[r].slice();let n=[],i=[...this.getCollections()],o=e=>(i.filter(t=>{var r;return r=[...t.inherits],r.includes(e)}).forEach(e=>{let t=e.name;return n.push(t),o(t)}),t&&i.filter(t=>{var r;return r=[...t.sources],r.length===1&&(null==t?void 0:t.sources[0])===e}).forEach(e=>{let t=e.name;return n.push(e.name),o(t)}),l().uniq(n));return this.childrenCollectionsName[r]=o(e),this.childrenCollectionsName[r]}getAllCollectionsInheritChain(e){if(this.allCollectionsInheritChain)return this.allCollectionsInheritChain.slice();let t=[e],r=e=>{let n=this.getCollection(e);if(n){let{inherits:i}=n,o=this.getChildrenCollectionsName(e);if(i)for(let e=0;e<i.length;e++){let n=i[e];t.includes(n)||(t.push(n),r(n))}if(o)for(let e=0;e<o.length;e++){let n=this.getCollection(o[e]).name;t.includes(n)||(t.push(n),r(n))}}return t};return this.allCollectionsInheritChain=r(e),this.allCollectionsInheritChain||[]}constructor(e){(0,n._)(this,"dataSource",void 0),(0,n._)(this,"collections",void 0),(0,n._)(this,"allCollectionsInheritChain",void 0),(0,n._)(this,"childrenCollectionsName",void 0),this.dataSource=e,this.childrenCollectionsName={},this.collections=i.observable.shallow(new Map)}}class f{clone(){let e=new f(l().cloneDeep(this.options));return e.setDataSource(this.dataSource),e}getFilterByTK(e){if(!e)throw Error("Record is required to get filterByTk");if(Array.isArray(e))return e.map(e=>this.getFilterByTK(e));if(!this.filterTargetKey)throw Error(`filterTargetKey is not defined for collection ${this.name}`);return"string"==typeof this.filterTargetKey?e[this.filterTargetKey]:Array.isArray(this.filterTargetKey)&&1===this.filterTargetKey.length?e[this.filterTargetKey[0]]:l().pick(e,this.filterTargetKey)}get titleableFields(){return this.getFields().filter(e=>e.titleable)}get hidden(){return this.options.hidden||!1}get flowEngine(){return this.dataSource.flowEngine}get collectionManager(){return this.dataSource.collectionManager}get sort(){return this.options.sort||0}get filterTargetKey(){return this.options.filterTargetKey}get dataSourceKey(){return this.dataSource.key}get name(){return this.options.name}get template(){return this.options.template}get storage(){return this.options.storage||"local"}get title(){return this.flowEngine.translate(this.options.title,{ns:"lm-collections"})||this.name}get titleCollectionField(){let e=this.options.titleField||this.filterTargetKey;return this.getField(e)}initInherits(){for(let e of(this.inherits.clear(),this.options.inherits||[])){let t=this.collectionManager.getCollection(e);if(!t){console.warn(`Warning: Collection ${e} not found for collection ${this.name}`);continue}this.inherits.set(e,t)}}setDataSource(e){this.dataSource=e}setOptions(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};Object.keys(this.options).forEach(e=>delete this.options[e]),Object.assign(this.options,e),this.initInherits(),t.clearFields&&this.clearFields(),this.upsertFields(this.options.fields||[])}getFields(){let e=new Map;for(let t of this.inherits.values())if(t&&"function"==typeof t.getFields)for(let r of t.getFields())e.set(r.name,r);for(let[t,r]of this.fields.entries())e.set(t,r);return Array.from(e.values())}getToOneAssociationFields(){return this.getAssociationFields(["one"])}getAssociationFields(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return e.includes("new")?this.getFields().filter(e=>["hasMany","belongsToMany","belongsToArray"].includes(e.type)):e.includes("many")&&e.includes("one")?this.getFields().filter(e=>e.isAssociationField()):e.includes("many")?this.getFields().filter(e=>["hasMany","belongsToMany","belongsToArray"].includes(e.type)):e.includes("one")?this.getFields().filter(e=>["hasOne","belongsTo"].includes(e.type)):this.getFields().filter(e=>e.isAssociationField())}mapFields(e){return this.getFields().map(e)}setFields(e){for(let t of(this.fields.clear(),e))this.addField(t)}upsertFields(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];for(let t of e)this.fields.has(t.name)?this.fields.get(t.name).setOptions(t):this.addField(t)}getFieldByPath(e){let[t,...r]=e.split("."),n=this.getField(t);return 0===r.length?n:(null==n?void 0:n.targetCollection)?n.targetCollection.getFieldByPath(r.join(".")):null}getField(e){return this.fields.get(e)}getFullFieldPath(e){return this.dataSource.key+"."+this.name+"."+e}addField(e){if(e.name&&this.fields.has(e.name))throw Error(`Field with name ${e.name} already exists in collection ${this.name}`);if(e instanceof g)e.setCollection(this),this.fields.set(e.name,e);else{let t=new g(e);t.setCollection(this),this.fields.set(t.name,t)}}removeField(e){return this.fields.delete(e)}clearFields(){return this.fields.clear()}refresh(){}getRelationshipFields(){let e=["o2o","oho","obo","m2o","createdBy","updatedBy","o2m","m2m","linkTo","chinaRegion","mbm"];return this.getFields().filter(t=>e.includes(t.interface))}getRelatedCollections(){let e=this.getRelationshipFields(),t=[],r=new Set;for(let n of e)if(n.target&&!r.has(n.target)){let e=this.collectionManager.getCollection(n.target);e&&e.name!==this.name&&(t.push(e),r.add(n.target))}return t}hasRelationshipFields(){return this.getRelationshipFields().length>0}constructor(e={}){(0,n._)(this,"fields",void 0),(0,n._)(this,"options",void 0),(0,n._)(this,"inherits",void 0),(0,n._)(this,"dataSource",void 0),this.options=(0,i.observable)({...e}),this.fields=i.observable.shallow(new Map),this.inherits=i.observable.shallow(new Map),this.setFields(e.fields||[])}}class g{setOptions(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};Object.keys(this.options).forEach(e=>delete this.options[e]),Object.assign(this.options,e)}setCollection(e){this.collection=e}get targetCollectionTitleFieldName(){var e,t;return null==(t=this.targetCollection)||null==(e=t.titleCollectionField)?void 0:e.name}get targetCollectionTitleField(){var e;return null==(e=this.targetCollection)?void 0:e.titleCollectionField}get flowEngine(){return this.collection.flowEngine}get dataSourceKey(){var e;return null==(e=this.collection)?void 0:e.dataSourceKey}get resourceName(){return`${this.collection.name}.${this.name}`}get collectionName(){var e;return(null==(e=this.collection)?void 0:e.name)||this.options.collectionName}get readonly(){var e;return this.options.readonly||(null==(e=this.options.uiSchema)?void 0:e["x-read-pretty"])||!1}get titleable(){return!!(this.options.titleable??this.options.titleUsable)}get fullpath(){return this.collection.dataSource.key+"."+this.collection.name+"."+this.name}get name(){return this.options.name}get type(){return this.options.type}get dataType(){return this.options.dataType}get foreignKey(){return this.options.foreignKey}get targetKey(){return this.options.targetKey||this.targetCollection.filterTargetKey}get sourceKey(){return this.options.sourceKey}get target(){return this.options.target}get title(){var e,t,r;let n=(null==(t=this.options)||null==(e=t.uiSchema)?void 0:e.title)||(null==(r=this.options)?void 0:r.title);return this.flowEngine.translate(n,{ns:"lm-collections"})||this.options.name}set title(e){this.options.title=e}get enum(){var e;let t=(null==(e=this.options.uiSchema)?void 0:e.enum)||[];return"integer"===this.type?t.map(e=>"object"!=typeof e||null===e.value||void 0===e.value?e:{...e,label:e.label?this.flowEngine.translate(e.label,{ns:"lm-collections"}):e.label,value:Number(e.value)}):t.map(e=>({...e,label:this.flowEngine.translate(e.label,{ns:"lm-collections"})}))}get defaultValue(){return null==this.options.defaultValue?void 0:this.options.defaultValue}get interface(){return this.options.interface}get filterable(){var e;return this.options.filterable||(null==(e=this.getInterfaceOptions())?void 0:e.filterable)}get inputable(){return this.options.inputable}get uiSchema(){return this.options.uiSchema||{}}get targetCollection(){var e;return this.options.target&&(null==(e=this.collection)?void 0:e.collectionManager.getCollection(this.options.target))}get validation(){return this.options.validation}getComponentProps(){var e,t;let{type:r,target:n}=this.options,i=l().omitBy({...l().omit((null==(e=this.options.uiSchema)?void 0:e["x-component-props"])||{},"fieldNames"),options:this.enum.length?this.enum:void 0,mode:"array"===this.type?"multiple":void 0,multiple:n?["belongsToMany","hasMany","belongsToArray"].includes(r):void 0,maxCount:n&&!["belongsToMany","hasMany","belongsToArray"].includes(r)?1:void 0,target:n,template:null==(t=this.targetCollection)?void 0:t.template},l().isUndefined);if(this.validation){let e=[],t=u(this.validation),r=this.title;e.push({validator:(e,n)=>{let{error:i}=t.validate(n,{context:{label:r},abortEarly:!1});return i?Promise.reject(i.details.map(e=>e.message.replace(/"value"/g,`"${r}"`)).join(", ")):Promise.resolve()}}),i.rules=e}return i}getFields(){if(!this.options.target)return[];if(!this.targetCollection)throw Error(`Target collection ${this.options.target} not found for field ${this.name}`);return this.targetCollection.getFields()}getInterfaceOptions(){return this.flowEngine.context.app.dataSourceManager.collectionFieldInterfaceManager.getFieldInterface(this.interface)}getFilterOperators(){var e;let t=this.getInterfaceOptions();return(null==t||null==(e=t.filterable)?void 0:e.operators)||[]}getSubclassesOf(e){return this.flowEngine.getSubclassesOf(e,(e,t)=>m(e.supportedFieldInterfaces,this.interface))}getFirstSubclassNameOf(e){for(let[t,r]of this.getSubclassesOf(e))if("*"!==r.supportedFieldInterfaces)return t}isAssociationField(){return["belongsToMany","belongsTo","hasMany","hasOne","belongsToArray"].includes(this.type)}isRelationshipField(){return["o2o","oho","obo","m2o","createdBy","updatedBy","o2m","m2m","linkTo","chinaRegion","mbm"].includes(this.interface)}constructor(e){(0,n._)(this,"options",void 0),(0,n._)(this,"collection",void 0),this.options=(0,i.observable)({...e})}}function m(e,t){return!!e&&("*"===e||("string"==typeof e?e===t:!!Array.isArray(e)&&(e.includes("*")||e.includes(t))))}},48036(e,t,r){r.d(t,{v:()=>i});var n=r(50467);class i{setPaused(e){this.paused=e}on(e,t){var r,n;((r=this.events)[n=e]||(r[n]=[])).push(t)}off(e,t){this.events[e]=(this.events[e]||[]).filter(e=>e!==t)}emit(e){for(var t=arguments.length,r=Array(t>1?t-1:0),n=1;n<t;n++)r[n-1]=arguments[n];this.paused||(this.events[e]||[]).forEach(e=>e(...r))}async emitAsync(e){for(var t=arguments.length,r=Array(t>1?t-1:0),n=1;n<t;n++)r[n-1]=arguments[n];if(!this.paused)for(let t of(this.events[e]||[]).slice())await t(...r)}constructor(){(0,n._)(this,"events",{}),(0,n._)(this,"paused",!1)}}},26955(e,t,r){r.d(t,{L:()=>i});var n=r(50467);class i{onEventRegistered(){}registerEvents(e){for(let[,t]of Object.entries(e||{}))this.registerEvent(t)}registerEvent(e){if(!(null==e?void 0:e.name))throw Error("Event must have a name.");this.events.has(e.name)&&console.warn(`Event '${e.name}' is already registered. It will be overwritten.`),this.events.set(e.name,e),this.onEventRegistered()}constructor(){(0,n._)(this,"events",new Map)}}},29007(e,t,r){r.d(t,{W5:()=>eM,uk:()=>eW,Hl:()=>ek,o0:()=>e_,d6:()=>eA,cB:()=>ep,Bt:()=>eN});var n=r(58587),i=r(18150),o=r(68238),l=r(88243),s=r(16213),a=r(50467),u=r(95243),c=r(37015),d=r(2543),h=r.n(d),p=r(55373),f=r.n(p),g=r(96540),m=r(5338),y=r.t(m,2),v=r(63128);class w{setData(e){this.data=h().cloneDeep(e)}setMeta(e){this.meta=h().cloneDeep(e)}async load(){var e,t,r,n;let i=(null==(n=this.flowEngine)||null==(r=n.context)||null==(t=r.api)||null==(e=t.auth)?void 0:e.token)||"";this.loaded&&this.lastToken!==i&&(this.loaded=!1,this.loadingPromise=null,this.data={},this.meta={});let{data:o}=await this.flowEngine.context.api.request({url:"roles:check"});this.data=(null==o?void 0:o.data)||{},this.meta=(null==o?void 0:o.meta)||{},this.loaded=!0,this.lastToken=i,await this.loadingPromise}getActionAlias(e){var t;return(null==(t=this.data.actionAlias)?void 0:t[e])||e}inResources(e,t){var r,n,i;let{dataSources:o}=(null==(r=this)?void 0:r.meta)||{};return null==(i=({...this.data,...(0,d.omit)(null==o?void 0:o[t],"snippets")}).resources)||null==(n=i.includes)?void 0:n.call(i,e)}getResourceActionParams(e,t,r){var n,i,o;let l=this.getActionAlias(t),{dataSources:s}=(null==(n=this)?void 0:n.meta)||{},a={...this.data,...(0,d.omit)(null==s?void 0:s[r],"snippets")};return(null==(i=a.actions)?void 0:i[`${e}:${l}`])||(null==(o=a.actions)?void 0:o[t])}getStrategyActionParams(e,t){var r,n,i;let o=this.getActionAlias(e),{dataSources:l}=(null==(r=this)?void 0:r.meta)||{},s={...this.data,...(0,d.omit)(null==l?void 0:l[t],"snippets")};return(null==s||null==(i=s.strategy)||null==(n=i.actions)?void 0:n.find(e=>{let[t]=e.split(":");return t===o}))?{}:null}parseAction(e){var t;let{resourceName:r,actionName:n,dataSourceKey:i="main",recordPkValue:o,allowedActions:l}=e,s=(null==r?void 0:r.includes("."))&&(null==(t=this.flowEngine.context.dataSourceManager.getDataSource(i).collectionManager.getAssociation(r))?void 0:t.target);return this.getIgnoreScope(e)||this.verifyScope(n,o,l)?this.inResources(s,i)?this.getResourceActionParams(s,n,i):this.inResources(r,i)?this.getResourceActionParams(r,n,i):this.getStrategyActionParams(n,i):null}parseField(e){let{fields:t}=e,r=this.parseAction(e),n=[].concat((null==r?void 0:r.whitelist)||[]).concat((null==r?void 0:r.fields)||[]).concat((null==r?void 0:r.appends)||[]);return!!r&&!Object.keys(r).length||n.includes(t[0])}async aclCheck(e){let{allowAll:t}=this.data;return!!t||(e.fields?this.parseField(e):this.parseAction(e))}constructor(e){(0,a._)(this,"flowEngine",void 0),(0,a._)(this,"data",void 0),(0,a._)(this,"meta",void 0),(0,a._)(this,"loaded",void 0),(0,a._)(this,"loadingPromise",void 0),(0,a._)(this,"lastToken",void 0),(0,a._)(this,"getIgnoreScope",void 0),(0,a._)(this,"verifyScope",void 0),this.flowEngine=e,this.data={},this.meta={},this.loaded=!1,this.loadingPromise=null,this.lastToken=null,this.getIgnoreScope=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},{recordPkValue:t,allowedActions:r,actionName:n}=e,i=!1;return e.ignoreScope&&(i=!0),"create"===n&&(i=!0),t&&r||(i=!0),i},this.verifyScope=(e,t,r)=>{let n=this.getActionAlias(e),i=null==r?void 0:r[n];return Array.isArray(i)?i.map(e=>String(e)).includes(String(t)):null}}}let b=Symbol.toPrimitive;class x{toString(){return`{{${this.path.join(".")}}}`}valueOf(){return this.toString()}[b](){return this.toString()}static create(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:["ctx"];return new Proxy(new x(e),{get(t,r,n){if("symbol"==typeof r)return;if(r in t){let e=t[r];return"function"==typeof e?e.bind(t):e}let i=[...e,r.toString()];return x.create(i)}})}constructor(e){(0,a._)(this,"path",void 0),this.path=e}}var S=r(76546),_=r(81440);class A{translate(e,t){return!e||"string"!=typeof e||(null==t?void 0:t.compareWith)&&e===t.compareWith?e:this.isTemplate(e)?this.compileTemplate(e):this.translateKey(e,t)}translateKey(e,t){var r,n;return(null==(n=this.context)||null==(r=n.i18n)?void 0:r.t)?this.context.i18n.t(e,t):e}isTemplate(e){return/\{\{\s*t\s*\(\s*["'`].*?["'`]\s*(?:,\s*.*?)?\s*\)\s*\}\}/g.test(e)}compileTemplate(e){return e.replace(/\{\{\s*t\s*\(\s*["'`](.*?)["'`]\s*(?:,\s*((?:[^{}]|\{[^}]*\})*?))?\s*\)\s*\}\}/g,(e,t,r)=>{try{let n={};if(r&&(r=r.trim()).startsWith("{")&&r.endsWith("}"))try{n=Function("$root",`with($root) { return (${r}); }`)({})}catch(t){return e}return this.translateKey(t,n)}catch(t){return console.warn(`FlowEngine: Failed to compile template "${e}":`,t),e}})}constructor(e){(0,a._)(this,"context",void 0),this.context=e}}var k=r(91013),M=r(99784),E=r(48555),j=r(31108),R=r(35339),P=r(22928),C=r(73398),F=r(37966),T=r(62572),I=r(74353),$=r.n(I),O=r(98192),D=r(47684),N=r(51143);function B(e){try{if(!e||"object"!=typeof e&&"function"!=typeof e)return[];return Object.getOwnPropertyNames(e)}catch(e){return[]}}function L(e,t){if(!e.length)return[];if(!t.length)return[...e];let r=new Set(t),n=[];for(let t of e)r.has(t)||n.push(t);return n}async function z(e){let t,r=globalThis;r.__nocobaseRunjsModuleLoadLock=(r.__nocobaseRunjsModuleLoadLock||Promise.resolve()).catch(()=>{});let n=r.__nocobaseRunjsModuleLoadLock,i=new Promise(e=>{t=e});r.__nocobaseRunjsModuleLoadLock=n.then(()=>i),await n;try{return await e()}finally{null==t||t()}}function q(){let e=globalThis,t=null==e?void 0:e.define,r=null==t?void 0:t.amd;if(!t||!r)return()=>{};let n=Object.getOwnPropertyDescriptor(t,"amd"),i=!!n,o=r;try{(null==n?void 0:n.writable)?t.amd=void 0:(null==n?void 0:n.configurable)?delete t.amd:t.amd=void 0}catch(e){}return()=>{try{if(i&&n)return void Object.defineProperty(t,"amd",n);t.amd=o}catch(e){}}}function W(){var e,t;let r=globalThis,n=null==r||null==(e=r.requirejs)?void 0:e.requirejs,i=null==n||null==(t=n.s)?void 0:t.contexts;if(!i||"object"!=typeof i)return!1;for(let e of Object.keys(i)){let t=i[e],r=null==t?void 0:t.registry;if(r&&"object"==typeof r)for(let e of Object.keys(r)){let t=r[e];if(!t||"object"!=typeof t||!t.enabled||t.error)continue;let n=t.map;if(n&&"object"==typeof n&&!t.inited&&t.fetched&&n.isDefine)return!0}}return!1}async function V(e){let t=Math.max(0,(null==e?void 0:e.timeoutMs)??1500),r=Math.max(10,(null==e?void 0:e.pollMs)??30);if(0===t)return;let n=Date.now();for(;W();){if(Date.now()-n>=t)return;await new Promise(e=>setTimeout(e,r))}}async function U(e,t){let r="string"==typeof e?e.trim():"";if(!r)return;let n=globalThis;n.__nocobaseImportAsyncPrefetchCache=n.__nocobaseImportAsyncPrefetchCache||new Map;let i=n.__nocobaseImportAsyncPrefetchCache;if(i.has(r))return await i.get(r);let o=Math.max(0,(null==t?void 0:t.timeoutMs)??5e3),l=(async()=>{try{var e,t,n;if("u">typeof document&&(null==(e=document)?void 0:e.createElement)){let e=new URL(r,(null==(n=globalThis)||null==(t=n.location)?void 0:t.href)||void 0).toString(),i=document.head||document.getElementsByTagName("head")[0];if(i){let t=`link[rel="modulepreload"][href="${e}"]`;if(!document.querySelector(t)){let t=document.createElement("link");return t.rel="modulepreload",t.href=e,t.crossOrigin="anonymous",await new Promise(e=>{let r=!1,n=()=>{r||(r=!0,t.onload=null,t.onerror=null,e())},l=o>0?setTimeout(()=>{n()},o):void 0;t.onload=()=>{l&&clearTimeout(l),n()},t.onerror=()=>{l&&clearTimeout(l),n()},i.appendChild(t)})}}}}catch(e){}try{if("function"!=typeof fetch)return;let e="function"==typeof AbortController?new AbortController:void 0,t=e&&o>0?setTimeout(()=>{try{e.abort()}catch(e){}},o):void 0,n=await fetch(r,{method:"GET",mode:"cors",credentials:"omit",cache:"force-cache",signal:null==e?void 0:e.signal});if(t&&clearTimeout(t),n&&n.ok&&"function"==typeof n.arrayBuffer)try{await n.arrayBuffer()}catch(e){}}catch(e){}})().catch(()=>{});return i.set(r,l),await l}async function K(e,t){return await z(async()=>{let r,n,i="u">typeof window?B(window):[],o="u">typeof document?B(document):[];try{r=await new Promise((r,n)=>{e?e([t],function(){for(var e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n];r(t[0])},n):n(Error("requirejs is not available"))})}catch(e){n=e}finally{let e="u">typeof window?B(window):[],t="u">typeof document?B(document):[],r=L(e,i),n=L(t,o);(0,N.Vm)(r),(0,N.yz)(n)}if(n)throw n;return r})}async function H(e){var t,r;if(!e||"string"!=typeof e)throw Error("invalid url");let n=e.trim(),i=!!(null==(r=globalThis)||null==(t=r.define)?void 0:t.amd);return i&&await U(n),await z(async()=>{await V();let e=i?q():()=>{};try{let e=()=>import(n),t=()=>(0,eval)("u => import(u)")(n);try{return await e()}catch(e){try{return await t()}catch(t){throw t||e}}}finally{e()}})}function J(e){let t=e.indexOf("?"),r=e.indexOf("#"),n=t>=0&&r>=0?Math.min(t,r):t>=0?t:r;return n>=0?e.slice(0,n):e}function Y(e){if(!e||"string"!=typeof e)return null;let t=J(e).trim();if(!t||t.startsWith("http://")||t.startsWith("https://"))return null;let r=t.replace(/^\//,"");if(!r)return null;if(r.startsWith("@")){let e=r.match(/^(@[^/]+\/[^/]+?)(?:@([^/]+))?(?:\/(.*))?$/);return e?{name:e[1],version:e[2],subpath:e[3]}:null}let n=r.match(/^([^/]+?)(?:@([^/]+))?(?:\/(.*))?$/);return n?{name:n[1],version:n[2],subpath:n[3]}:null}function G(e,t){if(!e||"string"!=typeof e)return e;let r=e.trim(),n=r.indexOf("#"),i=n>=0?r.slice(0,n):r,o=n>=0?r.slice(n):"",l=i.indexOf("?"),s=l>=0?i.slice(0,l):i,a=new URLSearchParams(l>=0?i.slice(l+1):"");for(let[e,r]of Object.entries(t))e&&(a.has(e)||a.set(e,r));let u=a.toString();return u?`${s}?${u}${o}`:`${s}${o}`}function Z(){let e=globalThis;if("string"==typeof(null==e?void 0:e.__esm_cdn_base_url__))return e.__esm_cdn_base_url__;let t="u">typeof window?window:null==e?void 0:e.window;return"string"==typeof(null==t?void 0:t.__esm_cdn_base_url__)?t.__esm_cdn_base_url__:"https://esm.sh"}function X(e){if(e&&"object"==typeof e&&"default"in e){let t=Object.keys(e);if(1===t.length&&"default"===t[0])return e.default}return e}async function Q(e,t,r){if(!t||"string"!=typeof t)throw Error("invalid url");let n=t,i=Y(t);if((null==i?void 0:i.name)==="antd"&&!i.subpath&&"string"==typeof Z()){let t={bundle:"1"},r=null==e?void 0:e.__runjsExternalReact,i=null==r?void 0:r.version;i&&"string"==typeof i&&(t.deps=`react@${i},react-dom@${i}`),n=G(n,t)}let o=(0,D.i)(n,{addSuffix:(null==r?void 0:r.addSuffix)??!0}),l=(null==r?void 0:r.importer)||H,s=globalThis;s.__nocobaseImportAsyncCache=s.__nocobaseImportAsyncCache||new Map;let a=s.__nocobaseImportAsyncCache,u=a.get(o)||(async()=>X(await l(o)))();a.set(o,u);let c=await u,d=null==e?void 0:e.libs;if(!d||"object"!=typeof d)return c;let h=Y(n);if(!h)return c;let p=h.subpath||"";if("react"!==h.name||p)"react-dom"===h.name&&("client"===p||p.startsWith("client/"))?((0,O.qf)(e,"ReactDOM",c),e.__runjsExternalReactDOM={specifier:t,version:h.version,url:o}):"antd"!==h.name||p?"@ant-design/icons"!==h.name||p||((0,O.qf)(e,"antdIcons",c,{topLevelKey:!1}),e.__runjsExternalAntdIcons={specifier:t,version:h.version,url:o}):((0,O.qf)(e,"antd",c),e.__runjsExternalAntd={specifier:t,version:h.version,url:o});else{(0,O.qf)(e,"React",c),e.__runjsExternalReact={specifier:t,version:h.version,url:o};let r=h.version?`react-dom@${h.version}/client`:"react-dom/client";try{await e.importAsync(r)}catch(n){let e=Error(`External React has been loaded via ctx.importAsync("${t}"), but auto-loading "${r}" failed.
|
|
9
|
+
Please run: await ctx.importAsync("${r}") to ensure ctx.render uses a matching ReactDOM.`);throw e.cause=n,e}}return c}function ee(e){return!!(e&&"object"==typeof e&&"collection"in e&&"filterByTk"in e)}function et(e,t){if(t&&0!==t.length){if(ee(e))return e;if(e&&"object"==typeof e&&!Array.isArray(e)){let r={};for(let[n,i]of Object.entries(e))t.some(e=>e===n||e.startsWith(`${n}.`)||e.startsWith(`${n}[`))&&(r[n]=i);return r}}}function er(e){if(!e)return;let t=String(e).match(/^([^.[]+)/);return null==t?void 0:t[1]}function en(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];if(!Array.isArray(e)||0===e.length)return{generatedAppends:void 0,generatedFields:void 0};let t=new Set,r=new Set,n=e=>{if(!e)return"";let t=String(e);return(t=(t=(t=t.replace(/\[(?:\d+)\]/g,"")).replace(/\[(?:"((?:[^"\\]|\\.)*)"|'((?:[^'\\]|\\.)*)')\]/g,(e,t,r)=>`.${t||r}`)).replace(/\.\.+/g,".")).replace(/^\./,"").replace(/\.$/,"")};for(let i of e){if(!i)continue;for(;/^\[(\d+)\](\.|$)/.test(i);)i=i.replace(/^\[(\d+)\]\.?/,"");let e=n(i);if(!e)continue;let o=e.split(".").filter(Boolean);if(0!==o.length){if(1===o.length){r.add(o[0]);continue}for(let e=0;e<o.length-1;e++)t.add(o.slice(0,e+1).join("."));r.add(o.join("."))}}return{generatedAppends:t.size?Array.from(t):void 0,generatedFields:r.size?Array.from(r):void 0}}var ei=new WeakMap,eo=new WeakSet,el=new WeakSet,es=new WeakSet,ea=new WeakSet,eu=new WeakSet,ec=new WeakSet,ed=new WeakSet,eh=new WeakSet;class ep{createProxy(){return(0,n._)(this,ei)||(0,o._)(this,ei,new Proxy(this,{get:(e,t,r)=>{if("string"==typeof t){if(Reflect.has(e,t)){let n=Reflect.get(e,t,r);return"function"==typeof n?n.bind(e):n}if(Object.prototype.hasOwnProperty.call(e._props,t))return e._getOwnProperty(t,this.createProxy());if(Object.prototype.hasOwnProperty.call(e._methods,t))return e._getOwnMethod(t,this.createProxy());let n=this._findInDelegates(e._delegates,t);return void 0!==n?n.result:void 0}return Reflect.get(e,t,r)},has:(e,t)=>!!("string"==typeof t&&(Reflect.has(e,t)||Object.prototype.hasOwnProperty.call(e._props,t)||Object.prototype.hasOwnProperty.call(e._methods,t)||this._hasInDelegates(e._delegates,t)))||Reflect.has(e,t)})),(0,n._)(this,ei)}defineProperty(e,t){var r;if(this._props[e]&&(null==(r=this._props[e])?void 0:r.once))return;let n=this._props[e];(null==n?void 0:n.meta)&&this._clearMetaNodeCacheFor(n.meta),this._props[e]=t,delete this._observableCache[e],delete this._cache[e],Object.defineProperty(this,e,{configurable:!0,enumerable:!0,get:()=>this._getOwnProperty(e,this.createProxy())})}defineMethod(e,t,r){this._methods[e]=t,"string"==typeof r?this._methodInfos[e]={description:r}:r&&"object"==typeof r?this._methodInfos[e]=r:delete this._methodInfos[e],Object.defineProperty(this,e,{configurable:!0,enumerable:!1,writable:!1,value:t.bind(this.createProxy())})}removeCache(e){if(e in this._observableCache)return delete this._observableCache[e],!0;if(e in this._cache)return delete this._cache[e],!0;if(e in this._pending)return delete this._pending[e],!0;for(let t of this._delegates)if(t.removeCache(e))return!0}delegate(e){if(!(e instanceof ep))throw Error("Delegate must be an instance of FlowContext");this._delegates.includes(e)?console.warn(`[FlowContext] delegate - skip duplicate delegate: ${this._delegates.length}`):this._delegates.unshift(e)}addDelegate(e){if(!(e instanceof ep))throw Error("Delegate must be an instance of FlowContext");this._delegates.includes(e)||this._delegates.unshift(e)}clearDelegates(){this._delegates=[],this._metaNodeCache=new WeakMap}removeDelegate(e){if(!(e instanceof ep))throw Error("Delegate must be an instance of FlowContext");let t=this._delegates.indexOf(e);-1!==t&&this._delegates.splice(t,1)}_clearMetaNodeCacheFor(e){this._metaNodeCache.delete(e)}has(e){return!!this._props[e]}getPropertyMetaTree(e,t){let r=this._getPropertiesMeta();if(e){let r=(0,E.YB)(e);if(r&&r.length>0){let e=async(e,t,r)=>{try{let r="function"==typeof e?await e():e;if(!(null==r?void 0:r.properties))return[];let n=r.properties;if("function"==typeof n){let e=await n();r.properties=e,n=e}let i=(0,l._)(this,eo,ef).call(this,n,t,[],r);return Array.isArray(i)?i:await i()}catch(e){return console.warn(`Failed to load meta for ${r}:`,e),[]}},n=(0,l._)(this,el,eg).call(this,r);if(n){let[i,o,s]=n;if(1===r.length){if("function"==typeof o)return()=>e(o,s,i);if(o.properties){if("function"==typeof o.properties)return()=>e(o,s,i);let t=(0,l._)(this,eo,ef).call(this,o.properties,s,[],o);return Array.isArray(t)?t:[]}return[]}if("function"==typeof o){if(null==t?void 0:t.flatten)return()=>e(o,s,i);let r=(0,l._)(this,ed,ew).call(this,s);return[(0,l._)(this,eh,eb).call(this,i,o,s,r)]}if(o.properties){let e=[...(0,l._)(this,ed,ew).call(this,s),o.title],t=(0,l._)(this,eo,ef).call(this,o.properties,s,e,o);return Array.isArray(t)?t:[]}}return[]}if(null===r)return console.warn(`[FlowContext] getPropertyMetaTree - unsupported value format: "${e}". Only "{{ ctx.propertyName }}" format is supported. Returning empty meta tree.`),[]}return Object.entries(r).sort((e,t)=>{let[,r]=e,[,n]=t,i=("function"==typeof r?r.sort:null==r?void 0:r.sort)??0;return(("function"==typeof n?n.sort:null==n?void 0:n.sort)??0)-i}).map(e=>{let[t,r]=e;return(0,l._)(this,eh,eb).call(this,t,r,[t],[])})}async getApiInfos(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.version||"v1",r=this.createProxy(),n=e=>"string"==typeof e&&e.startsWith("_"),i=e=>"record"===e||"formValues"===e||"popup"===e,o=e=>!!e&&("object"==typeof e||"function"==typeof e)&&"function"==typeof e.then,l=(()=>{var e,r,n,i,o,l,s,a;let u=(0,F.B)(this),c=F.F.resolve(t,u)||F.F.resolve(t,"*");if(!c)return{};let d=(null==(n=this)||null==(r=n.api)||null==(e=r.auth)?void 0:e.locale)||(null==(o=this)||null==(i=o.i18n)?void 0:i.language)||(null==(l=this)?void 0:l.locale);try{if(null==c||null==(s=c.getDoc)?void 0:s.length)return c.getDoc(d)||{};return(null==c||null==(a=c.getDoc)?void 0:a.call(c))||{}}catch(e){return{}}})(),s=eC(null==l?void 0:l.methods)?l.methods:{},a=eC(null==l?void 0:l.properties)?l.properties:{},u=e=>"string"==typeof e?{description:e}:eC(e)?e:void 0,c=(e,t)=>{let r="string"==typeof t?t:eC(t)&&"string"==typeof t.description?String(t.description):void 0;return r&&r.includes(`ctx.libs.${e}`)?`libs.${e}`:e},d=e=>{let t=u(e);if(!t)return{};let r={};for(let e of["description","examples","ref","params","returns"]){let n=t[e];void 0!==n&&(r[e]=n)}return Array.isArray(r.examples)&&(r.examples=r.examples.filter(e=>"string"==typeof e&&e.trim())),r},h=e=>{let t=u(e);if(!t)return{};let r={};for(let e of["title","type","interface","description","examples","ref","params","returns"]){let n=t[e];void 0!==n&&(r[e]=n)}return Array.isArray(r.examples)&&(r.examples=r.examples.filter(e=>"string"==typeof e&&e.trim())),r},p=e=>{let t=new WeakSet,r=n=>{if(!n||"object"!=typeof n||t.has(n))return;if(t.add(n),Object.prototype.hasOwnProperty.call(n._methodInfos||{},e)){var i;return null==(i=n._methodInfos)?void 0:i[e]}let o=n._delegates;if(Array.isArray(o))for(let e of o){let t=r(e);if(t)return t}};return r(this)},f=async e=>{let t=this.getPropertyOptions(e);if(null==t?void 0:t.info)try{let e="function"==typeof t.info?t.info.call(r,r):t.info;return(o(e)?await e:e)??void 0}catch(e){return}},g=new Set,m=new Set;for(let e of Object.keys(a))g.add(e);for(let e of Object.keys(s))m.add(e);let y=(e,t)=>{if(e&&"object"==typeof e&&!t.has(e)){t.add(e);try{let t=e._props;if(t&&"object"==typeof t)for(let[e,r]of Object.entries(t))(null==r?void 0:r.info)&&g.add(e)}catch(e){}try{let t=e._methodInfos;if(t&&"object"==typeof t)for(let e of Object.keys(t))m.add(e)}catch(e){}try{let r=e._delegates;if(Array.isArray(r))for(let e of r)y(e,t)}catch(e){}}};y(this,new WeakSet);let v={};for(let e of g){if(n(e)||i(e))continue;let t=a[e],r=await f(e);if(void 0===t&&void 0===r)continue;let o=u(t),l=u(r),s={};if(s={...s={...s,...h(o)},...h(l)},delete s.properties,delete s.completion,!Object.keys(s).length)continue;let d=c(e,t);v[d]=v[d]?{...v[d]||{},...s||{}}:s}for(let e of m){if(n(e))continue;let t=s[e],r=p(e);if(void 0===t&&void 0===r)continue;let i=u(t),o={};o={...o={...o,...d(i)},...d(r)},delete o.properties,delete o.completion,Object.keys(o).length&&(o.type="function",v[e]?v[e]={...v[e]||{},...o||{}}:v[e]=o)}let w=u(a.libs),b=eC(null==w?void 0:w.properties)?w.properties:void 0;if(b)for(let[e,t]of Object.entries(b)){if(n(e))continue;let r=`libs.${e}`;if(v[r])continue;let i=u(t),o={};o={...o,...h(i)},delete o.properties,delete o.completion,o.description&&String(o.description).trim()&&(v[r]=o)}return v}async getEnvInfos(){var e,t,r;let n=this.createProxy(),i=e=>!!e&&("object"==typeof e||"function"==typeof e)&&"function"==typeof e.then,o={},l=e=>{try{return e()}catch(e){return}},s=e=>null!=e&&("string"==typeof e?e.trim().length>0:!Array.isArray(e)||e.length>0),a=e=>{var t,r,n,i,o;let l={};if(!e)return l;let a=e;for(let e of["dataSourceKey","collectionName","associationName","filterByTk","sourceId"]){let t=null==a?void 0:a[e];s(t)&&(l[e]=t)}if(!("dataSourceKey"in l)){let e=null==(t=a.getDataSourceKey)?void 0:t.call(a);s(e)&&(l.dataSourceKey=e)}if(!("filterByTk"in l)){let e=null==(r=a.getFilterByTk)?void 0:r.call(a);s(e)&&(l.filterByTk=e)}if(!("filterByTk"in l)){let e=null==(n=a.getMeta)?void 0:n.call(a,"currentFilterByTk");s(e)&&(l.filterByTk=e)}if(!("sourceId"in l)){let e=null==(i=a.getSourceId)?void 0:i.call(a);s(e)&&(l.sourceId=e)}if(!("collectionName"in l)||!("associationName"in l)){let e=null==(o=a.getResourceName)?void 0:o.call(a),t="string"==typeof e?e.trim():"";if(t){let e=t.split(".").map(e=>e.trim()).filter(Boolean);1===e.length?"collectionName"in l||(l.collectionName=e[0]):e.length>=2&&("collectionName"in l||(l.collectionName=e[0]),"associationName"in l||(l.associationName=e.slice(1).join(".")))}}return l},u=await (async()=>{try{let e=n.popup;return i(e)?await e:e}catch(e){return}})(),c=l(()=>n.model),d=l(()=>n.blockModel),h=l(()=>{var e;return null==(e=n.view)?void 0:e.inputArgs}),p=l(()=>n.resource),f=a(null==u?void 0:u.resource),g=d,m=d?"ctx.blockModel":void 0,y=m?`${m}.resource`:void 0,v=a(null==g?void 0:g.resource),w=a(h),b=a(p),x=e=>{for(let t of e)if(s(t.value))return{value:t.value,getVar:t.getVar}},S=e=>s(e.collectionName)||s(e.dataSourceKey)||s(e.associationName),_=S(f)?"ctx.popup.resource":S(v)?y:S(w)?"ctx.view.inputArgs":S(b)?"ctx.resource":void 0,A=x([{value:null==f?void 0:f.collectionName,getVar:"ctx.popup.resource.collectionName"},{value:null==v?void 0:v.collectionName,getVar:`${y}.collectionName`},{value:null==w?void 0:w.collectionName,getVar:"ctx.view.inputArgs.collectionName"},{value:null==b?void 0:b.collectionName,getVar:"ctx.resource.collectionName"}]),k=x([{value:null==f?void 0:f.dataSourceKey,getVar:"ctx.popup.resource.dataSourceKey"},{value:null==v?void 0:v.dataSourceKey,getVar:`${y}.dataSourceKey`},{value:null==w?void 0:w.dataSourceKey,getVar:"ctx.view.inputArgs.dataSourceKey"},{value:null==b?void 0:b.dataSourceKey,getVar:"ctx.resource.dataSourceKey"}]),M=x([{value:null==f?void 0:f.associationName,getVar:"ctx.popup.resource.associationName"},{value:null==v?void 0:v.associationName,getVar:`${y}.associationName`},{value:null==w?void 0:w.associationName,getVar:"ctx.view.inputArgs.associationName"},{value:null==b?void 0:b.associationName,getVar:"ctx.resource.associationName"}]),E=x([{value:null==f?void 0:f.filterByTk,getVar:"ctx.popup.resource.filterByTk"},{value:null==v?void 0:v.filterByTk,getVar:`${y}.filterByTk`},{value:null==w?void 0:w.filterByTk,getVar:"ctx.view.inputArgs.filterByTk"},{value:null==b?void 0:b.filterByTk,getVar:"ctx.resource.filterByTk"}]),j=x([{value:null==f?void 0:f.sourceId,getVar:"ctx.popup.resource.sourceId"},{value:null==v?void 0:v.sourceId,getVar:`${y}.sourceId`},{value:null==w?void 0:w.sourceId,getVar:"ctx.view.inputArgs.sourceId"},{value:null==b?void 0:b.sourceId,getVar:"ctx.resource.sourceId"}]),R={},P=!1,C=null==A?void 0:A.value;s(C)&&(R.collectionName={description:"Collection name",getVar:(null==A?void 0:A.getVar)||(_?`${_}.collectionName`:void 0),value:C},P=!0);let F=null==k?void 0:k.value;s(F)&&(R.dataSourceKey={description:"Data source key",getVar:(null==k?void 0:k.getVar)||(_?`${_}.dataSourceKey`:void 0),value:F},P=!0);let T=null==M?void 0:M.value;s(T)&&(R.associationName={description:"Association name",getVar:(null==M?void 0:M.getVar)||(_?`${_}.associationName`:void 0),value:T},P=!0),P&&(s(null==E?void 0:E.value)&&(R.filterByTk={description:"Record filterByTk",getVar:(null==E?void 0:E.getVar)||(_?`${_}.filterByTk`:void 0)}),s(null==j?void 0:j.value)&&(R.sourceId={description:"Source record ID (sourceId)",getVar:(null==j?void 0:j.getVar)||(_?`${_}.sourceId`:void 0)}),o.resource={description:"Resource information",getVar:_,properties:R}),s(null==E?void 0:E.value)&&(o.record={description:"Current record",getVar:"ctx.record"});let I=e=>{try{let t=null==e?void 0:e.title;if("string"==typeof t&&t.trim())return t}catch(e){}try{var t,r;let n=null==e||null==(r=e.constructor)||null==(t=r.meta)?void 0:t.label;if("string"==typeof n&&n.trim())return n}catch(e){}};if(c){let t=I(c),r=c.uid,n=null==(e=c.constructor)?void 0:e.name,i=a(c.resource),l={},u=!1,d=i.collectionName;s(d)&&(l.collectionName={description:"Collection name",getVar:"ctx.model.resource.collectionName",value:d},u=!0);let h=i.dataSourceKey;s(h)&&(l.dataSourceKey={description:"Data source key",getVar:"ctx.model.resource.dataSourceKey",value:h},u=!0);let p=i.associationName;s(p)&&(l.associationName={description:"Association name",getVar:"ctx.model.resource.associationName",value:p},u=!0),o.flowModel={description:"Current FlowModel information",getVar:"ctx.model",properties:{...s(t)?{label:{description:"Flow model label",value:t}}:{},...s(n)?{modelClass:{description:"Flow model class name",value:n}}:{},...s(r)?{uid:{description:"Flow model uid",getVar:"ctx.model.uid",value:r}}:{},...u?{resource:{description:"Flow model resource",getVar:"ctx.model.resource",properties:l}}:{}}}}if((null==u?void 0:u.uid)&&(o.popup={description:"Current popup information",getVar:"ctx.popup",properties:{uid:{description:"Popup uid",getVar:"ctx.popup.uid",value:u.uid},...(null==u?void 0:u.record)?{record:{description:"Popup record",getVar:"ctx.popup.record"}}:{},...(null==u?void 0:u.sourceRecord)?{sourceRecord:{description:"Popup source record",getVar:"ctx.popup.sourceRecord"}}:{}}}),g){let e=I(g),r=g.uid,n=null==(t=g.constructor)?void 0:t.name,i={},l=!1,a=v.collectionName;s(a)&&(i.collectionName={description:"Collection name",getVar:`${y}.collectionName`,value:a},l=!0);let u=v.dataSourceKey;s(u)&&(i.dataSourceKey={description:"Data source key",getVar:`${y}.dataSourceKey`,value:u},l=!0);let c=v.associationName;s(c)&&(i.associationName={description:"Association name",getVar:`${y}.associationName`,value:c},l=!0),o.block={description:"Current block information",getVar:m,properties:{...s(e)?{label:{description:"Block label",value:e}}:{},...s(n)?{modelClass:{description:"Block model class name",value:n}}:{},...s(r)?{uid:{description:"Block uid",getVar:`${m}.uid`,value:r}}:{},...l?{resource:{description:"Block resource",getVar:y,properties:i}}:{}}}}let $=(()=>{let e=null==u?void 0:u.uid;if(s(e))return String(e).trim();let t=null==h?void 0:h.viewUid;if(s(t))return String(t).trim()})(),O=l(()=>n.engine),D=$?null==O?void 0:O.getModel($,!0):void 0,N=e=>{var t;return(null==(t=e.context)?void 0:t.blockModel)===e};if(D){let e=[D],t=[];for(let n=0;n<e.length;n++){let i=e[n];if(N(i)){let e=(null==(r=i.constructor)?void 0:r.name)||i.uid,n=I(i)||e||i.uid,o=a(i.resource),l={};s(o.dataSourceKey)&&(l.dataSourceKey=o.dataSourceKey),s(o.collectionName)&&(l.collectionName=o.collectionName),s(o.associationName)&&(l.associationName=o.associationName);let u={uid:i.uid,label:n,modelClass:e,...Object.keys(l).length>0?{resource:l}:{}};t.push(u)}let o=i.subModels;if(o&&"object"==typeof o)for(let t of Object.values(o))t&&(Array.isArray(t)?e.push(...t):e.push(t))}t.length&&(o.currentViewBlocks={description:"Current view blocks",value:t})}return o}async getVarInfos(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.maxDepth??3,r=Number.isFinite(t)?Math.max(1,Math.floor(t)):3,n="v1",i=this.createProxy(),o=e=>"string"==typeof e&&e.startsWith("_"),l=e=>!!e&&("object"==typeof e||"function"==typeof e)&&"function"==typeof e.then,s=new WeakMap,a=async e=>{if(!e)return;if("function"!=typeof e)return e;let t=s.get(e);return t||(t=(async()=>{let t=e.call(i,i);return(l(t)?await t:t)||null})(),s.set(e,t)),await t||void 0},u=e=>{if("string"!=typeof e)return;let t=e.trim();if(!t)return;let r=(0,E.YB)(t);return Array.isArray(r)&&r.length>0?r.join("."):"ctx"===t?"":t.startsWith("ctx.")?t.slice(4).trim():t},c=(()=>{let t=e.path;return("string"==typeof t?[t]:Array.isArray(t)?t:[]).map(e=>u(String(e))).filter(e=>"string"==typeof e&&e.length>0)})(),d=(()=>{let t=e.path;return"string"==typeof t?""===u(t):!!Array.isArray(t)&&t.some(e=>""===u(String(e)))})(),h=(()=>{var e,t,r,i,o,l,s,a;let u=(0,F.B)(this),c=F.F.resolve(n,u)||F.F.resolve(n,"*");if(!c)return{};let d=(null==(r=this)||null==(t=r.api)||null==(e=t.auth)?void 0:e.locale)||(null==(o=this)||null==(i=o.i18n)?void 0:i.language)||(null==(l=this)?void 0:l.locale);try{if(null==c||null==(s=c.getDoc)?void 0:s.length)return c.getDoc(d)||{};return(null==c||null==(a=c.getDoc)?void 0:a.call(c))||{}}catch(e){return{}}})();eC(null==h?void 0:h.methods)&&h.methods,eC(null==h?void 0:h.properties)&&h.properties;let p=e=>"string"==typeof e?{description:e}:eC(e)?e:void 0,f=async(e,t)=>{if(void 0!==e){if("boolean"==typeof e)return e;if("function"==typeof e)try{let r=t(e);return l(r)?!!await r:!!r}catch(e){return!1}return!!e}},g=async(e,t)=>{if(null!=e){if("string"==typeof e)return e;if("function"==typeof e)try{let r=t(e),n=l(r)?await r:r;if("string"==typeof n)return n;return null==n?void 0:String(n)}catch(e){return}return String(e)}},m=async e=>{let t=!1,r=[];try{if("boolean"==typeof e)t=e;else if(Array.isArray(e))r=e;else if("function"==typeof e){let n=e(i),o=l(n)?await n:n;"boolean"==typeof o?t=o:Array.isArray(o)&&(r=o)}}catch(e){t=!1,r=[]}let n=[];if(Array.isArray(r))for(let e of r){if("string"!=typeof e)continue;let t=e.trim();!(!t||"ctx"===t||t.startsWith("ctx."))&&(/\s/.test(t)||n.push(t))}return{hideSelf:!!t,hideSubpaths:n}},y=(e,t)=>{if(!e)return!1;let r=e.split(".").filter(Boolean);for(;r.length;){if(t.has(r.join(".")))return!0;r.pop()}return!1},v=e=>{let t=p(e);if(!t)return{};let r={};for(let e of["title","type","interface","description","examples","completion","ref","params","returns"]){let n=t[e];void 0!==n&&(r[e]=n)}return Array.isArray(r.examples)&&(r.examples=r.examples.filter(e=>"string"==typeof e&&e.trim())),r},w=async e=>{let t,n,{docNode:l,metaNode:s,infoNode:u,depth:c,pathFromRoot:d,hiddenPrefixes:h}=e,b=d.join(".");if(y(b,h))return;let x=p(l),S=p(u),_=await m(null==x?void 0:x.hidden);if(_.hideSelf)return;let A=await m(null==S?void 0:S.hidden);if(A.hideSelf)return;let k=await a(s);if(await f(null==k?void 0:k.hidden,e=>e.call(k,i)))return;let M=new Set(h);for(let e of[..._.hideSubpaths,...A.hideSubpaths]){let t=e.trim();if(!t)continue;let r="ctx"===t?"":t.startsWith("ctx.")?t.slice(4):t;if(!r)continue;let n=b?`${b}.${r}`:r;M.add(n)}let E=await f(null==x?void 0:x.disabled,e=>e(i)),j=await g(null==x?void 0:x.disabledReason,e=>e(i)),R=await f(null==k?void 0:k.disabled,e=>e.call(k,i)),P=await g(null==k?void 0:k.disabledReason,e=>e.call(k,i)),C=await f(null==S?void 0:S.disabled,e=>e(i)),F=await g(null==S?void 0:S.disabledReason,e=>e(i)),T=void 0!==C?C:void 0!==R?R:E,I=void 0!==F?F:void 0!==P?P:j,$={};if($={...$={...$={...$,...v(x)},...v(k)},...v(S)},void 0!==T&&($.disabled=!!T),void 0!==I&&($.disabledReason=I),c>=r)return Object.keys($).length?$:void 0;let O=eC(null==x?void 0:x.properties)?x.properties:void 0;if(null==k?void 0:k.properties)try{let e=k.properties;if("function"==typeof e){let r=await e.call(k,i);k.properties=r,t=r}else eC(e)&&(t=e)}catch(e){t=void 0}if(eC(S)&&(null==S?void 0:S.properties))try{let e=S.properties;if("function"==typeof e){let t=await e.call(S,i);S.properties=t,n=t}else eC(e)&&(n=e)}catch(e){n=void 0}let D=new Set;if(O)for(let e of Object.keys(O))D.add(e);if(t)for(let e of Object.keys(t))D.add(e);if(n)for(let e of Object.keys(n))D.add(e);if(!D.size)return Object.keys($).length?$:void 0;let N={};for(let e of D){if(o(e))continue;let r=await w({docNode:null==O?void 0:O[e],metaNode:null==t?void 0:t[e],infoNode:null==n?void 0:n[e],depth:c+1,pathFromRoot:[...d,e],hiddenPrefixes:M});r&&(N[e]=r)}if(Object.keys(N).length&&($.properties=N),Object.keys($).length)return $},b=async e=>{if(!e.length)return;let[t,...r]=e,n=this.getPropertyOptions(t);if(null==n?void 0:n.meta)try{if(!r.length)return n.meta;let e=await a(n.meta);if(!e)return;for(let t=0;t<r.length;t++){let n=r[t],o=null==e?void 0:e.properties;if(!o)break;if("function"==typeof o){let t=await o.call(e,i);e.properties=t,o=t}if(!o||"object"!=typeof o)break;let l=null==o?void 0:o[n];if(!l)break;if(t===r.length-1)return l;let s=await a(l);if(!s)break;e=s}return}catch(e){return}};if(!d&&c.length){let e={};for(let t of c){let r=t.split(".").map(e=>e.trim()).filter(Boolean);if(r.some(e=>o(e))||!r.length)continue;let n=await b(r),i=await w({docNode:void 0,metaNode:n,infoNode:void 0,depth:1,pathFromRoot:[],hiddenPrefixes:new Set});i&&(e[t]=i)}return e}let x=this._getPropertiesMeta(),S={};for(let[e,t]of Object.entries(x)){if(o(e))continue;let r=await w({docNode:void 0,metaNode:t,infoNode:void 0,depth:1,pathFromRoot:[e],hiddenPrefixes:new Set});r&&(S[e]=r)}return S}_getPropertiesMeta(){let e={};for(let t of this._delegates)Object.assign(e,t._getPropertiesMeta());for(let[t,r]of Object.entries(this._props))r.meta&&(e[t]=(r.meta,r.meta));return e}_getOwnProperty(e,t){let r=this._props[e];if(r){if("value"in r)return r.value;if(r.get){if(!1===r.cache)return r.get(t);let n=r.observable?"_observableCache":"_cache";if(e in this[n])return this[n][e];if(this._pending[e])return this._pending[e];let i=r.get(this.createProxy());return"object"==typeof i&&null!==i&&"function"==typeof i.then||"function"==typeof i&&"function"==typeof i.then?(this._pending[e]=i.then(t=>(this[n][e]=t,delete this._pending[e],t),t=>{throw delete this._pending[e],t}),this._pending[e]):(this[n][e]=i,i)}}}_getOwnMethod(e,t){let r=this._methods[e];return"function"==typeof r?r.bind(t):r}_findPropertyInDelegates(e,t){for(let r of e){if(Object.prototype.hasOwnProperty.call(r._props,t))return r._props[t];let e=this._findPropertyInDelegates(r._delegates,t);if(void 0!==e)return e}}_findInDelegates(e,t){for(let r of e){if(Object.prototype.hasOwnProperty.call(r._props,t))return{result:r._getOwnProperty(t,this.createProxy())};if(Object.prototype.hasOwnProperty.call(r._methods,t))return{result:r._getOwnMethod(t,this.createProxy())};let e=this._findInDelegates(r._delegates,t);if(void 0!==e)return e}}_hasInDelegates(e,t){for(let r of e)if(Object.prototype.hasOwnProperty.call(r._props,t)||Object.prototype.hasOwnProperty.call(r._methods,t)||this._hasInDelegates(r._delegates,t))return!0;return!1}getPropertyOptions(e){return Object.prototype.hasOwnProperty.call(this._props,e)?this._props[e]:this._findPropertyInDelegates(this._delegates,e)}constructor(){return(0,s._)(this,eo),(0,s._)(this,el),(0,s._)(this,es),(0,s._)(this,ea),(0,s._)(this,eu),(0,s._)(this,ec),(0,s._)(this,ed),(0,s._)(this,eh),(0,a._)(this,"_props",{}),(0,a._)(this,"_methods",{}),(0,a._)(this,"_methodInfos",{}),(0,a._)(this,"_cache",{}),(0,a._)(this,"_observableCache",u.observable.shallow({})),(0,a._)(this,"_delegates",[]),(0,a._)(this,"_pending",{}),(0,i._)(this,ei,{writable:!0,value:null}),(0,a._)(this,"_metaNodeCache",new WeakMap),this.createProxy()}}function ef(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],n=arguments.length>3?arguments[3]:void 0;return"function"==typeof e?async()=>{let i=await e();n&&(n.properties=i);let o=Object.entries(i);return o.sort((e,t)=>{let[,r]=e,[,n]=t;return((null==n?void 0:n.sort)??0)-((null==r?void 0:r.sort)??0)}),o.map(e=>{let[n,i]=e;return(0,l._)(this,eh,eb).call(this,n,i,[...t,n],r)})}:Object.entries(e).sort((e,t)=>{let[,r]=e,[,n]=t;return((null==n?void 0:n.sort)??0)-((null==r?void 0:r.sort)??0)}).map(e=>{let[n,i]=e;return(0,l._)(this,eh,eb).call(this,n,i,[...t,n],r)})}function eg(e){if(0===e.length)return null;let[t,...r]=e,n=this._props[t];if(null==n?void 0:n.meta)return(0,l._)(this,ea,ey).call(this,t,n.meta,r,[t]);let i=(0,l._)(this,es,em).call(this,this._delegates,t);return i?(0,l._)(this,ea,ey).call(this,t,i,r,[t]):null}function em(e,t){for(let r of e){let e=r._props[t];if(null==e?void 0:e.meta)return e.meta;let n=(0,l._)(this,es,em).call(this,r._delegates,t);if(n)return n}return null}function ey(e,t,r,n){if(0===r.length)return[e,t,n];if("function"==typeof t)return[r[r.length-1],async()=>{let e=await t();return await (0,l._)(this,ec,ev).call(this,e,r)},[...n,...r]];if(t.properties){let[e,...i]=r,o=[...n,e];if("function"==typeof t.properties)return[r[r.length-1],async()=>{let r=t.properties,n=await r();t.properties=n;let o=n[e];if(!o)throw Error(`Property ${e} not found in resolved properties`);return await (0,l._)(this,ec,ev).call(this,o,i)},[...n,...r]];let s=t.properties[e];if(s)return(0,l._)(this,ea,ey).call(this,e,s,i,o)}return null}async function ev(e,t){if(0===t.length)return e;let r=e;for(let e of t){let n=h().get(r,"properties");if(!n)throw Error(`Property path not found: ${t.join(".")}`);if("function"==typeof n){let e=await n();r.properties=e,n=e}let i=n[e];if(!i)throw Error(`Property ${e} not found while resolving path: ${t.join(".")}`);r=i}return r}function ew(e){let t=!(arguments.length>1)||void 0===arguments[1]||arguments[1];if(0===e.length)return[];let r=t?e.slice(0,-1):e;if(0===r.length)return[];let n=[],i=this._getPropertiesMeta();for(let e=0;e<r.length;e++){let t=r[e],o=i[t];if(!o||"function"==typeof o){n.push(t);break}if(n.push(o.title||t),e<r.length-1&&o.properties&&"function"!=typeof o.properties)i=o.properties;else if(e<r.length-1){for(let t=e+1;t<r.length;t++)n.push(r[t]);break}}return n}function eb(e,t){let r,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[e],i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:[],o=this._metaNodeCache.get(t);if(o)return o.paths=n,o.parentTitles=i.length>0?i:void 0,o;let s=e=>{if(!e)return{disabled:!1,hidden:!1};let t="function"==typeof e.disabled?e.disabled():e.disabled,r="function"==typeof e.disabledReason?e.disabledReason():e.disabledReason,n="function"==typeof e.hidden?e.hidden():e.hidden;return{disabled:!(t&&"function"==typeof t.then)&&!!t,reason:r&&"function"==typeof r.then?void 0:r,hidden:!(n&&"function"==typeof n.then)&&!!n}};if("function"==typeof t){let o=e,a=t.hasChildren;r={name:e,title:t.title||o,type:"object",interface:void 0,options:void 0,uiSchema:void 0,paths:n,parentTitles:i.length>0?i:void 0,disabled:()=>{let e=t();return(!e||"function"!=typeof e.then)&&s(e).disabled},disabledReason:()=>{let e=t();if(!e||"function"!=typeof e.then)return s(e).reason},hidden:()=>{let e=t();return(!e||"function"!=typeof e.then)&&s(e).hidden},children:!1===a?void 0:async()=>{try{let o=await t(),s=(null==o?void 0:o.title)||e;if(r.title=s,r.type=null==o?void 0:o.type,r.interface=null==o?void 0:o.interface,r.options=null==o?void 0:o.options,r.uiSchema=null==o?void 0:o.uiSchema,!(null==o?void 0:o.properties))return[];let a=(0,l._)(this,eo,ef).call(this,o.properties,n,[...i,s],o),u=Array.isArray(a)?a:await a();return r.children=u,u}catch(t){return console.warn(`Failed to load meta for ${e}:`,t),[]}}}}else{let o=t.title,{disabled:a,reason:u,hidden:c}=s(t);r={name:e,title:o,type:t.type,interface:t.interface,options:t.options,uiSchema:t.uiSchema,paths:n,parentTitles:i.length>0?i:void 0,disabled:a,disabledReason:u,hidden:c,children:t.properties?(0,l._)(this,eo,ef).call(this,t.properties,n,[...i,o],t):void 0}}return this._metaNodeCache.set(t,r),r}class ex extends ep{constructor(){super(),this.defineMethod("getModel",(e,t)=>this.engine.getModel(e,t)),this.defineMethod("request",e=>this.api.request(e)),this.defineMethod("runjs",async function(e,t,r){let{preprocessTemplates:n,...i}=r||{},o={...(null==i?void 0:i.globals)||{},...t||{}},l=await this.createJSRunner({...i||{},globals:o}),s=(0,k.R)({version:null==i?void 0:i.version,preprocessTemplates:n}),a=await (0,E.ji)(String(e??""),{preprocessTemplates:s});return l.run(a)})}}class eS extends ex{}class e_ extends ex{constructor(e){if(!(e instanceof _.$))throw Error("Invalid FlowEngine instance");super(),(0,a._)(this,"engine",void 0),this.engine=e,this.engine=e;let t=new S.zA;t.setFlowEngine(this.engine);let n=new S.qS({key:"main",displayName:"Main"});t.addDataSource(n),this.defineProperty("engine",{value:this.engine,info:{description:"FlowEngine instance.",detail:"FlowEngine"}}),this.defineProperty("sql",{get:e=>new M.tP(e),cache:!1,info:{description:"SQL helper (FlowSQLRepository).",detail:"FlowSQLRepository"}}),this.defineProperty("dataSourceManager",{value:t,info:{description:"DataSourceManager instance.",detail:"DataSourceManager"}});let i=new A(this);this.defineMethod("t",(e,t)=>i.translate(e,t)),this.defineMethod("renderJson",function(e){return this.resolveJsonTemplate(e)}),this.defineMethod("resolveJsonTemplate",async function(e){let t=(0,E.nN)(e),r=Object.keys(t||{});if(!r.length)return(0,E.M)(e,this);let n={};for(let e of r){let r=t[e]||[],i=this.getPropertyOptions(e),o=null==i?void 0:i.resolveOnServer;if(!0===o)n[e]=r;else if("function"==typeof o){let t=r.filter(e=>{try{return!!o(e)}catch(e){return!1}});t.length&&(n[e]=t)}}let i=Object.keys(n).length>0,o=e;if(i){let t=e=>{let t=(0,C.XU)(e);if(t)return t;try{var r,n,i,o,l,s,a,u,c,d,h,p,f;let t=null==e||null==(n=e.resource)||null==(r=n.getMeta)?void 0:r.call(n,"currentFilterByTk");if(null==t)return;let g=(null==e||null==(i=e.collection)?void 0:i.name)||(null==e||null==(d=e.resource)||null==(c=d.getResourceName)||null==(u=c.call(d))||null==(a=u.split)||null==(s=a.call(u,"."))||null==(l=s.slice)||null==(o=l.call(s,-1))?void 0:o[0]);if(!g)return;let m=(null==e||null==(h=e.collection)?void 0:h.dataSourceKey)||(null==e||null==(f=e.resource)||null==(p=f.getDataSourceKey)?void 0:p.call(f));return{collection:g,dataSourceKey:m,filterByTk:t}}catch(e){return}},r=async()=>{let e={};try{var t,r;let i=null==(t=(r=this)._getPropertiesMeta)?void 0:t.call(r);if(!i||"object"!=typeof i)return e;for(let[t,r]of Object.entries(i))if(n[t])try{let i;if("function"==typeof r){let e=r;i=await e()}else i=r;if(!i||"object"!=typeof i)continue;let o=i.buildVariablesParams;if("function"!=typeof o)continue;let l=await o(this);if(!l)continue;let s=n[t]||[],a=et(l,s);a&&("object"!=typeof a||Object.keys(a).length)&&(e[t]=a)}catch(e){}}catch(e){}return e},i=await r(),a={...i};try{let e="formValues",r=n[e]||[];if(r.length){let n=new Set;for(let e of r){let t=er(e);t&&n.add(t)}let o=null==i?void 0:i[e],l=new Set;if(!o||"object"!=typeof o||Array.isArray(o)||ee(o)||Object.keys(o).forEach(e=>l.add(e)),[...n].filter(e=>!l.has(e)).length){let n=t(this);if(n){let{generatedFields:t,generatedAppends:i}=en(r),o={...n,fields:t,appends:i},l=a[e];if(l&&"object"==typeof l&&!Array.isArray(l)&&!ee(l)){for(let[t,r]of Object.entries(l))a[`${e}.${t}`]=r;delete a[e]}a[e]=o}}}}catch(e){}let u=Object.keys(a).length?(0,P.d)(this,a):void 0;if(!u){let t=Object.keys(n);if(t.length>0&&t.every(e=>{var t;return null==(t=this.getPropertyOptions(e))?void 0:t.serverOnlyWhenContextParams}))return(0,E.M)(e,this)}if(this.api)try{o=await (0,R.o4)(this,{template:e,contextParams:u||{}})}catch(t){var l,s;null==(s=this.logger)||null==(l=s.warn)||l.call(s,{err:t},"variables:resolve failed, fallback to client-only"),o=e}}return(0,E.M)(o,this)}),this.defineMethod("getVar",async function(e){let t=("string"==typeof e?e:String(e??"")).trim();if(t){if("ctx"!==t&&!t.startsWith("ctx."))throw Error(`ctx.getVar(path) expects an expression starting with "ctx.", got: "${t}"`);return this.resolveJsonTemplate(`{{ ${t} }}`)}},'Resolve a ctx expression value by path (expression starts with "ctx.").'),this.defineProperty("requirejs",{get:()=>{var e,t;return null==(t=this.app)||null==(e=t.requirejs)?void 0:e.requirejs}}),this.defineProperty("token",{get:()=>{var e,t;return null==(t=this.api)||null==(e=t.auth)?void 0:e.token},cache:!1,meta:Object.assign(()=>({type:"string",title:this.t("API Token"),sort:980}),{title:"API Token",sort:980,hasChildren:!1})}),this.defineProperty("role",{get:()=>{var e,t;return null==(t=this.api)||null==(e=t.auth)?void 0:e.role},cache:!1,meta:Object.assign(()=>({type:"string",title:this.t("Current role"),sort:990}),{title:(0,E.MI)("Current role"),sort:990,hasChildren:!1})}),this.defineProperty("urlSearchParams",{cache:!1,get:()=>{var e;let t=(null==(e=this.location)?void 0:e.search)||"",r=t.startsWith("?")?t.slice(1):t;return f().parse(r)||{}},meta:Object.assign(()=>({type:"object",title:this.t("URL search params"),sort:970,disabled:()=>{var e;let t=(null==(e=this.location)?void 0:e.search)||"",r=t.startsWith("?")?t.slice(1):t;return 0===Object.keys(f().parse(r)||{}).length},disabledReason:()=>this.t("The value of this variable is derived from the query string of the page URL. This variable can only be used normally when the page has a query string."),properties:async()=>{var e;let t=(null==(e=this.location)?void 0:e.search)||"",r=t.startsWith("?")?t.slice(1):t,n=f().parse(r)||{},i={};for(let e of Object.keys(n))i[e]={type:"string",title:e};return i}}),{title:(0,E.MI)("URL search params"),sort:970,hasChildren:!0})}),this.defineProperty("logger",{get:()=>this.engine.logger.child({module:"flow-engine"})}),this.defineProperty("auth",{get:()=>({roleName:this.api.auth.role,locale:this.api.auth.locale,token:this.api.auth.token,user:this.user})}),this.defineProperty("date",{get:()=>{let e=t=>new Proxy({},{get:(r,n)=>{if("string"!=typeof n)return;let i=[...t,n];if(!(0,E.JE)(i))return;let o=(0,E.Vv)(i);return void 0!==o?o:e(i)}});return e(["date"])},cache:!1}),this.defineMethod("loadCSS",async e=>{let t=(0,E.i)(e);return new Promise((e,r)=>{if(document.querySelector(`link[href="${t}"]`))return void e(null);let n=document.createElement("link");n.rel="stylesheet",n.href=t,n.onload=()=>e(null),n.onerror=()=>r(Error(`Failed to load CSS: ${t}`)),document.head.appendChild(n)})},{description:"Load a CSS file by URL (browser only).",params:[{name:"href",type:"string",description:"CSS URL."}],returns:{type:"Promise<void>"},completion:{insertText:"await ctx.loadCSS('https://example.com/style.css')"},examples:["await ctx.loadCSS('https://example.com/style.css');"]}),this.defineMethod("requireAsync",async e=>{if((0,E.yp)(e))return this.loadCSS(e);let t=(0,E.i)(e,{raw:!0});return await K(this.requirejs,t)}),this.defineMethod("importAsync",async function(e){return(0,E.yp)(e)?this.loadCSS(e):await Q(this,e,{importer:H})}),this.defineMethod("createJSRunner",async function(e){try{let e=await Promise.resolve().then(r.bind(r,88828));"function"==typeof(null==e?void 0:e.setupRunJSContexts)&&await e.setupRunJSContexts()}catch(e){}let t=(null==e?void 0:e.version)||"v1",n=(0,F.B)(this),i=F.F.resolve(t,n)||eW,o=new i(this);o.defineMethod("t",(e,t)=>this.t(e,{ns:"runjs",...t}));let l={};try{var s,a,u,c,d,h,p,f;let e=(null==(u=this)||null==(a=u.api)||null==(s=a.auth)?void 0:s.locale)||(null==(d=this)||null==(c=d.i18n)?void 0:c.language)||(null==(h=this)?void 0:h.locale);l=(null==i||null==(p=i.getDoc)?void 0:p.length)?i.getDoc(e)||{}:(null==i||null==(f=i.getDoc)?void 0:f.call(i))||{}}catch(e){l={}}let g={ctx:eN(o,{doc:l}),...(null==e?void 0:e.globals)||{}},{timeoutMs:m}=e||{};return new k.I({globals:g,timeoutMs:m})}),this.defineMethod("buildServerContextParams",function(e){return(0,P.d)(this,e)}),this.defineMethod("getAction",function(e){return this.engine.getAction(e)}),this.defineMethod("getActions",function(){return this.engine.getActions()}),this.defineMethod("getEvents",function(){return this.engine.getEvents()}),this.defineMethod("runAction",async function(e,t){let r=this.engine.getAction(e),n=await (0,T.v)(this,r);if(!r)throw Error(`Action '${e}' not found.`);let i={...await (0,E.gG)(r.defaultParams,n)||{},...t||{}},o=r.useRawParams;if("function"==typeof o&&(o=await o(n)),o||(i=await n.resolveJsonTemplate(i)),!r.handler)throw Error(`Action '${e}' has no handler.`);return r.handler(n,i)}),this.defineProperty("acl",{get:()=>new w(this.engine)}),this.defineMethod("aclCheck",function(e){return this.acl.aclCheck(e)}),this.defineMethod("createResource",function(e){return this.engine.createResource(e,{context:this.createProxy()})}),this.defineMethod("makeResource",function(e){return this.engine.createResource(e,{context:this.createProxy()})}),this.defineMethod("initResource",function(e){return this.has("resource")||this.defineProperty("resource",{get:()=>this.createResource(e)}),this.resource}),this.defineMethod("useResource",function(e){return this.initResource(e)})}}class eA extends eS{constructor(e){if(!e||"object"!=typeof e)throw Error("Invalid FlowModel instance");super(),this.addDelegate(e.flowEngine.context),this.defineMethod("onRefReady",(e,t,r)=>{this.engine.reactView.onRefReady(e,t,r)}),this.defineProperty("model",{value:e,info:{description:"Current FlowModel instance.",detail:"FlowModel"}});let t=(0,g.createRef)();this.defineProperty("ref",{get:()=>(this.model._refCreated=!0,t),info:{description:"Stable React ref for the view container.",detail:"React.RefObject<HTMLDivElement>"}}),this.defineMethod("openView",async function(e,t){var r,n,i,o,l;let s={...t};(s.defineProperties||s.defineMethods)&&(s.navigation=!1);let a=null;if(!(a=await this.engine.loadModel({uid:e}))){let t=(e,t)=>{let r={};for(let n of t)void 0!==(null==e?void 0:e[n])&&(r[n]=e[n]);return r};a=this.engine.createModel({uid:e,use:"PopupActionModel",parentId:this.model.uid,subType:"object",subKey:e,stepParams:{popupSettings:{openView:{...t(s,["dataSourceKey","collectionName","associationName","mode","size"])}}}}),await a.save()}a.setParent(this.model);let u=(null==s?void 0:s.routeViewUid)??(null==s?void 0:s.viewUid)??((null==(n=a.stepParams)||null==(r=n.popupSettings)?void 0:r.openView)?a.uid:this.model.uid),c=this.view,d=(null==s?void 0:s.isMobileLayout)?"embed":(null==s?void 0:s.mode)||"drawer",h={...s,viewUid:u,navigation:s.navigation};h.filterByTk=h.filterByTk||(null==(i=this.inputArgs)?void 0:i.filterByTk),h.sourceId=h.sourceId||(null==(o=this.inputArgs)?void 0:o.sourceId);let p={type:d,inputArgs:h,navigation:null==c?void 0:c.navigation,preventClose:!!(null==s?void 0:s.preventClose),engineCtx:this.engine.context};a.context.defineProperty("view",{value:p});let f=null==(l=a.getFlow)?void 0:l.call(a,"popupSettings"),g=null==f?void 0:f.on,m="click";"string"==typeof g&&g?m=g:g&&"object"==typeof g&&"string"==typeof g.eventName&&g.eventName&&(m=g.eventName),await a.dispatchEvent(m,{...s},{debounce:!0})}),this.defineMethod("getEvents",function(){return this.model.getEvents()}),this.defineMethod("getAction",function(e){return this.model.getAction(e)}),this.defineMethod("getActions",function(){return this.model.getActions()}),this.defineMethod("runAction",async function(e,t){let r=this.model.getAction(e),n=await (0,T.v)(this,r);if(!r)throw Error(`Action '${e}' not found.`);let i={...await (0,E.gG)(r.defaultParams,n)||{},...t||{}},o=r.useRawParams;if("function"==typeof o&&(o=await o(n)),o||(i=await n.resolveJsonTemplate(i)),!r.handler)throw Error(`Action '${e}' has no handler.`);return r.handler(n,i)})}}class ek extends eS{constructor(e,t){if(!e||"object"!=typeof e)throw Error("Invalid FlowModel instance");super(),(0,a._)(this,"master",void 0),(0,a._)(this,"fork",void 0),this.master=e,this.fork=t,this.addDelegate(this.master.context),this.defineMethod("onRefReady",(e,t,r)=>{this.engine.reactView.onRefReady(e,t,r)}),this.defineProperty("model",{get:()=>this.fork,info:{description:"Current ForkFlowModel instance (as model).",detail:"ForkFlowModel"}});let r=(0,g.createRef)();this.defineProperty("ref",{get:()=>(this.fork._refCreated=!0,r),info:{description:"Stable React ref for the view container.",detail:"React.RefObject<HTMLDivElement>"}})}}class eM extends eS{_getOwnProperty(e){if("runtime"===this.mode)return super._getOwnProperty(e,this.createProxy());let t=this._props[e];if(t){if("value"in t)return x.create()[e];if(t.get){if(!1===t.cache)return x.create()[e];let r=t.observable?"_observableCache":"_cache";return e in this[r]||(this[r][e]=x.create()[e]),this[r][e]}}}exit(){throw new j.zz(this.flowKey,this.model.uid)}exitAll(){throw new j.zz(this.flowKey,this.model.uid)}get mode(){return this._mode}constructor(e,t,r="runtime"){super(),(0,a._)(this,"model",void 0),(0,a._)(this,"flowKey",void 0),(0,a._)(this,"_mode",void 0),(0,a._)(this,"stepResults",void 0),this.model=e,this.flowKey=t,this._mode=r,this.stepResults={},this.addDelegate(this.model.context),this.defineMethod("getStepParams",r=>e.getStepParams(t,r)||{}),this.defineMethod("setStepParams",(r,n)=>e.setStepParams(t,r,n)),this.defineMethod("getStepResults",e=>h().get(this.steps,[e,"result"])),this.defineMethod("initResource",t=>{e.context.has("resource")?console.log(`[FlowRuntimeContext] useResource - resource already defined in context: ${t}`):(e.context.defineProperty("resource",{get:()=>this.makeResource(t)}),e.resource||(e.resource=e.context.resource))}),this.defineMethod("useResource",e=>this.initResource(e)),this.defineProperty("resource",{get:()=>e.resource||e.context.resource,cache:!1}),this.defineMethod("onRefReady",(e,t,r)=>{this.engine.reactView.onRefReady(e,t,r)})}}let eE=new WeakMap,ej=new WeakMap,eR=new WeakMap;function eP(e,t){if(null===t)return;if(Array.isArray(e)||Array.isArray(t)||"object"!=typeof e||"object"!=typeof t)return t??e;let r={...e};for(let n of Object.keys(t)){let i=eP(null==e?void 0:e[n],t[n]);void 0===i?delete r[n]:r[n]=i}return r}function eC(e){return!!e&&"object"==typeof e&&!Array.isArray(e)}function eF(e){return!!e&&("object"==typeof e||"function"==typeof e)&&"function"==typeof e.then}function eT(e){return!0===e||(e&&eC(e)?e:void 0)}function eI(e,t,r){if(!Array.isArray(t)||!t.length)return;let n=e;for(let e of t){if(!e)return;n.children=n.children||{},n.children[e]=n.children[e]||{},n=n.children[e]}n.deprecated=r}function e$(e,t){void 0!==t.deprecated&&(e.deprecated=t.deprecated);let r=t.children||{},n=Object.keys(r);if(n.length)for(let t of(e.children=e.children||{},n))e.children[t]=e.children[t]||{},e$(e.children[t],r[t])}function eO(e){let t={};if(!e)return t;let r=(e,n)=>{if(eC(e))for(let[i,o]of Object.entries(e)){if(!i||!o||"object"!=typeof o||Array.isArray(o))continue;let e=o,l=eT(e.deprecated);l&&eI(t,[...n,i],l),eC(e.properties)&&r(e.properties,[...n,i])}},n=e=>{if(eC(e))for(let[r,n]of Object.entries(e)){if(!r||!n||"object"!=typeof n||Array.isArray(n))continue;let e=eT(n.deprecated);e&&eI(t,[r],e)}};return r(e.properties,[]),n(e.methods),t}function eD(e){let t={},r=new WeakSet,n=(e,r)=>{if(eC(r))for(let[i,o]of Object.entries(r)){if(!i||"string"==typeof o||!o||"object"!=typeof o||Array.isArray(o))continue;let r=o,l=eT(r.deprecated);l&&eI(t,[...e,i],l),eC(r.properties)&&n([...e,i],r.properties)}},i=e=>{if(!e||"object"!=typeof e&&"function"!=typeof e||r.has(e))return;r.add(e);let o=e._methodInfos;if(eC(o))for(let[e,r]of Object.entries(o)){if(!e||!r||"object"!=typeof r||Array.isArray(r))continue;let n=eT(r.deprecated);n&&eI(t,[e],n)}let l=e._props;if(eC(l))for(let[e,r]of Object.entries(l)){if(!e)continue;let i=null==r?void 0:r.info;if(!i||"object"!=typeof i||Array.isArray(i))continue;let o=eT(i.deprecated);o&&eI(t,[e],o),eC(i.properties)&&n([e],i.properties)}let s=e._delegates;if(Array.isArray(s))for(let e of s)i(e)};return i(e),t}function eN(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=eO(t.doc);e$(r,eD(e));let n=new Set,i=new WeakMap,o=new WeakMap,l=new WeakMap,s=e=>{if(!e||"string"!=typeof e)return{};let t=2;for(let r of e.split("\n")){if(!r)continue;let e=r.match(/<anonymous>:(\d+):(\d+)/);if(!e)continue;let n=Number(e[1]),i=Number(e[2]);return{line:Number.isFinite(n)&&n>t?n-t:n,column:Number.isFinite(i)?i:void 0,rawLine:n,rawColumn:i}}return{}},a=(e,t)=>{if(eC(t))for(let[n,i]of Object.entries(t)){if(!n||"string"==typeof i||!i||"object"!=typeof i||Array.isArray(i))continue;let t=i,o=eT(t.deprecated);o&&eI(r,[...e,n],o),eC(t.properties)&&a([...e,n],t.properties)}},u=(e,t)=>{if(!e)return;let n=null==t?void 0:t.info;if(!n||"object"!=typeof n||Array.isArray(n))return;let i=eT(n.deprecated);i&&eI(r,[e],i),eC(n.properties)&&a([e],n.properties)},c=(e,t)=>{if(!e||!t||"object"!=typeof t||Array.isArray(t))return;let n=eT(t.deprecated);n&&eI(r,[e],n)},d=e=>{let t=e;for(;t&&("object"==typeof t||"function"==typeof t);){let e=i.get(t);if(!e)break;t=e}return t},h=e=>{if(e){if("string"==typeof e)return e.trim()||void 0;if(Array.isArray(e)){let t=e.map(e=>"string"==typeof e?e.trim():"").filter(Boolean);return t.length?t.join(", "):void 0}}},p=(t,r,i)=>{if(!t||n.has(t))return;n.add(t);let o=null==e?void 0:e.logger,l="function"==typeof(null==e?void 0:e.t)?(t,r)=>e.t(t,{ns:[E.u4,"client"],nsMode:"fallback",...r}):(e,t)=>{let r=(null==t?void 0:t.defaultValue)??e;return"string"==typeof r&&t?r.replace(/\{\{\s*([a-zA-Z0-9_]+)\s*\}\}/g,(e,r)=>{let n=null==t?void 0:t[r];return"string"==typeof n||"number"==typeof n?String(n):""}):r},a="object"==typeof r&&r?r:{},u=h(a.replacedBy),c="string"==typeof a.since?String(a.since):void 0,d="string"==typeof a.removedIn?String(a.removedIn):void 0,p="string"==typeof a.message?String(a.message):"",f=s(i),g=f.line?`(line ${f.line}${f.column?`:${f.column}`:""})`:"",m=p.trim(),y=m?l("RunJS deprecated warning with message",{defaultValue:"[RunJS][Deprecated] {{api}} {{message}}{{location}}",api:t,message:m,location:g}):l("RunJS deprecated warning",{defaultValue:"[RunJS][Deprecated] {{api}} is deprecated{{location}}",api:t,location:g}),v=l("RunJS deprecated separator",{defaultValue:"; "}),w=[y];u&&w.push(l("RunJS deprecated replacedBy",{defaultValue:"Use {{replacedBy}} instead",replacedBy:u})),c&&w.push(l("RunJS deprecated since",{defaultValue:"since {{since}}",since:c})),d&&w.push(l("RunJS deprecated removedIn",{defaultValue:"will be removed in {{removedIn}}",removedIn:d}));let b=w.filter(Boolean).join(v);try{o&&"function"==typeof o.warn?o.warn(b):console.warn(b)}catch(e){}},f=(e,t,r)=>{let i=t.deprecated;if(!i)return e;let o=l.get(e)||new Map;if(l.set(e,o),o.has(r))return o.get(r);let s=new Proxy(e,{apply(e,t,o){let l=n.has(r)?void 0:Error().stack;return p(r,i,l),Reflect.apply(e,d(t),o)},get:(e,t,r)=>Reflect.get(e,t,r)});return o.set(r,s),s},g=(e,t,r)=>{if(!e||"object"!=typeof e&&"function"!=typeof e||eF(e)||!(t.children&&Object.keys(t.children).length>0)&&"ctx"!==r)return e;let l=o.get(e)||new Map;if(o.set(e,l),l.has(r))return l.get(r);let s=new Proxy(e,{get(e,i,o){var l;if("symbol"==typeof i)return Reflect.get(e,i,d(o));let s=String(i),a=Reflect.get(e,i,d(o));if("ctx"===r&&"defineProperty"===s&&"function"==typeof a)return function(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];let n=a(...t);try{u(String((null==t?void 0:t[0])??""),null==t?void 0:t[1])}catch(e){}return n};if("ctx"===r&&"defineMethod"===s&&"function"==typeof a)return function(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];let n=a(...t);try{c(String((null==t?void 0:t[0])??""),null==t?void 0:t[2])}catch(e){}return n};let h=null==(l=t.children)?void 0:l[s];if(!h)return a;let m=`${r}.${s}`;if("function"==typeof a&&h.deprecated)return f(a,h,m);if(h.deprecated){let e=n.has(m)?void 0:Error().stack;p(m,h.deprecated,e)}return a&&("object"==typeof a||"function"==typeof a)&&h.children?g(a,h,m):a},has:(e,t)=>Reflect.has(e,t)});return i.set(s,e),l.set(r,s),s};return g(e,r,"ctx")}function eB(e,t,r){if(!eC(t))return e;if(!eC(e))return t;let n={...e};for(let i of Object.keys(t)){let o=t[i];if(null===o){delete n[i];continue}let l=r(eC(e)?e[i]:void 0,o);void 0===l?delete n[i]:n[i]=l}return n}function eL(e,t){if(null===t)return;let r=eC(e),n=eC(t),i="string"==typeof e;if("string"==typeof t)return r?eL(e,{description:t}):t;if(n){let n=r?e:i?{description:e}:void 0,o={...n||{}};for(let e of Object.keys(t)){if("properties"===e){let e=t.properties;if(null===e){delete o.properties;continue}let r=eB(null==n?void 0:n.properties,e,eL);void 0===r?delete o.properties:o.properties=r;continue}let r=eP(null==n?void 0:n[e],t[e]);void 0===r?delete o[e]:o[e]=r}return o}return t??e}function ez(e,t){if(null===t)return;let r=eC(e),n=eC(t),i="string"==typeof e;if("string"==typeof t)return r?ez(e,{description:t}):t;if(n){let n=r?e:i?{description:e}:void 0,o={...n||{}};for(let e of Object.keys(t)){let r=eP(null==n?void 0:n[e],t[e]);void 0===r?delete o[e]:o[e]=r}return o}return t??e}function eq(e,t){let r=eC(e)?e:{},n=eC(t)?t:{},i={...r};for(let e of Object.keys(n)){if("properties"===e){let e=eB(r.properties,n.properties,eL);void 0===e?delete i.properties:i.properties=e;continue}if("methods"===e){let e=eB(r.methods,n.methods,ez);void 0===e?delete i.methods:i.methods=e;continue}let t=eP(r[e],n[e]);void 0===t?delete i[e]:i[e]=t}return i}class eW extends ep{exit(){var e;throw new j.zz(this.flowKey,(null==(e=this.model)?void 0:e.uid)||"runjs")}exitAll(){var e;throw new j.zz(this.flowKey,(null==(e=this.model)?void 0:e.uid)||"runjs")}static define(e,t){let r=null==t?void 0:t.locale;if(r){let t=ej.get(this)||new Map,n=t.get(r)||{};t.set(r,eq(n,e)),ej.set(this,t)}else{let t=eE.get(this)||{};eE.set(this,eq(t,e))}eR.delete(this)}static getDoc(e){let t=this,r=eR.get(t),n=String(e||"default");if(r&&r.has(n))return r.get(n);let i=[],o=t;for(;o&&o.prototype;)i.unshift(o),o=Object.getPrototypeOf(o);let l={};for(let e of i)l=eq(l,eE.get(e)||{});if(e)for(let t of i){let r=ej.get(t);r&&r.has(e)&&(l=eq(l,r.get(e)))}return r||(r=new Map,eR.set(t,r)),r.set(n,l),l}constructor(e){super(),this.addDelegate(e),this.defineProperty("React",{value:g}),this.defineProperty("antd",{value:c}),this.defineProperty("dayjs",{value:$()});let t={...y,createRoot:(e,t)=>{let r=(null==e?void 0:e.__el)||e;return this.engine.reactView.createRoot(r,t)}};t.__nbRunjsInternalShim=!0,this.defineProperty("ReactDOM",{value:t}),(0,O.oJ)(this),this.defineMethod("render",function(e,t){let r=t||this.element;if(!r)throw Error("ctx.render: container not provided and ctx.element is not available");let n=(null==r?void 0:r.__el)||r,i=globalThis;i.__nbRunjsRoots=i.__nbRunjsRoots||new WeakMap;let o=i.__nbRunjsRoots,l=e=>{if(!e)return;if(e.disposeTheme&&"function"==typeof e.disposeTheme){try{e.disposeTheme()}catch(e){}e.disposeTheme=void 0}let t=e.root||e;if(t&&"function"==typeof t.unmount)try{t.unmount()}catch(e){}},s=()=>{let e=o.get(n);e&&(l(e),o.delete(n))};if("string"==typeof e)return s(),new v.x(n).innerHTML=String(e??""),null;if(e&&e.nodeType&&(1===e.nodeType||3===e.nodeType||11===e.nodeType)){for(s();n.firstChild;)n.removeChild(n.firstChild);return n.appendChild(e),null}let a=this.ReactDOM,u=this,d=o.get(n);return d&&d.rendererKey===a&&d.ownerKey===u||(d&&(l(d),o.delete(n)),d={rendererKey:a,ownerKey:u,root:this.ReactDOM.createRoot(n),disposeTheme:void 0,lastVnode:void 0},o.set(n,d)),(0,O.$B)({ctx:this,entry:d,vnode:e,containerEl:n,rootMap:o,unmountContainerRoot:s,internalReact:g,internalAntd:c})})}}},81440(e,t,r){r.d(t,{$:()=>eb});var n=r(88243),i=r(16213),o=r(50467),l=r(95243),s=r(2543),a=r.n(s),u=r(81318),c=r.n(u),d=r(64171);class h extends d.Z{getAction(e){return this.actions.get(e)}getActions(){return new Map(this.actions)}}var p=r(26955);class f extends p.L{getEvent(e){return this.events.get(e)}getEvents(){return new Map(this.events)}}var g=r(29007),m=r(48555),y=r(31108),v=r(88439),w=r(62572);class b{async emitModelEventIf(e,t,r){e&&await this.engine.emitter.emitAsync(`model:event:${e}:${t}`,r)}async withApplyFlowCache(e,t){if(!e||!this.engine)return await t();let r=this.engine.applyFlowCache.get(e);if(r){if("resolved"===r.status)return r.data;if("rejected"===r.status)throw r.error;if("pending"===r.status)return await r.promise}let n=t().then(t=>(this.engine.applyFlowCache.set(e,{status:"resolved",data:t,promise:Promise.resolve(t)}),t)).catch(t=>{throw this.engine.applyFlowCache.set(e,{status:"rejected",error:t,promise:Promise.reject(t)}),t});return this.engine.applyFlowCache.set(e,{status:"pending",promise:n}),await n}async runFlow(e,t,r,n,i){var o;let l,s=e.getFlow(t);if(!s)return e.context.logger.error(`BaseModel.applyFlow: Flow with key '${t}' not found.`),Promise.reject(Error(`Flow '${t}' not found.`));let u=new g.W5(e,t);u.defineProperty("reactView",{value:e.reactView}),u.defineProperty("inputArgs",{value:{...r}}),u.defineProperty("runId",{value:n||`run-${Date.now()}`});let c=u.stepResults,d=e.getEvent("string"==typeof s.on?s.on:null==(o=s.on)?void 0:o.eventName);d&&((d={...d}).defaultParams={...a().get(s,"on.defaultParams",{}),...d.defaultParams});let h=d?{eventStep:d,...s.steps}:s.steps;(0,v.w)(u,h,e,t);let p=u.steps,f={uid:e.uid,model:e,runId:u.runId,inputArgs:r,flowKey:t};for(let[r,n]of(await this.emitModelEventIf(i,`flow:${t}:start`,f),Object.entries(h))){let o,s,a={},d=n.useRawParams;if(n.use){let i=e.getAction(n.use);if(!i){u.logger.error(`BaseModel.applyFlow: Action '${n.use}' not found for step '${r}' in flow '${t}'. Skipping.`);continue}s=await (0,w.v)(u,{...i,...n}),o=n.handler||i.handler,d=d??i.useRawParams;let l=await (0,m.gG)(i.defaultParams,s),c=await (0,m.gG)(n.defaultParams,s);a={...l,...c}}else if(n.handler)s=await (0,w.v)(u,n),o=n.handler,a={...await (0,m.gG)(n.defaultParams,s)};else{u.logger.error(`BaseModel.applyFlow: Step '${r}' in flow '${t}' has neither 'use' nor 'handler'. Skipping.`);continue}let h=e.getStepParams(t,r);void 0!==h&&(a={...a,...h}),"function"==typeof d&&(d=await d(s)),d||(a=await s.resolveJsonTemplate(a));try{if(!o){u.logger.error(`BaseModel.applyFlow: No handler available for step '${r}' in flow '${t}'. Skipping.`);continue}await this.emitModelEventIf(i,`flow:${t}:step:${r}:start`,{...f,stepKey:r});let e=o(s,a);l=!1!==n.isAwait?await e:e,c[r]=l,p[r].result=c[r],await this.emitModelEventIf(i,`flow:${t}:step:${r}:end`,{...f,result:l,stepKey:r})}catch(e){if(e instanceof m.sy||e instanceof y.zz||await this.emitModelEventIf(i,`flow:${t}:step:${r}:error`,{...f,error:e,stepKey:r}),e instanceof m.sy)return u.logger.info(`[FlowEngine] ${e.message}`),await this.emitModelEventIf(i,`flow:${t}:step:${r}:end`,{...f,stepKey:r}),await this.emitModelEventIf(i,`flow:${t}:end`,{...f,result:c}),Promise.resolve(c);if(e instanceof y.zz)return u.logger.info(`[FlowEngine] ${e.message}`),await this.emitModelEventIf(i,`flow:${t}:step:${r}:end`,{...f,stepKey:r,aborted:!0}),await this.emitModelEventIf(i,`flow:${t}:end`,{...f,result:e,aborted:!0}),Promise.resolve(e);return await this.emitModelEventIf(i,`flow:${t}:error`,{...f,error:e}),u.logger.error({err:e},`BaseModel.applyFlow: Error executing step '${r}' in flow '${t}':`),Promise.reject(e)}}return await this.emitModelEventIf(i,`flow:${t}:end`,{...f,result:c}),Promise.resolve(c)}async dispatchEvent(e,t,r,n){var i,o,l,s;let a="beforeRender"===t,u=!!(null==n?void 0:n.sequential),c=!!(null==n?void 0:n.useCache),d=a,h=`${e.uid}-${t}-${Date.now()}`,p=e.context.logger,f={uid:e.uid,model:e,runId:h,inputArgs:r};try{await this.emitModelEventIf(t,"start",f),await (null==(i=e.onDispatchEventStart)?void 0:i.call(e,t,n,r))}catch(i){if(a&&i instanceof m.sy)return p.debug(`[FlowModel.dispatchEvent] ${i.message}`),[];try{await (null==(o=e.onDispatchEventError)?void 0:o.call(e,t,n,r,i))}finally{p.error({err:i},`BaseModel.dispatchEvent: Start hook error for event '${t}'`)}if(d)throw i;return}let g=a?e.getEventFlows("beforeRender"):Array.from(e.getFlows().values()).filter(e=>{let r=e.on;return!!r&&("string"==typeof r?r===t:"object"==typeof r&&r.eventName===t)}),v="click"===t&&(null==r?void 0:r.triggerByRouter)===!0?g.filter(e=>{var t;let r=e.flowRegistry;return"instance"!==(null==r||null==(t=r.constructor)?void 0:t._type)}):g,w=[],b=async()=>{let n=!1;if(u){let i=v.map((e,t)=>({f:e,i:t})).slice().sort((e,t)=>{var r,n;let i=e.f.flowRegistry,o=t.f.flowRegistry,l=null==i||null==(r=i.constructor)?void 0:r._type,s=null==o||null==(n=o.constructor)?void 0:n._type,a=+("instance"!==l),u=+("instance"!==s);if(a!==u)return a-u;let c=e.f.sort??0,d=t.f.sort??0;return c!==d?c-d:e.i-t.i}).map(e=>e.f),o=[],l=new Map(i.filter(e=>{var t;let r=e.flowRegistry;return"instance"!==(null==r||null==(t=r.constructor)?void 0:t._type)}).map(e=>[e.key,e])),s=new Set,a=new Map;for(let[n,u]of(i.forEach((e,r)=>{let n=e.on,i="object"==typeof n?n:void 0;if(!i)return;let o=i.phase,u=i.flowKey,c=i.stepKey;if(!o||"beforeAllFlows"===o)return;let d=null;if("afterAllFlows"===o)d=`event:${t}:end`;else if("beforeFlow"===o||"afterFlow"===o)if(u)if(l.get(String(u))){let e="beforeFlow"===o?"start":"end";d=`event:${t}:flow:${String(u)}:${e}`}else d=`event:${t}:end`;else d=`event:${t}:end`;else if("beforeStep"!==o&&"afterStep"!==o)return;else if(u&&c){var h;let e=l.get(String(u)),r=!!(null==e||null==(h=e.hasStep)?void 0:h.call(e,String(c)));if(e&&r){let e="beforeStep"===o?"start":"end";d=`event:${t}:flow:${String(u)}:step:${String(c)}:${e}`}else d=`event:${t}:end`}else d=`event:${t}:end`;if(!d)return;let p=d===`event:${t}:end`||"afterFlow"===o||"afterStep"===o;s.add(e.key);let f=a.get(d)||[];f.push({flow:e,order:r,shouldSkipOnAborted:p}),a.set(d,f)}),a.entries()))for(let i of u.slice().sort((e,t)=>{let r=e.flow.sort??0,n=t.flow.sort??0;return r!==n?r-n:e.order-t.order})){let l=i.shouldSkipOnAborted?Object.assign(e=>e.type===n&&!0!==e.aborted,{__eventType:n}):n,s=e.scheduleModelOperation(e.uid,async e=>{let n=await this.runFlow(e,i.flow.key,r,h,t);if(n instanceof y.zz)throw n;o.push(n)},{when:l});w.push(s)}for(let l of i)if(!s.has(l.key))try{p.debug(`BaseModel '${e.uid}' dispatching event '${t}' to flow '${l.key}' (sequential).`);let i=await this.runFlow(e,l.key,r,h,t);if(i instanceof y.zz){p.debug(`[FlowEngine.dispatchEvent] ${i.message}`),n=!0;break}o.push(i)}catch(e){if(e instanceof y.zz){p.debug(`[FlowEngine.dispatchEvent] ${e.message}`),n=!0;break}throw p.error({err:e},`BaseModel.dispatchEvent: Error executing event-triggered flow '${l.key}' for event '${t}' (sequential):`),e}return{result:o,abortedByExitAll:n}}let i=(await Promise.all(v.map(async n=>{p.debug(`BaseModel '${e.uid}' dispatching event '${t}' to flow '${n.key}'.`);try{return await this.runFlow(e,n.key,r,h,t)}catch(e){if(p.error({err:e},`BaseModel.dispatchEvent: Error executing event-triggered flow '${n.key}' for event '${t}':`),d)throw e;return}}))).filter(e=>void 0!==e);return i.some(e=>e instanceof y.zz)&&(n=!0),{result:i,abortedByExitAll:n}},x=c?JSON.stringify(r??{}):"",S=c?eb.generateApplyFlowCacheKey(`event:${e.getFlowCacheScope(t)}:${x}`,t,e.uid):null;try{let{result:i,abortedByExitAll:o}=await this.withApplyFlowCache(S,b);try{await (null==(l=e.onDispatchEventEnd)?void 0:l.call(e,t,n,r,i))}catch(e){p.error({err:e},`BaseModel.dispatchEvent: End hook error for event '${t}'`)}return await this.emitModelEventIf(t,"end",{...f,result:i,...o?{aborted:!0}:{}}),i&&"object"==typeof i&&Object.defineProperty(i,"__abortedByExitAll",{value:o,configurable:!0}),i}catch(i){try{await (null==(s=e.onDispatchEventError)?void 0:s.call(e,t,n,r,i))}catch(e){}if(e.context.logger.error({err:i},`BaseModel.dispatchEvent: Error executing event '${t}' for model '${e.uid}':`),await this.emitModelEventIf(t,"error",{...f,error:i}),d)throw i}finally{for(let e of w)e()}}constructor(e){(0,o._)(this,"engine",void 0),this.engine=e}}var x=r(58587),S=r(18150),_=r(68238),A=r(60645),k=r(18220),M=r(47674),E=r(21637),j=r(71021),R=r(84626),P=r(96540),C=r(74848),F=r(53619),T=r(92034),I=r(98393),$=r(42443),O=r(88040),D=r(35710),N=r(18182),B=r(76511),L=r(1314),z=r(57084),q=r(94313),W=r(20616),V=r(52847);let U={marginLeft:32},K=(0,V.PA)(e=>{let{title:t,onChange:r,getDefaultValue:n,disabled:i,itemKey:o,...l}=e,[s,a]=(0,P.useState)(!1),u=(0,W.Db)();(0,P.useEffect)(()=>{let e=!1;return(async()=>{if(n)try{let t=await n();if(e||!t)return;let r=Object.entries(t);if(!r.length)return;let[i,o]=r[0];a(!!o)}catch(e){console.error(e)}})(),()=>{e=!0}},[n]);let c=e=>{a(e),null==r||r({[o]:e})},d=e=>{e.stopPropagation(),i||c(!s)};return(0,C.jsxs)("div",{style:{alignItems:"center",display:"flex",justifyContent:"space-between",cursor:i?"not-allowed":"pointer"},onClick:d,children:[t,(0,C.jsx)(q.A,{size:"small",...l,checkedChildren:l.checkedChildren?u.t(l.checkedChildren):void 0,unCheckedChildren:l.unCheckedChildren?u.t(l.unCheckedChildren):void 0,checked:s,style:U,disabled:i})]})});var H=r(36492);let J=(e,t,r)=>{let n=t.maxDepth,i="number"==typeof t.arrayLimit?t.arrayLimit:1/0,o=t.mode??"stack",l=new Set,s=new Set,a=(e,t,u)=>{if(!e||t>n)return;let c=()=>{r(e,{depth:t,modelKey:u}),t>=n||Object.entries(e.subModels||{}).forEach(e=>{let[r,n]=e;if(Array.isArray(n)){let e=Number.isFinite(i)?Math.min(n.length,i):n.length;for(let i=0;i<e;i++){let e=n[i];e instanceof L.WD&&a(e,t+1,`${r}[${i}]`)}return}n instanceof L.WD&&a(n,t+1,r)})};if("visited"===o){if(l.has(e))return;l.add(e),c();return}let d=e.uid||`temp-${Date.now()}`;if(!s.has(d)){s.add(d);try{c()}finally{s.delete(d)}}};a(e,1)},Y=(e,t)=>{var r;if(!e||!t||"string"!=typeof t)return console.warn("Invalid input parameters"),null;let n=t.match(/^([a-zA-Z_$][a-zA-Z0-9_$]*)(?:\[(\d+)\])?$/);if(!n)return console.warn(`Invalid subModelKey format: ${t}`),null;let[,i,o]=n,l=null==(r=e.subModels)?void 0:r[i];if(!l)return console.warn(`SubModel '${i}' not found`),null;if(void 0!==o){let e=parseInt(o,10);return Array.isArray(l)?e<0||e>=l.length?(console.warn(`Array index ${e} out of bounds for '${i}'`),null):l[e]instanceof L.WD?l[e]:null:(console.warn(`Expected array for '${i}', got ${typeof l}`),null)}return Array.isArray(l)?(console.warn(`Expected object for '${i}', got array`),null):l instanceof L.WD?l:null},G={switch:K,select:function(e){let{title:t,getDefaultValue:r,onChange:n,options:i,fieldNames:o,itemKey:l,...s}=e,[a,u]=(0,P.useState)(!1),[c,d]=(0,P.useState)(""),h=(0,W.Db)();(0,P.useEffect)(()=>{let e=!1;return(async()=>{if(r)try{let t=await r();if(e||!t)return;let n=Object.entries(t);if(!n.length)return;let[i,o]=n[0];d(o)}catch(e){console.error(e)}})(),()=>{e=!0}},[r]);let p=(0,P.useRef)(null),f=e=>{d(e),null==n||n({[l]:e})};return(0,C.jsxs)("div",{style:{alignItems:"center",display:"flex",justifyContent:"space-between"},onClick:e=>{e.stopPropagation(),u(e=>!e)},onMouseLeave:()=>{p.current=setTimeout(()=>{u(!1)},200)},children:[(0,C.jsx)("span",{style:{whiteSpace:"nowrap",flexShrink:0},children:t}),(0,C.jsx)(H.A,{...s,open:a,popupMatchSelectWidth:!1,bordered:!1,value:c,onChange:f,popupClassName:`select-popup-${t.replaceAll(" ","-")}`,fieldNames:o,options:i,labelRender:e=>h.t(e.label),optionRender:e=>h.t(e.label),style:{textAlign:"right",minWidth:100},onMouseEnter:()=>{clearTimeout(p.current)},dropdownRender:e=>s.dropdownRender?s.dropdownRender(e,u,f):e})]})}},Z=e=>{let{title:t,uiMode:r,itemProps:n}=e,i=(null==r?void 0:r.type)||r,o=i?G[i]:null,l=!!(null==n?void 0:n.disabled),s=null==n?void 0:n.disabledReason,a=null==n?void 0:n.disabledIconColor,u=o?(0,C.jsx)(o,{title:t,...n}):(0,C.jsx)(C.Fragment,{children:t});return l?(0,C.jsxs)("span",{style:{display:"inline-flex",alignItems:"center",gap:6},children:[u,(0,C.jsx)($.A,{title:s,placement:"right",destroyTooltipOnHide:!0,children:(0,C.jsx)(F.A,{style:{color:a}})})]}):u},X=e=>{let{model:t,showDeleteButton:r=!0,showCopyUidButton:n=!0,menuLevels:i=1,flattenSubMenus:o=!0}=e,{message:l}=O.A.useApp(),s=(0,P.useMemo)(()=>(0,m.lW)(t),[t]),{token:a}=D.A.useToken(),u=(null==a?void 0:a.colorTextTertiary)||(null==a?void 0:a.colorTextDescription)||(null==a?void 0:a.colorTextSecondary),[c,d]=(0,P.useState)(!1),[h,p]=(0,P.useState)(0),[f,g]=(0,P.useState)([]),[y,v]=(0,P.useState)([]),[w,b]=(0,P.useState)(!0),x=(0,P.useCallback)(()=>{d(!1)},[]),S=(0,P.useCallback)((e,t)=>{("trigger"===t.source||e)&&(0,P.startTransition)(()=>{d(e)})},[]),_=(0,z.t_)([c]);(0,P.useEffect)(()=>{let e=!0,r=async()=>{let r=[],n=[];for(let{model:e,modelKey:l}of(J(t,{maxDepth:i,arrayLimit:50,mode:"stack"},(e,t)=>{let{modelKey:r}=t;n.push({model:e,modelKey:r})}),n)){var o;let t=e.constructor,n=await (null==(o=t.getExtraMenuItems)?void 0:o.call(t,e,s));(null==n?void 0:n.length)&&r.push(...n.map(e=>({...e,key:l?`${l}:${e.key}`:e.key})))}if(e){let e=new Set;g(r.filter(t=>!e.has(`${t.key}`)&&(e.add(`${t.key}`),!0)))}};return c&&r(),()=>{e=!1}},[t,i,s,h,c]);let A=(0,P.useCallback)(async e=>{try{await navigator.clipboard.writeText(e),l.success(s("UID copied to clipboard"))}catch(r){var t;if(console.error(s("Copy failed"),":",r),!("u">typeof window&&(null==(t=window.location)?void 0:t.protocol)==="https:"))return void l.error(s("Copy failed under HTTP. Clipboard API is unavailable on non-HTTPS pages. Please copy [{{uid}}] manually.",{uid:e}));l.error(s("Copy failed, please copy [{{uid}}] manually.",{uid:e}))}},[l,s]),k=(0,P.useCallback)(async()=>{A(t.uid)},[t.uid,A]),M=(0,P.useCallback)(e=>{try{let r=e.replace(/^copy-pop-uid:/,"").split(":"),n=t;if(3===r.length){let[e]=r;n=Y(t,e)||t}else if(2!==r.length)return void console.error("Invalid copy-pop-uid key format:",e);A(n.uid)}catch(e){console.error("handleCopyPopupUid error:",e)}},[t,A]),E=(0,P.useCallback)(()=>{x(),N.A.confirm({title:s("Confirm delete"),icon:(0,C.jsx)(T.A,{}),content:s("Are you sure you want to delete this item? This action cannot be undone."),okText:s("Confirm"),okType:"primary",cancelText:s("Cancel"),zIndex:999999,async onOk(){try{await t.destroy()}catch(e){console.error(s("Delete operation failed"),":",e),N.A.error({title:s("Delete failed"),content:s("Delete operation failed, please check the console for details.")})}}})},[x,t,s]),j=(0,P.useCallback)(e=>{let r,n,i=e.split(":");if(i.length<2||i.length>3)return void console.error("Invalid configuration key format:",e);let o=t;if(3===i.length){let[e,l,s]=i;r=l,n=s;let a=Y(t,e);if(!a)return void console.error(`Sub-model '${e}' not found`);o=a}else[r,n]=i;try{x(),o.openFlowSettings({flowKey:r,stepKey:n})}catch(e){console.log(s("Configuration popup cancelled or error"),":",e)}},[x,t,s]),R=(0,P.useCallback)(e=>{let t,r,n,i=(e.includes("-")&&/^(.+)-\d+$/.test(e)?e.replace(/-\d+$/,""):e).split(":");if(3===i.length)[t,r,n]=i;else{if(2!==i.length)return!1;[r,n]=i}return y.some(e=>{let{flow:i,steps:o,modelKey:l}=e;return(l||void 0)===t&&i.key===r&&o.some(e=>e.stepKey===n&&!!e.disabled)})},[y]),L=(0,P.useCallback)(e=>{let{key:t}=e,r=t,n=t.includes("-")&&/^(.+)-\d+$/.test(t)?t.replace(/-\d+$/,""):t;if(n.startsWith("copy-pop-uid:")){x(),M(n);return}let i=f.find(e=>(null==e?void 0:e.key)===r||(null==e?void 0:e.key)===n);if(null==i?void 0:i.onClick){x(),i.onClick();return}if(!R(n))switch(n){case"copy-uid":x(),k();break;case"delete":E();break;default:j(n)}},[x,k,E,j,M,f,R]),q=(0,P.useCallback)(async(e,t)=>{try{let r=new Map(e.constructor.globalFlowRegistry.getFlows()),n=Array.from(r.values());return await Promise.all(n.map(async r=>{let n=await Promise.all(Object.entries(r.steps).map(async n=>{let[i,o]=n,l=o,a=l;if(await (0,m._3)(e,r,l))return null;let u=await (0,m.XM)(e,r,l),c=await (0,m.ME)(l.uiMode,e.context),d=null!=l.uiSchema,h=!1,p=l.title;if(l.use)try{var f;let t=null==(f=e.getAction)?void 0:f.call(e,l.use);a={...t||{},...l},c=await (0,m.ME)((null==t?void 0:t.uiMode)||c,e.context),h=t&&null!=t.uiSchema,p=p||(null==t?void 0:t.title)}catch(e){console.warn(s("Failed to get action {{action}}",{action:l.use}),":",e)}let g=["select","switch"].includes((null==c?void 0:c.type)||c);if(!g&&!d&&!h)return null;let y={};try{let t=await (0,m.o7)(e,r,l);if(!t&&!g)return null;y=t}catch(e){return console.warn(s("Failed to resolve uiSchema for step {{stepKey}}",{stepKey:i}),":",e),null}return{stepKey:i,step:a,uiSchema:y,title:s(p)||i,modelKey:t,uiMode:c,disabled:u.disabled,disabledReason:u.reason}})).then(e=>e.filter(Boolean));return n.length>0?{flow:r,steps:n,modelKey:t}:null})).then(e=>e.filter(Boolean))}catch(t){return console.error(s("Failed to get configurable flows for model {{model}}",{model:(null==e?void 0:e.uid)||"unknown"}),":",t),[]}},[]),W=(0,P.useCallback)(async()=>{let e=[],r=[];for(let{model:n,modelKey:o}of(J(t,{maxDepth:i,arrayLimit:50,mode:"stack"},(e,t)=>{let{modelKey:n}=t;r.push({model:e,modelKey:n})}),r)){let t=await q(n,o);e.push(...t)}return e},[t,i,q]);(0,P.useEffect)(()=>{let e=()=>{p(e=>e+1)},r=[];return J(t,{maxDepth:i,mode:"visited"},(t,n)=>{let{depth:i}=n,o=["onStepParamsChanged"];1===i&&o.push("onSubModelAdded","onSubModelRemoved","onSubModelReplaced"),o.forEach(n=>{var i;null==(i=t.emitter)||i.on(n,e),r.push(()=>{var r;return null==(r=t.emitter)?void 0:r.off(n,e)})})}),()=>{r.forEach(e=>e())}},[t,i,h]),(0,P.useEffect)(()=>{(async()=>{b(!0);try{let e=await W();v(e)}catch(e){console.error("Failed to load configurable flows and steps:",e),v([])}finally{b(!1)}})()},[W,h]);let V=(0,P.useMemo)(()=>{let e=[],r=new Map,n=e=>{let t=r.get(e)||0;return r.set(e,t+1),0===t?e:`${e}-${t}`};if(y.length>0)if(o)y.forEach(r=>{let{flow:i,steps:o,modelKey:a}=r,c=n(`flow-group-${a?`${a}-`:""}${i.key}`);"top"===i.options.divider&&e.push({type:"divider"}),i.options.enableTitle&&e.push({key:c,label:s(i.title)||i.key,type:"group"}),o.forEach(r=>{let o=n(a?`${a}:${i.key}:${r.stepKey}`:`${i.key}:${r.stepKey}`),c=r.uiMode,d=(r.modelKey?Y(t,r.modelKey):null)||t,h=d.getStepParams(i.key,r.stepKey)||{},p={getDefaultValue:async()=>{let e=await (0,m.gG)(r.step.defaultParams,d.context);if(r.step.use){var t;let n=null==(t=d.getAction)?void 0:t.call(d,r.step.use);e=await (0,m.gG)(n.defaultParams,d.context)}return{...e,...h}},onChange:async e=>{var t;d.setStepParams(i.key,r.stepKey,e),"function"==typeof r.step.beforeParamsSave&&await r.step.beforeParamsSave(d.context,e,h),await d.saveStepParams(),null==l||null==(t=l.success)||t.call(l,s("Configuration saved")),"function"==typeof r.step.afterParamsSave&&await r.step.afterParamsSave(d.context,e,h)},...(null==c?void 0:c.props)||{},itemKey:null==c?void 0:c.key,disabled:!!r.disabled,disabledReason:r.disabledReason,disabledIconColor:u};e.push({key:o,label:(0,C.jsx)(Z,{title:r.title,uiMode:c,itemProps:p}),disabled:!!r.disabled})}),"bottom"===i.options.divider&&e.push({type:"divider"})});else{let t=new Map;y.forEach(e=>{let r=e.modelKey||"current";t.has(r)||t.set(r,[]);let n=t.get(r);n&&n.push(e)}),t.forEach((t,r)=>{if("current"===r)t.forEach(t=>{let{flow:r,steps:i}=t,o=n(`flow-group-${r.key}`);e.push({key:o,label:s(r.title)||r.key,type:"group"}),i.forEach(t=>{let i=n(`${r.key}:${t.stepKey}`);e.push({key:i,label:t.disabled?(0,C.jsxs)("span",{style:{display:"inline-flex",alignItems:"center",gap:6},children:[t.title,(0,C.jsx)($.A,{title:t.disabledReason,placement:"right",destroyTooltipOnHide:!0,children:(0,C.jsx)(F.A,{style:{color:u}})})]}):t.title,disabled:!!t.disabled})})});else{let i=n(`sub-menu-${r}`),o=[];t.forEach(e=>{let{flow:t,steps:i}=e;i.forEach(e=>{let i=n(`${r}:${t.key}:${e.stepKey}`);o.push({key:i,label:e.disabled?(0,C.jsxs)("span",{style:{display:"inline-flex",alignItems:"center",gap:6},children:[e.title,(0,C.jsx)($.A,{title:e.disabledReason,placement:"right",destroyTooltipOnHide:!0,children:(0,C.jsx)(F.A,{style:{color:u}})})]}):e.title,disabled:!!e.disabled})})}),e.push({key:i,label:r,children:o})}})}return e},[y,u,o,s]),U=(0,P.useMemo)(()=>{let e=[...V],i=f.filter(e=>"common-actions"===e.group).sort((e,t)=>(e.sort??0)-(t.sort??0));return(n||r||i.length>0)&&(e.push({type:"divider"}),i.length>0&&e.push(...i),n&&t.uid&&e.push({key:"copy-uid",label:s("Copy UID")}),r&&"function"==typeof t.destroy&&e.push({key:"delete",label:s("Delete")})),e},[V,n,r,t.uid,t.destroy,s,f]),K=f.some(e=>"common-actions"===e.group);return!w&&(0!==y.length||r||n||K)?t&&t.uid?(0,C.jsx)(B.A,{onOpenChange:S,open:c,menu:{items:U,onClick:L,style:{maxHeight:_,overflowY:"auto"}},trigger:["hover"],placement:"bottomRight",children:(0,C.jsx)(I.A,{role:"button","aria-label":"flows-settings",style:{cursor:"pointer",fontSize:12}})}):(console.warn(s("Invalid model provided")),null):null};var Q=r(23183),ee=r(48036),et=r(19098),er=r(16296),en=r(23200),ei=r(52249),eo=r(22505);let el=M.A.Panel;var es=new WeakMap,ea=new WeakMap;class eu{on(e,t){(0,x._)(this,ea).on(e,t)}off(e,t){(0,x._)(this,ea).off(e,t)}addDefaultToolbarItems(){this.toolbarItems.push({key:"settings-menu",component:X,sort:0})}async load(){if(this.antdComponentsLoaded)return void console.log("FlowSettings: Antd components already loaded, skipping...");try{let{ArrayBase:e,ArrayCards:t,ArrayCollapse:n,ArrayItems:i,ArrayTable:o,ArrayTabs:l,Cascader:s,Checkbox:a,DatePicker:u,Editable:c,Form:d,FormDialog:h,FormDrawer:p,FormButtonGroup:f,FormCollapse:g,FormGrid:m,FormItem:y,FormLayout:v,FormStep:w,FormTab:b,Input:x,NumberPicker:S,Password:_,PreviewText:A,Radio:k,Reset:M,Select:E,SelectTable:j,Space:R,Submit:P,Switch:C,TimePicker:F,Transfer:T,TreeSelect:I,Upload:$}=await r.e("1331").then(r.bind(r,54766)),{Button:O,Alert:D}=await Promise.resolve().then(r.bind(r,37015));this.components.Form=d,this.components.FormDialog=h,this.components.FormDrawer=p,this.components.FormItem=y,this.components.FormLayout=v,this.components.FormGrid=m,this.components.FormStep=w,this.components.FormTab=b,this.components.FormCollapse=g,this.components.FormButtonGroup=f,this.components.Input=x,this.components.NumberPicker=S,this.components.Password=_,this.components.Select=E,this.components.SelectTable=j,this.components.Cascader=s,this.components.TreeSelect=I,this.components.Transfer=T,this.components.DatePicker=u,this.components.TimePicker=F,this.components.Checkbox=a,this.components.Radio=k,this.components.Switch=C,this.components.ArrayBase=e,this.components.ArrayCards=t,this.components.ArrayCollapse=n,this.components.ArrayItems=i,this.components.ArrayTable=o,this.components.ArrayTabs=l,this.components.Upload=$,this.components.Space=R,this.components.Editable=c,this.components.PreviewText=A,this.components.Alert=D,this.components.Button=O,this.components.Submit=P,this.components.Reset=M,this.antdComponentsLoaded=!0,console.log("FlowSettings: Antd components loaded successfully")}catch(e){throw console.error("FlowSettings: Failed to load Antd components:",e),e}}registerComponents(e){Object.keys(e).forEach(t=>{this.components[t]&&console.warn(`FlowSettings: Component with name '${t}' is already registered and will be overwritten.`),this.components[t]=e[t]})}registerComponentLoaders(e){Object.entries(e).forEach(e=>{let[t,r]=e;this.components[t]&&console.warn(`FlowSettings: Component with name '${t}' is already registered and will be overwritten.`),this.components[t]=(0,eo.R)(async()=>{let e=await r();if("function"==typeof e)return{default:e};if((null==e?void 0:e.default)&&"function"==typeof e.default)return{default:e.default};let n=null==e?void 0:e[t];if("function"==typeof n)return{default:n};throw Error(`FlowSettings: component loader for '${t}' must resolve to a React component or a module exporting it.`)})})}registerScopes(e){Object.keys(e).forEach(t=>{this.scopes[t]&&console.warn(`FlowSettings: Scope with name '${t}' is already registered and will be overwritten.`),this.scopes[t]=e[t]})}async enable(){await this.engine.preloadModelLoaders(),this.enabled=!0}async forceEnable(){await this.engine.preloadModelLoaders(),(0,_._)(this,es,!0),this.enabled=!0}async disable(){(0,x._)(this,es)||(this.enabled=!1)}async forceDisable(){(0,_._)(this,es,!1),this.enabled=!1}addToolbarItem(e){let t=this.toolbarItems.findIndex(t=>t.key===e.key);-1!==t?(console.warn(`FlowSettings: Toolbar item with key '${e.key}' already exists and will be replaced.`),this.toolbarItems[t]=e):this.toolbarItems.push(e),this.toolbarItems.sort((e,t)=>(t.sort||0)-(e.sort||0))}addToolbarItems(e){e.forEach(e=>this.addToolbarItem(e))}removeToolbarItem(e){let t=this.toolbarItems.findIndex(t=>t.key===e);-1!==t&&this.toolbarItems.splice(t,1)}getToolbarItems(){return[...this.toolbarItems]}clearToolbarItems(){this.toolbarItems=[]}async openStepSettingsDialog(e){return await (0,Q.openStepSettingsDialog)(e)}renderStepForm(e){var t,r;let{uiSchema:n,initialValues:i,flowEngine:o,form:l,onFormValuesChange:s,key:a}=e,u={useFlowSettingsContext:er.s,...(null==o||null==(t=o.flowSettings)?void 0:t.scopes)||{}},c={type:"object",properties:{layout:{type:"void","x-component":"FormLayout","x-component-props":{layout:"vertical"},properties:n}}},d=(0,m.ln)(u,c),h=(0,k.createSchemaField)();return P.createElement(ec,{form:l,initialValues:i,onFormValuesChange:s,key:a},P.createElement(h,{schema:d,components:(null==o||null==(r=o.flowSettings)?void 0:r.components)||{},scope:u}))}async open(e){var t,r,n,i,o,s,u;(0,x._)(this,ea).emit("beforeOpen",e);let{model:c,flowKey:d,flowKeys:h,stepKey:p,uiMode:f="dialog",preset:v,onCancel:w,onSaved:b}=e;if(!c)throw Error("FlowSettings.open: model is required");let S=(0,m.lW)(c),_=null==(t=c.context)?void 0:t.message,k=c.getFlows(),C=d?[d]:Array.isArray(h)&&h.length?h:Array.from(k.keys()),F=[];for(let e of(await this.load(),C)){let t=c.getFlow(e);if(!t){console.warn(`FlowSettings.open: Flow with key '${e}' not found`);continue}for(let r of Object.keys(t.steps||{})){if(p&&r!==p)continue;let n=t.steps[r];if(!v&&(!n||await (0,m._3)(c,t,n))||v&&!n.preset)continue;let i=await (0,m.o7)(c,t,n),l=n.title,s=n.beforeParamsSave,a=n.afterParamsSave,u={},d=n.uiMode;if(n.use){let e=null==(o=c.getAction)?void 0:o.call(c,n.use);e&&(u=e.defaultParams||{},l=l||e.title,s=s||e.beforeParamsSave,a=a||e.afterParamsSave,d=e.uiMode)}let h=new g.W5(c,e,"settings");(0,m.wx)(h,t.steps,c,e),h.defineProperty("currentStep",{value:n}),h.defineMethod("getStepFormValues",(e,t)=>{var r;return null==(r=z.get(q({flowKey:e,stepKey:t})))?void 0:r.values});let f=c.getStepParams(e,r)||{},y=await (0,m.gG)(n.defaultParams,h),w={...await (0,m.gG)(u,h)||{},...y||{},...f};(i&&0!==Object.keys(i).length||["select","switch"].includes((null==d?void 0:d.type)||d))&&F.push({flowKey:e,flowTitle:S(t.title)||e,stepKey:r,stepTitle:S(l)||r,initialValues:w,previousParams:{...f||{}},mergedUiSchema:i,beforeParamsSave:s,afterParamsSave:a,ctx:h,uiMode:n.uiMode||d})}}if(0===F.length)return v||null==_||null==(s=_.info)||s.call(_,S("This model has no configurable flow settings")),!1;let T=c.context.viewer,I=1===F.length?await (0,m.ME)(F[0].uiMode||f,F[0].ctx):f,$="string"==typeof I?I:I.type||"dialog";if(["select","switch"].includes($))return;let O=T[$||"dialog"].bind(T),D=c.flowEngine,N={useFlowSettingsContext:er.s,...(null==D||null==(r=D.flowSettings)?void 0:r.scopes)||{}},B="object"==typeof I&&I&&I.props||{};if("embed"===$){let e=document.querySelector(`#${ei.mW}`),t=B.onOpen,r=B.onClose;B={target:e,styles:{body:{padding:null==(u=D.context.themeToken)?void 0:u.padding}},...B,onOpen(){e&&(e.style.width=B.width||"33.3%",e.style.maxWidth=B.maxWidth||"800px",e.style.minWidth=B.minWidth||"0px"),null==t||t()},onClose(){e&&"1"!==e.dataset[ei.xB]&&(e.style.width="auto",e.style.maxWidth="none",e.style.minWidth="auto"),null==r||r()}}}let L={};F.forEach(e=>{L[e.flowKey]||(L[e.flowKey]={title:e.flowTitle,steps:[]}),L[e.flowKey].steps.push(e)});let z=new Map,q=e=>`${e.flowKey}::${e.stepKey}`;F.forEach(e=>{let t=(0,A.createForm)({initialValues:(0,m.ln)(N,e.initialValues)});z.set(q(e),t)});let W=Object.keys(L),V=W.length>1,U=()=>d&&p&&1===F.length||!V&&F.length>0?F[0].stepTitle:"",K={value:()=>{}},H=(e,t)=>{K.value=(0,l.reaction)(()=>(0,m.ME)(e.uiMode||f,e.ctx),e=>{e.then(e=>{a().isPlainObject(null==e?void 0:e.props)&&t.update(e.props)}).catch(e=>{console.warn("Error resolving uiMode:",e)})})},J=(null==(n=c.context.view)?void 0:n.inputArgs)||{},Y=null==(i=c.context.view)?void 0:i.navigation,G={...J,...Y?{navigation:Y}:{},...(null==B?void 0:B.inputArgs)||{}};return O({title:B.title||U(),width:B.width??600,destroyOnClose:!0,onClose:()=>K.value(),zIndex:5e3,...B,inputArgs:G,content:(e,t)=>{let r;null==t||t.defineMethod("getStepFormValues",(e,t)=>{var r;return null==(r=z.get(q({flowKey:e,stepKey:t})))?void 0:r.values});let n=t=>{let r=z.get(q(t));return r?(t.ctx.view=e,P.createElement(er.u,{value:t.ctx},P.createElement(en.k.Provider,{value:{params:(0,et.untracked)(()=>({...t.initialValues,...r.values})),path:`${c.uid}_${t.flowKey}_${t.stepKey}`}},this.renderStepForm({uiSchema:t.mergedUiSchema,initialValues:t.initialValues,flowEngine:D,form:r})))):null},i=e=>e.map(e=>P.createElement(el,{header:e.stepTitle,key:q(e)},n(e))),o=e=>{let t=L[e];return{key:e,label:S(t.title)||e,children:t.steps.length>1?P.createElement(M.A,{defaultActiveKey:t.steps.map(e=>q(e))},...i(t.steps)):n(t.steps[0])}},l=()=>{if(d&&p&&1===F.length){let t=F[0];return H(t,e),n(t)}if(!V)return H(F[0],e),n(F[0]);let t=W.map(e=>o(e)),r=d&&L[d]?d:W[0];return P.createElement(E.A,{items:t,defaultActiveKey:r})},s=async()=>{var t,r;try{for(let e of F){let t=z.get(q(e));if(!t)continue;await t.submit();let r=t.values;c.setStepParams(e.flowKey,e.stepKey,r),"function"==typeof e.beforeParamsSave&&await e.beforeParamsSave(e.ctx,r,e.previousParams)}for(let e of(await c.saveStepParams(),null==_||null==(t=_.success)||t.call(_,S("Configuration saved")),F)){let t=z.get(q(e));if(!t)continue;let r=t.values;"function"==typeof e.afterParamsSave&&await e.afterParamsSave(e.ctx,r,e.previousParams)}e.close(),c.invalidateFlowCache("beforeRender",!0),await c.rerender();try{await (null==b?void 0:b())}catch(e){console.error("FlowSettings.open: onSaved callback error",e)}}catch(t){if(t instanceof m.VD)return;if(t instanceof m.sy||t instanceof y.zz)return void e.close();console.error("FlowSettings.open: save error",t),null==_||null==(r=_.error)||r.call(_,S("Error saving configuration, please check console"))}};e.submit=s;let u=l(),h=t=>P.createElement(j.Ay,{onClick:async()=>{e.close();try{await (null==w?void 0:w())}catch(e){console.error("FlowSettings.open: onCancel callback error",e)}}},t.title||S("Cancel")),f=e=>P.createElement(j.Ay,{type:"primary",onClick:s},e.title||S("Save")),g=P.createElement(R.A,{align:"end"},P.createElement(h),P.createElement(f));return B.footer&&(g=a().isFunction(B.footer)?B.footer(g,{OkBtn:f,CancelBtn:h}):B.footer),null===B.footer&&(g=null),e.Footer&&(r=P.createElement(e.Footer,null,g)),P.createElement(P.Fragment,null,u,r)}}),!0}constructor(e){(0,o._)(this,"components",{}),(0,o._)(this,"scopes",{}),(0,o._)(this,"antdComponentsLoaded",!1),(0,o._)(this,"enabled",void 0),(0,o._)(this,"engine",void 0),(0,S._)(this,es,{writable:!0,value:!1}),(0,o._)(this,"toolbarItems",[]),(0,S._)(this,ea,{writable:!0,value:new ee.v}),this.engine=e,this.enabled=!1,e.context.defineProperty("flowSettingsEnabled",{get:()=>this.enabled,cache:!1}),this.addDefaultToolbarItems(),(0,l.define)(this,{enabled:l.observable})}}function ec(e){let{children:t,form:r,initialValues:n,onFormValuesChange:i}=e,o=P.useRef(r);return o.current||(o.current=(0,A.createForm)({initialValues:n,effects(){(0,A.onFormValuesChange)(i)}})),P.createElement(k.FormProvider,{form:o.current},t)}var ed=r(4888),eh=r(5338);function ep(e){let{config:t,engine:r,children:n}=e;return(0,C.jsx)(W.I6,{engine:r,children:(0,C.jsx)(ed.Ay,{...t,children:(0,C.jsx)(O.A,{children:n})})})}class ef{createRoot(e){let t,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=(0,eh.createRoot)(e,r),i=()=>{n.render((0,C.jsx)(ep,{engine:this.flowEngine,config:this.flowEngine.context.antdConfig,children:t}))};return{render:e=>{t=e,this.refreshCallback=i,i()},unmount:()=>{this.refreshCallback=null,t=null,n.unmount()}}}refresh(){this.refreshCallback&&this.refreshCallback()}render(e){let t,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=document.createElement("span"),{onRendered:i}=r,o=t=>{let r="function"==typeof e?e(t):e;return(0,C.jsx)(ep,{engine:this.flowEngine,config:this.flowEngine.context.antdConfig,children:r})};return i?i(()=>{(t=(0,eh.createRoot)(n)).render(o(t))}):(t=(0,eh.createRoot)(n)).render(o(t)),n._reactRoot=t,n}onRefReady(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1e4,n=Date.now();function i(){if(e.current)return t(e.current);Date.now()-n>r||setTimeout(i,30)}i()}constructor(e){(0,o._)(this,"flowEngine",void 0),(0,o._)(this,"refreshCallback",void 0),this.flowEngine=e,this.refreshCallback=null}}var eg=r(99784),em=r(38950);class ey{schedule(e,t,r,n){let i="string"==typeof e?e:null==e?void 0:e.uid;if(!i)throw Error("scheduleModelOperation: invalid from model or uid");if(!t||"string"!=typeof t)throw Error("scheduleModelOperation: invalid target uid");let o={id:(0,em.L)(),fromUid:i,toUid:t,fn:r,options:{when:(null==n?void 0:n.when)??"created"}},l=this.itemsByTargetUid.get(t);l||(l=new Map,this.itemsByTargetUid.set(t,l)),l.set(o.id,o);let s=this.itemIdsByFromUid.get(i);s||(s=new Set,this.itemIdsByFromUid.set(i,s)),s.add(o.id),this.itemsById.set(o.id,o),this.ensureEventSubscriptionIfNeeded(o.options.when);let a=this.engine.getModel(t);return a&&"created"===o.options.when&&this.tryExecuteOnce(o.id,{type:"created",uid:t,model:a}),()=>this.internalCancel(o.id)}cancel(e){let{fromUid:t,toUid:r}=e||{};if(r&&this.itemsByTargetUid.has(r)){let e=this.itemsByTargetUid.get(r);if(e)for(let r of e.values())t&&r.fromUid!==t||this.internalCancel(r.id);return}if(t&&this.itemIdsByFromUid.has(t)){let e=this.itemIdsByFromUid.get(t);if(e)for(let t of Array.from(e)){let e=this.itemsById.get(t);e&&(r&&e.toUid!==r||this.internalCancel(t))}}}dispose(){try{for(let e of this.unbindHandlers)try{e()}catch(e){}}finally{this.unbindHandlers=[]}for(let e of this.itemsByTargetUid.values())for(let t of e.values())this.internalCancel(t.id);this.itemsByTargetUid.clear(),this.itemIdsByFromUid.clear()}bindEngineLifecycle(){let e=this.engine.emitter;if(!e||"function"!=typeof e.on)return;let t=async e=>{await this.processLifecycleEvent(e.uid,{...e,type:"created"})};e.on("model:created",t),this.unbindHandlers.push(()=>e.off("model:created",t));let r=async e=>{await this.processLifecycleEvent(e.uid,{...e,type:"mounted"})};e.on("model:mounted",r),this.unbindHandlers.push(()=>e.off("model:mounted",r));let n=async e=>{await this.processLifecycleEvent(e.uid,{...e,type:"event:beforeRender:start"})};e.on("model:event:beforeRender:start",n),this.unbindHandlers.push(()=>e.off("model:event:beforeRender:start",n));let i=async e=>{await this.processLifecycleEvent(e.uid,{...e,type:"event:beforeRender:end"})};e.on("model:event:beforeRender:end",i),this.unbindHandlers.push(()=>e.off("model:event:beforeRender:end",i));let o=async e=>{await this.processLifecycleEvent(e.uid,{...e,type:"unmounted"})};e.on("model:unmounted",o),this.unbindHandlers.push(()=>e.off("model:unmounted",o));let l=async e=>{let t=this.itemsByTargetUid.get(e.uid),r={...e,type:"destroyed"};if(t&&t.size)for(let e of Array.from(t.keys())){let t=this.itemsById.get(e);t&&(this.shouldTrigger(t.options.when,r)?await this.tryExecuteOnce(e,r):this.internalCancel(e))}};e.on("model:destroyed",l),this.unbindHandlers.push(()=>e.off("model:destroyed",l))}ensureEventSubscriptionIfNeeded(e){let t="string"==typeof e?e:"function"==typeof e?e.__eventType:void 0;if(!t)return;let r=this.parseEventWhen(t);if(!r)return;let{name:n}=r;if(this.subscribedEventNames.has(n))return;this.subscribedEventNames.add(n);let i=this.engine.emitter,o=async e=>{await this.processLifecycleEvent(e.uid,{...e,type:`event:${n}:start`})},l=async e=>{await this.processLifecycleEvent(e.uid,{...e,type:`event:${n}:end`})},s=async e=>{await this.processLifecycleEvent(e.uid,{...e,type:`event:${n}:error`})};i.on(`model:event:${n}:start`,o),i.on(`model:event:${n}:end`,l),i.on(`model:event:${n}:error`,s),this.unbindHandlers.push(()=>i.off(`model:event:${n}:start`,o)),this.unbindHandlers.push(()=>i.off(`model:event:${n}:end`,l)),this.unbindHandlers.push(()=>i.off(`model:event:${n}:error`,s))}parseEventWhen(e){if(!e||"string"!=typeof e)return null;let t=/^event:(.+):(start|end|error)$/.exec(e);return t?{name:t[1],phase:t[2]}:null}async processLifecycleEvent(e,t){let r=this.itemsByTargetUid.get(e);if(r&&0!==r.size)for(let e of Array.from(r.keys())){let r=this.itemsById.get(e);r&&this.shouldTrigger(r.options.when,t)&&await this.tryExecuteOnce(e,t)}}shouldTrigger(e,t){return!!e&&("function"==typeof e?!!e(t):e===t.type)}async tryExecuteOnce(e,t){let r=this.takeItem(e);if(r)try{let e=t.model||this.engine.getModel(r.toUid);if(!e)return;await Promise.resolve(r.fn(e))}catch(t){var n,i;if(t instanceof y.zz)throw t;null==(i=this.engine.logger)||null==(n=i.error)||n.call(i,{err:t,id:e,fromUid:r.fromUid,toUid:r.toUid,when:r.options.when},"ModelOperationScheduler: operation execution failed")}}internalCancel(e){return!!this.takeItem(e)}takeItem(e){let t=this.itemsById.get(e);if(!t)return;let{toUid:r,fromUid:n}=t,i=this.itemsByTargetUid.get(r);i&&(i.delete(e),0===i.size&&this.itemsByTargetUid.delete(r));let o=this.itemIdsByFromUid.get(n);return o&&(o.delete(e),0===o.size&&this.itemIdsByFromUid.delete(n)),this.itemsById.delete(e),t}constructor(e){(0,o._)(this,"engine",void 0),(0,o._)(this,"itemsByTargetUid",void 0),(0,o._)(this,"itemIdsByFromUid",void 0),(0,o._)(this,"itemsById",void 0),(0,o._)(this,"unbindHandlers",void 0),(0,o._)(this,"subscribedEventNames",void 0),this.engine=e,this.itemsByTargetUid=new Map,this.itemIdsByFromUid=new Map,this.itemsById=new Map,this.unbindHandlers=[],this.subscribedEventNames=new Set,this.bindEngineLifecycle()}}let ev=ey;var ew=new WeakSet;class eb{getScheduler(){return this._modelOperationScheduler||(this._modelOperationScheduler=new ev(this)),this._modelOperationScheduler}disposeScheduler(){if(this._modelOperationScheduler)try{this._modelOperationScheduler.dispose()}finally{this._modelOperationScheduler=void 0}}markDataSourceDirty(e,t){let r=String(e||"main"),n=String(t||"");if(!n)return this.getDataSourceDirtyVersion(r,n);let i=this._dataSourceDirtyVersions.get(r)||new Map;this._dataSourceDirtyVersions.has(r)||this._dataSourceDirtyVersions.set(r,i);let o=(i.get(n)||0)+1;return i.set(n,o),o}getDataSourceDirtyVersion(e,t){var r;let n=String(e||"main"),i=String(t||"");return i&&(null==(r=this._dataSourceDirtyVersions.get(n))?void 0:r.get(i))||0}scheduleModelOperation(e,t,r,n){return this.getScheduler().schedule(e,t,r,n)}get previousEngine(){return this._previousEngine}get nextEngine(){return this._nextEngine}linkAfter(e){let t=e;for(;t._nextEngine;)t=t._nextEngine;this._previousEngine=t,t&&(t._nextEngine=this)}unlinkFromStack(){let e=this._previousEngine;this._nextEngine,e&&(e._nextEngine=void 0)}setDestroyView(e){this._destroyView=e}destroyView(){return!!this._destroyView&&(this._destroyView(),!0)}get context(){return this._flowContext||(this._flowContext=new g.o0(this)),this._flowContext}get dataSourceManager(){return this.context.dataSourceManager}get applyFlowCache(){return this._applyFlowCache}setModelRepository(e){this._modelRepository&&console.warn("FlowEngine: Model repository is already set and will be overwritten."),this._modelRepository=e}get modelRepository(){return this._modelRepository}translate(e,t){return this.context.t(e,t)}registerActions(e){this._actionRegistry.registerActions(e)}getAction(e){return this._actionRegistry.getAction(e)}getActions(){return this._actionRegistry.getActions()}registerEvents(e){this._eventRegistry.registerEvents(e)}getEvent(e){return this._eventRegistry.getEvent(e)}getEvents(){return this._eventRegistry.getEvents()}_registerModel(e,t){this._modelClasses.has(e)&&console.warn(`FlowEngine: Model class with name '${e}' is already registered and will be overwritten.`),Object.defineProperty(t,"name",{value:e}),this._modelClasses.set(e,t)}registerModels(e){for(let[t,r]of Object.entries(e))(0,n._)(this,ew,ex).call(this,t,r)}registerModelLoaders(e){let t=!1;for(let[r,n]of Object.entries(e))this._modelLoaders.has(r)&&console.warn(`FlowEngine: Model loader with name '${r}' is already registered and will be overwritten.`),this._modelLoaders.set(r,n),t=!0;t&&(this._modelLoadersPreloaded=!1,this._modelLoadersPreloadPromise=void 0)}async getModelClassAsync(e){return await this.ensureModel(e),this.getModelClass(e)}async getModelClassesAsync(){return await this.ensureModels(Array.from(this._modelLoaders.keys())),this.getModelClasses()}async createModelAsync(e,t){return await this.resolveModelTree(e),this.createModel(e,t)}normalizeModelLoaderResult(e,t){if("function"==typeof t)return t;if(t&&"object"==typeof t){let r=t.default;if("function"==typeof r)return r;let n=t[e];if("function"==typeof n)return n}return console.warn(`FlowEngine: model loader for '${e}' did not resolve to a valid model constructor.`),null}collectModelNamesFromTree(e,t){if(!e||"object"!=typeof e)return;if(Array.isArray(e))return void e.forEach(e=>this.collectModelNamesFromTree(e,t));let r=e;"string"==typeof r.use&&t.add(r.use);let n=r.subModels;n&&"object"==typeof n&&Object.values(n).forEach(e=>{this.collectModelNamesFromTree(e,t)})}collectModelNamesFromMetaDefaults(e,t){var r;let n=null==(r=e.meta)?void 0:r.createModelOptions;n&&"object"==typeof n&&this.collectModelNamesFromTree(n,t)}async ensureModel(e){let t=this._modelClasses.get(e);if(t)return t;let r=this._loadingModelPromises.get(e);if(r)return r;let n=this._modelLoaders.get(e);if(!n)return console.warn(`FlowEngine: Model entry '${e}' not found. Falling back to ErrorFlowModel when needed.`),null;let i=(async()=>{try{let t=await n.loader(),r=this.normalizeModelLoaderResult(e,t);if(!r)return null;return this._registerModel(e,r),r}catch(t){return console.warn(`FlowEngine: Failed to load model '${e}'. Falling back to ErrorFlowModel when needed.`,t),null}finally{this._loadingModelPromises.delete(e)}})();return this._loadingModelPromises.set(e,i),i}async ensureModels(e){let t=Array.from(new Set(e.filter(e=>!!e))),r=[],n=[];return(await Promise.all(t.map(async e=>{let t=await this.ensureModel(e);return{name:e,modelClass:t}}))).forEach(e=>{let{name:t,modelClass:i}=e;i?r.push(t):n.push({name:t})}),{requested:t,loaded:r,failed:n}}async resolveModelTree(e){let t=new Set,r=new Set,n=new Map,i=new Set,o=new Set;for(this.collectModelNamesFromTree(e,o);o.size>0;){let e=Array.from(o).filter(e=>!i.has(e));if(o.clear(),0===e.length)break;e.forEach(e=>t.add(e));let l=await this.ensureModels(e);l.loaded.forEach(e=>{i.add(e),r.add(e);let t=this.getModelClass(e);if(t){let e=new Set;this.collectModelNamesFromMetaDefaults(t,e),e.forEach(e=>{i.has(e)||o.add(e)})}}),l.failed.forEach(e=>{i.add(e.name),n.set(e.name,e)})}return{requested:Array.from(t),loaded:Array.from(r),failed:Array.from(n.values())}}async preloadModelLoaders(){let e=Array.from(this._modelLoaders.keys()).filter(e=>!this._modelClasses.has(e));return 0===e.length?(this._modelLoadersPreloaded=!0,{requested:[],loaded:[],failed:[]}):(this._modelLoadersPreloadPromise||(this._modelLoadersPreloadPromise=(async()=>{let t=await this.ensureModels(e);return this._modelLoadersPreloaded=0===t.failed.length,this._modelLoadersPreloadPromise=void 0,t})()),this._modelLoadersPreloadPromise)}registerResources(e){for(let[t,r]of Object.entries(e))this._resources.set(t,r)}createResource(e,t){if("string"==typeof e){let r=this._resources.get(e);if(!r)throw Error(`Resource class '${e}' not found. Please register it first.`);return new r((null==t?void 0:t.context)||this.context)}return new e((null==t?void 0:t.context)||this.context)}getModelClasses(){return this._modelClasses}getModelClass(e){return this._modelClasses.get(e)}findModelClass(e){for(let[t,r]of this._modelClasses)if(e(t,r))return[t,r]}getSubclassesOf(e,t){let r="string"==typeof e?this.getModelClass(e):e,n=new Map;if(!r)return n;for(let[e,i]of this._modelClasses)(0,m.FA)(i,r)&&(!t||t(i,e))&&n.set(e,i);return n}createModel(e,t){var r;let n,{parentId:i,uid:o,use:l,subModels:s}=e,a=i?this.getModel(i)||(null==(r=this.previousEngine)?void 0:r.getModel(i)):void 0,u=this._resolveModelClass("string"==typeof l?this.getModelClass(l):l,e,a);return o&&this._modelInstances.has(o)?this._modelInstances.get(o):(u?n=new u({...e,flowEngine:this}):(n=new L._f({...e,flowEngine:this})).setErrorMessage(`Model class '${l}' not found. Please register it first.`),(null==t?void 0:t.delegate)&&n.context.addDelegate(t.delegate),a&&(n.setParent(a),(null==t?void 0:t.delegateToParent)===!1&&n.removeParentDelegate()),this._modelInstances.set(n.uid,n),n.onInit(e),this.emitter.emitAsync("model:created",{uid:n.uid,model:n}),this._applyFlowDefinitionDefaultParams(n).catch(e=>{console.warn("FlowEngine: apply flow defaultParams failed:",e)}),n._createSubModels(e.subModels),n)}_resolveModelClass(e,t,r){let n=e=>e?"object"==typeof e&&"use"in e?{target:e.use,stop:!!e.stop}:{target:e,stop:!1}:{},i=e,o=new Set;for(;i;){let e;if(o.has(i)){console.warn(`FlowEngine: resolveUse circular reference detected on '${i.name}'.`);break}o.add(i);let l=null==i?void 0:i.resolveUse;if("function"!=typeof l)break;let{target:s,stop:a}=n(l(t,this,r));if(!s||s===i)break;if("string"==typeof s){if(!(e=this.getModelClass(s)))return void console.warn(`FlowEngine: resolveUse returned '${s}' but no model is registered under that name.`)}else e=s;if(i=e,a)break}return i}async _applyFlowDefinitionDefaultParams(e){try{let r=e.getFlows();if(!r||0===r.size)return;let n=e.context;for(let[i,o]of r.entries()){var t;let r,l=o.defaultParams;if(!l)continue;try{r="function"==typeof l?await l(n):l}catch(e){console.warn(`FlowEngine: resolve defaultParams of flow '${i}' failed:`,e);continue}if(!r||"object"!=typeof r)continue;let s=null==(t=o.getSteps)?void 0:t.call(o),a=s?Array.from(s.keys()):Object.keys(o.steps||{}),u=Object.entries(r).filter(e=>{let[t]=e;return a.includes(t)});if(0!==u.length)for(let[t,r]of u){let n=e.getStepParams(i,t);void 0===n&&r&&"object"==typeof r&&e.setStepParams(i,t,r)}}}catch(e){console.warn("FlowEngine: apply flow defaultParams error:",e)}}getModel(e,t){if(!t)return this._modelInstances.get(e);let r=this;for(;r.nextEngine;)r=r.nextEngine;let n=r;for(;n;){let t=n._modelInstances.get(e);if(t)return t;n=n.previousEngine}}forEachModel(e){this._modelInstances.forEach(e)}removeModel(e){var t,r,n;if(!this._modelInstances.has(e))return console.warn(`FlowEngine: Model with UID '${e}' does not exist.`),!1;let i=this._modelInstances.get(e);if(i.invalidateFlowCache(void 0,!0),i.clearForks(),null==(t=i.parent)?void 0:t.subModels)for(let e in i.parent.subModels){let t=i.parent.subModels[e];if(Array.isArray(t)){let e=t.findIndex(e=>e==i);if(-1!==e){t.splice(e,1),i.parent.emitter.emit("onSubModelRemoved",i),null==(r=this.emitter)||r.emit("model:subModel:removed",{parentUid:i.parent.uid,parent:i.parent,model:i});break}}else if(t&&t===i){delete i.parent.subModels[e],i.parent.emitter.emit("onSubModelRemoved",i),null==(n=this.emitter)||n.emit("model:subModel:removed",{parentUid:i.parent.uid,parent:i.parent,model:i});break}}return this._modelInstances.delete(e),this.emitter.emitAsync("model:destroyed",{uid:e,model:i}),!0}removeModelWithSubModels(e){let t=this.getModel(e);if(!t)return!1;let r=(e,t)=>{if(e.subModels)for(let n in e.subModels){let i=e.subModels[n];Array.isArray(i)?[...i].forEach(e=>r(e,t)):i&&r(i,t)}t.push(e)},n=[];r(t,n);let i=!0;for(let e of n)this.removeModel(e.uid)||(i=!1);return i}ensureModelRepository(){return!!this._modelRepository}findModelInPreviousEngines(e){let t=this.previousEngine;for(;t;){let r=t.getModel(e);if(r)return r;t=t.previousEngine}}findSubModelInPreviousEngines(e,t){let r=this.previousEngine;for(;r;){let i=r.getModel(e);if(i){var n;let e=null==(n=i.subModels)?void 0:n[t];if(e){let t=Array.isArray(e)?e[0]:e;if(t)return{parent:i,model:t}}}r=r.previousEngine}}async hydrateModelFromPreviousEngines(e,t){let r=null==e?void 0:e.uid,n=null==e?void 0:e.parentId,i=null==e?void 0:e.subKey;if(r&&!this._modelInstances.has(r)){let e=this.findModelInPreviousEngines(r);if(null==e?void 0:e.context.flowSettingsEnabled)return null;if(e){let r=e.serialize();return this.createModelAsync(r,t)}}if(n&&i){var o;let e=this.findSubModelInPreviousEngines(n,i);if(!e||e.parent.context.flowSettingsEnabled)return null;let{parent:r,model:l}=e,s=this.getModel(n);if(!s){let e=r.serialize();delete e.subModels,s=await this.createModelAsync(e,t)}let a=l.serialize(),u=await this.createModelAsync(a,t),c=null==(o=s.subModels)?void 0:o[i];return Array.isArray(c)?c.some(e=>(null==e?void 0:e.uid)===(null==u?void 0:u.uid))||s.addSubModel(i,u):c instanceof L.WD?c.uid!==(null==u?void 0:u.uid)&&s.setSubModel(i,u):(null==u?void 0:u.subType)==="array"?s.addSubModel(i,u):s.setSubModel(i,u),u}return null}async loadModel(e){if(!this.ensureModelRepository())return;let t=!!(null==e?void 0:e.refresh);if(!t){let t=this.findModelByParentId(e.parentId,e.subKey);if(t)return t;let r=await this.hydrateModelFromPreviousEngines(e);if(r)return r}let r=await this._modelRepository.findOne(e);if(!(null==r?void 0:r.uid))return null;if(await this.resolveModelTree(r),t){let e=this.getModel(r.uid);e&&this.removeModelWithSubModels(e.uid)}return this.createModelAsync(r)}findModelByParentId(e,t){if(e&&this._modelInstances.has(e)){let r=this._modelInstances.get(e);if(r&&r.subModels[t]){let e=r.subModels[t];return Array.isArray(e)?e[0]:e}}}async loadOrCreateModel(e,t){if(!this.ensureModelRepository())return;let{uid:r,parentId:n,subKey:i}=e;if(r&&this._modelInstances.has(r))return this._modelInstances.get(r);let o=this.findModelByParentId(n,i);if(o)return o;let l=await this.hydrateModelFromPreviousEngines(e,t);if(l)return l;let s=(null==t?void 0:t.skipSave)||r||!n||!i||(null==e?void 0:e.subType)!=="object"?await this._modelRepository.findOne(e):await this._modelRepository.ensure(e,{includeAsyncNode:!!((null==e?void 0:e.includeAsyncNode)||(null==e?void 0:e.async))})??await this._modelRepository.findOne(e),a=null;if((null==s?void 0:s.uid)?a=await this.createModelAsync(s,t):(a=await this.createModelAsync(e,t),(null==t?void 0:t.skipSave)||await a.save()),a.parent){if(a.parent.findSubModel(a.subKey,e=>e.uid===a.uid))return a;"array"===a.subType?a.parent.addSubModel(a.subKey,a):a.parent.setSubModel(a.subKey,a)}return a}async saveModel(e,t){if(!this.ensureModelRepository())return;let r=e.uid;if(this._savingModels.has(r))return this.logger.debug(`Model ${r} is already being saved, waiting for existing save operation`),await this._savingModels.get(r);let n=this._performModelSave(e,t);this._savingModels.set(r,n);try{return await n}finally{this._savingModels.delete(r)}}async _performModelSave(e,t){this.logger.debug(`Starting save operation for model ${e.uid}`);try{let r=await this._modelRepository.save(e,t);return this.logger.debug(`Successfully saved model ${e.uid}`),r}catch(t){throw this.logger.error(`Failed to save model ${e.uid}:`,t),t}}async destroyModel(e){this.ensureModelRepository()&&await this._modelRepository.destroy(e);let t=this._modelInstances.get(e),r=null==t?void 0:t.parent,n=this.removeModel(e);return r&&r.emitter.emit("onSubModelDestroyed",t),n}async duplicateModel(e){return this.ensureModelRepository()?this._modelRepository.duplicate(e):null}async replaceModel(e,t){let r,n=this.getModel(e);if(!n)return console.warn(`FlowEngine: Cannot replace model. Model with UID '${e}' not found.`),null;let i=n.parent,o=n.subKey,l=n.subType,s=n.serialize();r="function"==typeof t?t(n):t||{};let u={...a().omit(s,["subModels"]),...r};i&&i.emitter.setPaused(!0),await n.destroy();let c=this.createModel(u);if(i&&o&&("array"===l?i.addSubModel(o,c):i.setSubModel(o,c)),i){var d,h;i.emitter.setPaused(!1),i.parent.invalidateFlowCache("beforeRender",!0),null==(d=i.parent)||d.rerender(),i.emitter.emit("onSubModelReplaced",{oldModel:n,newModel:c}),null==(h=this.emitter)||h.emit("model:subModel:replaced",{parentUid:i.uid,parent:i,oldModel:n,newModel:c})}return await c.save(),c}async moveModel(e,t,r){var n,i;let o=this.getModel(e),l=this.getModel(t);if(!o||!l)return void console.warn("FlowEngine: Cannot move model. Source or target model not found.");if(((e,t)=>{if(!e.parent||!t.parent||e.parent!==t.parent)return console.error("FlowModel.moveTo: Both models must have the same parent to perform move operation.");let r=e.parent.subModels[e.subKey];if(!r||!Array.isArray(r))return console.error("FlowModel.moveTo: Parent subModels must be an array to perform move operation.");let n=[...r],i=e=>n.findIndex(t=>t.uid===e.uid),o=i(e),l=i(t);if(-1===o||-1===l)return console.error("FlowModel.moveTo: Current or target model not found in parent subModels.");if(o===l)return console.warn("FlowModel.moveTo: Current model is already at the target position. No action taken.");let[s]=n.splice(o,1);return n.splice(l,0,s),n.forEach((e,t)=>{e.sortIndex=t}),r.splice(0,r.length,...n)})(o,l),(null==r?void 0:r.persist)!==!1&&this.ensureModelRepository()){let r=o.sortIndex-l.sortIndex>0?"after":"before";await this._modelRepository.move(e,t,r)}o.parent.emitter.emit("onSubModelMoved",{source:o,target:l}),null==(i=this.emitter)||i.emit("model:subModel:moved",{parentUid:null==(n=o.parent)?void 0:n.uid,parent:o.parent,source:o,target:l})}filterModelClassByParent(e){let t="string"==typeof e?this.getModelClass(e):e;if(!t)return new Map;let r=new Map;for(let[e,n]of this._modelClasses)(0,m.FA)(n,t)&&r.set(e,n);return r}static generateApplyFlowCacheKey(e,t,r){return`${e}:${t}:${r}`}constructor(){(0,i._)(this,ew),(0,o._)(this,"_actionRegistry",new h),(0,o._)(this,"_eventRegistry",new f),(0,o._)(this,"_modelClasses",l.observable.shallow(new Map)),(0,o._)(this,"_modelLoaders",new Map),(0,o._)(this,"_loadingModelPromises",new Map),(0,o._)(this,"_modelLoadersPreloaded",!1),(0,o._)(this,"_modelLoadersPreloadPromise",void 0),(0,o._)(this,"_modelInstances",new Map),(0,o._)(this,"_modelRepository",null),(0,o._)(this,"_applyFlowCache",new Map),(0,o._)(this,"_savingModels",new Map),(0,o._)(this,"_flowContext",void 0),(0,o._)(this,"_previousEngine",void 0),(0,o._)(this,"_nextEngine",void 0),(0,o._)(this,"_destroyView",void 0),(0,o._)(this,"_resources",new Map),(0,o._)(this,"_dataSourceDirtyVersions",new Map),(0,o._)(this,"emitter",new ee.v),(0,o._)(this,"_modelOperationScheduler",void 0),(0,o._)(this,"logger",void 0),(0,o._)(this,"flowSettings",void 0),(0,o._)(this,"reactView",void 0),(0,o._)(this,"executor",void 0),this.reactView=new ef(this),this.flowSettings=new eu(this),this.flowSettings.registerScopes({t:this.translate.bind(this)}),this.registerModels({FlowModel:L.WD}),this.registerResources({FlowResource:eg.l2,SQLResource:eg.BH,APIResource:eg.hR,SingleRecordResource:eg.sB,MultiRecordResource:eg.Rn}),this.logger=c()({level:"trace",browser:{write:{fatal:e=>console.trace(e),error:e=>console.error(e),warn:e=>console.warn(e),info:e=>console.info(e),debug:e=>console.debug(e),trace:e=>console.trace(e)}}}),this.executor=new b(this)}}function ex(e,t){return this._registerModel(e,t)}},57084(e,t,r){r.d(t,{Ps:()=>l.Ps,PZ:()=>l.PZ,m2:()=>l.m2,sz:()=>u.s,uF:()=>u.u,ke:()=>d.k,GC:()=>a,fh:()=>o,eP:()=>d.e,t_:()=>c});var n=r(96540),i=r(20616);function o(e,t,r){let o=(0,i.uf)();return(0,n.useMemo)(()=>{let n=o.getModel(e);return!n&&t&&(n=o.createModel({uid:e,use:t,stepParams:r})),n},[o,t,e,r])}var l=r(97019),s=r(7259);function a(e,t,r){let o=(0,i.uf)(),l=(0,n.useMemo)(()=>"string"==typeof e?o.getModel(e):e,[e,o]);null==l||l.useHooksBeforeRender();let{loading:a,error:u}=(0,s.A)(async()=>{l&&await l.dispatchEvent("beforeRender",t,{useCache:null==r?void 0:r.useCache})},{refreshDeps:[l,t,null==r?void 0:r.useCache]});if((null==r?void 0:r.throwOnError)!==!1&&u)throw u;return{loading:a,error:u}}var u=r(16296);let c=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=(0,n.useRef)(0);return(0,n.useEffect)(()=>{let e=e=>{let{clientY:r}=e;t.current=Math.max(r,window.innerHeight-r)};return window.addEventListener("mousemove",e),()=>{window.removeEventListener("mousemove",e)}},[]),(0,n.useMemo)(()=>t.current-40,e)};var d=r(23200)},97019(e,t,r){r.d(t,{PZ:()=>a,Ps:()=>s,m2:()=>u});var n=r(74848),i=r(96540),o=r(52568);let l=(0,i.createContext)(null),s=e=>{let{model:t,children:r}=e;if(!t)throw Error("FlowModelProvider must be supplied with a model.");return(0,n.jsx)(l.Provider,{value:t,children:(0,n.jsx)(o.Dv,{context:t.context,children:r})})};function a(){let e=(0,i.useContext)(l);if(!e)throw Error("useFlowModel must be used within a FlowModelProvider");return e}function u(){return a().context}},16296(e,t,r){r.d(t,{s:()=>a,u:()=>s});var n=r(74848),i=r(96540),o=r(52568);let l=(0,i.createContext)(null),s=e=>{let{value:t,children:r}=e;return(0,n.jsx)(o.Dv,{context:t,children:(0,n.jsx)(l.Provider,{value:t,children:r})})},a=()=>{let e=(0,i.useContext)(l);if(!e)throw Error("useFlowSettingsContext must be used within a FlowSettingsContextProvider");return e}},23200(e,t,r){r.d(t,{e:()=>o,k:()=>i});var n=r(96540);let i=n.createContext({path:"",params:{}}),o=()=>(0,n.useContext)(i)},19098(e,t,r){r.r(t),r.d(t,{action:()=>h.XI,batch:()=>h.vA,loadMetaTreeChildren:()=>ey,FlowSettingsButton:()=>v,FlowRunJSContext:()=>eH.uk,compileUiSchema:()=>i.ln,resolveModuleUrl:()=>i.i,FlowsContextMenu:()=>eG,encodeBase64Url:()=>i.DX,setDataNode:()=>h.Jv,collectContextParamsForTemplate:()=>i.ju,simulateLayoutForSlot:()=>et,CollectionField:()=>rw.JL,isVariableValue:()=>eS,runjsWithSafeGlobals:()=>i._,createRecordMetaFactory:()=>i.pc,FlowRuntimeContext:()=>eH.W5,markRaw:()=>h.IG,useFlowModelById:()=>u.fh,contains:()=>h.gR,FlowViewContextProvider:()=>m.YQ,isCompleteCtxDatePath:()=>i.M5,useDialog:()=>rL.sp,DisplayItemModel:()=>c.jG,createEphemeralContext:()=>i.vq,isSupportObservable:()=>h.Rq,isFieldInterfaceMatch:()=>rw.Xk,FlowEngineGlobalsContextProvider:()=>d.f7,FlowExitException:()=>i.sy,inferRecordRef:()=>i.XU,preprocessRunJsTemplates:()=>i.mH,FlowForkModelContext:()=>eH.Hl,FlowCancelSaveException:()=>i.VD,jioToJoiSchema:()=>rw.Ns,getSlotKey:()=>U,EMPTY_COLUMN_UID:()=>er,markObservable:()=>h.po,FlowStep:()=>rq.z,FlowEngineContext:()=>eH.o0,transformItems:()=>t8,COLUMN_EDGE_MIN_WIDTH:()=>R,openStepSettingsDrawer:()=>tP,observe:()=>h.lB,untracked:()=>h.O8,useFlowEngineContext:()=>d.Db,getPageActive:()=>h.SL,FlowExitAllException:()=>i.zz,createCurrentRecordMetaFactory:()=>i.UX,ModelRenderMode:()=>c.NK,createViewScopedEngine:()=>rW._,SingleRecordResource:()=>s.sB,openStepSettingsDialog:()=>eJ.openStepSettingsDialog,DragHandler:()=>en,useApplyAutoFlows:()=>u.GC,FieldDeletePlaceholder:()=>c.xI,ErrorFlowModel:()=>c._f,Collection:()=>rw.pM,MENU_KEYS:()=>i.Fv,hasCollected:()=>h.KP,createSafeWindow:()=>i.ey,resolveStepUiSchema:()=>i.o7,createSafeDocument:()=>i.Xh,VariableTag:()=>rr,resolveRunJSObjectValues:()=>i.mP,DndProvider:()=>eo,FlowsFloatContextMenu:()=>e8,Tracker:()=>h.JD,FlowContextSelector:()=>eC,observer:()=>h.PA,isObservable:()=>h.AT,FlowStepContext:()=>u.ke,normalizeRunJSValue:()=>i.J3,parseValueToPath:()=>eg,getT:()=>i.lW,extractUsedVariablePaths:()=>i.nN,registerRunJSContextContribution:()=>rP.JF,ForkFlowModel:()=>c.yN,BLOCK_GROUP_CONFIGS:()=>i.WJ,BLOCK_TYPES:()=>i.kl,VIEW_ACTIVATED_VERSION:()=>rz.tb,FlowErrorFallbackModal:()=>eB,escapeT:()=>i.MI,prepareRunJsCode:()=>i.ji,useNiceDropdownMaxHeight:()=>u.t_,FlowModelRenderer:()=>tn,extractPropertyPath:()=>i.YB,createCollectionContextMeta:()=>i.H9,useFlowModel:()=>u.PZ,getRunJSDocFor:()=>rk,useDrawer:()=>rL.bt,parsePathnameToViewParams:()=>i.KB,buildWrapperFieldChildren:()=>tJ.jx,largeField:()=>rb,isInheritedFrom:()=>i.FA,buildSubModelGroups:()=>tJ.Qp,FieldModelRenderer:()=>es,observable:()=>h.sH,registerRunJSSnippet:()=>rF,AddSubModelButton:()=>t9,FlowViewContext:()=>m.PC,FlowDefinition:()=>rq.G,serializeCtxDateValue:()=>i.hz,setupRunJSContexts:()=>rR.setupRunJSContexts,DataNode:()=>h.dw,buildRecordMeta:()=>i.$S,VIEW_ENGINE_SCOPE:()=>"view",FilterItem:()=>s.qi,buildDataTree:()=>h.H_,autorun:()=>h.fm,ENGINE_SCOPE_KEY:()=>rz.i6,buildItems:()=>tJ.z5,clearAutoFlowError:()=>i.Z8,EMBED_REPLACING_DATA_KEY:()=>rL.xB,MobilePopup:()=>rv.D,defineFlow:()=>c.oY,DATA_SOURCE_DIRTY_EVENT:()=>rz.HK,isCtxDateExpression:()=>i.y4,usePage:()=>rL.N5,createDefaultConverters:()=>e_,raw:()=>h.lS,FieldPlaceholder:()=>c.WE,tExpr:()=>i.MZ,VariableInput:()=>ra,BaseRecordResource:()=>s.vB,isAnnotation:()=>h.Ir,buildContextSelectorItems:()=>eb,MAX_SLOT_THICKNESS:()=>j,MemoFlowModelRenderer:()=>ti,CollectionFieldModel:()=>c.yW,createRecordResolveOnServerWithLocal:()=>i.xI,isVariableExpression:()=>i.n2,FlowContext:()=>eH.cB,GLOBAL_EMBED_CONTAINER_ID:()=>rL.mW,createFinalConverters:()=>eA,useFlowViewContext:()=>m.Ww,createAssociationSubpathResolver:()=>i.Hi,SQLResource:()=>s.BH,FlowModelProvider:()=>u.Ps,FormItem:()=>to.e,COLUMN_EDGE_MAX_WIDTH:()=>P,DataSourceManager:()=>rw.zA,getAutoFlowError:()=>i.yz,SlateVariableEditor:()=>rm,useFlowSettingsContext:()=>u.sz,ActionScene:()=>n,getEmitterViewActivatedVersion:()=>rz.FH,ViewNavigation:()=>rL.U,resolveDefaultParams:()=>i.gG,MIN_SLOT_THICKNESS:()=>E,resolveCreateModelOptions:()=>i.mv,resolveStepDisabledInSettings:()=>i.XM,model:()=>h.ge,DataChange:()=>h.r5,Droppable:()=>ei,FlowsDropdownButton:()=>ta,buildSubModelItem:()=>tJ.Ls,useFlowContext:()=>m.$K,useFlowView:()=>m.Vy,resolveExpressions:()=>i.M,preloadContextSelectorPath:()=>ex,mergeSubModelItems:()=>t0,defineAction:()=>i.QP,FlowSQLRepository:()=>s.tP,decodeBase64Url:()=>i.$X,shouldPreprocessRunJSTemplates:()=>rS.R,COLUMN_EDGE_WIDTH_RATIO:()=>C,FlowResource:()=>s.l2,FlowEngine:()=>a.$,DataSource:()=>rw.qS,FLOW_ENGINE_NAMESPACE:()=>i.u4,parseCtxDateExpression:()=>i.X4,registerRunJSLib:()=>l.T1,DEFAULT_GRID_COLUMNS:()=>M,resolveCtxDatePath:()=>i.Vv,resolveDropIntent:()=>J,shouldHideEventInSettings:()=>i.qI,shouldHideStepInSettings:()=>i._3,MultiRecordResource:()=>s.Rn,usePopover:()=>rL.fP,ElementProxy:()=>rx.x,FlowModel:()=>c.WD,isCtxDatePathPrefix:()=>i.JE,openRequiredParamsStepFormDialog:()=>tI.openRequiredParamsStepFormDialog,FlowSettingsContextProvider:()=>u.uF,extractUsedVariableNames:()=>i.vP,InlineVariableTag:()=>rp,isBeforeRenderFlow:()=>i.EI,EditableItemModel:()=>c.B3,FlowSettings:()=>ty,getDataNode:()=>h.D,CollectionManager:()=>rw.qG,createRunJSDeprecationProxy:()=>eH.Bt,JSRunner:()=>rS.I,searchInLoadedNodes:()=>ev,useResolvedMetaTree:()=>ek,FlowErrorFallback:()=>eN,FlowEngineProvider:()=>d.I6,ResourceError:()=>s.BS,formatPathToVariable:()=>i.AP,createBlockScopedEngine:()=>rV,isCssFile:()=>i.yp,extractUsedVariablePathsFromRunJS:()=>i.$n,formatPathToValue:()=>em,resolveUiMode:()=>i.ME,getRunJSScenesForModel:()=>rE,FlowsSettings:()=>tE,pruneFilter:()=>i.pM,setupRuntimeContextSteps:()=>i.wx,buildSubModelItems:()=>tJ.yG,createJSRunnerWithVersion:()=>rM,findModelUidPosition:()=>S,define:()=>h.E8,buildLayoutSnapshot:()=>V,FlowModelContext:()=>eH.d6,getModelClassName:()=>r_.B,APIResource:()=>s.hR,FilterGroup:()=>s.I8,RunJSContextRegistry:()=>r_.F,useFlowEngine:()=>d.uf,VIEW_ACTIVATED_EVENT:()=>rz.B9,createAssociationAwareObjectMetaFactory:()=>i.af,createSafeRunJSGlobals:()=>i.I2,setAutoFlowError:()=>i.GZ,FilterableItemModel:()=>c.bt,compileRunJs:()=>o.W,filterLoadedContextSelectorItems:()=>ew,getRunJSScenesForContext:()=>rj,getSnippetBody:()=>rN,useFlowModelContext:()=>u.m2,reaction:()=>h.mJ,FlowContextProvider:()=>m.Dv,isRunJSValue:()=>i.E2,useFlowStep:()=>u.eP,openStepSettings:()=>tT,FlowReactContext:()=>m.bc,createSafeNavigator:()=>i.D1,toJS:()=>h.HO,listSnippetsForContext:()=>rB});var n=function(e){return e[e.BLOCK_LINKAGE_RULES=1]="BLOCK_LINKAGE_RULES",e[e.FIELD_LINKAGE_RULES=2]="FIELD_LINKAGE_RULES",e[e.SUB_FORM_FIELD_LINKAGE_RULES=3]="SUB_FORM_FIELD_LINKAGE_RULES",e[e.DETAILS_FIELD_LINKAGE_RULES=4]="DETAILS_FIELD_LINKAGE_RULES",e[e.ACTION_LINKAGE_RULES=5]="ACTION_LINKAGE_RULES",e[e.DYNAMIC_EVENT_FLOW=6]="DYNAMIC_EVENT_FLOW",e}({}),i=r(48555),o=r(49773),l=r(98192),s=r(99784),a=r(81440),u=r(57084),c=r(1314),d=r(20616),h=r(52847),p=r(74848),f=r(71021),g=r(96540),m=r(52568);function y(e){let t=(0,h.PA)(t=>(0,m.$K)().flowSettingsEnabled?(0,p.jsx)(e,{...t}):null);return t.displayName=`withFlowDesignMode(${e.displayName||e.name||"Component"})`,t}let v=y(e=>(0,p.jsx)(f.Ay,{...e,type:"dashed",style:{...e.style,borderColor:"var(--colorSettings)",color:"var(--colorSettings)",alignSelf:"flex-start"}}));v.displayName="FlowSettingsButton";var w=r(2805),b=r(98668),x=r(40961);let S=(e,t)=>{let r=null;for(let[n,i]of Object.entries(t))for(let t=0;t<i.length;t++){let o=i[t];for(let i=0;i<o.length;i++)o[i]===e&&(r={rowId:n,columnIndex:t,itemIndex:i})}return r};var _=r(27253),A=r(2543),k=r.n(A);let M=24,E=16,j=48,R=12,P=28,C=.2,F=.5,T=.33,I=(e,t)=>{let r=[],n=new Set;return(t||Object.keys(e)).forEach(t=>{e[t]&&!n.has(t)&&(r.push(t),n.add(t))}),Object.keys(e).forEach(e=>{n.has(e)||(r.push(e),n.add(e))}),r},$=(e,t)=>{let r={};return t.forEach(t=>{e[t]&&(r[t]=e[t])}),Object.keys(e).forEach(t=>{r[t]||(r[t]=e[t])}),r},O=e=>{let t=I(e.rows,e.rowOrder);return e.rowOrder=t,e.rows=$(e.rows,t),t},D=e=>({top:e.top,left:e.left,width:e.width,height:e.height}),N=e=>Math.max(E,Math.min(j,e)),B=e=>{let{top:t,left:r,width:n,height:i}=e;return{top:t,left:r,width:n,height:i}},L=(e,t,r)=>{let n=N(e.height*T);if("above"===t){let t=N(Math.max(n,e.top-r.top));return B({top:e.top-t,left:r.left,width:r.width,height:t})}let i=N(Math.max(n,r.top+r.height-(e.top+e.height)));return B({top:e.top+e.height,left:r.left,width:r.width,height:i})},z=(e,t)=>{let r=Math.min(Math.max(R,e.width*C),P);return B({top:e.top,left:"left"===t?e.left:e.left+e.width-r,width:r,height:e.height})},q=(e,t)=>{let r=N(e.height*F);return"before"===t?B({top:e.top,left:e.left,width:e.width,height:r}):B({top:e.top+e.height-r,left:e.left,width:e.width,height:r})},W=e=>({top:e.top,left:e.left,width:e.width,height:Math.max(e.height,E)}),V=e=>{let{container:t}=e;if(!t)return{slots:[],containerRect:{top:0,left:0,width:0,height:0}};let r=D(t.getBoundingClientRect()),n=[],i=Array.from(t.querySelectorAll("[data-grid-row-id]")).filter(e=>{let r=e.parentElement;for(;r&&r!==t;){if(r.hasAttribute("data-grid-row-id"))return!1;r=r.parentElement}return!0});return 0===i.length?n.push({type:"empty-row",rect:B({top:r.top,left:r.left,width:r.width,height:Math.max(r.height,E)})}):i.forEach((e,i)=>{let o=e.dataset.gridRowId;if(!o)return;let l=D(e.getBoundingClientRect());0===i&&n.push({type:"row-gap",targetRowId:o,position:"above",rect:L(l,"above",r)}),Array.from(t.querySelectorAll(`[data-grid-column-row-id="${o}"][data-grid-column-index]`)).filter(t=>t.closest("[data-grid-row-id]")===e).sort((e,t)=>Number(e.dataset.gridColumnIndex||0)-Number(t.dataset.gridColumnIndex||0)).forEach(e=>{let t=Number(e.dataset.gridColumnIndex||0),r=D(e.getBoundingClientRect());n.push({type:"column-edge",rowId:o,columnIndex:t,direction:"left",rect:z(r,"left")}),n.push({type:"column-edge",rowId:o,columnIndex:t,direction:"right",rect:z(r,"right")});let i=Array.from(e.querySelectorAll(`[data-grid-item-row-id="${o}"][data-grid-column-index="${t}"]`)).filter(t=>t.closest("[data-grid-column-row-id][data-grid-column-index]")===e).sort((e,t)=>Number(e.dataset.gridItemIndex||0)-Number(t.dataset.gridItemIndex||0));if(0===i.length)return void n.push({type:"empty-column",rowId:o,columnIndex:t,rect:W(r)});let l=D(i[0].getBoundingClientRect());n.push({type:"column",rowId:o,columnIndex:t,insertIndex:0,position:"before",rect:q(l,"before")}),i.forEach((e,r)=>{let i=D(e.getBoundingClientRect());n.push({type:"column",rowId:o,columnIndex:t,insertIndex:r+1,position:"after",rect:q(i,"after")})})}),n.push({type:"row-gap",targetRowId:o,position:"below",rect:L(l,"below",r)})}),{slots:n,containerRect:r}},U=e=>{switch(e.type){case"column":return`${e.type}:${e.rowId}:${e.columnIndex}:${e.insertIndex}:${e.position}`;case"column-edge":return`${e.type}:${e.rowId}:${e.columnIndex}:${e.direction}`;case"row-gap":return`${e.type}:${e.targetRowId}:${e.position}`;case"empty-row":return`${e.type}`;case"empty-column":return`${e.type}:${e.rowId}:${e.columnIndex}`}},K=(e,t)=>e.x>=t.left&&e.x<=t.left+t.width&&e.y>=t.top&&e.y<=t.top+t.height,H=(e,t)=>{let r=Math.max(t.left-e.x,0,e.x-(t.left+t.width)),n=Math.max(t.top-e.y,0,e.y-(t.top+t.height));return Math.sqrt(r*r+n*n)},J=(e,t)=>{if(!t.length)return null;let r=t.find(t=>K(e,t.rect));if(r)return r;let n=null,i=1/0;return t.forEach(t=>{let r=H(e,t.rect);r<i&&(i=r,n=t)}),n},Y=(e,t)=>{for(let[r,n]of Object.entries(e))for(let e=0;e<n.length;e+=1){let i=n[e].indexOf(t);if(-1!==i)return{rowId:r,columnIndex:e,itemIndex:i}}return null},G=(e,t)=>{let r=Y(e.rows,t);if(!r)return;let{rowId:n,columnIndex:i,itemIndex:o}=r,l=e.rows[n],s=null==l?void 0:l[i];if(s){if(s.splice(o,1),0===s.length&&(l.splice(i,1),e.sizes[n]&&e.sizes[n].splice(i,1)),0===l.length){delete e.rows[n],delete e.sizes[n],O(e);return}X(n,e),O(e)}},Z=(e,t)=>{if(0===t)return[];let r=e.map(e=>Number.isFinite(e)&&e>0?e:1),n=r.reduce((e,t)=>e+t,0)||t,i=r.map(e=>e/n).map(e=>e*M),o=i.map(e=>Math.max(1,Math.floor(e))),l=M-o.reduce((e,t)=>e+t,0);if(l>0){let e=i.map((e,t)=>({index:t,decimal:e-Math.floor(e)})).sort((e,t)=>t.decimal-e.decimal),t=0;for(;l>0&&e.length;){let r=e[t%e.length].index;o[r]+=1,l-=1,t+=1}}else if(l<0){let e=i.map((e,t)=>({index:t,decimal:e-Math.floor(e)})).sort((e,t)=>e.decimal-t.decimal),t=0;for(;l<0&&e.length;){let r=e[t%e.length].index;o[r]>1&&(o[r]-=1,l+=1),t+=1}}let s=M-o.reduce((e,t)=>e+t,0);return 0!==s&&o.length&&(o[o.length-1]+=s),o},X=(e,t)=>{let r=t.rows[e];if(!r||0===r.length)return void delete t.sizes[e];let n=t.sizes[e]||Array(r.length).fill(M/r.length),i=n.length===r.length?n:Array(r.length).fill(M/r.length);t.sizes[e]=Z(i,r.length)},Q=(e,t,r,n,i)=>{let o=Object.entries(e),l={},s=!1;return o.forEach(e=>{let[o,a]=e;s||"before"!==n||o!==t||(l[r]=i,s=!0),l[o]=a,s||"after"!==n||o!==t||(l[r]=i,s=!0)}),s||(l[r]=i),l},ee=(e,t,r)=>{if(!e||0===e.length)return Z(Array(r).fill(1),r);let n=e.map(e=>Number.isFinite(e)&&e>0?e:1),i=Math.max(0,Math.min(t,n.length-1)),o=n[i]??1,l=[...n];return l.splice(t,0,o),Z(l,r)},et=e=>{let{slot:t,sourceUid:r,layout:n,generateRowId:i}=e,o={rows:k().cloneDeep(n.rows),sizes:k().cloneDeep(n.sizes),rowOrder:n.rowOrder?[...n.rowOrder]:void 0};O(o),G(o,r);let l=i??_.uid;switch(t.type){case"column":{let e=o.rows[t.rowId]||[];o.rows[t.rowId]||(o.rows[t.rowId]=e),e[t.columnIndex]||(e[t.columnIndex]=[]),e[t.columnIndex].splice(t.insertIndex,0,r),X(t.rowId,o);break}case"empty-column":{let e=o.rows[t.rowId]||[];o.rows[t.rowId]||(o.rows[t.rowId]=e),e[t.columnIndex]||(e[t.columnIndex]=[]),e[t.columnIndex]=[r],X(t.rowId,o);break}case"column-edge":{let e=o.rows[t.rowId]||[];o.rows[t.rowId]||(o.rows[t.rowId]=e);let n="left"===t.direction?t.columnIndex:t.columnIndex+1;e.splice(n,0,[r]),o.sizes[t.rowId]=ee(o.sizes[t.rowId],n,e.length),X(t.rowId,o);break}case"row-gap":{let e=l(),n="above"===t.position?"before":"after",i=I(o.rows,o.rowOrder);o.rows=Q(o.rows,t.targetRowId,e,n,[[r]]),o.sizes[e]=[M];let s=i.indexOf(t.targetRowId),a=-1===s?i.length:"before"===n?s:s+1,u=[...i];u.splice(a,0,e),o.rowOrder=u,o.rows=$(o.rows,u);break}case"empty-row":{let e=l();o.rows={...o.rows,[e]:[[r]]},o.sizes[e]=[M];let t=I(o.rows,o.rowOrder);o.rowOrder=[...t.filter(t=>t!==e),e],o.rows=$(o.rows,o.rowOrder)}}return O(o),o},er="EMPTY_COLUMN",en=e=>{let{model:t,children:r=(0,p.jsx)(w.A,{})}=e,{attributes:n,listeners:i,setNodeRef:o}=(0,b.PM)({id:t.uid});return(0,p.jsx)("span",{ref:o,...i,...n,style:{cursor:"grab"},children:r})},ei=e=>{let{model:t,children:r}=e,{setNodeRef:n,isOver:i,active:o}=(0,b.zM)({id:t.uid}),l=(null==o?void 0:o.id)===t.uid;return(0,p.jsxs)("div",{ref:n,style:{position:"relative",opacity:l?.3:1,outline:l?"2px solid var(--colorBorderSettingsHover)":"none",borderRadius:l?t.context.themeToken.borderRadiusLG:"none"},children:[r,(0,p.jsx)("div",{style:{position:"absolute",top:0,left:0,right:0,bottom:0,backgroundColor:i?"var(--colorBgSettingsHover)":"transparent",pointerEvents:"none"}})]})},eo=e=>{let{persist:t=!0,children:r,onDragEnd:n,...i}=e,[o,l]=(0,g.useState)(null),s=(0,d.uf)();return(0,p.jsxs)(b.Mp,{onDragStart:e=>{var t;l(e.active.id),null==(t=i.onDragStart)||t.call(i,e)},onDragEnd:e=>{l(null),n?n(e):e.over&&s.moveModel(e.active.id,e.over.id,{persist:t})},...i,children:[r,(0,x.createPortal)((0,p.jsx)(b.Hd,{dropAnimation:null,zIndex:2e3,children:o&&(0,p.jsx)("span",{style:{display:"inline-flex",alignItems:"center",whiteSpace:"nowrap",background:"#fff",border:"1px solid #1890ff",borderRadius:4,padding:"4px 12px",color:"#1890ff",boxShadow:"0 2px 8px rgba(0,0,0,0.15)"},children:s.translate("Dragging")})}),document.body)]})},el=["model","uid","fallback","key","showFlowSettings","flowSettingsVariant","hideRemoveInSettings","showTitle","inputArgs","showErrorFallback","settingsMenuLevel","extraToolbarItems"];function es(e){let{model:t,...r}=e,n=(0,g.useRef)(!1),i=r=>{let i;if(i=r&&r.target&&void 0!==r.target.value?r.target.value:"string"!=typeof r&&"number"!=typeof r&&"boolean"!=typeof r&&("object"!=typeof r||r instanceof Event)?null:r,t.setProps({value:i}),!n.current){var o;null==(o=e.onChange)||o.call(e,i)}},o={onCompositionStart:()=>{n.current=!0},onCompositionEnd:function(t){let r=!(arguments.length>1)||void 0===arguments[1]||arguments[1];n.current=!1,r&&e.onChange(t)},...k().omit(r,el),onChange:i};return(0,g.useEffect)(()=>{t&&t.setProps(o)},[o]),(0,p.jsx)(tn,{model:t,...r})}var ea=r(35710),eu=r(42443),ec=r(95725),ed=r(60209),eh=r(53619),ep=r(85876);let ef=e=>{var t;return"string"==typeof e.label?e.label:"string"==typeof(null==(t=e.meta)?void 0:t.title)?e.meta.title:e.value},eg=e=>{if("string"!=typeof e)return;let t=e.trim(),r=/^\{\{\s*ctx(?:\.(.+?))?\s*\}\}$/,n=t.match(r);if(!n)return;let i=n[1];return i?i.split("."):[]},em=e=>{let t=(null==e?void 0:e.paths)||[];return 0===t.length?"{{ ctx }}":`{{ ctx.${t.join(".")} }}`},ey=async e=>{if(!(null==e?void 0:e.children))return[];if("function"==typeof e.children)try{return await e.children()}catch(t){return console.warn(`Failed to load children for ${e.name}:`,t),[]}return e.children},ev=function(e,t){if(arguments.length>2&&void 0!==arguments[2]&&arguments[2],!t||!t.trim())return[];let r=t.toLowerCase().trim(),n=[],i=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];for(let o of e){let e=[...t,o.value];ef(o).toLowerCase().includes(r)&&n.push(o),o.children&&Array.isArray(o.children)&&i(o.children,e)}};return i(e,[]),n},ew=(e,t)=>{if(!Array.isArray(e)||0===e.length)return[];let r=t.trim().toLowerCase();if(!r)return e;let n=e=>{if(ef(e).toLowerCase().includes(r))return e;if(!Array.isArray(e.children)||0===e.children.length)return null;let t=e.children.map(e=>n(e)).filter(e=>null!==e);return 0===t.length?null:t.length===e.children.length&&t.every((t,r)=>t===e.children[r])?e:{...e,children:t}};return e.map(e=>n(e)).filter(e=>null!==e)},eb=e=>{if(!e||!Array.isArray(e))return console.warn("buildContextSelectorItems received invalid metaTree:",e),[];let t=e=>{if("function"==typeof e.hidden?e.hidden():e.hidden)return null;let r=!!(e.children&&("function"==typeof e.children||Array.isArray(e.children)&&e.children.length>0)),n=!!("function"==typeof e.disabled?e.disabled():e.disabled),i={label:e.title||e.name,value:e.name,isLeaf:!r,meta:e,paths:e.paths,disabled:n};return Array.isArray(e.children)&&e.children.length>0&&(i.children=e.children.map(e=>t(e)).filter(e=>null!==e)),i};return e.map(e=>t(e)).filter(e=>null!==e)},ex=async(e,t,r)=>{if(!e||!Array.isArray(e)||!t||0===t.length)return;let n=e;for(let e=0;e<t.length&&n;e++){let i=String(t[e]),o=n.find(e=>String(e.value)===i);if(!o)break;let l=o.meta,s=!!o.children&&Array.isArray(o.children);if(e<t.length-1&&!s&&l&&"function"==typeof l.children){o.loading=!0;try{let e=await ey(l);l.children=e;let t=eb(e);o.children=t,o.isLeaf=!t||0===t.length,Promise.resolve().then(()=>null==r?void 0:r()).catch(()=>{})}finally{o.loading=!1}}n=Array.isArray(o.children)?o.children:void 0}},eS=e=>(0,i.n2)(e),e_=()=>({resolvePathFromValue:e=>eg(e),resolveValueFromPath:e=>em(e)}),eA=e=>{let t=e_(),r=e?{...t,...e}:t;if(null==e?void 0:e.resolveValueFromPath){let t=e.resolveValueFromPath;return{...r,resolveValueFromPath:e=>{let r=t(e);return void 0===r?em(e):r}}}return r},ek=e=>{let[t,r]=g.useState(),[n,i]=g.useState(!1),[o,l]=g.useState(null);return g.useEffect(()=>{(async()=>{if(!e){r(void 0),i(!1),l(null);return}if(Array.isArray(e)){r(e),i(!1),l(null);return}if("function"==typeof e){i(!0),l(null);try{let t=await e();"function"==typeof t&&(t=await t()),r(t)}catch(e){console.warn("Failed to resolve metaTree function:",e),l(e instanceof Error?e:Error(String(e))),r(void 0)}finally{i(!1)}}})()},[e]),{resolvedMetaTree:t,loading:n,error:o}},eM={fontStyle:"italic",fontFamily:"New York, Times New Roman, Times, serif"},eE=(0,ep.AH)`
|
|
10
10
|
.ant-cascader-menu {
|
|
11
11
|
height: fit-content;
|
|
12
12
|
max-height: 50vh;
|
|
13
13
|
}
|
|
14
|
-
`,
|
|
14
|
+
`,ej=e=>{if(Array.isArray(e))return e.map(e=>String(e))},eR=(e,t)=>{let r;if(!Array.isArray(e)||0===e.length)return{text:"",meta:void 0};let n=[],i=t;for(let t of e){var o;let e=i.find(e=>String(e.value)===String(t));if(!e)break;let l="string"==typeof(null==(o=e.meta)?void 0:o.title)?e.meta.title:"string"==typeof e.label?e.label:String(e.value);n.push(l),r=e.meta,i=Array.isArray(e.children)?e.children:[]}return{text:n.join(" / "),meta:r}},eP=e=>{let{value:t,onChange:r,children:n,metaTree:i,showSearch:o=!1,parseValueToPath:l=eg,formatPathToValue:s,open:a,onlyLeafSelectable:u=!1,ignoreFieldNames:c,...d}=e,{token:h}=ea.A.useToken(),y=(0,g.useRef)(null),{resolvedMetaTree:v,loading:w}=ek(i),b=(0,m.$K)(),x=(0,g.useCallback)(e=>e?e.map(e=>{let t=e.meta,r=!!t&&!!("function"==typeof t.disabled?t.disabled():t.disabled),n=t?"function"==typeof t.disabledReason?t.disabledReason():t.disabledReason:void 0,i="string"==typeof e.label?b.t(e.label):e.label,o=r?(0,p.jsxs)("span",{children:[i,(0,p.jsx)(eu.A,{title:n||b.t("This variable is not available"),placement:"right",overlayClassName:"flow-variable-disabled-tip",destroyTooltipOnHide:!0,children:(0,p.jsx)(eh.A,{style:{marginLeft:6,color:"rgba(0,0,0,0.35)"}})})]}):i;return{...e,label:o,disabled:r,children:Array.isArray(e.children)?x(e.children):e.children}}):[],[b]),[S,_]=(0,g.useState)(0),[A,k]=(0,g.useState)(""),[M,E]=(0,g.useState)(!1),j=(0,g.useRef)(!1),R=(0,g.useCallback)(()=>_(e=>e+1),[]),P=o||null===n,C=(0,g.useMemo)(()=>{if(!v)return[];let e=S,t=x(eb(v)).filter(e=>{var t;return!c||0===c.length||!c.includes((null==(t=e.meta)?void 0:t.name)||"")});return e>=0?t:[]},[v,S,x,c]),F=(0,g.useMemo)(()=>P&&A.trim()?ew(C,A):C,[P,C,A]),[T,I]=(0,g.useState)([]),$=(0,g.useCallback)(async e=>{let t=e[e.length-1];if(!t||t.children||t.isLeaf)return;let r=t.meta;if(r&&r.children){if(Array.isArray(r.children)){let e=x(eb(r.children));t.children=e,t.isLeaf=!e||0===e.length,R();return}try{I(e.map(e=>String(e.value))),t.loading=!0,R();let n=await r.children();r.children=n;let i=x(eb(n));t.children=i,t.isLeaf=!i||0===i.length}catch(e){console.error("Failed to load children:",e)}finally{t.loading=!1,R()}}},[R,x]),O=(0,g.useMemo)(()=>ej(l(t)),[t,l]),D=(0,g.useMemo)(()=>O&&0!==O.length&&0!==C.length?new Set(C.map(e=>String(e.value))).has(String(O[0]))?O:O.slice(1):O,[O,C]),N=(0,g.useMemo)(()=>T.length>0?T:Array.isArray(D)?D:void 0,[D,T]),B=(0,g.useMemo)(()=>{let e=D&&D.length>0?D:T;return Array.isArray(e)?e:[]},[D,T]);(0,g.useEffect)(()=>{0!==B.length&&(null==C?void 0:C.length)&&ex(C,B,R)},[C,B,R]);let L=(0,g.useMemo)(()=>{let e=O&&O.length>0;return(0,p.jsx)(f.Ay,{type:e?"primary":"default",style:eM,children:"x"})},[O]),z=(0,g.useCallback)((e,t)=>{let n,i=null==t?void 0:t[t.length-1];if(!e||0===e.length){null==r||r("",null==i?void 0:i.meta),I([]);return}let o=e.map(String),l=o.join("."),a=null==i?void 0:i.isLeaf,c=Date.now();if(s?void 0===(n=s(null==i?void 0:i.meta))&&(n=em(null==i?void 0:i.meta)):n=em(null==i?void 0:i.meta),a){null==r||r(n,null==i?void 0:i.meta),I([]);return}let d=y.current;!u&&(null==d?void 0:d.path)===l&&c-d.time<300?(null==r||r(n,null==i?void 0:i.meta),y.current=null):(y.current={path:l,time:c},I(o))},[r,s,u]),q=(0,g.useMemo)(()=>(0,ep.cx)(eE,d.popupClassName),[d.popupClassName]),W=(0,g.useMemo)(()=>(0,ep.AH)`
|
|
15
15
|
padding: 8px;
|
|
16
16
|
border-bottom: 1px solid ${h.colorSplit};
|
|
17
|
-
`,[h.colorSplit]),{onDropdownVisibleChange:V,dropdownRender:W,...H}=d,K=(0,m.useMemo)(()=>ej(D,E),[D,E]),J=void 0!==a?a:null===n?k:void 0,Y=!!J,G=(0,m.useCallback)(e=>{void 0===a&&P(e),e||_(""),null==V||V(e)},[V,a]),Z=(0,m.useCallback)(e=>{let t=W?W(e):e,r=m.isValidElement(t)?t:(0,p.jsx)(p.Fragment,{children:t});return R&&null!==n?(0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)("div",{className:z,children:(0,p.jsx)(eu.A,{allowClear:!0,size:"small",value:M,placeholder:b.t("Search"),onChange:e=>_(e.target.value),onKeyDown:e=>e.stopPropagation()})}),r]}):r},[W,z,n,b,R,M]),X="string"==typeof H.placeholder?H.placeholder:b.t("Search"),Q=Array.isArray(D)&&D.length>0,ee=(0,m.useCallback)(()=>{void 0!==a||C.current||P(!0)},[a]),et=(0,m.useCallback)(()=>{C.current=!0},[]),er=(0,m.useCallback)(()=>{C.current=!1},[]),en=(0,m.useCallback)(e=>{let t=e.target.value;if(!Y&&""===t&&Q){O([]),null==r||r("",void 0);return}void 0!==a||Y||P(!0),_(t)},[Q,Y,r,a]),ei=Array.isArray(D)?D.join(" / "):"",eo=Y?M:K.text||ei;return(0,p.jsx)(ed.A,{...H,options:F,value:N,onChange:q,loadData:I,loading:w,changeOnSelect:!c,expandTrigger:"click",open:J,showSearch:!1,popupClassName:U,dropdownRender:Z,onDropdownVisibleChange:G,children:null===n?(0,p.jsx)(eu.A,{allowClear:!0,value:eo,placeholder:X,onMouseDown:et,onMouseUp:er,onMouseLeave:er,onFocus:ee,onBlur:er,onChange:en,onKeyDown:e=>e.stopPropagation(),disabled:H.disabled}):n||L})},eE=m.memo(eR);var eF=r(84359),eT=r(92275),eO=r(97019);let{Paragraph:eI,Text:e$}=eF.A,eD=e=>{var t;let{error:r,resetErrorBoundary:n}=e,[o,l]=(0,m.useState)(!1),s=(0,eO.PZ)(),a=(0,i.lW)(s),c=async()=>{l(!0);try{let e={message:r.message,stack:r.stack,modelInfo:s?{uid:s.uid,className:s.constructor.name,props:s.props,stepParams:s.stepParams}:null,timestamp:new Date().toISOString()};await navigator.clipboard.writeText(JSON.stringify(e,null,2)),console.log("Error information copied to clipboard")}catch(e){console.error("Failed to copy error information:",e)}l(!1)},u=null==s||null==(t=s.context)?void 0:t.api,d=async()=>{if(!u)return void console.error("API client not available");l(!0);try{let e=s.context.api,t={pathname:window.location.pathname,search:window.location.search,hash:window.location.hash,href:window.location.href},n=await e.request({url:"logger:collect",method:"post",responseType:"blob",data:{error:{message:r.message,stack:r.stack},location:t,modelInfo:s?{uid:s.uid,className:s.constructor.name,props:s.props,stepParams:s.stepParams}:null}}),i=window.URL.createObjectURL(new Blob([n.data],{type:"application/gzip"})),o=document.createElement("a");o.setAttribute("href",i),o.setAttribute("download","logs.tar.gz"),o.click(),o.remove(),window.URL.revokeObjectURL(i)}catch(e){console.error("Failed to download logs:",e)}l(!1)},h=(0,p.jsxs)("span",{children:[a("This is likely a NocoBase internals bug. Please open an issue at")," ",(0,p.jsx)("a",{href:"https://github.com/nocobase/nocobase/issues",target:"_blank",rel:"noopener noreferrer",children:a("here")}),s&&(0,p.jsxs)("div",{style:{marginTop:"8px",fontSize:"12px",color:"#999"},children:["Model: ",s.constructor.name," (uid: ",s.uid,")"]})]});return(0,p.jsx)("div",{style:{backgroundColor:"white"},children:(0,p.jsx)(eT.Ay,{style:{maxWidth:"60vw",margin:"auto"},status:"error",title:a("Render failed"),subTitle:h,extra:[(0,p.jsx)(f.Ay,{type:"primary",href:"https://github.com/nocobase/nocobase/issues",target:"_blank",children:a("Feedback")},"feedback"),u&&(0,p.jsx)(f.Ay,{loading:o,onClick:d,children:a("Download logs")},"log"),(0,p.jsx)(f.Ay,{loading:o,onClick:c,children:a("Copy error info")},"copy"),n&&(0,p.jsx)(f.Ay,{danger:!0,onClick:n,children:a("Try again")},"retry")].filter(Boolean),children:(0,p.jsx)(eI,{copyable:{text:r.stack},children:(0,p.jsx)(e$,{type:"danger",style:{whiteSpace:"pre-line",textAlign:"center"},children:r.stack})})})})},eN=e=>{let{error:t,resetErrorBoundary:r}=e,[n,i]=(0,m.useState)(!1);try{return(0,p.jsx)(eD,{error:t,resetErrorBoundary:r})}catch{let e=async()=>{i(!0);try{let e={message:t.message,stack:t.stack,timestamp:new Date().toISOString()};await navigator.clipboard.writeText(JSON.stringify(e,null,2)),console.log("Error information copied to clipboard")}catch(e){console.error("Failed to copy error information:",e)}i(!1)},o=(0,p.jsxs)("span",{children:["This is likely a NocoBase internals bug. Please open an issue at ",(0,p.jsx)("a",{href:"https://github.com/nocobase/nocobase/issues",target:"_blank",rel:"noopener noreferrer",children:"here"})]});return(0,p.jsx)("div",{style:{backgroundColor:"white"},children:(0,p.jsx)(eT.Ay,{style:{maxWidth:"60vw",margin:"auto"},status:"error",title:"Render failed",subTitle:o,extra:[(0,p.jsx)(f.Ay,{type:"primary",href:"https://github.com/nocobase/nocobase/issues",target:"_blank",children:"Feedback"},"feedback"),(0,p.jsx)(f.Ay,{loading:n,onClick:e,children:"Copy error info"},"copy"),r&&(0,p.jsx)(f.Ay,{danger:!0,onClick:r,children:"Try again"},"retry")].filter(Boolean),children:(0,p.jsx)(eI,{copyable:{text:t.stack},children:(0,p.jsx)(e$,{type:"danger",style:{whiteSpace:"pre-line",textAlign:"center"},children:t.stack})})})})}},eB=e=>{let{error:t,resetErrorBoundary:r,children:n}=e,[i,o]=(0,m.useState)(!1),l=(0,p.jsx)(eI,{style:{display:"flex",marginBottom:0},copyable:{text:t.message},children:(0,p.jsxs)(e$,{type:"danger",style:{whiteSpace:"nowrap",textOverflow:"ellipsis",overflow:"hidden",display:"inline-block",maxWidth:"200px"},children:["Error: ",t.message]})});return(0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)("div",{onMouseOver:()=>o(!0),children:n||l}),i&&(0,p.jsx)("div",{style:{position:"fixed",top:0,left:0,right:0,bottom:0,backgroundColor:"rgba(0, 0, 0, 0.5)",display:"flex",alignItems:"center",justifyContent:"center",zIndex:1e4},onClick:()=>o(!1),children:(0,p.jsxs)("div",{style:{backgroundColor:"#fff",borderRadius:"8px",padding:"24px",maxWidth:"60vw",maxHeight:"80vh",overflow:"auto",position:"relative"},onClick:e=>e.stopPropagation(),children:[(0,p.jsx)("button",{style:{position:"absolute",top:"8px",right:"12px",background:"none",border:"none",fontSize:"18px",cursor:"pointer",color:"#999"},onClick:()=>o(!1),children:"\xd7"}),(0,p.jsx)(eN,{error:t,resetErrorBoundary:r})]})})]})};eN.Modal=eB;var eL=r(47665),eq=r(92034),eU=r(49655),ez=r(53138),eV=r(18182),eW=r(40919),eH=r(76511),eK=r(29007),eJ=r(23183);let eY=e=>"uid"in e&&"modelClassName"in e&&!!e.uid&&!!e.modelClassName,eG=e=>eY(e)?(0,p.jsx)(eX,{...e}):(0,p.jsx)(eZ,{...e}),eZ=(0,h.PA)(e=>{let{model:t,children:r,enabled:n=!0,position:o="right",showDeleteButton:l=!0}=e,s=(0,i.lW)(t),{token:a}=ea.A.useToken(),c=(null==a?void 0:a.colorTextTertiary)||(null==a?void 0:a.colorTextDescription)||(null==a?void 0:a.colorTextSecondary),[u,d]=(0,m.useState)([]),h=(0,m.useCallback)(e=>{let[t,r]=e.split(":");return!!t&&!!r&&u.some(e=>{let{flow:n,steps:i}=e;return n.key===t&&i.some(e=>e.stepKey===r&&!!e.disabled)})},[u]),f=(0,m.useCallback)(e=>{let{key:r}=e;if("delete"===r)eV.A.confirm({title:s("Confirm delete"),icon:(0,p.jsx)(eq.A,{}),content:s("Are you sure you want to delete this item? This action cannot be undone."),okText:s("Confirm Delete"),okType:"danger",cancelText:s("Cancel"),zIndex:999999,onOk(){try{t.dispatchEvent("remove")}catch(e){console.error(s("Delete operation failed"),":",e),eV.A.error({title:s("Delete failed"),content:s("Delete operation failed, please check the console for details.")})}}});else{if(h(r))return;let[e,o]=r.split(":");try{var n;let r=t.getFlow(e),l=null==r||null==(n=r.steps)?void 0:n[o];if(!r||!l)return void console.error(`Flow ${e} or step ${o} not found`);let s=new eK.W5(t,e,"settings");(0,i.wx)(s,r.steps,t,e),s.defineProperty("currentStep",{value:l}),(0,eJ.openStepSettingsDialog)({model:t,flowKey:e,stepKey:o,ctx:s})}catch(e){console.log("配置弹窗已取消或出错:",e)}}},[h,t]);if(!t)return(0,p.jsx)(eW.A,{message:"提供的模型无效",type:"error"});if(!n||!r)return(0,p.jsx)(p.Fragment,{children:r});let g=(0,m.useCallback)(async()=>{try{let e=t.getFlows(),r=Array.from(e.values());return(await Promise.all(r.map(async e=>{let r=await Promise.all(Object.entries(e.steps).map(async r=>{let[n,o]=r,l=o;if(await (0,i._3)(t,e,l))return null;let s=await (0,i.XM)(t,e,l),a=l.uiSchema||{},c={};if(l.use){var u;let e=null==(u=t.getAction)?void 0:u.call(t,l.use);e&&e.uiSchema&&(c=e.uiSchema)}let d={...c};return(Object.entries(a).forEach(e=>{let[t,r]=e;d[t]?d[t]={...d[t],...r}:d[t]=r}),0===Object.keys(d).length)?null:{stepKey:n,step:l,uiSchema:d,title:l.title||n,disabled:s.disabled,disabledReason:s.reason}})).then(e=>e.filter(Boolean));return r.length>0?{flow:e,steps:r}:null}))).filter(Boolean)}catch(e){return console.warn("[FlowsContextMenu] 获取可配置flows失败:",e),[]}},[t]);if((0,m.useEffect)(()=>{let e=!0;return(async()=>{let t=await g();e&&d(t)})(),()=>{e=!1}},[g]),0===u.length&&!l)return(0,p.jsx)(p.Fragment,{children:r});let y=[];return u.length>0&&u.forEach(e=>{let{flow:t,steps:r}=e;y.push({key:`flow-group-${t.key}`,label:t.title||t.key,type:"group"}),r.forEach(e=>{y.push({key:`${t.key}:${e.stepKey}`,icon:(0,p.jsx)(eU.A,{}),label:e.disabled?(0,p.jsxs)("span",{style:{display:"inline-flex",alignItems:"center",gap:6},children:[e.title,(0,p.jsx)(ec.A,{title:e.disabledReason,placement:"right",destroyTooltipOnHide:!0,children:(0,p.jsx)(eh.A,{style:{color:c}})})]}):e.title,disabled:!!e.disabled})})}),l&&(u.length>0&&y.push({type:"divider"}),y.push({key:"delete",icon:(0,p.jsx)(ez.A,{}),label:"删除"})),(0,p.jsx)(p.Fragment,{children:(0,p.jsx)(eH.A,{menu:{items:y,onClick:f},trigger:["contextMenu"],placement:"left"===o?"bottomLeft":"bottomRight",children:(0,p.jsx)("div",{style:{display:"inline-block",width:"100%"},children:r})})})}),eX=(0,h.PA)(e=>{let{uid:t,modelClassName:r,children:n,enabled:i=!0,position:o="right",showDeleteButton:l=!0}=e,s=(0,c.fh)(t,r);return s?(0,p.jsx)(eZ,{model:s,enabled:i,position:o,showDeleteButton:l,children:n}):(0,p.jsx)(eW.A,{message:`未找到ID为 ${t} 的模型`,type:"error"})});var eQ=r(84626);let e0=e=>{if(!e)return!1;let t=e.children;for(let e=0;e<t.length;e++){let r=t[e];if("BUTTON"===r.tagName||"button"===r.getAttribute("role")||r.classList.contains("ant-btn"))return!0}return!1},e1=(e,t,r,n,i,o)=>{var l,s;let a=[...(null==n||null==(s=n.flowSettings)||null==(l=s.getToolbarItems)?void 0:l.call(s))||[],...o||[]];return a.sort((e,t)=>(e.sort||0)-(t.sort||0)).reverse(),a.filter(t=>!t.visible||t.visible(e)).map(n=>{let o=n.component;return"settings-menu"===n.key?(0,p.jsx)(o,{model:e,id:e.uid,showDeleteButton:t,showCopyUidButton:r,menuLevels:i},n.key):(0,p.jsx)(o,{model:e},n.key)})},e2=19,e5={inside:`
|
|
17
|
+
`,[h.colorSplit]),{onDropdownVisibleChange:V,dropdownRender:U,...K}=d,H=(0,g.useMemo)(()=>eR(D,C),[D,C]),J=void 0!==a?a:null===n?M:void 0,Y=!!J,G=(0,g.useCallback)(e=>{void 0===a&&E(e),e||k(""),null==V||V(e)},[V,a]),Z=(0,g.useCallback)(e=>{let t=U?U(e):e,r=g.isValidElement(t)?t:(0,p.jsx)(p.Fragment,{children:t});return P&&null!==n?(0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)("div",{className:W,children:(0,p.jsx)(ec.A,{allowClear:!0,size:"small",value:A,placeholder:b.t("Search"),onChange:e=>k(e.target.value),onKeyDown:e=>e.stopPropagation()})}),r]}):r},[U,W,n,b,P,A]),X="string"==typeof K.placeholder?K.placeholder:b.t("Search"),Q=Array.isArray(D)&&D.length>0,ee=(0,g.useCallback)(()=>{void 0!==a||j.current||E(!0)},[a]),et=(0,g.useCallback)(()=>{j.current=!0},[]),er=(0,g.useCallback)(()=>{j.current=!1},[]),en=(0,g.useCallback)(e=>{let t=e.target.value;if(!Y&&""===t&&Q){I([]),null==r||r("",void 0);return}void 0!==a||Y||E(!0),k(t)},[Q,Y,r,a]),ei=Array.isArray(D)?D.join(" / "):"",eo=Y?A:H.text||ei;return(0,p.jsx)(ed.A,{...K,options:F,value:N,onChange:z,loadData:$,loading:w,changeOnSelect:!u,expandTrigger:"click",open:J,showSearch:!1,popupClassName:q,dropdownRender:Z,onDropdownVisibleChange:G,children:null===n?(0,p.jsx)(ec.A,{allowClear:!0,value:eo,placeholder:X,onMouseDown:et,onMouseUp:er,onMouseLeave:er,onFocus:ee,onBlur:er,onChange:en,onKeyDown:e=>e.stopPropagation(),disabled:K.disabled}):n||L})},eC=g.memo(eP);var eF=r(84359),eT=r(92275),eI=r(97019);let{Paragraph:e$,Text:eO}=eF.A,eD=e=>{var t;let{error:r,resetErrorBoundary:n}=e,[o,l]=(0,g.useState)(!1),s=(0,eI.PZ)(),a=(0,i.lW)(s),u=async()=>{l(!0);try{let e={message:r.message,stack:r.stack,modelInfo:s?{uid:s.uid,className:s.constructor.name,props:s.props,stepParams:s.stepParams}:null,timestamp:new Date().toISOString()};await navigator.clipboard.writeText(JSON.stringify(e,null,2)),console.log("Error information copied to clipboard")}catch(e){console.error("Failed to copy error information:",e)}l(!1)},c=null==s||null==(t=s.context)?void 0:t.api,d=async()=>{if(!c)return void console.error("API client not available");l(!0);try{let e=s.context.api,t={pathname:window.location.pathname,search:window.location.search,hash:window.location.hash,href:window.location.href},n=await e.request({url:"logger:collect",method:"post",responseType:"blob",data:{error:{message:r.message,stack:r.stack},location:t,modelInfo:s?{uid:s.uid,className:s.constructor.name,props:s.props,stepParams:s.stepParams}:null}}),i=window.URL.createObjectURL(new Blob([n.data],{type:"application/gzip"})),o=document.createElement("a");o.setAttribute("href",i),o.setAttribute("download","logs.tar.gz"),o.click(),o.remove(),window.URL.revokeObjectURL(i)}catch(e){console.error("Failed to download logs:",e)}l(!1)},h=(0,p.jsxs)("span",{children:[a("This is likely a NocoBase internals bug. Please open an issue at")," ",(0,p.jsx)("a",{href:"https://github.com/nocobase/nocobase/issues",target:"_blank",rel:"noopener noreferrer",children:a("here")}),s&&(0,p.jsxs)("div",{style:{marginTop:"8px",fontSize:"12px",color:"#999"},children:["Model: ",s.constructor.name," (uid: ",s.uid,")"]})]});return(0,p.jsx)("div",{style:{backgroundColor:"white"},children:(0,p.jsx)(eT.Ay,{style:{maxWidth:"60vw",margin:"auto"},status:"error",title:a("Render failed"),subTitle:h,extra:[(0,p.jsx)(f.Ay,{type:"primary",href:"https://github.com/nocobase/nocobase/issues",target:"_blank",children:a("Feedback")},"feedback"),c&&(0,p.jsx)(f.Ay,{loading:o,onClick:d,children:a("Download logs")},"log"),(0,p.jsx)(f.Ay,{loading:o,onClick:u,children:a("Copy error info")},"copy"),n&&(0,p.jsx)(f.Ay,{danger:!0,onClick:n,children:a("Try again")},"retry")].filter(Boolean),children:(0,p.jsx)(e$,{copyable:{text:r.stack},children:(0,p.jsx)(eO,{type:"danger",style:{whiteSpace:"pre-line",textAlign:"center"},children:r.stack})})})})},eN=e=>{let{error:t,resetErrorBoundary:r}=e,[n,i]=(0,g.useState)(!1);try{return(0,p.jsx)(eD,{error:t,resetErrorBoundary:r})}catch{let e=async()=>{i(!0);try{let e={message:t.message,stack:t.stack,timestamp:new Date().toISOString()};await navigator.clipboard.writeText(JSON.stringify(e,null,2)),console.log("Error information copied to clipboard")}catch(e){console.error("Failed to copy error information:",e)}i(!1)},o=(0,p.jsxs)("span",{children:["This is likely a NocoBase internals bug. Please open an issue at ",(0,p.jsx)("a",{href:"https://github.com/nocobase/nocobase/issues",target:"_blank",rel:"noopener noreferrer",children:"here"})]});return(0,p.jsx)("div",{style:{backgroundColor:"white"},children:(0,p.jsx)(eT.Ay,{style:{maxWidth:"60vw",margin:"auto"},status:"error",title:"Render failed",subTitle:o,extra:[(0,p.jsx)(f.Ay,{type:"primary",href:"https://github.com/nocobase/nocobase/issues",target:"_blank",children:"Feedback"},"feedback"),(0,p.jsx)(f.Ay,{loading:n,onClick:e,children:"Copy error info"},"copy"),r&&(0,p.jsx)(f.Ay,{danger:!0,onClick:r,children:"Try again"},"retry")].filter(Boolean),children:(0,p.jsx)(e$,{copyable:{text:t.stack},children:(0,p.jsx)(eO,{type:"danger",style:{whiteSpace:"pre-line",textAlign:"center"},children:t.stack})})})})}},eB=e=>{let{error:t,resetErrorBoundary:r,children:n}=e,[i,o]=(0,g.useState)(!1),l=(0,p.jsx)(e$,{style:{display:"flex",marginBottom:0},copyable:{text:t.message},children:(0,p.jsxs)(eO,{type:"danger",style:{whiteSpace:"nowrap",textOverflow:"ellipsis",overflow:"hidden",display:"inline-block",maxWidth:"200px"},children:["Error: ",t.message]})});return(0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)("div",{onMouseOver:()=>o(!0),children:n||l}),i&&(0,p.jsx)("div",{style:{position:"fixed",top:0,left:0,right:0,bottom:0,backgroundColor:"rgba(0, 0, 0, 0.5)",display:"flex",alignItems:"center",justifyContent:"center",zIndex:1e4},onClick:()=>o(!1),children:(0,p.jsxs)("div",{style:{backgroundColor:"#fff",borderRadius:"8px",padding:"24px",maxWidth:"60vw",maxHeight:"80vh",overflow:"auto",position:"relative"},onClick:e=>e.stopPropagation(),children:[(0,p.jsx)("button",{style:{position:"absolute",top:"8px",right:"12px",background:"none",border:"none",fontSize:"18px",cursor:"pointer",color:"#999"},onClick:()=>o(!1),children:"\xd7"}),(0,p.jsx)(eN,{error:t,resetErrorBoundary:r})]})})]})};eN.Modal=eB;var eL=r(47665),ez=r(92034),eq=r(49655),eW=r(53138),eV=r(18182),eU=r(40919),eK=r(76511),eH=r(29007),eJ=r(23183);let eY=e=>"uid"in e&&"modelClassName"in e&&!!e.uid&&!!e.modelClassName,eG=e=>eY(e)?(0,p.jsx)(eX,{...e}):(0,p.jsx)(eZ,{...e}),eZ=(0,h.PA)(e=>{let{model:t,children:r,enabled:n=!0,position:o="right",showDeleteButton:l=!0}=e,s=(0,i.lW)(t),{token:a}=ea.A.useToken(),u=(null==a?void 0:a.colorTextTertiary)||(null==a?void 0:a.colorTextDescription)||(null==a?void 0:a.colorTextSecondary),[c,d]=(0,g.useState)([]),h=(0,g.useCallback)(e=>{let[t,r]=e.split(":");return!!t&&!!r&&c.some(e=>{let{flow:n,steps:i}=e;return n.key===t&&i.some(e=>e.stepKey===r&&!!e.disabled)})},[c]),f=(0,g.useCallback)(e=>{let{key:r}=e;if("delete"===r)eV.A.confirm({title:s("Confirm delete"),icon:(0,p.jsx)(ez.A,{}),content:s("Are you sure you want to delete this item? This action cannot be undone."),okText:s("Confirm Delete"),okType:"danger",cancelText:s("Cancel"),zIndex:999999,onOk(){try{t.dispatchEvent("remove")}catch(e){console.error(s("Delete operation failed"),":",e),eV.A.error({title:s("Delete failed"),content:s("Delete operation failed, please check the console for details.")})}}});else{if(h(r))return;let[e,o]=r.split(":");try{var n;let r=t.getFlow(e),l=null==r||null==(n=r.steps)?void 0:n[o];if(!r||!l)return void console.error(`Flow ${e} or step ${o} not found`);let s=new eH.W5(t,e,"settings");(0,i.wx)(s,r.steps,t,e),s.defineProperty("currentStep",{value:l}),(0,eJ.openStepSettingsDialog)({model:t,flowKey:e,stepKey:o,ctx:s})}catch(e){console.log("配置弹窗已取消或出错:",e)}}},[h,t]);if(!t)return(0,p.jsx)(eU.A,{message:"提供的模型无效",type:"error"});if(!n||!r)return(0,p.jsx)(p.Fragment,{children:r});let m=(0,g.useCallback)(async()=>{try{let e=t.getFlows(),r=Array.from(e.values());return(await Promise.all(r.map(async e=>{let r=await Promise.all(Object.entries(e.steps).map(async r=>{let[n,o]=r,l=o;if(await (0,i._3)(t,e,l))return null;let s=await (0,i.XM)(t,e,l),a=l.uiSchema||{},u={};if(l.use){var c;let e=null==(c=t.getAction)?void 0:c.call(t,l.use);e&&e.uiSchema&&(u=e.uiSchema)}let d={...u};return(Object.entries(a).forEach(e=>{let[t,r]=e;d[t]?d[t]={...d[t],...r}:d[t]=r}),0===Object.keys(d).length)?null:{stepKey:n,step:l,uiSchema:d,title:l.title||n,disabled:s.disabled,disabledReason:s.reason}})).then(e=>e.filter(Boolean));return r.length>0?{flow:e,steps:r}:null}))).filter(Boolean)}catch(e){return console.warn("[FlowsContextMenu] 获取可配置flows失败:",e),[]}},[t]);if((0,g.useEffect)(()=>{let e=!0;return(async()=>{let t=await m();e&&d(t)})(),()=>{e=!1}},[m]),0===c.length&&!l)return(0,p.jsx)(p.Fragment,{children:r});let y=[];return c.length>0&&c.forEach(e=>{let{flow:t,steps:r}=e;y.push({key:`flow-group-${t.key}`,label:t.title||t.key,type:"group"}),r.forEach(e=>{y.push({key:`${t.key}:${e.stepKey}`,icon:(0,p.jsx)(eq.A,{}),label:e.disabled?(0,p.jsxs)("span",{style:{display:"inline-flex",alignItems:"center",gap:6},children:[e.title,(0,p.jsx)(eu.A,{title:e.disabledReason,placement:"right",destroyTooltipOnHide:!0,children:(0,p.jsx)(eh.A,{style:{color:u}})})]}):e.title,disabled:!!e.disabled})})}),l&&(c.length>0&&y.push({type:"divider"}),y.push({key:"delete",icon:(0,p.jsx)(eW.A,{}),label:"删除"})),(0,p.jsx)(p.Fragment,{children:(0,p.jsx)(eK.A,{menu:{items:y,onClick:f},trigger:["contextMenu"],placement:"left"===o?"bottomLeft":"bottomRight",children:(0,p.jsx)("div",{style:{display:"inline-block",width:"100%"},children:r})})})}),eX=(0,h.PA)(e=>{let{uid:t,modelClassName:r,children:n,enabled:i=!0,position:o="right",showDeleteButton:l=!0}=e,s=(0,u.fh)(t,r);return s?(0,p.jsx)(eZ,{model:s,enabled:i,position:o,showDeleteButton:l,children:n}):(0,p.jsx)(eU.A,{message:`未找到ID为 ${t} 的模型`,type:"error"})});var eQ=r(84626);let e0=e=>{if(!e)return!1;let t=e.children;for(let e=0;e<t.length;e++){let r=t[e];if("BUTTON"===r.tagName||"button"===r.getAttribute("role")||r.classList.contains("ant-btn"))return!0}return!1},e1=(e,t,r,n,i,o)=>{var l,s;let a=[...(null==n||null==(s=n.flowSettings)||null==(l=s.getToolbarItems)?void 0:l.call(s))||[],...o||[]];return a.sort((e,t)=>(e.sort||0)-(t.sort||0)).reverse(),a.filter(t=>!t.visible||t.visible(e)).map(n=>{let o=n.component;return"settings-menu"===n.key?(0,p.jsx)(o,{model:e,id:e.uid,showDeleteButton:t,showCopyUidButton:r,menuLevels:i},n.key):(0,p.jsx)(o,{model:e},n.key)})},e2=19,e5={inside:`
|
|
18
18
|
top: 2px;
|
|
19
19
|
`,above:`
|
|
20
20
|
top: 0px;
|
|
@@ -203,7 +203,7 @@ Please run: await ctx.importAsync("${r}") to ensure ctx.render uses a matching R
|
|
|
203
203
|
}
|
|
204
204
|
}
|
|
205
205
|
}
|
|
206
|
-
`},e4=e=>"uid"in e&&"modelClassName"in e&&!!e.uid&&!!e.modelClassName,e8=(0,h.PA)(e=>(0,g.$K)().flowSettingsEnabled?e4(e)?(0,p.jsx)(e7,{...e}):(0,p.jsx)(e9,{...e}):(0,p.jsx)(p.Fragment,{children:e.children})),e6=e=>{let t=(0,m.useRef)(!1),r=(0,m.useRef)(null),n=(0,m.useRef)({x:0,y:0}),{onDragStart:i,onDragEnd:o}=e,l=(0,m.useCallback)(i=>{if(!t.current||!r.current)return;let o=i.clientX-n.current.x,l=i.clientY-n.current.y,s=0;switch(r.current){case"left":s=-o,e.model.parent.emitter.emit("onResizeLeft",{resizeDistance:s,model:e.model});break;case"right":s=o,e.model.parent.emitter.emit("onResizeRight",{resizeDistance:s,model:e.model});break;case"bottom":s=l,e.model.parent.emitter.emit("onResizeBottom",{resizeDistance:s,model:e.model});break;case"corner":{let t=o,r=l;e.model.parent.emitter.emit("onResizeCorner",{widthDelta:t,heightDelta:r,model:e.model})}}},[e.model]),s=(0,m.useCallback)(()=>{t.current=!1,r.current=null,n.current={x:0,y:0},document.removeEventListener("mousemove",l),document.removeEventListener("mouseup",s),e.model.parent.emitter.emit("onResizeEnd"),null==o||o()},[l,e.model,o]),a=(0,m.useCallback)((e,o)=>{e.preventDefault(),e.stopPropagation(),t.current=!0,r.current=o,n.current={x:e.clientX,y:e.clientY},document.addEventListener("mousemove",l),document.addEventListener("mouseup",s),null==i||i()},[l,s,i]);return(0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)("div",{className:"resize-handle resize-handle-left",title:"拖拽调节宽度",onMouseDown:e=>a(e,"left")}),(0,p.jsx)("div",{className:"resize-handle resize-handle-right",title:"拖拽调节宽度",onMouseDown:e=>a(e,"right")})]})},e9=(0,h.PA)(e=>{let{model:t,children:r,enabled:n=!0,showDeleteButton:o=!0,showCopyUidButton:l=!0,containerStyle:s,className:a,showBackground:c=!0,showBorder:u=!0,showTitle:h=!1,showDragHandle:f=!1,settingsMenuLevel:g,extraToolbarItems:y,toolbarStyle:v,toolbarPosition:w="inside"}=e,[b,x]=(0,m.useState)(!1),[S,A]=(0,m.useState)(!1),M=(0,m.useRef)(null),_=(0,d.uf)(),[k,P]=(0,m.useState)({}),C=(0,m.useRef)(null),j=(0,m.useMemo)(()=>({...v,...k}),[k,v]);(0,m.useEffect)(()=>{M.current&&A(e0(M.current))},[r]),(0,m.useEffect)(()=>{if(!M.current)return;let e=new MutationObserver(()=>{M.current&&A(e0(M.current))});return e.observe(M.current,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["class","role"]}),()=>{e.disconnect()}},[]);let R=(0,m.useCallback)(e=>{let t=e.target.closest("[data-has-float-menu]");t&&t!==M.current?x(!0):x(!1)},[]);if(!t){let e=(0,i.lW)(t||{});return(0,p.jsx)(eW.A,{message:e("Invalid model provided"),type:"error"})}return n&&r?(0,p.jsxs)("div",{ref:M,className:`${e3({showBackground:c,showBorder:u,ctx:t.context,toolbarPosition:w,toolbarCount:te(_,y)})} ${b?"hide-parent-menu":""} ${S?"has-button-child":""} ${a||""}`,style:s,"data-has-float-menu":"true",onMouseMove:R,children:[r,(0,p.jsxs)("div",{ref:C,className:"nb-toolbar-container",style:j,children:[h&&(t.title||t.extraTitle)&&(0,p.jsxs)("div",{className:"nb-toolbar-container-title",children:[t.title&&(0,p.jsx)("span",{className:"title-tag",children:t.title}),t.extraTitle&&(0,p.jsx)("span",{className:"title-tag",children:t.extraTitle})]}),(0,p.jsx)("div",{className:"nb-toolbar-container-icons",onClick:e=>e.stopPropagation(),onMouseDown:e=>e.stopPropagation(),onMouseMove:e=>e.stopPropagation(),children:(0,p.jsx)(eQ.A,{size:3,align:"center",children:e1(t,o,l,_,g,y)})}),f&&(0,p.jsx)(e6,{model:t,onDragStart:()=>P({opacity:1}),onDragEnd:()=>P({})})]})]}):(0,p.jsx)(p.Fragment,{children:r})},{displayName:"FlowsFloatContextMenuWithModel"}),e7=(0,h.PA)(e=>{let{uid:t,modelClassName:r,children:n,enabled:i=!0,showDeleteButton:o=!0,showCopyUidButton:l=!0,containerStyle:s,className:a,showTitle:u=!1,settingsMenuLevel:h,extraToolbarItems:f,toolbarPosition:m}=e,g=(0,c.fh)(t,r),y=(0,d.uf)();return g?(0,p.jsx)(e9,{model:g,enabled:i,showDeleteButton:o,showCopyUidButton:l,containerStyle:s,className:a,showTitle:u,settingsMenuLevel:h,extraToolbarItems:f,toolbarPosition:m,children:n}):(0,p.jsx)(eW.A,{message:y.translate("Model with ID {{uid}} not found",{uid:t}),type:"error"})},{displayName:"FlowsFloatContextMenuWithModelById"});function te(e,t){var r,n;return[...(null==e||null==(n=e.flowSettings)||null==(r=n.getToolbarItems)?void 0:r.call(n))||[],...t||[]].length}let tt=(0,h.PA)(e=>{let{model:t,showFlowSettings:r,flowSettingsVariant:n,hideRemoveInSettings:o,showTitle:l,inputArgs:s,showErrorFallback:a,settingsMenuLevel:u,extraToolbarItems:d,fallback:h}=e,{loading:f,error:m}=(0,c.GC)(t,s,{throwOnError:!1,useCache:t.context.useCache});return((0,i.GZ)(t,m||null),f)?(0,p.jsx)(p.Fragment,{children:h}):(0,p.jsx)(c.Ps,{model:t,children:(0,p.jsx)(tr,{model:t,showFlowSettings:r,flowSettingsVariant:n,hideRemoveInSettings:o,showTitle:l,showErrorFallback:a,settingsMenuLevel:u,extraToolbarItems:d})})}),tr=(0,h.PA)(e=>{var t;let{model:r,showFlowSettings:n,flowSettingsVariant:o,hideRemoveInSettings:l,showTitle:s,showErrorFallback:a,settingsMenuLevel:c,extraToolbarItems:u}=e,d=e=>a?(0,p.jsx)(eL.tH,{FallbackComponent:eN,children:e}):e,h=()=>{let e=(0,i.yz)(r);if(e)throw e;let t=r.render();return"function"==typeof t?m.createElement(t):(0,p.jsx)(p.Fragment,{children:t})},f=null==r?void 0:r.use,g=(null==r||null==(t=r.constructor)?void 0:t.name)||r.uid,y="string"==typeof f?`${f}:${r.uid}`:`${g}:${r.uid}`;if(!n)return d((0,p.jsx)("div",{children:(0,p.jsx)(h,{})},y));switch(o){case"dropdown":return(0,p.jsx)(e8,{showTitle:s,model:r,showDeleteButton:!l,showBackground:_().isObject(n)?n.showBackground:void 0,showBorder:_().isObject(n)?n.showBorder:void 0,showDragHandle:_().isObject(n)?n.showDragHandle:void 0,settingsMenuLevel:c,extraToolbarItems:u,toolbarStyle:_().isObject(n)?n.style:void 0,toolbarPosition:_().isObject(n)?n.toolbarPosition:void 0,children:d((0,p.jsx)("div",{children:(0,p.jsx)(h,{})},y))});case"contextMenu":return(0,p.jsx)(eG,{model:r,showDeleteButton:!l,children:d((0,p.jsx)("div",{children:(0,p.jsx)(h,{})},y))});case"modal":return console.warn("FlowModelRenderer: modal variant is not implemented yet"),d((0,p.jsx)(h,{}));case"drawer":return console.warn("FlowModelRenderer: drawer variant is not implemented yet"),d((0,p.jsx)(h,{}));default:return console.warn(`FlowModelRenderer: Unknown flowSettingsVariant '${o}', falling back to dropdown`),(0,p.jsx)(e8,{showTitle:s,model:r,showDeleteButton:!l,showBackground:_().isObject(n)?n.showBackground:void 0,showBorder:_().isObject(n)?n.showBorder:void 0,showDragHandle:_().isObject(n)?n.showDragHandle:void 0,settingsMenuLevel:c,extraToolbarItems:u,toolbarStyle:_().isObject(n)?n.style:void 0,toolbarPosition:_().isObject(n)?n.toolbarPosition:void 0,children:d((0,p.jsx)("div",{children:(0,p.jsx)(h,{})},y))})}},{displayName:"FlowModelRendererCore"}),tn=(0,h.PA)(e=>{let{model:t,fallback:r=null,showFlowSettings:n=!1,flowSettingsVariant:i="dropdown",hideRemoveInSettings:o=!1,showTitle:l=!1,inputArgs:s,showErrorFallback:a=!0,settingsMenuLevel:u,extraToolbarItems:d,useCache:h}=e;if((0,m.useEffect)(()=>{(null==t?void 0:t.context)&&t.context.defineProperty("useCache",{value:"boolean"==typeof h?h:t.context.useCache})},[null==t?void 0:t.context,h]),!t||"function"!=typeof t.render)return console.warn("FlowModelRenderer: Invalid model or render method not found.",t),null;let f=(0,p.jsx)(tt,{model:t,showFlowSettings:n,flowSettingsVariant:i,hideRemoveInSettings:o,showTitle:l,inputArgs:s,showErrorFallback:a,settingsMenuLevel:u,extraToolbarItems:d,fallback:r});return a?(0,p.jsx)(c.Ps,{model:t,children:(0,p.jsx)(eL.tH,{FallbackComponent:eN,children:f})}):f}),ti=m.memo(tn);ti.displayName="MemoFlowModelRenderer";var to=r(31102),tl=r(32731);let ts=e=>"uid"in e&&"modelClassName"in e&&!!e.uid&&!!e.modelClassName,ta=e=>{if(ts(e)){let{uid:t,modelClassName:r,...n}=e;return(0,p.jsx)(tu,{uid:t,modelClassName:r,...n})}{let{model:t,...r}=e;return(0,p.jsx)(tc,{model:t,...r})}},tc=(0,h.PA)(e=>{let{model:t,text:r="流程配置",icon:n=(0,p.jsx)(eU.A,{}),size:o="middle",type:l="default",disabled:s=!1,showDropdownIcon:a=!0,onClick:c,style:u,className:d}=e,h=()=>{null==c||c()},g=(0,m.useCallback)(e=>{let{key:r}=e,[n,i]=r.split(":");try{t.openFlowSettings({flowKey:n,stepKey:i})}catch(e){console.log("配置弹窗已取消或出错:",e)}},[t]);if(!t)return(0,p.jsx)(eW.A,{message:"提供的模型无效",type:"error"});let y=(0,m.useCallback)(async()=>{try{let e=t.getFlows(),r=Array.from(e.values());return(await Promise.all(r.map(async e=>{let r=await Promise.all(Object.entries(e.steps).map(async r=>{let[n,o]=r,l=o;if(await (0,i._3)(t,e,l))return null;let s=l.uiSchema||{},a={};if(l.use){var c;let e=null==(c=t.getAction)?void 0:c.call(t,l.use);e&&e.uiSchema&&(a=e.uiSchema)}let u={...a};return(Object.entries(s).forEach(e=>{let[t,r]=e;u[t]?u[t]={...u[t],...r}:u[t]=r}),0===Object.keys(u).length)?null:{stepKey:n,step:l,uiSchema:u,title:l.title||n}})).then(e=>e.filter(Boolean));return r.length>0?{flow:e,steps:r}:null}))).filter(Boolean)}catch(e){return console.warn("[FlowsDropdownButton] 获取可配置flows失败:",e),[]}},[t]),[v,w]=(0,m.useState)([]);(0,m.useEffect)(()=>{let e=!0;return(async()=>{let t=await y();e&&w(t)})(),()=>{e=!1}},[y]);let b=(()=>{let e=[];return v.forEach(t=>{let{flow:r,steps:n}=t;e.push({key:`flow-group-${r.key}`,label:r.title||r.key,type:"group"}),n.forEach(t=>{e.push({key:`${r.key}:${t.stepKey}`,icon:(0,p.jsx)(eU.A,{}),label:t.title})})}),e})(),x=(0,p.jsx)(f.Ay,{type:l,size:o,disabled:s,icon:n,onClick:h,style:u,className:d,children:(0,p.jsxs)(eQ.A,{children:[r,a&&(0,p.jsx)(tl.A,{})]})});return 0===v.length?x:(0,p.jsx)(p.Fragment,{children:(0,p.jsx)(eH.A,{menu:{items:b,onClick:g},trigger:["click"],placement:"bottomRight",children:x})})}),tu=(0,h.PA)(e=>{let{uid:t,modelClassName:r,text:n="流程配置",icon:i=(0,p.jsx)(eU.A,{}),size:o="middle",type:l="default",disabled:s=!1,showDropdownIcon:a=!0,onClick:u,style:d,className:h}=e,f=(0,c.fh)(t,r);return f?(0,p.jsx)(tc,{model:f,text:n,icon:i,size:o,type:l,disabled:s,showDropdownIcon:a,onClick:u,style:d,className:h}):(0,p.jsx)(eW.A,{message:`未找到ID为 ${t} 的模型`,type:"error"})});var td=r(89013),th=r(36492),tp=r(63718),tf=r(94313);let{Item:tm}=td.A,tg=e=>"uid"in e&&"modelClassName"in e&&!!e.uid&&!!e.modelClassName,ty=e=>tg(e)?(0,p.jsx)(tw,{...e}):(0,p.jsx)(tv,{...e}),tv=(0,h.PA)(e=>{let{model:t,flowKey:r}=e;return t?(0,p.jsx)(tb,{model:t,flowKey:r}):(0,p.jsx)(eW.A,{message:"提供的模型无效",type:"error"})}),tw=(0,h.PA)(e=>{let{uid:t,flowKey:r,modelClassName:n}=e,i=(0,c.fh)(t,n);return i?(0,p.jsx)(tb,{model:i,flowKey:r}):(0,p.jsx)(eW.A,{message:`未找到ID为 ${t} 的模型`,type:"error"})}),tb=(0,h.PA)(e=>{let{model:t,flowKey:r}=e,[n]=td.A.useForm(),o=t.getFlows().get(r),[l,s]=(0,m.useState)([]);(0,m.useEffect)(()=>{let e=!0;return(async()=>{let r=[];for(let[e,s]of Object.entries((null==o?void 0:o.steps)||{})){if(await (0,i._3)(t,o,s))continue;let a=s.uiSchema||{},c={};if(s.use){var n,l;let e=null==(l=t.flowEngine)||null==(n=l.getAction)?void 0:n.call(l,s.use);e&&e.uiSchema&&(c=e.uiSchema)}let u={...c};Object.entries(a).forEach(e=>{let[t,r]=e;u[t]?u[t]={...u[t],...r}:u[t]=r}),0!==Object.keys(u).length&&r.push({stepKey:e,step:s,uiSchema:u})}e&&s(r)})(),()=>{e=!1}},[t,o]);let a=(0,m.useCallback)(async()=>{let e={};for(let{stepKey:n,step:o}of l){let l=t.getStepParams(r,n)||{},s=new eK.W5(t,r,"settings"),a=t.getFlow(r);(0,i.wx)(s,(null==a?void 0:a.steps)||{},t,r);let c={...await (0,i.gG)(o.defaultParams,s),...l};Object.keys(c).length>0&&(e[n]=c)}return e},[t,r,l]);(0,m.useEffect)(()=>{(async()=>{try{let e=await a();n.setFieldsValue(e)}catch(e){console.error("Error loading default params:",e)}})()},[r,n,a]);let c=(0,m.useCallback)((e,n)=>{Object.entries(n).forEach(e=>{let[n,i]=e;i&&"object"==typeof i&&t.setStepParams(r,n,i)})},[t,r]);if(!o)return(0,p.jsx)(eW.A,{message:`未找到Key为 ${r} 的流程`,type:"error"});if(0===l.length)return(0,p.jsx)(eW.A,{message:"此流程没有可配置的参数",type:"info"});let u=()=>l.map(e=>{let{stepKey:t,uiSchema:r}=e;return Object.entries(r).map(e=>{let[r,n]=e,i=`${t}.${r}`,o=()=>{var e,t,r,i;switch(n["x-component"]){case"Select":return(0,p.jsx)(th.A,{placeholder:(null==(e=n["x-component-props"])?void 0:e.placeholder)||`请选择${n.title}`,options:n.enum||[],...n["x-component-props"]||{}});case"InputNumber":return(0,p.jsx)(tp.A,{placeholder:(null==(t=n["x-component-props"])?void 0:t.placeholder)||`请输入${n.title}`,...n["x-component-props"]||{}});case"Switch":return(0,p.jsx)(tf.A,{...n["x-component-props"]||{}});case"Input.TextArea":return(0,p.jsx)(eu.A.TextArea,{placeholder:(null==(r=n["x-component-props"])?void 0:r.placeholder)||`请输入${n.title}`,...n["x-component-props"]||{}});default:return(0,p.jsx)(eu.A,{placeholder:(null==(i=n["x-component-props"])?void 0:i.placeholder)||`请输入${n.title}`,...n["x-component-props"]||{}})}};return(0,p.jsx)(td.A.Item,{name:[t,r],label:n.title||r,rules:n.required?[{required:!0,message:`请输入${n.title||r}`}]:[],children:o()},i)})});return(0,p.jsx)(td.A,{form:n,layout:"vertical",onValuesChange:c,children:u()})});var tx=r(47674),tS=r(25303),tA=r(16629);let{Panel:tM}=tx.A,t_=(0,h.PA)(e=>{let{model:t,expandAll:r=!1}=e,n=t.getFlows(),[o,l]=(0,m.useState)([]);(0,m.useEffect)(()=>{let e=!0;return(async()=>{let r=[];for(let e of Array.from(n.values()))(await Promise.all(Object.entries(e.steps).map(async r=>{let[n,o]=r;if(await (0,i._3)(t,e,o))return null;let l=o.uiSchema||{},s={};if(o.use){var a,c;let e=null==(c=t.flowEngine)||null==(a=c.getAction)?void 0:a.call(c,o.use);e&&e.uiSchema&&(s=e.uiSchema)}let u={...s};return(Object.entries(l).forEach(e=>{let[t,r]=e;u[t]?u[t]={...u[t],...r}:u[t]=r}),0===Object.keys(u).length)?null:{stepKey:n,step:o,uiSchema:u}})).then(e=>e.filter(Boolean))).length>0&&r.push(e);e&&l(r)})(),()=>{e=!1}},[t,n]);let s=o.map(e=>e.key);if(0===s.length)return(0,p.jsx)(tS.A,{description:"没有可用的流程"});let a=r?s:void 0;return(0,p.jsx)(tA.A,{title:"Flows设置",children:(0,p.jsx)(tx.A,{defaultActiveKey:a,children:s.map(e=>{var r;return(0,p.jsx)(tM,{header:(null==(r=n.get(e))?void 0:r.title)||e,children:(0,p.jsx)(ty,{model:t,flowKey:e})},e)})})})}),tk=e=>"uid"in e&&"modelClassName"in e&&!!e.uid&&!!e.modelClassName,tP=e=>tk(e)?(0,p.jsx)(tj,{...e}):(0,p.jsx)(tC,{...e}),tC=(0,h.PA)(e=>{let{model:t,expandAll:r=!1,children:n}=e;if(!t)return(0,p.jsx)(eW.A,{message:"提供的模型无效",type:"error"});let i=(0,p.jsx)(t_,{model:t,expandAll:r});return n?(0,p.jsxs)("div",{children:[i,n]}):i}),tj=(0,h.PA)(e=>{let{uid:t,modelClassName:r,expandAll:n=!1,children:i}=e,o=(0,c.fh)(t,r);if(!o)return(0,p.jsx)(eW.A,{message:`未找到ID为 ${t} 的模型`,type:"error"});let l=(0,p.jsx)(t_,{model:o,expandAll:n});return i?(0,p.jsxs)("div",{children:[l,i]}):l}),tR=async e=>{let{drawerWidth:t,drawerTitle:r,cleanup:n,...i}=e;return(0,eJ.openStepSettingsDialog)({...i,mode:"drawer",dialogWidth:t,dialogTitle:r,cleanup:n})};var tE=r(95243),tF=r(87959);let tT=async e=>{var t;let r,n,{model:o,flowKey:l,stepKey:s,width:a=600,title:c}=e,u=(0,i.lW)(o),d=o.getFlow(l),h=null==d||null==(t=d.steps)?void 0:t[s];if(!d)throw tF.Ay.error(u("Flow with key {{flowKey}} not found",{flowKey:l})),Error(u("Flow with key {{flowKey}} not found",{flowKey:l}));if(!h)throw tF.Ay.error(u("Step with key {{stepKey}} not found",{stepKey:s})),Error(u("Step with key {{stepKey}} not found",{stepKey:s}));let p=new eK.W5(o,l,"settings");(0,i.wx)(p,d.steps,o,l),p.defineProperty("currentStep",{value:h});let f=await (0,i.ME)(h.uiMode,p),m={};if("string"==typeof f)r=f;else if("object"==typeof f){r=f.type||"dialog",m=(0,tE.model)(f.props||{});let e=(0,tE.autorun)(()=>{(0,i.ME)(h.uiMode,p).then(e=>{"object"==typeof e&&Object.assign(m,e.props||{})}).catch(e=>{console.warn("Error resolving uiMode:",e)})});n=()=>{e()}}else r="dialog";return"drawer"===r?tR({model:o,flowKey:l,stepKey:s,drawerWidth:a,drawerTitle:c,ctx:p,uiModeProps:m,cleanup:n}):(0,eJ.openStepSettingsDialog)({model:o,flowKey:l,stepKey:s,dialogWidth:a,dialogTitle:c,ctx:p,uiModeProps:m,cleanup:n})};var tO=r(96332),tI=r(21734);let t$=()=>(0,m.useMemo)(()=>Math.min(.6*window.innerHeight,400),[]),tD=(e,t,r,n,i)=>{let[o,l]=(0,m.useState)({}),[s,a]=(0,m.useState)(new Set),c=(0,m.useRef)(null),u=(0,m.useCallback)(async function(e,t){let r=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(!s.has(e)&&(r||!o[e])){a(t=>new Set(t).add(e));try{let r=t(),n=r instanceof Promise?await r:r;l(t=>({...t,[e]:n}))}catch(t){console.error(`Failed to load children for ${e}`,t)}finally{a(t=>{let r=new Set(t);return r.delete(e),r})}}},[o,s]),d=(e,t)=>{let r=[],n=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];for(let i of e){let e=tU(t,i.key);"function"==typeof i.children&&r.push([e,i.children]),Array.isArray(i.children)&&n(i.children,[...t,i.key])}};for(let r of(n(e,[]),Object.keys(t)))n(t[r]||[],r?r.split("/"):[]);return r};return(0,m.useEffect)(()=>{if(!e||c.current===r)return;c.current=r;let l=new Map;for(let[e,r]of d(t,o))l.set(e,r);let s=n?Array.from(n):[],a=[],h=Array.from(new Set([...i||[]].filter(Boolean)));if(h.length>0)for(let e of h){let t=e.split("/").filter(Boolean);for(let e=1;e<=t.length;e++){let r=t.slice(0,e).join("/");!a.includes(r)&&o[r]&&a.push(r)}}else a=Object.keys(o).filter(e=>s.some(t=>e===t||e.startsWith(t+"/")));0===a.length&&(a=Object.keys(o).filter(e=>-1===e.indexOf("/")));let p=new Set;for(let e of a){let t=l.get(e);if(t)try{p.has(e)||(p.add(e),u(e,t,!0))}catch(e){}}},[e,r,t,u,o,n,i]),{loadedChildren:o,loadingKeys:s,handleLoadChildren:u}},tN=()=>{let e=(0,m.useRef)(!1),[t,r]=(0,m.useState)(!1),n=(0,m.useRef)(null),i=(0,m.useCallback)(()=>{e.current=!0,r(!0),n.current&&clearTimeout(n.current),n.current=setTimeout(()=>{e.current=!1,r(!1),n.current=null},250)},[]);return(0,m.useEffect)(()=>()=>n.current&&clearTimeout(n.current),[]),{requestKeepOpen:i,shouldPreventClose:(0,m.useCallback)(()=>e.current||t,[t])}},tB=()=>{let[e,t]=(0,m.useState)({}),[r,n]=(0,m.useState)(!1),i=(0,m.useRef)(null),o=(e,r)=>{n(!0),t(t=>({...t,[e]:r})),i.current&&clearTimeout(i.current),i.current=setTimeout(()=>n(!1),300)};return(0,m.useEffect)(()=>()=>{i.current&&clearTimeout(i.current)},[]),{searchValues:e,isSearching:r,updateSearchValue:o}},tL=(e,t)=>{(0,m.useEffect)(()=>{if(!e||t<=0)return;let r=new MutationObserver(e=>{e.forEach(e=>{e.addedNodes.forEach(e=>{if(e.nodeType===Node.ELEMENT_NODE){var r;let n=e;(null==(r=n.classList)?void 0:r.contains("ant-dropdown-menu-submenu-popup"))&&requestAnimationFrame(()=>{let e=n.querySelector(".ant-dropdown-menu");if(e){let r=e;r.style.maxHeight=`${t}px`,r.style.overflowY="auto"}})}})})});r.observe(document.body,{childList:!0,subtree:!1});let n=setInterval(()=>{document.querySelectorAll(".ant-dropdown-menu-submenu-popup .ant-dropdown-menu").forEach(e=>{let r=e,n=r.getBoundingClientRect();n.width>0&&n.height>0&&(r.style.maxHeight=`${t}px`,r.style.overflowY="auto")})},200);return()=>{r.disconnect(),clearInterval(n)}},[e,t])},tq=e=>{let t=(0,m.useRef)(null),{visible:r,...n}=e;return(0,m.useEffect)(()=>{if(t.current&&r){var e,n,i;let r=t.current.input||(null==(e=t.current.resizableTextArea)?void 0:e.textArea)||t.current;try{null==r||null==(n=r.focus)||n.call(r,{preventScroll:!0})}catch(e){null==r||null==(i=r.focus)||i.call(r)}}},[r]),(0,p.jsx)(eu.A,{ref:t,...n})},tU=(e,t)=>[...e,t].join("/"),tz=(e,t,r,n,i,o)=>({key:`${t}-search`,type:"group",label:(0,p.jsx)("div",{children:(0,p.jsx)(tq,{visible:n,variant:"borderless",allowClear:!0,placeholder:i(e.searchPlaceholder||"Search"),value:r,onChange:e=>{e.stopPropagation(),o(t,e.target.value)},onClick:e=>e.stopPropagation(),onMouseDown:e=>{e.stopPropagation()},size:"small",style:{width:"100%",paddingLeft:0,paddingRight:0}})})}),tV=(e,t)=>({key:`${e}-empty`,label:(0,p.jsx)("div",{style:{padding:"16px",textAlign:"center"},children:(0,p.jsx)(tS.A,{image:tS.A.PRESENTED_IMAGE_SIMPLE,description:t("No data"),style:{margin:0}})}),disabled:!0}),tW=350,tH=new Map,tK=e=>{let{menu:t,...r}=e,n=(0,d.uf)(),[i,o]=(0,m.useState)(!1),[l,s]=(0,m.useState)(new Set),[a,c]=(0,m.useState)([]),[u,h]=(0,m.useState)(!1),f=t$(),g=n.translate.bind(n),{items:y,keepDropdownOpen:v,persistKey:w,stateVersion:b,refreshKeys:x,...S}=t,{loadedChildren:A,loadingKeys:M,handleLoadChildren:_}=tD(i,a,b,l,x),{searchValues:k,isSearching:P,updateSearchValue:C}=tB(),{requestKeepOpen:j,shouldPreventClose:R}=tN();function E(e,t,r,n,i,o){let l=r,s=k[l]||"",a=o(s?function e(t){let r=s.toLowerCase(),n=e=>e?"string"==typeof e?e:String(e):"";return t.map(t=>{let i=n(t.label).toLowerCase().includes(r)||t.key&&String(t.key).toLowerCase().includes(r);if("group"===t.type&&Array.isArray(t.children)){let r=e(t.children);return i||r.length>0?{...t,children:r}:null}return i?t:null}).filter(Boolean)}(e):e,[...n,t.key]),c=tz(t,l,s,i,g,C),u={key:`${r}-search-divider`,type:"divider"};return s&&0===a.length?[c,u,tV(r,g)]:[c,u,...a]}tL(i,f),(0,m.useEffect)(()=>{!w||(tH.get(w)||0)>Date.now()&&o(!0)},[w]),(0,m.useEffect)(()=>()=>{if(w&&i){let e=Date.now()+tW;tH.set(w,e),setTimeout(()=>{(tH.get(w)||0)<=Date.now()&&tH.delete(w)},tW+100)}},[w,i]),(0,m.useEffect)(()=>{(async()=>{let e;if("function"==typeof y){h(!0);try{let t=y();e=t instanceof Promise?await t:t}finally{h(!1)}}else e=y;c(e)})()},[b,y]);let F=function(e){let r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return e.map(e=>{let n,o=tU(r,e.key),a="group"===e.type,c="function"==typeof e.children,u=M.has(o),d=A[o];if(!a&&i&&l.has(o)&&c&&!d&&!u&&_(o,e.children),c?n=d??[]:Array.isArray(e.children)&&(n=e.children),c&&!d&&(n=[{key:`${o}-loading`,label:(0,p.jsx)(tI.A,{size:"small"}),disabled:!0}]),a){c&&!d&&i&&_(o,e.children);let t=n?F(n,[...r,e.key]):[];return e.searchable&&n&&(t=E(n,e,o,r,i,F)),{type:"group",key:o,label:"string"==typeof e.label?g(e.label):e.label,children:t}}return"divider"===e.type?{type:"divider",key:o}:e.searchable&&n?{key:e.key,label:"string"==typeof e.label?g(e.label):e.label,onClick:e=>{},onMouseEnter:()=>{s(e=>{if(e.has(o))return e;let t=new Set(e);return t.add(o),t})},children:E(n,e,o,r,i,F)}:{key:o,label:"string"==typeof e.label?g(e.label):e.label,onClick:r=>{var i;if(n)return;let o=e.keepDropdownOpen??v??!1;o&&j();let l={...r,item:r.item||e,originalItem:e,keepDropdownOpen:o};null==(i=t.onClick)||i.call(t,l)},onMouseEnter:()=>{s(e=>{if(e.has(o))return e;let t=new Set(e);return t.add(o),t})},children:n&&n.length>0?F(n,[...r,e.key]):n&&0===n.length?[tV(o,g)]:void 0}})},T=(0,m.useMemo)(()=>(0,ep.AH)`
|
|
206
|
+
`},e4=e=>"uid"in e&&"modelClassName"in e&&!!e.uid&&!!e.modelClassName,e8=(0,h.PA)(e=>(0,m.$K)().flowSettingsEnabled?e4(e)?(0,p.jsx)(e7,{...e}):(0,p.jsx)(e9,{...e}):(0,p.jsx)(p.Fragment,{children:e.children})),e6=e=>{let t=(0,g.useRef)(!1),r=(0,g.useRef)(null),n=(0,g.useRef)({x:0,y:0}),{onDragStart:i,onDragEnd:o}=e,l=(0,g.useCallback)(i=>{if(!t.current||!r.current)return;let o=i.clientX-n.current.x,l=i.clientY-n.current.y,s=0;switch(r.current){case"left":s=-o,e.model.parent.emitter.emit("onResizeLeft",{resizeDistance:s,model:e.model});break;case"right":s=o,e.model.parent.emitter.emit("onResizeRight",{resizeDistance:s,model:e.model});break;case"bottom":s=l,e.model.parent.emitter.emit("onResizeBottom",{resizeDistance:s,model:e.model});break;case"corner":{let t=o,r=l;e.model.parent.emitter.emit("onResizeCorner",{widthDelta:t,heightDelta:r,model:e.model})}}},[e.model]),s=(0,g.useCallback)(()=>{t.current=!1,r.current=null,n.current={x:0,y:0},document.removeEventListener("mousemove",l),document.removeEventListener("mouseup",s),e.model.parent.emitter.emit("onResizeEnd"),null==o||o()},[l,e.model,o]),a=(0,g.useCallback)((e,o)=>{e.preventDefault(),e.stopPropagation(),t.current=!0,r.current=o,n.current={x:e.clientX,y:e.clientY},document.addEventListener("mousemove",l),document.addEventListener("mouseup",s),null==i||i()},[l,s,i]);return(0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)("div",{className:"resize-handle resize-handle-left",title:"拖拽调节宽度",onMouseDown:e=>a(e,"left")}),(0,p.jsx)("div",{className:"resize-handle resize-handle-right",title:"拖拽调节宽度",onMouseDown:e=>a(e,"right")})]})},e9=(0,h.PA)(e=>{let{model:t,children:r,enabled:n=!0,showDeleteButton:o=!0,showCopyUidButton:l=!0,containerStyle:s,className:a,showBackground:u=!0,showBorder:c=!0,showTitle:h=!1,showDragHandle:f=!1,settingsMenuLevel:m,extraToolbarItems:y,toolbarStyle:v,toolbarPosition:w="inside"}=e,[b,x]=(0,g.useState)(!1),[S,_]=(0,g.useState)(!1),A=(0,g.useRef)(null),k=(0,d.uf)(),[M,E]=(0,g.useState)({}),j=(0,g.useRef)(null),R=(0,g.useMemo)(()=>({...v,...M}),[M,v]);(0,g.useEffect)(()=>{A.current&&_(e0(A.current))},[r]),(0,g.useEffect)(()=>{if(!A.current)return;let e=new MutationObserver(()=>{A.current&&_(e0(A.current))});return e.observe(A.current,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["class","role"]}),()=>{e.disconnect()}},[]);let P=(0,g.useCallback)(e=>{let t=e.target.closest("[data-has-float-menu]");t&&t!==A.current?x(!0):x(!1)},[]);if(!t){let e=(0,i.lW)(t||{});return(0,p.jsx)(eU.A,{message:e("Invalid model provided"),type:"error"})}return n&&r?(0,p.jsxs)("div",{ref:A,className:`${e3({showBackground:u,showBorder:c,ctx:t.context,toolbarPosition:w,toolbarCount:te(k,y)})} ${b?"hide-parent-menu":""} ${S?"has-button-child":""} ${a||""}`,style:s,"data-has-float-menu":"true",onMouseMove:P,children:[r,(0,p.jsxs)("div",{ref:j,className:"nb-toolbar-container",style:R,children:[h&&(t.title||t.extraTitle)&&(0,p.jsxs)("div",{className:"nb-toolbar-container-title",children:[t.title&&(0,p.jsx)("span",{className:"title-tag",children:t.title}),t.extraTitle&&(0,p.jsx)("span",{className:"title-tag",children:t.extraTitle})]}),(0,p.jsx)("div",{className:"nb-toolbar-container-icons",onClick:e=>e.stopPropagation(),onMouseDown:e=>e.stopPropagation(),onMouseMove:e=>e.stopPropagation(),children:(0,p.jsx)(eQ.A,{size:3,align:"center",children:e1(t,o,l,k,m,y)})}),f&&(0,p.jsx)(e6,{model:t,onDragStart:()=>E({opacity:1}),onDragEnd:()=>E({})})]})]}):(0,p.jsx)(p.Fragment,{children:r})},{displayName:"FlowsFloatContextMenuWithModel"}),e7=(0,h.PA)(e=>{let{uid:t,modelClassName:r,children:n,enabled:i=!0,showDeleteButton:o=!0,showCopyUidButton:l=!0,containerStyle:s,className:a,showTitle:c=!1,settingsMenuLevel:h,extraToolbarItems:f,toolbarPosition:g}=e,m=(0,u.fh)(t,r),y=(0,d.uf)();return m?(0,p.jsx)(e9,{model:m,enabled:i,showDeleteButton:o,showCopyUidButton:l,containerStyle:s,className:a,showTitle:c,settingsMenuLevel:h,extraToolbarItems:f,toolbarPosition:g,children:n}):(0,p.jsx)(eU.A,{message:y.translate("Model with ID {{uid}} not found",{uid:t}),type:"error"})},{displayName:"FlowsFloatContextMenuWithModelById"});function te(e,t){var r,n;return[...(null==e||null==(n=e.flowSettings)||null==(r=n.getToolbarItems)?void 0:r.call(n))||[],...t||[]].length}let tt=(0,h.PA)(e=>{let{model:t,showFlowSettings:r,flowSettingsVariant:n,hideRemoveInSettings:o,showTitle:l,inputArgs:s,showErrorFallback:a,settingsMenuLevel:c,extraToolbarItems:d,fallback:h}=e,{loading:f,error:g}=(0,u.GC)(t,s,{throwOnError:!1,useCache:t.context.useCache});return((0,i.GZ)(t,g||null),f)?(0,p.jsx)(p.Fragment,{children:h}):(0,p.jsx)(u.Ps,{model:t,children:(0,p.jsx)(tr,{model:t,showFlowSettings:r,flowSettingsVariant:n,hideRemoveInSettings:o,showTitle:l,showErrorFallback:a,settingsMenuLevel:c,extraToolbarItems:d})})}),tr=(0,h.PA)(e=>{var t;let{model:r,showFlowSettings:n,flowSettingsVariant:o,hideRemoveInSettings:l,showTitle:s,showErrorFallback:a,settingsMenuLevel:u,extraToolbarItems:c}=e,d=e=>a?(0,p.jsx)(eL.tH,{FallbackComponent:eN,children:e}):e,h=()=>{let e=(0,i.yz)(r);if(e)throw e;let t=r.render();return"function"==typeof t?g.createElement(t):(0,p.jsx)(p.Fragment,{children:t})},f=null==r?void 0:r.use,m=(null==r||null==(t=r.constructor)?void 0:t.name)||r.uid,y="string"==typeof f?`${f}:${r.uid}`:`${m}:${r.uid}`;if(!n)return d((0,p.jsx)("div",{children:(0,p.jsx)(h,{})},y));switch(o){case"dropdown":return(0,p.jsx)(e8,{showTitle:s,model:r,showDeleteButton:!l,showBackground:k().isObject(n)?n.showBackground:void 0,showBorder:k().isObject(n)?n.showBorder:void 0,showDragHandle:k().isObject(n)?n.showDragHandle:void 0,settingsMenuLevel:u,extraToolbarItems:c,toolbarStyle:k().isObject(n)?n.style:void 0,toolbarPosition:k().isObject(n)?n.toolbarPosition:void 0,children:d((0,p.jsx)("div",{children:(0,p.jsx)(h,{})},y))});case"contextMenu":return(0,p.jsx)(eG,{model:r,showDeleteButton:!l,children:d((0,p.jsx)("div",{children:(0,p.jsx)(h,{})},y))});case"modal":return console.warn("FlowModelRenderer: modal variant is not implemented yet"),d((0,p.jsx)(h,{}));case"drawer":return console.warn("FlowModelRenderer: drawer variant is not implemented yet"),d((0,p.jsx)(h,{}));default:return console.warn(`FlowModelRenderer: Unknown flowSettingsVariant '${o}', falling back to dropdown`),(0,p.jsx)(e8,{showTitle:s,model:r,showDeleteButton:!l,showBackground:k().isObject(n)?n.showBackground:void 0,showBorder:k().isObject(n)?n.showBorder:void 0,showDragHandle:k().isObject(n)?n.showDragHandle:void 0,settingsMenuLevel:u,extraToolbarItems:c,toolbarStyle:k().isObject(n)?n.style:void 0,toolbarPosition:k().isObject(n)?n.toolbarPosition:void 0,children:d((0,p.jsx)("div",{children:(0,p.jsx)(h,{})},y))})}},{displayName:"FlowModelRendererCore"}),tn=(0,h.PA)(e=>{let{model:t,fallback:r=null,showFlowSettings:n=!1,flowSettingsVariant:i="dropdown",hideRemoveInSettings:o=!1,showTitle:l=!1,inputArgs:s,showErrorFallback:a=!0,settingsMenuLevel:c,extraToolbarItems:d,useCache:h}=e;if((0,g.useEffect)(()=>{(null==t?void 0:t.context)&&t.context.defineProperty("useCache",{value:"boolean"==typeof h?h:t.context.useCache})},[null==t?void 0:t.context,h]),!t||"function"!=typeof t.render)return console.warn("FlowModelRenderer: Invalid model or render method not found.",t),null;let f=(0,p.jsx)(tt,{model:t,showFlowSettings:n,flowSettingsVariant:i,hideRemoveInSettings:o,showTitle:l,inputArgs:s,showErrorFallback:a,settingsMenuLevel:c,extraToolbarItems:d,fallback:r});return a?(0,p.jsx)(u.Ps,{model:t,children:(0,p.jsx)(eL.tH,{FallbackComponent:eN,children:f})}):f}),ti=g.memo(tn);ti.displayName="MemoFlowModelRenderer";var to=r(31102),tl=r(32731);let ts=e=>"uid"in e&&"modelClassName"in e&&!!e.uid&&!!e.modelClassName,ta=e=>{if(ts(e)){let{uid:t,modelClassName:r,...n}=e;return(0,p.jsx)(tc,{uid:t,modelClassName:r,...n})}{let{model:t,...r}=e;return(0,p.jsx)(tu,{model:t,...r})}},tu=(0,h.PA)(e=>{let{model:t,text:r="流程配置",icon:n=(0,p.jsx)(eq.A,{}),size:o="middle",type:l="default",disabled:s=!1,showDropdownIcon:a=!0,onClick:u,style:c,className:d}=e,h=()=>{null==u||u()},m=(0,g.useCallback)(e=>{let{key:r}=e,[n,i]=r.split(":");try{t.openFlowSettings({flowKey:n,stepKey:i})}catch(e){console.log("配置弹窗已取消或出错:",e)}},[t]);if(!t)return(0,p.jsx)(eU.A,{message:"提供的模型无效",type:"error"});let y=(0,g.useCallback)(async()=>{try{let e=t.getFlows(),r=Array.from(e.values());return(await Promise.all(r.map(async e=>{let r=await Promise.all(Object.entries(e.steps).map(async r=>{let[n,o]=r,l=o;if(await (0,i._3)(t,e,l))return null;let s=l.uiSchema||{},a={};if(l.use){var u;let e=null==(u=t.getAction)?void 0:u.call(t,l.use);e&&e.uiSchema&&(a=e.uiSchema)}let c={...a};return(Object.entries(s).forEach(e=>{let[t,r]=e;c[t]?c[t]={...c[t],...r}:c[t]=r}),0===Object.keys(c).length)?null:{stepKey:n,step:l,uiSchema:c,title:l.title||n}})).then(e=>e.filter(Boolean));return r.length>0?{flow:e,steps:r}:null}))).filter(Boolean)}catch(e){return console.warn("[FlowsDropdownButton] 获取可配置flows失败:",e),[]}},[t]),[v,w]=(0,g.useState)([]);(0,g.useEffect)(()=>{let e=!0;return(async()=>{let t=await y();e&&w(t)})(),()=>{e=!1}},[y]);let b=(()=>{let e=[];return v.forEach(t=>{let{flow:r,steps:n}=t;e.push({key:`flow-group-${r.key}`,label:r.title||r.key,type:"group"}),n.forEach(t=>{e.push({key:`${r.key}:${t.stepKey}`,icon:(0,p.jsx)(eq.A,{}),label:t.title})})}),e})(),x=(0,p.jsx)(f.Ay,{type:l,size:o,disabled:s,icon:n,onClick:h,style:c,className:d,children:(0,p.jsxs)(eQ.A,{children:[r,a&&(0,p.jsx)(tl.A,{})]})});return 0===v.length?x:(0,p.jsx)(p.Fragment,{children:(0,p.jsx)(eK.A,{menu:{items:b,onClick:m},trigger:["click"],placement:"bottomRight",children:x})})}),tc=(0,h.PA)(e=>{let{uid:t,modelClassName:r,text:n="流程配置",icon:i=(0,p.jsx)(eq.A,{}),size:o="middle",type:l="default",disabled:s=!1,showDropdownIcon:a=!0,onClick:c,style:d,className:h}=e,f=(0,u.fh)(t,r);return f?(0,p.jsx)(tu,{model:f,text:n,icon:i,size:o,type:l,disabled:s,showDropdownIcon:a,onClick:c,style:d,className:h}):(0,p.jsx)(eU.A,{message:`未找到ID为 ${t} 的模型`,type:"error"})});var td=r(89013),th=r(36492),tp=r(63718),tf=r(94313);let{Item:tg}=td.A,tm=e=>"uid"in e&&"modelClassName"in e&&!!e.uid&&!!e.modelClassName,ty=e=>tm(e)?(0,p.jsx)(tw,{...e}):(0,p.jsx)(tv,{...e}),tv=(0,h.PA)(e=>{let{model:t,flowKey:r}=e;return t?(0,p.jsx)(tb,{model:t,flowKey:r}):(0,p.jsx)(eU.A,{message:"提供的模型无效",type:"error"})}),tw=(0,h.PA)(e=>{let{uid:t,flowKey:r,modelClassName:n}=e,i=(0,u.fh)(t,n);return i?(0,p.jsx)(tb,{model:i,flowKey:r}):(0,p.jsx)(eU.A,{message:`未找到ID为 ${t} 的模型`,type:"error"})}),tb=(0,h.PA)(e=>{let{model:t,flowKey:r}=e,[n]=td.A.useForm(),o=t.getFlows().get(r),[l,s]=(0,g.useState)([]);(0,g.useEffect)(()=>{let e=!0;return(async()=>{let r=[];for(let[e,s]of Object.entries((null==o?void 0:o.steps)||{})){if(await (0,i._3)(t,o,s))continue;let a=s.uiSchema||{},u={};if(s.use){var n,l;let e=null==(l=t.flowEngine)||null==(n=l.getAction)?void 0:n.call(l,s.use);e&&e.uiSchema&&(u=e.uiSchema)}let c={...u};Object.entries(a).forEach(e=>{let[t,r]=e;c[t]?c[t]={...c[t],...r}:c[t]=r}),0!==Object.keys(c).length&&r.push({stepKey:e,step:s,uiSchema:c})}e&&s(r)})(),()=>{e=!1}},[t,o]);let a=(0,g.useCallback)(async()=>{let e={};for(let{stepKey:n,step:o}of l){let l=t.getStepParams(r,n)||{},s=new eH.W5(t,r,"settings"),a=t.getFlow(r);(0,i.wx)(s,(null==a?void 0:a.steps)||{},t,r);let u={...await (0,i.gG)(o.defaultParams,s),...l};Object.keys(u).length>0&&(e[n]=u)}return e},[t,r,l]);(0,g.useEffect)(()=>{(async()=>{try{let e=await a();n.setFieldsValue(e)}catch(e){console.error("Error loading default params:",e)}})()},[r,n,a]);let u=(0,g.useCallback)((e,n)=>{Object.entries(n).forEach(e=>{let[n,i]=e;i&&"object"==typeof i&&t.setStepParams(r,n,i)})},[t,r]);if(!o)return(0,p.jsx)(eU.A,{message:`未找到Key为 ${r} 的流程`,type:"error"});if(0===l.length)return(0,p.jsx)(eU.A,{message:"此流程没有可配置的参数",type:"info"});let c=()=>l.map(e=>{let{stepKey:t,uiSchema:r}=e;return Object.entries(r).map(e=>{let[r,n]=e,i=`${t}.${r}`,o=()=>{var e,t,r,i;switch(n["x-component"]){case"Select":return(0,p.jsx)(th.A,{placeholder:(null==(e=n["x-component-props"])?void 0:e.placeholder)||`请选择${n.title}`,options:n.enum||[],...n["x-component-props"]||{}});case"InputNumber":return(0,p.jsx)(tp.A,{placeholder:(null==(t=n["x-component-props"])?void 0:t.placeholder)||`请输入${n.title}`,...n["x-component-props"]||{}});case"Switch":return(0,p.jsx)(tf.A,{...n["x-component-props"]||{}});case"Input.TextArea":return(0,p.jsx)(ec.A.TextArea,{placeholder:(null==(r=n["x-component-props"])?void 0:r.placeholder)||`请输入${n.title}`,...n["x-component-props"]||{}});default:return(0,p.jsx)(ec.A,{placeholder:(null==(i=n["x-component-props"])?void 0:i.placeholder)||`请输入${n.title}`,...n["x-component-props"]||{}})}};return(0,p.jsx)(td.A.Item,{name:[t,r],label:n.title||r,rules:n.required?[{required:!0,message:`请输入${n.title||r}`}]:[],children:o()},i)})});return(0,p.jsx)(td.A,{form:n,layout:"vertical",onValuesChange:u,children:c()})});var tx=r(47674),tS=r(25303),t_=r(16629);let{Panel:tA}=tx.A,tk=(0,h.PA)(e=>{let{model:t,expandAll:r=!1}=e,n=t.getFlows(),[o,l]=(0,g.useState)([]);(0,g.useEffect)(()=>{let e=!0;return(async()=>{let r=[];for(let e of Array.from(n.values()))(await Promise.all(Object.entries(e.steps).map(async r=>{let[n,o]=r;if(await (0,i._3)(t,e,o))return null;let l=o.uiSchema||{},s={};if(o.use){var a,u;let e=null==(u=t.flowEngine)||null==(a=u.getAction)?void 0:a.call(u,o.use);e&&e.uiSchema&&(s=e.uiSchema)}let c={...s};return(Object.entries(l).forEach(e=>{let[t,r]=e;c[t]?c[t]={...c[t],...r}:c[t]=r}),0===Object.keys(c).length)?null:{stepKey:n,step:o,uiSchema:c}})).then(e=>e.filter(Boolean))).length>0&&r.push(e);e&&l(r)})(),()=>{e=!1}},[t,n]);let s=o.map(e=>e.key);if(0===s.length)return(0,p.jsx)(tS.A,{description:"没有可用的流程"});let a=r?s:void 0;return(0,p.jsx)(t_.A,{title:"Flows设置",children:(0,p.jsx)(tx.A,{defaultActiveKey:a,children:s.map(e=>{var r;return(0,p.jsx)(tA,{header:(null==(r=n.get(e))?void 0:r.title)||e,children:(0,p.jsx)(ty,{model:t,flowKey:e})},e)})})})}),tM=e=>"uid"in e&&"modelClassName"in e&&!!e.uid&&!!e.modelClassName,tE=e=>tM(e)?(0,p.jsx)(tR,{...e}):(0,p.jsx)(tj,{...e}),tj=(0,h.PA)(e=>{let{model:t,expandAll:r=!1,children:n}=e;if(!t)return(0,p.jsx)(eU.A,{message:"提供的模型无效",type:"error"});let i=(0,p.jsx)(tk,{model:t,expandAll:r});return n?(0,p.jsxs)("div",{children:[i,n]}):i}),tR=(0,h.PA)(e=>{let{uid:t,modelClassName:r,expandAll:n=!1,children:i}=e,o=(0,u.fh)(t,r);if(!o)return(0,p.jsx)(eU.A,{message:`未找到ID为 ${t} 的模型`,type:"error"});let l=(0,p.jsx)(tk,{model:o,expandAll:n});return i?(0,p.jsxs)("div",{children:[l,i]}):l}),tP=async e=>{let{drawerWidth:t,drawerTitle:r,cleanup:n,...i}=e;return(0,eJ.openStepSettingsDialog)({...i,mode:"drawer",dialogWidth:t,dialogTitle:r,cleanup:n})};var tC=r(95243),tF=r(87959);let tT=async e=>{var t;let r,n,{model:o,flowKey:l,stepKey:s,width:a=600,title:u}=e,c=(0,i.lW)(o),d=o.getFlow(l),h=null==d||null==(t=d.steps)?void 0:t[s];if(!d)throw tF.Ay.error(c("Flow with key {{flowKey}} not found",{flowKey:l})),Error(c("Flow with key {{flowKey}} not found",{flowKey:l}));if(!h)throw tF.Ay.error(c("Step with key {{stepKey}} not found",{stepKey:s})),Error(c("Step with key {{stepKey}} not found",{stepKey:s}));let p=new eH.W5(o,l,"settings");(0,i.wx)(p,d.steps,o,l),p.defineProperty("currentStep",{value:h});let f=await (0,i.ME)(h.uiMode,p),g={};if("string"==typeof f)r=f;else if("object"==typeof f){r=f.type||"dialog",g=(0,tC.model)(f.props||{});let e=(0,tC.autorun)(()=>{(0,i.ME)(h.uiMode,p).then(e=>{"object"==typeof e&&Object.assign(g,e.props||{})}).catch(e=>{console.warn("Error resolving uiMode:",e)})});n=()=>{e()}}else r="dialog";return"drawer"===r?tP({model:o,flowKey:l,stepKey:s,drawerWidth:a,drawerTitle:u,ctx:p,uiModeProps:g,cleanup:n}):(0,eJ.openStepSettingsDialog)({model:o,flowKey:l,stepKey:s,dialogWidth:a,dialogTitle:u,ctx:p,uiModeProps:g,cleanup:n})};var tI=r(96332),t$=r(21734);let tO=()=>(0,g.useMemo)(()=>Math.min(.6*window.innerHeight,400),[]),tD=(e,t,r,n,i)=>{let[o,l]=(0,g.useState)({}),[s,a]=(0,g.useState)(new Set),u=(0,g.useRef)(null),c=(0,g.useCallback)(async function(e,t){let r=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(!s.has(e)&&(r||!o[e])){a(t=>new Set(t).add(e));try{let r=t(),n=r instanceof Promise?await r:r;l(t=>({...t,[e]:n}))}catch(t){console.error(`Failed to load children for ${e}`,t)}finally{a(t=>{let r=new Set(t);return r.delete(e),r})}}},[o,s]),d=(e,t)=>{let r=[],n=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];for(let i of e){let e=tq(t,i.key);"function"==typeof i.children&&r.push([e,i.children]),Array.isArray(i.children)&&n(i.children,[...t,i.key])}};for(let r of(n(e,[]),Object.keys(t)))n(t[r]||[],r?r.split("/"):[]);return r};return(0,g.useEffect)(()=>{if(!e||u.current===r)return;u.current=r;let l=new Map;for(let[e,r]of d(t,o))l.set(e,r);let s=n?Array.from(n):[],a=[],h=Array.from(new Set([...i||[]].filter(Boolean)));if(h.length>0)for(let e of h){let t=e.split("/").filter(Boolean);for(let e=1;e<=t.length;e++){let r=t.slice(0,e).join("/");!a.includes(r)&&o[r]&&a.push(r)}}else a=Object.keys(o).filter(e=>s.some(t=>e===t||e.startsWith(t+"/")));0===a.length&&(a=Object.keys(o).filter(e=>-1===e.indexOf("/")));let p=new Set;for(let e of a){let t=l.get(e);if(t)try{p.has(e)||(p.add(e),c(e,t,!0))}catch(e){}}},[e,r,t,c,o,n,i]),{loadedChildren:o,loadingKeys:s,handleLoadChildren:c}},tN=()=>{let e=(0,g.useRef)(!1),[t,r]=(0,g.useState)(!1),n=(0,g.useRef)(null),i=(0,g.useCallback)(()=>{e.current=!0,r(!0),n.current&&clearTimeout(n.current),n.current=setTimeout(()=>{e.current=!1,r(!1),n.current=null},250)},[]);return(0,g.useEffect)(()=>()=>n.current&&clearTimeout(n.current),[]),{requestKeepOpen:i,shouldPreventClose:(0,g.useCallback)(()=>e.current||t,[t])}},tB=()=>{let[e,t]=(0,g.useState)({}),[r,n]=(0,g.useState)(!1),i=(0,g.useRef)(null),o=(e,r)=>{n(!0),t(t=>({...t,[e]:r})),i.current&&clearTimeout(i.current),i.current=setTimeout(()=>n(!1),300)};return(0,g.useEffect)(()=>()=>{i.current&&clearTimeout(i.current)},[]),{searchValues:e,isSearching:r,updateSearchValue:o}},tL=(e,t)=>{(0,g.useEffect)(()=>{if(!e||t<=0)return;let r=new MutationObserver(e=>{e.forEach(e=>{e.addedNodes.forEach(e=>{if(e.nodeType===Node.ELEMENT_NODE){var r;let n=e;(null==(r=n.classList)?void 0:r.contains("ant-dropdown-menu-submenu-popup"))&&requestAnimationFrame(()=>{let e=n.querySelector(".ant-dropdown-menu");if(e){let r=e;r.style.maxHeight=`${t}px`,r.style.overflowY="auto"}})}})})});r.observe(document.body,{childList:!0,subtree:!1});let n=setInterval(()=>{document.querySelectorAll(".ant-dropdown-menu-submenu-popup .ant-dropdown-menu").forEach(e=>{let r=e,n=r.getBoundingClientRect();n.width>0&&n.height>0&&(r.style.maxHeight=`${t}px`,r.style.overflowY="auto")})},200);return()=>{r.disconnect(),clearInterval(n)}},[e,t])},tz=e=>{let t=(0,g.useRef)(null),{visible:r,...n}=e;return(0,g.useEffect)(()=>{if(t.current&&r){var e,n,i;let r=t.current.input||(null==(e=t.current.resizableTextArea)?void 0:e.textArea)||t.current;try{null==r||null==(n=r.focus)||n.call(r,{preventScroll:!0})}catch(e){null==r||null==(i=r.focus)||i.call(r)}}},[r]),(0,p.jsx)(ec.A,{ref:t,...n})},tq=(e,t)=>[...e,t].join("/"),tW=(e,t,r,n,i,o)=>({key:`${t}-search`,type:"group",label:(0,p.jsx)("div",{children:(0,p.jsx)(tz,{visible:n,variant:"borderless",allowClear:!0,placeholder:i(e.searchPlaceholder||"Search"),value:r,onChange:e=>{e.stopPropagation(),o(t,e.target.value)},onClick:e=>e.stopPropagation(),onMouseDown:e=>{e.stopPropagation()},size:"small",style:{width:"100%",paddingLeft:0,paddingRight:0}})})}),tV=(e,t)=>({key:`${e}-empty`,label:(0,p.jsx)("div",{style:{padding:"16px",textAlign:"center"},children:(0,p.jsx)(tS.A,{image:tS.A.PRESENTED_IMAGE_SIMPLE,description:t("No data"),style:{margin:0}})}),disabled:!0}),tU=350,tK=new Map,tH=e=>{let{menu:t,...r}=e,n=(0,d.uf)(),[i,o]=(0,g.useState)(!1),[l,s]=(0,g.useState)(new Set),[a,u]=(0,g.useState)([]),[c,h]=(0,g.useState)(!1),f=tO(),m=n.translate.bind(n),{items:y,keepDropdownOpen:v,persistKey:w,stateVersion:b,refreshKeys:x,...S}=t,{loadedChildren:_,loadingKeys:A,handleLoadChildren:k}=tD(i,a,b,l,x),{searchValues:M,isSearching:E,updateSearchValue:j}=tB(),{requestKeepOpen:R,shouldPreventClose:P}=tN();function C(e,t,r,n,i,o){let l=r,s=M[l]||"",a=o(s?function e(t){let r=s.toLowerCase(),n=e=>e?"string"==typeof e?e:String(e):"";return t.map(t=>{let i=n(t.label).toLowerCase().includes(r)||t.key&&String(t.key).toLowerCase().includes(r);if("group"===t.type&&Array.isArray(t.children)){let r=e(t.children);return i||r.length>0?{...t,children:r}:null}return i?t:null}).filter(Boolean)}(e):e,[...n,t.key]),u=tW(t,l,s,i,m,j),c={key:`${r}-search-divider`,type:"divider"};return s&&0===a.length?[u,c,tV(r,m)]:[u,c,...a]}tL(i,f),(0,g.useEffect)(()=>{!w||(tK.get(w)||0)>Date.now()&&o(!0)},[w]),(0,g.useEffect)(()=>()=>{if(w&&i){let e=Date.now()+tU;tK.set(w,e),setTimeout(()=>{(tK.get(w)||0)<=Date.now()&&tK.delete(w)},tU+100)}},[w,i]),(0,g.useEffect)(()=>{(async()=>{let e;if("function"==typeof y){h(!0);try{let t=y();e=t instanceof Promise?await t:t}finally{h(!1)}}else e=y;u(e)})()},[b,y]);let F=function(e){let r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return e.map(e=>{let n,o=tq(r,e.key),a="group"===e.type,u="function"==typeof e.children,c=A.has(o),d=_[o];if(!a&&i&&l.has(o)&&u&&!d&&!c&&k(o,e.children),u?n=d??[]:Array.isArray(e.children)&&(n=e.children),u&&!d&&(n=[{key:`${o}-loading`,label:(0,p.jsx)(t$.A,{size:"small"}),disabled:!0}]),a){u&&!d&&i&&k(o,e.children);let t=n?F(n,[...r,e.key]):[];return e.searchable&&n&&(t=C(n,e,o,r,i,F)),{type:"group",key:o,label:"string"==typeof e.label?m(e.label):e.label,children:t}}return"divider"===e.type?{type:"divider",key:o}:e.searchable&&n?{key:e.key,label:"string"==typeof e.label?m(e.label):e.label,onClick:e=>{},onMouseEnter:()=>{s(e=>{if(e.has(o))return e;let t=new Set(e);return t.add(o),t})},children:C(n,e,o,r,i,F)}:{key:o,label:"string"==typeof e.label?m(e.label):e.label,onClick:r=>{var i;if(n)return;let o=e.keepDropdownOpen??v??!1;o&&R();let l={...r,item:r.item||e,originalItem:e,keepDropdownOpen:o};null==(i=t.onClick)||i.call(t,l)},onMouseEnter:()=>{s(e=>{if(e.has(o))return e;let t=new Set(e);return t.add(o),t})},children:n&&n.length>0?F(n,[...r,e.key]):n&&0===n.length?[tV(o,m)]:void 0}})},T=(0,g.useMemo)(()=>(0,ep.AH)`
|
|
207
207
|
.ant-dropdown-menu {
|
|
208
208
|
max-height: ${f}px;
|
|
209
209
|
overflow-y: auto;
|
|
@@ -213,7 +213,7 @@ Please run: await ctx.importAsync("${r}") to ensure ctx.render uses a matching R
|
|
|
213
213
|
max-height: ${f}px !important;
|
|
214
214
|
overflow-y: auto !important;
|
|
215
215
|
}
|
|
216
|
-
`,[f]),
|
|
216
|
+
`,[f]),I=c&&0===a.length?[{key:"root-loading",label:(0,p.jsx)(t$.A,{size:"small"}),disabled:!0}]:F(a);return(0,p.jsx)(eK.A,{...r,open:i,destroyPopupOnHide:!0,overlayClassName:T,placement:"bottomLeft",menu:{...S,items:I,onClick:()=>{},style:{maxHeight:f,overflowY:"auto",...null==S?void 0:S.style}},onOpenChange:e=>{!e&&E||!e&&P()||o(e)},children:r.children})};var tJ=r(41594);let tY={display:"flex",justifyContent:"space-between",alignItems:"center",width:"100%",padding:"0"},tG={marginLeft:8,pointerEvents:"none"},tZ=e=>e?!!e.use||(console.warn('createModelOptions must specify "use" property:',e),!1):(console.warn("No createModelOptions found for item"),!1),tX=async(e,t)=>{if(console.error("Failed to add sub model:",e),t&&"function"==typeof t.destroy)try{await t.destroy()}catch(e){console.error("Failed to destroy model after creation error:",e)}},tQ=async(e,t)=>{let r=e.createModelOptions;return"function"==typeof r&&(r=await r(t)),{use:e.useModel,...r}};function t0(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},{addDividers:r=!1}=t,n=e.filter(e=>null!=e);return 0===n.length?[]:1===n.length?n[0]:async e=>{let t=[];for(let i=0;i<n.length;i++){let o=n[i],l=Array.isArray(o)?o:await o(e);i>0&&r&&l.length>0&&t.push({key:`divider-${i}`,type:"divider"}),t.push(...l)}return t}}let t1=(e,t)=>(0,p.jsxs)("div",{style:tY,children:[(0,p.jsx)("span",{children:e}),(0,p.jsx)(tf.A,{size:"small",checked:t,style:tG})]}),t2=e=>{let t=e=>{for(let r of e)if(r){if("function"==typeof r.hide||!r.children&&(r.toggleDetector||r.toggleable))return!0;if(Array.isArray(r.children)){if(t(r.children))return!0}else if("function"==typeof r.children)return!0}return!1};return t(e)},t5=async(e,t)=>{let r=e.hide;return!!r&&("function"==typeof r?!!await r(t):!!r)},t3=async(e,t)=>{for(let r of e)if(r){try{if(await t5(r,t))continue}catch(e){console.error("[NocoBase]: Failed to resolve item.hide:",e)}if(Array.isArray(r.children)){if(await t3(r.children,t))return!0;if("group"===r.type||!r.createModelOptions)continue;return!0}return r.children,!0}return!1},t4=async(e,t,r,n)=>{if(0===e.length)return[];let i=await Promise.all(e.map(async e=>{if(!e)return!0;try{return await t5(e,t.context)}catch(e){return console.error("[NocoBase]: Failed to resolve item.hide:",e),!1}})),o=e.filter((e,t)=>!!e&&!i[t]);if(0===o.length)return[];let l=[];for(let e=0;e<o.length;e++){let n=o[e],i=n.useModel;if(!i&&n.toggleable)try{let e=await tQ(n,t.context);(i=null==e?void 0:e.use)&&(n.useModel=i)}catch(e){console.error("[NocoBase]: Failed to resolve useModel for toggleable item:",e)}n.toggleable&&i&&(n.toggleDetector=e=>{let t=e.engine.getModelClass(i);return!!e.model.findSubModel(r,e=>!0===n.toggleable?e.constructor===t:"function"==typeof n.toggleable?n.toggleable(e):void 0)},n.customRemove=async(e,t)=>{let n=e.engine.getModelClass(i),o=e.model.findSubModel(r,e=>!0===t.toggleable?e.constructor===n:"function"==typeof t.toggleable?t.toggleable(e):void 0);o&&await o.destroy()}),n.toggleDetector&&!n.children&&l.push({item:n,index:e})}let s=await Promise.allSettled(l.map(e=>{let{item:r}=e;return r.toggleDetector?r.toggleDetector(t.context):Promise.resolve(!1)})),a=new Map;l.forEach((e,t)=>{let{index:r}=e,n=s[t];a.set(r,"fulfilled"===n.status&&n.value)});let u=o.map(async(e,i)=>{let o={key:e.key,label:e.label,type:e.type,disabled:e.disabled,icon:e.icon,searchable:e.searchable,searchPlaceholder:e.searchPlaceholder,keepDropdownOpen:e.keepDropdownOpen,originalItem:e};if(e.children)if("function"==typeof e.children)o.children=async()=>{let i=e.children;return t4(await i(t.context),t,r,n)};else{let i=e.children;if(t2(i)){if(await t3(i,t.context))o.children=async()=>t4(i,t,r,n);else if("group"===e.type||!e.createModelOptions)return null}else o.children=await t4(i,t,r,n)}if(Array.isArray(o.children)&&0===o.children.length&&("group"===e.type||!e.createModelOptions))return null;if(e.toggleDetector&&!e.children){let r=a.get(i)||!1;o.label=t1(t.translate(e.label)||"",r),o.isToggled=r,o.keepDropdownOpen=e.keepDropdownOpen??!0}return o});return(await Promise.all(u)).filter(e=>!!e)},t8=(e,t,r,n)=>{if("function"==typeof e)return async()=>t4(await e(t.context),t,r,n);if(t2(e))return()=>t4(e,t,r,n);{let i=null;return async()=>(i||(i=await t4(e,t,r,n)),i)}},t6=e=>async(t,r)=>{let{model:n,subModelKey:i,subModelType:o}=e;if("array"===o){let o=n.subModels[i];if(Array.isArray(o)){let n=await tQ(t,r.context),i=o.find(t=>{if(null==n?void 0:n.use){try{let r=e.model.flowEngine.getModelClass(n.use);if(r&&t instanceof r)return!0}catch(e){}return t.uid.includes(n.use)}return!1});if(i){await i.destroy();let e=o.indexOf(i);return e>-1&&o.splice(e,1),i}}}else{let e=n.subModels[i];if(e)return await e.destroy(),n.subModels[i]=void 0,e}return null},t9=y(function(e){let{model:t,items:r,subModelBaseClass:n,subModelBaseClasses:i,subModelType:o="array",subModelKey:l,afterSubModelInit:s,afterSubModelAdd:a,afterSubModelRemove:u,children:c="Add",keepDropdownOpen:d=!1}=e,h=(0,g.useMemo)(()=>{try{let e=t&&t.uid||"unknown-model";return`asmb:${e}:${l}:${o}`}catch(e){return`asmb:unknown:${l}:${o}`}},[t,l,o]),[f,m]=g.useState(0),[y,v]=g.useState(void 0),w=(0,g.useMemo)(()=>{let e=[];return r&&e.push(r),n&&e.push((0,tJ.z5)(n)),i&&i.length>0&&e.push((0,tJ.Qp)(i)),t0(e,{addDividers:!0})},[r,n,i]),b=(0,g.useMemo)(()=>t6({model:t,subModelKey:l,subModelType:o}),[t,l,o]);g.useEffect(()=>{var e,r,n;let i=()=>{m(e=>e+1)};return null==(e=t.emitter)||e.on("onSubModelAdded",i),null==(r=t.emitter)||r.on("onSubModelRemoved",i),null==(n=t.emitter)||n.on("onSubModelReplaced",i),()=>{var e,r,n;null==(e=t.emitter)||e.off("onSubModelAdded",i),null==(r=t.emitter)||r.off("onSubModelRemoved",i),null==(n=t.emitter)||n.off("onSubModelReplaced",i)}},[t]);let x=async e=>{let r,n=e.originalItem||e,i=n.originalItem||n,c=n.isToggled,d=null==e?void 0:e.key;if(d&&v([d,...(null==i?void 0:i.refreshTargets)||[]]),i.toggleDetector&&c){try{let e=null;try{let r=t.flowEngine.getModelClass(i.useModel);r&&(e=t.findSubModel(l,e=>e.constructor===r))}catch(e){}i.customRemove?await i.customRemove(t.context,i):e=await b(i,t)||e,u&&e&&await u(e),m(e=>e+1)}catch(e){console.error("Failed to remove sub model:",e)}return}let h=await tQ(i,t.context);if(tZ(h))try{(r=await t.flowEngine.createModelAsync({...k().cloneDeep(h),parentId:t.uid,subKey:l,subType:o})).isNew=!0,r.setParent(t);let e=async()=>{try{s&&await s(r),"array"===o?t.addSubModel(l,r):t.setSubModel(l,r),a&&await a(r),await r.afterAddAsSubModel(),await r.save(),r.isNew=!1,m(e=>e+1)}catch(e){await tX(e,r)}};await r.openFlowSettings({preset:!0,onSaved:async()=>{await e()}})||await e()}catch(e){await tX(e,r)}},S=(0,g.useMemo)(()=>t8(w,t,l,o),[w,t,l,o]);return(0,g.useEffect)(()=>{let e=()=>{m(e=>e+1)};return t.emitter.on("onSubModelAdded",e),t.emitter.on("onSubModelRemoved",e),()=>{t.emitter.off("onSubModelAdded",e),t.emitter.off("onSubModelRemoved",e)}},[t]),(0,p.jsx)(tH,{menu:{items:S,onClick:x,keepDropdownOpen:d,persistKey:h,stateVersion:f,refreshKeys:y},children:c})});var t7=r(85196),re=r(7259);let rt=e=>{let{value:t,onClear:r,className:n,style:i,metaTreeNode:o,metaTree:l}=e,{resolvedMetaTree:s}=ek(l),a=(0,m.$K)(),{data:u}=(0,re.A)(async()=>{let e=async e=>{if(!e||!Array.isArray(e)||!Array.isArray(s))return null;let t=new Set((s||[]).map(e=>String(null==e?void 0:e.name))).has(String(e[0]))?e:e.slice(1);if(!t.length)return"";let r=s,n=[],i=0;for(let e=0;e<t.length&&r;e++){let o=String(t[e]),l=r.find(e=>String(null==e?void 0:e.name)===o);if(!l)break;if(n.push(String(l.title??l.name??o)),i=e+1,e<t.length-1)if(Array.isArray(l.children))r=l.children;else if("function"==typeof l.children)try{let e=await l.children();l.children=e,r=e}catch{r=void 0}else r=void 0}if(0===i)return null;let o=n.map(a.t).join("/");if(i<t.length){let e=t.slice(i).join("/");o=e?`${o}/${e}`:o}return o};if(null==o?void 0:o.parentTitles)return[...o.parentTitles,o.title].map(a.t).join("/");if(o){let r=eg(t)||o.paths;return await e(r)??a.t(o.title)??""}if(!t)return String(t);let r=eg(t),n=await e(r);return null!=n?n:Array.isArray(r)?r.join("/"):String(t)},{refreshDeps:[s,t,o]}),{token:c}=ea.A.useToken(),d=(0,ep.AH)`
|
|
217
217
|
/* 选择器容器允许收缩并隐藏超出 */
|
|
218
218
|
& .ant-select-selector {
|
|
219
219
|
min-width: 0;
|
|
@@ -223,7 +223,7 @@ Please run: await ctx.importAsync("${r}") to ensure ctx.render uses a matching R
|
|
|
223
223
|
& .rc-overflow {
|
|
224
224
|
flex-wrap: nowrap;
|
|
225
225
|
}
|
|
226
|
-
`,h=e=>{let{label:t}=e,r="string"==typeof t?t:String(t);return(0,p.jsx)(
|
|
226
|
+
`,h=e=>{let{label:t}=e,r="string"==typeof t?t:String(t);return(0,p.jsx)(eu.A,{title:r,placement:"top",getPopupContainer:()=>document.body,children:(0,p.jsx)(t7.A,{color:"blue",style:{margin:`0 ${c.marginXXS||c.marginXS}px`,borderRadius:c.borderRadiusSM,fontSize:c.fontSizeSM,display:"inline-flex",alignItems:"center",padding:`0 ${c.paddingXXS}px`,minWidth:0,maxWidth:"100%",overflow:"hidden",width:"100%"},children:(0,p.jsx)("span",{style:{minWidth:0,width:"100%",overflow:"hidden",whiteSpace:"nowrap",display:"inline-block"},children:r})})})};return(0,p.jsx)(th.A,{className:(0,ep.cx)("variable",d,n),style:{width:"100%",minWidth:0,flex:"1 1 auto",...i},value:u?[u]:[],mode:"tags",open:!1,allowClear:!!r,onClear:r,disabled:!r,variant:"outlined",suffixIcon:null,tagRender:h,onClick:e=>e.preventDefault(),removeIcon:null})},rr=g.memo(rt),rn={display:"flex",alignItems:"flex-start"},ri=(e,t)=>{if(!t||0===t.length)return null;let r=(e,t)=>{for(let n of e){if(n.paths&&ro(n.paths,t))return n;if(n.paths&&rl(n.paths,t)&&n.children&&Array.isArray(n.children)){let e=r(n.children,t);if(e)return e}}return null},n=r(e,t);if(n)return n;if(!new Set((e||[]).map(e=>String(e.name))).has(String(t[0]))){let n=t.slice(1);if(n.length>0)return r(e,n)}return null},ro=(e,t)=>e.length===t.length&&e.every((e,r)=>e===t[r]),rl=(e,t)=>!(e.length>=t.length)&&e.every((e,r)=>e===t[r]),rs=e=>{let{value:t,onChange:r,converters:n,metaTree:i,showValueComponent:o=!0,onlyLeafSelectable:l=!1,clearValue:s,ignoreFieldNames:a,...u}=e,[c,d]=(0,g.useState)(null),h=(0,g.useRef)(null),[f,m]=(0,g.useState)(t);(0,g.useEffect)(()=>{m(t)},[t]);let{resolveValueFromPath:y,resolvePathFromValue:v,renderInputComponent:w}=(0,g.useMemo)(()=>eA(n),[n]),{data:b,loading:x}=(0,re.A)(async()=>{if("function"==typeof i){let e=await i();return"function"==typeof e?await e():e}return i},{refreshDeps:[i]}),S=(0,g.useCallback)((e,t)=>{let n=(null==t?void 0:t.paths)?t.paths.join("."):void 0,i=h.current;return(!i||i.value!==e||i.path!==n)&&(h.current={value:e,path:n},null==r||r(e,t),!0)},[r]),_=(0,g.useMemo)(()=>{if(c)return c;if(Array.isArray(b)){let e=null==v?void 0:v(f);if(e)return ri(b,e)}return null},[c,f,b,v]);(0,g.useEffect)(()=>{(async()=>{if(!Array.isArray(b)||null==t||c)return;let e=null==v?void 0:v(t);if(!e||0===e.length)return;let r=new Set(b.map(e=>String(e.name))).has(String(e[0]))?e:e.slice(1);if(0===r.length)return;let n=b,i=null;for(let e=0;e<r.length;e++){if(!n){i=null;break}let t=String(r[e]),o=n.find(e=>String(null==e?void 0:e.name)===t);if(!o){i=null;break}if(i=o,e<r.length-1)if(Array.isArray(o.children))n=o.children;else if("function"==typeof o.children)try{let e=await o.children();o.children=e,n=e}catch{n=void 0}else n=void 0}i&&d(i)})()},[b,f,v,c]);let A=(0,g.useMemo)(()=>{let e=null==w?void 0:w(_),t=null==_?void 0:_.render;return eS(f)?rr:e||t||ec.A},[w,_,f]);(0,g.useEffect)(()=>{!_||Array.isArray(b)&&null!=f&&(S(f,_),d(_))},[_]);let k=(0,g.useRef)(!1),M=(0,g.useCallback)(e=>{if((null==e?void 0:e.type)==="compositionend"){var t;k.current=!1;let r=(null==e||null==(t=e.target)?void 0:t.value)!==void 0?e.target.value:e;m(r),S(r)}else k.current=!0},[S]),E=(0,g.useCallback)(e=>{var t;let r=(null==e||null==(t=e.target)?void 0:t.value)!==void 0?e.target.value:e;m(r),k.current||(null==e?void 0:e.nativeEvent)&&e.nativeEvent.isComposing||S(r)},[S]),j=(0,g.useCallback)((e,t)=>{if(!t&&""===e){let e=void 0!==s?s:null;m(e),S(e);return}d(t);let r=(null==y?void 0:y(t))||e;m(r),S(r,t)},[S,y,s]),{disabled:R}=u,P=(0,g.useCallback)(()=>{if(R)return;let e=void 0!==s?s:null;m(e);try{let t=null==v?void 0:v(e);if(Array.isArray(b)&&t&&t.length>0){let r=ri(b,t);if(r){d(r),S(e,r);return}}}catch(e){}d(null),S(e)},[S,R,s,b,v]),C=(0,g.useMemo)(()=>{let{style:e,onFocus:t,onBlur:r,disabled:n,...i}=u;return{style:e,onFocus:t,onBlur:r,otherProps:i}},[u]),F=(0,g.useMemo)(()=>{let e={value:A===ec.A?f??"":f,onChange:E,disabled:R};if(A===rr)return{...e,onClear:P,metaTreeNode:_,metaTree:i,style:C.style};let{value:t,onChange:r,...n}=C.otherProps||{};return{...e,...n,onCompositionStart:M,onCompositionUpdate:M,onCompositionEnd:M}},[f,E,M,R,P,_,i,A,C]),T=(0,g.useMemo)(()=>({...rn,...u.style}),[u.style]);return x?null:(0,p.jsxs)(eQ.A.Compact,{style:T,children:[o&&(0,p.jsx)(A,{style:{width:"100%",minWidth:0,...F.style},...F}),(0,p.jsx)(eC,{metaTree:b,value:f,onChange:j,parseValueToPath:v,formatPathToValue:y,onlyLeafSelectable:l,ignoreFieldNames:a,...!o&&{children:null,placeholder:null==u?void 0:u.placeholder}})]})},ra=g.memo(rs);var ru=r(47544),rc=r(69931),rd=r(59184),rh=r(31333);let rp=e=>{let{value:t,onRemove:r,className:n,style:i,allowEdit:o=!0,metaTreeNode:l,metaTree:s,maxWidth:a="400px"}=e,{resolvedMetaTree:u}=ek(s),c=(0,m.$K)(),{data:d}=(0,re.A)(async()=>{if(l)return l.parentTitles?[...l.parentTitles,l.title].map(c.t).join("/"):c.t(l.title)||"";if(!t)return String(t);let e=eg(t);return e?e.join("/"):String(t)},{refreshDeps:[u,t,l]});return(0,p.jsx)(t7.A,{color:"blue",closable:o&&!!r,onClose:e=>{e.preventDefault(),e.stopPropagation(),null==r||r()},closeIcon:(0,p.jsx)(rh.A,{}),className:n,style:{display:"inline-flex",alignItems:"center",margin:0,padding:"2px 6px",fontSize:"12px",lineHeight:"16px",height:"20px",borderRadius:"4px",maxWidth:a,cursor:"default",userSelect:"none",verticalAlign:"middle",...i},children:(0,p.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},title:d,children:d??""})})};var rf=r(28073);let rg=e=>{let{attributes:t,children:r,element:n,metaTree:i,onVariableSelect:o,onTriggerClose:l}=e,[s,a]=(0,g.useState)(!0),u=(e,t)=>{t&&(a(!1),null==o||o(n.triggerId,e,t))},c=e=>{e||(a(!1),null==l||l(n.triggerId))};return(0,p.jsx)(rf.A,{content:(0,p.jsxs)("div",{style:{width:"fit-content"},children:[(0,p.jsx)("style",{children:`
|
|
227
227
|
.variable-trigger-popover {
|
|
228
228
|
width: fit-content !important;
|
|
229
229
|
}
|
|
@@ -243,7 +243,7 @@ Please run: await ctx.importAsync("${r}") to ensure ctx.render uses a matching R
|
|
|
243
243
|
min-width: auto !important;
|
|
244
244
|
}
|
|
245
245
|
.variable-trigger-popover .ant-cascader-menus { width: fit-content !important; }
|
|
246
|
-
`}),(0,p.jsx)(eE,{metaTree:i,onChange:c,open:!0,showSearch:!1,dropdownStyle:{boxShadow:"none",border:"none"},style:{display:"none"},children:(0,p.jsx)("div",{})})]}),open:s,trigger:"click",placement:"bottomLeft",onOpenChange:u,overlayClassName:"variable-trigger-popover",destroyTooltipOnHide:!0,children:(0,p.jsxs)("span",{...t,contentEditable:!1,style:{backgroundColor:"#e6f7ff",border:"1px dashed #1890ff",borderRadius:4,padding:"1px 4px",margin:"0 1px",cursor:"pointer",display:"inline-block",fontSize:"12px",color:"#1890ff",userSelect:"none"},"data-slate-void":!0,children:["{{}}",(0,p.jsx)("span",{style:{display:"none"},children:r})]})})},rg=e=>{let{value:t="",onChange:r,metaTree:n,multiline:i=!1,placeholder:o="输入文本,使用 {{ 插入变量",style:l={},...s}=e,a=(0,m.useMemo)(()=>{let e=(0,ru.o$)((0,rd.$k)((0,rc.ie)())),{isInline:t,isVoid:r}=e;return e.isInline=e=>"variable"===e.type||"variable-trigger"===e.type||t(e),e.isVoid=e=>"variable"===e.type||"variable-trigger"===e.type||r(e),e},[]),[c,u]=m.useState(null);m.useEffect(()=>{(async()=>{if(!n)return u(null);try{if("function"==typeof n){let e=await n();u(e)}else u(n)}catch(e){console.warn("Failed to resolve metaTree:",e),u(null)}})()},[n]);let d=(0,m.useCallback)(function(){let e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";if(!t)return[{type:"paragraph",children:[{text:""}]}];let r=/\{\{[^}]+\}\}/g,n=0,i=[];for(;null!==(e=r.exec(t));){e.index>n&&i.push({text:t.slice(n,e.index)});let r=e[0],o=em(r),l;i.push({type:"variable",value:r,meta:l,children:[{text:""}]}),n=e.index+e[0].length}return n<t.length&&i.push({text:t.slice(n)}),0===i.length&&i.push({text:""}),[{type:"paragraph",children:i}]},[c]),h=(0,m.useMemo)(()=>d(t||""),[t,d]),f=(0,m.useCallback)(e=>e.map(e=>rc.Hg.isElement(e)?"variable"===e.type?e.value:f(e.children):e.text).join(""),[]),g=(0,m.useCallback)(e=>{let t=f(e);null==r||r(t)},[r,f]),y=(0,m.useCallback)((e,t,r)=>{let[n]=rc.KE.nodes(a,{match:t=>rc.Hg.isElement(t)&&"variable-trigger"===t.type&&t.triggerId===e});if(n){let[,e]=n,i={type:"variable",value:t,meta:r,children:[{text:""}]};rc.gB.setNodes(a,i,{at:e});let o=rc.KE.after(a,e);o&&rc.gB.select(a,o),ru.rL.focus(a)}},[a]),v=(0,m.useCallback)(e=>{let[t]=rc.KE.nodes(a,{match:t=>rc.Hg.isElement(t)&&"variable-trigger"===t.type&&t.triggerId===e});if(t){let[,e]=t;rc.gB.select(a,e),rc.gB.removeNodes(a,{at:e}),rc.gB.insertText(a,"{{"),ru.rL.focus(a)}},[a]),w=(0,m.useCallback)(e=>{switch(e.element.type){case"variable":return(0,p.jsx)(ry,{...e,metaTree:c});case"variable-trigger":return(0,p.jsx)(rm,{...e,element:e.element,metaTree:n,onVariableSelect:y,onTriggerClose:v});default:return(0,p.jsx)("p",{...e.attributes,children:e.children})}},[n,c,y,v]),b=(0,m.useCallback)(e=>(0,p.jsx)("span",{...e.attributes,style:{fontWeight:e.leaf.bold?"bold":"normal"},children:e.children}),[]),x=(0,m.useCallback)(e=>{if("{"===e.key){let{selection:t}=a;if(t&&rc.Q6.isCollapsed(t)){let[r]=rc.Q6.edges(t),n=rc.KE.before(a,r);if(n){let t=rc.KE.range(a,n,r);if("{"===rc.KE.string(a,t)){e.preventDefault(),rc.gB.delete(a,{at:t});let r={type:"variable-trigger",triggerId:(0,A.uid)(),children:[{text:""}]};rc.gB.insertNodes(a,r)}}}}},[a]);return(0,p.jsx)(ru.A,{editor:a,initialValue:h,onChange:g,children:(0,p.jsx)(ru.Fo,{renderElement:w,renderLeaf:b,placeholder:o,onKeyDown:x,style:{minHeight:i?100:32,padding:"4px 11px",border:"1px solid #d9d9d9",borderRadius:6,fontSize:14,lineHeight:1.5714285714285714,...l},...s})})},ry=e=>{let{attributes:t,children:r,element:n,metaTree:i}=e,o=n,l=m.useMemo(()=>o.meta?o.meta:(i&&o.value&&em(o.value),null),[o.meta,o.value,i]);return(0,p.jsxs)("span",{...t,contentEditable:!1,children:[(0,p.jsx)(rp,{value:o.value,metaTreeNode:l,metaTree:i,style:{marginLeft:2,marginRight:2,verticalAlign:"baseline",display:"inline-block"}}),r]})};var rv=r(61793),rw=r(76546);function rb(){return function(e){e.isLargeField=!0}}var rx=r(63128),rS=r(91013),rA=r(37966);function rM(e){var t,r,n;return(null==e||null==(r=e.api)||null==(t=r.auth)?void 0:t.locale)||(null==e||null==(n=e.i18n)?void 0:n.language)||(null==e?void 0:e.locale)}function r_(e){var t,r;let{version:n="v1"}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=(0,rA.B)(e),o=rA.F.resolve(n,i)||rA.F.resolve(n,"*"),l=rM(e);return(null==o||null==(t=o.getDoc)?void 0:t.length)?o.getDoc(l)||{}:(null==o||null==(r=o.getDoc)?void 0:r.call(o))||{}}function rk(e){let t=(null==e?void 0:e.version)||"v1",r=(0,rA.B)(this),n=e=>e,i=rA.F.resolve(t,r)||rA.F.resolve(t,"*");if(!i)throw Error("[RunJS] No RunJSContext registered for version/model.");let o=new i(n(this)),l={};try{var s,a;let e=rM(this);l=(null==i||null==(s=i.getDoc)?void 0:s.length)?i.getDoc(e)||{}:(null==i||null==(a=i.getDoc)?void 0:a.call(i))||{}}catch(e){l={}}let c={ctx:(0,eK.Bt)(o,{doc:l}),...(null==e?void 0:e.globals)||{}};("JSFieldModel"===r||"JSBlockModel"===r)&&("u">typeof window&&(c.window=window),"u">typeof document&&(c.document=document));let{timeoutMs:u}=e||{};return new rS.I({globals:c,timeoutMs:u})}function rP(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"v1",r=rA.F.getMeta(t,e);return Array.isArray(null==r?void 0:r.scenes)?[...r.scenes]:[]}function rC(e){let{version:t="v1"}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return rP((0,rA.B)(e),t)}var rj=r(88828),rR=r(19258);let rE={"global/message-success":()=>r.e("3937").then(r.bind(r,75432)),"global/message-error":()=>r.e("3018").then(r.bind(r,19505)),"global/api-request":()=>r.e("7946").then(r.bind(r,66321)),"global/require-amd":()=>r.e("4222").then(r.bind(r,25789)),"global/import-esm":()=>r.e("6373").then(r.bind(r,25716)),"global/notification-open":()=>r.e("7876").then(r.bind(r,52191)),"global/window-open":()=>r.e("2203").then(r.bind(r,27142)),"global/open-view-drawer":()=>r.e("1676").then(r.bind(r,6551)),"global/open-view-dialog":()=>r.e("7211").then(r.bind(r,29846)),"global/query-selector":()=>r.e("2958").then(r.bind(r,93117)),"global/clipboard-copy-text":()=>r.e("754").then(r.bind(r,38937)),"scene/block/echarts-init":()=>r.e("2726").then(r.bind(r,37285)),"scene/block/render-react":()=>r.e("5501").then(r.bind(r,71868)),"scene/block/render-react-jsx":()=>r.e("5721").then(r.bind(r,91296)),"scene/block/render-antd-icons":()=>r.e("8434").then(r.bind(r,84953)),"scene/block/render-button-handler":()=>r.e("7201").then(r.bind(r,93512)),"scene/block/add-event-listener":()=>r.e("212").then(r.bind(r,97487)),"scene/block/chartjs-bar":()=>r.e("1310").then(r.bind(r,39101)),"scene/block/vue-component":()=>r.e("1725").then(r.bind(r,40812)),"scene/block/resource-example":()=>r.e("6738").then(r.bind(r,25481)),"scene/block/api-fetch-render-list":()=>r.e("8138").then(r.bind(r,26177)),"scene/block/render-info-card":()=>r.e("2555").then(r.bind(r,53494)),"scene/block/render-statistics":()=>r.e("1951").then(r.bind(r,47890)),"scene/block/render-timeline":()=>r.e("3727").then(r.bind(r,80626)),"scene/block/render-iframe":()=>r.e("8562").then(r.bind(r,25417)),"scene/detail/innerHTML-value":()=>r.e("700").then(r.bind(r,99287)),"scene/detail/format-number":()=>r.e("1786").then(r.bind(r,84529)),"scene/detail/color-by-value":()=>r.e("2898").then(r.bind(r,17689)),"scene/detail/copy-to-clipboard":()=>r.e("1425").then(r.bind(r,57064)),"scene/detail/status-tag":()=>r.e("8438").then(r.bind(r,7765)),"scene/detail/relative-time":()=>r.e("7021").then(r.bind(r,37420)),"scene/detail/percentage-bar":()=>r.e("5759").then(r.bind(r,73330)),"scene/form/render-basic":()=>r.e("6437").then(r.bind(r,29924)),"scene/form/set-field-value":()=>r.e("3989").then(r.bind(r,35876)),"scene/form/toggle-visible":()=>r.e("5761").then(r.bind(r,30008)),"scene/form/set-disabled":()=>r.e("4313").then(r.bind(r,66656)),"scene/form/set-required":()=>r.e("3662").then(r.bind(r,44637)),"scene/form/calculate-total":()=>r.e("2335").then(r.bind(r,74354)),"scene/form/conditional-required":()=>r.e("158").then(r.bind(r,37517)),"scene/form/cascade-select":()=>r.e("7959").then(r.bind(r,79242)),"scene/form/toggle-multiple-fields":()=>r.e("2017").then(r.bind(r,57768)),"scene/form/copy-field-values":()=>r.e("3117").then(r.bind(r,80236)),"scene/table/cell-open-dialog":()=>r.e("9836").then(r.bind(r,72103)),"scene/table/concat-fields":()=>r.e("2710").then(r.bind(r,27733)),"scene/table/collection-selected-count":()=>r.e("5064").then(r.bind(r,35803)),"scene/table/iterate-selected-rows":()=>r.e("8262").then(r.bind(r,86949)),"scene/table/destroy-selected":()=>r.e("3690").then(r.bind(r,92625)),"scene/table/export-selected-json":()=>r.e("6581").then(r.bind(r,56100))};function rF(e,t,r){if("string"!=typeof e||!e.trim())throw Error("[flow-engine] registerRunJSSnippet: ref must be a non-empty string");if("function"!=typeof t)throw Error("[flow-engine] registerRunJSSnippet: loader must be a function returning a Promise");let n=e.trim();return("function"!=typeof rE[n]||!!(null==r?void 0:r.override))&&(rE[n]=t,!0)}function rT(e){let t=e.split("/");return t[t.length-1]||e}function rO(e,t){if(Array.isArray(null==e?void 0:e.scenes)&&e.scenes.length)return e.scenes.map(e=>String(e).trim()).filter(e=>e.length>0);let r=t.split("/");return"scene"===r[0]&&r[1]?[r[1]]:[]}function rI(e,t){let r=rO(e,t);if(r.length)return r.map(e=>`scene/${e}`);let n=t.split("/");if(!n.length)return[];let i=n[0];return"global"===i||"libs"===i?[i]:"scene"===i&&n.length>=2?[`${i}/${n[1]}`]:n.length>=2?[`${n[0]}/${n[1]}`]:[n[0]]}function r$(e,t){if(!t||!(null==e?void 0:e.locales))return{};let r=e.locales[t];if(r)return r;let n=t.toLowerCase();if(n!==t&&e.locales[n])return e.locales[n];let i=t.split("-")[0];if(i&&e.locales[i])return e.locales[i];if(i){let t=i.toLowerCase();if(e.locales[t])return e.locales[t]}return{}}async function rD(e){let t=rE[e];if("function"!=typeof t)throw Error(`[flow-engine] snippet not found: ${e}`);let r=await t(),n=null==r?void 0:r.default,i=(null==n?void 0:n.content)??(null==r?void 0:r.content)??(null==r?void 0:r.body)??"";return"string"==typeof i?i:String(i??"")}async function rN(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"v1",r=arguments.length>2?arguments[2]:void 0,n=[],i=new Set;"string"==typeof e&&e&&i.add(e);try{let r=rA.F.resolve(t,e);(null==r?void 0:r.name)&&i.add(r.name)}catch(e){}return await Promise.all(Object.entries(rE).map(async o=>{let[l,s]=o;if("function"==typeof s)try{let o=await s(),a=(null==o?void 0:o.default)||{},c=(null==a?void 0:a.content)??(null==o?void 0:o.content);if("string"!=typeof c)return;let u=!0;if(Array.isArray(null==a?void 0:a.contexts)&&a.contexts.length){let t=a.contexts.map(e=>"*"===e?"*":"string"==typeof e?e:"function"==typeof e?e.name||"*":e&&"object"==typeof e&&"string"==typeof e.name?e.name:String(e??""));u="*"===e||t.includes("*")||t.some(e=>i.has(e))}if(u&&Array.isArray(null==a?void 0:a.versions)&&a.versions.length&&(u=a.versions.includes("*")||a.versions.includes(t)),!u)return;let d=r$(a,r),h=d.label||(null==a?void 0:a.label)||rT(l),p=d.description??(null==a?void 0:a.description),f=(null==a?void 0:a.prefix)||h,m=rI(a,l),g=rO(a,l);n.push({name:h,prefix:f,description:p,body:c,ref:l,group:m[0],groups:m,scenes:g})}catch(e){return}})),n}var rB=r(52249),rL=r(16639),rq=r(68161),rU=r(50467);let rz="http://json-schema.org/draft-07/schema#";function rV(e){if(Array.isArray(e))return`[${e.map(e=>rV(e)).join(",")}]`;if(_().isPlainObject(e)){let t=Object.entries(e).sort((e,t)=>{let[r]=e,[n]=t;return r.localeCompare(n)}).map(e=>{let[t,r]=e;return`${JSON.stringify(t)}:${rV(r)}`});return`{${t.join(",")}}`}return JSON.stringify(e)??"null"}function rW(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:new WeakSet;if(Array.isArray(e)){if(t.has(e))return e;for(let r of(t.add(e),e))rW(r,t);return Object.freeze(e)}if(!_().isPlainObject(e))return e;let r=e;if(t.has(r))return e;for(let e of(t.add(r),Object.values(r)))rW(e,t);return Object.freeze(r)}function rH(e){let t=0;for(let r=0;r<e.length;r++)t=31*t+e.charCodeAt(r)>>>0;return t.toString(16).padStart(8,"0")}function rK(e,t){return void 0===t?_().cloneDeep(e):void 0===e?_().cloneDeep(t):_().mergeWith({},_().cloneDeep(e),_().cloneDeep(t),(e,t)=>{if(Array.isArray(t))return _().cloneDeep(t)})}function rJ(e,t){if(e||t)return e?t?rK(e,t):_().cloneDeep(e):_().cloneDeep(t)}function rY(e){if(!e||"object"!=typeof e||Array.isArray(e))return;let t=e.slotRules&&"object"==typeof e.slotRules&&!Array.isArray(e.slotRules)?_().pickBy({slotKey:e.slotRules.slotKey,type:e.slotRules.type,allowedUses:Array.isArray(e.slotRules.allowedUses)?e.slotRules.allowedUses.filter(Boolean):e.slotRules.allowedUses},e=>void 0!==e):void 0,r=_().pickBy({slotRules:t&&Object.keys(t).length>0?t:void 0,contextRequirements:Array.isArray(e.contextRequirements)?e.contextRequirements.filter(Boolean):e.contextRequirements,unresolvedReason:e.unresolvedReason,recommendedFallback:e.recommendedFallback},e=>void 0!==e);return Object.keys(r).length>0?r:void 0}function rG(e){let t={...e},r=rY(e["x-flow"]);return r?t["x-flow"]=r:delete t["x-flow"],t}function rZ(e){return Array.isArray(e)?_().uniqBy(e.map(e=>rG(e)),e=>`${e.kind}:${e.path||""}:${e.message}`):[]}function rX(e){return{description:null==e?void 0:e.description,examples:Array.isArray(null==e?void 0:e.examples)?_().cloneDeep(e.examples):[],minimalExample:(null==e?void 0:e.minimalExample)===void 0?void 0:_().cloneDeep(e.minimalExample),commonPatterns:Array.isArray(null==e?void 0:e.commonPatterns)?_().cloneDeep(e.commonPatterns):[],antiPatterns:Array.isArray(null==e?void 0:e.antiPatterns)?_().cloneDeep(e.antiPatterns):[],dynamicHints:rZ(null==e?void 0:e.dynamicHints)}}function rQ(e){return Array.isArray(e)?_().uniq(e.map(e=>String(e||"").trim()).filter(Boolean)):[]}function r0(e,t){let r={...e},n=rY({...e["x-flow"]||{},...t||{}});return n?r["x-flow"]=n:delete r["x-flow"],r}function r1(e){return e?Array.isArray(e.uses)?e.uses.filter(Boolean):e.use?[e.use]:[]:[]}function r2(e){var t,r;let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!e)return;if(void 0!==e.default)return _().cloneDeep(e.default);if(void 0!==e.const)return _().cloneDeep(e.const);if(Array.isArray(e.enum)&&e.enum.length>0)return _().cloneDeep(e.enum[0]);let i=n.depth||0;if(i>4)return;let o=Array.isArray(e.type)?e.type[0]:e.type;if("object"===o||!o&&_().isPlainObject(e.properties)){let t={},r=e.properties||{},n=new Set(e.required||[]);for(let[e,o]of Object.entries(r)){let r=r2(o,{propertyName:e,depth:i+1});(0===i&&["stepParams","subModels","flowRegistry"].includes(e)&&void 0!==r&&(_().isPlainObject(r)&&Object.keys(r).length>0||Array.isArray(r))||n.has(e)||void 0!==o.default||void 0!==o.const)&&void 0!==r&&(t[e]=r)}return t}return"array"===o?[]:"boolean"!==o&&("integer"===o||"number"===o?0:"string"===o?"uid"===(n.propertyName||"value")?"todo-uid":"":(null==(t=e.oneOf)?void 0:t.length)?r2(e.oneOf[0],{propertyName:n.propertyName,depth:i+1}):(null==(r=e.anyOf)?void 0:r.length)?r2(e.anyOf[0],{propertyName:n.propertyName,depth:i+1}):void 0)}function r5(e,t){return"string"==typeof e?e:"number"==typeof e||"boolean"==typeof e?String(e):t}function r3(e){if(!e||"object"!=typeof e||Array.isArray(e))return;let t=_().pickBy({association:"boolean"==typeof e.association?e.association:void 0,fieldTypes:rQ(e.fieldTypes),targetCollectionTemplateIn:rQ(e.targetCollectionTemplateIn),targetCollectionTemplateNotIn:rQ(e.targetCollectionTemplateNotIn)},e=>Array.isArray(e)?e.length>0:void 0!==e);return Object.keys(t).length>0?t:void 0}function r4(e,t){let r=String((null==e?void 0:e.name)||t||"").trim();if(r)return{name:r,inherits:rQ(null==e?void 0:e.inherits)}}function r8(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"official",r=String((null==e?void 0:e.context)||"").trim(),n=String((null==e?void 0:e.use)||"").trim(),i=rQ(null==e?void 0:e.interfaces);if(r&&n&&0!==i.length)return{context:r,use:n,interfaces:i,isDefault:(null==e?void 0:e.isDefault)===!0,order:"number"==typeof(null==e?void 0:e.order)?e.order:void 0,conditions:r3(null==e?void 0:e.conditions),defaultProps:(null==e?void 0:e.defaultProps)===void 0?void 0:_().cloneDeep(e.defaultProps),source:t}}function r6(e,t){var r,n,i;if(t.interface&&!e.interfaces.includes("*")&&!e.interfaces.includes(t.interface))return!1;let o=e.conditions;return!o||!("boolean"==typeof o.association&&void 0!==t.association&&o.association!==t.association||(null==(r=o.fieldTypes)?void 0:r.length)&&t.fieldType&&!o.fieldTypes.includes(t.fieldType)||(null==(n=o.targetCollectionTemplateIn)?void 0:n.length)&&t.targetCollectionTemplate&&!o.targetCollectionTemplateIn.includes(t.targetCollectionTemplate)||(null==(i=o.targetCollectionTemplateNotIn)?void 0:i.length)&&t.targetCollectionTemplate&&o.targetCollectionTemplateNotIn.includes(t.targetCollectionTemplate))}function r9(e){var t,r,n,i,o,l,s;let a={context:e.context,interfaces:_().cloneDeep(e.interfaces),inheritParentFieldBinding:!0};return e.isDefault&&(a.isDefault=!0),"number"==typeof e.order&&(a.order=e.order),"boolean"==typeof(null==(t=e.conditions)?void 0:t.association)&&(a.association=e.conditions.association),(null==(n=e.conditions)||null==(r=n.fieldTypes)?void 0:r.length)&&(a.fieldTypes=_().cloneDeep(e.conditions.fieldTypes)),(null==(o=e.conditions)||null==(i=o.targetCollectionTemplateIn)?void 0:i.length)&&(a.targetCollectionTemplateIn=_().cloneDeep(e.conditions.targetCollectionTemplateIn)),(null==(s=e.conditions)||null==(l=s.targetCollectionTemplateNotIn)?void 0:l.length)&&(a.targetCollectionTemplateNotIn=_().cloneDeep(e.conditions.targetCollectionTemplateNotIn)),a}function r7(e){return Array.isArray(e)?e.map(e=>({slotKey:String((null==e?void 0:e.slotKey)||"").trim(),..."string"==typeof(null==e?void 0:e.use)?{use:e.use.trim()}:Array.isArray(null==e?void 0:e.use)?{use:e.use.map(e=>String(e||"").trim()).filter(Boolean)}:{}})).filter(e=>!!e.slotKey):[]}function ne(e){if(!e||"object"!=typeof e||Array.isArray(e))return;let t=_().pickBy({stepParamsSchema:e.stepParamsSchema?_().cloneDeep(e.stepParamsSchema):void 0,flowRegistrySchema:e.flowRegistrySchema?_().cloneDeep(e.flowRegistrySchema):void 0,flowRegistrySchemaPatch:e.flowRegistrySchemaPatch?_().cloneDeep(e.flowRegistrySchemaPatch):void 0,subModelSlots:nn(e.subModelSlots),docs:e.docs?rX(e.docs):void 0,examples:Array.isArray(e.examples)?_().cloneDeep(e.examples):void 0,skeleton:void 0===e.skeleton?void 0:_().cloneDeep(e.skeleton),dynamicHints:Array.isArray(e.dynamicHints)?rZ(e.dynamicHints):void 0},e=>void 0!==e&&(!Array.isArray(e)||e.length>0));return Object.keys(t).length>0?t:void 0}function nt(e){if(!Array.isArray(e))return;let t=e.map(e=>{let t=r7(null==e?void 0:e.path),r=ne(null==e?void 0:e.patch);if(r)return{path:t,patch:r}}).filter(Boolean);return t.length>0?t:void 0}function nr(e){if(!e||"object"!=typeof e||Array.isArray(e))return;let t=ne(e);if(t)return t;let r=Object.entries(e).map(e=>{let[t,r]=e;return[String(t||"").trim(),ne(r)]}).filter(e=>{let[t,r]=e;return!!t&&!!r});if(r.length)return Object.fromEntries(r)}function nn(e){if(!e||"object"!=typeof e||Array.isArray(e))return;let t=Object.entries(e).map(e=>{let[t,r]=e;if(!(null==r?void 0:r.type))return;let n={type:r.type},i="string"==typeof r.use?r.use.trim():void 0;i&&(n.use=i);let o=Array.isArray(r.uses)?r.uses.map(e=>String(e||"").trim()).filter(Boolean):void 0;(null==o?void 0:o.length)&&(n.uses=o),void 0!==r.required&&(n.required=r.required),"array"===r.type&&"number"==typeof r.minItems&&Number.isFinite(r.minItems)&&(n.minItems=Math.max(0,Math.trunc(r.minItems))),void 0!==r.dynamic&&(n.dynamic=r.dynamic),r.schema&&(n.schema=_().cloneDeep(r.schema)),"string"==typeof r.fieldBindingContext&&r.fieldBindingContext.trim()&&(n.fieldBindingContext=r.fieldBindingContext.trim());let l=nr(r.childSchemaPatch);l&&(n.childSchemaPatch=l);let s=nt(r.descendantSchemaPatches);return(null==s?void 0:s.length)&&(n.descendantSchemaPatches=s),void 0!==r.description&&(n.description=r.description),[t,n]}).filter(Boolean);return t.length>0?Object.fromEntries(t):void 0}function ni(e,t){let r=r7(e.path);return r.length===t.length&&r.every((e,r)=>{let n=t[r];return e.slotKey===n.slotKey&&(void 0===e.use||("string"==typeof e.use?e.use===n.childUse:e.use.includes(n.childUse)))})}function no(e,t){let r=e.childSchemaPatch;if(!r||"object"!=typeof r||Array.isArray(r))return;let n=ne(r);return n||ne(r[t])}function nl(e,t,r,n){var i,o,l,s,a,c,u,d,h,p,f;e.stepParamsSchema=rJ(e.stepParamsSchema,t.stepParamsSchema),e.flowRegistrySchema=rJ(e.flowRegistrySchema,t.flowRegistrySchema),e.flowRegistrySchemaPatch=rJ(e.flowRegistrySchemaPatch,t.flowRegistrySchemaPatch),e.subModelSlots=nn(t.subModelSlots?rK(e.subModelSlots||{},t.subModelSlots):e.subModelSlots),e.docs=rX({...e.docs,...t.docs,examples:(null==(i=t.docs)?void 0:i.examples)||(null==(o=e.docs)?void 0:o.examples),dynamicHints:[...(null==(l=e.docs)?void 0:l.dynamicHints)||[],...(null==(s=t.docs)?void 0:s.dynamicHints)||[]],commonPatterns:(null==(a=t.docs)?void 0:a.commonPatterns)||(null==(c=e.docs)?void 0:c.commonPatterns),antiPatterns:(null==(u=t.docs)?void 0:u.antiPatterns)||(null==(d=e.docs)?void 0:d.antiPatterns),minimalExample:(null==(h=t.docs)?void 0:h.minimalExample)!==void 0?t.docs.minimalExample:null==(p=e.docs)?void 0:p.minimalExample}),e.examples=Array.isArray(t.examples)?_().cloneDeep(t.examples):e.examples,e.skeleton=void 0!==t.skeleton?rK(e.skeleton,t.skeleton):e.skeleton,e.dynamicHints=rZ([...e.dynamicHints||[],...t.dynamicHints||[],...(null==(f=t.docs)?void 0:f.dynamicHints)||[]]),(t.stepParamsSchema||t.flowRegistrySchema||t.flowRegistrySchemaPatch||t.subModelSlots)&&(e.coverage={...e.coverage,status:"unresolved"===e.coverage.status?"manual":"auto"===e.coverage.status?"mixed":e.coverage.status,source:"third-party"===e.coverage.source?r:e.coverage.source,strict:e.coverage.strict??n})}function ns(e,t,r,n){if(!t||"object"!=typeof t||Array.isArray(t))return{type:"object",additionalProperties:!0};"function"==typeof t["x-component"]&&n.push(r0({kind:"custom-component",path:r,message:`${e} uses a custom component and needs manual schema review.`},{unresolvedReason:"function-x-component",recommendedFallback:{type:"object",additionalProperties:!0}}));let i=t["x-reactions"];i&&(Array.isArray(i)&&i.some(e=>"function"==typeof e)||"function"==typeof i)&&n.push(r0({kind:"x-reactions",path:r,message:`${e} contains function-based x-reactions and only static schema is generated.`},{unresolvedReason:"function-x-reactions"}));let o={},l=t.type;l&&(o.type=l),t.description&&(o.description=t.description),void 0!==t.default&&(o.default=_().cloneDeep(t.default)),t.enum&&(Array.isArray(t.enum)&&t.enum.every(e=>_().isPlainObject(e)&&"value"in e)?o.enum=t.enum.map(e=>e.value):o.enum=_().cloneDeep(t.enum)),void 0!==t.const&&(o.const=_().cloneDeep(t.const)),!0===t.required&&(o.__required=!0);let s=t["x-validator"];if(_().isPlainObject(s))void 0!==s.minimum&&(o.minimum=s.minimum),void 0!==s.maximum&&(o.maximum=s.maximum),void 0!==s.minLength&&(o.minLength=s.minLength),void 0!==s.maxLength&&(o.maxLength=s.maxLength),void 0!==s.pattern&&(o.pattern=s.pattern);else if(Array.isArray(s))for(let e of s)_().isPlainObject(e)&&Object.assign(o,_().pick(e,["minimum","maximum","minLength","maxLength","pattern"]));else"string"==typeof s&&("integer"===s&&(o.type="integer"),"email"===s&&(o.format="email"),"url"===s&&(o.format="uri"),"uid"===s&&(o.pattern="^[A-Za-z0-9_-]+$"));if(t.properties&&_().isPlainObject(t.properties)){o.type=o.type||"object",o.properties={};let e=[];for(let[i,l]of Object.entries(t.properties)){let t=ns(i,l,`${r}.${i}`,n);t.__required&&(e.push(i),delete t.__required),o.properties[i]=t}e.length&&(o.required=e),o.additionalProperties=!1}return t.items&&(o.type=o.type||"array",_().isPlainObject(t.items)?o.items=ns(`${e}.items`,t.items,`${r}.items`,n):Array.isArray(t.items)&&(o.items=t.items.map((t,i)=>ns(`${e}.items[${i}]`,t,`${r}.items[${i}]`,n)))),o.type||(o.type="object",o.additionalProperties=!0),o}function na(e,t,r){let n=[];if(!t)return{schema:void 0,hints:n,coverage:"unresolved"};if("function"==typeof t)return n.push(r0({kind:"dynamic-ui-schema",path:r,message:`${e} uses function-based uiSchema and requires manual schema patch.`},{unresolvedReason:"function-ui-schema",recommendedFallback:{type:"object",additionalProperties:!0}})),{schema:{type:"object",additionalProperties:!0},hints:n,coverage:"unresolved"};let i={},o=[];for(let[e,l]of Object.entries(t)){let t=ns(e,l,`${r}.${e}`,n);t.__required&&(o.push(e),delete t.__required),i[e]=t}return{schema:{type:"object",properties:i,...o.length?{required:o}:{},additionalProperties:!1},hints:n,coverage:n.length?"mixed":"auto"}}class nc{invalidateDerivedCaches(){this.resolvedModelCache.clear(),this.modelSnapshotSchemaCache.clear(),this.compactModelSnapshotSchemaCache.clear(),this.modelSchemaHashCache.clear(),this.compactModelSchemaHashCache.clear(),this.modelDocumentCache.clear(),this.modelLocalDynamicHintsCache.clear(),this.publicModelDocumentCache.clear()}registerAction(e){var t,r,n,i;let o=String((null==e?void 0:e.name)||"").trim();if(!o)return;let l=this.actionSchemas.get(o),s=na(o,e.uiSchema,`actions.${o}`),a=rJ(e.paramsSchema||s.schema,e.paramsSchemaPatch),c=e.paramsSchema||e.paramsSchemaPatch?s.schema?"mixed":"manual":s.coverage,u=rX({...null==l?void 0:l.docs,...e.schemaDocs,examples:(null==(t=e.schemaDocs)?void 0:t.examples)||(null==l||null==(r=l.docs)?void 0:r.examples),dynamicHints:[...(null==l||null==(n=l.docs)?void 0:n.dynamicHints)||[],...(null==(i=e.schemaDocs)?void 0:i.dynamicHints)||[]]});this.actionSchemas.set(o,{name:o,title:e.title,definition:e,schema:a,coverage:{status:a?c:"unresolved",source:(null==l?void 0:l.coverage.source)||"official",strict:null==l?void 0:l.coverage.strict},docs:u,dynamicHints:rZ([...(null==l?void 0:l.dynamicHints)||[],...s.hints||[],...u.dynamicHints||[]])}),this.invalidateDerivedCaches()}registerActions(e){for(let t of Object.values(e||{}))this.registerAction(t)}registerActionContribution(e){var t,r,n,i,o,l,s,a,c,u;let d=String((null==e?void 0:e.name)||"").trim();if(!d)return;let h=this.actionSchemas.get(d),p=rX({...null==h?void 0:h.docs,...e.docs,examples:(null==(t=e.docs)?void 0:t.examples)||(null==h||null==(r=h.docs)?void 0:r.examples),dynamicHints:[...(null==h||null==(n=h.docs)?void 0:n.dynamicHints)||[],...(null==(i=e.docs)?void 0:i.dynamicHints)||[]],commonPatterns:(null==(o=e.docs)?void 0:o.commonPatterns)||(null==h||null==(l=h.docs)?void 0:l.commonPatterns),antiPatterns:(null==(s=e.docs)?void 0:s.antiPatterns)||(null==h||null==(a=h.docs)?void 0:a.antiPatterns),minimalExample:(null==(c=e.docs)?void 0:c.minimalExample)!==void 0?e.docs.minimalExample:null==h||null==(u=h.docs)?void 0:u.minimalExample});this.actionSchemas.set(d,{name:d,title:e.title||(null==h?void 0:h.title),definition:null==h?void 0:h.definition,schema:e.paramsSchema?_().cloneDeep(e.paramsSchema):null==h?void 0:h.schema,docs:p,coverage:{status:e.paramsSchema?"manual":(null==h?void 0:h.coverage.status)||"unresolved",source:e.source||(null==h?void 0:h.coverage.source)||"official",strict:e.strict??(null==h?void 0:h.coverage.strict)},dynamicHints:rZ([...(null==h?void 0:h.dynamicHints)||[],...p.dynamicHints||[]])}),this.invalidateDerivedCaches()}registerActionContributions(e){for(let t of Array.isArray(e)?e:Object.values(e||{}))this.registerActionContribution(t)}registerFieldBindingContext(e,t){let r=r4(e,t);if(!r)return;let n=this.fieldBindingContexts.get(r.name);this.fieldBindingContexts.set(r.name,{name:r.name,inherits:_().uniq([...(null==n?void 0:n.inherits)||[],...r.inherits])}),this.invalidateDerivedCaches()}registerFieldBindingContexts(e){if(e){if(Array.isArray(e)){for(let t of e)this.registerFieldBindingContext(t);return}for(let[t,r]of Object.entries(e))r&&this.registerFieldBindingContext(r,t)}}registerFieldBinding(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"official",r=r8(e,t);if(!r)return;let n=this.fieldBindings.get(r.context)||[];n.push(r),this.fieldBindings.set(r.context,n),this.invalidateDerivedCaches()}registerFieldBindings(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"official";if(e){if(Array.isArray(e)){for(let r of e)this.registerFieldBinding(r,t);return}for(let[r,n]of Object.entries(e))if(n)for(let e of Array.isArray(n)?n:[n])this.registerFieldBinding({...e,context:e.context||r},t)}}registerModel(e,t){var r,n,i,o,l,s,a,c,u,d;let h=String(e||"").trim();if(!h)return;let p=this.modelSchemas.get(h);this.modelSchemas.set(h,{use:h,title:t.title||(null==p?void 0:p.title),modelClass:t.modelClass||(null==p?void 0:p.modelClass),stepParamsSchema:t.stepParamsSchema||(null==p?void 0:p.stepParamsSchema),flowRegistrySchema:t.flowRegistrySchema||(null==p?void 0:p.flowRegistrySchema),subModelSlots:nn(t.subModelSlots||(null==p?void 0:p.subModelSlots)),flowRegistrySchemaPatch:t.flowRegistrySchemaPatch||(null==p?void 0:p.flowRegistrySchemaPatch),examples:t.examples||(null==p?void 0:p.examples)||[],docs:rX({...null==p?void 0:p.docs,...t.docs,examples:(null==(r=t.docs)?void 0:r.examples)||(null==p||null==(n=p.docs)?void 0:n.examples),dynamicHints:[...(null==p||null==(i=p.docs)?void 0:i.dynamicHints)||[],...(null==(o=t.docs)?void 0:o.dynamicHints)||[]],commonPatterns:(null==(l=t.docs)?void 0:l.commonPatterns)||(null==p||null==(s=p.docs)?void 0:s.commonPatterns),antiPatterns:(null==(a=t.docs)?void 0:a.antiPatterns)||(null==p||null==(c=p.docs)?void 0:c.antiPatterns),minimalExample:(null==(u=t.docs)?void 0:u.minimalExample)!==void 0?t.docs.minimalExample:null==p||null==(d=p.docs)?void 0:d.minimalExample}),skeleton:void 0!==t.skeleton?_().cloneDeep(t.skeleton):null==p?void 0:p.skeleton,dynamicHints:rZ([...(null==p?void 0:p.dynamicHints)||[],...t.dynamicHints||[]]),coverage:t.coverage||(null==p?void 0:p.coverage)||{status:"unresolved",source:"third-party"},exposure:t.exposure??(null==p?void 0:p.exposure)??"public",abstract:t.abstract??(null==p?void 0:p.abstract)??!1,allowDirectUse:t.allowDirectUse??(null==p?void 0:p.allowDirectUse)??!0,suggestedUses:rQ(t.suggestedUses||(null==p?void 0:p.suggestedUses))}),this.invalidateDerivedCaches()}registerModelContribution(e){var t,r,n,i,o,l,s,a,c,u;let d=String((null==e?void 0:e.use)||"").trim();if(!d)return;let h=this.modelSchemas.get(d),p=!!e.stepParamsSchema||!!e.flowRegistrySchema||!!e.flowRegistrySchemaPatch||!!e.subModelSlots,f=rX({...null==h?void 0:h.docs,...e.docs,examples:e.examples||(null==(t=e.docs)?void 0:t.examples)||(null==h||null==(r=h.docs)?void 0:r.examples),dynamicHints:[...(null==h||null==(n=h.docs)?void 0:n.dynamicHints)||[],...(null==(i=e.docs)?void 0:i.dynamicHints)||[]],commonPatterns:(null==(o=e.docs)?void 0:o.commonPatterns)||(null==h||null==(l=h.docs)?void 0:l.commonPatterns),antiPatterns:(null==(s=e.docs)?void 0:s.antiPatterns)||(null==h||null==(a=h.docs)?void 0:a.antiPatterns),minimalExample:(null==(c=e.docs)?void 0:c.minimalExample)!==void 0?e.docs.minimalExample:null==h||null==(u=h.docs)?void 0:u.minimalExample});this.registerModel(d,{title:e.title,stepParamsSchema:e.stepParamsSchema?_().cloneDeep(e.stepParamsSchema):void 0,flowRegistrySchema:e.flowRegistrySchema?_().cloneDeep(e.flowRegistrySchema):void 0,subModelSlots:e.subModelSlots?nn(e.subModelSlots):void 0,flowRegistrySchemaPatch:e.flowRegistrySchemaPatch?_().cloneDeep(e.flowRegistrySchemaPatch):void 0,examples:e.examples||f.examples||[],docs:f,skeleton:e.skeleton,dynamicHints:[...e.dynamicHints||[],...f.dynamicHints||[]],coverage:p?{status:(null==h?void 0:h.coverage.status)==="auto"?"mixed":"manual",source:e.source||(null==h?void 0:h.coverage.source)||"official",strict:e.strict??(null==h?void 0:h.coverage.strict)}:(null==h?void 0:h.coverage)||{status:"unresolved",source:e.source||"official",strict:e.strict},exposure:e.exposure,abstract:e.abstract,allowDirectUse:e.allowDirectUse,suggestedUses:e.suggestedUses})}registerModelContributions(e){for(let t of Array.isArray(e)?e:Object.values(e||{}))this.registerModelContribution(t)}registerModelClass(e,t){var r,n;let i=t.meta||{},o=i.schema||{},l=this.inferSubModelSlotsFromModelClass(e,t),s=this.collectModelDynamicHints(e,t,i),a=!!o.stepParamsSchema||!!o.flowRegistrySchema||!!o.subModelSlots||!!o.flowRegistrySchemaPatch,c=!!Object.keys(l).length;this.registerModel(e,{modelClass:t,title:r5(i.label,e),stepParamsSchema:o.stepParamsSchema,flowRegistrySchema:o.flowRegistrySchema,subModelSlots:Object.keys(o.subModelSlots||{}).length?o.subModelSlots:l,flowRegistrySchemaPatch:o.flowRegistrySchemaPatch,examples:o.examples||(null==(r=o.docs)?void 0:r.examples)||[],docs:o.docs,skeleton:o.skeleton,dynamicHints:[...o.dynamicHints||[],...(null==(n=o.docs)?void 0:n.dynamicHints)||[],...s],coverage:{status:a&&c?"mixed":a?"manual":c?"auto":"unresolved",source:o.source||"official",strict:o.strict},exposure:o.exposure,abstract:o.abstract,allowDirectUse:o.allowDirectUse,suggestedUses:o.suggestedUses})}registerModels(e){for(let[t,r]of Object.entries(e||{}))r&&this.registerModelClass(t,r)}registerInventory(e,t){if(e){for(let t of rQ(e.publicTreeRoots))this.publicTreeRoots.add(t);for(let t of e.slotUseExpansions||[]){let e=String((null==t?void 0:t.parentUse)||"").trim(),r=String((null==t?void 0:t.slotKey)||"").trim(),n=rQ(null==t?void 0:t.uses);if(!e||!r||0===n.length)continue;let i=this.createSlotUseExpansionKey(e,r);this.slotUseExpansions.set(i,_().uniq([...this.slotUseExpansions.get(i)||[],...n]))}this.invalidateDerivedCaches()}}resolveFieldBindingCandidates(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=this.resolveFieldBindingContextChain(e).flatMap((e,t)=>(this.fieldBindings.get(e)||[]).map((e,r)=>({binding:e,contextIndex:t,bindingIndex:r}))).filter(e=>{let{binding:r}=e;return r6(r,t)}).filter(e=>{let{binding:t}=e;return this.hasQueryableModel(t.use)}).sort((e,t)=>{if(e.binding.isDefault!==t.binding.isDefault)return e.binding.isDefault?-1:1;let r="number"==typeof e.binding.order?e.binding.order:Number.MAX_SAFE_INTEGER,n="number"==typeof t.binding.order?t.binding.order:Number.MAX_SAFE_INTEGER;return r!==n?r-n:e.contextIndex!==t.contextIndex?e.contextIndex-t.contextIndex:e.bindingIndex-t.bindingIndex}).map(e=>{let{binding:t}=e;return{use:t.use,defaultProps:void 0===t.defaultProps?void 0:_().cloneDeep(t.defaultProps),compatibility:r9(t)}});return _().uniqBy(r,e=>`${e.use}:${rV(e.compatibility)}`)}getAction(e){return this.actionSchemas.get(e)}listActionNames(){return Array.from(this.actionSchemas.keys()).sort()}getModel(e){return this.modelSchemas.get(e)}resolveFieldBindingContextChain(e){var t;let r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:new Set,n=String(e||"").trim();if(!n||r.has(n))return[];r.add(n);let i=[n];for(let e of(null==(t=this.fieldBindingContexts.get(n))?void 0:t.inherits)||[])for(let t of this.resolveFieldBindingContextChain(e,r))i.includes(t)||i.push(t);return i}resolveModelSchemaRef(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],r=String(e||"").trim(),n=`${r}::${rV(t)}`,i=this.resolvedModelCache.get(n);if(i)return i;let o=this.modelSchemas.get(r),l={use:r,title:(null==o?void 0:o.title)||r,modelClass:null==o?void 0:o.modelClass,stepParamsSchema:(null==o?void 0:o.stepParamsSchema)?_().cloneDeep(o.stepParamsSchema):this.buildInferredStepParamsSchema(r),flowRegistrySchema:(null==o?void 0:o.flowRegistrySchema)?_().cloneDeep(o.flowRegistrySchema):this.buildInferredFlowRegistrySchema(r),subModelSlots:nn(null==o?void 0:o.subModelSlots),flowRegistrySchemaPatch:(null==o?void 0:o.flowRegistrySchemaPatch)?_().cloneDeep(o.flowRegistrySchemaPatch):void 0,examples:_().cloneDeep((null==o?void 0:o.examples)||[]),docs:rX(null==o?void 0:o.docs),skeleton:(null==o?void 0:o.skeleton)===void 0?void 0:_().cloneDeep(o.skeleton),dynamicHints:rZ(null==o?void 0:o.dynamicHints),coverage:(null==o?void 0:o.coverage)||{status:"unresolved",source:"third-party"},exposure:(null==o?void 0:o.exposure)||"public",abstract:(null==o?void 0:o.abstract)??!1,allowDirectUse:(null==o?void 0:o.allowDirectUse)??!0,suggestedUses:rQ(null==o?void 0:o.suggestedUses)};for(let e of this.collectContextPatches(r,t))nl(l,e.patch,e.source,e.strict);let s=rW(l);return this.resolvedModelCache.set(n,s),s}resolveModelSchema(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return _().cloneDeep(this.resolveModelSchemaRef(e,t))}isPublicModel(e){return"public"===((null==e?void 0:e.exposure)||"public")}isQueryableModel(e){return!!e&&!0!==e.abstract}getSuggestedUses(e){var t;let r=this.modelSchemas.get(String(e||"").trim());return(null==r||null==(t=r.suggestedUses)?void 0:t.length)?rQ(r.suggestedUses):this.listModelUses({directUseOnly:!0}).filter(t=>t!==e).slice(0,20)}hasQueryableModel(e){let t=this.modelSchemas.get(String(e||"").trim());return this.isQueryableModel(t)}isDirectUseAllowed(e){let t=this.modelSchemas.get(String(e||"").trim());return!t||this.isQueryableModel(t)&&!1!==t.allowDirectUse}listPublicTreeRoots(){return Array.from(this.publicTreeRoots).sort()}listModelUses(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},{publicOnly:t=!1,directUseOnly:r=!1,queryableOnly:n=!1}=e;return Array.from(this.modelSchemas.values()).filter(e=>!t||this.isPublicModel(e)&&this.isQueryableModel(e)).filter(e=>!n||this.isQueryableModel(e)).filter(e=>!r||this.isQueryableModel(e)&&!1!==e.allowDirectUse).map(e=>e.use).sort()}getSchemaBundle(e){return{items:(Array.isArray(e)&&e.length>0?e.filter(e=>this.hasQueryableModel(e)):[]).map(e=>this.buildBundleNode(e,[],new Set))}}getModelDocument(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return _().cloneDeep(this.getModelDocumentRef(e,t))}getModelDocumentRef(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],r=this.createContextVisitKey(e,t),n=this.modelDocumentCache.get(r);if(n)return n;let i=rW(this.buildModelDocument(e,t,new Set));return this.modelDocumentCache.set(r,i),i}getPublicModelDocument(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return _().cloneDeep(this.getPublicModelDocumentRef(e,t))}getPublicModelDocumentRef(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r="full"===t.detail?"full":"compact",n=t.contextChain||[],i=`${r}::${this.createContextVisitKey(e,n)}`,o=this.publicModelDocumentCache.get(i);if(o)return o;let l=rW("full"===r?this.buildFullPublicModelDocument(e,n):this.buildCompactPublicModelDocument(e,n));return this.publicModelDocumentCache.set(i,l),l}buildFullPublicModelDocument(e,t){let r=this.getModelDocumentRef(e,t);return{use:r.use,title:r.title,jsonSchema:r.jsonSchema,dynamicHints:r.dynamicHints,minimalExample:r.minimalExample,commonPatterns:r.commonPatterns,antiPatterns:r.antiPatterns,hash:r.hash,source:r.source}}buildCompactPublicModelDocument(e,t){var r,n,i,o;let l=this.resolveModelSchemaRef(e,t),s=this.buildCompactModelSnapshotSchemaRef(e,t),a=_().cloneDeep((null==l||null==(r=l.docs)?void 0:r.minimalExample)??(null==l||null==(n=l.examples)?void 0:n[0])??(null==l?void 0:l.skeleton)??r2(s));return{use:e,title:(null==l?void 0:l.title)||e,jsonSchema:s,dynamicHints:[...this.getModelLocalDynamicHintsRef(e,t)],minimalExample:a,commonPatterns:_().cloneDeep((null==l||null==(i=l.docs)?void 0:i.commonPatterns)||[]),antiPatterns:_().cloneDeep((null==l||null==(o=l.docs)?void 0:o.antiPatterns)||[]),hash:this.getCompactModelSchemaHash(e,t),source:((null==l?void 0:l.coverage)||{source:"third-party"}).source}}getModelLocalDynamicHintsRef(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],r=this.createContextVisitKey(e,t),n=this.modelLocalDynamicHintsCache.get(r);if(n)return n;let i=rW(this.buildModelLocalDynamicHints(e,t));return this.modelLocalDynamicHintsCache.set(r,i),i}buildModelLocalDynamicHints(e,t){let r=this.resolveModelSchemaRef(e,t),n=r.coverage||{status:"unresolved",source:"third-party"},i=this.collectFlowSchemaDiagnostics(e),o=Object.entries((null==r?void 0:r.subModelSlots)||{}).map(t=>{let[r,n]=t,i=this.resolveSlotAllowedUses(e,r,n);return r0({kind:n.dynamic||n.fieldBindingContext?"dynamic-children":"manual-schema-required",path:`${e}.subModels.${r}`,message:n.description||`${e}.subModels.${r} accepts ${n.type}${i.length?`: ${i.join(", ")}`:""}.`},{slotRules:{slotKey:r,type:n.type,allowedUses:i}})}),l=this.buildDocumentCoverage(n,i.statuses);return rZ([...(null==r?void 0:r.dynamicHints)||[],...o,...i.hints,..."unresolved"===l.status?[r0({kind:"unresolved-model",path:e,message:`${e} has no registered server-safe schema contribution yet.`},{unresolvedReason:"missing-model-contribution",recommendedFallback:{use:e}})]:[]])}getModelSchemaHash(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],r=this.createContextVisitKey(e,t),n=this.modelSchemaHashCache.get(r);if(n)return n;let i=rH(rV(this.buildModelSnapshotSchemaRef(e,t)));return this.modelSchemaHashCache.set(r,i),i}getCompactModelSchemaHash(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],r=this.createContextVisitKey(e,t),n=this.compactModelSchemaHashCache.get(r);if(n)return n;let i=rH(rV(this.buildCompactModelSnapshotSchemaRef(e,t)));return this.compactModelSchemaHashCache.set(r,i),i}createSlotUseExpansionKey(e,t){return`${e}::${t}`}getSlotUseExpansionUses(e,t){return this.slotUseExpansions.get(this.createSlotUseExpansionKey(e,t))||[]}resolveSlotAllowedUses(e,t,r){return r?r.fieldBindingContext?_().uniq(this.resolveFieldBindingCandidates(r.fieldBindingContext).map(e=>e.use)):_().uniq([...r1(r),...this.getSlotUseExpansionUses(e,t)]):[]}buildModelDocument(e,t,r){var n,i,o,l;let s=this.resolveModelSchemaRef(e,t),a=s.coverage||{status:"unresolved",source:"third-party"},c=this.collectFlowSchemaDiagnostics(e),u=this.buildDocumentCoverage(a,c.statuses),d=rZ([...this.getModelLocalDynamicHintsRef(e,t),...this.collectNestedDocumentHints(e,t,r)]),h=this.buildModelSnapshotSchemaRef(e,t),p=_().cloneDeep((null==s?void 0:s.skeleton)??r2(h)),f=_().cloneDeep((null==s||null==(n=s.docs)?void 0:n.minimalExample)??(null==s||null==(i=s.examples)?void 0:i[0])??p),m=this.getModelSchemaHash(e,t);return{use:e,title:(null==s?void 0:s.title)||e,jsonSchema:h,coverage:u,dynamicHints:d,examples:(null==s?void 0:s.examples)||[],minimalExample:f,commonPatterns:_().cloneDeep((null==s||null==(o=s.docs)?void 0:o.commonPatterns)||[]),antiPatterns:_().cloneDeep((null==s||null==(l=s.docs)?void 0:l.antiPatterns)||[]),skeleton:p,hash:m,source:u.source}}buildBundleNode(e,t,r,n){let i=this.resolveModelSchemaRef(e,t),o=this.createContextVisitKey(e,t),l={use:e,title:(null==i?void 0:i.title)||e};if(n&&(l.compatibility=_().cloneDeep(n)),r.has(o)||this.isContextCycle(e,t))return l;r.add(o);try{let n=this.buildBundleSubModelCatalog(e,null==i?void 0:i.subModelSlots,t,r);return n&&Object.keys(n).length>0&&(l.subModelCatalog=n),l}finally{r.delete(o)}}buildBundleSubModelCatalog(e,t,r,n){if(!t||0===Object.keys(t).length)return;let i=Object.entries(t).map(t=>{let[i,o]=t,l={parentUse:e,slotKey:i},s=o.fieldBindingContext?this.resolveFieldBindingCandidates(o.fieldBindingContext):[],a=s.length>0?_().uniq(s.map(e=>e.use)):this.resolveSlotAllowedUses(e,i,o),c={type:o.type,candidates:s.length>0?s.map(e=>this.buildBundleNode(e.use,[...r,{...l,childUse:e.use}],n,e.compatibility)):a.map(e=>this.buildBundleNode(e,[...r,{...l,childUse:e}],n))};return void 0!==o.required&&(c.required=o.required),"array"===o.type&&"number"==typeof o.minItems&&(c.minItems=o.minItems),0===a.length&&(c.open=!0),[i,c]});return i.length?Object.fromEntries(i):void 0}createContextVisitKey(e,t){return`${e}::${rV(t)}`}isContextCycle(e,t){return!!t.length&&[t[0].parentUse,...t.slice(0,-1).map(e=>e.childUse)].includes(e)}buildModelSnapshotSchema(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return _().cloneDeep(this.buildModelSnapshotSchemaRef(e,t))}buildCompactModelSnapshotSchema(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return _().cloneDeep(this.buildCompactModelSnapshotSchemaRef(e,t))}buildModelSnapshotSchemaRef(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],r=this.createContextVisitKey(e,t),n=this.modelSnapshotSchemaCache.get(r);if(n)return n;let i=rW(this.buildModelSnapshotSchemaInternal(e,t,new Set));return this.modelSnapshotSchemaCache.set(r,i),i}buildCompactModelSnapshotSchemaRef(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],r=this.createContextVisitKey(e,t),n=this.compactModelSnapshotSchemaCache.get(r);if(n)return n;let i=rW(this.buildCompactModelSnapshotSchemaInternal(e,t));return this.compactModelSnapshotSchemaCache.set(r,i),i}buildCompactModelSnapshotSchemaInternal(e,t){let r=this.resolveModelSchemaRef(e,t),n=this.buildCompactSubModelsSchemaFromSlots(e,null==r?void 0:r.subModelSlots,t);return this.buildSnapshotShellSchema(e,r,n)}buildModelSnapshotSchemaInternal(e,t,r){let n=this.resolveModelSchemaRef(e,t),i=this.createContextVisitKey(e,t);if(r.has(i)||this.isContextCycle(e,t))return this.buildTruncatedSnapshotSchema(e,n);r.add(i);try{return this.buildSnapshotSchemaFromResolved(e,n,t,r)}finally{r.delete(i)}}buildSnapshotSchemaFromResolved(e,t,r,n){let i=this.buildSubModelsSchemaFromSlots(e||"",null==t?void 0:t.subModelSlots,r,n);return this.buildSnapshotShellSchema(e,t,i)}buildSnapshotShellSchema(e,t,r){let n=(null==t?void 0:t.flowRegistrySchema)||{type:"object",additionalProperties:!0};return{$schema:rz,type:"object",properties:{uid:{type:"string"},use:e?{const:e}:{type:"string"},async:{type:"boolean"},parentId:{type:"string"},subKey:{type:"string"},subType:{type:"string",enum:["object","array"]},sortIndex:{type:"number"},stepParams:(null==t?void 0:t.stepParamsSchema)||{type:"object",additionalProperties:!0},flowRegistry:rJ(n,null==t?void 0:t.flowRegistrySchemaPatch)||{type:"object",additionalProperties:!0},subModels:r},required:["uid","use"],additionalProperties:!0}}buildTruncatedSnapshotSchema(e,t){return this.buildSnapshotShellSchema(e,t,{type:"object",additionalProperties:!0})}buildStaticFlowRegistrySchema(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],r=this.resolveModelSchemaRef(e,t),n=rJ(null==r?void 0:r.flowRegistrySchema,null==r?void 0:r.flowRegistrySchemaPatch);return n?_().cloneDeep(n):{type:"object",additionalProperties:!0}}buildStaticStepParamsSchema(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],r=this.resolveModelSchemaRef(e,t);return(null==r?void 0:r.stepParamsSchema)?_().cloneDeep(r.stepParamsSchema):{type:"object",additionalProperties:!0}}buildSubModelsSchema(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],r=this.resolveModelSchemaRef(e,t);return this.buildSubModelsSchemaFromSlots(e,null==r?void 0:r.subModelSlots,t,new Set)}buildCompactSubModelsSchemaFromSlots(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[];if(!t||0===Object.keys(t).length)return{type:"object",additionalProperties:!0};let n={},i=[];for(let[o,l]of Object.entries(t)){let t=this.buildCompactSlotTargetSchema(e,o,l,r);n[o]="array"===l.type?{type:"array",..."number"==typeof l.minItems?{minItems:l.minItems}:{},items:t}:t,l.required&&i.push(o)}return{type:"object",properties:n,...i.length?{required:i}:{},additionalProperties:!0}}buildSubModelsSchemaFromSlots(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],n=arguments.length>3?arguments[3]:void 0;if(!t||0===Object.keys(t).length)return{type:"object",additionalProperties:!0};let i={},o=[];for(let[l,s]of Object.entries(t)){let t=this.buildSlotTargetSchema(e,l,s,r,n);i[l]="array"===s.type?{type:"array",..."number"==typeof s.minItems?{minItems:s.minItems}:{},items:t}:t,s.required&&o.push(l)}return{type:"object",properties:i,...o.length?{required:o}:{},additionalProperties:!0}}buildInferredFlowRegistrySchema(e){var t,r;let n=this.modelSchemas.get(e),i=null==n?void 0:n.modelClass,o=null==i||null==(r=i.globalFlowRegistry)||null==(t=r.getFlows)?void 0:t.call(r);if(!(null==o?void 0:o.size))return;let l={};for(let[e,t]of o.entries()){let r={};for(let[e,n]of Object.entries((null==t?void 0:t.steps)||{}))r[e]=this.buildStepDefinitionSchema(n);l[e]={type:"object",properties:{key:{type:"string"},title:{type:"string"},manual:{type:"boolean"},sort:{type:"number"},on:this.buildFlowOnSchema(),steps:{type:"object",properties:r,additionalProperties:!1}},additionalProperties:!0}}return{type:"object",properties:l,additionalProperties:!0}}buildInferredStepParamsSchema(e){var t,r;let n=this.modelSchemas.get(e),i=null==n?void 0:n.modelClass,o=null==i||null==(r=i.globalFlowRegistry)||null==(t=r.getFlows)?void 0:t.call(r);if(!(null==o?void 0:o.size))return;let l={};for(let[t,r]of o.entries()){let n={};for(let[i,o]of Object.entries((null==r?void 0:r.steps)||{})){let r=this.resolveStepParamsSchema(o,`${e}.${t}.${i}`);n[i]=r.schema||{type:"object",additionalProperties:!0}}l[t]={type:"object",properties:n,additionalProperties:!1}}return{type:"object",properties:l,additionalProperties:!0}}buildFlowOnSchema(){return{anyOf:[{type:"string"},{type:"object",properties:{eventName:{type:"string"},defaultParams:{type:"object",additionalProperties:!0},phase:{type:"string",enum:["beforeAllFlows","afterAllFlows","beforeFlow","afterFlow","beforeStep","afterStep"]},flowKey:{type:"string"},stepKey:{type:"string"}},required:["eventName"],additionalProperties:!0}]}}buildStepDefinitionSchema(e){return{type:"object",properties:{key:{type:"string"},flowKey:{type:"string"},title:{type:"string"},use:{type:"string"},sort:{type:"number"},preset:{type:"boolean"},isAwait:{type:"boolean"},manual:{type:"boolean"},on:this.buildFlowOnSchema(),defaultParams:{type:["object","array","string","number","boolean","null"]},paramsSchemaOverride:{type:"object",additionalProperties:!0}},additionalProperties:!0}}resolveStepParamsSchema(e,t){var r,n,i,o;if(e.paramsSchemaOverride)return{schema:_().cloneDeep(e.paramsSchemaOverride),hints:rZ(null==(n=e.schemaDocs)?void 0:n.dynamicHints),coverage:"manual"};if(e.use){let r=this.getAction(e.use);return(null==r?void 0:r.schema)?{schema:_().cloneDeep(r.schema),hints:rZ([...r.dynamicHints||[],...(null==(o=e.schemaDocs)?void 0:o.dynamicHints)||[]]),coverage:"auto"===r.coverage.status||"manual"===r.coverage.status?r.coverage.status:"unresolved"===r.coverage.status?"unresolved":"mixed"}:{schema:{type:"object",additionalProperties:!0},hints:[r0({kind:"unresolved-action",path:t,message:`${t} references unresolved action "${e.use}".`},{unresolvedReason:"missing-action-contribution",recommendedFallback:{use:e.use,params:{}}}),...(null==(i=e.schemaDocs)?void 0:i.dynamicHints)||[]],coverage:"unresolved"}}let l=na(t,e.uiSchema,t);return{schema:rJ(l.schema,e.paramsSchemaPatch),hints:rZ([...l.hints||[],...(null==(r=e.schemaDocs)?void 0:r.dynamicHints)||[]]),coverage:e.paramsSchemaPatch?"mixed":l.coverage}}buildSlotTargetSchema(e,t,r,n,i){var o,l;if(r.fieldBindingContext){let o=_().uniq(this.resolveFieldBindingCandidates(r.fieldBindingContext).map(e=>e.use));if(o.length>0){let l=o.map(r=>this.buildModelSnapshotSchemaInternal(r,[...n,{parentUse:e,slotKey:t,childUse:r}],i));return r.schema?{anyOf:[...l,_().cloneDeep(r.schema)]}:1===l.length?l[0]:{oneOf:l}}}let s=this.resolveSlotAllowedUses(e,t,r);if(s.length>0){let o=s.map(r=>this.buildModelSnapshotSchemaInternal(r,[...n,{parentUse:e,slotKey:t,childUse:r}],i));return r.schema?{anyOf:[...o,_().cloneDeep(r.schema)]}:1===o.length?o[0]:{oneOf:o}}return r.childSchemaPatch||(null==(o=r.descendantSchemaPatches)?void 0:o.length)?this.buildAnonymousSlotSnapshotSchema(e,t,r,n,i):!r.schema||r.childSchemaPatch||(null==(l=r.descendantSchemaPatches)?void 0:l.length)?{type:"object",additionalProperties:!0}:_().cloneDeep(r.schema)}buildCompactSlotTargetSchema(e,t,r,n){var i,o;if(r.fieldBindingContext){let i=_().uniq(this.resolveFieldBindingCandidates(r.fieldBindingContext).map(e=>e.use));if(i.length>0){let o=i.map(r=>this.buildCompactSlotCandidateSchema(r,[...n,{parentUse:e,slotKey:t,childUse:r}]));return r.schema?{anyOf:[...o,_().cloneDeep(r.schema)]}:1===o.length?o[0]:{oneOf:o}}}let l=this.resolveSlotAllowedUses(e,t,r);if(l.length>0){let i=l.map(r=>this.buildCompactSlotCandidateSchema(r,[...n,{parentUse:e,slotKey:t,childUse:r}]));return r.schema?{anyOf:[...i,_().cloneDeep(r.schema)]}:1===i.length?i[0]:{oneOf:i}}return r.childSchemaPatch||(null==(i=r.descendantSchemaPatches)?void 0:i.length)?this.buildCompactAnonymousSlotSnapshotSchema(e,t,r):!r.schema||r.childSchemaPatch||(null==(o=r.descendantSchemaPatches)?void 0:o.length)?{type:"object",additionalProperties:!0}:_().cloneDeep(r.schema)}buildCompactSlotCandidateSchema(e,t){let r=this.resolveModelSchemaRef(e,t);return this.buildTruncatedSnapshotSchema(e,r)}buildCompactAnonymousSlotSnapshotSchema(e,t,r){let n=this.createAnonymousResolvedSchema(e,t,r);return this.buildTruncatedSnapshotSchema(void 0,n)}buildAnonymousSlotSnapshotSchema(e,t,r,n,i){let o=this.createAnonymousResolvedSchema(e,t,r);return this.buildSnapshotSchemaFromResolved("",o,[...n,{parentUse:e,slotKey:t,childUse:""}],i)}createAnonymousResolvedSchema(e,t,r){let n={use:"",title:r.description||`${e||"AnonymousModel"}.${t}`,examples:[],docs:rX(),dynamicHints:[],coverage:{status:"unresolved",source:"third-party"},exposure:"internal",abstract:!1,allowDirectUse:!0,suggestedUses:[]},i=no(r,"");return i&&nl(n,i,"third-party"),n}collectNestedDocumentHints(e,t,r){let n=this.createContextVisitKey(e,t);if(r.has(n)||this.isContextCycle(e,t))return[];r.add(n);try{let n=this.resolveModelSchemaRef(e,t),i=[];for(let[o,l]of Object.entries(n.subModelSlots||{}))for(let n of this.resolveSlotAllowedUses(e,o,l)){let l=[...t,{parentUse:e,slotKey:o,childUse:n}],s=this.buildModelDocument(n,l,r),a=`${e}.subModels.${o}`;i.push(...s.dynamicHints.map(e=>this.prefixNestedHint(e,a,n)))}return rZ(i)}finally{r.delete(n)}}prefixNestedHint(e,t,r){return e.path&&e.path!==r?e.path.startsWith(`${r}.`)?{...e,path:`${t}.${e.path.slice(r.length+1)}`}:{...e,path:`${t}.${e.path}`}:{...e,path:t}}collectContextPatches(e,t){if(!t.length)return[];let r=[],n=t.length-1;for(let o=0;o<t.length;o++){var i;let l=t[o],s=t.slice(0,o),a=this.resolveModelSchemaRef(l.parentUse,s),c=null==(i=a.subModelSlots)?void 0:i[l.slotKey];if(!c)continue;let u=t.slice(o+1);for(let e of c.descendantSchemaPatches||[])ni(e,u)&&r.push({patch:e.patch,source:a.coverage.source,strict:a.coverage.strict});if(o===n){let t=no(c,e);t&&r.push({patch:t,source:a.coverage.source,strict:a.coverage.strict})}}return r}collectModelDynamicHints(e,t,r){let n=[];return"function"==typeof r.children&&n.push(r0({kind:"dynamic-children",path:`${e}.meta.children`,message:`${e} uses function-based children and only static slot hints are available.`},{unresolvedReason:"function-children"})),"function"==typeof r.createModelOptions&&n.push(r0({kind:"dynamic-children",path:`${e}.meta.createModelOptions`,message:`${e} uses function-based createModelOptions and may need manual sub-model slot schema.`},{unresolvedReason:"function-create-model-options"})),"function"==typeof t.defineChildren&&n.push(r0({kind:"dynamic-children",path:`${e}.defineChildren`,message:`${e} defines dynamic children. Schema generation only keeps static baseline.`},{unresolvedReason:"runtime-define-children"})),n}collectFlowSchemaDiagnostics(e){var t,r,n;let i=this.modelSchemas.get(e),o=null==i?void 0:i.modelClass,l=null==o||null==(r=o.globalFlowRegistry)||null==(t=r.getFlows)?void 0:t.call(r);if(!(null==l?void 0:l.size))return{hints:[],statuses:[]};let s=[],a=[];for(let[t,r]of l.entries())for(let[i,o]of Object.entries((null==r?void 0:r.steps)||{})){let r=this.resolveStepParamsSchema(o,`${e}.${t}.${i}`);(null==(n=r.hints)?void 0:n.length)&&s.push(...r.hints),a.push(r.coverage)}return{hints:rZ(s),statuses:a}}buildDocumentCoverage(e,t){let r=new Set([e.status,...t].filter(Boolean)),n=e.status;return r.size>1?(r.delete("unresolved"),n=0===r.size?"unresolved":"mixed"):1===r.size&&(n=Array.from(r)[0]||"unresolved"),{...e,status:n}}inferSubModelSlotsFromModelClass(e,t){let r=(t.meta||{}).schema;if(null==r?void 0:r.subModelSlots)return _().cloneDeep(r.subModelSlots);let n=(t.meta||{}).createModelOptions;if(!_().isPlainObject(n)||!_().isPlainObject(n.subModels))return{};let i={};for(let[e,t]of Object.entries(n.subModels||{}))if(Array.isArray(t)){let r=t[0];i[e]={type:"array",..."string"==typeof(null==r?void 0:r.use)?{use:r.use}:{}}}else _().isPlainObject(t)?i[e]={type:"object",...t.use?{use:t.use}:{}}:i[e]={type:"object"};return i}constructor(){(0,rU._)(this,"modelSchemas",new Map),(0,rU._)(this,"actionSchemas",new Map),(0,rU._)(this,"fieldBindingContexts",new Map),(0,rU._)(this,"fieldBindings",new Map),(0,rU._)(this,"resolvedModelCache",new Map),(0,rU._)(this,"modelSnapshotSchemaCache",new Map),(0,rU._)(this,"compactModelSnapshotSchemaCache",new Map),(0,rU._)(this,"modelSchemaHashCache",new Map),(0,rU._)(this,"compactModelSchemaHashCache",new Map),(0,rU._)(this,"modelDocumentCache",new Map),(0,rU._)(this,"modelLocalDynamicHintsCache",new Map),(0,rU._)(this,"publicModelDocumentCache",new Map),(0,rU._)(this,"publicTreeRoots",new Set),(0,rU._)(this,"slotUseExpansions",new Map)}}var nu=r(47451);function nd(e){let t=new a.$;e.modelRepository&&t.setModelRepository(e.modelRepository),t.context.addDelegate(e.context),t.unlinkFromStack=function(){let e=t._previousEngine,r=t._nextEngine;e&&(e._nextEngine=r),r&&(r._previousEngine=e),t._previousEngine=void 0,t._nextEngine=void 0};let r=new Set(["_modelInstances","_applyFlowCache","executor","context","previousEngine","nextEngine","unlinkFromStack","linkAfter","_previousEngine","_nextEngine","getModel"]),n={get(t,n,i){if(r.has(n))return Reflect.get(t,n,i);let o=Reflect.get(e,n,i);return"registerModels"===n&&"function"==typeof o?o.bind(e):o},set:(t,n,i)=>r.has(n)?Reflect.set(t,n,i):Reflect.set(e,n,i),has:(t,r)=>r in t||r in e};return t.linkAfter(e),new Proxy(t,n)}},22505(e,t,r){r.d(t,{R:()=>o});var n=r(74848),i=r(96540);function o(e){for(var t=arguments.length,r=Array(t>1?t-1:0),o=1;o<t;o++)r[o-1]=arguments[o];if(0===r.length){let t=(0,i.lazy)(()=>e().then(e=>({default:e.default})));return e=>(0,n.jsx)(i.Suspense,{fallback:null,children:(0,n.jsx)(t,{...e})})}return r.reduce((t,r)=>{let o=(0,i.lazy)(()=>e().then(e=>({default:e[r]})));return t[r]=e=>(0,n.jsx)(i.Suspense,{fallback:null,children:(0,n.jsx)(o,{...e})}),t},{})}},1314(e,t,r){r.d(t,{xI:()=>Y,WD:()=>N,jG:()=>Q,NK:()=>$,B3:()=>ee,yN:()=>P,_f:()=>B,WE:()=>J,bt:()=>et,oY:()=>L,yW:()=>X});var n=r(58587),i=r(18150),o=r(68238),l=r(50467),s=r(74848),a=r(95243),c=r(2543),u=r.n(c),d=r(96540),h=r(38950),p=r(48036),f=r(68161);class m{addFlows(e){for(let[t,r]of Object.entries(e||{}))this.addFlow(t,r)}addFlow(e,t){let r=new f.G({...t,key:e},this);return this.flows.set(e,r),r}hasFlow(e){return!!this.flows.get(e)}getFlow(e){return this.flows.get(e)}getFlows(){return this.flows}removeFlow(e){this.flows.delete(e)}mapFlows(e){return[...this.getFlows().values()].map(t=>e(t))}moveStep(e,t,r){let n=this.getFlow(e);if(!n)throw Error(`Flow '${e}' not found`);n.moveStep(t,r)}constructor(){(0,l._)(this,"flows",void 0),this.flows=a.observable.shallow(new Map)}}class g extends m{async save(){await this.model.saveStepParams()}async saveFlow(e){await this.model.saveStepParams()}async destroyFlow(e){this.removeFlow(e),await this.model.saveStepParams()}async moveStep(e,t,r){super.moveStep(e,t,r),await this.model.saveStepParams()}constructor(e){super(),(0,l._)(this,"model",void 0),this.model=e}}(0,l._)(g,"_type","instance");var y=r(29007),v=r(48555),w=r(84359),b=r(64171);class x extends b.Z{onActionRegistered(){this.changeMarker={}}getActions(){var e;let t=null==(e=this.parentRegistry)?void 0:e.getActions();if(this.mergedCache&&this.mergedCache.parentSnapshot===t&&this.mergedCache.localMarker===this.changeMarker)return this.mergedCache.mergedMap;let r=new Map(t??[]);for(let[e,t]of this.actions)r.set(e,t);return this.mergedCache={parentSnapshot:t,localMarker:this.changeMarker,mergedMap:r},r}getAction(e){var t;let r=this.actions.get(e);return r||(null==(t=this.parentRegistry)?void 0:t.getAction(e))}constructor(e,t){super(),(0,l._)(this,"modelClass",void 0),(0,l._)(this,"parentRegistry",void 0),(0,l._)(this,"changeMarker",{}),(0,l._)(this,"mergedCache",void 0),this.modelClass=e,this.parentRegistry=t??null}}var S=r(41594),A=r(26955);class M extends A.L{onEventRegistered(){this.changeMarker={}}getEvents(){var e;let t=null==(e=this.parentRegistry)?void 0:e.getEvents();if(this.mergedCache&&this.mergedCache.parentSnapshot===t&&this.mergedCache.localMarker===this.changeMarker)return this.mergedCache.mergedMap;let r=new Map(t??[]);for(let[e,t]of this.events)r.set(e,t);return this.mergedCache={parentSnapshot:t,localMarker:this.changeMarker,mergedMap:r},r}getEvent(e){var t;let r=this.events.get(e);return r||(null==(t=this.parentRegistry)?void 0:t.getEvent(e))}constructor(e,t){super(),(0,l._)(this,"modelClass",void 0),(0,l._)(this,"parentRegistry",void 0),(0,l._)(this,"changeMarker",{}),(0,l._)(this,"mergedCache",void 0),this.modelClass=e,this.parentRegistry=t??null}}class _ extends m{removeFlow(e){console.warn(`GlobalFlowRegistry.removeFlow: removing static flow '${e}' is not supported.`)}getFlow(e){if(this.flows.has(e))return this.flows.get(e);let t=Object.getPrototypeOf(this.target);if(t!==Function.prototype&&t!==Object.prototype&&(null==t?void 0:t.globalFlowRegistry))return t.globalFlowRegistry.getFlow(e)}getFlows(){let e=new Map(this.flows),t=Object.getPrototypeOf(this.target);if(t!==Function.prototype&&t!==Object.prototype&&(null==t?void 0:t.globalFlowRegistry))for(let[r,n]of t.globalFlowRegistry.getFlows().entries())e.has(r)||e.set(r,n);let r=e=>{let t=0,r=e;for(;r&&r!==N&&r!==Function.prototype&&r!==Object.prototype;)r=Object.getPrototypeOf(r),t+=1;return t};return new Map(Array.from(e.entries()).sort((e,t)=>{let[,n]=e,[,i]=t,o=n.sort??0,l=i.sort??0;if(o!==l)return o-l;let s=n.flowRegistry,a=i.flowRegistry,c=r(s.target),u=r(a.target);return c!==u?c-u:0}))}saveFlow(e){}destroyFlow(e){}constructor(e){super(),(0,l._)(this,"target",void 0),this.target=e}}(0,l._)(_,"_type","global");var k=new WeakMap;class P{static setSharedProperties(e){this.SHARED_PROPERTIES=[...e]}static getSharedProperties(){return[...this.SHARED_PROPERTIES]}get context(){return this["#flowContext"]||(this["#flowContext"]=new y.Hl(this.master,this)),this["#flowContext"]}getPropertyDescriptor(e,t){let r=e;for(;r;){let e=Object.getOwnPropertyDescriptor(r,t);if(e)return e;r=Object.getPrototypeOf(r)}}setProps(e,t){this.disposed||("string"==typeof e?this.localProps[e]=t:this.localProps={...this.localProps,...e})}clearProps(){return this.localProps={}}render(){if(this.disposed)return null;let e={...this.master.getProps(),...this.localProps},t=this.props;this.props=e;try{return this.master.render.call(this)}finally{this.props=t}}getFlowCacheScope(e){return`${String(e)}:${String(this.forkId)}`}dispose(){if(!this.disposed){this.disposed=!0;try{var e;let t=null==(e=this.flowEngine)?void 0:e.applyFlowCache;if(t&&t.size>0){let e=[`:${this.uid}`,`-${this.uid}`],r=`:${this.forkId}:`,n=`-${this.forkId}-`;for(let i of t.keys()){if(!(i.startsWith("event:")||i.startsWith("event-"))||!e.some(e=>i.endsWith(e)))continue;let o=i;for(let t of e)if(o.endsWith(t)){o=o.slice(0,-t.length);break}(o.includes(r)||o.includes(n))&&t.delete(i)}}}catch{}if(this.master&&this.master.forks&&this.master.forks.delete(this),this.master&&this.master.forkCache){let e=this.master.forkCache;for(let[t,r]of e.entries())if(r===this){e.delete(t);break}}}}getProps(){return{...this.master.getProps(),...this.localProps}}isSharedProperty(e){return P.SHARED_PROPERTIES.includes(e)}constructor(e,t={},r){return(0,l._)(this,"uid",void 0),(0,l._)(this,"isFork",!0),(0,l._)(this,"localProps",void 0),(0,l._)(this,"master",void 0),(0,l._)(this,"disposed",!1),(0,l._)(this,"forkId",void 0),(0,l._)(this,"localProperties",{}),(0,i._)(this,k,{writable:!0,value:void 0}),this.localProperties,this.master=e,this.uid=e.uid,this.localProps={...t},this.forkId=r||(0,h.L)(),this.hidden=this.master.hidden,(0,a.define)(this,{localProps:a.observable,hidden:a.observable,setProps:a.action}),new Proxy(this,{get:(e,t,r)=>{var n;if("disposed"===t)return e.disposed;if("constructor"===t)return e.master.constructor;if("props"===t)return{...e.master.getProps(),...e.localProps};if(t in e)return Reflect.get(e,t,r);if(Object.prototype.hasOwnProperty.call(e.localProperties,t))return e.localProperties[t];let i=null==(n=e.master)?void 0:n[t];if("function"==typeof i){let t=e.master.constructor;return(function(){for(var e=arguments.length,r=Array(e),n=0;n<e;n++)r[n]=arguments[n];let o=Object.create(this);return Object.defineProperty(o,"constructor",{value:t,configurable:!0,enumerable:!1,writable:!1}),i.apply(o,r)}).bind(r)}return i},set:(e,t,r,n)=>{if("props"===t)return!0;if(t in e)return Reflect.set(e,t,r,n);let i=String(t);if(P.SHARED_PROPERTIES.includes(i)){let i=this.getPropertyDescriptor(e.master,t);return i&&i.set?i.set.call(n,r):e.master[t]=r,!0}{let i=this.getPropertyDescriptor(e.master,t);return i&&i.set?i.set.call(n,r):e.localProperties[t]=r,!0}}})}}(0,l._)(P,"SHARED_PROPERTIES",["stepParams","sortIndex"]);var C=r(90492);let j=new WeakMap,R=new WeakMap,E=new WeakMap,F=new WeakMap,T=new WeakMap;async function O(){return(await Promise.resolve().then(r.bind(r,23183))).openStepSettingsDialog}async function I(){return(await Promise.resolve().then(r.bind(r,96332))).openRequiredParamsStepFormDialog}var $=function(e){return e.ReactElement="reactElement",e.RenderFunction="renderFunction",e}({}),D=new WeakMap;class N{renderHiddenInConfig(){var e,t;return(0,s.jsx)("span",{style:{opacity:.5},children:(null==(e=(t=this).translate)?void 0:e.call(t,"Hidden"))||"Hidden"})}renderOriginal(){return this._originalRender()}get context(){return(0,n._)(this,D)||(0,o._)(this,D,new y.d6(this)),(0,n._)(this,D)}on(e,t){this.emitter.on(e,t)}onInit(e){}async afterAddAsSubModel(){}get async(){return this._options.async||!1}get use(){return this._options.use}get subKey(){return this._options.subKey}get subType(){return this._options.subType}get reactView(){return this.flowEngine.reactView}get parentId(){return this._options.parentId}scheduleModelOperation(e,t,r){var n;return null==(n=this.flowEngine)?void 0:n.scheduleModelOperation(this,e,t,r)}static get meta(){return E.get(this)}static get globalFlowRegistry(){let e=this,t=F.get(e);return t||(t=new _(e),F.set(e,t)),t}static get actionRegistry(){let e=this,t=j.get(e);if(!t){let r=null,n=Object.getPrototypeOf(e);n&&n!==Function.prototype&&n!==Object.prototype&&(n===N||(0,v.FA)(n,N))&&(r=n.actionRegistry),t=new x(e,r),j.set(e,t)}return t}static get eventRegistry(){let e=this,t=R.get(e);if(!t){let r=null,n=Object.getPrototypeOf(e);n&&n!==Function.prototype&&n!==Object.prototype&&(n===N||(0,v.FA)(n,N))&&(r=n.eventRegistry),t=new M(e,r),R.set(e,t)}return t}static registerAction(e){this.actionRegistry.registerAction(e)}static registerActions(e){this.actionRegistry.registerActions(e)}static registerEvent(e){this.eventRegistry.registerEvent(e)}static registerEvents(e){this.eventRegistry.registerEvents(e)}static async buildChildrenFromModels(e,t){return Promise.all(t.map(t=>(0,S.Ls)(t,e,!0)))}get title(){var e;return this.translate(this._title)||this.translate(null==(e=this.constructor.meta)?void 0:e.label)}get extraTitle(){return this._extraTitle?this.translate(this._extraTitle):""}setTitle(e){this._title=e}setExtraTitle(e){this._extraTitle=e||""}setHidden(e){this.hidden=!!e}_createSubModels(e){let t=e||{};try{let r=this.constructor.meta,n=null==r?void 0:r.createModelOptions;if(n&&"object"==typeof n&&n.subModels){let r=(e,t)=>{if(Array.isArray(e)&&Array.isArray(t))return t};t=u().mergeWith({},u().cloneDeep(n.subModels||{}),u().cloneDeep(e||{}),r)}}catch(e){}Object.entries(t||{}).forEach(e=>{let[t,r]=e;Array.isArray(r)?r.sort((e,t)=>(e.sortIndex||0)-(t.sortIndex||0)).forEach(e=>{this.addSubModel(t,e)}):this.setSubModel(t,r)})}invalidateFlowCache(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(this.flowEngine){let t=`event:${this.getFlowCacheScope(e||"beforeRender")}`,r=this.flowEngine.applyFlowCache;if(e){let n=t.replace(/:/g,"-"),i=[`:${this.uid}`,`-${this.uid}`],o=[`:${e}:`,`-${e}-`];for(let e of r.keys()){let l=e.startsWith(t)||e.startsWith(n),s=i.some(t=>e.endsWith(t)),a=o.some(t=>e.includes(t));l&&s&&a&&r.delete(e)}}else{let e=`${t}:`.replace(/:/g,"-"),n=[`${t}:`,e],i=[`:${this.uid}`,`-${this.uid}`];for(let e of r.keys()){let t=n.some(t=>e.startsWith(t)),o=i.some(t=>e.endsWith(t));t&&o&&r.delete(e)}}this.forks.forEach(t=>{var r;let n=`event:${(null==(r=t.getFlowCacheScope)?void 0:r.call(t,e||"beforeRender"))??String(t.forkId)}`,i=n.replace(/:/g,"-"),o=[`:${this.uid}`,`-${this.uid}`];if(e){let t=[`:${e}:`,`-${e}-`];for(let e of this.flowEngine.applyFlowCache.keys()){let r=e.startsWith(n)||e.startsWith(i),l=o.some(t=>e.endsWith(t)),s=t.some(t=>e.includes(t));r&&l&&s&&this.flowEngine.applyFlowCache.delete(e)}}else{let e=[`${n}:`,`${i}-`];for(let t of this.flowEngine.applyFlowCache.keys()){let r=e.some(e=>t.startsWith(e)),n=o.some(e=>t.endsWith(e));r&&n&&this.flowEngine.applyFlowCache.delete(t)}}})}if(t)for(let r of Object.keys(this.subModels)){let n=this.subModels[r];if(Array.isArray(n))for(let r of n)r.invalidateFlowCache(e,t);else n instanceof N&&n.invalidateFlowCache(e,t)}}setFlowEngine(e){}static define(e){E.set(this,e)}static registerFlow(e,t){let r=this;"string"==typeof e?r.globalFlowRegistry.addFlow(e,t):r.globalFlowRegistry.addFlow(e.key,e)}getFlow(e){return this.flowRegistry.hasFlow(e)?this.flowRegistry.getFlow(e):this.constructor.globalFlowRegistry.getFlow(e)}registerFlow(e,t){return"string"==typeof e?this.flowRegistry.addFlow(e,t):this.flowRegistry.addFlow(e.key,e)}getActions(){var e;let t=this.constructor.actionRegistry.getActions(),r=new Map,n=null==(e=this.flowEngine)?void 0:e.getActions();if(n)for(let[e,t]of n)r.set(e,t);for(let[e,n]of t)r.set(e,n);return r}getEvents(){var e;let t=this.constructor.eventRegistry.getEvents(),r=new Map,n=null==(e=this.flowEngine)?void 0:e.getEvents();if(n)for(let[e,t]of n)r.set(e,t);for(let[e,n]of t)r.set(e,n);return r}getEvent(e){var t;let r=this.constructor.eventRegistry.getEvent(e);return r||(null==(t=this.flowEngine)?void 0:t.getEvent(e))}getAction(e){var t;let r=this.constructor.actionRegistry.getAction(e);return r||(null==(t=this.flowEngine)?void 0:t.getAction(e))}getFlows(){let e=this.flowRegistry.getFlows(),t=this.constructor.globalFlowRegistry.getFlows(),r=new Set(e.keys()),n=Array.from(t.entries()).filter(e=>{let[t]=e;return!r.has(t)}),i=Array.from(e.entries()).map((e,t)=>({e,i:t}));return i.sort((e,t)=>{let r=e.e[1].sort??0,n=t.e[1].sort??0;return r!==n?r-n:e.i-t.i}),new Map([...i.map(e=>{let{e:t}=e;return t}),...n])}setProps(e,t){"string"==typeof e?this.props[e]=t:this.props={...this.props,...e}}getProps(){return this.props}setStepParams(e,t,r){if("string"==typeof e){let n=e;"string"==typeof t&&void 0!==r?(this.stepParams[n]||(this.stepParams[n]={}),this.stepParams[n][t]={...this.stepParams[n][t],...r}):"object"==typeof t&&null!==t&&(this.stepParams[n]={...this.stepParams[n]||{},...t})}else if("object"==typeof e&&null!==e)for(let t in e)Object.prototype.hasOwnProperty.call(e,t)&&(this.stepParams[t]={...this.stepParams[t]||{},...e[t]});this.emitter.emit("onStepParamsChanged")}getStepParams(e,t){if(e&&t){var r;return null==(r=this.stepParams[e])?void 0:r[t]}return e?this.stepParams[e]:this.stepParams}async applyFlow(e,t,r){let n=this.flowEngine;if(!n)return console.warn("FlowEngine not available on this model for applyFlow. Check and model.flowEngine setup."),Promise.reject(Error("FlowEngine not available for applyFlow. Please set flowEngine on the model."));let i=!0===this.isFork,o=this;return console.log(`[FlowModel] applyFlow: uid=${this.uid}, flowKey=${e}, isFork=${i}, cleanRun=${this.cleanRun}, targetIsFork=${(null==o?void 0:o.isFork)===!0}`),n.executor.runFlow(o,e,t,r)}async _dispatchEvent(e,t,r){let n=this.flowEngine;if(!n)return void console.warn("FlowEngine not available on this model for dispatchEvent. Please set flowEngine on the model.");let i=!0===this.isFork,o=this;return console.log(`[FlowModel] dispatchEvent: uid=${this.uid}, event=${e}, isFork=${i}, cleanRun=${this.cleanRun}, targetIsFork=${(null==o?void 0:o.isFork)===!0}`),await n.executor.dispatchEvent(o,e,t,r)}async dispatchEvent(e,t,r){let n="beforeRender"===e,i=n?{sequential:!0,useCache:!0}:{sequential:!0},o={sequential:(null==r?void 0:r.sequential)??i.sequential,useCache:(null==r?void 0:r.useCache)??i.useCache};return(n&&(this._lastAutoRunParams=[t,o.useCache]),null==r?void 0:r.debounce)?this._dispatchEventWithDebounce(e,t,o):this._dispatchEvent(e,t,o)}getEventFlows(e){let t=this.getFlows(),r="beforeRender"===e,n=t=>{if(r){var n;return!0!==t.manual&&(!t.on||("string"==typeof t.on?"beforeRender"===t.on:(null==(n=t.on)?void 0:n.eventName)==="beforeRender"))}let i=t.on;return!!i&&("string"==typeof i?i===e:(null==i?void 0:i.eventName)===e)};return Array.from(t.values()).filter(n)}async onDispatchEventStart(e,t,r){}async onDispatchEventEnd(e,t,r,n){}async onDispatchEventError(e,t,r,n){}useHooksBeforeRender(){}shouldSkipReactiveWrapping(){return!!this.render.__isReactiveWrapped||"renderFunction"===this.constructor.renderMode}setupReactiveRender(){if("function"==typeof this.render)try{let e=this.render;if(this._originalRender=e,"function"!=typeof e)return void console.error(`FlowModel ${this.constructor.name}: original render method is not a function`,e);if(this.shouldSkipReactiveWrapping()){let t=function(){var t,r,n,i;let o=!!(null==(r=this)||null==(t=r.context)?void 0:t.flowSettingsEnabled);if(this.hidden){if(!o)return null;let e=null==(n=(i=this).renderHiddenInConfig)?void 0:n.call(i),t=this.constructor;return"renderFunction"===t.renderMode?"function"==typeof e?e:()=>e:e}return e.call(this)};t.__originalRender=e,this.render=t;return}let t=t=>{let r=(0,C.observer)(()=>{var r,n;let i=t;i!==t&&(null==i?void 0:i.localProps)!==void 0&&i.localProps,t.props,d.useEffect(()=>{var e,t;return"function"==typeof i.onMount&&i.onMount(),null==(t=i.flowEngine)||null==(e=t.emitter)||e.emitAsync("model:mounted",{uid:i.uid,model:i}),()=>{var e,t;"function"==typeof i.onUnmount&&i.onUnmount(),null==(t=i.flowEngine)||null==(e=t.emitter)||e.emitAsync("model:unmounted",{uid:i.uid,model:i})}},[i]);let o=!!(null==t||null==(r=t.context)?void 0:r.flowSettingsEnabled);return t.hidden?o?null==(n=t.renderHiddenInConfig)?void 0:n.call(t):null:(t.stepParams,e.call(i))});return r.displayName=`ReactiveWrapper(${t.constructor.name})`,r},r=function(){return this._reactiveWrapperCache||(this._reactiveWrapperCache=t(this)),d.createElement(this._reactiveWrapperCache)};r.__isReactiveWrapped=!0,r.__originalRender=e,this.render=r}catch(e){console.error(`FlowModel ${this.constructor.name}: Error during render method wrapping:`,e)}}get cleanRun(){return!0}setCleanRun(e){this._cleanRun,this._cleanRun=!!e}onMount(){}onUnmount(){}render(){return(0,s.jsx)("div",{...this.props})}async rerender(){var e;await this.dispatchEvent("beforeRender",null==(e=this._lastAutoRunParams)?void 0:e[0],{useCache:!1})}getFlowCacheScope(e){return String(e)}setParent(e){if(!(e&&(e.constructor===N||(0,v.FA)(e.constructor,N))))throw Error("Parent must be an instance of FlowModel.");this.parent=e,this._options.parentId=e.uid,!1!==this._options.delegateToParent&&this.context.addDelegate(this.parent.context)}removeParentDelegate(){this.parent&&this.context.removeDelegate(this.parent.context)}addSubModel(e,t){var r,n,i;let o,l=this.master||this;if(t instanceof N){let e=!!t.parent,r=null==(i=t.parent)?void 0:i.uid;if(e&&r&&r!==l.uid)throw Error("Sub model already has a parent.");o=t}else o=l.flowEngine.createModel({...t,parentId:l.uid,subKey:e,subType:"array"});o.setParent(l);let s=l.subModels;Array.isArray(s[e])||(s[e]=a.observable.shallow([]));let c=Math.max(...s[e].map(e=>e.sortIndex||0),0);return o.sortIndex=c+1,s[e].push(o),l.emitter.emit("onSubModelAdded",o),null==(n=l.flowEngine)||null==(r=n.emitter)||r.emit("model:subModel:added",{parentUid:l.uid,parent:l,subKey:e,model:o}),o}setSubModel(e,t){var r,n,i;let o,l=this.master||this;if(t instanceof N){let e=!!t.parent,r=null==(i=t.parent)?void 0:i.uid;if(e&&r&&r!==l.uid)throw Error("Sub model already has a parent.");o=t}else o=l.flowEngine.createModel({...t,parentId:l.uid,subKey:e,subType:"object"});return o.setParent(l),l.subModels[e]=o,l.emitter.emit("onSubModelAdded",o),null==(n=l.flowEngine)||null==(r=n.emitter)||r.emit("model:subModel:added",{parentUid:l.uid,parent:l,subKey:e,model:o}),o}filterSubModels(e,t){let r=this.subModels[e];if(!r)return[];let n=[];return u().castArray(r).sort((e,t)=>(e.sortIndex||0)-(t.sortIndex||0)).forEach((e,r)=>{t(e,r)&&n.push(e)}),n}mapSubModels(e,t){let r=this.subModels[e];if(!r)return[];let n=[];return u().castArray(r).sort((e,t)=>(e.sortIndex||0)-(t.sortIndex||0)).forEach((e,r)=>{let i=t(e,r);n.push(i)}),n}hasSubModel(e){let t=this.subModels[e];return!!t&&u().castArray(t).length>0}findSubModel(e,t){let r=this.subModels[e];return r&&u().castArray(r).find(e=>t(e))||null}createRootModel(e){return this.flowEngine.createModel(e)}async applySubModelsBeforeRenderFlows(e,t,r){await Promise.all(this.mapSubModels(e,async e=>{await e.dispatchEvent("beforeRender",t)}))}createFork(e,t,r){if(t){let r=this.forkCache.get(t);if(r&&!r.disposed)return r.setProps(e||{}),r}let n=new P(this,e,(0,h.L)());return(null==r?void 0:r.register)!==!1&&this.forks.add(n),t&&(null==r?void 0:r.register)!==!1&&this.forkCache.set(t,n),n}clearForks(){var e;console.log(`FlowModel ${this.uid} clearing all forks.`),(null==(e=this.forks)?void 0:e.size)&&(this.forks.forEach(e=>e.dispose()),this.forks.clear()),this.forkCache.clear()}getFork(e){return this.forkCache.get(e)}moveTo(e,t){if(!this.flowEngine)throw Error("FlowEngine is not set on this model. Please set flowEngine before saving.");return this.flowEngine.moveModel(this.uid,e.uid,t)}remove(){if(!this.flowEngine)throw Error("FlowEngine is not set on this model. Please set flowEngine before saving.");return this.observerDispose(),this.invalidateFlowCache("beforeRender",!0),this.flowEngine.removeModel(this.uid)}async save(){if(!this.flowEngine)throw Error("FlowEngine is not set on this model. Please set flowEngine before saving.");return this.flowEngine.saveModel(this)}async saveStepParams(){return this.flowEngine.saveModel(this,{onlyStepParams:!0})}async destroy(){if(!this.flowEngine)throw Error("FlowEngine is not set on this model. Please set flowEngine before deleting.");return this.observerDispose(),this.invalidateFlowCache("beforeRender",!0),this.flowEngine.destroyModel(this.uid)}async openStepSettingsDialog(e,t){var r;let n=this.getFlow(e),i=null==n||null==(r=n.steps)?void 0:r[t];if(!n||!i)return void console.error(`Flow ${e} or step ${t} not found`);let o=new y.W5(this,e,"settings");return(0,v.wx)(o,n.steps,this,e),o.defineProperty("currentStep",{value:i}),(await O())({model:this,flowKey:e,stepKey:t,ctx:o})}async configureRequiredSteps(e,t){return(await I())({model:this,dialogWidth:e,dialogTitle:t})}async openPresetStepSettingsDialog(e,t){return this.configureRequiredSteps(e,t)}async openFlowStepSettingsDialog(e){}get translate(){return this.flowEngine.translate.bind(this.flowEngine)}serialize(){let e={uid:this.uid,...u().omit(this._options,["flowEngine"]),stepParams:this.stepParams,sortIndex:this.sortIndex,flowRegistry:{}},t=this.subModels;for(let r in t)e.subModels=e.subModels||{},Array.isArray(t[r])?e.subModels[r]=t[r].map((e,t)=>({...e.serialize(),sortIndex:t})):t[r]instanceof N&&(e.subModels[r]=t[r].serialize());for(let[t,r]of this.flowRegistry.getFlows())e.flowRegistry[t]=r.toData();return e}clone(){if(!this.flowEngine)throw Error("FlowEngine is not set on this model. Please set flowEngine before cloning.");let e=this.serialize(),t=new Map,r=e=>{if(e.uid&&"string"==typeof e.uid&&t.set(e.uid,(0,h.L)()),e.subModels)for(let t in e.subModels){let n=e.subModels[t];Array.isArray(n)?n.forEach(e=>r(e)):n&&"object"==typeof n&&r(n)}};r(e);let n=function(e){let r=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(null==e)return e;if("string"==typeof e)return t.get(e)??e;if(Array.isArray(e))return e.map(e=>n(e,!1));if("object"==typeof e){let t={};for(let i in e)Object.prototype.hasOwnProperty.call(e,i)&&(r&&"parentId"===i||(t[i]=n(e[i],!1)));return t}return e},i=n(e,!0);return this.flowEngine.createModel(i)}async openFlowSettings(e){return this.flowEngine.flowSettings.open({model:this,...e})}static registerExtraMenuItems(e){let t,r=this,n=T.get(r)||new Set;return t="function"==typeof e?{items:e}:e,n.add(t),T.set(r,n),()=>{let e=T.get(r);null==e||e.delete(t)}}static async getExtraMenuItems(e,t){let r=this,n=[],i=new Set,o=async r=>{if(!r||i.has(r))return;i.add(r);let l=T.get(r);if(l)for(let i of l){if(i.matcher&&!i.matcher(e))continue;let o="function"==typeof i.items?await i.items(e,t):await Promise.resolve(i.items||[]),l=i.group||"common-actions",s=i.sort??0,a=i.keyPrefix||r.name||"extra";(o||[]).forEach((e,t)=>{if(!e)return;let r=e.key??`${a}-${l}-${t}-${Math.random().toString(36).slice(2,6)}`;n.push({...e,key:r,group:e.group||l,sort:"number"==typeof e.sort?e.sort:s})})}let s=Object.getPrototypeOf(r);(s===N||(null==s?void 0:s.prototype)instanceof N)&&await o(s)};return await o(r),n}refresh(){return this.rerender()}constructor(e){if((0,l._)(this,"uid",void 0),(0,l._)(this,"sortIndex",void 0),(0,l._)(this,"hidden",!1),(0,l._)(this,"props",{}),(0,l._)(this,"stepParams",{}),(0,l._)(this,"flowEngine",void 0),(0,l._)(this,"parent",void 0),(0,l._)(this,"subModels",void 0),(0,l._)(this,"_options",void 0),(0,l._)(this,"_title",void 0),(0,l._)(this,"_extraTitle",void 0),(0,l._)(this,"isNew",!1),(0,l._)(this,"skeleton",null),(0,l._)(this,"forbidden",null),(0,l._)(this,"forks",new Set),(0,l._)(this,"emitter",new p.v),(0,l._)(this,"forkCache",new Map),(0,l._)(this,"_lastAutoRunParams",null),(0,l._)(this,"observerDispose",void 0),(0,i._)(this,D,{writable:!0,value:void 0}),(0,l._)(this,"_originalRender",null),(0,l._)(this,"_reactiveWrapperCache",void 0),(0,l._)(this,"flowRegistry",void 0),(0,l._)(this,"_cleanRun",void 0),(0,l._)(this,"_dispatchEventWithDebounce",u().debounce(async function(e,t,r){return this._dispatchEvent(e,t,r)},500,{leading:!0})),(0,l._)(this,"_rerunLastAutoRun",u().debounce(async()=>{if(this._lastAutoRunParams)try{let[e]=this._lastAutoRunParams;await this.dispatchEvent("beforeRender",e)}catch(e){console.error("FlowModel._rerunLastAutoRun: Error during rerun:",e)}},100)),!e.flowEngine)throw Error("FlowModel must be initialized with a FlowEngine instance.");if(this.flowEngine=e.flowEngine,this.flowEngine.getModel(e.uid))return this.flowEngine.getModel(e.uid);e.uid||(e.uid=(0,h.L)()),this.uid=e.uid,this.props={...e.props},this.stepParams=e.stepParams||{},this.subModels={},this.sortIndex=e.sortIndex||0,this._options=e,this._title="",this._extraTitle="",(0,a.define)(this,{hidden:a.observable,props:a.observable,subModels:a.observable.shallow,stepParams:a.observable,_title:a.observable,_extraTitle:a.observable,setProps:a.batch,setStepParams:a.batch}),this.flowRegistry=new g(this),this.flowRegistry.addFlows(e.flowRegistry),this.observerDispose=(0,a.observe)(this.stepParams,e=>{"set"===e.type&&u().isEqual(e.value,e.oldValue)||(this.flowEngine&&this.invalidateFlowCache("beforeRender"),this._rerunLastAutoRun(),this.forks.forEach(e=>{e.rerender()}))});try{this.setupReactiveRender()}catch(e){console.error(`Failed to setup reactive render for ${this.constructor.name}:`,e),"function"!=typeof this.render&&(this.render=()=>d.createElement("div",null,"Render method not available"))}this._cleanRun=!!e.cleanRun}}(0,l._)(N,"renderMode","reactElement");class B extends N{setErrorMessage(e){this.errorMessage=e}render(){return(0,s.jsx)(w.A.Text,{type:"danger",children:this.errorMessage})}constructor(...e){super(...e),(0,l._)(this,"errorMessage",void 0)}}function L(e){return e}var q=r(16629),U=r(89013),z=r(42443),V=r(13415),W=r(18492),H=r(57084),K=r(31102);function J(e){let{title:t}=e,{t:r}=(0,W.B)();return(0,s.jsx)(K.e,{label:t,showLabel:!0,children:(0,s.jsx)(q.A,{size:"small",styles:{body:{color:"rgba(0,0,0,0.45)"}},children:r("This field has been hidden and you cannot view it (this content is only visible when the UI Editor is activated).")})})}function Y(){var e;let{t}=(0,W.B)(),r=(0,H.PZ)(),n=r.context.blockModel,i=null==(e=n.collection)?void 0:e.dataSource,o=n.collection,l=r.fieldPath,a=(0,d.useMemo)(()=>{let e=i?`${t(i.displayName||i.key)} > `:"",r=o?`${t(o.title)||o.name||o.tableName} > `:"";return`${e}${r}${l}`},[]);return(0,s.jsx)(U.A.Item,{children:(0,s.jsx)("div",{style:{color:"rgba(0,0,0,0.45)"},children:t('The {{type}} "{{name}}" may have been deleted. Please remove this {{blockType}}.',{type:t("Field"),name:a,blockType:t("Field")}).replaceAll(">",">")})})}function G(){var e,t;let{t:r}=(0,W.B)(),n=(0,H.PZ)(),i=n.context.blockModel,o=(null==(e=n.context.collectionField)?void 0:e.collection)||i.collection,l=o.dataSource,a=(null==(t=n.context.collectionField)?void 0:t.name)||n.fieldPath,c=(0,d.useMemo)(()=>{let e=`${r(l.displayName||l.key)} > `,t=o?`${r(o.title)||o.name||o.tableName} > `:"";return`${e}${t}${a}`},[]),{actionName:h}=n.forbidden,p=(0,d.useMemo)(()=>r('The current user only has the UI configuration permission, but don\'t have "{{actionName}}" permission for field "{{name}}"',{name:c,actionName:r(u().capitalize(h))}).replaceAll(">",">"),[c,r]);return(0,s.jsx)(z.A,{title:p,children:(0,s.jsx)(K.e,{showLabel:!0,label:n.context.collectionField.title||a,style:{opacity:"0.4"},children:(0,s.jsx)(V.A,{})})})}let Z=()=>!0;class X extends N{renderHiddenInConfig(){return this.forbidden?(0,s.jsx)(G,{}):(0,s.jsx)(z.A,{title:this.context.t("The field is hidden and only visible when the UI Editor is active"),children:(0,s.jsx)("div",{style:{opacity:.3},children:this.renderOriginal.call(this)})})}get title(){}onInit(e){this.context.defineProperty("collectionField",{get:()=>{let e=this.getFieldSettingsInitParams();return this.context.dataSourceManager.getCollectionField(`${e.dataSourceKey}.${e.collectionName}.${e.fieldPath}`)},cache:!1}),this.context.defineProperty("fieldPath",{get:()=>this.fieldPath}),this.context.blockModel&&(this.context.blockModel.addAppends(this.fieldPath),this.context.blockModel.addAppends(this.associationPathName))}getFieldSettingsInitParams(){return this.getStepParams("fieldSettings","init")||{}}get fieldPath(){return this.getFieldSettingsInitParams().fieldPath}get associationPathName(){return this.getFieldSettingsInitParams().associationPathName}get collectionField(){return this.context.collectionField}async afterAddAsSubModel(){this.context.resource&&await this.context.resource.refresh()}static getBindingsByField(e,t){if(!t)return;let r=t.interface;return this.bindings.has(r)?this.bindings.get(r).sort((e,t)=>e.order-t.order).filter(r=>e.engine.getModelClass(r.modelName)&&r.when(e,t)):[]}static getDefaultBindingByField(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(r.fallbackToTargetTitleField){let n=this.getDefaultBindingByField(e,t,{useStrict:!0});return!n&&(t.isAssociationField()&&(null==r?void 0:r.targetCollectionTitleField)||t.targetCollectionTitleField)?this.getDefaultBindingByField(e,(null==r?void 0:r.targetCollectionTitleField)||t.targetCollectionTitleField):n}let n=t.interface;if(!n||!this.bindings.has(n))return null;let i=this.bindings.get(n),o=i.filter(r=>r.isDefault&&e.engine.getModelClass(r.modelName)&&r.when(e,t));if(1===o.length)return o[0];if(o.length>0){let e=null;if((e=o.find(e=>e.when!==Z))||(e=o.find(e=>e.when===Z)))return e}return r.useStrict?null:i.find(r=>e.engine.getModelClass(r.modelName)&&r.when(e,t))}static bindModelToInterface(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(Array.isArray(t))return void t.forEach(t=>this.bindModelToInterface(e,t,r));this.currentBindings.has(t)||this.currentBindings.set(t,[]);let n=this.currentBindings.get(t);n.push({modelName:e,isDefault:r.isDefault||!1,defaultProps:r.defaultProps||null,when:r.when||Z,order:r.order}),this.currentBindings.set(t,n)}static get currentBindings(){return Object.prototype.hasOwnProperty.call(this,"_bindings")&&this._bindings||(this._bindings=new Map),this._bindings}static getAllParentClasses(){let e=[],t=this;for(;t&&t!==Object;)(null==(t=Object.getPrototypeOf(t))?void 0:t.currentBindings)&&e.push(t);return e}static get bindings(){let e=new Map;for(let t of this.getAllParentClasses())for(let[r,n]of t.currentBindings)e.has(r)||e.set(r,[]),e.get(r).unshift(...n);for(let[t,r]of this.currentBindings)e.has(t)||e.set(t,[]),e.get(t).unshift(...r);return e}renderItem(){return null}render(){return this.collectionField?this.renderItem():(0,s.jsx)(Y,{})}}(0,l._)(X,"_bindings",new Map),X.registerFlow({key:"fieldSettings",title:(0,v.MI)("Field settings"),steps:{init:{handler(e,t){let{dataSourceKey:r,collectionName:n,fieldPath:i}=t;if(!r)throw Error("dataSourceKey is a required parameter");if(!n)throw Error("collectionName is a required parameter");if(!i)throw Error("fieldPath is a required parameter")}}}});class Q extends X{}class ee extends X{}class et extends X{}},20616(e,t,r){r.d(t,{I6:()=>f,Db:()=>y,uf:()=>g,f7:()=>m});var n=r(74848),i=r(88040),o=r(4888),l=r(35710),s=r(96540),a=r(52568),c=r(52249),u=r(50467);let d=0;class h{getNextZIndex(){return this.zIndex+1}open(e){let{type:t,...r}=e;if(this.types[t]){d+=1;let e=r.onClose,n=r.zIndex;return r.onClose=function(){for(var t=arguments.length,r=Array(t),n=0;n<t;n++)r[n]=arguments[n];null==e||e(...r),d-=1},"embed"!==t&&(r.zIndex=n??this.getNextZIndex()),this.types[t].open(r,this.ctx)}throw Error(`Unknown view type: ${t}`)}dialog(e){return this.open({type:"dialog",...e})}drawer(e){return this.open({type:"drawer",...e})}popover(e){return this.open({type:"popover",...e})}embed(e){return this.open({type:"embed",...e})}constructor(e,t){var r;(0,u._)(this,"ctx",void 0),(0,u._)(this,"types",void 0),(0,u._)(this,"zIndex",void 0),this.ctx=e,this.types=t,this.zIndex=d+((null==(r=e.themeToken)?void 0:r.zIndexPopupBase)||1e3)}}let p=(0,s.createContext)(null),f=s.memo(e=>{let{engine:t,children:r}=e;if(!t)throw Error("FlowEngineProvider must be supplied with an engine.");return(0,n.jsx)(p.Provider,{value:t,children:(0,n.jsx)(a.Dv,{context:t.context,children:r})})});f.displayName="FlowEngineProvider";let m=e=>{var t;let{children:r}=e,{modal:a,message:u,notification:d}=i.A.useApp(),[p,f]=(0,c.bt)(),[m,y]=(0,c.N5)(),[v,w]=(0,c.fP)(),[b,x]=(0,c.sp)(),S=g(),A=(0,s.useContext)(o.Ay.ConfigContext),{token:M}=l.A.useToken();return(0,s.useEffect)(()=>{let e={antdConfig:A,modal:a,message:u,notification:d};for(let t of(S.context.defineProperty("viewer",{cache:!1,get:e=>new h(e,{drawer:p,embed:m,popover:v,dialog:b})}),Object.entries(e))){let[e,r]=t;r&&S.context.defineProperty(e,{value:r})}S.context.defineProperty("themeToken",{get:()=>M,observable:!0,cache:!0}),S.reactView.refresh()},[S,p,a,u,d,A,v,M,b,m]),(0,n.jsxs)(o.Ay,{...A,locale:null==(t=S.context.locales)?void 0:t.antd,popupMatchSelectWidth:!1,children:[r,f,w,y,x]})},g=function(){let{throwError:e=!0}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=(0,s.useContext)(p);return!t&&e?void console.warn("useFlowEngine must be used within a FlowEngineProvider, and FlowEngineProvider must be supplied with an engine."):t},y=()=>g().context},52847(e,t,r){r.d(t,{vA:()=>n.batch,lB:()=>n.observe,po:()=>n.markObservable,dw:()=>n.DataNode,XI:()=>n.action,SL:()=>c,KP:()=>n.hasCollected,Jv:()=>n.setDataNode,r5:()=>n.DataChange,O8:()=>n.untracked,JD:()=>n.Tracker,H_:()=>n.buildDataTree,gR:()=>n.contains,E8:()=>n.define,Rq:()=>n.isSupportObservable,IG:()=>n.markRaw,PA:()=>a,D:()=>n.getDataNode,ge:()=>n.model,AT:()=>n.isObservable,fm:()=>n.autorun,sH:()=>n.observable,lS:()=>n.raw,Ir:()=>n.isAnnotation,mJ:()=>n.reaction,HO:()=>n.toJS});var n=r(95243),i=r(74848),o=r(69804),l=r(96540),s=r(52568);let a=(e,t)=>{let r=l.memo(r=>{let a=(0,s.$K)(),u=(0,l.useRef)(a);u.current=a;let d=(0,l.useRef)(null);(0,l.useEffect)(()=>()=>{d.current&&(d.current(),d.current=null)},[]);let h=(0,l.useMemo)(()=>(0,o.PA)(e,{scheduler(e){var t,r;let i=c(u.current),o=null==(r=u.current)||null==(t=r.tabActive)?void 0:t.value;!1===i||!1===o?setTimeout(()=>{if(d.current)return;let t=(0,n.autorun)(()=>{var r,n,i,o,l,s;(null==(n=u.current)||null==(r=n.pageActive)?void 0:r.value)&&((null==(o=u.current)||null==(i=o.tabActive)?void 0:i.value)===!0||(null==(s=u.current)||null==(l=s.tabActive)?void 0:l.value)===void 0)&&(e(),null==t||t(),d.current=null)});d.current=t}):(d.current&&(d.current(),d.current=null),e())},...t}),[]);return(0,i.jsx)(h,{...r})});return r.displayName="ComponentWithDefaultScheduler",r};function c(e){var t,r,n;return"boolean"==typeof(null==e||null==(t=e.pageActive)?void 0:t.value)?null==e||null==(r=e.pageActive)?void 0:r.value:null==e||null==(n=e.view)?void 0:n.inputArgs.pageActive}},99784(e,t,r){r.d(t,{tP:()=>ec,sB:()=>y,I8:()=>p,qi:()=>h,Rn:()=>g,BS:()=>s,hR:()=>c,vB:()=>m,l2:()=>a,BH:()=>eu});var n=r(50467),i=r(95243),o=r(29007);function l(e){var t,r,n,i,o,l,s,a,c,u,d;if("string"==typeof(null==e||null==(t=e.response)?void 0:t.data)){let t=document.createElement("div");t.innerHTML=null==e||null==(c=e.response)?void 0:c.data;let r=t.textContent||t.innerText;return r.includes("Error occurred while trying")||r.includes("502 Bad Gateway")?[{code:"APP_WARNING",message:r="The application may be starting up. Please try again later."}]:[{message:r}]}return(null==e||null==(n=e.response)||null==(r=n.data)?void 0:r.error)?[null==e||null==(d=e.response)||null==(u=d.data)?void 0:u.error]:(null==e||null==(o=e.response)||null==(i=o.data)?void 0:i.errors)||(null==e||null==(s=e.response)||null==(l=s.data)?void 0:l.messages)||(null==e||null==(a=e.response)?void 0:a.error)||[{message:e.message||"Server error"}]}class s extends Error{get code(){var e;return(null==(e=this.data)?void 0:e.code)||"UNKNOWN_ERROR"}get message(){var e;return(null==(e=this.data)?void 0:e.message)||"An unknown error occurred"}constructor(e){super(l(e).shift().message),(0,n._)(this,"data",void 0),this.name="ResponseError"}}class a{getData(){return this._data.value}hasData(){let e=this.getData();return Array.isArray(e)?e.length>0:!!e&&"object"==typeof e&&Object.keys(e).length>0}setData(e){return this._data.value=e,this}getMeta(e){return e?this._meta.value[e]:this._meta.value}setMeta(e){return this._meta.value={...this._meta.value,...e},this}get error(){return this._error.value}getError(){return this._error.value}setError(e){return this._error.value=e,this}clearError(){return this._error.value=null,this}on(e,t){var r,n;((r=this.events)[n=e]||(r[n]=[])).push(t)}once(e,t){var r=this;let n=function(){for(var i=arguments.length,o=Array(i),l=0;l<i;l++)o[l]=arguments[l];t(...o),r.off(e,n)};this.on(e,n)}off(e,t){this.events[e]=(this.events[e]||[]).filter(e=>e!==t)}emit(e){for(var t=arguments.length,r=Array(t>1?t-1:0),n=1;n<t;n++)r[n-1]=arguments[n];(this.events[e]||[]).forEach(e=>e(...r))}constructor(e){(0,n._)(this,"_data",i.observable.ref(null)),(0,n._)(this,"_meta",i.observable.ref({})),(0,n._)(this,"_error",i.observable.ref(null)),(0,n._)(this,"context",void 0),(0,n._)(this,"events",{}),this.context=new o.cB,this.context.addDelegate(e)}}class c extends a{setAPIClient(e){return this.api=e,this}getURL(){return this.request.url}setURL(e){return this.request.url=e,this}get loading(){return this.getMeta("loading")||!1}set loading(e){this.setMeta({loading:e})}clearRequestParameters(){return this.request.params={},this}setRequestParameters(e){return this.request.params={...this.request.params,...e},this}setRequestMethod(e){return this.request.method=e,this}addRequestHeader(e,t){return this.request.headers||(this.request.headers={}),this.request.headers[e]=t,this}removeRequestHeader(e){return this.request.headers&&e in this.request.headers&&delete this.request.headers[e],this}addRequestParameter(e,t){return this.request.params||(this.request.params={}),this.request.params[e]=t,this}getRequestParameter(e){return this.request.params&&e in this.request.params?this.request.params[e]:null}removeRequestParameter(e){return this.request.params&&e in this.request.params&&delete this.request.params[e],this}setRequestBody(e){return this.request.data=e,this}setRequestOptions(e,t){return this.request[e]=t,this}getRequestOptions(){return this.request}async refresh(){if(!this.api)throw Error("API client not set");this.clearError();try{let{data:e}=await this.api.request({url:this.getURL(),...this.getRefreshRequestOptions()});this.setData(e),this.emit("refresh")}catch(t){let e=new s(t);throw this.setError(e),e}}getRefreshRequestOptions(){return{...this.request}}constructor(e){super(e),(0,n._)(this,"request",{headers:{},params:{},method:"get",data:null}),(0,n._)(this,"api",void 0),e&&(this.api=e.api)}}var u=r(2543),d=r.n(u);class h{toJSON(){return this.options.operator?{[this.options.path]:{[this.options.operator]:this.options.value}}:{[this.options.path]:this.options.value}}constructor(e){if((0,n._)(this,"options",void 0),this.options=e,e instanceof h)return e;this.options=e}}class p{toJSON(){return{[this.options.logic]:this.options.items.map(e=>e.toJSON())}}constructor(e){if((0,n._)(this,"options",void 0),e instanceof p)return e;if("$and"!==e.logic&&"$or"!==e.logic)throw Error("Logic must be either $and or $or");if(!Array.isArray(e.items))throw Error("Items must be an array");this.options={logic:e.logic,items:e.items.map(e=>e.logic?new p(e):new h(e))}}}var f=r(16639);class m extends c{get supportsFilter(){return!0}setRefreshAction(e){this._refreshActionName=e}mergeRequestConfig(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];let n={},i=(e,t,r,n,i,o)=>{let l=o.size;if(Array.isArray(t)||l>1)return t};return t.reduce((e,t)=>d().mergeWith(e,t,i),n)}setRunActionOptions(e,t){return this.runActionOptions[e]=t,this}splitValue(e){return"string"==typeof e?e.split(",").map(e=>e.trim()):Array.isArray(e)?e:[]}buildURL(e){let t="";if(this.resourceName)if(this.sourceId&&this.resourceName.includes(".")){let[r,n]=this.resourceName.split(".");t=`${r}/${this.sourceId}/${n}:${e||"get"}`}else t=`${this.resourceName}:${e||"get"}`;return t}async runAction(e,t){var r;let{rawResponse:n,...i}=t,o=this.mergeRequestConfig(d().omit(this.request,["params","data","method"]),{method:"post",url:this.buildURL(e)},null==(r=this.runActionOptions)?void 0:r[e],i);["create","update","firstOrCreate","updateOrCreate"].includes(e)&&(o.params=o.params||{},o.params.updateAssociationValues=this.getUpdateAssociationValues());try{let e=await this.api.request(o);if(n)return e;let{data:t}=e;if(!(null==t?void 0:t.data))return t;return{data:t.data,meta:t.meta}}catch(e){throw new s(e)}}setResourceName(e){return this.resourceName=e,this}getResourceName(){return this.resourceName}markDataSourceDirty(e){var t,r;let n=this.context.engine;if(!n)return;let i=this.getDataSourceKey()||"main",o=e||this.getResourceName();if(!o)return;let l=new Set([String(o)]);for(let e of("string"==typeof o&&o.includes(".")&&l.add(o.split(".")[0]),l))n.markDataSourceDirty(i,e);null==(r=n.emitter)||null==(t=r.emit)||t.call(r,f.HK,{dataSourceKey:i,resourceNames:Array.from(l)})}setSourceId(e){return this.sourceId=e,this}getSourceId(){return this.sourceId}setDataSourceKey(e){return this.addRequestHeader("X-Data-Source",e)}getDataSourceKey(){return this.request.headers["X-Data-Source"]}setFilter(e){return this.addRequestParameter("filter",JSON.stringify(e))}getFilter(){let e=[...this.filterGroups.values()].filter(Boolean);if(0!==e.length)return{$and:e}}resetFilter(){this.setFilter(this.getFilter())}addFilterGroup(e,t){t instanceof h&&(t=t.toJSON()),this.filterGroups.set(e,t),this.resetFilter()}removeFilterGroup(e){this.filterGroups.delete(e),this.resetFilter()}setAppends(e){return this.addRequestParameter("appends",e)}getAppends(){return this.request.params.appends||[]}addAppends(e){let t=this.getAppends();return this.splitValue(e).forEach(e=>{t.includes(e)||t.push(e)}),this.request.params.appends=t,this}removeAppends(e){if(!this.request.params.appends)return this;let t=this.getAppends(),r=this.splitValue(e);return this.request.params.appends=t.filter(e=>!r.includes(e)),this}getUpdateAssociationValues(){return this.updateAssociationValues||[]}addUpdateAssociationValues(e){let t=this.getUpdateAssociationValues();return this.splitValue(e).forEach(e=>{t.includes(e)||t.push(e)}),this.updateAssociationValues=t,this}jsonStringify(e){return null!==e&&"object"==typeof e?JSON.stringify(e):e}setFilterByTk(e){return this.addRequestParameter("filterByTk",this.jsonStringify(e))}getFilterByTk(){return this.request.params.filterByTk}setFields(e){return this.addRequestParameter("fields",this.splitValue(e))}getFields(){return this.request.params.fields||[]}setSort(e){return this.addRequestParameter("sort",this.splitValue(e))}getSort(){return this.request.params.sort||[]}setExcept(e){return this.addRequestParameter("except",this.splitValue(e))}getExcept(){return this.request.params.except||[]}setWhitelist(e){return this.addRequestParameter("whitelist",this.splitValue(e))}getWhitelist(){return this.request.params.whitelist||[]}setBlacklist(e){return this.addRequestParameter("blacklist",this.splitValue(e))}getBlacklist(){return this.request.params.blacklist||[]}constructor(...e){super(...e),(0,n._)(this,"resourceName",void 0),(0,n._)(this,"sourceId",null),(0,n._)(this,"request",{method:"get",params:{},headers:{}}),(0,n._)(this,"updateAssociationValues",[]),(0,n._)(this,"runActionOptions",{}),(0,n._)(this,"filterGroups",new Map),(0,n._)(this,"_refreshActionName","list")}}class g extends m{get supportsFilter(){return!0}setCreateActionOptions(e){return this.createActionOptions=e,this}setUpdateActionOptions(e){return this.updateActionOptions=e,this}setSelectedRows(e){return this.setMeta({selectedRows:e}),this}getSelectedRows(){return this.getMeta("selectedRows")||[]}getCount(){return this.getMeta("count")}setPage(e){return this.addRequestParameter("page",e),this.setMeta({page:e})}getPage(){return this.getMeta("page")}setPageSize(e){return this.addRequestParameter("pageSize",e),this.setMeta({pageSize:e})}getPageSize(){return this.getMeta("pageSize")}getTotalPage(){return this.getMeta("totalPage")}getCell(e,t){var r;let n=this.getData();return null==n||null==(r=n[e])?void 0:r[t]}async next(){this.request.params.page+=1,await this.refresh()}async previous(){this.request.params.page>1&&(this.request.params.page-=1,await this.refresh())}async goto(e){e>0&&(this.request.params.page=e,await this.refresh())}async create(e,t){let r=this.mergeRequestConfig({data:e},this.createActionOptions,t),n=await this.runAction("create",r);return this.markDataSourceDirty(),this.emit("saved",e),(null==t?void 0:t.refresh)!==!1&&await this.refresh(),n}async get(e){let t={params:{filterByTk:e}},{data:r}=await this.runAction("get",{...t});return r}async update(e,t,r){let n=t,i=this.mergeRequestConfig({params:{filterByTk:e},data:n},this.updateActionOptions,r);await this.runAction("update",i),this.markDataSourceDirty(),this.emit("saved",t),await this.refresh()}async destroySelectedRows(){let e=this.getSelectedRows();if(0===e.length)throw Error("No rows selected for deletion.");await this.destroy(e)}async destroy(e,t){let r=this.mergeRequestConfig({params:{filterByTk:this.jsonStringify(e)}},t);await this.runAction("destroy",r),this.markDataSourceDirty();let n=this.getPage(),i=Math.ceil((this.getCount()-d().castArray(e).length)/this.getPageSize());n>i&&this.setPage(i||1),await this.refresh()}setItem(e,t){let r=this.getData().slice();r[e]={...t},this.setData(r)}async refresh(){return this.refreshTimer&&clearTimeout(this.refreshTimer),new Promise((e,t)=>{this.refreshWaiters.push({resolve:e,reject:t}),this.refreshTimer=setTimeout(async()=>{let e=this.refreshWaiters;this.refreshWaiters=[],this.refreshTimer=null;try{this.clearError(),this.loading=!0;let{data:t,meta:r}=await this.runAction(this._refreshActionName,{method:"get",...this.getRefreshRequestOptions()});this.setData(t).setMeta(r),(null==r?void 0:r.page)&&this.setPage(r.page),(null==r?void 0:r.pageSize)&&this.setPageSize(r.pageSize),this.emit("refresh"),e.forEach(e=>e.resolve())}catch(r){this.setError(r);let t=r instanceof Error?r:Error(String(r));e.forEach(e=>e.reject(t))}finally{this.loading=!1}})})}constructor(...e){super(...e),(0,n._)(this,"_data",i.observable.ref([])),(0,n._)(this,"_meta",i.observable.ref({})),(0,n._)(this,"refreshTimer",null),(0,n._)(this,"refreshWaiters",[]),(0,n._)(this,"createActionOptions",{}),(0,n._)(this,"updateActionOptions",{}),(0,n._)(this,"_refreshActionName","list"),(0,n._)(this,"request",{method:"get",params:{filter:{},filterByTk:null,appends:[],fields:[],sort:null,except:null,whitelist:null,blacklist:null,page:1,pageSize:20},headers:{}})}}class y extends m{get supportsFilter(){return!this.isNewRecord}setSaveActionOptions(e){return this.saveActionOptions=e,this}setFilterByTk(e){return this.isNewRecord=!1,super.setFilterByTk(e)}async save(e,t){let r=this.mergeRequestConfig(this.saveActionOptions,d().omit(t,["refresh"])),n="create",i=e;this.isNewRecord||(r.params=r.params||{},r.params.filterByTk=this.getFilterByTk(),n="update");let o=await this.runAction(n,{...r,data:i});return this.markDataSourceDirty(),this.emit("saved",e),(null==t?void 0:t.refresh)!==!1&&await this.refresh(),o}async destroy(e){let t=this.mergeRequestConfig({params:{filterByTk:this.jsonStringify(this.request.params.filterByTk)}},e);await this.runAction("destroy",t),this.markDataSourceDirty(),this.setData(null)}async refresh(){if(this.clearError(),!this.isNewRecord)try{let{data:e,meta:t}=await this.runAction(this._refreshActionName,{method:"get",...this.getRefreshRequestOptions()});this.setData(e).setMeta(t),this.emit("refresh")}catch(e){throw this.setError(e),e}}constructor(...e){super(...e),(0,n._)(this,"isNewRecord",!1),(0,n._)(this,"saveActionOptions",{}),(0,n._)(this,"_refreshActionName","get")}}var v=r(74353),w=r.n(v),b=r(97375),x=r.n(b),S=r(90445),A=r.n(S),M=r(43522),_=r.n(M),k=r(37872),P=r.n(k),C=r(98867),j=r.n(C),R=r(8906),E=r.n(R),F=r(68313),T=r.n(F),O=r(21840),I=r.n(O),$=r(41816),D=r.n($),N=r(88569),B=r.n(N),L=r(83826),q=r.n(L),U=r(8134),z=r.n(U),V=r(28623),W=r.n(V),H=r(46986),K=r.n(H);w().extend(K()),w().extend(I()),w().extend(B()),w().extend(q()),w().extend(D()),w().extend(T()),w().extend(P()),w().extend(j()),w().extend(E()),w().extend(z()),w().extend(W()),w().extend(A()),w().extend(x()),w().extend(_()),r(38362),r(81814);var J=r(88835),Y=r(60639),G=r.n(Y),Z=r(79441);let X=r.n(Z)()();function Q(e){let t=e.substr(2,e.length-4).trim(),r=t.indexOf(":");return -1!==r?{key:t.substr(0,r),defaultValue:t.substr(r+1)}:{key:t}}function ee(e,t){return e.parameters=Array.from(new Map(t.map(e=>[e.key,e])).values()),e}Object.keys(X).forEach(function(e){G().registerHelper(e,X[e])}),G().registerHelper("json",function(e){return JSON.stringify(e)}),G().registerHelper("urlParse",function(e){try{return JSON.stringify(J.parse(e))}catch(t){return`Invalid URL: ${e}`}}),G().registerHelper("dateFormat",(e,t,r)=>"string"==typeof r?w()(e).tz(r).format(t):w()(e).format(t)),G().registerHelper("isNull",e=>d().isNull(e)),(()=>{let e=/{{(\w|:|[\s-+.,@/()?=*_$])+}}/g;return t=>{let r=[],n=e=>t,i=t.match(e);return i&&(r=i.map(Q),n=e=>(e=e||{},i.reduce((n,o,l)=>{let s=r[l],a=(0,u.get)(e,s.key);return(void 0===a&&(a=s.defaultValue),"function"==typeof a&&(a=a()),1===i.length&&t.startsWith("{{")&&t.endsWith("}}"))?a:(a instanceof Date&&(a=a.toISOString()),n.replace(o,null==a?"":a))},t))),ee(n,r)}})(),r(14744),r(63560),r(95093),r(67980),Symbol.for("nocobase.utils.sesLockdown"),Symbol.for("nocobase.utils.bufferOverrides"),r(65606);let et=36,er="";for(;et--;)er+=et.toString(36);r(27153);let en=new(r(23155)).HX;function ei(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t={};for(let r of e){let e=r.replace(/^ctx\./,"").split("."),n=t;for(let t=0;t<e.length;t++){let i=e[t];t===e.length-1?n[i]=`{{${r}}}`:(n[i]=n[i]||{},n=n[i])}}return t}async function eo(e){return ei(await en.fullVariables(e))}async function el(e,t){return await en.parseAndRender(e,{ctx:t})}function es(e){let t=1,r={};return{sql:e.replace(/{{\s*([^}]+)\s*}}/g,(e,n)=>{let i=`__var${t}`;return r[i]=`{{${n.trim()}}}`,t++,`$${i}`}),bind:r}}async function ea(e){let{sql:t,bind:r}=es(e),n=await eo(t);return{sql:t,bind:r,liquidContext:n}}class ec{async run(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},{sql:r,bind:n,liquidContext:i}=await ea(e),o=await this.ctx.resolveJsonTemplate({bind:n,liquidContext:i}),l=await el(r,o.liquidContext),{data:s}=await this.ctx.api.request({method:"POST",url:"flowSql:run",data:{sql:l,...t,bind:{...o.bind,...t.bind}}});return null==s?void 0:s.data}async save(e){await this.ctx.api.request({method:"POST",url:"flowSql:save",data:{...e}})}async runById(e,t){let r=await this.ctx.api.request({method:"GET",url:"flowSql:getBind",params:{uid:e}}),{bind:n,liquidContext:i}=await this.ctx.resolveJsonTemplate(r.data.data||{}),{data:o}=await this.ctx.api.request({method:"POST",url:"flowSql:runById",data:{uid:e,...t,bind:{...n,...null==t?void 0:t.bind},liquidContext:i}});return null==o?void 0:o.data}async destroy(e){await this.ctx.api.request({url:"flowSql:destroy",params:{filterByTk:e}})}constructor(e){(0,n._)(this,"ctx",void 0),this.ctx=new o.cB,this.ctx.addDelegate(e),this.ctx.defineProperty("offset",{get:()=>0,cache:!1}),this.ctx.defineProperty("limit",{get:()=>20,cache:!1})}}class eu extends m{get refreshActionName(){return this._debugEnabled?"run":"runById"}get supportsFilter(){return!0}buildURL(e){return`flowSql:${e||this.refreshActionName}`}setPage(e){return this.addRequestParameter("page",e),this.setMeta({page:e})}getPage(){return this.getMeta("page")||1}setPageSize(e){return this.addRequestParameter("pageSize",e),this.setMeta({pageSize:e})}setDebug(e){return this._debugEnabled=e,this}getPageSize(){return this.getMeta("pageSize")||20}async next(){this.setPage(this.getPage()+1),await this.refresh()}async previous(){this.getPage()>1&&(this.setPage(this.getPage()-1),await this.refresh())}async goto(e){e>0&&(this.request.params.page=e,await this.refresh())}setDataSourceKey(e){return this.request.data.dataSourceKey=e,this}setSQLType(e){return this.request.data.type=e,this}setSQL(e){return this._sql=e,this}setFilterByTk(e){return this.request.data.uid=e,this}setFilter(e){return this.request.data.filter=e,this}setBind(e){return this.request.data.bind=e,this}setLiquidContext(e){return this.request.data.liquidContext=e,this}async run(){return this._debugEnabled?await this.runBySQL():await this.runById()}async runBySQL(){let e=this._sql,{sql:t,bind:r,liquidContext:n}=await ea(e),i=await this.context.resolveJsonTemplate({bind:r,liquidContext:n}),o=d().cloneDeep({method:"post",...this.getRefreshRequestOptions()});return o.data.sql=await el(t,i.liquidContext),o.data.bind=i.bind,await this.runAction("run",o)}async runById(){let{data:e}=await this.runAction("getBind",{method:"get",params:{uid:this.request.data.uid}}),{bind:t,liquidContext:r}=await this.context.resolveJsonTemplate(e);return this.setBind(t),this.setLiquidContext(r),await this.runAction("runById",{method:"post",...this.getRefreshRequestOptions()})}async refresh(){return this.refreshTimer&&clearTimeout(this.refreshTimer),new Promise((e,t)=>{this.refreshWaiters.push({resolve:e,reject:t}),this.refreshTimer=setTimeout(async()=>{let e=this.refreshWaiters;this.refreshWaiters=[],this.refreshTimer=null;try{this.clearError(),this.loading=!0,this.emit("loading");let{data:t,meta:r}=await this.run();this.setData(t).setMeta(r),this.loading=!1,this.emit("refresh"),e.forEach(e=>e.resolve())}catch(r){this.setError(r);let t=r instanceof Error?r:Error(String(r));e.forEach(e=>e.reject(t))}finally{this.loading=!1}})})}constructor(e){super(e),(0,n._)(this,"_data",i.observable.ref(null)),(0,n._)(this,"_meta",i.observable.ref({})),(0,n._)(this,"refreshTimer",null),(0,n._)(this,"refreshWaiters",[]),(0,n._)(this,"_debugEnabled",!1),(0,n._)(this,"_sql",void 0),(0,n._)(this,"request",{method:"post",params:{},data:{},headers:{}}),e.defineProperty("limit",{get:()=>this.getPageSize(),cache:!1}),e.defineProperty("offset",{get:()=>(this.getPage()-1)*this.getPageSize(),cache:!1})}}},19258(e,t,r){r.d(t,{JF:()=>c,Jq:()=>u,R5:()=>d});var n=r(29007),i=r(37966);let o=new Set,l=new Map,s=new Set;async function a(e,t){let r=l.get(e)||new Set;if(l.set(e,r),!r.has(t)){r.add(t);try{await t({version:e,RunJSContextRegistry:i.F,FlowRunJSContext:n.uk})}catch(e){throw r.delete(t),e}}}function c(e){if("function"!=typeof e)throw Error("[flow-engine] registerRunJSContextContribution: contribution must be a function");if(!o.has(e))for(let t of(o.add(e),s))a(t,e).catch(e=>{try{console.error("[flow-engine] RunJS context contribution failed:",e)}catch(e){}})}async function u(e){for(let t of o)await a(e,t)}function d(e){s.add(e)}},37966(e,t,r){r.d(t,{B:()=>o,F:()=>i});var n=r(50467);class i{static register(e,t,r,n){this.map.set(`${e}:${t}`,{ctor:r,meta:n})}static resolve(e,t){var r,n;return(null==(r=this.map.get(`${e}:${t}`))?void 0:r.ctor)||(null==(n=this.map.get(`${e}:*`))?void 0:n.ctor)}static getMeta(e,t){var r,n;return(null==(r=this.map.get(`${e}:${t}`))?void 0:r.meta)||(null==(n=this.map.get(`${e}:*`))?void 0:n.meta)}}function o(e){var t,r;return(null==e||null==(r=e.model)||null==(t=r.constructor)?void 0:t.name)||"*"}(0,n._)(i,"map",new Map)},88828(e,t,r){r.r(t),r.d(t,{setupRunJSContexts:()=>a});var n=r(37966),i=r(29007);function o(){i.uk.define({label:"RunJS base",properties:{logger:'Pino logger instance for structured logging. Example: `ctx.logger.info({ foo: 1 }, "message")`',message:{description:"Ant Design global message API for displaying temporary messages.",detail:"MessageInstance",hidden:e=>!(null==e?void 0:e.message),examples:['ctx.message.success("Operation completed")'],properties:{info:{type:"function",description:"Show an info message.",detail:"(content: any, duration?: number) => void",completion:{insertText:"ctx.message.info('Info')"}},success:{type:"function",description:"Show a success message.",detail:"(content: any, duration?: number) => void",completion:{insertText:"ctx.message.success('Success')"}},error:{type:"function",description:"Show an error message.",detail:"(content: any, duration?: number) => void",completion:{insertText:"ctx.message.error('Error')"}},warning:{type:"function",description:"Show a warning message.",detail:"(content: any, duration?: number) => void",completion:{insertText:"ctx.message.warning('Warning')"}},loading:{type:"function",description:"Show a loading message.",detail:"(content: any, duration?: number) => void",completion:{insertText:"ctx.message.loading('Loading...')"}},open:{type:"function",description:"Open a message with custom config.",detail:"(config: any) => void",completion:{insertText:"ctx.message.open({ type: 'info', content: 'Hello' })"}},destroy:{type:"function",description:"Destroy all messages.",detail:"() => void",completion:{insertText:"ctx.message.destroy()"}}}},notification:{description:"Ant Design notification API for displaying notification boxes.",detail:"NotificationInstance",hidden:e=>!(null==e?void 0:e.notification),examples:['ctx.notification.open({ message: "Title", description: "Content" })'],properties:{open:{type:"function",description:"Open a notification with config.",detail:"(config: any) => void",completion:{insertText:"ctx.notification.open({ message: 'Title', description: 'Content' })"}},success:{type:"function",description:"Open a success notification.",detail:"(config: any) => void",completion:{insertText:"ctx.notification.success({ message: 'Success' })"}},info:{type:"function",description:"Open an info notification.",detail:"(config: any) => void",completion:{insertText:"ctx.notification.info({ message: 'Info' })"}},warning:{type:"function",description:"Open a warning notification.",detail:"(config: any) => void",completion:{insertText:"ctx.notification.warning({ message: 'Warning' })"}},error:{type:"function",description:"Open an error notification.",detail:"(config: any) => void",completion:{insertText:"ctx.notification.error({ message: 'Error' })"}},destroy:{type:"function",description:"Destroy all notifications.",detail:"(key?: string) => void",completion:{insertText:"ctx.notification.destroy()"}}}},modal:{description:"Ant Design modal API (HookAPI) for opening modal dialogs.",detail:"HookAPI",hidden:e=>!(null==e?void 0:e.modal),examples:["ctx.modal.confirm({ title: 'Confirm', content: 'Are you sure?' })"],properties:{info:{type:"function",description:"Open an info modal.",detail:"(config: any) => void",completion:{insertText:"ctx.modal.info({ title: 'Info', content: '...' })"}},success:{type:"function",description:"Open a success modal.",detail:"(config: any) => void",completion:{insertText:"ctx.modal.success({ title: 'Success', content: '...' })"}},error:{type:"function",description:"Open an error modal.",detail:"(config: any) => void",completion:{insertText:"ctx.modal.error({ title: 'Error', content: '...' })"}},warning:{type:"function",description:"Open a warning modal.",detail:"(config: any) => void",completion:{insertText:"ctx.modal.warning({ title: 'Warning', content: '...' })"}},confirm:{type:"function",description:"Open a confirm modal.",detail:"(config: any) => void",completion:{insertText:"ctx.modal.confirm({ title: 'Confirm', content: '...' })"}}}},resource:{description:"The current FlowResource instance in this context, used to access and manipulate data. In most block/popup scenarios it is pre-bound by the runtime (no need to call ctx.initResource). In contexts like plain JS blocks where no resource is bound, you can call ctx.initResource(type) first and then use ctx.resource.",detail:"FlowResource",examples:["await ctx.resource.refresh();"],properties:{getData:{description:"Get current resource data.",detail:"() => any",completion:{insertText:"ctx.resource.getData()"}},setData:{description:"Set current resource data (client-side only).",detail:"(value: any) => this",completion:{insertText:"ctx.resource.setData(value)"}},refresh:{description:"Refresh data from server (available on API-backed resources).",detail:"() => Promise<any>",completion:{insertText:"await ctx.resource.refresh()"}},on:{description:"Subscribe resource events (e.g., refresh).",detail:"(event: string, callback: (...args) => void) => void",completion:{insertText:"ctx.resource.on('refresh', () => {})"}},off:{description:"Unsubscribe resource events.",detail:"(event: string, callback: (...args) => void) => void",completion:{insertText:"ctx.resource.off('refresh', handler)"}},setResourceName:{description:'Set resource name (e.g., "users" or "users.profile").',detail:"(resourceName: string) => this",completion:{insertText:"ctx.resource.setResourceName('users')"}},setFilterByTk:{description:"Set primary key or filterByTk for record resources.",detail:"(filterByTk: any) => this",completion:{insertText:"ctx.resource.setFilterByTk(filterByTk)"}},runAction:{description:"Run a resource action (create/update/destroy/custom actions).",detail:"(action: string, options: any) => Promise<any>",completion:{insertText:"await ctx.resource.runAction('create', { data: {} })"}},selectedRows:{description:"Selected rows in table resources (typically for collection/table actions). Availability depends on resource type.",detail:"any[]"},pagination:{description:"Pagination info in list resources. Availability depends on resource type (e.g., MultiRecordResource).",detail:"Record<string, any>"}}},urlSearchParams:"URLSearchParams object containing query parameters from the current URL",token:"API authentication token for the current session",role:"Current user role information",auth:{description:"Authentication context containing locale, role, user, and token information.",detail:"AuthContext",properties:{locale:'Current locale code (e.g., "en-US", "zh-CN").',roleName:"Current role name.",token:"Current API token.",user:"Current user info object (if available)."}},viewer:{description:"FlowViewer instance providing view helpers (drawer/dialog/popover/embed). ",detail:"FlowViewer",examples:["await ctx.viewer.drawer({ width: '56%', content: <div>Hello</div> });","await ctx.viewer.dialog({ content: <div>Confirm</div> });"],properties:{drawer:{description:"Open a drawer view. Parameters: (props: ViewProps) => any",detail:"(props) => any",completion:{insertText:"await ctx.viewer.drawer({ width: '56%', content: <div /> })"}},dialog:{description:"Open a dialog/modal view. Parameters: (props: ViewProps) => any",detail:"(props) => any",completion:{insertText:"await ctx.viewer.dialog({ content: <div /> })"}},popover:{description:"Open a popover view. Parameters: (props: PopoverProps) => any",detail:"(props) => any",completion:{insertText:"await ctx.viewer.popover({ target: ctx.element?.__el, content: <div /> })"}},embed:{description:"Open an embed view. Parameters: (props: ViewProps & TargetProps) => any",detail:"(props) => any",completion:{insertText:"await ctx.viewer.embed({ target: document.body, content: <div /> })"}}}},popup:{description:'Popup context when current view is opened as a popup/drawer. Recommended: `const popup = await ctx.getVar("ctx.popup")`.',detail:"Promise<PopupContext | undefined>",hidden:async e=>{try{let t=await (null==e?void 0:e.popup);return!(null==t?void 0:t.uid)}catch(e){return!1}},examples:['const popup = await ctx.getVar("ctx.popup");',"const id = popup?.record?.id;","const parentId = popup?.parent?.record?.id;"],properties:{uid:"Popup view uid (string).",record:"Current popup record (object).",sourceRecord:"Parent/source record inferred from sourceId/associationName (object).",resource:{description:"Data source info of the popup record.",detail:"PopupResourceInfo",properties:{dataSourceKey:'Data source key (e.g., "main").',collectionName:"Collection name.",associationName:"Association resource name (optional).",filterByTk:"Record primary key / filterByTk.",sourceId:"Source id (optional)."}},parent:"Parent popup info (object). You can access parent.parent... at runtime if available."}},i18n:{description:"An instance of i18next for managing internationalization.",detail:"i18next",properties:{language:"Current active language code."}},libs:{properties:{React:"React namespace (same as ctx.React).",ReactDOM:"ReactDOM client API (same as ctx.ReactDOM).",antd:"Ant Design component library (same as ctx.antd).",dayjs:"dayjs date-time utility library.",antdIcons:"Ant Design icons library. Example: `ctx.libs.antdIcons.PlusOutlined`.",lodash:'Lodash utility library. Example: `ctx.libs.lodash.get(obj, "a.b")`.',formula:"Formula.js library (spreadsheet-like functions). Example: `ctx.libs.formula.SUM(1, 2, 3)`.",math:'mathjs library. Example: `ctx.libs.math.evaluate("2 + 3")`.'}}},methods:{request:{description:"Make an HTTP request using the APIClient instance. Parameters: (options: RequestOptions) => Promise<any>.",detail:"(options: RequestOptions) => Promise<any>",completion:{insertText:"await ctx.request({ url: '', method: 'get', params: {} })"}},getModel:{description:"Get a model instance by uid. By default, it searches across the current view stack and returns the first matched model.",detail:"(uid: string, searchInPreviousEngines?: boolean) => FlowModel | undefined",completion:{insertText:"ctx.getModel('block-uid-xxx')"},params:[{name:"uid",type:"string",description:"Target model uid."},{name:"searchInPreviousEngines",type:"boolean",description:"Whether to search in parent engines (default: false)."}],returns:{type:"FlowModel | undefined"},examples:["const model = ctx.getModel('block-uid-xxx');"]},t:'Internationalization function for translating text. Parameters: (key: string, variables?: object) => string. Example: `ctx.t("Hello {{name}}", { name: "World" })`',initResource:{description:'Initialize ctx.resource as a FlowResource instance by class name. Common values: "MultiRecordResource", "SingleRecordResource", "SQLResource".',detail:"(resourceType: ResourceType) => void",completion:{insertText:"ctx.initResource('MultiRecordResource')"},examples:["ctx.initResource('MultiRecordResource'); ctx.resource.setResourceName('users');"]},makeResource:{description:'Create a new resource instance without binding it to ctx.resource. Useful when you need multiple independent or temporary resources. Common values: "MultiRecordResource", "SingleRecordResource", "SQLResource".',detail:"(resourceType) => FlowResource",completion:{insertText:"const resource = ctx.makeResource('SingleRecordResource')"},examples:["const resource = ctx.makeResource('SingleRecordResource'); resource.setResourceName('users');"]},render:{description:'Render into container. Accepts ReactElement, DOM Node/Fragment, or HTML string. Parameters: (vnode: ReactElement | Node | DocumentFragment | string, container?: HTMLElement|ElementProxy) => Root|null. Example: `ctx.render(<div>Hello</div>)` or `ctx.render("<b>hi</b>")`',detail:"ReactDOM Root",completion:{insertText:"ctx.render(<div />)"}},requireAsync:'Load UMD/AMD/global scripts or CSS asynchronously from URL. Accepts shorthand like "echarts@5/dist/echarts.min.js" (resolved via ESM CDN with ?raw) or full URLs, and returns a Promise of the loaded library.',importAsync:'Dynamically import ESM modules or CSS by URL. Accepts shorthand like "vue@3.4.0" or "dayjs@1/plugin/relativeTime.js" (resolved via configured ESM CDN) or full URLs, and returns a Promise of the module namespace.',getVar:{description:'Resolve a ctx expression value by path string (expression starts with "ctx.").',detail:"(path: string) => Promise<any>",completion:{insertText:"await ctx.getVar('ctx.record.id')"},params:[{name:"path",type:"string",description:'Expression path starts with "ctx." (e.g. "ctx.record.id", "ctx.record.roles[0].id").'}],returns:{type:"Promise<any>"},examples:["const id = await ctx.getVar('ctx.record.id');"]},getApiInfos:{description:"All available APIs under context namespace",detail:"(options?: { version?: string }) => Promise<Record<string, any>>",completion:{insertText:"await ctx.getApiInfos()"},params:[{name:"options",type:"{ version?: string }",optional:!0,description:"Options (e.g. version)."}],returns:{type:"Promise<Record<string, any>>"},examples:["const apis = await ctx.getApiInfos();"]},getVarInfos:{description:"All available variables could be used to get deeper data.",detail:"(options?: { path?: string|string[]; maxDepth?: number }) => Promise<Record<string, any>>",completion:{insertText:"await ctx.getVarInfos({ path: 'record', maxDepth: 3 })"},params:[{name:"options",type:"{ path?: string|string[]; maxDepth?: number }",optional:!0,description:"Options for path trimming and maxDepth expansion."}],returns:{type:"Promise<Record<string, any>>"},examples:["const vars = await ctx.getVarInfos({ path: 'record', maxDepth: 3 });"]},getEnvInfos:{description:"current runtime environment",detail:"() => Promise<Record<string, any>>",completion:{insertText:"await ctx.getEnvInfos()"},returns:{type:"Promise<Record<string, any>>"},examples:["const envs = await ctx.getEnvInfos();"]},runAction:{description:'Execute a data action on the current resource. Parameters: (actionName: string, params: object) => Promise<any>. Example: `await ctx.runAction("create", { values: { name: "test" } })`',detail:"Promise<any>",completion:{insertText:"await ctx.runAction('create', { values: {} })"}},openView:{description:`Open a view component (page, modal, or drawer) by its unique identifier.
|
|
246
|
+
`}),(0,p.jsx)(eC,{metaTree:i,onChange:u,open:!0,showSearch:!1,dropdownStyle:{boxShadow:"none",border:"none"},style:{display:"none"},children:(0,p.jsx)("div",{})})]}),open:s,trigger:"click",placement:"bottomLeft",onOpenChange:c,overlayClassName:"variable-trigger-popover",destroyTooltipOnHide:!0,children:(0,p.jsxs)("span",{...t,contentEditable:!1,style:{backgroundColor:"#e6f7ff",border:"1px dashed #1890ff",borderRadius:4,padding:"1px 4px",margin:"0 1px",cursor:"pointer",display:"inline-block",fontSize:"12px",color:"#1890ff",userSelect:"none"},"data-slate-void":!0,children:["{{}}",(0,p.jsx)("span",{style:{display:"none"},children:r})]})})},rm=e=>{let{value:t="",onChange:r,metaTree:n,multiline:i=!1,placeholder:o="输入文本,使用 {{ 插入变量",style:l={},...s}=e,a=(0,g.useMemo)(()=>{let e=(0,rc.o$)((0,rd.$k)((0,ru.ie)())),{isInline:t,isVoid:r}=e;return e.isInline=e=>"variable"===e.type||"variable-trigger"===e.type||t(e),e.isVoid=e=>"variable"===e.type||"variable-trigger"===e.type||r(e),e},[]),[u,c]=g.useState(null);g.useEffect(()=>{(async()=>{if(!n)return c(null);try{if("function"==typeof n){let e=await n();c(e)}else c(n)}catch(e){console.warn("Failed to resolve metaTree:",e),c(null)}})()},[n]);let d=(0,g.useCallback)(function(){let e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";if(!t)return[{type:"paragraph",children:[{text:""}]}];let r=/\{\{[^}]+\}\}/g,n=0,i=[];for(;null!==(e=r.exec(t));){e.index>n&&i.push({text:t.slice(n,e.index)});let r=e[0],o=eg(r),l;i.push({type:"variable",value:r,meta:l,children:[{text:""}]}),n=e.index+e[0].length}return n<t.length&&i.push({text:t.slice(n)}),0===i.length&&i.push({text:""}),[{type:"paragraph",children:i}]},[u]),h=(0,g.useMemo)(()=>d(t||""),[t,d]),f=(0,g.useCallback)(e=>e.map(e=>ru.Hg.isElement(e)?"variable"===e.type?e.value:f(e.children):e.text).join(""),[]),m=(0,g.useCallback)(e=>{let t=f(e);null==r||r(t)},[r,f]),y=(0,g.useCallback)((e,t,r)=>{let[n]=ru.KE.nodes(a,{match:t=>ru.Hg.isElement(t)&&"variable-trigger"===t.type&&t.triggerId===e});if(n){let[,e]=n,i={type:"variable",value:t,meta:r,children:[{text:""}]};ru.gB.setNodes(a,i,{at:e});let o=ru.KE.after(a,e);o&&ru.gB.select(a,o),rc.rL.focus(a)}},[a]),v=(0,g.useCallback)(e=>{let[t]=ru.KE.nodes(a,{match:t=>ru.Hg.isElement(t)&&"variable-trigger"===t.type&&t.triggerId===e});if(t){let[,e]=t;ru.gB.select(a,e),ru.gB.removeNodes(a,{at:e}),ru.gB.insertText(a,"{{"),rc.rL.focus(a)}},[a]),w=(0,g.useCallback)(e=>{switch(e.element.type){case"variable":return(0,p.jsx)(ry,{...e,metaTree:u});case"variable-trigger":return(0,p.jsx)(rg,{...e,element:e.element,metaTree:n,onVariableSelect:y,onTriggerClose:v});default:return(0,p.jsx)("p",{...e.attributes,children:e.children})}},[n,u,y,v]),b=(0,g.useCallback)(e=>(0,p.jsx)("span",{...e.attributes,style:{fontWeight:e.leaf.bold?"bold":"normal"},children:e.children}),[]),x=(0,g.useCallback)(e=>{if("{"===e.key){let{selection:t}=a;if(t&&ru.Q6.isCollapsed(t)){let[r]=ru.Q6.edges(t),n=ru.KE.before(a,r);if(n){let t=ru.KE.range(a,n,r);if("{"===ru.KE.string(a,t)){e.preventDefault(),ru.gB.delete(a,{at:t});let r={type:"variable-trigger",triggerId:(0,_.uid)(),children:[{text:""}]};ru.gB.insertNodes(a,r)}}}}},[a]);return(0,p.jsx)(rc.A,{editor:a,initialValue:h,onChange:m,children:(0,p.jsx)(rc.Fo,{renderElement:w,renderLeaf:b,placeholder:o,onKeyDown:x,style:{minHeight:i?100:32,padding:"4px 11px",border:"1px solid #d9d9d9",borderRadius:6,fontSize:14,lineHeight:1.5714285714285714,...l},...s})})},ry=e=>{let{attributes:t,children:r,element:n,metaTree:i}=e,o=n,l=g.useMemo(()=>o.meta?o.meta:(i&&o.value&&eg(o.value),null),[o.meta,o.value,i]);return(0,p.jsxs)("span",{...t,contentEditable:!1,children:[(0,p.jsx)(rp,{value:o.value,metaTreeNode:l,metaTree:i,style:{marginLeft:2,marginRight:2,verticalAlign:"baseline",display:"inline-block"}}),r]})};var rv=r(61793),rw=r(76546);function rb(){return function(e){e.isLargeField=!0}}var rx=r(63128),rS=r(91013),r_=r(37966);function rA(e){var t,r,n;return(null==e||null==(r=e.api)||null==(t=r.auth)?void 0:t.locale)||(null==e||null==(n=e.i18n)?void 0:n.language)||(null==e?void 0:e.locale)}function rk(e){var t,r;let{version:n="v1"}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=(0,r_.B)(e),o=r_.F.resolve(n,i)||r_.F.resolve(n,"*"),l=rA(e);return(null==o||null==(t=o.getDoc)?void 0:t.length)?o.getDoc(l)||{}:(null==o||null==(r=o.getDoc)?void 0:r.call(o))||{}}function rM(e){let t=(null==e?void 0:e.version)||"v1",r=(0,r_.B)(this),n=e=>e,i=r_.F.resolve(t,r)||r_.F.resolve(t,"*");if(!i)throw Error("[RunJS] No RunJSContext registered for version/model.");let o=new i(n(this)),l={};try{var s,a;let e=rA(this);l=(null==i||null==(s=i.getDoc)?void 0:s.length)?i.getDoc(e)||{}:(null==i||null==(a=i.getDoc)?void 0:a.call(i))||{}}catch(e){l={}}let u={ctx:(0,eH.Bt)(o,{doc:l}),...(null==e?void 0:e.globals)||{}};("JSFieldModel"===r||"JSBlockModel"===r)&&("u">typeof window&&(u.window=window),"u">typeof document&&(u.document=document));let{timeoutMs:c}=e||{};return new rS.I({globals:u,timeoutMs:c})}function rE(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"v1",r=r_.F.getMeta(t,e);return Array.isArray(null==r?void 0:r.scenes)?[...r.scenes]:[]}function rj(e){let{version:t="v1"}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return rE((0,r_.B)(e),t)}var rR=r(88828),rP=r(19258);let rC={"global/message-success":()=>r.e("3937").then(r.bind(r,75432)),"global/message-error":()=>r.e("3018").then(r.bind(r,19505)),"global/api-request":()=>r.e("7946").then(r.bind(r,66321)),"global/require-amd":()=>r.e("4222").then(r.bind(r,25789)),"global/import-esm":()=>r.e("6373").then(r.bind(r,25716)),"global/notification-open":()=>r.e("7876").then(r.bind(r,52191)),"global/window-open":()=>r.e("2203").then(r.bind(r,27142)),"global/open-view-drawer":()=>r.e("1676").then(r.bind(r,6551)),"global/open-view-dialog":()=>r.e("7211").then(r.bind(r,29846)),"global/query-selector":()=>r.e("2958").then(r.bind(r,93117)),"global/clipboard-copy-text":()=>r.e("754").then(r.bind(r,38937)),"scene/block/echarts-init":()=>r.e("2726").then(r.bind(r,37285)),"scene/block/render-react":()=>r.e("5501").then(r.bind(r,71868)),"scene/block/render-react-jsx":()=>r.e("5721").then(r.bind(r,91296)),"scene/block/render-antd-icons":()=>r.e("8434").then(r.bind(r,84953)),"scene/block/render-button-handler":()=>r.e("7201").then(r.bind(r,93512)),"scene/block/add-event-listener":()=>r.e("212").then(r.bind(r,97487)),"scene/block/chartjs-bar":()=>r.e("1310").then(r.bind(r,39101)),"scene/block/vue-component":()=>r.e("1725").then(r.bind(r,40812)),"scene/block/resource-example":()=>r.e("6738").then(r.bind(r,25481)),"scene/block/api-fetch-render-list":()=>r.e("8138").then(r.bind(r,26177)),"scene/block/render-info-card":()=>r.e("2555").then(r.bind(r,53494)),"scene/block/render-statistics":()=>r.e("1951").then(r.bind(r,47890)),"scene/block/render-timeline":()=>r.e("3727").then(r.bind(r,80626)),"scene/block/render-iframe":()=>r.e("8562").then(r.bind(r,25417)),"scene/detail/innerHTML-value":()=>r.e("700").then(r.bind(r,99287)),"scene/detail/format-number":()=>r.e("1786").then(r.bind(r,84529)),"scene/detail/color-by-value":()=>r.e("2898").then(r.bind(r,17689)),"scene/detail/copy-to-clipboard":()=>r.e("1425").then(r.bind(r,57064)),"scene/detail/status-tag":()=>r.e("8438").then(r.bind(r,7765)),"scene/detail/relative-time":()=>r.e("7021").then(r.bind(r,37420)),"scene/detail/percentage-bar":()=>r.e("5759").then(r.bind(r,73330)),"scene/detail/set-field-style":()=>r.e("7492").then(r.bind(r,40959)),"scene/form/render-basic":()=>r.e("6437").then(r.bind(r,29924)),"scene/form/set-field-value":()=>r.e("3989").then(r.bind(r,35876)),"scene/form/toggle-visible":()=>r.e("5761").then(r.bind(r,30008)),"scene/form/set-disabled":()=>r.e("4313").then(r.bind(r,66656)),"scene/form/set-required":()=>r.e("3662").then(r.bind(r,44637)),"scene/form/calculate-total":()=>r.e("2335").then(r.bind(r,74354)),"scene/form/conditional-required":()=>r.e("158").then(r.bind(r,37517)),"scene/form/cascade-select":()=>r.e("7959").then(r.bind(r,79242)),"scene/form/toggle-multiple-fields":()=>r.e("2017").then(r.bind(r,57768)),"scene/form/copy-field-values":()=>r.e("3117").then(r.bind(r,80236)),"scene/table/cell-open-dialog":()=>r.e("9836").then(r.bind(r,72103)),"scene/table/concat-fields":()=>r.e("2710").then(r.bind(r,27733)),"scene/table/collection-selected-count":()=>r.e("5064").then(r.bind(r,35803)),"scene/table/iterate-selected-rows":()=>r.e("8262").then(r.bind(r,86949)),"scene/table/destroy-selected":()=>r.e("3690").then(r.bind(r,92625)),"scene/table/export-selected-json":()=>r.e("6581").then(r.bind(r,56100)),"scene/table/set-cell-style":()=>r.e("9827").then(r.bind(r,10782))};function rF(e,t,r){if("string"!=typeof e||!e.trim())throw Error("[flow-engine] registerRunJSSnippet: ref must be a non-empty string");if("function"!=typeof t)throw Error("[flow-engine] registerRunJSSnippet: loader must be a function returning a Promise");let n=e.trim();return("function"!=typeof rC[n]||!!(null==r?void 0:r.override))&&(rC[n]=t,!0)}function rT(e){let t=e.split("/");return t[t.length-1]||e}function rI(e,t){if(Array.isArray(null==e?void 0:e.scenes)&&e.scenes.length)return e.scenes.map(e=>String(e).trim()).filter(e=>e.length>0);let r=t.split("/");return"scene"===r[0]&&r[1]?[r[1]]:[]}function r$(e){return({detailFieldEvent:"detail",tableFieldEvent:"table",formFieldEvent:"form"})[e]||e}function rO(e,t){let r=rI(e,t);if(r.length)return Array.from(new Set(r.map(e=>`scene/${r$(e)}`)));let n=t.split("/");if(!n.length)return[];let i=n[0];return"global"===i||"libs"===i?[i]:"scene"===i&&n.length>=2?[`${i}/${n[1]}`]:n.length>=2?[`${n[0]}/${n[1]}`]:[n[0]]}function rD(e,t){if(!t||!(null==e?void 0:e.locales))return{};let r=e.locales[t];if(r)return r;let n=t.toLowerCase();if(n!==t&&e.locales[n])return e.locales[n];let i=t.split("-")[0];if(i&&e.locales[i])return e.locales[i];if(i){let t=i.toLowerCase();if(e.locales[t])return e.locales[t]}return{}}async function rN(e){let t=rC[e];if("function"!=typeof t)throw Error(`[flow-engine] snippet not found: ${e}`);let r=await t(),n=null==r?void 0:r.default,i=(null==n?void 0:n.content)??(null==r?void 0:r.content)??(null==r?void 0:r.body)??"";return"string"==typeof i?i:String(i??"")}async function rB(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"v1",r=arguments.length>2?arguments[2]:void 0,n=[],i=new Set;"string"==typeof e&&e&&i.add(e);try{let r=r_.F.resolve(t,e);(null==r?void 0:r.name)&&i.add(r.name)}catch(e){}return await Promise.all(Object.entries(rC).map(async o=>{let[l,s]=o;if("function"==typeof s)try{let o=await s(),a=(null==o?void 0:o.default)||{},u=(null==a?void 0:a.content)??(null==o?void 0:o.content);if("string"!=typeof u)return;let c=!0;if(Array.isArray(null==a?void 0:a.contexts)&&a.contexts.length){let t=a.contexts.map(e=>"*"===e?"*":"string"==typeof e?e:"function"==typeof e?e.name||"*":e&&"object"==typeof e&&"string"==typeof e.name?e.name:String(e??""));c="*"===e||t.includes("*")||t.some(e=>i.has(e))}if(c&&Array.isArray(null==a?void 0:a.versions)&&a.versions.length&&(c=a.versions.includes("*")||a.versions.includes(t)),!c)return;let d=rD(a,r),h=d.label||(null==a?void 0:a.label)||rT(l),p=d.description??(null==a?void 0:a.description),f=(null==a?void 0:a.prefix)||h,g=rO(a,l),m=rI(a,l);n.push({name:h,prefix:f,description:p,body:u,ref:l,group:g[0],groups:g,scenes:m})}catch(e){return}})),n}var rL=r(52249),rz=r(16639),rq=r(68161),rW=r(47451);function rV(e){let t=new a.$;e.modelRepository&&t.setModelRepository(e.modelRepository),t.context.addDelegate(e.context),t.unlinkFromStack=function(){let e=t._previousEngine,r=t._nextEngine;e&&(e._nextEngine=r),r&&(r._previousEngine=e),t._previousEngine=void 0,t._nextEngine=void 0};let r=new Set(["_modelInstances","_applyFlowCache","executor","context","previousEngine","nextEngine","unlinkFromStack","linkAfter","_previousEngine","_nextEngine","getModel"]),n={get(t,n,i){if(r.has(n))return Reflect.get(t,n,i);let o=Reflect.get(e,n,i);return"registerModels"===n&&"function"==typeof o?o.bind(e):o},set:(t,n,i)=>r.has(n)?Reflect.set(t,n,i):Reflect.set(e,n,i),has:(t,r)=>r in t||r in e};return t.linkAfter(e),new Proxy(t,n)}},22505(e,t,r){r.d(t,{R:()=>o});var n=r(74848),i=r(96540);function o(e){for(var t=arguments.length,r=Array(t>1?t-1:0),o=1;o<t;o++)r[o-1]=arguments[o];if(0===r.length){let t=(0,i.lazy)(()=>e().then(e=>({default:e.default})));return e=>(0,n.jsx)(i.Suspense,{fallback:null,children:(0,n.jsx)(t,{...e})})}return r.reduce((t,r)=>{let o=(0,i.lazy)(()=>e().then(e=>({default:e[r]})));return t[r]=e=>(0,n.jsx)(i.Suspense,{fallback:null,children:(0,n.jsx)(o,{...e})}),t},{})}},1314(e,t,r){r.d(t,{xI:()=>Y,WD:()=>N,jG:()=>Q,NK:()=>O,B3:()=>ee,yN:()=>E,_f:()=>B,WE:()=>J,bt:()=>et,oY:()=>L,yW:()=>X});var n=r(58587),i=r(18150),o=r(68238),l=r(50467),s=r(74848),a=r(95243),u=r(2543),c=r.n(u),d=r(96540),h=r(38950),p=r(48036),f=r(68161);class g{addFlows(e){for(let[t,r]of Object.entries(e||{}))this.addFlow(t,r)}addFlow(e,t){let r=new f.G({...t,key:e},this);return this.flows.set(e,r),r}hasFlow(e){return!!this.flows.get(e)}getFlow(e){return this.flows.get(e)}getFlows(){return this.flows}removeFlow(e){this.flows.delete(e)}mapFlows(e){return[...this.getFlows().values()].map(t=>e(t))}moveStep(e,t,r){let n=this.getFlow(e);if(!n)throw Error(`Flow '${e}' not found`);n.moveStep(t,r)}constructor(){(0,l._)(this,"flows",void 0),this.flows=a.observable.shallow(new Map)}}class m extends g{async save(){await this.model.saveStepParams()}async saveFlow(e){await this.model.saveStepParams()}async destroyFlow(e){this.removeFlow(e),await this.model.saveStepParams()}async moveStep(e,t,r){super.moveStep(e,t,r),await this.model.saveStepParams()}constructor(e){super(),(0,l._)(this,"model",void 0),this.model=e}}(0,l._)(m,"_type","instance");var y=r(29007),v=r(48555),w=r(84359),b=r(64171);class x extends b.Z{onActionRegistered(){this.changeMarker={}}getActions(){var e;let t=null==(e=this.parentRegistry)?void 0:e.getActions();if(this.mergedCache&&this.mergedCache.parentSnapshot===t&&this.mergedCache.localMarker===this.changeMarker)return this.mergedCache.mergedMap;let r=new Map(t??[]);for(let[e,t]of this.actions)r.set(e,t);return this.mergedCache={parentSnapshot:t,localMarker:this.changeMarker,mergedMap:r},r}getAction(e){var t;let r=this.actions.get(e);return r||(null==(t=this.parentRegistry)?void 0:t.getAction(e))}constructor(e,t){super(),(0,l._)(this,"modelClass",void 0),(0,l._)(this,"parentRegistry",void 0),(0,l._)(this,"changeMarker",{}),(0,l._)(this,"mergedCache",void 0),this.modelClass=e,this.parentRegistry=t??null}}var S=r(41594),_=r(26955);class A extends _.L{onEventRegistered(){this.changeMarker={}}getEvents(){var e;let t=null==(e=this.parentRegistry)?void 0:e.getEvents();if(this.mergedCache&&this.mergedCache.parentSnapshot===t&&this.mergedCache.localMarker===this.changeMarker)return this.mergedCache.mergedMap;let r=new Map(t??[]);for(let[e,t]of this.events)r.set(e,t);return this.mergedCache={parentSnapshot:t,localMarker:this.changeMarker,mergedMap:r},r}getEvent(e){var t;let r=this.events.get(e);return r||(null==(t=this.parentRegistry)?void 0:t.getEvent(e))}constructor(e,t){super(),(0,l._)(this,"modelClass",void 0),(0,l._)(this,"parentRegistry",void 0),(0,l._)(this,"changeMarker",{}),(0,l._)(this,"mergedCache",void 0),this.modelClass=e,this.parentRegistry=t??null}}class k extends g{removeFlow(e){console.warn(`GlobalFlowRegistry.removeFlow: removing static flow '${e}' is not supported.`)}getFlow(e){if(this.flows.has(e))return this.flows.get(e);let t=Object.getPrototypeOf(this.target);if(t!==Function.prototype&&t!==Object.prototype&&(null==t?void 0:t.globalFlowRegistry))return t.globalFlowRegistry.getFlow(e)}getFlows(){let e=new Map(this.flows),t=Object.getPrototypeOf(this.target);if(t!==Function.prototype&&t!==Object.prototype&&(null==t?void 0:t.globalFlowRegistry))for(let[r,n]of t.globalFlowRegistry.getFlows().entries())e.has(r)||e.set(r,n);let r=e=>{let t=0,r=e;for(;r&&r!==N&&r!==Function.prototype&&r!==Object.prototype;)r=Object.getPrototypeOf(r),t+=1;return t};return new Map(Array.from(e.entries()).sort((e,t)=>{let[,n]=e,[,i]=t,o=n.sort??0,l=i.sort??0;if(o!==l)return o-l;let s=n.flowRegistry,a=i.flowRegistry,u=r(s.target),c=r(a.target);return u!==c?u-c:0}))}saveFlow(e){}destroyFlow(e){}constructor(e){super(),(0,l._)(this,"target",void 0),this.target=e}}(0,l._)(k,"_type","global");var M=new WeakMap;class E{static setSharedProperties(e){this.SHARED_PROPERTIES=[...e]}static getSharedProperties(){return[...this.SHARED_PROPERTIES]}get context(){return this["#flowContext"]||(this["#flowContext"]=new y.Hl(this.master,this)),this["#flowContext"]}getPropertyDescriptor(e,t){let r=e;for(;r;){let e=Object.getOwnPropertyDescriptor(r,t);if(e)return e;r=Object.getPrototypeOf(r)}}setProps(e,t){this.disposed||("string"==typeof e?this.localProps[e]=t:this.localProps={...this.localProps,...e})}clearProps(){return this.localProps={}}render(){if(this.disposed)return null;let e={...this.master.getProps(),...this.localProps},t=this.props;this.props=e;try{return this.master.render.call(this)}finally{this.props=t}}getFlowCacheScope(e){return`${String(e)}:${String(this.forkId)}`}dispose(){if(!this.disposed){this.disposed=!0;try{var e;let t=null==(e=this.flowEngine)?void 0:e.applyFlowCache;if(t&&t.size>0){let e=[`:${this.uid}`,`-${this.uid}`],r=`:${this.forkId}:`,n=`-${this.forkId}-`;for(let i of t.keys()){if(!(i.startsWith("event:")||i.startsWith("event-"))||!e.some(e=>i.endsWith(e)))continue;let o=i;for(let t of e)if(o.endsWith(t)){o=o.slice(0,-t.length);break}(o.includes(r)||o.includes(n))&&t.delete(i)}}}catch{}if(this.master&&this.master.forks&&this.master.forks.delete(this),this.master&&this.master.forkCache){let e=this.master.forkCache;for(let[t,r]of e.entries())if(r===this){e.delete(t);break}}}}getProps(){return{...this.master.getProps(),...this.localProps}}isSharedProperty(e){return E.SHARED_PROPERTIES.includes(e)}constructor(e,t={},r){return(0,l._)(this,"uid",void 0),(0,l._)(this,"isFork",!0),(0,l._)(this,"localProps",void 0),(0,l._)(this,"master",void 0),(0,l._)(this,"disposed",!1),(0,l._)(this,"forkId",void 0),(0,l._)(this,"localProperties",{}),(0,i._)(this,M,{writable:!0,value:void 0}),this.localProperties,this.master=e,this.uid=e.uid,this.localProps={...t},this.forkId=r||(0,h.L)(),this.hidden=this.master.hidden,(0,a.define)(this,{localProps:a.observable,hidden:a.observable,setProps:a.action}),new Proxy(this,{get:(e,t,r)=>{var n;if("disposed"===t)return e.disposed;if("constructor"===t)return e.master.constructor;if("props"===t)return{...e.master.getProps(),...e.localProps};if(t in e)return Reflect.get(e,t,r);if(Object.prototype.hasOwnProperty.call(e.localProperties,t))return e.localProperties[t];let i=null==(n=e.master)?void 0:n[t];if("function"==typeof i){let t=e.master.constructor;return(function(){for(var e=arguments.length,r=Array(e),n=0;n<e;n++)r[n]=arguments[n];let o=Object.create(this);return Object.defineProperty(o,"constructor",{value:t,configurable:!0,enumerable:!1,writable:!1}),i.apply(o,r)}).bind(r)}return i},set:(e,t,r,n)=>{if("props"===t)return!0;if(t in e)return Reflect.set(e,t,r,n);let i=String(t);if(E.SHARED_PROPERTIES.includes(i)){let i=this.getPropertyDescriptor(e.master,t);return i&&i.set?i.set.call(n,r):e.master[t]=r,!0}{let i=this.getPropertyDescriptor(e.master,t);return i&&i.set?i.set.call(n,r):e.localProperties[t]=r,!0}}})}}(0,l._)(E,"SHARED_PROPERTIES",["stepParams","sortIndex"]);var j=r(19098);let R=new WeakMap,P=new WeakMap,C=new WeakMap,F=new WeakMap,T=new WeakMap;async function I(){return(await Promise.resolve().then(r.bind(r,23183))).openStepSettingsDialog}async function $(){return(await Promise.resolve().then(r.bind(r,96332))).openRequiredParamsStepFormDialog}var O=function(e){return e.ReactElement="reactElement",e.RenderFunction="renderFunction",e}({}),D=new WeakMap;class N{renderHiddenInConfig(){var e,t;return(0,s.jsx)("span",{style:{opacity:.5},children:(null==(e=(t=this).translate)?void 0:e.call(t,"Hidden"))||"Hidden"})}renderOriginal(){return this._originalRender()}get context(){return(0,n._)(this,D)||(0,o._)(this,D,new y.d6(this)),(0,n._)(this,D)}on(e,t){this.emitter.on(e,t)}onInit(e){}async afterAddAsSubModel(){}get async(){return this._options.async||!1}get use(){return this._options.use}get subKey(){return this._options.subKey}get subType(){return this._options.subType}get reactView(){return this.flowEngine.reactView}get parentId(){return this._options.parentId}scheduleModelOperation(e,t,r){var n;return null==(n=this.flowEngine)?void 0:n.scheduleModelOperation(this,e,t,r)}static get meta(){return C.get(this)}static get globalFlowRegistry(){let e=this,t=F.get(e);return t||(t=new k(e),F.set(e,t)),t}static get actionRegistry(){let e=this,t=R.get(e);if(!t){let r=null,n=Object.getPrototypeOf(e);n&&n!==Function.prototype&&n!==Object.prototype&&(n===N||(0,v.FA)(n,N))&&(r=n.actionRegistry),t=new x(e,r),R.set(e,t)}return t}static get eventRegistry(){let e=this,t=P.get(e);if(!t){let r=null,n=Object.getPrototypeOf(e);n&&n!==Function.prototype&&n!==Object.prototype&&(n===N||(0,v.FA)(n,N))&&(r=n.eventRegistry),t=new A(e,r),P.set(e,t)}return t}static registerAction(e){this.actionRegistry.registerAction(e)}static registerActions(e){this.actionRegistry.registerActions(e)}static registerEvent(e){this.eventRegistry.registerEvent(e)}static registerEvents(e){this.eventRegistry.registerEvents(e)}static async buildChildrenFromModels(e,t){return Promise.all(t.map(t=>(0,S.Ls)(t,e,!0)))}get title(){var e;return this.translate(this._title)||this.translate(null==(e=this.constructor.meta)?void 0:e.label)}get extraTitle(){return this._extraTitle?this.translate(this._extraTitle):""}setTitle(e){this._title=e}setExtraTitle(e){this._extraTitle=e||""}setHidden(e){this.hidden=!!e}_createSubModels(e){let t=e||{};try{let r=this.constructor.meta,n=null==r?void 0:r.createModelOptions;if(n&&"object"==typeof n&&n.subModels){let r=(e,t)=>{if(Array.isArray(e)&&Array.isArray(t))return t};t=c().mergeWith({},c().cloneDeep(n.subModels||{}),c().cloneDeep(e||{}),r)}}catch(e){}Object.entries(t||{}).forEach(e=>{let[t,r]=e;Array.isArray(r)?r.sort((e,t)=>(e.sortIndex||0)-(t.sortIndex||0)).forEach(e=>{this.addSubModel(t,e)}):this.setSubModel(t,r)})}invalidateFlowCache(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(this.flowEngine){let t=`event:${this.getFlowCacheScope(e||"beforeRender")}`,r=this.flowEngine.applyFlowCache;if(e){let n=t.replace(/:/g,"-"),i=[`:${this.uid}`,`-${this.uid}`],o=[`:${e}:`,`-${e}-`];for(let e of r.keys()){let l=e.startsWith(t)||e.startsWith(n),s=i.some(t=>e.endsWith(t)),a=o.some(t=>e.includes(t));l&&s&&a&&r.delete(e)}}else{let e=`${t}:`.replace(/:/g,"-"),n=[`${t}:`,e],i=[`:${this.uid}`,`-${this.uid}`];for(let e of r.keys()){let t=n.some(t=>e.startsWith(t)),o=i.some(t=>e.endsWith(t));t&&o&&r.delete(e)}}this.forks.forEach(t=>{var r;let n=`event:${(null==(r=t.getFlowCacheScope)?void 0:r.call(t,e||"beforeRender"))??String(t.forkId)}`,i=n.replace(/:/g,"-"),o=[`:${this.uid}`,`-${this.uid}`];if(e){let t=[`:${e}:`,`-${e}-`];for(let e of this.flowEngine.applyFlowCache.keys()){let r=e.startsWith(n)||e.startsWith(i),l=o.some(t=>e.endsWith(t)),s=t.some(t=>e.includes(t));r&&l&&s&&this.flowEngine.applyFlowCache.delete(e)}}else{let e=[`${n}:`,`${i}-`];for(let t of this.flowEngine.applyFlowCache.keys()){let r=e.some(e=>t.startsWith(e)),n=o.some(e=>t.endsWith(e));r&&n&&this.flowEngine.applyFlowCache.delete(t)}}})}if(t)for(let r of Object.keys(this.subModels)){let n=this.subModels[r];if(Array.isArray(n))for(let r of n)r.invalidateFlowCache(e,t);else n instanceof N&&n.invalidateFlowCache(e,t)}}setFlowEngine(e){}static define(e){C.set(this,e)}static registerFlow(e,t){let r=this;"string"==typeof e?r.globalFlowRegistry.addFlow(e,t):r.globalFlowRegistry.addFlow(e.key,e)}getFlow(e){return this.flowRegistry.hasFlow(e)?this.flowRegistry.getFlow(e):this.constructor.globalFlowRegistry.getFlow(e)}registerFlow(e,t){return"string"==typeof e?this.flowRegistry.addFlow(e,t):this.flowRegistry.addFlow(e.key,e)}getActions(){var e;let t=this.constructor.actionRegistry.getActions(),r=new Map,n=null==(e=this.flowEngine)?void 0:e.getActions();if(n)for(let[e,t]of n)r.set(e,t);for(let[e,n]of t)r.set(e,n);return r}getEvents(){var e;let t=this.constructor.eventRegistry.getEvents(),r=new Map,n=null==(e=this.flowEngine)?void 0:e.getEvents();if(n)for(let[e,t]of n)r.set(e,t);for(let[e,n]of t)r.set(e,n);return r}getEvent(e){var t;let r=this.constructor.eventRegistry.getEvent(e);return r||(null==(t=this.flowEngine)?void 0:t.getEvent(e))}getAction(e){var t;let r=this.constructor.actionRegistry.getAction(e);return r||(null==(t=this.flowEngine)?void 0:t.getAction(e))}getFlows(){let e=this.flowRegistry.getFlows(),t=this.constructor.globalFlowRegistry.getFlows(),r=new Set(e.keys()),n=Array.from(t.entries()).filter(e=>{let[t]=e;return!r.has(t)}),i=Array.from(e.entries()).map((e,t)=>({e,i:t}));return i.sort((e,t)=>{let r=e.e[1].sort??0,n=t.e[1].sort??0;return r!==n?r-n:e.i-t.i}),new Map([...i.map(e=>{let{e:t}=e;return t}),...n])}setProps(e,t){"string"==typeof e?this.props[e]=t:this.props={...this.props,...e}}getProps(){return this.props}setStepParams(e,t,r){if("string"==typeof e){let n=e;"string"==typeof t&&void 0!==r?(this.stepParams[n]||(this.stepParams[n]={}),this.stepParams[n][t]={...this.stepParams[n][t],...r}):"object"==typeof t&&null!==t&&(this.stepParams[n]={...this.stepParams[n]||{},...t})}else if("object"==typeof e&&null!==e)for(let t in e)Object.prototype.hasOwnProperty.call(e,t)&&(this.stepParams[t]={...this.stepParams[t]||{},...e[t]});this.emitter.emit("onStepParamsChanged")}getStepParams(e,t){if(e&&t){var r;return null==(r=this.stepParams[e])?void 0:r[t]}return e?this.stepParams[e]:this.stepParams}async applyFlow(e,t,r){let n=this.flowEngine;if(!n)return console.warn("FlowEngine not available on this model for applyFlow. Check and model.flowEngine setup."),Promise.reject(Error("FlowEngine not available for applyFlow. Please set flowEngine on the model."));let i=!0===this.isFork,o=this;return console.log(`[FlowModel] applyFlow: uid=${this.uid}, flowKey=${e}, isFork=${i}, cleanRun=${this.cleanRun}, targetIsFork=${(null==o?void 0:o.isFork)===!0}`),n.executor.runFlow(o,e,t,r)}async _dispatchEvent(e,t,r){let n=this.flowEngine;if(!n)return void console.warn("FlowEngine not available on this model for dispatchEvent. Please set flowEngine on the model.");let i=!0===this.isFork,o=this;return console.log(`[FlowModel] dispatchEvent: uid=${this.uid}, event=${e}, isFork=${i}, cleanRun=${this.cleanRun}, targetIsFork=${(null==o?void 0:o.isFork)===!0}`),await n.executor.dispatchEvent(o,e,t,r)}async dispatchEvent(e,t,r){let n="beforeRender"===e,i=n?{sequential:!0,useCache:!0}:{sequential:!0},o={sequential:(null==r?void 0:r.sequential)??i.sequential,useCache:(null==r?void 0:r.useCache)??i.useCache};return(n&&(this._lastAutoRunParams=[t,o.useCache]),null==r?void 0:r.debounce)?this._dispatchEventWithDebounce(e,t,o):this._dispatchEvent(e,t,o)}getEventFlows(e){let t=this.getFlows(),r="beforeRender"===e,n=t=>{if(r){var n;return!0!==t.manual&&(!t.on||("string"==typeof t.on?"beforeRender"===t.on:(null==(n=t.on)?void 0:n.eventName)==="beforeRender"))}let i=t.on;return!!i&&("string"==typeof i?i===e:(null==i?void 0:i.eventName)===e)};return Array.from(t.values()).filter(n)}async onDispatchEventStart(e,t,r){}async onDispatchEventEnd(e,t,r,n){}async onDispatchEventError(e,t,r,n){}useHooksBeforeRender(){}shouldSkipReactiveWrapping(){return!!this.render.__isReactiveWrapped||"renderFunction"===this.constructor.renderMode}setupReactiveRender(){if("function"==typeof this.render)try{let e=this.render;if(this._originalRender=e,"function"!=typeof e)return void console.error(`FlowModel ${this.constructor.name}: original render method is not a function`,e);if(this.shouldSkipReactiveWrapping()){let t=function(){var t,r,n,i;let o=!!(null==(r=this)||null==(t=r.context)?void 0:t.flowSettingsEnabled);if(this.hidden){if(!o)return null;let e=null==(n=(i=this).renderHiddenInConfig)?void 0:n.call(i),t=this.constructor;return"renderFunction"===t.renderMode?"function"==typeof e?e:()=>e:e}return e.call(this)};t.__originalRender=e,this.render=t;return}let t=t=>{let r=(0,j.observer)(()=>{var r,n;let i=t;i!==t&&(null==i?void 0:i.localProps)!==void 0&&i.localProps,t.props,d.useEffect(()=>{var e,t;return"function"==typeof i.onMount&&i.onMount(),null==(t=i.flowEngine)||null==(e=t.emitter)||e.emitAsync("model:mounted",{uid:i.uid,model:i}),()=>{var e,t;"function"==typeof i.onUnmount&&i.onUnmount(),null==(t=i.flowEngine)||null==(e=t.emitter)||e.emitAsync("model:unmounted",{uid:i.uid,model:i})}},[i]);let o=!!(null==t||null==(r=t.context)?void 0:r.flowSettingsEnabled);return t.hidden?o?null==(n=t.renderHiddenInConfig)?void 0:n.call(t):null:(t.stepParams,e.call(i))});return r.displayName=`ReactiveWrapper(${t.constructor.name})`,r},r=function(){return this._reactiveWrapperCache||(this._reactiveWrapperCache=t(this)),d.createElement(this._reactiveWrapperCache)};r.__isReactiveWrapped=!0,r.__originalRender=e,this.render=r}catch(e){console.error(`FlowModel ${this.constructor.name}: Error during render method wrapping:`,e)}}get cleanRun(){return!0}setCleanRun(e){this._cleanRun,this._cleanRun=!!e}onMount(){}onUnmount(){}render(){return(0,s.jsx)("div",{...this.props})}async rerender(){var e;await this.dispatchEvent("beforeRender",null==(e=this._lastAutoRunParams)?void 0:e[0],{useCache:!1})}getFlowCacheScope(e){return String(e)}setParent(e){if(!(e&&(e.constructor===N||(0,v.FA)(e.constructor,N))))throw Error("Parent must be an instance of FlowModel.");this.parent=e,this._options.parentId=e.uid,!1!==this._options.delegateToParent&&this.context.addDelegate(this.parent.context)}removeParentDelegate(){this.parent&&this.context.removeDelegate(this.parent.context)}addSubModel(e,t){var r,n,i;let o,l=this.master||this;if(t instanceof N){let e=!!t.parent,r=null==(i=t.parent)?void 0:i.uid;if(e&&r&&r!==l.uid)throw Error("Sub model already has a parent.");o=t}else o=l.flowEngine.createModel({...t,parentId:l.uid,subKey:e,subType:"array"});o.setParent(l);let s=l.subModels;Array.isArray(s[e])||(s[e]=a.observable.shallow([]));let u=Math.max(...s[e].map(e=>e.sortIndex||0),0);return o.sortIndex=u+1,s[e].push(o),l.emitter.emit("onSubModelAdded",o),null==(n=l.flowEngine)||null==(r=n.emitter)||r.emit("model:subModel:added",{parentUid:l.uid,parent:l,subKey:e,model:o}),o}setSubModel(e,t){var r,n,i;let o,l=this.master||this;if(t instanceof N){let e=!!t.parent,r=null==(i=t.parent)?void 0:i.uid;if(e&&r&&r!==l.uid)throw Error("Sub model already has a parent.");o=t}else o=l.flowEngine.createModel({...t,parentId:l.uid,subKey:e,subType:"object"});return o.setParent(l),l.subModels[e]=o,l.emitter.emit("onSubModelAdded",o),null==(n=l.flowEngine)||null==(r=n.emitter)||r.emit("model:subModel:added",{parentUid:l.uid,parent:l,subKey:e,model:o}),o}filterSubModels(e,t){let r=this.subModels[e];if(!r)return[];let n=[];return c().castArray(r).sort((e,t)=>(e.sortIndex||0)-(t.sortIndex||0)).forEach((e,r)=>{t(e,r)&&n.push(e)}),n}mapSubModels(e,t){let r=this.subModels[e];if(!r)return[];let n=[];return c().castArray(r).sort((e,t)=>(e.sortIndex||0)-(t.sortIndex||0)).forEach((e,r)=>{let i=t(e,r);n.push(i)}),n}hasSubModel(e){let t=this.subModels[e];return!!t&&c().castArray(t).length>0}findSubModel(e,t){let r=this.subModels[e];return r&&c().castArray(r).find(e=>t(e))||null}createRootModel(e){return this.flowEngine.createModel(e)}async applySubModelsBeforeRenderFlows(e,t,r){await Promise.all(this.mapSubModels(e,async e=>{await e.dispatchEvent("beforeRender",t)}))}createFork(e,t,r){if(t){let r=this.forkCache.get(t);if(r&&!r.disposed)return r.setProps(e||{}),r}let n=new E(this,e,(0,h.L)());return(null==r?void 0:r.register)!==!1&&this.forks.add(n),t&&(null==r?void 0:r.register)!==!1&&this.forkCache.set(t,n),n}clearForks(){var e;console.log(`FlowModel ${this.uid} clearing all forks.`),(null==(e=this.forks)?void 0:e.size)&&(this.forks.forEach(e=>e.dispose()),this.forks.clear()),this.forkCache.clear()}getFork(e){return this.forkCache.get(e)}moveTo(e,t){if(!this.flowEngine)throw Error("FlowEngine is not set on this model. Please set flowEngine before saving.");return this.flowEngine.moveModel(this.uid,e.uid,t)}remove(){if(!this.flowEngine)throw Error("FlowEngine is not set on this model. Please set flowEngine before saving.");return this.observerDispose(),this.invalidateFlowCache("beforeRender",!0),this.flowEngine.removeModel(this.uid)}async save(){if(!this.flowEngine)throw Error("FlowEngine is not set on this model. Please set flowEngine before saving.");return this.flowEngine.saveModel(this)}async saveStepParams(){return this.flowEngine.saveModel(this,{onlyStepParams:!0})}async destroy(){if(!this.flowEngine)throw Error("FlowEngine is not set on this model. Please set flowEngine before deleting.");return this.observerDispose(),this.invalidateFlowCache("beforeRender",!0),this.flowEngine.destroyModel(this.uid)}async openStepSettingsDialog(e,t){var r;let n=this.getFlow(e),i=null==n||null==(r=n.steps)?void 0:r[t];if(!n||!i)return void console.error(`Flow ${e} or step ${t} not found`);let o=new y.W5(this,e,"settings");return(0,v.wx)(o,n.steps,this,e),o.defineProperty("currentStep",{value:i}),(await I())({model:this,flowKey:e,stepKey:t,ctx:o})}async configureRequiredSteps(e,t){return(await $())({model:this,dialogWidth:e,dialogTitle:t})}async openPresetStepSettingsDialog(e,t){return this.configureRequiredSteps(e,t)}async openFlowStepSettingsDialog(e){}get translate(){return this.flowEngine.translate.bind(this.flowEngine)}serialize(){let e={uid:this.uid,...c().omit(this._options,["flowEngine"]),stepParams:this.stepParams,sortIndex:this.sortIndex,flowRegistry:{}},t=this.subModels;for(let r in t)e.subModels=e.subModels||{},Array.isArray(t[r])?e.subModels[r]=t[r].map((e,t)=>({...e.serialize(),sortIndex:t})):t[r]instanceof N&&(e.subModels[r]=t[r].serialize());for(let[t,r]of this.flowRegistry.getFlows())e.flowRegistry[t]=r.toData();return e}clone(){if(!this.flowEngine)throw Error("FlowEngine is not set on this model. Please set flowEngine before cloning.");let e=this.serialize(),t=new Map,r=e=>{if(e.uid&&"string"==typeof e.uid&&t.set(e.uid,(0,h.L)()),e.subModels)for(let t in e.subModels){let n=e.subModels[t];Array.isArray(n)?n.forEach(e=>r(e)):n&&"object"==typeof n&&r(n)}};r(e);let n=function(e){let r=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(null==e)return e;if("string"==typeof e)return t.get(e)??e;if(Array.isArray(e))return e.map(e=>n(e,!1));if("object"==typeof e){let t={};for(let i in e)Object.prototype.hasOwnProperty.call(e,i)&&(r&&"parentId"===i||(t[i]=n(e[i],!1)));return t}return e},i=n(e,!0);return this.flowEngine.createModel(i)}async openFlowSettings(e){return this.flowEngine.flowSettings.open({model:this,...e})}static registerExtraMenuItems(e){let t,r=this,n=T.get(r)||new Set;return t="function"==typeof e?{items:e}:e,n.add(t),T.set(r,n),()=>{let e=T.get(r);null==e||e.delete(t)}}static async getExtraMenuItems(e,t){let r=this,n=[],i=new Set,o=async r=>{if(!r||i.has(r))return;i.add(r);let l=T.get(r);if(l)for(let i of l){if(i.matcher&&!i.matcher(e))continue;let o="function"==typeof i.items?await i.items(e,t):await Promise.resolve(i.items||[]),l=i.group||"common-actions",s=i.sort??0,a=i.keyPrefix||r.name||"extra";(o||[]).forEach((e,t)=>{if(!e)return;let r=e.key??`${a}-${l}-${t}-${Math.random().toString(36).slice(2,6)}`;n.push({...e,key:r,group:e.group||l,sort:"number"==typeof e.sort?e.sort:s})})}let s=Object.getPrototypeOf(r);(s===N||(null==s?void 0:s.prototype)instanceof N)&&await o(s)};return await o(r),n}refresh(){return this.rerender()}constructor(e){if((0,l._)(this,"uid",void 0),(0,l._)(this,"sortIndex",void 0),(0,l._)(this,"hidden",!1),(0,l._)(this,"props",{}),(0,l._)(this,"stepParams",{}),(0,l._)(this,"flowEngine",void 0),(0,l._)(this,"parent",void 0),(0,l._)(this,"subModels",void 0),(0,l._)(this,"_options",void 0),(0,l._)(this,"_title",void 0),(0,l._)(this,"_extraTitle",void 0),(0,l._)(this,"isNew",!1),(0,l._)(this,"skeleton",null),(0,l._)(this,"forbidden",null),(0,l._)(this,"forks",new Set),(0,l._)(this,"emitter",new p.v),(0,l._)(this,"forkCache",new Map),(0,l._)(this,"_lastAutoRunParams",null),(0,l._)(this,"observerDispose",void 0),(0,i._)(this,D,{writable:!0,value:void 0}),(0,l._)(this,"_originalRender",null),(0,l._)(this,"_reactiveWrapperCache",void 0),(0,l._)(this,"flowRegistry",void 0),(0,l._)(this,"_cleanRun",void 0),(0,l._)(this,"_dispatchEventWithDebounce",c().debounce(async function(e,t,r){return this._dispatchEvent(e,t,r)},500,{leading:!0})),(0,l._)(this,"_rerunLastAutoRun",c().debounce(async()=>{if(this._lastAutoRunParams)try{let[e]=this._lastAutoRunParams;await this.dispatchEvent("beforeRender",e)}catch(e){console.error("FlowModel._rerunLastAutoRun: Error during rerun:",e)}},100)),!e.flowEngine)throw Error("FlowModel must be initialized with a FlowEngine instance.");if(this.flowEngine=e.flowEngine,this.flowEngine.getModel(e.uid))return this.flowEngine.getModel(e.uid);e.uid||(e.uid=(0,h.L)()),this.uid=e.uid,this.props={...e.props},this.stepParams=e.stepParams||{},this.subModels={},this.sortIndex=e.sortIndex||0,this._options=e,this._title="",this._extraTitle="",(0,a.define)(this,{hidden:a.observable,props:a.observable,subModels:a.observable.shallow,stepParams:a.observable,_title:a.observable,_extraTitle:a.observable,setProps:a.batch,setStepParams:a.batch}),this.flowRegistry=new m(this),this.flowRegistry.addFlows(e.flowRegistry),this.observerDispose=(0,a.observe)(this.stepParams,e=>{"set"===e.type&&c().isEqual(e.value,e.oldValue)||(this.flowEngine&&this.invalidateFlowCache("beforeRender"),this._rerunLastAutoRun(),this.forks.forEach(e=>{e.rerender()}))});try{this.setupReactiveRender()}catch(e){console.error(`Failed to setup reactive render for ${this.constructor.name}:`,e),"function"!=typeof this.render&&(this.render=()=>d.createElement("div",null,"Render method not available"))}this._cleanRun=!!e.cleanRun}}(0,l._)(N,"renderMode","reactElement");class B extends N{setErrorMessage(e){this.errorMessage=e}render(){return(0,s.jsx)(w.A.Text,{type:"danger",children:this.errorMessage})}constructor(...e){super(...e),(0,l._)(this,"errorMessage",void 0)}}function L(e){return e}var z=r(16629),q=r(89013),W=r(42443),V=r(13415),U=r(18492),K=r(57084),H=r(31102);function J(e){let{title:t}=e,{t:r}=(0,U.B)();return(0,s.jsx)(H.e,{label:t,showLabel:!0,children:(0,s.jsx)(z.A,{size:"small",styles:{body:{color:"rgba(0,0,0,0.45)"}},children:r("This field has been hidden and you cannot view it (this content is only visible when the UI Editor is activated).")})})}function Y(){var e;let{t}=(0,U.B)(),r=(0,K.PZ)(),n=r.context.blockModel,i=null==(e=n.collection)?void 0:e.dataSource,o=n.collection,l=r.fieldPath,a=(0,d.useMemo)(()=>{let e=i?`${t(i.displayName||i.key)} > `:"",r=o?`${t(o.title)||o.name||o.tableName} > `:"";return`${e}${r}${l}`},[]);return(0,s.jsx)(q.A.Item,{children:(0,s.jsx)("div",{style:{color:"rgba(0,0,0,0.45)"},children:t('The {{type}} "{{name}}" may have been deleted. Please remove this {{blockType}}.',{type:t("Field"),name:a,blockType:t("Field")}).replaceAll(">",">")})})}function G(){var e,t;let{t:r}=(0,U.B)(),n=(0,K.PZ)(),i=n.context.blockModel,o=(null==(e=n.context.collectionField)?void 0:e.collection)||i.collection,l=o.dataSource,a=(null==(t=n.context.collectionField)?void 0:t.name)||n.fieldPath,u=(0,d.useMemo)(()=>{let e=`${r(l.displayName||l.key)} > `,t=o?`${r(o.title)||o.name||o.tableName} > `:"";return`${e}${t}${a}`},[]),{actionName:h}=n.forbidden,p=(0,d.useMemo)(()=>r('The current user only has the UI configuration permission, but don\'t have "{{actionName}}" permission for field "{{name}}"',{name:u,actionName:r(c().capitalize(h))}).replaceAll(">",">"),[u,r]);return(0,s.jsx)(W.A,{title:p,children:(0,s.jsx)(H.e,{showLabel:!0,label:n.context.collectionField.title||a,style:{opacity:"0.4"},children:(0,s.jsx)(V.A,{})})})}let Z=()=>!0;class X extends N{renderHiddenInConfig(){return this.forbidden?(0,s.jsx)(G,{}):(0,s.jsx)(W.A,{title:this.context.t("The field is hidden and only visible when the UI Editor is active"),children:(0,s.jsx)("div",{style:{opacity:.3},children:this.renderOriginal.call(this)})})}get title(){}onInit(e){this.context.defineProperty("collectionField",{get:()=>{let e=this.getFieldSettingsInitParams();return this.context.dataSourceManager.getCollectionField(`${e.dataSourceKey}.${e.collectionName}.${e.fieldPath}`)},cache:!1}),this.context.defineProperty("fieldPath",{get:()=>this.fieldPath}),this.context.blockModel&&(this.context.blockModel.addAppends(this.fieldPath),this.context.blockModel.addAppends(this.associationPathName))}getFieldSettingsInitParams(){return this.getStepParams("fieldSettings","init")||{}}get fieldPath(){return this.getFieldSettingsInitParams().fieldPath}get associationPathName(){return this.getFieldSettingsInitParams().associationPathName}get collectionField(){return this.context.collectionField}async afterAddAsSubModel(){this.context.resource&&await this.context.resource.refresh()}static getBindingsByField(e,t){if(!t)return;let r=t.interface;return this.bindings.has(r)?this.bindings.get(r).sort((e,t)=>e.order-t.order).filter(r=>e.engine.getModelClass(r.modelName)&&r.when(e,t)):[]}static getDefaultBindingByField(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(r.fallbackToTargetTitleField){let n=this.getDefaultBindingByField(e,t,{useStrict:!0});return!n&&(t.isAssociationField()&&(null==r?void 0:r.targetCollectionTitleField)||t.targetCollectionTitleField)?this.getDefaultBindingByField(e,(null==r?void 0:r.targetCollectionTitleField)||t.targetCollectionTitleField):n}let n=t.interface;if(!n||!this.bindings.has(n))return null;let i=this.bindings.get(n),o=i.filter(r=>r.isDefault&&e.engine.getModelClass(r.modelName)&&r.when(e,t));if(1===o.length)return o[0];if(o.length>0){let e=null;if((e=o.find(e=>e.when!==Z))||(e=o.find(e=>e.when===Z)))return e}return r.useStrict?null:i.find(r=>e.engine.getModelClass(r.modelName)&&r.when(e,t))}static bindModelToInterface(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(Array.isArray(t))return void t.forEach(t=>this.bindModelToInterface(e,t,r));this.currentBindings.has(t)||this.currentBindings.set(t,[]);let n=this.currentBindings.get(t);n.push({modelName:e,isDefault:r.isDefault||!1,defaultProps:r.defaultProps||null,when:r.when||Z,order:r.order}),this.currentBindings.set(t,n)}static get currentBindings(){return Object.prototype.hasOwnProperty.call(this,"_bindings")&&this._bindings||(this._bindings=new Map),this._bindings}static getAllParentClasses(){let e=[],t=this;for(;t&&t!==Object;)(null==(t=Object.getPrototypeOf(t))?void 0:t.currentBindings)&&e.push(t);return e}static get bindings(){let e=new Map;for(let t of this.getAllParentClasses())for(let[r,n]of t.currentBindings)e.has(r)||e.set(r,[]),e.get(r).unshift(...n);for(let[t,r]of this.currentBindings)e.has(t)||e.set(t,[]),e.get(t).unshift(...r);return e}renderItem(){return null}render(){return this.collectionField?this.renderItem():(0,s.jsx)(Y,{})}}(0,l._)(X,"_bindings",new Map),X.registerFlow({key:"fieldSettings",title:(0,v.MI)("Field settings"),steps:{init:{handler(e,t){let{dataSourceKey:r,collectionName:n,fieldPath:i}=t;if(!r)throw Error("dataSourceKey is a required parameter");if(!n)throw Error("collectionName is a required parameter");if(!i)throw Error("fieldPath is a required parameter")}}}});class Q extends X{}class ee extends X{}class et extends X{}},20616(e,t,r){r.d(t,{I6:()=>f,Db:()=>y,uf:()=>m,f7:()=>g});var n=r(74848),i=r(88040),o=r(4888),l=r(35710),s=r(96540),a=r(52568),u=r(52249),c=r(50467);let d=0;class h{getNextZIndex(){return this.zIndex+1}open(e){let{type:t,...r}=e;if(this.types[t]){d+=1;let e=r.onClose,n=r.zIndex;return r.onClose=function(){for(var t=arguments.length,r=Array(t),n=0;n<t;n++)r[n]=arguments[n];null==e||e(...r),d-=1},"embed"!==t&&(r.zIndex=n??this.getNextZIndex()),this.types[t].open(r,this.ctx)}throw Error(`Unknown view type: ${t}`)}dialog(e){return this.open({type:"dialog",...e})}drawer(e){return this.open({type:"drawer",...e})}popover(e){return this.open({type:"popover",...e})}embed(e){return this.open({type:"embed",...e})}constructor(e,t){var r;(0,c._)(this,"ctx",void 0),(0,c._)(this,"types",void 0),(0,c._)(this,"zIndex",void 0),this.ctx=e,this.types=t,this.zIndex=d+((null==(r=e.themeToken)?void 0:r.zIndexPopupBase)||1e3)}}let p=(0,s.createContext)(null),f=s.memo(e=>{let{engine:t,children:r}=e;if(!t)throw Error("FlowEngineProvider must be supplied with an engine.");return(0,n.jsx)(p.Provider,{value:t,children:(0,n.jsx)(a.Dv,{context:t.context,children:r})})});f.displayName="FlowEngineProvider";let g=e=>{var t;let{children:r}=e,{modal:a,message:c,notification:d}=i.A.useApp(),[p,f]=(0,u.bt)(),[g,y]=(0,u.N5)(),[v,w]=(0,u.fP)(),[b,x]=(0,u.sp)(),S=m(),_=(0,s.useContext)(o.Ay.ConfigContext),{token:A}=l.A.useToken();return(0,s.useEffect)(()=>{let e={antdConfig:_,modal:a,message:c,notification:d};for(let t of(S.context.defineProperty("viewer",{cache:!1,get:e=>new h(e,{drawer:p,embed:g,popover:v,dialog:b})}),Object.entries(e))){let[e,r]=t;r&&S.context.defineProperty(e,{value:r})}S.context.defineProperty("themeToken",{get:()=>A,observable:!0,cache:!0}),S.reactView.refresh()},[S,p,a,c,d,_,v,A,b,g]),(0,n.jsxs)(o.Ay,{..._,locale:null==(t=S.context.locales)?void 0:t.antd,popupMatchSelectWidth:!1,children:[r,f,w,y,x]})},m=function(){let{throwError:e=!0}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=(0,s.useContext)(p);return!t&&e?void console.warn("useFlowEngine must be used within a FlowEngineProvider, and FlowEngineProvider must be supplied with an engine."):t},y=()=>m().context},52847(e,t,r){r.d(t,{vA:()=>n.batch,lB:()=>n.observe,po:()=>n.markObservable,dw:()=>n.DataNode,XI:()=>n.action,SL:()=>u,KP:()=>n.hasCollected,Jv:()=>n.setDataNode,r5:()=>n.DataChange,O8:()=>n.untracked,JD:()=>n.Tracker,H_:()=>n.buildDataTree,gR:()=>n.contains,E8:()=>n.define,Rq:()=>n.isSupportObservable,IG:()=>n.markRaw,PA:()=>a,D:()=>n.getDataNode,ge:()=>n.model,AT:()=>n.isObservable,fm:()=>n.autorun,sH:()=>n.observable,lS:()=>n.raw,Ir:()=>n.isAnnotation,mJ:()=>n.reaction,HO:()=>n.toJS});var n=r(95243),i=r(74848),o=r(69804),l=r(96540),s=r(52568);let a=(e,t)=>{let r=l.memo(r=>{let a=(0,s.$K)(),c=(0,l.useRef)(a);c.current=a;let d=(0,l.useRef)(null);(0,l.useEffect)(()=>()=>{d.current&&(d.current(),d.current=null)},[]);let h=(0,l.useMemo)(()=>(0,o.PA)(e,{scheduler(e){var t,r;let i=u(c.current),o=null==(r=c.current)||null==(t=r.tabActive)?void 0:t.value;!1===i||!1===o?setTimeout(()=>{if(d.current)return;let t=(0,n.autorun)(()=>{var r,n,i,o,l,s;(null==(n=c.current)||null==(r=n.pageActive)?void 0:r.value)&&((null==(o=c.current)||null==(i=o.tabActive)?void 0:i.value)===!0||(null==(s=c.current)||null==(l=s.tabActive)?void 0:l.value)===void 0)&&(e(),null==t||t(),d.current=null)});d.current=t}):(d.current&&(d.current(),d.current=null),e())},...t}),[]);return(0,i.jsx)(h,{...r})});return r.displayName="ComponentWithDefaultScheduler",r};function u(e){var t,r,n;return"boolean"==typeof(null==e||null==(t=e.pageActive)?void 0:t.value)?null==e||null==(r=e.pageActive)?void 0:r.value:null==e||null==(n=e.view)?void 0:n.inputArgs.pageActive}},99784(e,t,r){r.d(t,{tP:()=>eu,sB:()=>y,I8:()=>p,qi:()=>h,Rn:()=>m,BS:()=>s,hR:()=>u,vB:()=>g,l2:()=>a,BH:()=>ec});var n=r(50467),i=r(95243),o=r(29007);function l(e){var t,r,n,i,o,l,s,a,u,c,d;if("string"==typeof(null==e||null==(t=e.response)?void 0:t.data)){let t=document.createElement("div");t.innerHTML=null==e||null==(u=e.response)?void 0:u.data;let r=t.textContent||t.innerText;return r.includes("Error occurred while trying")||r.includes("502 Bad Gateway")?[{code:"APP_WARNING",message:r="The application may be starting up. Please try again later."}]:[{message:r}]}return(null==e||null==(n=e.response)||null==(r=n.data)?void 0:r.error)?[null==e||null==(d=e.response)||null==(c=d.data)?void 0:c.error]:(null==e||null==(o=e.response)||null==(i=o.data)?void 0:i.errors)||(null==e||null==(s=e.response)||null==(l=s.data)?void 0:l.messages)||(null==e||null==(a=e.response)?void 0:a.error)||[{message:e.message||"Server error"}]}class s extends Error{get code(){var e;return(null==(e=this.data)?void 0:e.code)||"UNKNOWN_ERROR"}get message(){var e;return(null==(e=this.data)?void 0:e.message)||"An unknown error occurred"}constructor(e){super(l(e).shift().message),(0,n._)(this,"data",void 0),this.name="ResponseError"}}class a{getData(){return this._data.value}hasData(){let e=this.getData();return Array.isArray(e)?e.length>0:!!e&&"object"==typeof e&&Object.keys(e).length>0}setData(e){return this._data.value=e,this}getMeta(e){return e?this._meta.value[e]:this._meta.value}setMeta(e){return this._meta.value={...this._meta.value,...e},this}get error(){return this._error.value}getError(){return this._error.value}setError(e){return this._error.value=e,this}clearError(){return this._error.value=null,this}on(e,t){var r,n;((r=this.events)[n=e]||(r[n]=[])).push(t)}once(e,t){var r=this;let n=function(){for(var i=arguments.length,o=Array(i),l=0;l<i;l++)o[l]=arguments[l];t(...o),r.off(e,n)};this.on(e,n)}off(e,t){this.events[e]=(this.events[e]||[]).filter(e=>e!==t)}emit(e){for(var t=arguments.length,r=Array(t>1?t-1:0),n=1;n<t;n++)r[n-1]=arguments[n];(this.events[e]||[]).forEach(e=>e(...r))}constructor(e){(0,n._)(this,"_data",i.observable.ref(null)),(0,n._)(this,"_meta",i.observable.ref({})),(0,n._)(this,"_error",i.observable.ref(null)),(0,n._)(this,"context",void 0),(0,n._)(this,"events",{}),this.context=new o.cB,this.context.addDelegate(e)}}class u extends a{setAPIClient(e){return this.api=e,this}getURL(){return this.request.url}setURL(e){return this.request.url=e,this}get loading(){return this.getMeta("loading")||!1}set loading(e){this.setMeta({loading:e})}clearRequestParameters(){return this.request.params={},this}setRequestParameters(e){return this.request.params={...this.request.params,...e},this}setRequestMethod(e){return this.request.method=e,this}addRequestHeader(e,t){return this.request.headers||(this.request.headers={}),this.request.headers[e]=t,this}removeRequestHeader(e){return this.request.headers&&e in this.request.headers&&delete this.request.headers[e],this}addRequestParameter(e,t){return this.request.params||(this.request.params={}),this.request.params[e]=t,this}getRequestParameter(e){return this.request.params&&e in this.request.params?this.request.params[e]:null}removeRequestParameter(e){return this.request.params&&e in this.request.params&&delete this.request.params[e],this}setRequestBody(e){return this.request.data=e,this}setRequestOptions(e,t){return this.request[e]=t,this}getRequestOptions(){return this.request}async refresh(){if(!this.api)throw Error("API client not set");this.clearError();try{let{data:e}=await this.api.request({url:this.getURL(),...this.getRefreshRequestOptions()});this.setData(e),this.emit("refresh")}catch(t){let e=new s(t);throw this.setError(e),e}}getRefreshRequestOptions(){return{...this.request}}constructor(e){super(e),(0,n._)(this,"request",{headers:{},params:{},method:"get",data:null}),(0,n._)(this,"api",void 0),e&&(this.api=e.api)}}var c=r(2543),d=r.n(c);class h{toJSON(){return this.options.operator?{[this.options.path]:{[this.options.operator]:this.options.value}}:{[this.options.path]:this.options.value}}constructor(e){if((0,n._)(this,"options",void 0),this.options=e,e instanceof h)return e;this.options=e}}class p{toJSON(){return{[this.options.logic]:this.options.items.map(e=>e.toJSON())}}constructor(e){if((0,n._)(this,"options",void 0),e instanceof p)return e;if("$and"!==e.logic&&"$or"!==e.logic)throw Error("Logic must be either $and or $or");if(!Array.isArray(e.items))throw Error("Items must be an array");this.options={logic:e.logic,items:e.items.map(e=>e.logic?new p(e):new h(e))}}}var f=r(16639);class g extends u{get supportsFilter(){return!0}setRefreshAction(e){this._refreshActionName=e}mergeRequestConfig(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];let n={},i=(e,t,r,n,i,o)=>{let l=o.size;if(Array.isArray(t)||l>1)return t};return t.reduce((e,t)=>d().mergeWith(e,t,i),n)}setRunActionOptions(e,t){return this.runActionOptions[e]=t,this}splitValue(e){return"string"==typeof e?e.split(",").map(e=>e.trim()):Array.isArray(e)?e:[]}buildURL(e){let t="";if(this.resourceName)if(this.sourceId&&this.resourceName.includes(".")){let[r,n]=this.resourceName.split(".");t=`${r}/${this.sourceId}/${n}:${e||"get"}`}else t=`${this.resourceName}:${e||"get"}`;return t}async runAction(e,t){var r;let{rawResponse:n,...i}=t,o=this.mergeRequestConfig(d().omit(this.request,["params","data","method"]),{method:"post",url:this.buildURL(e)},null==(r=this.runActionOptions)?void 0:r[e],i);["create","update","firstOrCreate","updateOrCreate"].includes(e)&&(o.params=o.params||{},o.params.updateAssociationValues=this.getUpdateAssociationValues());try{let e=await this.api.request(o);if(n)return e;let{data:t}=e;if(!(null==t?void 0:t.data))return t;return{data:t.data,meta:t.meta}}catch(e){throw new s(e)}}setResourceName(e){return this.resourceName=e,this}getResourceName(){return this.resourceName}markDataSourceDirty(e){var t,r;let n=this.context.engine;if(!n)return;let i=this.getDataSourceKey()||"main",o=e||this.getResourceName();if(!o)return;let l=new Set([String(o)]);for(let e of("string"==typeof o&&o.includes(".")&&l.add(o.split(".")[0]),l))n.markDataSourceDirty(i,e);null==(r=n.emitter)||null==(t=r.emit)||t.call(r,f.HK,{dataSourceKey:i,resourceNames:Array.from(l)})}setSourceId(e){return this.sourceId=e,this}getSourceId(){return this.sourceId}setDataSourceKey(e){return this.addRequestHeader("X-Data-Source",e)}getDataSourceKey(){return this.request.headers["X-Data-Source"]}setFilter(e){return this.addRequestParameter("filter",JSON.stringify(e))}getFilter(){let e=[...this.filterGroups.values()].filter(Boolean);if(0!==e.length)return{$and:e}}resetFilter(){this.setFilter(this.getFilter())}addFilterGroup(e,t){t instanceof h&&(t=t.toJSON()),this.filterGroups.set(e,t),this.resetFilter()}removeFilterGroup(e){this.filterGroups.delete(e),this.resetFilter()}setAppends(e){return this.addRequestParameter("appends",e)}getAppends(){return this.request.params.appends||[]}addAppends(e){let t=this.getAppends();return this.splitValue(e).forEach(e=>{t.includes(e)||t.push(e)}),this.request.params.appends=t,this}removeAppends(e){if(!this.request.params.appends)return this;let t=this.getAppends(),r=this.splitValue(e);return this.request.params.appends=t.filter(e=>!r.includes(e)),this}getUpdateAssociationValues(){return this.updateAssociationValues||[]}addUpdateAssociationValues(e){let t=this.getUpdateAssociationValues();return this.splitValue(e).forEach(e=>{t.includes(e)||t.push(e)}),this.updateAssociationValues=t,this}jsonStringify(e){return null!==e&&"object"==typeof e?JSON.stringify(e):e}setFilterByTk(e){return this.addRequestParameter("filterByTk",this.jsonStringify(e))}getFilterByTk(){return this.request.params.filterByTk}setFields(e){return this.addRequestParameter("fields",this.splitValue(e))}getFields(){return this.request.params.fields||[]}setSort(e){return this.addRequestParameter("sort",this.splitValue(e))}getSort(){return this.request.params.sort||[]}setExcept(e){return this.addRequestParameter("except",this.splitValue(e))}getExcept(){return this.request.params.except||[]}setWhitelist(e){return this.addRequestParameter("whitelist",this.splitValue(e))}getWhitelist(){return this.request.params.whitelist||[]}setBlacklist(e){return this.addRequestParameter("blacklist",this.splitValue(e))}getBlacklist(){return this.request.params.blacklist||[]}constructor(...e){super(...e),(0,n._)(this,"resourceName",void 0),(0,n._)(this,"sourceId",null),(0,n._)(this,"request",{method:"get",params:{},headers:{}}),(0,n._)(this,"updateAssociationValues",[]),(0,n._)(this,"runActionOptions",{}),(0,n._)(this,"filterGroups",new Map),(0,n._)(this,"_refreshActionName","list")}}class m extends g{get supportsFilter(){return!0}setCreateActionOptions(e){return this.createActionOptions=e,this}setUpdateActionOptions(e){return this.updateActionOptions=e,this}setSelectedRows(e){return this.setMeta({selectedRows:e}),this}getSelectedRows(){return this.getMeta("selectedRows")||[]}getCount(){return this.getMeta("count")}setPage(e){return this.addRequestParameter("page",e),this.setMeta({page:e})}getPage(){return this.getMeta("page")}setPageSize(e){return this.addRequestParameter("pageSize",e),this.setMeta({pageSize:e})}getPageSize(){return this.getMeta("pageSize")}getTotalPage(){return this.getMeta("totalPage")}getCell(e,t){var r;let n=this.getData();return null==n||null==(r=n[e])?void 0:r[t]}async next(){this.request.params.page+=1,await this.refresh()}async previous(){this.request.params.page>1&&(this.request.params.page-=1,await this.refresh())}async goto(e){e>0&&(this.request.params.page=e,await this.refresh())}async create(e,t){let r=this.mergeRequestConfig({data:e},this.createActionOptions,t),n=await this.runAction("create",r);return this.markDataSourceDirty(),this.emit("saved",e),(null==t?void 0:t.refresh)!==!1&&await this.refresh(),n}async get(e){let t={params:{filterByTk:e}},{data:r}=await this.runAction("get",{...t});return r}async update(e,t,r){let n=t,i=this.mergeRequestConfig({params:{filterByTk:e},data:n},this.updateActionOptions,r);await this.runAction("update",i),this.markDataSourceDirty(),this.emit("saved",t),await this.refresh()}async destroySelectedRows(){let e=this.getSelectedRows();if(0===e.length)throw Error("No rows selected for deletion.");await this.destroy(e)}async destroy(e,t){let r=this.mergeRequestConfig({params:{filterByTk:this.jsonStringify(e)}},t);await this.runAction("destroy",r),this.markDataSourceDirty();let n=this.getPage(),i=Math.ceil((this.getCount()-d().castArray(e).length)/this.getPageSize());n>i&&this.setPage(i||1),await this.refresh()}setItem(e,t){let r=this.getData().slice();r[e]={...t},this.setData(r)}async refresh(){return this.refreshTimer&&clearTimeout(this.refreshTimer),new Promise((e,t)=>{this.refreshWaiters.push({resolve:e,reject:t}),this.refreshTimer=setTimeout(async()=>{let e=this.refreshWaiters;this.refreshWaiters=[],this.refreshTimer=null;try{this.clearError(),this.loading=!0;let{data:t,meta:r}=await this.runAction(this._refreshActionName,{method:"get",...this.getRefreshRequestOptions()});this.setData(t).setMeta(r),(null==r?void 0:r.page)&&this.setPage(r.page),(null==r?void 0:r.pageSize)&&this.setPageSize(r.pageSize),this.emit("refresh"),e.forEach(e=>e.resolve())}catch(r){this.setError(r);let t=r instanceof Error?r:Error(String(r));e.forEach(e=>e.reject(t))}finally{this.loading=!1}})})}constructor(...e){super(...e),(0,n._)(this,"_data",i.observable.ref([])),(0,n._)(this,"_meta",i.observable.ref({})),(0,n._)(this,"refreshTimer",null),(0,n._)(this,"refreshWaiters",[]),(0,n._)(this,"createActionOptions",{}),(0,n._)(this,"updateActionOptions",{}),(0,n._)(this,"_refreshActionName","list"),(0,n._)(this,"request",{method:"get",params:{filter:{},filterByTk:null,appends:[],fields:[],sort:null,except:null,whitelist:null,blacklist:null,page:1,pageSize:20},headers:{}})}}class y extends g{get supportsFilter(){return!this.isNewRecord}setSaveActionOptions(e){return this.saveActionOptions=e,this}setFilterByTk(e){return this.isNewRecord=!1,super.setFilterByTk(e)}async save(e,t){let r=this.mergeRequestConfig(this.saveActionOptions,d().omit(t,["refresh"])),n="create",i=e;this.isNewRecord||(r.params=r.params||{},r.params.filterByTk=this.getFilterByTk(),n="update");let o=await this.runAction(n,{...r,data:i});return this.markDataSourceDirty(),this.emit("saved",e),(null==t?void 0:t.refresh)!==!1&&await this.refresh(),o}async destroy(e){let t=this.mergeRequestConfig({params:{filterByTk:this.jsonStringify(this.request.params.filterByTk)}},e);await this.runAction("destroy",t),this.markDataSourceDirty(),this.setData(null)}async refresh(){if(this.clearError(),!this.isNewRecord)try{let{data:e,meta:t}=await this.runAction(this._refreshActionName,{method:"get",...this.getRefreshRequestOptions()});this.setData(e).setMeta(t),this.emit("refresh")}catch(e){throw this.setError(e),e}}constructor(...e){super(...e),(0,n._)(this,"isNewRecord",!1),(0,n._)(this,"saveActionOptions",{}),(0,n._)(this,"_refreshActionName","get")}}var v=r(74353),w=r.n(v),b=r(97375),x=r.n(b),S=r(90445),_=r.n(S),A=r(43522),k=r.n(A),M=r(37872),E=r.n(M),j=r(98867),R=r.n(j),P=r(8906),C=r.n(P),F=r(68313),T=r.n(F),I=r(21840),$=r.n(I),O=r(41816),D=r.n(O),N=r(88569),B=r.n(N),L=r(83826),z=r.n(L),q=r(8134),W=r.n(q),V=r(28623),U=r.n(V),K=r(46986),H=r.n(K);w().extend(H()),w().extend($()),w().extend(B()),w().extend(z()),w().extend(D()),w().extend(T()),w().extend(E()),w().extend(R()),w().extend(C()),w().extend(W()),w().extend(U()),w().extend(_()),w().extend(x()),w().extend(k()),r(38362),r(81814);var J=r(88835),Y=r(60639),G=r.n(Y),Z=r(79441);let X=r.n(Z)()();function Q(e){let t=e.substr(2,e.length-4).trim(),r=t.indexOf(":");return -1!==r?{key:t.substr(0,r),defaultValue:t.substr(r+1)}:{key:t}}function ee(e,t){return e.parameters=Array.from(new Map(t.map(e=>[e.key,e])).values()),e}Object.keys(X).forEach(function(e){G().registerHelper(e,X[e])}),G().registerHelper("json",function(e){return JSON.stringify(e)}),G().registerHelper("urlParse",function(e){try{return JSON.stringify(J.parse(e))}catch(t){return`Invalid URL: ${e}`}}),G().registerHelper("dateFormat",(e,t,r)=>"string"==typeof r?w()(e).tz(r).format(t):w()(e).format(t)),G().registerHelper("isNull",e=>d().isNull(e)),(()=>{let e=/{{(\w|:|[\s-+.,@/()?=*_$])+}}/g;return t=>{let r=[],n=e=>t,i=t.match(e);return i&&(r=i.map(Q),n=e=>(e=e||{},i.reduce((n,o,l)=>{let s=r[l],a=(0,c.get)(e,s.key);return(void 0===a&&(a=s.defaultValue),"function"==typeof a&&(a=a()),1===i.length&&t.startsWith("{{")&&t.endsWith("}}"))?a:(a instanceof Date&&(a=a.toISOString()),n.replace(o,null==a?"":a))},t))),ee(n,r)}})(),r(14744),r(63560),r(95093),r(67980),Symbol.for("nocobase.utils.sesLockdown"),Symbol.for("nocobase.utils.bufferOverrides"),r(65606);let et=36,er="";for(;et--;)er+=et.toString(36);r(27153);let en=new(r(23155)).HX;function ei(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t={};for(let r of e){let e=r.replace(/^ctx\./,"").split("."),n=t;for(let t=0;t<e.length;t++){let i=e[t];t===e.length-1?n[i]=`{{${r}}}`:(n[i]=n[i]||{},n=n[i])}}return t}async function eo(e){return ei(await en.fullVariables(e))}async function el(e,t){return await en.parseAndRender(e,{ctx:t})}function es(e){let t=1,r={};return{sql:e.replace(/{{\s*([^}]+)\s*}}/g,(e,n)=>{let i=`__var${t}`;return r[i]=`{{${n.trim()}}}`,t++,`$${i}`}),bind:r}}async function ea(e){let{sql:t,bind:r}=es(e),n=await eo(t);return{sql:t,bind:r,liquidContext:n}}class eu{async run(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},{sql:r,bind:n,liquidContext:i}=await ea(e),o=await this.ctx.resolveJsonTemplate({bind:n,liquidContext:i}),l=await el(r,o.liquidContext),{data:s}=await this.ctx.api.request({method:"POST",url:"flowSql:run",data:{sql:l,...t,bind:{...o.bind,...t.bind}}});return null==s?void 0:s.data}async save(e){await this.ctx.api.request({method:"POST",url:"flowSql:save",data:{...e}})}async runById(e,t){let r=await this.ctx.api.request({method:"GET",url:"flowSql:getBind",params:{uid:e}}),{bind:n,liquidContext:i}=await this.ctx.resolveJsonTemplate(r.data.data||{}),{data:o}=await this.ctx.api.request({method:"POST",url:"flowSql:runById",data:{uid:e,...t,bind:{...n,...null==t?void 0:t.bind},liquidContext:i}});return null==o?void 0:o.data}async destroy(e){await this.ctx.api.request({url:"flowSql:destroy",params:{filterByTk:e}})}constructor(e){(0,n._)(this,"ctx",void 0),this.ctx=new o.cB,this.ctx.addDelegate(e),this.ctx.defineProperty("offset",{get:()=>0,cache:!1}),this.ctx.defineProperty("limit",{get:()=>20,cache:!1})}}class ec extends g{get refreshActionName(){return this._debugEnabled?"run":"runById"}get supportsFilter(){return!0}buildURL(e){return`flowSql:${e||this.refreshActionName}`}setPage(e){return this.addRequestParameter("page",e),this.setMeta({page:e})}getPage(){return this.getMeta("page")||1}setPageSize(e){return this.addRequestParameter("pageSize",e),this.setMeta({pageSize:e})}setDebug(e){return this._debugEnabled=e,this}getPageSize(){return this.getMeta("pageSize")||20}async next(){this.setPage(this.getPage()+1),await this.refresh()}async previous(){this.getPage()>1&&(this.setPage(this.getPage()-1),await this.refresh())}async goto(e){e>0&&(this.request.params.page=e,await this.refresh())}setDataSourceKey(e){return this.request.data.dataSourceKey=e,this}setSQLType(e){return this.request.data.type=e,this}setSQL(e){return this._sql=e,this}setFilterByTk(e){return this.request.data.uid=e,this}setFilter(e){return this.request.data.filter=e,this}setBind(e){return this.request.data.bind=e,this}setLiquidContext(e){return this.request.data.liquidContext=e,this}async run(){return this._debugEnabled?await this.runBySQL():await this.runById()}async runBySQL(){let e=this._sql,{sql:t,bind:r,liquidContext:n}=await ea(e),i=await this.context.resolveJsonTemplate({bind:r,liquidContext:n}),o=d().cloneDeep({method:"post",...this.getRefreshRequestOptions()});return o.data.sql=await el(t,i.liquidContext),o.data.bind=i.bind,await this.runAction("run",o)}async runById(){let{data:e}=await this.runAction("getBind",{method:"get",params:{uid:this.request.data.uid}}),{bind:t,liquidContext:r}=await this.context.resolveJsonTemplate(e);return this.setBind(t),this.setLiquidContext(r),await this.runAction("runById",{method:"post",...this.getRefreshRequestOptions()})}async refresh(){return this.refreshTimer&&clearTimeout(this.refreshTimer),new Promise((e,t)=>{this.refreshWaiters.push({resolve:e,reject:t}),this.refreshTimer=setTimeout(async()=>{let e=this.refreshWaiters;this.refreshWaiters=[],this.refreshTimer=null;try{this.clearError(),this.loading=!0,this.emit("loading");let{data:t,meta:r}=await this.run();this.setData(t).setMeta(r),this.loading=!1,this.emit("refresh"),e.forEach(e=>e.resolve())}catch(r){this.setError(r);let t=r instanceof Error?r:Error(String(r));e.forEach(e=>e.reject(t))}finally{this.loading=!1}})})}constructor(e){super(e),(0,n._)(this,"_data",i.observable.ref(null)),(0,n._)(this,"_meta",i.observable.ref({})),(0,n._)(this,"refreshTimer",null),(0,n._)(this,"refreshWaiters",[]),(0,n._)(this,"_debugEnabled",!1),(0,n._)(this,"_sql",void 0),(0,n._)(this,"request",{method:"post",params:{},data:{},headers:{}}),e.defineProperty("limit",{get:()=>this.getPageSize(),cache:!1}),e.defineProperty("offset",{get:()=>(this.getPage()-1)*this.getPageSize(),cache:!1})}}},19258(e,t,r){r.d(t,{JF:()=>u,Jq:()=>c,R5:()=>d});var n=r(29007),i=r(37966);let o=new Set,l=new Map,s=new Set;async function a(e,t){let r=l.get(e)||new Set;if(l.set(e,r),!r.has(t)){r.add(t);try{await t({version:e,RunJSContextRegistry:i.F,FlowRunJSContext:n.uk})}catch(e){throw r.delete(t),e}}}function u(e){if("function"!=typeof e)throw Error("[flow-engine] registerRunJSContextContribution: contribution must be a function");if(!o.has(e))for(let t of(o.add(e),s))a(t,e).catch(e=>{try{console.error("[flow-engine] RunJS context contribution failed:",e)}catch(e){}})}async function c(e){for(let t of o)await a(e,t)}function d(e){s.add(e)}},37966(e,t,r){r.d(t,{B:()=>o,F:()=>i});var n=r(50467);class i{static register(e,t,r,n){this.map.set(`${e}:${t}`,{ctor:r,meta:n})}static resolve(e,t){var r,n;return(null==(r=this.map.get(`${e}:${t}`))?void 0:r.ctor)||(null==(n=this.map.get(`${e}:*`))?void 0:n.ctor)}static getMeta(e,t){var r,n;return(null==(r=this.map.get(`${e}:${t}`))?void 0:r.meta)||(null==(n=this.map.get(`${e}:*`))?void 0:n.meta)}}function o(e){var t,r;return(null==e||null==(r=e.model)||null==(t=r.constructor)?void 0:t.name)||"*"}(0,n._)(i,"map",new Map)},88828(e,t,r){r.r(t),r.d(t,{setupRunJSContexts:()=>a});var n=r(37966),i=r(29007);function o(){i.uk.define({label:"RunJS base",properties:{logger:'Pino logger instance for structured logging. Example: `ctx.logger.info({ foo: 1 }, "message")`',message:{description:"Ant Design global message API for displaying temporary messages.",detail:"MessageInstance",hidden:e=>!(null==e?void 0:e.message),examples:['ctx.message.success("Operation completed")'],properties:{info:{type:"function",description:"Show an info message.",detail:"(content: any, duration?: number) => void",completion:{insertText:"ctx.message.info('Info')"}},success:{type:"function",description:"Show a success message.",detail:"(content: any, duration?: number) => void",completion:{insertText:"ctx.message.success('Success')"}},error:{type:"function",description:"Show an error message.",detail:"(content: any, duration?: number) => void",completion:{insertText:"ctx.message.error('Error')"}},warning:{type:"function",description:"Show a warning message.",detail:"(content: any, duration?: number) => void",completion:{insertText:"ctx.message.warning('Warning')"}},loading:{type:"function",description:"Show a loading message.",detail:"(content: any, duration?: number) => void",completion:{insertText:"ctx.message.loading('Loading...')"}},open:{type:"function",description:"Open a message with custom config.",detail:"(config: any) => void",completion:{insertText:"ctx.message.open({ type: 'info', content: 'Hello' })"}},destroy:{type:"function",description:"Destroy all messages.",detail:"() => void",completion:{insertText:"ctx.message.destroy()"}}}},notification:{description:"Ant Design notification API for displaying notification boxes.",detail:"NotificationInstance",hidden:e=>!(null==e?void 0:e.notification),examples:['ctx.notification.open({ message: "Title", description: "Content" })'],properties:{open:{type:"function",description:"Open a notification with config.",detail:"(config: any) => void",completion:{insertText:"ctx.notification.open({ message: 'Title', description: 'Content' })"}},success:{type:"function",description:"Open a success notification.",detail:"(config: any) => void",completion:{insertText:"ctx.notification.success({ message: 'Success' })"}},info:{type:"function",description:"Open an info notification.",detail:"(config: any) => void",completion:{insertText:"ctx.notification.info({ message: 'Info' })"}},warning:{type:"function",description:"Open a warning notification.",detail:"(config: any) => void",completion:{insertText:"ctx.notification.warning({ message: 'Warning' })"}},error:{type:"function",description:"Open an error notification.",detail:"(config: any) => void",completion:{insertText:"ctx.notification.error({ message: 'Error' })"}},destroy:{type:"function",description:"Destroy all notifications.",detail:"(key?: string) => void",completion:{insertText:"ctx.notification.destroy()"}}}},modal:{description:"Ant Design modal API (HookAPI) for opening modal dialogs.",detail:"HookAPI",hidden:e=>!(null==e?void 0:e.modal),examples:["ctx.modal.confirm({ title: 'Confirm', content: 'Are you sure?' })"],properties:{info:{type:"function",description:"Open an info modal.",detail:"(config: any) => void",completion:{insertText:"ctx.modal.info({ title: 'Info', content: '...' })"}},success:{type:"function",description:"Open a success modal.",detail:"(config: any) => void",completion:{insertText:"ctx.modal.success({ title: 'Success', content: '...' })"}},error:{type:"function",description:"Open an error modal.",detail:"(config: any) => void",completion:{insertText:"ctx.modal.error({ title: 'Error', content: '...' })"}},warning:{type:"function",description:"Open a warning modal.",detail:"(config: any) => void",completion:{insertText:"ctx.modal.warning({ title: 'Warning', content: '...' })"}},confirm:{type:"function",description:"Open a confirm modal.",detail:"(config: any) => void",completion:{insertText:"ctx.modal.confirm({ title: 'Confirm', content: '...' })"}}}},resource:{description:"The current FlowResource instance in this context, used to access and manipulate data. In most block/popup scenarios it is pre-bound by the runtime (no need to call ctx.initResource). In contexts like plain JS blocks where no resource is bound, you can call ctx.initResource(type) first and then use ctx.resource.",detail:"FlowResource",examples:["await ctx.resource.refresh();"],properties:{getData:{description:"Get current resource data.",detail:"() => any",completion:{insertText:"ctx.resource.getData()"}},setData:{description:"Set current resource data (client-side only).",detail:"(value: any) => this",completion:{insertText:"ctx.resource.setData(value)"}},refresh:{description:"Refresh data from server (available on API-backed resources).",detail:"() => Promise<any>",completion:{insertText:"await ctx.resource.refresh()"}},on:{description:"Subscribe resource events (e.g., refresh).",detail:"(event: string, callback: (...args) => void) => void",completion:{insertText:"ctx.resource.on('refresh', () => {})"}},off:{description:"Unsubscribe resource events.",detail:"(event: string, callback: (...args) => void) => void",completion:{insertText:"ctx.resource.off('refresh', handler)"}},setResourceName:{description:'Set resource name (e.g., "users" or "users.profile").',detail:"(resourceName: string) => this",completion:{insertText:"ctx.resource.setResourceName('users')"}},setFilterByTk:{description:"Set primary key or filterByTk for record resources.",detail:"(filterByTk: any) => this",completion:{insertText:"ctx.resource.setFilterByTk(filterByTk)"}},runAction:{description:"Run a resource action (create/update/destroy/custom actions).",detail:"(action: string, options: any) => Promise<any>",completion:{insertText:"await ctx.resource.runAction('create', { data: {} })"}},selectedRows:{description:"Selected rows in table resources (typically for collection/table actions). Availability depends on resource type.",detail:"any[]"},pagination:{description:"Pagination info in list resources. Availability depends on resource type (e.g., MultiRecordResource).",detail:"Record<string, any>"}}},urlSearchParams:"URLSearchParams object containing query parameters from the current URL",token:"API authentication token for the current session",role:"Current user role information",auth:{description:"Authentication context containing locale, role, user, and token information.",detail:"AuthContext",properties:{locale:'Current locale code (e.g., "en-US", "zh-CN").',roleName:"Current role name.",token:"Current API token.",user:"Current user info object (if available)."}},viewer:{description:"FlowViewer instance providing view helpers (drawer/dialog/popover/embed). ",detail:"FlowViewer",examples:["await ctx.viewer.drawer({ width: '56%', content: <div>Hello</div> });","await ctx.viewer.dialog({ content: <div>Confirm</div> });"],properties:{drawer:{description:"Open a drawer view. Parameters: (props: ViewProps) => any",detail:"(props) => any",completion:{insertText:"await ctx.viewer.drawer({ width: '56%', content: <div /> })"}},dialog:{description:"Open a dialog/modal view. Parameters: (props: ViewProps) => any",detail:"(props) => any",completion:{insertText:"await ctx.viewer.dialog({ content: <div /> })"}},popover:{description:"Open a popover view. Parameters: (props: PopoverProps) => any",detail:"(props) => any",completion:{insertText:"await ctx.viewer.popover({ target: ctx.element?.__el, content: <div /> })"}},embed:{description:"Open an embed view. Parameters: (props: ViewProps & TargetProps) => any",detail:"(props) => any",completion:{insertText:"await ctx.viewer.embed({ target: document.body, content: <div /> })"}}}},popup:{description:'Popup context when current view is opened as a popup/drawer. Recommended: `const popup = await ctx.getVar("ctx.popup")`.',detail:"Promise<PopupContext | undefined>",hidden:async e=>{try{let t=await (null==e?void 0:e.popup);return!(null==t?void 0:t.uid)}catch(e){return!1}},examples:['const popup = await ctx.getVar("ctx.popup");',"const id = popup?.record?.id;","const parentId = popup?.parent?.record?.id;"],properties:{uid:"Popup view uid (string).",record:"Current popup record (object).",sourceRecord:"Parent/source record inferred from sourceId/associationName (object).",resource:{description:"Data source info of the popup record.",detail:"PopupResourceInfo",properties:{dataSourceKey:'Data source key (e.g., "main").',collectionName:"Collection name.",associationName:"Association resource name (optional).",filterByTk:"Record primary key / filterByTk.",sourceId:"Source id (optional)."}},parent:"Parent popup info (object). You can access parent.parent... at runtime if available."}},i18n:{description:"An instance of i18next for managing internationalization.",detail:"i18next",properties:{language:"Current active language code."}},libs:{properties:{React:"React namespace (same as ctx.React).",ReactDOM:"ReactDOM client API (same as ctx.ReactDOM).",antd:"Ant Design component library (same as ctx.antd).",dayjs:"dayjs date-time utility library.",antdIcons:"Ant Design icons library. Example: `ctx.libs.antdIcons.PlusOutlined`.",lodash:'Lodash utility library. Example: `ctx.libs.lodash.get(obj, "a.b")`.',formula:"Formula.js library (spreadsheet-like functions). Example: `ctx.libs.formula.SUM(1, 2, 3)`.",math:'mathjs library. Example: `ctx.libs.math.evaluate("2 + 3")`.'}}},methods:{request:{description:"Make an HTTP request using the APIClient instance. Parameters: (options: RequestOptions) => Promise<any>.",detail:"(options: RequestOptions) => Promise<any>",completion:{insertText:"await ctx.request({ url: '', method: 'get', params: {} })"}},getModel:{description:"Get a model instance by uid. By default, it searches across the current view stack and returns the first matched model.",detail:"(uid: string, searchInPreviousEngines?: boolean) => FlowModel | undefined",completion:{insertText:"ctx.getModel('block-uid-xxx')"},params:[{name:"uid",type:"string",description:"Target model uid."},{name:"searchInPreviousEngines",type:"boolean",description:"Whether to search in parent engines (default: false)."}],returns:{type:"FlowModel | undefined"},examples:["const model = ctx.getModel('block-uid-xxx');"]},t:'Internationalization function for translating text. Parameters: (key: string, variables?: object) => string. Example: `ctx.t("Hello {{name}}", { name: "World" })`',initResource:{description:'Initialize ctx.resource as a FlowResource instance by class name. Common values: "MultiRecordResource", "SingleRecordResource", "SQLResource".',detail:"(resourceType: ResourceType) => void",completion:{insertText:"ctx.initResource('MultiRecordResource')"},examples:["ctx.initResource('MultiRecordResource'); ctx.resource.setResourceName('users');"]},makeResource:{description:'Create a new resource instance without binding it to ctx.resource. Useful when you need multiple independent or temporary resources. Common values: "MultiRecordResource", "SingleRecordResource", "SQLResource".',detail:"(resourceType) => FlowResource",completion:{insertText:"const resource = ctx.makeResource('SingleRecordResource')"},examples:["const resource = ctx.makeResource('SingleRecordResource'); resource.setResourceName('users');"]},render:{description:'Render into container. Accepts ReactElement, DOM Node/Fragment, or HTML string. Parameters: (vnode: ReactElement | Node | DocumentFragment | string, container?: HTMLElement|ElementProxy) => Root|null. Example: `ctx.render(<div>Hello</div>)` or `ctx.render("<b>hi</b>")`',detail:"ReactDOM Root",completion:{insertText:"ctx.render(<div />)"}},requireAsync:'Load UMD/AMD/global scripts or CSS asynchronously from URL. Accepts shorthand like "echarts@5/dist/echarts.min.js" (resolved via ESM CDN with ?raw) or full URLs, and returns a Promise of the loaded library.',importAsync:'Dynamically import ESM modules or CSS by URL. Accepts shorthand like "vue@3.4.0" or "dayjs@1/plugin/relativeTime.js" (resolved via configured ESM CDN) or full URLs, and returns a Promise of the module namespace.',getVar:{description:'Resolve a ctx expression value by path string (expression starts with "ctx.").',detail:"(path: string) => Promise<any>",completion:{insertText:"await ctx.getVar('ctx.record.id')"},params:[{name:"path",type:"string",description:'Expression path starts with "ctx." (e.g. "ctx.record.id", "ctx.record.roles[0].id").'}],returns:{type:"Promise<any>"},examples:["const id = await ctx.getVar('ctx.record.id');"]},getApiInfos:{description:"All available APIs under context namespace",detail:"(options?: { version?: string }) => Promise<Record<string, any>>",completion:{insertText:"await ctx.getApiInfos()"},params:[{name:"options",type:"{ version?: string }",optional:!0,description:"Options (e.g. version)."}],returns:{type:"Promise<Record<string, any>>"},examples:["const apis = await ctx.getApiInfos();"]},getVarInfos:{description:"All available variables could be used to get deeper data.",detail:"(options?: { path?: string|string[]; maxDepth?: number }) => Promise<Record<string, any>>",completion:{insertText:"await ctx.getVarInfos({ path: 'record', maxDepth: 3 })"},params:[{name:"options",type:"{ path?: string|string[]; maxDepth?: number }",optional:!0,description:"Options for path trimming and maxDepth expansion."}],returns:{type:"Promise<Record<string, any>>"},examples:["const vars = await ctx.getVarInfos({ path: 'record', maxDepth: 3 });"]},getEnvInfos:{description:"current runtime environment",detail:"() => Promise<Record<string, any>>",completion:{insertText:"await ctx.getEnvInfos()"},returns:{type:"Promise<Record<string, any>>"},examples:["const envs = await ctx.getEnvInfos();"]},runAction:{description:'Execute a data action on the current resource. Parameters: (actionName: string, params: object) => Promise<any>. Example: `await ctx.runAction("create", { values: { name: "test" } })`',detail:"Promise<any>",completion:{insertText:"await ctx.runAction('create', { values: {} })"}},openView:{description:`Open a view component (page, modal, or drawer) by its unique identifier.
|
|
247
247
|
Parameters: (viewId: string, options?: OpenViewOptions) => Promise<void>
|
|
248
248
|
Options:
|
|
249
249
|
- params: Record<string, any> - Parameters passed to the view component
|
|
@@ -257,13 +257,13 @@ Please run: await ctx.importAsync("${r}") to ensure ctx.render uses a matching R
|
|
|
257
257
|
Examples:
|
|
258
258
|
- Modal with params: await ctx.openView("user-detail", { params: { id: 123 }, mode: "modal", title: "User Details", width: 800 })
|
|
259
259
|
- Drawer (default): await ctx.openView("settings-page")
|
|
260
|
-
- Page navigation: await ctx.openView("dashboard", { mode: "page" })`,detail:"Promise<void>",completion:{insertText:"await ctx.openView('view-id', { mode: 'drawer', params: {} })"}}}}),i.uk.define({label:"RunJS 基础",properties:{logger:'Pino 日志实例(结构化日志)。示例:`ctx.logger.info({ foo: 1 }, "message")`',message:{description:"Ant Design 全局消息 API,用于显示临时提示。",detail:"MessageInstance",hidden:e=>!(null==e?void 0:e.message),examples:['ctx.message.success("操作成功")'],properties:{info:{type:"function",description:"显示信息提示。",detail:"(content: any, duration?: number) => void",completion:{insertText:"ctx.message.info('提示')"}},success:{type:"function",description:"显示成功提示。",detail:"(content: any, duration?: number) => void",completion:{insertText:"ctx.message.success('成功')"}},error:{type:"function",description:"显示错误提示。",detail:"(content: any, duration?: number) => void",completion:{insertText:"ctx.message.error('错误')"}},warning:{type:"function",description:"显示警告提示。",detail:"(content: any, duration?: number) => void",completion:{insertText:"ctx.message.warning('警告')"}},loading:{type:"function",description:"显示加载提示。",detail:"(content: any, duration?: number) => void",completion:{insertText:"ctx.message.loading('加载中...')"}},open:{type:"function",description:"使用自定义配置打开消息。",detail:"(config: any) => void",completion:{insertText:"ctx.message.open({ type: 'info', content: 'Hello' })"}},destroy:{type:"function",description:"销毁所有消息。",detail:"() => void",completion:{insertText:"ctx.message.destroy()"}}}},notification:{description:"Ant Design 通知 API,用于显示通知框。",detail:"NotificationInstance",hidden:e=>!(null==e?void 0:e.notification),examples:['ctx.notification.open({ message: "标题", description: "内容" })'],properties:{open:{type:"function",description:"打开通知。",detail:"(config: any) => void",completion:{insertText:"ctx.notification.open({ message: '标题', description: '内容' })"}},success:{type:"function",description:"打开成功通知。",detail:"(config: any) => void",completion:{insertText:"ctx.notification.success({ message: '成功' })"}},info:{type:"function",description:"打开信息通知。",detail:"(config: any) => void",completion:{insertText:"ctx.notification.info({ message: '提示' })"}},warning:{type:"function",description:"打开警告通知。",detail:"(config: any) => void",completion:{insertText:"ctx.notification.warning({ message: '警告' })"}},error:{type:"function",description:"打开错误通知。",detail:"(config: any) => void",completion:{insertText:"ctx.notification.error({ message: '错误' })"}},destroy:{type:"function",description:"销毁通知。",detail:"(key?: string) => void",completion:{insertText:"ctx.notification.destroy()"}}}},modal:{description:"Ant Design modal API(HookAPI),用于打开对话框。",detail:"HookAPI",hidden:e=>!(null==e?void 0:e.modal),examples:["ctx.modal.confirm({ title: '确认', content: '确定继续?' })"],properties:{info:{type:"function",description:"打开信息对话框。",detail:"(config: any) => void",completion:{insertText:"ctx.modal.info({ title: '提示', content: '...' })"}},success:{type:"function",description:"打开成功对话框。",detail:"(config: any) => void",completion:{insertText:"ctx.modal.success({ title: '成功', content: '...' })"}},error:{type:"function",description:"打开错误对话框。",detail:"(config: any) => void",completion:{insertText:"ctx.modal.error({ title: '错误', content: '...' })"}},warning:{type:"function",description:"打开警告对话框。",detail:"(config: any) => void",completion:{insertText:"ctx.modal.warning({ title: '警告', content: '...' })"}},confirm:{type:"function",description:"打开确认对话框。",detail:"(config: any) => void",completion:{insertText:"ctx.modal.confirm({ title: '确认', content: '...' })"}}}},resource:{description:"当前上下文中的 resource 实例(FlowResource),用于访问和操作数据。多数区块、弹窗等场景下运行环境会预先绑定 resource(无需手动调用 ctx.initResource)。对于 JS Block 等默认没有 resource 的场景,可通过 ctx.initResource(type) 初始化一个,再通过 ctx.resource 使用。",detail:"FlowResource",examples:["await ctx.resource.refresh();"],properties:{getData:{description:"获取资源当前数据。",detail:"() => any",completion:{insertText:"ctx.resource.getData()"}},setData:{description:"设置资源当前数据(仅前端)。",detail:"(value: any) => this",completion:{insertText:"ctx.resource.setData(value)"}},refresh:{description:"从后端刷新数据(APIResource/RecordResource 等可用)。",detail:"() => Promise<any>",completion:{insertText:"await ctx.resource.refresh()"}},on:{description:"订阅资源事件(例如 refresh)。",detail:"(event: string, callback: (...args) => void) => void",completion:{insertText:"ctx.resource.on('refresh', () => {})"}},off:{description:"取消订阅资源事件。",detail:"(event: string, callback: (...args) => void) => void",completion:{insertText:"ctx.resource.off('refresh', handler)"}},setResourceName:{description:'设置资源名称(例如 "users" 或 "users.profile")。',detail:"(resourceName: string) => this",completion:{insertText:"ctx.resource.setResourceName('users')"}},setFilterByTk:{description:"设置主键/过滤键 filterByTk(记录资源常用)。",detail:"(filterByTk: any) => this",completion:{insertText:"ctx.resource.setFilterByTk(filterByTk)"}},runAction:{description:"执行资源动作(create/update/destroy/自定义 action)。",detail:"(action: string, options: any) => Promise<any>",completion:{insertText:"await ctx.resource.runAction('create', { data: {} })"}},selectedRows:{description:"列表资源的选中行(通常用于表格动作;是否存在取决于资源类型)。",detail:"any[]"},pagination:{description:"列表资源的分页信息(是否存在取决于资源类型)。",detail:"Record<string, any>"}}},urlSearchParams:"当前 URL 的查询参数(URLSearchParams 对象)",token:"当前会话的 API 认证 token",role:"当前用户角色信息",auth:{description:"认证上下文,包含 locale、role、user、token 等信息",detail:"AuthContext",properties:{locale:'当前 locale(例如 "en-US"、"zh-CN")。',roleName:"当前角色名。",token:"当前 API token。",user:"当前用户信息对象(若可用)。"}},viewer:{description:"视图控制器(FlowViewer),提供 drawer/dialog/popover/embed 等交互能力。",detail:"FlowViewer",examples:["await ctx.viewer.drawer({ width: '56%', content: <div /> });","await ctx.viewer.dialog({ content: <div /> });"],properties:{drawer:{description:"打开抽屉视图。参数:(props: ViewProps) => any",detail:"(props) => any",completion:{insertText:"await ctx.viewer.drawer({ width: '56%', content: <div /> })"}},dialog:{description:"打开对话框视图。参数:(props: ViewProps) => any",detail:"(props) => any",completion:{insertText:"await ctx.viewer.dialog({ content: <div /> })"}},popover:{description:"打开气泡卡片视图。参数:(props: PopoverProps) => any",detail:"(props) => any",completion:{insertText:"await ctx.viewer.popover({ target: ctx.element?.__el, content: <div /> })"}},embed:{description:"打开内嵌视图。参数:(props: ViewProps & TargetProps) => any",detail:"(props) => any",completion:{insertText:"await ctx.viewer.embed({ target: document.body, content: <div /> })"}}}},popup:{description:'弹窗上下文(在当前视图以弹窗/抽屉打开时可用)。推荐:`const popup = await ctx.getVar("ctx.popup")`。',detail:"Promise<PopupContext | undefined>",examples:['const popup = await ctx.getVar("ctx.popup");',"const id = popup?.record?.id;","const parentId = popup?.parent?.record?.id;"],properties:{uid:"弹窗 view uid(string)",record:"当前弹窗记录(object)",sourceRecord:"根据 sourceId/associationName 推断的上级记录(object)",resource:{description:"弹窗记录的数据源信息。",detail:"PopupResourceInfo",properties:{dataSourceKey:'数据源 key(例如 "main")。',collectionName:"集合名称。",associationName:"关联资源名(可选)。",filterByTk:"记录主键/过滤键 filterByTk。",sourceId:"sourceId(可选)。"}},parent:"上级弹窗信息(object)。运行时若存在可访问 parent.parent... 链。"}},i18n:{description:"i18next 实例,可用于管理国际化",detail:"i18next",properties:{language:"当前激活的语言代码"}},dayjs:{type:"function",description:"dayjs 日期时间工具库(可调用)。",detail:"dayjs",completion:{insertText:"ctx.dayjs()"},examples:["const now = ctx.dayjs().format('YYYY-MM-DD HH:mm:ss');"]},React:"React 命名空间,提供 React 函数与 hooks(RunJS 环境中可用)。推荐使用 `ctx.libs.React` 访问。",ReactDOM:"ReactDOM 客户端 API,含 createRoot 等渲染方法。推荐通过 `ctx.libs.ReactDOM` 访问。",antd:"Ant Design 组件库(RunJS 环境中可用)。推荐使用 `ctx.libs.antd` 访问。",libs:{description:"第三方/通用库的统一命名空间,包含 React、ReactDOM、Ant Design、dayjs、icons 等,并可扩展更多工具库(如 lodash、formula、math)。后续新增库会优先挂在此处。",detail:"通用库命名空间",properties:{React:"React 命名空间(等价于 ctx.React)。",ReactDOM:"ReactDOM 客户端 API(等价于 ctx.ReactDOM)。",antd:"Ant Design 组件库(等价于 ctx.antd)。",dayjs:"dayjs 日期时间工具库。",antdIcons:"Ant Design 图标库。 例如:`ctx.libs.antdIcons.PlusOutlined`。",lodash:'Lodash 工具库。示例:`ctx.libs.lodash.get(obj, "a.b")`。',formula:"Formula.js 公式库(类表格函数)。示例:`ctx.libs.formula.SUM(1, 2, 3)`。",math:'mathjs 数学库。示例:`ctx.libs.math.evaluate("2 + 3")`。'}}},methods:{request:{description:"使用 APIClient 实例发起一个 HTTP 请求。参数:(options: RequestOptions) => Promise<any>",detail:"(options: RequestOptions) => Promise<any>",completion:{insertText:"await ctx.request({ url: '', method: 'get', params: {} })"}},getModel:{description:"根据 uid 获取模型实例。默认会跨当前视图栈查找,并返回第一个命中的模型。",detail:"(uid: string, searchInPreviousEngines?: boolean) => FlowModel | undefined",completion:{insertText:"ctx.getModel('block-uid-xxx')"},params:[{name:"uid",type:"string",description:"目标模型 uid。"},{name:"searchInPreviousEngines",type:"boolean",optional:!0,description:"是否在之前的引擎中搜索模型,默认为 false。"}],returns:{type:"FlowModel | undefined"},examples:["const model = ctx.getModel('block-uid-xxx');"]},t:'国际化函数,用于翻译文案。参数:(key: string, variables?: object) => string。示例:`ctx.t("你好 {{name}}", { name: "世界" })`',initResource:{description:'初始化当前上下文的资源:若尚未存在 ctx.resource,则按资源类名创建并绑定;若已存在则直接复用。常用值:"MultiRecordResource"、"SingleRecordResource"、"SQLResource"。',detail:"(resourceType: ResourceType) => void",completion:{insertText:"ctx.initResource('MultiRecordResource')"},examples:["ctx.initResource('MultiRecordResource'); ctx.resource.setResourceName('users');"]},makeResource:{description:'创建一个新的资源实例,不会自动绑定到 ctx.resource。适合需要多个独立资源或临时资源的场景。常用值:"MultiRecordResource"、"SingleRecordResource"、"SQLResource"。',detail:"(resourceType) => FlowResource",completion:{insertText:"const resource = ctx.makeResource('SingleRecordResource')"},examples:["const resource = ctx.makeResource('SingleRecordResource'); resource.setResourceName('users');"]},render:{description:'渲染到容器。vnode 支持 ReactElement、DOM 节点/片段、或 HTML 字符串。参数:(vnode: ReactElement | Node | DocumentFragment | string, container?: HTMLElement|ElementProxy) => Root|null。示例:`ctx.render(<div />)` 或 `ctx.render("<b>hi</b>")`',detail:"ReactDOM Root",completion:{insertText:"ctx.render(<div />)"}},requireAsync:'按 URL 异步加载 UMD/AMD 或挂到全局的脚本,也可加载 CSS。支持简写路径(如 "echarts@5/dist/echarts.min.js",会经由 ESM CDN 加 ?raw 获取原始文件)和完整 URL,返回加载后的库对象或样式注入结果。',importAsync:'按 URL 动态加载 ESM 模块或 CSS。支持简写(如 "vue@3.4.0"、"dayjs@1/plugin/relativeTime.js",会按配置拼接 ESM CDN 前缀)和完整 URL,返回模块命名空间或样式注入结果。',getVar:{description:'通过表达式路径字符串获取 ctx 的运行时值(以 "ctx." 开头)。',detail:"(path: string) => Promise<any>",completion:{insertText:"await ctx.getVar('ctx.record.id')"},params:[{name:"path",type:"string",description:'以 "ctx." 开头的表达式路径(例如 "ctx.record.id" / "ctx.record.roles[0].id")。'}],returns:{type:"Promise<any>"},examples:["const id = await ctx.getVar('ctx.record.id');"]},getApiInfos:{description:"上下文命名空间下的所有可用 API",detail:"(options?: { version?: string }) => Promise<Record<string, any>>",completion:{insertText:"await ctx.getApiInfos()"},params:[{name:"options",type:"{ version?: string }",optional:!0,description:"可选参数(例如 version)。"}],returns:{type:"Promise<Record<string, any>>"},examples:["const apis = await ctx.getApiInfos();"]},getVarInfos:{description:"所有可用变量,可用于获取更深层数据。",detail:"(options?: { path?: string|string[]; maxDepth?: number }) => Promise<Record<string, any>>",completion:{insertText:"await ctx.getVarInfos({ path: 'record', maxDepth: 3 })"},params:[{name:"options",type:"{ path?: string|string[]; maxDepth?: number }",optional:!0,description:"path 剪裁与 maxDepth 展开参数。"}],returns:{type:"Promise<Record<string, any>>"},examples:["const vars = await ctx.getVarInfos({ path: 'record', maxDepth: 3 });"]},getEnvInfos:{description:"当前运行时环境",detail:"() => Promise<Record<string, any>>",completion:{insertText:"await ctx.getEnvInfos()"},returns:{type:"Promise<Record<string, any>>"},examples:["const envs = await ctx.getEnvInfos();"]},resolveJsonTemplate:"解析含 {{ }} 变量表达式的 JSON 模板。参数:(template: any, context?: object) => any",runAction:{description:'对当前资源执行数据动作。参数:(actionName: string, params: object) => Promise<any>。示例:`await ctx.runAction("create", { values: { name: "test" } })`',detail:"Promise<any>",completion:{insertText:"await ctx.runAction('create', { values: {} })"}},openView:{description:"根据唯一标识打开视图(页面/弹窗/抽屉)。参数:(viewId: string, options?: OpenViewOptions) => Promise<void>`,常用选项:params、mode、title、width、navigation、preventClose、viewUid、isMobileLayout。",detail:"Promise<void>",completion:{insertText:"await ctx.openView('view-id', { mode: 'drawer', params: {} })"}}}},{locale:"zh-CN"})}var l=r(19258);let s=!1;async function a(){if(s)return;o();let[{JSBlockRunJSContext:e},{JSFieldRunJSContext:t},{JSEditableFieldRunJSContext:a},{JSItemRunJSContext:c},{JSColumnRunJSContext:u},{FormJSFieldItemRunJSContext:d},{JSRecordActionRunJSContext:h},{JSCollectionActionRunJSContext:p}]=await Promise.all([r.e("3660").then(r.bind(r,79271)),r.e("1507").then(r.bind(r,98542)),r.e("3475").then(r.bind(r,99502)),r.e("2702").then(r.bind(r,32221)),r.e("6269").then(r.bind(r,96108)),r.e("3916").then(r.bind(r,25831)),r.e("338").then(r.bind(r,65897)),r.e("2861").then(r.bind(r,64700))]),f=r=>{n.F.register(r,"*",i.uk),n.F.register(r,"JSBlockModel",e,{scenes:["block"]}),n.F.register(r,"JSFieldModel",t,{scenes:["detail"]}),n.F.register(r,"JSEditableFieldModel",a,{scenes:["form"]}),n.F.register(r,"JSItemModel",c,{scenes:["form"]}),n.F.register(r,"JSItemActionModel",c,{scenes:["table"]}),n.F.register(r,"JSColumnModel",u,{scenes:["table"]}),n.F.register(r,"FormJSFieldItemModel",d,{scenes:["form"]}),n.F.register(r,"JSRecordActionModel",h,{scenes:["table"]}),n.F.register(r,"JSCollectionActionModel",p,{scenes:["table"]})};for(let e of["v1","v2"])f(e),await (0,l.Jq)(e),(0,l.R5)(e);s=!0}},98192(e,t,r){r.d(t,{$B:()=>T,T1:()=>h,oJ:()=>A,qf:()=>M});var n=r(50467),i=r(77037),o=r(95243);let l=new Map,s=new Map,a=new Map,c=new WeakMap,u=new WeakMap;function d(e){let t=c.get(e);return t||(t=new Map,c.set(e,t)),t}function h(e,t,r){"string"==typeof e&&e&&"function"==typeof t&&(l.set(e,{loader:t,cache:(null==r?void 0:r.cache)||"global"}),s.delete(e),a.delete(e))}function p(e){return!!e&&"object"==typeof e}function f(e,t){return p(e)&&Object.prototype.hasOwnProperty.call(e,t)}function m(e){return!!p(e)&&"function"==typeof e.then}function g(e,t){return e[t]}async function y(e,t){let r=null==e?void 0:e.libs;if(f(r,t)){let e=r[t];if(void 0!==e)return e}let n=l.get(t);if(!n)return p(r)?r[t]:void 0;let i=e=>{p(r)&&(r[t]=e)};if("context"===n.cache){let r=d(e),o=r.get(t);if(o){let e=await o;return i(e),e}let l=Promise.resolve().then(()=>n.loader(e)).then(e=>(r.delete(t),e),e=>{throw r.delete(t),e});r.set(t,l);let s=await l;return i(s),s}if(s.has(t)){let e=s.get(t);return i(e),e}let o=a.get(t);if(o){let e=await o;return i(e),e}let c=Promise.resolve().then(()=>n.loader(e)).then(e=>(s.set(t,e),a.delete(t),e),e=>{throw a.delete(t),e});a.set(t,c);let u=await c;return i(u),u}function v(e){e&&"object"==typeof e&&"function"==typeof e.defineMethod&&(e.defineMethod("__ensureLib",async function(e){if("string"==typeof e&&e)return await y(this,e)}),e.defineMethod("__ensureLibs",async function(e){if(Array.isArray(e))for(let t of e)"string"==typeof t&&t&&await y(this,t)}))}let w=[{name:"React",cache:"context",loader:e=>g(e,"React")},{name:"ReactDOM",cache:"context",loader:e=>g(e,"ReactDOM")},{name:"antd",cache:"context",loader:e=>g(e,"antd")},{name:"dayjs",cache:"context",loader:e=>g(e,"dayjs")},{name:"antdIcons",cache:"global",loader:()=>i},{name:"lodash",cache:"global",loader:()=>Promise.resolve().then(r.t.bind(r,2543,23)).then(e=>e.default||e)},{name:"formula",cache:"global",loader:()=>r.e("9811").then(r.bind(r,8558)).then(e=>e.default||e)},{name:"math",cache:"global",loader:()=>Promise.all([r.e("1020"),r.e("22")]).then(r.bind(r,56999)).then(e=>e)}],b=!1;function x(){if(!b)for(let{name:e,loader:t,cache:r}of(b=!0,w))l.has(e)||h(e,t,{cache:r})}function S(e,t){let r=l.get(t);if(!r)return;if("global"===r.cache&&s.has(t))return s.get(t);let n=r.loader(e);if(!m(n))return"global"===r.cache&&s.set(t,n),n}function A(e){if(!e||"object"!=typeof e||"function"!=typeof e.defineProperty)return;x();let t={};for(let{name:r}of w)Object.defineProperty(t,r,{configurable:!0,enumerable:!0,get(){let n=S(e,r);return Object.defineProperty(t,r,{configurable:!0,enumerable:!0,writable:!0,value:n}),n}});e.defineProperty("libs",{value:t}),v(e)}function M(e,t,r,n){let i=(null==n?void 0:n.topLevelKey)===!1?null:(null==n?void 0:n.topLevelKey)||t;i&&e.defineProperty(i,{value:r}),Object.defineProperty(e.libs,t,{configurable:!0,enumerable:!0,writable:!0,value:r})}function _(e){var t;let{ctx:r,internalReact:n,internalAntd:i}=e,o=[],l=r.React&&r.React!==n,s=!!(null==(t=r.ReactDOM)?void 0:t.__nbRunjsInternalShim),a=r.antd===i,c=r.antd&&r.antd!==i;if(l&&s){let e=r.__runjsExternalReact,t=null==e?void 0:e.version,n=t?`react-dom@${t}/client`:"react-dom/client";o.push(`- You have imported external React, but you're still using the built-in ReactDOM Root; please also run: await ctx.importAsync("${n}")`)}return c&&!l&&(o.push('- You have imported external antd, but you\'re still using the built-in React; please run: await ctx.importAsync("react@18.x")'),o.push('- And make sure ReactDOM matches: await ctx.importAsync("react-dom@18.x/client")')),l&&a&&(o.push('- You have imported external React, but you\'re still using the built-in antd; please switch to: await ctx.importAsync("antd@5.x")'),o.push('- If you use icon components, also import: await ctx.importAsync("@ant-design/icons@5.x")')),o.length?`
|
|
260
|
+
- Page navigation: await ctx.openView("dashboard", { mode: "page" })`,detail:"Promise<void>",completion:{insertText:"await ctx.openView('view-id', { mode: 'drawer', params: {} })"}}}}),i.uk.define({label:"RunJS 基础",properties:{logger:'Pino 日志实例(结构化日志)。示例:`ctx.logger.info({ foo: 1 }, "message")`',message:{description:"Ant Design 全局消息 API,用于显示临时提示。",detail:"MessageInstance",hidden:e=>!(null==e?void 0:e.message),examples:['ctx.message.success("操作成功")'],properties:{info:{type:"function",description:"显示信息提示。",detail:"(content: any, duration?: number) => void",completion:{insertText:"ctx.message.info('提示')"}},success:{type:"function",description:"显示成功提示。",detail:"(content: any, duration?: number) => void",completion:{insertText:"ctx.message.success('成功')"}},error:{type:"function",description:"显示错误提示。",detail:"(content: any, duration?: number) => void",completion:{insertText:"ctx.message.error('错误')"}},warning:{type:"function",description:"显示警告提示。",detail:"(content: any, duration?: number) => void",completion:{insertText:"ctx.message.warning('警告')"}},loading:{type:"function",description:"显示加载提示。",detail:"(content: any, duration?: number) => void",completion:{insertText:"ctx.message.loading('加载中...')"}},open:{type:"function",description:"使用自定义配置打开消息。",detail:"(config: any) => void",completion:{insertText:"ctx.message.open({ type: 'info', content: 'Hello' })"}},destroy:{type:"function",description:"销毁所有消息。",detail:"() => void",completion:{insertText:"ctx.message.destroy()"}}}},notification:{description:"Ant Design 通知 API,用于显示通知框。",detail:"NotificationInstance",hidden:e=>!(null==e?void 0:e.notification),examples:['ctx.notification.open({ message: "标题", description: "内容" })'],properties:{open:{type:"function",description:"打开通知。",detail:"(config: any) => void",completion:{insertText:"ctx.notification.open({ message: '标题', description: '内容' })"}},success:{type:"function",description:"打开成功通知。",detail:"(config: any) => void",completion:{insertText:"ctx.notification.success({ message: '成功' })"}},info:{type:"function",description:"打开信息通知。",detail:"(config: any) => void",completion:{insertText:"ctx.notification.info({ message: '提示' })"}},warning:{type:"function",description:"打开警告通知。",detail:"(config: any) => void",completion:{insertText:"ctx.notification.warning({ message: '警告' })"}},error:{type:"function",description:"打开错误通知。",detail:"(config: any) => void",completion:{insertText:"ctx.notification.error({ message: '错误' })"}},destroy:{type:"function",description:"销毁通知。",detail:"(key?: string) => void",completion:{insertText:"ctx.notification.destroy()"}}}},modal:{description:"Ant Design modal API(HookAPI),用于打开对话框。",detail:"HookAPI",hidden:e=>!(null==e?void 0:e.modal),examples:["ctx.modal.confirm({ title: '确认', content: '确定继续?' })"],properties:{info:{type:"function",description:"打开信息对话框。",detail:"(config: any) => void",completion:{insertText:"ctx.modal.info({ title: '提示', content: '...' })"}},success:{type:"function",description:"打开成功对话框。",detail:"(config: any) => void",completion:{insertText:"ctx.modal.success({ title: '成功', content: '...' })"}},error:{type:"function",description:"打开错误对话框。",detail:"(config: any) => void",completion:{insertText:"ctx.modal.error({ title: '错误', content: '...' })"}},warning:{type:"function",description:"打开警告对话框。",detail:"(config: any) => void",completion:{insertText:"ctx.modal.warning({ title: '警告', content: '...' })"}},confirm:{type:"function",description:"打开确认对话框。",detail:"(config: any) => void",completion:{insertText:"ctx.modal.confirm({ title: '确认', content: '...' })"}}}},resource:{description:"当前上下文中的 resource 实例(FlowResource),用于访问和操作数据。多数区块、弹窗等场景下运行环境会预先绑定 resource(无需手动调用 ctx.initResource)。对于 JS Block 等默认没有 resource 的场景,可通过 ctx.initResource(type) 初始化一个,再通过 ctx.resource 使用。",detail:"FlowResource",examples:["await ctx.resource.refresh();"],properties:{getData:{description:"获取资源当前数据。",detail:"() => any",completion:{insertText:"ctx.resource.getData()"}},setData:{description:"设置资源当前数据(仅前端)。",detail:"(value: any) => this",completion:{insertText:"ctx.resource.setData(value)"}},refresh:{description:"从后端刷新数据(APIResource/RecordResource 等可用)。",detail:"() => Promise<any>",completion:{insertText:"await ctx.resource.refresh()"}},on:{description:"订阅资源事件(例如 refresh)。",detail:"(event: string, callback: (...args) => void) => void",completion:{insertText:"ctx.resource.on('refresh', () => {})"}},off:{description:"取消订阅资源事件。",detail:"(event: string, callback: (...args) => void) => void",completion:{insertText:"ctx.resource.off('refresh', handler)"}},setResourceName:{description:'设置资源名称(例如 "users" 或 "users.profile")。',detail:"(resourceName: string) => this",completion:{insertText:"ctx.resource.setResourceName('users')"}},setFilterByTk:{description:"设置主键/过滤键 filterByTk(记录资源常用)。",detail:"(filterByTk: any) => this",completion:{insertText:"ctx.resource.setFilterByTk(filterByTk)"}},runAction:{description:"执行资源动作(create/update/destroy/自定义 action)。",detail:"(action: string, options: any) => Promise<any>",completion:{insertText:"await ctx.resource.runAction('create', { data: {} })"}},selectedRows:{description:"列表资源的选中行(通常用于表格动作;是否存在取决于资源类型)。",detail:"any[]"},pagination:{description:"列表资源的分页信息(是否存在取决于资源类型)。",detail:"Record<string, any>"}}},urlSearchParams:"当前 URL 的查询参数(URLSearchParams 对象)",token:"当前会话的 API 认证 token",role:"当前用户角色信息",auth:{description:"认证上下文,包含 locale、role、user、token 等信息",detail:"AuthContext",properties:{locale:'当前 locale(例如 "en-US"、"zh-CN")。',roleName:"当前角色名。",token:"当前 API token。",user:"当前用户信息对象(若可用)。"}},viewer:{description:"视图控制器(FlowViewer),提供 drawer/dialog/popover/embed 等交互能力。",detail:"FlowViewer",examples:["await ctx.viewer.drawer({ width: '56%', content: <div /> });","await ctx.viewer.dialog({ content: <div /> });"],properties:{drawer:{description:"打开抽屉视图。参数:(props: ViewProps) => any",detail:"(props) => any",completion:{insertText:"await ctx.viewer.drawer({ width: '56%', content: <div /> })"}},dialog:{description:"打开对话框视图。参数:(props: ViewProps) => any",detail:"(props) => any",completion:{insertText:"await ctx.viewer.dialog({ content: <div /> })"}},popover:{description:"打开气泡卡片视图。参数:(props: PopoverProps) => any",detail:"(props) => any",completion:{insertText:"await ctx.viewer.popover({ target: ctx.element?.__el, content: <div /> })"}},embed:{description:"打开内嵌视图。参数:(props: ViewProps & TargetProps) => any",detail:"(props) => any",completion:{insertText:"await ctx.viewer.embed({ target: document.body, content: <div /> })"}}}},popup:{description:'弹窗上下文(在当前视图以弹窗/抽屉打开时可用)。推荐:`const popup = await ctx.getVar("ctx.popup")`。',detail:"Promise<PopupContext | undefined>",examples:['const popup = await ctx.getVar("ctx.popup");',"const id = popup?.record?.id;","const parentId = popup?.parent?.record?.id;"],properties:{uid:"弹窗 view uid(string)",record:"当前弹窗记录(object)",sourceRecord:"根据 sourceId/associationName 推断的上级记录(object)",resource:{description:"弹窗记录的数据源信息。",detail:"PopupResourceInfo",properties:{dataSourceKey:'数据源 key(例如 "main")。',collectionName:"集合名称。",associationName:"关联资源名(可选)。",filterByTk:"记录主键/过滤键 filterByTk。",sourceId:"sourceId(可选)。"}},parent:"上级弹窗信息(object)。运行时若存在可访问 parent.parent... 链。"}},i18n:{description:"i18next 实例,可用于管理国际化",detail:"i18next",properties:{language:"当前激活的语言代码"}},dayjs:{type:"function",description:"dayjs 日期时间工具库(可调用)。",detail:"dayjs",completion:{insertText:"ctx.dayjs()"},examples:["const now = ctx.dayjs().format('YYYY-MM-DD HH:mm:ss');"]},React:"React 命名空间,提供 React 函数与 hooks(RunJS 环境中可用)。推荐使用 `ctx.libs.React` 访问。",ReactDOM:"ReactDOM 客户端 API,含 createRoot 等渲染方法。推荐通过 `ctx.libs.ReactDOM` 访问。",antd:"Ant Design 组件库(RunJS 环境中可用)。推荐使用 `ctx.libs.antd` 访问。",libs:{description:"第三方/通用库的统一命名空间,包含 React、ReactDOM、Ant Design、dayjs、icons 等,并可扩展更多工具库(如 lodash、formula、math)。后续新增库会优先挂在此处。",detail:"通用库命名空间",properties:{React:"React 命名空间(等价于 ctx.React)。",ReactDOM:"ReactDOM 客户端 API(等价于 ctx.ReactDOM)。",antd:"Ant Design 组件库(等价于 ctx.antd)。",dayjs:"dayjs 日期时间工具库。",antdIcons:"Ant Design 图标库。 例如:`ctx.libs.antdIcons.PlusOutlined`。",lodash:'Lodash 工具库。示例:`ctx.libs.lodash.get(obj, "a.b")`。',formula:"Formula.js 公式库(类表格函数)。示例:`ctx.libs.formula.SUM(1, 2, 3)`。",math:'mathjs 数学库。示例:`ctx.libs.math.evaluate("2 + 3")`。'}}},methods:{request:{description:"使用 APIClient 实例发起一个 HTTP 请求。参数:(options: RequestOptions) => Promise<any>",detail:"(options: RequestOptions) => Promise<any>",completion:{insertText:"await ctx.request({ url: '', method: 'get', params: {} })"}},getModel:{description:"根据 uid 获取模型实例。默认会跨当前视图栈查找,并返回第一个命中的模型。",detail:"(uid: string, searchInPreviousEngines?: boolean) => FlowModel | undefined",completion:{insertText:"ctx.getModel('block-uid-xxx')"},params:[{name:"uid",type:"string",description:"目标模型 uid。"},{name:"searchInPreviousEngines",type:"boolean",optional:!0,description:"是否在之前的引擎中搜索模型,默认为 false。"}],returns:{type:"FlowModel | undefined"},examples:["const model = ctx.getModel('block-uid-xxx');"]},t:'国际化函数,用于翻译文案。参数:(key: string, variables?: object) => string。示例:`ctx.t("你好 {{name}}", { name: "世界" })`',initResource:{description:'初始化当前上下文的资源:若尚未存在 ctx.resource,则按资源类名创建并绑定;若已存在则直接复用。常用值:"MultiRecordResource"、"SingleRecordResource"、"SQLResource"。',detail:"(resourceType: ResourceType) => void",completion:{insertText:"ctx.initResource('MultiRecordResource')"},examples:["ctx.initResource('MultiRecordResource'); ctx.resource.setResourceName('users');"]},makeResource:{description:'创建一个新的资源实例,不会自动绑定到 ctx.resource。适合需要多个独立资源或临时资源的场景。常用值:"MultiRecordResource"、"SingleRecordResource"、"SQLResource"。',detail:"(resourceType) => FlowResource",completion:{insertText:"const resource = ctx.makeResource('SingleRecordResource')"},examples:["const resource = ctx.makeResource('SingleRecordResource'); resource.setResourceName('users');"]},render:{description:'渲染到容器。vnode 支持 ReactElement、DOM 节点/片段、或 HTML 字符串。参数:(vnode: ReactElement | Node | DocumentFragment | string, container?: HTMLElement|ElementProxy) => Root|null。示例:`ctx.render(<div />)` 或 `ctx.render("<b>hi</b>")`',detail:"ReactDOM Root",completion:{insertText:"ctx.render(<div />)"}},requireAsync:'按 URL 异步加载 UMD/AMD 或挂到全局的脚本,也可加载 CSS。支持简写路径(如 "echarts@5/dist/echarts.min.js",会经由 ESM CDN 加 ?raw 获取原始文件)和完整 URL,返回加载后的库对象或样式注入结果。',importAsync:'按 URL 动态加载 ESM 模块或 CSS。支持简写(如 "vue@3.4.0"、"dayjs@1/plugin/relativeTime.js",会按配置拼接 ESM CDN 前缀)和完整 URL,返回模块命名空间或样式注入结果。',getVar:{description:'通过表达式路径字符串获取 ctx 的运行时值(以 "ctx." 开头)。',detail:"(path: string) => Promise<any>",completion:{insertText:"await ctx.getVar('ctx.record.id')"},params:[{name:"path",type:"string",description:'以 "ctx." 开头的表达式路径(例如 "ctx.record.id" / "ctx.record.roles[0].id")。'}],returns:{type:"Promise<any>"},examples:["const id = await ctx.getVar('ctx.record.id');"]},getApiInfos:{description:"上下文命名空间下的所有可用 API",detail:"(options?: { version?: string }) => Promise<Record<string, any>>",completion:{insertText:"await ctx.getApiInfos()"},params:[{name:"options",type:"{ version?: string }",optional:!0,description:"可选参数(例如 version)。"}],returns:{type:"Promise<Record<string, any>>"},examples:["const apis = await ctx.getApiInfos();"]},getVarInfos:{description:"所有可用变量,可用于获取更深层数据。",detail:"(options?: { path?: string|string[]; maxDepth?: number }) => Promise<Record<string, any>>",completion:{insertText:"await ctx.getVarInfos({ path: 'record', maxDepth: 3 })"},params:[{name:"options",type:"{ path?: string|string[]; maxDepth?: number }",optional:!0,description:"path 剪裁与 maxDepth 展开参数。"}],returns:{type:"Promise<Record<string, any>>"},examples:["const vars = await ctx.getVarInfos({ path: 'record', maxDepth: 3 });"]},getEnvInfos:{description:"当前运行时环境",detail:"() => Promise<Record<string, any>>",completion:{insertText:"await ctx.getEnvInfos()"},returns:{type:"Promise<Record<string, any>>"},examples:["const envs = await ctx.getEnvInfos();"]},resolveJsonTemplate:"解析含 {{ }} 变量表达式的 JSON 模板。参数:(template: any, context?: object) => any",runAction:{description:'对当前资源执行数据动作。参数:(actionName: string, params: object) => Promise<any>。示例:`await ctx.runAction("create", { values: { name: "test" } })`',detail:"Promise<any>",completion:{insertText:"await ctx.runAction('create', { values: {} })"}},openView:{description:"根据唯一标识打开视图(页面/弹窗/抽屉)。参数:(viewId: string, options?: OpenViewOptions) => Promise<void>`,常用选项:params、mode、title、width、navigation、preventClose、viewUid、isMobileLayout。",detail:"Promise<void>",completion:{insertText:"await ctx.openView('view-id', { mode: 'drawer', params: {} })"}}}},{locale:"zh-CN"})}var l=r(19258);let s=!1;async function a(){if(s)return;o();let[{JSBlockRunJSContext:e},{JSFieldRunJSContext:t},{JSEditableFieldRunJSContext:a},{JSItemRunJSContext:u},{JSColumnRunJSContext:c},{FormJSFieldItemRunJSContext:d},{JSRecordActionRunJSContext:h},{JSCollectionActionRunJSContext:p}]=await Promise.all([r.e("3660").then(r.bind(r,79271)),r.e("1507").then(r.bind(r,98542)),r.e("3475").then(r.bind(r,99502)),r.e("2702").then(r.bind(r,32221)),r.e("6269").then(r.bind(r,96108)),r.e("3916").then(r.bind(r,25831)),r.e("338").then(r.bind(r,65897)),r.e("2861").then(r.bind(r,64700))]),f=r=>{n.F.register(r,"*",i.uk),n.F.register(r,"JSBlockModel",e,{scenes:["block"]}),n.F.register(r,"JSFieldModel",t,{scenes:["detail"]}),n.F.register(r,"JSEditableFieldModel",a,{scenes:["form"]}),n.F.register(r,"JSItemModel",u,{scenes:["form"]}),n.F.register(r,"JSItemActionModel",u,{scenes:["table"]}),n.F.register(r,"JSColumnModel",c,{scenes:["table"]}),n.F.register(r,"FormJSFieldItemModel",d,{scenes:["form"]}),n.F.register(r,"JSRecordActionModel",h,{scenes:["table"]}),n.F.register(r,"JSCollectionActionModel",p,{scenes:["table"]})};for(let e of["v1","v2"])f(e),await (0,l.Jq)(e),(0,l.R5)(e);s=!0}},98192(e,t,r){r.d(t,{$B:()=>T,T1:()=>h,oJ:()=>_,qf:()=>A});var n=r(50467),i=r(77037),o=r(95243);let l=new Map,s=new Map,a=new Map,u=new WeakMap,c=new WeakMap;function d(e){let t=u.get(e);return t||(t=new Map,u.set(e,t)),t}function h(e,t,r){"string"==typeof e&&e&&"function"==typeof t&&(l.set(e,{loader:t,cache:(null==r?void 0:r.cache)||"global"}),s.delete(e),a.delete(e))}function p(e){return!!e&&"object"==typeof e}function f(e,t){return p(e)&&Object.prototype.hasOwnProperty.call(e,t)}function g(e){return!!p(e)&&"function"==typeof e.then}function m(e,t){return e[t]}async function y(e,t){let r=null==e?void 0:e.libs;if(f(r,t)){let e=r[t];if(void 0!==e)return e}let n=l.get(t);if(!n)return p(r)?r[t]:void 0;let i=e=>{p(r)&&(r[t]=e)};if("context"===n.cache){let r=d(e),o=r.get(t);if(o){let e=await o;return i(e),e}let l=Promise.resolve().then(()=>n.loader(e)).then(e=>(r.delete(t),e),e=>{throw r.delete(t),e});r.set(t,l);let s=await l;return i(s),s}if(s.has(t)){let e=s.get(t);return i(e),e}let o=a.get(t);if(o){let e=await o;return i(e),e}let u=Promise.resolve().then(()=>n.loader(e)).then(e=>(s.set(t,e),a.delete(t),e),e=>{throw a.delete(t),e});a.set(t,u);let c=await u;return i(c),c}function v(e){e&&"object"==typeof e&&"function"==typeof e.defineMethod&&(e.defineMethod("__ensureLib",async function(e){if("string"==typeof e&&e)return await y(this,e)}),e.defineMethod("__ensureLibs",async function(e){if(Array.isArray(e))for(let t of e)"string"==typeof t&&t&&await y(this,t)}))}let w=[{name:"React",cache:"context",loader:e=>m(e,"React")},{name:"ReactDOM",cache:"context",loader:e=>m(e,"ReactDOM")},{name:"antd",cache:"context",loader:e=>m(e,"antd")},{name:"dayjs",cache:"context",loader:e=>m(e,"dayjs")},{name:"antdIcons",cache:"global",loader:()=>i},{name:"lodash",cache:"global",loader:()=>Promise.resolve().then(r.t.bind(r,2543,23)).then(e=>e.default||e)},{name:"formula",cache:"global",loader:()=>r.e("9811").then(r.bind(r,8558)).then(e=>e.default||e)},{name:"math",cache:"global",loader:()=>Promise.all([r.e("1020"),r.e("22")]).then(r.bind(r,56999)).then(e=>e)}],b=!1;function x(){if(!b)for(let{name:e,loader:t,cache:r}of(b=!0,w))l.has(e)||h(e,t,{cache:r})}function S(e,t){let r=l.get(t);if(!r)return;if("global"===r.cache&&s.has(t))return s.get(t);let n=r.loader(e);if(!g(n))return"global"===r.cache&&s.set(t,n),n}function _(e){if(!e||"object"!=typeof e||"function"!=typeof e.defineProperty)return;x();let t={};for(let{name:r}of w)Object.defineProperty(t,r,{configurable:!0,enumerable:!0,get(){let n=S(e,r);return Object.defineProperty(t,r,{configurable:!0,enumerable:!0,writable:!0,value:n}),n}});e.defineProperty("libs",{value:t}),v(e)}function A(e,t,r,n){let i=(null==n?void 0:n.topLevelKey)===!1?null:(null==n?void 0:n.topLevelKey)||t;i&&e.defineProperty(i,{value:r}),Object.defineProperty(e.libs,t,{configurable:!0,enumerable:!0,writable:!0,value:r})}function k(e){var t;let{ctx:r,internalReact:n,internalAntd:i}=e,o=[],l=r.React&&r.React!==n,s=!!(null==(t=r.ReactDOM)?void 0:t.__nbRunjsInternalShim),a=r.antd===i,u=r.antd&&r.antd!==i;if(l&&s){let e=r.__runjsExternalReact,t=null==e?void 0:e.version,n=t?`react-dom@${t}/client`:"react-dom/client";o.push(`- You have imported external React, but you're still using the built-in ReactDOM Root; please also run: await ctx.importAsync("${n}")`)}return u&&!l&&(o.push('- You have imported external antd, but you\'re still using the built-in React; please run: await ctx.importAsync("react@18.x")'),o.push('- And make sure ReactDOM matches: await ctx.importAsync("react-dom@18.x/client")')),l&&a&&(o.push('- You have imported external React, but you\'re still using the built-in antd; please switch to: await ctx.importAsync("antd@5.x")'),o.push('- If you use icon components, also import: await ctx.importAsync("@ant-design/icons@5.x")')),o.length?`
|
|
261
261
|
|
|
262
262
|
[RunJS Hint]
|
|
263
|
-
${o.join("\n")}`:""}function
|
|
263
|
+
${o.join("\n")}`:""}function M(e){let t=String((null==e?void 0:e.message)||"");if(!t||!/Cannot read (?:properties|property) of (?:null|undefined) \(reading 'use[A-Za-z]+'\)/.test(t))return!1;let r=String((null==e?void 0:e.stack)||"");return!!r&&(/(?:^|\W)react@[^/\s)]+/i.test(r)||/react\.mjs/i.test(r)||/react\.(?:development|production)/i.test(r))}function E(e){var t;let r=String((null==e?void 0:e.stack)||"");if(!r)return;let n=r.match(/(?:^|\W)react@([^/\s)]+)/i);return(null==n||null==(t=n[1])?void 0:t.trim())||void 0}function j(e){let{ctx:t,internalReact:r,internalAntd:n,err:i}=e;if(!M(i))return"";let o=E(i),l=[];return l.push("- This looks like a React Hooks crash caused by multiple React instances (hook dispatcher is null)."),o?(l.push(`- Your stack trace includes external React: react@${o}.`),l.push(`- Fix: import the same React BEFORE you read ctx.libs.React / call hooks / import React-based libs: await ctx.importAsync("react@${o}")`)):l.push("- Fix: import external React BEFORE you read ctx.libs.React / call hooks / import React-based libs (use the same version shown in the stack trace)."),t.antd===n&&(l.push('- If you use antd components, also switch to external antd: await ctx.importAsync("antd@5.x")'),l.push('- If you use icon components, also import: await ctx.importAsync("@ant-design/icons@5.x")')),l.length?`
|
|
264
264
|
|
|
265
265
|
[RunJS Hint]
|
|
266
|
-
${l.join("\n")}`:""}function j(e,t){let r=Error(t);r.cause=e;try{let t="string"==typeof(null==e?void 0:e.name)?e.name:"";t&&(r.name=t)}catch(e){}try{let n="string"==typeof(null==e?void 0:e.stack)?e.stack:"";if(n){let e=String(n).split("\n");e.length&&(e[0]=`${r.name}: ${t}`,r.stack=e.join("\n"))}}catch(e){}return r}function R(e){if(!e)return null;let t=u.get(e);if(t)return t;if("function"!=typeof e.createElement)return null;let r=e.Component;if("function"!=typeof r)return null;class i extends r{static getDerivedStateFromError(e){return{error:e}}componentDidCatch(e){try{var t,r,n;let i=null==(t=this.props)?void 0:t.enhanceReactError,o="function"==typeof i?i(e):e,l=String((null==o?void 0:o.message)||"");if(l&&/\[RunJS Hint\]/.test(l)){console.error(l);let e=null==(n=this.props)||null==(r=n.ctx)?void 0:r.logger;e&&"function"==typeof e.error&&e.error(l)}}catch(e){}}componentDidUpdate(e){var t,r;(null==e?void 0:e.resetKey)!==(null==(t=this.props)?void 0:t.resetKey)&&(null==(r=this.state)?void 0:r.error)&&this.setState({error:void 0})}render(){var t,r;let n=null==(t=this.state)?void 0:t.error;if(!n)return this.props.children;let i="";try{let e=null==(r=this.props)?void 0:r.enhanceReactError,t="function"==typeof e?e(n):n;i=String((null==t?void 0:t.message)||t||(null==n?void 0:n.message)||n||"")}catch(e){i=String((null==n?void 0:n.message)||n||"")}let o={boxSizing:"border-box",padding:12,borderRadius:6,border:"1px solid #ffccc7",background:"#fff2f0",color:"#a8071a",fontSize:12,lineHeight:1.5,maxWidth:"100%",overflow:"auto"},l={margin:0,whiteSpace:"pre-wrap",wordBreak:"break-word",fontFamily:'ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace'},s={fontWeight:600,marginBottom:8};return e.createElement("div",{style:o},e.createElement("div",{style:s},"RunJS render error"),e.createElement("pre",{style:l},i))}constructor(...e){super(...e),(0,n._)(this,"state",{})}}return u.set(e,i),i}function E(e){let{ctx:t,vnode:r,enhanceReactError:n,resetKey:i}=e,o=null==t?void 0:t.React,l=R(o);return l?o.createElement(l,{ctx:t,enhanceReactError:n,resetKey:i},r):r}function F(e){var t;let{ctx:r,entry:n,containerEl:i,rootMap:l,unmountContainerRoot:s,enhanceReactError:a,internalReact:c,internalAntd:u}=e;if(!(!(null==(t=r.ReactDOM)?void 0:t.__nbRunjsInternalShim)&&r.React&&r.React!==c&&r.antd&&r.antd!==u&&void 0!==r.antd.ConfigProvider)){if(n.disposeTheme){try{n.disposeTheme()}catch(e){}n.disposeTheme=void 0}return!1}let d=()=>{var e,t,i,o,l,s,a;null==r||null==(t=r.engine)||null==(e=t.context)||e.themeToken;let c=null==r||null==(o=r.engine)||null==(i=o.context)?void 0:i.antdConfig,u=(null==r||null==(a=r.engine)||null==(s=a.context)||null==(l=s.locales)?void 0:l.antd)||(null==c?void 0:c.locale),d=r.antd.ConfigProvider,h=r.antd.App,p={popupMatchSelectWidth:!1,locale:u||{}};c&&"object"==typeof c&&(void 0!==c.direction&&(p.direction=c.direction),"string"==typeof c.prefixCls&&(p.prefixCls=c.prefixCls),"string"==typeof c.iconPrefixCls&&(p.iconPrefixCls=c.iconPrefixCls),"function"==typeof c.getPopupContainer&&(p.getPopupContainer=c.getPopupContainer),c.theme&&"object"==typeof c.theme&&(p.theme=c.theme));let f=n.lastVnode,m=h?r.React.createElement(d,p,r.React.createElement(h,null,f)):r.React.createElement(d,p,f);n.root.render(m)};return n.disposeTheme?d():n.disposeTheme=(0,o.autorun)(()=>{try{if(i&&1===i.nodeType&&"boolean"==typeof i.isConnected&&!i.isConnected&&n.wasConnected)return void queueMicrotask(()=>{l.get(i)===n&&s()});i&&1===i.nodeType&&"boolean"==typeof i.isConnected&&i.isConnected&&(n.wasConnected=!0),d()}catch(e){throw a(e)}}),!0}function T(e){let{ctx:t,entry:r,vnode:n,containerEl:i,rootMap:o,unmountContainerRoot:l,internalReact:s,internalAntd:a}=e,c=e=>{let r=String((null==e?void 0:e.message)||e||"");if(!r||/\[RunJS Hint\]/.test(r))return e;let n=/invalid hook call/i.test(r),i=k(e);if(!n&&!i)return e;let o=_({ctx:t,internalReact:s,internalAntd:a})||C({ctx:t,internalReact:s,internalAntd:a,err:e});return o?j(e,`${r}${o}`):e};try{return r.__nbRunjsRenderSeq=(r.__nbRunjsRenderSeq||0)+1,r.lastVnode=E({ctx:t,vnode:n,enhanceReactError:c,resetKey:r.__nbRunjsRenderSeq}),F({ctx:t,entry:r,containerEl:i,rootMap:o,unmountContainerRoot:l,enhanceReactError:c,internalReact:s,internalAntd:a})||r.root.render(r.lastVnode),r.root}catch(e){throw c(e)}}},44476(e,t,r){r.d(t,{H:()=>c,a:()=>u});var n=r(2543),i=r.n(n),o=r(35846);function l(e){if(!e)return;let t=e.match(/^([^.[]+)/);return null==t?void 0:t[1]}function s(e,t){var r;if(!e||!t)return;let n=e.getField(t);return n||((null==(r=e.getFields)?void 0:r.call(e))||[]).find(e=>e.name===t)}function a(e,t){if(null!=e){if(Array.isArray(t)){if("object"!=typeof e||!e)return;let r={};for(let n of t){let t=e[n];if(null==t)return;r[n]=t}return r}if("string"==typeof e||"number"==typeof e)return e;if("object"==typeof e)return e[t]}}function c(e,t){return r=>{if(!r||!r.includes("."))return!1;let n=l(r);if(!n)return!1;let o=s(e(),n);if(!(null==o?void 0:o.isAssociationField()))return!1;if("function"==typeof t){let e=t();if(e&&"object"==typeof e&&void 0!==i().get(e,r))return!1}return!0}}function u(e,t,r){let n=(0,o.H)(e,t,!0),i=async()=>{let t=await n();return t?{...t,buildVariablesParams:t=>{var n;let i=e(),o=r(t);if(!i||!o||"object"!=typeof o)return{};let l={};for(let e of(null==(n=i.getFields)?void 0:n.call(i))||[]){let t=e.name;if(!t||!e.isAssociationField())continue;let r=e.target,n=e.targetCollection;if(!r||!n)continue;let i=n.filterTargetKey,s=o[t];if(null!=s)if(Array.isArray(s)){let e=s.map(e=>a(e,i)).filter(e=>null!=e);e.length&&(l[t]={collection:r,dataSourceKey:n.dataSourceKey,filterByTk:e})}else{let e=a(s,i);null!=e&&(l[t]={collection:r,dataSourceKey:n.dataSourceKey,filterByTk:e})}}return l}}:null};return i.title=t,i}},35846(e,t,r){r.d(t,{H:()=>a});let n=["belongsTo","hasOne","hasMany","belongsToMany","belongsToArray"],i=["integer","float","double","decimal"];function o(e,t){let r=s(e);if(e.isAssociationField()){let n=e.targetCollection;return n?{type:"object",...r,properties:async()=>{let e={};return n.fields.forEach(r=>{(t||r.filterable)&&(e[r.name]=o(r,t))}),e}}:{type:"object",...r}}return{type:l(e),...r}}function l(e){let t=e.type;if(n.includes(t))return"object";if(i.includes(t))return"number";switch(t){case"boolean":return"boolean";case"json":return"object";case"array":return"array";default:return"string"}}function s(e){return{title:e.title||e.name,interface:e.interface,options:e.options,uiSchema:e.uiSchema||{}}}function a(e,t,r){let n=async()=>{let n="function"==typeof e?e():e;return n?{type:"object",title:t||n.title||n.name,properties:async()=>{let e={};return n.fields.forEach(t=>{(r||t.filterable)&&(e[t.name]=o(t,r))}),e}}:null};return n.title=t,n}},62572(e,t,r){r.d(t,{v:()=>i});var n=r(29007);async function i(e,t){if(null==t||!t.defineProperties&&!t.defineMethods)return e;let r=new n.cB;r.addDelegate(e);let i=r.createProxy(),o=i,l=e,s=t=>{let r=Reflect.get(l,t,l);return"function"==typeof r?r.bind(e):r},a=e=>"defineProperty"===e||"defineMethod"===e||Reflect.has(o,e)||Reflect.has(l,e),c=new Proxy(i,{get:(e,t,n)=>"string"==typeof t?"defineProperty"===t?(e,t)=>r.defineProperty(e,t):"defineMethod"===t?(e,t,n)=>r.defineMethod(e,t,n):Reflect.has(o,t)?Reflect.get(o,t,n):s(t):Reflect.get(o,t,n),set:(e,t,r)=>Reflect.set(l,t,r),has:(e,t)=>a(t),getOwnPropertyDescriptor:(e,t)=>Object.getOwnPropertyDescriptor(o,t)||Object.getOwnPropertyDescriptor(l,t)});if(t)for(let e of Array.isArray(t)?t:[t]){if(!e)continue;let t=e.defineProperties;if(t){let e="function"==typeof t?await t(c):t;if(!e||"object"!=typeof e)throw TypeError("defineProperties must return an object of PropertyOptions");for(let[t,n]of Object.entries(e)){if(!n||"object"!=typeof n)throw TypeError(`defineProperties['${t}'] must be a PropertyOptions object`);r.defineProperty(t,n)}}let n=e.defineMethods;if(n){let e="function"==typeof n?await n(c):n;if(!e||"object"!=typeof e)throw TypeError("defineMethods must return an object of functions");for(let[t,n]of Object.entries(e)){if("function"!=typeof n)throw TypeError(`defineMethods['${t}'] must be a function`);r.defineMethod(t,n)}}}return new Proxy(i,{get:(t,r,n)=>"string"==typeof r?"defineProperty"===r?(t,r)=>e.defineProperty(t,r):"defineMethod"===r?(t,r,n)=>e.defineMethod(t,r,n):Reflect.has(o,r)?Reflect.get(o,r,n):s(r):Reflect.get(o,r,n),set:(e,t,r)=>Reflect.set(l,t,r),has:(e,t)=>a(t),getOwnPropertyDescriptor:(e,t)=>Object.getOwnPropertyDescriptor(o,t)||Object.getOwnPropertyDescriptor(l,t)})}},31108(e,t,r){r.d(t,{VD:()=>l,sy:()=>i,zz:()=>o});var n=r(50467);class i extends Error{constructor(e,t,r){super(r||`Flow '${e}' on model '${t}' exited via ctx.exit().`),(0,n._)(this,"flowKey",void 0),(0,n._)(this,"modelUid",void 0),this.name="FlowExitException",this.flowKey=e,this.modelUid=t}}class o extends Error{constructor(e,t,r){super(r||`Flow '${e}' on model '${t}' exited via ctx.exitAll().`),(0,n._)(this,"flowKey",void 0),(0,n._)(this,"modelUid",void 0),this.name="FlowExitAllException",this.flowKey=e,this.modelUid=t}}class l extends Error{constructor(e="Flow settings save cancelled."){super(e),this.name="FlowCancelSaveException"}}},48555(e,t,r){r.d(t,{pM:()=>eX,Fv:()=>l,ju:()=>C.ju,MI:()=>c,vq:()=>eZ.v,yz:()=>O,M5:()=>er,X4:()=>en,Vv:()=>eo,E2:()=>ea,lW:()=>s,n2:()=>E,FA:()=>h,J3:()=>ec,vP:()=>C.vP,ME:()=>v,H9:()=>k.H,ey:()=>el.ey,KB:()=>$,JE:()=>V,kl:()=>i,u4:()=>n,UX:()=>C.UX,XM:()=>_,AP:()=>R,mP:()=>ef,zz:()=>u.zz,D1:()=>el.D1,gG:()=>p.gG,I2:()=>el.I2,af:()=>P.a,mv:()=>p.mv,QP:()=>d,Xh:()=>el.Xh,$S:()=>C.$S,EI:()=>eQ,_:()=>el._,qI:()=>A,wx:()=>g.w,Z8:()=>I,ln:()=>x,yp:()=>e0.y,y4:()=>et,$n:()=>ep,VD:()=>u.VD,ji:()=>eG,WJ:()=>o,i:()=>e0.i,hz:()=>ei,MZ:()=>a,sy:()=>u.sy,YB:()=>j,xI:()=>C.xI,$X:()=>ee,o7:()=>S,mH:()=>eY,M:()=>p.M,nN:()=>C.nN,GZ:()=>T,Hi:()=>P.H,pc:()=>C.pc,_3:()=>M,DX:()=>Q,XU:()=>C.XU});let n="flow-engine",i={DATA:"dataBlocks",FILTER:"filterBlocks",OTHER:"otherBlocks"},o={data:{key:i.DATA,label:"Data blocks",type:"group",hasCurrentFlowContext:!0},filter:{key:i.FILTER,label:"Filter blocks",type:"group",hasCurrentFlowContext:!1},other:{key:i.OTHER,label:"Other blocks",type:"group",hasCurrentFlowContext:!1}},l={CURRENT_RECORD:"currentRecord",ASSOCIATION_RECORDS:"associationRecords",OTHER_RECORDS:"otherRecords",OTHER_COLLECTIONS:"otherCollections",CURRENT_COLLECTIONS:"currentCollections"};function s(e){var t;return(null==(t=e.flowEngine)?void 0:t.translate)?(t,r)=>e.flowEngine.translate(t,{ns:[n,"client"],nsMode:"fallback",...r}):e=>e}function a(e,t){return t?`{{t(${JSON.stringify(e)}, ${JSON.stringify(t)})}}`:`{{t(${JSON.stringify(e)})}}`}function c(e,t){return a(e,t)}var u=r(31108);function d(e){return e}function h(e,t){if(e===t)return!1;if(e.prototype instanceof t)return!0;let r=Object.getPrototypeOf(e.prototype);for(;r&&r!==Object.prototype;){if(r.constructor===t)return!0;r=Object.getPrototypeOf(r)}return!1}var p=r(35339),f=r(27153),m=r(29007),g=r(88439);async function y(e,t){if(!e)return{};if("function"==typeof e)try{return await e(t)||{}}catch(e){return console.error("Error resolving uiSchema function:",e),{}}return e}async function v(e,t){if(!e)return"dialog";if("function"==typeof e)try{return await e(t)||"dialog"}catch(e){return console.error("Error resolving uiMode function:",e),"dialog"}return e}let w={},b=e=>{if("function"==typeof e)return!0;if(!e||"object"!=typeof e)return!1;let t=new WeakSet,r=e=>{if("function"==typeof e)return!0;if(!e||"object"!=typeof e||t.has(e))return!1;if(t.add(e),Array.isArray(e)){for(let t of e)if(r(t))return!0;return!1}for(let t of Object.keys(e))if(r(e[t]))return!0;return!1};return r(e)};function x(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},{noCache:n=!1}=r,i=e=>/\{\{.*?\}\}/g.test(e);return(t=>{let r,o=!1;if("string"==typeof t&&t.startsWith("{{")&&(o=!0,r=t),t&&"object"==typeof t&&!Array.isArray(t)){try{r=JSON.stringify(t)}catch(e){return console.warn("Failed to stringify:",e),t}let l=!!(o=i(r))&&!n&&b(t);if(w[r]&&!n&&!l)return w[r];if(l)try{return f.S.compile(t,e)}catch(e){return console.warn("Failed to compile with Formily Schema.compile:",e),t}}if(Array.isArray(t)){try{r=JSON.stringify(t)}catch(e){return console.warn("Failed to stringify:",e),t}let l=!!(o=i(r))&&!n&&b(t);if(w[r]&&!n&&!l)return w[r];if(l)try{return f.S.compile(t,e)}catch(e){return console.warn("Failed to compile with Formily Schema.compile:",e),t}}if(o){if(!r)try{return f.S.compile(t,e)}catch(e){return console.warn("Failed to compile with Formily Schema.compile:",e),t}try{if(n)return f.S.compile(t,e);return w[r]=w[r]||f.S.compile(t,e),w[r]}catch(r){console.log("compileUiSchema error",t,r);try{return f.S.compile(t,e)}catch(e){}}}return t})(t)}async function S(e,t,r){let n=new m.W5(e,t.key,"settings");(0,g.w)(n,t.steps,e,t.key),n.defineProperty("currentStep",{value:r});let i=r.uiSchema;if(r.use)try{var o;let t=null==(o=e.getAction)?void 0:o.call(e,r.use);t&&t.uiSchema&&(i=i||t.uiSchema)}catch(e){console.warn(`Failed to get action ${r.use}:`,e)}let l=await y(i||{},n);return 0===Object.keys(l).length?null:l}async function A(e,t,r){if(!r)return!0;let{hideInSettings:n}=r;if("function"==typeof n)try{let r=new m.W5(e,t.key,"settings");return(0,g.w)(r,t.steps||{},e,t.key),!!await n(r)}catch(e){return console.warn(`Error evaluating hideInSettings for event '${r.name||""}' in flow '${t.key}':`,e),!1}return!!n}async function M(e,t,r){if(!r)return!0;let n=r.hideInSettings;if(void 0===n&&r.use){var i;let t=null==(i=e.getAction)?void 0:i.call(e,r.use);n=null==t?void 0:t.hideInSettings}if("function"==typeof n)try{let i=new m.W5(e,t.key,"settings");return(0,g.w)(i,t.steps,e,t.key),i.defineProperty("currentStep",{value:r}),!!await n(i)}catch(e){return console.warn(`Error evaluating hideInSettings for step '${r.key||""}' in flow '${t.key}':`,e),!1}return!!n}async function _(e,t,r){let n;if(!r)return{disabled:!1};let i=r.disabledInSettings,o=r.disabledReasonInSettings;if((void 0===i||void 0===o)&&r.use)try{var l;let t=null==(l=e.getAction)?void 0:l.call(e,r.use);void 0===i&&(i=null==t?void 0:t.disabledInSettings),void 0===o&&(o=null==t?void 0:t.disabledReasonInSettings)}catch(e){console.warn(`Failed to get action ${r.use}:`,e)}let s=null,a=()=>(s||(s=new m.W5(e,t.key,"settings"),(0,g.w)(s,t.steps,e,t.key),s.defineProperty("currentStep",{value:r})),s),c=!1;if("function"==typeof i)try{c=!!await i(a())}catch(e){return console.warn(`Error evaluating disabledInSettings for step '${r.key||""}' in flow '${t.key}':`,e),{disabled:!1}}else c=!!i;if(!c)return{disabled:!1};if("function"==typeof o)try{let e=await o(a());null!=e&&""!==e&&(n=String(e))}catch(e){console.warn(`Error evaluating disabledReasonInSettings for step '${r.key||""}' in flow '${t.key}':`,e)}else null!=o&&""!==o&&(n=String(o));return{disabled:!0,reason:n}}var k=r(35846),P=r(44476),C=r(73398);function j(e){if("string"!=typeof e)return null;let t=e.trim(),r=/^\{\{\s*ctx(?:\.(.+?))?\s*\}\}$/,n=t.match(r);if(!n)return null;let i=n[1];return i?i.split(".").map(e=>e.trim()).filter(e=>e.length>0):[]}function R(e){return 0===e.length?"{{ ctx }}":`{{ ctx.${e.join(".")} }}`}function E(e){if("string"!=typeof e)return!1;let t=e.trim();return/^\{\{\s*ctx(?:\..+?)?\s*\}\}$/.test(t)}let F=new WeakMap;function T(e,t){F.set(e,t??null)}function O(e){return F.get(e)??null}function I(e){F.delete(e)}let $=e=>{if(!e||"/"===e)return[];let t=e.replace(/^\/+/,"").split("/").filter(Boolean);if(t.length<2)return[];let r=[],n=null,i=0;for(;i<t.length;){let e=t[i];if("admin"===e||"view"===e)if(n&&r.push(n),i+1<t.length)n={viewUid:t[i+1]},i+=2;else break;else if(n&&i+1<t.length){let r=t[i+1],o=r;try{o=decodeURIComponent(r)}catch(e){}switch(e){case"tab":n.tabUid=o;break;case"filterbytk":{let e=e=>{let t={};return e.split("&").forEach(e=>{let[r,n=""]=e.split("=");if(r)try{let e=decodeURIComponent(r),i=decodeURIComponent(n);t[e]=i}catch(e){t[r]=n}}),t},t=o;if(o&&(o.startsWith("{")||o.startsWith("[")))try{let e=JSON.parse(o);t=e&&"object"==typeof e&&!Array.isArray(e)?e:o}catch(e){t=o}else o&&/^[^=&]+=[^=&]*(?:&[^=&]+=[^=&]*)*$/.test(o)&&(t=e(o));n.filterByTk=t;break}case"sourceid":n.sourceId=o}i+=2}else i++}return n&&r.push(n),r};var D=r(74353),N=r.n(D);let B=/^\{\{\s*ctx\.date(?:\.(.+?))?\s*\}\}$/,L=new Set(["today","now","yesterday","tomorrow","thisWeek","lastWeek","nextWeek","thisMonth","lastMonth","nextMonth","thisQuarter","lastQuarter","nextQuarter","thisYear","lastYear","nextYear"]),q=new Set(["next","past"]),U=new Set(["day","week","month","year"]);function z(e){if("string"!=typeof e)return null;let t=e.trim().match(B);if(!t)return null;let r=String(t[1]||"");return r?r.split(".").map(e=>e.trim()).filter(Boolean):[]}function V(e){let t=W((e||[]).map(e=>String(e)));if("date"!==t[0])return!1;if(1===t.length)return!0;if("preset"===t[1])return 2===t.length||3===t.length&&L.has(t[2]);if("relative"===t[1])return 2===t.length||(3===t.length?q.has(t[2]):4===t.length?q.has(t[2])&&U.has(t[3]):5===t.length&&q.has(t[2])&&U.has(t[3])&&"number"==typeof G(t[4]));if("exact"===t[1]){if(2===t.length)return!0;if("single"===t[2])return 3===t.length||(4===t.length?"date"===t[3]:5===t.length&&"date"===t[3]&&/^v.+/.test(t[4]));if("range"===t[2]){if(3===t.length)return!0;if(4===t.length)return"date"===t[3];if(5===t.length)return"date"===t[3]&&/^v.+/.test(t[4]);if(6===t.length)return"date"===t[3]&&/^v.+/.test(t[4])&&/^v.+/.test(t[5])}}return!1}function W(e){return"date"===e[0]?e:["date",...e]}function H(e){let t=W(e);return`{{ ctx.${t.join(".")} }}`}function K(e){var t;let r=null==(t=globalThis)?void 0:t.Buffer;if(r&&"function"==typeof r.from)return r.from(e,"utf8").toString("base64");if("function"==typeof btoa)return btoa(encodeURIComponent(e).replace(/%([0-9A-F]{2})/g,(e,t)=>String.fromCharCode(parseInt(t,16))));throw Error("No base64 encoder available")}function J(e){var t;let r=null==(t=globalThis)?void 0:t.Buffer;if(r&&"function"==typeof r.from)return r.from(e,"base64").toString("utf8");if("function"==typeof atob)return decodeURIComponent(Array.from(atob(e)).map(e=>`%${e.charCodeAt(0).toString(16).padStart(2,"0")}`).join(""));throw Error("No base64 decoder available")}function Y(e){if(null!=e){if("string"==typeof e){let t=e.trim();return t.length?t:void 0}if(N().isDayjs(e))return e.toISOString();if(e instanceof Date)return N()(e).toISOString();if("number"==typeof e||"boolean"==typeof e)return String(e)}}function G(e){let t=String(e||"").match(/^n(\d+)$/);if(!t)return;let r=Number(t[1]);if(Number.isFinite(r)&&!(r<=0))return r}function Z(e){let t=e.day(),r=0===t?-6:1-t;return e.add(r,"day").startOf("day")}function X(e){let t=3*Math.floor(e.month()/3);return e.month(t).startOf("month")}function Q(e){return K(String(e||"")).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/g,"")}function ee(e){try{let t=String(e||"").replace(/=+$/g,"");if(!t||!/^[A-Za-z0-9_-]+$/.test(t))return;let r=t.replace(/-/g,"+").replace(/_/g,"/"),n=r.length%4==0?0:4-r.length%4,i=`${r}${"=".repeat(n)}`,o=J(i);if(Q(o)!==t)return;return o}catch(e){return}}function et(e){return"string"==typeof e&&B.test(e.trim())}function er(e){if(!V(e))return!1;let t=W((e||[]).map(e=>String(e)));return"date"===t[0]&&("preset"===t[1]?3===t.length&&L.has(t[2]):"relative"===t[1]?5===t.length&&q.has(t[2])&&U.has(t[3])&&"number"==typeof G(t[4]):"exact"===t[1]&&"single"===t[2]&&"date"===t[3]?5===t.length&&/^v.+/.test(t[4]):"exact"===t[1]&&"range"===t[2]&&"date"===t[3]&&6===t.length&&/^v.+/.test(t[4])&&/^v.+/.test(t[5]))}function en(e){if(!et(e))return;let t=W(z(e)||[]);if("preset"===t[1]&&3===t.length&&L.has(t[2]))return{type:t[2]};if("relative"===t[1]&&5===t.length&&q.has(t[2])&&U.has(t[3])){let e=G(t[4]);return"number"==typeof e?{type:t[2],unit:t[3],number:e}:void 0}if("exact"===t[1]&&"single"===t[2]&&"date"===t[3]&&5===t.length){let e=String(t[4]||"");if(!e.startsWith("v"))return;return ee(e.slice(1))}if("exact"===t[1]&&"range"===t[2]&&"date"===t[3]&&6===t.length){let e=String(t[4]||""),r=String(t[5]||"");if(!e.startsWith("v")||!r.startsWith("v"))return;let n=ee(e.slice(1)),i=ee(r.slice(1));if(void 0===n||void 0===i)return;return[n,i]}}function ei(e){if(et(e))return String(e).trim();if(null==e||""===e)return;if(Array.isArray(e)){let t=Y(e[0]),r=Y(e[1]);return t&&r?H(["date","exact","range","date",`v${Q(t)}`,`v${Q(r)}`]):t?H(["date","exact","single","date",`v${Q(t)}`]):void 0}if("object"==typeof e&&e){let t=e,r="string"==typeof t.type?t.type:"";if("past"===r||"next"===r){let e="string"==typeof t.unit&&U.has(t.unit)?t.unit:"day",n=Number(t.number),i=Number.isFinite(n)&&n>0?Math.floor(n):1;return H(["date","relative",r,e,`n${i}`])}if(L.has(r))return H(["date","preset",r])}let t=Y(e);if(t)return H(["date","exact","single","date",`v${Q(t)}`])}function eo(e){let t=W((e||[]).map(e=>String(e)));if("date"===t[0]){if("preset"===t[1]&&3===t.length){let e=t[2];if("now"===e)return N()().toISOString();let r=N()();return"today"===e?r.format("YYYY-MM-DD"):"yesterday"===e?r.add(-1,"day").format("YYYY-MM-DD"):"tomorrow"===e?r.add(1,"day").format("YYYY-MM-DD"):"thisWeek"===e?Z(r).format("YYYY-MM-DD"):"lastWeek"===e?Z(r.add(-1,"week")).format("YYYY-MM-DD"):"nextWeek"===e?Z(r.add(1,"week")).format("YYYY-MM-DD"):"thisMonth"===e?r.startOf("month").format("YYYY-MM-DD"):"lastMonth"===e?r.add(-1,"month").startOf("month").format("YYYY-MM-DD"):"nextMonth"===e?r.add(1,"month").startOf("month").format("YYYY-MM-DD"):"thisQuarter"===e?X(r).format("YYYY-MM-DD"):"lastQuarter"===e?X(r.add(-3,"month")).format("YYYY-MM-DD"):"nextQuarter"===e?X(r.add(3,"month")).format("YYYY-MM-DD"):"thisYear"===e?r.startOf("year").format("YYYY-MM-DD"):"lastYear"===e?r.add(-1,"year").startOf("year").format("YYYY-MM-DD"):"nextYear"===e?r.add(1,"year").startOf("year").format("YYYY-MM-DD"):void 0}if("relative"===t[1]&&5===t.length&&q.has(t[2])&&U.has(t[3])){let e=G(t[4]);if("number"!=typeof e)return;let r="past"===t[2]?-1:1,n=t[3];return N()().add(r*e,n).format("YYYY-MM-DD")}if("exact"===t[1]&&"single"===t[2]&&"date"===t[3]&&5===t.length){let e=String(t[4]||"");if(!e.startsWith("v"))return;return ee(e.slice(1))}if("exact"===t[1]&&"range"===t[2]&&"date"===t[3]&&6===t.length){let e=String(t[4]||""),r=String(t[5]||"");if(!e.startsWith("v")||!r.startsWith("v"))return;let n=ee(e.slice(1)),i=ee(r.slice(1));if(void 0===n||void 0===i)return;return[n,i]}}}var el=r(51143);let es=new Set(["code","version"]);function ea(e){if(!e||"object"!=typeof e||Array.isArray(e))return!1;let t=Object.keys(e);if(!t.includes("code")||"string"!=typeof e.code||"version"in e&&null!=e.version&&"string"!=typeof e.version)return!1;for(let e of t)if(!es.has(e))return!1;return!0}function ec(e){return{code:String((null==e?void 0:e.code)??""),version:String((null==e?void 0:e.version)??"v1")}}function eu(e){let t="",r="code";for(let n=0;n<e.length;n++){let i=e[n],o=n+1<e.length?e[n+1]:"";if("code"===r){if("/"===i&&"/"===o){t+=" ",n++,r="line";continue}if("/"===i&&"*"===o){t+=" ",n++,r="block";continue}if("'"===i){t+=" ",r="single";continue}if('"'===i){t+=" ",r="double";continue}t+=i;continue}if("line"===r){"\n"===i?(t+="\n",r="code"):t+=" ";continue}if("block"===r){"*"===i&&"/"===o?(t+=" ",n++,r="code"):t+="\n"===i?"\n":" ";continue}if("single"===r){if("\\"===i){t+=" ",n++;continue}"'"===i?(t+=" ",r="code"):t+="\n"===i?"\n":" ";continue}if("\\"===i){t+=" ",n++;continue}'"'===i?(t+=" ",r="code"):t+="\n"===i?"\n":" "}return t}function ed(e){let t="",r="code";for(let n=0;n<e.length;n++){let i=e[n],o=n+1<e.length?e[n+1]:"";if("code"===r){if("/"===i&&"/"===o){t+=" ",n++,r="line";continue}if("/"===i&&"*"===o){t+=" ",n++,r="block";continue}if("'"===i){t+=i,r="single";continue}if('"'===i){t+=i,r="double";continue}t+=i;continue}if("line"===r){"\n"===i?(t+="\n",r="code"):t+=" ";continue}if("block"===r){"*"===i&&"/"===o?(t+=" ",n++,r="code"):t+="\n"===i?"\n":" ";continue}if("single"===r){if(t+=i,"\\"===i){let r=n+1<e.length?e[n+1]:"";r&&(t+=r,n++);continue}"'"===i&&(r="code");continue}if(t+=i,"\\"===i){let r=n+1<e.length?e[n+1]:"";r&&(t+=r,n++);continue}'"'===i&&(r="code")}return t}function eh(e){let t;if(!e)return{subPath:"",wildcard:!1};let r=e;r=r.replace(/\[['"]([a-zA-Z_$][a-zA-Z0-9_$]*)['"]\]/g,".$1");let n=/\[([^\]]+)\]/g;for(;t=n.exec(r);){let e=String(t[1]??"").trim();if(!(/^\d+$/.test(e)||/^['"][a-zA-Z_$][a-zA-Z0-9_$]*['"]$/.test(e)))return{subPath:r.startsWith(".")?r.slice(1):r,wildcard:!0}}return r.startsWith(".")&&(r=r.slice(1)),{subPath:r,wildcard:!1}}function ep(e){let t;if("string"!=typeof e||!e.trim())return{};let r=eu(e),n=ed(e),i=new Map,o=(e,t)=>{if(!e)return;let r=i.get(e)||new Set;r.add(t||""),i.set(e,r)},l=/ctx\.([a-zA-Z_$][a-zA-Z0-9_$]*(?:(?:\.[a-zA-Z_$][a-zA-Z0-9_$]*)|(?:\[[^\]]+\]))*)(?!\s*\()/g;for(;t=l.exec(r);){let e=t[1]||"",r=e.match(/^([a-zA-Z_$][a-zA-Z0-9_$]*)/);if(!r)continue;let n=r[1],{subPath:i,wildcard:l}=eh(e.slice(n.length));o(n,l?"":i)}let s=/ctx\s*\[\s*(['"])([a-zA-Z_$][a-zA-Z0-9_$]*)\1\s*\]((?:(?:\.[a-zA-Z_$][a-zA-Z0-9_$]*)|(?:\[[^\]]+\]))*)(?!\s*\()/g;for(;t=s.exec(n);){let e=t[2]||"",{subPath:r,wildcard:n}=eh(t[3]||"");o(e,n?"":r)}let a={};for(let[e,t]of i.entries())a[e]=Array.from(t);return a}async function ef(e,t){let r={};if(!t||"object"!=typeof t||Array.isArray(t))return r;for(let[n,i]of Object.entries(t))if(void 0!==i){if(ea(i)){let{code:t,version:o}=ec(i);if(!t.trim())continue;let l=await (0,el._)(e,t,{version:o});if(!(null==l?void 0:l.success))throw Error(`RunJS execution failed for "${n}"`);void 0!==l.value&&(r[n]=l.value);continue}r[n]=i}return r}var em=r(49773);let eg="ctx.resolveJsonTemplate",ey=/\{\{\s*ctx(?:\.|\[|\?\.)/,ev=/\bctx(?:\?\.|\.)libs\b/,ew="__runjs_templateValueToString",eb=/\b__runjs_ctx_tpl_\d+\b/,ex=/\b__runjs_templateValueToString(?:_\d+)?\b/,eS=/\b__runjs_ctx_tpl_\d+\b|\b__runjs_templateValueToString(?:_\d+)?\b/,eA=/\b__runjs_ensure_libs\b/,eM=256,e_={withTemplates:new Map,withoutTemplates:new Map};function ek(e,t){let r=e.get(t);if(void 0!==r)return e.delete(t),e.set(t,r),r}function eP(e,t,r,n){if(e.has(t)&&e.delete(t),e.set(t,r),e.size<=n)return;let i=e.keys().next().value;void 0!==i&&e.delete(i)}function eC(e){return!!e&&/[A-Za-z0-9_$]/.test(e)}function ej(e){if(!e.startsWith("{{")||!e.endsWith("}}"))return!1;let t=e.slice(2,-2).trim();return t.startsWith("ctx.")||t.startsWith("ctx[")||t.startsWith("ctx?.")}function eR(e,t){if(!e.startsWith(eg,t))return!1;let r=t>0?e[t-1]:"",n=e[t+eg.length]||"";return!(eC(r)||eC(n))}function eE(e,t){let r=t+2;for(;r<e.length;){let t=e[r];if(r+=1,"\n"===t)break}return r}function eF(e,t){let r=t+2;for(;r<e.length;){let t=e[r],n=e[r+1];if("*"===t&&"/"===n)return r+2;r+=1}return r}function eT(e,t,r){let n=t+1;for(;n<e.length;){let t=e[n];if("\\"===t){n+=2;continue}if(n+=1,t===r)break}return n}function eO(e,t){let r=t+1;for(;r<e.length;){let t=e[r];if("\\"===t){r+=2;continue}if("`"===t)return r+1;if("$"===t&&"{"===e[r+1]){r+=2;let t=1;for(;r<e.length&&t>0;){let n=e[r],i=e[r+1];if("'"===n||'"'===n){r=eT(e,r,n);continue}if("`"===n){r=eO(e,r);continue}if("/"===n&&"/"===i){r=eE(e,r);continue}if("/"===n&&"*"===i){r=eF(e,r);continue}"{"===n?t+=1:"}"===n&&(t-=1),r+=1}continue}r+=1}return r}function eI(e){if(!ey.test(e))return[];let t=[],r=0;for(;r<e.length;){let n=e.indexOf("{{",r);if(-1===n)break;let i=e.indexOf("}}",n+2);if(-1===i)break;let o=e.slice(n,i+2);ej(o)&&t.push(o),r=i+2}return t}function e$(e,t){let r=t;for(;r<e.length&&/\s/.test(e[r]);)r+=1;return r}function eD(e,t){let r=t;for(;r>=0&&/\s/.test(e[r]);)r-=1;return r}function eN(e,t){let r=t;for(;;){r=e$(e,r);let t=e[r],n=e[r+1];if("/"===t&&"/"===n){r=eE(e,r);continue}if("/"===t&&"*"===n){r=eF(e,r);continue}return r}}function eB(e){return!!e&&/[A-Za-z_$]/.test(e)}function eL(e,t){if(!eB(e[t]))return null;let r=t+1;for(;r<e.length&&eC(e[r]);)r+=1;return{name:e.slice(t,r),end:r}}function eq(e,t,r){if(e[t]!==r)return null;let n=t+1,i="";for(;n<e.length;){let t=e[n];if("\\"===t){let t=e[n+1];if(void 0===t)break;i+=t,n+=2;continue}if(t===r)return{value:i,end:n+1};i+=t,n+=1}return null}function eU(e,t){if(!e.startsWith("ctx",t))return null;let r=t>0?e[t-1]:"",n=e[t+3]||"";if(eC(r)||eC(n))return null;let i=e.slice(t+3);return i.startsWith(".libs")?t+3+5:i.startsWith("?.libs")?t+3+6:null}function ez(e,t){let r=eU(e,t);if(null===r)return null;let n=eN(e,r),i=e[n],o=e[n+1],l=e[n+2];if("?"===i&&"."===o&&"["===l){n=eN(e,n+3);let t=e[n];if("'"===t||'"'===t){let r=eq(e,n,t);if(!r)return{end:n+1};let i=eN(e,r.end);return"]"===e[i]&&(i+=1),{end:i,key:r.value}}return{end:n}}if("["===i){n=eN(e,n+1);let t=e[n];if("'"===t||'"'===t){let r=eq(e,n,t);if(!r)return{end:n+1};let i=eN(e,r.end);return"]"===e[i]&&(i+=1),{end:i,key:r.value}}return{end:n}}if("?"===i&&"."===o){n=eN(e,n+2);let t=eL(e,n);return t?{end:t.end,key:t.name}:{end:n}}if("."===i){n=eN(e,n+1);let t=eL(e,n);return t?{end:t.end,key:t.name}:{end:n}}return{end:r}}function eV(e){let t=[],r=String(e??""),n=0,i=0,o=0,l=0,s=e=>{let r=String(e??"").trim();if(!r||r.startsWith("..."))return;let n=r,i=0,o=0,l=0,s=0;for(;i<r.length;){let e=r[i],t=r[i+1];if("/"===e&&"/"===t)break;if("/"===e&&"*"===t){let e=r.indexOf("*/",i+2);i=-1===e?r.length:e+2;continue}if("'"===e||'"'===e){let t=i+1;for(;t<r.length;){let n=r[t];if("\\"===n){t+=2;continue}if(t+=1,n===e)break}i=t;continue}if("`"===e){let e=i+1;for(;e<r.length;){let t=r[e];if("\\"===t){e+=2;continue}if(e+=1,"`"===t)break}i=e;continue}if("{"===e?o+=1:"}"===e?o-=1:"["===e?l+=1:"]"===e?l-=1:"("===e?s+=1:")"===e&&(s-=1),0===o&&0===l&&0===s&&(":"===e||"="===e)){n=r.slice(0,i).trim();break}i+=1}if(!n)return;if(n.startsWith("'")||n.startsWith('"')){let e=n[0],r=eq(n,0,e);r&&t.push(r.value);return}let a=n.match(/^[A-Za-z_$][A-Za-z0-9_$]*/);a&&t.push(a[0])},a=0;for(;a<r.length;){let e=r[a],t=r[a+1];if("/"===e&&"/"===t)break;if("/"===e&&"*"===t){let e=r.indexOf("*/",a+2);a=-1===e?r.length:e+2;continue}if("'"===e||'"'===e){a=eT(r,a,e);continue}if("`"===e){a=eO(r,a);continue}"{"===e?i+=1:"}"===e?i-=1:"["===e?o+=1:"]"===e?o-=1:"("===e?l+=1:")"===e&&(l-=1),0===i&&0===o&&0===l&&","===e&&(s(r.slice(n,a)),n=a+1),a+=1}return s(r.slice(n)),t}function eW(e){if(!ev.test(e))return[];let t=new Set,r=r=>{let i=r,o=1;for(;i<e.length&&o>0;){let r=e[i],l=e[i+1];if("/"===r&&"/"===l){i=eE(e,i);continue}if("/"===r&&"*"===l){i=eF(e,i);continue}if("'"===r||'"'===r){i=eT(e,i,r);continue}if("`"===r){i=n(i+1);continue}let s=ez(e,i);if(s){s.key&&t.add(s.key),i=s.end;continue}"{"===r?o+=1:"}"===r&&(o-=1),i+=1}return i},n=t=>{let n=t;for(;n<e.length;){let t=e[n],i=e[n+1];if("\\"===t){n+=2;continue}if("`"===t)return n+1;if("$"===t&&"{"===i){n=r(n+2);continue}n+=1}return n},i=0;for(;i<e.length;){let r=e[i],o=e[i+1];if("/"===r&&"/"===o){i=eE(e,i);continue}if("/"===r&&"*"===o){i=eF(e,i);continue}if("'"===r||'"'===r){i=eT(e,i,r);continue}if("`"===r){i=n(i+1);continue}let l=ez(e,i);if(l){l.key&&t.add(l.key),i=l.end;continue}if("="===r&&"="!==o&&">"!==o&&"<"!==o){let r=eN(e,i+1);if(null!==eU(e,r)){let r=eD(e,i-1);if("}"===e[r]){let n=0,i=r;for(;i>=0;){let t=e[i];if("}"===t)n+=1;else if("{"===t&&0==(n-=1))break;i-=1}if(i>=0&&"{"===e[i])for(let n of eV(e.slice(i+1,r)))t.add(n)}}}i+=1}return Array.from(t)}function eH(e){if(eA.test(e)||!ev.test(e))return e;let t=eW(e);return t.length?`/* __runjs_ensure_libs */
|
|
266
|
+
${l.join("\n")}`:""}function R(e,t){let r=Error(t);r.cause=e;try{let t="string"==typeof(null==e?void 0:e.name)?e.name:"";t&&(r.name=t)}catch(e){}try{let n="string"==typeof(null==e?void 0:e.stack)?e.stack:"";if(n){let e=String(n).split("\n");e.length&&(e[0]=`${r.name}: ${t}`,r.stack=e.join("\n"))}}catch(e){}return r}function P(e){if(!e)return null;let t=c.get(e);if(t)return t;if("function"!=typeof e.createElement)return null;let r=e.Component;if("function"!=typeof r)return null;class i extends r{static getDerivedStateFromError(e){return{error:e}}componentDidCatch(e){try{var t,r,n;let i=null==(t=this.props)?void 0:t.enhanceReactError,o="function"==typeof i?i(e):e,l=String((null==o?void 0:o.message)||"");if(l&&/\[RunJS Hint\]/.test(l)){console.error(l);let e=null==(n=this.props)||null==(r=n.ctx)?void 0:r.logger;e&&"function"==typeof e.error&&e.error(l)}}catch(e){}}componentDidUpdate(e){var t,r;(null==e?void 0:e.resetKey)!==(null==(t=this.props)?void 0:t.resetKey)&&(null==(r=this.state)?void 0:r.error)&&this.setState({error:void 0})}render(){var t,r;let n=null==(t=this.state)?void 0:t.error;if(!n)return this.props.children;let i="";try{let e=null==(r=this.props)?void 0:r.enhanceReactError,t="function"==typeof e?e(n):n;i=String((null==t?void 0:t.message)||t||(null==n?void 0:n.message)||n||"")}catch(e){i=String((null==n?void 0:n.message)||n||"")}let o={boxSizing:"border-box",padding:12,borderRadius:6,border:"1px solid #ffccc7",background:"#fff2f0",color:"#a8071a",fontSize:12,lineHeight:1.5,maxWidth:"100%",overflow:"auto"},l={margin:0,whiteSpace:"pre-wrap",wordBreak:"break-word",fontFamily:'ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace'},s={fontWeight:600,marginBottom:8};return e.createElement("div",{style:o},e.createElement("div",{style:s},"RunJS render error"),e.createElement("pre",{style:l},i))}constructor(...e){super(...e),(0,n._)(this,"state",{})}}return c.set(e,i),i}function C(e){let{ctx:t,vnode:r,enhanceReactError:n,resetKey:i}=e,o=null==t?void 0:t.React,l=P(o);return l?o.createElement(l,{ctx:t,enhanceReactError:n,resetKey:i},r):r}function F(e){var t;let{ctx:r,entry:n,containerEl:i,rootMap:l,unmountContainerRoot:s,enhanceReactError:a,internalReact:u,internalAntd:c}=e;if(!(!(null==(t=r.ReactDOM)?void 0:t.__nbRunjsInternalShim)&&r.React&&r.React!==u&&r.antd&&r.antd!==c&&void 0!==r.antd.ConfigProvider)){if(n.disposeTheme){try{n.disposeTheme()}catch(e){}n.disposeTheme=void 0}return!1}let d=()=>{var e,t,i,o,l,s,a;null==r||null==(t=r.engine)||null==(e=t.context)||e.themeToken;let u=null==r||null==(o=r.engine)||null==(i=o.context)?void 0:i.antdConfig,c=(null==r||null==(a=r.engine)||null==(s=a.context)||null==(l=s.locales)?void 0:l.antd)||(null==u?void 0:u.locale),d=r.antd.ConfigProvider,h=r.antd.App,p={popupMatchSelectWidth:!1,locale:c||{}};u&&"object"==typeof u&&(void 0!==u.direction&&(p.direction=u.direction),"string"==typeof u.prefixCls&&(p.prefixCls=u.prefixCls),"string"==typeof u.iconPrefixCls&&(p.iconPrefixCls=u.iconPrefixCls),"function"==typeof u.getPopupContainer&&(p.getPopupContainer=u.getPopupContainer),u.theme&&"object"==typeof u.theme&&(p.theme=u.theme));let f=n.lastVnode,g=h?r.React.createElement(d,p,r.React.createElement(h,null,f)):r.React.createElement(d,p,f);n.root.render(g)};return n.disposeTheme?d():n.disposeTheme=(0,o.autorun)(()=>{try{if(i&&1===i.nodeType&&"boolean"==typeof i.isConnected&&!i.isConnected&&n.wasConnected)return void queueMicrotask(()=>{l.get(i)===n&&s()});i&&1===i.nodeType&&"boolean"==typeof i.isConnected&&i.isConnected&&(n.wasConnected=!0),d()}catch(e){throw a(e)}}),!0}function T(e){let{ctx:t,entry:r,vnode:n,containerEl:i,rootMap:o,unmountContainerRoot:l,internalReact:s,internalAntd:a}=e,u=e=>{let r=String((null==e?void 0:e.message)||e||"");if(!r||/\[RunJS Hint\]/.test(r))return e;let n=/invalid hook call/i.test(r),i=M(e);if(!n&&!i)return e;let o=k({ctx:t,internalReact:s,internalAntd:a})||j({ctx:t,internalReact:s,internalAntd:a,err:e});return o?R(e,`${r}${o}`):e};try{return r.__nbRunjsRenderSeq=(r.__nbRunjsRenderSeq||0)+1,r.lastVnode=C({ctx:t,vnode:n,enhanceReactError:u,resetKey:r.__nbRunjsRenderSeq}),F({ctx:t,entry:r,containerEl:i,rootMap:o,unmountContainerRoot:l,enhanceReactError:u,internalReact:s,internalAntd:a})||r.root.render(r.lastVnode),r.root}catch(e){throw u(e)}}},44476(e,t,r){r.d(t,{H:()=>u,a:()=>c});var n=r(2543),i=r.n(n),o=r(35846);function l(e){if(!e)return;let t=e.match(/^([^.[]+)/);return null==t?void 0:t[1]}function s(e,t){var r;if(!e||!t)return;let n=e.getField(t);return n||((null==(r=e.getFields)?void 0:r.call(e))||[]).find(e=>e.name===t)}function a(e,t){if(null!=e){if(Array.isArray(t)){if("object"!=typeof e||!e)return;let r={};for(let n of t){let t=e[n];if(null==t)return;r[n]=t}return r}if("string"==typeof e||"number"==typeof e)return e;if("object"==typeof e)return e[t]}}function u(e,t){return r=>{if(!r||!r.includes("."))return!1;let n=l(r);if(!n)return!1;let o=s(e(),n);if(!(null==o?void 0:o.isAssociationField()))return!1;if("function"==typeof t){let e=t();if(e&&"object"==typeof e&&void 0!==i().get(e,r))return!1}return!0}}function c(e,t,r){let n=(0,o.H)(e,t,!0),i=async()=>{let t=await n();return t?{...t,buildVariablesParams:t=>{var n;let i=e(),o=r(t);if(!i||!o||"object"!=typeof o)return{};let l={};for(let e of(null==(n=i.getFields)?void 0:n.call(i))||[]){let t=e.name;if(!t||!e.isAssociationField())continue;let r=e.target,n=e.targetCollection;if(!r||!n)continue;let i=n.filterTargetKey,s=o[t];if(null!=s)if(Array.isArray(s)){let e=s.map(e=>a(e,i)).filter(e=>null!=e);e.length&&(l[t]={collection:r,dataSourceKey:n.dataSourceKey,filterByTk:e})}else{let e=a(s,i);null!=e&&(l[t]={collection:r,dataSourceKey:n.dataSourceKey,filterByTk:e})}}return l}}:null};return i.title=t,i}},35846(e,t,r){r.d(t,{H:()=>a});let n=["belongsTo","hasOne","hasMany","belongsToMany","belongsToArray"],i=["integer","float","double","decimal"];function o(e,t){let r=s(e);if(e.isAssociationField()){let n=e.targetCollection;return n?{type:"object",...r,properties:async()=>{let e={};return n.fields.forEach(r=>{(t||r.filterable)&&(e[r.name]=o(r,t))}),e}}:{type:"object",...r}}return{type:l(e),...r}}function l(e){let t=e.type;if(n.includes(t))return"object";if(i.includes(t))return"number";switch(t){case"boolean":return"boolean";case"json":return"object";case"array":return"array";default:return"string"}}function s(e){return{title:e.title||e.name,interface:e.interface,options:e.options,uiSchema:e.uiSchema||{}}}function a(e,t,r){let n=async()=>{let n="function"==typeof e?e():e;return n?{type:"object",title:t||n.title||n.name,properties:async()=>{let e={};return n.fields.forEach(t=>{(r||t.filterable)&&(e[t.name]=o(t,r))}),e}}:null};return n.title=t,n}},62572(e,t,r){r.d(t,{v:()=>i});var n=r(29007);async function i(e,t){if(null==t||!t.defineProperties&&!t.defineMethods)return e;let r=new n.cB;r.addDelegate(e);let i=r.createProxy(),o=i,l=e,s=t=>{let r=Reflect.get(l,t,l);return"function"==typeof r?r.bind(e):r},a=e=>"defineProperty"===e||"defineMethod"===e||Reflect.has(o,e)||Reflect.has(l,e),u=new Proxy(i,{get:(e,t,n)=>"string"==typeof t?"defineProperty"===t?(e,t)=>r.defineProperty(e,t):"defineMethod"===t?(e,t,n)=>r.defineMethod(e,t,n):Reflect.has(o,t)?Reflect.get(o,t,n):s(t):Reflect.get(o,t,n),set:(e,t,r)=>Reflect.set(l,t,r),has:(e,t)=>a(t),getOwnPropertyDescriptor:(e,t)=>Object.getOwnPropertyDescriptor(o,t)||Object.getOwnPropertyDescriptor(l,t)});if(t)for(let e of Array.isArray(t)?t:[t]){if(!e)continue;let t=e.defineProperties;if(t){let e="function"==typeof t?await t(u):t;if(!e||"object"!=typeof e)throw TypeError("defineProperties must return an object of PropertyOptions");for(let[t,n]of Object.entries(e)){if(!n||"object"!=typeof n)throw TypeError(`defineProperties['${t}'] must be a PropertyOptions object`);r.defineProperty(t,n)}}let n=e.defineMethods;if(n){let e="function"==typeof n?await n(u):n;if(!e||"object"!=typeof e)throw TypeError("defineMethods must return an object of functions");for(let[t,n]of Object.entries(e)){if("function"!=typeof n)throw TypeError(`defineMethods['${t}'] must be a function`);r.defineMethod(t,n)}}}return new Proxy(i,{get:(t,r,n)=>"string"==typeof r?"defineProperty"===r?(t,r)=>e.defineProperty(t,r):"defineMethod"===r?(t,r,n)=>e.defineMethod(t,r,n):Reflect.has(o,r)?Reflect.get(o,r,n):s(r):Reflect.get(o,r,n),set:(e,t,r)=>Reflect.set(l,t,r),has:(e,t)=>a(t),getOwnPropertyDescriptor:(e,t)=>Object.getOwnPropertyDescriptor(o,t)||Object.getOwnPropertyDescriptor(l,t)})}},31108(e,t,r){r.d(t,{VD:()=>l,sy:()=>i,zz:()=>o});var n=r(50467);class i extends Error{constructor(e,t,r){super(r||`Flow '${e}' on model '${t}' exited via ctx.exit().`),(0,n._)(this,"flowKey",void 0),(0,n._)(this,"modelUid",void 0),this.name="FlowExitException",this.flowKey=e,this.modelUid=t}}class o extends Error{constructor(e,t,r){super(r||`Flow '${e}' on model '${t}' exited via ctx.exitAll().`),(0,n._)(this,"flowKey",void 0),(0,n._)(this,"modelUid",void 0),this.name="FlowExitAllException",this.flowKey=e,this.modelUid=t}}class l extends Error{constructor(e="Flow settings save cancelled."){super(e),this.name="FlowCancelSaveException"}}},48555(e,t,r){r.d(t,{pM:()=>eX,Fv:()=>l,ju:()=>j.ju,MI:()=>u,vq:()=>eZ.v,yz:()=>I,M5:()=>er,X4:()=>en,Vv:()=>eo,E2:()=>ea,lW:()=>s,n2:()=>C,FA:()=>h,J3:()=>eu,vP:()=>j.vP,ME:()=>v,H9:()=>M.H,ey:()=>el.ey,KB:()=>O,JE:()=>V,kl:()=>i,u4:()=>n,UX:()=>j.UX,XM:()=>k,AP:()=>P,mP:()=>ef,zz:()=>c.zz,D1:()=>el.D1,gG:()=>p.gG,I2:()=>el.I2,af:()=>E.a,mv:()=>p.mv,QP:()=>d,Xh:()=>el.Xh,$S:()=>j.$S,EI:()=>eQ,_:()=>el._,qI:()=>_,wx:()=>m.w,Z8:()=>$,ln:()=>x,yp:()=>e0.y,y4:()=>et,$n:()=>ep,VD:()=>c.VD,ji:()=>eG,WJ:()=>o,i:()=>e0.i,hz:()=>ei,MZ:()=>a,sy:()=>c.sy,YB:()=>R,xI:()=>j.xI,$X:()=>ee,o7:()=>S,mH:()=>eY,M:()=>p.M,nN:()=>j.nN,GZ:()=>T,Hi:()=>E.H,pc:()=>j.pc,_3:()=>A,DX:()=>Q,XU:()=>j.XU});let n="flow-engine",i={DATA:"dataBlocks",FILTER:"filterBlocks",OTHER:"otherBlocks"},o={data:{key:i.DATA,label:"Data blocks",type:"group",hasCurrentFlowContext:!0},filter:{key:i.FILTER,label:"Filter blocks",type:"group",hasCurrentFlowContext:!1},other:{key:i.OTHER,label:"Other blocks",type:"group",hasCurrentFlowContext:!1}},l={CURRENT_RECORD:"currentRecord",ASSOCIATION_RECORDS:"associationRecords",OTHER_RECORDS:"otherRecords",OTHER_COLLECTIONS:"otherCollections",CURRENT_COLLECTIONS:"currentCollections"};function s(e){var t;return(null==(t=e.flowEngine)?void 0:t.translate)?(t,r)=>e.flowEngine.translate(t,{ns:[n,"client"],nsMode:"fallback",...r}):e=>e}function a(e,t){return t?`{{t(${JSON.stringify(e)}, ${JSON.stringify(t)})}}`:`{{t(${JSON.stringify(e)})}}`}function u(e,t){return a(e,t)}var c=r(31108);function d(e){return e}function h(e,t){if(e===t)return!1;if(e.prototype instanceof t)return!0;let r=Object.getPrototypeOf(e.prototype);for(;r&&r!==Object.prototype;){if(r.constructor===t)return!0;r=Object.getPrototypeOf(r)}return!1}var p=r(35339),f=r(27153),g=r(29007),m=r(88439);async function y(e,t){if(!e)return{};if("function"==typeof e)try{return await e(t)||{}}catch(e){return console.error("Error resolving uiSchema function:",e),{}}return e}async function v(e,t){if(!e)return"dialog";if("function"==typeof e)try{return await e(t)||"dialog"}catch(e){return console.error("Error resolving uiMode function:",e),"dialog"}return e}let w={},b=e=>{if("function"==typeof e)return!0;if(!e||"object"!=typeof e)return!1;let t=new WeakSet,r=e=>{if("function"==typeof e)return!0;if(!e||"object"!=typeof e||t.has(e))return!1;if(t.add(e),Array.isArray(e)){for(let t of e)if(r(t))return!0;return!1}for(let t of Object.keys(e))if(r(e[t]))return!0;return!1};return r(e)};function x(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},{noCache:n=!1}=r,i=e=>/\{\{.*?\}\}/g.test(e);return(t=>{let r,o=!1;if("string"==typeof t&&t.startsWith("{{")&&(o=!0,r=t),t&&"object"==typeof t&&!Array.isArray(t)){try{r=JSON.stringify(t)}catch(e){return console.warn("Failed to stringify:",e),t}let l=!!(o=i(r))&&!n&&b(t);if(w[r]&&!n&&!l)return w[r];if(l)try{return f.S.compile(t,e)}catch(e){return console.warn("Failed to compile with Formily Schema.compile:",e),t}}if(Array.isArray(t)){try{r=JSON.stringify(t)}catch(e){return console.warn("Failed to stringify:",e),t}let l=!!(o=i(r))&&!n&&b(t);if(w[r]&&!n&&!l)return w[r];if(l)try{return f.S.compile(t,e)}catch(e){return console.warn("Failed to compile with Formily Schema.compile:",e),t}}if(o){if(!r)try{return f.S.compile(t,e)}catch(e){return console.warn("Failed to compile with Formily Schema.compile:",e),t}try{if(n)return f.S.compile(t,e);return w[r]=w[r]||f.S.compile(t,e),w[r]}catch(r){console.log("compileUiSchema error",t,r);try{return f.S.compile(t,e)}catch(e){}}}return t})(t)}async function S(e,t,r){let n=new g.W5(e,t.key,"settings");(0,m.w)(n,t.steps,e,t.key),n.defineProperty("currentStep",{value:r});let i=r.uiSchema;if(r.use)try{var o;let t=null==(o=e.getAction)?void 0:o.call(e,r.use);t&&t.uiSchema&&(i=i||t.uiSchema)}catch(e){console.warn(`Failed to get action ${r.use}:`,e)}let l=await y(i||{},n);return 0===Object.keys(l).length?null:l}async function _(e,t,r){if(!r)return!0;let{hideInSettings:n}=r;if("function"==typeof n)try{let r=new g.W5(e,t.key,"settings");return(0,m.w)(r,t.steps||{},e,t.key),!!await n(r)}catch(e){return console.warn(`Error evaluating hideInSettings for event '${r.name||""}' in flow '${t.key}':`,e),!1}return!!n}async function A(e,t,r){if(!r)return!0;let n=r.hideInSettings;if(void 0===n&&r.use){var i;let t=null==(i=e.getAction)?void 0:i.call(e,r.use);n=null==t?void 0:t.hideInSettings}if("function"==typeof n)try{let i=new g.W5(e,t.key,"settings");return(0,m.w)(i,t.steps,e,t.key),i.defineProperty("currentStep",{value:r}),!!await n(i)}catch(e){return console.warn(`Error evaluating hideInSettings for step '${r.key||""}' in flow '${t.key}':`,e),!1}return!!n}async function k(e,t,r){let n;if(!r)return{disabled:!1};let i=r.disabledInSettings,o=r.disabledReasonInSettings;if((void 0===i||void 0===o)&&r.use)try{var l;let t=null==(l=e.getAction)?void 0:l.call(e,r.use);void 0===i&&(i=null==t?void 0:t.disabledInSettings),void 0===o&&(o=null==t?void 0:t.disabledReasonInSettings)}catch(e){console.warn(`Failed to get action ${r.use}:`,e)}let s=null,a=()=>(s||(s=new g.W5(e,t.key,"settings"),(0,m.w)(s,t.steps,e,t.key),s.defineProperty("currentStep",{value:r})),s),u=!1;if("function"==typeof i)try{u=!!await i(a())}catch(e){return console.warn(`Error evaluating disabledInSettings for step '${r.key||""}' in flow '${t.key}':`,e),{disabled:!1}}else u=!!i;if(!u)return{disabled:!1};if("function"==typeof o)try{let e=await o(a());null!=e&&""!==e&&(n=String(e))}catch(e){console.warn(`Error evaluating disabledReasonInSettings for step '${r.key||""}' in flow '${t.key}':`,e)}else null!=o&&""!==o&&(n=String(o));return{disabled:!0,reason:n}}var M=r(35846),E=r(44476),j=r(73398);function R(e){if("string"!=typeof e)return null;let t=e.trim(),r=/^\{\{\s*ctx(?:\.(.+?))?\s*\}\}$/,n=t.match(r);if(!n)return null;let i=n[1];return i?i.split(".").map(e=>e.trim()).filter(e=>e.length>0):[]}function P(e){return 0===e.length?"{{ ctx }}":`{{ ctx.${e.join(".")} }}`}function C(e){if("string"!=typeof e)return!1;let t=e.trim();return/^\{\{\s*ctx(?:\..+?)?\s*\}\}$/.test(t)}let F=new WeakMap;function T(e,t){F.set(e,t??null)}function I(e){return F.get(e)??null}function $(e){F.delete(e)}let O=e=>{if(!e||"/"===e)return[];let t=e.replace(/^\/+/,"").split("/").filter(Boolean);if(t.length<2)return[];let r=[],n=null,i=0;for(;i<t.length;){let e=t[i];if("admin"===e||"view"===e)if(n&&r.push(n),i+1<t.length)n={viewUid:t[i+1]},i+=2;else break;else if(n&&i+1<t.length){let r=t[i+1],o=r;try{o=decodeURIComponent(r)}catch(e){}switch(e){case"tab":n.tabUid=o;break;case"filterbytk":{let e=e=>{let t={};return e.split("&").forEach(e=>{let[r,n=""]=e.split("=");if(r)try{let e=decodeURIComponent(r),i=decodeURIComponent(n);t[e]=i}catch(e){t[r]=n}}),t},t=o;if(o&&(o.startsWith("{")||o.startsWith("[")))try{let e=JSON.parse(o);t=e&&"object"==typeof e&&!Array.isArray(e)?e:o}catch(e){t=o}else o&&/^[^=&]+=[^=&]*(?:&[^=&]+=[^=&]*)*$/.test(o)&&(t=e(o));n.filterByTk=t;break}case"sourceid":n.sourceId=o}i+=2}else i++}return n&&r.push(n),r};var D=r(74353),N=r.n(D);let B=/^\{\{\s*ctx\.date(?:\.(.+?))?\s*\}\}$/,L=new Set(["today","now","yesterday","tomorrow","thisWeek","lastWeek","nextWeek","thisMonth","lastMonth","nextMonth","thisQuarter","lastQuarter","nextQuarter","thisYear","lastYear","nextYear"]),z=new Set(["next","past"]),q=new Set(["day","week","month","year"]);function W(e){if("string"!=typeof e)return null;let t=e.trim().match(B);if(!t)return null;let r=String(t[1]||"");return r?r.split(".").map(e=>e.trim()).filter(Boolean):[]}function V(e){let t=U((e||[]).map(e=>String(e)));if("date"!==t[0])return!1;if(1===t.length)return!0;if("preset"===t[1])return 2===t.length||3===t.length&&L.has(t[2]);if("relative"===t[1])return 2===t.length||(3===t.length?z.has(t[2]):4===t.length?z.has(t[2])&&q.has(t[3]):5===t.length&&z.has(t[2])&&q.has(t[3])&&"number"==typeof G(t[4]));if("exact"===t[1]){if(2===t.length)return!0;if("single"===t[2])return 3===t.length||(4===t.length?"date"===t[3]:5===t.length&&"date"===t[3]&&/^v.+/.test(t[4]));if("range"===t[2]){if(3===t.length)return!0;if(4===t.length)return"date"===t[3];if(5===t.length)return"date"===t[3]&&/^v.+/.test(t[4]);if(6===t.length)return"date"===t[3]&&/^v.+/.test(t[4])&&/^v.+/.test(t[5])}}return!1}function U(e){return"date"===e[0]?e:["date",...e]}function K(e){let t=U(e);return`{{ ctx.${t.join(".")} }}`}function H(e){var t;let r=null==(t=globalThis)?void 0:t.Buffer;if(r&&"function"==typeof r.from)return r.from(e,"utf8").toString("base64");if("function"==typeof btoa)return btoa(encodeURIComponent(e).replace(/%([0-9A-F]{2})/g,(e,t)=>String.fromCharCode(parseInt(t,16))));throw Error("No base64 encoder available")}function J(e){var t;let r=null==(t=globalThis)?void 0:t.Buffer;if(r&&"function"==typeof r.from)return r.from(e,"base64").toString("utf8");if("function"==typeof atob)return decodeURIComponent(Array.from(atob(e)).map(e=>`%${e.charCodeAt(0).toString(16).padStart(2,"0")}`).join(""));throw Error("No base64 decoder available")}function Y(e){if(null!=e){if("string"==typeof e){let t=e.trim();return t.length?t:void 0}if(N().isDayjs(e))return e.toISOString();if(e instanceof Date)return N()(e).toISOString();if("number"==typeof e||"boolean"==typeof e)return String(e)}}function G(e){let t=String(e||"").match(/^n(\d+)$/);if(!t)return;let r=Number(t[1]);if(Number.isFinite(r)&&!(r<=0))return r}function Z(e){let t=e.day(),r=0===t?-6:1-t;return e.add(r,"day").startOf("day")}function X(e){let t=3*Math.floor(e.month()/3);return e.month(t).startOf("month")}function Q(e){return H(String(e||"")).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/g,"")}function ee(e){try{let t=String(e||"").replace(/=+$/g,"");if(!t||!/^[A-Za-z0-9_-]+$/.test(t))return;let r=t.replace(/-/g,"+").replace(/_/g,"/"),n=r.length%4==0?0:4-r.length%4,i=`${r}${"=".repeat(n)}`,o=J(i);if(Q(o)!==t)return;return o}catch(e){return}}function et(e){return"string"==typeof e&&B.test(e.trim())}function er(e){if(!V(e))return!1;let t=U((e||[]).map(e=>String(e)));return"date"===t[0]&&("preset"===t[1]?3===t.length&&L.has(t[2]):"relative"===t[1]?5===t.length&&z.has(t[2])&&q.has(t[3])&&"number"==typeof G(t[4]):"exact"===t[1]&&"single"===t[2]&&"date"===t[3]?5===t.length&&/^v.+/.test(t[4]):"exact"===t[1]&&"range"===t[2]&&"date"===t[3]&&6===t.length&&/^v.+/.test(t[4])&&/^v.+/.test(t[5]))}function en(e){if(!et(e))return;let t=U(W(e)||[]);if("preset"===t[1]&&3===t.length&&L.has(t[2]))return{type:t[2]};if("relative"===t[1]&&5===t.length&&z.has(t[2])&&q.has(t[3])){let e=G(t[4]);return"number"==typeof e?{type:t[2],unit:t[3],number:e}:void 0}if("exact"===t[1]&&"single"===t[2]&&"date"===t[3]&&5===t.length){let e=String(t[4]||"");if(!e.startsWith("v"))return;return ee(e.slice(1))}if("exact"===t[1]&&"range"===t[2]&&"date"===t[3]&&6===t.length){let e=String(t[4]||""),r=String(t[5]||"");if(!e.startsWith("v")||!r.startsWith("v"))return;let n=ee(e.slice(1)),i=ee(r.slice(1));if(void 0===n||void 0===i)return;return[n,i]}}function ei(e){if(et(e))return String(e).trim();if(null==e||""===e)return;if(Array.isArray(e)){let t=Y(e[0]),r=Y(e[1]);return t&&r?K(["date","exact","range","date",`v${Q(t)}`,`v${Q(r)}`]):t?K(["date","exact","single","date",`v${Q(t)}`]):void 0}if("object"==typeof e&&e){let t=e,r="string"==typeof t.type?t.type:"";if("past"===r||"next"===r){let e="string"==typeof t.unit&&q.has(t.unit)?t.unit:"day",n=Number(t.number),i=Number.isFinite(n)&&n>0?Math.floor(n):1;return K(["date","relative",r,e,`n${i}`])}if(L.has(r))return K(["date","preset",r])}let t=Y(e);if(t)return K(["date","exact","single","date",`v${Q(t)}`])}function eo(e){let t=U((e||[]).map(e=>String(e)));if("date"===t[0]){if("preset"===t[1]&&3===t.length){let e=t[2];if("now"===e)return N()().toISOString();let r=N()();return"today"===e?r.format("YYYY-MM-DD"):"yesterday"===e?r.add(-1,"day").format("YYYY-MM-DD"):"tomorrow"===e?r.add(1,"day").format("YYYY-MM-DD"):"thisWeek"===e?Z(r).format("YYYY-MM-DD"):"lastWeek"===e?Z(r.add(-1,"week")).format("YYYY-MM-DD"):"nextWeek"===e?Z(r.add(1,"week")).format("YYYY-MM-DD"):"thisMonth"===e?r.startOf("month").format("YYYY-MM-DD"):"lastMonth"===e?r.add(-1,"month").startOf("month").format("YYYY-MM-DD"):"nextMonth"===e?r.add(1,"month").startOf("month").format("YYYY-MM-DD"):"thisQuarter"===e?X(r).format("YYYY-MM-DD"):"lastQuarter"===e?X(r.add(-3,"month")).format("YYYY-MM-DD"):"nextQuarter"===e?X(r.add(3,"month")).format("YYYY-MM-DD"):"thisYear"===e?r.startOf("year").format("YYYY-MM-DD"):"lastYear"===e?r.add(-1,"year").startOf("year").format("YYYY-MM-DD"):"nextYear"===e?r.add(1,"year").startOf("year").format("YYYY-MM-DD"):void 0}if("relative"===t[1]&&5===t.length&&z.has(t[2])&&q.has(t[3])){let e=G(t[4]);if("number"!=typeof e)return;let r="past"===t[2]?-1:1,n=t[3];return N()().add(r*e,n).format("YYYY-MM-DD")}if("exact"===t[1]&&"single"===t[2]&&"date"===t[3]&&5===t.length){let e=String(t[4]||"");if(!e.startsWith("v"))return;return ee(e.slice(1))}if("exact"===t[1]&&"range"===t[2]&&"date"===t[3]&&6===t.length){let e=String(t[4]||""),r=String(t[5]||"");if(!e.startsWith("v")||!r.startsWith("v"))return;let n=ee(e.slice(1)),i=ee(r.slice(1));if(void 0===n||void 0===i)return;return[n,i]}}}var el=r(51143);let es=new Set(["code","version"]);function ea(e){if(!e||"object"!=typeof e||Array.isArray(e))return!1;let t=Object.keys(e);if(!t.includes("code")||"string"!=typeof e.code||"version"in e&&null!=e.version&&"string"!=typeof e.version)return!1;for(let e of t)if(!es.has(e))return!1;return!0}function eu(e){return{code:String((null==e?void 0:e.code)??""),version:String((null==e?void 0:e.version)??"v1")}}function ec(e){let t="",r="code";for(let n=0;n<e.length;n++){let i=e[n],o=n+1<e.length?e[n+1]:"";if("code"===r){if("/"===i&&"/"===o){t+=" ",n++,r="line";continue}if("/"===i&&"*"===o){t+=" ",n++,r="block";continue}if("'"===i){t+=" ",r="single";continue}if('"'===i){t+=" ",r="double";continue}t+=i;continue}if("line"===r){"\n"===i?(t+="\n",r="code"):t+=" ";continue}if("block"===r){"*"===i&&"/"===o?(t+=" ",n++,r="code"):t+="\n"===i?"\n":" ";continue}if("single"===r){if("\\"===i){t+=" ",n++;continue}"'"===i?(t+=" ",r="code"):t+="\n"===i?"\n":" ";continue}if("\\"===i){t+=" ",n++;continue}'"'===i?(t+=" ",r="code"):t+="\n"===i?"\n":" "}return t}function ed(e){let t="",r="code";for(let n=0;n<e.length;n++){let i=e[n],o=n+1<e.length?e[n+1]:"";if("code"===r){if("/"===i&&"/"===o){t+=" ",n++,r="line";continue}if("/"===i&&"*"===o){t+=" ",n++,r="block";continue}if("'"===i){t+=i,r="single";continue}if('"'===i){t+=i,r="double";continue}t+=i;continue}if("line"===r){"\n"===i?(t+="\n",r="code"):t+=" ";continue}if("block"===r){"*"===i&&"/"===o?(t+=" ",n++,r="code"):t+="\n"===i?"\n":" ";continue}if("single"===r){if(t+=i,"\\"===i){let r=n+1<e.length?e[n+1]:"";r&&(t+=r,n++);continue}"'"===i&&(r="code");continue}if(t+=i,"\\"===i){let r=n+1<e.length?e[n+1]:"";r&&(t+=r,n++);continue}'"'===i&&(r="code")}return t}function eh(e){let t;if(!e)return{subPath:"",wildcard:!1};let r=e;r=r.replace(/\[['"]([a-zA-Z_$][a-zA-Z0-9_$]*)['"]\]/g,".$1");let n=/\[([^\]]+)\]/g;for(;t=n.exec(r);){let e=String(t[1]??"").trim();if(!(/^\d+$/.test(e)||/^['"][a-zA-Z_$][a-zA-Z0-9_$]*['"]$/.test(e)))return{subPath:r.startsWith(".")?r.slice(1):r,wildcard:!0}}return r.startsWith(".")&&(r=r.slice(1)),{subPath:r,wildcard:!1}}function ep(e){let t;if("string"!=typeof e||!e.trim())return{};let r=ec(e),n=ed(e),i=new Map,o=(e,t)=>{if(!e)return;let r=i.get(e)||new Set;r.add(t||""),i.set(e,r)},l=/ctx\.([a-zA-Z_$][a-zA-Z0-9_$]*(?:(?:\.[a-zA-Z_$][a-zA-Z0-9_$]*)|(?:\[[^\]]+\]))*)(?!\s*\()/g;for(;t=l.exec(r);){let e=t[1]||"",r=e.match(/^([a-zA-Z_$][a-zA-Z0-9_$]*)/);if(!r)continue;let n=r[1],{subPath:i,wildcard:l}=eh(e.slice(n.length));o(n,l?"":i)}let s=/ctx\s*\[\s*(['"])([a-zA-Z_$][a-zA-Z0-9_$]*)\1\s*\]((?:(?:\.[a-zA-Z_$][a-zA-Z0-9_$]*)|(?:\[[^\]]+\]))*)(?!\s*\()/g;for(;t=s.exec(n);){let e=t[2]||"",{subPath:r,wildcard:n}=eh(t[3]||"");o(e,n?"":r)}let a={};for(let[e,t]of i.entries())a[e]=Array.from(t);return a}async function ef(e,t){let r={};if(!t||"object"!=typeof t||Array.isArray(t))return r;for(let[n,i]of Object.entries(t))if(void 0!==i){if(ea(i)){let{code:t,version:o}=eu(i);if(!t.trim())continue;let l=await (0,el._)(e,t,{version:o});if(!(null==l?void 0:l.success))throw Error(`RunJS execution failed for "${n}"`);void 0!==l.value&&(r[n]=l.value);continue}r[n]=i}return r}var eg=r(49773);let em="ctx.resolveJsonTemplate",ey=/\{\{\s*ctx(?:\.|\[|\?\.)/,ev=/\bctx(?:\?\.|\.)libs\b/,ew="__runjs_templateValueToString",eb=/\b__runjs_ctx_tpl_\d+\b/,ex=/\b__runjs_templateValueToString(?:_\d+)?\b/,eS=/\b__runjs_ctx_tpl_\d+\b|\b__runjs_templateValueToString(?:_\d+)?\b/,e_=/\b__runjs_ensure_libs\b/,eA=256,ek={withTemplates:new Map,withoutTemplates:new Map};function eM(e,t){let r=e.get(t);if(void 0!==r)return e.delete(t),e.set(t,r),r}function eE(e,t,r,n){if(e.has(t)&&e.delete(t),e.set(t,r),e.size<=n)return;let i=e.keys().next().value;void 0!==i&&e.delete(i)}function ej(e){return!!e&&/[A-Za-z0-9_$]/.test(e)}function eR(e){if(!e.startsWith("{{")||!e.endsWith("}}"))return!1;let t=e.slice(2,-2).trim();return t.startsWith("ctx.")||t.startsWith("ctx[")||t.startsWith("ctx?.")}function eP(e,t){if(!e.startsWith(em,t))return!1;let r=t>0?e[t-1]:"",n=e[t+em.length]||"";return!(ej(r)||ej(n))}function eC(e,t){let r=t+2;for(;r<e.length;){let t=e[r];if(r+=1,"\n"===t)break}return r}function eF(e,t){let r=t+2;for(;r<e.length;){let t=e[r],n=e[r+1];if("*"===t&&"/"===n)return r+2;r+=1}return r}function eT(e,t,r){let n=t+1;for(;n<e.length;){let t=e[n];if("\\"===t){n+=2;continue}if(n+=1,t===r)break}return n}function eI(e,t){let r=t+1;for(;r<e.length;){let t=e[r];if("\\"===t){r+=2;continue}if("`"===t)return r+1;if("$"===t&&"{"===e[r+1]){r+=2;let t=1;for(;r<e.length&&t>0;){let n=e[r],i=e[r+1];if("'"===n||'"'===n){r=eT(e,r,n);continue}if("`"===n){r=eI(e,r);continue}if("/"===n&&"/"===i){r=eC(e,r);continue}if("/"===n&&"*"===i){r=eF(e,r);continue}"{"===n?t+=1:"}"===n&&(t-=1),r+=1}continue}r+=1}return r}function e$(e){if(!ey.test(e))return[];let t=[],r=0;for(;r<e.length;){let n=e.indexOf("{{",r);if(-1===n)break;let i=e.indexOf("}}",n+2);if(-1===i)break;let o=e.slice(n,i+2);eR(o)&&t.push(o),r=i+2}return t}function eO(e,t){let r=t;for(;r<e.length&&/\s/.test(e[r]);)r+=1;return r}function eD(e,t){let r=t;for(;r>=0&&/\s/.test(e[r]);)r-=1;return r}function eN(e,t){let r=t;for(;;){r=eO(e,r);let t=e[r],n=e[r+1];if("/"===t&&"/"===n){r=eC(e,r);continue}if("/"===t&&"*"===n){r=eF(e,r);continue}return r}}function eB(e){return!!e&&/[A-Za-z_$]/.test(e)}function eL(e,t){if(!eB(e[t]))return null;let r=t+1;for(;r<e.length&&ej(e[r]);)r+=1;return{name:e.slice(t,r),end:r}}function ez(e,t,r){if(e[t]!==r)return null;let n=t+1,i="";for(;n<e.length;){let t=e[n];if("\\"===t){let t=e[n+1];if(void 0===t)break;i+=t,n+=2;continue}if(t===r)return{value:i,end:n+1};i+=t,n+=1}return null}function eq(e,t){if(!e.startsWith("ctx",t))return null;let r=t>0?e[t-1]:"",n=e[t+3]||"";if(ej(r)||ej(n))return null;let i=e.slice(t+3);return i.startsWith(".libs")?t+3+5:i.startsWith("?.libs")?t+3+6:null}function eW(e,t){let r=eq(e,t);if(null===r)return null;let n=eN(e,r),i=e[n],o=e[n+1],l=e[n+2];if("?"===i&&"."===o&&"["===l){n=eN(e,n+3);let t=e[n];if("'"===t||'"'===t){let r=ez(e,n,t);if(!r)return{end:n+1};let i=eN(e,r.end);return"]"===e[i]&&(i+=1),{end:i,key:r.value}}return{end:n}}if("["===i){n=eN(e,n+1);let t=e[n];if("'"===t||'"'===t){let r=ez(e,n,t);if(!r)return{end:n+1};let i=eN(e,r.end);return"]"===e[i]&&(i+=1),{end:i,key:r.value}}return{end:n}}if("?"===i&&"."===o){n=eN(e,n+2);let t=eL(e,n);return t?{end:t.end,key:t.name}:{end:n}}if("."===i){n=eN(e,n+1);let t=eL(e,n);return t?{end:t.end,key:t.name}:{end:n}}return{end:r}}function eV(e){let t=[],r=String(e??""),n=0,i=0,o=0,l=0,s=e=>{let r=String(e??"").trim();if(!r||r.startsWith("..."))return;let n=r,i=0,o=0,l=0,s=0;for(;i<r.length;){let e=r[i],t=r[i+1];if("/"===e&&"/"===t)break;if("/"===e&&"*"===t){let e=r.indexOf("*/",i+2);i=-1===e?r.length:e+2;continue}if("'"===e||'"'===e){let t=i+1;for(;t<r.length;){let n=r[t];if("\\"===n){t+=2;continue}if(t+=1,n===e)break}i=t;continue}if("`"===e){let e=i+1;for(;e<r.length;){let t=r[e];if("\\"===t){e+=2;continue}if(e+=1,"`"===t)break}i=e;continue}if("{"===e?o+=1:"}"===e?o-=1:"["===e?l+=1:"]"===e?l-=1:"("===e?s+=1:")"===e&&(s-=1),0===o&&0===l&&0===s&&(":"===e||"="===e)){n=r.slice(0,i).trim();break}i+=1}if(!n)return;if(n.startsWith("'")||n.startsWith('"')){let e=n[0],r=ez(n,0,e);r&&t.push(r.value);return}let a=n.match(/^[A-Za-z_$][A-Za-z0-9_$]*/);a&&t.push(a[0])},a=0;for(;a<r.length;){let e=r[a],t=r[a+1];if("/"===e&&"/"===t)break;if("/"===e&&"*"===t){let e=r.indexOf("*/",a+2);a=-1===e?r.length:e+2;continue}if("'"===e||'"'===e){a=eT(r,a,e);continue}if("`"===e){a=eI(r,a);continue}"{"===e?i+=1:"}"===e?i-=1:"["===e?o+=1:"]"===e?o-=1:"("===e?l+=1:")"===e&&(l-=1),0===i&&0===o&&0===l&&","===e&&(s(r.slice(n,a)),n=a+1),a+=1}return s(r.slice(n)),t}function eU(e){if(!ev.test(e))return[];let t=new Set,r=r=>{let i=r,o=1;for(;i<e.length&&o>0;){let r=e[i],l=e[i+1];if("/"===r&&"/"===l){i=eC(e,i);continue}if("/"===r&&"*"===l){i=eF(e,i);continue}if("'"===r||'"'===r){i=eT(e,i,r);continue}if("`"===r){i=n(i+1);continue}let s=eW(e,i);if(s){s.key&&t.add(s.key),i=s.end;continue}"{"===r?o+=1:"}"===r&&(o-=1),i+=1}return i},n=t=>{let n=t;for(;n<e.length;){let t=e[n],i=e[n+1];if("\\"===t){n+=2;continue}if("`"===t)return n+1;if("$"===t&&"{"===i){n=r(n+2);continue}n+=1}return n},i=0;for(;i<e.length;){let r=e[i],o=e[i+1];if("/"===r&&"/"===o){i=eC(e,i);continue}if("/"===r&&"*"===o){i=eF(e,i);continue}if("'"===r||'"'===r){i=eT(e,i,r);continue}if("`"===r){i=n(i+1);continue}let l=eW(e,i);if(l){l.key&&t.add(l.key),i=l.end;continue}if("="===r&&"="!==o&&">"!==o&&"<"!==o){let r=eN(e,i+1);if(null!==eq(e,r)){let r=eD(e,i-1);if("}"===e[r]){let n=0,i=r;for(;i>=0;){let t=e[i];if("}"===t)n+=1;else if("{"===t&&0==(n-=1))break;i-=1}if(i>=0&&"{"===e[i])for(let n of eV(e.slice(i+1,r)))t.add(n)}}}i+=1}return Array.from(t)}function eK(e){if(e_.test(e)||!ev.test(e))return e;let t=eU(e);return t.length?`/* __runjs_ensure_libs */
|
|
267
267
|
await ctx.__ensureLibs(${JSON.stringify(t)});
|
|
268
|
-
${e}`:e}function
|
|
269
|
-
${h}`}async function eG(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r="string"==typeof e?e:String(e??""),n=!!t.preprocessTemplates,i=n?e_.withTemplates:e_.withoutTemplates,o=ek(i,r);if(o)return await o;let l=(async()=>{if(!n)return eH(await (0,em.W)(r));let e=eY(r,{processStringLiterals:!1});return eH(eY(await (0,em.W)(e),{processBarePlaceholders:!1}))})();eP(i,r,l,eM);try{return await l}catch(e){throw i.delete(r),e}}var eZ=r(62572);function eX(e){if(Array.isArray(e)){let t=e.map(e=>eX(e)).filter(e=>void 0!==e);return t.length?t:void 0}if(e&&"object"==typeof e){let t={};return Object.keys(e).forEach(r=>{let n=eX(e[r]);void 0!==n&&(t[r]=n)}),Object.keys(t).length?t:void 0}return null==e||"string"==typeof e&&""===e?void 0:e}let eQ=e=>"string"==typeof e.on?"beforeRender"===e.on:"object"==typeof e.on?"beforeRender"===e.on.eventName:!e.on&&!0!==e.manual;var e0=r(47684)},49773(e,t,r){r.d(t,{W:()=>n});async function n(e){if(!/<[A-Za-z]|<\//.test(e))return e;try{var t;let n=await r.e("7761").then(r.bind(r,1608)),i=(null==n?void 0:n.transform)||(null==n||null==(t=n.default)?void 0:t.transform);if("function"!=typeof i)return e;let o=i(e,{transforms:["jsx"],jsxPragma:"ctx.React.createElement",jsxFragmentPragma:"ctx.React.Fragment",disableESTransforms:!0,production:!0});return(o&&(o.code||(null==o?void 0:o.output)))??e}catch(t){return e}}},35339(e,t,r){r.d(t,{gG:()=>l,o4:()=>h,mv:()=>s,M:()=>p});let n=(e,t,r)=>{if(!e)return r;let i=t.split("."),o=[],l=e,s=!1;for(let e=0;e<i.length;e++){let t=i[e];if(Array.isArray(l)){for(let t of(s=!0,l)){let l=n(t,i.slice(e).join("."),r);o=o.concat(l)}break}if((null==l?void 0:l[t])===void 0)break;l=l[t],e===i.length-1&&o.push(l)}return 0===(o=o.filter(e=>void 0!==e)).length?r:s?o.filter(e=>null!==e):o[0]};var i=r(2543),o=r.n(i);async function l(e,t){if(!e)return{};if("function"==typeof e)try{return await e(t)||{}}catch(e){return console.error("Error resolving defaultParams function:",e),{}}return e}async function s(e,t,r){if(!e)return{};if("function"==typeof e)try{return await e(t,r)||{}}catch(e){return console.error("Error resolving createModelOptions function:",e),{}}return e}let a={queue:[],timer:null,inflightByRun:new Map},c=10;function u(e){if(Array.isArray(e))return e.map(u);if(o().isPlainObject(e)){let t=Object.entries(e).map(e=>{let[t,r]=e;return[t,u(r)]});return Object.fromEntries(o().sortBy(t,e=>{let[t]=e;return t}))}return e}function d(e){try{return JSON.stringify(u(e))}catch{try{return JSON.stringify(e)}catch{return String(e)}}}function h(e,t){let r,n,i=a,o=e.runId||"GLOBAL",l=d(t),s=i.inflightByRun.get(o);s||(s=new Map,i.inflightByRun.set(o,s));let u=s.get(l);if(u)return u;let h=new Promise((e,t)=>{r=e,n=t});s.set(l,h);let p={id:`${Date.now()}-${Math.random().toString(36).slice(2)}`,ctx:e,payload:t,resolve:r,reject:n,runId:o,dedupKey:l};i.queue.push(p);let f=async()=>{var t,r,n,o,l,s;let a=i.queue.splice(0,i.queue.length);if(i.timer=null,!a.length)return;let c=null==(t=a[0].ctx)?void 0:t.api;if(!c){for(let e of a)try{e.resolve(e.payload.template)}catch(t){e.reject(t)}finally{null==(r=i.inflightByRun.get(e.runId))||r.delete(e.dedupKey)}return}try{let e=a.map(e=>({id:e.id,template:e.payload.template,contextParams:e.payload.contextParams||{}})),t=await c.request({method:"POST",url:"variables:resolve",data:{values:{batch:e}}}),r=t.data??t,o=r.data??r,l=null==o?void 0:o.results,s=Array.isArray(l)?l:Array.isArray(o)?o:[],u=new Map;for(let e of s){let t=(null==e?void 0:e.id)!=null?String(e.id):"";t&&u.set(t,null==e?void 0:e.data)}for(let e of a)try{let t=String(e.id),r=u.has(t)?u.get(t):e.payload.template;e.resolve(r)}catch(t){e.reject(t)}finally{null==(n=i.inflightByRun.get(e.runId))||n.delete(e.dedupKey)}}catch(t){for(let r of a)try{null==e||null==(l=e.logger)||null==(o=l.warn)||o.call(l,{err:t},"variables:resolve(batch) failed, fallback"),r.resolve(r.payload.template)}catch(e){r.reject(e)}finally{null==(s=i.inflightByRun.get(r.runId))||s.delete(r.dedupKey)}}};return i.timer||(i.timer=setTimeout(f,c)),h}async function p(e,t){let r=async e=>{if("string"==typeof e&&/\{\{.*?\}\}/.test(e))return await g(e,t);if(Array.isArray(e))return Promise.all(e.map(r));if(e&&"object"==typeof e){let t={};for(let[n,i]of Object.entries(e))t[n]=await r(i);return t}return e};return r(e)}async function f(e,t){let r=await m(e.trim(),t),n=await t.runjs(`return ${r}`,{t:t.t});return(null==n?void 0:n.success)?n.value:void 0}async function m(e,t){let r,n=/ctx\.([a-zA-Z_$][a-zA-Z0-9_$]*(?:(?:\.[a-zA-Z_$][a-zA-Z0-9_$]*)|(?:\[[^\]]+\]))*)(?!\s*\()/g,i=[],o=new Set;for(;null!==(r=n.exec(e));){let e=r[0],t=r[1],n=t.match(/^([a-zA-Z_$][a-zA-Z0-9_$]*)/);if(n){let r=n[1],l=t.substring(r.length);i.push({fullPath:e,firstKey:r,restPath:l}),o.add(r)}}if(0===i.length)return e;let l=new Map;for(let e of o)try{let r=await t[e],n=r&&!0===r.__isRecordProxy__;l.set(e,n)}catch(t){l.set(e,!1)}i.sort((e,t)=>t.fullPath.length-e.fullPath.length);let s=e;for(let{fullPath:e,firstKey:t,restPath:r}of i){let n,i=l.get(t)||!1;n=""===r?`await ctx.${t}`:i?`await (await ctx.${t})${r}`:`(await ctx.${t})${r}`;let o=e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),a=RegExp(`\\b${o}\\b`,"g");s=s.replace(a,n)}return s}async function g(e,t){let r=e=>{let t=e.trim().match(/^ctx\.([a-zA-Z_$][a-zA-Z0-9_$]*)(?:\.([a-zA-Z_$][a-zA-Z0-9_$-]*(?:\.[a-zA-Z_$][a-zA-Z0-9_$-]*)*))?$/);return t?t[2]?`${t[1]}.${t[2]}`:t[1]:null},i=async e=>{let r=e.split("."),i=r.shift();if(!i)return;let o=await t[i];return 0===r.length?o:n(o,r.join("."))},o=async e=>{let n=r(e);if(n){let r=await i(n);return void 0===r&&n.includes("-")?await f(e,t):r}return await f(e,t)},l=e.match(/^\s*\{\{\s*([^{}]+?)\s*\}\}\s*$/);if(l){let e=l[1];return await o(e)}let s=[...e.matchAll(/\{\{\s*(.+?)\s*\}\}/g)],a=e;for(let[e,t]of s){let r=await o(t);if(void 0!==r){let t="object"==typeof r&&null!==r?JSON.stringify(r):String(r);a=a.replace(e,t)}}return a}},47684(e,t,r){function n(e,t){if(!e||"string"!=typeof e)throw Error("invalid url");let r=e.trim();if(r.startsWith("http://")||r.startsWith("https://"))return r;let n=window.__esm_cdn_base_url__||"https://esm.sh",i=(null==t?void 0:t.addSuffix)&&window.__esm_cdn_suffix__||"",o=n.replace(/\/$/,""),l=r.replace(/^\//,"");if(null==t?void 0:t.raw){let e=l.includes("?")?"&":"?";return`${o}/${l}${e}raw`}return`${o}/${l}${i}`}function i(e){return!!e&&"string"==typeof e&&e.split("?")[0].split("#")[0].endsWith(".css")}r.d(t,{i:()=>n,y:()=>i})},51143(e,t,r){function n(){var e,t;let r=globalThis;if((null==(e=r.__nocobaseRunJSSafeGlobalsRegistry)?void 0:e.windowAllow)&&(null==(t=r.__nocobaseRunJSSafeGlobalsRegistry)?void 0:t.documentAllow))return r.__nocobaseRunJSSafeGlobalsRegistry;let n={windowAllow:new Set,documentAllow:new Set};return r.__nocobaseRunJSSafeGlobalsRegistry=n,n}function i(e){if(!e)return;let t=n();for(let r of e){if("string"!=typeof r)continue;let e=r.trim();e&&t.windowAllow.add(e)}}function o(e){if(!e)return;let t=n();for(let r of e){if("string"!=typeof r)continue;let e=r.trim();e&&t.documentAllow.add(e)}}function l(e){return n().windowAllow.has(e)}function s(e){return n().documentAllow.has(e)}function a(e){let t=()=>`${window.location.origin}${window.location.pathname}`,r=(e,r,n)=>{if(!(e=>{try{let r=new URL(e,t()),n=r.protocol.toLowerCase();if("about:"===n)return"about:blank"===r.href;return"http:"===n||"https:"===n}catch{return!1}})(e))throw Error("Unsafe URL: window.open only allows http/https/about:blank.");let i="_blank",o=(e=>{let t=new Set;return e&&e.split(",").map(e=>e.trim()).filter(Boolean).forEach(e=>{let r=e.split("=")[0].trim().toLowerCase();"noopener"!==r&&"noreferrer"!==r&&t.add(e)}),t.add("noopener"),t.add("noreferrer"),Array.from(t).join(",")})(n),l=window.open.call(window,e,i,o);if(l&&"opener"in l)try{l.opener=null}catch{}return l},n=(e,n)=>{let i=new URL(e,t()),o=i.protocol.toLowerCase(),l="about:"===o&&"about:blank"===i.href;if("http:"!==o&&"https:"!==o&&!l)throw Error("Unsafe URL: only http/https/about:blank are allowed.");if(l)return(null==n?void 0:n.replace)?window.location.replace("about:blank"):window.location.assign("about:blank");if(i.protocol===window.location.protocol&&i.hostname===window.location.hostname&&i.port===window.location.port)return(null==n?void 0:n.replace)?window.location.replace(i.href):window.location.assign(i.href);if(!r(i.href))throw Error("Popup blocked: cross-origin navigation is opened in a new tab.")},i=new Proxy({},{get(e,t){switch(t){case"origin":return window.location.origin;case"protocol":return window.location.protocol;case"host":return window.location.host;case"hostname":return window.location.hostname;case"port":return window.location.port;case"pathname":return window.location.pathname;case"assign":return e=>n(e,{replace:!1});case"replace":return e=>n(e,{replace:!0});case"reload":return window.location.reload.bind(window.location);case"href":throw Error("Reading location.href is not allowed.");default:throw Error(`Access to location property "${t}" is not allowed.`)}},set(e,t,r){if("href"===t)return n(String(r),{replace:!1}),!0;throw Error("Mutation on location is not allowed.")}}),o={setTimeout:window.setTimeout.bind(window),clearTimeout:window.clearTimeout.bind(window),setInterval:window.setInterval.bind(window),clearInterval:window.clearInterval.bind(window),console,Math,Date,FormData,..."u">typeof Blob?{Blob}:{},..."u">typeof URL?{URL}:{},addEventListener:addEventListener.bind(window),open:r,location:i,...e||{}};return new Proxy(Object.create(null),{get(e,t){if("string"!=typeof t)return Reflect.get(e,t);if(t in o)return o[t];if(Object.prototype.hasOwnProperty.call(e,t))return e[t];if(l(t)){let e=window[t];return"function"==typeof e?e.bind(window):e}throw Error(`Access to global property "${t}" is not allowed.`)},set(e,t,r){if("string"!=typeof t)return Reflect.set(e,t,r),!0;if(t in o)throw Error(`Mutation of global property "${t}" is not allowed.`);return e[t]=r,!0},has:(e,t)=>"string"!=typeof t?Reflect.has(e,t):!!(t in o||Object.prototype.hasOwnProperty.call(e,t)||l(t))})}function c(e){let t={createElement:document.createElement.bind(document),querySelector:document.querySelector.bind(document),querySelectorAll:document.querySelectorAll.bind(document),...e||{}};return new Proxy(Object.create(null),{get(e,r){if("string"!=typeof r)return Reflect.get(e,r);if(r in t)return t[r];if(Object.prototype.hasOwnProperty.call(e,r))return e[r];if(s(r)){let e=document[r];return"function"==typeof e?e.bind(document):e}throw Error(`Access to document property "${r}" is not allowed.`)},set(e,r,n){if("string"!=typeof r)return Reflect.set(e,r,n),!0;if(r in t)throw Error(`Mutation of document property "${r}" is not allowed.`);return e[r]=n,!0},has:(e,r)=>"string"!=typeof r?Reflect.has(e,r):!!(r in t||Object.prototype.hasOwnProperty.call(e,r)||s(r))})}function u(e){var t;let r="u">typeof window&&window.navigator||void 0,n={},i=null==r||null==(t=r.clipboard)?void 0:t.writeText;"function"==typeof i&&(n.writeText=i.bind(r.clipboard));let o={clipboard:n};return Object.defineProperty(o,"onLine",{get:()=>!!(null==r?void 0:r.onLine),enumerable:!0,configurable:!1}),Object.defineProperty(o,"language",{get:()=>null==r?void 0:r.language,enumerable:!0,configurable:!1}),Object.defineProperty(o,"languages",{get:()=>(null==r?void 0:r.languages)?[...r.languages]:void 0,enumerable:!0,configurable:!1}),Object.assign(o,e||{}),new Proxy({},{get(e,t){if(t in o)return o[t];throw Error(`Access to navigator property "${String(t)}" is not allowed.`)}})}function d(e){let t={};try{let e=u();t.navigator=e;try{t.window=a({navigator:e})}catch{}}catch{}try{t.document=c()}catch{}return e?{...t,...e}:t}async function h(e,t,r,n){if(e&&("object"==typeof e||"function"==typeof e)&&"function"==typeof e.runjs)return e.runjs(t,d(n),r)}r.d(t,{D1:()=>u,I2:()=>d,Vm:()=>i,Xh:()=>c,_:()=>h,ey:()=>a,yz:()=>o})},22928(e,t,r){function n(e){let t={};return Object.entries(e||{}).forEach(e=>{let[r,n]=e;null!=n&&(t[r]=n)}),t}function i(e,t,r){try{var n,i,o,l,s;let a=null==(i=e.dataSourceManager)||null==(n=i.getDataSource)?void 0:n.call(i,t||"main"),c=null==a||null==(l=a.collectionManager)||null==(o=l.getCollection)?void 0:o.call(l,r);return(null==c||null==(s=c.getPrimaryKey)?void 0:s.call(c))||"id"}catch(e){return"id"}}function o(e,t){var r,o;if(!t)return;let l=t.dataSourceKey||"main",s=t.collection||(null==(r=t.record)?void 0:r.__collectionName);if(!s)return;let a=i(e,l,s)||"id",c=void 0!==t.filterByTk?t.filterByTk:void 0!==t.id?t.id:null==(o=t.record)?void 0:o[a];if(void 0!==c)return n({collection:s,filterByTk:c,dataSourceKey:l,associationName:t.associationName,sourceId:t.sourceId,fields:t.fields,appends:t.appends})}function l(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=e=>!!e&&"object"==typeof e&&"string"==typeof e.collection&&(void 0!==e.filterByTk||void 0!==e.id||e.record),n={},i=(t,l)=>{if(r(t)){let r=o(e,t);r&&(n[l.join(".")]=r);return}if(Array.isArray(t)){for(let e=0;e<t.length;e++)i(t[e],[...l,String(e)]);return}if(t&&"object"==typeof t){for(let[e,r]of Object.entries(t))i(r,[...l,e]);return}};return i(t,[]),Object.keys(n).length?n:void 0}r.d(t,{d:()=>l})},88439(e,t,r){r.d(t,{w:()=>n});function n(e,t,r,n){let i={},o={};for(let s in t)if(Object.prototype.hasOwnProperty.call(t,s)){let a=t[s],c={};if(a.uiSchema&&"object"==typeof a.uiSchema){for(let[e,t]of Object.entries(a.uiSchema))if(t&&"object"==typeof t){var l;let r=t;c[e]={type:r.type||"any",title:r.title||(null==(l=r["x-decorator-props"])?void 0:l.label)||e,interface:r["x-component"],uiSchema:r}}}let u=Object.keys(c).length>0;o[s]={type:"object",title:e.t(a.title)||s,display:u?"default":"none",properties:u?{params:{type:"object",title:"Parameters",display:"flatten",properties:c}}:void 0},i[s]={get params(){return r.getStepParams(n,s)||{}},get uiSchema(){return a.uiSchema},result:void 0}}e.defineProperty("steps",{get:()=>i})}},73398(e,t,r){function n(e){let t=new Set,r=e=>{if("string"==typeof e){let r,n=/\{\{\s*([^}]+?)\s*\}\}/g;for(;null!==(r=n.exec(e));){let e,n,i=r[1],o=/ctx\.([a-zA-Z_$][a-zA-Z0-9_$]*)/g;for(;null!==(e=o.exec(i));)t.add(e[1]);let l=/ctx\[\s*(["'])\s*([a-zA-Z_$][a-zA-Z0-9_$]*)\s*\1\s*\]/g;for(;null!==(n=l.exec(i));)t.add(n[2])}}else Array.isArray(e)?e.forEach(r):e&&"object"==typeof e&&Object.values(e).forEach(r)};return r(e),t}function i(e){let t={},r=e=>{if("string"==typeof e){let r,n=/\{\{\s*([^}]+?)\s*\}\}/g;for(;null!==(r=n.exec(e));){let e,n,i=r[1],o=/ctx\.([a-zA-Z_$][a-zA-Z0-9_$]*)([^\s)]*)/g;for(;null!==(e=o.exec(i));){let r=e[1],n=e[2]||"";if(t[r]=t[r]||[],n.startsWith("."))t[r].push(n.slice(1));else if(n.startsWith("[")){let e=n.match(/^\[\s*(["'])\s*([^'"\]]+)\s*\1\s*\](.*)$/);if(e){let n=e[2],i=e[3]||"";t[r].push(`${n}${i}`)}else{let e=n.match(/^\[(\d+)\](.*)$/);if(e){let n=e[1],i=e[2]||"";t[r].push(`[${n}]${i}`)}}}else n.startsWith("(")&&!t[r].length&&t[r].push("")}let l=/ctx\[\s*(["'])\s*([a-zA-Z_$][a-zA-Z0-9_$]*)\s*\1\s*\]([^\s)]*)/g;for(;null!==(n=l.exec(i));){let e=n[2],r=n[3]||"";if(t[e]=t[e]||[],r.startsWith("."))t[e].push(r.slice(1));else if(r.startsWith("[")){let n=r.match(/^\[\s*(["'])\s*([^'"\]]+)\s*\1\s*\](.*)$/);if(n){let r=n[2],i=n[3]||"";t[e].push(`${r}${i}`)}else{let n=r.match(/^\[(\d+)\](.*)$/);if(n){let r=n[1],i=n[2]||"";t[e].push(`[${r}]${i}`)}}}else r.startsWith("(")&&!t[e].length&&t[e].push("")}}}else Array.isArray(e)?e.forEach(r):e&&"object"==typeof e&&Object.values(e).forEach(r)};return r(e),t}r.d(t,{xI:()=>f,vP:()=>v,$S:()=>m,pc:()=>g,Cg:()=>d,nN:()=>w,ju:()=>b,Xx:()=>p,vE:()=>h,XU:()=>u,UX:()=>y});var o=r(22928),l=r(35846),s=r(44476),a=r(2543),c=r.n(a);function u(e){var t,r,n,i;let o=e.resource,l=e.collection,s=e.record,a=(null==l?void 0:l.name)||(null==o||null==(t=o.getResourceName)?void 0:t.call(o)),c=(null==l?void 0:l.dataSourceKey)||(null==o||null==(r=o.getDataSourceKey)?void 0:r.call(o)),u=(null==o||null==(n=o.getFilterByTk)?void 0:n.call(o))??(null==l||null==(i=l.getFilterByTK)?void 0:i.call(l,s));if(!a||null==u)return;let d=String(a).split(".");return{collection:d[d.length-1],dataSourceKey:c,filterByTk:u}}function d(e){var t,r,n;let i=e.view;if(!i)return;let o=(null==i?void 0:i.inputArgs)||{},l=(null==o?void 0:o.collectionName)||(null==i||null==(t=i.record)?void 0:t.collection),s=(null==o?void 0:o.dataSourceKey)||(null==i||null==(r=i.record)?void 0:r.dataSourceKey)||"main",a=(null==o?void 0:o.filterByTk)||(null==i||null==(n=i.record)?void 0:n.filterByTk),c=null==o?void 0:o.associationName,u=null==o?void 0:o.sourceId;if(l&&null!=a)return{collection:l,dataSourceKey:s,filterByTk:a,sourceId:u,associationName:c}}function h(e,t){var r,n,i;let o=null==(r=e.inputArgs)?void 0:r.record,l=null==(n=e.collection)?void 0:n.filterTargetKey;if(!o||!l)return;let s=t.view,a=null==s||null==(i=s.inputArgs)?void 0:i.filterByTk,u=o[l];if(null!=a&&null!=u&&a===u)return c().cloneDeep(o)}function p(e,t){return r=>{var n,i,o,l;if(!("record"===r||r.startsWith("record.")))return!1;let a=t();if(!a)return!0;if("record"===r)return!1;let c=d(e),u=null==c?void 0:c.collection,h=(null==c?void 0:c.dataSourceKey)||"main";if(!u)return!0;let p=null==(i=e.dataSourceManager)||null==(n=i.getDataSource)?void 0:n.call(i,h),f=null==p||null==(l=p.collectionManager)||null==(o=l.getCollection)?void 0:o.call(l,u);if(!f)return!0;let m=(0,s.H)(()=>f,()=>a),g=r.startsWith("record.")?r.slice(7):"";return!!g&&m(g)}}function f(e,t){let r=(0,s.H)(e,()=>t());return n=>{let i=t();if(!i)return!0;if(!n)return!1;let o=e();if(!n.includes(".")){var l;let e,t=n;return o&&("function"==typeof o.getField&&(e=o.getField(t)),e||"function"!=typeof o.getFields||(e=(o.getFields()||[]).find(e=>(null==e?void 0:e.name)===t))),!!(null==e||null==(l=e.isAssociationField)?void 0:l.call(e))&&null==(null==i?void 0:i[t])}return r(n)}}async function m(e,t,r){let n=await (0,l.H)(e,t,!0)();return n?{...n,buildVariablesParams:e=>r?r(e):u(e)}:null}function g(e,t,r){let n=async()=>m(e,t,r);return n.title=t,n}function y(e,t,r){var n,i;return g(t,(null==r?void 0:r.title)?(null==(n=e.t)?void 0:n.call(e,r.title))||r.title:(null==(i=e.t)?void 0:i.call(e,"Current record"))||"Current record",e=>u(e))}let v=n,w=i;async function b(e,t){let r=Object.keys(i(t)||{});if(!r.length)return;let n={};for(let t of r){var l;let r,i=null==(l=e.getPropertyOptions)?void 0:l.call(e,t),o=null==i?void 0:i.meta;if(o){try{let t="function"==typeof o?await o():o,n=null==t?void 0:t.buildVariablesParams;"function"==typeof n&&(r=await n(e))}catch(e){continue}r&&(n[t]=r)}}return(0,o.d)(e,n)}},52249(e,t,r){r.d(t,{sp:()=>x,bt:()=>_,U:()=>z,N5:()=>O,xB:()=>F,mW:()=>E,fP:()=>N});var n=r(74848),i=r(96540),o=r(99418),l=r(90492),s=r(29007),a=r(52568),c=r(73398);function u(e,t){let r=t=>e.t(t),n=e=>{var t,r;if(!e)return!1;let n=Array.isArray(null==(t=e.navigation)?void 0:t.viewStack)?e.navigation.viewStack:[],i=null==e||null==(r=e.inputArgs)?void 0:r.openerUids,o=Array.isArray(i)&&i.length>0;return n.length>=2||o},i=()=>n(t??e.view),o=async e=>{let r=t??e.view;if(!r||!n(r))return;let i=await d(e,r),o=null==i?void 0:i.resource;return(null==o?void 0:o.collectionName)&&null!=o.filterByTk?{collection:o.collectionName,dataSourceKey:o.dataSourceKey||"main",filterByTk:o.filterByTk,associationName:o.associationName,sourceId:o.sourceId}:(0,c.Cg)(e)},l=async()=>{var t,r,n,i;let l=await o(e);if(!(null==l?void 0:l.collection))return null;let s=null==(r=e.dataSourceManager)||null==(t=r.getDataSource)?void 0:t.call(r,l.dataSourceKey||"main");return(null==s||null==(i=s.collectionManager)||null==(n=i.getCollection)?void 0:n.call(i,l.collection))||null},s=async(t,r)=>{var n,i,o,l,s,a,c;try{let a=r||e,c=null==(n=a.view)?void 0:n.navigation,u=Array.isArray(null==c?void 0:c.viewStack)?c.viewStack:[];if(u.length<2||t<1)return;let d=u.length-1-t;if(d<0)return;let h=u[d];if(!(null==h?void 0:h.viewUid))return;let p=null==(i=a.engine)?void 0:i.getModel(h.viewUid,!0);if(!p)try{p=await a.engine.loadModel({uid:h.viewUid})}catch(t){null==(s=a.logger||e.logger)||null==(l=s.warn)||l.call(s,{err:t},"[FlowEngine] popup.getParentRecordRef loadModel failed")}let f=(null==p||null==(o=p.getStepParams)?void 0:o.call(p,"popupSettings","openView"))||{},m=null==f?void 0:f.collectionName,g=(null==f?void 0:f.dataSourceKey)||"main",y=(null==h?void 0:h.filterByTk)??(null==h?void 0:h.sourceId);if(!m||null==y)return;return{collection:m,dataSourceKey:g,filterByTk:y,sourceId:null==h?void 0:h.sourceId,associationName:null==f?void 0:f.associationName}}catch(t){null==(c=(null==r?void 0:r.logger)||e.logger)||null==(a=c.warn)||a.call(c,{err:t},"[FlowEngine] popup.getParentRecordRef failed");return}},a=r=>{try{var n;let i=null==(n=t??e.view)?void 0:n.navigation;return(Array.isArray(null==i?void 0:i.viewStack)?i.viewStack:[]).length>=r+1}catch(e){return!1}},u=t=>{let n=()=>({type:"object",title:r("Parent popup"),disabled:()=>!a(t),disabledReason:()=>a(t)?void 0:r("No parent popup"),hidden:()=>!a(t),properties:async()=>{let n=await s(t),i={};if(i.uid={type:"string",title:r("Popup uid")},n){let t=(()=>{try{var t,r,i,o;let l=null==(r=e.dataSourceManager)||null==(t=r.getDataSource)?void 0:t.call(r,n.dataSourceKey||"main");return(null==l||null==(o=l.collectionManager)||null==(i=o.getCollection)?void 0:i.call(o,n.collection||""))||null}catch(e){return null}})();i.record=await (0,c.$S)(()=>t,r("Popup record"),()=>n)||{type:"object",title:r("Popup record")}}else i.record={type:"object",title:r("Popup record")};return i.resource={type:"object",title:r("Data source"),properties:async()=>({dataSourceKey:{type:"string",title:r("Data source key")},collectionName:{type:"string",title:r("Collection name")},associationName:{type:"string",title:r("Association name")},filterByTk:{type:"string",title:r("filterByTk")},sourceId:{type:"string",title:r("sourceId")}})},i}});return n.title=r("Parent popup"),n},h=()=>({type:"object",title:r("Current popup"),disabled:()=>!i(),hidden:()=>!i(),buildVariablesParams:async e=>{var t,r,n,l,a,c;if(!i())return;let u=await o(e),d=null==(t=e.view)?void 0:t.inputArgs,h={};if(u){let e={...u};!e.associationName&&(null==d?void 0:d.associationName)&&(e.associationName=d.associationName),void 0===e.sourceId&&void 0!==(null==d?void 0:d.sourceId)&&(e.sourceId=null==d?void 0:d.sourceId),h.record=e}try{let t=null==(r=e.view)?void 0:r.navigation;if((Array.isArray(null==t?void 0:t.viewStack)?t.viewStack:[]).length>=2){let t=h,r=1,n=await s(r,e);for(;n;)t.parent||(t.parent={}),t.parent.record=n,t=t.parent,r+=1,n=await s(r,e)}}catch(t){null==(l=e.logger)||null==(n=l.debug)||n.call(l,{err:t},"[FlowEngine] buildVariablesParams: build parent-chain failed")}try{let e=null==d?void 0:d.sourceId,t=null==d?void 0:d.associationName,r=(null==d?void 0:d.dataSourceKey)||"main";if(null!=e&&""!==e&&t&&"string"==typeof t){let n=String(t).split(".")[0];n&&(h.sourceRecord={collection:n,dataSourceKey:r,filterByTk:e})}}catch(t){null==(c=e.logger)||null==(a=c.debug)||a.call(c,{err:t},"[FlowEngine] buildVariablesParams: infer sourceRecord failed")}return h},properties:async()=>{var t,n,i,a,d,h;let p={};if(p.uid={type:"string",title:r("Popup uid")},await o(e)){let e=async()=>{let e=await l();return e?await (0,c.$S)(()=>e,r("Current popup record"),e=>o(e)):null};e.title=r("Current popup record"),e.hasChildren=!0,p.record=e}try{let o=null==(t=e.view)?void 0:t.inputArgs,l=null==o?void 0:o.sourceId,s=null==o?void 0:o.associationName,u=(null==o?void 0:o.dataSourceKey)||"main";if(!s||"string"!=typeof s||!s.includes(".")){let t=null==(n=e.view)?void 0:n.navigation,r=Array.isArray(null==t?void 0:t.viewStack)?t.viewStack:[],o=null==r?void 0:r[r.length-1];if(null==o?void 0:o.viewUid){let t=null==e||null==(i=e.engine)?void 0:i.getModel(o.viewUid,!0);t||(t=await e.engine.loadModel({uid:o.viewUid}));let r=(null==t||null==(a=t.getStepParams)?void 0:a.call(t,"popupSettings","openView"))||{};s=(null==r?void 0:r.associationName)||s,u=(null==r?void 0:r.dataSourceKey)||u}}if(null!=l&&""!==l&&s&&"string"==typeof s){let t=String(s).includes(".")?String(s).split(".")[0]:void 0;if(t){let n=()=>{try{var r,n,i,o;let l=null==(n=e.dataSourceManager)||null==(r=n.getDataSource)?void 0:r.call(n,u);return(null==l||null==(o=l.collectionManager)||null==(i=o.getCollection)?void 0:i.call(o,t))||null}catch(e){return null}},i=await (0,c.$S)(n,r("Current popup parent record"),()=>({collection:t,dataSourceKey:u,filterByTk:l}));i&&(p.sourceRecord=i)}}}catch(t){null==(h=e.logger)||null==(d=h.debug)||d.call(h,{err:t},"[FlowEngine] popup.properties: build sourceRecord failed")}return p.resource={type:"object",title:r("Data source"),properties:async()=>({dataSourceKey:{type:"string",title:r("Data source key")},collectionName:{type:"string",title:r("Collection name")},associationName:{type:"string",title:r("Association name")},filterByTk:{type:"string",title:r("filterByTk")},sourceId:{type:"string",title:r("sourceId")}})},await s(1)&&(p.parent=u(1)),p}});return h.title=r("Current popup"),h.sort=975,h}async function d(e,t){var r,n,i;let o=null==t?void 0:t.navigation,l=Array.isArray(null==o?void 0:o.viewStack)?o.viewStack:[],s=null==t||null==(r=t.inputArgs)?void 0:r.openerUids,a=Array.isArray(s)&&s.length>0;if(!(l.length>=2||a))return;if(!l.length){let e=(null==t?void 0:t.inputArgs)||{};if(!(e.collectionName||null!=e.filterByTk||null!=e.sourceId||e.associationName||e.viewUid))return;return{uid:e.viewUid,resource:{dataSourceKey:e.dataSourceKey||"main",collectionName:e.collectionName,associationName:e.associationName,filterByTk:e.filterByTk,sourceId:e.sourceId}}}let c=async t=>{var r,n,i,o,s,a;if(t<0||!(null==(r=l[t])?void 0:r.viewUid))return;let u=l[t].viewUid,d=null==(n=e.engine)?void 0:n.getModel(u,!0);d||(d=await (null==(a=e.engine)?void 0:a.loadModel({uid:u})));let h=(null==d||null==(i=d.getStepParams)?void 0:i.call(d,"popupSettings","openView"))||{},p=null==h?void 0:h.collectionName,f={uid:u,resource:{dataSourceKey:(null==h?void 0:h.dataSourceKey)||"main",collectionName:p,associationName:null==h?void 0:h.associationName,filterByTk:null==(o=l[t])?void 0:o.filterByTk,sourceId:null==(s=l[t])?void 0:s.sourceId}},m=await c(t-1);return m&&(f.parent=m),f};return await c(((null==t||null==(i=t.navigation)||null==(n=i.viewStack)?void 0:n.length)||1)-1)}function h(e,t){let r=/^(?:record|sourceRecord)(?:\.|$)|^parent(?:\.parent)*(?:\.(?:record|sourceRecord))(?:\.|$)/;e.defineProperty("popup",{get:async()=>d(e,t),meta:u(e,t),resolveOnServer:e=>{try{return!!e&&r.test(e)}catch(e){return!1}}})}var p=r(18182);let f=(0,i.forwardRef)((e,t)=>{let{afterClose:r,footer:o,header:l,hidden:s,...a}=e,[c,u]=(0,i.useState)(!0),[d,h]=(0,i.useState)(a),[f,m]=(0,i.useState)(()=>o),[g,y]=(0,i.useState)(l);(0,i.useImperativeHandle)(t,()=>({destroy:()=>{u(!1),null==r||r()},update:e=>h(t=>({...t,...e})),setFooter:e=>{m(e)},setHeader:e=>{0===Object.values(e||{}).length?y(null):y(e)}}));let v={...d,title:(null==g?void 0:g.title)||d.title,extra:null==g?void 0:g.extra,footer:void 0!==f?f:d.footer??null},w=i.useMemo(()=>document.querySelector("#nocobase-app-container"),[]);return(0,n.jsx)(p.A,{closable:!1,rootClassName:s?"nb-hidden":"",getContainer:w,...v,open:c,onCancel:d.onCancel,afterClose:()=>{null==r||r()},children:d.children})});function m(){let[e,t]=i.useState([]);return[e,i.useCallback(e=>(t(t=>[...t,e]),()=>{t(t=>t.filter(t=>t!==e))}),[])]}var g=r(16639),y=r(20616),v=r(47451);async function w(e,t){var r;return!!t.force||!1!==await (null==(r=e.beforeClose)?void 0:r.call(e,t))}let b=0;function x(){let e=i.useRef(null),t=(t,r)=>{var u,d,p;let m,x,S=null==r?void 0:r.engine;b+=1;let A=i.createRef(),M=new Promise(e=>{x=e}),_=null,k=null,P=e=>{let{children:t}=e;return i.useEffect(()=>{var e;return _=t,null==(e=A.current)||e.setFooter(t),()=>{var e;_=null,null==(e=A.current)||e.setFooter(null)}},[t]),null},C=e=>(i.useEffect(()=>{var t;return k=e,null==(t=A.current)||t.setHeader(e),()=>{var e;k=null,null==(e=A.current)||e.setHeader(null)}},[e]),null),j=new s.cB,R=(0,v._)(r.engine),E=(0,g.eX)(S,R);j.defineProperty("engine",{value:R}),j.addDelegate(R.context),!1!==t.inheritContext?j.addDelegate(r):j.addDelegate(r.engine.context);let F=!1,T={type:"dialog",inputArgs:t.inputArgs||{},preventClose:!!t.preventClose,beforeClose:void 0,destroy:e=>{var r,n,i,o;if(F)return;F=!0,null==(r=t.onClose)||r.call(t),null==(n=A.current)||n.destroy(),null==m||m(),null==x||x(e);let l=null==E?void 0:E.emitter;(0,g.Z8)(l),null==l||null==(o=l.emit)||o.call(l,g.B9,{type:"dialog",viewUid:null==T||null==(i=T.inputArgs)?void 0:i.viewUid}),R.unlinkFromStack()},update:e=>{var t;return null==(t=A.current)?void 0:t.update(e)},close:async(e,r)=>{var n,i;return(!t.preventClose||!!r)&&!!await w(T,{result:e,force:r})&&(t.triggerByRouter&&(null==(i=t.inputArgs)||null==(n=i.navigation)?void 0:n.back)?t.inputArgs.navigation.back():T.destroy(e),!0)},Footer:P,Header:C,setFooter:e=>{var t;_=e,null==(t=A.current)||t.setFooter(e)},setHeader:e=>{var t;k=e,null==(t=A.current)||t.setHeader(e)},navigation:null==(u=t.inputArgs)?void 0:u.navigation,get record(){return(0,c.vE)(r,j)}};j.defineProperty("view",{get:()=>T,resolveOnServer:(0,c.Xx)(j,()=>(0,c.vE)(r,j))}),R.setDestroyView(()=>{var e,r;t.triggerByRouter&&(null==(r=t.inputArgs)||null==(e=r.navigation)?void 0:e.back)&&t.inputArgs.navigation.back(),T.destroy()}),h(j,T);let O=(0,l.observer)(()=>{var e,r,l,s;let a=i.useRef(!1),c="function"==typeof t.content?t.content(T,j):t.content,u="string"==typeof c?(0,n.jsx)("div",{dangerouslySetInnerHTML:{__html:o.A.sanitize(c)}}):c;return(i.useEffect(()=>{var e;null==(e=t.onOpen)||e.call(t,T,j)},[]),(null==(r=t.inputArgs)||null==(e=r.hidden)?void 0:e.value)&&!a.current)?null:(a.current=!0,(0,n.jsx)(f,{className:"nb-dialog-overflow-hidden",ref:A,hidden:null==(s=t.inputArgs)||null==(l=s.hidden)?void 0:l.value,footer:_,header:k,...t,onCancel:()=>{T.close(t.result)},children:u}))},{displayName:"DialogWithContext"}),I=(null==t||null==(d=t.inputArgs)?void 0:d.viewUid)||`page-${b}`,$=(0,n.jsx)(y.I6,{engine:R,children:(0,n.jsx)(a.YQ,{context:j,children:(0,n.jsx)(O,{})})},I);return m=null==(p=e.current)?void 0:p.patchElement($),Object.assign(M,T)},r=i.useMemo(()=>({open:t}),[]),u=i.memo(i.forwardRef((e,t)=>{let[r,o]=m();return i.useImperativeHandle(t,()=>({patchElement:o}),[o]),(0,n.jsx)(n.Fragment,{children:r})}));return[r,(0,n.jsx)(u,{ref:e},"dialog-holder")]}var S=r(97134),A=r(61793);let M=i.forwardRef((e,t)=>{var r;let{children:o,footer:l,title:s,extra:a,hidden:c,isMobile:u,...d}=e,[h,p]=i.useState(!0),[f,m]=i.useState(()=>l),[g,y]=i.useState({title:s,extra:a,...d.header});i.useImperativeHandle(t,()=>({destroy:()=>{p(!1)},update:e=>{Object.assign(d,e)},setFooter:e=>{m(e)},setHeader:e=>{0===Object.values(e||{}).length?y(null):y(e)}}),[]);let v=i.useMemo(()=>document.querySelector("#nocobase-app-container"),[]);return u?(0,n.jsx)(A.D,{className:c?"nb-hidden":"",visible:h,...d,footer:f,...g,onClose:d.onClose,children:o}):(0,n.jsx)(S.A,{rootClassName:c?"nb-hidden":"",closable:!1,getContainer:v,...d,open:h,footer:f,styles:{...d.styles,footer:{display:"flex",justifyContent:"flex-end",...null==(r=d.styles)?void 0:r.footer}},...g,onClose:d.onClose,children:o})});function _(){let e=i.useRef(null),t=i.useMemo(()=>l.observable.shallow({value:[]}),[]),r=i.memo(e=>{let{index:o}=e,[s,a]=i.useState(null);return(i.useEffect(()=>{(0,l.autorun)(()=>{let e=t.value;e[o]&&s!==e[o]&&a(e[o]),e[o]||a(null)})},[s,o]),s)?(0,n.jsx)(s,{children:(0,n.jsx)(r,{index:o+1})}):null});r.displayName="RenderNestedDrawer";let u=(t,r)=>{var u,d;let p,f,m=r.engine,b=i.createRef(),x=new Promise(e=>{f=e}),S=null,A=null,_=e=>{let{children:t}=e;return i.useEffect(()=>{var e;return S=t,null==(e=b.current)||e.setFooter(t),()=>{var e;S=null,null==(e=b.current)||e.setFooter(null)}},[t]),null},k=e=>(i.useEffect(()=>{var t;return A=e,null==(t=b.current)||t.setHeader(e),()=>{var e;A=null,null==(e=b.current)||e.setHeader(null)}},[e]),null),P=new s.cB,C=(0,v._)(r.engine),j=(0,g.eX)(m,C);P.defineProperty("engine",{value:C}),P.addDelegate(C.context),!1!==t.inheritContext?P.addDelegate(r):P.addDelegate(r.engine.context);let R=!1,E={type:"drawer",inputArgs:t.inputArgs||{},preventClose:!!t.preventClose,beforeClose:void 0,destroy:e=>{var r,n,i,o;if(R)return;R=!0,null==(r=t.onClose)||r.call(t),null==(n=b.current)||n.destroy(),null==p||p(),null==f||f(e);let l=null==j?void 0:j.emitter;(0,g.Z8)(l),null==l||null==(o=l.emit)||o.call(l,g.B9,{type:"drawer",viewUid:null==E||null==(i=E.inputArgs)?void 0:i.viewUid}),C.unlinkFromStack()},update:e=>{var t;return null==(t=b.current)?void 0:t.update(e)},close:async(e,r)=>{var n,i;return(!t.preventClose||!!r)&&!!await w(E,{result:e,force:r})&&(t.triggerByRouter&&(null==(i=t.inputArgs)||null==(n=i.navigation)?void 0:n.back)?t.inputArgs.navigation.back():E.destroy(e),!0)},Footer:_,Header:k,setFooter:e=>{var t;S=e,null==(t=b.current)||t.setFooter(e)},setHeader:e=>{var t;A=e,null==(t=b.current)||t.setHeader(e)},navigation:null==(u=t.inputArgs)?void 0:u.navigation,get record(){return(0,c.vE)(r,P)}};P.defineProperty("view",{get:()=>E,resolveOnServer:(0,c.Xx)(P,()=>(0,c.vE)(r,P))}),C.setDestroyView(()=>{var e,r;t.triggerByRouter&&(null==(r=t.inputArgs)||null==(e=r.navigation)?void 0:e.back)&&t.inputArgs.navigation.back(),E.destroy()}),h(P,E);let F=i.memo((0,l.observer)(e=>{var r,l,s,a;let c=i.useRef(!1),u="function"==typeof t.content?t.content(E,P):t.content,d="string"==typeof u?(0,n.jsx)("div",{dangerouslySetInnerHTML:{__html:o.A.sanitize(u)}}):u;return(i.useEffect(()=>{var e;null==(e=t.onOpen)||e.call(t,E,P)},[]),(null==(l=t.inputArgs)||null==(r=l.hidden)?void 0:r.value)&&!c.current)?(0,n.jsx)(n.Fragment,{children:e.children}):(c.current=!0,(0,n.jsxs)(M,{ref:b,...t,footer:S,header:t.header||A,hidden:null==(a=t.inputArgs)||null==(s=a.hidden)?void 0:s.value,onClose:()=>{E.close(t.result)},isMobile:P.isMobileLayout,children:[d,e.children]}))}));F.displayName="DrawerWithContext";let T=i.memo(e=>{let{children:t}=e;return(0,n.jsx)(y.I6,{engine:C,children:(0,n.jsx)(a.YQ,{context:P,children:(0,n.jsx)(F,{children:t})})})});return T.displayName="RenderDrawer",p=null==(d=e.current)?void 0:d.patchElement(T),Object.assign(x,E)},d=i.useMemo(()=>({open:u}),[]),p=i.memo(i.forwardRef((e,o)=>{let[l,s]=m();return i.useImperativeHandle(o,()=>({patchElement:s}),[s]),i.useEffect(()=>{t.value=l},[l]),(0,n.jsx)(r,{index:0})}));return[d,(0,n.jsx)(p,{ref:e},"drawer-holder")]}var k=r(40961),P=r(31333),C=r(71021);let j=(0,i.forwardRef)((e,t)=>{let[r,o]=i.useState({}),{visible:l=!0,footer:s=null,header:a=null,children:c,hidden:u,title:d,styles:h={},zIndex:p=4}={...e,...r},f=(0,i.useRef)(!1),m=(0,y.uf)(),[g,v]=(0,i.useState)(()=>s),[w,b]=(0,i.useState)(a);(0,i.useImperativeHandle)(t,()=>({destroy:()=>{f.current||(f.current=!0)},update:e=>{o(e)},setFooter:e=>{v(e)},setHeader:e=>{0===Object.values(e||{}).length?b(null):b(e)}}));let x=(0,i.useMemo)(()=>({display:u?"none":"flex",flexDirection:"column",height:"100%",zIndex:p}),[u,p]),S=(0,i.useMemo)(()=>{if(!w&&!d)return null;let{title:t=d,extra:r}=w||{},i=m.context.themeToken;return(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:`${i.paddingSM}px ${i.padding}px`,borderBottom:`1px solid ${i.colorSplit}`,backgroundColor:i.colorBgContainer,...h.header},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:i.marginXS},children:[(0,n.jsx)(C.Ay,{type:"text",size:"small",icon:(0,n.jsx)(P.A,{}),onClick:()=>{if(!f.current){var t;f.current=!0,null==(t=e.onClose)||t.call(e)}},style:{color:i.colorTextTertiary}}),t&&(0,n.jsx)("div",{style:{fontSize:i.fontSizeLG,fontWeight:i.fontWeightStrong,color:i.colorText},children:t})]}),r&&(0,n.jsx)("div",{children:r})]})},[w,d,m.context.themeToken,h.header,e.onClose]),A=(0,i.useMemo)(()=>{if(!g)return null;let e=m.context.themeToken;return(0,n.jsx)("div",{style:{display:"flex",justifyContent:"flex-end",alignItems:"center",padding:`${e.paddingXS}px ${e.padding}px`,borderTop:`1px solid ${e.colorSplit}`,backgroundColor:e.colorBgContainer,...h.footer},children:g})},[g,m.context.themeToken,h.footer]);return l?(0,n.jsxs)("div",{style:{...x,...h.content},children:[S,(0,n.jsx)("div",{style:{flex:1,overflowY:"auto",...h.body},children:c}),A]}):null}),R=0,E="nocobase-embed-container",F="nocobaseEmbedReplacing",T=i.memo(i.forwardRef((e,t)=>{let[r,o]=m();return i.useImperativeHandle(t,()=>({patchElement:o}),[o]),(0,n.jsx)(n.Fragment,{children:r})}));function O(){let e=i.useRef(null),t=i.useRef(null),r=(r,o)=>{var u,d,p;let f,m,b=null==o?void 0:o.engine;R+=1;let x=i.createRef(),S=new Promise(e=>{m=e}),A=e=>{let{children:t}=e;return i.useEffect(()=>{var e;return null==(e=x.current)||e.setFooter(t),()=>{var e;null==(e=x.current)||e.setFooter(null)}},[t]),null},M=e=>(i.useEffect(()=>{var t;return null==(t=x.current)||t.setHeader(e),()=>{var e;null==(e=x.current)||e.setHeader(null)}},[e]),null),{target:_,content:P,preventClose:C,inheritContext:T=!0,inputArgs:O={},...I}=r,$=_ instanceof HTMLElement&&_.id===E;if($&&t.current)try{_.dataset[F]="1",t.current.destroy()}finally{delete _.dataset[F],t.current=null}let D=new s.cB,N=(0,v._)(o.engine),B=(0,g.eX)(b,N);D.defineProperty("engine",{value:N}),D.addDelegate(N.context),T?D.addDelegate(o):D.addDelegate(o.engine.context);let L={type:"embed",inputArgs:O,preventClose:!!r.preventClose,beforeClose:void 0,destroy:e=>{var n,i,o,l,s;if(null==(n=r.onClose)||n.call(r),null==m||m(e),null==(i=x.current)||i.destroy(),null==f||f(),$&&(t.current=null),!($&&_ instanceof HTMLElement&&(null==(o=_.dataset)?void 0:o[F])==="1")){let e=null==B?void 0:B.emitter;(0,g.Z8)(e),null==e||null==(s=e.emit)||s.call(e,g.B9,{type:"embed",viewUid:null==L||null==(l=L.inputArgs)?void 0:l.viewUid})}N.unlinkFromStack()},update:e=>{var t;return null==(t=x.current)?void 0:t.update(e)},close:async(e,t)=>{var n,i;return(!C||!!t)&&!!await w(L,{result:e,force:t})&&(r.triggerByRouter&&(null==(i=r.inputArgs)||null==(n=i.navigation)?void 0:n.back)?r.inputArgs.navigation.back():L.destroy(e),!0)},Header:M,Footer:A,setFooter:e=>{var t;null==(t=x.current)||t.setFooter(e)},setHeader:e=>{var t;null==(t=x.current)||t.setHeader(e)},navigation:null==(u=r.inputArgs)?void 0:u.navigation,get record(){return(0,c.vE)(o,D)}};D.defineProperty("view",{get:()=>L,resolveOnServer:(0,c.Xx)(D,()=>(0,c.vE)(o,D))}),h(D,L);let q=(0,l.observer)(()=>{var e,t,o,l;let s=i.useRef(!1),a=i.useMemo(()=>"function"==typeof P?P(L,D):P,[]);return(D.themeToken,i.useEffect(()=>{var e;null==(e=r.onOpen)||e.call(r,L,D)},[]),(null==(t=r.inputArgs)||null==(e=t.hidden)?void 0:e.value)&&!s.current)?null:(s.current=!0,(0,n.jsx)(j,{ref:x,hidden:null==(l=r.inputArgs)||null==(o=l.hidden)?void 0:o.value,...I,onClose:()=>{L.close(r.result)},children:a}))},{displayName:"PageWithContext"}),U=(null==O?void 0:O.viewUid)||`page-${R}`,z=(0,n.jsx)(y.I6,{engine:N,children:(0,n.jsx)(a.YQ,{context:D,children:(0,n.jsx)(q,{})})},U);return f=_&&_ instanceof HTMLElement?null==(d=e.current)?void 0:d.patchElement(k.createPortal(z,_,U)):null==(p=e.current)?void 0:p.patchElement(z),$&&(t.current={destroy:L.destroy}),Object.assign(S,L)};return[i.useMemo(()=>({open:r}),[]),(0,n.jsx)(T,{ref:e},"page-holder")]}var I=r(28073);let $=0,D=i.forwardRef((e,t)=>{var r,o;let{afterClose:l,content:s,placement:a,rect:c,...u}=e,[d,h]=i.useState(!0),[p,f]=i.useState({content:s,placement:a,rect:c,...u});return i.useImperativeHandle(t,()=>({destroy:()=>h(!1),update:e=>f(t=>({...t,...e})),close:(e,t)=>h(!1)})),i.useEffect(()=>{d||null==l||l()},[d,l]),(0,n.jsx)(I.A,{arrow:!1,open:d,trigger:["click"],destroyTooltipOnHide:!0,content:p.content,placement:p.placement,getPopupContainer:()=>document.querySelector("#nocobase-app-container")||document.body,onOpenChange:e=>{(e||!p.preventClose)&&(h(e),e||null==l||l())},...p,children:(0,n.jsx)("span",{style:{position:"absolute",top:((null==(r=p.rect)?void 0:r.top)??0)+window.scrollY,left:((null==(o=p.rect)?void 0:o.left)??0)+window.scrollX,width:0,height:0}})})});function N(){let e=i.useRef(null),t=t=>{var r,l;let s,a;$+=1;let{target:c,placement:u="rightTop",content:d,...h}=t,p=i.createRef(),f=(null==c||null==(r=c.getBoundingClientRect)?void 0:r.call(c))??{top:0,left:0},m=new Promise(e=>{a=e}),g={type:"popover",destroy:()=>{var e;return null==(e=p.current)?void 0:e.destroy()},update:e=>{var t;return null==(t=p.current)?void 0:t.update(e)},close:e=>{var t;null==a||a(e),null==(t=p.current)||t.close(e)}},y="function"==typeof d?d(g):d,v="string"==typeof y?(0,n.jsx)("div",{dangerouslySetInnerHTML:{__html:o.A.sanitize(y)}}):y,w=(0,n.jsx)(D,{ref:p,content:v,placement:u,rect:f,afterClose:()=>{var e;null==s||s(),null==(e=t.onClose)||e.call(t),null==a||a(t.result)},...h},`popover-${$}`);return s=null==(l=e.current)?void 0:l.patchElement(w),Object.assign(m,g)},r=i.useMemo(()=>({open:t}),[]),l=i.memo(i.forwardRef((e,t)=>{let[r,o]=m();return i.useImperativeHandle(t,()=>({patchElement:o}),[]),(0,n.jsx)(n.Fragment,{children:r})}));return[r,(0,n.jsx)(l,{ref:e},"popover-holder")]}var B=r(50467),L=r(52847);function q(e){return null==e?"":e&&"object"==typeof e&&!Array.isArray(e)?encodeURIComponent(Object.entries(e).map(e=>{let[t,r]=e;return`${encodeURIComponent(String(t))}=${encodeURIComponent(String(r))}`}).join("&")):encodeURIComponent(String(e))}function U(e){if(!e||0===e.length)return"/admin";let t=["admin"];return e.forEach((e,r)=>{if(r>0&&t.push("view"),t.push(e.viewUid),e.tabUid&&t.push("tab",e.tabUid),null!=e.filterByTk){let r=q(e.filterByTk);r&&t.push("filterbytk",r)}e.sourceId&&t.push("sourceid",e.sourceId)}),"/"+t.join("/")}class z{setViewStack(e){this.viewStack=Object.freeze([...e]),this.viewParams=this.viewStack[this.viewStack.length-1]||{}}changeTo(e){let t=U(this.viewStack.map((t,r)=>r===this.viewStack.length-1?{...t,...e}:{...t}));this.ctx.router.navigate(t,{replace:!0})}navigateTo(e,t){let r=U([...this.viewStack,e]);this.ctx.router.navigate(r,t)}back(){let e=U(this.viewStack.slice(0,-1));this.ctx.router.navigate(e,{replace:!0})}constructor(e,t){(0,B._)(this,"viewStack",void 0),(0,B._)(this,"ctx",void 0),(0,B._)(this,"viewParams",void 0),this.setViewStack(t),this.ctx=e,(0,L.E8)(this,{viewParams:L.sH})}}},16639(e,t,r){r.d(t,{B9:()=>i,FH:()=>a,HK:()=>o,Z8:()=>c,eX:()=>h,i6:()=>l,tb:()=>n});let n=Symbol.for("__NOCOBASE_VIEW_ACTIVATED_VERSION__"),i="view:activated",o="dataSource:dirty",l="__NOCOBASE_ENGINE_SCOPE__",s="view";function a(e){let t=Reflect.get(e,n),r="number"==typeof t?t:Number(t);return Number.isFinite(r)&&r>0?r:0}function c(e){let t=a(e);if(!Object.isExtensible(e))return t;let r=t+1;return Reflect.set(e,n,r),r}function u(e){return Reflect.get(e,l)===s}function d(e){let t=e,r=0;for(;t&&r++<50;){if(u(t))return t;t=t.previousEngine}}function h(e,t){if(!e)return;let r=d(e);return r||d(null==t?void 0:t.previousEngine)||e}},59598(){},14892(){},2813(){}};import{__webpack_require__}from"./runtime-d6e0ee3d.js";var __webpack_exec__=function(e){return __webpack_require__(__webpack_require__.s=e)};import*as __rspack_chunk_1 from"./vendor-antd-ecosystem-1ffc870c.js";__webpack_require__.C(__rspack_chunk_1);import*as __rspack_chunk_2 from"./vendor-moment-84b317dc.js";__webpack_require__.C(__rspack_chunk_2);import*as __rspack_chunk_3 from"./vendor-lodash-831bd1b8.js";__webpack_require__.C(__rspack_chunk_3);import*as __rspack_chunk_4 from"./vendor-ses-b7bccbcd.js";__webpack_require__.C(__rspack_chunk_4);import*as __rspack_chunk_5 from"./vendor-antd-icons-db04cf76.js";__webpack_require__.C(__rspack_chunk_5);import*as __rspack_chunk_6 from"./vendor-antd-05d1c710.js";__webpack_require__.C(__rspack_chunk_6);import*as __rspack_chunk_7 from"./6064-1517304e.js";__webpack_require__.C(__rspack_chunk_7);import*as __rspack_chunk_8 from"./index-a2c43823.js";__webpack_require__.C(__rspack_chunk_8),__webpack_exec__(96101);
|
|
268
|
+
${e}`:e}function eH(e,t,r){let n=eO(e,r);if(":"!==e[n])return!1;let i=eD(e,t-1),o=i>=0?e[i]:"";return"{"===o||","===o}function eJ(e,t,r,n){let i=Array.from(new Set(t));if(!i.length)return e;let o=e;for(let e of i){let t=r(e);o=`(${o}).split(${JSON.stringify(e)}).join(${n}(${t}, ${JSON.stringify(e)}))`}return o}function eY(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!ey.test(e))return e;let r=!1!==t.processBarePlaceholders,n=!1!==t.processStringLiterals;if(r&&n&&eS.test(e)||r&&!n&&eb.test(e)||!r&&n&&ex.test(e))return e;let i=new Map,o=[],l=!1,s=new Set,a=(t=>{if(!e.includes(t)&&!s.has(t))return s.add(t),t;let r=1;for(;e.includes(`${t}_${r}`)||s.has(`${t}_${r}`);)r+=1;let n=`${t}_${r}`;return s.add(n),n})(ew),u=0,c=()=>{for(;;){let t=`__runjs_ctx_tpl_${u}`;if(u+=1,!(e.includes(t)||s.has(t)))return s.add(t),t}},d=e=>{let t=i.get(e);if(t)return t;let r=c();return i.set(e,r),o.push(`const ${r} = await ctx.resolveJsonTemplate(${JSON.stringify(e)});`),r},h="",p=0,f=!1,g=0;for(;p<e.length;){let t=e[p],i=e[p+1];if("/"===t&&"/"===i){let t=eC(e,p);h+=e.slice(p,t),p=t;continue}if("/"===t&&"*"===i){let t=eF(e,p);h+=e.slice(p,t),p=t;continue}if("'"===t||'"'===t){let r=eT(e,p,t),i=e.slice(p,r);if(n&&0===g){let t=e$(i);if(t.length){l=!0;let n=eJ(i,t,d,a);h+=eH(e,p,r)?`[${n}]`:n}else h+=i}else h+=i;p=r;continue}if("`"===t){let t=eI(e,p),r=e.slice(p,t);if(n&&0===g){let n=e$(r);if(n.length){l=!0;let i=eJ(r,n,d,a);h+=eH(e,p,t)?`[${i}]`:i}else h+=r}else h+=r;p=t;continue}if(0===g&&!f&&eP(e,p)){h+=em,p+=em.length,f=!0;continue}if(f){if(/\s/.test(t)){h+=t,p+=1;continue}if("("===t){h+=t,p+=1,f=!1,g=1;continue}f=!1;continue}if(g>0){"("===t?g+=1:")"===t&&(g-=1),h+=t,p+=1;continue}if(r&&"{"===t&&"{"===i){let t=e.indexOf("}}",p+2);if(-1!==t){let r=e.slice(p,t+2);if(eR(r)){h+=d(r),p=t+2;continue}}}h+=t,p+=1}if(!o.length)return h;let m=[];return l&&m.push(`const ${a} = (value, placeholder) => {`," if (typeof value === 'undefined') return placeholder;"," if (typeof value === 'object' && value !== null) {"," try {"," return JSON.stringify(value);"," } catch (e) {"," return String(value);"," }"," }"," return String(value);","};"),m.push(...o),`${m.join("\n")}
|
|
269
|
+
${h}`}async function eG(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r="string"==typeof e?e:String(e??""),n=!!t.preprocessTemplates,i=n?ek.withTemplates:ek.withoutTemplates,o=eM(i,r);if(o)return await o;let l=(async()=>{if(!n)return eK(await (0,eg.W)(r));let e=eY(r,{processStringLiterals:!1});return eK(eY(await (0,eg.W)(e),{processBarePlaceholders:!1}))})();eE(i,r,l,eA);try{return await l}catch(e){throw i.delete(r),e}}var eZ=r(62572);function eX(e){if(Array.isArray(e)){let t=e.map(e=>eX(e)).filter(e=>void 0!==e);return t.length?t:void 0}if(e&&"object"==typeof e){let t={};return Object.keys(e).forEach(r=>{let n=eX(e[r]);void 0!==n&&(t[r]=n)}),Object.keys(t).length?t:void 0}return null==e||"string"==typeof e&&""===e?void 0:e}let eQ=e=>"string"==typeof e.on?"beforeRender"===e.on:"object"==typeof e.on?"beforeRender"===e.on.eventName:!e.on&&!0!==e.manual;var e0=r(47684)},49773(e,t,r){r.d(t,{W:()=>n});async function n(e){if(!/<[A-Za-z]|<\//.test(e))return e;try{var t;let n=await r.e("7761").then(r.bind(r,1608)),i=(null==n?void 0:n.transform)||(null==n||null==(t=n.default)?void 0:t.transform);if("function"!=typeof i)return e;let o=i(e,{transforms:["jsx"],jsxPragma:"ctx.React.createElement",jsxFragmentPragma:"ctx.React.Fragment",disableESTransforms:!0,production:!0});return(o&&(o.code||(null==o?void 0:o.output)))??e}catch(t){return e}}},35339(e,t,r){r.d(t,{gG:()=>l,o4:()=>h,mv:()=>s,M:()=>p});let n=(e,t,r)=>{if(!e)return r;let i=t.split("."),o=[],l=e,s=!1;for(let e=0;e<i.length;e++){let t=i[e];if(Array.isArray(l)){for(let t of(s=!0,l)){let l=n(t,i.slice(e).join("."),r);o=o.concat(l)}break}if((null==l?void 0:l[t])===void 0)break;l=l[t],e===i.length-1&&o.push(l)}return 0===(o=o.filter(e=>void 0!==e)).length?r:s?o.filter(e=>null!==e):o[0]};var i=r(2543),o=r.n(i);async function l(e,t){if(!e)return{};if("function"==typeof e)try{return await e(t)||{}}catch(e){return console.error("Error resolving defaultParams function:",e),{}}return e}async function s(e,t,r){if(!e)return{};if("function"==typeof e)try{return await e(t,r)||{}}catch(e){return console.error("Error resolving createModelOptions function:",e),{}}return e}let a={queue:[],timer:null,inflightByRun:new Map},u=10;function c(e){if(Array.isArray(e))return e.map(c);if(o().isPlainObject(e)){let t=Object.entries(e).map(e=>{let[t,r]=e;return[t,c(r)]});return Object.fromEntries(o().sortBy(t,e=>{let[t]=e;return t}))}return e}function d(e){try{return JSON.stringify(c(e))}catch{try{return JSON.stringify(e)}catch{return String(e)}}}function h(e,t){let r,n,i=a,o=e.runId||"GLOBAL",l=d(t),s=i.inflightByRun.get(o);s||(s=new Map,i.inflightByRun.set(o,s));let c=s.get(l);if(c)return c;let h=new Promise((e,t)=>{r=e,n=t});s.set(l,h);let p={id:`${Date.now()}-${Math.random().toString(36).slice(2)}`,ctx:e,payload:t,resolve:r,reject:n,runId:o,dedupKey:l};i.queue.push(p);let f=async()=>{var t,r,n,o,l,s;let a=i.queue.splice(0,i.queue.length);if(i.timer=null,!a.length)return;let u=null==(t=a[0].ctx)?void 0:t.api;if(!u){for(let e of a)try{e.resolve(e.payload.template)}catch(t){e.reject(t)}finally{null==(r=i.inflightByRun.get(e.runId))||r.delete(e.dedupKey)}return}try{let e=a.map(e=>({id:e.id,template:e.payload.template,contextParams:e.payload.contextParams||{}})),t=await u.request({method:"POST",url:"variables:resolve",data:{values:{batch:e}}}),r=t.data??t,o=r.data??r,l=null==o?void 0:o.results,s=Array.isArray(l)?l:Array.isArray(o)?o:[],c=new Map;for(let e of s){let t=(null==e?void 0:e.id)!=null?String(e.id):"";t&&c.set(t,null==e?void 0:e.data)}for(let e of a)try{let t=String(e.id),r=c.has(t)?c.get(t):e.payload.template;e.resolve(r)}catch(t){e.reject(t)}finally{null==(n=i.inflightByRun.get(e.runId))||n.delete(e.dedupKey)}}catch(t){for(let r of a)try{null==e||null==(l=e.logger)||null==(o=l.warn)||o.call(l,{err:t},"variables:resolve(batch) failed, fallback"),r.resolve(r.payload.template)}catch(e){r.reject(e)}finally{null==(s=i.inflightByRun.get(r.runId))||s.delete(r.dedupKey)}}};return i.timer||(i.timer=setTimeout(f,u)),h}async function p(e,t){let r=async e=>{if("string"==typeof e&&/\{\{.*?\}\}/.test(e))return await m(e,t);if(Array.isArray(e))return Promise.all(e.map(r));if(e&&"object"==typeof e){let t={};for(let[n,i]of Object.entries(e))t[n]=await r(i);return t}return e};return r(e)}async function f(e,t){let r=await g(e.trim(),t),n=await t.runjs(`return ${r}`,{t:t.t});return(null==n?void 0:n.success)?n.value:void 0}async function g(e,t){let r,n=/ctx\.([a-zA-Z_$][a-zA-Z0-9_$]*(?:(?:\.[a-zA-Z_$][a-zA-Z0-9_$]*)|(?:\[[^\]]+\]))*)(?!\s*\()/g,i=[],o=new Set;for(;null!==(r=n.exec(e));){let e=r[0],t=r[1],n=t.match(/^([a-zA-Z_$][a-zA-Z0-9_$]*)/);if(n){let r=n[1],l=t.substring(r.length);i.push({fullPath:e,firstKey:r,restPath:l}),o.add(r)}}if(0===i.length)return e;let l=new Map;for(let e of o)try{let r=await t[e],n=r&&!0===r.__isRecordProxy__;l.set(e,n)}catch(t){l.set(e,!1)}i.sort((e,t)=>t.fullPath.length-e.fullPath.length);let s=e;for(let{fullPath:e,firstKey:t,restPath:r}of i){let n,i=l.get(t)||!1;n=""===r?`await ctx.${t}`:i?`await (await ctx.${t})${r}`:`(await ctx.${t})${r}`;let o=e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),a=RegExp(`\\b${o}\\b`,"g");s=s.replace(a,n)}return s}async function m(e,t){let r=e=>{let t=e.trim().match(/^ctx\.([a-zA-Z_$][a-zA-Z0-9_$]*)(?:\.([a-zA-Z_$][a-zA-Z0-9_$-]*(?:\.[a-zA-Z_$][a-zA-Z0-9_$-]*)*))?$/);return t?t[2]?`${t[1]}.${t[2]}`:t[1]:null},i=async e=>{let r=e.split("."),i=r.shift();if(!i)return;let o=await t[i];return 0===r.length?o:n(o,r.join("."))},o=async e=>{let n=r(e);if(n){let r=await i(n);return void 0===r&&n.includes("-")?await f(e,t):r}return await f(e,t)},l=e.match(/^\s*\{\{\s*([^{}]+?)\s*\}\}\s*$/);if(l){let e=l[1];return await o(e)}let s=[...e.matchAll(/\{\{\s*(.+?)\s*\}\}/g)],a=e;for(let[e,t]of s){let r=await o(t);if(void 0!==r){let t="object"==typeof r&&null!==r?JSON.stringify(r):String(r);a=a.replace(e,t)}}return a}},47684(e,t,r){function n(e,t){if(!e||"string"!=typeof e)throw Error("invalid url");let r=e.trim();if(r.startsWith("http://")||r.startsWith("https://"))return r;let n=window.__esm_cdn_base_url__||"https://esm.sh",i=(null==t?void 0:t.addSuffix)&&window.__esm_cdn_suffix__||"",o=n.replace(/\/$/,""),l=r.replace(/^\//,"");if(null==t?void 0:t.raw){let e=l.includes("?")?"&":"?";return`${o}/${l}${e}raw`}return`${o}/${l}${i}`}function i(e){return!!e&&"string"==typeof e&&e.split("?")[0].split("#")[0].endsWith(".css")}r.d(t,{i:()=>n,y:()=>i})},51143(e,t,r){function n(){var e,t;let r=globalThis;if((null==(e=r.__nocobaseRunJSSafeGlobalsRegistry)?void 0:e.windowAllow)&&(null==(t=r.__nocobaseRunJSSafeGlobalsRegistry)?void 0:t.documentAllow))return r.__nocobaseRunJSSafeGlobalsRegistry;let n={windowAllow:new Set,documentAllow:new Set};return r.__nocobaseRunJSSafeGlobalsRegistry=n,n}function i(e){if(!e)return;let t=n();for(let r of e){if("string"!=typeof r)continue;let e=r.trim();e&&t.windowAllow.add(e)}}function o(e){if(!e)return;let t=n();for(let r of e){if("string"!=typeof r)continue;let e=r.trim();e&&t.documentAllow.add(e)}}function l(e){return n().windowAllow.has(e)}function s(e){return n().documentAllow.has(e)}function a(e){let t=()=>`${window.location.origin}${window.location.pathname}`,r=(e,r,n)=>{if(!(e=>{try{let r=new URL(e,t()),n=r.protocol.toLowerCase();if("about:"===n)return"about:blank"===r.href;return"http:"===n||"https:"===n}catch{return!1}})(e))throw Error("Unsafe URL: window.open only allows http/https/about:blank.");let i="_blank",o=(e=>{let t=new Set;return e&&e.split(",").map(e=>e.trim()).filter(Boolean).forEach(e=>{let r=e.split("=")[0].trim().toLowerCase();"noopener"!==r&&"noreferrer"!==r&&t.add(e)}),t.add("noopener"),t.add("noreferrer"),Array.from(t).join(",")})(n),l=window.open.call(window,e,i,o);if(l&&"opener"in l)try{l.opener=null}catch{}return l},n=(e,n)=>{let i=new URL(e,t()),o=i.protocol.toLowerCase(),l="about:"===o&&"about:blank"===i.href;if("http:"!==o&&"https:"!==o&&!l)throw Error("Unsafe URL: only http/https/about:blank are allowed.");if(l)return(null==n?void 0:n.replace)?window.location.replace("about:blank"):window.location.assign("about:blank");if(i.protocol===window.location.protocol&&i.hostname===window.location.hostname&&i.port===window.location.port)return(null==n?void 0:n.replace)?window.location.replace(i.href):window.location.assign(i.href);if(!r(i.href))throw Error("Popup blocked: cross-origin navigation is opened in a new tab.")},i=new Proxy({},{get(e,t){switch(t){case"origin":return window.location.origin;case"protocol":return window.location.protocol;case"host":return window.location.host;case"hostname":return window.location.hostname;case"port":return window.location.port;case"pathname":return window.location.pathname;case"assign":return e=>n(e,{replace:!1});case"replace":return e=>n(e,{replace:!0});case"reload":return window.location.reload.bind(window.location);case"href":throw Error("Reading location.href is not allowed.");default:throw Error(`Access to location property "${t}" is not allowed.`)}},set(e,t,r){if("href"===t)return n(String(r),{replace:!1}),!0;throw Error("Mutation on location is not allowed.")}}),o={setTimeout:window.setTimeout.bind(window),clearTimeout:window.clearTimeout.bind(window),setInterval:window.setInterval.bind(window),clearInterval:window.clearInterval.bind(window),console,Math,Date,FormData,..."u">typeof Blob?{Blob}:{},..."u">typeof URL?{URL}:{},addEventListener:addEventListener.bind(window),open:r,location:i,...e||{}};return new Proxy(Object.create(null),{get(e,t){if("string"!=typeof t)return Reflect.get(e,t);if(t in o)return o[t];if(Object.prototype.hasOwnProperty.call(e,t))return e[t];if(l(t)){let e=window[t];return"function"==typeof e?e.bind(window):e}throw Error(`Access to global property "${t}" is not allowed.`)},set(e,t,r){if("string"!=typeof t)return Reflect.set(e,t,r),!0;if(t in o)throw Error(`Mutation of global property "${t}" is not allowed.`);return e[t]=r,!0},has:(e,t)=>"string"!=typeof t?Reflect.has(e,t):!!(t in o||Object.prototype.hasOwnProperty.call(e,t)||l(t))})}function u(e){let t={createElement:document.createElement.bind(document),querySelector:document.querySelector.bind(document),querySelectorAll:document.querySelectorAll.bind(document),...e||{}};return new Proxy(Object.create(null),{get(e,r){if("string"!=typeof r)return Reflect.get(e,r);if(r in t)return t[r];if(Object.prototype.hasOwnProperty.call(e,r))return e[r];if(s(r)){let e=document[r];return"function"==typeof e?e.bind(document):e}throw Error(`Access to document property "${r}" is not allowed.`)},set(e,r,n){if("string"!=typeof r)return Reflect.set(e,r,n),!0;if(r in t)throw Error(`Mutation of document property "${r}" is not allowed.`);return e[r]=n,!0},has:(e,r)=>"string"!=typeof r?Reflect.has(e,r):!!(r in t||Object.prototype.hasOwnProperty.call(e,r)||s(r))})}function c(e){var t;let r="u">typeof window&&window.navigator||void 0,n={},i=null==r||null==(t=r.clipboard)?void 0:t.writeText;"function"==typeof i&&(n.writeText=i.bind(r.clipboard));let o={clipboard:n};return Object.defineProperty(o,"onLine",{get:()=>!!(null==r?void 0:r.onLine),enumerable:!0,configurable:!1}),Object.defineProperty(o,"language",{get:()=>null==r?void 0:r.language,enumerable:!0,configurable:!1}),Object.defineProperty(o,"languages",{get:()=>(null==r?void 0:r.languages)?[...r.languages]:void 0,enumerable:!0,configurable:!1}),Object.assign(o,e||{}),new Proxy({},{get(e,t){if(t in o)return o[t];throw Error(`Access to navigator property "${String(t)}" is not allowed.`)}})}function d(e){let t={};try{let e=c();t.navigator=e;try{t.window=a({navigator:e})}catch{}}catch{}try{t.document=u()}catch{}return e?{...t,...e}:t}async function h(e,t,r,n){if(e&&("object"==typeof e||"function"==typeof e)&&"function"==typeof e.runjs)return e.runjs(t,d(n),r)}r.d(t,{D1:()=>c,I2:()=>d,Vm:()=>i,Xh:()=>u,_:()=>h,ey:()=>a,yz:()=>o})},22928(e,t,r){function n(e){let t={};return Object.entries(e||{}).forEach(e=>{let[r,n]=e;null!=n&&(t[r]=n)}),t}function i(e,t,r){try{var n,i,o,l,s;let a=null==(i=e.dataSourceManager)||null==(n=i.getDataSource)?void 0:n.call(i,t||"main"),u=null==a||null==(l=a.collectionManager)||null==(o=l.getCollection)?void 0:o.call(l,r);return(null==u||null==(s=u.getPrimaryKey)?void 0:s.call(u))||"id"}catch(e){return"id"}}function o(e,t){var r,o;if(!t)return;let l=t.dataSourceKey||"main",s=t.collection||(null==(r=t.record)?void 0:r.__collectionName);if(!s)return;let a=i(e,l,s)||"id",u=void 0!==t.filterByTk?t.filterByTk:void 0!==t.id?t.id:null==(o=t.record)?void 0:o[a];if(void 0!==u)return n({collection:s,filterByTk:u,dataSourceKey:l,associationName:t.associationName,sourceId:t.sourceId,fields:t.fields,appends:t.appends})}function l(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=e=>!!e&&"object"==typeof e&&"string"==typeof e.collection&&(void 0!==e.filterByTk||void 0!==e.id||e.record),n={},i=(t,l)=>{if(r(t)){let r=o(e,t);r&&(n[l.join(".")]=r);return}if(Array.isArray(t)){for(let e=0;e<t.length;e++)i(t[e],[...l,String(e)]);return}if(t&&"object"==typeof t){for(let[e,r]of Object.entries(t))i(r,[...l,e]);return}};return i(t,[]),Object.keys(n).length?n:void 0}r.d(t,{d:()=>l})},88439(e,t,r){r.d(t,{w:()=>n});function n(e,t,r,n){let i={},o={};for(let s in t)if(Object.prototype.hasOwnProperty.call(t,s)){let a=t[s],u={};if(a.uiSchema&&"object"==typeof a.uiSchema){for(let[e,t]of Object.entries(a.uiSchema))if(t&&"object"==typeof t){var l;let r=t;u[e]={type:r.type||"any",title:r.title||(null==(l=r["x-decorator-props"])?void 0:l.label)||e,interface:r["x-component"],uiSchema:r}}}let c=Object.keys(u).length>0;o[s]={type:"object",title:e.t(a.title)||s,display:c?"default":"none",properties:c?{params:{type:"object",title:"Parameters",display:"flatten",properties:u}}:void 0},i[s]={get params(){return r.getStepParams(n,s)||{}},get uiSchema(){return a.uiSchema},result:void 0}}e.defineProperty("steps",{get:()=>i})}},73398(e,t,r){function n(e){let t=new Set,r=e=>{if("string"==typeof e){let r,n=/\{\{\s*([^}]+?)\s*\}\}/g;for(;null!==(r=n.exec(e));){let e,n,i=r[1],o=/ctx\.([a-zA-Z_$][a-zA-Z0-9_$]*)/g;for(;null!==(e=o.exec(i));)t.add(e[1]);let l=/ctx\[\s*(["'])\s*([a-zA-Z_$][a-zA-Z0-9_$]*)\s*\1\s*\]/g;for(;null!==(n=l.exec(i));)t.add(n[2])}}else Array.isArray(e)?e.forEach(r):e&&"object"==typeof e&&Object.values(e).forEach(r)};return r(e),t}function i(e){let t={},r=e=>{if("string"==typeof e){let r,n=/\{\{\s*([^}]+?)\s*\}\}/g;for(;null!==(r=n.exec(e));){let e,n,i=r[1],o=/ctx\.([a-zA-Z_$][a-zA-Z0-9_$]*)([^\s)]*)/g;for(;null!==(e=o.exec(i));){let r=e[1],n=e[2]||"";if(t[r]=t[r]||[],n.startsWith("."))t[r].push(n.slice(1));else if(n.startsWith("[")){let e=n.match(/^\[\s*(["'])\s*([^'"\]]+)\s*\1\s*\](.*)$/);if(e){let n=e[2],i=e[3]||"";t[r].push(`${n}${i}`)}else{let e=n.match(/^\[(\d+)\](.*)$/);if(e){let n=e[1],i=e[2]||"";t[r].push(`[${n}]${i}`)}}}else n.startsWith("(")&&!t[r].length&&t[r].push("")}let l=/ctx\[\s*(["'])\s*([a-zA-Z_$][a-zA-Z0-9_$]*)\s*\1\s*\]([^\s)]*)/g;for(;null!==(n=l.exec(i));){let e=n[2],r=n[3]||"";if(t[e]=t[e]||[],r.startsWith("."))t[e].push(r.slice(1));else if(r.startsWith("[")){let n=r.match(/^\[\s*(["'])\s*([^'"\]]+)\s*\1\s*\](.*)$/);if(n){let r=n[2],i=n[3]||"";t[e].push(`${r}${i}`)}else{let n=r.match(/^\[(\d+)\](.*)$/);if(n){let r=n[1],i=n[2]||"";t[e].push(`[${r}]${i}`)}}}else r.startsWith("(")&&!t[e].length&&t[e].push("")}}}else Array.isArray(e)?e.forEach(r):e&&"object"==typeof e&&Object.values(e).forEach(r)};return r(e),t}r.d(t,{xI:()=>f,vP:()=>v,$S:()=>g,pc:()=>m,Cg:()=>d,nN:()=>w,ju:()=>b,Xx:()=>p,vE:()=>h,XU:()=>c,UX:()=>y});var o=r(22928),l=r(35846),s=r(44476),a=r(2543),u=r.n(a);function c(e){var t,r,n,i;let o=e.resource,l=e.collection,s=e.record,a=(null==l?void 0:l.name)||(null==o||null==(t=o.getResourceName)?void 0:t.call(o)),u=(null==l?void 0:l.dataSourceKey)||(null==o||null==(r=o.getDataSourceKey)?void 0:r.call(o)),c=(null==o||null==(n=o.getFilterByTk)?void 0:n.call(o))??(null==l||null==(i=l.getFilterByTK)?void 0:i.call(l,s));if(!a||null==c)return;let d=String(a).split(".");return{collection:d[d.length-1],dataSourceKey:u,filterByTk:c}}function d(e){var t,r,n;let i=e.view;if(!i)return;let o=(null==i?void 0:i.inputArgs)||{},l=(null==o?void 0:o.collectionName)||(null==i||null==(t=i.record)?void 0:t.collection),s=(null==o?void 0:o.dataSourceKey)||(null==i||null==(r=i.record)?void 0:r.dataSourceKey)||"main",a=(null==o?void 0:o.filterByTk)||(null==i||null==(n=i.record)?void 0:n.filterByTk),u=null==o?void 0:o.associationName,c=null==o?void 0:o.sourceId;if(l&&null!=a)return{collection:l,dataSourceKey:s,filterByTk:a,sourceId:c,associationName:u}}function h(e,t){var r,n,i;let o=null==(r=e.inputArgs)?void 0:r.record,l=null==(n=e.collection)?void 0:n.filterTargetKey;if(!o||!l)return;let s=t.view,a=null==s||null==(i=s.inputArgs)?void 0:i.filterByTk,c=o[l];if(null!=a&&null!=c&&a===c)return u().cloneDeep(o)}function p(e,t){return r=>{var n,i,o,l;if(!("record"===r||r.startsWith("record.")))return!1;let a=t();if(!a)return!0;if("record"===r)return!1;let u=d(e),c=null==u?void 0:u.collection,h=(null==u?void 0:u.dataSourceKey)||"main";if(!c)return!0;let p=null==(i=e.dataSourceManager)||null==(n=i.getDataSource)?void 0:n.call(i,h),f=null==p||null==(l=p.collectionManager)||null==(o=l.getCollection)?void 0:o.call(l,c);if(!f)return!0;let g=(0,s.H)(()=>f,()=>a),m=r.startsWith("record.")?r.slice(7):"";return!!m&&g(m)}}function f(e,t){let r=(0,s.H)(e,()=>t());return n=>{let i=t();if(!i)return!0;if(!n)return!1;let o=e();if(!n.includes(".")){var l;let e,t=n;return o&&("function"==typeof o.getField&&(e=o.getField(t)),e||"function"!=typeof o.getFields||(e=(o.getFields()||[]).find(e=>(null==e?void 0:e.name)===t))),!!(null==e||null==(l=e.isAssociationField)?void 0:l.call(e))&&null==(null==i?void 0:i[t])}return r(n)}}async function g(e,t,r){let n=await (0,l.H)(e,t,!0)();return n?{...n,buildVariablesParams:e=>r?r(e):c(e)}:null}function m(e,t,r){let n=async()=>g(e,t,r);return n.title=t,n}function y(e,t,r){var n,i;return m(t,(null==r?void 0:r.title)?(null==(n=e.t)?void 0:n.call(e,r.title))||r.title:(null==(i=e.t)?void 0:i.call(e,"Current record"))||"Current record",e=>c(e))}let v=n,w=i;async function b(e,t){let r=Object.keys(i(t)||{});if(!r.length)return;let n={};for(let t of r){var l;let r,i=null==(l=e.getPropertyOptions)?void 0:l.call(e,t),o=null==i?void 0:i.meta;if(o){try{let t="function"==typeof o?await o():o,n=null==t?void 0:t.buildVariablesParams;"function"==typeof n&&(r=await n(e))}catch(e){continue}r&&(n[t]=r)}}return(0,o.d)(e,n)}},52249(e,t,r){r.d(t,{sp:()=>x,bt:()=>k,U:()=>W,N5:()=>I,xB:()=>F,mW:()=>C,fP:()=>N});var n=r(74848),i=r(96540),o=r(99418),l=r(19098),s=r(29007),a=r(52568),u=r(73398);function c(e,t){let r=t=>e.t(t),n=e=>{var t,r;if(!e)return!1;let n=Array.isArray(null==(t=e.navigation)?void 0:t.viewStack)?e.navigation.viewStack:[],i=null==e||null==(r=e.inputArgs)?void 0:r.openerUids,o=Array.isArray(i)&&i.length>0;return n.length>=2||o},i=()=>n(t??e.view),o=async e=>{let r=t??e.view;if(!r||!n(r))return;let i=await d(e,r),o=null==i?void 0:i.resource;return(null==o?void 0:o.collectionName)&&null!=o.filterByTk?{collection:o.collectionName,dataSourceKey:o.dataSourceKey||"main",filterByTk:o.filterByTk,associationName:o.associationName,sourceId:o.sourceId}:(0,u.Cg)(e)},l=async()=>{var t,r,n,i;let l=await o(e);if(!(null==l?void 0:l.collection))return null;let s=null==(r=e.dataSourceManager)||null==(t=r.getDataSource)?void 0:t.call(r,l.dataSourceKey||"main");return(null==s||null==(i=s.collectionManager)||null==(n=i.getCollection)?void 0:n.call(i,l.collection))||null},s=async(t,r)=>{var n,i,o,l,s,a,u;try{let a=r||e,u=null==(n=a.view)?void 0:n.navigation,c=Array.isArray(null==u?void 0:u.viewStack)?u.viewStack:[];if(c.length<2||t<1)return;let d=c.length-1-t;if(d<0)return;let h=c[d];if(!(null==h?void 0:h.viewUid))return;let p=null==(i=a.engine)?void 0:i.getModel(h.viewUid,!0);if(!p)try{p=await a.engine.loadModel({uid:h.viewUid})}catch(t){null==(s=a.logger||e.logger)||null==(l=s.warn)||l.call(s,{err:t},"[FlowEngine] popup.getParentRecordRef loadModel failed")}let f=(null==p||null==(o=p.getStepParams)?void 0:o.call(p,"popupSettings","openView"))||{},g=null==f?void 0:f.collectionName,m=(null==f?void 0:f.dataSourceKey)||"main",y=(null==h?void 0:h.filterByTk)??(null==h?void 0:h.sourceId);if(!g||null==y)return;return{collection:g,dataSourceKey:m,filterByTk:y,sourceId:null==h?void 0:h.sourceId,associationName:null==f?void 0:f.associationName}}catch(t){null==(u=(null==r?void 0:r.logger)||e.logger)||null==(a=u.warn)||a.call(u,{err:t},"[FlowEngine] popup.getParentRecordRef failed");return}},a=r=>{try{var n;let i=null==(n=t??e.view)?void 0:n.navigation;return(Array.isArray(null==i?void 0:i.viewStack)?i.viewStack:[]).length>=r+1}catch(e){return!1}},c=t=>{let n=()=>({type:"object",title:r("Parent popup"),disabled:()=>!a(t),disabledReason:()=>a(t)?void 0:r("No parent popup"),hidden:()=>!a(t),properties:async()=>{let n=await s(t),i={};if(i.uid={type:"string",title:r("Popup uid")},n){let t=(()=>{try{var t,r,i,o;let l=null==(r=e.dataSourceManager)||null==(t=r.getDataSource)?void 0:t.call(r,n.dataSourceKey||"main");return(null==l||null==(o=l.collectionManager)||null==(i=o.getCollection)?void 0:i.call(o,n.collection||""))||null}catch(e){return null}})();i.record=await (0,u.$S)(()=>t,r("Popup record"),()=>n)||{type:"object",title:r("Popup record")}}else i.record={type:"object",title:r("Popup record")};return i.resource={type:"object",title:r("Data source"),properties:async()=>({dataSourceKey:{type:"string",title:r("Data source key")},collectionName:{type:"string",title:r("Collection name")},associationName:{type:"string",title:r("Association name")},filterByTk:{type:"string",title:r("filterByTk")},sourceId:{type:"string",title:r("sourceId")}})},i}});return n.title=r("Parent popup"),n},h=()=>({type:"object",title:r("Current popup"),disabled:()=>!i(),hidden:()=>!i(),buildVariablesParams:async e=>{var t,r,n,l,a,u;if(!i())return;let c=await o(e),d=null==(t=e.view)?void 0:t.inputArgs,h={};if(c){let e={...c};!e.associationName&&(null==d?void 0:d.associationName)&&(e.associationName=d.associationName),void 0===e.sourceId&&void 0!==(null==d?void 0:d.sourceId)&&(e.sourceId=null==d?void 0:d.sourceId),h.record=e}try{let t=null==(r=e.view)?void 0:r.navigation;if((Array.isArray(null==t?void 0:t.viewStack)?t.viewStack:[]).length>=2){let t=h,r=1,n=await s(r,e);for(;n;)t.parent||(t.parent={}),t.parent.record=n,t=t.parent,r+=1,n=await s(r,e)}}catch(t){null==(l=e.logger)||null==(n=l.debug)||n.call(l,{err:t},"[FlowEngine] buildVariablesParams: build parent-chain failed")}try{let e=null==d?void 0:d.sourceId,t=null==d?void 0:d.associationName,r=(null==d?void 0:d.dataSourceKey)||"main";if(null!=e&&""!==e&&t&&"string"==typeof t){let n=String(t).split(".")[0];n&&(h.sourceRecord={collection:n,dataSourceKey:r,filterByTk:e})}}catch(t){null==(u=e.logger)||null==(a=u.debug)||a.call(u,{err:t},"[FlowEngine] buildVariablesParams: infer sourceRecord failed")}return h},properties:async()=>{var t,n,i,a,d,h;let p={};if(p.uid={type:"string",title:r("Popup uid")},await o(e)){let e=async()=>{let e=await l();return e?await (0,u.$S)(()=>e,r("Current popup record"),e=>o(e)):null};e.title=r("Current popup record"),e.hasChildren=!0,p.record=e}try{let o=null==(t=e.view)?void 0:t.inputArgs,l=null==o?void 0:o.sourceId,s=null==o?void 0:o.associationName,c=(null==o?void 0:o.dataSourceKey)||"main";if(!s||"string"!=typeof s||!s.includes(".")){let t=null==(n=e.view)?void 0:n.navigation,r=Array.isArray(null==t?void 0:t.viewStack)?t.viewStack:[],o=null==r?void 0:r[r.length-1];if(null==o?void 0:o.viewUid){let t=null==e||null==(i=e.engine)?void 0:i.getModel(o.viewUid,!0);t||(t=await e.engine.loadModel({uid:o.viewUid}));let r=(null==t||null==(a=t.getStepParams)?void 0:a.call(t,"popupSettings","openView"))||{};s=(null==r?void 0:r.associationName)||s,c=(null==r?void 0:r.dataSourceKey)||c}}if(null!=l&&""!==l&&s&&"string"==typeof s){let t=String(s).includes(".")?String(s).split(".")[0]:void 0;if(t){let n=()=>{try{var r,n,i,o;let l=null==(n=e.dataSourceManager)||null==(r=n.getDataSource)?void 0:r.call(n,c);return(null==l||null==(o=l.collectionManager)||null==(i=o.getCollection)?void 0:i.call(o,t))||null}catch(e){return null}},i=await (0,u.$S)(n,r("Current popup parent record"),()=>({collection:t,dataSourceKey:c,filterByTk:l}));i&&(p.sourceRecord=i)}}}catch(t){null==(h=e.logger)||null==(d=h.debug)||d.call(h,{err:t},"[FlowEngine] popup.properties: build sourceRecord failed")}return p.resource={type:"object",title:r("Data source"),properties:async()=>({dataSourceKey:{type:"string",title:r("Data source key")},collectionName:{type:"string",title:r("Collection name")},associationName:{type:"string",title:r("Association name")},filterByTk:{type:"string",title:r("filterByTk")},sourceId:{type:"string",title:r("sourceId")}})},await s(1)&&(p.parent=c(1)),p}});return h.title=r("Current popup"),h.sort=975,h}async function d(e,t){var r,n,i;let o=null==t?void 0:t.navigation,l=Array.isArray(null==o?void 0:o.viewStack)?o.viewStack:[],s=null==t||null==(r=t.inputArgs)?void 0:r.openerUids,a=Array.isArray(s)&&s.length>0;if(!(l.length>=2||a))return;if(!l.length){let e=(null==t?void 0:t.inputArgs)||{};if(!(e.collectionName||null!=e.filterByTk||null!=e.sourceId||e.associationName||e.viewUid))return;return{uid:e.viewUid,resource:{dataSourceKey:e.dataSourceKey||"main",collectionName:e.collectionName,associationName:e.associationName,filterByTk:e.filterByTk,sourceId:e.sourceId}}}let u=async t=>{var r,n,i,o,s,a;if(t<0||!(null==(r=l[t])?void 0:r.viewUid))return;let c=l[t].viewUid,d=null==(n=e.engine)?void 0:n.getModel(c,!0);d||(d=await (null==(a=e.engine)?void 0:a.loadModel({uid:c})));let h=(null==d||null==(i=d.getStepParams)?void 0:i.call(d,"popupSettings","openView"))||{},p=null==h?void 0:h.collectionName,f={uid:c,resource:{dataSourceKey:(null==h?void 0:h.dataSourceKey)||"main",collectionName:p,associationName:null==h?void 0:h.associationName,filterByTk:null==(o=l[t])?void 0:o.filterByTk,sourceId:null==(s=l[t])?void 0:s.sourceId}},g=await u(t-1);return g&&(f.parent=g),f};return await u(((null==t||null==(i=t.navigation)||null==(n=i.viewStack)?void 0:n.length)||1)-1)}function h(e,t){let r=/^(?:record|sourceRecord)(?:\.|$)|^parent(?:\.parent)*(?:\.(?:record|sourceRecord))(?:\.|$)/;e.defineProperty("popup",{get:async()=>d(e,t),meta:c(e,t),resolveOnServer:e=>{try{return!!e&&r.test(e)}catch(e){return!1}}})}var p=r(18182);let f=(0,i.forwardRef)((e,t)=>{let{afterClose:r,footer:o,header:l,hidden:s,...a}=e,[u,c]=(0,i.useState)(!0),[d,h]=(0,i.useState)(a),[f,g]=(0,i.useState)(()=>o),[m,y]=(0,i.useState)(l);(0,i.useImperativeHandle)(t,()=>({destroy:()=>{c(!1),null==r||r()},update:e=>h(t=>({...t,...e})),setFooter:e=>{g(e)},setHeader:e=>{0===Object.values(e||{}).length?y(null):y(e)}}));let v={...d,title:(null==m?void 0:m.title)||d.title,extra:null==m?void 0:m.extra,footer:void 0!==f?f:d.footer??null},w=i.useMemo(()=>document.querySelector("#nocobase-app-container"),[]);return(0,n.jsx)(p.A,{closable:!1,rootClassName:s?"nb-hidden":"",getContainer:w,...v,open:u,onCancel:d.onCancel,afterClose:()=>{null==r||r()},children:d.children})});function g(){let[e,t]=i.useState([]);return[e,i.useCallback(e=>(t(t=>[...t,e]),()=>{t(t=>t.filter(t=>t!==e))}),[])]}var m=r(16639),y=r(20616),v=r(47451);async function w(e,t){var r;return!!t.force||!1!==await (null==(r=e.beforeClose)?void 0:r.call(e,t))}let b=0;function x(){let e=i.useRef(null),t=(t,r)=>{var c,d,p;let g,x,S=null==r?void 0:r.engine;b+=1;let _=i.createRef(),A=new Promise(e=>{x=e}),k=null,M=null,E=e=>{let{children:t}=e;return i.useEffect(()=>{var e;return k=t,null==(e=_.current)||e.setFooter(t),()=>{var e;k=null,null==(e=_.current)||e.setFooter(null)}},[t]),null},j=e=>(i.useEffect(()=>{var t;return M=e,null==(t=_.current)||t.setHeader(e),()=>{var e;M=null,null==(e=_.current)||e.setHeader(null)}},[e]),null),R=new s.cB,P=(0,v._)(r.engine),C=(0,m.eX)(S,P);R.defineProperty("engine",{value:P}),R.addDelegate(P.context),!1!==t.inheritContext?R.addDelegate(r):R.addDelegate(r.engine.context);let F=!1,T={type:"dialog",inputArgs:t.inputArgs||{},preventClose:!!t.preventClose,beforeClose:void 0,destroy:e=>{var r,n,i,o;if(F)return;F=!0,null==(r=t.onClose)||r.call(t),null==(n=_.current)||n.destroy(),null==g||g(),null==x||x(e);let l=null==C?void 0:C.emitter;(0,m.Z8)(l),null==l||null==(o=l.emit)||o.call(l,m.B9,{type:"dialog",viewUid:null==T||null==(i=T.inputArgs)?void 0:i.viewUid}),P.unlinkFromStack()},update:e=>{var t;return null==(t=_.current)?void 0:t.update(e)},close:async(e,r)=>{var n,i;return(!t.preventClose||!!r)&&!!await w(T,{result:e,force:r})&&(t.triggerByRouter&&(null==(i=t.inputArgs)||null==(n=i.navigation)?void 0:n.back)?t.inputArgs.navigation.back():T.destroy(e),!0)},Footer:E,Header:j,setFooter:e=>{var t;k=e,null==(t=_.current)||t.setFooter(e)},setHeader:e=>{var t;M=e,null==(t=_.current)||t.setHeader(e)},navigation:null==(c=t.inputArgs)?void 0:c.navigation,get record(){return(0,u.vE)(r,R)}};R.defineProperty("view",{get:()=>T,resolveOnServer:(0,u.Xx)(R,()=>(0,u.vE)(r,R))}),P.setDestroyView(()=>{var e,r;t.triggerByRouter&&(null==(r=t.inputArgs)||null==(e=r.navigation)?void 0:e.back)&&t.inputArgs.navigation.back(),T.destroy()}),h(R,T);let I=(0,l.observer)(()=>{var e,r,l,s;let a=i.useRef(!1),u="function"==typeof t.content?t.content(T,R):t.content,c="string"==typeof u?(0,n.jsx)("div",{dangerouslySetInnerHTML:{__html:o.A.sanitize(u)}}):u;return(i.useEffect(()=>{var e;null==(e=t.onOpen)||e.call(t,T,R)},[]),(null==(r=t.inputArgs)||null==(e=r.hidden)?void 0:e.value)&&!a.current)?null:(a.current=!0,(0,n.jsx)(f,{className:"nb-dialog-overflow-hidden",ref:_,hidden:null==(s=t.inputArgs)||null==(l=s.hidden)?void 0:l.value,footer:k,header:M,...t,onCancel:()=>{T.close(t.result)},children:c}))},{displayName:"DialogWithContext"}),$=(null==t||null==(d=t.inputArgs)?void 0:d.viewUid)||`page-${b}`,O=(0,n.jsx)(y.I6,{engine:P,children:(0,n.jsx)(a.YQ,{context:R,children:(0,n.jsx)(I,{})})},$);return g=null==(p=e.current)?void 0:p.patchElement(O),Object.assign(A,T)},r=i.useMemo(()=>({open:t}),[]),c=i.memo(i.forwardRef((e,t)=>{let[r,o]=g();return i.useImperativeHandle(t,()=>({patchElement:o}),[o]),(0,n.jsx)(n.Fragment,{children:r})}));return[r,(0,n.jsx)(c,{ref:e},"dialog-holder")]}var S=r(97134),_=r(61793);let A=i.forwardRef((e,t)=>{var r;let{children:o,footer:l,title:s,extra:a,hidden:u,isMobile:c,...d}=e,[h,p]=i.useState(!0),[f,g]=i.useState(()=>l),[m,y]=i.useState({title:s,extra:a,...d.header});i.useImperativeHandle(t,()=>({destroy:()=>{p(!1)},update:e=>{Object.assign(d,e)},setFooter:e=>{g(e)},setHeader:e=>{0===Object.values(e||{}).length?y(null):y(e)}}),[]);let v=i.useMemo(()=>document.querySelector("#nocobase-app-container"),[]);return c?(0,n.jsx)(_.D,{className:u?"nb-hidden":"",visible:h,...d,footer:f,...m,onClose:d.onClose,children:o}):(0,n.jsx)(S.A,{rootClassName:u?"nb-hidden":"",closable:!1,getContainer:v,...d,open:h,footer:f,styles:{...d.styles,footer:{display:"flex",justifyContent:"flex-end",...null==(r=d.styles)?void 0:r.footer}},...m,onClose:d.onClose,children:o})});function k(){let e=i.useRef(null),t=i.useMemo(()=>l.observable.shallow({value:[]}),[]),r=i.memo(e=>{let{index:o}=e,[s,a]=i.useState(null);return(i.useEffect(()=>{(0,l.autorun)(()=>{let e=t.value;e[o]&&s!==e[o]&&a(e[o]),e[o]||a(null)})},[s,o]),s)?(0,n.jsx)(s,{children:(0,n.jsx)(r,{index:o+1})}):null});r.displayName="RenderNestedDrawer";let c=(t,r)=>{var c,d;let p,f,g=r.engine,b=i.createRef(),x=new Promise(e=>{f=e}),S=null,_=null,k=e=>{let{children:t}=e;return i.useEffect(()=>{var e;return S=t,null==(e=b.current)||e.setFooter(t),()=>{var e;S=null,null==(e=b.current)||e.setFooter(null)}},[t]),null},M=e=>(i.useEffect(()=>{var t;return _=e,null==(t=b.current)||t.setHeader(e),()=>{var e;_=null,null==(e=b.current)||e.setHeader(null)}},[e]),null),E=new s.cB,j=(0,v._)(r.engine),R=(0,m.eX)(g,j);E.defineProperty("engine",{value:j}),E.addDelegate(j.context),!1!==t.inheritContext?E.addDelegate(r):E.addDelegate(r.engine.context);let P=!1,C={type:"drawer",inputArgs:t.inputArgs||{},preventClose:!!t.preventClose,beforeClose:void 0,destroy:e=>{var r,n,i,o;if(P)return;P=!0,null==(r=t.onClose)||r.call(t),null==(n=b.current)||n.destroy(),null==p||p(),null==f||f(e);let l=null==R?void 0:R.emitter;(0,m.Z8)(l),null==l||null==(o=l.emit)||o.call(l,m.B9,{type:"drawer",viewUid:null==C||null==(i=C.inputArgs)?void 0:i.viewUid}),j.unlinkFromStack()},update:e=>{var t;return null==(t=b.current)?void 0:t.update(e)},close:async(e,r)=>{var n,i;return(!t.preventClose||!!r)&&!!await w(C,{result:e,force:r})&&(t.triggerByRouter&&(null==(i=t.inputArgs)||null==(n=i.navigation)?void 0:n.back)?t.inputArgs.navigation.back():C.destroy(e),!0)},Footer:k,Header:M,setFooter:e=>{var t;S=e,null==(t=b.current)||t.setFooter(e)},setHeader:e=>{var t;_=e,null==(t=b.current)||t.setHeader(e)},navigation:null==(c=t.inputArgs)?void 0:c.navigation,get record(){return(0,u.vE)(r,E)}};E.defineProperty("view",{get:()=>C,resolveOnServer:(0,u.Xx)(E,()=>(0,u.vE)(r,E))}),j.setDestroyView(()=>{var e,r;t.triggerByRouter&&(null==(r=t.inputArgs)||null==(e=r.navigation)?void 0:e.back)&&t.inputArgs.navigation.back(),C.destroy()}),h(E,C);let F=i.memo((0,l.observer)(e=>{var r,l,s,a;let u=i.useRef(!1),c="function"==typeof t.content?t.content(C,E):t.content,d="string"==typeof c?(0,n.jsx)("div",{dangerouslySetInnerHTML:{__html:o.A.sanitize(c)}}):c;return(i.useEffect(()=>{var e;null==(e=t.onOpen)||e.call(t,C,E)},[]),(null==(l=t.inputArgs)||null==(r=l.hidden)?void 0:r.value)&&!u.current)?(0,n.jsx)(n.Fragment,{children:e.children}):(u.current=!0,(0,n.jsxs)(A,{ref:b,...t,footer:S,header:t.header||_,hidden:null==(a=t.inputArgs)||null==(s=a.hidden)?void 0:s.value,onClose:()=>{C.close(t.result)},isMobile:E.isMobileLayout,children:[d,e.children]}))}));F.displayName="DrawerWithContext";let T=i.memo(e=>{let{children:t}=e;return(0,n.jsx)(y.I6,{engine:j,children:(0,n.jsx)(a.YQ,{context:E,children:(0,n.jsx)(F,{children:t})})})});return T.displayName="RenderDrawer",p=null==(d=e.current)?void 0:d.patchElement(T),Object.assign(x,C)},d=i.useMemo(()=>({open:c}),[]),p=i.memo(i.forwardRef((e,o)=>{let[l,s]=g();return i.useImperativeHandle(o,()=>({patchElement:s}),[s]),i.useEffect(()=>{t.value=l},[l]),(0,n.jsx)(r,{index:0})}));return[d,(0,n.jsx)(p,{ref:e},"drawer-holder")]}var M=r(40961),E=r(31333),j=r(71021);let R=(0,i.forwardRef)((e,t)=>{let[r,o]=i.useState({}),{visible:l=!0,footer:s=null,header:a=null,children:u,hidden:c,title:d,styles:h={},zIndex:p=4}={...e,...r},f=(0,i.useRef)(!1),g=(0,y.uf)(),[m,v]=(0,i.useState)(()=>s),[w,b]=(0,i.useState)(a);(0,i.useImperativeHandle)(t,()=>({destroy:()=>{f.current||(f.current=!0)},update:e=>{o(e)},setFooter:e=>{v(e)},setHeader:e=>{0===Object.values(e||{}).length?b(null):b(e)}}));let x=(0,i.useMemo)(()=>({display:c?"none":"flex",flexDirection:"column",height:"100%",zIndex:p}),[c,p]),S=(0,i.useMemo)(()=>{if(!w&&!d)return null;let{title:t=d,extra:r}=w||{},i=g.context.themeToken;return(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:`${i.paddingSM}px ${i.padding}px`,borderBottom:`1px solid ${i.colorSplit}`,backgroundColor:i.colorBgContainer,...h.header},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:i.marginXS},children:[(0,n.jsx)(j.Ay,{type:"text",size:"small",icon:(0,n.jsx)(E.A,{}),onClick:()=>{if(!f.current){var t;f.current=!0,null==(t=e.onClose)||t.call(e)}},style:{color:i.colorTextTertiary}}),t&&(0,n.jsx)("div",{style:{fontSize:i.fontSizeLG,fontWeight:i.fontWeightStrong,color:i.colorText},children:t})]}),r&&(0,n.jsx)("div",{children:r})]})},[w,d,g.context.themeToken,h.header,e.onClose]),_=(0,i.useMemo)(()=>{if(!m)return null;let e=g.context.themeToken;return(0,n.jsx)("div",{style:{display:"flex",justifyContent:"flex-end",alignItems:"center",padding:`${e.paddingXS}px ${e.padding}px`,borderTop:`1px solid ${e.colorSplit}`,backgroundColor:e.colorBgContainer,...h.footer},children:m})},[m,g.context.themeToken,h.footer]);return l?(0,n.jsxs)("div",{style:{...x,...h.content},children:[S,(0,n.jsx)("div",{style:{flex:1,overflowY:"auto",...h.body},children:u}),_]}):null}),P=0,C="nocobase-embed-container",F="nocobaseEmbedReplacing",T=i.memo(i.forwardRef((e,t)=>{let[r,o]=g();return i.useImperativeHandle(t,()=>({patchElement:o}),[o]),(0,n.jsx)(n.Fragment,{children:r})}));function I(){let e=i.useRef(null),t=i.useRef(null),r=(r,o)=>{var c,d,p;let f,g,b=null==o?void 0:o.engine;P+=1;let x=i.createRef(),S=new Promise(e=>{g=e}),_=e=>{let{children:t}=e;return i.useEffect(()=>{var e;return null==(e=x.current)||e.setFooter(t),()=>{var e;null==(e=x.current)||e.setFooter(null)}},[t]),null},A=e=>(i.useEffect(()=>{var t;return null==(t=x.current)||t.setHeader(e),()=>{var e;null==(e=x.current)||e.setHeader(null)}},[e]),null),{target:k,content:E,preventClose:j,inheritContext:T=!0,inputArgs:I={},...$}=r,O=k instanceof HTMLElement&&k.id===C;if(O&&t.current)try{k.dataset[F]="1",t.current.destroy()}finally{delete k.dataset[F],t.current=null}let D=new s.cB,N=(0,v._)(o.engine),B=(0,m.eX)(b,N);D.defineProperty("engine",{value:N}),D.addDelegate(N.context),T?D.addDelegate(o):D.addDelegate(o.engine.context);let L={type:"embed",inputArgs:I,preventClose:!!r.preventClose,beforeClose:void 0,destroy:e=>{var n,i,o,l,s;if(null==(n=r.onClose)||n.call(r),null==g||g(e),null==(i=x.current)||i.destroy(),null==f||f(),O&&(t.current=null),!(O&&k instanceof HTMLElement&&(null==(o=k.dataset)?void 0:o[F])==="1")){let e=null==B?void 0:B.emitter;(0,m.Z8)(e),null==e||null==(s=e.emit)||s.call(e,m.B9,{type:"embed",viewUid:null==L||null==(l=L.inputArgs)?void 0:l.viewUid})}N.unlinkFromStack()},update:e=>{var t;return null==(t=x.current)?void 0:t.update(e)},close:async(e,t)=>{var n,i;return(!j||!!t)&&!!await w(L,{result:e,force:t})&&(r.triggerByRouter&&(null==(i=r.inputArgs)||null==(n=i.navigation)?void 0:n.back)?r.inputArgs.navigation.back():L.destroy(e),!0)},Header:A,Footer:_,setFooter:e=>{var t;null==(t=x.current)||t.setFooter(e)},setHeader:e=>{var t;null==(t=x.current)||t.setHeader(e)},navigation:null==(c=r.inputArgs)?void 0:c.navigation,get record(){return(0,u.vE)(o,D)}};D.defineProperty("view",{get:()=>L,resolveOnServer:(0,u.Xx)(D,()=>(0,u.vE)(o,D))}),h(D,L);let z=(0,l.observer)(()=>{var e,t,o,l;let s=i.useRef(!1),a=i.useMemo(()=>"function"==typeof E?E(L,D):E,[]);return(D.themeToken,i.useEffect(()=>{var e;null==(e=r.onOpen)||e.call(r,L,D)},[]),(null==(t=r.inputArgs)||null==(e=t.hidden)?void 0:e.value)&&!s.current)?null:(s.current=!0,(0,n.jsx)(R,{ref:x,hidden:null==(l=r.inputArgs)||null==(o=l.hidden)?void 0:o.value,...$,onClose:()=>{L.close(r.result)},children:a}))},{displayName:"PageWithContext"}),q=(null==I?void 0:I.viewUid)||`page-${P}`,W=(0,n.jsx)(y.I6,{engine:N,children:(0,n.jsx)(a.YQ,{context:D,children:(0,n.jsx)(z,{})})},q);return f=k&&k instanceof HTMLElement?null==(d=e.current)?void 0:d.patchElement(M.createPortal(W,k,q)):null==(p=e.current)?void 0:p.patchElement(W),O&&(t.current={destroy:L.destroy}),Object.assign(S,L)};return[i.useMemo(()=>({open:r}),[]),(0,n.jsx)(T,{ref:e},"page-holder")]}var $=r(28073);let O=0,D=i.forwardRef((e,t)=>{var r,o;let{afterClose:l,content:s,placement:a,rect:u,...c}=e,[d,h]=i.useState(!0),[p,f]=i.useState({content:s,placement:a,rect:u,...c});return i.useImperativeHandle(t,()=>({destroy:()=>h(!1),update:e=>f(t=>({...t,...e})),close:(e,t)=>h(!1)})),i.useEffect(()=>{d||null==l||l()},[d,l]),(0,n.jsx)($.A,{arrow:!1,open:d,trigger:["click"],destroyTooltipOnHide:!0,content:p.content,placement:p.placement,getPopupContainer:()=>document.querySelector("#nocobase-app-container")||document.body,onOpenChange:e=>{(e||!p.preventClose)&&(h(e),e||null==l||l())},...p,children:(0,n.jsx)("span",{style:{position:"absolute",top:((null==(r=p.rect)?void 0:r.top)??0)+window.scrollY,left:((null==(o=p.rect)?void 0:o.left)??0)+window.scrollX,width:0,height:0}})})});function N(){let e=i.useRef(null),t=t=>{var r,l;let s,a;O+=1;let{target:u,placement:c="rightTop",content:d,...h}=t,p=i.createRef(),f=(null==u||null==(r=u.getBoundingClientRect)?void 0:r.call(u))??{top:0,left:0},g=new Promise(e=>{a=e}),m={type:"popover",destroy:()=>{var e;return null==(e=p.current)?void 0:e.destroy()},update:e=>{var t;return null==(t=p.current)?void 0:t.update(e)},close:e=>{var t;null==a||a(e),null==(t=p.current)||t.close(e)}},y="function"==typeof d?d(m):d,v="string"==typeof y?(0,n.jsx)("div",{dangerouslySetInnerHTML:{__html:o.A.sanitize(y)}}):y,w=(0,n.jsx)(D,{ref:p,content:v,placement:c,rect:f,afterClose:()=>{var e;null==s||s(),null==(e=t.onClose)||e.call(t),null==a||a(t.result)},...h},`popover-${O}`);return s=null==(l=e.current)?void 0:l.patchElement(w),Object.assign(g,m)},r=i.useMemo(()=>({open:t}),[]),l=i.memo(i.forwardRef((e,t)=>{let[r,o]=g();return i.useImperativeHandle(t,()=>({patchElement:o}),[]),(0,n.jsx)(n.Fragment,{children:r})}));return[r,(0,n.jsx)(l,{ref:e},"popover-holder")]}var B=r(50467),L=r(52847);function z(e){return null==e?"":e&&"object"==typeof e&&!Array.isArray(e)?encodeURIComponent(Object.entries(e).map(e=>{let[t,r]=e;return`${encodeURIComponent(String(t))}=${encodeURIComponent(String(r))}`}).join("&")):encodeURIComponent(String(e))}function q(e){if(!e||0===e.length)return"/admin";let t=["admin"];return e.forEach((e,r)=>{if(r>0&&t.push("view"),t.push(e.viewUid),e.tabUid&&t.push("tab",e.tabUid),null!=e.filterByTk){let r=z(e.filterByTk);r&&t.push("filterbytk",r)}e.sourceId&&t.push("sourceid",e.sourceId)}),"/"+t.join("/")}class W{setViewStack(e){this.viewStack=Object.freeze([...e]),this.viewParams=this.viewStack[this.viewStack.length-1]||{}}changeTo(e){let t=q(this.viewStack.map((t,r)=>r===this.viewStack.length-1?{...t,...e}:{...t}));this.ctx.router.navigate(t,{replace:!0})}navigateTo(e,t){let r=q([...this.viewStack,e]);this.ctx.router.navigate(r,t)}back(){let e=q(this.viewStack.slice(0,-1));this.ctx.router.navigate(e,{replace:!0})}constructor(e,t){(0,B._)(this,"viewStack",void 0),(0,B._)(this,"ctx",void 0),(0,B._)(this,"viewParams",void 0),this.setViewStack(t),this.ctx=e,(0,L.E8)(this,{viewParams:L.sH})}}},16639(e,t,r){r.d(t,{B9:()=>i,FH:()=>a,HK:()=>o,Z8:()=>u,eX:()=>h,i6:()=>l,tb:()=>n});let n=Symbol.for("__NOCOBASE_VIEW_ACTIVATED_VERSION__"),i="view:activated",o="dataSource:dirty",l="__NOCOBASE_ENGINE_SCOPE__",s="view";function a(e){let t=Reflect.get(e,n),r="number"==typeof t?t:Number(t);return Number.isFinite(r)&&r>0?r:0}function u(e){let t=a(e);if(!Object.isExtensible(e))return t;let r=t+1;return Reflect.set(e,n,r),r}function c(e){return Reflect.get(e,l)===s}function d(e){let t=e,r=0;for(;t&&r++<50;){if(c(t))return t;t=t.previousEngine}}function h(e,t){if(!e)return;let r=d(e);return r||d(null==t?void 0:t.previousEngine)||e}},59598(){},14892(){},2813(){}};import{__webpack_require__}from"./runtime-b419babc.js";var __webpack_exec__=function(e){return __webpack_require__(__webpack_require__.s=e)};import*as __rspack_chunk_1 from"./vendor-antd-ecosystem-1ffc870c.js";__webpack_require__.C(__rspack_chunk_1);import*as __rspack_chunk_2 from"./vendor-moment-84b317dc.js";__webpack_require__.C(__rspack_chunk_2);import*as __rspack_chunk_3 from"./vendor-lodash-831bd1b8.js";__webpack_require__.C(__rspack_chunk_3);import*as __rspack_chunk_4 from"./vendor-ses-b7bccbcd.js";__webpack_require__.C(__rspack_chunk_4);import*as __rspack_chunk_5 from"./vendor-antd-icons-db04cf76.js";__webpack_require__.C(__rspack_chunk_5);import*as __rspack_chunk_6 from"./vendor-antd-05d1c710.js";__webpack_require__.C(__rspack_chunk_6);import*as __rspack_chunk_7 from"./6064-1517304e.js";__webpack_require__.C(__rspack_chunk_7);import*as __rspack_chunk_8 from"./index-ec960e25.js";__webpack_require__.C(__rspack_chunk_8),__webpack_exec__(96101);
|