@nocobase/app 2.0.22 → 2.1.0-alpha.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (146) hide show
  1. package/client-v2/index.html +25 -0
  2. package/client-v2/rsbuild.config.ts +242 -0
  3. package/client-v2/src/env.d.ts +24 -0
  4. package/client-v2/src/main.tsx +105 -0
  5. package/client-v2/src/plugins/AppInfoDemoPlugin.ts +40 -0
  6. package/client-v2/src/routes/AppInfoDemoRoute.tsx +14 -0
  7. package/client-v2/src/routes/DemoHomepageRoute.tsx +28 -0
  8. package/client-v2/src/routes/FlowSettingsComponentLoaderDemoRoute.tsx +40 -0
  9. package/client-v2/src/settings/DemoFlowSettingsLazyField.tsx +14 -0
  10. package/client-v2/tsconfig.json +19 -0
  11. package/dist/client/1708.645e826c.async.js +60 -0
  12. package/dist/client/index.html +1 -1
  13. package/dist/client/index.html.tpl +1 -1
  14. package/dist/client/npm._at_ant-design.23432018.async.js +141 -0
  15. package/dist/client/{npm._at_formily.7785699b.async.js → npm._at_formily.d2e75ebc.async.js} +2 -2
  16. package/dist/client/npm._at_rc-component.882fb176.async.js +8 -0
  17. package/dist/client/{npm.antd-mobile-icons.4b133b6b.async.js → npm.antd-mobile-icons.d1cd785e.async.js} +1 -1
  18. package/dist/client/npm.antd-mobile.90e3a954.async.js +3 -0
  19. package/dist/client/npm.antd.279f521c.async.js +464 -0
  20. package/dist/client/npm.buffer.bc3fb79b.async.js +1 -0
  21. package/dist/client/{npm.dayjs.549164ec.async.js → npm.dayjs.e8fa5a58.async.js} +1 -1
  22. package/dist/client/{npm.entities.536e25f7.async.js → npm.entities.8159ac3e.async.js} +1 -1
  23. package/dist/client/{npm.highlight.js.763ebb2d.async.js → npm.highlight.js.2aa47f4d.async.js} +2 -2
  24. package/dist/client/{npm.htmlparser2.013ed004.async.js → npm.htmlparser2.41be4fb8.async.js} +1 -1
  25. package/dist/client/npm.lodash-es.bc38ad36.async.js +1 -0
  26. package/dist/client/{npm.markdown-it.9eced26c.async.js → npm.markdown-it.5b35f93d.async.js} +1 -1
  27. package/dist/client/{npm.rc-cascader.641db835.async.js → npm.rc-cascader.38b39dff.async.js} +4 -4
  28. package/dist/client/npm.rc-image.d550fa79.async.js +1 -0
  29. package/dist/client/npm.rc-menu.da4ef0ce.async.js +1 -0
  30. package/dist/client/npm.rc-picker.57ac3e84.async.js +22 -0
  31. package/dist/client/npm.rc-select.44fb85b4.async.js +3 -0
  32. package/dist/client/npm.rc-slider.d2d511ab.async.js +1 -0
  33. package/dist/client/npm.rc-table.b46ac936.async.js +22 -0
  34. package/dist/client/npm.rc-tree-select.9547da7a.async.js +5 -0
  35. package/dist/client/npm.rc-tree.49888c60.async.js +1 -0
  36. package/dist/client/npm.rc-util.cdb6a045.async.js +18 -0
  37. package/dist/client/npm.unknown.8f4a423f.chunk.css +26 -0
  38. package/dist/client/p__index.ce72fd4e.async.js +2738 -0
  39. package/dist/client/umi.daa4a9d2.js +63 -0
  40. package/dist/client/v2/assets/1020-0212416d.js +2 -0
  41. package/dist/client/v2/assets/1020-0212416d.js.LICENSE.txt +7 -0
  42. package/dist/client/v2/assets/1222-49e8dadb.css +1 -0
  43. package/dist/client/v2/assets/1222-c8810ac8.js +2 -0
  44. package/dist/client/v2/assets/1222-c8810ac8.js.LICENSE.txt +9 -0
  45. package/dist/client/v2/assets/1310-fbaee3cb.js +59 -0
  46. package/dist/client/v2/assets/1425-0d0cc788.js +42 -0
  47. package/dist/client/v2/assets/1507-3a78eb3b.js +7 -0
  48. package/dist/client/v2/assets/158-9800497f.js +23 -0
  49. package/dist/client/v2/assets/1676-5db7433e.js +9 -0
  50. package/dist/client/v2/assets/1725-6bb35fdf.js +83 -0
  51. package/dist/client/v2/assets/1786-8fd8cc53.js +16 -0
  52. package/dist/client/v2/assets/1951-3af0a41f.js +55 -0
  53. package/dist/client/v2/assets/2017-7bc3cc87.js +26 -0
  54. package/dist/client/v2/assets/212-30d011b4.js +18 -0
  55. package/dist/client/v2/assets/2131-a150fed4.js +1 -0
  56. package/dist/client/v2/assets/22-9d12a303.js +1 -0
  57. package/dist/client/v2/assets/2203-9aa79271.js +4 -0
  58. package/dist/client/v2/assets/2335-40fc71a2.js +22 -0
  59. package/dist/client/v2/assets/2555-0744d7fe.js +31 -0
  60. package/dist/client/v2/assets/2702-2f40d8de.js +5 -0
  61. package/dist/client/v2/assets/2710-ddca03eb.js +36 -0
  62. package/dist/client/v2/assets/2726-927c9cfb.js +23 -0
  63. package/dist/client/v2/assets/2861-da0bb151.js +3 -0
  64. package/dist/client/v2/assets/2898-cf256b0e.js +17 -0
  65. package/dist/client/v2/assets/2958-e4b6ff73.js +27 -0
  66. package/dist/client/v2/assets/3018-fc630932.js +3 -0
  67. package/dist/client/v2/assets/3117-54ef67b5.js +33 -0
  68. package/dist/client/v2/assets/3279-1f24fe26.js +1 -0
  69. package/dist/client/v2/assets/338-3d2099ef.js +3 -0
  70. package/dist/client/v2/assets/3475-d92f065a.js +1 -0
  71. package/dist/client/v2/assets/3660-c7fcb199.js +6 -0
  72. package/dist/client/v2/assets/3662-b25a5e70.js +28 -0
  73. package/dist/client/v2/assets/3690-3dd94e4c.js +12 -0
  74. package/dist/client/v2/assets/3727-da97de5f.js +44 -0
  75. package/dist/client/v2/assets/3916-250bcfe2.js +6 -0
  76. package/dist/client/v2/assets/3937-af967d62.js +3 -0
  77. package/dist/client/v2/assets/3989-f2860cc7.js +27 -0
  78. package/dist/client/v2/assets/4222-29a8147d.js +5 -0
  79. package/dist/client/v2/assets/4313-afee0e7e.js +28 -0
  80. package/dist/client/v2/assets/465-1cb2158a.js +1 -0
  81. package/dist/client/v2/assets/5064-2ca0d32b.js +10 -0
  82. package/dist/client/v2/assets/5366-53bf100a.js +1 -0
  83. package/dist/client/v2/assets/5501-a146926a.js +17 -0
  84. package/dist/client/v2/assets/5721-b76fecc5.js +18 -0
  85. package/dist/client/v2/assets/5759-11ca4d36.js +47 -0
  86. package/dist/client/v2/assets/5761-5b4fcc0f.js +28 -0
  87. package/dist/client/v2/assets/6269-1fd42a11.js +1 -0
  88. package/dist/client/v2/assets/6373-9d047c6b.js +13 -0
  89. package/dist/client/v2/assets/6437-18d1e044.js +12 -0
  90. package/dist/client/v2/assets/6581-4874c6dc.js +21 -0
  91. package/dist/client/v2/assets/6738-06ce7af7.js +20 -0
  92. package/dist/client/v2/assets/6830-d23120a0.js +1 -0
  93. package/dist/client/v2/assets/700-8f6e9747.js +15 -0
  94. package/dist/client/v2/assets/7021-32b49ced.js +45 -0
  95. package/dist/client/v2/assets/7201-2049816a.js +14 -0
  96. package/dist/client/v2/assets/7211-b8c71ed2.js +9 -0
  97. package/dist/client/v2/assets/7482-c3d402ea.js +1 -0
  98. package/dist/client/v2/assets/754-41b763b9.js +17 -0
  99. package/dist/client/v2/assets/7761-637067c6.js +123 -0
  100. package/dist/client/v2/assets/7876-673cbc3c.js +6 -0
  101. package/dist/client/v2/assets/7928-c2116323.js +1 -0
  102. package/dist/client/v2/assets/7946-09b77e08.js +13 -0
  103. package/dist/client/v2/assets/7959-f9145d32.js +40 -0
  104. package/dist/client/v2/assets/8138-f2234325.js +24 -0
  105. package/dist/client/v2/assets/8262-09946e21.js +9 -0
  106. package/dist/client/v2/assets/8434-7296f545.js +25 -0
  107. package/dist/client/v2/assets/8438-55cc74f0.js +37 -0
  108. package/dist/client/v2/assets/8562-022da9fa.js +17 -0
  109. package/dist/client/v2/assets/9261-5b0e2178.js +2 -0
  110. package/dist/client/v2/assets/9261-5b0e2178.js.LICENSE.txt +229 -0
  111. package/dist/client/v2/assets/9811-52d18c3d.js +1 -0
  112. package/dist/client/v2/assets/9836-65eadc90.js +22 -0
  113. package/dist/client/v2/assets/index-df3f23f2.js +236 -0
  114. package/dist/client/v2/assets/index-df3f23f2.js.LICENSE.txt +1 -0
  115. package/dist/client/v2/assets/runtime-9ee03ea7.js +1 -0
  116. package/dist/client/v2/assets/vendor-antd-05d1c710.js +451 -0
  117. package/dist/client/v2/assets/vendor-antd-ecosystem-3072b8fa.js +2 -0
  118. package/dist/client/v2/assets/vendor-antd-ecosystem-3072b8fa.js.LICENSE.txt +1 -0
  119. package/dist/client/v2/assets/vendor-antd-icons-b7d99c50.js +2 -0
  120. package/dist/client/v2/assets/vendor-antd-icons-b7d99c50.js.LICENSE.txt +1621 -0
  121. package/dist/client/v2/assets/vendor-lodash-831bd1b8.js +2 -0
  122. package/dist/client/v2/assets/vendor-lodash-831bd1b8.js.LICENSE.txt +8 -0
  123. package/dist/client/v2/assets/vendor-moment-84b317dc.js +2 -0
  124. package/dist/client/v2/assets/vendor-moment-84b317dc.js.LICENSE.txt +631 -0
  125. package/dist/client/v2/assets/vendor-ses-b7bccbcd.js +23 -0
  126. package/dist/client/v2/index.html +25 -0
  127. package/package.json +6 -6
  128. package/dist/client/958.c4d4681a.async.js +0 -62
  129. package/dist/client/npm._at_ant-design.4fb666c7.async.js +0 -141
  130. package/dist/client/npm._at_rc-component.fcc6d966.async.js +0 -8
  131. package/dist/client/npm.antd-mobile.55661292.async.js +0 -2
  132. package/dist/client/npm.antd.d7898d85.async.js +0 -935
  133. package/dist/client/npm.babel-runtime.eed49798.async.js +0 -1
  134. package/dist/client/npm.lodash-es.9fd92a41.async.js +0 -1
  135. package/dist/client/npm.rc-image.500705f3.async.js +0 -1
  136. package/dist/client/npm.rc-menu.623f9c7e.async.js +0 -1
  137. package/dist/client/npm.rc-picker.95a28587.async.js +0 -22
  138. package/dist/client/npm.rc-select.34fc277e.async.js +0 -3
  139. package/dist/client/npm.rc-slider.a10210c6.async.js +0 -1
  140. package/dist/client/npm.rc-table.ffbc8feb.async.js +0 -22
  141. package/dist/client/npm.rc-tree-select.866d1acb.async.js +0 -5
  142. package/dist/client/npm.rc-tree.c1d5eac5.async.js +0 -1
  143. package/dist/client/npm.rc-util.4aa445e4.async.js +0 -35
  144. package/dist/client/npm.unknown.d9b587d9.chunk.css +0 -26
  145. package/dist/client/p__index.6adf828a.async.js +0 -2738
  146. package/dist/client/umi.cce00dcd.js +0 -63
@@ -0,0 +1,236 @@
1
+ /*! For license information please see index-df3f23f2.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},85705(e,t,r){var n=r(58587),i=r(18150),o=r(68238),s=r(50467),l=r(74848),a=r(95243),c=r(1598),u=r(88909),d=r(55373),h=r.n(d);class p{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 f{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 f{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 m extends f{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 y extends m{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 v{toErrMessages(e){var t,r,n,i,o,s,l,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==(l=e.response)||null==(s=l.data)?void 0:s.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 m(this.storagePrefix,this.baseStoragePrefix,this.shareToken):"sessionStorage"===e&&"u">typeof sessionStorage?new y(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=>h().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 s=e.split(".").join(`/${encodeURIComponent(t)||"_"}/`),l={url:s+=`:${o.toString()}`};return["get","list"].includes(o)?l.method="get":l.method="post",async(e,t)=>{let{values:n,filter:i,...o}=e||{};return l.params=o,i&&("string"==typeof i?l.params.filter=i:(i["*"]&&delete i["*"],l.params.filter=JSON.stringify(i))),"get"!==l.method&&(l.data=n||{}),await this.request({...l,...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:s=!1,...l}=e||{};this.shareToken=s,this.baseStoragePrefix=o,this.storagePrefix=t?`${o}${t.toUpperCase()}_`:o,this.axios=u.A.create(l),this.initStorage(i,n),r&&(this.auth=new r(this))}this.storage||this.initStorage(),this.auth||(this.auth=new p(this)),this.interceptors()}}let w=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 b=r(72635),x=r(74586),S=r(19020),_=r(52718),k=r(96540),M=r(5338),A=r(52230),j=r(84976),P=r(47767);function R(e){Object.entries(e).forEach(e=>{let[t,r]=e;window.define(`${t}/client`,()=>r)})}function E(e){window.define(`${e}/client`,["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 C(e,t){e.requirejs.config({waitSeconds:120,paths:t.reduce((e,t)=>(e[t.packageName]=t.url,e),{})})}function F(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 T(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];C(e,t);let r=t.map(e=>e.packageName);return r.forEach(e=>{E(e)}),new Promise((n,i)=>{e.requirejs(r,F(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)}R(o)}let s=r.filter(e=>!o[e.packageName]);if(0===s.length)return i;if(0===i.length){let e=await T(t,s);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:listEnabled"}),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 I=r(2543);let D="admin.settings.",N="/admin/settings/",B="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:`${B}${e}`}getRouteName(e){return`${D}${e}`}getRoutePath(e){return`${N}${e.replaceAll(".","/")}`}add(e,t){let r=e.split("."),n=r[0];this.settings[e]={...this.settings[e],Component:P.sv,...t,name:e,topLevelName:t.topLevelName||n},r.length>1&&(0,I.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(`${D}${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 s=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:l,icon:a,aclSnippet:c,...u}=o;return{isTopLevel:e===o.topLevelName,...u,aclSnippet:this.getAclSnippet(e),title:l,isAllow:i,label:l,icon:null==(t=(r=this.app.flowEngine.context).renderIon)?void 0:t.call(r,a),path:this.getRoutePath(e),key:e,children:s.length?s: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 L=r(45588);let z=e=>{let{children:t}=e;return(0,l.jsx)(l.Fragment,{children:t})},W=k.memo(e=>(0,l.jsx)(P.UX.Provider,{value:{outlet:null,matches:[],isDataRoute:!1},children:(0,l.jsx)(P.yN.Provider,{value:null,children:e.children})}));function V(e){let t=(0,P.g)(),r=(0,P.zy)(),n=(0,P.FE)(),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 H(e){let{app:t}=e;return V(t),null}W.displayName="RouterContextCleaner";class U{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,l.jsx)(k.Suspense,{fallback:null,children:(0,l.jsx)(t,{...e})})}}getRoutesTree(){let e={};for(let[t,r]of Object.entries(this.routes))(0,I.set)(e,t.split(".").join(".children."),{...(0,I.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:s,...l}=r,a=o;i?a=k.createElement(this.createRouteLazyComponent(i)):n&&(a="string"==typeof n?this.app.renderComponent(n):k.createElement(n));let c={...l,element:a,children:s?t(s):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,L.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.Ge,browser:j.Ys,memory:P.bg},i=this.getRoutesTree(),o=(0,k.createContext)(null),s=()=>{let t=(0,k.useContext)(o);return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(H,{app:this.app}),(0,l.jsxs)(t,{children:[(0,l.jsx)(P.sv,{}),e]})]})},a=()=>{throw(0,P.r5)()};return this.router=n[t]([{element:(0,l.jsx)(s,{}),errorElement:(0,l.jsx)(a,{}),children:i}],r),e=>{let{BaseLayout:t=z}=e;return(0,l.jsx)(o.Provider,{value:t,children:(0,l.jsx)(W,{children:(0,l.jsx)(j.pg,{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 K{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=w(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,a.E8)(this,{serverDown:a.sH.ref,connected:a.sH.ref,lastMessage:a.sH.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 J=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,l.jsx)(e,{children:(0,l.jsx)(r,{...n,children:i})})};return i.displayName=`compose(${r.displayName||r.name})`,i},z);return e=>t=>(0,l.jsx)(n,{children:e&&(0,l.jsx)(e,{...t})})};var G=r(40407);class Z{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,G.b)(),window.define=this.requirejs.define}}addDefaultProviders(){this.use(A.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.I6d,{engine:this.flowEngine}),this.use(c.f7m)}addReactRouterComponents(){this.addComponents({Link:j.N_,Navigate:P.C5,NavLink:j.k2})}addRoutes(){this.router.add("not-found",{path:"*",Component:this.components.AppNotFound})}getOptions(){return this.options}getName(){return w(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=J(...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,x.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,S.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,l.jsx)(c.I6d,{engine:this.flowEngine,children:(0,l.jsx)(c.HxT,{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,l.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,l.jsx)("div",{children:"Not Found"}),AppError:()=>{var e;return(0,l.jsx)("div",{children:null==(e=this.error)?void 0:e.message})},AppSpin:()=>(0,l.jsx)("div",{children:"Loading"}),AppMaintaining:()=>(0,l.jsx)("div",{children:"Maintaining"}),AppMaintainingDialog:()=>(0,l.jsx)("div",{children:"Maintaining Dialog"})},this.maintained=!1,this.maintaining=!1,this.error=null,this.wsAuthorized=!1,this.apps={Component:null},this.initRequireJs(),(0,a.E8)(this,{maintained:a.sH.ref,maintaining:a.sH.ref,error:a.sH.ref}),this.devDynamicImport=e.devDynamicImport,this.components=(0,_.A)(this.components,e.components),this.apiClient=new v(e.apiClient),this.i18n=e.i18n||(0,b.Q_)(),this.router=new U(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.$I5,this.flowEngine.registerModels({ApplicationModel:ee}),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 K(e.ws),this.ws.app=this,this.pluginSettingsManager=new q(e.pluginSettings,this),this.addRoutes(),this.name=this.options.name||w(e.publicPath)||"main",this.i18n.on("languageChanged",e=>{this.apiClient.auth.locale=e}),this.initListeners()}}var X=new WeakMap,Q=new WeakMap;class ee extends c.WDF{get app(){return this.context.app}getProviders(){return(0,o._)(this,X,this.app.getComposeProviders()),(0,n._)(this,X)}getRouter(){return(0,o._)(this,Q,this.app.router.getRouterComponent()),(0,n._)(this,Q)}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,l.jsx)(e,{BaseLayout:t})}constructor(...e){super(...e),(0,i._)(this,X,{writable:!0,value:void 0}),(0,i._)(this,Q,{writable:!0,value:void 0})}}ee.registerFlow({key:"appFlow",steps:{init:{async handler(e,t){try{await e.app.load()}catch(t){e.model.app.error=t,console.error(t)}}}}}),(0,k.createContext)(null).displayName="ApplicationContext",r(36093);class et{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}}class er extends et{async load(){this.flowEngine.flowSettings.registerComponentLoaders({DemoFlowSettingsLazyField:()=>r.e("6830").then(r.bind(r,95757))}),this.router.add("demo.homepage",{path:"/",componentLoader:()=>r.e("465").then(r.bind(r,64856))}),this.router.add("demo.app-info",{path:"/demo/app-info",componentLoader:()=>r.e("7482").then(r.bind(r,15249))}),this.router.add("demo.flow-settings-component-loader",{path:"/demo/flow-settings-component-loader",componentLoader:()=>r.e("7928").then(r.bind(r,52459))});try{let e=await this.app.apiClient.request({url:"app:getInfo"});console.log("[client-v2 demo plugin] /api/app:getInfo",null==e?void 0:e.data)}catch(e){console.error("[client-v2 demo plugin] failed to request /api/app:getInfo",e)}}}function en(e,t){if(!e)return t;let r=e.trim();return r.startsWith("/")||(r=`/${r}`),r.endsWith("/")||(r=`${r}/`),r}function ei(){let e="/v2/",t=window.location.pathname,r=t.indexOf(e);return r>=0?en(t.slice(0,r),"/"):"/"}function eo(){let e=window.__nocobase_public_path__;if(e)return en(e.replace(/\/v2\/$/,"/"),"/");let t="/v2/";return t?en(t.replace(/\/v2\/$/,"/"),"/"):ei()}function es(){return en(`${eo().replace(/\/$/,"")}/v2/`,"/v2/")}function el(e){return"boolean"==typeof e?e:"true"===String(e||"").toLowerCase()}function ea(e){return"sessionStorage"===e||"memory"===e||"localStorage"===e?e:"localStorage"}eo();let ec=new Z({publicPath:es(),apiClient:{shareToken:el(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"},plugins:[er],loadRemotePlugins:!1});window.__nocobase_v2_app__=ec,ec.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,s=defContextName;return isArray(e)||"string"==typeof e||(o=e,isArray(t)?(e=t,t=r,r=n):e=[]),o&&o.context&&(s=o.context),(i=getOwn(contexts,s))||(i=contexts[s]=req.s.newContext(s)),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,s={waitSeconds:7,baseUrl:"./",paths:{},bundles:{},pkgs:{},shim:{},config:{}},l={},a={},c={},u=[],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,l,a,c,u,d,h,p,f,g=t&&t.split("/"),y=s.map,v=y&&y["*"];if(e&&(u=(e=e.split("/")).length-1,s.nodeIdCompat&&jsSuffixRegExp.test(e[u])&&(e[u]=e[u].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(l=o.length;l>0;l-=1){if(c=o.slice(0,l).join("/"),g){for(a=g.length;a>0;a-=1)if((i=getOwn(y,g.slice(0,a).join("/")))&&(i=getOwn(i,c))){d=i,h=l;break e}}!p&&v&&getOwn(v,c)&&(p=getOwn(v,c),f=l)}!d&&p&&(d=p,h=f),d&&(o.splice(0,h,d),e=o.join("/"))}return(n=getOwn(s.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(s.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,s,l,a,c=null,u=t?t.name:null,h=e,p=!0,m="";return e||(p=!1,e="_@r"+(f+=1)),c=(a=b(e))[0],e=a[1],c&&(s=getOwn(d,c=y(c,u,i))),e&&(c?m=r?e:s&&s.normalize?s.normalize(e,function(e){return y(e,u,i)}):-1===e.indexOf("!")?y(e,u,i):e:(c=(a=b(m=y(e,u,i)))[0],m=a[1],r=!0,o=n.nameToUrl(m))),l=!c||s||r?"":"_unnormalized"+(g+=1),{prefix:c,name:m,parentMap:t,unnormalized:!!l,url:o,originalName:h,isDefine:p,id:(c?c+"!"+m:m)+l}}function S(e){var t=e.id,r=getOwn(l,t);return r||(r=l[t]=new n.Module(e)),r}function _(e,t,r){var n=e.id,i=getOwn(l,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 k(e,t){var r=e.requireModules,n=!1;t?t(e):(each(r,function(t){var r=getOwn(l,t);r&&(r.error=e,r.events.error&&(n=!0,r.emit("error",e)))}),n||req.onError(e))}function M(){globalDefQueue.length&&(each(globalDefQueue,function(e){var t=e[0];"string"==typeof t&&(n.defQueueMap[t]=!0),u.push(e)}),globalDefQueue=[])}function A(e){delete l[e],delete a[e]}function j(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,s=getOwn(l,o);!s||e.depMatched[i]||r[o]||(getOwn(t,o)?(e.defineDep(i,d[o]),e.check()):j(s,t,r))}),r[n]=!0)}function P(){var e,r,i=1e3*s.waitSeconds,l=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&&l)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}}),l&&c.length)return(e=makeError("timeout","Load timeout for modules: "+c,null,c)).contextName=n.contextName,k(e);h&&each(u,function(e){j(e,{},{})}),(!l||r)&&d&&(isBrowser||isWebWorker)&&!o&&(o=setTimeout(function(){o=0,P()},50)),t=!1}}function R(e){hasProp(d,e[0])||S(x(e[0],null,!0)).init(e[1],e[2])}function E(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 E(t,n.onScriptLoad,"load","onreadystatechange"),E(t,n.onScriptError,"error"),{node:t,id:t&&t.getAttribute("data-requiremodule")}}function F(){var e;for(M();u.length;){if(null===(e=u.shift())[0])return k(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(s.config,e.map.id)||{}},exports:e.exports||(e.exports={})}}},(r=function(e){this.events=getOwn(c,e.id)||{},this.map=e,this.shim=getOwn(s.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,s=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(s)){if(this.events.error&&this.map.isDefine||req.onError!==defaultOnError)try{o=n.execCb(r,s,i,o)}catch(t){e=t}else o=n.execCb(r,s,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",k(this.error=e)}else o=s;if(this.exports=o,this.map.isDefine&&!this.ignore&&(d[r]=o,req.onResourceLoad)){var l=[];each(this.depMaps,function(e){l.push(e.normalizedMap||e)}),req.onResourceLoad(n,this.map,l)}A(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,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)})||""),_(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(l,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(l,function(e){0===e.map.id.indexOf(t+"_unnormalized")&&A(e.map.id)}),k(e)}),i.fromText=bind(this,function(r,o){var l=e.name,a=x(l),c=useInteractive;o&&(r=o),c&&(useInteractive=!1),S(a),hasProp(s.config,t)&&(s.config[l]=s.config[t]);try{req.exec(r)}catch(e){return k(makeError("fromtexteval","fromText eval for "+t+" failed: "+e,e,[t]))}c&&(useInteractive=!0),this.depMaps.push(a),n.completeLoad(l),h([l],i)}),r.load(e.name,h,i,s)})),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,s;if("string"==typeof e){if(e=x(e,this.map.isDefine?this.map:this.map.parentMap,!1,!this.skipMap),this.depMaps[t]=e,s=getOwn(i,e.id)){this.depExports[t]=s(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=l[r=e.id],hasProp(i,r)||!o||o.enabled||n.enable(e,this)})),eachProp(this.pluginMaps,bind(this,function(e){var t=getOwn(l,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:s,contextName:e,registry:l,defined:d,urlFetched:h,defQueue:u,defQueueMap:{},Module:r,makeModuleMap:x,nextTick:req.nextTick,onError:k,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=s.shim,i={paths:!0,bundles:!0,config:!0,map:!0};eachProp(e,function(e,t){i[t]?(s[t]||(s[t]={}),mixin(s[t],e,!0,!0)):s[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}),s.shim=r),e.packages&&each(e.packages,function(e){var t;t=(e="string"==typeof e?{name:e}:e).name,e.location&&(s.paths[t]=e.location),s.pkgs[t]=e.name+"/"+(e.main||"main").replace(currDirRegExp,"").replace(jsSuffixRegExp,"")}),eachProp(l,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(s,a,c){var u,h;return(r.enableBuildCallback&&a&&isFunction(a)&&(a.__requireJsBuild=!0),"string"==typeof s)?isFunction(a)?k(makeError("requireargs","Invalid require call"),c):t&&hasProp(i,s)?i[s](l[t.id]):req.get?req.get(n,s,t,o):hasProp(d,u=x(s,t,!1,!0).id)?d[u]:k(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(s,a,c,{enabled:!0}),P()}),o)}return r=r||{},mixin(o,{isBrowser:isBrowser,toUrl:function(e){var r,i=e.lastIndexOf("."),o=e.split("/")[0],s="."===o||".."===o;return -1!==i&&(!s||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(l,e)}}),t||(o.undef=function(e){M();var r=x(e,t,!0),i=getOwn(l,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),A(e))}),o},enable:function(e){getOwn(l,e.id)&&S(e).enable()},completeLoad:function(e){var t,r,i,o=getOwn(s.shim,e)||{},a=o.exports;for(M();u.length;){if(null===(r=u.shift())[0]){if(r[0]=e,t)break;t=!0}else r[0]===e&&(t=!0);R(r)}if(n.defQueueMap={},i=getOwn(l,e),!t&&!hasProp(d,e)&&i&&!i.inited)if(!s.enforceDefine||a&&getGlobal(a))R([e,o.deps||[],o.exportsFn]);else if(w(e))return;else return k(makeError("nodefine","No define call for "+e,null,[e]));P()},nameToUrl:function(e,t,r){var i,o,l,a,c,u,d=getOwn(s.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=s.paths,l=(o=e.split("/")).length;l>0;l-=1)if(c=getOwn(i,o.slice(0,l).join("/"))){isArray(c)&&(c=c[0]),o.splice(0,l,c);break}a=o.join("/"),a+=t||(/^data\:|^blob\:|\?/.test(a)||r?"":".js"),a=("/"===a.charAt(0)||a.match(/^[\w\+\.\-]+:/)?"":s.baseUrl)+a}return s.urlArgs&&!/^blob\:/.test(a)?a+s.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(l,function(e,n){0!==n.indexOf("_@r")&&each(e.depMaps,function(e){if(e.id===t.id)return r.push(n),!0})}),k(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:()=>l,YQ:()=>a});var n=r(74848),i=r(96540);let o=(0,i.createContext)(null),s=(0,i.createContext)(null);function l(e){return(0,n.jsx)(o.Provider,{value:e.context,children:e.children})}let a=i.memo(e=>(0,n.jsx)(s.Provider,{value:e.context,children:(0,n.jsx)(o.Provider,{value:e.context,children:e.children})}));function c(){return(0,i.useContext)(o)}a.displayName="FlowViewContextProvider"},68161(e,t,r){r.d(t,{G:()=>l});var n=r(50467),i=r(95243),o=r(2543),s=r.n(o);class l{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,s]of i)r===t&&n.push([e,o]),n.push([r,s]);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.sH.shallow(new Map),this.options=i.sH.shallow(s().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.sH.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 s=/(^|[=(:,[\s)])(\{\{\s*(ctx(?:\.|\[|\?\.)[^}]*)\s*\}\})/m;function l(e){let t=String(e||"").match(s);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 () => {
3
+ try {
4
+ ${e};
5
+ } catch (e) {
6
+ throw e;
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=l(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||{},s={};if(!Object.prototype.hasOwnProperty.call(o,"Blob"))try{let e=null==(t=o.window)?void 0:t.Blob;void 0!==e&&(s.Blob=e)}catch{}if(!Object.prototype.hasOwnProperty.call(o,"URL"))try{let e=null==(r=o.window)?void 0:r.URL;void 0!==e&&(s.URL=e)}catch{}this.globals={console,setTimeout:i("setTimeout"),clearTimeout:i("clearTimeout"),setInterval:i("setInterval"),clearInterval:i("clearInterval"),...s,...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"]),s={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,s)}},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),s=r(89013);let l=["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!l.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:g}=c,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)(s.A.Item,{...c,labelCol:{style:{width:a}},layout:g,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),s=r(4888),l=r(96540),a=r(14173),c=r(80581),u=r(35710);let d=(e,t)=>{let{getPrefixCls:r}=(0,l.useContext)(s.Ay.ConfigContext)||{};if("ConfigContext"in s.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}=s.Ay,p=()=>(0,l.useContext)(h),f=u.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:s,iconPrefixCls:u}=p(),h=d(n),m=s(),y=(0,a.IV)({theme:t,token:r,hashId:o,path:["formily-antd",n,h,u]},()=>{let t=`.${h}`,n=i((0,c.h1)(r,{componentCls:t,prefixCls:h,iconCls:`.${u}`,antCls:`.${m}`}),e,{hashId:o,prefixCls:h,rootPrefixCls:m,iconPrefixCls:u});return[g(r,h),n]});return{wrapSSR:(0,l.useMemo)(()=>y,[t,r,o,h,u,m,e]),hashId:o,componentCls:h,rootPrefixCls:m}});var y=r(56391),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}=m(),f=(0,l.useMemo)(()=>({minHeight:a}),[a]),g=(0,l.useMemo)(()=>({token:{paddingPageHorizontal:8,paddingPageVertical:8,marginBlock:12,borderRadiusBlock:8,fontSize:14}}),[]);return(0,o.jsx)(s.Ay,{theme:g,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),s=r(87959),l=r(71021),a=r(96540),c=r(6409),u=r(16296),d=r(78863);let h=(0,i.Uy)(),p=e=>{let{model:t,requiredSteps:r,formStep:i,children:o}=e,s=r[(null==i?void 0:i.current)??0],l=a.useMemo(()=>{let{flowKey:e,step:r}=s,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,s]);return(0,n.jsx)(u.u,{value:l,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 s.Ay.error(g("Invalid model provided")),Error(g("Invalid model provided"));return new Promise((e,s)=>{(async()=>{try{var m,y,v;let s=t.getFlows(),w=[];for(let[e,r]of s)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 s=!1;console.log(`Flow: ${e}, Step: ${n}, hasAllRequiredParams:`,s),s||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)||{},s={};n.use&&(s=(null==(v=t.flowEngine)||null==(y=v.getAction)?void 0:y.call(v,n.use)).defaultParams||{});let l=new c.W5(t,e,"settings"),a=t.getFlow(e);a&&(0,d.wx)(l,a.steps,t,e),l.defineProperty("currentStep",{value:n});let u=await (0,d.gG)(s,l),h=await (0,d.gG)(n.defaultParams,l),p={...(0,o.HO)(u),...(0,o.HO)(h),...(0,o.HO)(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:k}=await r.e("5366").then(r.bind(r,85861)),M=w.length>1?k.createFormStep(0):null,A=t.flowEngine,j={formStep:M,totalSteps:w.length,requiredSteps:w,useFlowSettingsContext:u.s,...null==(m=A.flowSettings)?void 0:m.scopes},P=_({title:f||g("Step parameter configuration"),width:a,footer:null,destroyOnClose:!0},r=>{var o;let s=async()=>{try{await r.submit();let n=r.values;w.forEach(e=>{var r;let{flowKey:i,stepKey:o}=e,s=null==(r=n[i])?void 0:r[o];s&&t.setStepParams(i,o,s)}),await t.saveStepParams(),e(n),P.close()}catch(e){console.error(g("Error submitting form"),":",e)}},a=()=>{P.close(),e({})},c={...j,closeDialog:a,handleNext:()=>{r.validate().then(()=>{M&&M.next()}).catch(e=>{console.log(g("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:M,children:(0,n.jsx)(h,{schema:u,components:{FormStep:k,...null==(o=A.flowSettings)?void 0:o.components},scope:c})}),(0,n.jsx)(i.nq,{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)(l.Ay,{type:"primary",onClick:s,children:g("Complete configuration")}):(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(l.Ay,{disabled:!(null==M?void 0:M.allowBack),onClick:()=>{M&&M.back()},children:g("Previous step")}),(0,n.jsx)(l.Ay,{disabled:!(null==M?void 0:M.allowNext),type:"primary",onClick:()=>{r.validate().then(()=>{M&&M.next()}).catch(e=>{console.log(g("Form validation failed"),":",e)})},style:{display:((null==M?void 0:M.current)??0)<w.length-1?"inline-block":"none"},children:g("Next step")}),(0,n.jsx)(l.Ay,{disabled:null==M?void 0:M.allowNext,type:"primary",onClick:s,style:{display:((null==M?void 0:M.current)??0)>=w.length-1?"inline-block":"none"},children:g("Complete configuration")})]})})})]})});P.open({initialValues:(0,d.ln)(j,b)})}catch(e){s(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),s=r(95243),l=r(84626),a=r(71021),c=r(96540),u=r(16296),d=r(78863),h=r(31108),p=r(52847);let f=(0,o.Uy)(),g=async e=>{var t,r,g,m,y,v,w,b;let{model:x,flowKey:S,stepKey:_,dialogWidth:k=600,dialogTitle:M,mode:A="dialog",ctx:j,uiModeProps:P,cleanup:R}=e,E=(0,d.lW)(x),C=x.context.message;if(!x)throw C.error(E("Invalid model provided")),Error(E("Invalid model provided"));let F=x.getFlow(S),T=null==F||null==(t=F.steps)?void 0:t[_];if(!F)throw C.error(E("Flow with key {{flowKey}} not found",{flowKey:S})),Error(E("Flow with key {{flowKey}} not found",{flowKey:S}));if(!T)throw C.error(E("Step with key {{stepKey}} not found",{stepKey:_})),Error(E("Step with key {{stepKey}} not found",{stepKey:_}));let $=T.title,O=T.beforeParamsSave,I=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||{},$=$||e.title,O=O||e.beforeParamsSave,I=I||e.afterParamsSave)}let N=x.getFlow(S),B=await (0,d.o7)(x,N,T);if(!B)return C.info(E("This step has no configurable parameters")),{};let q=j;q.currentStep&&q.currentStep===T||q.defineProperty("currentStep",{value:T});let L=x.flowEngine,z={useFlowSettingsContext:u.s,...null==(r=L.flowSettings)?void 0:r.scopes},W=x.getStepParams(S,_)||{},V=await (0,d.gG)(T.defaultParams,q),H=await (0,d.gG)(D,q),U={...(0,s.HO)(H),...(0,s.HO)(V),...(0,s.HO)(W)},K={...(0,s.HO)(W)},Y={type:"object",properties:{layout:{type:"void","x-component":"FormLayout","x-component-props":{layout:"vertical"},properties:B}}},J=x.context.viewer[A].bind(x.context.viewer),{zIndex:G,...Z}=(0,s.HO)(P)||{},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.DG)({initialValues:(0,d.ln)(z,U)}),et=(null==(g=x.context.view)?void 0:g.inputArgs)||{},er=(null==j||null==(m=j.view)?void 0:m.navigation)??(null==(y=x.context.view)?void 0:y.navigation),en={...et,...er?{navigation:er}:{},...(null==(v=(0,s.HO)(P))?void 0:v.inputArgs)||{},__isSettingsPopup:!0};J({title:M||E($),width:k,destroyOnClose:!0,...Z,zIndex:Q,inputArgs:en,onClose:()=>{R&&R()},content:e=>{let t=(0,p.PA)(()=>{var t;(0,c.useEffect)(()=>(0,s.fm)(()=>{let{zIndex:t,...r}=(0,s.HO)(P)||{};e.update({...r,zIndex:X(t)})}),[]);let r=(0,d.ln)(z,Y);return(0,n.jsx)(o.Op,{form:ee,children:(0,n.jsxs)(u.u,{value:q,children:[(0,n.jsx)(f,{schema:r,components:{...null==(t=L.flowSettings)?void 0:t.components},scope:z}),(0,n.jsx)(e.Footer,{children:(0,n.jsxs)(l.A,{align:"end",children:[(0,n.jsx)(a.Ay,{type:"default",onClick:()=>{e.close()},children:E("Cancel")}),(0,n.jsx)(a.Ay,{type:"primary",onClick:async()=>{try{await ee.submit();let t=ee.values;x.setStepParams(S,_,t),O&&await O(q,t,K),e.close(),await x.saveStepParams(),C.success(E("Configuration saved")),I&&await I(q,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(E("Error saving configuration"),":",t),C.error(E("Error saving configuration, please check console"))}},children:E("OK")})]})})]})})});return(0,n.jsx)(t,{})}})}},41594(e,t,r){r.d(t,{Ls:()=>l,Qp:()=>d,z5:()=>c});var n=r(2543),i=r.n(n),o=r(78863);async function s(e,t){return"function"==typeof e?await e(t):e}async function l(e,t){let r=arguments.length>2&&void 0!==arguments[2]&&arguments[2],n=e.meta??{};if(await s(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),s=e=>null==e?void 0:e.map(e=>{let r={...e};if(r.children)r.children=Array.isArray(r.children)?s(r.children):r.children;else if(r.createModelOptions){let e=r.createModelOptions;r.createModelOptions=async function(){for(var r=arguments.length,s=Array(r),l=0;l<r;l++)s[l]=arguments[l];let a=s&&s.length>0?s[s.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 s(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 s(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 s(null==(i=t.meta)?void 0:i.hide,r)&&(c=[t])}let u=[];for(let e of c){let t=await l(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 l of e){var i,o,s;let e="string"==typeof l?t.engine.getModelClass(l):l;if(!e)continue;let c=a(e,t);c||(c=await u(l,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 l?l:e.name),p="string"==typeof l?l:e.name,f=(null==e||null==(o=e.meta)?void 0:o.menuType)||"group",g=(null==e||null==(s=e.meta)?void 0:s.sort)??1e3;"submenu"===f?r.push({key:p,label:h,sort:g,children:c}):r.push({key:p,type:"group",label:h,sort:g,children:c})}return r.sort((e,t)=>((null==e?void 0:e.sort)??1e3)-((null==t?void 0:t.sort)??1e3))}}},76546(e,t,r){r.d(t,{zA:()=>d,qS:()=>h});var n=r(50467),i=r(95243),o=r(2543),s=r.n(o),l=r(16075),a=r.n(l);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.sH.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.sH)({...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 s of(t.has(e)&&o.push(t.get(e)),r[e]||[]))n[s]--,0===n[s]&&i.push(s)}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 s().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)}),s().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.sH.shallow(new Map)}}class f{clone(){let e=new f(s().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]]:s().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.sH)({...e}),this.fields=i.sH.shallow(new Map),this.inherits=i.sH.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=s().omitBy({...s().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},s().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)=>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.sH)({...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)}}},6409(e,t,r){r.d(t,{W5:()=>eC,uk:()=>eY,Hl:()=>eE,o0:()=>eP,d6:()=>eR,cB:()=>ev});var n=r(58587),i=r(18150),o=r(68238),s=r(88243),l=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),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 s=this.getActionAlias(t),{dataSources:l}=(null==(n=this)?void 0:n.meta)||{},a={...this.data,...(0,d.omit)(null==l?void 0:l[r],"snippets")};return(null==(i=a.actions)?void 0:i[`${e}:${s}`])||(null==(o=a.actions)?void 0:o[t])}getStrategyActionParams(e,t){var r,n,i;let o=this.getActionAlias(e),{dataSources:s}=(null==(r=this)?void 0:r.meta)||{},l={...this.data,...(0,d.omit)(null==s?void 0:s[t],"snippets")};return(null==l||null==(i=l.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:s}=e,l=(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,s)?this.inResources(l,i)?this.getResourceActionParams(l,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 k{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 M=r(91013),A=r(99784),j=r(78863),P=r(31108),R=r(35339);function E(e){let t={};return Object.entries(e||{}).forEach(e=>{let[r,n]=e;null!=n&&(t[r]=n)}),t}function C(e,t,r){try{var n,i,o,s,l;let a=null==(i=e.dataSourceManager)||null==(n=i.getDataSource)?void 0:n.call(i,t||"main"),c=null==a||null==(s=a.collectionManager)||null==(o=s.getCollection)?void 0:o.call(s,r);return(null==c||null==(l=c.getPrimaryKey)?void 0:l.call(c))||"id"}catch(e){return"id"}}function F(e,t){var r,n;if(!t)return;let i=t.dataSourceKey||"main",o=t.collection||(null==(r=t.record)?void 0:r.__collectionName);if(!o)return;let s=C(e,i,o)||"id",l=void 0!==t.filterByTk?t.filterByTk:void 0!==t.id?t.id:null==(n=t.record)?void 0:n[s];if(void 0!==l)return E({collection:o,filterByTk:l,dataSourceKey:i,associationName:t.associationName,sourceId:t.sourceId,fields:t.fields,appends:t.appends})}function T(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,o)=>{if(r(t)){let r=F(e,t);r&&(n[o.join(".")]=r);return}if(Array.isArray(t)){for(let e=0;e<t.length;e++)i(t[e],[...o,String(e)]);return}if(t&&"object"==typeof t){for(let[e,r]of Object.entries(t))i(r,[...o,e]);return}};return i(t,[]),Object.keys(n).length?n:void 0}var $=r(5072),O=r(37966),I=r(62572),D=r(74353),N=r.n(D),B=r(98192),q=r(47684);function L(){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 z(e){if(!e)return;let t=L();for(let r of e){if("string"!=typeof r)continue;let e=r.trim();e&&t.windowAllow.add(e)}}function W(e){if(!e)return;let t=L();for(let r of e){if("string"!=typeof r)continue;let e=r.trim();e&&t.documentAllow.add(e)}}function V(e){try{if(!e||"object"!=typeof e&&"function"!=typeof e)return[];return Object.getOwnPropertyNames(e)}catch(e){return[]}}function H(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 U(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 K(){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 Y(){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 J(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(;Y();){if(Date.now()-n>=t)return;await new Promise(e=>setTimeout(e,r))}}async function G(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),s=(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())},s=o>0?setTimeout(()=>{n()},o):void 0;t.onload=()=>{s&&clearTimeout(s),n()},t.onerror=()=>{s&&clearTimeout(s),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,s),await s}async function Z(e,t){return await U(async()=>{let r,n,i="u">typeof window?V(window):[],o="u">typeof document?V(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?V(window):[],t="u">typeof document?V(document):[],r=H(e,i),n=H(t,o);z(r),W(n)}if(n)throw n;return r})}async function X(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 G(n),await U(async()=>{await J();let e=i?K():()=>{};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 Q(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 ee(e){if(!e||"string"!=typeof e)return null;let t=Q(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 et(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):"",s=i.indexOf("?"),l=s>=0?i.slice(0,s):i,a=new URLSearchParams(s>=0?i.slice(s+1):"");for(let[e,r]of Object.entries(t))e&&(a.has(e)||a.set(e,r));let c=a.toString();return c?`${l}?${c}${o}`:`${l}${o}`}function er(){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 en(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 ei(e,t,r){if(!t||"string"!=typeof t)throw Error("invalid url");let n=t,i=ee(t);if((null==i?void 0:i.name)==="antd"&&!i.subpath&&"string"==typeof er()){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=et(n,t)}let o=(0,q.i)(n,{addSuffix:(null==r?void 0:r.addSuffix)??!0}),s=(null==r?void 0:r.importer)||X,l=globalThis;l.__nocobaseImportAsyncCache=l.__nocobaseImportAsyncCache||new Map;let a=l.__nocobaseImportAsyncCache,c=a.get(o)||(async()=>en(await s(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=ee(n);if(!h)return u;let p=h.subpath||"";if("react"!==h.name||p)"react-dom"===h.name&&("client"===p||p.startsWith("client/"))?((0,B.qf)(e,"ReactDOM",u),e.__runjsExternalReactDOM={specifier:t,version:h.version,url:o}):"antd"!==h.name||p?"@ant-design/icons"!==h.name||p||((0,B.qf)(e,"antdIcons",u,{topLevelKey:!1}),e.__runjsExternalAntdIcons={specifier:t,version:h.version,url:o}):((0,B.qf)(e,"antd",u),e.__runjsExternalAntd={specifier:t,version:h.version,url:o});else{(0,B.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 eo(e){return!!(e&&"object"==typeof e&&"collection"in e&&"filterByTk"in e)}function es(e,t){if(t&&0!==t.length){if(eo(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 el(e){if(!e)return;let t=String(e).match(/^([^.[]+)/);return null==t?void 0:t[1]}function ea(){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 ec=new WeakMap,eu=new WeakSet,ed=new WeakSet,eh=new WeakSet,ep=new WeakSet,ef=new WeakSet,eg=new WeakSet,em=new WeakSet,ey=new WeakSet;class ev{createProxy(){return(0,n._)(this,ec)||(0,o._)(this,ec,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,ec)}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 ev))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 ev))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 ev))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,j.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,s._)(this,eu,ew).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,s._)(this,ed,eb).call(this,r);if(n){let[i,o,l]=n;if(1===r.length){if("function"==typeof o)return()=>e(o,l,i);if(o.properties){if("function"==typeof o.properties)return()=>e(o,l,i);let t=(0,s._)(this,eu,ew).call(this,o.properties,l,[],o);return Array.isArray(t)?t:[]}return[]}if("function"==typeof o){if(null==t?void 0:t.flatten)return()=>e(o,l,i);let r=(0,s._)(this,em,ek).call(this,l);return[(0,s._)(this,ey,eM).call(this,i,o,l,r)]}if(o.properties){let e=[...(0,s._)(this,em,ek).call(this,l),o.title],t=(0,s._)(this,eu,ew).call(this,o.properties,l,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,s._)(this,ey,eM).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,s=(()=>{var e,r,n,i,o,s,l,a;let c=(0,O.B)(this),u=O.F.resolve(t,c)||O.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==(s=this)?void 0:s.locale);try{if(null==u||null==(l=u.getDoc)?void 0:l.length)return u.getDoc(d)||{};return(null==u||null==(a=u.getDoc)?void 0:a.call(u))||{}}catch(e){return{}}})(),l=eI(null==s?void 0:s.methods)?s.methods:{},a=eI(null==s?void 0:s.properties)?s.properties:{},c=e=>"string"==typeof e?{description:e}:eI(e)?e:void 0,u=(e,t)=>{let r="string"==typeof t?t:eI(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}},g=new Set,m=new Set;for(let e of Object.keys(a))g.add(e);for(let e of Object.keys(l))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=c(t),s=c(r),l={};if(l={...l={...l,...h(o)},...h(s)},delete l.properties,delete l.completion,!Object.keys(l).length)continue;let d=u(e,t);v[d]=v[d]?{...v[d]||{},...l||{}}:l}for(let e of m){if(n(e))continue;let t=l[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=eI(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={},s=e=>{try{return e()}catch(e){return}},l=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 s={};if(!e)return s;let a=e;for(let e of["dataSourceKey","collectionName","associationName","filterByTk","sourceId"]){let t=null==a?void 0:a[e];l(t)&&(s[e]=t)}if(!("dataSourceKey"in s)){let e=null==(t=a.getDataSourceKey)?void 0:t.call(a);l(e)&&(s.dataSourceKey=e)}if(!("filterByTk"in s)){let e=null==(r=a.getFilterByTk)?void 0:r.call(a);l(e)&&(s.filterByTk=e)}if(!("filterByTk"in s)){let e=null==(n=a.getMeta)?void 0:n.call(a,"currentFilterByTk");l(e)&&(s.filterByTk=e)}if(!("sourceId"in s)){let e=null==(i=a.getSourceId)?void 0:i.call(a);l(e)&&(s.sourceId=e)}if(!("collectionName"in s)||!("associationName"in s)){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 s||(s.collectionName=e[0]):e.length>=2&&("collectionName"in s||(s.collectionName=e[0]),"associationName"in s||(s.associationName=e.slice(1).join(".")))}}return s},c=await (async()=>{try{let e=n.popup;return i(e)?await e:e}catch(e){return}})(),u=s(()=>n.model),d=s(()=>n.blockModel),h=s(()=>{var e;return null==(e=n.view)?void 0:e.inputArgs}),p=s(()=>n.resource),f=a(null==c?void 0:c.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(l(t.value))return{value:t.value,getVar:t.getVar}},S=e=>l(e.collectionName)||l(e.dataSourceKey)||l(e.associationName),_=S(f)?"ctx.popup.resource":S(v)?y:S(w)?"ctx.view.inputArgs":S(b)?"ctx.resource":void 0,k=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"}]),M=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"}]),A=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"}]),j=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"}]),P=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={},E=!1,C=null==k?void 0:k.value;l(C)&&(R.collectionName={description:"Collection name",getVar:(null==k?void 0:k.getVar)||(_?`${_}.collectionName`:void 0),value:C},E=!0);let F=null==M?void 0:M.value;l(F)&&(R.dataSourceKey={description:"Data source key",getVar:(null==M?void 0:M.getVar)||(_?`${_}.dataSourceKey`:void 0),value:F},E=!0);let T=null==A?void 0:A.value;l(T)&&(R.associationName={description:"Association name",getVar:(null==A?void 0:A.getVar)||(_?`${_}.associationName`:void 0),value:T},E=!0),E&&(l(null==j?void 0:j.value)&&(R.filterByTk={description:"Record filterByTk",getVar:(null==j?void 0:j.getVar)||(_?`${_}.filterByTk`:void 0)}),l(null==P?void 0:P.value)&&(R.sourceId={description:"Source record ID (sourceId)",getVar:(null==P?void 0:P.getVar)||(_?`${_}.sourceId`:void 0)}),o.resource={description:"Resource information",getVar:_,properties:R}),l(null==j?void 0:j.value)&&(o.record={description:"Current record",getVar:"ctx.record"});let $=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=$(u),r=u.uid,n=null==(e=u.constructor)?void 0:e.name,i=a(u.resource),s={},c=!1,d=i.collectionName;l(d)&&(s.collectionName={description:"Collection name",getVar:"ctx.model.resource.collectionName",value:d},c=!0);let h=i.dataSourceKey;l(h)&&(s.dataSourceKey={description:"Data source key",getVar:"ctx.model.resource.dataSourceKey",value:h},c=!0);let p=i.associationName;l(p)&&(s.associationName={description:"Association name",getVar:"ctx.model.resource.associationName",value:p},c=!0),o.flowModel={description:"Current FlowModel information",getVar:"ctx.model",properties:{...l(t)?{label:{description:"Flow model label",value:t}}:{},...l(n)?{modelClass:{description:"Flow model class name",value:n}}:{},...l(r)?{uid:{description:"Flow model uid",getVar:"ctx.model.uid",value:r}}:{},...c?{resource:{description:"Flow model resource",getVar:"ctx.model.resource",properties:s}}:{}}}}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"}}:{}}}),g){let e=$(g),r=g.uid,n=null==(t=g.constructor)?void 0:t.name,i={},s=!1,a=v.collectionName;l(a)&&(i.collectionName={description:"Collection name",getVar:`${y}.collectionName`,value:a},s=!0);let c=v.dataSourceKey;l(c)&&(i.dataSourceKey={description:"Data source key",getVar:`${y}.dataSourceKey`,value:c},s=!0);let u=v.associationName;l(u)&&(i.associationName={description:"Association name",getVar:`${y}.associationName`,value:u},s=!0),o.block={description:"Current block information",getVar:m,properties:{...l(e)?{label:{description:"Block label",value:e}}:{},...l(n)?{modelClass:{description:"Block model class name",value:n}}:{},...l(r)?{uid:{description:"Block uid",getVar:`${m}.uid`,value:r}}:{},...s?{resource:{description:"Block resource",getVar:y,properties:i}}:{}}}}let O=(()=>{let e=null==c?void 0:c.uid;if(l(e))return String(e).trim();let t=null==h?void 0:h.viewUid;if(l(t))return String(t).trim()})(),I=s(()=>n.engine),D=O?null==I?void 0:I.getModel(O,!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)||e||i.uid,o=a(i.resource),s={};l(o.dataSourceKey)&&(s.dataSourceKey=o.dataSourceKey),l(o.collectionName)&&(s.collectionName=o.collectionName),l(o.associationName)&&(s.associationName=o.associationName);let c={uid:i.uid,label:n,modelClass:e,...Object.keys(s).length>0?{resource:s}:{}};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("_"),s=e=>!!e&&("object"==typeof e||"function"==typeof e)&&"function"==typeof e.then,l=new WeakMap,a=async e=>{if(!e)return;if("function"!=typeof e)return e;let t=l.get(e);return t||(t=(async()=>{let t=e.call(i,i);return(s(t)?await t:t)||null})(),l.set(e,t)),await t||void 0},c=e=>{if("string"!=typeof e)return;let t=e.trim();if(!t)return;let r=(0,j.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,s,l,a;let c=(0,O.B)(this),u=O.F.resolve(n,c)||O.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==(s=this)?void 0:s.locale);try{if(null==u||null==(l=u.getDoc)?void 0:l.length)return u.getDoc(d)||{};return(null==u||null==(a=u.getDoc)?void 0:a.call(u))||{}}catch(e){return{}}})();eI(null==h?void 0:h.methods)&&h.methods,eI(null==h?void 0:h.properties)&&h.properties;let p=e=>"string"==typeof e?{description:e}:eI(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 s(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=s(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=s(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:s,metaNode:l,infoNode:c,depth:u,pathFromRoot:d,hiddenPrefixes:h}=e,b=d.join(".");if(y(b,h))return;let x=p(s),S=p(c),_=await m(null==x?void 0:x.hidden);if(_.hideSelf)return;let k=await m(null==S?void 0:S.hidden);if(k.hideSelf)return;let M=await a(l);if(await f(null==M?void 0:M.hidden,e=>e.call(M,i)))return;let A=new Set(h);for(let e of[..._.hideSubpaths,...k.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;A.add(n)}let j=await f(null==x?void 0:x.disabled,e=>e(i)),P=await g(null==x?void 0:x.disabledReason,e=>e(i)),R=await f(null==M?void 0:M.disabled,e=>e.call(M,i)),E=await g(null==M?void 0:M.disabledReason,e=>e.call(M,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:j,$=void 0!==F?F:void 0!==E?E:P,O={};if(O={...O={...O={...O,...v(x)},...v(M)},...v(S)},void 0!==T&&(O.disabled=!!T),void 0!==$&&(O.disabledReason=$),u>=r)return Object.keys(O).length?O:void 0;let I=eI(null==x?void 0:x.properties)?x.properties:void 0;if(null==M?void 0:M.properties)try{let e=M.properties;if("function"==typeof e){let r=await e.call(M,i);M.properties=r,t=r}else eI(e)&&(t=e)}catch(e){t=void 0}if(eI(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 eI(e)&&(n=e)}catch(e){n=void 0}let D=new Set;if(I)for(let e of Object.keys(I))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(O).length?O:void 0;let N={};for(let e of D){if(o(e))continue;let r=await w({docNode:null==I?void 0:I[e],metaNode:null==t?void 0:t[e],infoNode:null==n?void 0:n[e],depth:u+1,pathFromRoot:[...d,e],hiddenPrefixes:A});r&&(N[e]=r)}if(Object.keys(N).length&&(O.properties=N),Object.keys(O).length)return O},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 s=null==o?void 0:o[n];if(!s)break;if(t===r.length-1)return s;let l=await a(s);if(!l)break;e=l}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,l._)(this,eu),(0,l._)(this,ed),(0,l._)(this,eh),(0,l._)(this,ep),(0,l._)(this,ef),(0,l._)(this,eg),(0,l._)(this,em),(0,l._)(this,ey),(0,a._)(this,"_props",{}),(0,a._)(this,"_methods",{}),(0,a._)(this,"_methodInfos",{}),(0,a._)(this,"_cache",{}),(0,a._)(this,"_observableCache",c.sH.shallow({})),(0,a._)(this,"_delegates",[]),(0,a._)(this,"_pending",{}),(0,i._)(this,ec,{writable:!0,value:null}),(0,a._)(this,"_metaNodeCache",new WeakMap),this.createProxy()}}function ew(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,s._)(this,ey,eM).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,s._)(this,ey,eM).call(this,n,i,[...t,n],r)})}function eb(e){if(0===e.length)return null;let[t,...r]=e,n=this._props[t];if(null==n?void 0:n.meta)return(0,s._)(this,ep,eS).call(this,t,n.meta,r,[t]);let i=(0,s._)(this,eh,ex).call(this,this._delegates,t);return i?(0,s._)(this,ep,eS).call(this,t,i,r,[t]):null}function ex(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,s._)(this,eh,ex).call(this,r._delegates,t);if(n)return n}return null}function eS(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,s._)(this,eg,e_).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,s._)(this,eg,e_).call(this,o,i)},[...n,...r]];let l=t.properties[e];if(l)return(0,s._)(this,ep,eS).call(this,e,l,i,o)}return null}async function e_(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 ek(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 eM(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 l=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)&&l(e).disabled},disabledReason:()=>{let e=t();if(!e||"function"!=typeof e.then)return l(e).reason},hidden:()=>{let e=t();return(!e||"function"!=typeof e.then)&&l(e).hidden},children:!1===a?void 0:async()=>{try{let o=await t(),l=(null==o?void 0:o.title)||e;if(r.title=l,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,s._)(this,eu,ew).call(this,o.properties,n,[...i,l],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}=l(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,s._)(this,eu,ew).call(this,t.properties,n,[...i,o],t):void 0}}return this._metaNodeCache.set(t,r),r}class eA extends ev{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||{}},s=await this.createJSRunner({...i||{},globals:o}),l=(0,M.R)({version:null==i?void 0:i.version,preprocessTemplates:n}),a=await (0,j.ji)(String(e??""),{preprocessTemplates:l});return s.run(a)})}}class ej extends eA{}class eP extends eA{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 A.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 k(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,j.nN)(e),r=Object.keys(t||{});if(!r.length)return(0,j.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,$.XU)(e);if(t)return t;try{var r,n,i,o,s,l,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 g=(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==(l=a.call(c,"."))||null==(s=l.slice)||null==(o=s.call(l,-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 s=await o(this);if(!s)continue;let l=n[t]||[],a=es(s,l);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=el(e);t&&n.add(t)}let o=null==i?void 0:i[e],s=new Set;if(!o||"object"!=typeof o||Array.isArray(o)||eo(o)||Object.keys(o).forEach(e=>s.add(e)),[...n].filter(e=>!s.has(e)).length){let n=t(this);if(n){let{generatedFields:t,generatedAppends:i}=ea(r),o={...n,fields:t,appends:i},s=a[e];if(s&&"object"==typeof s&&!Array.isArray(s)&&!eo(s)){for(let[t,r]of Object.entries(s))a[`${e}.${t}`]=r;delete a[e]}a[e]=o}}}}catch(e){}let c=Object.keys(a).length?T(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,j.M)(e,this)}if(this.api)try{o=await (0,R.o4)(this,{template:e,contextParams:c||{}})}catch(t){var s,l;null==(l=this.logger)||null==(s=l.warn)||s.call(l,{err:t},"variables:resolve failed, fallback to client-only"),o=e}}return(0,j.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,j.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,j.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,j.JE)(i))return;let o=(0,j.Vv)(i);return void 0!==o?o:e(i)}});return e(["date"])},cache:!1}),this.defineMethod("loadCSS",async e=>{let t=(0,j.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,j.yp)(e))return this.loadCSS(e);let t=(0,j.i)(e,{raw:!0});return await Z(this.requirejs,t)}),this.defineMethod("importAsync",async function(e){return(0,j.yp)(e)?this.loadCSS(e):await ei(this,e,{importer:X})}),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,O.B)(this),i=O.F.resolve(t,n)||eY,o=new i(this);o.defineMethod("t",(e,t)=>this.t(e,{ns:"runjs",...t}));let s={};try{var l,a,c,u,d,h,p,f;let e=(null==(c=this)||null==(a=c.api)||null==(l=a.auth)?void 0:l.locale)||(null==(d=this)||null==(u=d.i18n)?void 0:u.language)||(null==(h=this)?void 0:h.locale);s=(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){s={}}let g={ctx:eW(o,{doc:s}),...(null==e?void 0:e.globals)||{}},{timeoutMs:m}=e||{};return new M.I({globals:g,timeoutMs:m})}),this.defineMethod("buildServerContextParams",function(e){return T(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,I.v)(this,r);if(!r)throw Error(`Action '${e}' not found.`);let i={...await (0,j.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 eR extends ej{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,s;let l={...t};(l.defineProperties||l.defineMethods)&&(l.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(l,["dataSourceKey","collectionName","associationName","mode","size"])}}}}),await a.save()}a.setParent(this.model);let c=(null==l?void 0:l.routeViewUid)??(null==l?void 0:l.viewUid)??((null==(n=a.stepParams)||null==(r=n.popupSettings)?void 0:r.openView)?a.uid:this.model.uid),u=this.view,d=(null==l?void 0:l.isMobileLayout)?"embed":(null==l?void 0:l.mode)||"drawer",h={...l,viewUid:c,navigation:l.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==l?void 0:l.preventClose),engineCtx:this.engine.context};a.context.defineProperty("view",{value:p});let f=null==(s=a.getFlow)?void 0:s.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,{...l},{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,I.v)(this,r);if(!r)throw Error(`Action '${e}' not found.`);let i={...await (0,j.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 eE extends ej{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 eC extends ej{_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 P.zz(this.flowKey,this.model.uid)}exitAll(){throw new P.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 eF=new WeakMap,eT=new WeakMap,e$=new WeakMap;function eO(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=eO(null==e?void 0:e[n],t[n]);void 0===i?delete r[n]:r[n]=i}return r}function eI(e){return!!e&&"object"==typeof e&&!Array.isArray(e)}function eD(e){return!!e&&("object"==typeof e||"function"==typeof e)&&"function"==typeof e.then}function eN(e){return!0===e||(e&&eI(e)?e:void 0)}function eB(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 eq(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]||{},eq(e.children[t],r[t])}function eL(e){let t={};if(!e)return t;let r=(e,n)=>{if(eI(e))for(let[i,o]of Object.entries(e)){if(!i||!o||"object"!=typeof o||Array.isArray(o))continue;let e=o,s=eN(e.deprecated);s&&eB(t,[...n,i],s),eI(e.properties)&&r(e.properties,[...n,i])}},n=e=>{if(eI(e))for(let[r,n]of Object.entries(e)){if(!r||!n||"object"!=typeof n||Array.isArray(n))continue;let e=eN(n.deprecated);e&&eB(t,[r],e)}};return r(e.properties,[]),n(e.methods),t}function ez(e){let t={},r=new WeakSet,n=(e,r)=>{if(eI(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,s=eN(r.deprecated);s&&eB(t,[...e,i],s),eI(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(eI(o))for(let[e,r]of Object.entries(o)){if(!e||!r||"object"!=typeof r||Array.isArray(r))continue;let n=eN(r.deprecated);n&&eB(t,[e],n)}let s=e._props;if(eI(s))for(let[e,r]of Object.entries(s)){if(!e)continue;let i=null==r?void 0:r.info;if(!i||"object"!=typeof i||Array.isArray(i))continue;let o=eN(i.deprecated);o&&eB(t,[e],o),eI(i.properties)&&n([e],i.properties)}let l=e._delegates;if(Array.isArray(l))for(let e of l)i(e)};return i(e),t}function eW(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=eL(t.doc);eq(r,ez(e));let n=new Set,i=new WeakMap,o=new WeakMap,s=new WeakMap,l=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(eI(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=eN(t.deprecated);o&&eB(r,[...e,n],o),eI(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=eN(n.deprecated);i&&eB(r,[e],i),eI(n.properties)&&a([e],n.properties)},u=(e,t)=>{if(!e||!t||"object"!=typeof t||Array.isArray(t))return;let n=eN(t.deprecated);n&&eB(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,s="function"==typeof(null==e?void 0:e.t)?(t,r)=>e.t(t,{ns:[j.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=l(i),g=f.line?`(line ${f.line}${f.column?`:${f.column}`:""})`:"",m=p.trim(),y=m?s("RunJS deprecated warning with message",{defaultValue:"[RunJS][Deprecated] {{api}} {{message}}{{location}}",api:t,message:m,location:g}):s("RunJS deprecated warning",{defaultValue:"[RunJS][Deprecated] {{api}} is deprecated{{location}}",api:t,location:g}),v=s("RunJS deprecated separator",{defaultValue:"; "}),w=[y];c&&w.push(s("RunJS deprecated replacedBy",{defaultValue:"Use {{replacedBy}} instead",replacedBy:c})),u&&w.push(s("RunJS deprecated since",{defaultValue:"since {{since}}",since:u})),d&&w.push(s("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=s.get(e)||new Map;if(s.set(e,o),o.has(r))return o.get(r);let l=new Proxy(e,{apply(e,t,o){let s=n.has(r)?void 0:Error().stack;return p(r,i,s),Reflect.apply(e,d(t),o)},get:(e,t,r)=>Reflect.get(e,t,r)});return o.set(r,l),l},g=(e,t,r)=>{if(!e||"object"!=typeof e&&"function"!=typeof e||eD(e)||!(t.children&&Object.keys(t.children).length>0)&&"ctx"!==r)return e;let s=o.get(e)||new Map;if(o.set(e,s),s.has(r))return s.get(r);let l=new Proxy(e,{get(e,i,o){var s;if("symbol"==typeof i)return Reflect.get(e,i,d(o));let l=String(i),a=Reflect.get(e,i,d(o));if("ctx"===r&&"defineProperty"===l&&"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"===l&&"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==(s=t.children)?void 0:s[l];if(!h)return a;let m=`${r}.${l}`;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(l,e),s.set(r,l),l};return g(e,r,"ctx")}function eV(e,t,r){if(!eI(t))return e;if(!eI(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 s=r(eI(e)?e[i]:void 0,o);void 0===s?delete n[i]:n[i]=s}return n}function eH(e,t){if(null===t)return;let r=eI(e),n=eI(t),i="string"==typeof e;if("string"==typeof t)return r?eH(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=eV(null==n?void 0:n.properties,e,eH);void 0===r?delete o.properties:o.properties=r;continue}let r=eO(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){if(null===t)return;let r=eI(e),n=eI(t),i="string"==typeof e;if("string"==typeof t)return r?eU(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=eO(null==n?void 0:n[e],t[e]);void 0===r?delete o[e]:o[e]=r}return o}return t??e}function eK(e,t){let r=eI(e)?e:{},n=eI(t)?t:{},i={...r};for(let e of Object.keys(n)){if("properties"===e){let e=eV(r.properties,n.properties,eH);void 0===e?delete i.properties:i.properties=e;continue}if("methods"===e){let e=eV(r.methods,n.methods,eU);void 0===e?delete i.methods:i.methods=e;continue}let t=eO(r[e],n[e]);void 0===t?delete i[e]:i[e]=t}return i}class eY extends ev{exit(){var e;throw new P.zz(this.flowKey,(null==(e=this.model)?void 0:e.uid)||"runjs")}exitAll(){var e;throw new P.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=eT.get(this)||new Map,n=t.get(r)||{};t.set(r,eK(n,e)),eT.set(this,t)}else{let t=eF.get(this)||{};eF.set(this,eK(t,e))}e$.delete(this)}static getDoc(e){let t=this,r=e$.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 s={};for(let e of i)s=eK(s,eF.get(e)||{});if(e)for(let t of i){let r=eT.get(t);r&&r.has(e)&&(s=eK(s,r.get(e)))}return r||(r=new Map,e$.set(t,r)),r.set(n,s),s}constructor(e){super(),this.addDelegate(e),this.defineProperty("React",{value:g}),this.defineProperty("antd",{value:u}),this.defineProperty("dayjs",{value:N()});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,B.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,s=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){}},l=()=>{let e=o.get(n);e&&(s(e),o.delete(n))};if("string"==typeof e)return l(),new v.x(n).innerHTML=String(e??""),null;if(e&&e.nodeType&&(1===e.nodeType||3===e.nodeType||11===e.nodeType)){for(l();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&&(s(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.$B)({ctx:this,entry:d,vnode:e,containerEl:n,rootMap:o,unmountContainerRoot:l,internalReact:g,internalAntd:u})})}}},81440(e,t,r){r.d(t,{$:()=>eb});var n=r(88243),i=r(16213),o=r(50467),s=r(95243),l=r(2543),a=r.n(l),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 g=r(6409),m=r(78863),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 s,l=e.getFlow(t);if(!l)return e.context.logger.error(`BaseModel.applyFlow: Flow with key '${t}' not found.`),Promise.reject(Error(`Flow '${t}' not found.`));let c=new g.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 l.on?l.on:null==(o=l.on)?void 0:o.eventName);d&&((d={...d}).defaultParams={...a().get(l,"on.defaultParams",{}),...d.defaultParams});let h=d?{eventStep:d,...l.steps}:l.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,l,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}l=await (0,w.v)(c,{...i,...n}),o=n.handler||i.handler,d=d??i.useRawParams;let s=await (0,m.gG)(i.defaultParams,l),u=await (0,m.gG)(n.defaultParams,l);a={...s,...u}}else if(n.handler)l=await (0,w.v)(c,n),o=n.handler,a={...await (0,m.gG)(n.defaultParams,l)};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(l)),d||(a=await l.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(l,a);s=!1!==n.isAwait?await e:e,u[r]=s,p[r].result=u[r],await this.emitModelEventIf(i,`flow:${t}:step:${r}:end`,{...f,result:s,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 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,s,l;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 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(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,s=null==i||null==(r=i.constructor)?void 0:r._type,l=null==o||null==(n=o.constructor)?void 0:n._type,a=+("instance"!==s),c=+("instance"!==l);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=[],s=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])),l=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(s.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=s.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;l.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 s=i.shouldSkipOnAborted?Object.assign(e=>e.type===n&&!0!==e.aborted,{__eventType:n}):n,l=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:s});w.push(l)}for(let s of i)if(!l.has(s.key))try{p.debug(`BaseModel '${e.uid}' dispatching event '${t}' to flow '${s.key}' (sequential).`);let i=await this.runFlow(e,s.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 '${s.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==(s=e.onDispatchEventEnd)?void 0:s.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==(l=e.onDispatchEventError)?void 0:l.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),k=r(60645),M=r(18220),A=r(47674),j=r(21637),P=r(71021),R=r(84626),E=r(96540),C=r(74848),F=r(53619),T=r(92034),$=r(98393),O=r(42443),I=r(88040),D=r(35710),N=r(18182),B=r(76511),q=r(1314),L=r(57084),z=r(94313),W=r(20616),V=r(52847);let H={marginLeft:32},U=(0,V.PA)(e=>{let{title:t,onChange:r,getDefaultValue:n,disabled:i,itemKey:o,...s}=e,[l,a]=(0,E.useState)(!1),c=(0,W.Db)();(0,E.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(!l)};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)(z.A,{size:"small",...s,checkedChildren:s.checkedChildren?c.t(s.checkedChildren):void 0,unCheckedChildren:s.unCheckedChildren?c.t(s.unCheckedChildren):void 0,checked:l,style:H,disabled:i})]})});var K=r(36492);let Y=(e,t,r)=>{let n=t.maxDepth,i="number"==typeof t.arrayLimit?t.arrayLimit:1/0,o=t.mode??"stack",s=new Set,l=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 q.WD&&a(e,t+1,`${r}[${i}]`)}return}n instanceof q.WD&&a(n,t+1,r)})};if("visited"===o){if(s.has(e))return;s.add(e),u();return}let d=e.uid||`temp-${Date.now()}`;if(!l.has(d)){l.add(d);try{u()}finally{l.delete(d)}}};a(e,1)},J=(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,s=null==(r=e.subModels)?void 0:r[i];if(!s)return console.warn(`SubModel '${i}' not found`),null;if(void 0!==o){let e=parseInt(o,10);return Array.isArray(s)?e<0||e>=s.length?(console.warn(`Array index ${e} out of bounds for '${i}'`),null):s[e]instanceof q.WD?s[e]:null:(console.warn(`Expected array for '${i}', got ${typeof s}`),null)}return Array.isArray(s)?(console.warn(`Expected object for '${i}', got array`),null):s instanceof q.WD?s:null},G={switch:U,select:function(e){let{title:t,getDefaultValue:r,onChange:n,options:i,fieldNames:o,itemKey:s,...l}=e,[a,c]=(0,E.useState)(!1),[u,d]=(0,E.useState)(""),h=(0,W.Db)();(0,E.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,E.useRef)(null),f=e=>{d(e),null==n||n({[s]:e})};return(0,C.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,C.jsx)("span",{style:{whiteSpace:"nowrap",flexShrink:0},children:t}),(0,C.jsx)(K.A,{...l,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=>l.dropdownRender?l.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,s=!!(null==n?void 0:n.disabled),l=null==n?void 0:n.disabledReason,a=null==n?void 0:n.disabledIconColor,c=o?(0,C.jsx)(o,{title:t,...n}):(0,C.jsx)(C.Fragment,{children:t});return s?(0,C.jsxs)("span",{style:{display:"inline-flex",alignItems:"center",gap:6},children:[c,(0,C.jsx)(O.A,{title:l,placement:"right",destroyTooltipOnHide:!0,children:(0,C.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:s}=I.A.useApp(),l=(0,E.useMemo)(()=>(0,m.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,E.useState)(!1),[h,p]=(0,E.useState)(0),[f,g]=(0,E.useState)([]),[y,v]=(0,E.useState)([]),[w,b]=(0,E.useState)(!0),x=(0,E.useCallback)(()=>{d(!1)},[]),S=(0,E.useCallback)((e,t)=>{("trigger"===t.source||e)&&(0,E.startTransition)(()=>{d(e)})},[]),_=(0,L.t_)([u]);(0,E.useEffect)(()=>{let e=!0,r=async()=>{let r=[],n=[];for(let{model:e,modelKey:s}of(Y(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,l));(null==n?void 0:n.length)&&r.push(...n.map(e=>({...e,key:s?`${s}:${e.key}`:e.key})))}if(e){let e=new Set;g(r.filter(t=>!e.has(`${t.key}`)&&(e.add(`${t.key}`),!0)))}};return u&&r(),()=>{e=!1}},[t,i,l,h,u]);let k=(0,E.useCallback)(async e=>{try{await navigator.clipboard.writeText(e),s.success(l("UID copied to clipboard"))}catch(r){var t;if(console.error(l("Copy failed"),":",r),!("u">typeof window&&(null==(t=window.location)?void 0:t.protocol)==="https:"))return void s.error(l("Copy failed under HTTP. Clipboard API is unavailable on non-HTTPS pages. Please copy [{{uid}}] manually.",{uid:e}));s.error(l("Copy failed, please copy [{{uid}}] manually.",{uid:e}))}},[s,l]),M=(0,E.useCallback)(async()=>{k(t.uid)},[t.uid,k]),A=(0,E.useCallback)(e=>{try{let r=e.replace(/^copy-pop-uid:/,"").split(":"),n=t;if(3===r.length){let[e]=r;n=J(t,e)||t}else if(2!==r.length)return void console.error("Invalid copy-pop-uid key format:",e);k(n.uid)}catch(e){console.error("handleCopyPopupUid error:",e)}},[t,k]),j=(0,E.useCallback)(()=>{x(),N.A.confirm({title:l("Confirm delete"),icon:(0,C.jsx)(T.A,{}),content:l("Are you sure you want to delete this item? This action cannot be undone."),okText:l("Confirm"),okType:"primary",cancelText:l("Cancel"),zIndex:999999,async onOk(){try{await t.destroy()}catch(e){console.error(l("Delete operation failed"),":",e),N.A.error({title:l("Delete failed"),content:l("Delete operation failed, please check the console for details.")})}}})},[x,t,l]),P=(0,E.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,s,l]=i;r=s,n=l;let a=J(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(l("Configuration popup cancelled or error"),":",e)}},[x,t,l]),R=(0,E.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:s}=e;return(s||void 0)===t&&i.key===r&&o.some(e=>e.stepKey===n&&!!e.disabled)})},[y]),q=(0,E.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(),A(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(),M();break;case"delete":j();break;default:P(n)}},[x,M,j,P,A,f,R]),z=(0,E.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,s=o,a=s;if(await (0,m._3)(e,r,s))return null;let c=await (0,m.XM)(e,r,s),u=await (0,m.ME)(s.uiMode,e.context),d=null!=s.uiSchema,h=!1,p=s.title;if(s.use)try{var f;let t=null==(f=e.getAction)?void 0:f.call(e,s.use);a={...t||{},...s},u=await (0,m.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(l("Failed to get action {{action}}",{action:s.use}),":",e)}let g=["select","switch"].includes((null==u?void 0:u.type)||u);if(!g&&!d&&!h)return null;let y={};try{let t=await (0,m.o7)(e,r,s);if(!t&&!g)return null;y=t}catch(e){return console.warn(l("Failed to resolve uiSchema for step {{stepKey}}",{stepKey:i}),":",e),null}return{stepKey:i,step:a,uiSchema:y,title:l(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(l("Failed to get configurable flows for model {{model}}",{model:(null==e?void 0:e.uid)||"unknown"}),":",t),[]}},[]),W=(0,E.useCallback)(async()=>{let e=[],r=[];for(let{model:n,modelKey:o}of(Y(t,{maxDepth:i,arrayLimit:50,mode:"stack"},(e,t)=>{let{modelKey:n}=t;r.push({model:e,modelKey:n})}),r)){let t=await z(n,o);e.push(...t)}return e},[t,i,z]);(0,E.useEffect)(()=>{let e=()=>{p(e=>e+1)},r=[];return Y(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,E.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,E.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:l(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?J(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==s||null==(t=s.success)||t.call(s,l("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,C.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:l(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)(O.A,{title:t.disabledReason,placement:"right",destroyTooltipOnHide:!0,children:(0,C.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,C.jsxs)("span",{style:{display:"inline-flex",alignItems:"center",gap:6},children:[e.title,(0,C.jsx)(O.A,{title:e.disabledReason,placement:"right",destroyTooltipOnHide:!0,children:(0,C.jsx)(F.A,{style:{color:c}})})]}):e.title,disabled:!!e.disabled})})}),e.push({key:i,label:r,children:o})}})}return e},[y,c,o,l]),H=(0,E.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:l("Copy UID")}),r&&"function"==typeof t.destroy&&e.push({key:"delete",label:l("Delete")})),e},[V,n,r,t.uid,t.destroy,l,f]),U=f.some(e=>"common-actions"===e.group);return!w&&(0!==y.length||r||n||U)?t&&t.uid?(0,C.jsx)(B.A,{onOpenChange:S,open:u,menu:{items:H,onClick:q,style:{maxHeight:_,overflowY:"auto"}},trigger:["hover"],placement:"bottomRight",children:(0,C.jsx)($.A,{role:"button","aria-label":"flows-settings",style:{cursor:"pointer",fontSize:12}})}):(console.warn(l("Invalid model provided")),null):null};var Q=r(23183),ee=r(48036),et=r(1598),er=r(16296),en=r(23200),ei=r(52249),eo=r(22505);let es=A.A.Panel;var el=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:s,Cascader:l,Checkbox:a,DatePicker:c,Editable:u,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:k,Radio:M,Reset:A,Select:j,SelectTable:P,Space:R,Submit:E,Switch:C,TimePicker:F,Transfer:T,TreeSelect:$,Upload:O}=await r.e("5366").then(r.bind(r,85861)),{Button:I,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=j,this.components.SelectTable=P,this.components.Cascader=l,this.components.TreeSelect=$,this.components.Transfer=T,this.components.DatePicker=c,this.components.TimePicker=F,this.components.Checkbox=a,this.components.Radio=M,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=s,this.components.Upload=O,this.components.Space=R,this.components.Editable=u,this.components.PreviewText=k,this.components.Alert=D,this.components.Button=I,this.components.Submit=E,this.components.Reset=A,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,el,!0),this.enabled=!0}async disable(){(0,x._)(this,el)||(this.enabled=!1)}async forceDisable(){(0,_._)(this,el,!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:s,onFormValuesChange:l,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,m.ln)(c,u),h=(0,M.Uy)();return E.createElement(eu,{form:s,initialValues:i,onFormValuesChange:l,key:a},E.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,l,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,m.lW)(u),_=null==(t=u.context)?void 0:t.message,M=u.getFlows(),C=d?[d]:Array.isArray(h)&&h.length?h:Array.from(M.keys()),F=[];for(let e of(await this.load(),C)){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,m._3)(u,t,n))||v&&!n.preset)continue;let i=await (0,m.o7)(u,t,n),s=n.title,l=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||{},s=s||e.title,l=l||e.beforeParamsSave,a=a||e.afterParamsSave,d=e.uiMode)}let h=new g.W5(u,e,"settings");(0,m.wx)(h,t.steps,u,e),h.defineProperty("currentStep",{value:n}),h.defineMethod("getStepFormValues",(e,t)=>{var r;return null==(r=L.get(z({flowKey:e,stepKey:t})))?void 0:r.values});let f=u.getStepParams(e,r)||{},y=await (0,m.gG)(n.defaultParams,h),w={...await (0,m.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(s)||r,initialValues:w,previousParams:{...f||{}},mergedUiSchema:i,beforeParamsSave:l,afterParamsSave:a,ctx:h,uiMode:n.uiMode||d})}}if(0===F.length)return v||null==_||null==(l=_.info)||l.call(_,S("This model has no configurable flow settings")),!1;let T=u.context.viewer,$=1===F.length?await (0,m.ME)(F[0].uiMode||f,F[0].ctx):f,O="string"==typeof $?$:$.type||"dialog";if(["select","switch"].includes(O))return;let I=T[O||"dialog"].bind(T),D=u.flowEngine,N={useFlowSettingsContext:er.s,...(null==D||null==(r=D.flowSettings)?void 0:r.scopes)||{}},B="object"==typeof $&&$&&$.props||{};if("embed"===O){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 q={};F.forEach(e=>{q[e.flowKey]||(q[e.flowKey]={title:e.flowTitle,steps:[]}),q[e.flowKey].steps.push(e)});let L=new Map,z=e=>`${e.flowKey}::${e.stepKey}`;F.forEach(e=>{let t=(0,k.DG)({initialValues:(0,m.ln)(N,e.initialValues)});L.set(z(e),t)});let W=Object.keys(q),V=W.length>1,H=()=>d&&p&&1===F.length||!V&&F.length>0?F[0].stepTitle:"",U={value:()=>{}},K=(e,t)=>{U.value=(0,s.mJ)(()=>(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)})})},Y=(null==(n=u.context.view)?void 0:n.inputArgs)||{},J=null==(i=u.context.view)?void 0:i.navigation,G={...Y,...J?{navigation:J}:{},...(null==B?void 0:B.inputArgs)||{}};return I({title:B.title||H(),width:B.width??600,destroyOnClose:!0,onClose:()=>U.value(),zIndex:5e3,...B,inputArgs:G,content:(e,t)=>{let r;null==t||t.defineMethod("getStepFormValues",(e,t)=>{var r;return null==(r=L.get(z({flowKey:e,stepKey:t})))?void 0:r.values});let n=t=>{let r=L.get(z(t));return r?(t.ctx.view=e,E.createElement(er.u,{value:t.ctx},E.createElement(en.k.Provider,{value:{params:(0,et.O8t)(()=>({...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=>E.createElement(es,{header:e.stepTitle,key:z(e)},n(e))),o=e=>{let t=q[e];return{key:e,label:S(t.title)||e,children:t.steps.length>1?E.createElement(A.A,{defaultActiveKey:t.steps.map(e=>z(e))},...i(t.steps)):n(t.steps[0])}},s=()=>{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=W.map(e=>o(e)),r=d&&q[d]?d:W[0];return E.createElement(j.A,{items:t,defaultActiveKey:r})},l=async()=>{var t,r;try{for(let e of F){let t=L.get(z(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==_||null==(t=_.success)||t.call(_,S("Configuration saved")),F)){let t=L.get(z(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 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=l;let c=s(),h=t=>E.createElement(P.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=>E.createElement(P.Ay,{type:"primary",onClick:l},e.title||S("Save")),g=E.createElement(R.A,{align:"end"},E.createElement(h),E.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=E.createElement(e.Footer,null,g)),E.createElement(E.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,el,{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,s.E8)(this,{enabled:s.sH})}}function eu(e){let{children:t,form:r,initialValues:n,onFormValuesChange:i}=e,o=E.useRef(r);return o.current||(o.current=(0,k.DG)({initialValues:n,effects(){(0,k.A$)(i)}})),E.createElement(M.Op,{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)(I.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"}},s=this.itemsByTargetUid.get(t);s||(s=new Map,this.itemsByTargetUid.set(t,s)),s.set(o.id,o);let l=this.itemIdsByFromUid.get(i);l||(l=new Set,this.itemIdsByFromUid.set(i,l)),l.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 s=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",s),this.unbindHandlers.push(()=>e.off("model:destroyed",s))}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`})},s=async e=>{await this.processLifecycleEvent(e.uid,{...e,type:`event:${n}:end`})},l=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`,s),i.on(`model:event:${n}:error`,l),this.unbindHandlers.push(()=>i.off(`model:event:${n}:start`,o)),this.unbindHandlers.push(()=>i.off(`model:event:${n}:end`,s)),this.unbindHandlers.push(()=>i.off(`model:event:${n}:error`,l))}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 s=await this.ensureModels(e);s.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)})}}),s.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:s,subModels:l}=e,a=i?this.getModel(i)||(null==(r=this.previousEngine)?void 0:r.getModel(i)):void 0,c=this._resolveModelClass("string"==typeof s?this.getModelClass(s):s,e,a);return o&&this._modelInstances.has(o)?this._modelInstances.get(o):(c?n=new c({...e,flowEngine:this}):(n=new q._f({...e,flowEngine:this})).setErrorMessage(`Model class '${s}' 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 s=null==i?void 0:i.resolveUse;if("function"!=typeof s)break;let{target:l,stop:a}=n(s(t,this,r));if(!l||l===i)break;if("string"==typeof l){if(!(e=this.getModelClass(l)))return void console.warn(`FlowEngine: resolveUse returned '${l}' but no model is registered under that name.`)}else e=l;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,s=o.defaultParams;if(!s)continue;try{r="function"==typeof s?await s(n):s}catch(e){console.warn(`FlowEngine: resolve defaultParams of flow '${i}' failed:`,e);continue}if(!r||"object"!=typeof r)continue;let l=null==(t=o.getSteps)?void 0:t.call(o),a=l?Array.from(l.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:s}=e,l=this.getModel(n);if(!l){let e=r.serialize();delete e.subModels,l=await this.createModelAsync(e,t)}let a=s.serialize(),c=await this.createModelAsync(a,t),u=null==(o=l.subModels)?void 0:o[i];return Array.isArray(u)?u.some(e=>(null==e?void 0:e.uid)===(null==c?void 0:c.uid))||l.addSubModel(i,c):u instanceof q.WD?u.uid!==(null==c?void 0:c.uid)&&l.setSubModel(i,c):(null==c?void 0:c.subType)==="array"?l.addSubModel(i,c):l.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 s=await this.hydrateModelFromPreviousEngines(e,t);if(s)return s;let l=await this._modelRepository.findOne(e),a=null;if((null==l?void 0:l.uid)?a=await this.createModelAsync(l,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,s=n.subType,l=n.serialize();r="function"==typeof t?t(n):t||{};let c={...a().omit(l,["subModels"]),...r};i&&i.emitter.setPaused(!0),await n.destroy();let u=this.createModel(c);if(i&&o&&("array"===s?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),s=this.getModel(t);if(!o||!s)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),s=i(t);if(-1===o||-1===s)return console.error("FlowModel.moveTo: Current or target model not found in parent subModels.");if(o===s)return console.warn("FlowModel.moveTo: Current model is already at the target position. No action taken.");let[l]=n.splice(o,1);return n.splice(s,0,l),n.forEach((e,t)=>{e.sortIndex=t}),r.splice(0,r.length,...n)})(o,s),(null==r?void 0:r.persist)!==!1&&this.ensureModelRepository()){let r=o.sortIndex-s.sortIndex>0?"after":"before";await this._modelRepository.move(e,t,r)}o.parent.emitter.emit("onSubModelMoved",{source:o,target:s}),null==(i=this.emitter)||i.emit("model:subModel:moved",{parentUid:null==(n=o.parent)?void 0:n.uid,parent:o.parent,source:o,target:s})}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",s.sH.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:q.WD}),this.registerResources({FlowResource:eg.l2,SQLResource:eg.BH,APIResource:eg.hR,SingleRecordResource:eg.sB,MultiRecordResource:eg.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,{GC:()=>a,Ps:()=>s.Ps,PZ:()=>s.PZ,fh:()=>o,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 s=r(97019),l=r(7259);function a(e,t,r){let o=(0,i.uf)(),s=(0,n.useMemo)(()=>"string"==typeof e?o.getModel(e):e,[e,o]);null==s||s.useHooksBeforeRender();let{loading:a,error:c}=(0,l.A)(async()=>{s&&await s.dispatchEvent("beforeRender",t,{useCache:null==r?void 0:r.useCache})},{refreshDeps:[s,t,null==r?void 0:r.useCache]});if((null==r?void 0:r.throwOnError)!==!1&&c)throw c;return{loading:a,error:c}}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)};r(23200)},97019(e,t,r){r.d(t,{PZ:()=>a,Ps:()=>l});var n=r(74848),i=r(96540),o=r(52568);let s=(0,i.createContext)(null),l=e=>{let{model:t,children:r}=e;if(!t)throw Error("FlowModelProvider must be supplied with a model.");return(0,n.jsx)(s.Provider,{value:t,children:(0,n.jsx)(o.Dv,{context:t.context,children:r})})};function a(){let e=(0,i.useContext)(s);if(!e)throw Error("useFlowModel must be used within a FlowModelProvider");return e}},16296(e,t,r){r.d(t,{s:()=>a,u:()=>l});var n=r(74848),i=r(96540),o=r(52568);let s=(0,i.createContext)(null),l=e=>{let{value:t,children:r}=e;return(0,n.jsx)(o.Dv,{context:t,children:(0,n.jsx)(s.Provider,{value:t,children:r})})},a=()=>{let e=(0,i.useContext)(s);if(!e)throw Error("useFlowSettingsContext must be used within a FlowSettingsContextProvider");return e}},23200(e,t,r){r.d(t,{k:()=>n});let n=r(96540).createContext({path:"",params:{}})},1598(e,t,r){r.d(t,{$I5:()=>i.$,I6d:()=>l.I6,WDF:()=>s.WD,O8t:()=>a.O8,HxT:()=>et,$KS:()=>h.$K,Dbw:()=>l.Db,PAp:()=>a.PA,f7m:()=>l.f7,fmX:()=>a.fm,sHX:()=>a.sH});var n=r(78863);r(98192),r(99784);var i=r(81440),o=r(57084),s=r(1314),l=r(20616),a=r(52847),c=r(74848),u=r(71021),d=r(96540),h=r(52568);function p(e){let t=(0,a.PA)(t=>(0,h.$K)().flowSettingsEnabled?(0,c.jsx)(e,{...t}):null);return t.displayName=`withFlowDesignMode(${e.displayName||e.name||"Component"})`,t}p(e=>(0,c.jsx)(u.Ay,{...e,type:"dashed",style:{...e.style,borderColor:"var(--colorSettings)",color:"var(--colorSettings)",alignSelf:"flex-start"}})).displayName="FlowSettingsButton",r(98668),r(40961),r(80581);var f=r(2543),g=r.n(f),m=r(85876);(0,m.AH)`
10
+ .ant-cascader-menu {
11
+ height: fit-content;
12
+ max-height: 50vh;
13
+ }
14
+ `;var y=r(84359),v=r(92275),w=r(97019);let{Paragraph:b,Text:x}=y.A,S=e=>{var t;let{error:r,resetErrorBoundary:i}=e,[o,s]=(0,d.useState)(!1),l=(0,w.PZ)(),a=(0,n.lW)(l),h=async()=>{s(!0);try{let e={message:r.message,stack:r.stack,modelInfo:l?{uid:l.uid,className:l.constructor.name,props:l.props,stepParams:l.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)}s(!1)},p=null==l||null==(t=l.context)?void 0:t.api,f=async()=>{if(!p)return void console.error("API client not available");s(!0);try{let e=l.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:l?{uid:l.uid,className:l.constructor.name,props:l.props,stepParams:l.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)}s(!1)},g=(0,c.jsxs)("span",{children:[a("This is likely a NocoBase internals bug. Please open an issue at")," ",(0,c.jsx)("a",{href:"https://github.com/nocobase/nocobase/issues",target:"_blank",rel:"noopener noreferrer",children:a("here")}),l&&(0,c.jsxs)("div",{style:{marginTop:"8px",fontSize:"12px",color:"#999"},children:["Model: ",l.constructor.name," (uid: ",l.uid,")"]})]});return(0,c.jsx)("div",{style:{backgroundColor:"white"},children:(0,c.jsx)(v.Ay,{style:{maxWidth:"60vw",margin:"auto"},status:"error",title:a("Render failed"),subTitle:g,extra:[(0,c.jsx)(u.Ay,{type:"primary",href:"https://github.com/nocobase/nocobase/issues",target:"_blank",children:a("Feedback")},"feedback"),p&&(0,c.jsx)(u.Ay,{loading:o,onClick:f,children:a("Download logs")},"log"),(0,c.jsx)(u.Ay,{loading:o,onClick:h,children:a("Copy error info")},"copy"),i&&(0,c.jsx)(u.Ay,{danger:!0,onClick:i,children:a("Try again")},"retry")].filter(Boolean),children:(0,c.jsx)(b,{copyable:{text:r.stack},children:(0,c.jsx)(x,{type:"danger",style:{whiteSpace:"pre-line",textAlign:"center"},children:r.stack})})})})},_=e=>{let{error:t,resetErrorBoundary:r}=e,[n,i]=(0,d.useState)(!1);try{return(0,c.jsx)(S,{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,c.jsxs)("span",{children:["This is likely a NocoBase internals bug. Please open an issue at ",(0,c.jsx)("a",{href:"https://github.com/nocobase/nocobase/issues",target:"_blank",rel:"noopener noreferrer",children:"here"})]});return(0,c.jsx)("div",{style:{backgroundColor:"white"},children:(0,c.jsx)(v.Ay,{style:{maxWidth:"60vw",margin:"auto"},status:"error",title:"Render failed",subTitle:o,extra:[(0,c.jsx)(u.Ay,{type:"primary",href:"https://github.com/nocobase/nocobase/issues",target:"_blank",children:"Feedback"},"feedback"),(0,c.jsx)(u.Ay,{loading:n,onClick:e,children:"Copy error info"},"copy"),r&&(0,c.jsx)(u.Ay,{danger:!0,onClick:r,children:"Try again"},"retry")].filter(Boolean),children:(0,c.jsx)(b,{copyable:{text:t.stack},children:(0,c.jsx)(x,{type:"danger",style:{whiteSpace:"pre-line",textAlign:"center"},children:t.stack})})})})}},k=e=>{let{error:t,resetErrorBoundary:r,children:n}=e,[i,o]=(0,d.useState)(!1),s=(0,c.jsx)(b,{style:{display:"flex",marginBottom:0},copyable:{text:t.message},children:(0,c.jsxs)(x,{type:"danger",style:{whiteSpace:"nowrap",textOverflow:"ellipsis",overflow:"hidden",display:"inline-block",maxWidth:"200px"},children:["Error: ",t.message]})});return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)("div",{onMouseOver:()=>o(!0),children:n||s}),i&&(0,c.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,c.jsxs)("div",{style:{backgroundColor:"#fff",borderRadius:"8px",padding:"24px",maxWidth:"60vw",maxHeight:"80vh",overflow:"auto",position:"relative"},onClick:e=>e.stopPropagation(),children:[(0,c.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,c.jsx)(_,{error:t,resetErrorBoundary:r})]})})]})};_.Modal=k;var M=r(47665),A=r(92034),j=r(49655),P=r(53619),R=r(53138),E=r(35710),C=r(18182),F=r(40919),T=r(42443),$=r(76511),O=r(6409),I=r(23183);let D=e=>"uid"in e&&"modelClassName"in e&&!!e.uid&&!!e.modelClassName,N=e=>D(e)?(0,c.jsx)(q,{...e}):(0,c.jsx)(B,{...e}),B=(0,a.PA)(e=>{let{model:t,children:r,enabled:i=!0,position:o="right",showDeleteButton:s=!0}=e,l=(0,n.lW)(t),{token:a}=E.A.useToken(),u=(null==a?void 0:a.colorTextTertiary)||(null==a?void 0:a.colorTextDescription)||(null==a?void 0:a.colorTextSecondary),[h,p]=(0,d.useState)([]),f=(0,d.useCallback)(e=>{let[t,r]=e.split(":");return!!t&&!!r&&h.some(e=>{let{flow:n,steps:i}=e;return n.key===t&&i.some(e=>e.stepKey===r&&!!e.disabled)})},[h]),g=(0,d.useCallback)(e=>{let{key:r}=e;if("delete"===r)C.A.confirm({title:l("Confirm delete"),icon:(0,c.jsx)(A.A,{}),content:l("Are you sure you want to delete this item? This action cannot be undone."),okText:l("Confirm Delete"),okType:"danger",cancelText:l("Cancel"),zIndex:999999,onOk(){try{t.dispatchEvent("remove")}catch(e){console.error(l("Delete operation failed"),":",e),C.A.error({title:l("Delete failed"),content:l("Delete operation failed, please check the console for details.")})}}});else{if(f(r))return;let[e,o]=r.split(":");try{var i;let r=t.getFlow(e),s=null==r||null==(i=r.steps)?void 0:i[o];if(!r||!s)return void console.error(`Flow ${e} or step ${o} not found`);let l=new O.W5(t,e,"settings");(0,n.wx)(l,r.steps,t,e),l.defineProperty("currentStep",{value:s}),(0,I.openStepSettingsDialog)({model:t,flowKey:e,stepKey:o,ctx:l})}catch(e){console.log("配置弹窗已取消或出错:",e)}}},[f,t]);if(!t)return(0,c.jsx)(F.A,{message:"提供的模型无效",type:"error"});if(!i||!r)return(0,c.jsx)(c.Fragment,{children:r});let m=(0,d.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[i,o]=r,s=o;if(await (0,n._3)(t,e,s))return null;let l=await (0,n.XM)(t,e,s),a=s.uiSchema||{},c={};if(s.use){var u;let e=null==(u=t.getAction)?void 0:u.call(t,s.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:i,step:s,uiSchema:d,title:s.title||i,disabled:l.disabled,disabledReason:l.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,d.useEffect)(()=>{let e=!0;return(async()=>{let t=await m();e&&p(t)})(),()=>{e=!1}},[m]),0===h.length&&!s)return(0,c.jsx)(c.Fragment,{children:r});let y=[];return h.length>0&&h.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,c.jsx)(j.A,{}),label:e.disabled?(0,c.jsxs)("span",{style:{display:"inline-flex",alignItems:"center",gap:6},children:[e.title,(0,c.jsx)(T.A,{title:e.disabledReason,placement:"right",destroyTooltipOnHide:!0,children:(0,c.jsx)(P.A,{style:{color:u}})})]}):e.title,disabled:!!e.disabled})})}),s&&(h.length>0&&y.push({type:"divider"}),y.push({key:"delete",icon:(0,c.jsx)(R.A,{}),label:"删除"})),(0,c.jsx)(c.Fragment,{children:(0,c.jsx)($.A,{menu:{items:y,onClick:g},trigger:["contextMenu"],placement:"left"===o?"bottomLeft":"bottomRight",children:(0,c.jsx)("div",{style:{display:"inline-block",width:"100%"},children:r})})})}),q=(0,a.PA)(e=>{let{uid:t,modelClassName:r,children:n,enabled:i=!0,position:s="right",showDeleteButton:l=!0}=e,a=(0,o.fh)(t,r);return a?(0,c.jsx)(B,{model:a,enabled:i,position:s,showDeleteButton:l,children:n}):(0,c.jsx)(F.A,{message:`未找到ID为 ${t} 的模型`,type:"error"})});var L=r(84626);let z=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},W=(e,t,r,n,i,o)=>{var s,l;let a=[...(null==n||null==(l=n.flowSettings)||null==(s=l.getToolbarItems)?void 0:s.call(l))||[],...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,c.jsx)(o,{model:e,id:e.uid,showDeleteButton:t,showCopyUidButton:r,menuLevels:i},n.key):(0,c.jsx)(o,{model:e},n.key)})},V=19,H={inside:`
15
+ top: 2px;
16
+ `,above:`
17
+ top: 0px;
18
+ transform: translateY(-100%);
19
+ padding-bottom: 0px;
20
+ margin-bottom: -2px;
21
+ `,below:`
22
+ top: 0px;
23
+ transform: translateY(100%);
24
+ padding-top: 2px;
25
+ margin-top: -2px;
26
+ `},U=e=>{let{showBackground:t,showBorder:r,ctx:n,toolbarPosition:i="inside",toolbarCount:o}=e;return(0,m.AH)`
27
+ position: relative;
28
+
29
+ /* 当检测到button时使用inline-block */
30
+ &.has-button-child {
31
+ display: inline-block;
32
+ }
33
+
34
+ /* 正常的hover行为 - 添加延迟显示 */
35
+ &:hover > .nb-toolbar-container {
36
+ opacity: 1;
37
+ transition-delay: 0.1s;
38
+
39
+ .nb-toolbar-container-icons {
40
+ display: block;
41
+ }
42
+ }
43
+
44
+ /* 当有.hide-parent-menu类时隐藏菜单 */
45
+ &.hide-parent-menu > .nb-toolbar-container {
46
+ opacity: 0 !important;
47
+ }
48
+
49
+ > .nb-toolbar-container {
50
+ position: absolute;
51
+ top: 0;
52
+ bottom: 0;
53
+ left: 0;
54
+ right: 0;
55
+ z-index: 999;
56
+ opacity: 0;
57
+ background: ${t?"var(--colorBgSettingsHover)":""};
58
+ border: ${r?"2px solid var(--colorBorderSettingsHover)":""};
59
+ border-radius: ${n.themeToken.borderRadiusLG}px;
60
+ pointer-events: none;
61
+ min-width: ${V*o}px;
62
+
63
+ &.nb-in-template {
64
+ background: var(--colorTemplateBgSettingsHover);
65
+ }
66
+
67
+ > .nb-toolbar-container-title {
68
+ pointer-events: none;
69
+ position: absolute;
70
+ font-size: 12px;
71
+ padding: 0;
72
+ line-height: 16px;
73
+ height: 16px;
74
+ border-bottom-right-radius: 2px;
75
+ border-radius: 2px;
76
+ top: 2px;
77
+ left: 2px;
78
+ display: flex;
79
+ align-items: center;
80
+ gap: 4px;
81
+
82
+ .title-tag {
83
+ padding: 0 3px;
84
+ border-radius: 2px;
85
+ background: var(--colorSettings);
86
+ color: #fff;
87
+ display: inline-flex;
88
+ }
89
+ }
90
+
91
+ > .nb-toolbar-container-icons {
92
+ display: none; // 防止遮挡其它 icons
93
+ position: absolute;
94
+ right: 2px;
95
+ ${H[i]||""}
96
+ line-height: 16px;
97
+ pointer-events: all;
98
+
99
+ .ant-space-item {
100
+ background-color: var(--colorSettings);
101
+ color: #fff;
102
+ line-height: 16px;
103
+ width: 16px;
104
+ height: 16px;
105
+ padding: 2px;
106
+ display: flex;
107
+ align-items: center;
108
+ justify-content: center;
109
+ }
110
+ }
111
+
112
+ /* 拖拽把手样式 - 参考 AirTable 样式 */
113
+ > .resize-handle {
114
+ position: absolute;
115
+ pointer-events: all;
116
+ background: var(--colorSettings);
117
+ opacity: 0.6;
118
+ border-radius: 4px;
119
+ display: flex;
120
+ align-items: center;
121
+ justify-content: center;
122
+
123
+ &:hover {
124
+ opacity: 0.9;
125
+ background: var(--colorSettingsHover, var(--colorSettings));
126
+ }
127
+
128
+ &::before {
129
+ content: '';
130
+ position: absolute;
131
+ background: rgba(255, 255, 255, 0.9);
132
+ border-radius: 50%;
133
+ }
134
+
135
+ &::after {
136
+ content: '';
137
+ position: absolute;
138
+ background: rgba(255, 255, 255, 0.9);
139
+ border-radius: 50%;
140
+ }
141
+ }
142
+
143
+ > .resize-handle-left {
144
+ left: -4px;
145
+ top: 50%;
146
+ transform: translateY(-50%);
147
+ width: 6px;
148
+ height: 20px;
149
+ cursor: ew-resize;
150
+
151
+ &::before {
152
+ width: 2px;
153
+ height: 2px;
154
+ top: 6px;
155
+ left: 50%;
156
+ transform: translateX(-50%);
157
+ box-shadow:
158
+ 0 4px 0 rgba(255, 255, 255, 0.9),
159
+ 0 8px 0 rgba(255, 255, 255, 0.9);
160
+ }
161
+ }
162
+
163
+ > .resize-handle-right {
164
+ right: -4px;
165
+ top: 50%;
166
+ transform: translateY(-50%);
167
+ width: 6px;
168
+ height: 20px;
169
+ cursor: ew-resize;
170
+
171
+ &::before {
172
+ width: 2px;
173
+ height: 2px;
174
+ top: 6px;
175
+ left: 50%;
176
+ transform: translateX(-50%);
177
+ box-shadow:
178
+ 0 4px 0 rgba(255, 255, 255, 0.9),
179
+ 0 8px 0 rgba(255, 255, 255, 0.9);
180
+ }
181
+ }
182
+
183
+ > .resize-handle-bottom {
184
+ bottom: -4px;
185
+ left: 50%;
186
+ transform: translateX(-50%);
187
+ width: 20px;
188
+ height: 6px;
189
+ cursor: ns-resize;
190
+
191
+ &::before {
192
+ width: 2px;
193
+ height: 2px;
194
+ left: 6px;
195
+ top: 50%;
196
+ transform: translateY(-50%);
197
+ box-shadow:
198
+ 4px 0 0 rgba(255, 255, 255, 0.9),
199
+ 8px 0 0 rgba(255, 255, 255, 0.9);
200
+ }
201
+ }
202
+ }
203
+ `},K=e=>"uid"in e&&"modelClassName"in e&&!!e.uid&&!!e.modelClassName,Y=(0,a.PA)(e=>(0,h.$K)().flowSettingsEnabled?K(e)?(0,c.jsx)(Z,{...e}):(0,c.jsx)(G,{...e}):(0,c.jsx)(c.Fragment,{children:e.children})),J=e=>{let t=(0,d.useRef)(!1),r=(0,d.useRef)(null),n=(0,d.useRef)({x:0,y:0}),{onDragStart:i,onDragEnd:o}=e,s=(0,d.useCallback)(i=>{if(!t.current||!r.current)return;let o=i.clientX-n.current.x,s=i.clientY-n.current.y,l=0;switch(r.current){case"left":l=-o,e.model.parent.emitter.emit("onResizeLeft",{resizeDistance:l,model:e.model});break;case"right":l=o,e.model.parent.emitter.emit("onResizeRight",{resizeDistance:l,model:e.model});break;case"bottom":l=s,e.model.parent.emitter.emit("onResizeBottom",{resizeDistance:l,model:e.model});break;case"corner":{let t=o,r=s;e.model.parent.emitter.emit("onResizeCorner",{widthDelta:t,heightDelta:r,model:e.model})}}},[e.model]),l=(0,d.useCallback)(()=>{t.current=!1,r.current=null,n.current={x:0,y:0},document.removeEventListener("mousemove",s),document.removeEventListener("mouseup",l),e.model.parent.emitter.emit("onResizeEnd"),null==o||o()},[s,e.model,o]),a=(0,d.useCallback)((e,o)=>{e.preventDefault(),e.stopPropagation(),t.current=!0,r.current=o,n.current={x:e.clientX,y:e.clientY},document.addEventListener("mousemove",s),document.addEventListener("mouseup",l),null==i||i()},[s,l,i]);return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)("div",{className:"resize-handle resize-handle-left",title:"拖拽调节宽度",onMouseDown:e=>a(e,"left")}),(0,c.jsx)("div",{className:"resize-handle resize-handle-right",title:"拖拽调节宽度",onMouseDown:e=>a(e,"right")})]})},G=(0,a.PA)(e=>{let{model:t,children:r,enabled:i=!0,showDeleteButton:o=!0,showCopyUidButton:s=!0,containerStyle:a,className:u,showBackground:h=!0,showBorder:p=!0,showTitle:f=!1,showDragHandle:g=!1,settingsMenuLevel:m,extraToolbarItems:y,toolbarStyle:v,toolbarPosition:w="inside"}=e,[b,x]=(0,d.useState)(!1),[S,_]=(0,d.useState)(!1),k=(0,d.useRef)(null),M=(0,l.uf)(),[A,j]=(0,d.useState)({}),P=(0,d.useRef)(null),R=(0,d.useMemo)(()=>({...v,...A}),[A,v]);(0,d.useEffect)(()=>{k.current&&_(z(k.current))},[r]),(0,d.useEffect)(()=>{if(!k.current)return;let e=new MutationObserver(()=>{k.current&&_(z(k.current))});return e.observe(k.current,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["class","role"]}),()=>{e.disconnect()}},[]);let E=(0,d.useCallback)(e=>{let t=e.target.closest("[data-has-float-menu]");t&&t!==k.current?x(!0):x(!1)},[]);if(!t){let e=(0,n.lW)(t||{});return(0,c.jsx)(F.A,{message:e("Invalid model provided"),type:"error"})}return i&&r?(0,c.jsxs)("div",{ref:k,className:`${U({showBackground:h,showBorder:p,ctx:t.context,toolbarPosition:w,toolbarCount:X(M,y)})} ${b?"hide-parent-menu":""} ${S?"has-button-child":""} ${u||""}`,style:a,"data-has-float-menu":"true",onMouseMove:E,children:[r,(0,c.jsxs)("div",{ref:P,className:"nb-toolbar-container",style:R,children:[f&&(t.title||t.extraTitle)&&(0,c.jsxs)("div",{className:"nb-toolbar-container-title",children:[t.title&&(0,c.jsx)("span",{className:"title-tag",children:t.title}),t.extraTitle&&(0,c.jsx)("span",{className:"title-tag",children:t.extraTitle})]}),(0,c.jsx)("div",{className:"nb-toolbar-container-icons",onClick:e=>e.stopPropagation(),onMouseDown:e=>e.stopPropagation(),onMouseMove:e=>e.stopPropagation(),children:(0,c.jsx)(L.A,{size:3,align:"center",children:W(t,o,s,M,m,y)})}),g&&(0,c.jsx)(J,{model:t,onDragStart:()=>j({opacity:1}),onDragEnd:()=>j({})})]})]}):(0,c.jsx)(c.Fragment,{children:r})},{displayName:"FlowsFloatContextMenuWithModel"}),Z=(0,a.PA)(e=>{let{uid:t,modelClassName:r,children:n,enabled:i=!0,showDeleteButton:s=!0,showCopyUidButton:a=!0,containerStyle:u,className:d,showTitle:h=!1,settingsMenuLevel:p,extraToolbarItems:f,toolbarPosition:g}=e,m=(0,o.fh)(t,r),y=(0,l.uf)();return m?(0,c.jsx)(G,{model:m,enabled:i,showDeleteButton:s,showCopyUidButton:a,containerStyle:u,className:d,showTitle:h,settingsMenuLevel:p,extraToolbarItems:f,toolbarPosition:g,children:n}):(0,c.jsx)(F.A,{message:y.translate("Model with ID {{uid}} not found",{uid:t}),type:"error"})},{displayName:"FlowsFloatContextMenuWithModelById"});function X(e,t){var r,n;return[...(null==e||null==(n=e.flowSettings)||null==(r=n.getToolbarItems)?void 0:r.call(n))||[],...t||[]].length}let Q=(0,a.PA)(e=>{let{model:t,showFlowSettings:r,flowSettingsVariant:i,hideRemoveInSettings:s,showTitle:l,inputArgs:a,showErrorFallback:u,settingsMenuLevel:d,extraToolbarItems:h,fallback:p}=e,{loading:f,error:g}=(0,o.GC)(t,a,{throwOnError:!1,useCache:t.context.useCache});return((0,n.GZ)(t,g||null),f)?(0,c.jsx)(c.Fragment,{children:p}):(0,c.jsx)(o.Ps,{model:t,children:(0,c.jsx)(ee,{model:t,showFlowSettings:r,flowSettingsVariant:i,hideRemoveInSettings:s,showTitle:l,showErrorFallback:u,settingsMenuLevel:d,extraToolbarItems:h})})}),ee=(0,a.PA)(e=>{var t;let{model:r,showFlowSettings:i,flowSettingsVariant:o,hideRemoveInSettings:s,showTitle:l,showErrorFallback:a,settingsMenuLevel:u,extraToolbarItems:h}=e,p=e=>a?(0,c.jsx)(M.tH,{FallbackComponent:_,children:e}):e,f=()=>{let e=(0,n.yz)(r);if(e)throw e;let t=r.render();return"function"==typeof t?d.createElement(t):(0,c.jsx)(c.Fragment,{children:t})},m=null==r?void 0:r.use,y=(null==r||null==(t=r.constructor)?void 0:t.name)||r.uid,v="string"==typeof m?`${m}:${r.uid}`:`${y}:${r.uid}`;if(!i)return p((0,c.jsx)("div",{children:(0,c.jsx)(f,{})},v));switch(o){case"dropdown":return(0,c.jsx)(Y,{showTitle:l,model:r,showDeleteButton:!s,showBackground:g().isObject(i)?i.showBackground:void 0,showBorder:g().isObject(i)?i.showBorder:void 0,showDragHandle:g().isObject(i)?i.showDragHandle:void 0,settingsMenuLevel:u,extraToolbarItems:h,toolbarStyle:g().isObject(i)?i.style:void 0,toolbarPosition:g().isObject(i)?i.toolbarPosition:void 0,children:p((0,c.jsx)("div",{children:(0,c.jsx)(f,{})},v))});case"contextMenu":return(0,c.jsx)(N,{model:r,showDeleteButton:!s,children:p((0,c.jsx)("div",{children:(0,c.jsx)(f,{})},v))});case"modal":return console.warn("FlowModelRenderer: modal variant is not implemented yet"),p((0,c.jsx)(f,{}));case"drawer":return console.warn("FlowModelRenderer: drawer variant is not implemented yet"),p((0,c.jsx)(f,{}));default:return console.warn(`FlowModelRenderer: Unknown flowSettingsVariant '${o}', falling back to dropdown`),(0,c.jsx)(Y,{showTitle:l,model:r,showDeleteButton:!s,showBackground:g().isObject(i)?i.showBackground:void 0,showBorder:g().isObject(i)?i.showBorder:void 0,showDragHandle:g().isObject(i)?i.showDragHandle:void 0,settingsMenuLevel:u,extraToolbarItems:h,toolbarStyle:g().isObject(i)?i.style:void 0,toolbarPosition:g().isObject(i)?i.toolbarPosition:void 0,children:p((0,c.jsx)("div",{children:(0,c.jsx)(f,{})},v))})}},{displayName:"FlowModelRendererCore"}),et=(0,a.PA)(e=>{let{model:t,fallback:r=null,showFlowSettings:n=!1,flowSettingsVariant:i="dropdown",hideRemoveInSettings:s=!1,showTitle:l=!1,inputArgs:a,showErrorFallback:u=!0,settingsMenuLevel:h,extraToolbarItems:p,useCache:f}=e;if((0,d.useEffect)(()=>{(null==t?void 0:t.context)&&t.context.defineProperty("useCache",{value:"boolean"==typeof f?f:t.context.useCache})},[null==t?void 0:t.context,f]),!t||"function"!=typeof t.render)return console.warn("FlowModelRenderer: Invalid model or render method not found.",t),null;let g=(0,c.jsx)(Q,{model:t,showFlowSettings:n,flowSettingsVariant:i,hideRemoveInSettings:s,showTitle:l,inputArgs:a,showErrorFallback:u,settingsMenuLevel:h,extraToolbarItems:p,fallback:r});return u?(0,c.jsx)(o.Ps,{model:t,children:(0,c.jsx)(M.tH,{FallbackComponent:_,children:g})}):g});d.memo(et).displayName="MemoFlowModelRenderer",r(31102);var er=r(32731);let en=(0,a.PA)(e=>{let{model:t,text:r="流程配置",icon:i=(0,c.jsx)(j.A,{}),size:o="middle",type:s="default",disabled:l=!1,showDropdownIcon:a=!0,onClick:h,style:p,className:f}=e,g=()=>{null==h||h()},m=(0,d.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,c.jsx)(F.A,{message:"提供的模型无效",type:"error"});let y=(0,d.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[i,o]=r,s=o;if(await (0,n._3)(t,e,s))return null;let l=s.uiSchema||{},a={};if(s.use){var c;let e=null==(c=t.getAction)?void 0:c.call(t,s.use);e&&e.uiSchema&&(a=e.uiSchema)}let u={...a};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:i,step:s,uiSchema:u,title:s.title||i}})).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,d.useState)([]);(0,d.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,c.jsx)(j.A,{}),label:t.title})})}),e})(),x=(0,c.jsx)(u.Ay,{type:s,size:o,disabled:l,icon:i,onClick:g,style:p,className:f,children:(0,c.jsxs)(L.A,{children:[r,a&&(0,c.jsx)(er.A,{})]})});return 0===v.length?x:(0,c.jsx)(c.Fragment,{children:(0,c.jsx)($.A,{menu:{items:b,onClick:m},trigger:["click"],placement:"bottomRight",children:x})})});(0,a.PA)(e=>{let{uid:t,modelClassName:r,text:n="流程配置",icon:i=(0,c.jsx)(j.A,{}),size:s="middle",type:l="default",disabled:a=!1,showDropdownIcon:u=!0,onClick:d,style:h,className:p}=e,f=(0,o.fh)(t,r);return f?(0,c.jsx)(en,{model:f,text:n,icon:i,size:s,type:l,disabled:a,showDropdownIcon:u,onClick:d,style:h,className:p}):(0,c.jsx)(F.A,{message:`未找到ID为 ${t} 的模型`,type:"error"})});var ei=r(89013),eo=r(36492),es=r(63718),el=r(94313),ea=r(95725);let{Item:ec}=ei.A,eu=e=>"uid"in e&&"modelClassName"in e&&!!e.uid&&!!e.modelClassName,ed=e=>eu(e)?(0,c.jsx)(ep,{...e}):(0,c.jsx)(eh,{...e}),eh=(0,a.PA)(e=>{let{model:t,flowKey:r}=e;return t?(0,c.jsx)(ef,{model:t,flowKey:r}):(0,c.jsx)(F.A,{message:"提供的模型无效",type:"error"})}),ep=(0,a.PA)(e=>{let{uid:t,flowKey:r,modelClassName:n}=e,i=(0,o.fh)(t,n);return i?(0,c.jsx)(ef,{model:i,flowKey:r}):(0,c.jsx)(F.A,{message:`未找到ID为 ${t} 的模型`,type:"error"})}),ef=(0,a.PA)(e=>{let{model:t,flowKey:r}=e,[i]=ei.A.useForm(),o=t.getFlows().get(r),[s,l]=(0,d.useState)([]);(0,d.useEffect)(()=>{let e=!0;return(async()=>{let r=[];for(let[e,l]of Object.entries((null==o?void 0:o.steps)||{})){if(await (0,n._3)(t,o,l))continue;let a=l.uiSchema||{},c={};if(l.use){var i,s;let e=null==(s=t.flowEngine)||null==(i=s.getAction)?void 0:i.call(s,l.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:l,uiSchema:u})}e&&l(r)})(),()=>{e=!1}},[t,o]);let a=(0,d.useCallback)(async()=>{let e={};for(let{stepKey:i,step:o}of s){let s=t.getStepParams(r,i)||{},l=new O.W5(t,r,"settings"),a=t.getFlow(r);(0,n.wx)(l,(null==a?void 0:a.steps)||{},t,r);let c={...await (0,n.gG)(o.defaultParams,l),...s};Object.keys(c).length>0&&(e[i]=c)}return e},[t,r,s]);(0,d.useEffect)(()=>{(async()=>{try{let e=await a();i.setFieldsValue(e)}catch(e){console.error("Error loading default params:",e)}})()},[r,i,a]);let u=(0,d.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,c.jsx)(F.A,{message:`未找到Key为 ${r} 的流程`,type:"error"});if(0===s.length)return(0,c.jsx)(F.A,{message:"此流程没有可配置的参数",type:"info"});let h=()=>s.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,c.jsx)(eo.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,c.jsx)(es.A,{placeholder:(null==(t=n["x-component-props"])?void 0:t.placeholder)||`请输入${n.title}`,...n["x-component-props"]||{}});case"Switch":return(0,c.jsx)(el.A,{...n["x-component-props"]||{}});case"Input.TextArea":return(0,c.jsx)(ea.A.TextArea,{placeholder:(null==(r=n["x-component-props"])?void 0:r.placeholder)||`请输入${n.title}`,...n["x-component-props"]||{}});default:return(0,c.jsx)(ea.A,{placeholder:(null==(i=n["x-component-props"])?void 0:i.placeholder)||`请输入${n.title}`,...n["x-component-props"]||{}})}};return(0,c.jsx)(ei.A.Item,{name:[t,r],label:n.title||r,rules:n.required?[{required:!0,message:`请输入${n.title||r}`}]:[],children:o()},i)})});return(0,c.jsx)(ei.A,{form:i,layout:"vertical",onValuesChange:u,children:h()})});var eg=r(47674),em=r(25303),ey=r(16629);let{Panel:ev}=eg.A,ew=(0,a.PA)(e=>{let{model:t,expandAll:r=!1}=e,i=t.getFlows(),[o,s]=(0,d.useState)([]);(0,d.useEffect)(()=>{let e=!0;return(async()=>{let r=[];for(let e of Array.from(i.values()))(await Promise.all(Object.entries(e.steps).map(async r=>{let[i,o]=r;if(await (0,n._3)(t,e,o))return null;let s=o.uiSchema||{},l={};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&&(l=e.uiSchema)}let u={...l};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:i,step:o,uiSchema:u}})).then(e=>e.filter(Boolean))).length>0&&r.push(e);e&&s(r)})(),()=>{e=!1}},[t,i]);let l=o.map(e=>e.key);if(0===l.length)return(0,c.jsx)(em.A,{description:"没有可用的流程"});let a=r?l:void 0;return(0,c.jsx)(ey.A,{title:"Flows设置",children:(0,c.jsx)(eg.A,{defaultActiveKey:a,children:l.map(e=>{var r;return(0,c.jsx)(ev,{header:(null==(r=i.get(e))?void 0:r.title)||e,children:(0,c.jsx)(ed,{model:t,flowKey:e})},e)})})})});(0,a.PA)(e=>{let{model:t,expandAll:r=!1,children:n}=e;if(!t)return(0,c.jsx)(F.A,{message:"提供的模型无效",type:"error"});let i=(0,c.jsx)(ew,{model:t,expandAll:r});return n?(0,c.jsxs)("div",{children:[i,n]}):i}),(0,a.PA)(e=>{let{uid:t,modelClassName:r,expandAll:n=!1,children:i}=e,s=(0,o.fh)(t,r);if(!s)return(0,c.jsx)(F.A,{message:`未找到ID为 ${t} 的模型`,type:"error"});let l=(0,c.jsx)(ew,{model:s,expandAll:n});return i?(0,c.jsxs)("div",{children:[l,i]}):l}),r(95243),r(96332);var eb=r(21734);let ex=()=>(0,d.useMemo)(()=>Math.min(.6*window.innerHeight,400),[]),eS=(e,t,r,n,i)=>{let[o,s]=(0,d.useState)({}),[l,a]=(0,d.useState)(new Set),c=(0,d.useRef)(null),u=(0,d.useCallback)(async function(e,t){let r=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(!l.has(e)&&(r||!o[e])){a(t=>new Set(t).add(e));try{let r=t(),n=r instanceof Promise?await r:r;s(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,l]),h=(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=ej(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,d.useEffect)(()=>{if(!e||c.current===r)return;c.current=r;let s=new Map;for(let[e,r]of h(t,o))s.set(e,r);let l=n?Array.from(n):[],a=[],d=Array.from(new Set([...i||[]].filter(Boolean)));if(d.length>0)for(let e of d){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=>l.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=s.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:l,handleLoadChildren:u}},e_=()=>{let e=(0,d.useRef)(!1),[t,r]=(0,d.useState)(!1),n=(0,d.useRef)(null),i=(0,d.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,d.useEffect)(()=>()=>n.current&&clearTimeout(n.current),[]),{requestKeepOpen:i,shouldPreventClose:(0,d.useCallback)(()=>e.current||t,[t])}},ek=()=>{let[e,t]=(0,d.useState)({}),[r,n]=(0,d.useState)(!1),i=(0,d.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,d.useEffect)(()=>()=>{i.current&&clearTimeout(i.current)},[]),{searchValues:e,isSearching:r,updateSearchValue:o}},eM=(e,t)=>{(0,d.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])},eA=e=>{let t=(0,d.useRef)(null),{visible:r,...n}=e;return(0,d.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,c.jsx)(ea.A,{ref:t,...n})},ej=(e,t)=>[...e,t].join("/"),eP=(e,t,r,n,i,o)=>({key:`${t}-search`,type:"group",label:(0,c.jsx)("div",{children:(0,c.jsx)(eA,{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}})})}),eR=(e,t)=>({key:`${e}-empty`,label:(0,c.jsx)("div",{style:{padding:"16px",textAlign:"center"},children:(0,c.jsx)(em.A,{image:em.A.PRESENTED_IMAGE_SIMPLE,description:t("No data"),style:{margin:0}})}),disabled:!0}),eE=350,eC=new Map,eF=e=>{let{menu:t,...r}=e,n=(0,l.uf)(),[i,o]=(0,d.useState)(!1),[s,a]=(0,d.useState)(new Set),[u,h]=(0,d.useState)([]),[p,f]=(0,d.useState)(!1),g=ex(),y=n.translate.bind(n),{items:v,keepDropdownOpen:w,persistKey:b,stateVersion:x,refreshKeys:S,..._}=t,{loadedChildren:k,loadingKeys:M,handleLoadChildren:A}=eS(i,u,x,s,S),{searchValues:j,isSearching:P,updateSearchValue:R}=ek(),{requestKeepOpen:E,shouldPreventClose:C}=e_();function F(e,t,r,n,i,o){let s=r,l=j[s]||"",a=o(l?function e(t){let r=l.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=eP(t,s,l,i,y,R),u={key:`${r}-search-divider`,type:"divider"};return l&&0===a.length?[c,u,eR(r,y)]:[c,u,...a]}eM(i,g),(0,d.useEffect)(()=>{!b||(eC.get(b)||0)>Date.now()&&o(!0)},[b]),(0,d.useEffect)(()=>()=>{if(b&&i){let e=Date.now()+eE;eC.set(b,e),setTimeout(()=>{(eC.get(b)||0)<=Date.now()&&eC.delete(b)},eE+100)}},[b,i]),(0,d.useEffect)(()=>{(async()=>{let e;if("function"==typeof v){f(!0);try{let t=v();e=t instanceof Promise?await t:t}finally{f(!1)}}else e=v;h(e)})()},[x,v]);let T=function(e){let r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return e.map(e=>{let n,o=ej(r,e.key),l="group"===e.type,u="function"==typeof e.children,d=M.has(o),h=k[o];if(!l&&i&&s.has(o)&&u&&!h&&!d&&A(o,e.children),u?n=h??[]:Array.isArray(e.children)&&(n=e.children),u&&!h&&(n=[{key:`${o}-loading`,label:(0,c.jsx)(eb.A,{size:"small"}),disabled:!0}]),l){u&&!h&&i&&A(o,e.children);let t=n?T(n,[...r,e.key]):[];return e.searchable&&n&&(t=F(n,e,o,r,i,T)),{type:"group",key:o,label:"string"==typeof e.label?y(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?y(e.label):e.label,onClick:e=>{},onMouseEnter:()=>{a(e=>{if(e.has(o))return e;let t=new Set(e);return t.add(o),t})},children:F(n,e,o,r,i,T)}:{key:o,label:"string"==typeof e.label?y(e.label):e.label,onClick:r=>{var i;if(n)return;let o=e.keepDropdownOpen??w??!1;o&&E();let s={...r,item:r.item||e,originalItem:e,keepDropdownOpen:o};null==(i=t.onClick)||i.call(t,s)},onMouseEnter:()=>{a(e=>{if(e.has(o))return e;let t=new Set(e);return t.add(o),t})},children:n&&n.length>0?T(n,[...r,e.key]):n&&0===n.length?[eR(o,y)]:void 0}})},O=(0,d.useMemo)(()=>(0,m.AH)`
204
+ .ant-dropdown-menu {
205
+ max-height: ${g}px;
206
+ overflow-y: auto;
207
+ }
208
+ .ant-dropdown-menu-submenu-popup .ant-dropdown-menu,
209
+ .ant-dropdown-menu-submenu-popup .ant-dropdown-menu-submenu-popup .ant-dropdown-menu {
210
+ max-height: ${g}px !important;
211
+ overflow-y: auto !important;
212
+ }
213
+ `,[g]),I=p&&0===u.length?[{key:"root-loading",label:(0,c.jsx)(eb.A,{size:"small"}),disabled:!0}]:T(u);return(0,c.jsx)($.A,{...r,open:i,destroyPopupOnHide:!0,overlayClassName:O,placement:"bottomLeft",menu:{..._,items:I,onClick:()=>{},style:{maxHeight:g,overflowY:"auto",...null==_?void 0:_.style}},onOpenChange:e=>{!e&&P||!e&&C()||o(e)},children:r.children})};var eT=r(41594);let e$={display:"flex",justifyContent:"space-between",alignItems:"center",width:"100%",padding:"0"},eO={marginLeft:8,pointerEvents:"none"},eI=e=>e?!!e.use||(console.warn('createModelOptions must specify "use" property:',e),!1):(console.warn("No createModelOptions found for item"),!1),eD=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)}},eN=async(e,t)=>{let r=e.createModelOptions;return"function"==typeof r&&(r=await r(t)),{use:e.useModel,...r}};function eB(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],s=Array.isArray(o)?o:await o(e);i>0&&r&&s.length>0&&t.push({key:`divider-${i}`,type:"divider"}),t.push(...s)}return t}}let eq=(e,t)=>(0,c.jsxs)("div",{style:e$,children:[(0,c.jsx)("span",{children:e}),(0,c.jsx)(el.A,{size:"small",checked:t,style:eO})]}),eL=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)},ez=async(e,t)=>{let r=e.hide;return!!r&&("function"==typeof r?!!await r(t):!!r)},eW=async(e,t)=>{for(let r of e)if(r){try{if(await ez(r,t))continue}catch(e){console.error("[NocoBase]: Failed to resolve item.hide:",e)}if(Array.isArray(r.children)){if(await eW(r.children,t))return!0;if("group"===r.type||!r.createModelOptions)continue;return!0}return r.children,!0}return!1},eV=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 ez(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 s=[];for(let e=0;e<o.length;e++){let n=o[e],i=n.useModel;if(!i&&n.toggleable)try{let e=await eN(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&&s.push({item:n,index:e})}let l=await Promise.allSettled(s.map(e=>{let{item:r}=e;return r.toggleDetector?r.toggleDetector(t.context):Promise.resolve(!1)})),a=new Map;s.forEach((e,t)=>{let{index:r}=e,n=l[t];a.set(r,"fulfilled"===n.status&&n.value)});let c=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 eV(await i(t.context),t,r,n)};else{let i=e.children;if(eL(i)){if(await eW(i,t.context))o.children=async()=>eV(i,t,r,n);else if("group"===e.type||!e.createModelOptions)return null}else o.children=await eV(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=eq(t.translate(e.label)||"",r),o.isToggled=r,o.keepDropdownOpen=e.keepDropdownOpen??!0}return o});return(await Promise.all(c)).filter(e=>!!e)},eH=(e,t,r,n)=>{if("function"==typeof e)return async()=>eV(await e(t.context),t,r,n);if(eL(e))return()=>eV(e,t,r,n);{let i=null;return async()=>(i||(i=await eV(e,t,r,n)),i)}},eU=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 eN(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};p(function(e){let{model:t,items:r,subModelBaseClass:n,subModelBaseClasses:i,subModelType:o="array",subModelKey:s,afterSubModelInit:l,afterSubModelAdd:a,afterSubModelRemove:u,children:h="Add",keepDropdownOpen:p=!1}=e,f=(0,d.useMemo)(()=>{try{let e=t&&t.uid||"unknown-model";return`asmb:${e}:${s}:${o}`}catch(e){return`asmb:unknown:${s}:${o}`}},[t,s,o]),[m,y]=d.useState(0),[v,w]=d.useState(void 0),b=(0,d.useMemo)(()=>{let e=[];return r&&e.push(r),n&&e.push((0,eT.z5)(n)),i&&i.length>0&&e.push((0,eT.Qp)(i)),eB(e,{addDividers:!0})},[r,n,i]),x=(0,d.useMemo)(()=>eU({model:t,subModelKey:s,subModelType:o}),[t,s,o]);d.useEffect(()=>{var e,r,n;let i=()=>{y(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 S=async e=>{let r,n=e.originalItem||e,i=n.originalItem||n,c=n.isToggled,d=null==e?void 0:e.key;if(d&&w([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(s,e=>e.constructor===r))}catch(e){}i.customRemove?await i.customRemove(t.context,i):e=await x(i,t)||e,u&&e&&await u(e),y(e=>e+1)}catch(e){console.error("Failed to remove sub model:",e)}return}let h=await eN(i,t.context);if(eI(h))try{(r=await t.flowEngine.createModelAsync({...g().cloneDeep(h),parentId:t.uid,subKey:s,subType:o})).isNew=!0,r.setParent(t);let e=async()=>{try{l&&await l(r),"array"===o?t.addSubModel(s,r):t.setSubModel(s,r),a&&await a(r),await r.afterAddAsSubModel(),await r.save(),r.isNew=!1,y(e=>e+1)}catch(e){await eD(e,r)}};await r.openFlowSettings({preset:!0,onSaved:async()=>{await e()}})||await e()}catch(e){await eD(e,r)}},_=(0,d.useMemo)(()=>eH(b,t,s,o),[b,t,s,o]);return(0,c.jsx)(eF,{menu:{items:_,onClick:S,keepDropdownOpen:p,persistKey:f,stateVersion:m,refreshKeys:v},children:h})}),r(61793),r(76546),r(63128),r(91013),r(37966),r(88828),r(19258),r(52249),r(16639),r(68161),r(47451)},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,{WD:()=>D,_f:()=>N});var n=r(58587),i=r(18150),o=r(68238),s=r(50467),l=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 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,s._)(this,"flows",void 0),this.flows=a.sH.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,s._)(this,"model",void 0),this.model=e}}(0,s._)(m,"_type","instance");var y=r(6409),v=r(78863),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,s._)(this,"modelClass",void 0),(0,s._)(this,"parentRegistry",void 0),(0,s._)(this,"changeMarker",{}),(0,s._)(this,"mergedCache",void 0),this.modelClass=e,this.parentRegistry=t??null}}var S=r(41594),_=r(26955);class k 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,s._)(this,"modelClass",void 0),(0,s._)(this,"parentRegistry",void 0),(0,s._)(this,"changeMarker",{}),(0,s._)(this,"mergedCache",void 0),this.modelClass=e,this.parentRegistry=t??null}}class M 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!==D&&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,s=i.sort??0;if(o!==s)return o-s;let l=n.flowRegistry,a=i.flowRegistry,c=r(l.target),u=r(a.target);return c!==u?c-u:0}))}saveFlow(e){}destroyFlow(e){}constructor(e){super(),(0,s._)(this,"target",void 0),this.target=e}}(0,s._)(M,"_type","global");var A=new WeakMap;class j{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 j.SHARED_PROPERTIES.includes(e)}constructor(e,t={},r){return(0,s._)(this,"uid",void 0),(0,s._)(this,"isFork",!0),(0,s._)(this,"localProps",void 0),(0,s._)(this,"master",void 0),(0,s._)(this,"disposed",!1),(0,s._)(this,"forkId",void 0),(0,s._)(this,"localProperties",{}),(0,i._)(this,A,{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.E8)(this,{localProps:a.sH,hidden:a.sH,setProps:a.XI}),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(j.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,s._)(j,"SHARED_PROPERTIES",["stepParams","sortIndex"]);var P=r(1598);let R=new WeakMap,E=new WeakMap,C=new WeakMap,F=new WeakMap,T=new WeakMap;async function $(){return(await Promise.resolve().then(r.bind(r,23183))).openStepSettingsDialog}async function O(){return(await Promise.resolve().then(r.bind(r,96332))).openRequiredParamsStepFormDialog}var I=new WeakMap;class D{renderHiddenInConfig(){var e,t;return(0,l.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,I)||(0,o._)(this,I,new y.d6(this)),(0,n._)(this,I)}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 M(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===D||(0,v.FA)(n,D))&&(r=n.actionRegistry),t=new x(e,r),R.set(e,t)}return t}static get eventRegistry(){let e=this,t=E.get(e);if(!t){let r=null,n=Object.getPrototypeOf(e);n&&n!==Function.prototype&&n!==Object.prototype&&(n===D||(0,v.FA)(n,D))&&(r=n.eventRegistry),t=new k(e,r),E.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 s=e.startsWith(t)||e.startsWith(n),l=i.some(t=>e.endsWith(t)),a=o.some(t=>e.includes(t));s&&l&&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),s=o.some(t=>e.endsWith(t)),l=t.some(t=>e.includes(t));r&&s&&l&&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 D&&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,P.PAp)(()=>{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,l.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===D||(0,v.FA)(e.constructor,D))))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,s=this.master||this;if(t instanceof D){let e=!!t.parent,r=null==(i=t.parent)?void 0:i.uid;if(e&&r&&r!==s.uid)throw Error("Sub model already has a parent.");o=t}else o=s.flowEngine.createModel({...t,parentId:s.uid,subKey:e,subType:"array"});o.setParent(s);let l=s.subModels;Array.isArray(l[e])||(l[e]=a.sH.shallow([]));let c=Math.max(...l[e].map(e=>e.sortIndex||0),0);return o.sortIndex=c+1,l[e].push(o),s.emitter.emit("onSubModelAdded",o),null==(n=s.flowEngine)||null==(r=n.emitter)||r.emit("model:subModel:added",{parentUid:s.uid,parent:s,subKey:e,model:o}),o}setSubModel(e,t){var r,n,i;let o,s=this.master||this;if(t instanceof D){let e=!!t.parent,r=null==(i=t.parent)?void 0:i.uid;if(e&&r&&r!==s.uid)throw Error("Sub model already has a parent.");o=t}else o=s.flowEngine.createModel({...t,parentId:s.uid,subKey:e,subType:"object"});return o.setParent(s),s.subModels[e]=o,s.emitter.emit("onSubModelAdded",o),null==(n=s.flowEngine)||null==(r=n.emitter)||r.emit("model:subModel:added",{parentUid:s.uid,parent:s,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 j(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 $())({model:this,flowKey:e,stepKey:t,ctx:o})}async configureRequiredSteps(e,t){return(await O())({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 D&&(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 s=T.get(r);if(s)for(let i of s){if(i.matcher&&!i.matcher(e))continue;let o="function"==typeof i.items?await i.items(e,t):await Promise.resolve(i.items||[]),s=i.group||"common-actions",l=i.sort??0,a=i.keyPrefix||r.name||"extra";(o||[]).forEach((e,t)=>{if(!e)return;let r=e.key??`${a}-${s}-${t}-${Math.random().toString(36).slice(2,6)}`;n.push({...e,key:r,group:e.group||s,sort:"number"==typeof e.sort?e.sort:l})})}let l=Object.getPrototypeOf(r);(l===D||(null==l?void 0:l.prototype)instanceof D)&&await o(l)};return await o(r),n}refresh(){return this.rerender()}constructor(e){if((0,s._)(this,"uid",void 0),(0,s._)(this,"sortIndex",void 0),(0,s._)(this,"hidden",!1),(0,s._)(this,"props",{}),(0,s._)(this,"stepParams",{}),(0,s._)(this,"flowEngine",void 0),(0,s._)(this,"parent",void 0),(0,s._)(this,"subModels",void 0),(0,s._)(this,"_options",void 0),(0,s._)(this,"_title",void 0),(0,s._)(this,"_extraTitle",void 0),(0,s._)(this,"isNew",!1),(0,s._)(this,"skeleton",null),(0,s._)(this,"forbidden",null),(0,s._)(this,"forks",new Set),(0,s._)(this,"emitter",new p.v),(0,s._)(this,"forkCache",new Map),(0,s._)(this,"_lastAutoRunParams",null),(0,s._)(this,"observerDispose",void 0),(0,i._)(this,I,{writable:!0,value:void 0}),(0,s._)(this,"_originalRender",null),(0,s._)(this,"_reactiveWrapperCache",void 0),(0,s._)(this,"flowRegistry",void 0),(0,s._)(this,"_cleanRun",void 0),(0,s._)(this,"_dispatchEventWithDebounce",u().debounce(async function(e,t,r){return this._dispatchEvent(e,t,r)},500,{leading:!0})),(0,s._)(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.E8)(this,{hidden:a.sH,props:a.sH,subModels:a.sH.shallow,stepParams:a.sH,_title:a.sH,_extraTitle:a.sH,setProps:a.vA,setStepParams:a.vA}),this.flowRegistry=new m(this),this.flowRegistry.addFlows(e.flowRegistry),this.observerDispose=(0,a.lB)(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,s._)(D,"renderMode","reactElement");class N extends D{setErrorMessage(e){this.errorMessage=e}render(){return(0,l.jsx)(w.A.Text,{type:"danger",children:this.errorMessage})}constructor(...e){super(...e),(0,s._)(this,"errorMessage",void 0)}}var B=r(89013),q=r(42443),L=r(13415),z=r(56391),W=r(57084),V=r(31102);function H(){var e;let{t}=(0,z.B)(),r=(0,W.PZ)(),n=r.context.blockModel,i=null==(e=n.collection)?void 0:e.dataSource,o=n.collection,s=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}${s}`},[]);return(0,l.jsx)(B.A.Item,{children:(0,l.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("&gt;",">")})})}function U(){var e,t;let{t:r}=(0,z.B)(),n=(0,W.PZ)(),i=n.context.blockModel,o=(null==(e=n.context.collectionField)?void 0:e.collection)||i.collection,s=o.dataSource,a=(null==(t=n.context.collectionField)?void 0:t.name)||n.fieldPath,c=(0,d.useMemo)(()=>{let e=`${r(s.displayName||s.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("&gt;",">"),[c,r]);return(0,l.jsx)(q.A,{title:p,children:(0,l.jsx)(V.e,{showLabel:!0,label:n.context.collectionField.title||a,style:{opacity:"0.4"},children:(0,l.jsx)(L.A,{})})})}let K=()=>!0;class Y extends D{renderHiddenInConfig(){return this.forbidden?(0,l.jsx)(U,{}):(0,l.jsx)(q.A,{title:this.context.t("The field is hidden and only visible when the UI Editor is active"),children:(0,l.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!==K))||(e=o.find(e=>e.when===K)))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||K,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,l.jsx)(H,{})}}(0,s._)(Y,"_bindings",new Map),Y.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")}}}})},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),s=r(35710),l=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,l.createContext)(null),f=l.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:u,notification:d}=i.A.useApp(),[p,f]=(0,c.bt)(),[g,y]=(0,c.N5)(),[v,w]=(0,c.fP)(),[b,x]=(0,c.sp)(),S=m(),_=(0,l.useContext)(o.Ay.ConfigContext),{token:k}=s.A.useToken();return(0,l.useEffect)(()=>{let e={antdConfig:_,modal:a,message:u,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:()=>k,observable:!0,cache:!0}),S.reactView.refresh()},[S,p,a,u,d,_,v,k,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,l.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,{O8:()=>n.O8,fm:()=>n.fm,sH:()=>n.sH,PA:()=>a});var n=r(95243),i=r(74848),o=r(69804),s=r(96540),l=r(52568);let a=(e,t)=>{let r=s.memo(r=>{let a=(0,l.$K)(),u=(0,s.useRef)(a);u.current=a;let d=(0,s.useRef)(null);(0,s.useEffect)(()=>()=>{d.current&&(d.current(),d.current=null)},[]);let h=(0,s.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.fm)(()=>{var r,n,i,o,s,l;(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==(l=u.current)||null==(s=l.tabActive)?void 0:s.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:()=>ea,sB:()=>m,hR:()=>c,l2:()=>a,Rn:()=>g,BH:()=>ec});var n=r(50467),i=r(95243),o=r(6409);function s(e){var t,r,n,i,o,s,l,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==(l=e.response)||null==(s=l.data)?void 0:s.messages)||(null==e||null==(a=e.response)?void 0:a.error)||[{message:e.message||"Server error"}]}class l 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(s(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),s=0;s<i;s++)o[s]=arguments[s];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.sH.ref(null)),(0,n._)(this,"_meta",i.sH.ref({})),(0,n._)(this,"_error",i.sH.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 l(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}}var p=r(16639);class f 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 s=o.size;if(Array.isArray(t)||s>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 l(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 s=new Set([String(o)]);for(let e of("string"==typeof o&&o.includes(".")&&s.add(o.split(".")[0]),s))n.markDataSourceDirty(i,e);null==(r=n.emitter)||null==(t=r.emit)||t.call(r,p.HK,{dataSourceKey:i,resourceNames:Array.from(s)})}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 f{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.sH.ref([])),(0,n._)(this,"_meta",i.sH.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 m extends f{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 y=r(74353),v=r.n(y),w=r(97375),b=r.n(w),x=r(90445),S=r.n(x),_=r(43522),k=r.n(_),M=r(37872),A=r.n(M),j=r(98867),P=r.n(j),R=r(8906),E=r.n(R),C=r(68313),F=r.n(C),T=r(21840),$=r.n(T),O=r(41816),I=r.n(O),D=r(88569),N=r.n(D),B=r(83826),q=r.n(B),L=r(8134),z=r.n(L),W=r(28623),V=r.n(W),H=r(46986),U=r.n(H);v().extend(U()),v().extend($()),v().extend(N()),v().extend(q()),v().extend(I()),v().extend(F()),v().extend(A()),v().extend(P()),v().extend(E()),v().extend(z()),v().extend(V()),v().extend(S()),v().extend(b()),v().extend(k()),r(38362),r(81814);var K=r(88835),Y=r(60639),J=r.n(Y),G=r(79441);let Z=r.n(G)()();function X(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 Q(e,t){return e.parameters=Array.from(new Map(t.map(e=>[e.key,e])).values()),e}Object.keys(Z).forEach(function(e){J().registerHelper(e,Z[e])}),J().registerHelper("json",function(e){return JSON.stringify(e)}),J().registerHelper("urlParse",function(e){try{return JSON.stringify(K.parse(e))}catch(t){return`Invalid URL: ${e}`}}),J().registerHelper("dateFormat",(e,t,r)=>"string"==typeof r?v()(e).tz(r).format(t):v()(e).format(t)),J().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(X),n=e=>(e=e||{},i.reduce((n,o,s)=>{let l=r[s],a=(0,u.get)(e,l.key);return(void 0===a&&(a=l.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))),Q(n,r)}})(),r(14744),r(63560),r(95093),r(67980),Symbol.for("nocobase.utils.sesLockdown"),Symbol.for("nocobase.utils.bufferOverrides"),r(65606);let ee=36,et="";for(;ee--;)et+=ee.toString(36);r(27153);let er=new(r(23155)).HX;function en(){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 ei(e){return en(await er.fullVariables(e))}async function eo(e,t){return await er.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 el(e){let{sql:t,bind:r}=es(e),n=await ei(t);return{sql:t,bind:r,liquidContext:n}}class ea{async run(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},{sql:r,bind:n,liquidContext:i}=await el(e),o=await this.ctx.resolveJsonTemplate({bind:n,liquidContext:i}),s=await eo(r,o.liquidContext),{data:l}=await this.ctx.api.request({method:"POST",url:"flowSql:run",data:{sql:s,...t,bind:{...o.bind,...t.bind}}});return null==l?void 0:l.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 f{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 el(e),i=await this.context.resolveJsonTemplate({bind:r,liquidContext:n}),o=d().cloneDeep({method:"post",...this.getRefreshRequestOptions()});return o.data.sql=await eo(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.sH.ref(null)),(0,n._)(this,"_meta",i.sH.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,{Jq:()=>c,R5:()=>u});var n=r(6409),i=r(37966);let o=new Set,s=new Map,l=new Set;async function a(e,t){let r=s.get(e)||new Set;if(s.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}}}async function c(e){for(let t of o)await a(e,t)}function u(e){l.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(6409);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.
214
+ Parameters: (viewId: string, options?: OpenViewOptions) => Promise<void>
215
+ Options:
216
+ - params: Record<string, any> - Parameters passed to the view component
217
+ - mode: "page" | "modal" | "drawer" - Display mode (default: "drawer")
218
+ - title: string - Modal/drawer title
219
+ - width: number | string - Modal/drawer width
220
+ - navigation: boolean - Whether to use route navigation
221
+ - preventClose: boolean - Prevent closing the view
222
+ - viewUid: string - Custom view UID for routing
223
+ - isMobileLayout: boolean - Use mobile layout (displays as embed)
224
+ Examples:
225
+ - Modal with params: await ctx.openView("user-detail", { params: { id: 123 }, mode: "modal", title: "User Details", width: 800 })
226
+ - Drawer (default): await ctx.openView("settings-page")
227
+ - 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 s=r(19258);let l=!1;async function a(){if(l)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,"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,s.Jq)(e),(0,s.R5)(e);l=!0}},98192(e,t,r){r.d(t,{$B:()=>T,oJ:()=>_,qf:()=>k});var n=r(50467),i=r(79114),o=r(95243);let s=new Map,l=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&&(s.set(e,{loader:t,cache:(null==r?void 0:r.cache)||"global"}),l.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=s.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 s=Promise.resolve().then(()=>n.loader(e)).then(e=>(r.delete(t),e),e=>{throw r.delete(t),e});r.set(t,s);let l=await s;return i(l),l}if(l.has(t)){let e=l.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=>(l.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=>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))s.has(e)||h(e,t,{cache:r})}function S(e,t){let r=s.get(t);if(!r)return;if("global"===r.cache&&l.has(t))return l.get(t);let n=r.loader(e);if(!g(n))return"global"===r.cache&&l.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 k(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 M(e){var t;let{ctx:r,internalReact:n,internalAntd:i}=e,o=[],s=r.React&&r.React!==n,l=!!(null==(t=r.ReactDOM)?void 0:t.__nbRunjsInternalShim),a=r.antd===i,c=r.antd&&r.antd!==i;if(s&&l){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&&!s&&(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")')),s&&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?`
228
+
229
+ [RunJS Hint]
230
+ ${o.join("\n")}`:""}function A(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 j(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 P(e){let{ctx:t,internalReact:r,internalAntd:n,err:i}=e;if(!A(i))return"";let o=j(i),s=[];return s.push("- This looks like a React Hooks crash caused by multiple React instances (hook dispatcher is null)."),o?(s.push(`- Your stack trace includes external React: react@${o}.`),s.push(`- Fix: import the same React BEFORE you read ctx.libs.React / call hooks / import React-based libs: await ctx.importAsync("react@${o}")`)):s.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&&(s.push('- If you use antd components, also switch to external antd: await ctx.importAsync("antd@5.x")'),s.push('- If you use icon components, also import: await ctx.importAsync("@ant-design/icons@5.x")')),s.length?`
231
+
232
+ [RunJS Hint]
233
+ ${s.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 E(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,s=String((null==o?void 0:o.message)||"");if(s&&/\[RunJS Hint\]/.test(s)){console.error(s);let e=null==(n=this.props)||null==(r=n.ctx)?void 0:r.logger;e&&"function"==typeof e.error&&e.error(s)}}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"},s={margin:0,whiteSpace:"pre-wrap",wordBreak:"break-word",fontFamily:'ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace'},l={fontWeight:600,marginBottom:8};return e.createElement("div",{style:o},e.createElement("div",{style:l},"RunJS render error"),e.createElement("pre",{style:s},i))}constructor(...e){super(...e),(0,n._)(this,"state",{})}}return u.set(e,i),i}function C(e){let{ctx:t,vnode:r,enhanceReactError:n,resetKey:i}=e,o=null==t?void 0:t.React,s=E(o);return s?o.createElement(s,{ctx:t,enhanceReactError:n,resetKey:i},r):r}function F(e){var t;let{ctx:r,entry:n,containerEl:i,rootMap:s,unmountContainerRoot:l,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,s,l,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==(l=a.context)||null==(s=l.locales)?void 0:s.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,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.fm)(()=>{try{if(i&&1===i.nodeType&&"boolean"==typeof i.isConnected&&!i.isConnected&&n.wasConnected)return void queueMicrotask(()=>{s.get(i)===n&&l()});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:s,internalReact:l,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=A(e);if(!n&&!i)return e;let o=M({ctx:t,internalReact:l,internalAntd:a})||P({ctx:t,internalReact:l,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:c,resetKey:r.__nbRunjsRenderSeq}),F({ctx:t,entry:r,containerEl:i,rootMap:o,unmountContainerRoot:s,enhanceReactError:c,internalReact:l,internalAntd:a})||r.root.render(r.lastVnode),r.root}catch(e){throw c(e)}}},44476(e,t,r){r.d(t,{H:()=>l});var n=r(2543),i=r.n(n);function o(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 l(e,t){return r=>{if(!r||!r.includes("."))return!1;let n=o(r);if(!n)return!1;let l=s(e(),n);if(!(null==l?void 0:l.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}}},62572(e,t,r){r.d(t,{v:()=>i});var n=r(6409);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,s=e,l=t=>{let r=Reflect.get(s,t,s);return"function"==typeof r?r.bind(e):r},a=e=>"defineProperty"===e||"defineMethod"===e||Reflect.has(o,e)||Reflect.has(s,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):l(t):Reflect.get(o,t,n),set:(e,t,r)=>Reflect.set(s,t,r),has:(e,t)=>a(t),getOwnPropertyDescriptor:(e,t)=>Object.getOwnPropertyDescriptor(o,t)||Object.getOwnPropertyDescriptor(s,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):l(r):Reflect.get(o,r,n),set:(e,t,r)=>Reflect.set(s,t,r),has:(e,t)=>a(t),getOwnPropertyDescriptor:(e,t)=>Object.getOwnPropertyDescriptor(o,t)||Object.getOwnPropertyDescriptor(s,t)})}},31108(e,t,r){r.d(t,{VD:()=>s,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 s extends Error{constructor(e="Flow settings save cancelled."){super(e),this.name="FlowCancelSaveException"}}},78863(e,t,r){r.d(t,{sy:()=>l.sy,YB:()=>S,ME:()=>f,o7:()=>v,M:()=>c.M,GZ:()=>k,ln:()=>y,MI:()=>s,nN:()=>x.nN,JE:()=>C,yz:()=>M,yp:()=>e_.y,u4:()=>n,XM:()=>b,wx:()=>h.w,Vv:()=>q,_3:()=>w,ji:()=>eS,VD:()=>l.VD,gG:()=>c.gG,i:()=>e_.i,lW:()=>i,mv:()=>c.mv,FA:()=>a});let n="flow-engine";function i(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 o(e,t){return t?`{{t(${JSON.stringify(e)}, ${JSON.stringify(t)})}}`:`{{t(${JSON.stringify(e)})}}`}function s(e,t){return o(e,t)}var l=r(31108);function a(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 c=r(35339),u=r(27153),d=r(6409),h=r(88439);async function p(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 f(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 g={},m=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 y(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 s=!!(o=i(r))&&!n&&m(t);if(g[r]&&!n&&!s)return g[r];if(s)try{return u.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 s=!!(o=i(r))&&!n&&m(t);if(g[r]&&!n&&!s)return g[r];if(s)try{return u.S.compile(t,e)}catch(e){return console.warn("Failed to compile with Formily Schema.compile:",e),t}}if(o){if(!r)try{return u.S.compile(t,e)}catch(e){return console.warn("Failed to compile with Formily Schema.compile:",e),t}try{if(n)return u.S.compile(t,e);return g[r]=g[r]||u.S.compile(t,e),g[r]}catch(r){console.log("compileUiSchema error",t,r);try{return u.S.compile(t,e)}catch(e){}}}return t})(t)}async function v(e,t,r){let n=new d.W5(e,t.key,"settings");(0,h.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 s=await p(i||{},n);return 0===Object.keys(s).length?null:s}async function w(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 d.W5(e,t.key,"settings");return(0,h.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 b(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 s;let t=null==(s=e.getAction)?void 0:s.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 l=null,a=()=>(l||(l=new d.W5(e,t.key,"settings"),(0,h.w)(l,t.steps,e,t.key),l.defineProperty("currentStep",{value:r})),l),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}}r(44476);var x=r(5072);function S(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):[]}let _=new WeakMap;function k(e,t){_.set(e,t??null)}function M(e){return _.get(e)??null}var A=r(74353),j=r.n(A);let P=new Set(["today","now","yesterday","tomorrow","thisWeek","lastWeek","nextWeek","thisMonth","lastMonth","nextMonth","thisQuarter","lastQuarter","nextQuarter","thisYear","lastYear","nextYear"]),R=new Set(["next","past"]),E=new Set(["day","week","month","year"]);function C(e){let t=F((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&&P.has(t[2]);if("relative"===t[1])return 2===t.length||(3===t.length?R.has(t[2]):4===t.length?R.has(t[2])&&E.has(t[3]):5===t.length&&R.has(t[2])&&E.has(t[3])&&"number"==typeof O(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 F(e){return"date"===e[0]?e:["date",...e]}function T(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 $(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 O(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 I(e){let t=e.day(),r=0===t?-6:1-t;return e.add(r,"day").startOf("day")}function D(e){let t=3*Math.floor(e.month()/3);return e.month(t).startOf("month")}function N(e){return T(String(e||"")).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/g,"")}function B(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=$(i);if(N(o)!==t)return;return o}catch(e){return}}function q(e){let t=F((e||[]).map(e=>String(e)));if("date"===t[0]){if("preset"===t[1]&&3===t.length){let e=t[2];if("now"===e)return j()().toISOString();let r=j()();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?I(r).format("YYYY-MM-DD"):"lastWeek"===e?I(r.add(-1,"week")).format("YYYY-MM-DD"):"nextWeek"===e?I(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?D(r).format("YYYY-MM-DD"):"lastQuarter"===e?D(r.add(-3,"month")).format("YYYY-MM-DD"):"nextQuarter"===e?D(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&&R.has(t[2])&&E.has(t[3])){let e=O(t[4]);if("number"!=typeof e)return;let r="past"===t[2]?-1:1,n=t[3];return j()().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 B(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=B(e.slice(1)),i=B(r.slice(1));if(void 0===n||void 0===i)return;return[n,i]}}}async function L(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}}let z="ctx.resolveJsonTemplate",W=/\{\{\s*ctx(?:\.|\[|\?\.)/,V=/\bctx(?:\?\.|\.)libs\b/,H="__runjs_templateValueToString",U=/\b__runjs_ctx_tpl_\d+\b/,K=/\b__runjs_templateValueToString(?:_\d+)?\b/,Y=/\b__runjs_ctx_tpl_\d+\b|\b__runjs_templateValueToString(?:_\d+)?\b/,J=/\b__runjs_ensure_libs\b/,G=256,Z={withTemplates:new Map,withoutTemplates:new Map};function X(e,t){let r=e.get(t);if(void 0!==r)return e.delete(t),e.set(t,r),r}function Q(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 ee(e){return!!e&&/[A-Za-z0-9_$]/.test(e)}function et(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(z,t))return!1;let r=t>0?e[t-1]:"",n=e[t+z.length]||"";return!(ee(r)||ee(n))}function en(e,t){let r=t+2;for(;r<e.length;){let t=e[r];if(r+=1,"\n"===t)break}return r}function ei(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 eo(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 es(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=eo(e,r,n);continue}if("`"===n){r=es(e,r);continue}if("/"===n&&"/"===i){r=en(e,r);continue}if("/"===n&&"*"===i){r=ei(e,r);continue}"{"===n?t+=1:"}"===n&&(t-=1),r+=1}continue}r+=1}return r}function el(e){if(!W.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);et(o)&&t.push(o),r=i+2}return t}function ea(e,t){let r=t;for(;r<e.length&&/\s/.test(e[r]);)r+=1;return r}function ec(e,t){let r=t;for(;r>=0&&/\s/.test(e[r]);)r-=1;return r}function eu(e,t){let r=t;for(;;){r=ea(e,r);let t=e[r],n=e[r+1];if("/"===t&&"/"===n){r=en(e,r);continue}if("/"===t&&"*"===n){r=ei(e,r);continue}return r}}function ed(e){return!!e&&/[A-Za-z_$]/.test(e)}function eh(e,t){if(!ed(e[t]))return null;let r=t+1;for(;r<e.length&&ee(e[r]);)r+=1;return{name:e.slice(t,r),end:r}}function ep(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 ef(e,t){if(!e.startsWith("ctx",t))return null;let r=t>0?e[t-1]:"",n=e[t+3]||"";if(ee(r)||ee(n))return null;let i=e.slice(t+3);return i.startsWith(".libs")?t+3+5:i.startsWith("?.libs")?t+3+6:null}function eg(e,t){let r=ef(e,t);if(null===r)return null;let n=eu(e,r),i=e[n],o=e[n+1],s=e[n+2];if("?"===i&&"."===o&&"["===s){n=eu(e,n+3);let t=e[n];if("'"===t||'"'===t){let r=ep(e,n,t);if(!r)return{end:n+1};let i=eu(e,r.end);return"]"===e[i]&&(i+=1),{end:i,key:r.value}}return{end:n}}if("["===i){n=eu(e,n+1);let t=e[n];if("'"===t||'"'===t){let r=ep(e,n,t);if(!r)return{end:n+1};let i=eu(e,r.end);return"]"===e[i]&&(i+=1),{end:i,key:r.value}}return{end:n}}if("?"===i&&"."===o){n=eu(e,n+2);let t=eh(e,n);return t?{end:t.end,key:t.name}:{end:n}}if("."===i){n=eu(e,n+1);let t=eh(e,n);return t?{end:t.end,key:t.name}:{end:n}}return{end:r}}function em(e){let t=[],r=String(e??""),n=0,i=0,o=0,s=0,l=e=>{let r=String(e??"").trim();if(!r||r.startsWith("..."))return;let n=r,i=0,o=0,s=0,l=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?s+=1:"]"===e?s-=1:"("===e?l+=1:")"===e&&(l-=1),0===o&&0===s&&0===l&&(":"===e||"="===e)){n=r.slice(0,i).trim();break}i+=1}if(!n)return;if(n.startsWith("'")||n.startsWith('"')){let e=n[0],r=ep(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=eo(r,a,e);continue}if("`"===e){a=es(r,a);continue}"{"===e?i+=1:"}"===e?i-=1:"["===e?o+=1:"]"===e?o-=1:"("===e?s+=1:")"===e&&(s-=1),0===i&&0===o&&0===s&&","===e&&(l(r.slice(n,a)),n=a+1),a+=1}return l(r.slice(n)),t}function ey(e){if(!V.test(e))return[];let t=new Set,r=r=>{let i=r,o=1;for(;i<e.length&&o>0;){let r=e[i],s=e[i+1];if("/"===r&&"/"===s){i=en(e,i);continue}if("/"===r&&"*"===s){i=ei(e,i);continue}if("'"===r||'"'===r){i=eo(e,i,r);continue}if("`"===r){i=n(i+1);continue}let l=eg(e,i);if(l){l.key&&t.add(l.key),i=l.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=en(e,i);continue}if("/"===r&&"*"===o){i=ei(e,i);continue}if("'"===r||'"'===r){i=eo(e,i,r);continue}if("`"===r){i=n(i+1);continue}let s=eg(e,i);if(s){s.key&&t.add(s.key),i=s.end;continue}if("="===r&&"="!==o&&">"!==o&&"<"!==o){let r=eu(e,i+1);if(null!==ef(e,r)){let r=ec(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 em(e.slice(i+1,r)))t.add(n)}}}i+=1}return Array.from(t)}function ev(e){if(J.test(e)||!V.test(e))return e;let t=ey(e);return t.length?`/* __runjs_ensure_libs */
234
+ await ctx.__ensureLibs(${JSON.stringify(t)});
235
+ ${e}`:e}function ew(e,t,r){let n=ea(e,r);if(":"!==e[n])return!1;let i=ec(e,t-1),o=i>=0?e[i]:"";return"{"===o||","===o}function eb(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 ex(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!W.test(e))return e;let r=!1!==t.processBarePlaceholders,n=!1!==t.processStringLiterals;if(r&&n&&Y.test(e)||r&&!n&&U.test(e)||!r&&n&&K.test(e))return e;let i=new Map,o=[],s=!1,l=new Set,a=(t=>{if(!e.includes(t)&&!l.has(t))return l.add(t),t;let r=1;for(;e.includes(`${t}_${r}`)||l.has(`${t}_${r}`);)r+=1;let n=`${t}_${r}`;return l.add(n),n})(H),c=0,u=()=>{for(;;){let t=`__runjs_ctx_tpl_${c}`;if(c+=1,!(e.includes(t)||l.has(t)))return l.add(t),t}},d=e=>{let t=i.get(e);if(t)return t;let r=u();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=en(e,p);h+=e.slice(p,t),p=t;continue}if("/"===t&&"*"===i){let t=ei(e,p);h+=e.slice(p,t),p=t;continue}if("'"===t||'"'===t){let r=eo(e,p,t),i=e.slice(p,r);if(n&&0===g){let t=el(i);if(t.length){s=!0;let n=eb(i,t,d,a);h+=ew(e,p,r)?`[${n}]`:n}else h+=i}else h+=i;p=r;continue}if("`"===t){let t=es(e,p),r=e.slice(p,t);if(n&&0===g){let n=el(r);if(n.length){s=!0;let i=eb(r,n,d,a);h+=ew(e,p,t)?`[${i}]`:i}else h+=r}else h+=r;p=t;continue}if(0===g&&!f&&er(e,p)){h+=z,p+=z.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(et(r)){h+=d(r),p=t+2;continue}}}h+=t,p+=1}if(!o.length)return h;let m=[];return s&&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")}
236
+ ${h}`}async function eS(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r="string"==typeof e?e:String(e??""),n=!!t.preprocessTemplates,i=n?Z.withTemplates:Z.withoutTemplates,o=X(i,r);if(o)return await o;let s=(async()=>{if(!n)return ev(await L(r));let e=ex(r,{processStringLiterals:!1});return ev(ex(await L(e),{processBarePlaceholders:!1}))})();Q(i,r,s,G);try{return await s}catch(e){throw i.delete(r),e}}r(62572);var e_=r(47684)},35339(e,t,r){r.d(t,{gG:()=>s,o4:()=>h,mv:()=>l,M:()=>p});let n=(e,t,r)=>{if(!e)return r;let i=t.split("."),o=[],s=e,l=!1;for(let e=0;e<i.length;e++){let t=i[e];if(Array.isArray(s)){for(let t of(l=!0,s)){let s=n(t,i.slice(e).join("."),r);o=o.concat(s)}break}if((null==s?void 0:s[t])===void 0)break;s=s[t],e===i.length-1&&o.push(s)}return 0===(o=o.filter(e=>void 0!==e)).length?r:l?o.filter(e=>null!==e):o[0]};var i=r(2543),o=r.n(i);async function s(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 l(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",s=d(t),l=i.inflightByRun.get(o);l||(l=new Map,i.inflightByRun.set(o,l));let u=l.get(s);if(u)return u;let h=new Promise((e,t)=>{r=e,n=t});l.set(s,h);let p={id:`${Date.now()}-${Math.random().toString(36).slice(2)}`,ctx:e,payload:t,resolve:r,reject:n,runId:o,dedupKey:s};i.queue.push(p);let f=async()=>{var t,r,n,o,s,l;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,s=null==o?void 0:o.results,l=Array.isArray(s)?s:Array.isArray(o)?o:[],u=new Map;for(let e of l){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==(s=e.logger)||null==(o=s.warn)||o.call(s,{err:t},"variables:resolve(batch) failed, fallback"),r.resolve(r.payload.template)}catch(e){r.reject(e)}finally{null==(l=i.inflightByRun.get(r.runId))||l.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 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],s=t.substring(r.length);i.push({fullPath:e,firstKey:r,restPath:s}),o.add(r)}}if(0===i.length)return e;let s=new Map;for(let e of o)try{let r=await t[e],n=r&&!0===r.__isRecordProxy__;s.set(e,n)}catch(t){s.set(e,!1)}i.sort((e,t)=>t.fullPath.length-e.fullPath.length);let l=e;for(let{fullPath:e,firstKey:t,restPath:r}of i){let n,i=s.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");l=l.replace(a,n)}return l}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)},s=e.match(/^\s*\{\{\s*([^{}]+?)\s*\}\}\s*$/);if(s){let e=s[1];return await o(e)}let l=[...e.matchAll(/\{\{\s*(.+?)\s*\}\}/g)],a=e;for(let[e,t]of l){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(/\/$/,""),s=r.replace(/^\//,"");if(null==t?void 0:t.raw){let e=s.includes("?")?"&":"?";return`${o}/${s}${e}raw`}return`${o}/${s}${i}`}function i(e){return!!e&&"string"==typeof e&&e.split("?")[0].split("#")[0].endsWith(".css")}r.d(t,{i:()=>n,y:()=>i})},88439(e,t,r){r.d(t,{w:()=>n});function n(e,t,r,n){let i={},o={};for(let l in t)if(Object.prototype.hasOwnProperty.call(t,l)){let a=t[l],c={};if(a.uiSchema&&"object"==typeof a.uiSchema){for(let[e,t]of Object.entries(a.uiSchema))if(t&&"object"==typeof t){var s;let r=t;c[e]={type:r.type||"any",title:r.title||(null==(s=r["x-decorator-props"])?void 0:s.label)||e,interface:r["x-component"],uiSchema:r}}}let u=Object.keys(c).length>0;o[l]={type:"object",title:e.t(a.title)||l,display:u?"default":"none",properties:u?{params:{type:"object",title:"Parameters",display:"flatten",properties:c}}:void 0},i[l]={get params(){return r.getStepParams(n,l)||{}},get uiSchema(){return a.uiSchema},result:void 0}}e.defineProperty("steps",{get:()=>i})}},5072(e,t,r){function n(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 s=/ctx\[\s*(["'])\s*([a-zA-Z_$][a-zA-Z0-9_$]*)\s*\1\s*\]([^\s)]*)/g;for(;null!==(n=s.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,{nN:()=>v,Xx:()=>m,$S:()=>y,vE:()=>g,XU:()=>p,Cg:()=>f});let i=["belongsTo","hasOne","hasMany","belongsToMany","belongsToArray"],o=["integer","float","double","decimal"];function s(e,t){let r=a(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]=s(r,t))}),e}}:{type:"object",...r}}return{type:l(e),...r}}function l(e){let t=e.type;if(i.includes(t))return"object";if(o.includes(t))return"number";switch(t){case"boolean":return"boolean";case"json":return"object";case"array":return"array";default:return"string"}}function a(e){return{title:e.title||e.name,interface:e.interface,options:e.options,uiSchema:e.uiSchema||{}}}function c(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]=s(t,r))}),e}}:null};return n.title=t,n}var u=r(44476),d=r(2543),h=r.n(d);function p(e){var t,r,n,i;let o=e.resource,s=e.collection,l=e.record,a=(null==s?void 0:s.name)||(null==o||null==(t=o.getResourceName)?void 0:t.call(o)),c=(null==s?void 0:s.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==s||null==(i=s.getFilterByTK)?void 0:i.call(s,l));if(!a||null==u)return;let d=String(a).split(".");return{collection:d[d.length-1],dataSourceKey:c,filterByTk:u}}function f(e){var t,r,n;let i=e.view;if(!i)return;let o=(null==i?void 0:i.inputArgs)||{},s=(null==o?void 0:o.collectionName)||(null==i||null==(t=i.record)?void 0:t.collection),l=(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(s&&null!=a)return{collection:s,dataSourceKey:l,filterByTk:a,sourceId:u,associationName:c}}function g(e,t){var r,n,i;let o=null==(r=e.inputArgs)?void 0:r.record,s=null==(n=e.collection)?void 0:n.filterTargetKey;if(!o||!s)return;let l=t.view,a=null==l||null==(i=l.inputArgs)?void 0:i.filterByTk,c=o[s];if(null!=a&&null!=c&&a===c)return h().cloneDeep(o)}function m(e,t){return r=>{var n,i,o,s;if(!("record"===r||r.startsWith("record.")))return!1;let l=t();if(!l)return!0;if("record"===r)return!1;let a=f(e),c=null==a?void 0:a.collection,d=(null==a?void 0:a.dataSourceKey)||"main";if(!c)return!0;let h=null==(i=e.dataSourceManager)||null==(n=i.getDataSource)?void 0:n.call(i,d),p=null==h||null==(s=h.collectionManager)||null==(o=s.getCollection)?void 0:o.call(s,c);if(!p)return!0;let g=(0,u.H)(()=>p,()=>l),m=r.startsWith("record.")?r.slice(7):"";return!!m&&g(m)}}async function y(e,t,r){let n=await c(e,t,!0)();return n?{...n,buildVariablesParams:e=>r?r(e):p(e)}:null}let v=n},52249(e,t,r){r.d(t,{sp:()=>x,bt:()=>M,N5:()=>$,xB:()=>F,mW:()=>C,fP:()=>N});var n=r(74848),i=r(96540),o=r(99418),s=r(1598),l=r(6409),a=r(52568),c=r(5072);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)},s=async()=>{var t,r,n,i;let s=await o(e);if(!(null==s?void 0:s.collection))return null;let l=null==(r=e.dataSourceManager)||null==(t=r.getDataSource)?void 0:t.call(r,s.dataSourceKey||"main");return(null==l||null==(i=l.collectionManager)||null==(n=i.getCollection)?void 0:n.call(i,s.collection))||null},l=async(t,r)=>{var n,i,o,s,l,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==(l=a.logger||e.logger)||null==(s=l.warn)||s.call(l,{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==(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 l(t),i={};if(i.uid={type:"string",title:r("Popup uid")},n){let t=(()=>{try{var t,r,i,o;let s=null==(r=e.dataSourceManager)||null==(t=r.getDataSource)?void 0:t.call(r,n.dataSourceKey||"main");return(null==s||null==(o=s.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,s,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 l(r,e);for(;n;)t.parent||(t.parent={}),t.parent.record=n,t=t.parent,r+=1,n=await l(r,e)}}catch(t){null==(s=e.logger)||null==(n=s.debug)||n.call(s,{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 s();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,s=null==o?void 0:o.sourceId,l=null==o?void 0:o.associationName,u=(null==o?void 0:o.dataSourceKey)||"main";if(!l||"string"!=typeof l||!l.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"))||{};l=(null==r?void 0:r.associationName)||l,u=(null==r?void 0:r.dataSourceKey)||u}}if(null!=s&&""!==s&&l&&"string"==typeof l){let t=String(l).includes(".")?String(l).split(".")[0]:void 0;if(t){let n=()=>{try{var r,n,i,o;let s=null==(n=e.dataSourceManager)||null==(r=n.getDataSource)?void 0:r.call(n,u);return(null==s||null==(o=s.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:s}));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 l(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,s=Array.isArray(null==o?void 0:o.viewStack)?o.viewStack:[],l=null==t||null==(r=t.inputArgs)?void 0:r.openerUids,a=Array.isArray(l)&&l.length>0;if(!(s.length>=2||a))return;if(!s.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,l,a;if(t<0||!(null==(r=s[t])?void 0:r.viewUid))return;let u=s[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=s[t])?void 0:o.filterByTk,sourceId:null==(l=s[t])?void 0:l.sourceId}},g=await c(t-1);return g&&(f.parent=g),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:s,hidden:l,...a}=e,[c,u]=(0,i.useState)(!0),[d,h]=(0,i.useState)(a),[f,g]=(0,i.useState)(()=>o),[m,y]=(0,i.useState)(s);(0,i.useImperativeHandle)(t,()=>({destroy:()=>{u(!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:l?"nb-hidden":"",getContainer:w,...v,open:c,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 u,d,p;let g,x,S=null==r?void 0:r.engine;b+=1;let _=i.createRef(),k=new Promise(e=>{x=e}),M=null,A=null,j=e=>{let{children:t}=e;return i.useEffect(()=>{var e;return M=t,null==(e=_.current)||e.setFooter(t),()=>{var e;M=null,null==(e=_.current)||e.setFooter(null)}},[t]),null},P=e=>(i.useEffect(()=>{var t;return A=e,null==(t=_.current)||t.setHeader(e),()=>{var e;A=null,null==(e=_.current)||e.setHeader(null)}},[e]),null),R=new l.cB,E=(0,v._)(r.engine),C=(0,m.eX)(S,E);R.defineProperty("engine",{value:E}),R.addDelegate(E.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 s=null==C?void 0:C.emitter;(0,m.Z8)(s),null==s||null==(o=s.emit)||o.call(s,m.B9,{type:"dialog",viewUid:null==T||null==(i=T.inputArgs)?void 0:i.viewUid}),E.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:j,Header:P,setFooter:e=>{var t;M=e,null==(t=_.current)||t.setFooter(e)},setHeader:e=>{var t;A=e,null==(t=_.current)||t.setHeader(e)},navigation:null==(u=t.inputArgs)?void 0:u.navigation,get record(){return(0,c.vE)(r,R)}};R.defineProperty("view",{get:()=>T,resolveOnServer:(0,c.Xx)(R,()=>(0,c.vE)(r,R))}),E.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 $=(0,s.PAp)(()=>{var e,r,s,l;let a=i.useRef(!1),c="function"==typeof t.content?t.content(T,R):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,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==(l=t.inputArgs)||null==(s=l.hidden)?void 0:s.value,footer:M,header:A,...t,onCancel:()=>{T.close(t.result)},children:u}))},{displayName:"DialogWithContext"}),O=(null==t||null==(d=t.inputArgs)?void 0:d.viewUid)||`page-${b}`,I=(0,n.jsx)(y.I6,{engine:E,children:(0,n.jsx)(a.YQ,{context:R,children:(0,n.jsx)($,{})})},O);return g=null==(p=e.current)?void 0:p.patchElement(I),Object.assign(k,T)},r=i.useMemo(()=>({open:t}),[]),u=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)(u,{ref:e},"dialog-holder")]}var S=r(97134),_=r(61793);let k=i.forwardRef((e,t)=>{var r;let{children:o,footer:s,title:l,extra:a,hidden:c,isMobile:u,...d}=e,[h,p]=i.useState(!0),[f,g]=i.useState(()=>s),[m,y]=i.useState({title:l,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 u?(0,n.jsx)(_.D,{className:c?"nb-hidden":"",visible:h,...d,footer:f,...m,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}},...m,onClose:d.onClose,children:o})});function M(){let e=i.useRef(null),t=i.useMemo(()=>s.sHX.shallow({value:[]}),[]),r=i.memo(e=>{let{index:o}=e,[l,a]=i.useState(null);return(i.useEffect(()=>{(0,s.fmX)(()=>{let e=t.value;e[o]&&l!==e[o]&&a(e[o]),e[o]||a(null)})},[l,o]),l)?(0,n.jsx)(l,{children:(0,n.jsx)(r,{index:o+1})}):null});r.displayName="RenderNestedDrawer";let u=(t,r)=>{var u,d;let p,f,g=r.engine,b=i.createRef(),x=new Promise(e=>{f=e}),S=null,_=null,M=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},A=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),j=new l.cB,P=(0,v._)(r.engine),R=(0,m.eX)(g,P);j.defineProperty("engine",{value:P}),j.addDelegate(P.context),!1!==t.inheritContext?j.addDelegate(r):j.addDelegate(r.engine.context);let E=!1,C={type:"drawer",inputArgs:t.inputArgs||{},preventClose:!!t.preventClose,beforeClose:void 0,destroy:e=>{var r,n,i,o;if(E)return;E=!0,null==(r=t.onClose)||r.call(t),null==(n=b.current)||n.destroy(),null==p||p(),null==f||f(e);let s=null==R?void 0:R.emitter;(0,m.Z8)(s),null==s||null==(o=s.emit)||o.call(s,m.B9,{type:"drawer",viewUid:null==C||null==(i=C.inputArgs)?void 0:i.viewUid}),P.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:M,Header:A,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==(u=t.inputArgs)?void 0:u.navigation,get record(){return(0,c.vE)(r,j)}};j.defineProperty("view",{get:()=>C,resolveOnServer:(0,c.Xx)(j,()=>(0,c.vE)(r,j))}),P.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(j,C);let F=i.memo((0,s.PAp)(e=>{var r,s,l,a;let c=i.useRef(!1),u="function"==typeof t.content?t.content(C,j):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,C,j)},[]),(null==(s=t.inputArgs)||null==(r=s.hidden)?void 0:r.value)&&!c.current)?(0,n.jsx)(n.Fragment,{children:e.children}):(c.current=!0,(0,n.jsxs)(k,{ref:b,...t,footer:S,header:t.header||_,hidden:null==(a=t.inputArgs)||null==(l=a.hidden)?void 0:l.value,onClose:()=>{C.close(t.result)},isMobile:j.isMobileLayout,children:[d,e.children]}))}));F.displayName="DrawerWithContext";let T=i.memo(e=>{let{children:t}=e;return(0,n.jsx)(y.I6,{engine:P,children:(0,n.jsx)(a.YQ,{context:j,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:u}),[]),p=i.memo(i.forwardRef((e,o)=>{let[s,l]=g();return i.useImperativeHandle(o,()=>({patchElement:l}),[l]),i.useEffect(()=>{t.value=s},[s]),(0,n.jsx)(r,{index:0})}));return[d,(0,n.jsx)(p,{ref:e},"drawer-holder")]}var A=r(40961),j=r(31333),P=r(71021);let R=(0,i.forwardRef)((e,t)=>{let[r,o]=i.useState({}),{visible:s=!0,footer:l=null,header:a=null,children:c,hidden:u,title:d,styles:h={},zIndex:p=4}={...e,...r},f=(0,i.useRef)(!1),g=(0,y.uf)(),[m,v]=(0,i.useState)(()=>l),[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=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)(P.Ay,{type:"text",size:"small",icon:(0,n.jsx)(j.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 s?(0,n.jsxs)("div",{style:{...x,...h.content},children:[S,(0,n.jsx)("div",{style:{flex:1,overflowY:"auto",...h.body},children:c}),_]}):null}),E=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 $(){let e=i.useRef(null),t=i.useRef(null),r=(r,o)=>{var u,d,p;let f,g,b=null==o?void 0:o.engine;E+=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},k=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:M,content:j,preventClose:P,inheritContext:T=!0,inputArgs:$={},...O}=r,I=M instanceof HTMLElement&&M.id===C;if(I&&t.current)try{M.dataset[F]="1",t.current.destroy()}finally{delete M.dataset[F],t.current=null}let D=new l.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 q={type:"embed",inputArgs:$,preventClose:!!r.preventClose,beforeClose:void 0,destroy:e=>{var n,i,o,s,l;if(null==(n=r.onClose)||n.call(r),null==g||g(e),null==(i=x.current)||i.destroy(),null==f||f(),I&&(t.current=null),!(I&&M instanceof HTMLElement&&(null==(o=M.dataset)?void 0:o[F])==="1")){let e=null==B?void 0:B.emitter;(0,m.Z8)(e),null==e||null==(l=e.emit)||l.call(e,m.B9,{type:"embed",viewUid:null==q||null==(s=q.inputArgs)?void 0:s.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(!P||!!t)&&!!await w(q,{result:e,force:t})&&(r.triggerByRouter&&(null==(i=r.inputArgs)||null==(n=i.navigation)?void 0:n.back)?r.inputArgs.navigation.back():q.destroy(e),!0)},Header:k,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==(u=r.inputArgs)?void 0:u.navigation,get record(){return(0,c.vE)(o,D)}};D.defineProperty("view",{get:()=>q,resolveOnServer:(0,c.Xx)(D,()=>(0,c.vE)(o,D))}),h(D,q);let L=(0,s.PAp)(()=>{var e,t,o,s;let l=i.useRef(!1),a=i.useMemo(()=>"function"==typeof j?j(q,D):j,[]);return(D.themeToken,i.useEffect(()=>{var e;null==(e=r.onOpen)||e.call(r,q,D)},[]),(null==(t=r.inputArgs)||null==(e=t.hidden)?void 0:e.value)&&!l.current)?null:(l.current=!0,(0,n.jsx)(R,{ref:x,hidden:null==(s=r.inputArgs)||null==(o=s.hidden)?void 0:o.value,...O,onClose:()=>{q.close(r.result)},children:a}))},{displayName:"PageWithContext"}),z=(null==$?void 0:$.viewUid)||`page-${E}`,W=(0,n.jsx)(y.I6,{engine:N,children:(0,n.jsx)(a.YQ,{context:D,children:(0,n.jsx)(L,{})})},z);return f=M&&M instanceof HTMLElement?null==(d=e.current)?void 0:d.patchElement(A.createPortal(W,M,z)):null==(p=e.current)?void 0:p.patchElement(W),I&&(t.current={destroy:q.destroy}),Object.assign(S,q)};return[i.useMemo(()=>({open:r}),[]),(0,n.jsx)(T,{ref:e},"page-holder")]}var O=r(28073);let I=0,D=i.forwardRef((e,t)=>{var r,o;let{afterClose:s,content:l,placement:a,rect:c,...u}=e,[d,h]=i.useState(!0),[p,f]=i.useState({content:l,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==s||s()},[d,s]),(0,n.jsx)(O.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==s||s())},...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,s;let l,a;I+=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},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:u,rect:f,afterClose:()=>{var e;null==l||l(),null==(e=t.onClose)||e.call(t),null==a||a(t.result)},...h},`popover-${I}`);return l=null==(s=e.current)?void 0:s.patchElement(w),Object.assign(g,m)},r=i.useMemo(()=>({open:t}),[]),s=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)(s,{ref:e},"popover-holder")]}r(52847)},16639(e,t,r){r.d(t,{B9:()=>i,HK:()=>o,Z8:()=>c,eX:()=>h,i6:()=>s});let n=Symbol.for("__NOCOBASE_VIEW_ACTIVATED_VERSION__"),i="view:activated",o="dataSource:dirty",s="__NOCOBASE_ENGINE_SCOPE__",l="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,s)===l}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-9ee03ea7.js";var __webpack_exec__=function(e){return __webpack_require__(__webpack_require__.s=e)};import*as __rspack_chunk_1 from"./vendor-antd-ecosystem-3072b8fa.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-b7d99c50.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"./9261-5b0e2178.js";__webpack_require__.C(__rspack_chunk_7);import*as __rspack_chunk_8 from"./index-df3f23f2.js";__webpack_require__.C(__rspack_chunk_8),__webpack_exec__(85705);